140 likes | 361 Views
Transmeta’s New Processor. Another way to design CPU. By Wu Cheng Meng @csie.ccu.edu.tw. What’s Crusoe CPU. X86 ISA Compatible Simple VLIW Hardware Software/Hardware Mixed Architecture Low Power Self-Turning of Clock & Voltage. Structure. Structure. X86 Applications.
E N D
Transmeta’s New Processor Another way to design CPU By Wu Cheng Meng @csie.ccu.edu.tw
What’s Crusoe CPU • X86 ISA Compatible • Simple VLIW Hardware • Software/Hardware Mixed Architecture • Low Power • Self-Turning of Clock & Voltage
Structure X86 Applications X86 Operating System X86 BIOS Code Morphing Software VLIW Processor
128 bit molecule [F]ADD ADD LD BRCC VLIW Hardware • 64/128 bits molecule • 2 Integer, 1 Float, 1 LD/ST, 1 Branch • Optimized for simple, fast and low-power
Code Morphing Layer • Started When Boot • Translate/Optimize ISA to Native ISA • Insert Instrument Code to … • Execute path analysis • Detect CPU need for efficient power consuming • Any other analysis ..
Code Morphing Layer Physical Memory on main-board 8-16M Code Morph itself And Translated Code Cache Virtual Physical Memory BIOS and OS can see
Translation Step • Interpretation • Translate one instruction at a time • Simple-minded • Optimize Code that Compilers do • Highly Optimized • Reorder the instructions and make parallelism
Special Issues for X86 • Generate Same Condition Code • Operates same 80-bit floating point • TLB has same protection bits • TLB address mapping as X86 processors
Precise Interrupt • Precise Interrupt • Shadow Registers (int / fp) • Gated Store Buffer • Commit Operation • Rollback Operation
Alias Hardware • Alias Hardware (Memory) • Reorder limited by load/store pairs • Load-and-protect • Save address and size of loaded data • Store-Under-Alias-Mask • Check alias hardware • Raise exception when overwrite
Example of Alias ld %r30, [%x] // first load from location x … st %data, [%y] // might overwrite location x ld %r31, [%x] // this accesses location X again use %31 ldp %r30, [%x] // load from location x and protect it … stam %data, [%y] // traps if it writes x use %30 // may use data from first load
Self-Modifying Code • Keep a “translated” bit in MMU • When a protected page is written • Invalidate the affected translation(s)
Low Power!!! Reduced Power Consumption mainly by reduced x86 decode logic Pentium!!! Crusoe