Tại sao không thêm nhiều lõi khác, đối mặt với các giới hạn vật lý tương tự như vì làm cho CPU nhanh hơn?


110

Vào năm 2014, tôi nghe thấy rất nhiều ngôn ngữ lập trình được chào mời cho các tính năng tương tranh của chúng. Đồng thời được cho là rất quan trọng để tăng hiệu suất.

Khi đưa ra tuyên bố này, nhiều người đã quay lại một bài viết năm 2005 có tên Bữa trưa miễn phí đã kết thúc: Bước ngoặt cơ bản hướng tới sự tương tranh trong phần mềm . Lập luận cơ bản là việc tăng tốc độ xung nhịp của bộ xử lý trở nên khó khăn hơn, nhưng chúng ta vẫn có thể đặt nhiều lõi hơn vào chip và để đạt được hiệu suất, phần mềm sẽ cần phải được viết để tận dụng nhiều lõi.

Một số trích dẫn chính:

Chúng ta thường thấy CPU 500 MHz nhường chỗ cho CPU 1GHz nhường chỗ cho CPU 2GHz, v.v. Ngày nay chúng ta đang ở trong phạm vi 3GHz trên các máy tính chính.

Câu hỏi chính là: Khi nào nó sẽ kết thúc? Xét cho cùng, Định luật Moore dự đoán tăng trưởng theo cấp số nhân và rõ ràng tăng trưởng theo cấp số nhân không thể tiếp tục mãi mãi trước khi chúng ta đạt đến giới hạn vật lý cứng; ánh sáng không thể nhận được nhanh hơn. Sự tăng trưởng cuối cùng phải chậm lại và thậm chí kết thúc.

... Việc khai thác tốc độ xung nhịp cao hơn trở nên khó khăn hơn do không chỉ một mà là một số vấn đề vật lý, đáng chú ý là nhiệt (quá nhiều và quá khó để tiêu tan), tiêu thụ điện năng (quá cao) và các vấn đề rò rỉ hiện tại.

... Tương lai của Intel và hầu hết các nhà cung cấp bộ xử lý nằm ở nơi khác khi các công ty chip tích cực theo đuổi các hướng đa lõi mới.

... Multicore là về việc chạy hai hoặc nhiều CPU thực tế trên một chip.

Dự đoán của bài viết này dường như đã được giữ vững, nhưng tôi không hiểu tại sao. Tôi chỉ có những ý tưởng rất mơ hồ về cách thức hoạt động của phần cứng.

Quan điểm đơn giản hóa của tôi là "ngày càng khó khăn hơn để đóng gói nhiều năng lượng xử lý vào cùng một không gian" (vì các vấn đề về nhiệt, tiêu thụ điện, v.v.). Tôi hy vọng kết luận là "do đó, chúng ta sẽ phải có máy tính lớn hơn hoặc chạy các chương trình của chúng tôi trên nhiều máy tính." (Và thực sự, điện toán đám mây phân tán là điều chúng ta đang nghe nhiều hơn.)

Nhưng một phần của giải pháp dường như là kiến ​​trúc đa lõi. Trừ khi các máy tính phát triển kích thước (mà chúng không có), đây dường như là một cách khác để nói "đóng gói nhiều sức mạnh hơn vào cùng một không gian".

Tại sao "không thêm lõi" phải đối mặt với các giới hạn vật lý tương tự như "làm cho CPU nhanh hơn"?

Hãy giải thích bằng những thuật ngữ đơn giản nhất bạn có thể. :)



4
vi.wikipedia.org/wiki/Moore%27s_law đáng đọc - vì chúng ta đang nói về hai điều khác nhau. Định luật Moore không phải là về tốc độ đồng hồ - mà là về số lượng bóng bán dẫn
Journeyman Geek

9
Hãy giả vờ là 30 năm trước và CPU chạy ở mức 4,77 MHz. Tại sao bạn có thể đặt 1000 máy tính có CPU 4 MHz trong cùng một phòng mặc dù không thể có CPU 4GHz?
dùng20574

3
@NathanLong nhưng vẫn dễ dàng có được nhiều không gian hơn (đối với nhiều máy tính hơn) để có được một máy tính nhanh hơn.
user20574

5
Tương tự: một động cơ xe hơi chỉ có thể được thực hiện với rất nhiều vòng / phút, nhưng bạn có thể dễ dàng bắt vít hai cái lại với nhau.
OJFord

Câu trả lời:


143

Tóm lược

  • Kinh tế học. Nó rẻ hơn và dễ dàng hơn để thiết kế CPU có nhiều lõi hơn tốc độ xung nhịp cao hơn, bởi vì:

  • Tăng đáng kể trong việc sử dụng năng lượng. Tiêu thụ năng lượng CPU tăng nhanh khi bạn tăng tốc độ xung nhịp - bạn có thể tăng gấp đôi số lượng lõi hoạt động ở tốc độ thấp hơn trong không gian nhiệt cần thiết để tăng tốc độ xung nhịp thêm 25%. Tăng gấp bốn lần cho 50%.

  • Có nhiều cách khác để tăng tốc độ xử lý tuần tự và các nhà sản xuất CPU sử dụng tốt chúng.


Tôi sẽ rút ra rất nhiều câu trả lời xuất sắc cho câu hỏi này trên một trong những trang SE của chị em chúng tôi. Vì vậy, hãy upvote chúng!


