资讯详情

计算机组成原理 复习笔记(已完结)

前言

本文参考书为《计算机组成原理》第六版和《机械工业出版社计算机组成》。本文是期末复习的参考,非研究生入学考试,重点可能不同。如果有错误,请指出。 重点在 二、三、四、五章。其他章节主要是简答题。

建议搭配例题PPT同步复习: 链接:https://pan.baidu.com/s/1PesCMnqalaPNtrbnOi1Nwg 提取码:d79d

找知识点可以用Ctrl F搜索当前页面。 个人总结,所以知识点比较乱,有些练习会不时更新补充,仅供复习参考。

本文共6万多字,阅读时间约2-5小时。

本博客已同时更新到本博客园: https://www.cnblogs.com/Ck-0ff/p/16330517.html

文章目录

  • 前言
  • 第一章:计算机系统概论
    • 1.1 计算机分类和发展简史
      • 分类
      • 发展及硬件
      • 计算机性能指标
    • 1.2 计算机的功能部件
      • 存储器
      • 控制器
    • 1.3 电子计算机设计理念
    • 1.4 补充处理器
  • 第二章:操作方法和操作器
  • *重点题型 交替计算除法的加减
      • 阵列除法器
        • 可控加法/减法(CAS)单元
        • 不恢复余数(加减交替法)阵列除法器
    • 2.8定点运算器的组成
      • 逻辑运算
    • 2.9行波进位补码加法/减法器
    • 2.10ALU的基本思想
    • 2.11总线
    • 2.12浮点运算和浮点运算器
      • 浮点加减操作
      • 浮点乘法、除法操作
    • 2.14流水线原理
  • 第三章 存储系统
    • 3.1 存储系统概述
        • 存储器的存储结构
      • 存储器的分类
      • 存储器的编址和端模式
      • 存储器的技术指标
    • 3.2 存储器静态随机存取
      • 基本静态存储元阵列
    • 3.3基本动态存储器
      • DRAM芯片的刷新
      • 扩展存储容量
      • 提高DRAM的访问速度
        • Fast Page Mode DRAM 快速页模式动态存储器
        • Extend Data Out DRAM 扩展数据输出动态存储器
        • Burst Extend Data Out DRAM 突发动态存储器
      • 高效的DRAM结构
        • 同步DRAM(SDRAM)
        • 双倍数据率SDRAM(DDR SDRAM)
        • CDRAM 高速缓冲存储器(cache)动态存储器
      • DRAM验证主存阅读/写作的正确性
    • 3.4 只读存储器
      • ROM的分类
        • 掩模ROM(MROM)
        • 可编程ROM
        • 闪速(FLASH)存储器
      • NOR闪存
        • NAND闪存
        • 各种半导体存储器的性能比较
    • 3.5 并行存储器
      • 双端口存储器
      • 无冲突读写控制
      • 多模块交叉存储器
      • Pentium64位存储结构
    • 3.6 cache存储器
      • cache介绍和基本原理
      • cache的结构
      • 主存与cache的地址映射
        • 全相联映射
        • 直接映射
        • 组相联映射
      • cache写作操作策略
    • 3.7 虚拟存储器
      • 虚拟存储器的定义和原理
      • 段式管理
      • 页式管理
      • 段页式管理
      • 页式虚拟存储器
      • 段式虚拟存储器
      • 段页式虚拟存储器
      • 虚存的替换算法
      • 存储管理部件MMU
  • 第四章 指令系统
    • 4.1 指令系统的发展和性能要求
      • 指令的概念
      • 指令系统的性能要求
    • 4.2 指令格式
      • 地址码
      • 三地址指令
      • 二地址指令
      • 一地址指令
      • 零地址指令
      • 操作码
      • 8位微型计算机的指令格式
      • MIPS R4000指令格式
      • ARM指令格式
      • pentium指令格式
    • 4.3 操作数类型
    • 4.4 指令和数据的寻址方式
      • 指令的寻址方式
    • 4.5 典型指令
  • 第五章 中央处理器
    • 5.1 CPU的功能和组成
      • CPU的功能
      • CPU的基本组成
      • CPU中的主要寄存器
      • 操作控制器与时序产生器
    • 5.2 指令周期
      • 指令的执行过程
      • MOV指令
      • LAD指令
      • ADD指令
      • STO指令
      • JMP指令
  • *重点题型:CPU参数计算
      • 用方框图语言表示指令周期
    • 5.3 时序产生器和控制方式
      • 硬布线控制器的三级时序体制
      • 控制方式
    • 5.4 微程序控制器
      • 微程序控制原理
      • 微程序控制器的组成
      • 微程序控制器工作过程
    • 5.5 微程序设计技术
      • 微命令编码
  • *重点题型:微指令编码格式
      • 微地址的形成方法
      • 微指令格式
    • 5.5 硬布线控制器
    • 5.6 流水CPU
      • 并行处理技术
      • 流水 CPU 的结构
      • 流水线中的主要问题
      • 奔腾 CPU
    • 5.7 RISC CPU
      • RISC 机器的特点
  • 第六章 总线系统
    • 6.1 总线的概念和结构形态
      • 总线的基本概念
    • 6.2 总线接口
    • 6.3 总线的仲裁
    • 6.4 总线的定时和数据传送模式
    • 6.5 PCI总线和 PCIe 总线
      • HOST总线
  • 第七章 外存与 I/O 设备
    • 7.1 外围设备概括
    • 显示设备
  • 第八章 输入输出系统
    • 8.1 CPU 与外设之间的信息交换方式
      • 外设同CPU 交换数据的过程
      • CPU与 I/O 接口之间的数据传送
    • 8.2 程序查询方式
    • 8.3 程序中断方式
      • 中断的基本概念
      • 单级中断
      • 多级中断
      • Pentium中断
    • 8.4 DMA方式
      • DMA的基本概念
      • DMA传送方法
      • 基本的DMA控制器
      • 中断数据传送过程
    • 8.5 通道方式
      • 通道的概念
      • 通道的类型

