ISA ISA Accumulator hardwired unpipelined CISC microcoded RISC
- Slides: 114
ISA的实现 • ISA 通常设计时会考虑特定的微体系结构(实现)方式。 – – Accumulator hardwired, unpipelined (硬布线、非流水) CISC microcoded (微程序) RISC hardwired, pipelined(硬布线、流水线) VLIW fixed-latency in-order parallel pipelines (固定延 时、顺序执行、多条流水线并行) – JVM software interpretation(软件解释) • ISA 理论上可以用任何微体系结构(实现)方式 – Intel Ivy Bridge: hardwired pipelined CISC (x 86) machine (with some microcode support) (硬布线流水化(部分微程 序支持)) – Spike: Software-interpreted RISC-V machine (模拟器) – ARM Jazelle: A hardware JVM processor 2020/10/30 6
Recap:ISA 的演进 2020/10/30 7
Recap: 尾端问题 • little endian, big endian, 在一个字内部的字节顺序问题 • 如地址xxx 00指定了一个字(int), 存储器中从xxx 00处 连续存放ffff 0000, 则有两种方式: – Little endian 方式下xxx 00位置是字的最低字节,整数值为 0000 ffff, Intel 80 x 86, DEC Vax, DEC Alpha (Windows NT) – Big endian 方式下xxx 00位置是字的最高字节,整数值为ffff 0000, IBM 360/370, Motorola 68 k, MIPS, Sparc, HP PA 2020/10/30 11
偏移寻址 • 主要问题:偏移的范围(偏移量的大小) Alpha Architecture with full optimization for Spec CPU 2000, showing the average of integer programs(CINT 2000) and the average of floating-point programs (CFP 2000) 2020/10/30 15
立即数寻址 Alpha Architecture with full optimization for Spec CPU 2000, showing the average of integer programs(CINT 2000) and the average of floating-point programs (CFP 2000) 2020/10/30 16
立即数的大小 The distribution of immediate values. About 20% were negative for CINT 2000 and about 30% were negative for CFP 2000. These measurements were taken on a Alpha, where the maximum immediate is 16 bits, for the spec cpu 2000 programs. A similar measurement on the VAX, which supported 32 -bit immediates, showed that about 20% to 25% of immediates were longer than 16 bits. 2020/10/30 17
常用操作数类型 • ASCII character = 1 byte (64 -bit register can store 8 characters • Unicode character or Short integer = 2 bytes = 16 bits (half word) • Integer = 4 bytes = 32 bits (word size on many RISC Processors) • Single-precision float = 4 bytes = 32 bits (word size) • Long integer = 8 bytes = 64 bits (double word) • Double-precision float = 8 bytes = 64 bits (double word) • Extended-precision float = 10 bytes = 80 bits (Intel architecture) • Quad-precision float = 16 bytes = 128 bits 2020/10/30 20
ISA Summary MIPS Free and Open SPARC √ Compressed Instructions √ √ Open. RISC 80 x 86 √ √ √ Partial √ IEEE 754 -2008 2020/10/30 ARMv 8 √ Separate Privileged ISA Classically Virtualizable ARMv 7 √ 64 -bit Address Position-Indep. Code Alpha √ √ √ √ 37
Top 10 80 x 86 Instructions 2020/10/30 41
RISC指令集结构的功能设计 • 采用RISC体系结构的微处理器 – SUN Microsystem: SPARC, Super. SPARC, Ulta SPARC – SGI: MIPS R 4000, R 5000, R 10000, – IBM: Power PC – Intel: 80860, 80960 – DEC: Alpha – Motorola 88100 – HP HP 300/930系列,950系列 – ARM,MIPS – RISC-V 2020/10/30 49
控制类指令 • 四种类型的控制流改变: – 条件分支( Conditional branch) 、跳转(Jump)、过程调用 (Procedure calls)、过程返回(Procedure returns) Alpha Architecture with full optimization for Spec CPU 2000, showing the average of integer programs(CINT 2000) and the average of floating-point programs (CFP 2000) 2020/10/30 53
转移目标地址与当前指令的距离 Alpha Architecture with full optimization for Spec CPU 2000, showing the average of integer programs(CINT 2000) and the average of floating-point programs (CFP 2000) 建议:PC-relative 寻址,偏移地址至少 8位 2020/10/30 55
分支比较类型比较 Alpha Architecture with full optimization for Spec CPU 2000, showing the average of integer programs(CINT 2000) and the average of floating-point programs (CFP 2000) 2020/10/30 56
指令编码 Variable: … … Fixed: Hybrid: 2020/10/30 57
MIPS 寻址方式/指令格式 • 所有指令都是 32位宽 Register (direct) op rs rt rd register Immediate Base+index op rs rt immed register PC-relative op rs PC rt Memory + immed Memory + • Register Indirect? 2020/10/30 59
ISA的演进 2020/10/30 61
Recap:MIPS控制类指令 指令举例 指令名称 含义 J name 跳转 PC 36·· 63← name<<2 JAL name 跳转并链接 Regs[R 31]←PC+4;PC 36·· 63←name<<2; ((PC+4)-227)≤name<((PC+4)+227) JALR JR R 3 R 5 BEQZ R 4,name 寄存器跳转并链接 Regs[R 31]←PC+4;PC← Regs[R 3] 寄存器跳转 PC← Regs[R 5] 等于零时分支 if(Regs[R 4]== 0) PC←name ; ((PC+4)-217)≤name<((PC+4)+217) BNE R 3,R 4,name 不相等时分支 if(Regs[R 3]!= Regs[R 4]) PC←name ((PC+4)-217)≤name<((PC+4)+217) MOVZ R 1,R 2,R 3 2020/10/30 等于零时移动 if(Regs[R 3]==0) Regs[R 1]← Regs[R 2] 73
RISC-V子集命名约定 2020/10/30 79
RISC-V 指令格式 Reg. Source 2 Additional opcode bits/immediate 2020/10/30 7 -bit opcode field Destination Reg. (but low 2 bits =112) Reg. Source 1 82
RISC-V 指令执行阶段 • • Instruction Fetch Instruction Decode Register Fetch ALU Operations Optional Memory Operations Optional Register Writeback Calculate Next Instruction Address 2020/10/30 87
控制部分与数据通路 • 处理器设计可以分为datapath和Control设计两部分 – datapath, 存储数据、算术逻辑运算单元 – control, 控制数据通路上的一系列操作 § 早期的计算机设计者的最大挑战 Control Registers ALU Busy? Address Data Inst. Reg. PC Datapath 是控制逻辑的正确性 Instruction Control Lines Condition? § Maurice Wilkes 提出了微程序设 计的概念来设计处理器的控制逻 辑(EDSAC-II, 1958) § 当时的技术水平 Main Memory 2020/10/30 - Logic: Vacuum Tubes - Main Memory: Magnetic cores - Read-Only Memory: Diode matrix, punched metal cards, … - Cost: Logic > RAM > ROM - Speed: ROM > RAM 88
微程序控制RISC-V的单总线数据通路 Reg. En ALU Mem. W MALd Reg. W BLd ALUOp B A ALUEn Mem. Address Data Out In Busy? Condition? ALd Address Registers Imm. Sel Immediate Imm. En Reg. Sel Register RAM PC Inst. Ld Instruction Reg. rs 1 rs 2 rd 32 (PC) Opcode Main Memory Mem. En 微指令的寄存器传输级表示: • • • MA: =PC means Reg. Sel=PC; Reg. W=0; Reg. En=1; MALd=1 B: =Reg[rs 2] means Reg. Sel=rs 2; Reg. W=0; Reg. En=1; BLd=1 Reg[rd]: =A+B means ALUop=Add; ALUEn=1; Reg. Sel=rd; Reg. W=1 2020/10/30 89
微程序控制 CPU Next State Condition Opcode Busy? µPC Microcode ROM (holds fixed µcode instructions) Decoder Control Lines Datapath Address Data Main Memory (holds user program written in macroinstructions, e. g. , x 86, RISC-V) 2020/10/30 90
Microcode示意 (1) Instruction Fetch: MA, A: =PC PC: =A+4 wait for memory IR: =Mem dispatch on opcode ALU: A: =Reg[rs 1] B: =Reg[rs 2] Reg[rd]: =ALUOp(A, B) goto instruction fetch ALUI: A: =Reg[rs 1] B: =Imm. I //Sign-extend 12 b immediate Reg[rd]: =ALUOp(A, B) goto instruction fetch 2020/10/30 91
Microcode 示意 (2) LW: A: =Reg[rs 1] B: =Imm. I //Sign-extend 12 b immediate MA: =A+B wait for memory Reg[rd]: =Mem goto instruction fetch JAL: Reg[rd]: =A // Store return address A: =A-4 // Recover original PC B: =Imm. J // Jump-style immediate PC: =A+B goto instruction fetch Branch: A: =Reg[rs 1] B: =Reg[rs 2] if (!ALUOp(A, B)) goto instruction fetch //Not taken A: =PC //Microcode fall through if branch taken A: =A-4 B: =Imm. B// Branch-style immediate PC: =A+B goto instruction fetch 2020/10/30 92
采用 ROM 实现微程序控制 Opcode Cond? Busy? µPC Address ROM Data Next µPC Control Signals • How many address bits? |µaddress| = |µPC|+|opcode|+ 1 • How many data bits? |data| = |µPC|+|control signals| = |µPC| + 18 • Total ROM size = 2|µaddress|x|data| 2020/10/30 93
ROM 中的内容 Address µPC Opcode Cond? Busy? fetch 0 X X X fetch 1 X X 1 fetch 1 X X 0 fetch 2 ALU X X fetch 2 ALUI X X fetch 2 LW X X …. | Data | Control Lines | MA, A: =PC | | IR: =Mem | PC: =A+4 ALU 0 X ALU 1 X ALU 2 X | A: =Reg[rs 1] ALU 1 | B: =Reg[rs 2] ALU 2 | Reg[rd]: =ALUOp(A, B) fetch 0 2020/10/30 X X X Next µPC fetch 1 fetch 2 ALU 0 ALUI 0 LW 0 94
单总线 RISC-V 微程序控制引擎 Reducing Control Store Size Opcode fetch 0 |µaddress| = |µPC|+|opcode|+ 1 |data| = |µPC|+|control signals| Decode Total ROM size = 2|µaddress|x|data| µPC Cond? Busy? µPC Jump Logic +1 Address ROM Data µPC jump Control Signals µPC jump = next | spin | fetch | dispatch | ftrue | ffalse 2020/10/30 96
µPC Jump 类型 • next :increments µPC • spin :waits for memory • fetch :jumps to start of instruction fetch • dispatch :jumps to start of decoded opcode group • ftrue/ffalse :jumps to fetch if Cond? true/false 2020/10/30 97
微程序控制存储器ROM中的内容 µPC fetch 0 fetch 1 fetch 2 Address | Data | Control Lines | MA, A: =PC | IR: =Mem | PC: =A+4 Next µPC next spin dispatch ALU 0 ALU 1 ALU 2 | A: =Reg[rs 1] | B: =Reg[rs 2] | Reg[rd]: =ALUOp(A, B) next fetch Branch 0 Branch 1 Branch 2 Branch 3 Branch 4 Branch 5 | A: =Reg[rs 1] | B: =Reg[rs 2] | A: =PC | A: =A-4 | B: =Imm. B | PC: =A+B next ffalse next fetch 2020/10/30 98
Single-Bus Datapath for Microcoded RISC-V Reg. En ALU Mem. W MALd Reg. W BLd ALUOp B A ALUEn Mem. Address Data Out In Busy? Condition? ALd Address Registers Imm. Sel Immediate Imm. En Reg. Sel Register RAM PC Inst. Ld Instruction Reg. rs 1 rs 2 rd 32 (PC) Opcode Main Memory Mem. En Datapath unchanged for complex instructions! 2020/10/30 100
Nanocoding 利用微代码中重复的控制 信号 e. g. �PC (state) µcode next-state µaddress ALU 0 A Reg[rs 1] . . . ALUI 0 A Reg[rs 1]. . . µcode ROM nanoaddress nanoinstruction ROM data • Motorola 68000 had 17 -bit µcode containing either 10 -bit µjump or 9 -bit nanoinstruction pointer – Nanoinstructions were 68 bits wide, decoded to give 196 control signals 2020/10/30 102
Microprogramming in IBM 360 M 30 Datapath width (bits) µinst width (bits) µcode size (K µinsts) µstore technology µstore cycle (ns) memory cycle (ns) Rental fee ($K/month) • M 40 M 50 M 65 8 16 32 64 50 52 85 87 4 4 2. 75 CCROS TCROS BCROS 750 625 500 200 1500 2000 750 4 7 15 35 Only the fastest models (75 and 95) were hardwired 2020/10/30 103
IBM Card-Capacitor Read-Only Storage Punched Card with metal film Fixed sensing plates 2020/10/30 [ IBM Journal, January 1961] 104
VAX 11 -780 Microcode 2020/10/30 109
Berkeley RISC Chips RISC-I (1982) Contains 44, 420 transistors, fabbed in 5 µm NMOS, with a die area of 77 mm 2, ran at 1 MHz. This chip is probably the first VLSI RISC-II (1983) contains 40, 760 transistors, was fabbed in 3 µm NMOS, ran at 3 MHz, and the size is 60 mm 2. Stanford built some too… 2020/10/30 112
Acknowledgements • These slides contain material developed and copyright by: – – – Arvind (MIT) Krste Asanovic (MIT/UCB) Joel Emer (Intel/MIT) James Hoe (CMU) John Kubiatowicz (UCB) David Patterson (UCB) • MIT material derived from course 6. 823 • UCB material derived from course CS 252 • KFUPM material derived from course COE 501、COE 502 2020/10/30 114
- Risc vs cisc
- Define instruction set
- Flynn's taxonomy
- Risc vs cisc vs mips
- Arduino 168
- Cisc pipeline
- Arquitetura risc e cisc
- Risc vs cisc
- Ciri ciri cisc
- Risc vs cisc vs arm
- Arquitectura risc y cisc
- Risc processzor
- Differenza tra intel e amd
- Cisc vs risc
- Risc cisc architecture
- Computer organisation and architecture
- Risc and cisc difference
- Risc vs cisc
- Cisc vs risc
- Control unit diagram
- Isa
- Instruction set architectures
- Alu accumulator
- Control unit operation
- Hardwired control unit diagram
- Delay element method
- Masalah dalam merancang implementasi hardwired
- What is the function of control unit
- Control unit design
- Computer function
- Conor harris biomechanics
- Isa 88 procedural model
- Cisc 181
- Goetz 1003
- Cisc 181
- Cisc 235
- Cisc 3140
- Cisc addressing modes
- Cisc 101
- Cisc scalar processor
- Procesor cisc
- Ciri ciri cisc
- Cisc complex instruction set computer
- Cisc 1050
- Cisc cu boulder
- Cisc 235
- Cisc processor examples
- Cisc 3130
- Cisc pipeline
- Acorn risc machines
- Factori de risc biologici
- Decoding
- Risc pipeline
- Riscv green card
- Riscv green card
- Formular de alerta la risc completat
- Advanced risc machines
- Risc v members
- Complesso risc
- Risc v architecture tutorial
- 32 bit risc processor
- Risc v green card
- Digital signal processor architecture
- Binary search in mips
- Factori de risc
- Modele de reusita in afaceri
- Andrew hodgkinson architect
- Arm design philosophy
- Riscv instruction set
- Advanced risc machines
- Advanced risc machine
- Arquitectura mips
- Risc instruction set example
- Msp 430 architecture
- Arm vs risc
- Tipuri de risc
- Applebees
- Static charge
- Nationwide indexed universal life accumulator ii
- The accumulator pattern
- Pics
- Dtfd switch
- Design of accumulator logic
- 8 bit register using d flip flop
- Accumulator function in microprocessor
- Serial adder with accumulator
- Accumulator system dsp
- Seninelle
- Accumulator head blow moulding machine
- The sfr associated with interrupts are
- Rbc wealth accumulator program
- Accumulator array
- Nationwide yourlife indexed ul
- Assistanceerklæring
- Panimulang talumpati
- Isa 8 (xt)
- Epiko ng
- Ano ang kritikal sa pananaliksik
- Ansiisa
- Apa format tagalog halimbawa
- Isa computer architecture
- Language background
- Pid isa
- Isa 95 standard
- Isa 330 bahasa indonesia
- Peta konsep tentang iman kepada rasul
- Kanta tungkol sa pagkamamamayan
- Matandang panitikan halimbawa
- Instrumento montado en campo
- Norma isa s5.1
- Isa sa pinakakilalang lumilikha ng software
- Isa arhitektura racunara primeri
- Kahulugan ng pakikilahok
- Hakim isa
- Isa computer organization