计算机组成与体系结构 课件 07运算方法与运算器、08指令系统与汇编语言_第1页
计算机组成与体系结构 课件 07运算方法与运算器、08指令系统与汇编语言_第2页
计算机组成与体系结构 课件 07运算方法与运算器、08指令系统与汇编语言_第3页
计算机组成与体系结构 课件 07运算方法与运算器、08指令系统与汇编语言_第4页
计算机组成与体系结构 课件 07运算方法与运算器、08指令系统与汇编语言_第5页
已阅读5页,还剩111页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

运算方法与运算器计算机组成与体系结构定点运算及其运算器定点加减法补码加法:[X

Y]补

[X]补

[Y]补

补码减法:[X

Y]补

[X]补

[

Y]补

由[Y]补求[

Y]补补:求一个数相反数的补码只需连符号在内依次按位取反,末位加1即可补码加减运算的规则参加运算的操作数用补码表示。补码的符号位与数值位同时进行加运算。若做加,则两数补码直接相加;若做减,将减数补码连同符号位一起按位取反,末位加1,然后再与被减数相加。运算结果即为和/差的补码。溢出所谓溢出是指运算结果超过了机器数能表示的范围结果大于机器所能表示的最大正数,称为上溢结果小于机器所能表示的最小负数,称为下溢溢出检测双符号位法单符号位法一位二进制全加器Ci+1全加器(FA)CiBiSiAi输入输出CiAiBiSiCi+10000000110010100110110010101011100111111一位二进制全加器实现Ci+1全加器(FA)CiBiSiAi基本二进制加减法器

一位8421-BCD十进制加法器

多位十进制加法器定点乘除法的实现方式软件实现指令系统中无乘除法指令程序实现硬件实现在加/减法器的基础上,增加左移、右移位及其他一些逻辑线路实现乘法,指令系统中设置乘除法指令设置专用的高速阵列乘除运算器,指令系统中设置乘除法指令无符号数乘法被乘数乘数部分积乘积原码一位乘法将被乘数左移一位相加变为部分积与被乘数相加后右移一位将k个部分积同时相加转换为k次“累加与右移”,即每一步只求一位乘数所对应的新部分积,并与原部分积做一次累加,然后右移一次,这样操作重复k次,得到最后的乘积一位乘示例原码一位乘硬件结构图原码一位乘流程Booth算法流程Booth算法举例【例】X=-5(1011),Y=-3(1101),用Booth算法求X·Y。解:[-X]补=0101部分积Q0Q-1说明0000

运算开始,初始Q-1=001010010110+[-X]补算术右移1101111101101+[X]补算术右移001111000111110+[-X]补算术右移0000111111直接算术右移[X·Y]补=00001111=+15

原码两位乘法乘数yn-1yn

新的部分积00等于原部分积右移两位01等于原部分积加被乘数后右移两位10等于原部分积加2倍被乘数后右移两位11等于原部分积加3倍被乘数后右移两位原码两位乘法运算规则乘数判断位yn-1yn

标志位Cj

操作内容

000z→2,y→2,Cj保持“0”010z+x→2,y→2,Cj保持“0100z+2x→2,y→2,Cj保持“0”110z-x→2,y→2,置“1”Cj001z+x→2,y→2,置“0”Cj011z+2x→2,y→2,置“0”Cj101z-x→2,y→2,Cj保持“1”111z→2,y→2,Cj保持“1”5×5无符号乘法阵列求补器