在这里插入图片描述


第一章:计算机系统概论

1.1 计算机分类和发展简史

分类

计算机是一种以电子器件为基础的不需要人的干预,能对各种数字化信息进行算术和逻辑运算快速工具。

电子计算机分两种:

  1. 电子数字计算机:由逻辑电子器件构成,变量为离散量
  2. 电子模拟计算机:由模拟运算器件构成,变量为连续量

电子数字计算机与电子模拟计算机的主要区别: 数字计算机进一步又可分为

通用计算机可分为六类:

  1. 超级计算机
  2. 大型机
  3. 服务器
  4. PC机
  5. 单片机
  6. 多核机

发展及硬件

计算机发展趋势:

计算机经历了五代变化:

第一代: 1946~1957,。体积庞大,成本很高,可靠性较低。在此期间,形成了计算机的基本体系,确定了程序设计的基本方法,开始得到应用。

第二代: 1958~1964,晶体管计算机。可靠性提高,体积缩小,成本降低。在此期间,开始得到应用。

第三代: 1965~1971年,。再次期间形成机种多样化,生产系列化,使用系统化,开始使用。

第四代: 1972~1990,,由几片大规模集成电路组成的开水出现。

第五代: 1991年至今,出现,由一片巨大规模集成电路实现的开始出现。

指令集授权方式:

  1. IP内核授权
  2. 指令集架构授权
  3. 授权+ 自主研制指令集

常见指令集:

计算机性能指标

1.2 计算机的功能部件

计算机主要有五个功能部件 输入设备、存储器、算术逻辑单元、输出设备、控制器 这里先简要描述一些概念,具体的知识点会在后续详细解释。

存储器

存储器的功能是存储程序和数据,它分为主存储器和辅助存储器两种。 主存储器是以电子速度运行告诉内存,程序正在执行时必须要存储在内存中。 内存包含大量的半导体存储单元。

一个半导体触发器有0和1两个状态,可以记忆。 这些半导体存储单元很少被单独读取或者编写,而是按照固定大小的组进行处理,这个组称为。 每个字的位数称为,典型的字长范围是从16位到64位。 若按找16位计算机: 在存储器中把保存一个数的16个触发器称为一个。 每个存储单元都有编号,称为。 存储器所有存储单元的总数称为

摩尔定律: 每18个月,集成电路的性能就会提升一倍,价格将会降低一倍。

控制器

存储器、运算器和输入输出设备对信息进行存储和处理,然后执行输入和输出操作。这些设备的操作必须按一定的方式互相协调。这就是控制器的工作。控制器是高校的中枢系统,它将控制信号传送到其他设备并检测它们的状态。 由输入和输出操作构成的I/O传输是被I/O程序的指令所控制的,I/O程序识别相关的设备和需要传输的信息。但是,控制传输的实际是由控制电路产生的。时序信号是决定何时发生规定动作的信号。处理器和存储器之间的数据传送也是由控制器通过时序信号控制的。

指令有两部分: 控制器的基本任务 我们把取指令的一段时间叫做 执行指令的一段时间叫做 一个位bit为最小计算单位 一个字节由构成 一个字由个字构成,n为字长,常见的有8位、16位

计算机中字既可以表示指令,也可以表示数据:

取值周期中从内存读出的信息流是,它流向。 执行周期中从内存中国读出或流入的数据为,它流向或者

1.3 电子计算机设计思想

存储程序+程序控制 冯诺依曼计算机: 存储程序并按地址执行 冯诺依曼计算机基本思想:

  1. 采用二进制形式表示数据和指令,指令由操作码和地址码组成。
  2. 将程序和数据存放在存储器中,即“存储程序”和“程序控制”。
  3. 指令的执行是顺序的。
  4. 由存储器、运算器、控制器、输入和输出设备五大组件构成。

I/O设备通常称为 **适配器(I/O接口)**相当于一个转换器,它可以保证外围设备用计算系统特性要求的形式发送或接收数据。

软件是指硬件上运动的程序和相关的数据及文档。

