Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 12 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
12
Dung lượng
518,59 KB
Nội dung
Kiến trúc vector Kiến trúc vectơ lấy tập hợp phần tử liệu nằm rải rác nhớ, đặt chúng vào tệp ghi lớn, thao tác liệu tệp ghi đó, phân tán kết trở lại nhớ Một lệnh hoạt động vectơ liệu, dẫn đến hàng chục hoạt động ghi phần tử liệu độc lập Các tệp ghi lớn hoạt động đệm điều khiển trình biên dịch, vừa để che giấu độ trễ nhớ vừa để tận dụng băng thông nhớ Bởi tải lưu trữ vectơ phân chia sâu, chương trình trả độ trễ nhớ dài lần cho lần tải vectơ lưu trữ so với lần cho phần tử, phân bổ độ trễ qua 32 phần tử Thật vậy, chương trình vectơ cố gắng giữ cho nhớ bận rộn Phần mở rộng RV64V Các thành phần kiến trúc tập lệnh RV64V sau: -Thanh ghi vectơ—Mỗi ghi vectơ chứa vectơ RV64V có 32 số chúng, ghi rộng 64 bit Tệp đăng ký vectơ cần cung cấp đủ cổng để cung cấp tất đơn vị chức vectơ Các cổng cho phép mức độ chồng chéo cao phép toán vectơ đến ghi vectơ khác Các cổng đọc ghi, có tổng số 16 cổng đọc cổng ghi, kết nối với đầu vào đầu đơn vị chức cặp công tắc ngang Một cách để tăng băng thơng tệp đăng ký soạn từ nhiều ngân hàng, hoạt động tốt với vectơ tương đối dài -Đơn vị chức vectơ—Mỗi đơn vị hoàn tồn định hướng q trình triển khai chúng tơi bắt đầu hoạt động chu kỳ đồng hồ Một đơn vị điều khiển cần thiết để phát mối nguy, mối nguy cấu trúc đơn vị chức mối nguy liệu truy cập ghi.Hình 4.1 cho thấy chúng tơi giả định việc triển khai RV64V có năm đơn vị chức Để đơn giản, tập trung vào đơn vị chức dấu phẩy động phần -Đơn vị lưu trữ / tải vectơ—Đơn vị nhớ vectơ tải lưu trữ vectơ đến từ nhớ Các tải lưu trữ vectơ kết hợp đầy đủ trình triển khai RV64V giả định để từ di chuyển ghi vectơ nhớ với băng thông từ chu kỳ đồng hồ, sau độ trễ ban đầu Đơn vị thường xử lý tải lưu trữ vô hướng -Một tập hợp ghi vô hướng—Tương tự vậy, ghi vô hướng cung cấp liệu làm đầu vào cho đơn vị chức vectơ, tính tốn địa để chuyển đến đơn vị tải / lưu trữ vectơ Đây 31 ghi mục đích chung bình thường 32 ghi dấu phẩy động RV64G Một đầu vào đơn vị hàm vectơ chốt giá trị vô hướng chúng đọc khỏi tệp ghi vô hướng Ta có hình 4.2: Hình 4.2 liệt kê hướng dẫn vectơ RV64V mà ta sử dụng phần Mô tả Hình 4.2 giả sử tốn hạng đầu vào tất ghi vectơ, có phiên lệnh tốn hạng ghi vơ hướng-Mặc dù kiến trúc vectơ truyền thống không hỗ trợ hiệu kiểu liệu hẹp, vectơ tự nhiên thích ứng với kích thước liệu khác Do đó, ghi vectơ có 32 phần tử 64 bit, phần tử 128-16 bit chí phần tử 256-8 bit khung nhìn hợp lệ Sự đa dạng phần cứng lý kiến trúc vector trở thành ứng dụng đa phương tiện hữu ích cho ứng dụng khoa học -Lưu ý hướng dẫn RV64V Hình 4.2 qua kiểu liệu kích thước -Một cải tiến RV64V liên kết kiểu liệu kích thước liệuvới ghi vectơ, cách tiếp cận thơng thường hướng dẫn cung cấp thơng tin Do đó, trước thực lệnh vectơ, chương trình cấu hình ghi vectơ sử dụng để định kiểu liệu độ rộng chúng Hình 4.3 liệt kê tùy chọn cho RV64V Hình 4.3 Kích thước liệu hỗ trợ cho RV64V giả sử có phần mở rộng dấu phẩy động xác đơn kép RVS RVD Thêm RVV vào thiết kế RISC-V có nghĩa đơn vị vơ hướng phải thêm RVH, phần mở rộng lệnh vô hướng để hỗ trợ dấu chấm động IEEE 754 nửa xác (16-bit) Bởi RV32V khơng có phép tốn vơ hướng từ kép, loại bỏ số nguyên 64-bit khỏi đơn vị vectơ Nếu triển khai RISCV khơng bao gồm RVS RVD, bỏ qua hướng dẫn dấu phẩy động vectơ Lợi ích việc nhập ghi động: - Nhập động cho phép chương trình vơ hiệu hóa ghi vectơ khơng sử dụng Do đó, ghi vectơ kích hoạt cấp phát tất nhớ vectơ - dạng vectơ dài Một phàn nàn kiến trúc vectơ trạng thái lớn chúng có nghĩa thời gian chuyển đổi ngữ cảnh chậm Việc triển khai RV64V làm tăng hệ số trạng thái 3: từ 2-32-8¼512 byte đến 2-32-1024¼1536 byte Một tác dụng phụ thú vị việc nhập ghi động chương trình định cấu hình ghi vectơ nhưVơ hiệu hóa chúng khơng sử dụng, khơng cần phải lưu khôi - phục chúng công tắc ngữ cảnh Lợi ích thứ ba việc nhập ghi động chuyển đổi toán hạng kích thước khác ngầm hiểu tùy thuộc vào cấu hình ghi hướng dẫn chuyển đổi rõ ràng bổ sung Các hoạt động xử lý vector Chúng ta hiểu rõ xử lý vectơ cách xem xét vòng lặp vectơ cho RV64V Xét tốn vector điển hình: Y=a-X+Y X Y vectơ, ban đầu nằm nhớ, vector vơ hướng Vịng lặp SAXPY DAXPY tạo thành vòng lặp bên điểm chuẩn Linpack Linpack tập hợp quy trình đại số tuyến tính điểm chuẩn Linpack bao gồm quy trình để thực loại bỏ Gaussian Ví dụ: Hiển thị mã cho RV64G RV64V cho vòng lặp DAXPY Đối với ví dụ này, giả sử X Y có 32 phần tử địa bắt đầu X Y x5 x6, tương ứng Bài giải: Đây mã RISC-V: Fld f0,a addi x28,x5,#256 # Last address to load Loop: fld f1,0(x5) # Load X[i] fmul.d # Load scalar a f1,f1,f0 # a x X[i] fld f2,0(x6) # Load Y[i] fadd.d f2,f2,f1 # a x X[i] + Y[i] fsd f2,0(x6) # Store into Y[i] addi x5,x5,#8 # Increment index to X addi x6,x6,#8 # Increment index to Y bne x28,x5,Loop # Check if done Đây mã RV64V cho DAXPY: vsetdcfg 4*FP64 fld f0,a # Load scalar a vld v0,x5 # Load vector X vmul v1,v0,f0 # Vector-scalar mult vld v2,x6 # Load vector Y vadd v3,v1,v2 # Vector-vector add vst v3,x6 # Store the sum vdisable # Enable DP FP vregs # Disable vector regs Lưu ý trình hợp dịch xác định phiên hoạt động vectơ tạo Bởi phép nhân có tốn hạng vơ hướng, tạo ravmul.vs, phần bổ sung khơng, tạo vadd.vv Lệnh ban đầu cấu hình bốn ghi vectơ để chứa liệu dấu phẩy động 64-bit Lệnh cuối vơ hiệu hóa tất ghi vectơ Nếu chuyển đổi ngữ cảnh xảy sau lệnh cuối cùng, khơng có trạng thái bổ sung để lưu Điểm khác biệt ấn tượng mã lệnh mã hiệu lệnh xử lý vectơ làm giảm đáng kể băng thông lệnh động, thực lệnh so với 258 lệnh cho RV64G Việc giảm xảy hoạt động vectơ hoạt động 32 phần tử lệnh đầu tạo thành gần nửa vịng lặp RV64G khơng có mã RV64V Khi trình biên dịch tạo lệnh vectơ cho trình tự mã kết dành phần lớn thời gian để chạy chế độ vectơ, mã cho vectơ hóa vectơ Các vịng lặp vectơ hóa chúng khơng có phụ thuộc lần lặp vòng lặp, gọi phụ thuộc vòng lặp Một khác biệt quan trọng khác RV64G RV64V tần suất khóa đường ống để thực đơn giản RV64G Trong mã RV64G đơn giản, fadd.d phải đợi fmul.d, thứ fsd phải đợi cho fadd.d Trên xử lý vectơ, lệnh vectơ dừng lại phần tử vectơ, sau phần tử trơi chảy cách nhẹ nhàng đường ống Do đó, đường ống yêu cầu lần cho vectơ hướng dẫn,thay lần cho vectơ yếu tố Các kiến trúc sư vector gọi chuyển tiếp hoạt động phụ thuộc yếu tố chuỗi, hoạt động phụ thuộc "xâu chuỗi" với Thời gian thực vector Thời gian thực chuỗi phép toán vectơ chủ yếu phụ thuộc vào ba yếu tố: + độ dài vectơ toán hạng + nguy cấu trúc phép toán + phụ thuộc vào liệu Tất máy tính vectơ đại có đơn vị hàm vectơ với nhiều đường ống song song (hoặc đường) tạo hai nhiều kết cho chu kỳ đồng hồ, chúng có số đơn vị chức khơng phân chia hoàn toàn Để đơn giản, việc triển khai RV64V chúng tơi có với tốc độ khởi tạo phần tử chu kỳ đồng hồ cho hoạt động riêng lẻ Do đó, thời gian thực chu kỳ đồng hồ cho lệnh vectơ đơn lẻ xấp xỉ độ dài vectơ Để đơn giản hóa việc thảo luận thực thi vectơ hiệu suất vectơ, ta sử dụng khái niệm hộ tống, tập hợp lệnh vectơ có khả thực thi Từng cách tối ưu hóa kiến trúc vectơ Phụ lục G sâu Một ưu điểm quan trọng tập lệnh vectơ cho phép phần mềm chuyển lượng lớn công việc song song sang phần cứng lệnh ngắn Một lệnh vectơ bao gồm điểm số hoạt động độc lập mã hóa theo số bit lệnh vô hướng thông thường Ngữ nghĩa song song lệnh vectơ cho phép triển khai thực hoạt động phần tử cách sử dụng đơn vị chức có liên kết sâu, triển khai RV64V mà nghiên cứu nay; mảng đơn vị chức song song; kết hợp đơn vị chức song song pipelined.Hình 4.4 minh họa cách cải thiện hiệu suất vectơ cách sử dụng đường ống dẫn song song để thực lệnh thêm vectơ Mỗi chứa phần tệp đăng ký vectơ đường dẫn thực thi từ đơn vị chức vectơ Mỗi đơn vị chức vectơ thực lệnh vectơ với tỷ lệ nhóm phần tử chu kỳ cách sử dụng nhiều đường ống, đường Làn chứa phần tử (phần tử 0) cho tất ghi vectơ, đó, phần tử lệnh vectơ có tốn hạng nguồn đích nằm Việc phân bổ cho phép đường ống số học cục đến đường hoàn thành hoạt động mà không cần giao tiếp với đường khác Thêm nhiều đường kỹ thuật phổ biến để cải thiện hiệu suất vectơ yêu cầu tăng độ phức tạp điều khiển chút khơng u cầu thay đổi mã máy có Nó cho phép nhà thiết kế đánh đổi diện tích khn, tốc độ xung nhịp, điện áp lượng mà hy sinh hiệu suất cao Nếu tốc độ đồng hồ xử lý vectơ giảm nửa, số đường tăng gấp đôi giữ nguyên hiệu suất cao Thanh ghi độ dài vectơ: Xử lý vịng lặp khơng 32 Một xử lý ghi vectơ có độ dài vectơ tự nhiên xác định độ dài vectơ lớn nhất(mvl) Xét mã sau: for (i=0;i