Processor Prof Hakim Weatherspoon CS 3410 Spring 2015
- Slides: 61
Processor Prof. Hakim Weatherspoon CS 3410, Spring 2015 Computer Science Cornell University See P&H Chapter: 2. 16 -2. 20, 4. 1 -4. 4, Appendix B
Announcements Project Partner finding assignment on CMS Office hours over break
Announcements Make sure to go to your Lab Section this week Lab 2 due in class this week (it is not homework) Lab 1: Completed Lab 1 due this Friday, Feb 13 th, before winter break Note, a Design Document is due when you submit Lab 1 final circuit Work alone Save your work! • Save often. Verify file is non-zero. Periodically save to Dropbox, email. • Beware of Mac. OSX 10. 5 (leopard) and 10. 6 (snow-leopard) Homework 1 is out Due a week before prelim 1, Monday, February 23 rd Work on problems incrementally, as we cover them in lecture (i. e. part 1) Office Hours for help Work alone, BUT use your resources • Lab Section, Piazza. com, Office Hours • Class notes, book, Sections, CSUGLab
Announcements Check online syllabus/schedule • http: //www. cs. cornell. edu/Courses/CS 3410/2015 sp/schedule. html • • • Slides and Reading for lectures Office Hours Pictures of all TAs Homework and Programming Assignments Dates to keep in Mind • • Prelims: Tue Mar 3 rd and Thur April 30 th Lab 1: Due this Friday, Feb 13 th before Winter break Proj 2: Due Thur Mar 26 th before Spring break Final Project: Due when final would be (not known until Feb 14 th Schedule is subject to change
Collaboration, Late, Re-grading Policies “Black Board” Collaboration Policy • Can discuss approach together on a “black board” • Leave and write up solution independently • Do not copy solutions Late Policy • Each person has a total of four “slip days” • Max of two slip days for any individual assignment • Slip days deducted first for any late assignment, cannot selectively apply slip days • For projects, slip days are deducted from all partners • 25% deducted per day late after slip days are exhausted Regrade policy • Submit written request to lead TA, and lead TA will pick a different grader • Submit another written request, lead TA will regrade directly • Submit yet another written request for professor to regrade.
Big Picture: Building a Processor memory inst +4 register file +4 =? PC control offset new pc alu target imm cmp extend A Single cycle processor addr din dout memory
Goal for Today Understanding the basics of a processor We now have enough building blocks to build machines that can perform non-trivial computational tasks Putting it all together: • Arithmetic Logic Unit (ALU)—Lab 0 & 1, Lecture 2 & 3 • Register File—Lecture 4 and 5 • Memory—Lecture 5 – SRAM: cache – DRAM: main memory • Instruction-types • Instruction Datapaths
MIPS Register File memory inst +4 register file +4 =? PC control offset new pc alu target imm cmp extend A Single cycle processor addr din dout memory
MIPS Register file MIPS register file • 32 registers, 32 -bits each QA (with r 0 wired to zero) 32 DW Dual-Read-Port Single-Write-Port Q • Write port indexed via RW B 32 x 32 – Writes occur on falling edge Register File but only if WE is high • Read ports indexed via RA, RB WE R R R 1 W A B 5 5 5 32 32
MIPS Register file MIPS register file • 32 registers, 32 -bits each (with r 0 wired to zero) 32 W • Write port indexed via RW – Writes occur on falling edge but only if WE is high • Read ports indexed via RA, RB A r 1 r 2 … r 31 WE 1 B RW RA RB 5 5 5 32 32
MIPS Register file Registers • • Numbered from 0 to 31. Each register can be referred by number or name. $0, $1, $2, $3 … $31 Or, by convention, each register has a name. – $16 - $23 $s 0 - $s 7 – $8 - $15 $t 0 - $t 7 – $0 is always $zero. – Patterson and Hennessy p 105.
MIPS Memory memory inst +4 register file +4 =? PC control offset new pc alu target imm cmp extend A Single cycle processor addr din dout memory
MIPS Memory Din • 32 -bit address 32 • 32 -bit data (but byte addressed) • Enable + 2 bit memory control (mc) 00: read word (4 byte aligned) 01: write byte 10: write halfword (2 byte aligned) 11: write word (4 byte aligned) Dout memory 32 addr 0 x 05 2 mc 32 E 0 x 00000001 0 x 00000002 0 x 00000003 0 x 00000004 0 x 00000005 0 x 00000006 0 x 00000007
Putting it all together: Basic Processor memory inst +4 register file +4 =? PC control offset new pc alu target imm cmp extend A Single cycle processor addr din dout memory
To make a computer Need a program Stored program computer Architectures von Neumann architecture Harvard (modified) architecture
To make a computer Need a program Stored program computer (a Universal Turing Machine) Architectures von Neumann architecture Harvard (modified) architecture
Putting it all together: Basic Processor Let’s build a MIPS CPU • …but using (modified) Harvard architecture Registers ALU CPU Control data, address, control 1010000 10110000011 0010101. . . Program Memory 00100000001 001000000100. . . Data Memory
Takeaway A processor executes instructions • Processor has some internal state in storage elements (registers) A memory holds instructions and data • (modified) Harvard architecture: separate insts and data • von Neumann architecture: combined inst and data A bus connects the two We now have enough building blocks to build machines that can perform non-trivial computational tasks
Next Goal How to program and execute instructions on a MIPS processor?
Levels of Interpretation: Instructions for (i = 0; i < 10; i++) printf(“go cucs”); Programs written in a High Level Language • C, Java, Python, Ruby, … • Loops, control flow, variables main: addi r 2, r 0, 10 addi r 1, r 0, 0 loop: slt r 3, r 1, r 2. . . op=addi r 0 r 2 Need translation to a lowerlevel computer understandable format 10 00100000000000001010 0010000000000000000100001100000101010 op=reg r 1 r 2 r 3 ALU, Control, Register File, … • Assembly is human readable machine language • Processors operate on Machine Language func=slt Machine Implementation
Levels of Interpretation: Instructions for (i = 0; i < 10; i++) printf(“go cucs”); r 2 • No symbols (except labels) • One operation per statement 10 00100000000000001010 0010000000000000000100001100000101010 op=reg r 1 r 2 • C, Java, Python, Ruby, … • Loops, control flow, variables Assembly Language main: addi r 2, r 0, 10 addi r 1, r 0, 0 loop: slt r 3, r 1, r 2. . . op=addi r 0 High Level Language r 3 ALU, Control, Register File, … func=slt Machine Langauge • Binary-encoded assembly • Labels become addresses Machine Implementation
Instruction Usage 10 Instructions are stored in op=addi r 0 r 2 00100000000000001010 memory, encoded in 0010000000000000000100001100000101010 binary A basic processor addr data • fetches • decodes • executes one instruction at a time pc cur inst adder decode regs execute
MIPS Design Principles Simplicity favors regularity • 32 bit instructions Smaller is faster • Small register file Make the common case fast • Include support for constants Good design demands good compromises • Support for different type of interpretations/classes
Instruction Types Arithmetic • add, subtract, shift left, shift right, multiply, divide Memory • load value from memory to a register • store value to memory from a register Control flow • unconditional jumps • conditional jumps (branches) • jump and link (subroutine call) Many other instructions are possible • vector add/sub/mul/div, string operations • manipulate coprocessor • I/O
Instruction Set Architecture The types of operations permissible in machine language define the ISA • MIPS: load/store, arithmetic, control flow, … • VAX: load/store, arithmetic, control flow, strings, … • Cray: vector operations, … Two classes of ISAs • Reduced Instruction Set Computers (RISC) • Complex Instruction Set Computers (CISC) We’ll study the MIPS ISA in this course
Instruction Set Architecture (ISA) • Different CPU architecture specifies different set of instructions. Intel x 86, IBM Power. PC, Sun Sparc, MIPS, etc. MIPS • ≈ 200 instructions, 32 bits each, 3 formats – mostly orthogonal • all operands in registers – almost all are 32 bits each, can be used interchangeably • ≈ 1 addressing mode: Mem[reg + imm] x 86 = Complex Instruction Set Computer (Cl. SC) • > 1000 instructions, 1 to 15 bytes each • operands in special registers, general purpose registers, memory, on stack, … – can be 1, 2, 4, 8 bytes, signed or unsigned • 10 s of addressing modes – e. g. Mem[segment + reg*scale + offset]
Instructions Load/store architecture • Data must be in registers to be operated on • Keeps hardware simple Emphasis on efficient implementation Integer data types: • byte: 8 bits • half-words: 16 bits • words: 32 bits MIPS supports signed and unsigned data types
MIPS instruction formats All MIPS instructions are 32 bits long, has 3 formats R-type op 6 bits I-type op 6 bits J-type rs rt 5 bits rs rt rd shamt func 5 bits 6 bits immediate 5 bits 16 bits op immediate (target address) 6 bits 26 bits
MIPS Design Principles Simplicity favors regularity • 32 bit instructions Smaller is faster • Small register file Make the common case fast • Include support for constants Good design demands good compromises • Support for different type of interpretations/classes
Takeaway A MIPS processor and ISA (instruction set architecture) is an example a Reduced Instruction Set Computers (RISC) where simplicity is key, thus enabling us to build it!!
Next Goal How are instructions executed? What is the general datapath to execute an instruction?
Instruction Usage 10 Instructions are stored in op=addi r 0 r 2 00100000000000001010 memory, encoded in 0010000000000000000100001100000101010 binary A basic processor addr data • fetches • decodes • executes one instruction at a time pc cur inst adder decode regs execute
Five Stages of MIPS Datapath Prog. inst Mem +4 PC ALU Reg. File Data Mem 555 control Fetch Decode Execute A Single cycle processor Memory WB
Five Stages of MIPS datapath Basic CPU execution loop 1. 2. 3. 4. 5. Instruction Fetch Instruction Decode Execution (ALU) Memory Access Register Writeback Instruction types/format • Arithmetic/Register: • Arithmetic/Immediate: • Memory: • Control/Jump: addu $s 0, $s 2, $s 3 slti $s 0, $s 2, 4 lw $s 0, 20($s 3) j 0 xdeadbeef
Stages of datapath (1/5) Stage 1: Instruction Fetch • Fetch 32 -bit instruction from memory. (Instruction cache or memory) • Increment PC accordingly. – +4, byte addressing – +N Prog. inst Mem +4 PC
Stages of datapath (1/5) Prog. inst Mem +4 PC ALU Reg. File Data Mem 555 control Fetch Decode Execute A Single cycle processor Memory WB
Stages of datapath (2/5) Stage 2: Instruction Decode • Gather data from the instruction • Read opcode to determine instruction type and field length • Read in data from register file – E. g. for addu, read two registers. – E. g. for addi, read one registers. – E. g. for jal, read no registers. Reg. File 555 control
Stages of datapath (2/5) All MIPS instructions are 32 bits long, has 3 formats R-type op 6 bits I-type op 6 bits J-type rs rt 5 bits rs rt rd shamt func 5 bits 6 bits immediate 5 bits 16 bits op immediate (target address) 6 bits 26 bits
Stages of datapath (2/5) Prog. inst Mem +4 PC ALU Reg. File Data Mem 555 control Fetch Decode Execute A Single cycle processor Memory WB
Stages of datapath (3/5) Stage 3: Execution (ALU) • Useful work is done here (+, -, *, /), shift, logic operation, comparison (slt). • Load/Store? – lw $t 2, 32($t 3) – Compute the address of the memory. ALU
Stages of datapath (3/5) Prog. inst Mem +4 PC ALU Reg. File Data Mem 555 control Fetch Decode Execute A Single cycle processor Memory WB
Stages of datapath (4/5) Stage 4: Memory access • Used by load and store instructions only. • Other instructions will skip this stage. If lw Data from memory Target addr from ALU If sw Data to store from reg to mem R/W Data Mem
Stages of datapath (4/5) Prog. inst Mem +4 PC ALU Reg. File Data Mem 555 control Fetch Decode Execute A Single cycle processor Memory WB
Stages of datapath (5/5) Stage 5: • For instructions that need to write value to register. • Examples: arithmetic, logic, shift, etc, load. • Store, branches, jump? ? PC Write. Back from ALU or Memory New instruction address If branch or jump Reg. File
Stages of datapath (5/5) Prog. inst Mem +4 Data Mem 555 PC Fetch ALU Reg. File control Decode Execute Memory WB
Full Datapath Prog. inst Mem +4 Data Mem 555 PC Fetch ALU Reg. File control Decode Execute Memory WB
Takeaway The datapath for a MIPS processor has five stages: 1. 2. 3. 4. 5. Instruction Fetch Instruction Decode Execution (ALU) Memory Access Register Writeback This five stage datapath is used to execute all MIPS instructions
Next Goal Specific datapaths MIPS Instructions
MIPS Instruction Types Arithmetic/Logical • R-type: result and two source registers, shift amount • I-type: 16 -bit immediate with sign/zero extension Memory Access • load/store between registers and memory • word, half-word and byte operations Control flow • conditional branches: pc-relative addresses • jumps: fixed offsets, register absolute
MIPS instruction formats All MIPS instructions are 32 bits long, has 3 formats R-type op 6 bits I-type op 6 bits J-type rs rt 5 bits rs rt rd shamt func 5 bits 6 bits immediate 5 bits 16 bits op immediate (target address) 6 bits 26 bits
Arithmetic Instructions 0000000110000000100110 op 6 bits rs rt 5 bits rd - func 5 bits 6 bits R-Type op 0 x 0 func 0 x 21 mnemonic ADDU rd, rs, rt description R[rd] = R[rs] + R[rt] 0 x 0 0 x 23 0 x 25 0 x 26 0 x 27 SUBU rd, rs, rt OR rd, rs, rt XOR rd, rs, rt NOR rd, rs rt R[rd] = R[rs] – R[rt] R[rd] = R[rs] | R[rt] R[rd] = R[rs] R[rt] R[rd] = ~ ( R[rs] | R[rt] ) ex: r 4 = r 8 r 6 # XOR r 4, r 8, r 6
Arithmetic and Logic Prog. inst Mem +4 PC r 8 r 4 555 control Fetch ALU Reg. File Decode r 6 xor Execute Memory skip ex: r 4 = r 8 r 6 # XOR r 4, r 8, r 6 WB
Arithmetic Instructions: Shift 0000000100000110000000 op 6 bits - rt 5 bits rd shamt func 5 bits R-Type 6 bits op 0 x 0 func 0 x 0 mnemonic SLL rd, rt, shamt description R[rd] = R[rt] << shamt 0 x 0 0 x 2 0 x 3 SRL rd, rt, shamt SRA rd, rt, shamt R[rd] = R[rt] >>> shamt (zero ext. ) R[rd] = R[rt] >> shamt (sign ext. ) ex: r 8 = r 4 * 64 r 8 = r 4 << 6 # SLL r 8, r 4, 6
Shift Prog. inst Mem r 8 +4 r 4 555 PC shamt Fetch ALU Reg. File sll control Decode shamt = 6 sll Execute Memory skip ex: r 8 = r 4 * 64 r 8 = r 4 << 6 # SLL r 8, r 4, 6 WB
Arithmetic Instructions: Immediates 001001001010000000101 op 6 bits rs rd 5 bits immediate I-Type 16 bits op 0 x 9 mnemonic ADDIU rd, rs, imm description R[rd] = R[rs] + sign_extend(imm) imm 0 xc 0 xd ANDI rd, rs, imm ORI rd, rs, imm R[rd] = R[rs] & zero_extend(imm) imm R[rd] = R[rs] | zero_extend(imm) imm ex: r 5 = r 5 + 5 # ADDIU r 5, 5 r 5 += 5 What if immediate is negative? ex: r 5 += -1 ex: r 5 += 65535
Immediates Prog. inst Mem r 5 +4 555 PC ALU Reg. File addiu control 5 imm extend shamt ex: r 5 = r 5 + 5 r 5 += 5 Fetch Decode # ADDIU r 5, 5 Execute Memory skip WB
Immediates Prog. inst Mem r 5 +4 555 PC ALU Reg. File addiu control 5 imm extend shamt ex: r 5 = r 5 + 5 r 5 += 5 Fetch Decode # ADDIU r 5, 5 Execute Memory skip WB
Arithmetic Instructions: Immediates 00111100000001010000000101 op 6 bits op 0 x. F - rd 5 bits mnemonic LUI rd, imm ex: r 5 = 0 x 50000 immediate 16 bits description R[rd] = imm << 16 # LUI r 5, 5 What does r 5 = ? ex: LUI r 5, 0 xdead r 5 = 0 xdeadbeef ORI r 5, r 5 0 xbeef I-Type
Immediates Prog. inst Mem r 5 ALU Reg. File liu +4 555 PC 5 control imm liu 16 extend shamt ex: r 5 = 0 x 50000 Fetch Decode # LUI r 5, 5 Execute Memory skip WB
MIPS Instruction Types Arithmetic/Logical • R-type: result and two source registers, shift amount • I-type: 16 -bit immediate with sign/zero extension Memory Access • load/store between registers and memory • word, half-word and byte operations Control flow • conditional branches: pc-relative addresses • jumps: fixed offsets, register absolute Next Time
Summary We have all that it takes to build a processor! • Arithmetic Logic Unit (ALU)—Lab 0 & 1, Lecture 2 & 3 • Register File—Lecture 4 and 5 • Memory—Lecture 5 – SRAM: cache – DRAM: main memory A MIPS processor and ISA (instruction set architecture) is an example a Reduced Instruction Set Computers (RISC) where simplicity is key, thus enabling us to build it!! We know the data path for the MIPS ISA register and memory instructions
- Hakim weatherspoon
- Hakim weatherspoon
- Spring break 2015
- Cs 3410
- Cs 3410
- Rfc3410
- Cs 3410
- Cornell cs 3410
- Cs 3410
- Cornell cs 3410
- Cs 3410
- Cast of spring, summer, fall, winter... and spring
- Summer autumn winter spring months
- Kuva-yi milliye'yi amil ve milli iradeyi hakim kılma
- Hakim boulouiz
- Wasim hakim
- Argumentum per analogiam
- Hakim isa
- Dedi budiman hakim
- Hakim salim khan
- Dr zahra hakim
- Cecep maskanul hakim
- Nazar al-nafi’at adalah nama dari
- Dr mazen al hakim
- Metar few sct bkn ovc
- Hakim abdul hameed
- Personal hypertext processor
- 8 bit processor
- Digital transparent processor
- Dedicated processor assignment
- Xsl processor
- Fail stop processor
- Scalable processor architecture
- Architecture building blocks examples
- 8051 boolean processor
- Instruction types
- Digital signal processor architecture
- Kecepatan sebuah cpu dalam komputer diukur dalam satuan
- Single purpose processor
- Risc
- Razor processor
- Design metrics of embedded system
- Inter processor arbitration
- Application domain and execution domain
- I o interface
- Tilera processor
- Sop for vacuum infiltration processor
- Pdp(personal data processor)
- Ibm processor value unit
- Multi core processor history
- Macro instruction
- 8088 microprocessor pin diagram
- Nucleus 8 sound processor
- Warp processor
- What is a word processor
- Instruction set
- Hangul viewer
- Orthographic dyslexia
- Word processing ppt
- Difference between horizontal retrace and vertical retrace
- Store4memory
- Image picker