Tại sao chúng ta có CPU với tất cả các lõi ở cùng tốc độ và không kết hợp các tốc độ khác nhau?


79

Nói chung, nếu bạn đang mua một máy tính mới, bạn sẽ xác định nên mua bộ xử lý nào theo khối lượng công việc dự kiến ​​của bạn. Hiệu suất trong các trò chơi có xu hướng được xác định bởi tốc độ lõi đơn, trong khi các ứng dụng như chỉnh sửa video được xác định theo số lượng lõi.

Xét về những gì có sẵn trên thị trường - tất cả các CPU dường như có tốc độ gần như nhau với sự khác biệt chính là nhiều luồng hơn hoặc nhiều lõi hơn.

Ví dụ:

  • Intel Core i5-7600K, tần số cơ bản 3,80 GHz, 4 lõi, 4 luồng
  • Intel Core i7-7700K, tần số cơ bản 4,20 GHz, 4 lõi, 8 luồng
  • AMD Ryzen 5 1600X, tần số cơ bản 3,60 GHz, 6 lõi, 12 luồng
  • AMD Ryzen 7 1800X, tần số cơ bản 3,60 GHz, 8 lõi, 16 luồng

Vậy tại sao chúng ta thấy mô hình tăng lõi này với tất cả các lõi có cùng tốc độ xung nhịp?

Tại sao chúng ta không có các biến thể với tốc độ xung nhịp khác nhau? Ví dụ: hai lõi 'lớn' và rất nhiều lõi nhỏ.

Ví dụ, vì, thay vì bốn lõi ở tốc độ 4.0 GHz (tức là tối đa 4 x 4 GHz ~ 16 GHz), thì CPU có hai lõi chạy ở tốc độ 4.0 GHz và nói bốn lõi chạy ở tốc độ 2 GHz (tức là 2x4.0 GHz + 4x2.0 GHz ~ 16 GHz tối đa). Không phải tùy chọn thứ hai sẽ tốt như nhau ở các khối lượng công việc đơn luồng, nhưng có khả năng tốt hơn ở các khối lượng công việc đa luồng?

Tôi đặt câu hỏi này như một điểm chung - không cụ thể về các CPU mà tôi đã liệt kê ở trên, hoặc về bất kỳ khối lượng công việc cụ thể nào. Tôi chỉ tò mò về lý do tại sao mô hình là như vậy.


15
Có nhiều điện thoại di động có lõi nhanh và chậm, và trên hầu hết các máy chủ đa lõi hiện đại, lõi CPU có tốc độ xung nhịp độc lập tùy thuộc vào tải, một số thậm chí tắt lõi khi không sử dụng. Trên máy tính đa năng, nơi bạn không thiết kế để tiết kiệm năng lượng, tuy nhiên chỉ có hai loại lõi (CPU và GPU) chỉ giúp nền tảng linh hoạt hơn.
eckes

5
Trước khi bộ lập lịch xử lý có thể đưa ra lựa chọn thông minh về việc sử dụng lõi nào, nó sẽ phải xác định xem một quy trình có thể tận dụng nhiều lõi hay không. Làm điều đó đáng tin cậy sẽ rất có vấn đề và dễ bị lỗi. Đặc biệt khi điều này có thể thay đổi linh hoạt theo nhu cầu của ứng dụng. Trong nhiều trường hợp, bộ lập lịch sẽ phải đưa ra lựa chọn tối ưu phụ khi sử dụng lõi tốt nhất. Các lõi giống hệt nhau làm cho mọi thứ đơn giản hơn, cung cấp sự linh hoạt tối đa và thường có hiệu suất tốt nhất.
LMiller7

33
Tốc độ đồng hồ hợp lý không thể nói là phụ gia theo cách bạn mô tả. Có bốn lõi chạy ở tốc độ 4 Ghz không có nghĩa là bạn có "tổng" 16 GHz, cũng không có nghĩa là 16 Ghz này có thể được phân chia thành 8 bộ xử lý chạy ở 2 Ghz hoặc 16 bộ xử lý chạy ở tốc độ 1 GHz.
Bob Jarvis

16
Tiền đề của câu hỏi đơn giản là sai. Các CPU hiện đại hoàn toàn có khả năng chạy các lõi ở các tốc độ khác nhau
phuclv

Câu trả lời:


85

Điều này được gọi là đa xử lý không đồng nhất ( HMP ) và được áp dụng rộng rãi bởi các thiết bị di động. Trong các thiết bị dựa trên ARM triển khai big.LITTLE , bộ xử lý chứa các lõi có cấu hình hiệu năng và công suất khác nhau, ví dụ: một số lõi chạy nhanh nhưng tiêu thụ nhiều năng lượng (kiến trúc nhanh hơn và / hoặc đồng hồ cao hơn) trong khi các lõi khác tiết kiệm năng lượng nhưng chậm ( kiến trúc chậm hơn và / hoặc đồng hồ thấp hơn). Điều này rất hữu ích vì việc sử dụng năng lượng có xu hướng tăng không tương xứng khi bạn tăng hiệu suất khi bạn vượt qua một điểm nhất định. Ý tưởng ở đây là để có được hiệu suất khi bạn cần và thời lượng pin khi bạn không.

Trên các nền tảng máy tính để bàn, tiêu thụ điện năng ít hơn một vấn đề nên điều này không thực sự cần thiết. Hầu hết các ứng dụng đều mong muốn mỗi lõi có các đặc tính hiệu năng tương tự và việc lập lịch trình cho các hệ thống HMP phức tạp hơn nhiều so với lập lịch cho các hệ thống SMP truyền thống. (Windows 10 về mặt kỹ thuật có hỗ trợ HMP, nhưng nó chủ yếu dành cho các thiết bị di động sử dụng ARM big.LITTLE.)

Ngoài ra, hầu hết các bộ xử lý máy tính để bàn và máy tính xách tay ngày nay không bị giới hạn về nhiệt hoặc điện ở điểm mà một số lõi cần phải chạy nhanh hơn các lõi khác ngay cả đối với các vụ nổ ngắn. Về cơ bản, chúng ta đã đạt được một bức tường về việc chúng ta có thể tạo ra các lõi riêng lẻ nhanh như thế nào , vì vậy việc thay thế một số lõi bằng các lõi chậm hơn sẽ không cho phép các lõi còn lại chạy nhanh hơn.

Mặc dù có một vài bộ xử lý máy tính để bàn có một hoặc hai lõi có khả năng chạy nhanh hơn các bộ xử lý khác, khả năng này hiện bị giới hạn ở một số bộ xử lý Intel cao cấp nhất định (như Turbo Boost Max Technology 3.0) và chỉ tăng hiệu năng một chút cho những lõi có thể chạy nhanh hơn.


