Sự khác biệt giữa lõi và bộ xử lý


197

Sự khác biệt giữa lõi và bộ xử lý là gì?

Tôi đã tìm kiếm nó trên Google, nhưng tôi chỉ có định nghĩa đa lõi và đa bộ xử lý, nhưng nó không phù hợp với những gì tôi đang tìm kiếm.

Câu trả lời:


197

Một lõi thường là đơn vị tính toán cơ bản của CPU - nó có thể chạy một bối cảnh chương trình duy nhất (hoặc nhiều bối cảnh nếu nó hỗ trợ các luồng phần cứng như siêu phân luồng trên CPU Intel), duy trì trạng thái chương trình chính xác, các thanh ghi và thứ tự thực hiện chính xác và thực hiện các hoạt động thông qua ALU . Đối với mục đích tối ưu hóa, một lõi cũng có thể giữ bộ nhớ cache lõi với các bản sao của các khối bộ nhớ được sử dụng thường xuyên.

Một CPU có thể có một hoặc nhiều lõi để thực hiện các tác vụ tại một thời điểm nhất định. Các tác vụ này thường là các tiến trình phần mềm và các luồng mà HĐH lên lịch. Lưu ý rằng HĐH có thể có nhiều luồng để chạy, nhưng CPU chỉ có thể chạy X các tác vụ như vậy tại một thời điểm nhất định, trong đó X = số lõi * số luồng phần cứng trên mỗi lõi. Phần còn lại sẽ phải chờ HĐH lên lịch cho họ cho dù bằng cách ưu tiên các tác vụ hiện đang chạy hoặc bất kỳ phương tiện nào khác.

Ngoài một hoặc nhiều lõi, CPU sẽ bao gồm một số kết nối kết nối các lõi với thế giới bên ngoài và thường là bộ đệm chia sẻ "cấp độ cuối" lớn. Có nhiều yếu tố chính khác cần thiết để làm cho CPU hoạt động, nhưng vị trí chính xác của chúng có thể khác nhau tùy theo thiết kế. Bạn sẽ cần một bộ điều khiển bộ nhớ để nói chuyện với bộ nhớ, bộ điều khiển I / O (hiển thị, PCIe, USB, v.v.). Trước đây, các yếu tố này nằm ngoài CPU, trong "chipset" bổ sung, nhưng hầu hết thiết kế hiện đại đã tích hợp chúng vào CPU.

Ngoài ra, CPU có thể có GPU tích hợp, và hầu hết mọi thứ khác mà nhà thiết kế muốn theo sát về hiệu suất, sức mạnh và cân nhắc sản xuất. Thiết kế CPU chủ yếu là xu hướng trong những gì được gọi là hệ thống trên chip (SoC).

Đây là một thiết kế "cổ điển", được sử dụng bởi hầu hết các thiết bị đa năng hiện đại (PC khách, máy chủ, và cả máy tính bảng và điện thoại thông minh). Bạn có thể tìm thấy các thiết kế phức tạp hơn, thường là trong học viện, nơi việc tính toán không được thực hiện trong các đơn vị "giống như lõi" cơ bản.


@Leeor vì vậy đối với máy 4 lõi và 2 lõi, nếu tôi chạy một vòng lặp bận, nó có nên không tham gia chỉ 1 cpu và 1 lõi (tức là 50%) chỉ một trong số các cpu không? Quan sát của tôi cho thấy nó thu hút tất cả các cpu tới 100% ... đôi khi thiếu hiểu biết của tôi ...
Nrj

2
@Nrj, nếu bạn chạy một ứng dụng một luồng, nó sẽ được phân bổ cho một lõi đơn và chỉ kích hoạt một luồng CT duy nhất trên nó. Chuỗi đó sẽ có thể sử dụng 100% lõi đó vì không có luồng nào khác chạy cùng với nó. Nếu bạn kích hoạt một ứng dụng khác, nó thường sẽ được phân bổ cho lõi khác, và cứ thế cho đến khi bạn bão hòa số lượng lõi. Ngoài ra, bất kỳ luồng bổ sung nào sẽ được lên lịch cho cùng một lõi một lần nữa bằng cách sử dụng SMT. Tại thời điểm đó, việc sử dụng cốt lõi sẽ được phân phối giữa 2 luồng (và nếu chúng hoạt động đối xứng, mỗi luồng có thể sẽ đạt ~ 50%)
Leeor

@Leeor rõ ràng đây là mong đợi của tôi nhưng nó không phải là những gì tôi tìm thấy. Tôi thấy rằng tất cả bốn CPU (trong taskmanager) nhảy để hiển thị 100% sử dụng. Mã rất đơn giản - for (int i = 0; i <Integer.MAX_VALUE; i ++) {System.out.println (k); }
Nrj

