Transmeta Crusoe and efficeon : Embedded VLIW as a CISC - - PowerPoint PPT Presentation

transmeta crusoe and efficeon
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1

10/1/2003 1

SCOPES, Vienna, 25 September 2003

Transmeta Crusoe and efficeon:

Embedded VLIW as a CISC Implementation

Jim Dehnert Transmeta Corporation SCOPES, Vienna, 25 September 2003

slide-2
SLIDE 2

10/1/2003 2

SCOPES, Vienna, 25 September 2003

Outline

Crusoe / efficeon Background

– System Architecture – Code Morphing Software Structure – Key hardware features – Benefits CMS Paradigm: speculation, recovery, and adaptive retranslation – Example: Aggressive scheduling – exceptions and aliases – Example: Self-modifying code Co-simulation for Testing – Simulator / emulator / self Summary

slide-3
SLIDE 3

10/1/2003 3

SCOPES, Vienna, 25 September 2003

Transmeta Technology

+

Code Morphing Software

Provides Compatibility Translates binary x86

instructions to equivalent

  • perations for a simple VLIW

processor

Learns and improves with time

CMS

Microprocessor is the sum of

Good Performance x86 PC Compatibility Low Power

VLIW Hardware

Very Long Instruction

Word processor

Simple and fast Fewer transistors

=

slide-4
SLIDE 4

10/1/2003 4

SCOPES, Vienna, 25 September 2003

Advantages of CMS Approach

Simple hardware allows – Smaller, less expensive implementation – Lower power consumption Hidden VLIW architecture allows – Transparent changes in architecture – CMS can compensate for hardware bugs – Performance improvement does not require hardware changes

slide-5
SLIDE 5

10/1/2003 5

SCOPES, Vienna, 25 September 2003

Crusoe / efficeon VLIW Engines VLIW: 2 or 4 operations per instruction in Crusoe Up to 8 operations and modifiers in efficeon Functional units: ALUs, memory, FP/media, branch Registers: 64 GPRs, 64 FPRs, 4 predicates dedicated x86 subset Few hardware interlocks (CMS avoids hazards) Semantic match: addressing modes, data types, partial-word operations, condition codes

slide-6
SLIDE 6

10/1/2003 6

SCOPES, Vienna, 25 September 2003

CMS Objectives

Code Morphing Software layer provides a completely compatible implementation of the x86 architecture on the embedded VLIW processor:

  • All target instructions (including memory-mapped I/O)
  • All architectural registers
  • Compatible exception behavior

Constraints:

  • No OS assumptions or assistance
  • Only see executed code –

instructions and pages Robust performance required

Apps OS BIOS

CMS CMS

slide-7
SLIDE 7

10/1/2003 7

SCOPES, Vienna, 25 September 2003

CMS Control Structure

Interpreter

Start Interpret x86 Instruction

slide-8
SLIDE 8

10/1/2003 8

SCOPES, Vienna, 25 September 2003

CMS Control Structure

Interpreter

Start Exceed Translation Threshold? Interpret x86 Instruction

no yes

slide-9
SLIDE 9

10/1/2003 9

SCOPES, Vienna, 25 September 2003

CMS Control Structure

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

slide-10
SLIDE 10

10/1/2003 10

SCOPES, Vienna, 25 September 2003

CMS Control Structure

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

slide-11
SLIDE 11

10/1/2003 11

SCOPES, Vienna, 25 September 2003

CMS Control Structure

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

slide-12
SLIDE 12

10/1/2003 12

SCOPES, Vienna, 25 September 2003

Hardware Support for Recovery

Shadow registers: Working and shadow copies of x86 registers – Code uses working registers – Consistent x86 state preserved in shadow registers Memory is analogous – Speculative writes to working buffer – Memory contains consistent x86 state Commit operation: Copies working registers to shadow registers, releases speculative memory writes -- fast Rollback operation: Copies shadow registers to working registers, discards speculative memory writes

slide-13
SLIDE 13

10/1/2003 13

SCOPES, Vienna, 25 September 2003

CMS Is A Dynamic System

Start with interpretation – low overhead but slow execution Translate when repetition suggests benefit – higher overhead but much faster execution Re-translate if the situation changes – more or less optimization as appropriate

slide-14
SLIDE 14