Mặc dù chắc chắn có thể thiết kế bộ xử lý x86 truyền thống với cả lõi lớn, nhanh và lõi nhỏ hơn, chậm hơn để tối ưu hóa cho khối lượng công việc nhiều luồng, điều này sẽ tăng thêm độ phức tạp đáng kể cho thiết kế bộ xử lý và các ứng dụng khó có thể hỗ trợ chính xác.

Sử dụng bộ xử lý giả thuyết với hai lõi Kaby Lake (Lõi thế hệ thứ 7) nhanh và tám lõi Goldmont ( Nguyên tử) chậm . Bạn có tổng cộng 10 lõi và khối lượng công việc được xử lý nhiều luồng được tối ưu hóa cho loại bộ xử lý này có thể thấy hiệu suất và hiệu quả vượt trội so với bộ xử lý Kaby Lake lõi tứ thông thường . Tuy nhiên, các loại lõi khác nhau có mức hiệu năng cực kỳ khác nhau và lõi chậm thậm chí không hỗ trợ một số hướng dẫn hỗ trợ lõi nhanh, như AVX . (ARM tránh vấn đề này bằng cách yêu cầu cả lõi lớn và LITTLE hỗ trợ cùng một hướng dẫn.)

Một lần nữa, hầu hết các ứng dụng đa luồng dựa trên Windows đều cho rằng mọi lõi đều có cùng mức hoặc gần bằng mức hiệu năng và có thể thực hiện cùng một hướng dẫn, do đó loại không đối xứng này có thể dẫn đến hiệu suất kém lý tưởng, thậm chí có thể gặp sự cố nó sử dụng các hướng dẫn không được hỗ trợ bởi các lõi chậm. Mặc dù Intel có thể sửa đổi các lõi chậm để thêm hỗ trợ hướng dẫn nâng cao để tất cả các lõi có thể thực hiện tất cả các hướng dẫn, nhưng điều này sẽ không giải quyết các vấn đề với hỗ trợ phần mềm cho các bộ xử lý không đồng nhất.

Một cách tiếp cận khác nhau về thiết kế ứng dụng, gần hơn với những gì bạn có thể nghĩ về câu hỏi của mình, sẽ sử dụng GPU để tăng tốc các phần ứng dụng song song cao. Điều này có thể được thực hiện bằng cách sử dụng các API như OpenCLCUDA . Đối với giải pháp đơn chip, AMD thúc đẩy hỗ trợ phần cứng để tăng tốc GPU trong các APU của nó, kết hợp CPU truyền thống và GPU tích hợp hiệu năng cao vào cùng một chip, như Kiến trúc hệ thống không đồng nhất , mặc dù điều này không thấy được sự hấp thụ của ngành công nghiệp bên ngoài của một vài ứng dụng chuyên biệt.


1
Windows đã có một khái niệm về 'Ứng dụng', 'Quy trình nền' và 'Quy trình Windows'. Vì vậy, điều này không mở rộng đến một mức độ phần cứng?
Jamie

2
@Jamie Một quá trình "nền" có các lát thời gian nhỏ hơn và có nhiều khả năng bị gián đoạn. Windows 10, trong một chừng mực nào đó, chiếm các hệ thống HMP, mặc dù chưa có nhiều thông tin về cách thức.
Bob

Vì vậy, tôi nghĩ rằng sau khi chỉnh sửa @bwDraco đã trả lời khá nhiều cho tôi. Nếu có bộ xử lý 'hỗn hợp', nó có thể dễ dàng hỗ trợ cùng một tập lệnh nếu nó được xây dựng theo cách đó, vì vậy chúng ta sẽ cần một số loại lịch trình để chọn lõi đúng. Tôi nghĩ rằng các ứng dụng thực sự có lợi từ việc đi đến nhiều lõi nhỏ có thể sẽ có lợi hơn nhiều từ việc đi đến rất nhiều lõi thực sự nhỏ. Do đó, chúng tôi có tăng tốc GPU.
Jamie

3
Lưu ý rằng vỏ GPU không giao dịch 2 lõi lớn cho 10 lõi nhỏ và chậm, mà tương đương (rất thô) tương đương với giao dịch 2 lõi lớn cho 1024 lõi nhỏ và chậm. Lớn song song, không chỉ là một chút song song.
Yakk

4
Intel có thể có được lõi Goldmont để chạy các hướng dẫn AVX2 mà không cần thêm silicon (từ từ, bằng cách giải mã thành các cặp op 128b). Knight's Landing (Xeon Phi) có lõi dựa trên Silvermont với AVX512, vì vậy không thể sửa đổi Silvermont. Nhưng KNL bổ sung việc thực hiện không theo thứ tự cho các hướng dẫn vectơ, trong khi Silver / Goldmont bình thường chỉ thực hiện OOO cho số nguyên, vì vậy họ có thể muốn thiết kế nó gần với Goldmont hơn KNL. Dù sao, bộ insn không phải là một vấn đề thực sự. Đó là sự hỗ trợ của hệ điều hành và lợi ích nhỏ là những trở ngại thực sự trong việc dành khu vực chết cho lõi năng lượng thấp.
Peter Cordes

68

Những gì bạn đang hỏi là tại sao các hệ thống hiện tại sử dụng đa xử lý đối xứng thay vì đa xử lý không đối xứng .

Đa xử lý bất đối xứng đã được sử dụng trong những ngày xưa, khi một máy tính là rất lớn và được đặt trên một số đơn vị.

Các CPU hiện đại được đúc thành một đơn vị, trong một lần chết, nơi đơn giản hơn nhiều là không trộn lẫn các loại CPU khác nhau, vì tất cả chúng đều dùng chung một bus và RAM.

Ngoài ra còn có các ràng buộc của đồng hồ chi phối các chu kỳ CPU và truy cập RAM. Điều này sẽ trở nên bất khả thi khi trộn các CPU có tốc độ khác nhau. Các máy tính thử nghiệm không có đồng hồ đã tồn tại và thậm chí còn khá nhanh, nhưng sự phức tạp của phần cứng hiện đại áp đặt một kiến ​​trúc đơn giản hơn.

Ví dụ, lõi Sandy Bridge và Ivy Bridge không thể chạy ở các tốc độ khác nhau cùng một lúc vì bus bộ đệm L3 chạy ở cùng tốc độ xung nhịp với lõi, do đó, để ngăn chặn sự cố đồng bộ hóa, tất cả đều phải chạy ở tốc độ đó hoặc được đỗ / tắt (liên kết: Tiếp xúc với kiến ​​trúc Sandy Bridge của Intel ). (Cũng được xác minh trong các ý kiến ​​dưới đây cho Skylake.)

