Tại sao các thế hệ bộ xử lý mới hơn nhanh hơn ở cùng tốc độ xung nhịp?


38

Ví dụ, tại sao Core i5 lõi kép 2,66 GHz lại nhanh hơn Core 2 Duo 2,66 GHz, cũng là lõi kép?

Đây có phải là do các hướng dẫn mới hơn có thể xử lý thông tin trong ít chu kỳ đồng hồ hơn? Những thay đổi kiến ​​trúc khác có liên quan?

Câu hỏi này xuất hiện thường xuyên và câu trả lời thường giống nhau. Bài này có nghĩa là để cung cấp một câu trả lời dứt khoát, chính tắc cho câu hỏi này. Hãy chỉnh sửa các câu trả lời để thêm chi tiết bổ sung.



Wow cả đột phá và david đều là những câu trả lời tuyệt vời ... Tôi không biết nên chọn câu nào là đúng: P
agz

Ngoài ra tập lệnh tốt hơn và đăng ký nhiều hơn. ví dụ MMX (rất cũ bây giờ) và x86_64 (Khi AMD phát minh ra x86_64, họ đã thêm một số cải tiến về khả năng tương thích, khi ở chế độ 64 bit. Dù sao họ cũng nhận ra rằng khả năng so sánh sẽ bị phá vỡ).
ctrl-alt-delor 21/07/2015

Đối với những cải tiến lớn thực sự của kiến ​​trúc x86, cần có một bộ hướng dẫn mới, nhưng nếu điều đó được thực hiện thì nó sẽ không còn là x86 nữa. Nó sẽ là PowerPC, mips, Alpha, Mạnh hoặc ARM.
ctrl-alt-delor

Câu trả lời:


30

Không phải vì hướng dẫn mới hơn thường. Đó chỉ là vì bộ xử lý yêu cầu ít chu kỳ lệnh hơn để thực hiện cùng một lệnh. Điều này có thể vì một số lượng lớn lý do:

  1. Bộ nhớ cache lớn có nghĩa là ít lãng phí thời gian chờ đợi bộ nhớ.

  2. Nhiều đơn vị thực thi hơn có nghĩa là ít thời gian chờ đợi để bắt đầu hoạt động trên một lệnh.

  3. Dự đoán chi nhánh tốt hơn có nghĩa là ít lãng phí thời gian hơn khi thực hiện các hướng dẫn thực hiện mà không bao giờ thực sự cần phải thực hiện.

  4. Cải tiến đơn vị thực thi có nghĩa là ít thời gian hơn để chờ hướng dẫn hoàn thành.

  5. Đường ống ngắn hơn có nghĩa là đường ống làm đầy nhanh hơn.

Và như vậy.


Tôi tin rằng kiến ​​trúc Core có đường ống 14-15 giai đoạn ( ref ) và Nehalem / Sandy Bridge có đường ống khoảng 14-17 ( ref ).
Đột phá

Các môn học ngắn hơn sẽ dễ dàng hơn để giữ đầy đủ và giảm các hình phạt của các đường ống xả. Đường ống dài hơn thường cho phép tốc độ đồng hồ cao hơn.
David Schwartz

Ý tôi là, tôi nghĩ rằng độ sâu của đường ống vẫn giữ nguyên hoặc tăng lên . Cũng trong Hướng dẫn Dev Dev của Intel 64 và IA-32 , đề cập cuối cùng về thay đổi đường ống là trong Vol. 1, Ch. 2.2.3 / 2.2.4 (cấu trúc vi mô Intel Core / Atom).
Đột phá

2
Nỗ lực tăng tốc độ đồng hồ đã dẫn đến các đường ống dài hơn. Điều đó thật nực cười (có đến 31 giai đoạn!) Cho đến cuối kỷ nguyên NetBurst. Ngày nay, đó là một quyết định kỹ thuật tinh tế với cả ưu điểm và nhược điểm.
David Schwartz

cũng cải tiến dự đoán chi nhánh, sắp xếp lại hướng dẫn / tối ưu hóa / cải tiến đơn vị mux, thu nhỏ (giảm nhiệt) và thiết kế khuôn (đường dẫn / mạch một lần cải tiến, v.v.), ...
Shaun Wilson

40

Thiết kế bộ xử lý để cung cấp hiệu suất cao không chỉ là tăng tốc độ xung nhịp. Có nhiều cách khác để tăng hiệu suất, được kích hoạt thông qua luật và công cụ của Moore để thiết kế bộ xử lý hiện đại.

