1. Trang chủ
  2. » Công Nghệ Thông Tin

Đề tài 27. Nghiên cứu tìm hiểu về tập lệnh của hệ vi xử lý AMD 29000.

18 1,7K 16

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 18
Dung lượng 532,65 KB

Nội dung

Các Am29000 chứa một đơn vị thực hiện chức năng cao, một tập tin thanh ghi lớn 192 thanh ghi, một Branch Target Cache 32 bit- 4 tầng đường ống , một đơn vị quản lý bộ nhớ 64 mục, và một

Trang 1

BỘ CÔNG THƯƠNG

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI

KHOA CÔNG NGHỆ THÔNG TIN

-oo0000oo -BÁO CÁO BÀI TẬP LỚN

Bộ môn: Kiến trúc máy tính

Đề tài: Nghiên cứu tìm hiểu về tập lệnh của hệ vi xử lý AMD 29000

Giáo viên hướng dẫn: Thầy Nguyễn Thanh Hải.

Nhóm: 10

Họ và tên sinh viên Mã sinh viên

Hà Nội, tháng 10 năm 2016

Trang 2

Mục lục:

A Mở đầu trang 3.

B Nội dung trang 4.

I Giới thiệu tổng quan về bộ vi xử lý AMD Am29000 trang 4.

II Trình bày sơ đồ khối chức năng bên trong CPU AMD Am29000 trang 6 III Đặc điểm chức năng các thanh trong AMD 29000 trang 7

1 Khối điều khiển (CU - Control Unit) trang 7.

2 Khối tính toán ALU (Arithmetic Logic Unit) trang 8.

3 Các thanh ghi (Registers) trang 8.

a, Thanh ghi mục đích chung trang 8

b, Thanh ghi địa chỉ trang 10

c, Thanh ghi chung trang 10

d, Thanh ghi cục bộ Stack Pointer trang 10

e, Thanh ghi cục bộ trang 11

f, Thanh ghi bank trang 11

IV Cấu trúc lệnh cùng tập lệnh của AMD Am 29000 trang 12

1 SỐ TẬP LỆNH AMD Am29000 trang 17

Trang 3

A MỞ ĐẦU

Vi xử lý (CPU) là gì?

Trước hết để tránh những băn khoăn đáng tiếc trong khi nghiên cứu tài liệu, tôi xin được giới thiệu đôi chút về 02 khái niệm “vi xử lý” (microprocessor) và “vi điều khiển (microcontroller) Về cơ bản hai khái niệm này không khác nhau nhiều, “vi xử lý” là thuật ngữ chung dùng để đề cập đến kỹ thuật ứng dụng các công nghệ vi điện tử, công nghệ tích hợp và khả năng xử lý theo chương trình vào các lĩnh vực khác nhau Vào những giai đoạn đầu trong quá trình phát triển của công nghệ vi xử lý, các chip (hay các vi xử lý) được chế tạo chỉ tích hợp những phần cứng thiết yếu như CPU cùng các mạch giao tiếp giữa CPU và các phần cứng khác Trong giai đoạn này, các phần cứng khác (kể cả bộ nhớ) thường không được tích hợp trên chip mà phải ghép nối thêm bên ngoài Các phần cứng này được gọi là các ngoại vi (Peripherals) Về sau, nhờ

sự phát triển vượt bậc của công nghệ tích hợp, các ngoại vi cũng được tích hợp vào bên trong IC và người ta gọi các vi xử lý đã được tích hợp thêm các ngoại vi là các “vi điều khiển” Việc tích hợp thêm các ngoại vi vào trong cùng một IC với CPU tạo ra nhiều lợi ích như làm giảm thiểu các ghép nối bên ngoài, giảm thiểu số lượng linh kiện điện tử phụ, giảm chi phí cho thiết kế hệ thống, đơn giản hóa việc thiết kế, nâng cao hiệu suất và tính linh hoạt Trong tài liệu này, ranh giới giữa hai khái niệm “vi xử lý”

và “vi điều khiển” thực sự không cần phải phân biệt rõ ràng Chúng tôi sẽ dùng thuật ngữ “vi xử lý” khi đề cập đến các khái niệm cơ bản của kỹ thuật vi xử lý nói chung và

sẽ dùng thuật ngữ “vi điều khiển” khi đi sâu nghiên cứu một họ chip cụ thể Về cơ bản kiến trúc của một vi xử lý gồm những phần cứng sau:

Đơn vị xử lý trung tâm CPU (Central Processing Unit)

Các bộ nhớ (Memories).- Các cổng vào/ra song song (Parallel I/O Ports)

Các cổng vào/ra nối tiếp (Serial I/O Ports)

Các bộ đếm/bộ định thời (Timers)

Ngoài ra với mỗi loại vi điều khiển cụ thể còn có thể có thêm một số phần cứng khác như bộ biến đổi tương tự-số ADC, bộ biến đổi số-tương tự DAC, các mạch điều chế dạng sóng WG, điều chế độ rộng xung PWM…

Bộ não của mỗi vi xử lý chính là CPU, các phần cứng khác chỉ là các cơ quan chấp hành dưới quyền của CPU Mỗi cơ quan này đều có một cơ chế hoạt động nhất định

mà CPU phải tuân theo khi giao tiếp với chúng Để có thể giao tiếp và điều khiển các

cơ quan chấp hành (các ngoại vi), CPU sử dụng 03 loại tín hiệu cơ bản là tín hiệu địa chỉ (Address), tín hiệu dữ liệu (Data) và tín hiệu điều khiển (Control) Về mặt vật lý thì các tín hiệu này là các đường nhỏ dẫn điện nối từ CPU đến các ngoại vi hoặc thậm chí

Trang 4

là giữa các ngoại vi với nhau Tập hợp các đường tín hiệu có cùng chức năng gọi là các bus Như vậy ta có các bus địa chỉ, bus dữ liệu và bus điều khiển

B.NỘI DUNG

AMD am29000 là một load-store CPU xuống từ thiết kế Berkeley RISC (và các dự

án của IBM 801), như là một kế hiện đại với trước năm 2900 hàng loạt bitslice bắt đầu

từ khoảng năm 1981) Giống như các thiết kế SPARC đã được giới thiệu trong thời gian ngắn sau đó, 29000 có một tập lớn các thanh ghi chia thành bộ cục bộ và chung Nhưng mặc dù nó đã được giới thiệu trước khi SPARC, nó có một phương pháp đơn giản hơn về quản lý thanh ghi

AMD am29000 thiết kế RISC có hiệu suất cao Nó là đáng chú ý nhất đối với con số khổng lồ 192 thanh ghi lập trình của nó (hầu hết các chip RISC có 32; Pentium có 8) Nhưng bất chấp tất cả ưu điểm về kiến trúc của 29K, nó vẫn không tồn tại dài

Mặc dù hàng năm nhiều triệu đơn vị được bán ra, AMD (Advanced Micro

Devices) vẫn khai tử gia đình 29K vào năm 1995 AMD từ bỏ toàn bộ một dòng sản

phẩm này chỉ dù nó trở thành kiến trúc RISC thứ hai bán chạy nhất trên thế giới bởi vì chi phí hỗ trợ của nó quá cao

Tổng quan về sản phẩm

AMD Am29000 là bộ vi xử lý 32-bit RISC, 4 tầng đường ống , 512-byte BTC

(Branch Target Cache)

Đặc điểm khác biệt:

- Full 32-bit, kiến trúc ba bus

Trang 5

- Chỉ dẫn 23 triệu mỗi giây (MIPS) duy trì ở 33 MHz.

- 33 ,25 , 20 và 16-MHz tần số hoạt động

- Efflclent thực hiện các chương trình ngôn ngữ cấp cao

- Công nghệ CMOS

- 4 GB không gian địa chỉ ảo với nhu cầu phân trang

- Chỉ dẫn đồng thời và dữ liệu truy cập

- Hỗ trợ chế độ truy cập

- 192 thanh ghi mục đích chung

- 512-byte Branch Target Cache

- Quản lý 64 đơn vị bộ nhớ nhập

- Phân tách, đường ống địa chỉ, chỉ dẫn, và bus dữ liệu

- Kiến trúc chỉ dẫn ba địa chỉ

- Tùy chọn byte / nửa words truy cập

Các Am29000 chứa một đơn vị thực hiện chức năng cao, một tập tin thanh ghi lớn (192 thanh ghi), một Branch Target Cache (32 bit- 4 tầng đường ống ), một đơn vị quản lý bộ nhớ (64 mục), và một băng thông cao, đường ống bên ngoài kênh với sự chỉ dẫn và các bus dữ liệu riêng biệt Các tập tin thanh ghi linh hoạt có thể được sử dụng như một bộ nhớ cache cho các biến thời gian chạy trong chương trình thực hiện, hoặc