[EDIT] Một số người đã nhầm câu trả lời của tôi có nghĩa là nói rằng việc trộn CPU là không thể. Vì lợi ích của họ, tôi tuyên bố: Việc trộn lẫn các CPU khác nhau không nằm ngoài công nghệ ngày nay, nhưng không được thực hiện - "tại sao không" là câu hỏi. Như đã trả lời ở trên, điều này sẽ phức tạp về mặt kỹ thuật, do đó tốn kém hơn và vì quá ít hoặc không có lợi ích tài chính, do đó không làm các nhà sản xuất quan tâm.

Dưới đây là câu trả lời cho một số ý kiến ​​dưới đây:

Turbo boost thay đổi tốc độ CPU để thể thay đổi chúng

Turbo boost được thực hiện bằng cách tăng tốc đồng hồ và thay đổi một số bội số, đó chính xác là những gì mọi người làm khi ép xung, ngoại trừ phần cứng làm điều đó cho chúng ta. Đồng hồ được chia sẻ giữa các lõi trên cùng một CPU, vì vậy điều này tăng tốc độ đồng đều cho toàn bộ CPU và tất cả các lõi của nó.

Một số điện thoại có nhiều CPU có tốc độ khác nhau

Những điện thoại như vậy thường có phần mềm tùy chỉnh và ngăn xếp phần mềm được liên kết với mỗi CPU, giống như hai CPU riêng biệt (hoặc như CPU ​​và GPU) và chúng thiếu một chế độ xem bộ nhớ hệ thống. Sự phức tạp này rất khó để lập trình và do đó, đa xử lý không đối xứng đã bị bỏ lại trong lĩnh vực di động, vì nó đòi hỏi sự phát triển phần mềm gần với phần cứng ở mức độ thấp, bị hệ điều hành máy tính để bàn đa năng tránh xa. Đây là lý do mà các cấu hình như vậy không được tìm thấy trong PC (ngoại trừ CPU / GPU nếu chúng ta kéo dài đủ định nghĩa).

Máy chủ của tôi có 2x Xeon E5-2670 v3 (12 lõi có HT) hiện có các lõi ở tốc độ 1,3 GHz, 1,5 GHz, 1,6 GHz, 2,2 GHz, 2,5 GHz, 2,7 GHz, 2,8 GHz, 2,9 GHz và nhiều tốc độ khác.

Một lõi là hoạt động hoặc nhàn rỗi. Tất cả các lõi đang hoạt động cùng một lúc chạy ở cùng tần số. Những gì bạn đang thấy chỉ là một tạo tác của thời gian hoặc trung bình. Bản thân tôi cũng lưu ý rằng Windows không sử dụng lõi trong một thời gian dài, mà riêng biệt là các công viên / bỏ đánh giá tất cả các lõi nhanh hơn nhiều so với tốc độ làm mới của Resource Monitor, nhưng tôi không biết lý do cho hành vi này có lẽ là đằng sau nhận xét trên.

Bộ xử lý Intel Haswell có bộ điều chỉnh điện áp tích hợp cho phép điện áp và tần số riêng cho mọi lõi

Bộ điều chỉnh điện áp cá nhân khác với tốc độ đồng hồ. Không phải tất cả các lõi là giống hệt nhau - một số nhanh hơn. Các lõi nhanh hơn được cung cấp ít năng lượng hơn một chút, tạo ra khoảng không để tăng sức mạnh cho các lõi yếu hơn. Bộ điều chỉnh điện áp lõi sẽ được đặt ở mức thấp nhất có thể để duy trì tốc độ xung nhịp hiện tại. Bộ điều khiển nguồn trên CPU điều chỉnh điện áp và sẽ ghi đè các yêu cầu của hệ điều hành khi cần thiết cho các lõi có chất lượng khác nhau. Tóm tắt: Các bộ điều chỉnh riêng lẻ để làm cho tất cả các lõi hoạt động kinh tế ở cùng tốc độ xung nhịp, không phải để thiết lập tốc độ lõi riêng lẻ


3
Ah. nhiều mshorter và đến điểm. +1
Hennes

6
@harrymc có các khối đồng bộ hóa quản lý nó hoàn toàn tốt; DRAM chạy chậm hơn tốc độ lõi và bạn có thể có các lõi Intel chạy ở các tốc độ khác nhau trên cùng một chip.
pjc50

10
Bộ xử lý Intel Core-series chạy ở các tốc độ khác nhau trên cùng một lúc.
Nick T

9
Sự tồn tại duy nhất của kiến ​​trúc big.LITTLE và tăng cường đồng hồ độc lập cốt lõi chứng tỏ bạn đã sai. Đa xử lý không đồng nhất là chủ đạo. Nó có thể được thực hiện, nó được thực hiện trong điện thoại, nhưng vì một số lý do không phải trong máy tính để bàn.
Đặc vụ_L

9
@Agent_L: Lý do là sự phức tạp. CPU máy tính để bàn đã đủ tốn kém. Vì vậy, tôi nhắc lại: Mọi thứ đều có thể, nhưng câu hỏi thực tế là tại sao nó không được thực hiện, không phải là nó có thể được thực hiện hay không. Đừng tấn công tôi như thể tôi đã tuyên bố điều này là không thể - tất cả những gì tôi nói là nó quá phức tạp và tốn kém và vì quá ít lợi ích để thu hút các nhà sản xuất.
harrymc

46

Tại sao chúng ta không có các biến thể với tốc độ xung nhịp khác nhau? I E. 2 lõi 'lớn' và rất nhiều lõi nhỏ.

Có thể điện thoại trong túi của bạn thể hiện chính xác sự sắp xếp đó - ARM big.LITTLE hoạt động chính xác như bạn mô tả. Ở đó, nó thậm chí không chỉ là sự khác biệt về tốc độ xung nhịp, chúng có thể là các loại lõi hoàn toàn khác nhau - thông thường, những loại có tốc độ chậm hơn thậm chí là "ngu ngốc" (không thực hiện theo thứ tự và tối ưu hóa CPU khác).

Về cơ bản, đây là một ý tưởng hay để tiết kiệm pin, nhưng có những khuyết điểm riêng; việc ghi sổ để di chuyển các công cụ giữa các CPU khác nhau phức tạp hơn, việc giao tiếp với các thiết bị ngoại vi còn phức tạp hơn và quan trọng nhất là sử dụng các lõi đó một cách hiệu quả, bộ lập lịch nhiệm vụ phải cực kỳ thông minh (và thường là "đoán đúng") .

Sự sắp xếp lý tưởng là chạy các tác vụ nền không quan trọng về thời gian hoặc các tác vụ tương tác tương đối nhỏ trên các lõi "nhỏ" và đánh thức các "lớn" chỉ cho các tính toán lớn, dài (trong đó thời gian thêm dành cho các lõi nhỏ kết thúc ăn nhiều pin hơn) hoặc cho các tác vụ tương tác cỡ trung bình, trong đó người dùng cảm thấy chậm chạp trên các lõi nhỏ.