使用求补器实现带符号乘法无符号数除法除数部分余部分余商被除数余数除数定点除法的一般性原则定点小数除法除数≠0|被除数|<|除数|位数关系被除数2n位除数n位商n位余数n位定点除法运算规则恢复余数法:进行每一步运算时,不论是否够减,都将被除数(或余数)减去除数,若所得符号位为0(即为正数)表明够减,上商1,左移一位再做下一步运算;若余数符号为为1(即为负数)表明不够减,因此上商0,由于已做减法,因此要把除数加回去(恢复余数),然后余数左移一位再做下一步运算。加减交替法:当余数为正时,商1,余数左移一位,减除数;当余数为负时,商0,余数左移一位,加除数。原码加减交替除法硬件结构图原码加减交替除法流程补码加减交替法运算规则[R]补与[y]补商新余数[Ri+1]补同号1[Ri+1]补=2[Ri]补+[-y]补异号0[Ri+1]补=2[Ri]补+[y]补补码加减交替除法流程可控加法/减法单元(CAS)除法阵列算术/逻辑单元(ALU)算术/逻辑单元(ALU)是计算机实际完成数据算术和逻辑运算的部分,是运算器的核心部件ALU寄存器寄存器控制器标志ALU组成需要考虑的问题ALU多功能的实现二进制加减法器只能进行算术运算,而不能进行逻辑运算ALU实现快速运算的方法行波进位速度慢计算的位数与计算时间成正比多功能运算的实现不将输入直接进行全加,而是先组合成由控制参数控制的组合函数,然后再进行全加74181控制参数与输入量S0S1YiS2S3Xi00001010110101101174181功能表74181逻辑表达式化简,得代入一位全加器的逻辑表达式得到先行进位的实现将低位进位直接传送到最高进位上去行波进位公式:先行进位公式:四位先行进位ALU74181(1)四位先行进位ALU74181(2)74181逻辑结构多级先行进位以74181为例,上述进位公式可改写为其中成组先行进位逻辑成组先行进位实例内部总线单总线结构双总线结构三总线结构单总线结构双总线结构三总线结构功能简单的运算器结构单总线移位乘除运算器三总线阵列乘除法运算器结构浮点运算及其运算器浮点运算的溢出阶码上溢(Exponentoverflow)+∞或-∞阶码下溢(Exponentunderflow)0尾数下溢(Significandunderflow)左移,规格化,舍入尾数上溢(Significandoverflow)右移,规格化浮点数加减运算方法0操作数检查对阶大阶向小阶看齐小阶向大阶看齐尾数加减舍入与规格化处理判溢出示例假设浮点数阶码、尾数均用补码表示,阶码采用双符号位,尾数采用单符号位,x=2010×0.11011011,y=2100×(-0.10101100),求x+y浮点表示分别为:x=000100.11011011y=001001.01010100(1)对阶x的阶码小,应使x的尾数右移2位,x的阶码加2x=001000.00110110(11)其中(11)表示x的尾数右移2位后移出的最低两位数。(2)尾数求和0.00110110(11)

1.01010100

1.10001010(11)(3)规格化处理尾数运算结果的符号位与最高数值位为同值,应执行左规处理,结果为1.00010101(1),阶码为00011。(4)舍入处理采用0舍1入法处理,则应进1,结果为1.00010110。(5)判断溢出阶码符号位为00,不溢出,故得最终结果为:x+y=2011×(-0.11101010)浮点数乘除运算方法0操作数检查阶码加减尾数乘除舍入与规格化处理判溢出常用的舍入方法截断法:将欲保留的末位数据右面的数据统统截掉,无论是0还是1。末位恒置1法:将欲保留的末位数据恒置1,无论右面是0还是1,也无论现在末位的值是0还是1。以上两种方法很简单,但容易产生积累误差效应。0舍1入法:一种比较合理的方法。但当尾数为0.11…1时,会造成尾数溢出,从而需要调整阶码,使运算步骤不规整。查表法浮点运算器floatingpointunit,FPU浮点运算器通常由处理阶码的和处理尾数的两个定点运算器线路组成在早期的小或微型机中,浮点运算器通常以任选件方式提供给用户,主要用于计算浮点数在现代架构中,CPU内置FPU,浮点运算功能会与SIMD(单指令流多数据流)计算集成在一起SSE指令集取代x87指令集浮点运算器示例-Intel80287数据

浮点运算部件以协处理器方式和CPU连接,有独立的控制逻辑;

8个80位浮点数寄存器,精度更高,采用堆栈结构并进行了扩展;

