Tôi có thể nắm bắt được điều này, sự khác biệt giữa siêu thanh và bộ xử lý đa lõi là gì?
Tôi tiếp tục trộn chúng lên, vì vậy một số điểm đơn giản về những gì chúng làm sẽ rất tuyệt.
Tôi có thể nắm bắt được điều này, sự khác biệt giữa siêu thanh và bộ xử lý đa lõi là gì?
Tôi tiếp tục trộn chúng lên, vì vậy một số điểm đơn giản về những gì chúng làm sẽ rất tuyệt.
Câu trả lời:
Bộ xử lý siêu vô hướng có nghĩa là bạn gửi nhiều hướng dẫn trong một chu kỳ đồng hồ. Lý do điều này khác biệt với đa lõi là bạn chỉ nhận được một bộ đếm hướng dẫn. Vì vậy, bạn theo dõi nhiều hướng dẫn trong chuyến bay, nhưng tất cả các hướng dẫn là từ một chương trình duy nhất. Đây vẫn chỉ là một quá trình. Bây giờ tôi đã nói "bạn nhận được một bộ đếm hướng dẫn" và về mặt kỹ thuật, điều đó đúng ở chỗ không có điểm nào trong đó mã của bạn sẽ gặp phải sự chênh lệch ngoại trừ sử dụng một số lược đồ dự đoán chi nhánh (Thực thi đầu cơ: bạn đồng thời thực thi cả hai nhánh và vứt bỏ "sai "Kết quả dự đoán).
Khi bạn nhận được vào đa lõi, bạn có nhiều luồng lệnh thực thi đồng thời. Phần quan trọng là mỗi lõi (thực thi với bộ đếm lệnh riêng) cũng có thể là siêu vô hướng để thực hiện từng quy trình đơn lẻ nhanh hơn!
Có thể có siêu vô hướng mà không cần thực hiện theo đường ống hoặc thực hiện không theo thứ tự bằng cách có từ được gọi là từ lệnh rất dài hoặc "VLIW". Đây cũng được gọi là siêu vô hướng "tĩnh" (tức là trong chính mã). Đây là nơi bạn về cơ bản có đủ các thành phần để thực hiện nhiều lệnh cùng một lúc và bạn tìm nạp nhiều hướng dẫn cùng một lúc và sau đó chạy chúng. Ở dạng đơn giản nhất, hãy tưởng tượng rằng bạn đã nói "bộ xử lý này sẽ luôn tìm nạp và thực hiện hai lệnh cùng một lúc." Sau đó, miễn là người viết mã có thể tìm thấy công việc được thực hiện đồng thời trong cùng một quy trình, bạn sẽ tăng gấp đôi thông lượng của mình! Nếu bạn không thể tìm thấy hai hướng dẫn để đặt cùng nhau, bạn chỉ cần ghép một hướng dẫn và NOP. Ý tưởng này không tốt lắm chủ yếu là vì nếu bạn tạo một phiên bản tốt hơn của bộ xử lý có thể thực hiện 3, 4 hoặc nhiều hướng dẫn cùng một lúc, tất cả các mã cũ của bạn sẽ bị hỏng! Nhưng họ đã giải quyết vấn đề này một cách khá khéo léo, bạn nên kiểm tra rõ ràng tính toán hướng dẫn song song hoặc công cụ "EPIC" nếu bạn muốn biết thêm.
Siêu vô hướng động với đường ống có thể tận dụng cả các hướng dẫn độc lập dữ liệu cũng như song song mức hướng dẫn, đó là điều làm cho nó trở thành một sự kết hợp mạnh mẽ như vậy. Về cơ bản, nó cho phép bạn, với đủ phần cứng, thực hiện càng nhiều lệnh độc lập càng tốt.
Siêu vô hướng động với đường ống và thực hiện không theo thứ tự về cơ bản là giới hạn của song song mức lệnh: bạn sẽ thử và thực hiện đồng thời nhiều lệnh trong cùng một giai đoạn, cố gắng tìm các hoạt động hoạt động mà không phụ thuộc dữ liệu. Bạn có thể hoàn thành trật tự, bạn sẽ bắt đầu ra khỏi trật tự, có tất cả các loại điều bạn cần làm để giữ cho đầu của bạn thẳng trong khi làm những thứ siêu vô hướng. Đa lõi nói "hey lập trình viên! Hãy cho tôi nhiều vấn đề tôi có thể giải quyết cùng một lúc!" và sau đó vì lập trình viên có khả năng nhìn thấy các vấn đề có thể giải quyết độc lập ngoài chỉ một vài dòng trong tập hợp đã biên dịch, họ có thể lập trình hiệu quả hơn các giải pháp đó cho đa lõi.
Siêu vô hướng thậm chí không có khả năng giải quyết các vấn đề như "làm thế nào để tôi thực hiện hai chương trình này nhanh hơn". Nó chỉ có thể thực hiện mỗi chương trình độc lập nhanh hơn.
Hy vọng rằng sẽ giúp, xin lỗi nếu nó hơi rời rạc.
--Biên tập--
Được sửa đổi để đưa vào tài khoản của ajs410 rằng tôi đã nhầm lẫn nhiều ý tưởng.
Nếu bạn nhìn lại các bộ xử lý trước đó như 80486 hoặc Pentium thì CPU là một đơn vị xử lý logic duy nhất. Nó thực hiện một luồng hướng dẫn tại một thời điểm. Một CPU đơn cũng là một chip silicon. Nếu bạn muốn có nhiều sức mạnh xử lý hơn thì bạn có thể mua một bo mạch chủ máy chủ đắt tiền có các khe cắm để phù hợp với hai CPU riêng biệt. Sau đó, bạn đã có một máy CPU hai và vì vậy hai lõi xử lý.
Tại một số điểm, Định luật Moore có nghĩa là chúng ta có rất nhiều bóng bán dẫn có sẵn trong silicon đến mức bạn có thể đặt tất cả các mạch cho hai CPU vào chỉ một chip. Bây giờ bạn có tiềm năng để đặt tên nhầm lẫn. Nói rằng bạn có hai CPU có nghĩa là bạn có hai gói silicon kiểu cũ hoặc gói silicon đơn mới hơn nhưng với thiết lập xử lý của hai bộ xử lý. Để giải quyết vấn đề này, hiện tại chúng tôi có nghĩa là CPU là một gói silicon duy nhất và Core là một đơn vị xử lý logic duy nhất trong đó.
Siêu vô hướng đề cập đến một kỹ thuật được sử dụng trong lõi để thử và cải thiện hiệu suất và cho phép nó xử lý nhiều hướng dẫn hơn trên mỗi chu kỳ. Một bộ xử lý vô hướng thực thi tối đa một lệnh trong mỗi chu kỳ, siêu vô hướng có nghĩa là nó có khả năng thực thi nhiều hơn một lệnh trong mỗi chu kỳ. Ví dụ, nếu bộ xử lý có một đơn vị chức năng cho số học số nguyên và một đơn vị khác cho dấu phẩy động thì tại sao không sử dụng cả hai cùng một lúc để thực hiện hai lệnh cùng một lúc. Nếu bạn có ba đơn vị số nguyên và hai đơn vị dấu phẩy động thì sao? Bây giờ bạn có tiềm năng lớn hơn để thực hiện song song. Nhưng bạn cũng cần nhiều bóng bán dẫn hơn để thực hiện và logic phức tạp hơn nhiều để làm cho nó hoạt động đáng tin cậy. Trong thế giới thực, bạn có xu hướng sử dụng siêu vô hướng kết hợp với các thiết kế không theo thứ tự vì chúng khen nhau.