Tuy nhiên, bộ lập lịch đã giới hạn thông tin về loại công việc mà mỗi tác vụ có thể đang chạy và phải sử dụng một số thông tin heuristic (hoặc thông tin bên ngoài, chẳng hạn như buộc một số mặt nạ ái lực vào một nhiệm vụ nhất định) để quyết định nơi sắp xếp chúng. Nếu nó sai, bạn có thể sẽ lãng phí rất nhiều thời gian / năng lượng để chạy một tác vụ trên lõi chậm và mang lại trải nghiệm xấu cho người dùng hoặc sử dụng lõi "lớn" cho các nhiệm vụ ưu tiên thấp và do đó lãng phí điện năng / đánh cắp chúng khỏi các nhiệm vụ sẽ cần chúng.

Ngoài ra, trên một hệ thống đa xử lý không đối xứng, việc di chuyển các tác vụ sang một lõi khác sẽ tốn kém hơn so với trên hệ thống SMP, do đó, bộ lập lịch thường phải đưa ra dự đoán ban đầu thay vì cố gắng chạy trên lõi tự do ngẫu nhiên và di chuyển nó xung quanh sau


Thay vào đó, sự lựa chọn của Intel ở đây là có số lượng lõi nhanh và thông minh giống hệt nhau, nhưng với tần số rất lớn. Khi CPU bận, nó nhanh chóng tăng tốc độ xung nhịp tối đa, làm việc nhanh nhất có thể và sau đó thu nhỏ nó xuống để trở về chế độ sử dụng năng lượng thấp nhất. Điều này không đặt gánh nặng đặc biệt lên lịch trình và tránh các tình huống xấu được mô tả ở trên. Tất nhiên, ngay cả khi ở chế độ đồng hồ thấp, các lõi này là những lõi "thông minh", vì vậy chúng có thể sẽ tiêu thụ nhiều hơn các lõi lớn "ngu ngốc" đồng hồ thấp.


1
Heuristic nên khá đơn giản. Bất kỳ chuyển đổi tác vụ không tự nguyện (sử dụng toàn bộ thời gian) là một dấu hiệu cho thấy cpu chậm không phù hợp cho tác vụ. Việc sử dụng rất thấp và tất cả các chuyển đổi tác vụ tự nguyện là dấu hiệu cho thấy nhiệm vụ có thể được chuyển sang cpu chậm.
R ..

3
một vấn đề khác là 4 lõi 2GHz ngu ngốc có thể có kích thước chết nhiều hơn 2 lõi 4GHz thông minh, hoặc chúng có thể nhỏ hơn và tốn ít năng lượng hơn so với lõi 4 GHz nhưng chạy cũng chậm hơn nhiều
phuclv

2
@R.: Theo nguyên tắc tôi đồng ý với bạn, nhưng thậm chí cho phép một số công cụ lên lịch cơ bản hỗ trợ cho việc này, tôi thấy lõi lố bịch trên bảng ARM tôi đã sử dụng, do đó phải có thứ khác. Bên cạnh đó, hầu hết các phần mềm đa luồng "thông thường" đều được viết với SMP, do đó, không có gì lạ khi thấy các nhóm luồng lớn bằng tổng số lõi, với các công việc kéo theo các lõi chậm.
Matteo Italia

1
@Ramhound: Bộ phận 10 lõi 120W có ngân sách công suất 12W mỗi lõi (ngoại trừ ở chế độ turbo đơn lõi). Đây là lý do tại sao đồng hồ lõi đơn cao nhất được tìm thấy trong các bộ phận lõi tứ, trong đó, ví dụ i7-6700k của Intel có ngân sách công suất 91W cho 4 lõi: 22,75W mỗi lõi được duy trì với tất cả các lõi hoạt động (ở tốc độ 4.0 GHz ngay cả với một lõi Khối lượng công việc AVX2 + FMA như Prime95). Đây cũng là lý do tại sao khoảng trống Turbo lõi đơn chỉ tăng thêm 0,2 GHz, so với Broadwell E5-2699v4 22 lõi với cơ sở 2.2GHz @ 145W, turbo 3.6GHz.
Peter Cordes

@Ramhound: đã thêm một câu trả lời mở rộng về điều này. Một Xeon nhiều lõi dường như chính xác là những gì OP đang tìm kiếm: vận hành càng nhiều lõi năng lượng thấp hoặc tiêu tốn nhiều năng lượng để chạy một luồng nhanh khi có thể (turbo).
Peter Cordes

14

Hiệu suất trong các trò chơi có xu hướng được xác định bởi tốc độ lõi đơn,

Trong quá khứ (trò chơi thời đại DOS): Đúng.
Những ngày này, nó không còn đúng nữa. Nhiều trò chơi hiện đại được phân luồng và hưởng lợi từ nhiều lõi. Một số game đã khá hài lòng với 4 nhân và con số đó dường như tăng theo thời gian.

trong khi các ứng dụng như chỉnh sửa video được xác định bởi số lượng lõi.

Sắp xếp đúng sự thật.

Số lõi * tốc độ nhân của lõi * hiệu quả.
Nếu bạn so sánh một lõi giống hệt nhau với một tập hợp các lõi giống hệt nhau, thì bạn hoàn toàn chính xác.

Xét về những gì có sẵn trên thị trường - tất cả các CPU dường như có tốc độ gần như nhau với sự khác biệt chính là nhiều luồng hơn hoặc nhiều lõi hơn. Ví dụ:

Intel Core i5 7600k, Base Freq 3.80 GHz, 4 lõi Intel Core i7 7700k, Base Freq 4.20 GHz, 4 lõi, 8 luồng AMD Ryzen 1600x, Base Freq 3.60 GHz, 6 lõi, 12 luồng AMD Ryzen 1800x, Base Freq 3.60 GHz, 8 lõi, 16 chủ đề

So sánh các kiến ​​trúc khác nhau là nguy hiểm, nhưng ok ...

Vậy tại sao chúng ta thấy mô hình tăng lõi này với tất cả các lõi có cùng tốc độ xung nhịp?

Một phần vì chúng tôi chạy vào một rào cản. Tăng tốc độ đồng hồ hơn nữa có nghĩa là cần nhiều năng lượng hơn và tạo ra nhiều nhiệt hơn. Nhiều nhiệt hơn có nghĩa là cần nhiều năng lượng hơn. Chúng tôi đã thử theo cách đó, kết quả là pentium khủng khiếp 4. Nóng và đói. Khó để làm mát. Và thậm chí không nhanh hơn Pentium-M được thiết kế thông minh (A P4 ở tốc độ 3.0 GHz nhanh tương đương với P-mob ở tốc độ 1.7 GHz).