Giới hạn tốc độ đồng hồ

Có một vài hạn chế vật lý đã biết đối với tốc độ đồng hồ:

  • Thời gian truyền

    Thời gian để tín hiệu điện truyền qua mạch bị giới hạn bởi tốc độ ánh sáng. Đây là một giới hạn cứng và không có cách nào được biết xung quanh nó 1 . Tại đồng hồ gigahertz, chúng tôi đang tiến đến giới hạn này.

    Tuy nhiên, chúng tôi chưa có ở đó. 1 GHz có nghĩa là một nano giây trên mỗi đồng hồ. Trong thời gian đó, ánh sáng có thể đi được 30cm. Ở tốc độ 10 GHz, ánh sáng có thể truyền đi 3cm. Một lõi CPU có chiều rộng khoảng 5 mm, vì vậy chúng ta sẽ gặp các vấn đề này ở đâu đó trên 10 GHz. 2

  • Chuyển đổi độ trễ

    Nó không đủ để chỉ xem xét thời gian cần thiết để tín hiệu truyền từ đầu này sang đầu kia. Chúng ta cũng cần xem xét thời gian cần thiết cho một cổng logic trong CPU để chuyển từ trạng thái này sang trạng thái khác! Khi chúng ta tăng tốc độ xung nhịp, điều này có thể trở thành một vấn đề.

    Thật không may, tôi không chắc chắn về các chi tiết cụ thể và không thể cung cấp bất kỳ số nào.

    Rõ ràng, bơm thêm năng lượng vào nó có thể tăng tốc độ chuyển đổi, nhưng điều này dẫn đến cả vấn đề tiêu thụ năng lượng và tản nhiệt. Ngoài ra, nhiều năng lượng hơn có nghĩa là bạn cần các ống dẫn lớn hơn có khả năng xử lý nó mà không bị hư hại.

  • Tản nhiệt / tiêu thụ điện năng

    Đây là một trong những lớn. Trích dẫn từ câu trả lời của fuzzyhair2 :

    Bộ xử lý gần đây được sản xuất bằng công nghệ CMOS. Mỗi khi có một chu kỳ đồng hồ, năng lượng bị tiêu tan. Do đó, tốc độ xử lý cao hơn có nghĩa là tản nhiệt nhiều hơn.

    Có một số phép đo đáng yêu tại chủ đề diễn đàn AnandTech này , và họ thậm chí đã rút ra một công thức cho mức tiêu thụ năng lượng (đi đôi với nhiệt được tạo ra):

    Công thức
    Tín dụng cho Idontcare

    Chúng ta có thể hình dung điều này trong biểu đồ sau:

    Đồ thị
    Tín dụng cho Idontcare

    Như bạn có thể thấy, mức tiêu thụ năng lượng (và nhiệt tạo ra) tăng rất nhanh khi tốc độ đồng hồ được tăng lên qua một điểm nhất định. Điều này làm cho nó không thực tế để tăng tốc độ xung nhịp vô hạn.

    Lý do cho sự gia tăng nhanh chóng trong việc sử dụng năng lượng có lẽ liên quan đến độ trễ chuyển đổi - không đủ để chỉ tăng công suất tỷ lệ thuận với tốc độ xung nhịp; điện áp cũng phải được tăng lên để duy trì sự ổn định ở đồng hồ cao hơn. Điều này có thể không hoàn toàn chính xác; vui lòng chỉ ra các chỉnh sửa trong một nhận xét hoặc chỉnh sửa câu trả lời này.


Nhiều lõi hơn?

Vậy tại sao nhiều lõi hơn? Chà, tôi không thể trả lời dứt khoát được. Bạn phải hỏi những người ở Intel và AMD. Nhưng bạn có thể thấy ở trên, với các CPU hiện đại, đến một lúc nào đó, việc tăng tốc độ xung nhịp trở nên không thực tế.

Có, đa lõi cũng làm tăng công suất cần thiết và tản nhiệt. Nhưng nó gọn gàng tránh thời gian truyền và chuyển đổi các vấn đề chậm trễ. Và, như bạn có thể thấy từ biểu đồ, bạn có thể dễ dàng nhân đôi số lượng lõi trong một CPU hiện đại có cùng chi phí nhiệt khi tăng 25% tốc độ xung nhịp.

Một số người đã làm điều đó - kỷ lục thế giới ép xung hiện tại chỉ là 9 GHz. Nhưng đó là một thách thức kỹ thuật quan trọng để làm như vậy trong khi vẫn giữ mức tiêu thụ năng lượng trong giới hạn chấp nhận được. Các nhà thiết kế tại một số điểm đã quyết định rằng việc thêm nhiều lõi để thực hiện nhiều công việc song song sẽ mang lại hiệu quả cao hơn cho hiệu suất trong hầu hết các trường hợp.

Đó là nơi kinh tế đến - nó có thể rẻ hơn (thời gian thiết kế ít hơn, sản xuất ít phức tạp hơn) để đi theo con đường đa lõi. Và thật dễ dàng để tiếp thị - ai không thích chip octa-core hoàn toàn mới ? (Tất nhiên, chúng tôi biết rằng đa lõi khá vô dụng khi phần mềm không sử dụng nó ...)