1.4 处理器的一些补充

计算机的活动是由指令控制的,为了执行一个给定的任务,要在存储器中存储一个包含一连串指令的相应程序。完成特定操作的指令从存储器中逐个取出,然后送入处理器,用作操作数的数据也存储在存储器中。

如图显示了存储器和处理器是如何链接在一起的,也显示了一些还没有讨论过的处理器的重要操作细节。(后续在处理器章节会详细说明)

除了ALU(逻辑运算单元)和控制电路外,处理器中包含许多用于不同目的的寄存器。指令寄存器(IR)保留当前正在执行的指令,它的输出结构由控制电路来获得,可产生能够控制执行指令中不同处理部件的时序信号。程序计数器(PC)是另一个由专门用途的寄存器。它跟踪程序执行的过程,其中包含下一条即将被读取和执行指令的内存地址。 还有两种寄存器与内存通信。这就是。MAR保存着即将访问单元的地址,MDR保存着将写入该地址单元或从该地址单元中读出的数据。

第二章:运算方法和运算器

本章重点:

掌握数据的定点和浮点表示格式,并会正确地进行表示 掌握数据的原码、反码、补码和移码表示方法 了解字符、字符串和汉字的表示方法 清楚校验码的概念,重点掌握奇偶校验码 掌握并能熟练计算补码定点加减法,会正确地检测溢出 理解最基本的二进制加减法器的构成和工作原理 理解原码阵列乘法器的构造原理,会进行原、补码阵列乘法运算 理解阵列除法器的构造原理,会使用加减交替法进行除法运算 理解 ALU 的构造原理和两级先行进位的思想 清楚浮点加、减运算的计算步骤,会进行浮点加减运算 了解流水线的基本原理

2.1 数据与文字的表示方式

真值和机器数

数据表示需要考虑的因素:

  1. 数据的类型
  2. 可能遇到的数值范围
  3. 数值精确度
  4. 数据存储和运算的硬件代价

数据的表示格式:

  1. 定点格式
  2. 浮点格式

真值: 现实中真实的数值 机器数: 计算机中用0和1组合表示的数值 定点数:固定小数点的未至表达数值的机器数 -定点整数:将小数点固定在机器数的最右侧表达的整数 -定点小数:将小数点固定在机器数的最左侧表达的小数 浮点数:小数点浮动表达的实数 无符号数:只表达0和正整数的定点整数 有符号数:表达负整数、0和正整数的定点整数 -符号位需要占用一个位,常用机器的最高位 -0表示正数,1表示负数 -具有原码、反码、补码、移码

无符号数与定点数的表示

没有符号位,使用全部字长来表示数值大小 举例:

字长N=8时,编码00000000~11111111 取值范围: 0~255(28-1)

定点表示:约定机器中所有数据的小数点位置是固定不变的。通常将数据表示成纯小数或者纯整数。 定点数x=x0x1x2……xn表示如下(x0表示符号位,0正1负) 举例:

纯小数的表示范围为: x1x2x3……xn各位均为0时最小,各位均为1时最大,x0为符号位

0 ≤ |x| ≤ 1 - 2-n

的表示范围: 纯整数的表示范围为: x1x2x3……xn各位均为0时最小,各位均为1时最大,x0为符号位

0 ≤ |x| ≤ 2-n - 1

目前计算机中多采用定点纯整数表示,因此将定点数的运算简称为

既然定点数有大小范围,那我们如何用定点数表示非常大的数和非常小的数呢? 我们可以引入比例因子:

浮点数的表示方法

把一个数的有效数字和数的范围在计算机的一个存储单元中分别予以表示。 数的小数点位置随比例因子的不同而在一定范围内自由移动。

一个十进制数N可以写成:

N = 10e×M

则,一个R进制数N可写成:

N = Re× M

M:尾数 e:指数 R:基数

阶码:表达指数部分。用整数形式表示,指明小数点在数据中的位置,决定浮点数的尾数:用定点小数表示,给出有效数字的位数,决定了浮点数的.

十进制数串的表示方法: 二十进制编码部分方案 二十进制有权码: 对于有权码,将每位的数码与相应的位权相乘,再求和,就可以得到它所代表的十进制数值。 8421码实现加减运算时的修正规则:

  1. 未超出9(1001),不进行修正
  2. 超出9(1001),不超过16(10000),加6修正,使它向高一组产生进位,省去最高位。
  3. 超出16(10000),加6修正。

余三码是在8421码的基础上,把每个代码都加上0011而形成的。 普通8421码的加法器仍能为余三码加法器直接利用,具体规则如下:

  1. 若两个十进制数的余三码相加,如果结果不产生进位,则从所得和值减去0011,便得十进制位和的余三码。
  2. 若两个十进制的余三码相加,如果结果有进位,则其进位正确,但仍需将所得值加上0011.才求的十进制和的余三码。