Kể từ đó, chúng tôi chủ yếu từ bỏ việc đẩy tốc độ đồng hồ và thay vào đó chúng tôi xây dựng các giải pháp thông minh hơn. Một phần trong đó là sử dụng nhiều lõi trên tốc độ xung nhịp thô.

Ví dụ, một lõi 4GHz có thể tiêu thụ nhiều năng lượng và tạo ra nhiều nhiệt như ba lõi 2GHz. Nếu phần mềm của bạn có thể sử dụng nhiều lõi, nó sẽ nhanh hơn nhiều.

Không phải tất cả các phần mềm có thể làm điều đó, nhưng phần mềm hiện đại thường có thể.

Phần nào trả lời tại sao chúng ta có chip có nhiều lõi và tại sao chúng ta bán chip với số lượng lõi khác nhau.

Về tốc độ đồng hồ, tôi nghĩ rằng tôi có thể xác định ba điểm:

  • CPU công suất thấp có ý nghĩa đối với khá nhiều trường hợp không cần tốc độ thô. Ví dụ: Bộ điều khiển miền, thiết lập NAS, ... Đối với những điều này, chúng tôi có CPU tần số thấp hơn. Đôi khi, ngay cả với nhiều lõi hơn (ví dụ CPU tốc độ thấp 8x có ý nghĩa đối với máy chủ web).
  • Đối với phần còn lại, chúng ta thường ở gần tần số tối đa mà chúng ta có thể làm mà không cần thiết kế hiện tại của chúng ta quá nóng. (nói 3 đến 4GHz với các thiết kế hiện tại).
  • Và trên hết, chúng tôi làm binning. Không phải tất cả CPU đều được tạo ra như nhau. Một số CPU bị điểm kém hoặc bị điểm kém ở một phần chip của chúng, khiến các bộ phận đó bị vô hiệu hóa và được bán dưới dạng một sản phẩm khác.

Ví dụ kinh điển về điều này là chip AMD 4 lõi. Nếu một lõi bị hỏng, nó đã bị vô hiệu hóa và được bán dưới dạng chip 3 lõi. Khi nhu cầu về 3 lõi này cao, thậm chí một số 4 lõi đã được bán dưới dạng phiên bản 3 lõi và với phần mềm hack phù hợp, bạn có thể kích hoạt lại lõi thứ 4.

Và điều này không chỉ được thực hiện với số lượng lõi, nó còn ảnh hưởng đến tốc độ. Một số chip chạy nóng hơn những cái khác. Quá nóng và bán nó dưới dạng CPU tốc độ thấp hơn (trong đó tần số thấp hơn cũng có nghĩa là nhiệt lượng sinh ra ít hơn).

Và sau đó là sản xuất và tiếp thị và điều đó làm rối tung nó hơn nữa.

Tại sao chúng ta không có các biến thể với tốc độ xung nhịp khác nhau? I E. 2 lõi 'lớn' và rất nhiều lõi nhỏ.

Chúng tôi làm. Ở những nơi có ý nghĩa (ví dụ như điện thoại di động), chúng ta thường có một SoC với CPU lõi chậm (công suất thấp) và một vài lõi nhanh hơn. Tuy nhiên, trong máy tính để bàn thông thường, điều này không được thực hiện. Nó sẽ làm cho việc thiết lập phức tạp hơn, tốn kém hơn và không có pin để tiêu hao.


1
Như tôi đã chỉ ra - "Tôi hỏi câu hỏi này như một điểm chung - không cụ thể về những cpus mà tôi đã liệt kê ở trên", và có một lý do tôi đưa ra hai ví dụ từ mỗi kiến ​​trúc. Nếu chúng ta coi hai kịch bản là 1. tất cả các lõi lớn và 2. hai lớn & hai nhỏ - thì tôi nghĩ tất cả các điểm bạn đề cập đều áp dụng cho cả hai trường hợp - tức là. tốc độ lõi đơn tối đa theo lý thuyết, đóng gói chip, giảm tốc khi không sử dụng.
Jamie

Một lõi tốc độ tối đa duy nhất không thú vị lắm khi nó không được chọn. Bộ lập lịch sẽ cần phải được cập nhật để thực sự thích (các) lõi tốc độ cao.
Hennes

10

Tại sao chúng ta không có các biến thể với tốc độ xung nhịp khác nhau? Ví dụ: hai lõi 'lớn' và rất nhiều lõi nhỏ.

Trừ khi chúng tôi cực kỳ lo lắng về mức tiêu thụ năng lượng, sẽ không có ý nghĩa gì khi chấp nhận tất cả chi phí liên quan đến một lõi bổ sung và không nhận được càng nhiều hiệu suất từ ​​lõi đó càng tốt. Tốc độ xung nhịp tối đa được xác định chủ yếu bởi quy trình chế tạo và toàn bộ chip được chế tạo theo cùng một quy trình. Vì vậy, lợi thế sẽ làm cho một số lõi chậm hơn so với quy trình chế tạo được hỗ trợ là gì?

Chúng tôi đã có lõi có thể làm chậm để tiết kiệm năng lượng. Điều gì sẽ là điểm để hạn chế hiệu suất cao nhất của họ?


2
Đây là những gì tôi đã suy nghĩ. Tại sao cố tình sử dụng một số thành phần kém hơn khi tất cả chúng có thể là ưu tú? +1.
MPW

1
@MPW Sự lựa chọn không phải là giữa việc tạo ra một lõi lớn và sau đó trung hòa nó, nó nằm giữa tất cả các lõi lớn và một vài lõi lớn. Bởi vì bạn có hai kịch bản cạnh tranh - hiệu suất luồng đơn và hiệu suất đa luồng - tại sao không tối đa hóa cả hai? Chúng tôi có biết rằng bạn không thể chế tạo một con chip với một vài lõi lớn và nhỏ không?
Jamie

@Jamie Bạn có thể chế tạo một con chip với một vài lõi lớn và nhỏ. Nhưng các lõi nhỏ hơn sẽ không chạy ở tốc độ xung nhịp thấp hơn.
David Schwartz

Họ sẽ làm nếu họ được thiết kế theo cách đó ... Câu hỏi đặt ra là tại sao họ không thiết kế theo cách đó từ đầu, không thực hiện quy trình chế tạo hiện có và vô hiệu hóa nó.
Jamie

@Jamie Tôi không hiểu bạn đang nói gì. Toàn bộ CPU phải được chế tạo với cùng một quy trình chế tạo và tốc độ xung nhịp tối đa phần lớn là một đặc điểm của các quy trình chế tạo. Lõi yêu cầu tốc độ xung nhịp thấp hơn ở cùng mức chế tạo thường sẽ phức tạp hơn và chiếm nhiều không gian hơn, nếu không thì tại sao chúng lại yêu cầu tốc độ xung nhịp thấp hơn?
David Schwartz

