CPU là viết tắt của Central Processing Unit (tiếng Anh), dịch sang tiếng Việt là Bộ xử lý trung tâm. Đây là mạch điện tử thực hiện các lệnh của chương trình máy tính bằng cách thực hiện các phép tính số học, logic, so sánh và các hoạt động nhập/xuất cơ bản dựa trên mã lệnh đã được lập trình sẵn. Thuật ngữ này đã xuất hiện trong ngành công nghiệp máy tính từ những năm 1960. Theo truyền thống, 'CPU' chỉ bộ phận xử lý chính, khác với các thành phần khác như bộ nhớ và mạch điều khiển xuất/nhập.
Mặc dù hình dạng, thiết kế và cách thức hoạt động của CPU đã thay đổi theo thời gian, các chức năng cơ bản của nó vẫn giữ nguyên. CPU bao gồm các thành phần chính như bộ phận số học logic (ALU) để thực hiện phép tính và logic, các thanh ghi để lưu trữ tham số và kết quả, cùng với bộ phận điều khiển để nạp và thực thi các mã lệnh, điều phối hoạt động của ALU, thanh ghi và các phần khác.
Hầu hết các CPU hiện đại đều là vi xử lý tích hợp trên một mạch tích hợp (IC) duy nhất. Vi mạch chứa CPU có thể tích hợp thêm bộ nhớ, giao diện cho thiết bị ngoại vi, và các thành phần máy tính khác; những thiết bị tích hợp này thường được gọi là vi điều khiển hoặc hệ thống trên một vi mạch (SoC). Một số máy tính sử dụng CPU đa nhân, tức là một con chip chứa nhiều CPU được gọi là 'lõi'; trong ngữ cảnh này, các chip đơn đôi khi còn được gọi là 'khe cắm'. Các mảng vi xử lý và bộ xử lý vector có nhiều bộ xử lý hoạt động đồng thời mà không có bộ xử lý nào đóng vai trò trung tâm.
Năm 1971, một CPU chỉ chứa 2.300 bóng bán dẫn (transistor), nhưng đến năm 2016, con số này đã tăng lên 7,2 tỷ bóng bán dẫn với 22 nhân nhờ quy trình sản xuất 14 nm (dòng 22-nhân Xeon Broadwell-E5). Hiện nay, công nghệ sản xuất 7 nm và 5 nm đã cho ra những CPU mạnh mẽ hơn và tiết kiệm năng lượng hơn, như AMD Threadripper 3990x với 64 nhân và 128 luồng xử lý.
Lịch sử
Các máy tính cổ như ENIAC cần phải kết nối lại toàn bộ mạch điện để thực hiện các nhiệm vụ khác nhau, do đó chúng được gọi là 'máy tính có chương trình cố định.' Thuật ngữ 'CPU' thường được dùng để chỉ thiết bị chạy phần mềm (chương trình máy tính); các thiết bị đầu tiên được gọi là CPU xuất hiện cùng với sự phát triển của máy tính có khả năng lưu trữ chương trình.
Ý tưởng về một máy tính với chương trình lưu trữ đã xuất hiện trong thiết kế ENIAC của J. Presper Eckert và John William Mauchly, nhưng đã bị loại bỏ để hoàn thành dự án sớm hơn. Vào ngày 30 tháng 6 năm 1945, trước khi ENIAC được hoàn thiện, nhà toán học John von Neumann công bố bài viết First Draft of a Report on the EDVAC. Bài viết này là bản phác thảo của một máy tính chạy chương trình lưu trữ, hoàn thành vào tháng 8 năm 1949. EDVAC được thiết kế để thực hiện một tập hợp lệnh nhất định. Đặc biệt, chương trình cho EDVAC được lưu trữ trong bộ nhớ máy tính tốc độ cao thay vì hệ thống dây điện vật lý, giải quyết một hạn chế lớn của ENIAC là thời gian và công sức để cấu hình lại máy cho các nhiệm vụ mới. Với thiết kế von Neumann, các chương trình chạy trên EDVAC có thể được thay đổi dễ dàng bằng cách thay đổi nội dung bộ nhớ. Tuy nhiên, EDVAC không phải là máy tính lưu trữ chương trình đầu tiên; Manchester Small-Scale Experimental Machine, một nguyên mẫu máy tính lưu trữ chương trình nhỏ, đã chạy chương trình đầu tiên vào ngày 21 tháng 6 năm 1948, và Manchester Mark 1 đã thực hiện chương trình đầu tiên của mình vào đêm 16-17 tháng 6 năm 1949.
Các CPU đời đầu thường là phần của các máy tính lớn và có thiết kế tùy chỉnh khác nhau. Tuy nhiên, phương pháp thiết kế CPU tùy chỉnh cho ứng dụng cụ thể đã nhường chỗ cho sự phát triển của bộ vi xử lý đa mục đích sản xuất hàng loạt. Tiêu chuẩn này bắt đầu từ thời máy tính mainframe sử dụng transistor, sau đó nhanh chóng phát triển với sự phổ biến của vi mạch (IC). Vi mạch cho phép thiết kế và sản xuất CPU ngày càng phức tạp với kích thước nhỏ đến cỡ nanômét. Quy trình thu nhỏ và tiêu chuẩn hóa CPU đã thúc đẩy sự hiện diện nhanh chóng của thiết bị kỹ thuật số trong cuộc sống hiện đại, vượt xa các ứng dụng hạn chế của máy tính chuyên dụng. Bộ vi xử lý hiện đại xuất hiện trong nhiều thiết bị điện tử, từ ô tô đến điện thoại di động và ngay cả trong đồ chơi.
Mặc dù von Neumann thường được công nhận với việc thiết kế máy tính lưu trữ chương trình qua thiết kế EDVAC của ông, còn được gọi là kiến trúc von Neumann, những người khác như Konrad Zuse đã đề xuất và thực hiện các ý tưởng tương tự trước đó. Kiến trúc Harvard của Harvard Mark I, hoàn thiện trước EDVAC, cũng sử dụng một thiết kế lưu trữ chương trình nhưng với băng giấy đục lỗ thay vì bộ nhớ điện tử. Sự khác biệt chính giữa kiến trúc von Neumann và Harvard là máy Harvard tách biệt lưu trữ và xử lý các lệnh CPU và dữ liệu, trong khi máy von Neumann sử dụng bộ nhớ chung cho cả hai. Hầu hết các CPU hiện đại dựa trên ý tưởng von Neumann trong thiết kế, nhưng các CPU với kiến trúc Harvard vẫn được ưa chuộng trong các ứng dụng nhúng; ví dụ, các vi điều khiển Atmel AVR sử dụng kiến trúc Harvard.
Rơle và đèn chân không đã từng được sử dụng phổ biến như các thành phần chuyển mạch; một máy tính hữu ích yêu cầu hàng ngàn hoặc hàng chục ngàn thiết bị chuyển mạch như vậy. Tốc độ tổng thể của hệ thống phụ thuộc vào tốc độ của các thiết bị chuyển mạch. Máy tính dùng đèn chân không như EDVAC có tuổi thọ trung bình khoảng tám giờ trước khi hỏng, trong khi máy tính dùng rơle như Harvard Mark I (dù chậm hơn nhưng được phát triển sớm hơn) ít khi bị hỏng. Cuối cùng, CPU dùng đèn chân không đã trở nên phổ biến hơn nhờ lợi thế về tốc độ mặc dù gặp vấn đề về độ tin cậy. Hầu hết các CPU đồng bộ đầu tiên hoạt động ở tốc độ thấp hơn so với các thiết kế vi điện tử hiện đại, với tần số đồng hồ phổ biến từ 100 kHz đến 4 MHz, chủ yếu bị giới hạn bởi tốc độ của các thiết bị chuyển mạch.
CPU sử dụng transistor
Sự phức tạp trong thiết kế CPU đã gia tăng nhờ vào những công nghệ mới giúp xây dựng các thiết bị điện tử nhỏ hơn và đáng tin cậy hơn. Những cải tiến đầu tiên bắt đầu với sự ra đời của transistor. Trong những năm 1950 và 1960, các CPU bán dẫn không còn phải sử dụng các phần tử chuyển mạch cồng kềnh và không đáng tin cậy như đèn điện tử chân không và rơle. Với sự phát triển này, nhiều CPU phức tạp và đáng tin cậy đã được chế tạo trên một hoặc nhiều mạch in với các thành phần riêng biệt.
Năm 1964, IBM đã giới thiệu kiến trúc máy tính System/360, cho phép chạy các chương trình tương tự với tốc độ và hiệu suất khác nhau trên nhiều loại máy tính. Đây là một bước tiến lớn vào thời điểm đó, khi hầu hết các máy tính điện tử không tương thích với nhau, ngay cả những máy cùng nhà sản xuất. Để hỗ trợ sự cải tiến này, IBM đã sử dụng khái niệm vi chương trình (hoặc 'vi mã'), hiện vẫn được sử dụng rộng rãi trong các CPU hiện đại. Kiến trúc System/360 trở nên phổ biến và đã chiếm ưu thế trong thị trường máy tính mainframe trong nhiều thập kỷ, để lại di sản tiếp tục được duy trì trong các máy tính zSeries của IBM. Năm 1965, Digital Equipment Corporation (DEC) đã giới thiệu PDP-8, một máy tính ảnh hưởng lớn đến thị trường khoa học và nghiên cứu.
Máy tính mạch bán dẫn mang lại nhiều lợi thế so với các máy tính trước đó. Bên cạnh sự cải thiện về độ tin cậy và tiết kiệm điện năng, bóng bán dẫn cho phép CPU hoạt động với tốc độ cao hơn nhờ thời gian chuyển đổi ngắn hơn so với đèn điện tử hoặc rơle. Với sự gia tăng độ tin cậy và tốc độ chuyển mạch, CPU có thể đạt tốc độ xung nhịp lên đến hàng chục megahertz trong giai đoạn này. Ngoài ra, trong khi các CPU dùng bóng bán dẫn rời rạc và vi mạch CPU ngày càng phổ biến, các thiết kế mới như xử lý vectơ SIMD (Single Instruction Multiple Data) cũng bắt đầu xuất hiện. Những thiết kế thử nghiệm này đã dẫn đến sự phát triển của các siêu máy tính chuyên dụng như các sản phẩm của Cray Inc và Fujitsu Ltd.
CPU tích hợp quy mô nhỏ
Trong giai đoạn này, đã phát triển phương pháp sản xuất nhiều transistor kết nối trong một không gian nhỏ. Các mạch tích hợp (IC) cho phép sản xuất hàng loạt bóng bán dẫn trên một chip bán dẫn. Ban đầu, chỉ những mạch số cơ bản như cổng NOR được thu nhỏ vào vi mạch. Các CPU dựa trên những vi mạch này thường được gọi là thiết bị 'tích hợp quy mô nhỏ' (SSI). Vi mạch SSI, như các vi mạch dùng trong máy tính Apollo, có thể chứa đến vài nghìn transistor. Xây dựng một CPU hoàn chỉnh trên vi mạch SSI cần hàng ngàn chip, nhưng vẫn tiết kiệm không gian và điện năng hơn so với thiết kế sử dụng bóng bán dẫn trước đó.
Hệ thống System/370 của IBM, phiên bản kế thừa của System/360, đã chuyển từ việc sử dụng module bán dẫn rời rạc của Solid Logic Technology sang vi mạch SSI. Các máy tính PDP-8/I và KI10 PDP-10 của DEC cũng đã chuyển từ bóng bán dẫn riêng lẻ sang vi mạch SSI, và dòng máy PDP-11 cực kỳ phổ biến của họ, ban đầu được xây dựng bằng vi mạch SSI, cuối cùng đã được thay thế bằng vi mạch LSI khi ra đời.
CPU tích hợp quy mô lớn
Lee Boysel đã công bố các bài viết quan trọng, bao gồm một 'tuyên ngôn' vào năm 1967, mô tả cách xây dựng một máy tính tương đương với máy tính mainframe 32-bit từ một số lượng nhỏ các mạch tích hợp quy mô lớn (LSI). Vào thời điểm đó, chip LSI, với hàng trăm cổng, được chế tạo bằng quy trình MOS (như PMOS, NMOS, hoặc CMOS). Tuy nhiên, một số công ty vẫn tiếp tục sản xuất bộ xử lý bằng chip lưỡng cực vì chúng nhanh hơn nhiều so với chip MOS; ví dụ, Datapoint đã sản xuất các bộ vi xử lý bằng chip TTL cho đến đầu những năm 1980.
Các nhà sản xuất máy tính tốc độ cao mong muốn cải thiện tốc độ của chúng, vì vậy vào những năm 1970, họ đã xây dựng các CPU từ vi mạch tích hợp quy mô nhỏ (SSI) và quy mô trung bình (MSI) bao gồm các cổng TTL của vi mạch 7400. Lúc đó, vi mạch MOS quá chậm và chỉ được sử dụng cho những ứng dụng yêu cầu công suất thấp.
Khi công nghệ vi điện tử phát triển, số lượng bóng bán dẫn trên mỗi IC gia tăng, giảm số lượng IC cần thiết để tạo ra một CPU hoàn chỉnh. Các vi mạch MSI và LSI có thể chứa hàng trăm đến hàng ngàn transistor. Đến năm 1968, số lượng IC cần thiết để xây dựng một CPU hoàn chỉnh giảm xuống chỉ còn 24 IC từ tám loại khác nhau, mỗi IC chứa khoảng 1000 MOSFET. Trái ngược với các vi mạch SSI và MSI, vi mạch LSI đầu tiên của PDP-11 chỉ bao gồm bốn mạch tích hợp LSI để tạo ra toàn bộ CPU.
Bộ vi xử lý
Vào những năm 1970, những phát minh đột phá của Federico Faggin (vi mạch MOS silicon với cổng tự liên kết và các phương pháp thiết kế logic mới của ông) đã làm thay đổi hoàn toàn cách thiết kế và sản xuất CPU. Kể từ khi bộ vi xử lý thương mại đầu tiên (Intel 4004) ra đời năm 1970 và bộ vi xử lý phổ biến đầu tiên (Intel 8080) năm 1974, mô hình này đã gần như hoàn toàn thay thế các bộ xử lý trung tâm khác. Các nhà sản xuất máy tính lớn và máy tính mini đã phát triển các chương trình vi mạch độc quyền để nâng cấp kiến trúc máy tính cũ, cuối cùng tạo ra các bộ vi xử lý tương thích với phần cứng và phần mềm cũ. Thuật ngữ CPU hiện gần như được dùng độc quyền để chỉ các bộ vi xử lý, và một số CPU (hay lõi) có thể được tích hợp trong một chip xử lý duy nhất.
Các thế hệ CPU trước đây cũng được sản xuất dưới dạng các linh kiện điện tử và nhiều vi mạch (IC) trên một hay nhiều mạch in. Bộ vi xử lý là các CPU được sản xuất trên rất ít IC; thường chỉ một. Kích thước tổng thể nhỏ hơn của CPU là nhờ việc sản xuất trên cùng một khuôn, giúp tăng tốc độ chuyển đổi do các yếu tố vật lý như giảm điện dung ký sinh tại cổng. Điều này đã cho phép các bộ vi xử lý đồng bộ đạt tốc độ xung nhịp từ hàng chục megahertz đến vài gigahertz. Đồng thời, khả năng chế tạo transistor cực nhỏ trên vi mạch đã gia tăng, dẫn đến sự phức tạp và số lượng transistor trong một CPU tăng đáng kể. Xu hướng này được gọi là Định luật Moore, một yếu tố dự đoán khá chính xác sự phát triển của CPU (và các IC phức tạp khác).
Mặc dù mức độ phức tạp, quy mô, cấu trúc và hình dạng của CPU đã thay đổi rất nhiều từ năm 1950, các thiết kế cơ bản và chức năng của nó vẫn không thay đổi. Hầu hết các CPU hiện đại vẫn có thể được mô tả như những máy lưu trữ chương trình theo kiểu von Neumann. Khi Định luật Moore tiếp tục đúng, mối quan tâm về các giới hạn của công nghệ bóng bán dẫn mạch tích hợp ngày càng gia tăng. Việc thu nhỏ các cổng điện tử đến mức tối đa đang gây ra hiện tượng như sự di chuyển điện tử và rò rỉ dưới ngưỡng. Những lo ngại này là một trong nhiều lý do khiến các nhà nghiên cứu tìm kiếm các phương pháp mới như máy tính lượng tử, đồng thời mở rộng ứng dụng của tính toán song song và các phương pháp khác để cải thiện tính hữu ích của các mô hình von Neumann cổ điển.
Hoạt động
Các hoạt động cơ bản của hầu hết các CPU, bất kể hình thức vật lý, là thực hiện một chuỗi lệnh được lưu trữ trong bộ nhớ máy tính. Các lệnh chờ thực hiện được lưu giữ trong nhiều loại bộ nhớ khác nhau. Hầu hết các CPU thực hiện các bước: lấy lệnh, giải mã và thực hiện lệnh trong quy trình, và quy trình này được gọi là chu kỳ lệnh.
Sau khi thực hiện một lệnh, quy trình lặp lại, với chu kỳ lệnh tiếp theo thường lấy lệnh tiếp theo từ chuỗi nhờ vào giá trị tăng trong thanh ghi con trỏ lệnh. Nếu có một lệnh nhảy, con trỏ lệnh sẽ được cập nhật để chứa địa chỉ của lệnh mới, và chương trình tiếp tục thực hiện như bình thường. Trong các CPU phức tạp hơn, nhiều lệnh có thể được tải, giải mã, và thực hiện đồng thời. Phần này mô tả cái được gọi là 'đường ống RISC cổ điển', rất phổ biến trong các CPU đơn giản dùng trong nhiều thiết bị điện tử (thường là vi điều khiển). Phần này chủ yếu bỏ qua vai trò quan trọng của bộ nhớ cache CPU và các giai đoạn truy cập trong đường ống.
Một số lệnh chỉ thao tác truy cập chương trình mà không tạo ra dữ liệu kết quả trực tiếp; các lệnh này được gọi là 'lệnh nhảy' và cho phép thực hiện vòng lặp, điều kiện (thông qua nhảy có điều kiện), và viết các chương trình con. Trong một số bộ vi xử lý, các lệnh khác thay đổi trạng thái của các bit trong thanh ghi 'cờ'. Những cờ này có thể ảnh hưởng đến cách chương trình hoạt động, vì chúng thường biểu thị kết quả của các phép toán. Ví dụ, trong một bộ vi xử lý, khi một lệnh 'so sánh' so sánh hai giá trị, nó sẽ đặt lại bit trong thanh ghi cờ để chỉ ra số nào lớn hơn hoặc hai số có bằng nhau không; một trong những cờ này có thể được một lệnh nhảy sử dụng để xác định hướng nhánh tùy thuộc vào kết quả so sánh.
Thành phần
Khối điều khiển (CU - Control Unit)
Chức năng của khối này là giải mã các lệnh từ chương trình và điều phối hoạt động xử lý của máy tính. Nó được điều chỉnh chính xác bởi xung nhịp đồng hồ hệ thống. Nếu CPU được xem như là 'bộ não' của máy tính, thì khối này chính là 'bộ não' của CPU.
Khối tính toán (ALU - Arithmetic Logic Unit)
Chức năng của khối này là thực hiện các phép toán số học và logic, sau đó đưa kết quả vào các thanh ghi hoặc bộ nhớ.
Các thanh ghi (Registers)
Là các bộ nhớ nhỏ nằm trong CPU với tốc độ truy cập cao. Chúng dùng để lưu trữ tạm thời các toán hạng, kết quả tính toán, địa chỉ ô nhớ, hoặc thông tin điều khiển.
Opcode
Khu vực bộ nhớ lưu trữ mã máy của CPU (không bắt buộc) để thực hiện các lệnh trong tập tin thực thi.
Phần điều khiển
Chịu trách nhiệm điều phối hoạt động của các khối và điều chỉnh tần số xung nhịp. Mạch xung nhịp đồng hồ hệ thống giúp đồng bộ các thao tác xử lý trong và ngoài CPU theo các khoảng thời gian đều đặn. Khoảng thời gian giữa hai xung được gọi là chu kỳ xung nhịp. Tốc độ xung nhịp, đo bằng triệu chu kỳ mỗi giây (MHz), thể hiện tốc độ hoạt động của CPU. Mặc dù phần này không bắt buộc, nó thường có trong kiến trúc CISC.
Tốc độ
Tốc độ xử lý của máy tính chủ yếu phụ thuộc vào tốc độ của CPU, nhưng cũng bị ảnh hưởng bởi các thành phần khác như bộ nhớ RAM, card đồ họa, ổ cứng, và nhiều yếu tố khác.
Có nhiều công nghệ giúp tăng tốc độ xử lý của CPU, chẳng hạn như pipeline, turbo boost, và siêu phân luồng.
Tốc độ CPU thường được đo bằng tần số đồng hồ (MHz, GHz, v.v.). Trước năm 2005, tần số cao hơn thường đồng nghĩa với hiệu suất tốt hơn. Tuy nhiên, việc so sánh chỉ dựa trên tần số không còn đầy đủ nữa. Ví dụ, CPU Intel Core 2 Duo 2,6 GHz có thể nhanh hơn so với CPU Intel Pentium 4 3,4 GHz, và dòng Core i3 2,6 GHz mạnh hơn nhiều so với dòng Core 2 Duo 2,6 GHz. Hiện nay, Intel sử dụng chỉ số hiệu suất (performance rating - P.R) để đánh giá các dòng Core i3, i5, i7, i9.
Tốc độ của CPU còn phụ thuộc vào nhiều yếu tố khác như:
- Số nhân xử lý (2, 4, 10, 22 nhân, v.v.). Nhiều nhân giúp xử lý các tác vụ phức tạp nhanh hơn bằng cách chia nhỏ công việc và xử lý song song.
- Xung nhịp (1 GHz, 4 GHz, v.v.). Xung nhịp càng cao, CPU càng mạnh, nhưng cũng tiêu tốn nhiều điện năng và tỏa nhiều nhiệt hơn.
- IPC (instructions per clock/cycles). Ví dụ: CPU đời mới có thể mạnh hơn CPU đời cũ cùng số nhân và xung nhịp nhờ IPC cao hơn. IPC càng lớn, CPU càng hiệu quả hơn.
- Tiến trình chế tạo bóng bán dẫn (14 nm, 10 nm, 7 nm, v.v.). Tiến trình càng nhỏ, CPU càng tiết kiệm điện năng và có thể chứa nhiều bóng bán dẫn hiệu suất cao hơn.
- Các công nghệ tăng tốc như pipeline, turbo boost, siêu phân luồng, v.v.
- Bộ nhớ đệm - bộ nhớ nhanh lưu trữ các lệnh và dữ liệu thường sử dụng hoặc dự kiến sẽ sử dụng trong tương lai gần, giúp giảm thời gian chờ của CPU. Ví dụ: Intel Core 2 Duo có bộ nhớ cache L2 chung, cải thiện hiệu suất so với Intel Pentium D có bộ nhớ cache L2 riêng biệt cho từng nhân.
- Đồ họa tích hợp (ví dụ: Radeon Vega 8 Graphics mạnh hơn VGA Inno3D GT 730 1 GB, theo các bài kiểm tra hiệu suất).
- TDP (công suất thoát nhiệt) - lượng nhiệt mà CPU tỏa ra và hệ thống làm mát cần giải tỏa. TDP cao hơn thường tiêu thụ nhiều điện năng và sinh nhiệt nhiều hơn, có thể ảnh hưởng đến hiệu suất nếu nhiệt độ quá cao.
Các nhà sản xuất
Hiện nay, hai ông lớn trong ngành sản xuất CPU là Intel và AMD.
Một trong những vi xử lý đầu tiên của Intel là Intel 4004, ra mắt vào tháng 11 năm 1971. Intel 4004 có 2250 transistor và 16 chân. Một mẫu CPU khác của Intel, Intel Northwood Pentium, được giới thiệu vào năm 2006 với 55 triệu transistor và 478 chân.
Nhà sản xuất AMD (Advanced Micro Devices) cũng được công nhận cao:
APU (Accelerated Processing Unit - Dòng vi xử lý tích hợp đồ họa của AMD):
- A10 [58xx(k), 68xx(k), 78xx(k)] với hiệu suất đồ họa tích hợp tương đương các GPU tầm trung.
Vào năm 2017, AMD giới thiệu thế hệ CPU mới mang tên mã Zen, với số lượng nhân và luồng vượt trội so với Intel, đã làm dậy sóng cuộc chiến CPU sau nhiều năm AMD kém thế.
Thêm vào đó, còn có các nhà sản xuất chip ARM như Qualcomm, MediaTek (với các chip cho smartphone như Snapdragon 888, Dimensity 1200,...) và Apple với dòng chip A cho iPhone, iPad (như A15 Bionic) cũng như dòng M1 và các phiên bản sau của nó trên các mẫu MacBook, iMac từ năm 2021 trở đi.