CPU đa nhân

**CPU đa nhân**, **CPU đa lõi** (tiếng Anh: *multi-core*) là một CPU có nhiều đơn vị vi xử lý (thường được gọi là "core") được tích hợp và đóng gói trên cùng một nền mạch tích hợp (chip) vật lý duy nhất. Mỗi core đều có thể thực hiện việc xử lý tuần tự từng gói dữ liệu và sự kết hợp nhiều core trên một hệ CPU giúp làm tăng tốc độ xử lý chung của hệ thống khi mà dữ liệu được phân thành nhiều gói nhỏ và phân cho các core xử lý song song cùng một lúc.

## Phát triển kiến trúc đa nhân

Vào những thời kỳ đầu của máy tính cá nhân được sử dụng, nhằm để giảm giá thành, các CPU phổ thông đều được thiết kế theo quan điểm đơn nhân. Các dữ liệu được xử lý tuần tự bởi một bộ xử lý duy nhất cho tất cả mọi tác vụ. Ở những dòng máy cao cấp như siêu máy tính, máy trạm hoặc máy chủ thời kỳ đầu thường được gắn nhiều hơn một CPU trên cùng một bo mạch chủ để có thể thực hiện nhiều tác vụ song song cùng lúc, nâng được tốc độ tổng thể lên cao hơn nhiều so với chỉ sử dụng một CPU.

Kiến trúc đa nhân đầu tiên ra đời vào khoảng giữa thập niên 1980, khi Rockwell International giới thiệu các phiên sản cải tiến của chip xử lý 6502 như R65C00, R65C21, và R65C29. Chúng đều có một đặc điểm chung là tích hợp cả hai nhân xử lý 6502 lên một chip có cùng số chân và cùng tần số xung nhịp.

CPU đa nhân được giới thiệu lần đầu tiên vào năm 2001 bởi hãng IBM với loại CPU Power4 dành riêng cho các máy chủ. Mãi đến tháng 4 năm 2005, Intel đã giới thiệu những CPU hai nhân thương mại đầu tiên, Pentium Extreme Edition (còn gọi là *Pentium EE*) và Pentium D. Đến tháng 5 năm 2005, AMD giới thiệu các CPU Athlon 64 X2 hai nhân đầu tiên. Những CPU hai nhân thế hệ đầu tiên này, thực chất chỉ thuần túy là đặt hai nhân xử lý trong cùng một tấm đế. Có nghĩa trong một CPU nhìn bề ngoài như một CPU thông thường nhưng bên trong nó chứa các phần mạch điện của cả hai CPU (Pentium 4 *Prescott* với Intel và Athlon 64 với AMD), điểm chung của nó là các chân cắm tiếp xúc với socket của bo mạch chủ. 
 
Ở những thế hệ kế tiếp, các nhà sản xuất đã sử dụng công nghệ chế tạo hiện đại, cho phép chế tạo tích hợp nhiều nhân trên cùng một nền chip đóng gói vật lý. Công nghệ chế tạo cũng cho phép tích hợp nhiều hơn 2 nhân trên một chip, cũng như các công nghệ giao tiếp như siêu phân luồng, đa phân luồng... cũng giúp tận dụng ưu thế của các CPU đa nhân.
Những cpu dòng hd graphics của intel sử dụng GPU(nhân xử lý đồ họa)được tích hợp trong cpu cūng là một dạng cpu 2 nhân,dòng cpu này cho khả năng chơi các game 3d với chất lượng hd,tiết kiệm điện so với các card đồ họa rời của ndivia,amd...

## Công nghệ hỗ trợ
### Phần cứng
### Phần mềm

## Những giới hạn tồn tại

Trở ngại lớn nhất của sự phát triển CPU đa nhân là các kích thước vật lý của các linh kiện chứa trong lòng nó. Kích thước transistor, tiết diện dây dẫn nội bộ là những thành phần cơ bản gây cản trở sự phát triển của các CPU đa nhân, mỗi hãng đều có các công nghệ sản xuất riêng để làm nhỏ kích thước của chúng. Những công nghệ mới gần đây đã có thể giúp tích hợp trên 2 tỷ transistor trong cùng một CPU. Công nghệ chế tạo CPU đã tiến đến mức 32&nbsp;nm (được công bố bởi Intel) và còn tiếp tục nhỏ hơn nữa (tuy hiện nay nhiều hãng sản xuất vẫn mới áp dụng rộng rãi công nghệ 65&nbsp;nm và chỉ một số CPU sản xuất trên công nghệ 45&nbsp;nm).

