Các máy dựa trên RISC tập trung sự chú ý của những nhà thiết kế trên hai kỹ thuật quan trọng, thứ nhất là khai thác thuật tốn xử lý song song ban đầu thơng qua đường ống pipelining lệnh
Trang 2TIEÂN TIEÁN
Trang 3TS TRẦN CÔNG HÙNG
KIẾN TRÚC MÁY TÍNH
TIÊN TIẾN
NHÀ XUẤT BẢN THÔNG TIN VÀ TRUYỀN THÔNG
Trang 4LỜI NÓI ĐẦU
Máy tính, cịn gọi là máy vi tính hay điện tốn, là những thiết bị hay hệ thống dùng để tính tốn hay kiểm sốt các hoạt động mà cĩ thể biểu diễn dưới dạng số hay quy luật logic
Máy tính điện tử ra đời vào năm 1946 tại Hoa Kỳ từ đĩ đã phát triển rất mạnh và đến nay đã trải qua các thế hệ máy
- Thế hệ 1 (thập niên 50): Dùng bĩng điện tử chân khơng, tiêu thụ năng lượng rất nhiều Kích thước máy rất lớn (khoảng 250 m2) nhưng tốc độ xử
lý lại rất chậm chỉ đạt khoảng vài ngàn phép tính trên giây và giá thành lại rất cao
- Thế hệ 2 (thập niên 60): Các bĩng điện tử đã được thay bằng các bĩng làm bằng chất bán dẫn nên năng lượng tiêu thụ giảm, kích thước nhỏ hơn nhưng vẫn rất lớn (50 m2), tốc độ xử lý đạt khoảng vài chục ngàn phép tính trên giây
- Thế hệ 3 (thập niên 70): Thời gian này đánh dấu sự ra đời và phát triển của cơng nghệ vi mạch tích hợp IC Máy tính cĩ kích thước nhỏ gọn hơn và tiêu thụ năng lượng ít hơn, tốc độ xử lý đạt khoảng vài trăm ngàn phép tính trên giây
- Thế hệ 4 (thập niên 80): Dùng cơng nghệ vi mạch tích hợp IC nhưng nhỏ gọn hơn mà tốc độ tính tốn lại cao hơn nhờ các cơng nghệ ép vi mạch tiên tiến Cĩ nhiều loại máy để phục vụ cho nhiều mục đích sử dụng, trong đĩ chia
ra làm 3 loại chính: main frame computer, mini computer, micro computer
- Thế hệ 5: là thế hệ máy tính hiện nay, được tập trung phát triển về nhiều mặt nhằm nâng cao tốc độ xử lý và tạo thêm nhiều tính năng cho máy Các máy tính hiện nay cĩ thể xử lý hàng chục tỷ phép tính trên giây
Trong quyển sách này, chúng ta sẽ nghiên cứu và khảo sát về tổ chức, hoạt động của máy tính gọi là tiên tiến vào thời điểm hiện nay Nội dung cuốn sách gồm 6 chương:
Chương 1: Giới thiệu chung
Chương 2: Khối xử lý song song ở mức lệnh máy
Chương 3: Các hạn chế khi thực hiện lệnh song song
Chương 4: Các kiến trúc đa xử lý
Chương 5: Các vi xử lý thực tế
Chương 6: Kiến trúc bộ nhớ tiên tiến
Trang 5trình giảng dạy và học tập cho môn học cấu trúc máy tính Ngoài ra, quyển sách cũng là tài liệu tham khảo để phục vụ cho các kỹ sư và nghiên cứu sinh trong công tác chuyên môn
Trong quá trình biên soạn, mặc dù đã có nhiều cố gắng nhưng khó tránh khỏi những thiếu sót, rất mong nhận được sự cảm thông và ý kiến đóng góp của quý vị độc giả để lần tái bản sẽ bổ sung hoàn chỉnh hơn Mọi ý kiến đóng góp xin gửi qua e-mail: conghung@ptithcm.edu.vn
Tác giả
Trang 6Lời nĩi đầu 5
Thuật ngữ viết tắt 11
Chương 1: GIỚI THIỆU CHUNG 13
1.1 Giới thiệu 13
1.2 Nhu cầu tính tốn hiện tại và phân loại máy tính 16
1.2.1 Máy tính để bàn 17
1.2.2 Máy chủ 17
1.2.3 Máy tính nhúng (Embedded computer) 19
1.2.4 Định nghĩa kiến trúc máy tính 20
1.2.5 Kiến trúc tập lệnh 20
1.3 Các xu hướng cơng nghệ 26
1.3.1 Các xu hướng về hiệu suất: Băng thơng trên độ trễ 28
1.3.2 Tỉ lệ của hiệu suất bán dẫn và dây 28
1.3.3 Xu hướng năng lượng trên các mạch tích hợp 30
1.4 Sơ lược về một số kiến trúc máy tính hiện đại 32
1.4.1 Ưu điểm của tính song song 32
1.4.2 Nguyên tắc của vùng 33
1.4.3 Tập trung vào các trường hợp chung 33
1.4.4 Luật Amdahl 34
1.4.5 Phương trình hiệu suất của bộ vi xử lý 37
1.4.6 Nghiên cứu trường hợp 1: Chi phí chế tạo Chip 40
1.4.7 Nghiên cứu trường hợp 2: Điện năng tiêu thụ trong hệ thống máy tính 42
1.4.8 Nghiên cứu trường hợp 3: Chi phí cho các máy chủ web 44
1.4.9 Nghiên cứu trường hợp 4: Hiệu suất 46
Chương 2: KHỐI XỬ LÝ SONG SONG Ở MỨC LỆNH MÁY 49
2.1 Kỹ thuật đường ống và xử lý song song ở mức lệnh máy 49
2.1.1 Kỹ thuật đường ống là gì? Và cách triển khai kỹ thuật đường ống 49
2.1.2 Các khĩ khăn khi sử dụng đường ống và cách khắc phục 52
Trang 72.2 Kết hợp xử lý song song ở mức lệnh máy và giải pháp phần mềm về ILP 59
2.2.1 Chương trình dịch và kỹ thuật đường ống 59
2.2.2 Hỗ trợ phần cứng đối với chương trình dịch 65
2.3 Lưu trữ dựa trên phần cứng 90
2.4 Khai thác ILP sử dụng đa phát và lập lịch tĩnh 100
2.5 Triển khai ILP dùng lập lịch động, đa phát và sự lưu trữ 105
2.6 Các kỹ thuật nâng cao cho việc phân phối lệnh và sự lưu trữ 108
2.6.1 Tăng băng thơng lấy lệnh 108
2.6.2 Bộ đệm nhánh mục tiêu 108
2.6.3 Trả về các địa chỉ dự báo 112
Chương 3: CÁC HẠN CHẾ KHI THỰC HIỆN LỆNH SONG SONG 114
3.1 Giới thiệu 114
3.2 Nghiên cứu hạn chế của ILP 114
3.2.1 Mơ hình phần cứng 115
3.2.2 Những hạn chế trên kích thước cửa sổ và đếm phát cực đại 117
3.2.3 Những ảnh hưởng của nhánh thực và các bước dự báo 121
3.2.4 Những ảnh hưởng của các thanh ghi hữu hạn 123
3.2.5 Những ảnh hưởng của sự phân tích alias khơng hồn hảo 125
3.2.6 Hạn chế ILP đối với bộ vi xử lý 127
3.2.7 Những hạn chế phát sinh 130
3.3 Xử lý song song ở mức luồng (thread) 132
3.4 Hiệu suất và hiệu quả trong bộ vi xử lý tiên tiến 134
3.5 Khả năng thực hiện lệnh song song và sự phụ thuộc 138
3.6 Kết luận 145
Chương 4: CÁC KIẾN TRÚC ĐA XỬ LÝ 146
4.1 Giới thiệu về đa xử lý đa nhân 146
4.2 Phân loại các kiến trúc song song 147
4.3 Các kiến trúc chia sẻ bộ nhớ 152
4.3.1 Các kiến trúc chia sẻ bộ nhớ đối xứng 155
4.3.2 Các kiến trúc chia sẻ bộ nhớ phân tán 170
4.4 Bộ nhớ chia sẻ phân tán và liên kết dựa trên thư mục 182
4.4.1 Các giao thức liên kết cache dựa vào thư mục 183
4.4.2 Ví dụ về Directory Protocol 187
Trang 84.5 Khái niệm cơ bản về đồng bộ hĩa 190
4.5.1 Các Primitive phần cứng cơ bản 191
4.5.2 Thực hiện khĩa (lock) sử dụng gắn kết (coherence) 193
4.6 Giới thiệu tính thống nhất mơ hình bộ nhớ 196
4.6.1 Quan niệm của Lập trình viên (Programmer) 198
4.6.2 Các khái niệm cơ bản về mơ hình nghỉ ngơi nhất quán 198
4.6.3 Nhận xét về các mơ hình nhất quán 199
4.7 Các vấn đề xuyên suốt (Crosscutting issue) 200
4.7.1 Tối ưu hĩa, trình biên dịch và mơ hình nhất quán 200
4.7.2 Sử dụng dự đốn ẩn trễ trong các mơ hình nhất quán nghiêm ngặt 200
4.7.3 Kết luận và sự thực thi của nĩ 201
4.8 Kiến trúc đa xử lý cụ thể Sun T1 202
4.8.1 Hiệu suất T1 203
4.8.2 Hiệu suất tồn phần 206
4.8.3 Hiệu suất của những bộ xử lý đa lõi trên chuẩn SPEC 208
4.9 Những vấn đề cần lưu ý 210
4.9.1 Lưu ý 1 210
4.9.2 Lưu ý 2 211
4.9.3 Lưu ý 3 212
4.9.4 Lưu ý 4 213
4.9.5 Lưu ý 5 214
4.10 Kết luận 215
Chương 5: CÁC VI XỬ LÝ THỰC TẾ 217
5.1 Very-Long Instruction Word (VLIW) 217
5.1.1 Giới thiệu 217
5.1.2 Khả năng thực hiện lệnh song song (ILP) 217
5.1.3 VLIW 218
5.1.4 Tổ chức của VLIW processor 220
5.1.5 Ưu, khuyết điểm của bộ xử lý VLIW 221
5.1.6 Tĩm tắt 222
5.2 Kiến trúc máy chủ Sun Sparc MX000 - M5000 222
5.2.1 Giới thiệu về dịng máy chủ doanh nghiệp MX000 222
5.2.2 Kiến trúc chung của máy chủ M5000 223
Trang 95.2.3 Bộ nhớ 224
5.2.4 Kiến trúc Bus của hệ thống 226
5.2.5 Bộ xử lý SPARC64 VII 227
5.2.6 Lõi (Core) 227
5.2.7 Hệ thống Cache 228
5.2.8 Kiến trúc I/O 229
5.3 Cơng nghệ Centrino trong các CPU 229
5.3.1 Lịch sử phát triển Centrino 229
5.3.2 Centrino thế hệ đầu tiên 230
5.3.3 Centrino thế hệ thứ hai: “Sonoma” 230
5.3.4 Centrino thế hệ thứ ba: “Napa” 231
5.3.5 Centrino hế hệ thứ tư: “Santa Rosa” 232
5.4 Những cơng nghệ ứng dụng trên nền tảng Intel Centrino 2 235
5.4.1 Bộ vi xử lý Intel Core 2 Duo 235
5.4.2 Họ chipset Mobile Intel® 965 Express 237
5.4.3 Hệ thống kết nối Intel WiFi Link 5000 Series 237
5.4.4 Hệ thống kết nối mạng Intel® 82567 Gigabit 238
5.4.5 Chuyển đổi giữa đồ họa tích hợp và đồ họa rời 238
5.4.6 Cơng nghệ bộ nhớ Intel® Turbo Memory 239
5.4.7 Kết luận 239
Chương 6: KIẾN TRÚC BỘ NHỚ TIÊN TIẾN 240
6.1 Một số kiểu tổ chức bộ nhớ tốc độ cao 240
6.1.1 Các loại bộ nhớ 240
6.1.2 Các cấp bộ nhớ 243
6.2 Các cơng nghệ bộ nhớ tiên tiến 244
6.3 Bộ nhớ Cache tiên tiến 244
6.3.1 Vận hành của Cache 244
6.3.2 Hiệu quả của Cache 251
6.3.3 Cache duy nhất hay Cache riêng lẻ 252
6.3.4 Các mức Cache 252
6.3.5 Bộ nhớ trong 253
6.4 Hỗ trợ bộ nhớ ảo 255
6.5 Bảo vệ các tiến trình bằng cách dùng bộ nhớ ảo 259
Trang 10BTB Branch Target Buffer
COD Computer Organization and Design
CPI Clock cycles Per Instruction
DLP Data-Level Parallelism
DSM Distributed Shared Memory
DSS Decision Support System
ILP Instruction-Level Parallelism
IPC Instructions Per Clock
ISA Instruction Set Architecture
Trang 11NUMA Non-Uniform Memory Access
OLTP OnLine Transaction Processing
RAW Read After Write
SIMD Single Instruction stream, Multiple Data stream
SISD Single Instruction stream, Single Data stream
SMP Symmetric Multi-Processing
SPECJBB the SPEC Java Business Benchmark
TLP Thread-Level Parallelism
UMA Uniform Memory Access
VLIW Very-Long Instruction Word
WAR Write After Read
WAW Write After Write
Trang 12GIỚI THIỆU CHUNG
1.1 Giới thiệu
Cơng nghệ máy tính đã cĩ tiến bộ đáng kinh ngạc trong khoảng 60 năm trở lại đây kể từ khi chiếc máy tính điện tử vì mục đích chung đầu tiên ra đời Ngày nay, ít hơn 500 đơ la, bạn cũng sẽ sở hữu một chiếc máy tính cá nhân với nhiều chức năng hơn, bộ nhớ nhiều hơn và dung lượng đĩa lớn hơn một máy tính được mua với giá 1.000.000 đơ la Mỹ trong năm 1985 Điều này đã cải thiện nhanh chĩng từ những tiến bộ trong cơng nghệ sử dụng để xây dựng máy tính và trong sự đổi mới thiết kế máy tính
Mặc dù những cải tiến cơng nghệ đã khá ổn định, nhưng cấu trúc arising từ những kiến trúc tốt hơn lại ít tương thích hơn Suốt 25 năm đầu phát triển của máy tính điện tử, cả 2 lực lượng này đã cĩ đĩng gĩp quan trọng, cải thiện hiệu suất khoảng 25% một năm Và cuối năm 1970 chứng kiến sự xuất hiện của bộ vi xử lý này Khả năng của bộ vi xử lý đã gĩp phần cải tiến trong cơng nghệ mạch tích hợp làm cho tính tương thích cao hơn - tăng khoảng 35% một năm trong việc cải thiện hiệu suất Với tốc độ tăng trưởng này, kết hợp với những lợi ích trong chi phí sản xuất hàng loạt vi xử lý, dẫn đến cĩ ngày càng nhiều các cơng ty kinh doanh máy tính dựa trên những bộ vi xử lý này Ngồi ra, hai thay đổi đáng kể trong thị trường máy tính đã làm cho nĩ dễ dàng hơn bao giờ hết (trước đĩ đã thương mại hĩa thành cơng một cơng nghệ mới) Đầu tiên, việc loại bỏ thực sự hợp ngữ đã giảm sự cần thiết trong tính tương thích của mã đối tượng Thứ hai, việc tạo ra các chuẩn hĩa, độc lập cung cấp các hệ điều hành, chẳng hạn như UNIX và nhân bản của nĩ, Linux, đã hạ thấp cả chi phí và lẫn nguy cơ lệch ra khỏi một kiến trúc mới
Những thay đổi này đã làm cho nĩ cĩ thể phát triển thành cơng một tập hợp các kiến trúc mới với các tập lệnh đơn giản, được gọi là những kiến trúc RISC (Reduced Instruction Set Computer) vào đầu những năm 1980 Các máy dựa trên RISC tập trung sự chú ý của những nhà thiết kế trên hai kỹ thuật quan trọng, thứ nhất là khai thác thuật tốn xử lý song song (ban đầu thơng qua đường ống (pipelining) lệnh và sau đĩ thơng qua nhiều tác vụ) và thứ hai là sử dụng cache (ban đầu trong các hình thức đơn giản và sau đĩ sử dụng theo nhiều cách thức tinh vi hơn
và được tối ưu hĩa) Các máy tính nền tảng RISC nâng thanh chắn thực hiện, buộc
Trang 13những kiến trúc trước phải theo kịp hoặc biến mất Thiết bị số Vax đã không thể đứng vững, tất yếu nó được thay thế bởi một kiến trúc RISC Intel đã nổi lên như một thách thức, trước tiên là việc chuyển đổi các lệnh x86 (hay IA-32) sang các lệnh như của RISC, cho phép nó chấp nhận nhiều đổi mới trong việc đi đầu thiết kế RISC Cùng với sự tăng vọt của những bộ đếm trazito vào cuối thập niên 90, chi phí phần cứng cho việc chuyển đổi sang nền tảng x86 phức tạp hơn đã trở nên không đáng ngại Hình 1.1 cho thấy sự kết hợp giữa kiến trúc và cải tiến kết cấu đã dẫn tới
16 năm tăng trưởng bền vững trong hoạt động, với tỉ lệ hằng năm trên 50%, một con số chưa từng có trong nền công nghiệp máy tính Hiệu quả của tốc độ tăng trưởng ấn tượng này trong thế kỷ 20 đã được nhân lên gấp bội
Đầu tiên, nó đã nâng cao đáng kể khả năng sẵn có của những người sử dụng máy vi tính Đối với nhiều ứng dụng, các bộ vi xử lý hiệu suất cao nhất hiện tại tốt hơn các siêu máy tính của không ít hơn 10 năm trước
Hình 1.1: Sự cải thiện trong hiệu suất vi xử lý từ giữa thập niên 1980 đến nay Biểu
đồ này thể hiện tương đối so với VAX 11/780 được đo bởi tiêu chuẩn SPECint Chưa đến giữa những năm 1980, sự tăng trưởng về hiệu năng bộ xử lý của phần lớn công nghệ đã được thể hiện và trung bình khoảng 25% mỗi năm Tốc độ tăng trưởng lên khoảng 52% tiếp sau đó, là do những ý tưởng về kiến trúc và tổ chức được nâng cao hơn Đến năm
2002, tăng trưởng này đã có một sự khác biệt trong hiệu suất vì có một đơn vị thực thi thứ bảy Hiệu suất tính toán theo hướng dấu chấm động tăng lên thậm chí là nhanh hơn Từ năm 2002, giới hạn về công suất nguồn, các thuật toán xử lý song song sẵn có và độ trễ
Trang 14của bộ nhớ đã làm các đơn xử lý chạy chậm lại trong gần đây, xuống còn 20% một năm Một khi SPEC đã thay đổi trong nhiều năm, hiệu suất của những chiếc máy mới hơn được đánh giá qua một hệ số tỉ lệ xích mà có sự liên hệ hiệu suất cho hai phiên bản SPEC khác (ví dụ, SPEC92, SPEC95 và SPEC2000)
Thứ hai, cải thiện đến tỉ lệ như mơ này đã dẫn tới sự thống trị của máy tính dựa trên bộ vi xử lý với phạm vi là toàn bộ ngành thiết kế máy tính Những chiếc
PC và những máy trạm chiếm lĩnh toàn bộ thị trường trong ngành công nghiệp máy tính Những máy tính mini, theo truyền thống làm từ những ngăn (shelf) luận lý với những dãy cổng logic đã được thay thế bởi những máy chủ sử dụng vi xử lý Những máy tính lớn gần như hoàn toàn được thay thế bằng đa xử lý bao gồm nhiều vi xử
lý Ngay cả những siêu máy tính cũng đang được xây dựng bằng tập hợp các bộ vi
xử lý Những đổi mới này đã tạo ra một sự phục hưng trong thiết kế máy tính, trong
đó đề cao sự đổi mới cả hai kiến trúc và sử dụng hiệu quả những cải tiến công nghệ Điều này tạo ra một sự tăng trưởng kép cho đến năm 2002, hiệu suất cao của các vi
xử lý nhanh hơn cỡ 7 lần những gì đã thu được bằng việc chỉ dựa vào công nghệ, đã bao gồm cải thiện mạch thiết kế
Tuy nhiên, sự phục hưng này chỉ tồn tại trong vòng 16 năm mà thôi Từ năm
2002, việc cải tiến hiệu suất bộ vi xử lý đã giảm xuống còn 20% một năm, do 3 trở ngại lớn sau: sự tiêu hao của công suất cực đại qua làm mát, còn ít các thuật toán xử
lý song song để tận dụng và gần như không cải thiện độ trễ bộ nhớ Chính vì vậy, trong năm 2004 Intel đã hủy bỏ dự án nâng cao hiệu suất các đơn vị xử lý của mình, gia nhập IBM và SUN trong một tuyên bố rằng con đường để nâng cao hiệu suất là phải có đa xử lý trên mỗi chip hơn là đơn xử lý Điều này đã báo hiệu một sư chuyển đổi có tính chất lịch sử từ thuật toán xử lý song song, sang trạng thái Khả năng thực hiện luồng song song (TLP) và trạng thái Khả năng thực hiện dữ liệu song song (DLP), được đặc trưng trong phần này của quyển sách Trong khi các trình biên dịch và các phần cứng khai thác ILP mà hoàn toàn không cần lập trình tác động vào, thì DLP và TLP là song song tách biệt nhau, đòi hỏi lập trình viên phải viết mã xử lý song song để cải thiện hiệu suất
Phần này nói về những ý tưởng về kiến trúc và những cải tiến trình biên dịch
đi kèm để đạt được những tốc độ như thế trong thế kỷ qua, nguyên nhân của sự thay đổi đáng kể đó và những thách thức cũng như phương pháp tiếp cận độc đáo ban đầu nhằm đạt đến các ý tưởng về kiến trúc và trình biên dịch trong thế kỷ 21 Cốt lõi của vấn đề đó là cần định lượng vấn đề cần đạt đến khi thiết kế, sau đó phân tích
có sử dụng các quan sát thực nghiệm, chạy thử nghiệm, đặc biệt mô phỏng các công
cụ liên quan của nó Đây là phong cách và phương pháp tiếp cận để thiết kế mạch trong quyển sách này Chúng ta tin rằng phương pháp tiếp cận này sẽ cho ra những máy tính song song rõ ràng trong tương lai như những máy tính hoàn toàn song song trong quá khứ
Trang 151.2 Nhu cầu tính toán hiện tại và phân loại máy tính
Trong thập niên 60, hình thức tính toán được thực hiện trên những máy tính
cỡ lớn, với giá hàng triệu đô la được đặt trong những phòng máy với nhiều khai thác viên giám sát hỗ trợ Ứng dụng tiêu biểu là xử lý các dữ liệu kinh doanh và tính toán trên quy mô lớn Những năm 1970 chứng kiến sự ra đời của máy tính mini, một máy tính có kích thước nhỏ hơn, bước đầu được ứng dụng trong các phòng thí nghiệm khoa học, nhưng nhanh chóng được chia sẻ phổ biến, nhiều người sử dụng chia sẻ trên một máy tính tương tác thông qua các thiết bị đầu cuối độc lập Thập kỷ này cũng chứng kiến sự xuất hiện của các siêu máy tính, với hiệu suất xử lý cao phục vụ cho tính toán khoa học Mặc dù ít về số lượng, nhưng đây là sự kiện có tính chất lịch sử quan trọng, bởi họ đã đi tiên phong trong đổi mới mà sau này hình thành các lớp máy tính ít tốn kém hơn Thập niên 80 chứng kiến sự trỗi dậy của máy tính để bàn dựa trên các bộ vi xử lý, dưới cả 2 hình thức máy tính cá nhân và máy trạm Các máy tính để bàn cá nhân thay thế việc sử dụng đồng thời, làm cho các máy chủ-trạm gia tăng, cung cấp dịch vụ trên quy mô lớn hơn: đáng tin cậy, lâu dài, lưu trữ và truy cập các tập tin, bộ nhớ lớn hơn và thể hiện sức mạnh của khả năng tính toán Những năm 1990 Internet nổi lên và World Wide Web ra đời, chứng kiến những thành công đầu tiên của các thiết bị cầm tay (các thiết bị cá nhân hỗ trợ
kỹ thuật số hay PDAs)
Giá của hệ thống 500 USD – 5.000 USD 5.000 USD – 5.000.000
USD
10 USD – 100.000 USD (bao gồm cả bộ định tuyến mạng cao cấp) Giá của module vi
xử lý
50 USD – 500 USD (trên mỗi bộ vi xử lý)
200 USD – 10.000 USD (trên mỗi bộ vi xử lý)
0,01 USD – 100 USD (trên mỗi bộ vi xử lý) Thiết kế hệ thống
Bảng 1.1: Tóm tắt 3 loại máy tính chính thống và những đặc điểm của nó Lưu ý
phạm vi giá hệ thống các máy chủ và hệ thống nhúng Đối với các máy chủ, phạm vi này xuất phát từ sự cần thiết phải có hệ thống đa xử lý quy mô lớn cho các tiến trình giao dịch cấp cao và những ứng dụng máy chủ Web Tổng số vi xử lý nhúng đã bán trong năm
2005 được ước tính là trên 3 tỉ, chỉ bao gồm các vi xử lý 8-bit và 16-bit Khoảng chừng
200 triệu máy để bàn và 10 triệu máy chủ đã được bán trong năm 2005
Và sự xuất hiện của các đồ dùng điện tử kỹ thuật số hiệu năng cao, từ trò chơi video đến các bộ giải mã (set-top box) Điện thoại di động cũng trở nên phổ biến từ năm 2000, với những cải tiến từ chức năng đến giá cả, vượt xa những chiếc máy
Trang 16tính Những ứng dụng gần đây sử dụng hệ thống nhúng, máy tính được tích hợp trong các thiết bị khác, nhưng sự xuất hiện của chúng không rõ ràng
Những xu hướng này đã tạo ra một tiền đề cho một sự thay đổi mạnh mẽ về tầm nhìn của máy tính, các ứng dụng trên máy tính và thị trường máy tính trong một thời kỳ mới Không phải chỉ đơn thuần sản xuất ra một máy tính cá nhân mạnh hơn
20 năm trước đây, mà chúng ta cần phải thấy rằng những thay đổi đáng kể đó là do bởi cách thức mà máy tính xuất hiện và cách thức mà người ta sử dụng nó Những thay đổi trong việc sử dụng máy tính đã dẫn đến hình thành 3 thị trường máy tính khác nhau, mỗi đặc trưng tương ứng với những ứng dụng, yêu cầu và những công nghệ khác nhau Bảng 1.1 tóm tắt các loại máy tính chủ đạo trong thị trường máy tính và những đặc điểm quan trọng của mỗi loại
1.2.1 Máy tính để bàn
Những chiếc máy tính để bàn được nâng cấp từ cấp thấp đến cấp cao chỉ với
500 USD và nhiều máy trạm được cấu hình phức tạp chỉ với 3.000 USD Trong thời gian này thị trường máy tính đã có sự cân bằng theo hướng giá cả phù hợp với hiệu năng Điều này kết hợp giữa hiệu suất (được tính toán theo hiệu suất của máy và hiệu năng đồ họa) và giá của hệ thống tương ứng đó nhằm đáp ứng nhu cầu khách hàng và phát triển thiết kế Và kết quả là, bộ vi xử lý mới nhất, hiệu suất cao nhất và
cả giá cạnh tranh nhất đã xuất hiện trong hệ thống của máy để bàn Máy tính để bàn cũng có những xu hướng phát triển riêng và có các ứng dụng đặc trưng theo một chuẩn nhất định, mặc dù có ngày càng nhiều các trung tâm mạng, thường xuyên chạy các ứng dụng mới để đánh giá hiệu năng
độ tin cậy là hàng đầu Khảo sát các server của Google, nhận đơn đặt hàng cho Cisco, hoặc hệ thống đấu giá Ebay Lỗi hệ thống máy chủ là điều cực kỳ tệ hại hơn rất nhiều
so với lỗi một máy cá nhân thông thường, bởi server hoạt động nguyên ngày, nguyên tuần, không ngơi nghỉ Bảng 1.2 đánh giá doanh thu bị mất vì thời gian chết trong năm 2000 Amazon đã mất ước chừng 2,98 tỉ đô la trong quý đầu năm 2005 Nếu như
có khoảng 2.200 giờ trong quý đó thì ước chừng doanh thu mỗi giờ là 1.350.000 đô
la Nếu là giờ cao điểm trong dịp Giáng sinh thì con số này cao hơn nhiều
Trang 17Như vậy, chi phí ước tính bị mất sẽ cao, như bảng 1.2 và các con số của Amazon là hoàn toàn bị mất doanh thu, không kể đến năng suất của người làm bị mất và cả những phiền toái của khách hàng
Một tính năng quan trọng thứ hai đó là hệ thống máy chủ phải có khả năng mở rộng Phát triển của các máy chủ thường để đáp ứng những nhu cầu ngày càng tăng của các dịch vụ mà nó hỗ trợ hoặc yêu cầu tăng lên về chức năng Bởi vậy, khả năng tăng lên về công suất, bộ nhớ, khả năng lưu trữ và các băng thông I/O của server là rất quan trọng
Cuối cùng, các máy chủ phải được thiết kế sao cho đạt hiệu quả nhất về thông lượng Tức là, xét về hiệu quả tổng thể của mỗi máy chủ, chẳng hạn như số giao dịch thực hiện trong một phút hay số trang phục vụ được cùng một lúc
Tổn thất hàng năm trong thời gian chết của hệ thống
Ứng dụng Chi phí trên
($ = đô la) (87,6 giờ/năm) (43,8 giờ/năm) (8,8 giờ/năm)
Giao dịch bằng thẻ tín dụng $2.600 $228 $114 $22,8
Bảng 1.2: Chi phí của một hệ thống bị lỗi được đưa ra bằng cách phân tích thời
gian chết (về doanh số bị mất tính ngay từ thời điểm đó), giả sử có 3 mức khác nhau và thời gian chết được phân phối đều Những dữ liệu này từ Kembel [2000] và được thu thập, phân tích bởi Phòng kế hoạch & nghiên cứu sự kiện
Đáp ứng yêu cầu vẫn là điều quan trọng, nhưng xét tổng thể hiệu quả và chi phí sinh lời, được xác định bằng việc xem xét có bao nhiêu yêu cầu được xử lý trong một đơn vị thời gian, là những số liệu quan trọng hơn cho hầu hết các máy chủ Một vấn đề liên quan là những siêu máy tính Chúng là những chiếc máy tính đắt nhất, trị giá hàng chục triệu đô la và được nhấn mạnh ở hiệu suất
Trang 181.2.3 Máy tính nhúng (Embedded computer)
Máy tính nhúng là phần phát triển nhanh nhất của thị trường máy tính Các thiết bị này là bao gồm các máy móc hằng ngày, từ các lò vi sóng, máy giặt, máy in, những bộ chuyển mạch mạng và tất cả các xe có gắn các vi xử lý nhúng đơn giản, đến các thiết bị cầm tay kỹ thuật số, như điện thoại di động, thẻ thông minh, rồi các trò chơi điện tử và cả những bộ giả mã số
Máy tính nhúng phát triển chóng mặt cả về sức mạnh xử lý lẫn chi phí Chúng bao gồm những vi xử lý 8-bit và 16-bit mà chi phí chỉ hơn nhau 1 xu, những vi xử
lý 32-bit thì có thể thực hiện 100 triệu lệnh trong 1 giây và giá chỉ dưới 5 đô la và những vi xử lý cấp cao cho các trò chơi điện tử mới nhất hay các bộ chuyển mạch mạng cũng chỉ có giá 100 đô la mà thôi, chúng thực thi 1 tỉ lệnh trong 1 giây Mặc
dù khả năng của máy tính trong thị trường máy tính nhúng là rất lớn, nhưng giá cả
là một yếu tố then chốt trong việc thiết kế máy tính cho không gian này Hiệu suất
có còn tồn tại?, vẫn còn, nhưng mục tiêu chính là đáp ứng liên tục nhu cầu thực hiện
ở một mức giá tối thiểu hơn là phải đạt hiệu suất cao hơn ở một mức giá ngất ngưởng Thông thường, yêu cầu thực hiện trong một ứng dụng nhúng là thời gian thực thi Một yêu cầu có hiệu suất thời gian thực là khi một phân đoạn ứng dụng có thời gian tối đa để thực hiện tuyệt đối Ví dụ, trong một bộ giải mã kỹ thuật số, thời gian
để xử lý mỗi khung hình là có hạn, bộ xử lý phải chấp nhận và xử lý kết cấu tiếp theo trong thời gian ngắn lại Trong một số ứng dụng, có nhiều sắc thái yêu cầu cùng tồn tại, thời gian trung bình cho một công việc cụ thể bị hạn chế cũng như số lượng các trường hợp khi một vài thời gian tối đa bị vượt quá Như vậy, phương pháp tiếp cận, đôi khi được gọi là làm mềm thời gian thực (soft real-time), phát sinh khi người ta đôi khi có thể bỏ qua các hạn chế về thời gian trên một sự kiện, miễn sao không có quá nhiều người bỏ qua Hiệu suất thời gian thực có xu hướng đánh giá cao các ứng dụng phụ thuộc
Hai đặc điểm quan trọng khác tồn tại trong nhiều ứng dụng nhúng: sự cần thiết giảm thiểu bộ nhớ và giảm thiểu điện năng Trong nhiều ứng dụng nhúng, bộ nhớ là một phần đáng kể ảnh hưởng đến chi phí, điều quan trọng là cần tối ưu hóa kích thước bộ nhớ trong nhiều trường hợp cụ thể khác nhau Đôi khi ứng dụng được
dự kiến sẽ phù hợp hoàn toàn trong bộ nhớ trên chip xử lý, hay ứng dụng cần phải phù hợp với chip đóng gói có bộ nhớ nhỏ Trong bất kỳ trường hợp nào, điều quan trọng của kích thước bộ nhớ là chuyển tương thích với kích thước mã, vì kích thước
dữ liệu được quyết định bởi các ứng dụng
Bộ nhớ lớn hơn đồng nghĩa với sức mạnh được cải thiện và khả năng tối ưu hóa thường được coi trọng Mặc dù được nhấn mạnh nếu năng lượng thấp thì xài pin, nhưng việc sử dụng nhựa tổng hợp rẻ hơn dùng gốm, việc không có quạt giải nhiệt cũng làm tiêu hao phần nào hiệu suất
Trang 19Quyển sách này áp dụng cho các thiết kế hiệu suất của bộ xử lý nhúng, bất kể
là các vi xử lý được đóng gói hay là các lõi của vi xử lý, mà sẽ được lắp ráp với các phần cứng chuyên dụng khác
1.2.4 Định nghĩa kiến trúc máy tính
Nhiệm vụ thiết kế máy tính phải đối mặt với một phức tạp là: Xác định những thuộc tính quan trọng cho một máy tính mới, sau đó thiết kế một máy tính để tối đa hóa hiệu suất trong phạm vi chi phí, năng lượng và ràng buộc sẵn có Nhiệm vụ này
có nhiều khía cạnh, bao gồm thiết kế tập lệnh, tổ chức hàm, thiết kế logic và thực hiện Việc thực hiện có thể bao gồm tích hợp nhiều công việc như: thiết kế mạch, đóng gói, hiệu năng và làm mát Tối ưu hóa việc thiết kế đòi hỏi phải có hiểu biết với một phạm vi rất rộng các công nghệ, từ các trình biên dịch và hệ điều hành đến thiết kế logic và đóng gói
Trong quá khứ, thuật ngữ kiến trúc máy tính chỉ thường để gọi việc thiết kế lập ra tập lệnh Ở một khía cạnh khác, thiết kế máy tính được gọi là thực thi, thường
được nói bóng gió là thực hiện những công việc kém thú vị hoặc ít thách thức Chúng ta tin rằng quan điểm này là không chính xác Các kiến trúc sư hay công việc thiết kế có được nhiều hơn việc thiết kế tập lệnh, cũng như các rào cản kỹ thuật trong các khía cạnh khác của dự án làm gặp nhiều thách thức hơn so với những
gì gặp phải trong thiết kế tập lệnh Chúng ta sẽ nhanh chóng xem xét lại kiến trúc tập lệnh trước khi mô tả những thách thức lớn hơn cho các kiến trúc sư máy tính
1.2.5 Kiến trúc tập lệnh
Chúng ta sử dụng thuật ngữ kiến trúc tập lệnh (ISA-Instruction Set Architecture)
để đưa ra các cách lập trình tập lệnh - mà có thể nhìn thấy trong quyển sách này ISA phục vụ như là ranh giới giữa phần mềm và phần cứng Điều xem xét nhanh chóng này của ISA sẽ sử dụng các ví dụ từ MIPS và 80x86 để minh họa cho 7 kích thước của một ISA
1 Loại ISA: Gần như tất cả ISA ngày hôm nay được phân loại như là kiến trúc
thanh ghi chung, nơi mà các toán hạng hoặc là lưu trữ ở thanh ghi hoặc là bộ nhớ Các 80x86 có 16 thanh ghi sử dụng chung và 16 thanh ghi này có thể chứa dữ liệu chấm động (floating-point), trong khi MIPS có 32 thanh ghi chung và 32 thanh ghi chấm động (xem bảng 1.3) Hai phiên bản phổ biến của
loại này là những ISA thanh ghi-bộ nhớ như 80x86, có thể truy cập bộ nhớ như là một phần của nhiều tập lệnh và những ISA lưu-tải như MIPS, có thể
truy cập bộ nhớ chỉ với hoặc tải hoặc lưu trữ các lệnh Tất cả ISA gần đây đều lưu-tải (load-store)
Trang 202 Địa chỉ ô nhớ: Hầu như tất cả các máy tính để bàn và máy chủ, bao gồm cả
80x86 và MIPS, đều sử dụng byte địa chỉ để truy cập ô nhớ toán hạng Một số
kiến trúc, giống như MIPS, yêu cầu các đối tượng phải được liên kết Một truy cập vào một đối tượng có kích thước s byte tại byte địa chỉ A được liên kết
nếu A mod s=0 80x86 không đòi hỏi, nhưng nói chung là truy cập nhanh hơn nếu toán hạng được liên kết
3 Chế độ địa chỉ: Ngoài các quy định cụ thể về thanh ghi và các hằng, chế độ
địa chỉ xác định địa chỉ cụ thể của một đối tượng trong ô nhớ Chế độ địa chỉ của MIPS là thanh ghi, trực tiếp (cho hằng) và sự chuyển dời, vị trí mà độ dời (offset) của hằng có thể thêm vào trên thanh ghi để tạo thành địa chỉ ô nhớ 80x86 hỗ trợ 3 cộng với 3 biến dịch chuyển: không có thanh ghi (tuyệt đối), 2 thanh ghi (theo thứ tự dịch), 2 thanh ghi mà 1 trong nó được nhân với kích thước các toán hạng trên byte (dựa vào chỉ số và sự dịch)
$v0–$v1 2–3 Giá trị kết quả hàm và
Bảng 1.3: Các thanh ghi MIPS và các quy ước sử dụng Ngoài 32 thanh ghi sử
dụng với mục đích chung (R0-R31), MIPS có 32 thanh ghi điểm động (F0-F31), có thể lưu trữ hoặc một con số chính xác đơn 32-bit hoặc là số có độ chính xác kép với 64-bit
4 Loại và kích thước các toán tử: Giống như hầu hết các ISA, MIPS và 80x86
hỗ trợ toán tử có kích thước 8-bit (ký tự ASCII), 16-bit (ký tự Unicode hoặc ½ từ), 32-bit (số nguyên hoặc từ), 64-bit (từ kép hoặc số nguyên dài) và dấu chấm động IEEE 754 trong 32-bit (độ chính xác đơn) và 64-bit (độ chính xác kép) 80x86 cũng hỗ trợ 80-bit cho dấu chấm động (mở rộng độ chính xác kép)
Trang 215 Hoạt động: Các loại hoạt động chung như truyền dữ liệu, số học luận lý, điều
khiển và dấu chấm động MIPS là một cấu trúc đường ống lệnh đơn giản và gọn nhẹ, đại diện tiêu biểu của kiến trúc RISC sử dụng trong năm 2006 Bảng 1.4 tóm tắt các ISA MIPS Các 80x86 có sự đa dạng hơn và thiết lập nhiều hoạt động hơn
6 Kiểm soát dòng lệnh: Hầu như tất cả các ISA, bao gồm cả 80x86 và MIPS,
hỗ trợ các nhánh có điều kiện, các lệnh nhảy không điều kiện, các lời gọi thủ tục và giá trị trả về Cả hai đều sử dụng địa chỉ tương đối của máy tính, nơi mà các địa chỉ nhánh được thiết lập theo một trường địa chỉ được thêm vào PC Tất nhiên, sẽ có một vài khác biệt nhỏ Những nhánh điều kiện MIPS (BE, BNE, v.v…) kiểm tra nội dung những thanh ghi, trong đó nhánh 80x86 (JE, JNE, v.v…) kiểm tra những bit mã điều kiện được thiết lập như tác dụng ngoài của bộ xử lý số học/luận lý Thủ tục MIPS gọi (JAL) nơi trả về địa chỉ trên một thanh ghi, trong khi lời gọi của 80x86 (CALLF) nơi các địa chỉ trả về nằm trên các ngăn xếp trong bộ nhớ
7 Mã hóa ISA: Có hai lựa chọn cơ bản để mã hóa: chiều dài cố định và chiều
dài thay đổi Tất cả các cấu trúc lệnh MIPS đều có độ dài 32 bit, làm đơn giản
hóa việc giải mã Hình 1.2 hiển thị các định dạng về cấu trúc lệnh của MIPS 80x86 mã hóa bằng cách biến đổi chiều dài, lần lượt từ 1 đến 18 byte Chiều dài được biến đổi làm ít chiếm dụng bộ nhớ hơn việc cố định chiều dài lệnh,
do đó, một chương trình biên dịch cho 80x86 thường nhỏ hơn cùng một chương trình biên dịch trên MIPS Lưu ý rằng việc lựa chọn nêu trên sẽ ảnh hưởng đến cách các cấu trúc lệnh được mã hóa thành mã nhị phân tương ứng
Ví dụ, số lượng các thanh ghi và số lượng các chế độ địa chỉ đều có một ảnh hưởng đáng kể đến kích thước của các dòng lệnh, như các trường trên thanh ghi và các trường trong chế độ địa chỉ có thể xuất hiện nhiều lần trong một lần gọi lệnh
Chúng ta sử dụng một bảng con của MIPS64 như là một ví dụ về ISA trong quyển sách này
Truyền dữ liệu Di chuyển dữ liệu từ thanh ghi và bộ nhớ, hoặc giữa các
hàm chức năng với số nguyên hoặc các thanh ghi đặc biệt; chỉ ô nhớ của chế độ địa chỉ là 16 bit dịch chuyển + nội dung của một bộ định vị (GPR)
LB, LBU, SB Tải byte, tải byte không dấu, lưu trữ byte (đi/đến các thanh
ghi số nguyên)
LH, LHU, SH Tải ½ từ, tải ½ từ không dấu, lưu trữ ½ từ (đi/đến các
thanh ghi số nguyên)
Trang 22Loại lệnh/mã thao tác (opcode) Ý nghĩa lệnh
LW, LWU, SW Tải từ, từ không dấu, lưu trữ từ (đi/đến các thanh ghi số
nguyên)
LD, SD Tải từ kép, lưu trữ từ kép (đi/đến các thanh ghi số nguyên) L.S, L.D, S.S, S.D Tải SP nổi, tải DP nổi, lưu SP nổi, lưu DP nổi
MFC0, MTC0 Sao chép từ/đến GPR đến/từ 1 thanh ghi đặc biệt
MOV.S, MOV.D Sao chép 1 thanh ghi SP hoặc DP FP đến 1 thanh ghi FP
DMUL, DMULU, DDIV, DDIVU,
MADD
Nhân và chia, có dấu và không dấu; nhân-cộng; tất cả phép toán đều là giá trị 64 bit
OR, ORI, XOR, XORI Or, or trực tiếp, or loại trừ, or loại trừ trực tiếp
LUI Tải dấu mũ trực tiếp; tải trực tiếp bit 32 đến 47 lên thanh
ghi, sau đó là các dấu mở rộng DSLL, DSRL, DSRA, DSLLV, Dịch trái: cả trực tiếp (DS ) và thay đổi dạng (DS V);
dịch có s là phép dịch trái DSRLV, DSRAV Dịch phải luận lý và dịch phải số học
SLT, SLTI, SLTU, SLTIU Đặt chỉ số dưới, đặt chỉ số dưới trực tiếp; có dấu và không
nhánh; 16-bit độ dời từ PC + 4 MOVN, MOVZ Sao chép GPR đến GPR khác nếu GPR thứ ba là âm,
bằng 0
J, JR Nhảy: 26-bit độ dời từ PC + 4 (J) hay đích trên thanh ghi
(JR) JAL, JALR Bước nhảy và liên kết: lưu PC + 4 trong R31, mục tiêu là
giao tiếp PC (JAL) hoặc một thanh ghi (JALR)
Trang 23Loại lệnh/mã thao tác (opcode) Ý nghĩa lệnh
TRAP Chuyển giao cho hệ điều hành tại một địa chỉ thuộc vectơ ERET Trả về mã người sử dụng do một ngoại lệ; khôi phục chế
độ người dùng
Dấu chấm động Các toán tử của FP trên những định dạng của DP và SP
ADD.D, ADD.S, ADD.PS Thêm số DP, SP và các cặp số SP
SUB.D, SUB.S, SUB.PS Trừ số DP, SP và cặp số SP
MUL.D, MUL.S, MUL.PS Nhân DP, SP có dấu chấm động và những cặp SP
MADD.D, MADD.S, MADD.PS Nhân-cộng những số DP, SP và những cặp số SP
DIV.D, DIV.S, DIV.PS Chia DP, SP có dấu chấm động và những cặp số SP CVT._._ Chuyển đổi lệnh: CVT.x.y chuyển loại x thành loại y, trong
đó x và y là L (số nguyên 64-bit), W (số nguyên 32-bit), D
(DP), hoặc S (SP) Cả 2 toán hạng là những FPR C. .D, C. .S DP và SP so sánh: “ ” = LT,GT,LE,GE,EQ,NE; bộ bit
trong thanh ghi tình trạng FP
Bảng 1.4: Các lệnh trong MIPS64 SP = độ chính xác đơn (single precision); DP=
độ chính xác kép (double precision)
Basic instruction formats
31 26 25 21 20 16 15 11 10 6 5 0
31 26 25 21 20 16 15
Hình 1.2: Các định dạng thiết lập kiến trúc lệnh MIPS64 Tất cả các lệnh đều có
độ dài 32 bit Các định dạng R là dành cho các toán tử số nguyên từ thanh ghi đến thanh ghi, chẳng hạn như DADDU, DSUBU và hơn thế nữa Các định dạng I là dành cho việc truyền dữ liệu, phân nhánh và các lệnh trực tiếp, chẳng hạn như LD, SD, BEQZ và DADDIs Các định dạng J là cho bước nhảy, định dạng FR cho các thực thi dấu chấm động và FI định dạng cho các nhánh dấu chấm động
Phần còn lại của kiến trúc máy tính: Thiết kế, tổ chức phần cứng để đáp
ứng các mục tiêu và đòi hỏi về chức năng
Trang 24Cài đặt một máy tính có 2 thành phần: Tổ chức và phần cứng Thuật ngữ tổ chức bao gồm các khía cạnh cấp cao của việc thiết kế máy tính, chẳng hạn như hệ
thống bộ nhớ, liên kết bộ nhớ và thiết kế bộ vi xử lý nội bộ hoặc CPU (đơn vị xử lý trung tâm - nơi số học, phép toán logic, phân nhánh và luân chuyển dữ liệu được thực hiện) Ví dụ, hai bộ xử lý với kiến trúc tập lệnh tương tự, nhưng khác nhau về
tổ chức là AMD Opteron 64 và Intel Pentium 4 Cả hai bộ vi xử lý thực hiện các tập lệnh x86, nhưng chúng có đường ống lệnh (pipeline) rất khác nhau và các tổ chức
cache Phần cứng là các chi tiết cụ thể của một máy tính, bao gồm cả việc thiết kế
và đóng gói công nghệ Thường thì một dòng máy tính chứa các máy tính có thiết lập giống hệt nhau, kiến trúc tập lệnh và tổ chức chúng gần như nhau, nhưng chúng khác nhau trong việc thiết kế chi tiết phần cứng Ví dụ, Pentium 4 và Pentium 4 Mobile dòng di động gần như giống hệt nhau, nhưng tốc độ xung nhịp xử lý khác nhau và hệ thống bộ nhớ khác nhau, làm cho Pentium 4 Mobile hiệu quả hơn cho các máy tính cấp thấp
Trong quyển sách này, khái niệm kiến trúc bao gồm tất cả ba khía cạnh của
kiến trúc máy tính: kiến trúc tập lệnh, tổ chức và phần cứng Những kiến trúc máy tính phải đáp ứng những yêu cầu chức năng cũng như giá cả, sức mạnh, hiệu suất và các mục tiêu sẵn có Bảng 1.5 tóm tắt những yêu cầu cần xem xét trong việc thiết kế một máy tính mới Thông thường, những kiến trúc sư cũng phải tự xác định được các yêu cầu chức năng, đặc biệt là một chức năng chính nào đó Các yêu cầu về tính năng cụ thể có thể lấy cảm hứng từ thị trường Phần mềm ứng dụng thường điều khiển một số chức năng chính được quyết định bởi người sử dụng Nếu phần thân lớn của một phần mềm tồn tại cho một kiến trúc tập lệnh nhất định, thì các kiến trúc
sư có thể quyết định rằng một máy tính mới phải thực hiện tập lệnh hiện tại đó Sự nổi lên của một thị trường lớn cho một lớp các ứng dụng đặc biệt có thể khuyến khích các nhà thiết kế kết hợp các yêu cầu đó lại và sẽ làm tăng sự cạnh tranh trên thị trường đó Nhiều trong số các yêu cầu và tính năng sẽ được đào sâu ở các chương sau
Kiến trúc sư cũng phải thích ứng nhanh với các xu hướng quan trọng trong công nghệ và việc sử dụng máy tính, như vậy xu hướng này không chỉ ảnh hưởng đến chi phí trong tương lai, mà còn quyết định sự tồn tại lâu dài của một cấu trúc Nếu một thân của phần mềm tồn tại đối với một kiến trúc tập lệnh chắc chắn, các kiến trúc sư có thể quyết định rằng một máy tính mới nên thực hiện một tập lệnh hiện tại Sự hiện diện của một thị trường lớn cho một lớp học đặc biệt của ứng dụng có thể khuyến khích các nhà thiết kế để kết hợp các yêu cầu đó sẽ làm cho máy tính cạnh tranh trong thị trường đó
Trang 25Chức năng yêu cầu Đặc điểm nổi bật không thể thiếu hoặc hỗ trợ
- Hiệu suất cao dấu chấm động và đồ họa
- Hỗ trợ cho cơ sở dữ liệu và xử lý giao dịch; cải tiến cho độ tin cậy và sẵn có; hỗ trợ cho khả năng mở rộng
- Thông thường hỗ trợ cho đồ họa hoặc video (hoặc các ứng dụng mở rộng cụ thể); hạn chế và kiểm soát các chức năng yêu cầu
+ Xác định số lượng phần mềm có sẵn trong máy tính
- Hầu hết linh hoạt cho các nhà thiết kế; cần trình biên dịch mới
- Hướng dẫn thiết lập kiến trúc là hoàn toàn xác định - ít linh hoạt, nhưng không có sự đầu tư cần thiết trong các chương trình phần mềm hoặc cổng chương trình
+ Hệ điều hành yêu cầu
- Kích thước của không gian
địa chỉ
- Quản lý bộ nhớ
- Chế độ bảo vệ
+ Các tính năng cần thiết để hỗ trợ lựa chọn hệ điều hành
- Đặc trưng rất quan trọng; có thể giới hạn các ứng dụng
- Cần thiết cho hệ điều hành hiện đại, có thể chia thành từng trang, hoặc phân đoạn
- Sự khác nhau về những nhu cầu của hệ điều hành và ứng dụng, trang so với đoạn, máy ảo
+ Một số tiêu chuẩn có thể được thị trường yêu cầu
- Định dạng và số học: tiêu chuẩn IEEE 754, đặc biệt số học cho đồ họa và xử lý tín hiệu
- Đối với thiết bị I/O: Serial ATA, Serial Attach SCSI, PCI Express
- UNIX, Windows, Linux, CISCO IOS
- Hỗ trợ tốt cho các mạng khác nhau như: Ethernet, Infiniband
- Ngôn ngữ (ANSI C, C++, Java, FORTRAN), ảnh hưởng tập lệnh
Bảng 1.5: Tóm tắt 1 số chức năng yêu cầu quan trọng nhất mà người kiến trúc sư
phải đối mặt Cột bên trái mô tả các lớp yêu cầu, trong khi cột bên phải đưa ra các ví dụ
cụ thể Cột bên phải đồng thời cũng tham chiếu đến số chương, phần để giải quyết các vấn đề cụ thể
1.3 Các xu hướng công nghệ
Nếu một kiến trúc tập lệnh được thiết lập có thể thành công, nó phải được thiết kế để theo kịp sự thay đổi nhanh chóng của công nghệ máy tính Tóm lại, một
Trang 26tập lệnh mới tác động đến kiến trúc có thể hướng tới một thành công sau nhiều thập
kỷ qua, ví dụ, cốt lõi của bộ khung IBM đã được sử dụng hơn 40 năm qua Một kiến trúc sư phải có kế hoạch cho sự thay đổi công nghệ để có thể tăng tuổi thọ của một máy tính tốt
Kế hoạch cho sự phát triển của máy tính, người thiết kế phải ý thức được sự thay đổi nhanh chóng của sự phát triển công nghệ Bốn sự bổ sung công nghệ, cùng với sự thay đổi ấn tượng, chúng rất quan trọng để thực hiện sự hiện đại hóa
• Mạch tích hợp công nghệ logic: Mật độ transistor tăng khoảng 35% trên một năm, tăng 4 lần trong vòng 4 năm Tăng kích thước chết ít và chậm hơn dự đoán, từ 10% đến 20% trên một năm Hiệu quả kết hợp trong transistor trên một chip tăng trưởng khoảng 40% đến 55% trên một năm
Thiết bị quy mô tốc độ chậm hơn, chúng ta sẽ thảo luận thêm dưới đây
• Bán dẫn DRAM (Bộ nhớ truy cập ngẫu nhiên động): Công suất tăng 40% trên một năm, tăng gấp đôi sau 2 năm
• Công nghệ đĩa từ: Trước năm 1990, mật độ tăng lên khoảng 30% trên một năm, tăng gấp đôi trong ba năm Nó tăng đến 60% ở năm sau đó và tăng lên 100% vào năm 1996 Từ năm 2004, nó giảm còn 30% trên một năm
• Công nghệ mạng: Mạng lưới hoạt động phụ thuộc cả về hiệu suất của thiết bị chuyển mạch và về hiệu suất của hệ thống truyền tải
Những công nghệ này nhanh chóng thay đổi hình dạng thiết kế của một máy tính, với tốc độ của sự cải tiến công nghệ, có thể có một tuổi thọ 5 năm hoặc nhiều hơn Cần rất nhiều thời gian để làm ra một sản phẩm duy nhất cho một hệ thống máy tính (2 năm thiết kế, 2-3 năm sản xuất) Công nghệ trọng điểm như thay đổi DRAM mức vừa đủ và người thiết kế phải lập kế hoạch cho những thay đổi này Thật vậy, nhà thiết kế thường thiết kế cho những công nghệ tiếp theo, biết rằng khi một sản phẩm bắt đầu vận chuyển khối lượng mà công nghệ tiếp theo có thể là hầu hết các chi phí hiệu quả hoặc có thể có lợi thế thực hiện Theo truyền thống, chi phí
đã giảm ở mức mà tại đó mật độ tăng
Mặc dù công nghệ cải thiện liên tục, tác động của những cải thiện, các tuyên
bố có thể được thông báo trong các khoảng cách rời rạc, như là một ngưỡng cho phép một khả năng mới đạt được Ví dụ, khi công nghệ MOS đạt đến một điểm đầu những năm 1980, nơi giữa 25.000 và 50.000 transistor có thể phù hợp trên một chip duy nhất, nó trở thành có thể xây dựng một bộ vi xử lý, đơn chip 32-bit Vào cuối những năm 1980, lần đầu tiên cấp bộ nhớ đệm có thể gắn trên chip Thiết kế này chỉ đơn giản khả thi cho đến khi công nghệ đạt đến một điểm nhất định Ngưỡng công nghệ như vậy không phải là hiếm và có tác động đáng kể đến một loạt các quyết định thiết kế
Trang 271.3.1 Các xu hướng về hiệu suất: Băng thông trên độ trễ
Như chúng ta sẽ thấy trong mục 1.8, băng thông hoặc thông lượng là tổng số lượng công việc thực hiện trong một thời gian nhất định, chẳng hạn như MB trên một giây cho một đĩa truyền Ngược lại, độ trễ hay thời gian đáp ứng là thời gian giữa thời điểm bắt đầu và kết thúc của một tác động, chẳng hạn như mili giây cho một truy cập đĩa Hình 1.3 mô tả sự cải tiến tương đối băng thông và độ trễ cho các mốc công nghệ đối với các bộ vi xử lý, bộ nhớ, mạng và đĩa Bảng 1.6 trình bày các ví dụ và các mốc cụ thể chi tiết hơn Rõ ràng, băng thông cải thiện rất nhanh so với độ trễ
Hình 1.3: Bản vẽ băng thông và độ trễ Lưu ý rằng độ trễ được cải thiện ở 10X trong
khi băng thông được cải thiện từ 100X đến 1000X
1.3.2 Tỉ lệ của hiệu suất bán dẫn và dây
Các quy trình tích hợp mạch được đặc trưng bởi kích thước tính năng, mà là kích cỡ tối thiểu của một bóng bán dẫn hoặc dây trong, hoặc kích thước x, hoặc kích thước y Tính năng có kích thước giảm từ 10 micron trong năm 1971 đến 0,09 micron trong năm 2006 Trong thực tế, chúng ta đã chuyển các đơn vị, do đó, sản xuất trong năm 2006 được gọi là "90 nm" và chip 65 nm đang được triển khai Kể
từ khi số bóng bán dẫn trên mỗi mm2 của silicon được xác định bởi diện tích bề mặt của một bóng bán dẫn, mật độ bóng bán dẫn tăng bình phương với một sự giảm kích thước tuyến tính
Trang 28Microprocessor 16-bit
address/bus, microcoded
32-bit address/bus, microcoded
5-stage pipe line, onchip I&D caches, FPU
2-way superscalar, 64-bit bus
Out-of-order 3-way superscalar
Out-of-order superpipelined, on-chip 1.2 cache Product Intel 80286 Intel 80386 Intel 80486 Intel Pentium Intel Pentium Pro Intel Pentium 4
Synchronous DRAM
Double data rate SDRAM
Seagate ST15150
Seagate ST39102
Seagate ST373453
Disk form factor 5,25 inch 5,25 inch 3,5 inch 3,5 inch 3,5 inch
Media diameter 5,25 inch 5,25 inch 3,5 inch 3,0 inch 2,5 inch
Việc tăng hiệu suất bóng bán dẫn, tuy nhiên, là khá phức tạp Theo tính năng thu nhỏ kích thước, thiết bị thu nhỏ bình phương trong chiều ngang và cũng thu nhỏ trong chiều dọc Việc thu nhỏ trong chiều dọc đòi hỏi phải giảm điện áp hoạt động
để duy trì hoạt động chính xác và độ tin cậy của các bóng bán dẫn Sự kết hợp của
Trang 29các yếu tố rộng dẫn đến một hệ thống tương quan phức tạp giữa hiệu suất và kích thước bóng bán dẫn
Thực tế là bóng bán dẫn cải thiện tính bình phương với một cải thiện tuyến tính, các lĩnh vực hoạt động bóng bán dẫn là cả những thách thức và cơ hội mà kiến trúc sư máy tính đã được tạo ra Trong những ngày đầu của bộ vi xử lý, tỉ lệ cải thiện mật độ đã được nâng cấp nhanh chóng từ 4-bit, đến 8-bit, 16-bit và bộ vi xử lý 32-bit Gần đây, mật độ cải thiện, các tuyên bố có hỗ trợ việc giới thiệu các bộ vi xử
lý 64-bit cũng như nhiều đổi mới trong đường ống và các cache
Mặc dù bóng bán dẫn nói chung là cải thiện hiệu suất và giảm kích thước, dây điện trong một mạch tích hợp thì chưa làm được Đặc biệt, sự chậm trễ tín hiệu cho một dây tăng tương ứng với sản phẩm của điện trở và điện dung của nó Tất nhiên, như tính năng thu nhỏ kích thước, dây được ngắn hơn, nhưng điện trở và điện dung trên một đơn vị tồi tệ hơn Mối quan hệ này là phức tạp, kể từ khi cả điện trở và điện dung phụ thuộc vào các khía cạnh chi tiết của quá trình, dạng ngoài của dây dẫn, các tải trên dây và thậm chí phụ cận các cấu trúc khác Có những cải tiến quá trình thường xuyên, trong đó cung cấp các cải tiến trong thời gian chậm trễ do dây Nhìn chung, dây chậm trễ so với hiệu suất bóng bán dẫn, tạo ra những thách thức cần thiết kế bổ sung Trong vài năm qua, sự chậm trễ của dây đã trở thành một giới hạn thiết kế chính cho các mạch tích hợp lớn và thường quan trọng hơn so với bóng bán dẫn chuyển mạch chậm trễ Trong năm 2001, Pentium 4 đã ra mắt mới bằng cách bố trí 2 tầng của đường ống dẫn 20 + tầng của nó chỉ dành cho truyền các tín hiệu trên chip
1.3.3 Xu hướng năng lượng trên các mạch tích hợp
Năng lượng cũng cung cấp những thách thức như các thiết bị được thu nhỏ Thứ nhất, năng lượng phải được đưa vào và phân phối trên chip và các bộ vi xử lý hiện đại sử dụng hàng trăm chân và kết nối nhiều lớp Thứ hai, năng lượng hao phí như là nhiệt phải được loại bỏ Đối với chip CMOS, các truyền thống chi phối năng lượng tiêu thụ đã được chuyển sang bóng bán dẫn, còn gọi là năng lượng động Các năng lượng cần cho mỗi bóng bán dẫn là tỉ lệ thuận với sản phẩm của điện dung tải của bóng bán dẫn, các bậc hai của điện áp và tần số của chuyển đổi, với đơn vị tính bằng Watt:
Powerdynamic = 1/2 x Capacitive load x Voltage2 x Frequency switched
Do đó năng lượng là thước đo thích hợp, được đo bằng joules:
Energydynamic = Capacitive load x Voltage2
Trang 30Do đó, năng lượng động, sức mạnh năng lượng được giảm đi đáng kể bằng cách giảm điện áp, điện áp do đó đã giảm từ 5V để chỉ hơn 1V trong 20 năm Các tải dung là một chức năng của số lượng bóng bán dẫn kết nối với một đầu ra và công nghệ, mà quyết định các điện dung của dây và các bóng bán dẫn Đối với một công việc cố định, tốc độ đồng hồ chậm lại làm giảm điện năng, nhưng không giảm năng lượng
Ví dụ: Một số bộ vi xử lý ngày nay được thiết kế để có thể điều chỉnh điện áp,
do đó khi 15% giảm điện áp có thể làm giảm 15% tần số Những gì sẽ ảnh hưởng đến sức mạnh năng lượng động?
Trả lời: Kể từ khi điện dung không thay đổi, thì câu trả lời là tỉ lệ của điện áp
và tần số
2
2 old
Power (Voltage x 0,85) x (Frequency switched x 0,85)
Power Voltage x Frequency switched
Do đó làm giảm 60% năng lượng ban đầu
Như chúng ta chuyển từ một quá trình để tăng tiếp theo, trong số lượng các bóng bán dẫn chuyển đổi và tần số mà nó chuyển đổi, chi phối giảm tải điện dung
và điện áp, dẫn đến tăng trưởng chung trong tiêu thụ năng lượng Các bộ vi xử lý đầu tiên tiêu thụ 1/10 của Watt, trong khi một chip Pentium 4 3,2 GHz tiêu thụ 135 Watt Cho rằng sức nóng này phải được làm tiêu tan từ một chip đó là khoảng 1 cm trên mặt, do đó cần phải được làm mát bằng không khí Một số bộ vi xử lý Intel có điốt để giảm nhiệt độ hoạt động tự động nếu chip quá nóng Ví dụ, họ có thể làm giảm điện áp và tần số đồng hồ
Phân phối năng lượng, loại bỏ nhiệt và ngăn chặn các điểm nóng đã trở nên ngày càng thách thức khó khăn Công suất hiện nay là hạn chế lớn trong việc sử dụng bóng bán dẫn, trong quá khứ nó là một hàng silicon Đó là hạn chế, hầu hết các bộ vi xử lý ngày hôm nay tắt đồng hồ của các mô-đun không hoạt động để tiết kiệm năng lượng và điện năng động Ví dụ, nếu không có lệnh dấu chấm động được thực hiện, đồng hồ của khối dấu chấm động bị vô hiệu hóa
Mặc dù điện năng động là nguồn gốc chính của năng lượng trong CMOS, tĩnh điện đang trở thành một vấn đề quan trọng bởi vì dòng chảy rò rỉ hiện nay ngay cả khi bóng bán dẫn đang tắt:
Powerstatic = Currentstatic x Voltage
Vì vậy, tăng số lượng các bóng bán dẫn tăng sức mạnh ngay cả khi nó đang bị tắt và làm tăng sự rò rỉ hiện nay trong bộ vi xử lý với các kích thước bóng bán dẫn nhỏ hơn Kết quả là, hệ thống năng lượng rất thấp thậm chí còn chọn điện áp cho
Trang 31các mô-đun không hoạt động để kiểm soát tổn thất do rò rỉ Trong năm 2006, mục tiêu cho rò rỉ là 25% của tổng số điện năng tiêu thụ, với sự rò rỉ trong các thiết kế hiệu năng cao đôi khi vượt xa mục tiêu đó Các giới hạn của không khí lạnh đã dẫn đến nhiều bộ xử lý trên một chip chạy ở điện áp và tốc độ xung đồng hồ thấp hơn
1.4 Sơ lược về một số kiến trúc máy tính hiện đại
Bây giờ chúng ta đã thấy được bằng cách nào để định nghĩa, đo lường, và tổng quát hoá quá trình thực hiện, độ tin cậy, sức mạnh, chúng ta có thể khám phá ra các ống dẫn và nguyên tắc hữu ích trong thiết kế và phân tích máy tính Phần này giới thiệu những cái nhìn quan trọng về thiết kế, cũng như hai phương trình để đánh giá giữa hai sự lựa chọn
1.4.1 Ưu điểm của tính song song
Tận dụng tính song song là một trong những phương pháp quan trọng nhất để tăng hiệu năng Mỗi chương trong quyển sách này đều có một ví dụ để biết cách làm thế nào để tăng cường quá trình thực hiện thông qua việc tận dụng tính song song Chúng ta sẽ đưa ba ví dụ ngắn gọn, nó sẽ được giải thích rõ ràng ở những chương sau
Ví dụ đầu tiên là sử dụng tính song song ở mức độ hệ thống Để cải thiện hiệu suất thông qua một máy chủ chuẩn điển hình, như là SPECWeb hoặc TCP-C, nhiều
bộ vi xử lý và nhiều ổ đĩa có thể được sử dụng Khối lượng công việc xử lý những yêu cầu sau đó có thể trải ra giữa bộ vi xử lý và ổ đĩa, kết quả là đã cải thiện thông lượng Có khả năng mở rộng bộ nhớ và số lượng các bộ vi xử lý và đĩa được gọi là
“khả năng mở rộng”, và nó là tài sản có giá trị của các máy chủ
Ở cấp độ của một bộ vi xử lý cá nhân, tận dụng tính song song giữa các lệnh
là rất quan trọng để đạt được hiệu suất cao Một trong những cách đơn giản nhất để làm điều này là thông qua sự tạo ống dẫn Ý tưởng cơ bản đằng sau sự tạo ống dẫn, được giải thích chi tiết hơn trong chương 2, là để chồng lấp việc thực thi các lệnh để làm giảm thời gian hoàn thành một trình tự lệnh Một nhận thức chính cho phép sự tạo ống dẫn làm việc là không phụ thuộc lệnh trên phần tử ngay trước đó, và do đó, các chỉ lệnh có thể thực hiện một cách hoàn toàn hoặc chỉ một phần
Tính song song cũng được khai thác ở mức độ thiết kế kỹ thuật số chi tiết Ví
dụ, bộ nhớ đệm liên hợp vùng sử dụng nhiều khối nhớ được tìm kiếm điển hình song song để tìm một phần tử như mong muốn Hệ thống ALU hiện đại sử dụng tìm kiếm xa, trong đó sử dụng tính song song để tăng tốc quá trình tính toán tổng từ tuyến tính cho đến logarit trong số bit trên một toán hạng
Trang 321.4.2 Nguyên tắc của vùng
Những quan sát cơ bản quan trọng đến từ những thuộc tính của chương trình Đặc tính quan trọng nhất của chương trình mà chúng ta thường xuyên khai thác là
nguyên tắc của vùng: Chương trình có xu hướng sử dụng lại dữ liệu và các lệnh
được sử dụng gần đây Một nguyên tắc ngón tay cái được tổ chức rộng rãi là một chương trình tiêu tốn 90% thời gian thực thi của nó chỉ với 10% các mã Một ý nghĩa của vùng là chúng ta có thể dự đoán mức độ chính xác hợp lý những gì các lệnh và dữ liệu một chương trình sẽ sử dụng trong tương lai gần dựa trên những truy cập của nó trong quá khứ gần đây Nguyên tắc của vùng cũng được áp dụng cho truy cập dữ liệu, mặc dù không mạnh mẽ như truy cập các mã
Hai loại khác biệt của vùng đã được chú ý Vị trí vùng thời gian mà những phần tử được truy cập gần đây thì có thể được truy cập trong tương lai gần Vùng không gian nói lên những phần tử mà những địa chỉ gần nhau có xu hướng tham chiếu cùng nhau đúng thời gian Chúng ta sẽ thấy những nguyên tắc này được áp dụng trong chương 5
1.4.3 Tập trung vào các trường hợp chung
Có lẽ nguyên tắc quan trọng và phổ biến nhất của thiết kế máy tính là tập trung vào những trường hợp chung: Trong việc làm một thiết kế cân bằng, thiên về những trường hợp thường xuyên hơn những trường hợp không thường xuyên Nguyên tắc này áp dụng khi xác định bằng cách nào để chi tiêu nguồn tài nguyên,
kể từ khi tác động việc cải tiến nó cao hơn nếu việc xảy ra là thường xuyên
Tập trung vào trường hợp chung làm việc với nguồn năng lượng cũng như phân bổ nguồn tài nguyên và hiệu suất Những lệnh được lấy và giãi mã đơn vị của một bộ vi xử lý có thể được sử dụng thường xuyên hơn nhiều so với một bộ nhân để tối ưu nó trước tiên Nó hoạt động với độ tin cậy cao Nếu cơ sở dữ liệu của một máy chủ có 50 ổ đĩa cho mỗi bộ vi xử lý, cũng như trong phần tiếp theo, độ tin cậy lưu trữ sẽ nổi trội hơn độ tin cậy của hệ thống
Ngoài ra, các trường hợp thường xuyên thì đơn giản hơn, có thể hoàn thành nhanh hơn những trường hợp không thường xuyên Ví dụ, khi thêm hai số vào bộ vi
xử lý chúng ta có thể hy vọng tràn bộ nhớ để có hoàn cảnh hiếm và vì thế có thể cải thiện hiệu suất bằng cách tối ưu các trường hợp thông thường không tràn bộ nhớ Trong việc áp dụng nguyên tắc đơn giản này, chúng ta phải quyết định những trường hợp nào là thường xuyên và hiệu suất có thể được cải thiện bao nhiêu bằng cách làm cho trường hợp đó nhanh hơn Một luật cơ bản được gọi là luật của Amdahl có thể được sử dụng để định lượng cho nguyên tắc này
Trang 331.4.4 Luật Amdahl
Tăng tốc hiệu suất có thể đạt được bằng cách cải thiện một số của một máy tính có thể tính toán dựa vào sử dụng luật Amdahl Luật Amdahl phát biểu rằng, cải thiện hiệu suất để có được độ lợi từ việc sử dụng một số chế độ thực hiện nhanh hơn
là bị giới hạn bởi tỷ lệ thời gian chế độ làm việc nhanh hơn có thể được sử dụng
Luật Amdahl định nghĩa “sự tăng tốc (speedup)” có thể đạt được bằng cách sử dụng một tính năng đặc biệt Vậy “sự tăng tốc” là gì? Giả sử rằng chúng ta có thể làm tăng cường cho một máy tính mà sẽ được cải thiện hiệu suất khi sử dụng nó Sự tăng tốc là tỉ số:
chương trình có sử dụng việc tăng cường trong tổng số là 60s thì tỷ lệ đó là
20/60 Giá trị này chúng ta sẽ gọi là hệ số tăng cường (HSTC), nó luôn luôn
có giá trị nhỏ hơn hoặc bằng 1
2 Việc cải thiện đạt được bằng chế độ thực thi tăng cường, đó là một nhiệm vụ
sẽ chạy nhanh hơn như thế nào nếu chế độ tăng cường được sử dụng trong toàn bộ chương trình Nếu chế độ tăng cường mất 2s cho một phần của
chương trình trong khi ở chế độ ban đầu là 5s, thì sự cải thiện là 5/2 Chúng ta
gọi giá trị này là mức tăng cường (MTC), nó luôn luôn lớn hơn 1
Thời gian thực thi mà sử dụng máy tính ban đầu với chế độ tăng cường sẽ là thời gian đã tiêu tốn để sử dụng cho phần không được tăng cường cộng với thời gian tiếu tốn cho việc tăng cường:
Thời gian thực thi (mới) = Thời gian thực thi (cũ) x ((1 - Hệ số tăng cường) + HSTC/MTC)
Speedup = Thời gian thực thi toàn bộ công việc không sử dụng việc tăng cường
Thời gian thực thi toàn bộ công việc sử dụng tăng cường khi có thể
Speedup = Hiệu suất cho toàn bộ công việc sử dụng việc tăng cường khi có thể
Hiệu suất cho toàn bộ công việc không sử dụng việc tăng cường
Trang 34Tăng tốc toàn bộ là tỷ số thời gian thực thi:
Ví dụ 1: Giả sử rằng chúng ta muốn tăng cường bộ vi xử lý được sử dụng
phục vụ cho Web Bộ vi xử lý mới thì tính toán nhanh hơn gấp 10 lần so với bộ vi
xử lý ban đầu trong các ứng dụng phục vụ cho Web Giả định rằng bộ vi xử lý ban đầu sử dụng thời gian tính toán 40% và đợi I/O là 60% Việc tăng tốc toàn bộ đạt được cái gì bằng việc kết hợp sự tăng cường?
Trả lời: Hệ số tăng cường = 0,4; Mức tăng cường = 10; Tăng tốc toàn bộ = 1 /
(0,6 + 0,4 / 10) = 1 / 0,64 = 1,56
Luật Amdahl diễn đạt nguyên lý giảm bớt trở lại: Sự gia tăng trong việc cải thiện tăng tốc đạt được bởi sự cải tiến chỉ một phần tính toán như việc cải thiện được thêm vào Một hệ quả quan trọng của luật Amdahl là nếu sự tăng cường có thể được sử dụng cho một phần nhỏ của một công việc thì chúng ta không thể tăng tốc công việc nhiều hơn nghịch đảo của phân số âm đó
Một lỗi chung trong việc sử dụng luật Amdahl là để làm lẫn lộn giữa “phân số thời gian được chuyển đổi để sử dụng một sự tăng cường” và “phân số thời gian sau khi tăng cường trong sử dụng” Nếu, thay vì đo thời gian mà chúng ta có thể sử dụng sự tăng cường trong tính toán thì chúng ta đo thời gian sau khi sự tăng cường trong sử dụng, kết quả sẽ không đúng
Luật Amdahl có thể phục vụ như là một hướng dẫn để biết một sự tăng cường
sẽ cải thiện được bao nhiêu và bằng cách nào phân phối nguồn tài nguyên để cải thiện chi phí hiệu suất Luật Amdahl thì đặc biệt hữu ích cho so sánh toàn bộ hiệu suất hệ thống của hai sự lựa chọn, nhưng nó cũng có thể được áp dụng để so sánh kết cấu của hai bộ vi xử lý khác nhau, xem ví dụ sau đây
Ví dụ 2: Phép biến đổi chung yêu cầu trong những bộ vi xử lý đồ họa là
vuông góc Khai triển căn bậc hai các dấu chấm động (FP: Floating Point) khác nhau đáng kể về hiệu suất, đặc biệt là giữa những bộ vi xử lý thiết kế cho đồ họa Giả
sử căn bậc hai FP (FPSQR) chịu trách nhiệm cho 20% của thời gian thực thi của một điểm chuẩn đồ họa quan trọng Một đề nghị là để tăng cường phần cứng FPSQR và tăng tốc vận hành này bằng một hệ số của 10 Những sự lựa chọn khác nhau thì chỉ để
cố gắng làm tất cả những lệnh FP trong những bộ vi xử lý đồ họa chạy nhanh hơn bởi một hệ số là 1,6; lệnh FT chịu trách nhiệm cho nửa thời gian cho ứng dụng Đội thiết
kế tin rằng họ có thể làm tất cả lệnh FP chạy nhanh hơn 1,6 lần với lực tương tự khi yêu cầu cho căn bậc hai nhanh chóng So sánh hai sự lựa chọn thiết kế
1 (1 - HSTC) + HSTC/MTC
Thời gian thực thi (cũ) Thời gian thực thi (mới)
Trang 35Trả lời: Chúng ta có thể so sánh hai lựa chọn bằng cách so sánh sự tăng tốc:
FPSQR
0, 2 0,82(1- 0, 2) +
1, 6Cải thiện hiệu suất của toàn bộ quá trình FP thì tốt hơn không đáng kể bởi vì tần suất cao hơn
Luật Amdahl có thể được thực hiện ngoài hiệu suất Chúng ta hãy làm lại ví
dụ đáng tin cậy sau khi cải thiện độ tin cậy của việc cung cấp nguồn điện thông qua
sự dư thừa từ 200.000 giờ đến 830.000.000 giờ MTTF, hoặc lớn hơn 4150X
Ví dụ 3: Tính toán tỷ lệ lỗi của hệ thống đĩa phụ là:
Vì vậy, phân số của tỷ lệ lỗi có thể được cải tiến là 5 phần triệu giờ trong số
23 cho toàn hệ thống hoặc 0,22
Trả lời: Sự cải thiện đáng tin cậy sẽ là:
Cải thiện (Cấp điện đôi) = 1 = 1 = 1, 28
0, 22 0, 78(1- 0, 22) +
4150Mặc dù sự cải tiến ấn tượng 4150X trong độ tin cậy của một môđun, từ quan điểm hệ thống, sự thay đổi là lợi ích có thể đo lường được nhưng mà nhỏ
Trong ví dụ trên, chúng ta cần phân số được dùng bởi phiên bản mới và được cải tiến; thường thì thật là khó để đo được thời gian một cách trực tiếp Trong phần tiếp theo, chúng ta sẽ nhìn thấy phương pháp khác để so sánh dựa trên sử dụng một phương trình phân tích thời gian thực thi của CPU thành ba phần riêng biệt Nếu chúng ta biết bằng cách nào một sự lựa chọn ảnh hưởng đến ba thành phần, chúng
ta có thể xác định toàn bộ hiệu năng của nó Hơn nữa, luôn luôn có thể xây dựng trình giả lập đo những bộ phận trước khi phần cứng thực sự được thiết kế
Trang 361.4.5 Phương trình hiệu suất của bộ vi xử lý
Về cơ bản thì tất cả máy tính được cấu tạo sử dụng một xung đồng hồ chạy với tốc độ không đổi Những biến cố thời gian rời rạc được gọi là dấu kiểm (tick), đồng hồ đánh dấu (clock tick), thời chu kỳ xung đồng hồ, xung đồng hồ, chu kỳ hoặc chu kỳ xung đồng hồ Những người thiết kế máy tính tham khảo chu kỳ xung đồng hồ bằng khoảng thời gian của nó (1 ns) hoặc bằng tần số của nó (1 GHz) Thời gian CPU cho một chương trình có thể được diễn tả theo hai cách:
Thời gian CPU = Chu kỳ xung đồng hồ CPU cho 1 chương trình x Thời gian chu kỳ xung đồng hồ
Hoặc:
Ngoài số lượng xung đồng hồ cần để thực thi một chương trình, chúng ta cũng
có thể đếm được số lệnh được thực thi – độ dài đường lệnh hoặc tính toán số lệnh (IC - Instruction Count)
Nếu chúng ta biết được số chu kỳ xung đồng hồ và tính toán số lệnh, chúng ta
có thể tính toán được trung bình số chu kỳ xung đồng hồ trên lệnh (CPI - Clock cycles Per Instruction) Bởi vì nó dễ dàng hơn để làm việc và bởi vì chúng ta sẽ giải quyết với những bộ vi xử lý đơn giản trong chương này nên chúng ta sử dụng CPI Những nhà thiết kế thỉnh thoảng cũng sử dụng chỉ lệnh trên xung đồng hồ (IPC - Instructions Per Clock), là nghịch đảo của CPI
CPI được tính toán như sau:
Ưu điểm của con số bộ vi xử lý này cung cấp nhận thức sâu sắc về những phong cách khác nhau của những thiết lập lệnh và thi hành, chúng ta sẽ sử dụng nó rộng rãi trong bốn chương tiếp theo
Bằng cách hoán vị số chỉ lệnh trong công thức trên, chu kỳ xung đồng hồ có thể được định nghĩa như IC x CPI Điều này cho phép chúng ta sử dụng CPI trong công thức tính thời gian thực thi:
Thời gian CPU = Số chỉ lệnh x Số chu kỳ trên chỉ lệnh x Thời gian chu kỳ
Mở rộng công thức đầu tiên thành đơn vị đo lường cho thấy những phần thích hợp với nhau như thế nào:
Chu kỳ xung đồng hồ cho 1 chương trình
Trang 37Instructions Clock cycles Seconds Seconds
Pr ogram Instruction Clock cycle Pr ogram
Như công thức này chứng tỏ, hiệu suất bộ vi xử lý phụ thuộc vào ba đặc điểm: chu kỳ xung đồng hồ (hay tốc độ), số chu kỳ xung đồng hồ trên chỉ lệnh, và số lượng chỉ lệnh Hơn nữa, thời gian CPU cũng phụ thuộc vào ba đặc điểm: 10% của một cải thiện trong số đó dẫn đến sự cải thiện 10% thời gian CPU
Không may, thật khó để thay đổi một thông số trong sự cách ly hoàn toàn từ những cái khác bởi vì những công nghệ cơ bản mà bao gồm trong thay đổi mỗi đặc điểm thì phụ thuộc vào:
• Thời gian xung đồng hồ – Công nghệ phần cứng và sự cấu tạo
• CPI – Sự cấu tạo và xây dựng thiết lập chỉ lệnh
• Tính toán số chỉ lệnh – Xây dựng thiết lập chỉ lệnh và biên dịch công nghệ May mắn thay, nhiều tiềm năng cải thiện hiệu suất kỹ thuật chủ yếu cải tiến một trong những thành phần của hiệu suất bộ vi xử lý với sự va chạm nhỏ hoặc có thể đoán được trên hai cái khác
Đôi khi thật hữu dụng trong thiết kế bộ vi xử lý để tính toán tổng số chu kỳ xung nhịp đồng hồ của bộ vi xử lý như sau:
Chu kỳ xung đồng hồ CPU = i
n
1
= i
i xCPIIC
i xCPIIC
∑ x thời gian chu kỳ xung đồng hồ
Và tổng CPI như sau:
i n
1
= i
i i
n
1
= i i
CPIxcountnInstructio
IC
=countnInstructio
CPIxIC
=
Các hình thức sau của của việc tính toán CPI sử dụng mỗi CPIi riêng biệt và phân số của sự cố của chỉ lệnh đó trong một chương trình (nghĩa là ICi/tính số chỉ lệnh) CPIi nên được đo và không chỉ được tính toán từ một bảng biểu ở tài liệu tham khảo hướng dẫn sử dụng vì nó bao gồm những hiệu ứng đường ống, thất thoát
bộ nhớ đệm cache và bất kỳ bộ nhớ hệ thống không có hiệu quả khác
Trang 38Xem như ví dụ hiệu suất của chúng ta ở đây được thay đổi để sử dụng đo tần
số chỉ lệnh và giá trị chỉ lệnh CPI, cái mà trong thực tế thu được bằng mô phỏng hay thiết bị đo đạc phần cứng
Ví dụ: Giả sử rằng chúng ta đã làm những số liệu đo lường sau:
Tần số vận hành FP = 25%
Trung bình vận hành CPI của FP = 4,0
Trung bình CPI của những chỉ lệnh khác = 1,33
Tần số của FPSQR = 2%
CPI của FPSQR = 20
Để giảm CPI của FPSQR xuống 2 hoặc giảm trung bình CPI của toàn bộ vận hành FP xuống 2,5 So sánh hai sự lựa chọn thiết kế thay thế sử dụng phương trình hiệu suất bộ vi xử lý
Trả lời: Trước tiên, quan sát rằng chỉ có giá trị CPI thay đổi; mức xung nhịp
đồng hồ và đếm số chỉ lệnh giống hệt nhau Chúng ta bắt đầu tìm giá trị CPI gốc với việc không tăng cường:
CPI gốc
countnInstructio
ICx
CPI
1
= i
= (4 x 25%) + (1,33 x 75%) = 2,0 Chúng ta có thể tính toán CPI cho tăng cường FPSQR bằng các chu kỳ được lưu từ CPI gốc:
CPI với FPSQR mới = CPI gốc – 2% x (CPI với FPSQR cũ – CPI của chỉ số FPSQR mới)
= 2,0 - 2% x (20 - 2) = 1,64 Chúng ta có thể tính toán CPI cho sự tăng cường của tất cả chỉ lệnh FP theo cách tương tự hoặc tổng hợp FP và hệ thống CPI không FP Dùng đẳng thức sau cho chúng ta:
CPI với FP mới = (75%x1,33) + (25%x2,5) = 1,62
Vì CPI của tất cả sự tăng cường FP nhỏ hơn không đáng kể, hiệu suất của nó
sẽ tốt hơn Đặc biệt, sự tăng tốc cho toàn bộ quá trình tăng cường FP là:
FP new original FP
new
original FP
new
CPIxcycleClockxIC
CPIxcycleClockxIC
=time
CPU
timeCPU
=Speedup
Trang 39=625,1
2
=CPI
CPI
=
FP new original
Thật là may mắn, chúng ta đạt được sự tăng tốc tương tự sử dụng luật Amdahl
Thường có thể đo được những phần cấu thành của phương trình hiệu suất của
bộ vi xử lý Điều này là một lợi thế chính của việc sử dụng phương trình hiệu suất của vi xử lý so với luật Amdahl trong ví dụ trước Đặc biệt, có lẽ khó để đo được những thứ như là tỷ số thời gian thực thi cho những chỉ lệnh của một thiết lập có trách nhiệm Trong thực tế, điều này có lẽ được tính toán bằng tổng số chỉ lệnh đếm được của sản phẩm và CPI cho mỗi chỉ lệnh trong thiết lập Vì khởi điểm thường là đếm số chỉ lệnh cá nhân và đo đạc CPI nên phương trình hiệu suất vi xử lý hữu ích đáng kinh ngạc
Để sử dụng phương trình hiệu suất vi xử lý như là một công cụ thiết kế, chúng
ta cần đế có thể đo những yếu tố khác nhau Cho một bộ vi xử lý có sẵn, thật dễ để đạt được thời gian thực thi bằng việc đo lường và tốc độ xung đồng hồ được biết Những sự thách thức trong việc khám phá chỉ lệnh đếm được hoặc CPI Hầu hết những con vi xử lý mới bao gồm cả bộ đếm cho cả hai chỉ lệnh thực thi và cho chu
kỳ xung đồng hồ Bằng cách định kỳ giám sát các bộ đếm này nó cũng có thể đính kèm thời gian thực thi và số chỉ lệnh đếm được để phân đoạn mã mà có thể giúp ích cho các lập trình viên cố gắng hiểu và điểu chỉnh hiệu suất của một ứng dụng Thường thì một nhà thiết kế hay một lập trình viên sẽ muốn hiểu hiệu suất tại nhiều cấp độ nhỏ hơn cái là đã có sẵn từ những bộ đếm phần cứng Trong những trường hợp này, công nghệ mô phỏng giống như những thứ được sử dụng cho các bộ xử lý được thiết kế đã sử dụng
1.4.6 Nghiên cứu trường hợp 1: Chi phí chế tạo Chip
Khái niệm minh họa trường hợp nghiên cứu này:
• Chi phí chế tạo
• Năng suất chế tạo
• Dung sai lỗi thông qua sự dư thừa
Có nhiều yếu tố liên quan đến giá trị của chip máy tính Mới, công nghệ nhỏ hơn cho việc tăng hiệu suất và thả trong khu vực chip được yêu cầu Ở công nghệ nhỏ hơn, nó có thể giữ phần nhỏ hoặc thay thế phần cứng hơn trên chip để có được nhiều tính năng Trong trường hợp nghiên cứu này, chúng tôi khám phá ra nhiều thiết kế khác nhau liên quan đến công nghệ chế tạo, diện tích và sự dư thừa ảnh hưởng đến chi phí sản xuất chip
Trang 401.1 Bảng 1.7 cung cấp các số liệu thống kê của chip liên quan đến ảnh hưởng
của chi phí chip hiện nay Trong các bài tập tiếp theo, bạn sẽ được tìm hiểu mối liên quan giữa AMD Opteron, chip xử lý đơn và Sun Niagara, chip 8 lõi
a Sản lượng chip AMD Opteron?
b Sản lượng cho chip xử lý 8 lõi Sun Niagara?
c Tại sao chip Sun Niagara có sản lượng thấp hơn chip AMD Opteron, mặc
dù chúng có cùng tỉ lệ khiếm khuyết?
1.2 Bạn đang cố hình dung có nên xây dựng cách chế tạo mới cho chip IBM
Power5 hay không Chi phí khoảng 1 tỉ USD để xây dựng cách chế tạo mới Lợi ích của phương pháp sản xuất mới là bạn có thể bán giá đắt hơn 2 đến 3 lần giá của chip
cũ Chip mới có diện tích 186 mm2, với tỉ lệ 0,7 lỗi/1 cm2 Giả sử tấm wafer có đường kính 300 mm Giả sử chi phí sản xuất tấm wafer trong những công nghệ khác
là 500 USD Trước đây bạn bán chip hơn 40% giá trị của chúng
Chip Kích cỡ tối đa
(mm 2 )
Tỉ lệ lỗi dự kiến (/cm 2 )
Kích cỡ sản xuất (nm)
Bóng bán dẫn (triệu)
Bảng 1.7: Yếu tố chi phí sản xuất cho bộ xử lý hiện đại α=4
a Chi phí của chip Power5 cũ?
b Chi phí của chip Power5 mới?
c Lợi nhuận trên mỗi chip Power5 cũ?
d Lợi nhuận trên mỗi chip Power5 mới?
e Nếu bạn bán được 500.000 chip Power5 cũ mỗi tháng, bao lâu để bù đắp chi phí sản xuất mới?
1.3 Đồng nghiệp của bạn tại Sun đề nghị rằng, vì năng suất như vậy là quá
nghèo nàn, nó giúp bán cả hai bộ chip, một là 6 bộ xử lý làm việc và một với 8 bộ
xử lý làm việc Chúng ta sẽ giải quyết vấn đề này bằng cách xem năng suất như là một xác suất không có lỗi xảy ra trong những khu vực nhất định cho những tỉ lệ khiếm khuyết Đối với Niagara, tính toán xác suất dựa trên một lõi Niagara riêng biệt (Điều này có thể không hoàn toàn chính xác, vì phương trình dựa trên năng suất bằng thực nghiệm chứ không phải là một phép tính toán học có liên quan đến xác suất tìm lỗi trong mỗi lõi chip)