Giá đồng hồ không thể tăng vô thời hạn.

  • Thoạt nhìn, có vẻ như bộ xử lý chỉ đơn giản thực hiện từng luồng hướng dẫn, với hiệu suất tăng đạt được thông qua tốc độ xung nhịp cao hơn. Tuy nhiên, chỉ tăng tốc độ xung nhịp là không đủ. Tiêu thụ điện năng và sản lượng nhiệt tăng khi tốc độ đồng hồ tăng.

  • Với tốc độ xung nhịp rất cao, việc tăng đáng kể điện áp lõi CPU trở nên cần thiết. Do TDP tăng theo bình phương của lõi V , cuối cùng chúng ta đạt đến điểm tiêu thụ năng lượng quá mức, sản lượng nhiệt và yêu cầu làm mát ngăn chặn tốc độ xung nhịp tăng thêm. Giới hạn này đã đạt được vào năm 2004, vào thời của Pentium 4 Prescott . Trong khi những cải tiến gần đây về hiệu suất năng lượng đã giúp ích, việc tăng đáng kể tốc độ xung nhịp không còn khả thi. Xem: Tại sao các nhà sản xuất CPU ngừng tăng tốc độ xung nhịp của bộ xử lý của họ?

Đồ thị tốc độ đồng hồ chứng khoán trong các máy tính đam mê tiên tiến trong những năm qua.
Đồ thị tốc độ đồng hồ chứng khoán trong các máy tính đam mê tiên tiến trong những năm qua. Nguồn hình ảnh

  • Thông qua định luật Moore , một quan sát cho biết số lượng bóng bán dẫn trên một mạch tích hợp tăng gấp đôi cứ sau 18 đến 24 tháng, chủ yếu là do co ngót , một loạt các kỹ thuật làm tăng hiệu suất đã được thực hiện. Những kỹ thuật này đã được cải tiến và hoàn thiện qua nhiều năm, cho phép thực hiện nhiều hướng dẫn hơn trong một khoảng thời gian nhất định. Những kỹ thuật này được thảo luận dưới đây.

Dường như các luồng hướng dẫn tuần tự thường có thể được song song.

  • Mặc dù một chương trình có thể chỉ đơn giản bao gồm một loạt các hướng dẫn để thực hiện lần lượt từng lệnh khác, những hướng dẫn này hoặc các phần của chúng có thể được thực thi đồng thời. Điều này được gọi là song song mức hướng dẫn (ILP) . Khai thác ILP là rất quan trọng để đạt được hiệu suất cao và các bộ xử lý hiện đại sử dụng nhiều kỹ thuật để làm như vậy.

Đường ống phá vỡ các hướng dẫn thành các phần nhỏ hơn có thể được thực hiện song song.

  • Mỗi lệnh có thể được chia thành một chuỗi các bước, mỗi bước được thực hiện bởi một phần riêng biệt của bộ xử lý. Hướng dẫn đường ống cho phép nhiều hướng dẫn đi qua các bước này lần lượt mà không phải đợi mỗi hướng dẫn hoàn thành. Pipelining cho phép tốc độ xung nhịp cao hơn: bằng cách hoàn thành một bước của mỗi hướng dẫn trong mỗi chu kỳ đồng hồ, sẽ cần ít thời gian hơn cho mỗi chu kỳ so với khi toàn bộ các hướng dẫn phải được hoàn thành một lần.

  • Các đường ống dẫn RISC cổ điển chứa năm giai đoạn: hướng dẫn lấy, hướng dẫn giải mã, thực hiện hướng dẫn, truy cập bộ nhớ, và writeback. Bộ xử lý hiện đại chia nhỏ việc thực hiện thành nhiều bước nữa, tạo ra một đường ống sâu hơn với nhiều giai đoạn hơn (và tăng tốc độ xung nhịp có thể đạt được vì mỗi giai đoạn nhỏ hơn và mất ít thời gian hơn để hoàn thành), nhưng mô hình này sẽ cung cấp hiểu biết cơ bản về cách thức hoạt động của đường ống.

Sơ đồ đường ống dẫn năm giai đoạn
Nguồn hình ảnh