格雷码的编码规则是使相邻的两个代码,只有一个二进制的状态不同,其余三个二进制位必须有相同状态。 优点:从一个编码变到下一个相邻编码时,只有一个位的状态发生变化,有利于保证代码变换的连续性。在模拟/数字转换和产生节拍电位等应用场合特别有用。

数的机器码表示

把符号位和数值位一起编码来表示相应的数。

-原码 -补码 -反码 -移码

原码

定点整数的原码形式为x0x1x2……xn(x0为符号位) 举例: 定点小数的原码形式为x0x1x2……xn(x0为符号位) 举例: 原码的表示范围:

  1. 原码为符号位加上数的绝对值,0正1负。
  2. 原码0有两个编码,+0和-0编码不同
  3. 原码表示简单,易于同真值之间进行转换。
  4. 原码乘除运算规则简单
  5. 原码加减运算负责 当两数相加时,同号则相加;如果是异号则相减。而在进行减法运算时,还要比较绝对值的大小,然后大数减去小数,最后还要给结果选择符号。

补码

模的概念: 计算机中运算器、寄存器、计数器都有一定的位数,不可能容纳无限大的任意数。当运算结果超出实际的最大表示范围,就会发生溢出,此时所产生的就是(module)。 模定义为。如:一个4位的计数器它的计数值为0~15。当计数器计满15之后再加1,这个计数器就发生溢出,其溢出量为16,模等于16。定点小数的溢出量为2,即以2为模; 一个字长为n+1位的定点整数的溢出量为2n+1,即以2n+1为模。

定点整数的补码形式:x0x1x2……xn(x0为符号位) 举例:

补码与真值: 举例: 定点整数的补码表示: 有符号整数在计算机中默认采用补码。 -最高位表示符号,0正1负 -正数补码:直接表示数值大小(=原码=无符号数) -复数补码:将对应的正数补码取反加1

举例:

负数求补: 负数真值“取反加一”得到机器数补码 负数补码“取反加一”得到负数真值

负数求补运算,等效于用带借位的0做减法

  1. 补码最高一位为符号位,0正1负
  2. 补码零具有编码
  3. 补码的加减运算规则简单 最高位参与运算,与其他位一样对待

反码

反码:二进制的各位数码0变1,1变0 有符号整数的反码:

  1. 最高位表示符号,0正1负
  2. 正数反码:直接表示数值大小(=原码=补码)
  3. 负数反码:将对应正数反码取反

例题:

移码

移码通常用于表示浮点数的阶码 假设定点整数移码形式为ekek-1……e2e1e0时,移码的定义是:

(计算:对应补码的符号位取反)

8位移码表示的机器数位数的真值在数轴上向右平移了27=128个位置 举例: 机器码总结:

  1. 正数的原码、反码、补码等于真值,只有负数才分别有不同的表示方法
  2. 采用补码,减法运算可以用加法运算实现,节省硬件,目前机器中广泛采用补码表示法
  3. 有些机器用原码进行存储和传送,运算时改用补码
  4. 有些机器做加减法时用补码,做乘除法时用原码
  5. 移码表示法主要用于表示浮点数的阶码,可以直接比较大小。表示范围和补码相同,只有最高位相反

例题:

浮点数的机器表示

32位单精度浮点数 IEEE754标准: 移码方法: E=e+127 将-126 ~ +127的范围变为正整数1 ~ 254

64位单精度浮点数 IEEE754标准 在计算机内,浮点数的尾数是纯小数,对非0值的浮点数,要求尾数的绝对值必须 ≥ 1/2 ,即尾数域的最高有效位应为1,称满足这种表示要求的浮点数为 把不满足这一表示要求的尾数,变成满足这一要求的尾数的操作过程,叫作,通过实现。

既然非0值浮点数的尾数数值最高位必定为1,则在保存浮点数到内存前,通过尾数左移,强行把该位去掉,用同样多的尾数位就能多存一位二进制数,有利于提高数据表示精度,称这种处理方案使用了

当然,在取回这样的浮点数到运算器执行运算时,必须先恢复该隐藏位。

尾数最高有效位为1,隐藏,并且隐藏在小数点的左边(即:1≤M<2)

32位单精度规格化浮点数的表示范围:

E = 1(0000 0001) ~ 254(1111 1110) e = -126 ~ +127 表达的数据范围(绝对值) 最小值:e=-126,M=0(1.M = 1) 十进制表达:2-126 ≈ 1.18 × 10-38 最大值:e = 127, M = 11……1(23个1) 1.M = 1.11……1(23个1) = 2 - 2-23 十进制表示: (2-2-23) × 2127 ≈ 2* 2127 ≈ 3.40 × 1038

64位单精度规格化浮点数的表示范围:

E =1 ~ 2046 e = -1022 ~ +1023 表达的数据范围(绝对值) 最小值:e=-1022,M=0(1.M = 1) 十进制表达:2-1022 ≈ 2.23 × 10-308 最大值:e = 1023, M = 11……1(52个1) 1.M = 1.11……1(52个1) = 2 - 2-52 十进制表示: (2-2-52) ×21023 ≈ 2 × 21023 ≈ 1.79 ×10308

