Mục lục I. Giới thiệu tổng quan về VXL AM29000. 4 II. Đặc điểm. 6 1. Sơ đồ chân, chức năng các chân tín hiệu. 6 2. Sơ đồ khối, chức năng các khối. 11 Sơ đồ khối: 11 Chức năng các khối: 11 1. CPU: 11 2. Bộ nhớ lệnh: 12 3. Khối giao tiếp bus: 12 4. Bộ gia tốc chấm động: 12 5. ROM instruction: 12 6. Bộ nhớ dữ liệu(memory data): 12 3. Đặc điểm và chức năng các thanh ghi. 13 GeneralPurpose Registers 13 SpecialPurpose Registers 14 TLB Registers 16 4. Nguyên lý làm việc. 17 Nghiên cứu tìm hiểu về thế hệ vi xử lý AMD 29000 I. Giới thiệu tổng quan về VXL AM29000. Am29000 (hoặc 29k) là tên gọi chung của một họ vxl 32bit RISC(1) và vi điều khiển được phát triển và chế tạo bởi Advanced Micro Devices (AMD). Trong 1 khoảng thời gian, chip RISC là sản phẩm phổ biến nhất trên thị trường, được sử dụng rộng rãi trong các máy in laser. Đến cuối 1995, AMD giảm nhân sự của dòng chip 29k chuyển dần sang phát triển dòng sản phẩm cho máy tính doanh nghiệp. 29k được coi như là 1 phiên bản cải tiến từ Berkeley RISC, Sun SPARC và Intel i960, giống như các thiết kế SPARC(2) đã được giới thiệu trong thời gian ngắn sau đó, 29k có một tập hợp lớn các thanh ghi, mặc dù được giới thiệu trước SPARC nhưng nó ưu việt hơn. 29k có đến 64 thành ghi global còn SPARC chỉ có 8. Ngoài ra 29k còn cho phép các cửa sổ hoạt động tùy biến kích thước trên 128 thanh ghi của bộ nhớ Cache (cửa số có thể thay đổi kích thước từ 1128 thanh ghi). Ngoài ra 1 hình thức quản lý việc truy cập thanh ghi cũng được cung cấp. Tất cả thanh ghi đều được bảo vệ trong Block. Các tính năng này khiến cho 29k trở nên hữu ích với các ứng dụng dạng nhúng. Nó đã đạt danh hiệu “bộ vi xử lý RISC phổ biến
Trang 2BÀI TẬP LỚN
Môn: Kiến trúc máy tính
Đề tài: Nghiên cứu tìm hiểu về thế hệ vi xử lý AMD29000
Giáo viên hướng dẫn: Nguyễn Thanh Hải Nhóm thực hiện: Nhóm 6
Lớp: KTPM3-K9
Trang 3Môn: Kiến trúc máy tính
Đề 25: Nghiên cứu tìm hiểu về thế hệ vi xử lý AMD 29000
Nhóm 6
Lớp KTPM3-K9
Thành viên tham gia thực hiện:
Trang 5Nghiên cứu tìm hiểu về thế hệ vi xử lý AMD 29000
I Giới thiệu tổng quan về VXL AM29000.
Am29000 (hoặc 29k) là tên gọi chung của một họ vxl
32-bit RISC(1) và vi điều khiển được phát triển và chế
tạo bởi Advanced Micro Devices (AMD)
Trong 1 khoảng thời gian, chip RISC là sản phẩm phổ
biến nhất trên thị trường, được sử dụng rộng rãi trong
các máy in laser Đến cuối 1995, AMD giảm nhân sự
của dòng chip 29k chuyển dần sang phát triển dòng sản
phẩm cho máy tính doanh nghiệp
29k được coi như là 1 phiên bản cải tiến từ Berkeley RISC, Sun SPARC và Intel i960, giống như các thiết kế SPARC(2) đã được giới thiệu trong thời gian ngắn sau đó, 29k
có một tập hợp lớn các thanh ghi, mặc dù được giới thiệu trước SPARC nhưng nó ưu việt hơn 29k có đến 64 thành ghi global còn SPARC chỉ có 8 Ngoài ra 29k còn cho phép các cửa sổ hoạt động tùy biến kích thước trên 128 thanh ghi của bộ nhớ Cache (cửa số có thể thay đổi kích thước từ 1-128 thanh ghi)
Ngoài ra 1 hình thức quản lý việc truy cập thanh ghi cũng được cung cấp Tất cả thanh ghi đều được bảo vệ trong Block Các tính năng này khiến cho 29k trở nên hữu ích với các ứng dụng dạng nhúng Nó đã đạt danh hiệu “bộ vi xử lý RISC phổ biến nhất”
Loạt vxl 29k-32bit của AMD được tạo ra để cạnh tranh với Intel 80960 và Motorola MC68020/030
Các vxl 29k đầu tiên được phát hành vào năm 1988, được tích hợp một MMU(3) Các 29.005 là một phiên bản cắt giảm xuống Các dòng đã được nâng cấp là 29.030 và 29.035, trong đó bao gồm 8KB hoặc 4KB Cache lệnh tương ứng Bản nâng cấp 29.040 tích hợp các FPU(4) và thêm một bộ nhớ cache 4KB
Phiên bản chính thức 29.050 có hiệu quả dấu chấm động tốt hơn nhiều so với bộ vi
xử lý 29k trước
Một số phần của thiết kế 29.050 đã được sử dụng làm cơ sở xây dựng vxl K5-x86 AMD ngưng phát triển loạt vxl 29k hoàn toàn vào năm 1995 Điều này rất có thể là
do sự phát triển của các bộ vi xử lý K5 và K6 Có một số vấn đề với việc ngừng phát triển 29K như nó được sử dụng nhiều trong các lĩnh vực nhiệm vụ quan trọng (ngành hàng không) Để tránh việc phải cung cấp sự hỗ trợ cho một sản phẩm ngừng phát triển, AMD đã bán thiết kế 29.050 cho Honeywell, một công ty nổi tiếng về hàng không vũ trụ và quốc phòng
Trang 6(1) RISC (viết tắt của Reduced Instructions Set Computer - Máy tính với tập lệnh đơn giản hóa) là một phương pháp thiết kế các bộ vi xử lý theo hướng đơn giản hóa tập lệnh, trong đó thời gian thực thi tất cả các lệnh đều như nhau.
(2) SPARC là một RISC được phát triển bởi hãng Sun Microsystem.
(3) MMU (viết tắt của Memory Management Unit -Đơn vị quản lý bộ nhớ ) phần cứng phụ trách xử lý địa chỉ nằm trong CPU, sẽ tự động chuyển địa chỉ ảo sang địa chỉ vật lý.
(4) FPU (viết tắt Floating Point Unit) đơn vị tính toán dấu phẩy động.
Trang 7II Đặc điểm.
1 Sơ đồ chân, chức năng các chân tín hiệu.
- A0-A31: Bus địa chỉ (3 trạng thái đầu ra, đồng bộ)
Bus địa chỉ chuyển các byte địa chỉ cho tất cả truy cập Khi bật chế độ truy cập dữ liệu, nó sẽ chuyển địa chỉ cho truy cập đầu tiên
- *BREQ: Bus yêu cầu (đầu vào, đồng bộ)
Đầu vào này cho phép các máy chủ khác đưa ra quyết định hoạt động của bộ xử lí
- *BGRT: Bus cấp (đầu ra, đồng bộ)
Các tín hiệu đầu ra đến các bộ xử lí ngoài hủy bỏ quyền kiểm soát để đáp ứng Bus yêu cầu (*BREQ)
- *BINV: Bus sai (đầu ra, đồng bộ)
Đầu ra này chỉ ra các Bus địa chỉ và điều khiển không hợp lệ liên quan Nó xác định một chu kì không làm việc
- R/*W: Đọc/Viết (3 trạng thái đầu ra, đồng bộ)
Tín hiệu này chỉ ra cho dù dữ liệu đang được chuyển từ các bộ vi xử lí vào hệ thống, hoặc từ hê thống để xử lí
- SUP/*US: Giám sát/Chế độ sử dụng (3 trạng thái đầu ra, đồng bộ)
Trang 8Đầu ra này chỉ ra các truy cập cho chế độ chương trình.
- *LOCK: Khóa (3 trạng thái đầu ra, đồng bộ)
Đầu ra này cho phép triển khai các kênh khác nhau và thiết bị khóa liên động Nó có thể hoạt động chỉ với một khoảng thời gian của một truy cập, hoặc hoạt động của một giai đoạn tăng thời gian sau dưới sự điều khiển của Bit khóa trong trạng thái bộ vi xử
lí hiện hành
Bộ xử lí không bỏ kênh (trong hồi đáp đến Bus yêu cầu) khi khóa hoạt động
- MPGM0-MPGM1: MMU Programmable (3 trạng thái đầu ra, đồng bộ)
Các đầu ra đưa ra 2 giá trị của 2 bit PGM trong khi dịch lối vào bộ nhớ trung gian liên quan tới truy cập Nếu không có địa chỉ dịch để thực hiện, tín hiệu của cả 2 đều là Low (thấp)
- *PEN: Pipeline Enable (đầu vào, đồng bộ)
Trang 9Tín hiệu này ho phép các chương trình có thể giúp đỡ các truy cập đường ống (tức là
có đầu vào chốt cho một địa chỉ và các điều khiển cần thiết) để tín hiệu đó có một truy cập thứ hai có thể bắt đầu khi truy cập thứ nhất hoàn thành
- I0-I31: Bus lệnh (đầu vào, đồng bộ)
Các Bus lệnh chuyển các hướng dẫn đến bộ xử lí
- *IREQT: Lệnh yêu cầu (3 trạng thái đầu ra, đồng bộ)
Tín hiệu yêu cầu một lệnh truy cập Khi nó hoạt động, địa chỉ của truy cập xuất hiện trong Bus địa chỉ
- IREQT: loại lệnh yêu cầu (3 trạng thái đầu ra, đồng bộ)
Tín hiệu này quy định cụ thể địa chỉ của một lệnh yêu cầu, khi *IREQT (lệnh yêu cầu) hoạt động:
0: Lệnh truy cập bộ nhớ dữ liệu
1: Lệnh chỉ đọc-truy cập bộ nhớ
- *IRDY: lệnh tức thời (đầu vào, đồng bộ)
Đầu vào này chỉ ra lệnh đó trong Bus lệnh Bộ xử lí bỏ qua tín hiệu này nếu không có lệnh truy cập nào chưa được giải quyết
- *IERR: Lệnh lỗi (đầu vào, đồng bộ)
Đầu vào này chỉ ra một lỗi xảy ra khi lệnh truy cập thực hiện Bộ xử lí bỏ qua sự thực hiện của Bus lệnh, và một truy cập có lỗi xảy ra nếu bộ xử lí cố gắng thực hiện lệnh không hợp lệ Bộ xử lí bỏ qua tín hiệu nếu không có lệnh truy cập nào chưa được xử lí
- *IBREQ: Yêu cầu lênh truyền hàng loạt (3 trạng thái đầu ra, đồng bộ)
Tín hiệu này được sử dụng thiết lập hàng loạt loạt lệnh truy cập và lệnh yêu cầu chuyển mỗi loại lệnh truy cập Lệnh yêu cầu truyền hàng loạt (*IBREQ) cũng có thể hoạt động tuy nhiên Bus địa chỉ phải đang sử dụng một truy cập dữ liệu
- *IBACK: lệnh công nhận hàng loạt (đầu vào, đồng bộ)
Đầu vào này hoạt động khi một loại lệnh truy cập hàng loạt được tạo thành Nó cũng
có thể hoạt động tuy nhiên không có lệnh nào thực hiện truy cập
- *PIA: lệnh truy cập đường ống (3 trạng thái đầu vào, đồng bộ)
Nếu *IREQ không hoạt động, đầu ra này chỉ ra một lệnh yêu cầu đường ống với cái
khác, trong tiến trình, lệnh truy cập Truy cập chỉ ra không thể hoàn thành cho đến khi truy cập đầu tiên hoàn thành
- D0-D31: Bus dữ liệu (định hướng, đồng bộ)
Trang 10Bus dữ liệu chuyển dữ liệu đến từ bộ xử lí, tải và lưu trữ hoạt động.
- DREQ: Yêu cầu dữ liệu (3 đầu ra, đồng bộ)
Chỉ dẫn này yêu cầu một truy cập dữ liệu Khi nó hoạt động, địa chỉ của truy cập được xuất hiện trong Bus địa chỉ
- DREQT0-DREQT1: loại yêu cầu dữ liệu (3 trạng thái đầu ra, đồng bộ)
Các tín hiệu xác định địa chỉ không gian của truy cập dữ liệu (không quan tâm các giá trị “x”)
0 0 Lệnh/truy cập dữ liệu bộ nhớ
1 X chuyển coprocessor
- DRDY: Dữ liệu tức thời (đầu vào, đồng bộ)
Khi tải, đầu vào này chỉ ra dữ liệu này có hiệu lực trên Bus dữ liệu Khi tải, nó chỉ ra truy cập đó được hoàn thành Bộ xử lí bỏ qua tín hiệu này nếu không có truy cập dữ liệu nào thưc hiện
- *DERR: lỗi dữ liệu (đầu vào, đồng bộ)
Đầu vào này chỉ ra một nỗi đang xảy ra khi truy cập dữ liệu được thưc hiện Khi tải,
bộ xử lí bỏ qua nội dung của Bus dữ liệu Khi lưu trữ, truy cập bị chấm dứt
- *DBREQ: Yêu cầu dữ liệu hàng loạt (3 trạng thái đầu ra, đồng bộ)
*Tín hiệu này được sử dụng để thiết lập một chế độ truy cập dữ liệu hàng loạt và yêu cầu
truyền dữ liệu trong một chế độ truy cập dữ liệu hàng loạt * DBREQ có thể hoạt động mặc dù Bus địa chỉ đang được sử dụng cho một lệnh truy cập
- *DBACK: (đầu vào, đồng bộ)
Đầu vào này hoạt động khi bất kì chế độ truy cập dữ liệu hàng loạt nào được thực hiện nó có thể hoạt động ngay cả khi không có truy cập dữ liệu
- *PDA: truy cập dữ liệu đường ống (3 trạng thái đầu ra, đồng bộ)
Nếu *DREQ không thực hiện, đầu ra này chỉ ra một truy cập dữ liệu đường ống
khác, trong tiến trình, truy cập dữ liệu Việc truy cập không thể hoàn thành cho đến khi truy cập đầu tiên hoàn tất
- OPTO-OPT2: điều khiển tùy chọn (3 trạng thái đầu ra, đồng bộ)
- *CDA: Coprocessor Data Accept (đầu vào, đồng bộ)
Trang 11- *WARN : cảnh báo (đầu vào, đồng bộ)
- *INTRO-*INTR3: Yêu cầu ngắt (đầu vào, đồng bộ)
- TRAPO-TRAP1: yêu cầu bẫy
- STATO-STAT2: trạng thái CPU (đầu ra, đồng bộ)
0 0 0 Dừng hoặc chế độ bước
0 1 0 Tải kiểm tra chế độ hướng dẫn
1 0 1 Lấy gián đoạn hoặc trở về bẫy
1 1 0 Tìm nạp lệnh không tuần tự
- CNTLO-CNTL1: điều khiển CPU (đầu vào, không đông bộ)
- *RESET: (đầu vào, không đồng bộ)
Đầu vào này đưa bộ xử lí vào chế độ RESET
- *TEST: chế độ kiểm tra (đầu vào, không đồng bộ)
Khi đầu vào này hoạt động, bộ xử lí trong chế độ kiểm tra
- MSERR: lỗi chủ (đầu ra, đồng bộ)
Đầu ra này cho biết kết quả của sự so sánh của bộ xử lí đầu ra với các tín hiệu khác nhau được cung cấp cho các trình điều khiển Nếu có sự khác nhau, dòng này là
“asserted” (khẳng định)
- SYSCLK: hệ thống đồng hồ
Đây là một trong hai đầu ra, hoặc một đầu vào từ một đồng hồ ngoài tại bộ xử lí tần
số hoạt động
- INCICK: đồng hồ đầu vào (đầu vào)
Khi một bộ xử lí tạo đồng hồ cho chương trình, đây là một đầu ra dao động đến bộ xử
lí, tại bộ xử lí tần số hoạt động Trong chương trình, nơi đồng hồ không được thiết lập bởi bộ xử lí, tín hiệu này phải là High hoặc Low (Cao hoặc Thấp)
Trang 122 Sơ đồ khối, chức năng các khối.
Sơ đồ khối:
Vi xử lý AM29k bao gồm 6 khối chính: Khối bộ gia tốc chấm động Am29027, khối lệnh ROM, khối bộ nhớ lệnh, khối bộ nhớ dữ liệu, khối giao tiếp bus, khối xử lý trung tâm CPU Am29000
Chức năng các khối:
1 CPU:
Chức năng của CPU là xử lý các chương trình và dữ kiện CPU có nhiều kiểu dáng khác nhau Ở hình thức đơn giản nhất, CPU là một con chip với vài chục chân Phức tạp hơn, CPU được ráp sẵn trong các bộ mạch với hàng trăm con chip khác CPU là một mạch xử lý dữ liệu theo chương trình được thiết lập trước Nó là một mạch tích hợp phức tạp gồm hàng triệu transitor trên một bảng mạch nhỏ
Trang 13CPU bao gồm: khối điều khiển (control unit), khối tính toán (Arithmetic Logic Unit)
và các thanh ghi (Registers)
- Khối điều khiển là 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 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
- Khối tính toán có chức năng 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ớ
- Các thanh ghi là các bộ nhớ có dung lượng nhỏ nhưng tốc độ truy cập rất cao, nằm ngay trong CPU, dùng để lưu trữ tạm thời các toán hạng, kết quả tính toán, địa chỉ các ô nhớ hoặc thông tin điều khiển Mỗi thanh ghi có một chức năng cụ thể Thanh ghi quan trọng nhất là bộ đếm chương trình (PC - Program Counter) chỉ đến lệnh sẽ thi hành tiếp theo
2 Bộ nhớ lệnh:
Được sử dụng để truyền dữ liệu giữa các thanh ghi và bộ nhớ, truyền địa chỉ một cách hiệu quả, và cho chương trình con chuyển lệnh
- Lệnh tải được sử dụng để di chuyển dữ liệu trong bộ nhớ hoặc bộ nhớ địa chỉ đăng ký
- Lệnh lưu trữ được sử dụng để di chuyển các giá trị trong các ghi vào bộ nhớ
3 Khối giao tiếp bus:
Cung cấp các tín hiệu địa chỉ, dữ liệu và điều khiển để truy cập các bộ nhớ vào và ra Khối này cũng cho phép giao tiếp với bộ đồng xử lý hoặc các bộ xử lý khác
4 Bộ gia tốc chấm động:
Thực hiện các chức năng trên số thực chẳng hạn như phép cộng, phép nhân, logarit, hàm mũ, hàm lượng giác và nhiều loại của làm tròn số, phát hiện lỗi Mỗi bộ gia tốc chấm động thường có chức năng như một bộ đồng xử lí của CPU
5 ROM instruction:
Giúp lưu giữ mã chương trình điều hành và dữ liệu mặc định của hệ thống từ vi xử lý
Có đặc trưng là chỉ đọc được chứ không chỉnh sửa được
6 Bộ nhớ dữ liệu (memory data):
Dùng để lưu trữ các dữ liệu chương trình, phục vụ trong quá trình xử lý của CPU
Trang 143 Đặc điểm và chức năng các thanh ghi.
AMD29000 kết hợp 3 loại thanh ghi để truy câp và thao tác là: general-purpose registers (thanh ghi thường), special-purpose registers (thanh ghi đặc biệt), và Translation Look-Aside Buffer (TLB) registers (thanh ghi dịch sang 1 bên)
General-Purpose Registers
Amd29000 có 192 thanh ghi dành cho mục đích chung (không dành cho bất kì mục đích đặc biệt nào và luôn có sẵn trên bất kỳ dòng vxl amd29000 nào)
Hầu hết các tập lệnh vi xử lý là tập lệnh 3 địa chỉ Một tập lệnh sẽ xác định 3 thanh ghi bất kỳ trong số 192 thanh ghi để thực hiện tập lệnh Thông thường thì 2 trong 3 thanh ghi sẽ chứa nguồn thuật toán của lệnh và thanh còn lại chứa kết quả của lệnh
Trang 15192 thanh ghi này được chia thành 64 thanh ghi toàn cầu (Global Registers) và 128 thanh ghi địa phương (Local Registers) Global registers là địa chỉ với số tuyệt đối, trong khi đó thì Local registers là địa chỉ liên quan đến số Stack Point
Để tăng tốc độ xử lý, một phần của quá trình biên dịch (complier) sẽ được lưu vào local register, các giá trị tạm thời, các thương số hệ điều hành,… được lưu trong global register
1 Stack Point tương ứng với 32-bíts địa chỉ ảo đầy đủ cho thời gian chạy stack
Các thanh ghi chung có thể dược truy cập 1 cách gián tiếp, với thanh ghi có giá trị được xác định bởi 1 thanh ghi đặc biệt khác Giá trị của Global Registers là 0 được xác định bởi địa chỉ thanh ghi Một lệnh có thể xác định được việc truy cập thanh ghi cho tất cả nguồn toán hạng hoặc kết quả
Các thanh ghi chung có thể được chia thành các phân đoạn với mỗi 16 thanh ghi một, nhằm mục đích bảo vệ chúng khỏi việc truy cập trái phép Thanh ghi được bảo vệ trong một phân đoạn chỉ có thể được truy cập bởi chương trình thực hiện với chế độ giám sát Việc cố gắng truy cập để đọc viết có thể dẫn tới 1 cái bẫy (gây ra lỗi) đặt sẵn phòng tránh kẻ gian ăn cắp thông tin
Special-Purpose Registers
AMD29000 có 23 loại Special Registers Các thanh ghi điều khiển và cung cấp dữ liệu cho các công việc nhất định
Special Registers có thể được truy cập xử lý bằng cách di chuyển data Bất kì Special Registers nào cũng có thể được viết với nội dung của 1 General Registers và bất kì General Registers nào cũng có thể được viết với nội dung của 1 Special Registers Nhưng lại không thể thao tác trực tiếp trên nội dung của các Special Registers
Một số Special Registers được bảo vệ nghiêm ngặt và bạn chỉ có thể truy cập chúng trong chế độ SuperVisor Bạn sẽ gặp phải hạn chế này trong khi cố gắng truy cập để đọc và ghi dữ liệu thanh ghi Việc sử dụng 1 chương trình nhằm nỗ lực “hack” vào các thanh ghi này có thể khiến bạn gặp lỗi
Các Special Registers có bảo vệ:
1) Vector Area Base Address-xác định việc ngắt kết nối hoặc lỗi trong một Vector Area
2) Old Processor Status-Store là một bản sao của Current Processor Status (Bộ xử
lý trang thái hiện hành): Lặp lại hành động ngắt hoặc lỗi cho việc cố gắng tái truy cập trái phép
3) Current Processor Status-chứa thông tin liên quan đến việc kiểm soát các chương trình đang chạy vô hiệu hoá chế độ ngắt hoặc chế độ SuperVisor
4) Configuration(Cấu hình)-Chứa thông tin điều khiển mà thường thì chỉ hệ thống mới có thể thay đổi và được thiết lập sẵn khi khởi động hệ thống