@Leeor Tôi nghĩ rằng tôi đã làm bài kiểm tra không chính xác. nó giống như không gian làm việc trực tuyến của tôi có CPU ảo (4) nhưng chỉ có một bộ xử lý. Đó là lý do tại sao tất cả trong số họ bận rộn. Khi tôi thực hiện thử nghiệm trên máy vật lý 2 cpu (lõi kép), tôi có thể thấy rằng việc sử dụng cpu là khoảng 25%, phù hợp với kỳ vọng.
Nrj

Lưu ý rằng thuật ngữ này thay đổi, tùy thuộc vào người bạn hỏi. Chẳng hạn, trên hệ thống Debian của tôi, khi kiểm tra /proc/cpuinfo, tôi thấy mười sáu processor:dòng, mặc dù nó nói model: AMD Ryzen 7 2700X Eight-Core Processor. Vì vậy, ít nhất trong trường hợp này, mỗi trong số 8 "lõi" có hai "bộ xử lý", có sự mâu thuẫn với một số câu trả lời khác ở đây.
JWD

130

Một hình ảnh có thể nói hơn một ngàn từ:

Một hình ảnh có thể nói hơn một ngàn từ

* Hình mô tả sự phức tạp của một hệ thống đa lõi, đa xử lý hiện đại.

Nguồn:

https://software.intel.com/en-us/articles/intel-performance-count-monitor-a-better-way-to-measure-cpu-utilization


114
Nó có lẽ nói hơn một ngàn từ cho các sinh vật nhỏ như kiến.
Bầu trời

12
Tôi không có bất cứ điều gì chống lại việc sử dụng hình ảnh, nhưng ít nhất bạn có thể giải thích thêm, không chỉ sao chép / dán hình ảnh.
Patricio Sard

1
@Sky Hãy cẩn thận với kiến ​​... #hunter_x_hunter: 3
Saad Achemlal 28/03/2017

Đối với những người nói rằng nó quá nhỏ để đọc, hãy thử nhấp chuột phải vào nó, Open images in new tabsau đó phóng to bằng cách sử dụng cltr++
Ng Sek Long

28

Trước tiên, hãy làm rõ CPU là gì và lõi là gì, CPU của đơn vị xử lý trung tâm, có thể có nhiều đơn vị lõi, các lõi đó là bộ xử lý, có khả năng thực hiện chương trình nhưng nó được chứa trên cùng một chip.

Trước đây, một CPU được phân phối giữa khá nhiều chip, nhưng theo định luật Moore, họ đã tạo ra một CPU hoàn chỉnh bên trong một chip (kể từ những năm 90), nhà sản xuất bắt đầu lắp nhiều lõi hơn trong cùng một khuôn, vì vậy đó là Khái niệm về Đa lõi.

Trong những ngày này, có thể có hàng trăm lõi trên cùng một CPU CPU (chip hoặc chết), Intel Xeon. Một kỹ thuật khác được phát triển vào những năm 90 là đa luồng đồng thời, về cơ bản họ thấy rằng có thể có một luồng khác trong cùng một CPU lõi đơn, vì hầu hết các tài nguyên đã được sao chép giống như ALU, nhiều thanh ghi.

Vì vậy, về cơ bản, CPU có thể có nhiều lõi, mỗi lõi có khả năng chạy một luồng hoặc nhiều hơn cùng một lúc, chúng ta có thể mong đợi sẽ có nhiều lõi hơn trong tương lai, nhưng khó khăn hơn để có thể lập trình hiệu quả.


Ngay cả " Intel E5-2697 v2 " chỉ có 12 lõi ... Tại sao bạn lại nói "hàng trăm lõi trên cùng một CPU"? Điều gì giới hạn số lượng lõi có thể có trên một CPU?
Pacerier

2
Chúng là các bộ vi xử lý nghiên cứu với số lượng +100 lõi và một số ít được sản xuất hãy xem: tomshardware.com/forum/318101-28-which-maximum-cores-cores
Germán Alfaro

9

CPU là một đơn vị xử lý trung tâm. Kể từ năm 2002, chúng tôi chỉ có bộ xử lý lõi đơn, tức là chúng tôi sẽ chỉ thực hiện một tác vụ hoặc một chương trình tại một thời điểm.

Để có nhiều chương trình chạy cùng một lúc, chúng tôi phải sử dụng nhiều bộ xử lý để thực hiện nhiều quy trình cùng một lúc, vì vậy chúng tôi yêu cầu một bo mạch chủ khác cho điều đó và điều đó rất tốn kém.

Vì vậy, Intel đã đưa ra khái niệm siêu phân luồng tức là nó sẽ chuyển đổi CPU đơn thành hai CPU ảo tức là chúng ta có hai lõi cho nhiệm vụ của mình. Bây giờ CPU là đơn, nhưng nó chỉ giả vờ (giả mạo) rằng nó có CPU kép và thực hiện nhiều tác vụ. Nhưng có nhiều lõi thực sự sẽ tốt hơn thế nên mọi người phát triển chế tạo bộ xử lý đa lõi, tức là nhiều bộ xử lý trên một hộp, tức là lấy nhiều CPU trên một CPU lớn. Tức là nhiều lõi.


