Bài giảng Hệ thống máy tính - Chương 4: Kiến trúc bộ xử lý - Nguyễn Kim Khánh
Nhiệm vụ của CPU:
Nhận lệnh (Fetch Instruction): CPU đọc lệnh từ bộ
nhớ.
Giải mã lệnh (Decode Instruction): xác định thao tác
mà lệnh yêu cầu.
Nhận dữ liệu (Fetch Data): nhận dữ liệu từ bộ nhớ
hoặc các cổng vào-ra.
Xử lý dữ liệu (Process Data): thực hiện phép toán số
học hay phép toán logic với các dữ liệu.
Ghi dữ liệu (Write Data): ghi dữ liệu ra bộ nhớ hay
cổng vào-ra
Các thành phần cơ bản của CPU
Đơn vị điều khiển (Control Unit - CU)
Đơn vị số học và logic (Arithmetic and
Logic Unit - ALU)
Tập thanh ghi (Register File - RF)
Đơn vị nối ghép bus (Bus Interface Unit -
BIU)
Bus bên trong (Internal Bus)
Trang 1
Trang 2
Trang 3
Trang 4
Trang 5
Trang 6
Trang 7
Trang 8
Trang 9
Trang 10
Tải về để xem bản đầy đủ
Bạn đang xem 10 trang mẫu của tài liệu "Bài giảng Hệ thống máy tính - Chương 4: Kiến trúc bộ xử lý - Nguyễn Kim Khánh", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
Tóm tắt nội dung tài liệu: Bài giảng Hệ thống máy tính - Chương 4: Kiến trúc bộ xử lý - Nguyễn Kim Khánh
ipeline lệnh 8 September 2009 46 NKK-HUT 2. Các kiểu thao tác cơ bản Chuyển dữ liệu Xử lý số học với số nguyên Xử lý logic Điều khiển vào-ra Chuyển điều khiển (rẽ nhánh) Điều khiển hệ thống 8 September 2009 47 NKK-HUT Các lệnh chuyển dữ liệu MOVE Copy dữ liệu từ nguồn đến đích LOAD Nạp dữ liệu từ bộ nhớ đến bộ xử lý STORE Cất dữ liệu từ bộ xử lý đến bộ nhớ EXCHANGE Trao đổi nội dung của nguồn và đích CLEAR Chuyển các bit 0 vào toán hạng đích SET Chuyển các bit 1 vào toán hạng đích PUSH Cất nội dung toán hạng nguồn vào ngăn xếp POP Lấy nội dung đỉnh ngăn xếp đưa đến toán hạng đích 8 September 2009 48 NKK-HUT Các lệnh số học ADD Cộng hai toán hạng SUBTRACT Trừ hai toán hạng MULTIPLY Nhân hai toán hạng DIVIDE Chia hai toán hạng ABSOLUTE Lấy trị tuyệt đối toán hạng NEGATE Đổi dấu toán hạng (lấy bù 2) INCREMENT Tăng toán hạng thêm 1 DECREMENT Giảm toán hạng đi 1 COMPARE Trừ hai toán hạng để lập cờ Bài giảng Hệ thống máy tính Nguyễn Kim Khánh - ĐHBKHN 13 8 September 2009 49 NKK-HUT Các lệnh logic AND Thực hiện phép AND hai toán hạng OR Thực hiện phép OR hai toán hạng XOR Thực hiện phép XOR hai toán hạng NOT Đảo bit của toán hạng (lấy bù 1) TEST Thực hiện phép AND hai toán hạng để lập cờ 8 September 2009 50 NKK-HUT Minh hoạ các lệnh AND, OR, XOR Giả sử có hai thanh ghi chứa dữ liệu như sau: (R1) = 1010 1010 (R2) = 0000 1111 R1 Å (R1) AND (R2) = 0000 1010 Phép toán AND dùng để xoá một số bit và giữ nguyên một số bit còn lại của toán hạng. R1 Å (R1) OR (R2) = 1010 1111 Phép toán OR dùng để thiết lập một số bit và giữ nguyên một số bit còn lại của toán hạng. R1 Å (R1) XOR (R2) = 1010 0101 Phép toán XOR dùng để đảo một số bit và giữ nguyên một số bit còn lại của toán hạng. 8 September 2009 51 NKK-HUT Các lệnh logic (tiếp) SHIFT Dịch trái (phải) toán hạng ROTATE Quay trái (phải) toán hạng 8 September 2009 52 NKK-HUT Các thao tác SHIFT và ROTATE Bài giảng Hệ thống máy tính Nguyễn Kim Khánh - ĐHBKHN 14 8 September 2009 53 NKK-HUT Các lệnh vào ra chuyên dụng INPUT Copy dữ liệu từ một cổng xác định đưa đến đích OUTPUT Copy dữ liệu từ nguồn đến một cổng xác định 8 September 2009 54 NKK-HUT Các lệnh chuyển điều khiển JUMP (BRANCH) Lệnh nhảy không điều kiện: nạp vào PC một địa chỉ xác định JUMP CONDITIONAL Lệnh nhảy có điều kiện: điều kiện đúngÆ nạp vào PC một địa chỉ xác định điều kiện saiÆ không làm gì cả CALL Lệnh gọi chương trình con: Cất nội dung của PC (địa chỉ trở về) ra một vị trí xác định (thường ở Stack) Nạp vào PC địa chỉ của lệnh đầu tiên của chương trình con RETURN Lệnh trở về từ chương trình con: Khôi phục địa chỉ trở về trả lại cho PC để trở về chương trình chính 8 September 2009 55 NKK-HUT Lệnh rẽ nhánh không điều kiện Chuyển tới thực hiện lệnh ở vị trí có địa chỉ XXX: PC Å XXX 8 September 2009 56 NKK-HUT Lệnh rẽ nhánh có điều kiện Trong lệnh có kèm theo điều kiện Kiểm tra điều kiện trong lệnh: Nếu điều kiện đúngÆ chuyển tới thực hiện lệnh ở vị trí có địa chỉ XXX PC Å XXX Nếu điều kiện saiÆ chuyển sang thực hiện lệnh_kế_tiếp Điều kiện thường được kiểm tra thông qua các cờ Có nhiều lệnh rẽ nhánh có điều kiện Bài giảng Hệ thống máy tính Nguyễn Kim Khánh - ĐHBKHN 15 8 September 2009 57 NKK-HUT Minh hoạ lệnh rẽ nhánh có điều kiện 8 September 2009 58 NKK-HUT Lệnh CALL và RETURN Lệnh gọi chương trình con: lệnh CALL Cất nội dung PC (chứa địa chỉ của lệnh_kế_tiếp) ra Stack Nạp vào PC địa chỉ của lệnh đầu tiên của chương trình con được gọi Æ Bộ xử lý được chuyển sang thực hiện chương trình con tương ứng Lệnh trở về từ chương trình con: lệnh RETURN Lấy địa chỉ của lệnh_kế_tiếp được cất ở Stack nạp trả lại cho PC Æ Bộ xử lý được điều khiển quay trở về thực hiện tiếp lệnh nằm sau lệnh CALL 8 September 2009 59 NKK-HUT Minh hoạ lệnh CALL và RETURN 8 September 2009 60 NKK-HUT Gọi các thủ tục lồng nhau Bài giảng Hệ thống máy tính Nguyễn Kim Khánh - ĐHBKHN 16 8 September 2009 61 NKK-HUT Sử dụng Stack 8 September 2009 62 NKK-HUT Các lệnh điều khiển hệ thống HALT Dừng thực hiện chương trình WAIT Tạm dừng thực hiện chương trình, lặp kiểm tra điều kiện cho đến khi thoả mãn thì tiếp tục thực hiện NO OPERATION Không thực hiện gì cả LOCK Cấm không cho xin chuyển nhượng bus UNLOCK Cho phép xin chuyển nhượng bus 8 September 2009 63 NKK-HUT 3. Các phương pháp định địa chỉ (addressing modes) Khái niệm về định địa chỉ (addressing) Toán hạng của lệnh có thể là: Một giá trị cụ thể nằm ngay trong lệnh Nội dung của thanh ghi Nội dung của ngăn nhớ hoặc cổng vào-ra Phương pháp định địa chỉ là cách thức địa chỉ hóa trong trường địa chỉ của lệnh để xác định nơi chứa toán hạng 8 September 2009 64 NKK-HUT Các phương pháp định địa chỉ thông dụng Định địa chỉ tức thì Định địa chỉ thanh ghi Định địa chỉ trực tiếp Định địa chỉ gián tiếp qua thanh ghi Định địa chỉ gián tiếp Định địa chỉ dịch chuyển Bài giảng Hệ thống máy tính Nguyễn Kim Khánh - ĐHBKHN 17 8 September 2009 65 NKK-HUT Định địa chỉ tức thì Toán hạng nằm ngay trong Trường địa chỉ của lệnh Chỉ có thể là toán hạng nguồn Ví dụ: ADD R1, 5 ; R1Å R1+5 Không tham chiếu bộ nhớ Truy nhập toán hạng rất nhanh Dải giá trị của toán hạng bị hạn chế 8 September 2009 66 NKK-HUT Sơ đồ định địa chỉ tức thì 8 September 2009 67 NKK-HUT Định địa chỉ thanh ghi Toán hạng được chứa trong thanh ghi có tên trong Trường địa chỉ Ví dụ: ADD R1, R2 ; R1Å R1+R2 Số lượng thanh ghi ítÆ Trường địa chỉ chỉ cần ít bit Không tham chiếu bộ nhớ Truy nhập toán hạng nhanh Tăng số lượng thanh ghiÆ hiệu quả hơn 8 September 2009 68 NKK-HUT Sơ đồ định địa chỉ thanh ghi Bài giảng Hệ thống máy tính Nguyễn Kim Khánh - ĐHBKHN 18 8 September 2009 69 NKK-HUT Định địa chỉ trực tiếp Toán hạng là ngăn nhớ có địa chỉ được chỉ ra trực tiếp trong Trường địa chỉ của lệnh Ví dụ: ADD R1, A ;R1 Å R1 + (A) Cộng nội dung thanh ghi R1 với nội dung của ngăn nhớ có địa chỉ là A Tìm toán hạng trong bộ nhớ ở địa chỉ A CPU tham chiếu bộ nhớ một lần để truy nhập dữ liệu 8 September 2009 70 NKK-HUT Sơ đồ định địa chỉ trực tiếp 8 September 2009 71 NKK-HUT Định địa chỉ gián tiếp qua thanh ghi Toán hạng là ngăn nhớ có địa chỉ nằm trong thanh ghi Trường địa chỉ cho biết tên thanh ghi đó Thanh ghi có thể là ngầm định Thanh ghi này được gọi là thanh ghi con trỏ Vùng nhớ có thể được tham chiếu là lớn (2n), (với n là độ dài của thanh ghi) 8 September 2009 72 NKK-HUT Sơ đồ định địa chỉ gián tiếp qua thanh ghi Bài giảng Hệ thống máy tính Nguyễn Kim Khánh - ĐHBKHN 19 8 September 2009 73 NKK-HUT Định địa chỉ gián tiếp qua ngăn nhớ Ngăn nhớ được trỏ bởi Trường địa chỉ của lệnh chứa địa chỉ của toán hạng Có thể gián tiếp nhiều lần Giống như khái niệm biến con trỏ và biến động trong lập trình CPU phải thực hiện tham chiếu bộ nhớ nhiều lần để tìm toán hạngÆ chậm Vùng nhớ có thể được tham chiếu là lớn 8 September 2009 74 NKK-HUT Sơ đồ định địa chỉ gián tiếp qua ngăn nhớ 8 September 2009 75 NKK-HUT Định địa chỉ dịch chuyển Để xác định toán hạng, Trường địa chỉ chứa hai thành phần: Tên thanh ghi Hằng số Địa chỉ của toán hạng = nội dung thanh ghi + hằng số Thanh ghi có thể được ngầm định 8 September 2009 76 NKK-HUT Sơ đồ định địa chỉ dịch chuyển Bài giảng Hệ thống máy tính Nguyễn Kim Khánh - ĐHBKHN 20 8 September 2009 77 NKK-HUT Các dạng của định địa chỉ dịch chuyển Địa chỉ hoá tương đối với PC Thanh ghi là Bộ đếm chương trình PC Toán hạng có địa chỉ cách ngăn nhớ được trỏ bởi PC một độ lệch xác định Định địa chỉ cơ sở Thanh ghi chứa địa chỉ cơ sở Hằng số là chỉ số Định địa chỉ chỉ số Hằng số là địa chỉ cơ sở Thanh ghi chứa chỉ số 8 September 2009 78 NKK-HUT 4.3. Hoạt động của CPU Chu trình lệnh Nhận lệnh Giải mã lệnh Nhận toán hạng Thực hiện lệnh Cất toán hạng Ngắt 8 September 2009 79 NKK-HUT Giản đồ trạng thái chu trình lệnh 8 September 2009 80 NKK-HUT Nhận lệnh CPU đưa địa chỉ của lệnh cần nhận từ bộ đếm chương trình PC ra bus địa chỉ CPU phát tín hiệu điều khiển đọc bộ nhớ Lệnh từ bộ nhớ được đặt lên bus dữ liệu và được CPU copy vào thanh ghi lệnh IR CPU tăng nội dung PC để trỏ sang lệnh kế tiếp Bài giảng Hệ thống máy tính Nguyễn Kim Khánh - ĐHBKHN 21 8 September 2009 81 NKK-HUT Sơ đồ mô tả quá trình nhận lệnh 8 September 2009 82 NKK-HUT Giải mã lệnh Lệnh từ thanh ghi lệnh IR được đưa đến đơn vị điều khiển Đơn vị điều khiển tiến hành giải mã lệnh để xác định thao tác phải thực hiện Giải mã lệnh xảy ra bên trong CPU 8 September 2009 83 NKK-HUT Nhận dữ liệu CPU đưa địa chỉ của toán hạng ra bus địa chỉ CPU phát tín hiệu điều khiển đọc Toán hạng được đọc vào CPU Tương tự như nhận lệnh 8 September 2009 84 NKK-HUT Nhận dữ liệu gián tiếp CPU đưa địa chỉ ra bus địa chỉ CPU phát tín hiệu điều khiển đọc Nội dung ngăn nhớ được đọc vào CPU, đó chính là địa chỉ của toán hạng Địa chỉ này được CPU phát ra bus địa chỉ để tìm ra toán hạng CPU phát tín hiệu điều khiển đọc Toán hạng được đọc vào CPU Bài giảng Hệ thống máy tính Nguyễn Kim Khánh - ĐHBKHN 22 8 September 2009 85 NKK-HUT Sơ đồ tả nhận toán hạng gián tiếp 8 September 2009 86 NKK-HUT Thực hiện lệnh Có nhiều dạng tuỳ thuộc vào lệnh Có thể là: Đọc/Ghi bộ nhớ Vào/Ra Chuyển giữa các thanh ghi Thao tác số học/logic Chuyển điều khiển (rẽ nhánh) ... 8 September 2009 87 NKK-HUT Ghi toán hạng CPU đưa địa chỉ ra bus địa chỉ CPU đưa dữ liệu cần ghi ra bus dữ liệu CPU phát tín hiệu điều khiển ghi Dữ liệu trên bus dữ liệu được copy đến vị trí xác định 8 September 2009 88 NKK-HUT Sơ đồ mô tả quá trình ghi toán hạng Bài giảng Hệ thống máy tính Nguyễn Kim Khánh - ĐHBKHN 23 8 September 2009 89 NKK-HUT Ngắt Nội dung của bộ đếm chương trình PC (địa chỉ trở về sau khi ngắt) được đưa ra bus dữ liệu CPU đưa địa chỉ (thường được lấy từ con trỏ ngăn xếp SP) ra bus địa chỉ CPU phát tín hiệu điều khiển ghi bộ nhớ Địa chỉ trở về trên bus dữ liệu được ghi ra vị trí xác định (ở ngăn xếp) Địa chỉ lệnh đầu tiên của chương trình con điều khiển ngắt được nạp vào PC 8 September 2009 90 NKK-HUT Sơ đồ mô tả chu trình ngắt 8 September 2009 91 NKK-HUT 4.4. Kỹ thuật đường ống lệnh Khái niệm: Đường ống lệnh (Instruction Pipelining) là kỹ thuật chia chu trình lệnh thành các công đoạn và cho phép thực hiện gối lên nhau (như dây chuyền lắp ráp) Chẳng hạn có 6 công đoạn: Nhận lệnh (Fetch Instruction - FI) Giải mã lệnh (Decode Instruction - DI) Tính địa chỉ toán hạng (Calculate Operand Address-CO) Nhận toán hạng (Fetch Operands - FO) Thực hiện lệnh (Execute Instruction - EI) Ghi toán hạng (Write Operands - WO) 8 September 2009 92 NKK-HUT Giản đồ thời gian cho đường ống lệnh Bài giảng Hệ thống máy tính Nguyễn Kim Khánh - ĐHBKHN 24 8 September 2009 93 NKK-HUT Các Hazard của đường ống lệnh Hazard cấu trúc Hazard dữ liệu Hazard điều khiển 8 September 2009 94 NKK-HUT Hazard về cấu trúc Nguyên nhân: Dùng chung tài nguyên Khắc phục: nhân tài nguyên để tránh xung đột Làm trễ Ví dụ: Bus dữ liệu: truyền lệnh và dữ liệu Æ Bus lệnh riêng, bus dữ liệu riêng (cache lệnh và cache dữ liệu) 8 September 2009 95 NKK-HUT Ví dụ Hazard về cấu trúc conflict on arithmetic unit cache miss TLB miss MULT A,B,C MULT D,E,F I D F E E E W I D F F F E E E W 3 clocks necessary for multiplication stall 8 September 2009 96 NKK-HUT Hazard về dữ liệu Nguyên nhân: lệnh sau sử dụng dữ liệu kết quả của lệnh trước Các dạng: RAW (Read After Write) WAR (Write After Read) WAW (Write After Write) Bài giảng Hệ thống máy tính Nguyễn Kim Khánh - ĐHBKHN 25 8 September 2009 97 NKK-HUT Sự phụ thuộc về dữ liệu RAW WAR WAW ADD A,B,C ADD E,A,D ADD A,B,C ADD B,D,E ADD A,B,C ADD A,D,E Write-A must be earlier than Read-A Read-B must be earlier than Write-B First Write-A must be earlier Than second Write-A 8 September 2009 98 NKK-HUT WAR and WAW WAR WAW ADD A,B,C ADD B,D,E ADD A,B,C ADD A,D,E Read-B is earlier than Write-B first Write-A is earlier than second Write-A I D F E W I D F E W Write B Read B I D F E W I D F E W Write A Write A no conflict at in-order pipeline conflict at out-of-order pipeline 8 September 2009 99 NKK-HUT RAW ADD A,B,C ADD E,A,D I D F E W I D F E C I D F E W I D D D F E W Read A Write A stall Write-A must be earlier Than Read-A Write A Read A 8 September 2009 100 NKK-HUT Hazard điều khiển BEQ A, B, Label LOAD C, X ・・・・ Label: LOAD C, Y I D F E C I D F E C set PC stall Wait for branch address calculation next instruction to a branch instruction cannot be fetched until branch condition defined and PC updated Bài giảng Hệ thống máy tính Nguyễn Kim Khánh - ĐHBKHN 26 8 September 2009 101 NKK-HUT 4.5. Các kiến trúc song song mức lệnh Siêu đường ống (Superpipeline & Hyperpipeline) Siêu vô hướng (Superscalar) VLIW (Very Long Instruction Word) 8 September 2009 102 NKK-HUT Superpipeline 8 September 2009 103 NKK-HUT Superscalar 8 September 2009 104 NKK-HUT VLIW (Very Long Instruction Word) Bài giảng Hệ thống máy tính Nguyễn Kim Khánh - ĐHBKHN 27 8 September 2009 105 NKK-HUT 4.6. Một số kiến trúc thông dụng 1. Kiến trúc Intel Kiến trúc 4-bit: 4004 Kiến trúc 8-bit: 8008,8080,8085 Kiến trúc 16-bit: 8086/8088,80186,80286 Kiến trúc 32-bit: 80386, 80486, Pentium,Pentium II, Celeron, Pentium III, Pentium 4, Core Kiến trúc 64-bit: Itanium, Core 2 8 September 2009 106 NKK-HUT Kiến trúc 16-bit (IA-16) Các thanh ghi bên trong: 16-bit Xử lý các phép toán số nguyên với 16-bit Quản lý bộ nhớ theo đoạn 64KBytes Mở đầu cho dòng máy tính IBM-PC 8 September 2009 107 NKK-HUT Kiến trúc 32-bit (IA-32) Các thanh ghi bên trong: 32-bit Xử lý các phép toán số nguyên với 32-bit Có ba chế độ làm việc: Chế độ 8086 thực (Real 8086 mode): làm việc như một bộ xử lý 8086 Chế độ 8086 ảo (Virtual 8086 mode): làm việc như nhiều bộ xử lý 8086 (đa nhiệm 16-bit) Chế độ bảo vệ (Protected mode) đa nhiệm 32-bit quản lý bộ nhớ ảo Xử lý các phép toán số dấu phẩy động (từ 80486) 8 September 2009 108 NKK-HUT Kiến trúc 64-bit (IA-64) Các thanh ghi bên trong: 64-bit Xử lý các phép toán số nguyên với 64-bit Xử lý các phép toán số dấu phẩy động Không tương thích phần cứng với các bộ xử lý trước đó Tương thích phần mềm bằng cách giả lập môi trường Bài giảng Hệ thống máy tính Nguyễn Kim Khánh - ĐHBKHN 28 8 September 2009 109 NKK-HUT 2. Một số kiến trúc khác Kiến trúc MIPS (đã học) Kiến trúc ARM Kiến trúc Sun SPARC Kiến trúc PowerPC 8 September 2009 110 NKK-HUT Hết chương 4
File đính kèm:
- bai_giang_he_thong_may_tinh_chuong_4_kien_truc_bo_xu_ly_nguy.pdf