各类32/64位单/双精度浮点数:

  1. 真值0的机器数(机器零)

阶码E=0,尾数M=0 正0:S=0,负0:S=1

  1. 非规格化浮点数: 阶码E=0,尾数M≠0(E偏移量为126),真值F=(-1)S×M×2E-126
  2. 规格化浮点数: 阶码E = 1 ~ 254(1111 1110) 无穷大的机器数:

阶码E = 全1(1111 1111),尾数M =0 +∞:S=0,-∞:S=1

  1. NaN(Not a Number),不是一个数 阶码E = 全1,尾数M≠0

例题:

2.2 字符串的表示方法

大端序和小端序

字符串是指连续的一串字符,通常占用主存中连续的多个字节,每个字节存一个字符。 存放方式可分为小端方式和大端方式。

2.3 汉字的表示方式

  1. 汉字的输入编码:
  2. 汉字内码: 汉字内码是用于汉字信息的存储、检索等操作的机内代码,一般采用两个字节表示。 汉字内码有多种方案,常用以国标码为基础的编码例如,将国标码两字节的最高位置1后形成。

3. 字模码 4. 总结:

Unicode实现方法

UTF-8

以字节为单位对Unicode进行编码>对不同范围的字符使用不同长度的编码

UTF-16

以16位无符号整数为单位

UTF-32

以32位无符号整数为单位

目前UTF-8和UTF-16被广泛使用,而UTF-32由于太浪费存储空间而很少被使用

2.4 校验码

  1. :能够发现甚至纠正信息传输或存储过程中出现错误的编码
  2. :仅能检测出错误的编码
  3. :能够发现并纠正错误的编码
  4. 最简单且应用广泛的检错码:
  5. :使包括校验位在内的数据中为1的个恒为奇数
  6. :使包括校验位在内的数据中为1的个数恒为偶数(包括0)
  7. 只能检测出奇数个位出错的情况,

例题:

2.5 定点加法、减法运算

补码加法

补码加法的公式为: 在模2n+1意义下,任意两数的补码之和等于改两数之和的补码。

例题:

  1. 符号位要作为数的一部分一起参加运算
  2. 要在模2n+1的意义下相加,即超过模的进位要丢掉

补码减法

补码减法公式是: 例题:

溢出概念与检验方法

在定点整数机器中,n+1位数的表示范围为|X|<2n-1 在运算过程中如出现大于绝对值的现象,称为 两个正数相加,结果大于机器所能表示的最大正数,称为 两个负数相加,结果小于机器所能表示的最小负数,称为

例题:

分析可知,当最高有效数值位的运算进位与符号位的运算进位时,将产生运算

进一步结论: 当最高有效位有进位而符号位无进位时,产生最高有效位无进位而符号位有进位时,产生

溢出检测方法

双符号位法

,称为“变形补码”或 模2n+2补码 可使模2n+2补码所能表示的数的范围扩大一倍 变形补码定义为: 计算时:

  1. 两个符号位都看作数码一样参加运算
  2. 两数进行以2n+2为模的加法,即最高符号位上产生 进位要丢掉 采用变形补码后,如果两个数相加后,其结果的符号位出01或10两种组合时,表示发生,最高符号位所表示的是

例题: 变形补码的总结:

  1. 当以变形补码运算,运算结果的二符号位相异时,表示溢出;相同时,表示未溢出。故溢出逻辑表达式为V=Sf1⊕Sf2,其中Sf1和Sf2分别为最高符号位和第二符号位。此逻辑表达式可用异或门实现。
  2. 模2n+2补码相加的结果,不论谥出与否,最高符号位始终指示正确的符号。

单符号位法

(1)当符号位无进位而最高有效位有进位时,产生 (2)当符号位有进位而最高有效位无进位时,产生 故:溢出逻辑表达式为:V=Cf⊕C0 Cf为符号位产生的进位,C0为最高有效位产生的进位 (此逻辑关系可用异或门方便地实现)

在定点机中,当运算结果发生溢出时,机器通过逻辑电路自动检查出溢出故障,并进行中断处理。

基本二进制加法 / 减法器

两个二进制数字Ai,Bi和一个进位输入Ci相加,产生一个和输出Si,以及一个进位输出Ci+1

一位全加器

根据真值表,三个输入端和两个输出端可按如下逻辑方程进行联系: Ci+1的时间延迟为2T,其中被定义为相应于单级逻辑电路的单位门延迟。T通常采用一个“与”门或一个“或”门的时间延迟来作为度量单位,因此多级进位链的时间延迟可以用与或门的级数或者T的数目来计算得到。(异或门的延迟时间可以视作3T) n个1位的 M为, 当M=0时,作加法(A+B)运算 当M=1时,作减法(A-B)运算,转化成[A] - [-B]运算, 求补过程由B反+1来实现,起始进位连接到功能方式线M上 作减法时M=1,相当于在加法器的最低位上加1. 单符号位法的溢出检测逻辑;当Cn=Cn-1时,运算无溢出 而当Cn≠Cn-1时,运算有溢出,经异或门产生溢出信号。