## Đa nhân và ứng dụng
### Bản quyền phần mềm
Trước khi xuất hiện các CPU đa nhân thì có nhiều người sử dụng lo ngại rằng khi sử dụng một máy tính đa nhân thì các hãng viết hệ điều hành sẽ tăng giá bán các phiên bản hệ điều hành hoặc các phần mềm. Những động thái lo ngại này không phải thiếu căn cứ bởi đã có những tiền lệ tương tự. Các phiên bản hệ điều hành cho các máy chủ thường được phân biệt sử dụng cho một hoặc nhiều hơn một CPU mà tuỳ theo số lượng CPU mà có giá bán khác nhau.

Tuy nhiên, hãng phần mềm Microsoft đã không yêu cầu người sử dụng trả thêm chi phí cho các hệ điều hành Windows các phiên bản được sử dụng các bộ xử lý đa nhân cho đến đầu năm 2008. Cách tính số lượng CPU của hãng này vẫn tính trên số lượng CPU vật lý, như vậy cho dù một máy chủ sử dụng duy nhất một CPU có bốn nhân, tám nhân hay nhiều hơn nữa thì cũng chỉ phải trả chi phí cho hệ điều hành bằng mức như với một CPU đơn nhân.

Mặc dù các bộ xử lý đa nhân đã xuất hiện từ rất lâu, nhưng đến nay chưa thấy các phần mềm thông dụng (phục vụ đa số người sử dụng hoặc chiếm thị phần tương đối) có sự chênh lệch nhau về giá bán giữa các phiên bản sử dụng cho CPU đơn nhân và đa nhân. Tuy nhiên, trong những thời gian kế tiếp có thể một số hãng phần mềm sẽ liên kết với nhau cùng tăng giá các phần mềm sử dụng trên những hệ thống máy tính sử dụng CPU đa nhân trong vòng một vài năm tới. Có thể điều này sẽ trở thành tất yếu khi mà công nghệ CPU đa nhân phát triển đến mỗi một CPU vật lý chứa rất nhiều nhân trong nó, và các phần mềm được thiết kế tối ưu cho chúng.

### Tương thích với phần cứng
Trong mục CPU đa nhân thế hệ đầu tiên ta nhận thấy vấn đề tương thích của các CPU đa nhân với hệ thống phần cứng không hề đơn giản. Một số CPU đa nhân thế hệ đầu của AMD có thể tương thích với bo mạch chủ cũ dành cho các CPU một nhân trước khi chúng ra đời, các CPU đa nhân của Intel thì hoàn toàn không tương thích với các bo mạch chủ sử dụng chipset cũ nếu chúng không được thiết kế lại hoặc cho ra đời phiên bản khác.

