CHƯƠNG 4: BỘ VI XỬ LÝ
CHƯƠNG 4: BỘ VI XỬ LÝ
Ngày nay có rất nhiều loại máy tính được
Ngày nay có rất nhiều loại máy tính được
sản xuất và bán trên thị trường, với chủng
sản xuất và bán trên thị trường, với chủng
loại rất đa dạng: từ những máy PC để bàn
loại rất đa dạng: từ những máy PC để bàn
cho tới các siêu máy tính thương mại. Bộ
cho tới các siêu máy tính thương mại. Bộ
vi xử lý của các máy này khác nhau như
vi xử lý của các máy này khác nhau như
thế nào? Phân loại các bộ vi xử lý theo cơ
thế nào? Phân loại các bộ vi xử lý theo cơ
chế vận hành của chúng sẽ giúp ta tìm
chế vận hành của chúng sẽ giúp ta tìm
được phương thức lập trình tốt nhất cho
được phương thức lập trình tốt nhất cho
máy tính của mình.
máy tính của mình.1. NGUYÊN LÝ HOẠT ĐỘNG
1. NGUYÊN LÝ HOẠT ĐỘNG
Nguyên lý cơ bản của tất cả bộ xử lý máy tính đều giống
Thật ra những bộ xử lý hiện nay chứa hàng triệu
Thật ra những bộ xử lý hiện nay chứa hàng triệu
transistor, điều này góp phần tạo ra một hệ thống logic
transistor, điều này góp phần tạo ra một hệ thống logic
rất phức tạp. Cổng logic của bộ xử lý cùng làm việc để
rất phức tạp. Cổng logic của bộ xử lý cùng làm việc để
đưa đến việc sử dụng logic kiểu Boolean, dựa vào hệ Đại
đưa đến việc sử dụng logic kiểu Boolean, dựa vào hệ Đại
số được xây dựng bởi nhà Toán học Geogre Boole.
số được xây dựng bởi nhà Toán học Geogre Boole.
Những toán tử kiểu Boolean cơ bản là AND, OR, NOT, và
Những toán tử kiểu Boolean cơ bản là AND, OR, NOT, và
NAND (not AND).
NAND (not AND).
Cổng AND xuất ra tín hiệu 1 nếu chúng nhận vào toàn
Cổng AND xuất ra tín hiệu 1 nếu chúng nhận vào toàn
là tín hiệu 1.
là tín hiệu 1.
Cổng OR sẽ xuất ra tín hiệu 1 nếu ít nhất có 1 tín hiệu
Cổng OR sẽ xuất ra tín hiệu 1 nếu ít nhất có 1 tín hiệu
vào là 1.
vào là 1.
Và cổng NOT lấy ra một tín hiệu nhập đơn và phủ định
đầu tiên. Khi mạch tích hợp đầu tiên kết nối nhiều
transistor, gọi là mạch tích hợp bội - liên kết theo một
transistor, gọi là mạch tích hợp bội - liên kết theo một
quy trình được xem như là tích hợp cỡ lớn (LSI); cuối
quy trình được xem như là tích hợp cỡ lớn (LSI); cuối
cùng khi những bộ mạch tích hợp được kết nối theo một
cùng khi những bộ mạch tích hợp được kết nối theo một
quy trình có độ tích hợp rất cao (VLSI).
quy trình có độ tích hợp rất cao (VLSI).
Những bộ vi xử lý hiện đại ngày nay chứa hàng
Những bộ vi xử lý hiện đại ngày nay chứa hàng
triệu transistor cực nhỏ. Được dùng kết hợp với
triệu transistor cực nhỏ. Được dùng kết hợp với
điện trở, tụ điện và điôt, cấu tạo nên cổng logic.
điện trở, tụ điện và điôt, cấu tạo nên cổng logic.
Các cổng logic cấu tạo nên mạch tích hợp, và
Các cổng logic cấu tạo nên mạch tích hợp, và
các mạch tích hợp cấu tạo nên những hệ thống
các mạch tích hợp cấu tạo nên những hệ thống
điện tử.
điện tử.
Intel là hãng sản xuất nổi tiếng đầu tiên với con
Intel là hãng sản xuất nổi tiếng đầu tiên với con
chip xử lý đơn phức tạp chứa tất cả những cổng
chip xử lý đơn phức tạp chứa tất cả những cổng
logic của bộ xử lý có độ tích hợp cao - thế hệ
trên một chu trình CPU 10.8 micro giây).
trên một chu trình CPU 10.8 micro giây).
Chỉ trong vòng vài năm 2 dòng vi xử lý đã thống trị
Chỉ trong vòng vài năm 2 dòng vi xử lý đã thống trị
công nghiệp PC - Pentium của Intel và PowerPC của
công nghiệp PC - Pentium của Intel và PowerPC của
Motorola. Những CPU này cũng là những thử nghiệm
Motorola. Những CPU này cũng là những thử nghiệm
tốt nhất của 2 kiến trúc CPU đang cạnh tranh nhau
tốt nhất của 2 kiến trúc CPU đang cạnh tranh nhau
trong 2 thập kỉ qua - nhóm phát minh ra con chip
trong 2 thập kỉ qua - nhóm phát minh ra con chip
CISC và sau đó là nhóm phát minh ra chip RISC.
CISC và sau đó là nhóm phát minh ra chip RISC. CISC
CISC
CISC (máy tính có bộ chỉ lệnh phức hợp) là kiến trúc
CISC (máy tính có bộ chỉ lệnh phức hợp) là kiến trúc
truyền thống của máy tính, trong đó CPU sử dụng vi mã
truyền thống của máy tính, trong đó CPU sử dụng vi mã
để thực hiện bộ chỉ lệnh rất toàn diện.
để thực hiện bộ chỉ lệnh rất toàn diện.
Chỉ trong một vài năm, xu hướng của các hãng sản xuất
chỉ lệnh quá đơn giản. Mặt khác, lợi thế quan trọng hơn
là chip RISC phụ thuộc không nhiều vào những transistor,
là chip RISC phụ thuộc không nhiều vào những transistor,
làm cho chúng rẻ hơn trong thiết kế và sản xuất.
làm cho chúng rẻ hơn trong thiết kế và sản xuất.
Vẫn còn nhiều tranh luận giữa những chuyên gia về kết
Vẫn còn nhiều tranh luận giữa những chuyên gia về kết
quả cuối cùng của kiến trúc RISC. Những người đề xướng
quả cuối cùng của kiến trúc RISC. Những người đề xướng
tranh luận rằng RISC vừa rẻ hơn vừa nhanh hơn, và vì
tranh luận rằng RISC vừa rẻ hơn vừa nhanh hơn, và vì
vậy nó là máy của tương lai.
vậy nó là máy của tương lai.
Lưu ý rằng việc tạo ra phần cứng đơn giản hơn, kiến trúc
Lưu ý rằng việc tạo ra phần cứng đơn giản hơn, kiến trúc
RISC đặt nặng về phần mềm hơn - trình biên dịch RISC
RISC đặt nặng về phần mềm hơn - trình biên dịch RISC
phải tạo ra phần mềm để thực thi những chỉ lệnh phức
phải tạo ra phần mềm để thực thi những chỉ lệnh phức
tạp mà máy tính CISC hoạt động bên trong phần cứng.
tạp mà máy tính CISC hoạt động bên trong phần cứng.
Họ cho rằng điều này không có ích bởi vì những bộ vi xử
Họ cho rằng điều này không có ích bởi vì những bộ vi xử
lý quy ước ngày càng tăng tốc độ và rẻ hơn.
lý quy ước ngày càng tăng tốc độ và rẻ hơn.
Pentium 166MHz.
Tuy nhiên, điều này làm lộ ra các rắc rối về tiếp thị phiền
Tuy nhiên, điều này làm lộ ra các rắc rối về tiếp thị phiền
phức và kỳ dị đối với các nhà sản xuất CPU cạnh tranh
phức và kỳ dị đối với các nhà sản xuất CPU cạnh tranh
nhau. Mặc dù Intel vẫn tiếp tục dẫn đầu trong việc phát
nhau. Mặc dù Intel vẫn tiếp tục dẫn đầu trong việc phát
minh CPU, nhưng các nhà chế tạo CPU khác (như AMD và
minh CPU, nhưng các nhà chế tạo CPU khác (như AMD và
Cyrix chẳng hạn) đang duy trì một sức ép lên họ bằng
Cyrix chẳng hạn) đang duy trì một sức ép lên họ bằng
cách nhồi nhét hiệu năng cao hơn vào trong các chu kỳ
cách nhồi nhét hiệu năng cao hơn vào trong các chu kỳ
xung nhịp ít hơn.
xung nhịp ít hơn.
Đáng tiếc là, một người dùng bình thường khó có thể phân
Đáng tiếc là, một người dùng bình thường khó có thể phân
biệt được một CPU phi_intel ở một tốc độ xung nhịp cho trước
biệt được một CPU phi_intel ở một tốc độ xung nhịp cho trước
lại có hiệu năng cũng tốt như một CPU của Intel chạy ở một
lại có hiệu năng cũng tốt như một CPU của Intel chạy ở một
tốc độ xung nhịp khác.
tốc độ xung nhịp khác.
Vào đầu năm 1996, Cyrix, IBM Microelectronics, và SGS
Vào đầu năm 1996, Cyrix, IBM Microelectronics, và SGS
một hệ thống PC được lắp đặt cấu hình một cách cụ thể,
một hệ thống PC được lắp đặt cấu hình một cách cụ thể,
có động lực là một bộ xử lý Pentium có một tốc độ xung
có động lực là một bộ xử lý Pentium có một tốc độ xung
nhịp đa định.
nhịp đa định.
Bộ xử lý Pentium ấy được tháo ra khỏi hệ thống và được
Bộ xử lý Pentium ấy được tháo ra khỏi hệ thống và được
thay một bộ xử lý cạnh tranh. Trình Benchmark winstone
thay một bộ xử lý cạnh tranh. Trình Benchmark winstone
96 được chạy lại lần nữa, và người ta thu được một điểm
96 được chạy lại lần nữa, và người ta thu được một điểm
winstone thứ 2 từ cùng hệ thống đó, nhưng giờ đang
winstone thứ 2 từ cùng hệ thống đó, nhưng giờ đang
chạy bộ xử lý cạnh tranh kia. Cấu hình hệ thống được giữ
chạy bộ xử lý cạnh tranh kia. Cấu hình hệ thống được giữ
giống hệt hệ thống cũ, và tất cả các thiết bị ngoại vi đều
giống hệt hệ thống cũ, và tất cả các thiết bị ngoại vi đều
được ghi chú tài liệu kỹ lưỡng.
được ghi chú tài liệu kỹ lưỡng.
Bộ xử lý cạnh tranh ấy được cấp điểm PR cao nhất mà tại
Bộ xử lý cạnh tranh ấy được cấp điểm PR cao nhất mà tại
đó nó cung cấp những điểm winstone bằng hoặc lớn hơn
đó nó cung cấp những điểm winstone bằng hoặc lớn hơn
CPU đang xét. Ví dụ, nếu một bộ xử lý AMD K5, cung cấp
CPU đang xét. Ví dụ, nếu một bộ xử lý AMD K5, cung cấp
được hiệu năng bằng hoặc tốt hơn một bộ Pentium
được hiệu năng bằng hoặc tốt hơn một bộ Pentium
vốn hoạt động ở những tốc độ xung nhịp nội cao hơn để tăng
vốn hoạt động ở những tốc độ xung nhịp nội cao hơn để tăng
cường hiệu năng hệ thống. Khi các CPU đã tiến bộ các kiểu đế
cường hiệu năng hệ thống. Khi các CPU đã tiến bộ các kiểu đế
cắm đã sinh sôi nẩy nở để yểm trợ cả một tập hợp không
cắm đã sinh sôi nẩy nở để yểm trợ cả một tập hợp không
ngừng tăng trưởng các bộ xử lý tương thích.
ngừng tăng trưởng các bộ xử lý tương thích.
Gần đây, loại đế cắm thông dụng nhất là socket 370, và
Gần đây, loại đế cắm thông dụng nhất là socket 370, và
478 (dùng cho P4) các bo mạch chính socket 7 yểm trợ
478 (dùng cho P4) các bo mạch chính socket 7 yểm trợ
hầu hết các bộ xử lý loại Pentium (tức là Pentium của
hầu hết các bộ xử lý loại Pentium (tức là Pentium của
Intel, Pentium MMX của Intel, K5 K6 của AMD, 6x86
Intel, Pentium MMX của Intel, K5 K6 của AMD, 6x86
6x86MX Cyrix). Bằng cách ấn định tốc độ xung nhịp và hệ
6x86MX Cyrix). Bằng cách ấn định tốc độ xung nhịp và hệ
số nhân thích hợp, một bo mạch chính loại socket 7 có
số nhân thích hợp, một bo mạch chính loại socket 7 có
thể yểm trợ nhiều CPU Pentium mà không cần thực hiện
thể yểm trợ nhiều CPU Pentium mà không cần thực hiện
bất kỳ sự thay đổi phần cứng nào. Chính tính vạn năng
bất kỳ sự thay đổi phần cứng nào. Chính tính vạn năng
này đã khiến các đế cắm đó trở nên quan trọng đến vậy,
này đã khiến các đế cắm đó trở nên quan trọng đến vậy,
và đã kéo dài tuổi thọ của các PC hiện nay bằng cách
Kỹ thuật xử lý theo đường ống (pipelining), hoặc xử lý
Kỹ thuật xử lý theo đường ống (pipelining), hoặc xử lý
lệnh liên tiếp (Intruction Pipelining) cho phép lệnh mới
lệnh liên tiếp (Intruction Pipelining) cho phép lệnh mới
bắt đầu được xử lý trong khi các lệnh hiện tại vẫn đang
bắt đầu được xử lý trong khi các lệnh hiện tại vẫn đang
được xử lý.
được xử lý.
Bằng cách này, CPU thực sự có thể được thực hiện vài
Bằng cách này, CPU thực sự có thể được thực hiện vài
lệnh trong cùng một chu kì xung nhịp. Nói cách khác, đối
lệnh trong cùng một chu kì xung nhịp. Nói cách khác, đối
với một chu kì xung nhịp cho trước bất kỳ, có thể có vài
với một chu kì xung nhịp cho trước bất kỳ, có thể có vài
lệnh “In the pipeline” cùng một lúc. Xử lý theo đường ống
lệnh “In the pipeline” cùng một lúc. Xử lý theo đường ống
cho phép CPU tận dụng các tài nguyên xử lý trong khi
cho phép CPU tận dụng các tài nguyên xử lý trong khi
một lệnh nào đó đang được hoàn tất.
một lệnh nào đó đang được hoàn tất.Thi hành siêu hướng
Thi hành siêu hướng
(Superscalar Execution)
(Superscalar Execution)
Các CPU truyền thống dùng một “động cơ thi hành” duy
Các CPU truyền thống dùng một “động cơ thi hành” duy
Bởi vì các CPU được xử lý theo đường ống phải lấy về lệnh kế
tiếp trước khi chúng hoàn thành lệnh trước đó, nên đều này
tiếp trước khi chúng hoàn thành lệnh trước đó, nên đều này
dẫn đế một tình thế tiến thoái lưỡng nan trong xử lý
dẫn đế một tình thế tiến thoái lưỡng nan trong xử lý
Nếu lệnh trước là một nhánh (một phát biểu if then), thì lệnh
Nếu lệnh trước là một nhánh (một phát biểu if then), thì lệnh
kế tiếp lấy về sẽ có thể sai. Branch Prediction là kỹ thuật có
kế tiếp lấy về sẽ có thể sai. Branch Prediction là kỹ thuật có
nhiệm vụ cố gắng phỏng đoán địa chỉ thích hợp của của lệnh
nhiệm vụ cố gắng phỏng đoán địa chỉ thích hợp của của lệnh
kế tiếp trong khi chỉ biết lệnh hiện tại. Nếu tiên đoán được
kế tiếp trong khi chỉ biết lệnh hiện tại. Nếu tiên đoán được
nhánh không đúng (gọi là một mispredict – sự tiên đoán
nhánh không đúng (gọi là một mispredict – sự tiên đoán
nhầm), thì phải xác định lại nhánh đúng và điều này có thể
nhầm), thì phải xác định lại nhánh đúng và điều này có thể
xảy ra sự chậm trễ, ảnh hưởng xấu đến hiệu năng xử lý.
xảy ra sự chậm trễ, ảnh hưởng xấu đến hiệu năng xử lý.
Hệ quả là tính năng Branch prediction của một CPU hiện đại
Hệ quả là tính năng Branch prediction của một CPU hiện đại
hẳn phải là cực kì mạnh mẽ.
hẳn phải là cực kì mạnh mẽ.