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 điện tử. 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ả
Trang 1CHƯƠNG 4: BỘ VI XỬ LÝ
Trang 2 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 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ộ
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ơ 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 máy tính của mình.
Trang 31 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 nhau Về cơ bản, chúng luôn lấy tín hiệu ở dạng 0 và 1 (tín hiệu nhị phân), chế tác chúng theo bộ chỉ thị và xuất ra tín hiệu 0 và 1 Điện áp trên cùng tuyến ở cùng thời điểm tín hiệu được gởi đi sẽ quyết định tín hiệu là 0 hay là 1
Ví dụ: Đối với hệ thống 3.3 volt, một ứng dụng 3.3 volt có tín hiệu là 1, còn một ứng dụng 0 volt có tín hiệu là 0.
Bộ xử lý làm việc bằng cách tác động trở lại thiết bị nhập theo tín hiệu 0 và 1 bằng những cách đặc trưng rồi trả về thiết bị xuất khi cần thiết Hoạt động này xảy ra trong mạch được gọi là cổng logic, mỗi cổng phải có ít nhất một transistor (thiết bị bán dẫn)
Trang 4 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 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
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à NAND (not AND)
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
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à cổng NOT lấy ra một tín hiệu nhập đơn và phủ định
nó, tức là xuất ra 1 nếu tín hiệu nhập vào là 0 và ngược lại
Trang 5Dòng điện qua mỗi cổng được điều khiển bởi transistor của cổng đó Tuy nhiên, những transistor này không phải
là những đơn vị độc lập và riêng lẻ Thay vào đó, một số lượng lớn transistor được chế tạo từ một mẩu silicon đơn (hoặc chất liệu bán dẫn khác) và được nối với nhau mà không cần dây nối hay những chất liệu bên ngoài nào khác Những đơn vị này được gọi là những mạch tích hợp (ICs), và việc phát triển chúng về cơ bản tạo ra sự phức tạp của bộ vi xử lý
Sự tích hợp của các mạch không chỉ dừng lại ở vi mạch đầ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 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 quy trình có độ tích hợp rất cao (VLSI)
Trang 6 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 đ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 mạch tích hợp cấu tạo nên những hệ thống điện tử.
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 logic của bộ xử lý có độ tích hợp cao - thế hệ Intel 4004 - sản xuất sau năm 1971.
Trang 7Con chip này có bộ vi xử lý 4-bit, dùng trong máy tính bỏ túi Nó xử lý dữ liệu với 4 bit, nhưng những chỉ thị của nó là 8 long-bit Chương trình và dữ liệu tách rời, lần lượt là 1KB và 4KB Cũng có 16 thanh ghi đa năng 4-bit (hay 8-bit) Intel 4004 có 46 chỉ thị, chỉ dùng 2,300 transistor trong 1 DIP 16-pin (kiểu đóng gói) và chạy ở tốc độ 740kHz (8 vòng 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ị 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 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 CISC và sau đó là nhóm phát minh ra chip RISC
Trang 8 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ã
để 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
là xây dựng những CPU tăng thêm độ phức tạp có bộ lệnh chỉ thị lớn hơn
Vào năm 1974, viện nghiên cứu IBM đã quyết định đưa
ra một phương pháp giảm đột ngột số chỉ lệnh mà con chip phải thực thi Vào giữa những năm 1980, điều này
đã dẫn đến một số hãng sản xuất máy tính đổi hướng bằng cách phát minh những CPU có tính năng thực thi chỉ một bộ hữu hạn các chỉ lệnh
Trang 9 RISC (máy tính dùng tập lệnh rút gọn) CPU giữ kích thước chỉ lệnh không đổi Một lợi thế của CPU RISC là chúng có thể thực thi những chỉ lệnh rất nhanh bởi vì các 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à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 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ì vậy nó là máy của tương lai
Trang 10 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 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
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
Trong một chừng mực nào đó, ý kiến này đang trở thành vấn đề tranh luận bởi vì những thực thi CISC và RISC ngày càng trở nên giống nhau Nhiều con chip RISC hiện nay có nhiều chỉ lệnh và ngược lại, những con chip CISC hiện nay sử dụng nhiều kỹ thuật trước đây kết hợp với con chip RISC Chip CISC của Intel đã dùng kỹ thuật RISC trong chip 486 của nó và làm tăng số lượng trong những
bộ xử lý của dòng Pentium
Trang 112 KHÁI NIỆM VỀ CPU HIỆN ĐẠI
Hệ thống P_Rating (PR)
Theo truyền thống, các CPU được phân loại theo tốc độ xung nhịp của chúng Ví dụ, một CPU Pentium 233MHz, nói chung được xem như có hiệu năng tốt hơn một CPU 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 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 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 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
Trang 12 Đá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 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.
Vào đầu năm 1996, Cyrix, IBM Microelectronics, và SGS Thomson (tất cả đều là những nhà sản xuất cạnh tranh với Intel) đã tụ họp lại để tạo ra hệ thống P-rating (tức PR) để
mô tả các CPU của họ Bằng cách dùng một cách mệnh danh
“PR”, một CPU nào đó có thể được coi ngang hàng với một CPU Pentium của Intel.
Ví dụ, bộ xử lý AMD 133MHz Am5x86 được ghi là PR75, và có hiệu năng có thể so sánh được với một chip Intel 75MHz Pentium Khi điểm đánh giá (rating) có kèm một hậu tố “+” hoặc “++” (ví dụ, PR 75++), nó có nghĩa là CPU ấy cung cấp hiệu năng tốt hơn là đối thủ phía Intel tương ứng Cac điểm đánh giá P_rating được xác định thông qua một phương pháp
so sánh trực tiếp.
Trang 13Trình kiểm định (benchmark) Winstone 96 được chạy trên 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 nhịp đa định
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
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 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 đượ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
đó 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 được hiệu năng bằng hoặc tốt hơn một bộ Pentium 90Mhz, thì nó nhận được điểm PR là 90
Trang 14Các đế cắm CPU
Một ý tưởng quan trọng khác trong việc phát minh và tính khả năng nâng cấp của CPU là khái niệm các đế cắm socket, mỗi thế hệ CPU sử dụng một số chân cắm khác nhau ( và các quy định chân cắm khác nhau ), cho nên phải dùng một đế cắm vật lý xác định trên bo mạch chính thì mới thích nghi được với từng thế hệ bổ xử lý mới
Các CPU lúc đầu không sẵn sàng để đổi lẫn cho nhau, và việc nâng cấp một CPU thường có nghĩa là phải nâng cấp luôn mainboard Với sự ra đời của các CPU I486, khái niệm bộ xử
lý Overdrive đã trở nên được nhiều người ưa thích thay thế một CPU có sẵn bằng một CPU thay thế tương thích số chân 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ắ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.
Trang 15Gầ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ợ 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 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ó 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 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 cung cấp một lộ trình nâng cấp cho các CPU
Trang 16Xử lý lệnh theo đường ống
(Pipelining)
Các CPU xử lý các lệnh và tạo ra kết quả thông qua một chuỗi phức tạp các khóa chuyển bằng transistor ở bên trong bản thân của CPU (hệt như mọi chip luận lý khác)
Các CPU cũ đã xử lý mỗi lúc một lệnh – tức là lệnh trước
đã được lấy về và được xử lý hoàn toàn rồi một lệnh mới mới được đọc về Việc xử lý một lệnh có thể được hoàn tất trong vài chu kỳ xung nhịp (số chu kỳ xung nhịp đích xác bao nhiêu là tuỳ thuộc vào lệnh cụ thể)
Trang 17Kỹ 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 bắt đầu được xử lý trong khi các lệnh hiện tại vẫn đang được xử lý.
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 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 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
Trang 18Thi hành siêu hướng (Superscalar Execution)
Các CPU truyền thống dùng một “động cơ thi hành” duy nhất đề xử lí các lệnh Đối với một chu kì xung nhịp cho trước chỉ có thể sinh ra kết quả cho một lệnh mà thôi
Bằng cách bổ xung nhiều “động cơ thi hành” vào CPU, các nhà thiết kế đã cung cấp cho CPU một khả năng xử lí nhiều lệnh trong một chu kì xung nhịp
Các CPU này được gọi là bộ xử lí siêu hướng (Superscalar Processor) Ví dụ , Pentium Pro bằng cách kết hợp xử lí theo đường ống với nhiều động cơ thi hành của kiến trúc siêu hướng, các CPU hiện đại đã tận dụng cực kì hữu hiệu mọi chu kì xung nhịp
Trang 19Tiên đoán rẽ nhánh (Branch Prediction)
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 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
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
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ầ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ý.
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ẽ.
Trang 20Thi hành động (Dynamic Execution)
Ngay cả CPU nhanh nhất cũng thi hành theo thứ tự mà chúng được viết bên trong chương trình cụ thể Điều này có nghĩa là chương trình được viết một cách không đúng đắn, không hiệu quả sẽ làm giảm hiệu suất xử lý của CPU
Trong nhiều trường hợp, ngay cả mã lệnh được viết tốt cũng
có thể trở nên bị sút kém trong quá trình lắp ráp và liên kết phẩn mềm Kỹ thuật thi hành lệnh cho phép bộ xử lý ước lượng “dòng chảy” của chương trình và “chọn lựa” thứ tự tốt nhất để xử lý các lệnh Khi được thực hiện một cách đúng đắn, sự “sắp xếp thứ tự lại một cách chọn lọc” các lệnh sẽ cho phép CPU tận dụng thậm chí còn tốt hơn tài nguyên xử lý của
nó - và giúp làm tăng hiệu năng tổng thể của CPU.
Trang 21CPU cache RAM
Dòng dữ liệu đi qua CPU với tốc độ rất nhanh Ram bình thường không thể giữ được tốc độ này Vì thế, một loại Ram đặc biệt có tên gọi là cache được sử dụng như một loại bộ đệm (buffer) hay nói cách khác là một nơi lưu trữ tạm thời
Để CPU với hiệu năng cao nhất , số lượng các luồng dữ liệu vào và ra phải giảm thiểu rất nhiều Vậy khi luồng dữ liệu truyền đi có nhiều hơn, thì nó phải được chứa tạm ở một nơi nào đó trong CPU, thì tốc độ sẽ nhanh hơn Và như thế dòng dữ liệu sẽ liên tục
Vì thế, Intel 80486 đã tích hợp bộ xử lí toán học và đơn vị dấu chấm động và 8 Kb L1-cache RAM Chính 2 đặc tính quan trọng đó đã giúp giảm thiểu luồng giữ liệu ra vào
Trang 22CPU cache RAM (tt)
Ta thấy rằng CPU dùng kiến trúc Pipeline để truyền và xử lý dữ liệu Bằng 1 cách nào đó để
dữ liệu không được dồn nén hay quá lớn, nhưng cũng phải liên tục thì mới tận dụng hết khả năng của CPU Lúc đầu chưa có cache, CPU đơn thuần
sử dụng RAM để truy xuất data Sau đó các nhà khoa học đã nghĩ ra việc tạo ra một Ram Cache nằm ngay trên chính miếng Silicon tạo ra CPU,
và như vậy, ta luôn sẵn sàng có một chỗ rất gần
bộ xử lí chứa đựng thông tin để đưa qua Ram Cache được tích hợp đó gọi là L1.
Trang 23CPU cache RAM (tt)
Cache RAM trở nên rất quan trọng tốc độ CPU, ở đó tốc
độ xung nhịp thực sự là cao hơn nhiều so với bên ngoài
Ta có thể hiểu cache RAM là ngôi nhà sức mạnh của CPU Trong các đời CPU cũ, L2 cache được chế tạo từ những chip SRAM và gắn trên mainboard, nhưng CPU hiện đại
nó được gắn trong CPU Như thế L2 đóng vai trò như một người bạn sẵn sàng cung cấp data cho L1 và nhận data
từ RAM
Trang 24CPU Cache size in the
Trang 253 CÁC LOẠI CPU TỐC ĐỘ - CÔNG NGHỆ
Bảng sau đây biểu diễn các thế hệ bộ xử lý từ thế hệ
8088/86 đầu tiên của Intel trong những năm cuối 1970 đến thế hệ thứ 8 AMD Athlon 64, được giới thiệu vào mùa
thu năm 2003
Trang 26Pentium
Lạp có nghĩa là số 5 Bắt nguồn từ việc Intel gọi pentium 80586, nối tiếp sau của thế hệ chíp 80x86 Do không thích giống các công ty khác như AMD, Cyrix và một số kẻ nhái theo một cung lấy tên là 80x86, vì vậy Intel quyết định lấy tên thương mại là Pentium.
bược nhãy so với thế hệ 486 tốc độ 120MHz và có khoảng 3.3 triệu con transistor , được chế tạo trên một quy trình 0.35 mirco mét Bên trong, bộ xử lý sử dụng một bus 32 bit , nhưng bên ngoài sử dụng bus dử liệu 64 bit mở rộng
này Intel đã đưa ra bán một chipset đặc biệt có chức năng liên kết Pentium đến cache 64 bit bên ngoài và đến bus PCI.
qủa ở 3.3v