MIT6_004s09_lec14

MIT6_004s09_lec14 - MIT OpenCourseWare http:/ocw.mit.edu...

Info iconThis preview shows pages 1–4. Sign up to view the full content.

View Full Document Right Arrow Icon
MIT OpenCourseWare http://ocw.mit.edu For information about citing these materials or our Terms of Use, visit: http://ocw.mit.edu/terms . 6.004 Computation Structures Spring 2009
Background image of page 1

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
L14 – Building a Beta 1 6.004 – Spring 2009 3/31/09 Building the Beta Lab #5 due Thursday L14 – Building a Beta 2 6.004 – Spring 2009 3/31/09 CPU Design Tradeoffs Minimum Cost : measured by the size of the circuit. Best Performance/Price: measured by the ratio of MIPS to size. In power-sensitive applications MIPS/Wa± is important too. Maximum Performance: measured by the numbers of instructions executed per second L14 – Building a Beta 3 6.004 – Spring 2009 3/31/09 Performance Measure MIPS = Clock Frequency (MHz) C.P.I. Millions of Instructions per Second Clocks per instruction PUSHING PERFORMANCE . .. TODAY: 1 cycle/inst. LATER: more MHz via pipelining L14 – Building a Beta 4 6.004 – Spring 2009 3/31/09 The Beta ISA Instruction classes distinguished by OPCODE: OP OPC MEM Transfer of Control OpCode 6 Operate class: Reg[Rc] ± Reg[Ra] op Reg[Rb] 6 555 1 1 Ra Rc Rb (UNUSED) 0 1X XX X Operate class: Reg[Rc] ± Reg[Ra] op SXT(C) 16 Ra Rc Literal C (signed) 1 X Opcodes, both formats: ADD SUB MUL* DIV* *optional CMPEQ CMPLE CMPLT AND OR XOR SHL SHR SRA LD: Reg[Rc] ± Mem[Reg[Ra]+SXT(C)] ST: Mem[Reg[Ra]+SXT(C)] ± Reg[Rc] JMP: Reg[Rc] ± PC+4; PC ± Reg[Ra] BEQ: Reg[Rc] ± PC+4; if Reg[Ra]=0 then PC ± PC+4+4*SXT(C) BNE: LDR: Reg[Rc] ± Mem[PC + 4 + 4*SXT(C)] Reg[Rc] ± PC+4; if Reg[Ra] ² 0 then PC ± PC+4+4*SXT(C) Ra Rc Literal C (signed) 1 0X X Figure by MIT OpenCourseWare.
Background image of page 2
L14 – Building a Beta 5 6.004 – Spring 2009 3/31/09 Approach: Incremental Featurism Each instruction class can be implemented using a simple component repertoire. We’ll try implementing data paths for each class individually, and merge them (using MUXes, etc). Steps: 1. Operate instructions 2. Load & Store Instructions 3. Jump & Branch instructions 4. Exceptions 5. Merge data paths Our Bag of Components: Registers 0 1 Muxes ALU AB “Black box” ALU Data Memory WD A RD R/W Register File (3-port) RA1 RA2 WA WE WD RD1 RD2 Instruction Memory A D Memories L14 – Building a Beta 6 6.004 – Spring 2009 3/31/09 D Q 1 0 s Q D EN clk Multi-Port Register Files Register File (3-port) RA1 RA2 WA WE WD RD1 RD2 5 32 CLK Write Enable Write Address Write Data (independent Read addresses) (Independent Read Data) 32 32 2 combinational READ ports*, 1 clocked WRITE port *internal logic ensures Reg[31] reads as 0 55 dest asel bsel EN EN EN EN clk Read Port A Read Port B Write Port L14 – Building a Beta 7 6.004 – Spring 2009 3/31/09 Register File Timing CLK WE WA WD RA RD A Reg[A] A new Reg[A]
Background image of page 3

Info iconThis preview has intentionally blurred sections. Sign up to view the full version.

View Full DocumentRight Arrow Icon
Image of page 4
This is the end of the preview. Sign up to access the rest of the document.

This note was uploaded on 11/07/2011 for the course COMPUTER S 6.004 taught by Professor Staff during the Spring '09 term at MIT.

Page1 / 7

MIT6_004s09_lec14 - MIT OpenCourseWare http:/ocw.mit.edu...

This preview shows document pages 1 - 4. Sign up to view the full document.

View Full Document Right Arrow Icon
Ask a homework question - tutors are online