《4.1 指令集结构电子课件 计算机系统基础:C语言视角(RISC-V版).ppt》由会员分享,可在线阅读,更多相关《4.1 指令集结构电子课件 计算机系统基础:C语言视角(RISC-V版).ppt(18页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、4.1 指令集结构电子课件 计算机系统基础:C 语言视角(RISC-V 版)指令集结构 处理器(CPU)是如何设计的?执行加法、乘法等指令 第一步:定义指令集体系结构(Instruction Set Architecture,ISA)或指令集结构指令集结构 计算机能够执行的指令集 计算机能够执行的操作和每一步操作所需的数据 存储器/内存 寄存器集RISC-V指令集 加州大学伯克利分校发布的一个开源指令集 核心:RV32I,基础整数指令集,即32位整数指令集内存 地址空间:232(即4G)寻址能力:8位,字节可寻址字长和字 字长(word length):ALU正常处理的信息量的大小 每一个元素
2、被称为一个字(word)RV32I 字长:32位,4个字节 左边的字节高字节 右边的字节低字节 字 起始地址小尾端(Little-Endian)数据的存储和排列顺序 小尾端 将字的高位字节存放在内存的高地址端,低位字节存放在低地址端字节 8位 如,ASCII码 只需访问1个存储单元寄存器 在CPU内部,一组读写速度更快的寄存器 通用寄存器集(GPR)每一个寄存器中的位数,一个字,32位 32个整数寄存器 x0、x1x31 注意,寄存器x0是硬件连线的常量0 其他重要寄存器 控制器中的程序计数器PC,它记录了下一条要执行的指令的地址GPRx0 0000 0000 0000 0000 0000 0
3、000 0000 0000 x1 0000 0000 0100 0000 0000 0000 0000 0000 x2 0011 1111 1111 1111 1111 1111 1111 0000 x3 0001 0000 0000 0000 0000 0000 0000 0000.x30 1111 1111 1111 1111 1111 1111 1111 1010 x31 1111 1111 1111 1111 1111 1111 1111 1000CISC和RISC CISC(Complex Instruction Set Computer,复杂指令集计算机)具有复杂化的倾向,提供了功
4、能强大的复杂指令,开发程序比较容易,但是由于指令复杂,指令执行效率较低 Intel的x86指令集 RISC(Reduced Instruction Set Computer,精简指令集计算机)RISC的指令集较小,指令执行效率比CISC高,但是,在开发程序方面则有所欠缺 RV32I指令集RV32I指令 32位 从左向右依次编号,31、30、0 符号l:r 位组合的子单元 字段指令格式 R-类型 I-类型 S-类型 B-类型 U-类型 J-类型31 25 24 20 19 15 14 12 11 7 6 0funct7 rs2 rs1 funct3 rd opcode31 20 19 15 14
5、 12 11 7 6 0imm11:0 rs1 funct3 rd opcode31 25 24 20 19 15 14 12 11 7 6 0imm11:5 rs2 rs1 funct3imm4:0opcode31 30 25 24 20 19 15 14 12 11 8 7 6 0imm12 imm10:5rs2 rs1 funct3 imm4:1imm11opcode31 12 11 7 6 0imm31:12 rd opcode31 30 21 20 19 12 11 7 6 0imm20 imm10:1 imm11imm19:12 rdopcode操作码 由指令的6:0位定义,最多可
6、定义128种操作码 RV32I只定义了11种操作码 R类型:0110011 I-类型:分为0000011、0010011、1100111、0001111和1110011五种 S-类型:0100011 B-类型:1100011 U-类型:0110111和0010111两种 J-类型:1101111函数 函数(Function)R-类型、I-类型、S-类型、B-类型 14:12位 每种操作码最多可以定义8种不同的函数 R-类型 31:25位也是函数码 最多可定义1024种不同的函数 RV32I只定义了47条指令操作数 指令的其他字段 源寄存器(Register Source,RS)目标寄存器(Register Destination,RD)立即数(Immediate,Imm)每个寄存器使用5位编码来识别,为寄存器分配的字段是5位