2012-10-18 19 views
9

Sự khác biệt giữa bộ xử lý SIMD và vector là gì? Sự hiểu biết hiện tại của tôi là xử lý Vector là một tập con của SIMD. Nhưng tôi đã nói rằng "SIMD không bị giới hạn trong vectơ" và tôi không biết chính xác điều đó có nghĩa là gì. Bất kỳ ví dụ cụ thể nào?Kiến trúc SIMD và Vector

Ngoài ra, tại sao kiến ​​trúc vô hướng lại thích kiến ​​trúc vector hơn? Có phải vì chúng dễ thực hiện và chương trình hơn không?

Tôi biết rằng chúng tôi có SISD (CPU 1 lõi thông thường), SIMD (bộ mở rộng SSE trên bộ xử lý đơn/đa lõi), MIMD (errmm .. gần giống như MPI mà tôi đoán, cụm sao!) Và MISD (đã được coi là không thực tế/không khả thi). Ngoài ra, một số thứ khác tôi đã đọc là các kiến ​​trúc Vector và Superscalar. Bất kỳ kiến ​​trúc mới mà tôi đã bỏ lỡ và nên biết về? Cảm ơn!

Trả lời

9

Flynn's Taxonomy là một phân loại kiến ​​trúc máy tính. Bằng cách xử lý vector phân loại Flynn rơi vào lớp SIMD. Có những kiến ​​trúc không phải là bộ xử lý vector nhưng lại rơi vào lớp SIMD. Ví dụ là ví dụ Connection Machine và nhiều GPUs nơi nhiều bộ xử lý thực thi cùng một hướng dẫn.

MMX, SSE, Altivec, v.v. rơi vào xử lý vectơ cũng như lớp SIMD. Có nhiều tên đề cập đến cùng một khái niệm: song song subword, SIMD quy mô nhỏ, xử lý vectơ ngắn, SIMD trong một đăng ký (SWAR) hoặc phần mở rộng đa phương tiện phổ biến nhất.

Bộ xử lý vector truyền thống như Cray hoặc STAR đã sử dụng kích thước vectơ lớn hơn và biến thiên.

Superscalar là một cách để triển khai bộ xử lý nhưng không đưa ra bất kỳ tuyên bố nào về tập lệnh của nó như Phân loại của Flynn.

3

Một ví dụ thực tế có thể được tìm thấy từ so sánh ARM Neon và ARM VFP. Đầu tiên là SIMD cổ điển hơn đánh giá 2,4,8 hoặc 16 mục song song (hoặc chủ yếu là song song). Khác là một phần mở rộng dấu chấm động, được lập trình để tuần tự lặp qua hai bộ thanh ghi kế tiếp (có lẽ cho phép bỏ qua 2) ví dụ. S0..S3, S8..S11 và ghi kết quả vào S12..S15.

Kiến trúc thứ hai xử lý một số hoạt động (1-4) có cùng lệnh sử dụng 1-4 chu kỳ đồng hồ để hoàn thành tác vụ. Nếu kiến ​​trúc sẽ cho phép nói 128 phép toán cho mỗi lệnh, sự khác biệt khái niệm giữa các hệ thống sẽ rõ ràng hơn - mặc dù cả hai sẽ là kiến ​​trúc vector và SIMD.