Tuy nhiên, đường ống có thể đưa ra các mối nguy hiểm phải được giải quyết để đảm bảo thực hiện chương trình chính xác.

  • Bởi vì các phần khác nhau của mỗi lệnh đang được thực thi cùng một lúc, có thể xảy ra xung đột gây cản trở việc thực hiện đúng. Chúng được gọi là mối nguy hiểm . Có ba loại mối nguy hiểm: dữ liệu, cấu trúc và kiểm soát.

  • Nguy cơ dữ liệu xảy ra khi các hướng dẫn đọc và sửa đổi cùng một dữ liệu cùng một lúc hoặc sai thứ tự, có khả năng dẫn đến kết quả không chính xác. Nguy cơ cấu trúc xảy ra khi nhiều hướng dẫn cần sử dụng một phần cụ thể của bộ xử lý cùng một lúc. Các mối nguy kiểm soát xảy ra khi gặp một lệnh rẽ nhánh có điều kiện.

  • Những mối nguy hiểm này có thể được giải quyết theo nhiều cách khác nhau. Giải pháp đơn giản nhất là đơn giản là trì hoãn đường ống, tạm thời thực hiện một hoặc các hướng dẫn trong đường ống để đảm bảo kết quả chính xác. Điều này được tránh bất cứ khi nào có thể vì nó làm giảm hiệu suất. Đối với các mối nguy dữ liệu, các kỹ thuật như chuyển tiếp toán hạng được sử dụng để giảm các quầy hàng. Các mối nguy kiểm soát được xử lý thông qua dự đoán chi nhánh , đòi hỏi phải xử lý đặc biệt và được đề cập trong phần tiếp theo.

Dự đoán nhánh được sử dụng để giải quyết các mối nguy kiểm soát có thể phá vỡ toàn bộ đường ống.

  • Các mối nguy kiểm soát, xảy ra khi gặp phải một nhánh có điều kiện , đặc biệt nghiêm trọng. Các nhánh giới thiệu khả năng thực thi sẽ tiếp tục ở nơi khác trong chương trình chứ không chỉ đơn giản là hướng dẫn tiếp theo trong luồng lệnh, dựa trên việc một điều kiện cụ thể là đúng hay sai.

  • Bởi vì lệnh tiếp theo để thực thi không thể được xác định cho đến khi điều kiện nhánh được ước tính, không thể chèn bất kỳ lệnh nào vào đường ống sau khi một nhánh vắng mặt. Do đó, đường ống được làm trống ( xả ) có thể lãng phí gần như nhiều chu kỳ đồng hồ như có các giai đoạn trong đường ống. Các nhánh có xu hướng xảy ra rất thường xuyên trong các chương trình, vì vậy các mối nguy kiểm soát có thể ảnh hưởng nghiêm trọng đến hiệu suất của bộ xử lý.

  • Dự đoán chi nhánh giải quyết vấn đề này bằng cách đoán xem một chi nhánh sẽ được thực hiện. Cách đơn giản nhất để làm điều này chỉ đơn giản là giả định rằng các nhánh luôn được lấy hoặc không bao giờ lấy. Tuy nhiên, bộ xử lý hiện đại sử dụng các kỹ thuật tinh vi hơn nhiều để có độ chính xác dự đoán cao hơn. Về bản chất, bộ xử lý theo dõi các nhánh trước và sử dụng thông tin này theo bất kỳ cách nào để dự đoán lệnh tiếp theo sẽ thực thi. Đường ống sau đó có thể được cung cấp với các hướng dẫn từ vị trí chính xác dựa trên dự đoán.

  • Tất nhiên, nếu dự đoán là sai, bất kỳ hướng dẫn nào đã được đưa qua đường ống sau khi chi nhánh phải được loại bỏ, do đó làm trôi đường ống. Do đó, độ chính xác của bộ dự báo nhánh trở nên ngày càng quan trọng khi các đường ống ngày càng dài hơn. Các kỹ thuật dự đoán chi nhánh cụ thể nằm ngoài phạm vi của câu trả lời này.