10/1/2003 14

SCOPES, Vienna, 25 September 2003

CMS Is A Dynamic System

Dynamic context gives CMS significant advantages Before translating, interpreter can collect useful data: – Branch frequencies – Abnormal memory accesses (memory-mapped I/O) Translated segments can also collect data: – Prologues can count entries, e.g. for tcache management Translator can perform optimizations not available to compilers or hardware implementations: – Runtime information – Ability to rollback to consistent x86 state

slide-15
SLIDE 15

10/1/2003 15

SCOPES, Vienna, 25 September 2003

Outline

Crusoe / efficeon Background

– System Architecture – CMS Structure – Key hardware features – Benefits CMS Paradigm: speculation, recovery, and adaptive retranslation – Example: Aggressive scheduling – exceptions and aliases – Example: Self-modifying code Co-simulation for Testing – Simulator / emulator / self Summary

slide-16
SLIDE 16

10/1/2003 16

SCOPES, Vienna, 25 September 2003

The CMS Paradigm

To produce high performance while remaining perfectly faithful to the x86 architecture, the translator must optimize aggressively: – Speculation: Translator makes aggressive assumptions about code to achieve higher performance – Example assumptions:

  • operations won’t raise exceptions
  • memory operations unaliased, normal (not to I/O space)
  • no self-modifying code
  • … and many more …
slide-17
SLIDE 17

10/1/2003 17

SCOPES, Vienna, 25 September 2003

The CMS Paradigm

To produce high performance while remaining perfectly faithful to the x86 architecture, the translator must optimize aggressively: – Speculation: Translator makes aggressive assumptions about code to achieve higher performance – Recovery:

  • Commit x86 state at convenient points
  • Check assumptions and rollback if false
  • Interpret sequentially for precise conformance
slide-18
SLIDE 18

10/1/2003 18

SCOPES, Vienna, 25 September 2003

The CMS Paradigm

To produce high performance while remaining perfectly faithful to the x86 architecture, the translator must optimize aggressively: – Speculation: Translator makes aggressive assumptions about code to achieve higher performance – Recovery:

  • Commit x86 state at convenient points
  • Check assumptions and rollback if false
  • Interpret sequentially for precise conformance

– Adaptive retranslation: If recovery is required too often:

  • Retranslate with less aggressive assumptions
  • Retranslate smaller regions to minimize impact
  • Keep both translations if more aggressive usually works
slide-19
SLIDE 19

10/1/2003 19

SCOPES, Vienna, 25 September 2003

Example: Aggressive Scheduling

CMS performance depends on aggressive reordering and scheduling of code

efficeon code (with liberties):

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}

x86 code:

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

slide-20
SLIDE 20

10/1/2003 20

SCOPES, Vienna, 25 September 2003

Aggressive Scheduling – Exceptions

Problem 1: x86 has precise exception semantics x86 code:

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

efficeon code:

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}

x86 order: ecx, eax, f7a, f7b, f7c, edi

efficeon order:

f7b, ecx; f7c, eax, edi

slide-21
SLIDE 21

10/1/2003 21

SCOPES, Vienna, 25 September 2003

Problem 1: x86 has precise exception semantics Speculation: CMS translations scheduled assuming no exceptions will occur Recovery: Exception causes rollback to preceding commit point, sequential interpretation Adaptive retranslation: An instruction causing exceptions too often is isolated, and the rest of the original translated code is retranslated so it won’t need rollback

Aggressive Scheduling – Exceptions

slide-22
SLIDE 22

10/1/2003 22

SCOPES, Vienna, 25 September 2003

Aggressive Scheduling – Aliases

Problem 2: data speculation -- memory ops may be aliased x86 code:

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

efficeon code:

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}

slide-23
SLIDE 23

10/1/2003 23

SCOPES, Vienna, 25 September 2003

Problem 2: data speculation -- memory ops may be aliased Speculation: CMS assumes memory operations don’t alias unless it can determine otherwise. Loads or stores are moved past a store that might alias. Recovery: Speculated operations set an alias register unless proven not to alias. Potentially aliasing store checks alias regs.

Aggressive Scheduling – Aliases

efficeon code:

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}

slide-24
SLIDE 24

10/1/2003 24

SCOPES, Vienna, 25 September 2003