một nhược điểm để đa lõi: bạn cần không gian căng thẳng hơn để đặt lõi thêm. Tuy nhiên, kích thước quá trình CPU liên tục co lại rất nhiều, do đó, có rất nhiều không gian để đặt hai bản sao của thiết kế trước đó - sự đánh đổi thực sự là không thể tạo ra các lõi đơn lớn hơn, phức tạp hơn. Sau đó, một lần nữa, tăng độ phức tạp cốt lõi là một điều xấu từ quan điểm thiết kế - phức tạp hơn = nhiều lỗi / lỗi và lỗi sản xuất. Chúng tôi dường như đã tìm thấy một phương tiện hạnh phúc với lõi hiệu quả, đủ đơn giản để không chiếm quá nhiều không gian.

Chúng tôi đã đạt đến một giới hạn với số lượng lõi mà chúng tôi có thể phù hợp với một lần chết ở các kích thước quy trình hiện tại. Chúng ta có thể đạt đến giới hạn về việc chúng ta có thể thu nhỏ mọi thứ sớm đến mức nào. Vậy, tiếp theo là gì? Chúng ta có cần nhiều hơn không? Thật không may để trả lời, thật không may. Có ai ở đây một người thấu thị?


Những cách khác để cải thiện hiệu suất

Vì vậy, chúng ta không thể tăng tốc độ đồng hồ. Và nhiều lõi hơn có một nhược điểm bổ sung - cụ thể là, chúng chỉ giúp ích khi phần mềm chạy trên chúng có thể sử dụng chúng.

Vậy, chúng ta có thể làm gì khác? Làm thế nào các CPU hiện đại nhanh hơn nhiều so với các CPU cũ hơn ở cùng tốc độ xung nhịp?

Tốc độ xung nhịp thực sự chỉ là một xấp xỉ rất thô của hoạt động bên trong của CPU. Không phải tất cả các thành phần của CPU đều hoạt động ở tốc độ đó - một số có thể hoạt động cứ sau hai tích tắc, v.v.

Điều quan trọng hơn là số lượng hướng dẫn bạn có thể thực hiện trên mỗi đơn vị thời gian. Đây là một biện pháp tốt hơn nhiều về việc một lõi CPU có thể thực hiện được bao nhiêu. Một số hướng dẫn; một số sẽ mất một chu kỳ đồng hồ, một số sẽ mất ba. Bộ phận, ví dụ, là chậm hơn đáng kể so với bổ sung.

Vì vậy, chúng ta có thể làm cho CPU hoạt động tốt hơn bằng cách tăng số lượng lệnh mà nó có thể thực thi mỗi giây. Làm sao? Chà, bạn có thể làm cho một hướng dẫn hiệu quả hơn - có thể việc phân chia bây giờ chỉ mất hai chu kỳ. Sau đó, có hướng dẫn đường ống . Bằng cách chia từng lệnh thành nhiều giai đoạn, có thể thực hiện các lệnh "song song" - nhưng mỗi lệnh vẫn có một thứ tự được xác định rõ ràng, theo thứ tự tương ứng với các hướng dẫn trước và sau nó, vì vậy nó không yêu cầu hỗ trợ phần mềm như đa lõi làm.

một cách khác : hướng dẫn chuyên biệt hơn. Chúng tôi đã thấy những thứ như SSE, cung cấp hướng dẫn để xử lý một lượng lớn dữ liệu cùng một lúc. Có những bộ hướng dẫn mới liên tục được giới thiệu với các mục tiêu tương tự. Những điều này, một lần nữa, yêu cầu hỗ trợ phần mềm và tăng độ phức tạp của phần cứng, nhưng chúng cung cấp một hiệu suất tốt. Gần đây, có AES-NI, cung cấp mã hóa và giải mã AES được tăng tốc phần cứng, nhanh hơn nhiều so với một loạt các số học được thực hiện trong phần mềm.


1 Không mà không nhận được khá sâu vào vật lý lượng tử lý thuyết, dù sao.

2 Nó thực sự có thể thấp hơn, vì sự lan truyền điện trường không nhanh bằng tốc độ ánh sáng trong chân không. Ngoài ra, đó chỉ là khoảng cách đường thẳng - có khả năng có ít nhất một con đường dài hơn đáng kể so với đường thẳng.


22
Ngoài ra, trong nhiều ứng dụng, nút cổ chai không phải là thời gian tính toán, mà là thời gian chờ để lấy dữ liệu từ RAM (hoặc, thần cấm nó, từ đĩa); vì vậy, một sự tăng tốc lớn khác đến từ bộ nhớ cache lớn hơn, nhanh hơn.
Matteo Italia

2
@MatteoItalia Yup. Và cũng có những cải tiến dự đoán chi nhánh, và có lẽ tôi không biết nhiều hơn nữa. Bên ngoài bộ xử lý, chúng tôi cũng có xe buýt nhanh hơn, bộ nhớ nhanh hơn, đĩa nhanh hơn và các giao thức liên quan, v.v.
Bob

2
Bạn đã đề cập rằng các vấn đề liên quan đến "giới hạn cứng" của tốc độ ánh sáng sẽ xảy ra ở "đâu đó quá 20 GHz". Tính toán của bạn không đúng; tín hiệu điện truyền đi ở tốc độ thấp hơn tốc độ ánh sáng, tùy thuộc vào hình dạng của dây.
Giulio Muscarello

5
Vui lòng không sử dụng "số mũ" khi có những từ hoàn toàn chính xác hơn cho mối quan hệ này (bậc hai, khối, v.v.) ...
Oliver Charlesworth