9

Tại sao chúng ta không có các biến thể với tốc độ xung nhịp khác nhau? Ví dụ: hai lõi 'lớn' và rất nhiều lõi nhỏ.

Tốc độ đồng hồ danh nghĩa không thực sự có ý nghĩa quá lớn đối với hầu hết các bộ xử lý lớn hơn hiện nay vì tất cả chúng đều có khả năng tự lên xuống. Bạn đang hỏi liệu họ có thể đồng hồ lên xuống các lõi khác nhau một cách độc lập hay không.

Tôi hơi ngạc nhiên bởi nhiều câu trả lời khác. Bộ xử lý hiện đại có thể và làm điều này. Ví dụ, bạn có thể kiểm tra điều này bằng cách mở CPU-Z trên điện thoại thông minh - Google Pixel của tôi hoàn toàn có khả năng chạy các lõi khác nhau ở tốc độ khác nhau:

Nó chỉ là 2,15 Ghz, nhưng hai lõi là 1,593 Ghz và hai lõi là 1,132 Ghz.

Trên thực tế, kể từ năm 2009, CPU Intel chính thống đã có logic để tăng các lõi riêng lẻ cao hơn trong khi ép xung các lõi khác, cho phép hiệu năng lõi đơn tốt hơn trong khi vẫn nằm trong ngân sách TDP: http://www.anandtech.com/show/2832/4

Các bộ xử lý Intel mới hơn với "Lõi ưa thích" (thuật ngữ tiếp thị của Intel) có mỗi lõi được đặc trưng tại nhà máy, với các lõi nhanh nhất có thể tăng thêm cao: http://www.anandtech.com/show/11550/the-intel -skylakex-review-core-i9-7900x-i7-7820x-và-i7-7800x-tests / 7

Các chip Bulldozer của AMD đã có phiên bản nguyên thủy này: http://www.anandtech.com/show/4955/the-bulldozer-review-amd-fx8150-tested/4

Các chip Ryzen mới của AMD cũng có thể có điều này, mặc dù nó không được nêu rõ ràng ở đây: http://www.anandtech.com/show/11170/the-amd-zen-and-ryzen-7-review-a-deep-dive -on-1800x-1700x-và-1700/11


Bạn đang trả lời một câu hỏi khác nhau. Câu hỏi là về rất nhiều lõi lớn so với một vài lõi lớn và rất nhiều lõi nhỏ - giá trị của hai kịch bản. Trong cả hai tình huống, bạn có thể đồng hồ lên xuống tùy thuộc vào nhu cầu, hoặc tăng cường cốt lõi.
Jamie

3
Đó không phải là cách tôi đọc câu hỏi. Câu hỏi không đề cập đến các lõi kiến ​​trúc khác nhau, mặc dù sử dụng các từ "lớn" và "nhỏ". Nó tập trung hoàn toàn vào tốc độ đồng hồ.
Cấp Wu

8

Trên một hệ thống hiện đại, bạn thường làm có tất cả các lõi chạy ở tốc độ khác nhau. Việc giảm xung lõi không được sử dụng nhiều làm giảm mức sử dụng năng lượng và sản lượng nhiệt, điều này rất tốt và các tính năng như "turbo boost" cho phép một hoặc hai lõi chạy nhanh hơn đáng kể miễn là các lõi khác không hoạt động, và do đó việc sử dụng năng lượng và sản lượng nhiệt của toàn bộ gói không quá cao. Trong trường hợp chip có tính năng như vậy, tốc độ bạn thấy trong danh sách là tốc độ cao nhất bạn có thể nhận được với tất cả các lõi cùng một lúc. Và tại sao tất cả các lõi có cùng tốc độ tối đa? Chà, tất cả chúng đều có thiết kế giống hệt nhau, trên cùng một con chip vật lý, được đặt cùng một quy trình bán dẫn, vậy tại sao chúng phải khác nhau?

Lý do tất cả các lõi giống hệt nhau là vì điều đó giúp cho một luồng chạy trên một lõi tại một điểm dễ dàng nhất để bắt đầu chạy trên một lõi khác ở một điểm khác. Như đã đề cập ở những nơi khác, có những con chip được sử dụng phổ biến không tuân theo nguyên tắc lõi giống hệt nhau này, cụ thể là CPU ARM "big.LITTLE". Mặc dù trong suy nghĩ của tôi, sự khác biệt quan trọng nhất giữa lõi "lớn" và "nhỏ" không phải là tốc độ xung nhịp (lõi "lớn" có xu hướng huyền ảo hơn, lõi rộng hơn, nhiều đầu cơ hơn, nhận được nhiều hướng dẫn hơn trên mỗi đồng hồ với chi phí cao hơn sử dụng năng lượng, trong khi các lõi "nhỏ" đẽo gần hơn với các vấn đề đơn lẻ, theo thứ tự, năng lượng thấp của ARM), vì chúng '

Và tiến xa hơn vào lĩnh vực điện toán không đồng nhất, cũng rất phổ biến khi thấy các lõi "CPU" và "GPU" được tích hợp trên cùng một chip. Chúng có các thiết kế hoàn toàn khác nhau, chạy các bộ hướng dẫn khác nhau, được xử lý khác nhau và nói chung cũng sẽ có đồng hồ khác nhau.


7

Hiệu suất đơn luồng nhanh và thông lượng đa luồng rất cao chính xác là những gì bạn có được với CPU như Xeon E5-2699v4 của Intel .

Đó là Broadwell 22 lõi. Tốc độ xung nhịp duy trì là 2.2GHz với tất cả các lõi hoạt động (ví dụ mã hóa video), nhưng turbo tối đa lõi đơn là 3,6 GHz .

Vì vậy, trong khi chạy một tác vụ song song, nó sử dụng ngân sách năng lượng 145W của mình là 22 lõi 6,6W. Nhưng trong khi chạy một tác vụ chỉ với một vài luồng, cùng một ngân sách năng lượng cho phép một vài lõi tăng tốc lên tới 3,6 GHz. (Tuy nhiên , bộ nhớ lõi đơn thấp hơn và băng thông bộ đệm L3 trong Xeon lớn có nghĩa là nó có thể không chạy nhanh như lõi tứ máy tính để bàn ở tốc độ 3,6 GHz. Tuy nhiên, một lõi trong CPU Intel để bàn có thể sử dụng nhiều hơn tổng băng thông bộ nhớ.)

