10/1/2003 1
SCOPES, Vienna, 25 September 2003
Transmeta Crusoe and efficeon : Embedded VLIW as a CISC - - PowerPoint PPT Presentation
Transmeta Crusoe and efficeon : Embedded VLIW as a CISC Implementation Jim Dehnert Transmeta Corporation SCOPES, Vienna, 25 September 2003 1 10/1/2003 SCOPES, Vienna, 25 September 2003 Outline Crusoe / efficeon Background System
10/1/2003 1
SCOPES, Vienna, 25 September 2003
10/1/2003 2
SCOPES, Vienna, 25 September 2003
10/1/2003 3
SCOPES, Vienna, 25 September 2003
Code Morphing Software
Provides Compatibility Translates binary x86
instructions to equivalent
processor
Learns and improves with time
VLIW Hardware
Very Long Instruction
Word processor
Simple and fast Fewer transistors
10/1/2003 4
SCOPES, Vienna, 25 September 2003
10/1/2003 5
SCOPES, Vienna, 25 September 2003
10/1/2003 6
SCOPES, Vienna, 25 September 2003
Apps OS BIOS
CMS CMS
10/1/2003 7
SCOPES, Vienna, 25 September 2003
Interpreter
Start Interpret x86 Instruction
10/1/2003 8
SCOPES, Vienna, 25 September 2003
Interpreter
Start Exceed Translation Threshold? Interpret x86 Instruction
no yes
10/1/2003 9
SCOPES, Vienna, 25 September 2003
Interpreter
not found
Start Find Next Instruction In Tcache? Exceed Translation Threshold? Interpret x86 Instruction
no
Translate Region Store in Tcache Execute Translation from Tcache
found yes
Translator
10/1/2003 10
SCOPES, Vienna, 25 September 2003
Interpreter
not found
Start Find Next Instruction In Tcache? Exceed Translation Threshold? Interpret x86 Instruction
no
Translate Region Store in Tcache Execute Translation from Tcache
chain found yes no chain
Translator
10/1/2003 11
SCOPES, Vienna, 25 September 2003
Interpreter
not found
Start Find Next Instruction In Tcache? Exceed Translation Threshold? Interpret x86 Instruction
no
Translate Region Store in Tcache Execute Translation from Tcache
chain
Rollback
fault found yes no chain
Translator
10/1/2003 12
SCOPES, Vienna, 25 September 2003
10/1/2003 13
SCOPES, Vienna, 25 September 2003
10/1/2003 14
SCOPES, Vienna, 25 September 2003
10/1/2003 15
SCOPES, Vienna, 25 September 2003
10/1/2003 16
SCOPES, Vienna, 25 September 2003
10/1/2003 17
SCOPES, Vienna, 25 September 2003
10/1/2003 18
SCOPES, Vienna, 25 September 2003
10/1/2003 19
SCOPES, Vienna, 25 September 2003
E:{calculate rt1=%ecx, rt2=%eax; flda ft1 = [0x6959c8]} {fld ft2 = [%esi+rt2*8]; flda ft3 = [%esi+rt1*8]} L:{fadd f7 = ft2+ft3; %ecx = rt1; rt1 += 2} {fmul f7 = f7*ft3; %eax = rt2; %edi += 1} {sub.c r63 = %edi-%eax; flda ft3 = [%esi+%ecx*8]} {fst f7, [0x40+%ebp]; test p3 = leu; brc p3, L}
L: lea %ecx = (%edi,%edi,1) lea %eax = 0x1(%ebx) # %eax is invariant fldl (%esi,%eax,8) # address is invariant faddl (%esi,%ecx,8) fmull 0x6959c8 # address is invariant fstpl 0x40(%ebp,1) inc %edi cmp %eax,%edi jbe L
10/1/2003 20
SCOPES, Vienna, 25 September 2003
L: lea %ecx = (%edi,%edi,1) lea %eax = 0x1(%ebx) fldl (%esi,%eax,8) faddl (%esi,%ecx,8) fmull 0x6959c8 fstpl 0x40(%ebp,1) inc %edi cmp %eax,%edi jbe L
E:{calculate rt1=%ecx, rt2=%eax; flda ft1 = [0x6959c8]} {fld ft2 = [%esi+rt2*8]; flda ft3 = [%esi+rt1*8]} L:{fadd f7 = ft2+ft3; %ecx = rt1; rt1+=2} {fmul f7 = f7*ft3; %eax = rt2; %edi +=1} {sub.c r63 = %edi-%eax; flda ft3 = [%esi+%ecx*8]} {fst f7, [0x40+%ebp]; test p3 = leu; brc p3, L}
10/1/2003 21
SCOPES, Vienna, 25 September 2003
10/1/2003 22
SCOPES, Vienna, 25 September 2003
L: lea %ecx = (%edi,%edi,1) lea %eax = 0x1(%ebx) fldl (%esi,%eax,8) # invariant? faddl (%esi,%ecx,8) fmull 0x6959c8 # invariant? fstpl 0x40(%ebp,1) inc %edi cmp %eax,%edi jbe L
E:{calculate rt1=%ecx, rt2=%eax; flda ft1 = [0x6959c8]} {fld ft2 = [%esi+rt2*8]; flda ft3 = [%esi+rt1*8]} L:{fadd f7 = ft2+ft3; %ecx = rt1; rt1+=2} {fmul f7 = f7*ft3; %eax = rt2; %edi +=1} {sub.c r63 = %edi-%eax; flda ft3 = [%esi+%ecx*8]} {fst f7, [0x40+%ebp]; test p3 = leu; brc p3, L}
10/1/2003 23
SCOPES, Vienna, 25 September 2003
E:{calculate rt1=%ecx, rt2=%eax; flda ft1 = [0x6959c8] [a1]} {fld ft2 = [%esi+rt2*8] [a2]; flda ft3 = [%esi+rt1*8]} L:{fadd f7 = ft2+ft3; %ecx = rt1; rt1+=2} {fmul f7 = f7*ft3; %eax = rt2; %edi +=1} {sub.c r63 = %edi-%eax; flda ft3 = [%esi+%ecx*8] [a3]} {fst f7, [0x40+%ebp] [check a1,a2,a3]; test p3 = leu; brc p3, L}
10/1/2003 24
SCOPES, Vienna, 25 September 2003
Alias hardware speedup
4.6% 9.6% 4.2% 7.5% 14.2% 34.7% 14.8% 8.2% 36.0% 34.8% 13.8% 32.1% 19.0% 23.8% 18.3% 22.4% 0.0% 5.0% 10.0% 15.0% 20.0% 25.0% 30.0% 35.0% 40.0% ZD CPUmark ZD FPUmark ZD Business Winstone 2001 ZD Content Creation 2002 PCmark 2002 CPU Jpeg Decoding SuperPI 2M SPECfp2000 base 188.ammp 200.sixtrack SPECfp2000 peak 200.sixtrack SPECint2000 base 252.eon SPECint2000 peak 252.eon
10/1/2003 25
SCOPES, Vienna, 25 September 2003
10/1/2003 26
SCOPES, Vienna, 25 September 2003
10/1/2003 27
SCOPES, Vienna, 25 September 2003
10/1/2003 28
SCOPES, Vienna, 25 September 2003
10/1/2003 29
SCOPES, Vienna, 25 September 2003
10/1/2003 30
SCOPES, Vienna, 25 September 2003
10/1/2003 31
SCOPES, Vienna, 25 September 2003
10/1/2003 32
SCOPES, Vienna, 25 September 2003
10/1/2003 33
SCOPES, Vienna, 25 September 2003
10/1/2003 34
SCOPES, Vienna, 25 September 2003
10/1/2003 35
SCOPES, Vienna, 25 September 2003
10/1/2003 36
SCOPES, Vienna, 25 September 2003
test program reference system test system cosimulation control device models user interface
10/1/2003 37
SCOPES, Vienna, 25 September 2003
10/1/2003 38
SCOPES, Vienna, 25 September 2003
10/1/2003 39
SCOPES, Vienna, 25 September 2003
Mentor VStation 15M Compiled RTL, Transactors Host Software Sun host
10/1/2003 40
SCOPES, Vienna, 25 September 2003
10/1/2003 41
SCOPES, Vienna, 25 September 2003
10/1/2003 42
SCOPES, Vienna, 25 September 2003
10/1/2003 43
SCOPES, Vienna, 25 September 2003
Interpreter
not found
Start Find Next Instruction In Tcache? Exceed Translation Threshold? Interpret x86 Instruction
no
Translate Region Store in Tcache Execute Translation from Tcache
chain
Rollback
fault found yes no chain
Translator
10/1/2003 44
SCOPES, Vienna, 25 September 2003
10/1/2003 45
SCOPES, Vienna, 25 September 2003
10/1/2003 46
SCOPES, Vienna, 25 September 2003
10/1/2003 47
SCOPES, Vienna, 25 September 2003
10/1/2003 48
SCOPES, Vienna, 25 September 2003
10/1/2003 49
SCOPES, Vienna, 25 September 2003
10/1/2003 50
SCOPES, Vienna, 25 September 2003
10/1/2003 51
SCOPES, Vienna, 25 September 2003
10/1/2003 52
SCOPES, Vienna, 25 September 2003
[Klaiber00] Alexander Klaiber, “The Technology Behind the Crusoe Processors,” White paper, January 2000, http://www.transmeta.com/pdf/white_papers/paper_aklaiber_19jan00.pdf . [DGBJ+03] James C. Dehnert et al., “The Transmeta Code Morphing Software: Using Speculation, Recovery, and Adaptive Retranslation To Address Real-Life Challenges,” Proc. of the 2003 Int’l Symp. on Code Generation and Optimization, 23-25 March 2003. [KlCh03] Alexander Klaiber and Sinclair Chau, “Automatic Detection of Logic Bugs in Hardware Designs,” Proc. of the 4th Int’l Workshop on Microprocessor Test and Verification, 29-30 May 2003. US Patent Office
10/1/2003 53
SCOPES, Vienna, 25 September 2003
10/1/2003 54
SCOPES, Vienna, 25 September 2003
10/1/2003 55
SCOPES, Vienna, 25 September 2003
10/1/2003 56
SCOPES, Vienna, 25 September 2003