Các thế hệ hai nhân, bốn nhân kế tiếp ra đời thì AMD không còn giữ được lợi thế về sự nâng cấp hệ thống mà không cần thay đổi bo mạch chủ nữa. Người sử dụng muốn nâng cấp lên CPU đa nhân cần phải thay thế nhiều thiết bị phần cứng khác để phù hợp với chúng.
* Bo mạch chủ là thiết bị phải thay thế đầu tiên bởi các cấu trúc mới không còn được sự hỗ trợ của chipset thế hệ cũ.
* Bộ nhớ RAM cũng có sự thay đổi khi thay thế sang loại CPU đa nhân, chúng thường là loại DDR2 thay thế cho thế hệ DDR đầu tiên để đáp ứng về tốc độ cho các thế hệ CPU mới. Thông thường thì người sử dụng CPU Intel luôn phải đối mặt với sự thay thế bo mạch chủ và RAM bởi sự phát triển CPU đa nhân của Intel luôn cần tăng tốc độ RAM do cấu trúc hiện thời của Intel có xu hướng tăng tốc độ bộ nhớ.
* Nguồn máy tính cũng là thiết bị cần phải thay thế bởi các hệ thống mới thường sử dụng nguồn máy tính theo chuẩn ATX loại 24 chân ở phần cung cấp điện năng cho bo mạch chủ. Riêng phần cung cấp nguồn cho CPU trước đây thường sử dụng một kết nối 4 chân thì với các hệ thống mới có thể đòi hỏi kết nối 8 chân.
* Bo mạch đồ hoạ phải thay đổi nếu hệ thống cũ sử dụng giao tiếp AGP. Toàn bộ các bo mạch chủ thế hệ mới đều sử dụng khe PCI Express X16. Nếu như không chơi game 3D mạnh hoặc thiết kế đồ hoạ thì người sử dụng có thể lựa chọn một bo mạch chủ được tích hợp sẵn chức năng đồ hoạ để giảm chi phí (tuy nhiên sự kết hợp CPU đa nhân với chức năng đồ hoạ tích hợp thường là một sự cọc cạch đối với người chơi game và xử lý đồ hoạ, chỉ có thể chấp nhận chúng như một bước đệm trước khi nâng cấp nên các bo mạch đồ hoạ rời trên một bo mạch chủ vừa tích hợp chức năng đồ hoạ trên bo mạch chủ, vừa có sẵn khe cắm PCI Express X16).

### Đa nhân trên máy tính xách tay
Ngay từ khi các CPU hai nhân đầu tiên xuất hiện trên thị trường, các nhà sản xuất máy tính xách tay đã ứng dụng chúng trong các sản phẩm của mình. Những CPU đa nhân đầu tiên ở các máy tính xách tay đã cải thiện hiệu năng tăng khoảng 30% so với các CPU một nhân cùng tốc độ trong các thử nghiệm benchmark. Ngay các thế hệ CPU đa nhân kế tiếp ở các phiên bản CPU di động cũng không cải thiện được hiệu năng và khả năng tiết kiệm pin như một số nhà sản xuất CPU tuyên bố.

Bởi vì máy tính xách tay thường thiết kế cho các mục đích sử dụng di động với các ứng dụng không đòi hỏi nhiều năng lực CPU nên có vẻ chúng không cải thiện được tốc độ nhiều. Trừ các loại máy tính xách tay chuyên dụng cho game, xử lý đồ hoạ thì các dòng máy tính xách tay thông thường dành cho học sinh, sinh viên, doanh nhân đến thời điểm đầu năm 2008 vẫn chưa là một bước đột phá so với các dòng máy tính xách tay sử dụng CPU hai nhân của thế hệ đầu tiên.

### Khai thác hiệu năng đa nhân
;Đa nhân và phần mềm
CPU đa nhân đã ra đời nhưng hầu hết các phần mềm hiện nay đều chưa được chuẩn bị sẵn sàng cho chúng. Mặc dù hiểu một cách đơn giản thì các phần mềm vẫn hoạt động trơn chu trên các máy tính được trang bị CPU đa nhân, nhưng thực sự chúng còn có thể hoạt động tốt hơn nữa nếu khai thác được hết khả năng của đa nhân. Hầu hết các phần mềm hiện tại đang được viết cho các CPU đơn luồng, mọi hành động xử lý của chúng đều do hệ điều hành phân phối đến các luồng trong CPU đa nhân. Các hãng phần mềm cũng có lý do để chưa vội vàng biên dịch lại chúng tối ưu với các CPU đa nhân bởi hiện tại (đầu năm 2008) chưa phải tất cả các máy tính có thể sử dụng phần mềm đã được trang bị bộ xử lý đa nhân và chưa phải các bộ xử lý đa nhân đều hỗ trợ khả năng xử lý 64 bit (sẽ trở thành thông dụng về sau này). Mặt khác, việc chuyển đổi có thể cần phải xây dựng lại các thư viện lập trình sẵn có và cần có các khoản chi phí lớn. Vậy thì cách thức phát triển phần mềm truyền thống vẫn là một sự lựa chọn an toàn hơn với họ.