支持3大类共7种数据,支持约60条指令;80387NumericDataco-processor指令系统与汇编语言计算机组成与体系结构指令系统在计算机中的地位一台计算机的功能是通过它的指令系统体现出来的指令系统也是设计一台计算机的需求说明指令系统决定了一台计算机的硬件结构指令和指令系统程序由一个序列的计算机指令组成。指令是计算机运行的最小的功能单元,是指挥计算机硬件运行的命令,是由多个二进制位组成的位串,是计算机硬件可以直接识别和执行的一个信息体一台计算机提供的全部指令构成该计算机的指令系统指令系统是表征一台计算机性能的重要因素,它的格式与功能不仅直接影响到机器的硬件结构,而且也直接影响到系统软件,影响到机器的适用范围指令系统的要求完备性:指令齐全,编程方便规整性:格式与运算规则统一对称性:在指令系统中所有的寄存器和存储器单元都可同等对待,所有的指令都可使用各种寻址方式匀齐性:一种操作性质的指令可以支持各种数据类型指令格式和数据格式的一致性:指令长度和数据长度有一定的关系,以方便处理和存取高效性:占内存少,运行省时兼容性:同一系列机软件兼容向前(后)兼容向上(下)兼容兼容性系列机:是指基本指令系统相同、基本体系结构相同的一系列计算机。推出的机种指令系统一定包含所有旧机种的全部指令。向上(下)兼容:指按某档次机器编制的程序,可不加修改的在比它高(低)档的机器上运行。向前(后)兼容:指按某个时期投入市场的某种型号的机器编制的程序,可不加修改的在比它先(后)投入市场的机器上运行。常用指令输入设备输出设备入出接口和总线外存设备主存储器高速缓存控制器运算器ADDSUBANDORMVRRSHRRCLOUTSTOREPUSHJUMPJRCJRNCJRZJRNZCALLRETLOADPOPIN机器指令设计要素操作码(OperationCode)源操作数地址(SourceOperandReference)目的操作数地址(ResultOperandReference)下一条指令的地址(NextInstructionReference)CPU寄存器主存或虚存I/O设备指令格式操作码:指明本条指令的操作功能,每条指令有一个确定的操作码操作数地址:说明操作数存放的地址,有时是操作数本身指令格式优化设计的目标节省程序的存储空间指令格式要尽量规整,减少硬件译码的复杂程度优化后不能降低指令的执行速度操作码

操作数地址

指令字长指令字:完整的一条指令的二进制表示指令字长:指令字中二进制代码的位数指令字长与机器字长半字长、单字长、双字长、多字长定长指令字结构变长指令字结构操作码组织与编码定长的操作码的组织方案在指令字最高位部分分配固定若干位用于表示操作码,有利于简化计算机硬件设计,提高指令译码和识别速度IBM360机变长的操作码的组织方案在指令字最高位部分用一固定长度的字段来表示基本操作码,而对于部分操作数地址位数可以少的指令,则把另外多位辅助操作码扩充到该操作数地址字段,即操作码位数可变。这种方法在不增加指令字长的情况下,可表示更多的指令,但增加了译码和分析难度,要求更多的硬件支持PDP-11计算机操作码的优化表示方法固定长度操作码:优点是规整,硬件译码简单;缺点是浪费很多信息量Huffman编码:平均码长最短,信息冗余量小,但操作码很不规整扩展编码法:前两种方法的折中方案,较为常用的是等长扩展法操作数个数与来源指令操作数个数无操作数指令(零地址指令)单操作数指令(一地址指令)双操作数指令(二地址指令)三操作数指令(二地址指令)多操作数指令(多地址指令)指令操作数来源和去向CPU内部的通用寄存器输入输出设备(接口)的一个寄存器主存储器的一个存储单元OPA1A2OPA1OPOPA1A2A3OPA1A2