Tốc độ xung nhịp 2.2GHz được đánh giá là thấp vì giới hạn nhiệt. CPU càng có nhiều lõi thì chúng càng chạy chậm hơn khi tất cả đều hoạt động. Hiệu ứng này không lớn lắm trong các CPU 4 và 8 lõi mà bạn đề cập trong câu hỏi, bởi vì 8 không phải là nhiều lõi và chúng có ngân sách năng lượng rất cao. Ngay cả các CPU máy tính để bàn đam mê cũng thể hiện rõ hiệu ứng này: Skylake-X i9-7900X của Intel là một phần 10c20t với cơ sở 3,3 GHz, turbo tối đa 4,5 GHz . Đó là khoảng không gian turbo lõi đơn nhiều hơn i7-6700k (4.0GHz duy trì / 4.2GHz turbo mà không cần ép xung).

Thang đo tần số / điện áp (DVFS) cho phép cùng một lõi hoạt động trên một phạm vi rộng của đường cong hiệu suất / hiệu suất. Xem thêm bài thuyết trình IDF2015 này về quản lý năng lượng Skylake , với nhiều chi tiết thú vị về những gì CPU có thể làm hiệu quả và giảm hiệu suất so với hiệu quả cả về mặt tĩnh tại thời điểm thiết kế và trên đường bay với DVFS.

Ở đầu kia của phổ, CPU Intel Core-M có tần số duy trì rất thấp, như 1,2 GHz ở 4,5W , nhưng có thể tăng tốc lên tới 2,9 GHz . Với nhiều lõi hoạt động, chúng sẽ chạy lõi với tốc độ xung nhịp hiệu quả hơn, giống như Xeons khổng lồ.