Tuy nhiên, không phải tất cả các hãng phần mềm đều chưa có động thái về hỗ trợ CPU đa nhân. Các phần mềm sử dụng cho máy chủ, máy trạm đã hỗ trợ xử lý đa luồng từ trước đây, bởi chúng ở một lĩnh vực riêng nên ít được người sử dụng máy tính thông thường biết đến. Đối với máy tính cá nhân để bàn sẽ xuất hiện nhiều phần mềm hỗ trợ đa luồng hơn mà trước hết là từ những phần mềm cần đến khả năng xử lý lớn như: xử lý đồ hoạ, xử lý video...

Các trò chơi trên máy tính (game) 3D hiện nay cũng chưa được thiết kế tối ưu cho hoạt động với các CPU đa nhân, đích nhắm tới hiện nay của chúng thường là hỗ trợ DX10 và DX10.1 (với khả năng đồ hoạ tuyệt đẹp hỗ trợ trên Windows Vista) nhiều hơn, do đó chúng vẫn thường chỉ chiếm một nhân khi xử lý ở CPU đa nhân.

Tương lai phần mềm vẫn sẽ phải phát triển theo hướng phù hợp với CPU đa nhân, nhất là với các phần mềm chiếm tài nguyên của CPU nhiều khi thực thi phần mềm đó. Đây là một định hướng tất yếu bởi khi sử dụng một phần mềm lớn, chúng chỉ chiếm một nhân trên CPU thì các nhân còn lại sẽ chỉ được sử dụng cho các phần mềm, dịch vụ chạy ở chế độ nền gây lãng phí năng lực xử lý trong khi có khả năng khai thác toàn bộ các nhân cùng hoạt động như vậy. Bạn hãy thử quan sát biểu đồ hoạt động thực tại của các nhân trong CPU khi sử dụng phần mềm chiếm nhiều tài nguyên sẽ nhận thấy sự lãng phí này. Ngược lại với các phần mềm chiếm tài nguyên thấp có thể không nhất thiết phải viết lại phù hợp cho các CPU đa nhân bởi điều đó là không cần thiết khi chúng không thể chiếm đến trên 10% năng lực xử lý trên một nhân (ví dụ như các phần mềm trợ giúp bỏ dấu tiếng Việt trong soạn thảo văn bản chỉ yêu cầu xử lý thấp).

;Đa nhân và hệ điều hành
Khác với phần mềm thì hệ điều hành cần thiết phải hỗ trợ các CPU đa nhân đa nhân và có thể tận dụng mọi công nghệ của CPU. Nếu như hệ điều hành không hỗ trợ các CPU đa nhân thì chúng chỉ nhận dạng duy nhất một bộ xử lý và có thể dẫn đến làm việc không ổn định. Hãy thử sử dụng hệ điều hành MS-DOS với các ứng dụng cũ sẽ nhận thấy chúng hoàn toàn có thể không phù hợp và hoạt động nhanh hơn đối với các CPU thế hệ trước đây bởi DOS và các hệ điều hành Windows 3.X thường phù hợp hơn với các CPU 16 bit.

Các hệ điều hành còn được sử dụng trong những năm 2008 thường hỗ trợ tốt đối với các CPU đa nhân bởi chúng có thể nhận dạng các CPU đa nhân và phân các luồng xử lý tới từng nhân để phân chia và cân bằng giữa các ứng dụng đơn luồng tới từng nhân của CPU. Để đạt được sự hỗ trợ đa nhân, người sử dụng có thể cần đến các bản nâng cấp hoàn chỉnh *(service pack, thường viết tắt là SP và một con số chỉ thứ tự)* hoặc các bản nâng cấp đơn lẻ. Ví dụ với Windows 2000 cần nâng cấp lên SP4, Windows XP cần SP2, đôi khi có các bản nâng cấp riêng lẻ dành riêng cho một vài loại CPU riêng biệt (ví dụ như cho dòng Core 2 Duo của Intel bằng bản KB936357-x86 ở Windows XP - SP2 của Microsoft).

Những hệ điều hành mới ra mắt gần đây dành cho máy tính cá nhân tất yếu phải hỗ trợ CPU đa nhân, ví dụ như Windows Vista của Microsoft. Chúng cũng có các phiên bản riêng dành cho những nhóm người sử dụng (người sử dụng ở gia đình, sử dụng trong doanh nghiệp...) và các phiên bản hỗ trợ xử lý 64 bit với giá bán khác nhau để tiết kiệm hơn cho từng đối tượng sử dụng.