là một bộ sưu tập của các bank thanh ghi phân bổ cho các nhiệm vụ riêng biệt trong các ứng dụng đa nhiệm

Các Am29000 cung cấp một mức đáng kể suất hoạt động trên bộ xử lý khác trong các lớp học, vì phần lớn các tính năng xử lý được xác định với hiệu suất tối đa đạt được trong tâm trí Phần này mô tả các tính năng của Am29000 từ điểm nhìn của hiệu suất hệ thống

Thời gian chu kỳ

Các bộ xử lý hoạt động ở tần số 33 MHz Chu kỳ thời gian xử lý đơn là 30 ns/kỳ Các kiến trúc và hệ thống giao diện Am29000 được thiết kế sao cho chu kỳ thời gian

xử lý có thể giảm với những cải tiến công nghệ

Bốn tầng đường ống

Các Am29000 sử dụng một đường ống dẫn bốn giai đoạn, cho phép nó để thực thi một lệnh mỗi chu kỳ đồng hồ Các bộ vi xử lý có thể hoàn thành một chỉ dẫn trên mỗi chu

kỳ, mặc dù bốn chu kỳ được yêu cầu từ khởi đầu của một chỉ dẫn để hoàn thành nó Tại một tần số hoạt động 33-MHz, tỷ lệ thực hiện chỉ thị tối đa là 33 triệu lệnh mỗi giây (MIPS) Các đường ống dẫn Am29000 được thiết kế sao cho Am29000 thể hoạt động ở tốc độ thực hiện chỉ thị tối đa một phần đáng kể thời gian

interlock đường ống dẫn được thực hiện bởi phần cứng xử lý Ngoại trừ một vài

trường hợp đặc biệt, nó không phải là cần thiết để sắp xếp lại chương trình để tránh phụ thuộc đường ống

Trang 6

II Trình bày sơ đồ khối chức năng bên trong CPU

AMD Am29000

SƠ ĐỒ KHỐI BÊN TRONG CPU AMD Am2900

Các Bus chỉ dẫn chuyển vào bộ xử lý, Bus dữ liệu chuyển dữ liệu đến và từ bộ xử lý,

và Bus địa chỉ cung cấp địa chỉ cho cả chỉ dẫn và dữ liệu truy cập Các bus địa chỉ cũng tăng gấp đôi chức năng của nó để chuyển dữ liệu đến một bộ đồng xử lý

Kể từ khi cả hai địa chỉ bus dữ liệu và truyền dữ liệu, bộ vi xử lý Am29000 có thể chuyển 64 bit thông tin cho đồng xử lý trong một chu kỳ

Một đơn vị dấu chấm động (FPU) cung cấp chính xác đơn và hoạt động nổi-điểm chính xác đôi Có phân chia độc lập và mạch gốc vuông, trong đó cho phép các chức năng để tiến hành song song với các hoạt động khác

Bằng cách gán một không gian địa chỉ đặc biệt trên kênh bus, một bộ xử lý có thể gắn trực tiếp với bộ xử lý Điều này cho phép việc chuyển giao của các toán hạng và

Trang 7

các thông tin khác trên bus địa chỉ mà không can thiệp với các chức năng giải quyết bình thường

Các 29000 của bộ vi xử lý có ba địa chỉ kiến trúc tập lệnh, và các lập trình viên có hoàn toàn tự do để phân bổ sử dụng thanh ghi Có 192 thanh ghi mục đích chung, cho phép giữ lại các tính toán trung gian do đó tránh được sự phá hủy không cần thiết của

dữ liệu

Có 125 chỉ dẫn trong các bộ, mà chia thành chín lớp Đây là những số nguyên số học, so sánh, logic, sự thay đổi, chuyển dữ liệu, liên tục, dấu chấm động, chi nhánh, và linh tinh Tất cả các lệnh có thể hoàn thành trong vòng một chu kỳ bộ xử lý duy nhất

III Đặc điểm chức năng các thanh trong CPU

AMD Am29000

ĐƯỜNG ĐI CỦA DỮ LIỆU TRONG CPU