7
@OliCharlesworth Vui lòng đọc chú thích. Đây chính xác là lý do tại sao chú thích ở đó và tại sao tôi có tài liệu tham khảo về nó ở khắp mọi nơi exponentialđược sử dụng. Đây là một cách sử dụng hoàn toàn hợp lệ của từ này, và nó sẽ tiếp tuyến đến điểm của câu trả lời này để bị sa lầy vào các chi tiết toán học. Nếu bạn thực sự muốn thử "sửa" nó, vui lòng đề xuất chỉnh sửa. Nó sẽ không phụ thuộc vào tôi nếu nó được chấp nhận hay không, miễn là bạn không thay đổi đáng kể ý nghĩa.
Bob

14

Vật lý là vật lý. Chúng ta không thể tiếp tục đóng gói nhiều bóng bán dẫn vào không gian nhỏ hơn mãi mãi. Tại một số điểm, nó trở nên nhỏ đến mức bạn phải đối phó với những thứ tào lao lượng tử kỳ lạ. Tại một số điểm, chúng tôi không thể đóng gói gấp đôi số bóng bán dẫn trong một năm như trước đây (đó là luật của moore).

Tốc độ đồng hồ thô không có nghĩa gì. Pentium M cũ của tôi chỉ bằng một nửa tốc độ xung nhịp của CPU máy tính để bàn hiện đại (nhưng ở nhiều khía cạnh nhanh hơn ) - và các hệ thống hiện đại hầu như không đạt tới tốc độ của các hệ thống 10 năm trước (và rõ ràng là nhanh hơn). Về cơ bản, 'chỉ' tăng tốc độ đồng hồ không mang lại hiệu suất thực sự trong nhiều trường hợp. Nó có thể giúp ích trong một số hoạt động đơn lẻ, nhưng tốt hơn hết bạn nên dành ngân sách thiết kế cho hiệu quả tốt hơn về mọi thứ khác.

Nhiều lõi cho phép bạn thực hiện hai hoặc nhiều việc cùng một lúc, vì vậy bạn không cần đợi một điều hoàn thành cho việc tiếp theo. Về ngắn hạn, bạn có thể chỉ cần đưa hai lõi hiện có vào cùng một gói (ví dụ với Pentium D s và MCM của chúng, là một thiết kế chuyển tiếp) và bạn có một hệ thống nhanh gấp đôi. Hầu hết các triển khai hiện đại đều chia sẻ những thứ như bộ điều khiển bộ nhớ.

Bạn cũng có thể xây dựng thông minh hơn theo những cách khác nhau. ARM làm Big-Little - có 4 lõi năng lượng thấp 'yếu' hoạt động cùng với 4 lõi mạnh hơn để bạn có được cả hai thế giới tốt nhất. Intel cho phép bạn giảm ga (để có hiệu suất năng lượng tốt hơn) hoặc ép xung các lõi cụ thể (để có hiệu suất xử lý đơn tốt hơn). Tôi nhớ AMD làm một cái gì đó với các mô-đun.

Bạn cũng có thể di chuyển những thứ như bộ điều khiển bộ nhớ (để bạn có độ trễ thấp hơn) và các chức năng liên quan đến IO (CPU hiện đại không có cầu bắc) cũng như video (quan trọng hơn với máy tính xách tay và thiết kế AIW). Nó có ý nghĩa hơn để làm những điều này hơn là "chỉ" tiếp tục tăng tốc độ đồng hồ.

Tại một số điểm, nhiều lõi hơn có thể không hoạt động - mặc dù GPU có hàng trăm lõi.

Đa lõi như vậy cho phép máy tính hoạt động thông minh hơn theo tất cả các cách này.


1
Cần lưu ý rằng các lõi GPU được thiết kế cho một mục đích rất cụ thể, trái ngược với các lõi CPU vốn là một mục đích chung. Cũng cần lưu ý rằng các bo mạch card màn hình lớn hơn đáng kể so với CPU (có nghĩa là ngay cả khi các lõi không sử dụng tất cả các phòng trên bo mạch, chúng vẫn có nhiều chỗ hơn để tản nhiệt).
dùng2366842

3
đúng, nhưng đó là một ví dụ trong đó bạn tăng quy mô lõi lên rất nhiều. Tôi có thể sẽ xem lại câu trả lời này vào buổi sáng
Journeyman Geek

"Bạn chỉ có thể đưa hai lõi hiện có vào cùng một gói". Nhưng làm thế nào họ đạt được nó mà không cần sử dụng nhiều không gian hơn cho các lõi bổ sung ?! Ma thuật? Kỳ lân? Chó con? (Theo hình đại diện của bạn, tôi nghi ngờ cái sau)
Chàng trai người Brazil đó

Pentium Ds về cơ bản là en.wikipedia.org/wiki/Pentium_D
Journeyman Geek

6
wierd quantum crap+ 1 cho một mình!
Dave

9

Câu trả lời đơn giản

Câu trả lời đơn giản nhất cho câu hỏi

Tại sao "không thêm lõi" phải đối mặt với các giới hạn vật lý tương tự như "làm cho CPU nhanh hơn"?

thực sự được tìm thấy trong một phần khác của câu hỏi của bạn:

Tôi hy vọng kết luận là "do đó, chúng ta sẽ phải có máy tính lớn hơn hoặc chạy các chương trình của chúng tôi trên nhiều máy tính."