Bộ nhớ cache được sử dụng để tăng tốc truy cập bộ nhớ.

  • Bộ xử lý hiện đại có thể thực thi các hướng dẫn và xử lý dữ liệu nhanh hơn nhiều so với chúng có thể được truy cập trong bộ nhớ chính. Khi bộ xử lý phải truy cập RAM, việc thực thi có thể bị đình trệ trong thời gian dài cho đến khi dữ liệu có sẵn. Để giảm thiểu hiệu ứng này, các vùng bộ nhớ tốc độ cao nhỏ được gọi là bộ nhớ cache được đưa vào bộ xử lý.

  • Do không gian hạn chế có sẵn trên bộ xử lý chết, bộ nhớ cache có kích thước rất hạn chế. Để tận dụng tối đa khả năng hạn chế này, cache chỉ lưu trữ dữ liệu gần đây nhất hoặc thường xuyên truy cập ( địa phương tạm thời ). Vì các truy cập bộ nhớ có xu hướng được phân cụm trong các khu vực cụ thể ( địa phương không gian ), các khối dữ liệu gần những gì được truy cập gần đây cũng được lưu trữ trong bộ đệm. Xem: Địa phương tham khảo

  • Bộ nhớ cache cũng được tổ chức theo nhiều cấp độ khác nhau để tối ưu hóa hiệu suất vì bộ nhớ cache lớn hơn có xu hướng chậm hơn bộ nhớ cache nhỏ hơn. Ví dụ: bộ xử lý có thể có bộ đệm cấp 1 (L1) chỉ có kích thước 32 KB, trong khi bộ đệm cấp 3 (L3) của nó có thể lớn vài megabyte. Kích thước của bộ đệm, cũng như tính kết hợp của bộ đệm, ảnh hưởng đến cách bộ xử lý quản lý việc thay thế dữ liệu trên bộ đệm đầy đủ, ảnh hưởng đáng kể đến hiệu suất đạt được thông qua bộ đệm.

Thực hiện không theo thứ tự làm giảm các quầy hàng do các mối nguy hiểm bằng cách cho phép các hướng dẫn độc lập thực hiện trước.

  • Không phải mọi hướng dẫn trong một luồng hướng dẫn đều phụ thuộc vào nhau. Ví dụ, mặc dù a + b = cphải được thực thi trước đó c + d = e, a + b = cd + e = fđộc lập và có thể được thực thi cùng một lúc.

  • Thực thi không theo thứ tự lợi dụng thực tế này để cho phép các lệnh khác, độc lập thực thi trong khi một lệnh bị đình trệ. Thay vì yêu cầu các hướng dẫn thực hiện lần lượt từng bước, lập lịch phần cứng được thêm vào để cho phép các hướng dẫn độc lập được thực hiện theo bất kỳ thứ tự nào. Các hướng dẫn được gửi đến một hàng đợi lệnh và được cấp cho phần thích hợp của bộ xử lý khi có sẵn dữ liệu cần thiết. Theo cách đó, các hướng dẫn bị kẹt khi chờ dữ liệu từ một hướng dẫn trước đó không kết hợp các hướng dẫn sau đó độc lập.

Sơ đồ thực hiện không theo thứ tự
Nguồn hình ảnh

  • Một số cấu trúc dữ liệu mới và mở rộng được yêu cầu để thực hiện thực hiện không theo thứ tự. Hàng đợi lệnh đã nói ở trên, trạm đặt trước , được sử dụng để giữ các hướng dẫn cho đến khi dữ liệu cần thiết để thực hiện có sẵn. Bộ đệm thứ tự lại (ROB) được sử dụng để theo dõi trạng thái của các hướng dẫn đang diễn ra, theo thứ tự mà chúng đã được nhận, để các hướng dẫn được hoàn thành theo đúng thứ tự. Một tệp đăng ký vượt quá số lượng các thanh ghi được cung cấp bởi chính kiến ​​trúc là cần thiết để đổi tên thanh ghi , giúp ngăn chặn các hướng dẫn độc lập khác trở nên phụ thuộc do nhu cầu chia sẻ bộ thanh ghi giới hạn do kiến ​​trúc cung cấp.

