View
52
Download
0
Category
Tags:
Preview:
DESCRIPTION
Dynamic Translator: Firmware-Scheduled VLIW Processor. CSE 560: Team BooY@ Saurabh Gayen Brandon Heller. Table of Contents. Dynamic Translation Our Implementation Software Firmware Hardware Integrated System Conclusions Questions. What is a Dynamic Translator?. start. - PowerPoint PPT Presentation
Citation preview
Dynamic Translator: Firmware-Scheduled VLIW Processor
CSE 560: Team BooY@Saurabh GayenBrandon Heller
Table of Contents
Dynamic Translation Our Implementation
Software Firmware Hardware
Integrated System Conclusions Questions
What is a Dynamic Translator?
Execute Block
Translate Block
start
Dynamic Translation : How it fits in
MIPS External ISA
MIPS processor
MIPS programmer
VLIW Internal ISA Dynamic Translator
VLIW processor
Dynamic Translator
Dynamic Translation: Types
SoftwareJava VM, VMWare, Dynamo
CodesignedCrusoe, Efficeon
HardwarePentium, Athlon
Codesigned DT Advantages
hardware/software flexibility power efficiency dynamically optimized code ISA independence
Implementation
Software Toolchain C input MIPS binary output VLIW binary output
Firmware basic block translator
Hardware VLIW support translator support
Software Toolchain
GCC Compiler
Perl Assembler
C Code MIPS asm
MIPS binary
VLIW binary
...void swap(int* p, int* q){ int temp; temp = *p; *p = *q; *q = temp;}...
...
.type swap,@function
swap:
.ent swap
swap:
.frame $sp,72,$31
.mask0x90070000,-8
.fmask0x00000000,0
.cpload $25
subu $sp,$sp,72
...
200 00100000000001000000000000000000
204 00100000000000010000000000000001
208 00100000000000100000000000000001
212 10000000000000000000000000000000
216 10000000000000000000000000000000
220 10000000000000000000000000000000
224 …
Firmware
Execute Block
Translate Block
initializeinitialize
translate mode execute mode
branch/jump?
enter translator
read next instruction (MIPS)
write next instruction (VLIW)
loop
translate
execute next instruction (VLIW)
loop
execute
branch/jump?
…
addi $13,$13,1 nop
nop sw $10,16($0)
addi $14,$14,1 nop
sw $11,20($0) nop
nop sw $12,24($0)
nop sw $15,28($0)
nop nop
nop nop
nop nop
…
Firmware
…
addi $13,$13,1
sw $10,16($0)
addi $14,$14,1
sw $11,20($0)
sw $12,24($0)
sw $15,28($0)
nop
nop
nop
…
MIPS code VLIW codefirmware
Bundle format :
Functionality : Translate
Copy instructions into correct slot Fill other slot with nop Repeat copies until end of basic block
Execute translated block Repeat until end of basic block
MEM / BR ALU
Hardware overview
VLIW Conversion Memory Mapping DT Conversion
Hardware : VLIW Conversion
Hardware : Memory Map external view internal view
memory (0x0000 – 0x7FFF)
MIPS program
data
data_mem (0x0000 – 0x7FFF)
MIPS code
data
vliw_rom (0x8000 – 0xBFFF)
vliw_mem (0xC000 – 0xFFFF)
VLIW code translations
firmware data
VLIW firmware
Dynamic Translator: Hardware
Data Memory
Initialization
MIPS code
Firmware
VLIW MemoryData Memory
0x00 add
0x04 sw
0x08 j
VLIW ROMVLIW ROM
…
<firmware>
…
Translation : alu
addnop
VLIW MemoryData Memory
0x00 add
0x04 sw
0x08 j
Data Memory
0x00 add
0x04 sw
0x08 j
VLIW Memory
0x00 add
VLIW Memory
0x00 add nop
Translation : mem
swnop
VLIW Memory
0x00 add nop
VLIW Memory
0x00 add nop
0x08 nop
VLIW Memory
0x00 add nop
0x08 nop sw
Data Memory
0x00 add
0x04 sw
0x08 j
Translation : br
jnop
VLIW Memory
0x00 add nop
0x08 nop sw
VLIW Memory
0x00 add nop
0x08 nop sw
0x10 j
VLIW Memory
0x00 add nop
0x08 nop sw
0x10 j nop
Data Memory
0x00 add
0x04 sw
0x08 j
Execution : aluPC 0xC000
add
nop
VLIW Memory
0x00 add nop
0x08 nop sw
0x10 j nop
Execution : memPC 0xC008
nop
sw
VLIW Memory
0x00 add nop
0x08 nop sw
0x10 j nop
Execution : branchPC 0xC010
j
nopraw_loc
firmware_loc
PC 0x8000
VLIW Memory
0x00 add nop
0x08 nop sw
0x10 j nop
Conclusions
We have implemented a complete system to do dynamic translation.
We need environment in which we can more easily codesign.
Future work
Smarter translator Profiling Translation cache No known open platform for dynamic
translation researchWash U should build one!
Questions?
Recommended