### Đối nghịch với đa nhân: Thị trường PC giá thấp
Khi mà các hãng sản xuất CPU có xu hướng phát triển các sản phẩm CPU đa nhân như một tất yếu trong lịch sử phát triển của máy tính thì vẫn còn một thị trường không kém sôi động cho các vi xử lý một nhân. Các bộ xử lý cho máy tính rẻ tiền vẫn còn trong vòng ngắm của các hãng sản xuất thiết bị phần cứng.

Cả hai hãng AMD và Intel vẫn có những kế hoạch sản xuất CPU cho các máy tính rẻ tiền, dành cho người thu nhập thấp (loại máy tính *low-cost PC* với giá dự định thấp hơn 350 USD). Hãng Intel với chiến lược "5 năm, một tỷ người" nhằm giúp thúc đẩy số người sử dụng Internet trong năm năm tới thêm một tỷ máy tính nữa kết nối được với mạng toàn cầu (hiện nay số lượng người sử dụng Internet trên thế giới ước tính là 1 tỷ người sau 30 năm phát triển). Những kế hoạch của Intel không phải là quá xa vời khi hãng này chuẩn bị tung ra bộ CPU Diamond View cùng với chipset đi kèm dưới dạng OEM với giá khoảng 30 USD với sức mạnh tương đương với CPU Pentium M mà hãng đã sản xuất trước đây. Mục tiêu của gói CPU-chipset này nhắm tới các máy tính xách tay giá rẻ và các thiết bị Internet di động *(mobile Internet device)* của Intel.

Các hãng khác hoặc các dự án khác cũng đã chú ý đến thị trường PC giá rẻ từ trước đó: Dự án "Mỗi trẻ em một máy tính" OLPC (*One Laptop Per Child*) cũng được khởi động đã lâu với giá thành dự định dưới 100 USD cũng đã dần hạ giá thành những chiếc máy tính xách tay theo dự án đạt mức giá dự định. Ngoài ra, các thương hiệu máy tính giá rẻ như Asus EEPC, Intel Classmate cũng đang được triển khai.

Ngoài các CPU phục vụ cho các máy tính cá nhân, máy chủ, máy trạm thì bộ vi xử lý nhúng lại là một thị trường còn lớn hơn nữa. Rất ít người sử dụng hiểu được rằng vi xử lý nhúng đã được sử dụng đến từng thiết bị gia dụng trong đời sống: từ những chiếc ti vi, máy giặt, máy phát đĩa CD/DVD, đầu thu truyền hình số, điện thoại di động...đều sử dụng các bộ vi xử lý nhúng. Chúng chỉ là các vi xử lý có tốc độ thấp và chưa cần thiết đến đa nhân nhưng theo thống kê những năm 2000 thì chúng chiếm đến 96% trên tổng số các vi xử lý nhúng, (cho đến nay chúng có thể còn lớn hơn nữa do sự phát triển của sản phẩm dân dụng luôn lớn hơn so với những chiếc PC).

### Nhận thức của người sử dụng
;Nhận thức về tốc độ
Chỉ có một số ít những người sử dụng máy tính có thể hiểu được đúng về các thể loại CPU cũng như về phần cứng máy tính nói chung để có thể nhận rõ các công nghệ trong các bộ xử lý cũng như các thành phần khác liên quan để một hệ thống có thể vận hành tối ưu. Phần đông số người sử dụng còn lại thường cho rằng tốc độ xử lý của CPU là yếu tố hàng đầu để đánh giá mức độ "có chạy nhanh hay không" ở một máy tính. Chính vì vậy mà họ thường chọn một bộ xử lý có tốc độ cao mà không chú ý đến các yếu tố còn lại như công nghệ của bộ xử lý hoặc toàn bộ các thành phần khác để cấu thành lên một chiếc máy tính. Một số còn lựa chọn các CPU hoàn toàn dựa trên cảm tính, chẳng hạn chọn loại Celeron của Intel thay cho các bộ xử lý Pentium với một lập luận rất đơn giản là tốc độ cao và giá rẻ, hoặc chọn một CPU Pentium D thay vì chọn Core 2 Duo bởi chúng cũng gồm hai nhân và có tốc độ cao hơn. Đây là các nhận thức không đúng bởi hiệu năng thực tế mới là vấn đề đáng quan tâm nhất của các CPU. Các kết quả của quá trình benchmark thường phản ánh đúng hơn các hiệu quả làm việc khi so sánh giữa các CPU.