Aggressive Scheduling – Aliases

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

slide-25
SLIDE 25

10/1/2003 25

SCOPES, Vienna, 25 September 2003

Problem 2: data speculation -- memory ops may be aliased Speculation: CMS assumes memory operations don’t alias unless it can determine otherwise. Loads or stores are moved past a store that might alias. Recovery: Speculated operations set an alias register unless proven not to alias. Potentially aliasing store checks alias regs. Adaptive retranslation: Translation that takes alias faults too

  • ften is translated with conservative reordering

– Enabling adaptive retranslation improves 3D vector component of PCmark2002 by a factor of 47.5 on HW

Aggressive Scheduling – Aliases

slide-26
SLIDE 26

10/1/2003 26

SCOPES, Vienna, 25 September 2003

Self-Modifying Code (SMC)

Original problem: If the x86 code is modified, the CMS translations must be invalidated or otherwise adapt. Speculation: Normal translations assume no SMC Simple recovery: Write-protect x86 code pages, find and invalidate corresponding translations if a fault occurs Secondary problems: – Inefficient for self-modifying code: granularity too large – Can’t distinguish data in same page as code – DMA looks like SMC Costs incurred by CMS: – Handling fault, invalidating translations, special processing – Generating new translations for modified code

slide-27
SLIDE 27

10/1/2003 27

SCOPES, Vienna, 25 September 2003

SMC: Fine-Grain Protection

First refinement: Hardware support for sub-page protection granularity Only needed for a few pages at a time, allowing tiny hardware cache Greatest speedups with fine-grain protection: 1.02x 87.0% Quake Demo2 2.1x 98.2% WinStone Corel 1.6x 97.9% MultimediaMark 3.8x 98.3% Win98 Boot 2.2x 98.1% Win95 Boot Speedup Faults Recovery based on detection by fine-grain protection. But how do we adapt translations?

slide-28
SLIDE 28

10/1/2003 28

SCOPES, Vienna, 25 September 2003

SMC: Self-Revalidating Translations

Subproblem: Data stores into same region as code Adaptive retranslation: – Install prologue to check code before executing translation – Must retranslate to capture x86 code – Fine-grain fault enables prologue and disables faults – Prologue performs check and re-enables faults Tradeoff: Checking code is expensive since it runs in sequence with the translation, but efficient if translations are executed many times between (clusters of) writes Example: Quake Demo2 frame rate improves 28%

slide-29
SLIDE 29

10/1/2003 29

SCOPES, Vienna, 25 September 2003

SMC: Self-Checking Translations

Subproblem: Frequent data stores in same region as code, so self-revalidation prologue overhead is significant Adaptive retranslation: – Integrate checking code with translation – May be scheduled for maximum overlap with translation – Must always check after any stores that might modify code – Minimize expense by making smaller translation first – Disable fine-grain protection for self-checking translation Tradeoff: Much better than faults, but still expensive: – Code-size mean increase 83% (58-100%) – Path-length mean increase 51% (11-124%)

slide-30
SLIDE 30

10/1/2003 30

SCOPES, Vienna, 25 September 2003

Stylized SMC

Subproblem: True self-modifying code often just replaces immediate fields in instructions, for instance to adjust the part of an array referenced: label: lea %eax = 16(%esi) Adaptive retranslation: – Translated code gets value from x86 code space: ld %temp = [label+2] add %eax = %esi + %temp – Use self-checking or self-revalidation for bytes not used directly

slide-31
SLIDE 31

10/1/2003 31

SCOPES, Vienna, 25 September 2003

SMC: Translation Groups

Subproblem: True self-modifying code that cycles among a small number of distinct versions (Windows/9X device- independent BLT driver) Adaptive retranslation: – Keep multiple translations for a single x86 address range – If current translation fails self-revalidation, try to match others – If another matches, make it the current one

slide-32
SLIDE 32

10/1/2003 32

SCOPES, Vienna, 25 September 2003

CMS Paradigm Summary

Robust performance requires dealing with a wide variety of relatively unusual cases that are expensive when they occur All three paradigm components are important: – Speculation – Recovery – Adaptive retranslation Several hardware mechanisms are vital: – Commit / rollback – Alias registers – Fine-grain protection

slide-33
SLIDE 33