更多地址码优化——地址个数地址数目程序长度程序存储量程序执行速度适用场合三地址短最大一般向量、矩阵运算为主二地址一般很大很低一般不宜采用二地址R型一般最小最快多累加器、数据传送较多一地址较长较大较快连续运算,硬件结构简单零地址最长最小最低嵌套、递归、变量较多地址码优化——物理位置存储器—存储器(SS)型指令寄存器—寄存器(RR)型指令寄存器—存储器(RS)型指令操作数存储顺序Big-Endian:高位字节存入低地址,低位字节存入高地址,依次排列。Little-Endian:低位字节存入低地址,高位字节存入高地址,反序排列。字地址为低字节地址IntelLittle-Endian字地址为高字节地址MotorolaBig-Endian37621540字地址04低字节04512673字地址04低字节边界对准地址(十进制)

04812162024283236双字双字(地址32)双字双字(地址24)半字(地址20)半字(地址22)半字(地址16)半字(地址18)字节(地址8)字节(地址9)字节(地址10)字节(地址11)字(地址4)字(地址0)字节(地址14)

字节(地址15)字节(地址13)字节(地址12)

√√指令操作码的扩展技术假设某机器的指令长度为16位,包括4位基本操作码和三个4位地址码段。OPA1A2A315…1211……87……43……0指令的分类算术与逻辑运算指令移位操作指令算术移位(一般只右移)、逻辑移位、循环移位数据传送指令通用寄存器之间传送通用寄存器与主存储器存储单元之间传送主存储器不同存储单元之间传送输入输出指令通用寄存器与输入输出设备(接口)之间传送转移指令无条件转移指令、条件转移指令子程序调用与返回指令堆栈操作指令压入(即进栈)和弹出(即退栈)操作其他指令置条件码指令、开中断指令、关中断指令停机指令、空操作指令、特权指令指令集设计操作指令表(OperationRepertoire):应提供多少和什么样的操作,操作的复杂程度数据类型(DataTypes):所支持的数据类型指令格式(InstructionFormat):指令的(位)长度、地址数目、各个字段的大小等寻址方式(AddressingMode):指定操作数地址的产生方式寄存器(Registers):能被指令访问的CPU寄存器数目以及它们的用途RISC-V指令集设计指令集描述RV32IRISC-V固定不变的基础整数指令集,是RISC-V的核心内容RV32ERV32I的子集,用于嵌入式场景RV32GM整数乘除法扩展,增加了整数寄存器中的乘除法指令A原子操作扩展,增加对储存器的原子读、写、修改和处理器间的同步F单精度浮点扩展,增加了浮点寄存器、计算指令、L/S指令D双精度扩展,扩展双精度浮点寄存器,双精度计算指令、L/S指令RV32C压缩指令扩展,将某些指令进行压缩,提高代码密度RV32V向量指令集,SIMDRV64I64位整数指令集,兼容RV32IRV32I基本指令格式R-type:用于寄存器-寄存器操作I-type:用于短立即数和访存load操作S-type:用于访存store操作B-type:用于条件跳转操作U-type:用于长立即数J-type:用于无条件跳转寻址方式寻址方式:形成指令或操作数地址的方法指令的寻址方式顺序寻址跳跃寻址操作数的寻址方式隐含寻址直接寻址……指令顺序寻址方式指令跳跃寻址方式操作数寻址方式操作数的寻址方式是指形成操作数的有效地址的方法一般来说,指令中所给出的地址码(A),并不是操作数的有效地址(EA)形式地址A也称偏移量,它是指令字结构中给定的地址量寻址过程就是把操作数的形式地址变换为操作数的有效地址的过程立即数寻址Num即为操作数的值指令的第2个字直接寻址Addr为操作数在存储器中的地址,

或转移指令等用到的指令地址。内存储器

操作数寄存器寻址、寄存器间接寻址相对寻址例:Disp=48H (PC)=5600H

则实际地址=5648HPC变址寻址例:Disp=18H,Reg=5,(R5)=5700H

则操作数地址=5718H操作数存储器变址寄存器加法器基址寻址例:Disp=18H,[BS]=5700H

