计算机组成原理 | 第三章《运算方法和运算部件》学习笔记

引言 & 声明

  《计算机组成原理》是计算机及有关信息技术专业的一门核心基础课程。
  在学习《计算机导论》、《程序设计基础》等课程、对计算机应用有基本掌握之后,便需要了解计算机的基本组成和工作原理。此外,对于后继课程,如《操作系统》等的学习,也需要在掌握计算机基本工作原理的基础上来进行。因此,从课程的地位来说,《计算机组成原理》在整个课程体系中起着承上启下的作用,是计算机及相关专业的主要课程之一。

以上介绍引用自《计算机组成原理》教材“引言”部分。

  本文取材于学习时所做的课程笔记,引用资料部分另行标注。
  本人水平有限,错误之处在所难免,欢迎读者批评、指正,我也会在适当时间进行修正与补充。

第一章 计算机系统概论

  本章主要介绍了计算机的发展史和发展趋势,并对计算机的应用领域有一综合的描述。随后从硬件系统和软件系统的角度介绍了计算机系统的组成结构,着重介绍了五大功能部件以及操作系统的功能。并从层次结构的角度分析了计算机的层次结构。最后就如何衡量计算机的性能做了初步讨论。

【传送门】

第二章 计算机中数据的表示方法

  本章主要讨论了计算机中数值数据的表示方法,介绍二、八、十、十六进制数据的表示和相互转化方法。接着了讨论有符号数据在计算机中的表示(原码、反码、补码和移码等)。同时介绍了非数值数据——字符、汉字、声音、图形、图像在计算机中的表示方法。最后讨论了计算机中常用的检验编码(奇偶校验码、交叉校验码、CRC校验码和海明校验码)。

【传送门】

第三章 运算方法和运算部件

  在计算机中,完成数值运算的部件就是CPU中的算术逻辑运算单元ALU(Arithmetic Logical Unit)。ALU的逻辑结构去决议机器的指令系统、数据的表示方法、运算方法和选用的逻辑器件等。本章重点介绍运算方法、运算器的结构和工作原理。
  随着大规模集成电路的发展,运算器的结构也在不断变化。本章将以4位片的ALU SN74181为例子,介绍ALU的结构和原理。

此章节进一步讲解计算机的运算方法,需要一定逻辑思维能力方能理解。

3.1& 算术逻辑运算基础

3.1.1 定点数的加、减法运算

   (1)补码加法运算
     公式:[X+Y] = [X] + [Y]

   (2)补码减法运算
     公式:[X-Y] = [X] + [-Y]
补码减法运算

   【补码加、减法运算规则】

    ● 补码表示操作数
    ● 符号位参与运算
    ● 加法:直接相加;减法:变减为加
    ● 结果用补码表示
    ● 由符号位产生的进位舍掉

3.1.2 溢出及检测方法

   溢出:当运算结果超出数的表示范围,就发生了溢出。

   两种溢出检测方法:

   ① 单符号位判断

    ● 异号相加,无溢出
    ● 同号相加,当结果的符号与加数的符号相同时,无溢出
          当结果的符号与加数的符号不同时,有溢出(如下图所示)
单符号位判断
   ② 双符号位(变形补码)判断

    结果的四种状态:
{ 00   结 果 正 确 , 为 正     11   结 果 正 确 , 为 负     01   结 果 错 误 , 为 正 溢 出 10   结 果 错 误 , 为 负 溢 出 \left\{ \begin{array}{c} 00 结果正确,为正   \\ 11 结果正确,为负   \\ 01 结果错误,为正溢出 \\ 10 结果错误,为负溢出\end{array}\right. 00   11   01 10 

3.1.3 移位
   (1)逻辑移位

     移位规则:左移时低位补0,右移时高位补0。

      例如:逻辑右移
逻辑右移
   (2)循环移位

     移位规则:循环左移时,最高位移到最低位,其余各位依次左移;循环右移时,最低位移到最高位,其余各位依次右移。

      例如:循环右移
循环右移
   (3)算术移位

     带符号位数的移位,移位后数的符号不变化而数值变化。如果左移后并未溢出,则左移1位相当于带符号位数乘以2;而右移1位相当于带符号数除以2。

     ① 原码移位规则:左移时,符号位不变,各位依次左移,末位补0
              右移时,符号位不变,各位依次右移,最高有效位补0

       例如:原码算术左移
原码算术左移
     ② 补码右移规则:
      连同符号位一起,各位依次右移,其中符号位的值右移至最高有效位,而符号位本身保持原值不变

       例如:补码算术右移
补码算术右移
     ③ 补码右移规则:各位依次左移,其中最高有效位左移至符号位,而末位补0
       例如:补码算术左移
补码算术左移
3.1.4 十进制数的运算

   用BCD码完成运算:

   ● 相加 ≤ 9,不要修正
   ● 相加>9,或有半进位,要加 “6” 修正

3.1.5 逻辑运算

   逻辑与:1∧1 = 1
       0∧1 = 0∧1 = 0∧0 = 0

   逻辑或:0∨0 = 0
       0∨1 = 0∨1 = 1∨1 = 1

   逻辑非: 0 ‾ \overline{0} 0 = 1
        1 ‾ \overline{1} 1 = 0

   逻辑异或:0 ⊕ 0 = 1 ⊕ 1 = 0
        0 ⊕ 1 = 1 ⊕ 0 = 1

某位和“0”与,置0;    和“1”与,保持不变。
某位和“1”或,置1;    和“0”或,保持不变。
某位和“1”异或,取反; 和“0”异或,保持不变。

3.2 算术逻辑运算单元(ALU)

  功能
{ 算 术 运 算 : 定 点 加 、 减 法 运 算                     逻 辑 运 算 : 逻 辑 与 、 逻 辑 或 、 逻 辑 异 或 、 逻 辑 非 运 算 \left\{ \begin{array}{c} 算术运算:定点加、减法运算           \\ \\ 逻辑运算:逻辑与、逻辑或、逻辑异或、逻辑非运算\end{array}\right.           

  运算器的核心是算术逻辑单元ALU;ALU的核心是加法器。

3.2.1 加法单元电路

全加器框图及功能表

(全加器框图及功能表)

配图摘自《计算机组成原理》相关章节

3.2.2 ALU举例
ALU举例

配图摘自《计算机组成原理》相关章节。

ALU逻辑
   如要完成8位相操作,可用二片SN74181芯片,将低位芯片Cn+4输出端与高位芯片的Cn输入端相连。

3.3 定点乘法运算

3.3.1 原码一位乘法

   算法:(A*B)

   1)部分积初始化为0;
   2)第 i 次位积(A,bi)加上上次部分积,得和数;
   3)将和数右移一位,得本次部分积;
   4)重复2)3),共做n(n取数值位数)次,得最后的乘积的数值部分;
   5) 积符号位取 as ⊕ b s