Về bản chất, nhiều lõi giống như có nhiều "máy tính" trên cùng một thiết bị.

Câu trả lời phức tạp

"Lõi" là một phần của máy tính thực sự xử lý các hướng dẫn (thêm, nhân, "và" ing, v.v.). Một lõi chỉ có thể thực hiện một lệnh duy nhất tại một thời điểm. Nếu bạn muốn máy tính của mình "mạnh hơn", có hai điều cơ bản bạn có thể làm:

  1. Tăng thông lượng (tăng tốc độ xung nhịp, giảm kích thước vật lý, v.v.)
  2. Sử dụng nhiều lõi hơn trong cùng một máy tính

Các giới hạn vật lý đối với # 1 chủ yếu là nhu cầu thải nhiệt do quá trình xử lý và tốc độ của một electron trong mạch. Khi bạn tách một số bóng bán dẫn đó thành một lõi riêng biệt, bạn sẽ giảm bớt vấn đề nhiệt ở mức độ lớn.

Có một hạn chế quan trọng đối với # 2: bạn phải có khả năng phân chia vấn đề của mình thành nhiều vấn đề độc lập và sau đó kết hợp câu trả lời. Trên một máy tính cá nhân hiện đại, đây thực sự không phải là vấn đề, vì có vô số vấn đề độc lập tất cả ganh đua thời gian tính toán với (các) lõi dù thế nào đi nữa. Nhưng khi thực hiện các vấn đề tính toán chuyên sâu, nhiều lõi chỉ thực sự có ích nếu vấn đề có thể tuân theo đồng thời.


'nhiều lõi giống như có nhiều "máy tính" trên cùng một thiết bị.' Phải, nhưng sự nhầm lẫn của tôi là, làm thế nào để bạn phù hợp với tất cả chúng trong đó? Tôi nghĩ rằng "chúng ta không thể đi nhanh hơn" là một triệu chứng của "chúng ta không thể thu nhỏ mọi thứ nhiều hơn nữa."
Nathan Long

Nhiều lõi DO chiếm nhiều không gian hơn, chip ngày càng lớn hơn. Gánh nặng đã được chuyển từ CPU sang kỹ sư phần mềm ... để thực sự chạy nhanh hơn trên một trong những cpus đa lõi khổng lồ này, phần mềm phải được viết để bạn có thể cắt công việc của nó xuống một nửa và làm cả hai nửa độc lập.
James

1
Một câu trả lời ngắn gọn là mức tiêu thụ năng lượng tỷ lệ thuận với khối tốc độ đồng hồ. Với tín hiệu truyền đi khoảng cách xa hơn, ảo ảnh luồng đơn sẽ khó duy trì hơn. Câu trả lời chi tiết: amazon.com/
Rob

6

Tại sao "không thêm lõi" phải đối mặt với các giới hạn vật lý tương tự như "làm cho CPU nhanh hơn"?

Chúng phải đối mặt với những hạn chế vật lý tương tự, nhưng chuyển sang thiết kế đa lõi cho chúng ta một chút không gian thở trước khi chúng ta chạm vào một số trong số chúng. Đồng thời các vấn đề khác gây ra bởi những hạn chế đó phát sinh, nhưng chúng dễ khắc phục hơn.

Sự thật 1: Tiêu thụ điện năng và nhiệt phát ra tăng nhanh hơn năng lượng tính toán. Đẩy CPU từ 1 GHz lên 2 GHZ sẽ đẩy mức tiêu thụ năng lượng từ 20 W lên 80 W, cùng với nhiệt lượng tiêu tan. (Tôi mới tạo nên những con số này, nhưng nó hoàn toàn hoạt động)

Sự thật 2: Mua CPU thứ hai và chạy cả hai tốc độ 1 GHz sẽ tăng gấp đôi sức mạnh tính toán của bạn. Hai CPU chạy ở tốc độ 1 GHz có thể xử lý cùng một lượng dữ liệu như một CPU 2 GHz, nhưng mỗi CPU chỉ tiêu thụ 20 W năng lượng, tổng cộng là 40 W.

Lợi nhuận: Nhân đôi số CPU thay vì tần số xung nhịp giúp chúng tôi tiết kiệm năng lượng và chúng tôi không còn gần với "hàng rào tần số" như trước.

Vấn đề: Bạn phải phân chia công việc giữa hai CPU và kết hợp kết quả sau đó.

Nếu bạn có thể giải quyết vấn đề này trong thời gian chấp nhận được và sử dụng ít năng lượng hơn mức bạn vừa tiết kiệm, thì bạn vừa thu được lợi nhuận nhờ sử dụng nhiều CPU.

Bây giờ bạn chỉ cần hợp nhất hai CPU thành một CPU lõi kép và bạn đã về nhà. Điều này có lợi vì các lõi có thể chia sẻ một số phần của CPU, ví dụ như bộ đệm ( câu trả lời liên quan ).


Chúng tôi tiếp tục đạt các giới hạn vật lý theo 1000 cách khác nhau, kích thước của khuôn (đối với đa lõi dẫn đến quy trình sản xuất nhỏ hơn), kích thước của mobo (đối với nhiều cpu), các ampe được vẽ theo dấu vết (cả hai). không giống như bạn có thể đặt 2 cpus trên m-atx hoặc 4 và bộ nhớ trên bảng atx và những thiết kế đó phải thay đổi quyết định. Tôi đồng ý với phần còn lại.
Rostol