Kiến trúc siêu khối cho phép nhiều lệnh trong một luồng lệnh thực thi cùng một lúc.

  • Các kỹ thuật được thảo luận ở trên chỉ làm tăng hiệu suất của đường ống dẫn. Các kỹ thuật này không cho phép nhiều hơn một hướng dẫn được hoàn thành trong mỗi chu kỳ đồng hồ. Tuy nhiên, thường có thể thực hiện song song các lệnh riêng lẻ trong một luồng lệnh, chẳng hạn như khi chúng không phụ thuộc vào nhau (như đã thảo luận trong phần thực hiện không theo thứ tự ở trên).

  • Các kiến ​​trúc Superscalar tận dụng sự song song ở cấp độ hướng dẫn này bằng cách cho phép các hướng dẫn được gửi đến nhiều đơn vị chức năng cùng một lúc. Bộ xử lý có thể có nhiều đơn vị chức năng của một loại cụ thể (như ALU số nguyên) và / hoặc các loại đơn vị chức năng khác nhau (chẳng hạn như đơn vị dấu phẩy động và số nguyên) mà các lệnh có thể được gửi đồng thời.

  • Trong bộ xử lý siêu khối, các hướng dẫn được lên lịch như trong một thiết kế không theo thứ tự, nhưng hiện có nhiều cổng vấn đề , cho phép các hướng dẫn khác nhau được ban hành và thực thi cùng một lúc. Mạch giải mã lệnh mở rộng cho phép bộ xử lý đọc một số lệnh tại một thời điểm trong mỗi chu kỳ đồng hồ và xác định mối quan hệ giữa chúng. Một bộ xử lý hiệu suất cao hiện đại có thể lên lịch lên tới tám lệnh cho mỗi chu kỳ đồng hồ, tùy thuộc vào mỗi lệnh được thực hiện. Đây là cách bộ xử lý có thể hoàn thành nhiều hướng dẫn trong mỗi chu kỳ đồng hồ. Xem: Công cụ thực thi Haswell trên AnandTech

Sơ đồ động cơ thực hiện Haswell
Nguồn hình ảnh

  • Tuy nhiên, kiến ​​trúc siêu khối rất khó thiết kế và tối ưu hóa. Kiểm tra sự phụ thuộc giữa các hướng dẫn đòi hỏi logic rất phức tạp có kích thước có thể mở rộng theo cấp số nhân khi số lượng lệnh đồng thời tăng lên. Ngoài ra, tùy thuộc vào ứng dụng, chỉ có một số lượng hướng dẫn giới hạn trong mỗi luồng hướng dẫn có thể được thực thi cùng một lúc, vì vậy những nỗ lực để tận dụng lợi thế lớn hơn của ILP phải chịu lợi nhuận giảm dần.

Các hướng dẫn nâng cao hơn được thêm vào để thực hiện các thao tác phức tạp trong thời gian ngắn hơn.

  • Khi ngân sách bóng bán dẫn tăng lên, có thể thực hiện các hướng dẫn nâng cao hơn cho phép các hoạt động phức tạp được thực hiện trong một phần nhỏ thời gian mà chúng sẽ thực hiện. Các ví dụ bao gồm các tập lệnh vectơ như SSEAVX thực hiện tính toán trên nhiều phần dữ liệu cùng một lúc và tập lệnh AES giúp tăng tốc mã hóa và giải mã dữ liệu.

  • Để thực hiện các hoạt động phức tạp này, các bộ xử lý hiện đại sử dụng các hoạt động vi mô (μops) . Các hướng dẫn phức tạp được giải mã thành các chuỗi μops, được lưu trữ bên trong một bộ đệm chuyên dụng và được lên lịch để thực hiện riêng lẻ (trong phạm vi cho phép bởi các phụ thuộc dữ liệu). Điều này cung cấp nhiều chỗ hơn cho bộ xử lý để khai thác ILP. Để tăng cường hơn nữa hiệu năng, có thể sử dụng bộ đệm cache đặc biệt để lưu trữ ops đã giải mã gần đây, để có thể tra cứu nhanh chóng các lệnh cho các lệnh được thực hiện gần đây.

  • Tuy nhiên, việc bổ sung các hướng dẫn này không tự động tăng hiệu suất. Hướng dẫn mới có thể tăng hiệu suất chỉ khi một ứng dụng được viết để sử dụng chúng. Việc chấp nhận các hướng dẫn này bị cản trở bởi thực tế là các ứng dụng sử dụng chúng sẽ không hoạt động trên các bộ xử lý cũ không hỗ trợ chúng.


