Kiến Trúc Mày Tính - Đại Học Thủy Lợi.pdf

335 8 0
Kiến Trúc Mày Tính - Đại Học Thủy Lợi.pdf

Đ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

KIEN TRUC MAY TINH TRƯỜNG ĐẠI HỌC THỦY LỢI KHOA CÔNG NGHỆ THÔNG TIN Bộ MÔN KỸ THUẬT MÁY TÍNH VÀ MẠNG Phạm Thanh Bình (Chủ biên) Nguyễn Thị Phương Thảo Nguyễn Hằng Phương KIẾN TRÚC MÁY TÍNH NHÀ XUẤT BẢ[.]

KIEN TRUC MAY TINH TRƯỜNG ĐẠI HỌC THỦY LỢI KHOA CƠNG NGHỆ THƠNG TIN Bộ MƠN KỸ THUẬT MÁY TÍNH VÀ MẠNG Phạm Thanh Bình (Chủ biên) Nguyễn Thị Phương Thảo - Nguyễn Hằng Phương KIẾN TRÚC MÁY TÍNH NHÀ XUẤT BẢN BÁCH KHOA HÀ NỘI MỤC LỤC Danh mục từ viết tắt 13 Danh mục bảng biểu .16 Danh mục hình vẽ 18 Lời nói đầu 25 Chương 1.1 Giói thiệu 27 Cơ sở toán học hệ đếm .27 1.1.1 Hệ thập phân 27 1.1.2 Hệ đếm có vị trí 29 1.1.3 Hệ nhị phân 29 1.1.4 Chuyến đối nhị phân thập phân 30 1.1.5 Hệ thập lục phân 34 1.2 Tổ chức kiến trúc 36 1.3 Cấu trúc chức 37 1.3.1 Chức 38 1.3.2 Cấu trúc 41 1.4 Câu hỏi 43 Chương 2.1 Sự phát triển máy tính hiệu 45 Lịch sử máy tính 45 2.1.1 Thế hệ đầu tiên: Đèn ống chân không 45 2.1.2 Thế hệ thứ hai: Transistor 52 2.1.3 Thế hệ thứ ba: Mạch tích hợp 53 2.1.4 Các hệ 59 2.2 Các đặc điểm thiết kế máy tính 63 2.2.1 Tốc độ vi xử lý 63 2.2.2 Cân hiệu suất 64 2.2.3 Cải tiến kiến trúc tổ chức chip 65 Kiến trúc máy tính 2.3 Đa nhân, MIC GPU 66 2.4 Kiến trúc Intel x86 67 2.5 Hệ thống nhúng kiến trúc ARM 68 2.5.1 Hệ thống nhúng 68 2.5.2 Sự phát triển ARM 71 2.6 Câu hỏi .72 Chương Chức kết nối máy tính 73 3.1 Các thành phần máy tính 73 3.2 Chức máy tính 76 3.2.1 Truy xuất thực thi lệnh 76 3.2.2 Ngắt 80 3.2.3 Chức Vào/Ra 87 3.3 Cấu trúc kết nối 88 3.4 Kết nối bus 89 3.4.1 Cấu trúc bus 90 3.4.2 Mơ hình phân cấp đa bus 91 3.4.3 Các thành phần thiết kế bus 93 3.5 Kết nối điểm-điểm 97 3.5.1 Lớp vật lý QPI 99 3.5.2 Lớp liên kết QPI 100 3.5.3 Lớp định tuyến QPI 101 3.5.4 Lớp giao thức QPI 101 3.6 PCI Express 102 3.6.1 Kiến trúc vật lý logic PCI 102 3.6.2 Lóp vật lý PCIe 104 3.6.3 Lớp giao vận PCIe 106 3.6.4 Lớp liên kết liệu PCIe .108 3.7 Câu hỏi 109 Chương Bộ nhớ cache 110 4.1 Tổng quan hệ thống nhớ máy tính 110 4.1.1 Các đặc tính hệ thống nhớ 110 4.1.2 Phân cấp nhớ 113 4.2 Nguyên lý nhớ cache .115 4.3 Các yếu tố thiết kế cache 118 4.3.1 Địa cache 119 4.3.2 Kích thước cache 120 4.3.3 Hàm ánh xạ 122 4.3.4 Thuật toán thay 132 4.3.5 Chính sách ghi 133 4.3.6 Kích thước line .134 4.3.7 Số lượng cache 134 4.4 Tổ chức cache Pentium 137 4.5 Câu hỏi 1399 Chương Bộ nhớ 140 5.1 Bộ nhớ bán dẫn 140 5.1.1 Tổ chức 140 5.1.2 DRAM SRAM 141 5.1.3 Các loại ROM - Bộnhớ đọc 143 5.1.4 Chip logic 145 5.1.5 Đóng gói chip 146 5.1.6 Tổ chức module nhớ .148 5.1.7 Tố chức nhớ đanxen 149 5.2 Sửa lỗi 149 5.3 Tổ chức DRAM mở rộng 155 Kiến trúc máy tính 5.3.1 SDRAM - DRAMđồng 156 5.3.2 Rambus DRAM 158 5.3.1 DDR SDRAM 159 5.3.1 Cache DRAM 159 5.4 Câu hỏi 160 Chương 6.1 Bộ nhớ 162 Đĩa từ 162 6.1.1 Cơ chế đọc ghi từ 162 6.1.2 Tổ chức liệu 163 6.1.3 Đặc tính vật lý 165 6.1.4 Thông số hiệu suất đĩa 167 6.2 Raid 169 6.2.1 RAID cấp 171 6.2.2 RAID cấp 174 6.2.3 RAID cấp 175 6.2.4 RAID cấp 175 6.2.5 RAID cấp 175 6.2.6 RAID cấp 176 6.2.7 RAID cấp 176 6.3 Ổ đĩa bán dẫn SSD 178 6.3.1 Bộ nhớ flash 178 6.3.2 SSD so với HDD 179 6.3.3 Tổ chức SSD 180 6.3.4 Vấn đề thực tế 181 6.4 Bộ nhớ quang 182 6.4.1 Đĩa CD 183 6.4.2 CD-R 186 6.4.3 CD-RW 186 6.4.4 DVD 186 6.4.5 Đĩa quang độ phân giải cao 188 6.5 Băng từ 188 6.6 Câu hỏi 190 Chương 7.1 Module vào/ra (I/O) 191 Thiết bị ngoại vi 191 7.1.1 Bàn phím/Màn hình 193 7.1.2 Ô cứng .194 7.2 Các module I/O 194 7.2.1 Chức module 194 7.2.2 Cấu trúc module I/O 196 7.3 Các kỹ thuật vào/ra 197 7.3.1 I/O chương trình 198 7.3.2 I/O điều khiển ngắt 201 7.3.3 Cơ chế DMA - Truy cập nhớ trực tiếp 210 7.4 Kênh vào/ra Bộ xử lý vào/ra 215 7.4.1 Quá trình phát triên chức I/O 215 7.4.2 Đặc điểm kênh I/O 216 7.5 Giao tiếp 218 7.5.1 Các loại giao tiếp 218 7.5.2 Cấu hình điểm-điểm đa điểm 219 7.6 Câu hỏi 219 Chương Tính tốn số học 220 8.1 Khối tính tốn số học logic (ALU) 220 8.2 Biểu diễn số nguyên máy tính 220 8.2.1 Số nguyên không dấu 221 Kiến trúc máy tính 10 8.2.2 8.3 Số ngun có dấu 222 Các phép tốn số học vói số nguyên 228 8.3.1 Phép đảo dấu 228 8.3.2 Phép toán cộng phép toán trừ 230 8.3.1 Phép nhân 232 8.3.2 Phép chia 241 8.4 Biểu diễn dấu chấm động 244 8.4.1 Nguyên tắc 244 8.4.2 Chuẩn IEEE cho biếu diễn số nhị phân dấu chấm động 248 8.5 Các phép tốn vói dấu chấm động 254 8.5.1 Phép cộng phép trừ 255 8.5.2 Phép nhân phép chia 257 8.5.3 Độ xác phép tốn 260 8.5.4 Chuẩn IEEE với phép toán số học nhị phân dấu chấm động 261 8.6 Câu hỏi 263 Chương 9.1 Tập lệnh: Đặc điếm chức 264 Đặc điểm lệnh máy 264 9.1.1 Các thành phần lệnh máy 264 9.1.2 Biểu diễn lệnh 265 9.1.3 Phân loại lệnh 267 9.1.4 Số lượng địa lệnh 268 9.1.5 Các vấn đề thiết kế tập lệnh 270 9.2 Các kiểu toán hạng .271 9.2.1 Số 271 9.2.2 Ký tự 272 9.2.3 Dữ liệu logic 273 9.3 Kiểu liệu Intel x86 ARM 273 Chương 11: cấu trúc chức xừ lý 321 Tuy nhiên, để đon giản hóa phần cứng kỹ thuật đường ống, ta giả sử lệnh cần có sáu giai đoạn Ngoài ra, giả thiết tất giai đoạn thực song song, khơng có xung đột nhớ Giả thiết giai đoạn FI, FO, wo có liên quan đến việc truy cập nhớ Trong sơ đồ trên, tất truy cập xảy đồng thời Hầu hết hệ thống nhớ không cho phép điều Tuy nhiên, giá trị mong muốn nằm cache, giai đoạn FO wo rỗng Do đó, phần lớn thời gian, xung đột nhớ không làm chậm trình Cịn số yếu tố khác gây hạn chế việc nâng cao hiệu suat Neu sáu giai đoạn không diễn khoảng thời gian nhau, có khoảng thời gian chờ đợi giai đoạn đường ống, thảo luận phần kỹ thuật đường ống hai giai đoạn Lệnh rẽ nhánh có điều kiện khó khăn khác, loại bỏ vài lệnh truy xuất Tương tự, ngắt kiện khơng đốn trước Hình 11.11 cho thấy ảnh hưởng nhánh có điều kiện, sử dụng chương trình giống Hình 11.10 Giả sử lệnh nhánh có điều kiện rẽ tới lệnh 15 Nếu lệnh chưa thi hành, khơng có cách biết lệnh cần thực thi Trong ví dụ này, đường ống cần tải lệnh theo thứ tự (lệnh 4) xử lý Trong Hình 11.10, nhánh khơng thực hiện, ta nhận lợi ích hiệu suất tồn phần Trong Hình 11.11, nhánh chọn Điều xác định kết thúc đơn vị thời gian Tại thời điếm này, đường ống phải xóa lệnh khơng hữu ích Trong đơn vị thời gian 8, lệnh 15 vào đường ống Khơng có lệnh hồn thành đơn vị thời gian từ đến 12; trả giá hiệu hoạt động ta dự đốn trước nhánh Hình 11.12 cho thấy logic cần thiết để kỳ thuật đường ống xử lý nhánh ngất Thời gian Lệnh Lệnh Lệnh Lệnh Lệnh Lệnh Lệnh Lệnh 15 Lệnh 16 Trả giá cho rè nhánh FI DI CO FO EI wo FI DI CO FO EI wo FI DI CO FO EI FI DI CO FO FI DI CO FI DI 10 11 12 13 DI CO FO EI wo FI DI CO FO EI 14 wo FI FI WO Hình 11.11 Anh hưởng nhánh có điều kiện tới hoạt động đường ống lệnh Kiến trúc máy tính 322 Cũng có số vấn đề khác phát sinh kỹ thuật đường ống sáu giai đoạn Giai đoạn CO phụ thuộc vào nội dung ghi mà nội dung bị thay đổi lệnh phía trước nằm pipeline Các xung đột ghi xung đột nhớ khác xảy Hệ thống phải có logic để xử lý kiểu xung đột Để làm rõ hoạt động đường ống, ta xem xét cách mơ tả khác Hình 11.10 11.11 cho thấy diễn biến theo thời gian trục ngang, với dòng diễn biến lệnh Hình 11.13 thê chuỗi kiện, diễn biến thời gian theo chiều dọc từ xuống, dòng thể trạng thái đường ống thời điểm định Trong Hình 11.13a (tương ứng với Hình 11.10), thời điểm 6, đường ống lấp đầy lệnh khác giai đoạn thi hành khác nhau; đường ống đầy thời điểm 9; ta giả sử lệnh 19 lệnh cuối thực thi Trong Hình 11.13b, (tương ứng với Hình 11.11), đường ống đầy thời điểm Tại thời điểm 7, lệnh giai đoạn thực thi thực rẽ nhánh đến lệnh 15 Tại đây, lệnh 14 đến 17 giải phóng khỏi đường ống, thời điểm 8, có hai lệnh đường ống, 13 115 Hình 11.12 Đường ông lệnh CPU sáu giai đoạn Chương 11: Câu trúc chức nâng xử lý n DI CO ro • 12 II 13 12 II 14 13 12 II 15 14 13 12 II 16 15 14 13 12 j n El «o »1 i 323 II 12 DI CO FO E1 W() II 13 12 II 14 13 12 II 15 14 13 12 II II 16 15 14 13 12 II 16 15 14 13 12 17 16 15 14 13 12 17 18 17 16 15 14 13 115 19 18 17 16 15 14 116 115 19 18 17 16 15 10 19 18 17 16 II 19 18 17 12 19 18 13 116 115 19 14 116 • 10 II 12 13 14 (a) Không ĩê nhánh 13 116 115 116 115 116 115 (b) Rê nhánh có diêu kiên Hình 11.13 Một cách mô tã khác đường ống 11.4.2 Hazard kỹ thuật đường ống Trong tiểu mục tnrớc, đà đề cập đến số tình có the làm giảm hiệu suất pipeline Trong tiếu mục ta xem xét vấn đề cách có hộ thống Hazard kỷ thuật dường ống xung đột dường ống, xáy phan toàn dường ong phai ngừng lại vi điều kiện không cho phép tiếp lục thực Sự ngừng đường ống cỏn dược gọi pipeline bubble Có ba loại hazard đường ong: tài nguyên, dừ liệu vã điểu khiển 11.4.2.1 Hazard tài nguyên Hazard tài nguyên (xung đột tài nguyên) xây hai lệnh (hoặc nhiều hơn) nàm dường ống cần sứ dụng nguồn tài nguyên giống Kết lệnh thực song song mà phai thực lằn lượt phần cùa đường ong Hazard tài nguyên gọi hazard cấu trúc Xét ví dụ dơn gian vê hazard lài nguyên Gia sư dường ông dơn gian gơm năm giai đoạn, dó mỏi giai doạn chiêm chu kỳ dỏng hị Hình l l.!4a mơ tá trưởng hợp lý tương, dó cử moi chu kỳ dơng hơ lại có lệnh vào đường ơng Bây gia sứ ràng nhớ có công nhát tát cá hành dộng truy xuàt lệnh, dọc ghi liệu phai dược thực lượt timg hành dộng Dóng thời, bó qua Kiến trúc máy tính 324 nhớ cache Trong trường hợp này, hành động đọc toán hạng ghi tốn hạng từ nhớ khơng thê thực song song với hành động truy xuất lệnh Điều mơ tả Hình 11.14b, giả sử toán hạng nguồn cùa lệnh II nằm nhớ khơng nằm ghi Do đó, giai đoạn truy xuất lệnh đường ống phải nhàn rỗi (idle) chu kỳ trước bắt đầu truy xuất lệnh lệnh 13 Hình vẽ giả thiết tất toán hạng khác nằm ghi Chu kỳ đông hỏ 123456789 FI DI FO EI wo FI DI FO EI wo FI DI FO EI wo FI DI FO EI wo (a) Pipeline năm giai đoạn, trường họp lý tưởng Chu kỳ đông hô 123456789 II FI 12 DI FO EI wo FI DI FO EI wo Idle FI DI FO EI wo II DI FO EI «D- 13 14 wo (b) Tốn hạng ngn lệnh II nhớ Hình 11.14 Ví dụ hazard tài nguyên Một ví dụ khác xung đột tài nguyên tình nhiều lệnh sẵn sàng vào giai đoạn thi hành lệnh EI có ALƯ Giải pháp cho hazard tài nguyên tăng cường tài nguyên sẵn có, chẳng hạn sử dụng nhiều cổng vào nhớ nhiều khối ALƯ 11.4.2.2 Hazard liệu Hazard liệu xảy có xung đột việc truy cập vị trí tốn hạng Nói chung, hazard dạng này: Hai lệnh chương trình thi hành theo trình tự hai truy cập vào toán hạng nhớ toán hạng ghi cụ thể Nếu hai lệnh thi hành theo trình tự nghiêm ngặt khơng có vấn đề xảy Tuy nhiên, chúng thực đường ống, giá trị tốn hạng cập nhật tạo kết Chương 11: cấu trúc chức xừ lý 325 khác với kết việc thi hành nghiêm ngặt Nói cách khác, chương trình tạo kết khơng xác sử dụng đường ống Ví dụ, xét chuỗi lệnh máy x86 sau: ADD EAX, EBX /* EAX = EAX + EBX SUB ECX, EAX /* ECX = ECX -EAX Lệnh cộng nội dung ghi 32 bit EAX với EBX lưu trữ kết EAX Lệnh thứ hai lấy nội dung ECX trừ EAX từ lưu trữ kết ECX Hình 11.16 mơ tả diễn biến đường ống Lệnh ADD cập nhật ghi EAX kết thúc giai đoạn 5, xảy chu kỳ đồng hồ Tuy nhiên, lệnh SUB cần giá trị vào đầu giai đoạn 2, xảy chu kỳ đồng hồ Đe trì hoạt động xác, đường ống phải ngừng lại hai chu kỳ đồng hồ Do đó, khơng có phần cứng đặc biệt thuật tốn phịng tránh cụ the, hazard liệu kiểu dẫn đến việc sử dụng đường ống khơng hiệu Có ba loại hazard liệu: • Đọc sau ghi (RAW - Read After Write): Một lệnh thay đơi nội dung vị trí nhớ ghi lệnh đọc liệu vị trí nhớ ghi Hazard xảy việc đọc diễn trước hành động ghi hồn tất • Ghi sau đọc (WAR - Write After Read): Một lệnh đọc nội dung vị trí nhớ ghi lệnh ghi vào vị trí Hazard xảy hành động ghi hoàn thành trước diễn hành động đọc • Ghi sau ghi (WAW - Write After Write): Hai lệnh ghi vào vị trí Hazard xảy hành động ghi diễn theo trình tự ngược lại với trình tự dự định Hình 11.15 đưa ví dụ hazard RAW 11.4.2.3 Hazard điều khiển Hazard điều khiến, gọi hazard rẽ nhánh, xảy đường ống đưa định sai dự báo nhánh đưa sai lệnh vào đường ống sau phải bỏ chúng Chúng ta thảo luận giải pháp để đối phó với hazard điều khiển phần 11.4.3 Đối phó với hazard rẽ nhánh Đảm bảo luồng lệnh ổn định đưa đến giai đoạn đường ống vấn đề thiết kế kỹ thuật đường ống lệnh Như thấy, Kiến trúc máy tính 326 Chu kỳ đồng hồ 1234 ADD EAX, EBX F1 SUB ECX, EAX DI FO FI DI EI 14 10 wo Idle FI 13 6789 FO EI wo DI FO E1 vvo FI DI FO E1 wo Hình 11.15 Ví dụ hazard liệu trở ngại vấn đề lệnh rẽ nhánh có điều kiện Chừng mà lệnh chưa thi hành, khơng xác định nhánh có thực hay khơng Có nhiều phương pháp để đối phó với nhánh có điều kiện sau: • Sử dụng nhiều luồng • Truy xuất trước mục tiêu rẽ nhánh • Bộ đệm vịng lặp • Dự đốn nhánh • Làm trễ nhánh 11.4.3.1 Sử dụng nhiều luồng Lệnh rẽ nhánh có thê gây ảnh hường cho đường ống đơn giản phải chọn hai lệnh cho lần truy xuất chọn sai Một phương pháp đưa chép lại phần mở đầu đường ống cho phép đường ống truy xuất hai lệnh, sử dụng hai luồng khác Phương pháp có hai vấn đề: • Nhiều đường ống kéo theo việc có trễ tranh chấp đế truy cập vào ghi nhớ • Có thể có thêm lệnh rẽ nhánh vào đường ống (thêm luồng khác) trước định rẽ nhánh ban đầu giải Mỗi lệnh lại cần thêm luồng bố sung Mặc dù có hạn chế vậy, phương pháp thực cải thiện hiệu suất Ví dụ máy có nhiều luồng đường ống IBM 370/168 IBM 3033 11.4.3.2 Truy xuất trước mục tiêu rẽ nhánh Khi nhận lệnh rẽ nhánh có điều kiện, mục tiêu lệnh rẽ nhánh truy xuất trước, thêm vào lệnh phía sau lệnh rẽ nhánh Mục tiêu sau lưu lại cho Chương 11: cấu trúc chức xừ lý 327 đến lệnh nhánh thi hành Neu rẽ nhánh thực mục tiêu truy xuất trước IBM 360/91 sử dụng phương pháp 11.4.3.3 Bộ đệm vòng lặp Bộ đệm vòng lặp nhớ nhỏ, tốc độ cao chứa n lệnh truy xuất gần nhất, theo thứ tự Nó trì giai đoạn truy xuất lệnh đường ống Neu rẽ nhánh thực hiện, trước tiên phần cứng phải kiếm tra xem mục tiêu rẽ nhánh có nằm đệm hay khơng Neu có, lệnh truy xuất từ đệm Bộ đệm vòng lặp có ba lợi ích: • Do có sử dụng truy xuất trước, đệm vòng lặp chứa vài lệnh phía trước địa truy xuất lệnh Do đó, có sẵn số lệnh truy xuất theo trình tự mà khơng thời gian truy cập nhớ thơng thường • Neu rẽ nhánh xảy mà mục tiêu đứng trước địa lệnh rẽ nhánh vài vị trí, mục tiêu sẵn đệm Điều hữu ích cho chuỗi thường gặp IF-THEN IF-THEN-ELSE • Phương pháp đặc biệt phù hợp đê xử lý vòng lặp, gọi tên đệm vịng lặp Nếu đệm vòng lặp đủ lớn để chứa tất lệnh vịng lặp, lệnh cần truy xuất từ nhớ lần, cho lần lặp Đối với lần lặp tiếp theo, tất lệnh cần thiết nằm đệm Bộ đệm vòng lặp hoạt động theo nguyên lý tương tự với nhớ cache dành riêng cho lệnh Điểm khác biệt đệm vòng lặp giữ lại lệnh theo trình tự kích thước nhỏ nhiều giá rẻ Địa rẽ nhánh Bộ đệm vòng lặp (256 byte) Lệnh cân giải mã trường hợp tìm thây đệm Các bit địa trọng số lớn so sánh đê xác định xem lệnh cần lây có đệm khơng Hình 11.16 Bộ đệm vịng lặp Kiên trúc máy tính 328 Hình 11.16 dưa vi dụ VC dệm vòng lặp Nêu đệm chứa 256 byte, dịa chi đánh theo byte, bit địa chi có trọng sơ nhơ nhât sú dụng đê đánh sị đệm Các bit địa chi có trọng sơ lớn nhài lại kiêm tra dê xác định xem mục tiêu rẽ nhánh có năm vùng bao trùm bời đệm hay khơng Bộ đệm vịng lặp sử dụng máy CDC (Star-100,6600 7600), CRAYI Motorola 68010 11.4.3.4 Dự đoán nhánh Nhiều kỹ thuật khác có thê sử dụng de dự đốn liệu rè nhánh có thực hay khơng Một số kỳ thuật phổ biến hon cá là: • Dự dốn khơng dược thực • Dự đốn ln ln thực • Dự đốn theo opcode • Cơng tắc thực hiện'khơng thực • Bang lịch sứ rẽ nhánh Ba kỹ thuật đàu tiên phương pháp tình: chúng khơng phụ thuộc vào lịch sử thi hành tinh đèn trước thời diêm lệnh rẽ nhánh có điêu kiện Hai kỹ thuật sau phương pháp động: chúng phụ thuộc vào lịch sử thi hành Hai phương pháp đâu tiên đơn giàn nhât Chúng luôn giã định rang rẽ nhánh sè không thực tiếp lục truy xuất lệnh theo trình lự ln ln gia định rẽ nhánh thực truy xuàl từ mục tiêu re nhánh Phương pháp dự đốn khơng bao giở thực phương pháp phô biên nhãt tât cã phương pháp dự báo nhánh Phương pháp tĩnh cuối đưa định dựa opcode cùa lệnh rẽ nhánh Bộ xử lý già định rãng dôi với sô loại opcode rẽ nhánh nhât định nhánh ln dược thực hiện, đối VỚI số loại khác thi nhánh không thực Chién lược đạt tý lộ truy xuàt trước thành công lớn 75% Các phương pháp rè nhánh đỏng gàng nâng cao độ xác cùa dự đoán bâng cách ghi lại lịch sứ lệnh rẽ nhánh có điêu kiện chương trình Chàng hạn nhiêu bít gãn với lệnh rẽ nhánh có điêu kiện có thè phan ánh lịch sử gân đày cùa lệnh Các bít gọi công tãc thực hiện/không dược thực hiện, chúng định hướng cho xử lý đưa quyêt định cụ thê vào ticp theo gặp lụi lệnh Thông thường, bit lịch sứ không dược gân với lệnh nhớ chinh Thay vào chúng giữ nhớ tạm thời Một nãng có thè găn bít với lệnh rẽ nhánh có điêu kiện nãm cache Khi lệnh thay thê khoi cache, lịch sir cùa màt Một kha khác tri báng nhó chứa lệnh rẽ nhánh thi hành gân với mói lệnh nhập vào có nhiêu bít lịch sư Bộ xư lý có thê truy cập Chương 11: Câu trúc chức nâng xử lý 329 vào báng cách kct họp giông nhớ cache, bâng cách sư dụng bit trọng sơ nhó địa chi lệnh cùa rẽ nhánh Neu sứ dụng bit đon, thơng tin ghi lại liệu lần (hi hành gần lệnh có rè nhánh hay khơng Việc sư dụng bít đơn xuất nhược điểm trưởng họp lệnh rè nhánh cô điều kiện gần luôn thực hiện, lệnh lặp hạn Neu chi dùng bít lịch sử, lần sử dụng vịng lặp se xây hai lần lồi dự đoán: lần bát đầu vào vòng lặp, vả khói vịng lặp Neu sử dụng hai bít hai bit có thè dược dùng dè ghi lại kèt quà cua hai lân thực thi lệnh rẽ nhánh gàn nhát, dê ghi lại trạng thái nhãt định Hình 11.17 minh họa cho phương pháp diên hình Gia sứ thuật tốn băt dâu góc phía bên trái cùa lưu đô Chừng mã lệnh rẽ nhánh có diêu kiện dep theo gặp phái có thực rè nhánh, q trình qut định sỗ dự doán lệnh tiêp theo lại thực rẽ nhánh Hình 11.17 Lưu đồ dự đốn nhánh Kiến trúc máy tính 330 Khơng thực Hình 11.18 Lưu đồ trạng thái dự đốn nhánh Neu lần dự đoán sai, thuật toán tiếp tục dự đoán rẽ nhánh thực Chỉ hai rẽ nhánh liên tiếp không thực thuật tốn chuyển sang phía tay phải lưu đồ Sau đó, thuật tốn dự đốn nhánh không thực hai nhánh liên tiếp thực Do đó, thuật tốn yêu cầu hai lần dự đoán sai liên tiếp đê thay đối định dự đốn Q trình định mơ tả ngắn gọn hon Hình 11.18 Việc sử dụng bit lịch sử vừa mơ tả có nhược điểm: Neu định đưa thực rẽ nhánh khơng thể truy xuất lệnh mục tiêu chừng chưa giải mã địa lệnh mục tiêu (chính tốn hạng lệnh rẽ nhánh có điều kiện) Rõ ràng là, hiệu cao việc truy xuất lệnh bắt đầu sau có định rẽ nhánh Đe làm vậy, cần phải luu lại nhiều thông tin đệm mục tiếu rẽ nhánh bảng lịch sử rẽ nhánh Bảng lịch sử rẽ nhánh nhớ cache nhỏ gắn với giai đoạn truy xuất lệnh pipeline Mỗi mục bảng gồm có ba phần: địa lệnh rể nhánh, vài bit lịch sử ghi lại trạng thái sử dụng lệnh đó, thơng tin lệnh mục tiêu Trường thứ ba thường chứa địa lệnh mục tiêu Trong số đề xuất, trường thứ ba chứa ln lệnh mục tiêu Quan hệ ràng buộc vấn đề rõ ràng: Lưu trữ địa mục tiêu làm cho kích thước bảng nhỏ thời gian truy xuất lệnh lâu so với lưu trữ lệnh mục tiêu 11.4.3.5 Làm trễ nhánh Có cải thiện hiệu suất đường ống cách tự động xếp lại lệnh chương trình, cho lệnh rẽ nhánh xuất muộn Chương 11: cấu trúc chức xừ lý 331 11.4.4 Kỹ thuật đường ống (Pipeline) Intel 80486 Xét ví dụ minh họa cho kỹ thuật đường ống lệnh Intel 80486 Bộ xử lý 80486 thực kỹ thuật đường ống giai đoạn: • Truy xuất: Các lệnh truy xuất từ nhớ cache từ nhớ đặt vào hai đệm truy xuất trước 16 byte Mục tiêu giai đoạn truy xuất điền liệu vào đệm truy xuất trước liệu cũ giải mã lệnh sử dụng Bởi lệnh có chiều dài thay đối (từ đến 11 byte khơng tính tiền tố), trạng thái truy xuất trước tương ứng với giai đoạn pipeline khác thay đối theo lệnh Giai đoạn truy xuất hoạt động độc lập với giai đoạn khác đế giữ cho đệm truy xuất trước đầy • Giai đoạn giải mã (D1): Mọi thông tin opcode chế độ địa giải mã giai đoạn D1 Các thông tin cần thiết với thông tin độ dài lệnh đặt nhiều byte lệnh Do đó, byte chuyến tới giai đoạn DI từ đệm truy xuất trước Giai đoạn DI nối thắng tới giai đoạn D2 để lấy nốt phần lại lệnh (dữ liệu dịch liệu tức thời) mà không liên quan đến giải mã Dl • Giai đoạn giải mã (D2): Giai đoạn D2 diễn giải mã opcode thành tín hiệu điều khiển cụ thể cho ALƯ Nó điều khiển việc tính tốn chế độ địa phức tạp • Thi hành: Giai đoạn bao gồm thao tác ALƯ, truy cập nhớ cache cập nhật ghi • Write back: Neu cần thiết, giai đoạn cập nhật ghi cờ trạng thái bị thay đổi giai đoạn thi hành phía trước Nếu lệnh cập nhật nhớ, giá trị tính tốn lúc gửi đến cache đệm ghi giao diện bus Nhờ việc sử dụng hai giai đoạn giải mã, đường ống trì thơng lượng mức gần lệnh chu kỳ đồng hồ Lệnh phức tạp lệnh rẽ nhánh có điều kiện làm chậm tốc độ Hình 11.19 đưa ví dụ hoạt động đường ống Hình 11.19a cho thấy việc tải vào đường ống khơng có độ trễ truy cập nhớ yêu cầu Tuy nhiên, hình 11.19b, có độ trễ giá trị sử dụng đế tính địa nhớ Nghĩa là, giá trị nạp từ nhớ vào ghi ghi sau sử dụng ghi sở lệnh tiếp theo, xử lý ngừng lại chu kỳ Trong ví dụ này, xử lý truy cập nhớ cache giai đoạn EX lệnh lưu giá trị lấy vào ghi giai đoạn WB Tuy nhiên, lệnh cần sử dụng ghi giai đoạn D2 Khi giai đoạn D2 gióng thắng với giai đoạn Kiến trúc máy tính 332 WB lệnh trước, đường dẫn vòng cho phép giai đoạn D2 truy cập vào liệu mà giai đoạn WB sử dụng để ghi, lưu giai đoạn đường ống Hình 11.19c mơ tả thời gian lệnh rẽ nhánh, giả sử nhánh thực Lệnh so sánh cập nhật mã điều kiện giai đoạn WB, thời điếm ấy, giai đoạn EX lệnh nhảy Jcc cần dùng mã điều kiện Đường dẫn vịng giúp cho hai việc diễn lúc Đồng thời, xử lý chạy chu kỳ truy xuất trước tới mục tiêu lệnh nhảy giai đoạn EX lệnh nhảy Neu xử lý xác định điều kiện rẽ nhánh sai, loại bỏ phần truy xuất trước tiếp tục thi hành lệnh (đã truy xuất giải mã) Truy xuất DI D2 EX WB MOV Regl, Meml Truy xuất DI D2 EX MOV Regl, Reg2 Truy xuất DI D2 MOV Mem2, Regl EX (a) Khơng có trê tải liệu pipeline Truy xuất DI D2 Truy xuất DI EX vra D2 MOV Regl, Meml MOV Reg2, (Regl) EX (b) Có trễ tải trỏ Truy xuất DI D2 EX Truy xuất DI D2 CMP Regl, Imin Jcc Target EX Truy xuât DI D2 EX Target (c) Lệnh rẽ nhánh Hình 11.19 Ví dụ kỹ thuật đường ống lệnh 80486 11.5 Câu hỏi Chức ghi xử lý gì? Thanh ghi hiến thị với người dùng thường hỗ trọ loại liệu nào? Mã điều kiện gì? Từ trạng thái chương trình PSW gì? Chương 11: cấu trúc chức xừ lý 333 Tại kỹ thuật đường ống lệnh hai giai đoạn không rút ngắn nửa thời gian chu kỳ lệnh so với không sử dụng kỹ thuật đường ống? Liệt kê giải thích ngắn gọn giải pháp đế kỹ thuật đường ống lệnh giải vấn đề xảy với lệnh rẽ nhánh có điều kiện? Dự đoán nhánh sử dụng bit lịch sừ nào? a Giả sử máy tính với độ dài word bit Neu phép tính cuối thực máy phép cộng, hai tốn hạng 00000010 00000011 Hãy xác định giá trị cờ sau? • Carry • Zero • Overflow • Sign b Lặp lại câu hỏi cho phép cộng -1 (bù hai) với +1 ? Lặp lại vấn đề Câu phép tính A - B, A 11110000, B 0010100 Tài liệu tham khảo |1) A Agarwal, “Analysis of Cache Performance for Operating Systems and Multiprogramming,” Kluwer Academic Publishers Boston 1989 [2J Agcrwala T: Cockc J, “High Performance Reduced Instruction Set Processors," IBM Thomas J Watson Research Center Yorktown NY January 1987 |3| Anderson D; Sparacio, F; Tomasulo F, “The IBM System/360 Model 91: Machine Philosophy and Instruction Handling.” IBM Journal of Research and Development January 1967 |4J G Amdahl "Validity of the Single-Processor Approach to Achieving LargeScale." Proceedings, of the AFIPS Conference 1967 |5] J Adamek “Foundations of Coding." Wiley, New York 1991 |6| Acosta R; Kjclstrup J; Tomg H “An Instruction Issuing Approach to Enhancing," IEEE Transactions on Computers September 1986 |7] Bacon, F; Graham, S; Sharp, () "Compiler Transformations for HighPerformance Computing." ACM Computing Surveys, December 1994 |8| Bashtccn A.; Lui, 1.; Mullan J "A Superpipclinc Approach to the MIPS Architecture.," Proceedings COMPCON Spring '91 February 1991 KIEN TRUC MAY TINH NHÀ XUẤT BẢN BÁCH KHOA HÀ NỘI Trụ sở: ngõ 17, Tạ Quang Bửu, Hai Bà Trung, Hà Nội Điện thoại: 024.38684569 Fax: 024.38684570 E-mail: nxbbk@hust.edu.vn Chịu trách nhiệm xuất Giám đốc - Tổng biên tập: TS BÙI ĐỨC HÙNG Biên tập: NGỤY THỊ LIỄU - NGUYỄN MINH THANH Chế bản: vũ THỊ HẰNG - NGUYỄN SINH Sửa in: Trình bày bìa: vũ THỊ HẰNG - NGUYỄN MINH THANH DƯƠNG HOÀNG ANH, TRẦN HỒNG MINH In 500 cuốn, khổ (19 X 27) cm, Công ty TNHH in thương mại Sông Lam, số 01 Phùng Chí Kiên, phường Nghĩa Đơ, quận cầu Giấy, Hà Nội Số xuất bản: 77 - 2021/CXBIPH/32 - 01/BKHN; ISBN: 978-604-316-055-0 Số QĐXB: 100/QĐ - ĐHBK - BKHN ngày 21/4/2021 In xong nộp lưu chiểu năm 2021

Ngày đăng: 12/07/2023, 20:39

Tài liệu cùng người dùng

Tài liệu liên quan