@Rostol Đó là một điểm tốt, tôi đã chỉnh sửa câu trả lời.
gronostaj

5

Câu chuyện dài: Tăng tốc các lõi đơn đã đạt đến giới hạn của nó, vì vậy chúng tôi tiếp tục thu nhỏ chúng và thêm chúng, cho đến khi đạt đến giới hạn của nó hoặc chúng tôi có thể thay đổi thành các vật liệu tốt hơn (hoặc đạt được một bước đột phá cơ bản lật đổ công nghệ đã thành lập, đại loại như kích thước nhà, thực sự làm việc, tính toán lượng tử).

Tôi nghĩ vấn đề này là đa chiều và sẽ cần một số chữ viết để vẽ nên bức tranh hoàn chỉnh hơn:

  1. Giới hạn vật lý (áp đặt bởi vật lý thực tế): Giống như tốc độ ánh sáng, cơ học lượng tử, tất cả chỉ có thế.
  2. Vấn đề sản xuất: Làm thế nào để chúng tôi sản xuất các cấu trúc nhỏ hơn với độ chính xác cần thiết? Các vấn đề liên quan đến vật liệu thô, vật liệu được sử dụng để xây dựng các mạch điện, độ bền.
  3. Các vấn đề kiến ​​trúc: Nhiệt, suy luận, tiêu thụ điện, vv
  4. Vấn đề kinh tế: Cách rẻ nhất để có được hiệu suất cao hơn cho người dùng?
  5. Usecase và nhận thức của người dùng về hiệu suất.

Có thể có nhiều hơn nữa. Một CPU đa năng đang cố gắng tìm giải pháp để xáo trộn tất cả các yếu tố này (và hơn thế nữa) thành một con chip sản xuất hàng loạt phù hợp với 93% đối tượng trên thị trường. Như bạn thấy, điểm cuối cùng là điểm quan trọng nhất, nhận thức của khách hàng, xuất phát trực tiếp từ cách khách hàng sử dụng CPU.

Hãy tự hỏi ứng dụng thông thường của bạn là gì? Có thể: 25 tab Firefox, mỗi tab phát một số quảng cáo ở chế độ nền, trong khi bạn đang nghe nhạc, tất cả trong khi chờ công việc xây dựng của bạn, bạn đã bắt đầu khoảng 2 giờ trước để kết thúc. Đó là rất nhiều công việc phải làm, và bạn vẫn muốn có một trải nghiệm suôn sẻ. Nhưng CPU của bạn có thể xử lý MỘT nhiệm vụ tại thời điểm đó! Về điều duy nhất. Vì vậy, những gì bạn làm là, bạn chia nhỏ mọi thứ và xếp hàng dài và mọi người đều có phần của riêng mình và tất cả đều hạnh phúc. Ngoại trừ bạn vì tất cả mọi thứ trở nên chậm trễ và không suôn sẻ chút nào.

Vì vậy, bạn tăng tốc CPU của mình lên, để thực hiện nhiều thao tác hơn trong cùng một khoảng thời gian. Nhưng như bạn đã nói: nhiệt và tiêu thụ điện năng. Và đó là nơi chúng ta đến với phần nguyên liệu. Silicon trở nên dẫn điện hơn khi nó nóng hơn, có nghĩa là dòng điện chạy qua vật liệu nhiều hơn khi bạn làm nóng nó. Các bóng bán dẫn có mức tiêu thụ điện năng cao hơn khi bạn chuyển đổi chúng nhanh hơn. Ngoài ra tần số cao làm cho nhiễu xuyên âm giữa các dây ngắn trở nên tồi tệ hơn. Vì vậy, bạn thấy, cách tăng tốc độ tiếp cận sẽ dẫn đến một "cuộc khủng hoảng". Miễn là chúng ta không có nguyên liệu thô tốt hơn silicon hoặc bóng bán dẫn tốt hơn nhiều, chúng ta sẽ bị mắc kẹt ở nơi chúng ta đang ở với tốc độ lõi đơn.

Điều này đưa chúng tôi trở lại nơi chúng tôi bắt đầu. Bắt mọi thứ, song song. Hãy thêm một lõi khác. Bây giờ chúng tôi thực sự có thể làm hai việc cùng một lúc. Vì vậy, hãy làm mát mọi thứ một chút và chỉ cần viết phần mềm có thể phân chia công việc của nó thành hai lõi, ít mạnh hơn nhưng nhiều chức năng hơn. Cách tiếp cận này có hai vấn đề chính (bên cạnh đó cần có thời gian để thế giới phần mềm thích nghi với nó): 1. Làm cho chip lớn hơn hoặc làm cho lõi riêng lẻ nhỏ hơn. 2. Một số nhiệm vụ đơn giản là không thể chia thành hai phần chạy đồng thời. Tiếp tục thêm lõi miễn là bạn có thể thu nhỏ chúng, hoặc làm cho chip lớn hơn và giữ cho vấn đề nhiệt ở mức thấp. Oh và chúng ta đừng quên khách hàng. Nếu chúng ta thay đổi các giai đoạn của chúng ta, các ngành công nghiệp phải thích nghi. Xem tất cả những điều "mới" sáng bóng mà ngành di động đã đưa ra.

Vâng, chiến lược này S Đạt đạt đến giới hạn của nó! Và Intel biết điều này, đó là lý do tại sao họ nói rằng tương lai nằm ở một nơi khác. Nhưng họ sẽ tiếp tục làm nó miễn là nó rẻ và hiệu quả và có thể làm được.