4 Khối điều khiển (CU - Control Unit)

Thành phần của CPU có nhiệm vụ thông dịch các lệnh của chương trình và điều khiển hoạt động xử lí, được điều tiết chính xác bởi xung nhịp đồng hồ hệ thống

Trang 8

Mạch xung nhịp đồng hồ hệ thống dùng để đồng bộ các thao tác xử lí trong và ngoài CPU theo các khoảng thời gian không đổi Khoảng thời gian chờ giữa hai xung gọi là chu kỳ xung nhịp Tốc độ theo đó xung nhịp hệ thống tạo ra các xung tín hiệu chuẩn thời gian gọi là tốc độ xung nhịp – tốc độ đồng hồ tính bằng triệu đơn vị mỗi giây (MHz)

5 Khối tính toán ALU (Arithmetic Logic Unit)

Chức năng khối tính toán ALU thực hiện các phép toán số học và logic sau đó

trả lại kết quả cho các thanh ghi hoặc bộ nhớ

Trong CPU, một bộ số học và logic (ALU – Arithmetic logic unit) là một mạch điện tử thực hiện phép tính số học và logic ALU là một phần tử cơ bản của CPU của một máy tính.Bộ vi xử lý chứa rất nhiều và rất phức tạp các ALU

6 Các thanh ghi (Registers)

Một thanh ghi (registers) là một bộ nhớ dung lượng nhỏ và rất nhanh được sử dụng để tăng tốc độ xử lý của các chương trình máy tính bằng cách cung cấp các truy cập trực tiếp đến các giá trị cần dùng Hầu hết, nhưng không phải tất

cả, các máy tính hiện đại hoạt động theo nguyên lý chuyển dữ liệu từ bộ nhớ chính vào các thanh ghi, tính toán trên chúng, sau đó chuyển kết quả vào bộ nhớ chính

Các thanh ghi xử lý là phần đầu tiên của phân cấp bộ nhớ, và cung cấp nhanh nhất vào hệ thống để xử lý dữ liệu Thuật ngữ này thường được dùng để nói đến một tập các thanh ghi có thể được chỉ trực tiếp cho việc nhập hay xuất các câu lệnh, xem thêm ở tập lệnh Chúng được gọi là ” kiến trúc thanh ghi” Ví dụ, đưa các biến số thường dùng vào thanh ghi là một hoạt động then chốt làm tăng hiệu ứng của chương trình Việc này có tên là register allocation và thường được thực hiện bởi một trình biên dịch trong giai đoạn phát sinh mã hoá

Các Am29000 có ba lớp các thanh ghi có thể truy cập bằng cách chỉ dẫn Đây

là những thanh ghi mục đích chung, thanh ghi mục đích đặc biệt, và Look-Ngoài Buffer (TLB) thanh ghi dịch Bất kỳ hoạt động nhu liệu có trong

Am29000 có thể được thực trên thanh ghi mục đích dụng chung, trong khi ghi mục đích đặc biệt và thanh ghi TLB được truy cập chỉ bằng cách di chuyển dữ liệu rõ ràng hoặc từ sổ mục đích chung cơ chế bảo vệ khác nhau ngăn chặn sự truy cập của một số các thanh ghi của chương trình chế độ người dùng

a Thanh ghi mục đích chung

Các Am29000 kết hợp 192 thanh ghi mục đích chung Việc tổ chức các thanh ghi mục đích chung trong hình sau

Absolute REG# General-Purpose Register

Indirect Pointer Access

1 Stack Pointer

Trang 9

64 Global Register 64

65 Global Register 65

66 Global Register 66

126 Global Register 126

127 Global Register 127

128 Local Register 125

129 Local Register 126

130 Local Register 127

131 Local Register 0

132 Local Register 1

254 Local Register 123

Local Register 124

Global Registers

Local Registers

Stack point 131

thanh ghi mục đích chung giữ các loại sau đây của các toán hạng để sử dụng chương trình:

1 Địa chỉ dữ liệu 32-bit

2 Số nguyên 32-bit dấu hoặc không dấu

3 Địa chỉ chi nhánh mục tiêu 32-bit

4 Chuỗi bit logic 32-bit

5 Ký tự 8-bit dấu hoặc không dấu

6 Số nguyên 16-bit dấu hoặc không dấu

7 Logic

8 Số dấu chấm động chính xác đơn