3.3.2 补码一位乘法
   算法:
   1)部分积初始化为0,乘数附加位 b-1 置0;
   2)判乘数最低位和附加位,求位积;
     当 00,11 时,位积为0,
         01 时,位积为[A]补,
         10 时,位积为[-A]补;
   3) 部分积加位积,并右移一位,得新的部分积,乘数也右移一位;
   4) 重复2)3),共做n+1(n取数值位数)次,但最后一次不移位,所得结果就是[A·B]补。

   注意:
      ① 部分积要取两位符号位

      ② 做减法时,应该用 +[-A] 补实现

3.4 定点除法运算

3.4.1 原码恢复余数除法

   【特点】

    1)余数(被除数)位置不动,除数每次右移一位
    2)先比较余数和除数的大小,再做除法

   【机器中的实现】

    1)除数位置不动,余数每次左移一位;
    2)先做减法(余数减去除数),然后判它们的大小
     (当不够减时,还得做加法恢复原来的余数)

3.4.2 原码不恢复余数除法

   【算法】

    1)被除数左移一位,减除数;
    2)判余数:
         余数为正,商上1,余数/商左移一位,减除数;
         余数为负,商上0,余数/商左移一位,加除数;
    3)重复步骤2)n次(n为除数位数),得商(最后一次不左移);
    4)符号位单独处理;
    5)若最后余数为负,+[|B|]补修正,得余数。

3.5 浮点数运算

3.5.1 浮点数的加减法运算

   【步骤】
    1)对阶(小阶向大阶看齐)
    2)尾数相加/减
    3)规格化
浮点数的加减法运算
             左规:尾数左移一位,阶码减 1;
             右规:尾数右移一位,阶码加 1。
    4) 舍入

3.5.2 浮点数的乘除法运算

   【例题】
       设有5位数(其中有一附加位),用原码或补码表示,舍入后保留4位结果。

       设:[X] = 0.11011 舍入后 [X] = 0.1110
         [X] = 0.11100 舍入后 [X] = 0.1110
         [X] = 1.00101 舍入后 [X] = 1.0011
         [X] = 1.00100 舍入后 [X] = 1.0010

       舍入后产生了误差,但误差值小雨末位的权值。

以上例题摘自《计算机组成原理》相关章节。

第四章 存储系统

  对存储器的要求是容量大、速度快、成本低。为了解决这三方面的矛盾,计算机采用多级存储体系结构,即Cache、主存和外存。CPU能直接访问内存(Cache、主存),但不能直接访问外存。
  多个用户共享主存时,系统应提供存储保护。通常采用的方法是存储区域保护和访问方式保护,并用硬件来实现。有些机器中提供特权指令来实现某种保护。

【传送门】

第五章 指令系统

  指令是要求计算机执行某种操作的命令,一台计算机所有机器指令的集合就构成该机器的指令系统。
  本章首先说明指令系统的发展与性能要求,然后介绍指令的一般格式。重点讲述寻址方式、指令的分类及功能。

【传送门】

第六章 中央处理器(CPU)

  计算机的硬件由控制器、运算器、存储器、输入设备和输出设备五部分组成。随着集成电路的出现及其集成度的提高,设计者将控制器和运算器集成在一片集成电路上,称作微处理器,通常称之为中央处理器(Central Processing Unit,简称CPU)。CPU是计算机的核心部件。本章介绍CPU的功能、结构及工作原理。

【传送门】

第七章 总线系统

  总线技术是计算机系统的一个重要技术,总线的结构直接影响着计算机的性能,它是承载计算机系统各个部件之间信息传递的桥梁。

【传送门】

第八章 计算机的外围设备

  计算机的外围设备主要包括输入设备、输出设备、外部存储设备,以及数据通信设备和过程控制设备。它们的功能是在计算机和其他设备之间,以及计算机与计算机之间提供联系。

【传送门】

第九章 输入输出系统

  计算机系统输入/输入(I/O)的种类日益增多,使得输入/输出设备在计算机系统中的影响日益显著。

【传送门】


(已完结 2021.05.23)

懿宸运维

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

懿宸运维

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值