2.6定点乘法运算

原码并行乘法

本部分因为部分符号很难打出来,所以会用比较多的课件图片 早期计算机中为了简化硬件结构,采用串行的1位乘法方案,即多次执行"加法一移位”操作来实现。这种方法并不需要很多器件。然而串行方法太慢,自从大规模集成电路问世以来,出现了各种形式的流水式阵列乘法器,它们属于并行乘法器。 举例:

求补电路

带符号的阵列乘法器

把包括求补级的乘法器又称为 在这种逻辑结构中,共 ,作用是:将两个操作数A和B在被不带符号的乘法阵列(核心部件)相乘以前,先变成正整数。 ,作用是:当两个输入操作数的符号不一致时,把运算结果变成带符号的数。

带求补器的阵列乘法器既适用于原码乘法,也适用于间接的补码乘法。 在原码乘法中,算前求补和算后求补都不需要,因为输入数据都是立即可用的。 间接的补码阵列乘法需要使用三个求补器。为了完成所必需的求补与乘法操作,时间大约比原码阵列乘法增加1倍。

数据送入无符号阵列乘法器之前,将参与运算的补码数据先换为数据的绝对值,由算前求补器完成。

乘积的符号位单独形成通过异或门。

完成乘法运算后,根据乘积的符号位将两数绝对值的乘积再转换回补码的形式,得出乘积的补码,由算后求补器完成。

这种带求补器的阵列乘法器所完成的补码乘法实质上属于间接的补码乘法。

2.7 定点除法运算

原理

两个原码数相除时,商的符号由两数的符号按位异或求得,商的数值部分由两数的数值部分相除求得。

设有n位定点小数(定点整数也同样适用): 被除数x,其原码为[x]=XfXn-1…X1Xo 除数y,其原码为[y]原=yfyn-1…y1y0

则有商q = ×/y,其原码为 [q]=(x⊕y)+(0.Xn-1……x1x0/0.yn-1…y1y0) 商的数值部分运算实质上是两个正数求商的运算

例:

恢复余数法

机器不会心算,必须先作减法,若余数为正,才知道够减;若余数为负,才知道不够减。 不够减时必须恢复原来的余数,以便再继续往下运算。恢复原来的余数,只要当前的余数加上除数即可。但由于要恢复余数,使除法进行过程的步数不固定,因此控制比较复杂。

加减交替法

不恢复余数法,又称加减交替法。 其特点是运算过程中如出现不够减,则不必恢复余数,根据余数符号,可以继续往下运算步数固定,控制简单。 :x/y (1)首先对被除数x做减除数y运算,即:+[-y]; (2)判断余数符号,若余数为正(够减),则:商上“1”, 除数右移1位,然后做减除数(+[-y21])运算; (3)若余数为负(不够减),则:商上"0”, 除数右移1位,然后做加除数(+[y2-1])运算。 : 在定点小数的原码除法运算中 (1)x>0,y>0,数值均取正的小数;(符号位单独考虑) (2) x < y ,保证:商 q = x/y也是小数。

*重点题型 除法的加减交替计算

https://blog.csdn.net/weixin_43889841/article/details/103653662

阵列除法器

早期计算机为了简化结构,硬件除法器的设计采用串行的1位除法方案。即多次执行“”操作来实现,并使用计数器来控制移位次数由于串行除法器速度太慢,已被淘汰 不仅所需的控制线路少,而且能提供令人满意的高速运算。 阵列除法器有多种多样形式,如不等等。

可控加法/减法(CAS)单元

将用于并行除法流水逻辑阵列中,它有四个输出端和四个输入端。 当输入线P=0时,CAS作加法运算;当P=1时,CAS作减法运算 CAS单元的输入与输出的关系可用如下一组逻辑方程来表示

不恢复余数(加减交替法)阵列除法器

假定所有被处理的数都是 在不恢复余数的除法阵列中,每一行所执行的操作究竟是加法还是减法,取决于前一行输出的符号与被除数的符号是否一致。当出现不够减时,部分余数相对于被除数来说要改变符号。这时应该产生一个商位“0”,除数沿对角线右移,然后加到下一行的部分余数上。当部分余数不改变它的符号时,即产生商位“1”,下一行的操作应该是减法。

阵列除法器分析: 该阵列除法器是用所组成的流水阵列来实 现的。 一个(n+1)位除(n+1)位的加减交替除法阵列由(n-1)2个CAS单元组成,其中两个操作数(被除数与除数)都是正的。

是一个6位的小数(双倍长度值): X =0.X1X2X3X4X5X6 它是由顶部一行和最右边的对角线上的垂直输入线来提供

是一个3位的小数: y=0.y1y2y3 它沿对角线方向进入这个阵列 这是因为除法中的部分余数的左移,等效的操作是余数保持固定,而将除数沿对角线右移 是一个3位的数: q=0.q1q2q3 它在阵列的左边产生 是一个6位的小数: r =0.00r3r4r5r6 -它在阵列的最下一行产生

