- 1、本文档共91页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机系统组成及结构PPT第8章
计算机组成与结构 湖南大学计算机与通信学院 表中列出了对不同的操作数X和Y,U←X±Y的执行结果。当X与Y相加时,AS = 0;相减时,AS = 1。 1、IF Y = 0,THEN U←X±0 = X,即U←X, ELSE 2、IF X = 0且Y≠NaN,THEN U←0±Y。 IF AS = 0 THEN U←Y,否则U←-Y, ELSE 3、IF X = NaN,THEN U←X(= NaN), ELSE 4、IF Y = NaN,THEN U←Y(= NaN), ELSE 5、IF X = ±∞,THEN U←X, ELSE 6、IF Y = ±∞,THEN 当AS = 0时U←Y,否则U← -Y, ELSE 7、用常规的加减法步骤计算U。 上表根据以下规则求出: 被除数初始化时保存在UV中,除数保存在X中,商保存在Y中,余数最后保存在U中。U、V、X、Y都是n位值,C是1位值。 CU = U + X’ + 1; U = U + X,IF C = 1 THEN 产生溢出并终止算法; Y = 0; FOR i = 1 TO n DO { 线性左移 CUV; 线性左移 Y; IF C = 1 THEN { U= U+ X’ +1} ELSE{ CU= U+ X’ +1 } IF C = 1 THEN { Y0 = 1} ELSE { U = U + X } } 第一步为CU与X的比较,判溢出 做减法(CU-X)以判断CU≥X?(若成立,C置1) 决定商,若上商0恢复余数 2. 恢复余数算法 CU与X的比较。 操作C U = U + X’ + 1实际上实现了两个功能:显式的功能是减法U = U –X ,而隐含的功能是U和X的比较。如果U ≥ X,该操作将C置1,否则将C置0。 在(a)和(b)中,C置1,表示U ≥ X; 在(c)中,C置0,表示U X。 图8.8 在计算C U = U + X’ + 1的同时比较了U和X: (a)正结果,(b)零结果,(c)负结果 恢复余数除法的算法: 它采用的值与不恢复余数算法中采用的值基本相同。 恢复余数法电路是6状态机。 11: CU←U + X’ + 1; 12: U←U + X C 12: FINISH←1,OVERFLOW←1 2: Y←0,OVERFLOW←0,i←n 3: shl(CUV),shl(Y),i←i-1 C 41: U←U + X’ + 1 C’41: CU←U + X’ + 1 C 42: Y0 ←1 C’42: U←U + X Z 42: FINISH←1 Z’42: GOTO 3 减少了产生G的比较器,但并行加法器的输入更加复杂。因为此时要求它进行两种操作U + X或U – X。同时,由于有6个状态,状态计数器和译码器要稍微大一些。 42 3 11 C’ 图8.9 恢复余数除法的硬件实现 4输入或门 011 i 8.1.3.2 补码相除 补码相除没有一种通用的算法。一般是通过对正负数值进行转换来实现补码相除。该算法如下所示。除法可以使用恢复余数的硬件实现或不恢复余数的硬件实现。 IF 被除数 0 THEN 被除数← - 被除数; IF 除数 0 THEN 除数← - 除数; 使用恢复余数或不恢复余数的硬件实现除法运算; IF 被除数和除数中有一个为负数 THEN 结果← - 结果 8. 2 带专门符号位表示法 无专门符号位表示法中的非负数码和补码是带专门符号位表示法中的符号—幅值表示法(signed_magnitude notation)和符号—补码表示法(signed_two’s complement notation)的基础。稍做修改,无专门符号位表示法的运算算法也可以作为带专门符号位表示法的运算算法。 8.2.1 符号—幅值表示法(signed_magnitude notation) 包括两个部分:符号部分为1位,0表示正数(或0),1表示负数;幅值部分为n位,以非负数码的形式表示数的绝对值。 用XsX 表示符号—幅值表示法,其中Xs为1位的符号值,X为n位幅值。 例如:+3和-3有相同的幅值3,仅仅符号不同。在二进制中,+3表示为0(符号)0011,而-3表示为1(符号
文档评论(0)