10/1/2003 33

SCOPES, Vienna, 25 September 2003

Outline

Crusoe / efficeon Background

– System Architecture – CMS Structure – Key hardware features – Benefits CMS Paradigm: speculation, recovery, and adaptive retranslation – Example: Aggressive scheduling – exceptions and aliases – Example: Self-modifying code Co-simulation for Testing – Simulator / emulator / self Summary

slide-34
SLIDE 34

10/1/2003 34

SCOPES, Vienna, 25 September 2003

Testing with Cosimulation

Crusoe / efficeon have usual processor testing issues. The software layer adds complexity: – Translation vs. interpretation – Changing translations – Rollback and re-execution Established methodology: use simulation during early development and compare against expected results Tremendous benefit from extended simulation testing methodology: cosimulation

slide-35
SLIDE 35

10/1/2003 35

SCOPES, Vienna, 25 September 2003

Cosimulation Overview

Find bugs by comparing test and reference models

test system test program reference system device models cosimulation control user interface

slide-36
SLIDE 36

10/1/2003 36

SCOPES, Vienna, 25 September 2003

Cosimulation Control

forever { advance test system to time (now + N) advance reference system to same time if (state matches) checkpoint last = now else isolate_fault(last, now) & stop }

test program reference system test system cosimulation control device models user interface

slide-37
SLIDE 37

10/1/2003 37

SCOPES, Vienna, 25 September 2003

Basic Cosimulation

x86 test program reference system test system cosimulation control device models user interface CMS on simulated efficeon x86 simulator gdb debugger

slide-38
SLIDE 38

10/1/2003 38

SCOPES, Vienna, 25 September 2003

Basic Cosimulation

Control how often simulators are compared Investigate state of system on mismatch – Automated test scripts dump information on translation, x86 state, etc., at point of failure Use checkpoints to automatically narrow point of failure System can collect statistics, traces, etc.

Key debugging tool for early-stage CMS

slide-39
SLIDE 39

10/1/2003 39

SCOPES, Vienna, 25 September 2003

Emulator Cosimulation

Can we apply cosimulation paradigm to hardware debug?

efficeon test program efficeon architectural simulator

Mentor VStation 15M Compiled RTL, Transactors Host Software Sun host

reference system test system cosimulation control device models user interface gdb debugger

slide-40
SLIDE 40

10/1/2003 40

SCOPES, Vienna, 25 September 2003

Emulator Cosimulation

Transactors added to HW model – Verilog compiled with processor RTL – Interface to host software – Access to internal test system signals – Control of system clock Successful: – Booted many operating systems, ran applications – Found many bugs, holes in test suite – Found bugs that would have produced dead silicon – Helped isolate post-silicon bugs much faster

slide-41
SLIDE 41

10/1/2003 41

SCOPES, Vienna, 25 September 2003

Self-Cosimulation

Simulator- or emulator-based cosimulation is valuable but slow – simulates everything twice CMS has two mostly independent execution engines Compare them against one another!

slide-42
SLIDE 42

10/1/2003 42

SCOPES, Vienna, 25 September 2003

Self-Cosimulation

CMS runtime x86 test program reference system cosimulation control Translations Interpretation test sytem cosimulation control user interface gdb debugger

slide-43
SLIDE 43

10/1/2003 43

SCOPES, Vienna, 25 September 2003

Self-Cosimulation

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

slide-44
SLIDE 44

10/1/2003 44

SCOPES, Vienna, 25 September 2003

Self-Cosimulation

Instruments newly created or modified translations, s.t.: Entry is redirected to prologue for setup and removal of instrumentation after some number of cosimulations A commit or exit stops translation execution: – Capture x86 state – Rollback to previously committed state – Interpret to point where translation stopped – Compare to saved x86 state

slide-45
SLIDE 45

10/1/2003 45

SCOPES, Vienna, 25 September 2003

Self-Cosimulation Details

Cosimulating forever would take a long time – Counter in prologue – remove after n executions Internal commits – only cosimulate between commits – Replace internal commits by traps – Continuing in translation after cosimulating segment terminated by commit requires saving all state Can’t cosimulate locked segments Some instructions can’t be repeated (e.g., RDTSC)

slide-46
SLIDE 46

10/1/2003 46