Cuối cùng nhưng không kém phần quan trọng: vật lý. Cơ học lượng tử sẽ hạn chế thu nhỏ chip. Tốc độ ánh sáng chưa phải là giới hạn, vì các electron không thể di chuyển với tốc độ ánh sáng trong silicon, thực tế nó chậm hơn thế nhiều. Ngoài ra, chính tốc độ thúc đẩy đặt nắp cứng vào tốc độ được cung cấp bởi một vật liệu. Giống như âm thanh di chuyển trong nước nhanh hơn trong không khí, các xung điện truyền đi nhanh hơn, ví dụ, graphene hơn trong silicon. Điều này dẫn trở lại nguyên liệu. Graphene là tuyệt vời như xa như tính chất điện của nó đi. Nó sẽ tạo ra một vật liệu tốt hơn nhiều để xây dựng CPU, thật không may, rất khó để sản xuất với số lượng lớn.


2

Nói (như một ví dụ không thực tế, nhưng vẫn nên hiểu rõ) bạn có CPU chạy ở 100F. Làm thế nào đa lõi thường hoạt động là bằng cách lấy tần số xung nhịp mà CPU đang chạy ở 100F, và hạ thấp nó, do đó làm giảm tốc độ. Bởi vì nó không còn chạy nóng nữa, họ có thể đặt thứ hai, thứ 3 hoặc thậm chí thứ 4 ngay bên cạnh mà không ảnh hưởng đáng kể đến nhiệt độ chung của CPU và thu được lợi ích từ đa lõi. Điều này rõ ràng đi kèm với một số chi phí, vì các lõi vẫn phải được kiểm soát từ một nơi, bởi một lõi. Bạn càng thêm nhiều lõi, càng có nhiều chi phí hoạt động. Đối với các lõi đơn, bạn càng tăng tốc độ cho chúng, chúng càng tạo ra nhiều nhiệt. Điều này rõ ràng có những hạn chế về thể chất (tức là sau một thời điểm nhất định, nó bắt đầu trở nên bất lợi cho hiệu suất,

Khi thời gian trôi qua, họ đã tìm ra cách để giảm kích thước vật lý của CPU, đó là lý do tại sao chúng tôi chưa thực sự gặp phải yêu cầu cần thêm dung lượng, tuy nhiên, ví dụ, CPU 16 lõi không thực sự tồn tại (tại thời gian ghi) bên ngoài thiết bị cấp máy chủ do giới hạn kích thước vật lý, vì CPU cấp máy chủ lớn hơn đáng kể so với cấp tiêu dùng.


2

CPU = Động cơ xe hơi: Dễ dàng tạo ra một chiếc xe mạnh mẽ hơn với 16 van, tức là một chiếc lamborghini, hơn một chiếc xe có vòng tua cao sẽ có một van / xi lanh khổng lồ ở tốc độ 100 000 vòng / phút.

Lý do là vật lý và hóa học, silicon cần được thay thế bằng nhiên liệu tên lửa tính toán để thay đổi sự cân bằng giữa số lượng lõi và tốc độ lõi.


2

Tôi muốn nói rằng hạn chế chính đối với các giới hạn công suất tính toán chủ yếu liên quan đến giới hạn về tốc độ chúng ta có thể di chuyển electron qua một mạch ( tốc độ trôi của electron nhẹ ). Có nhiều yếu tố như bạn đề cập.

Thêm các lõi bổ sung sẽ không làm cho bộ xử lý nhanh hơn, mặc dù nó sẽ cho phép nó xử lý nhiều hơn trong cùng một khoảng thời gian.

Định luật Moore là một bài đọc rất thú vị và nhiều thông tin. Câu nói này đặc biệt có liên quan ở đây:

Người ta cũng có thể hạn chế hiệu suất lý thuyết của một "máy tính xách tay cuối cùng" khá thực tế với khối lượng một kg và thể tích một lít. Điều này được thực hiện bằng cách xem xét tốc độ ánh sáng, thang lượng tử, hằng số hấp dẫn và hằng số Boltzmann, cho hiệu suất 5.4258 ⋅ 10 50 hoạt động logic mỗi giây trên khoảng 10 31 bit.


2
Ngẫu nhiên, các electron thực sự di chuyển rất chậm ("vận tốc trôi"), theo thứ tự milimet trên giây IIRC. Bạn đang đề cập nhiều hơn đến tốc độ lan truyền của điện trường .
Bob

2
Tôi biết tôi không dám hành động như tôi hiểu vật lý trong một vấn đề nhỏ nhất. :) Cảm ơn bạn đã sửa chữa / thông báo cho tôi về điều này mặc dù.
Jredd

Ngoài ra, tốc độ xung nhịp thực tế trong đó tốc độ lan truyền sẽ có hiệu ứng đáng kể là khoảng hơn 10 GHz. Có những lý do khác mà bộ xử lý hiện đại thích nhiều lõi hơn so với đồng hồ cao hơn.
Bob

1

Câu chuyện dài thậm chí còn ngắn hơn:

Chúng tôi thực sự không cần CPU nhanh hơn. Ngoài một vài ứng dụng chuyên dụng cao * CPU đã không còn là nút cổ chai trong nhiều năm - tất cả các bit ngoại vi như bộ nhớ, lưu trữ và mạng thường khiến CPU phải chờ hàng triệu chu kỳ xung nhịp trong đó nó có thể làm những việc khác. Lõi thứ hai có thể làm nhiều "việc khác" hơn, do đó tạo ra nhận thức về hiệu suất cao hơn cho người dùng.

Nhiều thiết bị di động, máy tính xách tay, vv sẽ ép xung CPU để có thời lượng pin tốt hơn và nhiệt độ mát hơn. Không có nhiều động lực để phát triển lõi ARM 3,5 GHz nếu khách hàng chính của bạn chạy nó ở mức 1,3 GHz.

  • những sử dụng chuyên dụng đó không mua đủ để chứng minh sự phát triển của lõi 5GHz. Họ cũng không quan tâm đến sức nóng hoặc sức mạnh - mua nhanh nhất có sẵn, ép xung nó và bắt vít trên một bộ tản nhiệt làm mát bằng nước với kích thước của một chiếc máy nướng bánh mì.

1
Đó không phải là "nhận thức", mà là "độ trễ tốt hơn". Tôi nghĩ rằng đây là một trong những vấn đề chính mà chúng ta có; một thông lượng đơn luồng mạnh mẽ bằng mọi giá. Các hệ điều hành tiêu dùng chưa được định hướng theo thời gian thực, cũng không định hướng cơ bản cho sự tương tranh hoặc song song.
Rob

@peter Bạn làm một điểm rất tốt, và cảm ơn vì đã giải thích điều đó. Đó là điều tôi cần nhớ khi làm lập trình viên. :) Tuy nhiên, đây vẫn là một vấn đề phụ cho mục đích của câu hỏi này. Câu hỏi của tôi là về lý do tại sao chúng ta không thể có được tốc độ đồng hồ nhanh hơn; câu trả lời của bạn là về lý do tại sao chúng tôi hiện không cần.
Nathan Long

1
@NathanLong "không thể" và "không cần" được liên kết. Bạn không thể có được bộ xử lý nhanh hơn vì không ai sẵn sàng đầu tư một tỷ hoặc năm cần thiết để phát triển nó (dù sao 5GHz cũng có thể đẩy các giới hạn vật lý). Không ai sẵn sàng đầu tư vì không có thị trường thực tế khi tốc độ xử lý chung đang có xu hướng giảm - một số máy tính để bàn sản xuất hiện tại thuộc loại 1,5 GHz (đứng đầu dòng 10 năm trước) vì nó rẻ hơn, mát hơn và đủ nhanh cho thị trường đó bộ phận.
peter

1

Câu trả lời ngắn gọn và đơn giản:

Tại sao không đi từ 1 xe tải chở hàng lên 100 xe tải gấp 100 lần, phải đối mặt với những hạn chế về thể chất tương tự như đi từ 1 xe tải chạy với tốc độ 100mph đến 1 xe tải ở tốc độ 10.000mph?

Trả lời câu hỏi đó, và câu hỏi của bạn cũng sẽ được trả lời. Khái niệm này gần giống nhau.


1

Tôi nghĩ một yếu tố khác là nhiệt độ. Nếu bạn tăng tần số xung nhịp, nhiệt độ lõi sẽ tăng lên. Nếu bạn thêm nhiều lõi, mặc dù mức tiêu thụ điện tăng lên, điều này được phân phối trên các lõi, do đó nhiệt độ vẫn giữ nguyên (như nếu bạn thêm hai chất lỏng nóng, ở cùng nhiệt độ với nhau, nhiệt độ vẫn giữ nguyên ).

Một lý do khác là việc tăng tần số xung nhịp có xu hướng tăng mức tiêu thụ năng lượng bằng một bình phương của yếu tố bạn tăng tần số (tùy thuộc vào các rào cản khác mà bạn đang gặp phải tại một điểm nhất định). Do đó, việc tăng tần số xung nhịp làm tăng mức tiêu thụ năng lượng của một hình vuông, trong khi việc thêm nhiều lõi chỉ làm tăng tuyến tính.


0

Câu trả lời cho lý do tại sao "không thêm lõi" phải đối mặt với các giới hạn vật lý tương tự như câu hỏi "làm cho CPU nhanh hơn" là một hệ thống đa lõi phải đối mặt với các giới hạn chính xác giống như một CPU lõi đơn. Chúng tôi đã đạt đến một điểm mà chúng tôi thực sự không có tùy chọn để làm cho một hệ thống lõi đơn nhanh hơn, vì vậy chúng tôi đã làm cho nó để chúng tôi có thể làm nhiều việc hơn cùng một lúc. Những thách thức về kích thước và sự phối hợp hiện đang dễ giải quyết hơn là đi nhanh hơn. Nhược điểm là nếu một nhiệm vụ không thể được chia thành từng mảnh, chúng ta có thể sẽ không đi nhanh hơn nhiều so với một hệ thống lõi đơn.


0

Bạn không thể tạo CPU nhanh hơn bằng cách nhồi nhét vào nhiều cổng hơn. Cuối cùng, các lệnh phải được thực thi và mỗi lệnh yêu cầu một số thao tác "chuyển đổi". Có các giới hạn vật lý cơ bản (cơ học lượng tử - Nguyên lý không chắc chắn) khiến cho việc tăng "tốc độ xung nhịp" của CPU vượt quá tốc độ của các hệ thống hàng đầu hiện tại rất khó khăn.

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.