最上面一行所执行的初始操作是减法,因此最上面一 行的 减法是用 +[-y] 运算来实现的,这时右端各CAS单元上的反馈线用作初始的进位输入 **每一行最左边的单元的进位输出决定着商的数值。**将当前的商反馈到下一行,就能确定下一行的操作。进位输出信号决定下一行的操作将进行加法还是减法。

对不恢复余数阵列除法器来说,在进行运算时,沿着每一行都有进位(或借位)传播,同时所有行在它们的进位链上都是串行连接。 而每个CAS单元的延迟时间为3T单元,因此,对一个2n位除以n位的不恢复余数阵列除法器来说,单元的数量为(n-1)2,考虑最大情况下的信号延迟,其除法执行时间为: td=(n-1)2×3T 其中n为尾数位数

2.8定点运算器的组成

逻辑运算

逻辑数,指不带符号的二进制数

逻辑非、逻辑加、逻辑乘、逻辑异

也称,对某数进行逻辑非运算,就是按位求反,常用变量上加一横表示: 逻辑加,对两个数的逻辑加,就是按位求**”或“**

逻辑乘,就是按位求**”与“** 也称逻辑与 逻辑异,对两数进行异或,就是按位求它们的模2和,逻辑异又称”按位加“

2.9行波进位的补码加法/减法器

2.10ALU的基本思想

本部分可先参考: ALU ALU2

理解74181ALU74182CLA 以下为课件摘录,这一部分不好打字,本文章不详细讲解。

ALU: (Arithmetic&logical Unit)是中央处理器(CPU)的执行单元,是所有中央处理器的核心组成部分。

一位全加器(FA)的逻辑表达式为:

Fi=Ai⊕Bi⊕Ci Ci+1=AiBi+BiCi+CiAi

将A和B先组合成由控制参数S0,S1,S2,S3控制的组合函数Xi和Yi,然后再将Xi,Yi和下一位进位数通过全加器进行全加。这样,不同的控制参数可以得到不同的组合函数,因而能够实现多种算术运算和逻辑运算。

补充: 是用表示法来表示的是指算术加,运算时要考虑进位 符号“+ ”是指“逻辑加 减法是用补码方法进行的,其中数的反码是内部产生的,而结果输出“A减B减1”,因此做减法时需在最末位产生一个强迫进位(加1),以便产生A减B的结果 A=B输出端可指示两个数相等,因此它与其他ALU的A=B输出端按“与”逻辑连接后,可以检测两个数的相等条件

2.11总线

是计算机内各部件之间传送信息的公用的一组连线根据 总线所在位置,总线分为内部总线和外部总线两类

内部总线是指CPU内各部件的连线 外部总线是指系统总线,即CPU与存储器、I/O系统之间的连线 按总线的逻辑结构来说,总线可分为

单向总线,就是信息只能向一个方向传送 双向总线,就是信息可以分两个方向传送,既可以发送数据,也可以接收数据

运算器包括ALU阵列乘除器寄存器多路开关三态缓冲器数据总线等逻辑部件 运算器的设计,主要是围绕ALU寄存器数据总线之间如何传送操作数和运算结果进行的

在决定方案时,需要考虑数据传送的方便性和操作速度,在微型机和单片机中还要考虑在硅片上制作总线的工艺。

数据可以在任何两个寄存器之间,或者在任一个寄存器和ALU之间传送 在同一时间内,只能有一个操作数放在单总线上。为了把两个操作数输入到ALU,需要分两次来做,而且还需要A,B两个缓冲寄存器 主要缺点是 虽然在这种结构中,输入数据和操作结果需要操作,但它并不会对每种指令都增加很多执行时间,只有在对全都是CPU寄存器中的两个操作数进行操作时,单总线结构的运算器才会造成一定的时间损失。但是由于它只控制一条总线,故控制电路比较简单。

两个操作数同时加到ALU进行运算,只需,而且马上就可以得到运算结果

两条总线各自把其数据送至ALU的输入端。特殊寄存器分为两组,分别与一条总线交换数据。通用寄存器中的数就可进入到任一组特殊寄存器中,使更为灵活

ALU的输出不能直接加到总线上去。因为,当形成操作结果的输出时,两条总线都被输入数占据,因而必须在ALU输出端设置

假如在总线1,2和ALU输入端之间再各加一个输入缓冲寄存器,并把两个输入数先放至这两个缓冲寄存器,那么,ALU输出端就可以直接把操作结果送至总线1或总线2上去。

ALU的输入端分别由2条总线供给,ALU的输出与第3三条总线相连。运算操作可以在一步控制内完成。 由于ALU本身有时间延迟,所以打入输出结果的必须考虑到包括这个延迟 ,如果一个操作数不需要修改,而直接从总线2传送到总线3,可以通过控制总线旁路器把数据传出,如果一个操作数传送时需要修改,那么就借助于ALU 三总线结构的运算器的特点是

2.12浮点运算和浮点运算器

浮点加法、减法运算

