Bài giảng Vi xử lý nâng cao - Phần 1: Thiết kế CPU RISC - Bài 01: Mở đầu

Nội dung môn học
Giới thiệu các thành phần chính của một hệ máy
tính, cách thức những thành phần này cùng nhau
hoạt động để thực thi chương trình.
Lập trình hợp ngữ cho MIPS.
Giới thiệu việc thiết kế đường dữ liệu và đơn vị
điều khiển của CPU.
Mô phỏng thiết kế (VHDL hoặc Verilog).
Mục tiêu: Nghiên cứu các mô hình tổ chức để xác
định khả năng và hiệu suất của các hệ máy tính.
Môn học tiên quyết:
Vi xử lý.
Kỹ thuật so
pdf 41 trang thamphan 27/12/2022 2800
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Vi xử lý nâng cao - Phần 1: Thiết kế CPU RISC - Bài 01: Mở đầu", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.

File đính kèm:

  • pdfbai_giang_vi_xu_ly_nang_cao_phan_1_thiet_ke_cpu_risc_bai_01.pdf
  • pptLec1 - Intro.ppt

Nội dung text: Bài giảng Vi xử lý nâng cao - Phần 1: Thiết kế CPU RISC - Bài 01: Mở đầu

  1. Bài giảng “Vi xử lý nâng cao” Phần 1: Thiết kế CPU RISC Bài 01: Mở đầu 1
  2. Những kiến thức cần có  Cách thức viết, biên dịch và chạy các chương trình bằng một ngôn ngữ cấp cao (C, C++, Java, ).  Cách thức tạo, tổ chức và sửa đổi các tập tin (file), và chạy những chương trình trên hệ điều hành.  Cách thức biểu diễn và quản lý các số dương và âm ở dạng nhị phân (bù-2, dấu-biên độ, v.v ) .  Thiết kế mạch logic  Cách thức thiết kế các thành phần tổ hợp và tuần tự (đại số logic, tối thiểu hóa hàm logic, ánh xạ công nghệ, mạch giải mã và ghép kênh, mạch chốt và flipflop, thanh ghi, máy trạng thái hữu hạn Mealy và Moore, gán trạng thái và tối thiểu hóa, v.v ) .  Kiến thức cơ bản về vi xử lý.  Kiến thức cơ bản về VHDL hoặc Verilog. 3
  3. Sự phát triển của phần cứng máy tính  Vi mạch (IC: integrated circuit) đầu tiên được phát minh khi nào?  Vào năm 1958, IC đầu tiên ra đời khi Jack Kilby ở Texas Instruments kết nối thành công bằng thủ công vài transistor, điện trở và tụ điện trên một đế (substrate) đơn. 5
  4. Những ảnh hưởng của phát triển công nghệ  Bộ xử lý  Dung lượng logic: tăng khoảng 30% mỗi năm.  Hiệu suất : 2x mỗi 1.5 năm.  Bộ nhớ  Dung lượng DRAM: 4x mỗi 3 năm, khoảng 60% mỗi năm.  Tốc độ bộ nhớ: 1.5x mỗi 10 năm.  Giá mỗi bit: giảm khoảng 20% mỗi năm.  Đĩa  Dung lượng: tăng khoảng 60% mỗi năm. 7
  5. Nỗ lực chính: việc định tỉ lệ linh kiện . . . Từ: “Facing the Hot Chips Challenge Again”, Bill Holt, Intel, được giới thiệu ở Hot Chips 17, 2005. 9
  6. Trình độ phát triển: cell bộ xử lý.  Fclock > 4 GHz.  Băng thông bộ nhớ: 25.6 GBytes mỗi giây.  Băng thông IO: 76.8 GBytes mỗi giây.  Hiệu suất:  256 GFLOPS ( chính xác đơn ở 4 GHz).  256 GOPS ( số nguyên ở 4 GHz).  25 GFLOPS ( chính xác kép ở 4 GHz).  235 mm vuông.  235 triệu transistor.  Tiêu thụ công suất ước tính được: 60 - 80 W @ 4GHz 11
  7. Máy tính nhúng trong xe ô tô 13
  8. Máy tính là gì?  Các thành phần:  Bộ xử lý (đường dữ liệu, đơn vị điều khiển).  Thiết bị nhập (chuột, bàn phím, v.v ).  Thiết bị xuất (màn hình, máy in, v.v ).  Bộ nhớ (cache (SRAM)), bộ nhớ chính (DRAM), ổ đĩa, CD/DVD.  Mạng.  Trọng tâm của ta: bộ xử lý (đường dữ liệu và đơn vị điều khiển) .  Được thực hiện bằng cách sử dụng hàng triệu transistor.  Không thể hiểu bằng cách xem xét từng transistor.  Ta cần sự trừu tượng ngôn ngữ mô tả phần cứng HDL. 15
  9. Các thành phần chính của một máy tính  Một máy tính có thể được chia thành 5 phần : 1. Các thiết bị nhập (input devices) mang dữ liệu từ thế giới bên ngoài vào trong máy tính. 2. Dữ liệu này được giữ trong bộ nhớ của máy tính cho đến khi 3. Đường dữ liệu (datapath) yêu cầu và xử lý chúng . 4. Hoạt động của đường dữ liệu được điều khiển bởi bộ điều khiển (controller) của máy tính . Toàn bộ công việc được thực hiện bởi máy tính sẽ không mang lại lợi ích gì cho ta trừ khi ta đưa dữ liệu trở ra thế giới bên ngoài. 5. Đưa dữ liệu trở ra thế giới bên ngoài là công việc của các thiết bị xuất (output devices).  Phương pháp phổ biến nhất để kết nối 5 thành phần trên với nhau là sử dụng mạng các bus.  Mục tiêu thiết kế workstation : 25% chi phí cho bộ xử lý, 25% chi phí cho bộ nhớ (kích thước bộ nhớ tối thiểu), phần còn lại cho , , các thiết bị I/O nguồn cấp điện vỏ hộp. 17
  10. Bên dưới chương trình  Chương trình ngôn ngữ cấp cao (C) swap (int v[], int k) (int temp; temp = v[k]; v[k] = v[k+1]; v[k+1] = temp; one-to-many ) C compiler  Chương trình hợp ngữ (cho MIPS) swap: sll $2, $5, 2 add $2, $4, $2 lw $15, 0($2) lw $16, 4($2) sw $16, 0($2) one-to-one sw $15, 4($2) jr $31 assembler  Mã máy (mã đối tượng) (cho MIPS) 000000 00000 00101 0001000010000000 000000 00100 00010 0001000000100000 . . . Một lệnh của C được dịch thành nhiều lệnh của hợp ngữ. Một lệnh của hợp ngữ tương ứng với một lệnh của mã máy. 19
  11. Tổ chức máy tính  Khả năng và đặc tính hiệu suất của các đơn vị chức năng chính ( functional unit (FU)).  e.g., tập thanh ghi , ALU, mạch ghép kênh , bộ nhớ,  Cách thức các đơn vị chức năng này được kết nối.  e.g., các bus.  Mạch logic và phương tiện qua đó luồng thông tin giữa các FU được điều khiển.  Kiến trúc tập lệnh (Instruction Set Architecture ( ISA)).  Mô tả máy tính ở mức truyền thanh ghi ( Register Transfer Level ( RTL )). 21
  12. Các thành phần chính của máy tính Bộ xử lý Bộ nhớ Các thiết bị Processor Devices Network Mạng Đơn vị Control Memory điều khiển Input Thiết bị nhập Đường Datapath Output dữ liệu Thiết bị xuất 23
  13. Bên dưới chương trình  Chương trình ngôn ngữ cấp cao (C) swap (int v[], int k) . . . C compiler  Chương trình hợp ngữ (cho MIPS) swap: sll $2, $5, 2 add $2, $4, $2 lw $15, 0($2) lw $16, 4($2) sw $16, 0($2) sw $15, 4($2) jr $31  Mã máy (mã đối tượng) (cho MIPS) assembler 000000 00000 00101 0001000010000000 000000 00100 00010 0001000000100000 100011 00010 01111 0000000000000000 100011 00010 10000 0000000000000100 101011 00010 10000 0000000000000000 Số thao tác 101011 00010 01111 0000000000000100 000000 11111 00000 0000000000001000 tối đa? 25
  14. Lưu mã đối tượng vào bộ nhớ Processor Memory Devices 000000 00000 00101 0001000010000000 Network 000000 00100 00010 0001000000100000 100011 00010 01111 0000000000000000 Control 100011 00010 10000 0000000000000100 101011 00010 10000 0000000000000000 Input 101011 00010 01111 0000000000000100 000000 11111 00000 0000000000001000 Datapath Output 2. Các mã đối tượng và dữ liệu này được lưu giữ trong bộ nhớ máy tính cho đến khi 27
  15. Đơn vị điều khiển giải mã lệnh Đơn vị điều khiển giải mã để xác định điều gì cần thực thi. Processor Devices Network Control 000000 00100 00010 00010 00000100000 Memory Input Datapath Output 3. Đơn vị điều khiển của bộ xử lý sẽ giải mã lệnh để biết cần bảo đường dữ liệu thực hiện điều gì. 29
  16. Tiếp theo, điều gì xảy ra? Processor Memory Devices 000000 00000 00101 0001000010000000 Network 000000 00100 00010 0001000000100000 100011 00010 01111 0000000000000000 Control 100011 00010 10000 0000000000000100 101011 00010 10000 0000000000000000 Input 101011 00010 01111 0000000000000100 000000 11111 00000 0000000000001000 Datapath Output Điều gì xảy ra tiếp theo (lệnh tiếp theo được tìm nạp/cách thức cho biết nơi mà lệnh được đặt trong bộ nhớ/ ). 31
  17. Bộ xử lý tìm nạp lệnh kế tiếp Bộ xử lý tìm nạp lệnh kế tiếp từ bộ nhớ. Processor Memory Devices 000000 00000 00101 0001000010000000 Network 000000 00100 00010 0001000000100000 100011 00010 01111 0000000000000000 Control 100011 00010 10000 0000000000000100 101011 00010 10000 0000000000000000 Input 101011 00010 01111 0000000000000100 000000 11111 00000 0000000000001000 Datapath Output Cách thức mà bộ xử lý biết ô nhớ nào trong bộ nhớ để tìm nạp lệnh tiếp theo? 33
  18. Tổ chức của bộ xử lý  Đơn vị điều khiển:  Quyết định lệnh nào là lệnh tiếp theo và nhập lệnh này từ bộ nhớ.  Giải mã lệnh.  Phân phát các tín hiệu “điều khiển cách thức” mà thông tin luân chuyển giữa những thành phần của đường dữ liệu.  Điều khiển những thao tác mà các đơn vị chức năng của đường dữ liệu thực hiện.  Đường dữ liệu:  Thực thi lệnh – các đơn vị chức năng (như là mạch cộng) và các vị trí nhớ (như là tập thanh ghi).  Liên kết nối các đơn vị chức năng sao cho lệnh có thể được thực thi theo yêu cầu.  Nạp dữ liệu từ bộ nhớ và lưu dữ liệu vào bộ nhớ. Đường dữ liệu nạp dữ liệu từ ô nhớ nào và lưu dữ liệu vào ô nhớ nào? 35
  19. Thiết bị xuất “xuất” dữ liệu Thiết bị xuất “xuất” dữ liệu trong bộ nhớ ra môi trường bên ngoài. Processor Devices Network Control Memory Input Datapath Output 00000100010100000000000000000000 00000000010011110000000000000100 00000011111000000000000000001000 37
  20. ISA của MIPS  Các loại lệnh Registers  Nạp/lưu bộ nhớ ( Load/Store)  Tính toán ( Computational) R0 - R31  Nhảy và rẽ nhánh (J ump and Branch)  Dấu chấm động ( Floating Point) - Bộ đồng xử lý. PC  Quản lý bộ nhớ ( Memory Management) HI  Đặc biệt ( Special) LO  3 khuôn dạng lệnh: tất cả đều rộng 32-bit. OP rs rt rd sa funct OP rs rt immediate OP jump target 39
  21. Các mảng phù hợp với nhau ra sao? Applications Operating System Compiler Firmware Kiến trúc tập Lệnh ISA Memory Processor I/O system network system Datapath & Control Digital Design Circuit Design  Kết hợp nhiều mức trừu tượng.  Chịu một tập các tác động thay đổi nhanh.  Thiết kế, đo đạc và đánh giá. 41