12
Chính xác thì chuyện gì đã xảy ra vào năm 2002?
Peter Mortensen

1
Intel đã không phát minh ra khái niệm đa luồng đồng thời. Wikipedia cho biết Alpha EV8 là triển khai thương mại lớn đầu tiên .
Peter Cordes

3

Trong những ngày đầu ... như trước thập niên 90 ... các bộ xử lý không thể thực hiện nhiều tác vụ một cách hiệu quả ... vì một bộ xử lý có thể xử lý chỉ một nhiệm vụ ... vì vậy khi chúng ta thường nói rằng chống vi-rút, microsoft từ, vlc, vv tất cả các phần mềm đều chạy cùng một lúc ... điều đó không thực sự đúng. Khi tôi nói một bộ xử lý có thể xử lý một tiến trình duy nhất tại một thời điểm ... tôi có nghĩa là nó. Nó thực sự sẽ xử lý một nhiệm vụ duy nhất ... sau đó nó được sử dụng để tạm dừng nhiệm vụ đó ... thực hiện một nhiệm vụ khác ... hoàn thành nó nếu nó ngắn hoặc một lần nữa tạm dừng nó và thêm nó vào hàng đợi ... sau đó tiếp theo. Nhưng 'tạm dừng' mà tôi đã đề cập này quá nhỏ (appx. 1ns) đến nỗi bạn không hiểu rằng nhiệm vụ đã bị tạm dừng. Ví dụ. Trên vlc trong khi nghe nhạc, có những ứng dụng khác đang chạy đồng thời nhưng như tôi đã nói với bạn ... mỗi lần một chương trình ...

Nhưng đây là về bộ xử lý cũ ...

Bộ xử lý ngày nay, tức là máy tính thế hệ thứ 3 có bộ xử lý đa lõi. Bây giờ, các lõi 'có thể được so sánh với chính bộ xử lý thế hệ 1 hoặc 2 ... được nhúng vào một chip, một bộ xử lý. Vì vậy, bây giờ chúng tôi đã hiểu lõi là gì, tức là chúng là bộ xử lý mini kết hợp để trở thành bộ xử lý. Và mỗi lõi có thể xử lý một tiến trình duy nhất tại một thời điểm hoặc nhiều luồng như được thiết kế cho HĐH. Và họ thực hiện các bước tương tự như tôi đã đề cập ở trên về bộ xử lý đơn.

Ví dụ. Một bộ xử lý i7 6gen có 8 lõi ... tức là 8 bộ xử lý mini trong 1 i7 ... tức là tốc độ của nó gấp 8 lần bộ xử lý cũ. Và đây là cách đa tác vụ có thể được thực hiện.

Có thể có hàng trăm lõi trong một bộ xử lý Eg. Intel i128.

Tôi hy vọng tôi đã giải thích điều này tốt.


0

Hình ảnh của Intel rất hữu ích, như thể hiện qua câu trả lời hay nhất của Tortuga. Đây là một chú thích cho nó.

Bộ xử lý : Một chip bán dẫn, CPU (bộ xử lý trung tâm) được đặt trong một ổ cắm, vào khoảng những năm 1950 - 2010. Theo thời gian, nhiều chức năng đã được đóng gói trên chip CPU. Trước những năm 1950 phát hành bộ xử lý đơn chip, một bộ xử lý có thể đã trải rộng trên nhiều chip. Vào giữa những năm 2010, các chip hệ thống trên chip đã làm cho nó trở nên sơ sài hơn khi đánh đồng một bộ xử lý với một chip, mặc dù đó thường là ý nghĩa của bộ xử lý, như trong "máy tính này có bộ xử lý i7" hoặc "hệ thống máy tính này có bốn bộ xử lý. "

Core : Một khối CPU, thực hiện một lệnh tại một thời điểm. (Bạn sẽ thấy mọi người nói một lệnh cho mỗi chu kỳ đồng hồ, nhưng một số CPU sử dụng nhiều chu kỳ xung nhịp cho một số hướng dẫn.)


1
Một lõi x86 thực hiện một cách hợp lý các lệnh một lần, theo thứ tự chương trình, nhưng trong thực tế, các CPU hiện đại dành rất nhiều bóng bán dẫn để duy trì ảo giác về việc đó trong khi thực sự là thực thi ngoài trật tự siêu rộng 4 chiều. realworldtech.com/haswell-cpu . (Hoặc rộng 5 hoặc 6, đối với Ryzen). Hơn 3 hướng dẫn trên mỗi đồng hồ không phải là hiếm trong thực tế, đối với một số mã. Nhưng cũng dưới 1 cũng phổ biến trong các mã khác mà tắc nghẽn trong bộ nhớ cache và / hoặc sai sót chi nhánh.
Peter Cordes

Ngoài ra, VLIW kiến trúc như Itanium được explicltly song song, và hợp lý cũng như thể chất thực thi nhiều câu lệnh song song. BTW, điểm lịch sử thú vị rằng một CPU đã lấy nhiều hơn một chip trong những ngày đầu.
Peter Cordes
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.