NÂNG CAO HIỆU SUẤT VECTOR

Một phần của tài liệu TẠI SAO PHẢI DÙNG BỘ XỬ LÝ VECTOR pptx (Trang 28 - 30)

Trong phần này chúng tôi trình bày năm kỹ thuật để cải thiện hiệu suất của một bộ vi xử lý vector. Đầu tiên, chuỗi, với việc xử lý làm dãy các thao tác véctơ phụ thuộc chạy nhanh và có nguồn gốc từ Cray - 1 nhưng bây giờ hỗ trợ cho hầu hết bộ vi xử lý véctơ. Hai kỹ thuật tiếp theo với việc giải quyết sự mở rộng lớp các vòng giúp chúng có thể chạy được trong chế độ vector bằng cách chống lại tác động của thực hiện có điều kiện và thực hiện các ma trận rải rác với các loại lệnh vector. Kỹ thuật thứ tư tăng hiệu suất cao nhất của một máy vector bằng cách thêm các đơn vị thực hiện song song nhiều hơn dưới dạng hình thức bổ sung luồng. Kỹ thuật thứ năm làm giảm chi phí khởi động trên đường ống dẫn và trùng với việc khởi động lệnh.

4.1, Chuỗi-quan niệm về chuyển tiếp mở rộng đến thanh ghi véctơ véctơ

Xem xét các chuỗi vector đơn giản MULV.D V1,V2,V3 ADDV.D V4,V1,V5

Trong VMIPS, quan điểm hiện nay về chuỗi, hai lệnh phải được đặt thành hai đoạn riêng biệt, kể từ khi các lệnh bị phụ thuộc. Mặt khác, nếu thanh ghi vector, V1 trong trường hợp này được xử lý không phải là một thực thể duy nhất nhưng là một nhóm thanh ghi cá nhân, sau đó những ý tưởng của khái niệm chuyển tiếp có thể được mở rộng để làm việc trên các phần tử thanh ghi của một vectơ. Sự hiểu biết này, sẽ cho phép ADDV.D bắt đầu trước đó trong ví dụ này, được gọi là chuỗi. Chuỗi cho phép một chuỗi vector bắt đầu hoạt động ngay khi các phần tử thanh ghi vector nguồn hoạt động và trở nên có sẵn: Các kết quả từ các đơn vị chức năng đầu tiên trong chuỗi là "chuyển tiếp" đến các đơn vị chức năng thứ hai. Trong thực tế, chuỗi thường được thực hiện bằng cách cho phép bộ vi xử lý đọc và ghi một thanh ghi cụ thể cùng một lúc, mặc dù các phần tử khác nhau. Sớm triển khai việc thực hiện của chuỗi như là chuyển tiếp, nhưng điều này bị giới hạn bởi thời gian của các lệnh nguồn và đích trong chuỗi. Các chuỗi triển khai gần đây sử dụng chuỗi linh hoạt, cho phép một chỉ dẫn vector trong chuỗi kiểm soát bất kỳ lệnh vector hoạt động nào khác, giả định rằng không có trở ngại về cấu

ghi cùng một lệnh vector khác nhau, có thể được thực hiện bằng cách bổ sung thêm đọc và ghi dữ liệu hoặc tổ chức lưu trữ tập thanh ghi vector vào các máy tính tương tự như cách để hệ thống bộ nhớ. Chúng ta giả định loại hình này trong suốt chuỗi phần còn lại của phụ lục này.

Mặc dù một cặp của các thao tác phụ thuộc vào nhau, chuỗi cho phép các thao tác tiến hành song song trên các phần tử riêng biệt của vector. Điều này cho phép các thao tác được sắp xếp trong cùng một đoạn và làm giảm số lượng cho phù hợp với yêu cầu. Đối với các trình tự trước đó, một tỷ lệ duy trì (bỏ qua khởi động) của hai điểm hoạt động nổi trên mỗi chu kỳ đồng hồ, hoặc chime, có thể đạt được, mặc dù các hoạt động phụ thuộc !

Tổng thời gian chạy cho các trình tự nêu trên bằng:

Độ dài vector + thời gian khởi động ADDV + thời gian khởi động MULV

Hình G.10 cho thấy thời gian của một chuỗi và một phiên bản được hủy bỏ ở trên cặp lệnh vector có chiều dài vector là 64. Đoạn này yêu cầu một chime, tuy nhiên, bởi vì nó sử dụng chuỗi, các chi phí khởi động sẽ được xuất hiện trong thời gian thực tế của đoạn. Trong hình G.10, tổng thời gian cho chuỗi các hoạt động là 77 chu kỳ đồng hồ, hoặc 1,2 vòng / kết quả. Với 128 điểm hoạt động thực hiện trong thời gian đó, 1,7 FLOP trong một chu kỳ thu được. Đối với các phiên bản được hủy bỏ, có 141 chu kỳ đồng hồ, hoặc 0,9 FLOP trên mỗi chu kỳ đồng hồ.

Mặc dù chuỗi cho phép chúng ta làm giảm thành phần chime của thời gian thực hiện bằng cách đặt hai lệnh phụ thuộc trong cùng một đoạn, nó không loại trừ các chi phí khởi động. Nếu chúng ta muốn tính chính xác thời gian chạy, chúng ta phải đếm cả thời gian khởi động trong và qua các đoạn. Với chuỗi, số chime cho một chuỗi được xác định bởi số lượng các đơn vị chức năng khác nhau có sẵn trong bộ xử lý vector và số lượng theo yêu cầu của ứng dụng. Đặc biệt, không có đoạn nào có thể chứa một trở ngại trong cơ cấu. Điều này có nghĩa, ví dụ, có một chuỗi chứa hai lệnh vector phải mất ít nhất hai đoạn, và vì thế hai chime trên một bộ xử lý như VMIPS chỉ cần một vector tải hàng đơn vị.

Chúng ta sẽ thấy trong Phần G.6 rằng chuỗi đóng một vai trò quan trọng trong việc thúc đẩy hiệu suất vector. Trong thực tế, chuỗi là rất quan trọng, là một bộ vi xử lý vector hiện đại hỗ trợ chuỗi linh hoạt.

Một phần của tài liệu TẠI SAO PHẢI DÙNG BỘ XỬ LÝ VECTOR pptx (Trang 28 - 30)