Đăng ký Đăng nhập
Trang chủ Thể loại khác Chưa phân loại Tài liệu-kiến trúc tập lệnh giảm bit thích nghi rlsa...

Tài liệu Tài liệu-kiến trúc tập lệnh giảm bit thích nghi rlsa

.PDF
21
164
58

Mô tả:

‫‏‬kiến trúc tập lệnh giảm bit thích nghi rISA 20.TC402.KTMT 20.Development group.KTMT Giới thiệu • Kích thước mã vẫn là một mối quan tâm cực kỳ quan trọng đối với các hệ thống nhúng cấp thấp. - Các bộ điều khiển trong xe hơi, tivi, tủ lạnh, và máy nghe nhạc • Một kích thước mã cao hơn có thể gây ra : – Không thể thực thi các chức năng – Một tác động đáng kể tới hiệu suất và chi phí của hệ thống • Vấn đề trở nên phức tạp với xu hướng hiện tại về việc tăng nội dung phần mềm trên các hệ thống nhúng. • Risa (giảm chiều rộng-bit ISA) là một giải pháp phổ biến cho vấn đề kích thước mã này. • Hỗ trợ hai tập lệnh “thông thường” và “rút gọn bit” Giới thiệu • Lợi thế của rISA: – Giảm đáng kể kích thước mã – Chiếm dụng ít bộ nhớ • Những lợi thế của rISA phụ thuộc nhiều vào ứng dụng – Và thiết kế trên tập lệnh nhỏ • Chỉ một rISA thì không thể đáp ứng sự thay đổi “IS nghiên cứu” một cách tự động của các ứng dụng nhúng ngày nay – Một ISA giảm độ rộng bit có thể chỉ có một số lượng rất hạn chế các opcodes Giới thiệu • Nghiên cứu trước đây cho thấy công nghệ để thiết kế tốt nhất cho các ứng dụng nhúng là rISA. – Nhưng họ chỉ giải quyết vấn đề duy nhất là “giảm độ rộng bit” các kiến trúc ISA. • Chủ yếu lúc này là thay đổi để phát triển dual "reduced bitwidth" ISA cho các kiến trúc ARM11. – Các yêu cầu tính toán khác nhau bên trong một ứng dụng đơn cần được xem xét • Phương pháp tiếp cận adapt-rISA là nỗ lực đầu tiên để thiết kế "reduced bit-width" ISAs cho nhiều kiến trúc rISA Tổng quan • • • • Giới thiệu Tính năng kiến trúc rISA Related Work rISA thích nghi – Chuyển đổi mã – Khảo sát phạm vi thiết kế – Bổ sung các thông tin chi tiết – Các thí nghiệm và kết quả • Kết luận • Hướng nghiên cứu trong tương lai Tính năng kiến trúc rISA (a) (b) lw $4,12($fp) Change Mode Instruction addi $2,$4,-1 lw_r $4,12($fp) | addi_r $2,$4,-1 move $4,$2 sw $4,12($fp) lw $4,8($fp) addi $2,$4,1 Reducetion move_r $4,$2 | sw_r $4,12($fp) lw_r $4,8($fp) | addi_r $2,$4,1 move_r $4,$2 | sw_r $4,8($fp) rISA_nop | Ch.Mode Instr. move $4,$2 sw $4,8($fp) Normal code (a) and Reduced code (b) of a small section of the CRC32 program • Một chương trình, được biên dịch khi sử dụng rISA, bao gồm các khối thông thường và các khối đã được giảm • Vai trò của một trình biên dịch là tìm ra thiết kế rISA tốt nhất cũng như cấu hình thiết kế rISA tốt nhất Tính năng kiến trúc rISA (a) addi instruction: Normal (a) and Reduced (b) using rISA design rISA_4444 addi $2,$4,-1 (normal) Opcode(6 bits) - rs(5) - rt(5) - imm(16) 001000 – 00010 – 00100 - 1111111111111111 (b) addi_r $2,$4,-1 (reduced) Opcode(4 bits) – rs(4) – rt(4) - imm(4) 0000 – 0010 - 0100 - 1111 • Một thiết kế Risa quy định cụ thể số lượng các bit trong mỗi trường bit • rISA_4444: opcode(4 bits) – rs(4) – rt(4) - imm(4) • Một cấu hình thiết kế rISA quy định cụ thể các opcodes khác nhau được sử dụng – Để tăng mật độ mã, RDC phải bao gồm các lệnh được truy cập thường xuyên nhất – Để giảm năng lượng, hầu hết các lệnh được thực thi phải được lựa chọn subu $sp,$sp,40 sw $31,32($sp) sw $fp,28($sp) sw $16,24($sp) move $fp,$sp sw $4,40($fp) sw $5,44($fp) jal __main move $16,$0 lw $3,44($fp) addu $2,$3,4 move $3,$2 sw $3,44($fp) addu $2,$fp,20 lw $4,0($3) addu $5,$fp,16 move $6,$2 jal crc32file or $16,$16,$2 la $4,$LC0 lw $5,16($fp) jal printf sltu $3,$0,$16 move $2,$3 Instructions selected by rdc A rdc B: rdc A: •sw •addu •la •sltu •sw •addu •lw •move Instructions selected by rdc B subu $sp,$sp,40 sw $31,32($sp) sw $fp,28($sp) sw $16,24($sp) move $fp,$sp sw $4,40($fp) sw $5,44($fp) jal __main move $16,$0 lw $3,44($fp) addu $2,$3,4 move $3,$2 sw $3,44($fp) addu $2,$fp,20 lw $4,0($3) addu $5,$fp,16 move $6,$2 jal crc32file or $16,$16,$2 la $4,$LC0 lw $5,16($fp) jal printf sltu $3,$0,$16 move $2,$3 Nghiên cứu gần đây • Shrivastava et al trình bày một khuôn mẫu DSE cho thiết kế Risa nhằm cải thiện mật độ mã. • các thí nghiệm sử dụng các thiết kế rISA khác nhau: giảm được 16-128 opcodes • Nghiên cứu chỉ ra rằng thiết kế rISA rISA444 cho thấy sự cân bằng tốt – Nếu một lệnh thông thường không thể phù hợp với một lệnh giảm, nó được loại bỏ khỏi lệnh giảm – Một số thiết kế rISA khác giải quyết vấn đề này bằng cách thêm vào các lệnh giảm đặc biệt • Nó thể hiện rằng một sự chuyển đổi nhằm cải thiện mật độ mã đang không đạt được kết quả tốt trong việc giảm năng lượng Nghiên cứu gần đây • Các khía cạnh của thiết kế rISA: – Có thể chỉ có một thậm chí một số các lệnh rISA có liên quan – Đó phải là một cơ chế phần mềm để xác định chế độ thực thi: các lệnh mx and rISA_mx • Khi bộ xử lý ở trng chế độ rISA, mã được nạp được giả định bao gồm hai lệnh rISA – Chúng được dịch thành các lệnh thông thường trước khi thực thi – Chỉ các yêu cầu giải mã logic được thay đổi Adaptive rISA • Một ứng dụng đơn giản có thể bao gồm các phần riêng biệt với các yêu cầu khác nhau • Ý tưởng hỗ trợ adaptive rISA là một cách tiếp cận phân chia và chiếm dụng rISA được sử dụng – Nghiên cứu trước đây đã không xem xét chi tiết đó • Hầu hết các khía cạnh phần mềm và phần cứng phía sau những giải pháp adapt-rISA thì giống như các điểm này trong rISA Adapt-rISA Routine R1 Begin ... End Routine R2 Begin ... End Routine R3 Begin ... End Routine R4 Begin ... End Main Routine Begin ... End Một RDC duy nhất cho toàn bộ ứng dụng Routine R1 Begin ... End Thường được làm giảm bằng cách sử dụng rdc A rdc B rdc C rdc A rdc C Routine R2 Begin ... End Routine R3 Begin ... End Routine R4 Begin ... End Main Routine Begin ... End Adaptive rISA • Một tập giảm ít các opcode hơn có thể bao gồm nhiều lệnh(được giảm) hơn trong một phần nhất định – ít hơn số lượng bit có thể được sử dụng để xác định các opcode – rISA_4444 có vẻ là một giải pháp tốt cho những trường hợp này • Không phải tất cả các chỉ thị lệnh ban đầu, theo quy định của RDC, thực sự giảm • Nguyên nhân chính là do tràn – Số lượng các lệnh lân cận là quá nhỏ – Giữa các lệnh nhảy và rẽ nhánh thông thường và các khối được giảm thì không hợp lệ Adaptive rISA 400 350 300 250 200 150 100 50 0 Initially Marked Discarded by Overflow Discarded by Small Size of the Block Discarded by Branch and Jump Handling Actually Reduced Discard of instrs., qsort program – r_4444 (right) x r_8ops (left) • rISA_8ops có vẻ là giải pháp tốt cho adapt-rISA Chuyển đổi mã INPUT: application's Assembly code produced by gcc PARAMETERS: rISA design and rISA design configuration if (mips.usingRISA ( )) { mips.rISA.mapRegisters ( ); mips.rISA.markCandidates ( ); mips.rISA.isPossibleToReduceCandidates(); mips.rISA.discardSmallBlocks (); while(mips.rISA.treatBranchesAndJumps()) mips.rISA.discardSmallBlocks (); mips.rISA.countFinalBlocks (); mips.rISA.translateToRISAstep1 ( ); mips.rISA.translateToRISAstep2 ( ); mips.rISA.generateFinalCode ( output); } Khảo sát phạm vi thiết kế • Our DSE process focus on the dynamic aspects of the execution • The application is executed with a small dataset to get its execution profile • The different opcodes of these marked instructions are identified and stored • A DSE process is triggered using combinations of these opcodes (8 or 16 each time) to try improved results for: – total number of reduced instructions – average block size – total number of blocks 17th International Conference on Very Large Scale Integration Các thí nghiệm và kết quả CRC32 rISA Qsort rISA Adapt-rISA f. CRC32 + Qsort 100 90 80 70 60 50 40 30 20 10 0 (1) (1) number of fetches (2) percentage of actual reduced instructions (3) average size of the reduced blocks (2) (3) (4) 17th International Conference on Very Large Scale Integration (5) (4) total number of reduced blocks (5) application's code size reduction Các thí nghiệm và kết quả • Nói chung, điều chỉnh Risa đạt được kết quả tốt hơn: chiếm dụng ít và tốt hơn trong nén các số liệu – có bốn trong số sáu ứng dụng, ít chiếm dụng, từ tối thiểu là 2% tối đa 7% giảm – tổng số các lệnh giảm là luôn luôn lớn hơn với sự hiện diện của adapt-Risa: cải thiện trung bình là 19% – Trong 5 ứng dụng, kích thước trung bình của các khối giảm được cải thiện bởi adapt-Risa – Những kết quả thu được bằng cách sử dụng các thiết kế rISA_8ops mới • Các thí nghiệm đã được xác nhận bằng cách so sánh kết quả (s) thu được tại các máy chủ với kết quả tương ứng (s) được thực hiện bởi mô phỏng Tổng kết • Adapt-Risa cho thấy kết quả tốt hơn trong hầu như tất cả các ứng dụng, và đối với hầu hết các số liệu nén mã là chủ yếu, cải thiện trung bình là 19% Liên quan đến các yêu cầu chiếm dụng, đã giảm đến 7% Công việc này cũng mô tả một thiết kế mới của Risa Future Work • Công việc tập trung chủ yếu vào DSE cho cấu hình thiết kế Risa. • Con đường được mở ra cho một DSE tập trung vào thiết kế Risa khác nhau. • Định nghĩa của một heuristic mạnh mẽ hơn để tìm các thiết kế và cấu hình tốt nhất của Risa . • Việc thực hiện phần cứng của các đơn vị dịch adapt-Risa. • Đánh giá việc sử dụng cho các ứng dụng nhúng khác nhau.
- Xem thêm -

Tài liệu liên quan