Một số người sử dụng lại cho rằng hai nhân giúp cho tốc độ CPU được tăng gấp đôi. Ví dụ một CPU Core 2 Duo số hiệu E6420 có tốc độ 2,13&nbsp;GHz (mỗi nhân) thì cả hai nhân sẽ hoạt động với tốc độ 4,26&nbsp;GHz (tăng gấp đôi). Điều này cũng không đúng bởi cả hai nhân không đồng thời cùng xử lý một ứng dụng và hai nhân không gia tốc việc xử lý cùng một yêu cầu một cách nối tiếp nhau. Nhiều kết quả benchmark cho thấy hiệu năng của CPU hai nhân đối với các ứng dụng bình thường (không được viết lại cho các CPU đa nhân) không tăng lên gấp đôi mà chúng chỉ tăng thêm khoảng 30%. Nhiều ứng dụng nặng như các phần mềm xử lý đồ hoạ, biên tập video, game 3D chỉ hoạt động trên một nhân của CPU đa nhân.

;Nhận thức về tên gọi
Một số người sử dụng lại nhận thức nhầm về thông số đặt tên của các CPU. Hai hãng sản xuất phần cứng gần đây đã thay đổi ký hiệu các CPU của họ theo các cách khác nhau.
* Intel đặt tên các sản phẩm của mình bằng một con số thay vì chỉ để một số thông số chính về FSB và tốc độ xử lý. Ví dụ các CPU có số hiệu 830, 540, 640...các con số này thường làm người sử dụng so sánh giữa các con số để hiểu về năng lực của CPU, nhưng thực chất không phải như vậy bởi có các CPU có số hiệu thấp lại có hiệu năm cao hơn CPU có số hiệu cao.
* AMD đặt tên theo các con số có một quy luật khác hơn mà được một số người cho rằng những thông số đó tương đương với hiệu năng của một CPU của hãng khác có cùng cấu trúc x86. Ví dụ 3800+, 4200+ nhằm hàm ý những CPU đó tương đương với một CPU của Intel có tốc độ xử lý 3800 Mhz, 4200 Mhz. Thực chất điều này chưa có cơ sở và cũng không được giải thích chính thức bởi có thể gây ra tranh cãi, kiện tụng giữa các hãng sản xuất.

;Nâng cấp vội vàng
Trước sự ra đời ồ ạt của các bộ xử lý đa nhân trong hai năm gần đây, một số người sử dụng đã vội vã nâng cấp CPU cho dù những công việc thường ngày của họ ít cần đến xử lý đa luồng: chẳng hạn chỉ duyệt web đọc tin tức, soạn thảo văn bản, sử dụng với các bảng tính và chơi các game đơn giản hoặc các game thế hệ cũ, không cần xử lý 3D nhiều mà hệ thống cũ vẫn có thể đáp ứng được. Trong trường hợp này tuy máy tính của họ cũng được cải thiện về tốc độ, tuy nhiên thời điểm đầu năm 2008 thì vẫn chưa phải là thời điểm nâng cấp hợp lý khi mà các hãng phần cứng đang cạnh tranh và sẽ xuất hiện nhiều thế hệ chipset mới mà chỉ chúng mới hỗ trợ các công nghệ CPU đa nhân sắp tới. Những sự cạnh tranh như vậy luôn luôn thuận lợi hơn cho người sử dụng bởi có thể sở hữu những CPU đa nhân với giá thành hạ hơn trước

## Chú thích
*Nhằm tránh phải xem các quảng cáo, một số trang liên kết ngoài dưới đây ở dạng "phiên bản trang web để in", xin vui lòng huỷ bỏ lệnh in nếu chúng xuất hiện.*
----

## Tham khảo
* **Scott Mueller**; *Upgrading and Repairing Pcs, 17th Edition*.

## Xem thêm
* CPU