Vậy làm thế nào để những kỹ thuật này cải thiện hiệu suất của bộ xử lý theo thời gian?

  • Đường ống đã trở nên dài hơn qua nhiều năm, giảm lượng thời gian cần thiết để hoàn thành từng giai đoạn và do đó cho phép tốc độ xung nhịp cao hơn. Tuy nhiên, trong số những thứ khác, các đường ống dài hơn làm tăng hình phạt cho dự đoán nhánh không chính xác, do đó, một đường ống không thể quá dài. Khi cố gắng đạt tốc độ xung nhịp rất cao, bộ xử lý Pentium 4 đã sử dụng các đường ống rất dài, lên tới 31 giai đoạn trong Prescott . Để giảm thâm hụt hiệu suất, bộ xử lý sẽ cố gắng thực hiện các hướng dẫn ngay cả khi chúng có thể thất bại và sẽ tiếp tục thử cho đến khi chúng thành công . Điều này dẫn đến mức tiêu thụ năng lượng rất cao và giảm hiệu suất đạt được từ siêu phân luồng . Các bộ xử lý mới hơn không còn sử dụng các đường ống này lâu nữa, đặc biệt là khi tỷ lệ xung nhịp đã đạt đến một bức tường;Haswell sử dụng một đường ống dài từ 14 đến 19 giai đoạn và các kiến ​​trúc công suất thấp hơn sử dụng các đường ống ngắn hơn (Intel Atom Silvermont có 12 đến 14 giai đoạn).

  • Độ chính xác của dự đoán nhánh đã được cải thiện với các kiến ​​trúc tiên tiến hơn, giảm tần suất xả đường ống do gây ra sai lầm và cho phép thực hiện đồng thời nhiều hướng dẫn hơn. Xem xét độ dài của đường ống trong bộ xử lý ngày nay, điều này rất quan trọng để duy trì hiệu suất cao.

  • Với ngân sách bóng bán dẫn ngày càng tăng, bộ nhớ cache lớn hơn và hiệu quả hơn có thể được nhúng trong bộ xử lý, giảm các quầy hàng do truy cập bộ nhớ. Truy cập bộ nhớ có thể cần hơn 200 chu kỳ để hoàn thành trên các hệ thống hiện đại, vì vậy điều quan trọng là giảm nhu cầu truy cập bộ nhớ chính càng nhiều càng tốt.

  • Các bộ xử lý mới hơn có khả năng tận dụng ILP tốt hơn thông qua logic thực thi siêu thanh tiên tiến hơn và các thiết kế "rộng hơn" cho phép nhiều lệnh được giải mã và thực thi đồng thời. Các Haswell kiến trúc có thể giải mã bốn lệnh và cử 8 vi hoạt động mỗi chu kỳ đồng hồ. Tăng ngân sách bóng bán dẫn cho phép nhiều đơn vị chức năng hơn như ALU nguyên được đưa vào lõi bộ xử lý. Các cấu trúc dữ liệu chính được sử dụng trong thực thi không theo thứ tự và siêu thực, như trạm đặt trước, sắp xếp lại bộ đệm và tệp đăng ký, được mở rộng trong các thiết kế mới hơn, cho phép bộ xử lý tìm kiếm một cửa sổ hướng dẫn rộng hơn để khai thác ILP của chúng. Đây là một động lực chính đằng sau sự gia tăng hiệu suất trong các bộ xử lý ngày nay.

  • Các hướng dẫn phức tạp hơn được bao gồm trong các bộ xử lý mới hơn và ngày càng có nhiều ứng dụng sử dụng các hướng dẫn này để nâng cao hiệu suất. Những tiến bộ trong công nghệ trình biên dịch, bao gồm các cải tiến trong lựa chọn hướng dẫnvector hóa tự động , cho phép sử dụng hiệu quả hơn các hướng dẫn này.

  • Ngoài những điều trên, việc tích hợp nhiều hơn các bộ phận bên ngoài trước đó vào CPU như cầu bắc, bộ điều khiển bộ nhớ và các làn PCIe làm giảm I / O và độ trễ bộ nhớ. Điều này làm tăng thông lượng bằng cách giảm các quầy hàng gây ra bởi sự chậm trễ trong việc truy cập dữ liệu từ các thiết bị khác.


6
Điều này có thể làm cho một bài viết blog tốt.
Mokubai

Những cải tiến về hiệu quả năng lượng cũng là một yếu tố được đưa ra cho bức tường năng lượng.
Paul A. Clayton

Nó không còn là về tốc độ của đồng hồ, mà là về bao nhiêu hướng dẫn trên mỗi chu kỳ đồng hồ, có thể được xử lý. Nếu bộ xử lý có băng thông để xử lý gấp 4 lần dữ liệu từ bộ nhớ đến bộ đệm, bộ xử lý đó có hiệu quả nhanh gấp 4 lần ngay cả khi nó có xung nhịp chậm hơn. Đó là lý do tại sao AMD gặp rất nhiều khó khăn khi cố gắng phù hợp với hiệu suất sản phẩm của Intel
Ramhound