Bạn không cần một kiến ​​trúc kiểu lớn. LỚN để có được hầu hết lợi ích. Các lõi nhỏ trong ARM big.LITTLE là các lõi theo thứ tự khá nhảm nhí, không tốt cho công việc tính toán. Vấn đề là chỉ cần chạy một UI với công suất rất thấp. Rất nhiều trong số chúng sẽ không tuyệt vời cho mã hóa video hoặc khủng hoảng số nghiêm trọng khác. ( @ Lưu Vĩnh Phúc đã tìm thấy một số cuộc thảo luận về lý do tại sao x86 không có lớn . LỚN


trong khi các ứng dụng như chỉnh sửa video được xác định bởi số lượng lõi. [Không phải 2x 4.0 GHz + 4x 2.0 GHz sẽ tốt hơn ở khối lượng công việc đa luồng so với 4x 4GHz?]

Đây là sự hiểu lầm chính của bạn. Bạn dường như đang nghĩ rằng cùng một tổng số tích tắc đồng hồ mỗi giây sẽ hữu ích hơn nếu trải đều trên nhiều lõi hơn. Điều đó không bao giờ đúng. Nó giống như

cores * perf_per_core * (scaling efficiency)^cores

( perf_per_corekhông giống với tốc độ xung nhịp, vì Pentium4 3GHz sẽ hoạt động ít hơn trên mỗi chu kỳ xung nhịp so với Skylake 3GHz.)

Quan trọng hơn, rất hiếm khi hiệu quả là 1.0. Một số tác vụ song song rõ ràng có quy mô gần như tuyến tính (ví dụ: biên dịch nhiều tệp nguồn). Nhưng mã hóa video không phải như thế. Đối với x264, tỷ lệ rất tốt lên đến một vài lõi, nhưng trở nên tồi tệ hơn với nhiều lõi hơn. ví dụ: đi từ 1 đến 2 lõi sẽ tăng gần gấp đôi tốc độ, nhưng đi từ 32 đến 64 lõi sẽ giúp ít hơn nhiều cho mã hóa 1080p thông thường. Điểm tại đó các cao nguyên tốc độ phụ thuộc vào cài đặt. ( -preset veryslowkhông phân tích nhiều hơn trên mỗi khung hình và có thể khiến nhiều lõi bận rộn hơn -preset fast).

Với rất nhiều lõi rất chậm, các phần đơn luồng của x264 sẽ trở thành nút cổ chai. (ví dụ: mã hóa dòng bit CABAC cuối cùng. Nó tương đương với gzip của h.264 và không song song.) Có một vài lõi nhanh sẽ giải quyết điều đó, nếu HĐH biết cách lên lịch cho nó (hoặc nếu x264 ghim các luồng thích hợp vào lõi nhanh).

x265 có thể tận dụng nhiều lõi hơn x264, vì nó có nhiều phân tích hơn để làm và thiết kế WPP của h.265 cho phép mã hóa và giải mã song song nhiều hơn. Nhưng ngay cả đối với 1080p, bạn sẽ hết song song để khai thác tại một số điểm.


Nếu bạn có nhiều video để mã hóa, thực hiện nhiều video theo tỷ lệ song song, ngoại trừ việc cạnh tranh các tài nguyên được chia sẻ như dung lượng và băng thông bộ đệm L3 và băng thông bộ nhớ. Càng ít lõi nhanh hơn có thể nhận được nhiều lợi ích hơn từ cùng một lượng bộ đệm L3, vì chúng không cần phải xử lý nhiều phần khác nhau của vấn đề cùng một lúc.


4

Mặc dù có thể thiết kế các máy tính có các bộ phận khác nhau chạy ở tốc độ độc lập khác nhau, việc phân xử tài nguyên thường đòi hỏi phải nhanh chóng quyết định yêu cầu nào sẽ phục vụ trước, điều này đòi hỏi phải biết liệu có yêu cầu nào khác có thể đến sớm để giành quyền ưu tiên không . Quyết định những điều như vậy, hầu hết thời gian , là khá đơn giản. Một cái gì đó giống như một mạch "buzzer buzzer" có thể được thực hiện chỉ với hai bóng bán dẫn. Vấn đề là việc đưa ra quyết định nhanh chóng mà đáng tin cậykhông mơ hồ là khó. Cách thực tế duy nhất để làm điều đó trong nhiều trường hợp là sử dụng một quyết định gọi là "đồng bộ hóa", có thể tránh sự mơ hồ nhưng lại đưa ra độ trễ hai chu kỳ. Người ta có thể thiết kế bộ điều khiển bộ đệm có thể phân xử đáng tin cậy giữa hai hệ thống với các đồng hồ riêng biệt nếu một người sẵn sàng chịu đựng sự chậm trễ hai chu kỳ trên mỗi hoạt động để xác định ai thắng trọng tài. Tuy nhiên, cách tiếp cận như vậy sẽ ít hữu ích hơn, tuy nhiên, nếu người ta muốn bộ đệm phản hồi ngay lập tức với các yêu cầu trong trường hợp không có tranh chấp, vì ngay cả các yêu cầu không được kiểm tra vẫn sẽ có độ trễ hai chu kỳ.

Chạy mọi thứ khỏi đồng hồ thông thường sẽ tránh được sự cần thiết phải đồng bộ hóa, từ đó tránh được sự chậm trễ liên lạc hai chu kỳ mỗi khi cần truyền thông tin hoặc tín hiệu điều khiển giữa các miền đồng hồ.


4

Máy tính để bàn đã làm điều này rồi.

Họ có (bộ) CPU, với 1-72 luồng hoạt động cùng một lúc và (bộ) GPU, với 16-7168 đơn vị tính toán.

Đồ họa là một ví dụ về một nhiệm vụ mà chúng tôi đã tìm thấy công việc song song lớn là hiệu quả. GPU được tối ưu hóa để thực hiện loại hoạt động mà chúng tôi muốn làm đồ họa (nhưng nó không giới hạn ở đó).

Đây là một máy tính có một vài lõi lớn và rất nhiều lõi nhỏ.

Nói chung, giao dịch một lõi tại X FLOPS cho ba lõi tại X / 2 FLOPS là không xứng đáng; nhưng giao dịch một lõi tại X FLOPS lấy một trăm lõi tại X / 5 FLOPS là rất đáng giá.

Khi lập trình cho việc này, bạn tạo mã rất khác nhau cho CPU và cho GPU. Rất nhiều công việc được thực hiện để phân chia khối lượng công việc, để GPU có được các nhiệm vụ được thực hiện tốt nhất trên GPU và CPU có các nhiệm vụ được thực hiện tốt nhất trên CPU.

Việc viết mã cho CPU dễ dàng hơn nhiều, bởi vì mã song song ồ ạt khó lấy đúng hơn. Vì vậy, chỉ khi mức chi trả lớn, nó mới có giá trị giao dịch hiệu suất lõi đơn cho các tình huống đa lõi. GPU cho một khoản tiền lớn khi được sử dụng đúng cách.

Bây giờ, các thiết bị di động làm điều này vì một lý do khác. Chúng có lõi năng lượng thấp chậm hơn đáng kể, nhưng cũng sử dụng ít năng lượng hơn đáng kể trên mỗi đơn vị tính toán. Điều này cho phép chúng kéo dài tuổi thọ pin lâu hơn khi không thực hiện các tác vụ nặng về CPU. Ở đây chúng tôi có một loại "tiền thưởng lớn" khác nhau; không phải hiệu suất, nhưng hiệu quả năng lượng. Vẫn còn rất nhiều công việc của hệ điều hành và có thể là người viết ứng dụng để làm cho điều này hoạt động tốt; chỉ có khoản tiền lớn mới làm cho nó xứng đáng.


-1

Lý do các hệ thống phổ biến có lõi với cùng tốc độ là một vấn đề toán học đơn giản. Thời gian đầu vào và đầu ra (với tối ưu hóa) dựa trên một bộ hằng số (có khả năng mở rộng = nhân với một số đơn vị).

Và ai đó ở đây cho biết các thiết bị di động có nhiều cpus với tốc độ khác nhau. Điều đó không đúng. Nó không phải là một đơn vị xử lý trung tâm nếu nó không phải là đơn vị xử lý trung tâm; không có vấn đề gì nhà sản xuất nói nó là hay không. trong trường hợp đó [không phải là cpu] nó chỉ là "gói hỗ trợ".


-10

Tôi không nghĩ OP hiểu các thiết bị điện tử cơ bản. Tất cả các máy tính yêu cầu một thứ để chúng hoạt động - đồng hồ. Chu kỳ đồng hồ được tạo bởi đồng hồ bên trong là thước đo cho sự chuyển động của tất cả dữ liệu. Để đạt được tính đồng bộ, tất cả các hoạt động phải được gắn với một đồng hồ chung. Điều này đúng cho cả thực thi dữ liệu nội bộ trên một máy tính bị cô lập cũng như toàn bộ mạng.

Nếu bạn muốn cách ly lõi trên CPU bằng cách chạy chúng ở các tần số khác nhau, bạn chắc chắn có thể thiết kế một nền tảng như vậy. Mặc dù, nó sẽ yêu cầu thiết kế một giải pháp bo mạch chủ liên kết từng lõi riêng lẻ với tập hợp con riêng biệt của các tính năng bo mạch chủ. Bạn sẽ bị bỏ lại với 4 máy tính cá nhân thay vì máy tính lõi tứ.

Ngoài ra, như một người khác đã chỉ ra, bạn có thể thêm mã vào kernel của mình để điều chỉnh tần số lõi trên cơ sở cá nhân. Điều này sẽ gây ra lượt truy cập về hiệu suất, mặc dù. Bạn có thể có tốc độ hoặc hiệu quả năng lượng - nhưng bạn không thể có cả hai.


1
Tôi không, vì vậy câu hỏi của tôi. So sánh Intel i5 7600 với i5 7600k, chúng tôi thấy rằng xung nhịp cơ bản là 100 mhz cho cả hai và sự khác biệt là tỷ lệ cốt lõi. Vì vậy, bạn có thể có hai lõi với cùng xung nhịp cơ bản 100 mhz nhưng với các tỷ lệ lõi khác nhau - kịch bản này có vi phạm yêu cầu đồng bộ không?
Jamie

4
Vâng, điều này là quá đơn giản hóa quá nhiều; Thật sự không đúng khi tất cả các hoạt động phải được gắn vào cùng một đồng hồ, có rất nhiều miền đồng hồ và hoàn toàn có thể chạy các lõi khác nhau ở cùng một tốc độ. Đồng hồ xe buýt không giống như đồng hồ nội bộ, v.v.
pjc50

11
Các chip hiện đại đã có nhiều miền đồng hồ (thậm chí RTC của một vi điều khiển giá rẻ & câm thường chạy trên một miền 32,7kHz riêng). Bạn chỉ cần đồng bộ hóa giữa các miền đồng hồ. Ngay cả với một chiếc đồng hồ thông thường, bạn có thể chia nó cho 2, 4, 8, v.v.
Michael

1
Tất cả đều đúng. Nhưng nó vẫn làm giảm hiệu quả hoạt động. Và đó luôn là mục tiêu liên quan đến hiệu suất. Đó là quan điểm của tôi. Chắc chắn, bạn có thể làm điều đó. Nhưng bạn sẽ có một cú hích về hiệu suất.
RyRoUK

"Giảm hiệu suất" - so với những gì? Bạn đang giả sử một trạng thái cơ sở nơi bạn có n bộ xử lý chạy cùng một đồng hồ. Đó không phải là trường hợp. Bộ xử lý X + bộ xử lý Y là một giải pháp mạnh mẽ / linh hoạt hơn so với bộ xử lý X một mình, bất kể chính xác bộ xử lý Y là gì.
hmijail
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.