完成浮点加减运算的操作过程大体分为四步: 1.0操作数的检查 2.比较阶码大小并完成对阶 3.尾数进行加或减运算 4.结果规格化并进行舍入处理

0操作数的检查 浮点加减运算过程比定点运算过程复杂。如果判知两个操作数xy中有一个数为0,即可得知运算结果而没有必要再进行后续的一系列操作以节省运算时间

比较阶码大小并完成对阶 两浮点数进行加减,首先要看两数的阶码是否相同,即小数点位置是否对齐。若二数阶码相同,表示小数点是对齐的,就可以进行尾数的加减运算。若二数阶码不同,表示小数点位置没有对齐必须使二数阶码相同,这个过程叫作对阶要对阶,首先应求出两数阶码Ex和Ey之差,即 △E = Ex - Ey

对阶尾数进行加或减运算 对阶结束后,即可进行尾数的求和运算。不论加法运算还是减法运算,都按加法进行操作,其方法与定点加减法运算完全一样。

结果规格化 舍入处理 就是通常所说的“四舍五入”例如,尾数超出规定的23位的多余位数字是10010(>10000),多余位的值超过规定的最低有效位值的一半(16),故最低有效位应增1。若多余的5位是01111(<10000),则简单的截尾即可。对多余的5位10000这种特殊情况:若最低有效位为0则截尾;若为1,则向上进一位使其变为0。

,朝数轴原点方向舍入,就是简单的截尾。无论尾数是正还是负,截尾都使取值的绝对值比原值的绝对值小,这种方法容易导致误差积累 ,对正数,只要多余位不全为0则向最低有效位进1;对负数,则是简单的截尾 ,对正数,只要多余位不全为0侧简单截尾;对负数,向最低有效位进1

阶码上溢,超过了阶码可能表示的最大值的正指数值,一般将其认为是 ∞和-∞ 阶码下溢,超过了阶码可能表示的最小值的负指数值,一般将其认为是0 尾数上溢,两个同符号尾数相加产生了最高位向上的进位,将尾数右移,阶码增1来重新对齐 尾数下溢,在将尾数右移时,尾数的最低有效位从尾数域右端流出,要进行舍入处理

例题:

浮点乘法、除法运算

步骤: 0操作数检查 阶码加/减操作 尾数乘/除操作 结果规格化舍入处理

尾数的运算:

是,无条件地丢掉正常尾数最低位之后的全部数值。这种办法被称为,好处是处理简单,缺点是影响结果的精度。 是,运算过程中保留右移中移出的若干高位的值,最后再按某种规则用这些位上的值修正尾数,这种处理方法被称为

当尾数用原码表示时: 方法一:只要尾数的最低位为1,或移出的几位中有为1的数值位,就使最低位的值为1 方法二:0舍1入法,即当丢失的最高位的值为1时,把这个1加到最低数值位上进行修正,否则舍去丢失的各位的值

2.14流水线原理

为了实现流水,首先必须把输入的任务分割为一系列的子任务,使各子任务能在流水线的各个阶段并发地执行,将任务连续不断地输入流水线,从而实现了子任务的并行 流水处理大幅度地改善了计算机的系统性能,是在计算机上实现时间并行性的一种非常经济的方法。

在流水线中,原则上要求各个阶段的处理时间都相同若某一阶段的处理时间较长,势必造成其他阶段的空转等待。因此对子任务的划分,是决定流水线性能的一个关键因素,它取决于操作部分的效率、所期望的处理速度,以及成本价格等假定作业T被分成k个子任务,可表达为

T={T1,T2,……Tn}

各个子任务之间有一定的优先关系;若i<j,则必须在T完成以后,T才能开始工作。具有这种线性优先关系的流水线称为。 例题:

第三章 存储系统

3.1 存储系统概述

存储器的存储结构

在某一段时间内,频繁访问某一局部的存储器地址空间,而对范围以外的地址空间很少访问

时间局部性:最近被访问的信息很可能还要被访问

空间局部性:最近被访问的临近地址的信息也可能被访问

:主要采用半导体器件和磁性材料 :存储一位二进制代码,是存储器中最小的存储单位

由若干个存储位元组成一个 由许多存储单元组成一个

存储器的分类

上区分,可分为半导体存储器、磁性材料存储器、光存储器。

上区分,可分为随机存取存储器顺序存取存储器半顺序(直接)存取存储器

上区分,可分为随机存取存储器(RAM)只读存储器(ROM)

上区分,可分为易失性存储器非易失性存储器

上区分,可分为内部存储器和外部存储器,其中内部存储器又包括主存高速缓冲存储器

的分类:

存储器的编址和端模式

:存放一个机器字的存储单元,相应的单元地址称为字地址:存放一个字节的单元,相应的地址称为字节地址:计算机编址的最小单位是字存储单元:计算机编址的最小单位是字节

一个机器字可以包含数个字节 一个存储单元也可以包含数个字节

,端模式分为

标签: 各位d2553晶体管的参数p48j5m密封连接器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台