版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、129 2.6 DLX指令集结构DLXDLX是一种多元未饱和型指令集结构。是一种多元未饱和型指令集结构。DLXDLX指令集结构的指令集结构的设计思想:设计思想:l 具有一个简单的具有一个简单的Load/StoreLoad/Store指令集;指令集;l 注重指令流水效率;注重指令流水效率;l 简化指令的译码;简化指令的译码;l 高效支持编译器。高效支持编译器。 第二章 计算机指令集结构设计虚拟存储器的特点2292.6.1 DLX指令集结构1. DLX中的寄存器 (1) 32(1) 32个通用寄存器个通用寄存器 命名:命名:R0R0、R1R1、R31R31 长度:长度:3232位位 寄存器寄存器R
2、0R0的值总是为的值总是为0 0。 (2) (2) 3232个浮点寄存器个浮点寄存器 命名:命名:F0F0、F1F1、F31F31 长度:长度:3232位位 ( (用来保存用来保存3232位的单精度浮点数位的单精度浮点数 )2.6 DLX指令集结构虚拟存储器的特点329 6464位双精度浮点数位双精度浮点数 相邻两个浮点寄存器奇偶对相邻两个浮点寄存器奇偶对F Fi iF Fi+1i+1 (i = 0,2,4,i = 0,2,4,30,30) 命名命名: : F0 F0、F2F2、F28F28、F30F30 (3) (3) 一些特殊的寄存器一些特殊的寄存器 (比如用来保存浮点操作结果信息的浮点状
3、态寄存器)(比如用来保存浮点操作结果信息的浮点状态寄存器) 可以和通用寄存器相互进行数据传送。可以和通用寄存器相互进行数据传送。2.6 DLX指令集结构虚拟存储器的特点4292. DLX的数据类型 DLXDLX提供了多种长度的整型数据和浮点数据。提供了多种长度的整型数据和浮点数据。 (1) (1) 整型数据整型数据 有有8 8位、位、1616位和位和3232位多种长度。位多种长度。 ( (当当8 8位和位和1616位整型数据载入到寄存器中时,位整型数据载入到寄存器中时, 用用0 0或数据的符号位来填充或数据的符号位来填充3232位通用寄存器位通用寄存器 中的剩余位。中的剩余位。) ) (2)
4、(2) 浮点数据浮点数据 有有3232位单精度浮点数和位单精度浮点数和6464位双精度浮点数。位双精度浮点数。 浮点数据表示采用的是浮点数据表示采用的是IEEE 754IEEE 754标准。标准。2.6 DLX指令集结构虚拟存储器的特点5293 3. DLX的寻址方式和数据传送 (1)(1) 寻址方式寻址方式l 寄存器寻址寄存器寻址l 立即值寻址立即值寻址l 偏移寻址偏移寻址l 寄存器间接寻址寄存器间接寻址 (2) (2) 寄存器寻址字段的大小为寄存器寻址字段的大小为5 5位位,用来表示,用来表示3232个个 通用寄存器或浮点寄存器。通用寄存器或浮点寄存器。 (3) (3) 存储器地址采用的是
5、高端字节表示顺序,存存储器地址采用的是高端字节表示顺序,存 储器按字节寻址,其地址宽度为储器按字节寻址,其地址宽度为3232位位。2.6 DLX指令集结构虚拟存储器的特点6294. DLX的指令格式 寻址方式编码在操作码中。寻址方式编码在操作码中。 指令的字长指令的字长3232位位,其中用,其中用6 6位位表示操作码。表示操作码。(4) (4) 通过寄存器(通用寄存器和浮点寄存器)和存通过寄存器(通用寄存器和浮点寄存器)和存 储器之间的数据传送操作完成对存储器的访问。储器之间的数据传送操作完成对存储器的访问。2.6 DLX指令集结构虚拟存储器的特点各种类型指令的格式 I 类型指令 6 5 5
6、16 操作码 rs1 rd 立即值 字节、半字、字的载入和储存; rdrs1 op 立即值。 R 类型指令 6 5 5 5 11 操作码 rs1 rs2 rd Func 寄存器寄存器 ALU 操作:rdrs1 func rs2; 函数对数据的操作进行编码:加、减、; 对特殊寄存器的读/写和移动。 J 类型指令 6 26 操作码 与 PC 相加的偏移量 跳转,跳转并链接,从异常(exception)处自陷和返回。 图 2.13 DLX 的指令格式布局 8295.DLX中的操作 (1) (1) 四种类型的操作四种类型的操作l LoadLoad和和StoreStore操作操作l ALUALU操作操作
7、l 分支和跳转操作分支和跳转操作l 浮点操作浮点操作 (2) (2) 约定约定 (1) (1) 符号符号“”: : 数据传送操作数据传送操作 其后附带一个下标其后附带一个下标n n,也即,也即“n n” ” 表示传表示传送送 一个一个n n位数据。位数据。 (2) (2) 符号符号“#”:#”: 两个域的串联操作两个域的串联操作2.6 DLX指令集结构虚拟存储器的特点929(3) (3) 域的下标:域的下标:表明从该域中选择某一位。表明从该域中选择某一位。l 域中位的标记是从最高位开始标记,并且域中位的标记是从最高位开始标记,并且 起始标记为起始标记为0 0。l 下标可以是一个单独的数字。下标
8、可以是一个单独的数字。l 如如 RegsR4RegsR40 0 : :选择寄存器选择寄存器R4R4中内容的符号位。中内容的符号位。l 下标也可以是一个范围。下标也可以是一个范围。l 如如 RegsR3RegsR324.3124.31 : :选择寄存器选择寄存器R3R3中内容中内容 的最低一个字节。的最低一个字节。(4) (4) 上标:上标:表示复制一个域。表示复制一个域。 如如 0 02424可以得到一个可以得到一个2424位全为位全为0 0的一个域。的一个域。2.6 DLX指令集结构虚拟存储器的特点1029(5) (5) 变量变量MemMem:表示存储器中的一个数组,:表示存储器中的一个数组
9、, 存储器按照字节寻址。存储器按照字节寻址。举例举例R8R8和和R10R10:3232位寄存器位寄存器RegsR10RegsR1016.31 16.31 1616(MemRegsR8(MemRegsR80 0) )8 8 # MemRegsR8 MemRegsR8的含义。的含义。3. DLX中的四种操作类型 (1) (1) LoadLoad和和StoreStore操作操作 2.6 DLX指令集结构虚拟存储器的特点指令实例指令名称含 义LW R1, 30 (R2)载入整型字RegsR1 32 Mem30+RegsR2LW R1, 1000 (R0)载入整型字RegsR1 32 Mem1000+0
10、LB R1, 40 (R3)载入字节RegsR1 32 (Mem40+RegsR30)24 # Mem40+RegsR3LBU R1, 40 (R3)载入无符号字节RegsR1 32 024 # Mem40+RegsR3LH R1, 40 (R3)载入整型半字RegsR1 32 (Mem40+RegsR30)16 # Mem40+RegsR3 # Mem41+RegsR3LF F0, 50 (R3)载入单精度浮点RegsF0 32 Mem50+RegsR3LD F0, 50 (R2)载入双精度浮点RegsF0 # RegsF1 64 Mem50+RegsR2SW 500 (R4), R3储存整
11、型字Mem500+RegsR4 32 RegsR3SF 40 (R3), F0储存单精度浮点Mem40+RegsR3 32 RegsF0SD 40 (R3), F0储存双精度浮点Mem40+RegsR3 32 RegsF0Mem44+RegsR3 32 RegsF1SH 502 (R2), R31储存整型半字Mem502+RegsR2 16 RegsR3116.31SB 41 (R3), R2储存整型字节Mem41+RegsR3 8 RegsR224.31DLX中Load和Store指令实例 虚拟存储器的特点1229(2) (2) ALUALU操作操作l 简单的算术和逻辑运算简单的算术和逻辑运
12、算l 寄存器比较指令(寄存器比较指令( , , , , , )指令实例指令名称 含 义Add R1, R2, R3加RegsR1 RegsR2 + RegsR3ADDI R1, R2, #3和立即值相加RegsR1 RegsR2 + 3LHI R1, #42载入高位立即值RegsR1 42 # 016SLLI R1, R2, #5逻辑左移的立即值形式RegsR1 RegsR2 5SLT R1, R2, R3设置小于if (RegsR2 RegsR3) RegsR1 1 else RegsR1 0ALU指令实例 2.6 DLX指令集结构虚拟存储器的特点1329(3) (3) 分支和跳转操作分支和
13、跳转操作 根据描述目标地址的方法和是否链接可以将根据描述目标地址的方法和是否链接可以将 跳转操作指令分为四种类型。跳转操作指令分为四种类型。 其中:其中:l 两种类型的跳转指令用带符号位的两种类型的跳转指令用带符号位的2626位位 偏移量加上程序计数器的值来确定跳转偏移量加上程序计数器的值来确定跳转 的目标地址;的目标地址;l 另外两种类型的跳转指令则指定一个寄另外两种类型的跳转指令则指定一个寄 存器,由寄存器中的内容决定跳转的目存器,由寄存器中的内容决定跳转的目 标地址。标地址。2.6 DLX指令集结构1429 跳转有两种类型跳转有两种类型l 简单跳转简单跳转l 跳转并链接跳转并链接(用于过
14、程调用)(用于过程调用) 返回一个地址,也即将下一条顺序指令返回一个地址,也即将下一条顺序指令 地址(返回地址)保存在寄存器地址(返回地址)保存在寄存器R31R31中。中。 所有分支指令均是条件分支指令。所有分支指令均是条件分支指令。 分支目标地址由一个带符号的分支目标地址由一个带符号的2626位偏移量加位偏移量加 上程序计数器的值来确定。上程序计数器的值来确定。2.6 DLX指令集结构虚拟存储器的特点1529指令实例指令名称含 义J name跳转PC name; (PC+4)-225) name (PC+4)+225)JAL name跳转并链接RegsR31 PC+4; PC name;(P
15、C+4)-225) name (PC+4)+225)JALR R2寄存器型跳转并链接RegsR31 PC+4; PC RegsR2;JR R3寄存器型跳转PC RegsR3;BEQZ R4 ,name“等于0”分支if (RegsR4=0) PC name;(PC+4)-215) name (PC+4)+215)BNEZ R4 , name“不等于0”分支if (RegsR4!=0) PC name;(PC+4)-215) name (PC+4)+215)典型的分支和跳转指令 2.6 DLX指令集结构虚拟存储器的特点1629(4) (4) 浮点操作浮点操作 浮点操作:浮点操作:加、减、乘、除。
16、加、减、乘、除。 (后缀(后缀D D:双精度浮点操作:双精度浮点操作 后缀后缀F F:单精度浮点操作):单精度浮点操作) 下表列出了下表列出了DLXDLX所有指令及其含义。所有指令及其含义。 各种指令使用频率测试统计结果。各种指令使用频率测试统计结果。 (SPECint92SPECint92和和SPECfp92SPECfp92基准程序)基准程序)2.6 DLX指令集结构虚拟存储器的特点1729DLX中的所有指令及其含义指令类型操作码含 义数据传送LB,LBU,SB载入字节,载入无符号字节,储存字节LH,LHU,SH载入半字,载入无符号半字,储存半字LW,SW载入字,储存字LF,LD,SF,SD
17、载入单精度浮点,载入双精度浮点,储存单精度浮点,储存双精度浮点MOVI2S,MOVS2I将通用寄存器中的内容移入特殊寄存器,将特殊寄存器中的内容移入通用寄存器MOVF,MOVD将一个单精度/双精度浮点寄存器的内容拷贝到另一个单精度/双精度浮点寄存器MOVFP2I,MOVI2FP将32位浮点寄存器中的内容移入整型寄存器,将32位整型寄存器中的内容移入浮点寄存器2.6 DLX指令集结构1829指令类型操作码含 义算术/逻辑ADD,ADDI,ADDU,ADDUI带符号加,带符号立即值加,无符号加,无符号立即值加SUB,SUBI,SUBU,SUBUI带符号减,带符号立即值减,无符号减,无符号立即值减M
18、ULT,MULTU,DIV,DIVU带符号乘,无符号乘,带符号除,无符号除AND,ANDI与,和立即值与OR,ORI,XOR,XORI或,和立即值或,异或,和立即值异或LHI载入高位立即值SLL,SRL,SRA,SLLI,SRLI,SRAI包含了立即值(S_I)和变量(S_)的移位操作,移位有:逻辑左移,逻辑右移和算术右移S_,S_I设置条件,“_”可以是LT,GT,LE,GE,EQ,NE2.6 DLX指令集结构1929指令类型操作码含 义控制BEQZ,BNEZ根据指定通用寄存器的内容等于/不等于0分支BFPT,BFPF测试浮点状态寄存器中的比较位为真/假进行分支J,JR跳转,基于寄存器的跳转
19、JAL,JALR跳转并链接,基于寄存器的跳转并链接TRAP转换到操作系统RFE从异常恢复用户模式2.6 DLX指令集结构2029指令类型操作码含 义浮点ADDD,ADDF双精度浮点加,单精度浮点加SUBD,SUBF双精度浮点减,单精度浮点减MULTD,MULTF双精度浮点乘,单精度浮点乘DIVD,DIVF双精度浮点除,单精度浮点除CVTF2D,CVTF2I,CVTD2F,CTD2I,CVTI2F,CVTI2D转换指令,CVTx2y表示从类型x转换到类型y,其中x和y可以是I(整型)、D(双精度浮点)、F(单精度浮点)_D,_F双精度浮点和单精度浮点比较,“_”可以是LT、GT、LE、GE、EQ
20、、NE,根据比较结果设置浮点状态寄存器中的位2.6 DLX指令集结构2129基于SPECint92基准程序集的指令使用频率测量统计结果指令compresseqntottEspressogcc(cc1)li整型平均载入19.8%30.6%20.9%22.8%31.3%26%存储5.6%0.6%5.1%14.3%16.7%9%加14.4%8.5%23.8%14.6%11.1%14%减1.8%0.3%0.5%0%乘0.1%0%除0%比较15.4%26.5%8.3%12.4%5.4%13%载入立即值8.1%1.5%1.3%6.8%2.4%3%2.6 DLX指令集结构2229指令compresseqnt
21、ottEspressogcc(cc1)li整型平均条件分支17.4%24.0%15.0%11.5%14.6%16%无条件分支1.5%0.9%0.5%1.3%1.8%1%调用0.1%0.5%0.4%1.1%3.1%1%返回,跳转0.1%0.5%0.5%1.5%3.5%1%移位6.5%0.3%7.0%6.2%0.7%4%与2.1%0.1%9.4%1.6%2.1%3%或6.0%5.5%4.8%4.2%6.2%5%其它(异或,非)1.0%2.0%0.5%0.1%1%2.6 DLX指令集结构2329指令compresseqntottEspressogcc(cc1)li整型平均载入浮点数0%储存浮点数0%
22、浮点加0%浮点减0%浮点乘0%浮点除0%浮点比较0%浮点寄存器移动0%其它浮点操作0%2.6 DLX指令集结构基于SPECfp92基准程序集的指令使用频率测量统计结果指令doducearhydro2dmdljdp2su2cor整型平均载入1.4%0.2%0.1%1.1%3.6%1%储存1.3%0.1%0.1%1.3%1%加13.6%13.6%10.9%4.7%9.7%11%减0.3%0.2%0.7%0%乘0%除0%比较3.2%3.1%1.2%0.3%1.3%2%载入立即值2.2%0.2%2.2%0.9%1%2529指令doducearhydro2dmdljdp2su2cor整型平均条件分支8.0%10.1%11.7%9.3%2.6%8%无条件分支0.9%0.4%0.4%0.1%0%调用0.5%1.9%0.3%1%返回,跳转0.6%1.9%0.3%1%移位2.0%0.2%2.4%1.3%2.3%2%与0.4%0.1%0.3%0%或0.2%0.1%0.1%0.1%0%其它(异或,非)0%2.6 DLX指令集结构2629指令doducearhydro2dmdljdp2su2cor整型平均载入浮点数23.3%19.8%
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 民爆行业的安全培训内容
- 2026上海交通大学医学院附属瑞金医院放射治疗科医疗岗位招聘农业笔试参考题库及答案解析
- 2026年荆州学院教师招聘笔试备考试题及答案解析
- 2026年徐州工程学院教师招聘考试备考试题及答案解析
- 2026年安徽电子信息职业技术学院教师招聘考试备考题库及答案解析
- 2026年葫芦岛市南票区城管协管招聘笔试参考试题及答案解析
- 2026年浙江农林大学暨阳学院辅导员招聘笔试备考题库及答案解析
- 2026年城投集团工作人员招聘试题及答案解析
- 2026年苏州科技大学教师招聘考试备考试题及答案解析
- 2026年云南理工职业学院教师招聘笔试备考试题及答案解析
- 医院消毒供应室中心职业安全防护课件
- 国内外先进的安全生产管理经验
- 质量管控重点和管控方法
- 2025年大学公安情报学专业题库- 情报分析方法与技术
- 城中村改造基础设施配套方案
- 企业组织架构设计及实施辅助流程手册
- 冷库安装知识培训课件
- 金锁玉关教学 课件
- 信息技术教师基本功大赛教学理论部分试题及参考答案
- JJG 597-2025交流电能表检定装置检定规程
- 复旦大学留学生数学试卷
评论
0/150
提交评论