【2020/12/4修订】【梳理】计算机组成与设计 第3章 算术 第1节 整数的四则运算(docx)

本文详细梳理了计算机组成与设计中关于算术运算的内容,包括整数的四则运算、浮点运算和数据级并行。强调了二补数表示法在有符号数运算中的应用,超前进位在加法中的作用,以及溢出处理策略。讨论了硬件实现,如乘法器和除法器的工作原理,并对比了不同的算法效率。还提及了编译器对乘法的优化以及不恢复余数法在除法运算中的优势。
摘要由CSDN通过智能技术生成

配套教材:
Computer Organization and Design: The Hardware / Software Interface (5th Edition)
这是专业必修课《计算机组成原理》的复习指引。建议将本复习指导与博客中的《简明操作系统原理》配合复习。
需要掌握的概念在文档中以蓝色标识,并用可读性更好的字体显示 Linux 命令和代码。代码部分语法高亮。
计算机组成原理不是语言课,本复习指导对用到的编程语言的语法的讲解也不会很细致。如果不知道代码中的一些关键字、指令或函数的具体用法,你应当自行查找相关资料。


第三章 算术

第一节 整数的四则运算

第二节 浮点

第三节 数据级并行

注意

链接:https://pan.baidu.com/s/1KqTIQs9qUwwrt3ov-qYNCw
提取码:0000


第三章 算术

第一节 整数的四则运算
CPU核心中的算术逻辑单元(Arithmetic logic unit,ALU)用于进行算术和逻辑运算。计算机用二补数表示法表示数。无论参与加减运算的两个数的正负性如何、是否有符号,都可以统一进行运算。两个有符号数运算时,如结果为负,最高位(符号位)会自动变成1。
为了实现更快的加法,超前进位(carry lookahead)成为了应用最广泛的方案。其时间复杂度与操作数的二进制位数的对数成正比。
关于加法器的实现,请参考数字逻辑电路的相关资料,也可以参考本人之前发布的《数字设计基础与应用 知识梳理》(2.2 常用的MSI组合逻辑模块)。

当负数与非负数相加时,不会溢出。理由很简单:一个负数与一个非负数的和一定不大于这个非负数。当两个符号相同的数相减时,不会溢出。理由相同。也可以把两个同号的数相减看成一个非负数加一个负数,就可以套用符号相反的数相加不会溢出的理由来直接证明了。两个同号数相加,或者用正数减负数、负数减正数,都有可能溢出。当发生溢出时,溢出部分会直接丢失。
下标是两个有符号数相加减时可能发生溢出的情况。

如果是两个地址做运算,溢出常被忽略(注意:地址是无符号的。)MIPS中,只有在有符号数参与的运算溢出时,才会抛出异常。不过,MIPS对立即数进行的是符号扩展,即使运算是无符号的。
C / C++和Java在计算结果溢出时不产生异常,Fortran、Ada则会产生异常。

异常(exception)在很多计算机上是中断(interrupt)的一种。关于中断,见第四章第三节,以及《简明

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值