Lecture Introduction to computing systems (from bits & gates to C & beyond): Chapter 5 - Yale N. Patt, Sanjay J. Patel

ppt
Số trang Lecture Introduction to computing systems (from bits & gates to C & beyond): Chapter 5 - Yale N. Patt, Sanjay J. Patel 36 Cỡ tệp Lecture Introduction to computing systems (from bits & gates to C & beyond): Chapter 5 - Yale N. Patt, Sanjay J. Patel 134 KB Lượt tải Lecture Introduction to computing systems (from bits & gates to C & beyond): Chapter 5 - Yale N. Patt, Sanjay J. Patel 0 Lượt đọc Lecture Introduction to computing systems (from bits & gates to C & beyond): Chapter 5 - Yale N. Patt, Sanjay J. Patel 6
Đánh giá Lecture Introduction to computing systems (from bits & gates to C & beyond): Chapter 5 - Yale N. Patt, Sanjay J. Patel
4.3 ( 6 lượt)
Nhấn vào bên dưới để tải tài liệu
Để tải xuống xem đầy đủ hãy nhấn vào bên trên
Chủ đề liên quan

Nội dung

Introduction to Computing Systems from bits & gates to C & beyond Chapter 5 The LC-2 Instruction Set Architecture Operate instructions  Data Movement instructions  Control Instructions  Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Slides prepared by Walid A. Najjar & Brian J. Linard, University of California, Riverside ISA Overview Memory  Address space  Addressability: Word or Byte Registers  Number  Type Instructions  Operations  Data Types  Addressing Modes 5-2 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Slides prepared by Walid A. Najjar & Brian J. Linard, University of California, Riverside LC-2 Memory Organization addressability word (16 bits/location) 29 words/page = 512 address space 27 pages =128 216 locations = 64k page [15:9] 5-3 location in page [8:0] Address [16:0] Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Slides prepared by Walid A. Najjar & Brian J. Linard, University of California, Riverside General Purpose Registers (GPRs) Registers  Special “memory” that is “inside” the CPU  Very fast access: 1 clock cycle.  General Purpose Registers: addressable by an instrcution (visible to the user).  Other registers may not be accessible (not architectured) LC-2  8 general purpose registers: R0,R1,...,R7  a register can hold any 16 bit pattern - I.e. data or addresses  Other special purpose registers (later) 5-4 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Slides prepared by Walid A. Najjar & Brian J. Linard, University of California, Riverside Instructions Two main parts  Opcode: specifies what the instruction does.  Operand(s): what the instruction acts on  Instruction sets can be complex or simple LC-2  4-bit opcode => 16 instructions  up to two sources and one destination  Example: 15 14 13 12 11 10 9 0001 ADD 5-5 876 5 43 210 011 001 0 00 100 R3 R1 R4 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Slides prepared by Walid A. Najjar & Brian J. Linard, University of California, Riverside Operations Operate  Manipulate data directly  ADD, AND, NOT Data Movement  Move data between memory and registers (CPU)  LD, LDI, LDR, LEA, ST, STI, STR Control  Change the sequence of instruction execution  BR, JMP/JSR, JMPR/JSSR, RET, RTI, TRAP 5-6 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Slides prepared by Walid A. Najjar & Brian J. Linard, University of California, Riverside Data Types What data types are supported by the computer instructions?  Eg. integer, floating point, BCD, character ... LC-2: only 2's complement integers  bit strings and addresses are not data types 5-7 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Slides prepared by Walid A. Najjar & Brian J. Linard, University of California, Riverside Condition Codes 3 single-bit registers (set to 1 or cleared to 0)  N: value written was negative  Z: value written was zero  P: value written was positive  Affected each time any register is written  Condition codes are read by conditional branch instructions 5-8 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Slides prepared by Walid A. Najjar & Brian J. Linard, University of California, Riverside Addressing Modes - 1 Where is the operand?  The addressing modes provide multiple mechanisms for the instruction to specify the location of an operand. Effective Address (EA)  The address that is used to locate the operand. LC-2 supports five addressing modes:  explicitly in the instruction itself (immediate)  in a register  in memory, by specifying  the address of the operand (two modes: direct and base+offset)  the address of a location that contains the address of the operand (indirect) 5-9 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Slides prepared by Walid A. Najjar & Brian J. Linard, University of California, Riverside Immediate & Register Operands  Immediate opcode [15:12] ADD operands [11:9] DR [8:6] [5] SR1 1 [4:0] imm  If bit 5 = 1, the value in [4:0] (“immediate”) is sign extended (SEXT) to 16 bits and added to the contents of the source register SR1 ([8:6]).  Register opcode [15:12] ADD operands [11:9] DR [8:6] [5] SR1 0 [2:0] SR2  if bit 5 = 0, the contents of source register SR2 ([2:0]) are added to the contents of source register SR1 ([8:6]).  In both cases, the result goes to the destination register DR ([11:9]). 5 - 10 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Slides prepared by Walid A. Najjar & Brian J. Linard, University of California, Riverside Memory Addressing Modes  Direct addressing [15:12] LD [11:9] DR [8:0] page offset  effective address = [instruction page no.]@[page offset]  note that the 9 bit page offset (=> 512 locations) is concatenated with (not added to) the 7 bit page number (=> 128 pages)  operand location must be on the same page as current instruction  Indirect addressing [15:12] LDI [11:9] DR [8:0] page offset  Same mechanism as above, but the calculated memory location now contains the address of the operand, (i.e. the ea is indirect).  Note that the memory has to be accessed twice to get the actual operand. 5 - 11 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Slides prepared by Walid A. Najjar & Brian J. Linard, University of California, Riverside Memory Addressing Modes - 2 Base+Offset [15:12] LDR addressing [11:9] [8:6] DR BaseR [5:0] offset  effective address = (BaseRegister) + offset  zero extend (ZEXT) the 6 bit offset ([5:0]) to 16 bits  add it to the contents of the Base Register ([8:6])  differences from Direct addressing (pageoffset):  base offset is added, page offset is concatenated  base offset range is only 6 bits (=> 64 locations), page offset is 9 bits  base offset can address any location in memory, page offset only in current page 5 - 12 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Slides prepared by Walid A. Najjar & Brian J. Linard, University of California, Riverside Operate Instructions - 1  Arithmetic and Logic  arithmetic: add, subtract, multiply, divide (the LC-2 only has add)  logic: and, or, not, xor (the LC-2 only has and, not)  LC-2: ADD, AND & NOT dest reg 1001 NOT 011 010 R3 R2 dest reg 0001 ADD 5 - 13 src reg src reg 011 010 R3 R2 0 00 000 src reg 0 00 101 R5 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Slides prepared by Walid A. Najjar & Brian J. Linard, University of California, Riverside Operate Instructions - 2  Not  uses one source [8:6] register and one destination [11:9] register  bits [5:0] are all 1s.  ADD & AND  destination register in [11:9], one source register in [8:6]  other source  register operand:  if bit [5] = 0, bits [2:0] specify a register for the other source  immediate operand:  5 - 14 if bit [5] = 1, bits [4:0] specify the other source number directly, as a 5 bit 2’s complement integer, which is sign extended (SEXT) to 16 bits. Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Slides prepared by Walid A. Najjar & Brian J. Linard, University of California, Riverside ADD: Two's complement 16-bit Addition  Assembler Instruction ADD DR, SR1, SR2 ; DR = SR1 + SR2 (register addressing) ADD DR, SR1, imm5 ; DR = SR1 + Sext(imm5) (immediate addressing)  Encoding 0001 DR SR1 0 00 SR2 0001 DR SR1 1 imm5  Examples ADD R2,R3,R6 ADD R2,R3,#1  Note: Condition codes are set 5 - 15 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Slides prepared by Walid A. Najjar & Brian J. Linard, University of California, Riverside AND: Bitwise Logical AND Assembler Instruction AND DR,SR1,SR2 ; DR = SR1 AND SR2 AND DR,SR1,imm5 ; DR = SR1 AND Sext(imm5) Encoding 0101 DR SR1 0 00 SR2 0101 DR SR1 1 imm5 Examples AND R2,R3,R6 AND R2,R2,#0 ; Clear R2 to 0  Note: Condition codes are set. 5 - 16 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Slides prepared by Walid A. Najjar & Brian J. Linard, University of California, Riverside NOT: Bitwise Logical NOT Assembler Inst. NOT DR,SR ; DR = NOT SR Encoding 1001 DR SR 111111 Example NOT R2,R6  Note: Condition codes are set. 5 - 17 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Slides prepared by Walid A. Najjar & Brian J. Linard, University of California, Riverside Data Movement Instructions - 1  Move Data  from CPU register to memory => store  nominated register is Source  from memory to register => load  nominated register is Destination  also to/from I/O devices (later)  LC-2 Load/Store Instructions  LD, LDI, LDR, LEA, ST, STI, STR  Format: 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 opcode 5 - 18 DR or SR operand specifier Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Slides prepared by Walid A. Najjar & Brian J. Linard, University of California, Riverside Data Movement Instructions - 2  LC-2 Load/Store Instructions  immediate: LEA No Effective Address (EA) calculation; the value (PC[15:9] concatenated with instruction[8:0]) is loaded directly into DR - i.e. DR <= PC[15:9] @ Inst[8:0]  direct: LD & ST The EA is [15:9] from PC, [8:0] from instruction (page-offset mode)- i.e. EA = PC[15:9] @ Inst[8:0] DR <= Mem[PC[15:9] @ Inst[8:0] ]  indirect: LDI & SDI EA = Mem[ PC[15:9] @ Inst[8:0] ] DR <= Mem[Mem[ PC[15:9] @ Inst[8:0] ]  base+offset: LDR & STR (BaseReg is specified by Inst [8:6]) EA = BaseReg + Zext(Inst[5:0]) DR <= Mem[BaseReg + ZEXT(Inst[5:0])] 5 - 19 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Slides prepared by Walid A. Najjar & Brian J. Linard, University of California, Riverside LD: Load Direct Assembler Inst. LD DR, LABEL ; DR = Mem[LABEL] Encoding 0010 DR page-offset9 Examples LD R2, param Notes: The LABEL must be on the same memory page as the instruction. Condition codes are set. 5 - 20 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Slides prepared by Walid A. Najjar & Brian J. Linard, University of California, Riverside LDI: Load Indirect Assembler Inst. LDI DR, LABEL ; DR = Mem[Mem[LABEL]] Encoding 1010 DR pgoffset9 Examples LDI R2, POINTER Notes: The LABEL must be on the same memory page as the instruction. Condition codes are set. 5 - 21 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Slides prepared by Walid A. Najjar & Brian J. Linard, University of California, Riverside LDR: Load Base+Index Assembler Inst. LDR DR,BaseR,idx6 ; DR = Mem[BaseR+ZEXT(idx6)] Encoding 0110 DR BaseR index6 Examples LD R2,R3,#15 ; R2 = Mem[R3+15] Notes: The index is zero-extended to 16 bits. Condition codes are set. 5 - 22 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Slides prepared by Walid A. Najjar & Brian J. Linard, University of California, Riverside LEA: Load Effective Address Assembler Inst. LEA DR, LABEL ; DR = LABEL Encoding 1110 DR pgoffset9 (i.e. address of LABEL = PC[15:9] + pgoffset9) Examples LEA R2, DATA ; R2 gets the address of DATA Notes: The LABEL must be on the same memory page as the instruction. Condition codes are set. 5 - 23 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Slides prepared by Walid A. Najjar & Brian J. Linard, University of California, Riverside ST: Store Direct Assembler Inst. ST SR, LABEL ; Mem[LABEL] = SR Encoding 0011 SR pgoffset9 Examples ST R2, VALUE ; Mem[VALUE] = R2 Notes: The LABEL must be on the same memory page as the instruction. Condition codes are not set. 5 - 24 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Slides prepared by Walid A. Najjar & Brian J. Linard, University of California, Riverside STI: Store Indirect Assembler Inst. STI SR, LABEL ; Mem[Mem[LABEL]] = SR Encoding 0011 SR pgoffset9 Examples STI R2, POINTER ; Mem[Mem[POINTER]] = R2 Notes: The LABEL must be on the same memory page as the instruction. Condition codes are not set. 5 - 25 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Slides prepared by Walid A. Najjar & Brian J. Linard, University of California, Riverside STR: Store Base+Index Assembler Inst. STR SR, BaseR,idx6 ; Mem[BaseR+ZEXT(idx6)]=SR Encoding 0111 SR pgoffset9 Examples STR R2, R4, #15 ; Mem[R4+15] = R2 Notes: The index is zero-extended to 16 bits. Condition codes are not set. 5 - 26 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Slides prepared by Walid A. Najjar & Brian J. Linard, University of California, Riverside Addressing Examples What is the EA for the following instructions? Given: PC = x2081, R6 = x2035, LOC = x2044, Mem[LOC] = x3456 LDI R2,LOC Indirect addressing: EA = Mem[x2044] = x3456 LDR R1,R6,#12 Base+Offset addressing: EA = R6+12 = x2035 + x000C = x2041 ADD R1,R3,R2 Register addressing: DR = R1, SR1 = R3, SR2 = R2 DR <= ? ADD R5,R1,#15 Immediate addressing: DR = R5, SR1 = R1, S2 = 15 DR <= ? LD R1,LOC Direct addressing: DR <= ? 5 - 27 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Slides prepared by Walid A. Najjar & Brian J. Linard, University of California, Riverside Control Instructions Change the Program Counter  Conditionally or not  Remember where it was (subroutine calls) LC-2 Instructions  BRx, JMP/JSR, JMPR/JSRR, RET, TRAP  BRx, JMP, JSR use direct addressing  JMPR, JSRR use base+offset addressing Conditional Branch: BRx 15 14 13 12 11 0 5 - 28 0 0 0 N 10 9 8 7 6 5 4 3 2 1 0 Z P page offset Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Slides prepared by Walid A. Najjar & Brian J. Linard, University of California, Riverside BR: Conditional Branch Assembler Inst. BR LABEL BRn LABEL BRnz LABEL BRnzp LABEL BRz LABEL BRnp LABEL BRp LABEL BRzp LABEL Encoding 0000 n z p pgoffset9 Examples BRzp LOOP ; branch to LOOP if previous op returned zero or positive. Note: Branch to LABEL iff the selected condition code(s) is set 5 - 29 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Slides prepared by Walid A. Najjar & Brian J. Linard, University of California, Riverside TRAP Instruction  Used to invoke an operating system service call  Trap vectors: a list of locations of the service call routines  TRAP has one operand which indexes into the trap vector; PC is set to the value (starting point of service routine)  Some special trap vectors: * x23: input a character from the keyboard * x21: output a character to the monitor * x25: halt the program  More details later 5 - 30 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Slides prepared by Walid A. Najjar & Brian J. Linard, University of California, Riverside TRAP: Invoke a system routine Assembler Inst. TRAP trapvec Encoding 1111 0000 trapvect8 Examples TRAP x23 Note: R7 <= PC (for eventual return) PC <= mem[Zext(trapvect8)] 5 - 31 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Slides prepared by Walid A. Najjar & Brian J. Linard, University of California, Riverside Data Path - 1 Global Bus  16-bit  connects all components  is shared by all Memory  Memory Address Register: MAR  address of location to be accessed  Memory Data Register: MDR  5 - 32 data loaded or to be stored Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Slides prepared by Walid A. Najjar & Brian J. Linard, University of California, Riverside Data Path - 2 ALU & Registers  Two ALU sources   source 1: register source 2: register or instruction  Result: goes onto bus, then to DR PC & PCMUX  PC sends address to MAR for instruction fetch  PCMUX: a 4:1 mux that selects the new PC    incremented PC BR TRAP, RET or JSR (later) 5 - 33 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Slides prepared by Walid A. Najjar & Brian J. Linard, University of California, Riverside Data Path - 3 MARMUX A 3:1 mux that selects the source of MAR    Right input: direct, indirect addressing Middle input: base+offset addressing Left input: trap instruction 5 - 34 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Slides prepared by Walid A. Najjar & Brian J. Linard, University of California, Riverside Instruction Cycle - 1 Given: PC = x3456, Mem[x3456] = x6684 Fetch MAR  PC, PC PC+1 MDR  x6684 IR  MDR Decode Control logic processes the instruction: 0110 011 010 000100 : LDR R3 R2 4 Evaluate Address MAR  R2 + 4 5 - 35 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Slides prepared by Walid A. Najjar & Brian J. Linard, University of California, Riverside Instruction Cycle - 2 Operand Fetch MDR  value from memory Execute: none for LDR Store Result R3  MDR 5 - 36
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.