Vì không ai đưa ra câu trả lời, tôi nghĩ rằng tôi đã tìm ra nó trong lúc đó.
Bộ xử lý vô hướng chỉ là một bộ xử lý thông thường, thực hiện các lệnh vô hướng đang làm việc trên một số tại một thời điểm. Không có gì đặc biệt.
Mặt khác, bộ xử lý vector sử dụng các lệnh vector được cho là hoạt động trên nhiều số cùng một lúc. Có các thanh ghi đặc biệt, rộng hơn, dành cho mục đích này (ví dụ: 128 bit xmm * của SSE, trong đó nhiều giá trị có thể được đóng gói, ví dụ, 4 số nguyên 32 bit; AVX-512 giới thiệu các thanh ghi 512 bit là I rộng nhất có thể tìm thấy). Ops vector được thực hiện bởi các đơn vị đặc biệt trong bộ xử lý được thực hiện cho mục đích đó. Một ví dụ điển hình của bộ xử lý vector sẽ là GPU - nó chỉ thực hiện các phép tính vector.
Superscalar là thuật ngữ được sử dụng để biểu thị tối ưu hóa cụ thể cho phép các lệnh vô hướng được thực thi song song, trên các đơn vị thực thi "thông thường" khác nhau (ví dụ: nhiều ALU). Nó chia các hướng dẫn thành nhiều "luồng" (tôi vừa thực hiện thuật ngữ này), sau đó được thực thi cùng một lúc.
Vì vậy, làm thế nào họ khác với các đối tác vector của họ? Hướng dẫn vô hướng không có nghĩa là được thực hiện theo cách đó . Có nhiều mối nguy hiểm có thể xảy ra và ngăn chặn việc thực hiện hoàn toàn song song, chẳng hạn như dữ liệu hoặc phụ thuộc thủ tục. Trong trường hợp đó, việc thực thi lệnh đó sẽ phải chờ các phụ thuộc của nó được thỏa mãn, tạm dừng việc thực hiện "luồng" đó. CPU phải chăm sóc tất cả các phụ thuộc để tránh hỏng dữ liệu, do đó phải đặc biệt cẩn thận trong khi tối ưu hóa việc thực hiện theo cách này.
Nó cũng không giới thiệu bất kỳ hướng dẫn mới nào - mọi thứ trông giống như hoạt động của CPU vô hướng bình thường. Mặt khác, CPU vector có các hướng dẫn đặc biệt cho các hoạt động của vector. Sự khác biệt chính là đối với ops vector, lập trình viên (hay, đúng hơn là trình biên dịch) phải chăm sóc dữ liệu và vì không có sự can thiệp nào với các thanh ghi khác nhau cùng một lúc (hãy nhớ rằng, tất cả các giá trị được đóng gói vào các thanh ghi rộng), nhiều mối nguy hiểm khác nhau được tránh Mặt khác, các CPU siêu phẳng làm hết sức mình để tìm ra các hướng dẫn độc lập với nhau và thực hiện chúng cùng một lúc.
Lưu ý làm thế nào tôi không bao giờ nói bất kỳ loại nào là loại trừ lẫn nhau? Họ không. Các đơn vị vectơ sẽ thực hiện các hướng dẫn vectơ và CPU sẽ cố gắng tìm ra cách tốt nhất để song song hóa các vô hướng. Trên thực tế, tất cả các CPU hiện đại đều hỗ trợ cả các hướng dẫn vectơ (SSE *, 3DNow!, AVX, ...) và các vô hướng (x86) sẽ được thực hiện theo cách "siêu phẳng".