9 Số dấu chấm động chính xác kép (trong hai thanh ghi)

Bởi vì một số lượng lớn các thanh ghi mục đích chung được cung cấp, một số lượng lớn các dữ liệu thường được sử dụng có thể được giữ trên chip, nơi mà thời gian truy cập là nhanh nhất

Am29000 chỉ dẫn có thể xác định hai thanh ghi mục đích chung cho toán hạng nguồn, và một thanh ghi mục đích chung để lưu trữ các kết quả giảng dạy Những thanh ghi này được quy định bởi ba lĩnh vực giảng dạy 8-bit chứa số thanh ghi Sổ thanh ghi có thể được chỉ định trực tiếp theo chỉ dẫn, hoặc gián tiếp bởi một trong ba thanh ghi mục đích đặc biệt

Trang 10

b, Thanh ghi địa chỉ

Các thanh ghi mục đích chung được phân chia thành 64 thanh ghi chung và

128 thanh ghi cục bộ, phân biệt bởi các bit nhất đáng kể về số lượng thanh ghi

Sự khác biệt giữa các thanh ghi chung và cục bộ là kết quả của những cân nhắc thanh ghi-giải quyết

Các thuật ngữ sau đây được sử dụng để mô tả các thay đồ quảng cáo- các thanh ghi mục đích chung:

1 Thanh ghi số - đây là một phần mềm cấp số lượng cho một thanh ghi mục đích chung Ví dụ, đây là số lượng chứa trong một chỉ dẫn Số thanh ghi trong khoảng 0-255

2 Số thanh ghi chung - đây là một số phần mềm cấp cho một thanh ghi chung

số thanh ghi chung trong khoảng 0-127

3 Thanh ghi số cục bộ là một số phần mềm cấp cho thanh ghi một đầu mối Các thành thanh ghi num cục bộ nằm trong khoảng 0-127

4 Thanh ghi số tuyệt đối - đây là một số cấp phần cứng, sử dụng để chọn một thanh ghi mục đích chung trong ký File Số thanh ghi tuyệt đối trong khoảng 0-255

c, Thanh ghi chung

Khi bit nhất ý nghĩa của một số thanh ghi là 0, một thanh ghi chung được chọn Bảy bit kém đáng kể về số lượng thanh ghi cho thanh ghi số chung Đối với thanh ghi chung, số lượng thanh ghi tuyệt đối là tương đương với thanh ghi số

Thanh ghi chung 2 đến 63 là chưa thực hiện Một cố gắng để truy cập vào các thanh ghi mang lại kết quả không thể đoán trước Tuy nhiên, họ có thể được bảo vệ từ do người sử dụng truy cập chế độ do thanh ghi chung bảo vệ

Các thanh ghi số gắn liền với thanh ghi chung số 0 và 1 có ý nghĩa đặc biệt Con số của thanh ghi chung là 0 xác định rằng một con trỏ gián tiếp được sử dụng như là nguồn gốc của số thanh ghi; có một con trỏ gián tiếp cho mỗi thanh ghi chỉ dẫn toán hạng / kết quả Thanh ghi chung chứa 1 chứa Stack Pointer, được sử dụng trong việc giải quyết các sổ thanh ghi cục bộ như được giải thích dưới đây

d, Thanh ghi cục bộ Stack Pointer

Stack Pointer là một thanh ghi 32-bit có thể là một toán hạng của một chỉ dẫn như bất kỳ thanh mục đích chung khác Tuy nhiên, một bản sao của thanh ghi chung được duy trì bởi phần cứng bộ xử lý được sử dụng trong thanh ghi cục bộ giải quyết Bản sao này được thiết lập chỉ với kết quả của số học và chỉ dẫn logic Nếu Stack Pointer được thiết lập với các kết quả của bất kỳ lớp sự chỉ dẫn khác, thanh ghi cục bộ không thể được truy cập dự đoán cho đến khi Stack Pointer được thiết lập lại một lần nữa với một số học hoặc hướng dẫn logic

e, Thanh ghi cục bộ

Khi bit nhất ý nghĩa của một số thanh ghi là 1, thanh ghi một cục bộ được chọn Bảy bit thiểu đáng kể số lượng thanh ghi cho thanh ghi số cục bộ Đối với

Ngày đăng: 14/11/2016, 23:18

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w