Tải bản đầy đủ (.pdf) (21 trang)

kiến trúc tập lệnh giảm bit thích nghi rISA

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1009.17 KB, 21 trang )

‏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 bit-
width" 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
• 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
Normal code (a) and Reduced code (b) of a small section of the CRC32 program
(a)
lw $4,12($fp)

addi $2,$4,-1
move $4,$2
sw $4,12($fp)
lw $4,8($fp)
addi $2,$4,1
move $4,$2
sw $4,8($fp)
(b)
Change Mode Instruction
lw_r $4,12($fp) | addi_r $2,$4,-1
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.
Reducetion
Tính năng kiến trúc rISA
• 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
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

(a)
(b)
addi_r $2,$4,-1 (reduced)
Opcode(4 bits) – rs(4) – rt(4) - imm(4)
0000 – 0010 - 0100 - 1111
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
rdc A:

•sw
•addu
•la
•sltu
rdc B:
•sw
•addu
•lw
•move
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 B
Instructions selected by rdc A
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
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

Routine R2
Begin

End

Routine R3
Begin

End

Routine R4
Begin

End

Main Routine
Begin


End
Adapt-rISA
Thường được làm giảm bằng
cách sử dụng rdc A
rdc B
rdc C
rdc A
rdc C
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
• rISA_8ops có vẻ là giải pháp tốt cho adapt-rISA
Initially Marked Discarded by
Overflow
Discarded by Small
Size of the Block
Discarded by

Branch and Jump
Handling
Actually Reduced
0
50
100
150
200
250
300
350
400
Discard of instrs., qsort program – r_4444 (right) x r_8ops (left)
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ả
(1) number of fetches
(2) percentage of actual reduced instructions
(3) average size of the reduced blocks
(1) (2) (3) (4) (5)
0
10
20
30
40
50
60
70
80
90
100
f. CRC32 + Qsort
CRC32 rISA
Qsort rISA
Adapt-rISA
(4) total number of reduced blocks
(5) application's code size reduction
17th International Conference on Very
Large Scale Integration
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.

Thank you !
Questions ?

×