18

Tham chiếu dứt khoát tuyệt đối là Hướng dẫn dành cho nhà phát triển phần mềm Intel 64 và IA-32 Architectures . Họ mô tả chi tiết các thay đổi giữa các kiến ​​trúc và chúng là một nguồn tài nguyên tuyệt vời để hiểu kiến ​​trúc x86.

Tôi khuyên bạn nên tải xuống các tập kết hợp từ 1 đến 3 (liên kết tải xuống đầu tiên trên trang đó). Tập 1 Chương 2.2 có thông tin bạn muốn.


Một số khác biệt chung mà tôi thấy được liệt kê trong chương đó, đi từ các cấu trúc vi mô Nehalem / Sandy Bridge là:

  • dự đoán chi nhánh được cải thiện, phục hồi nhanh hơn từ dự đoán sai
  • Công nghệ đọc siêu
  • bộ điều khiển bộ nhớ tích hợp, hirearchy cache mới
  • xử lý ngoại lệ điểm nổi nhanh hơn (chỉ Sandy Bridge)
  • Cải thiện băng thông LEA (chỉ Sandy Bridge)
  • Phần mở rộng hướng dẫn AVX (chỉ dành cho Sandy Bridge)

Danh sách đầy đủ có thể được tìm thấy trong liên kết được cung cấp ở trên (Tập 1, Chương 2.2).


0

Tất cả mọi thứ nói trước đó là đúng, nhưng ở một mức độ. Câu trả lời của tôi rất ngắn gọn: bộ xử lý thế hệ mới "nhanh hơn" chủ yếu vì chúng có bộ nhớ cache lớn hơn và có tổ chức tốt hơn . Đây là yếu tố chính trong hiệu suất máy tính. Để xem xét định lượng nhiều hơn, hãy xem " Tạp chí Linux: Điều gì thúc đẩy hiệu suất trong HPC "

Nói tóm lại, đối với hầu hết các ứng dụng phổ biến (như trong bộ sưu tập SPEC), yếu tố giới hạn là bộ nhớ. Khi một tính toán bền vững thực sự đang chạy, bộ nhớ cache được tải tất cả dữ liệu, nhưng mỗi lỗi bộ nhớ cache khiến đường ống thực thi CPU bị đình trệ và chờ đợi. Vấn đề là cho dù đường ống CPU có tinh vi đến mức nào, hoặc hướng dẫn tốt hơn, song song mức hướng dẫn vẫn còn khá hạn chế (ngoại trừ một số trường hợp được tìm nạp trước được tối ưu hóa đặc biệt). Khi đã tìm thấy một sự phụ thuộc quan trọng, tất cả sự song song kết thúc trong năm mười đồng hồ CPU, trong khi phải mất hàng trăm đồng hồ CPU để đuổi một caheline và tải một cái mới từ bộ nhớ chính. Vì vậy, bộ xử lý chờ đợi không làm gì. Toàn bộ khái niệm này cũng đúng cho đa lõi.

Vì vậy, nếu ai đó muốn có một PC "nhanh hơn", hãy mua nó với CPU có bộ nhớ cache lớn nhất bạn có thể mua được.


-1

Bởi vì chúng cải thiện rất nhiều Hướng dẫn cho mỗi chu kỳ (đồng hồ) mà CPU có thể thực hiện thông qua việc bao gồm các đơn vị thực thi cao hơn (đơn vị tính toán), vì lý do đó, tăng cường IPC, ngoài ra, chúng còn giảm bộ nhớ cache, ram, giải mã, tìm nạp độ trễ, cải thiện ngoài các hoạt động đơn hàng và dự đoán chi nhánh, sau đó thêm bộ đệm trong khi có độ trễ thấp hơn. Bộ nhớ cache băng thông cao hơn. Thêm hướng dẫn mới bây giờ và một lần nữa. Giảm chu kỳ mong muốn theo chỉ dẫn (CPI)

Tốc độ đồng hồ chỉ là một phần trong hiệu suất của CPU, một thành phần thiết yếu, nhưng thật không may là các nút phương pháp đã va vào tường trong thập kỷ qua hoặc lâu hơn, không có gì có thể vượt qua cảm hứng làm mát nước chất lượng. , mà không dùng đến đá khô hoặc nitơ lỏng.

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.