SCOPES, Vienna, 25 September 2003

Self-Cosimulation

Self-cosimulation behaves like normal CMS… – … so it can be cosimulated for debugging purposes Self-cosimulation on hardware: – Is not significantly slower than normal CMS … – … so it can be applied to the full test suite. Another highly valuable tool: – Found numerous hardware and CMS bugs – Usually easy to isolate: pinpoints a translation

slide-47
SLIDE 47

10/1/2003 47

SCOPES, Vienna, 25 September 2003

Outline

Crusoe / efficeon Background

– System Architecture – CMS Structure – Key hardware features – Benefits CMS Paradigm: speculation, recovery, and adaptive retranslation – Example: Aggressive scheduling – exceptions and aliases – Example: Self-modifying code Co-simulation for Testing – Simulator / emulator / self Summary

slide-48
SLIDE 48

10/1/2003 48

SCOPES, Vienna, 25 September 2003

Summary

Commit / rollback is fundamental to architecture – Allows simple translations that pass off unusual cases to interpreter – Allows translations to make aggressive assumptions and recover if wrong – Central to self-cosimulation facility

slide-49
SLIDE 49

10/1/2003 49

SCOPES, Vienna, 25 September 2003

Summary

Key paradigm for resolving compatibility/performance tension is speculation, recovery, and adaptive retranslation The devil is in the details: a successful solution must deal with unpleasant architectural details – Precise exceptions – Interrupts and DMA – Memory-mapped I/O – Self-modifying code All techniques developed for real performance problems

slide-50
SLIDE 50

10/1/2003 50

SCOPES, Vienna, 25 September 2003

Summary

Valuable test paradigm: cosimulation – Basic cosimulation for CMS development under simulation – Emulator cosimulation for pre-silicon hardware – Self-cosimulation for CMS+HW test on silicon – All have been invaluable for detecting and isolating bugs

slide-51
SLIDE 51

10/1/2003 51

SCOPES, Vienna, 25 September 2003

Summary

CMS is unique: – Commercially available, fully compatible x86 implementation – VLIW architecture is simple and unconstrained – CMS software layer provides flexibility – Performance comparable to a pure hardware implementation

slide-52
SLIDE 52

10/1/2003 52

SCOPES, Vienna, 25 September 2003

Questions?

For more information

[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

slide-53
SLIDE 53

10/1/2003 53

SCOPES, Vienna, 25 September 2003

Related Work I

Software emulation system classifications (Altman): – Interpreters – Static (offline) translators – Dynamic (online) translators and optimizers CMS contains an interpreter and a dynamic translator Self-hosted vs. cross-hosted

slide-54
SLIDE 54

10/1/2003 54

SCOPES, Vienna, 25 September 2003

Related Work II

Self-hosted systems: usually optimization or instrumentation – HP Labs’ Dynamo and DELI – Can fall back on native execution:

  • No need to deal with problematic or optimal code

Virtual target emulators: – IBM migration of AS/400 to PowerPC – Java virtual machines: Sun HotSpot, IBM Jalapeño, LaTTe – Similar tradeoffs between translation cost and code quality, but much more tightly controlled “machine” semantics

slide-55
SLIDE 55

10/1/2003 55

SCOPES, Vienna, 25 September 2003

Related Work III

Cross-hosted emulators for system migration – DEC tools: static translators

  • VEST: VAX/VMS to Alpha/OpenVMS
  • mx: MIPS/Ultrix to Alpha/OSF1

– New host usually much faster than target – Escape valve: port to native host code – DEC FX!32: x86/WinNT to Alpha/WinNT – Interpreter with offline static translator and database – Imperfect emulation: 64-bit FP, no WindowsNT debug API – HP Aries: HP-PA to IA-64 – Interpreter with dynamic translator

slide-56
SLIDE 56

10/1/2003 56

SCOPES, Vienna, 25 September 2003

Related Work IV

Migration tools to capture another vendor’s applications – Hunter System’s XDOS: x86 DOS on RISC – Modest performance requirements – Special-case and manual intervention Closest match to CMS: IBM Research DAISY – PowerPC or System/390 to tree VLIW – Interpreter and dynamic translator – Different region selection (tree regions) – State repair for precise exceptions – Only fine-grain protection for SMC