则操作数地址=5718H基址寄存器加法器存储器操作数间接寻址存储器操作数Addr1堆栈寻址15200HACCSPX栈顶200H栈底主存151FFHACCSP15栈顶200H栈底主存X1FFHPUSHA前PUSHA后POPA前POPA后Y1FFHACCSPX栈顶200H栈底主存151FFH15200HACCSP栈顶200H栈底主存X15为什么要设置寻址方式?增强指令的功能缩短指令的长度提高指令的执行速度增加操作数存放的位置的灵活性……寻址方式的负面影响指令格式复杂,不规整指令执行速度变慢上述问题导致RISC的出现IBM360指令格式OPR1R2RR格式844OPR1XBDRX格式844412OPR1R3BDRS格式844412OPBDISI格式88412OPB1D1LB2D2SS格式88412412二地址RR基址加变址寻址二地址RM三地址RM基址寻址二地址MM基址寻址基址寻址立即数

MMIPS指令格式

所有的指令都是32位长度。有

3种指令格式,即寄存器型、立即数型和转移型。

操作数寻址方式有寄存器寻址、变址寻址、立即数寻址3种,指令地址支持相对寻址、伪直接地址

2种方式。oprsrtrdshamtfunct

寄存器型立即数型转移型

oprsrtaddress/immediate

optarget例如:

add$1,$2,$3R3←R1+R2例如:lw$1,$2,100R2←M[R1+100]

addi$1,$2,100R2←R1+100例如:

j8000转移到PC[31..28]8000×4[例]指令格式如下所示,其中OP为操作码,试分析指令格式的特点。

1597

43

0OP——源寄存器目标寄存器解:单字长二地址指令。操作码字段OP可以指定128条指令。源寄存器和目标寄存器都是通用寄存器(可分别指定16个),所以是RR型指令,两个操作数均在寄存器中。这种指令结构常用于算术逻辑运算类指令。

解:双字长二地址指令,用于访问存储器。操作码字段OP为6位,可以指定64种操作。一个操作数在源寄存器(共16个),另一个操作数在存储器中(由变址寄存器和位移量决定),所以是RS型指令。[例]指令格式如下所示,OP为操作码字段,试分析指令格式特点。

1510

74

3

0OP-----------源寄存器变址寄存器位移量(16位)确定指令系统的两种思路RISC(ReducedInstructionSetComputer)通常称为精简指令系统的计算机。提供数目较少、格式与功能简单、运行高效的指令,追求的是计算机控制器实现简单,运行高速,更容易在单块超大规模集成电路的芯片内制做出来。指令并行性好。CISC(ComplexInstructionSetComputer)通常称为复杂指令系统的计算机,是相对于RISC一词提出来的。其特点是:指令条数多,格式多样,寻址方式复杂,每条指令的功能强,优点是汇编程序设计容易些,但计算机控制器的实现困难多,很多指令被使用的机会比较少。指令并行度差。CISC复杂指令系统计算机(CISC,ComplexInstructionSetComputer)指令系统包含的指令数目多,指令格式多,数据格式多,寻址方式多实例DEC公司的VAX-II/780有16种寻址方式,9种数据格式,303条指令32位的68020微机指令种类比6800多两倍,寻址方式多11种,达18种之多,指令长度从一个字(16位)发展到16个字x86系列机RISC1975年IBM公司JohnCocke提出了精简指令系统的设想精简指令系统计算机(ReducedInstructionSetComputer,RISC)主要特征选取使用频度最高的一些简单指令以及一些很有用但又不复杂的指令,让复杂指令的功能由频度高的简单指令的组合来实现指令长度固定,指令格式种类少,寻址方式种类少只有取数/存数(LOAD/STORE)指令访问存储器,其余指令的操作都在寄存器内完成CPU中有多个通用寄存器采用流水线技术,大部分指令在一个时钟周期内完成。采用超标量和超流水线技术,可以使每条指令的平均执行时间小于一个时钟周期控制器采用组合逻辑控制,不用微程序控制采用优化的编译程序RISC典型实例

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论