(计算机组成原理)第4章 运算方法与运算器-fjw-1
- 格式:ppt
- 大小:3.20 MB
- 文档页数:54
第4 章存储器1.解释概念:主存、辅存、Cache RAM SRAM DRAMROMPROMEPROVEEPROM CDRO、MFlash Memory 。
答:主存:主存储器,用于存放正在执行的程序和数据。
CPU可以直接进行随机读写,访问速度较高。
辅存:辅助存储器,用于存放当前暂不执行的程序和数据,以及一些需要永久保存的信息。
Cache:高速缓冲存储器,介于CPU和主存之间,用于解决CPU和主存之间速度不匹配问题。
RAM半导体随机存取存储器,主要用作计算机中的主存。
SRAM 静态半导体随机存取存储器。
DRAM 动态半导体随机存取存储器。
ROM 掩膜式半导体只读存储器。
由芯片制造商在制造时写入内容,以后只能读出而不能写入。
PROM 可编程只读存储器,由用户根据需要确定写入内容,只能写入一次。
EPRO M紫外线擦写可编程只读存储器。
需要修改内容时,现将其全部内容擦除,然后再编程。
擦除依靠紫外线使浮动栅极上的电荷泄露而实现。
EEPROM电擦写可编程只读存储器。
CDROMI只读型光盘。
Flash Memory :闪速存储器。
或称快擦型存储器。
2.计算机中哪些部件可以用于存储信息?按速度、容量和价格/ 位排序说明。
答:计算机中寄存器、Cache主存、硬盘可以用于存储信息。
按速度由高至低排序为:寄存器、Cache主存、硬盘;按容量由小至大排序为:寄存器、Cache主存、硬盘;按价格/位由高至低排序为:寄存器、Cache主存、硬盘3.存储器的层次结构主要体现在什么地方?为什么要分这些层次?计算机如何管理这些层次?答:存储器的层次结构主要体现在Cache-主存和主存-辅存这两个存储层次上。
Cache-主存层次在存储系统中主要对CPU访存起加速作用,即从整体运行的效果分析,CPU访存速度加快,接近于Cache的速度,而寻址空间和位价却接近于主存。
主存-辅存层次在存储系统中主要起扩容作用,即从程序员的角度看,他所使用的存储器其容量和位价接近于辅存,而速度接近于主存。
第4章部分习题参考答案【4-4】已知X和Y,试用它们的变形补码计算出X + Y,并指出结果是否溢出(3)X = -0.10110,Y = -0.00001解:[X]补= 1.01010 [Y]补= 1.111111 1 . 0 1 0 1 0+ 1 1 . 1 1 1 1 11 1 . 0 1 0 0 1无溢出,X+Y = -0.10111【4-5】已知X和Y,试用它们的变形补码计算出X - Y,并指出结果是否溢出(3)X = 0.11011,Y = -0.10011解:[X]补= 0.11011 [-Y]补= 0.100110 0 . 1 1 0 1 1+ 0 0 . 1 0 0 1 10 1 . 0 1 1 1 0结果正溢【4-8】分别用原码乘法和补码乘法计算X * Y(1)X = 0.11011,Y = -0.11111法一:原码一位乘算法解:|X| = 0.11011→B |Y| = 0.11111→C 0→AA C 说明1 1 1 1 1C5 = 1, +|X|1 1 1 1 1 部分积右移一位→C5 = 1, +|X|0 1 1 1 1 部分积右移一位→C5 = 1, +|X|1 0 1 1 1 部分积右移一位→C5 = 1, +|X|0 1 0 1 1 部分积右移一位→C5 = 1, +|X|0 0 1 0 1 部分积右移一位→|X * Y| = 0.1101000101Ps = Xs ⊕ Ys = 0 ⊕ 1 = 1X*Y = -0.1101000101法二:补码一位乘算法解:[X]补= 0.11011→B [Y]补= 1.00001→C [-X]补= 1.00101 0→AA C 附加说明0 0. 0 0 0 0 0 1 0 0 0 0 1 0+1 1. 0 0 1 0 1 C4C5 = 10 -|X|1 1. 0 0 1 0 11 1. 1 0 0 1 0 1 1 0 0 0 0 1 部分积右移一位→+0 0. 1 1 0 1 1 C4C5 = 01 +|X|0 0. 0 1 1 0 10 0. 0 0 1 1 0 1 1 1 0 0 0 0 部分积右移一位→+0 0. 0 0 0 0 0 C4C5 = 00 +00 0. 0 0 1 1 00 0. 0 0 0 1 1 0 1 1 1 0 0 0 部分积右移一位→+0 0. 0 0 0 0 0 C4C5 = 00 +00 0. 0 0 0 1 10 0. 0 0 0 0 1 1 0 1 1 1 0 0 部分积右移一位→+0 0. 0 0 0 0 0 C4C5 = 00 +00 0. 0 0 0 0 10 0. 0 0 0 0 0 1 1 0 1 1 1 0 部分积右移一位→+1 1. 0 0 1 0 1 C4C5 = 10 -|X|1 1. 0 0 1 0 1[X*Y]补= 11.0010111011X*Y = -0.1101000101【4-10】计算X/Y(2)X = -0.10101,Y = 0.11011原码恢复余数法:解:|X| = -0.101010→A |Y| = 0.110110→B [-|Y|]补= 1.00101 0→C0 0. 1 0 1 0 1 0 0 0 0 0 0+1 1. 0 0 1 0 1 -|Y|1 1. 1 1 0 1 0 <0+0 0. 1 1 0 1 1 +|Y|0 0. 1 0 1 0 1 0 0 0 0 0 0 商00 1. 0 1 0 1 0 0 0 0 0 0 0 左移←+1 1. 1 1 0 0 1 -|Y|0 0. 0 1 1 1 1 0 0 0 0 0 1 >0,商10 0. 1 1 1 1 0 0 0 0 0 1 0 左移←+1 1. 0 0 1 0 1 -|Y|0 0. 0 0 0 1 1 0 0 0 0 1 1 >0,商10 0. 0 0 1 1 0 0 0 0 1 1 0 左移←+1 1. 0 0 1 0 1 -|Y|1 1. 0 1 0 1 1 <0+0 0. 1 1 0 1 1 +|Y|0 0. 0 0 1 1 0 0 0 0 1 1 0 商00 0. 0 1 1 0 0 0 0 1 1 0 0 左移←+1 1. 0 0 1 0 1 -|Y|1 1.1 0 0 0 1 <0+0 0. 1 1 0 1 1 +|Y|0 0. 0 1 1 0 0 0 0 1 1 0 0 商00 0. 1 1 0 0 0 0 1 1 0 0 0 左移←+1 1. 0 0 1 0 1 -|Y|1 1. 1 1 1 0 1 <0+0 0. 1 1 0 1 1 +|Y|0 0. 1 1 0 0 0 0 1 1 0 0 0 商0Qs = Xs⊕Ys = 0⊕1 = 1Q = -0.11000,R = 0.11000*2-5【4-11】设浮点数的阶码和尾数部分均用补码表示,按照浮点数的运算规则,计算下列各题(2)X = 2-101*0.101100,Y = 2-100*(-0.101000)解:[X]补= 1011;0.101100[Y]补= 1100;1.011000对阶:△E = Ex – Ey = -5 -(-4)= -1Ex < Ey,将Mx右移一位,Ex+1→Ex[X]’补=1011;0.010110尾数求和:0 0. 0 1 0 1 1 0+1 1. 0 1 1 0 0 01 1. 1 0 1 1 1 0尾数结果规格化:尾数左移1位,阶码减1[X+Y]补=1011;1.011100X+Y = (-0.100100)*2-101减法算法过程略,X-Y = 0.111110 * 2-100【4-13】用流程图描述浮点除法运算的算法步骤设:被除数X = Mx * 2Ex; 除数Y = My * 2 Ey。
计算机组成原理--运算⽅法:加减乘除补码加减法补码加法公式:[x+y]补=[x]补+[y]补补码减法:为了将减法转变为加法,需证明公式: [x-y]补=[x]补+[-y]补(证明)为了求得同时[-y]补,需要证明[-y]补=[y]补+2^-n(意义是[-y]补等于[y]补取反,末位加1)溢出检测溢出的检测可能产⽣溢出的情况两正数加,变负数,上溢(⼤于机器所能表⽰的最⼤数)两负数加,变正数,下溢(⼩于机器所能表⽰的最⼩数)定点原码乘法定点乘法原理n位乘n位积可能为2n位.乘积的最后是所有部分积之和,有n个数相加,⽽FA只有两个输⼊端,机器⼀次只能进⾏两个数的相加,不能进⾏多个数据的加法。
⼿⼯计算中,乘数的每⼀位是0还是1都可直接看见,⽽在计算机中,采⽤放乘数的寄存器的每⼀位直接决定本次相加数是被乘数还是0是很不⽅便的,若采⽤该寄存器的最低⼀位来执⾏这种判断就简便了。
计算机中执⾏乘法时,积的符号位由被乘数和乘数的符号位通过⼀个半加器(即异或门)实现。
数值部分的运算规则是:从最低位Y0开始,当乘数Yi为1时,将上次部分积加上被乘数的绝对值,然后右移⼀位,得到新的部分积;当Yi为0时,则写下全0。
然后再对乘数Y的⾼⼀位进⾏类似乘法运算。
重复“加—右移”操作N次,可得到最后的乘积。
R0存放部分积,R2存放被乘数,R1存放乘数R0清零,R2存放被乘数,R1存放乘数。
乘法开始时,“启动”信号时控制CX置1,于是开启时序脉冲T,当乘数寄存器R1最末位为“1“时,部分积Z和被乘数X在加法器中相加,其结果输出⾄R0的输⼊端。
⼀旦控制脉冲T到来,控制信号LDR0使部分积右移1位,与此同时,乘数寄存其R1也在控制信号LDR1作⽤下右移⼀位,且计数器I记数⼀次;将步骤三重复执⾏N次当计数器I=n时,计数器I的溢出信号使控制触法器CX置0,关闭时序脉冲T,乘法宣告结束原码算法存在的缺点:⼀是符号位需要单独运算,最后给运算结构以正确的符号;⼆是对于采⽤补码存储的机器,从存储器中取出的是操作数的补码,需先将其转换成原码,这样很不⽅便,⽽且影响速度。