前言
本文参考书为《计算机组成原理》第六版和《机械工业出版社计算机组成》。本文是期末复习的参考,非研究生入学考试,重点可能不同。如果有错误,请指出。 重点在 二、三、四、五章。其他章节主要是简答题。
建议搭配例题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 补充处理器
- 第二章:操作方法和操作器
-
- 2.1 数据和文本的表达
-
- 真值和机器数
- 表示无符号数和定点数
- 浮点数的表示方法
- 数字机码表示
-
- 原码
- 补码
- 反码
- 移码
- 机器表示浮点数
- 2.2 表示字符串的方法
-
- 大端序和小端序
- 2.3 汉字的表达
-
- Unicode实现方法
- 2.4 校验码
- 2.5 定点加减操作
-
- 补码加法
- 补码减法
- 溢出概念与检验方法
-
- 溢出检测方法
- 双符号位法
- 单符号位法
- 基本二进制加法 / 减法器
-
- 一位全加器
- 2.6定点乘法运算
-
- 原码并行乘法
- 求补电路
- 带符号的阵列乘法器
- 2.7 定点除法操作
-
- 原理
- 恢复余数法
- 加减交替法
- *重点题型 交替计算除法的加减
-
-
- 阵列除法器
-
- 可控加法/减法(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 计算机分类和发展简史
分类
计算机是一种以
电子器件
为基础的不需要人的干预
,能对各种数字化信息
进行算术和逻辑运算
的快速
工具。
电子计算机分两种:
- 电子数字计算机:由
逻辑电子器件
构成,变量为离散量
- 电子模拟计算机:由
模拟运算器件
构成,变量为连续量
电子数字计算机与电子模拟计算机的主要区别: 数字计算机进一步又可分为和
通用计算机可分为六类:
- 超级计算机
- 大型机
- 服务器
- PC机
- 单片机
- 多核机
发展及硬件
计算机发展趋势:
计算机经历了五代变化:
第一代: 1946~1957,。体积庞大,成本很高,可靠性较低。在此期间,形成了计算机的基本体系,确定了程序设计的基本方法,开始得到应用。
第二代: 1958~1964,晶体管计算机。可靠性提高,体积缩小,成本降低。在此期间,开始得到应用。
第三代: 1965~1971年,。再次期间形成机种多样化,生产系列化,使用系统化,开始使用。
第四代: 1972~1990,,由几片大规模集成电路组成的开水出现。
第五代: 1991年至今,出现,由一片巨大规模集成电路实现的开始出现。
指令集授权方式:
- IP内核授权
- 指令集架构授权
- 授权+ 自主研制指令集
常见指令集:
计算机性能指标
1.2 计算机的功能部件
计算机主要有五个功能部件 输入设备、存储器、算术逻辑单元、输出设备、控制器 这里先简要描述一些概念,具体的知识点会在后续详细解释。
存储器
存储器的功能是存储程序和数据,它分为主存储器和辅助存储器两种。 主存储器是以电子速度运行告诉内存,程序正在执行时必须要存储在内存中。 内存包含大量的半导体存储单元。
一个半导体触发器有0和1两个状态,可以记忆。 这些半导体存储单元很少被单独读取或者编写,而是按照固定大小的组进行处理,这个组称为。 每个字的位数称为,典型的字长范围是从16位到64位。 若按找16位计算机: 在存储器中把保存一个数的16个触发器称为一个。 每个存储单元都有编号,称为。 存储器所有存储单元的总数称为。
摩尔定律: 每18个月,集成电路的性能就会提升一倍,价格将会降低一倍。
控制器
存储器、运算器和输入输出设备对信息进行存储和处理,然后执行输入和输出操作。这些设备的操作必须按一定的方式互相协调。这就是控制器的工作。控制器是高校的中枢系统,它将控制信号传送到其他设备并检测它们的状态。 由输入和输出操作构成的I/O传输是被I/O程序的指令所控制的,I/O程序识别相关的设备和需要传输的信息。但是,控制传输的实际是由控制电路产生的。时序信号是决定何时发生规定动作的信号。处理器和存储器之间的数据传送也是由控制器通过时序信号控制的。
指令有两部分: : 控制器的基本任务 我们把取指令的一段时间叫做 执行指令的一段时间叫做 一个位bit
为最小计算单位 一个字节由构成 一个字由个字构成,n为字长,常见的有8位、16位
计算机中字既可以表示指令,也可以表示数据:
取值周期中从内存读出的信息流是,它流向。 执行周期中从内存中国读出或流入的数据为,它流向或者
1.3 电子计算机设计思想
存储程序+程序控制 冯诺依曼计算机: 存储程序并按地址执行 冯诺依曼计算机基本思想:
- 采用二进制形式表示数据和指令,指令由操作码和地址码组成。
- 将程序和数据存放在存储器中,即“存储程序”和“程序控制”。
- 指令的执行是顺序的。
- 由存储器、运算器、控制器、输入和输出设备五大组件构成。
I/O设备通常称为 **适配器(I/O接口)**相当于一个转换器,它可以保证外围设备用计算系统特性要求的形式发送或接收数据。
软件是指硬件上运动的程序和相关的数据及文档。
1.4 处理器的一些补充
计算机的活动是由指令控制的,为了执行一个给定的任务,要在存储器中存储一个包含一连串指令的相应程序。完成特定操作的指令从存储器中逐个取出,然后送入处理器,用作操作数的数据也存储在存储器中。
如图显示了存储器和处理器是如何链接在一起的,也显示了一些还没有讨论过的处理器的重要操作细节。(后续在处理器章节会详细说明)
除了ALU(逻辑运算单元)和控制电路外,处理器中包含许多用于不同目的的寄存器。指令寄存器(IR)保留当前正在执行的指令,它的输出结构由控制电路来获得,可产生能够控制执行指令中不同处理部件的时序信号。程序计数器(PC)是另一个由专门用途的寄存器。它跟踪程序执行的过程,其中包含下一条即将被读取和执行指令的内存地址。 还有两种寄存器与内存通信。这就是。MAR保存着即将访问单元的地址,MDR保存着将写入该地址单元或从该地址单元中读出的数据。
第二章:运算方法和运算器
本章重点:
掌握数据的定点和浮点表示格式,并会正确地进行表示 掌握数据的原码、反码、补码和移码表示方法 了解字符、字符串和汉字的表示方法 清楚校验码的概念,重点掌握奇偶校验码 掌握并能熟练计算补码定点加减法,会正确地检测溢出 理解最基本的二进制加减法器的构成和工作原理 理解原码阵列乘法器的构造原理,会进行原、补码阵列乘法运算 理解阵列除法器的构造原理,会使用加减交替法进行除法运算 理解 ALU 的构造原理和两级先行进位的思想 清楚浮点加、减运算的计算步骤,会进行浮点加减运算 了解流水线的基本原理
2.1 数据与文字的表示方式
真值和机器数
数据表示需要考虑的因素:
- 数据的类型
- 可能遇到的数值范围
- 数值精确度
- 数据存储和运算的硬件代价
数据的表示格式:
- 定点格式
- 浮点格式
真值: 现实中真实的数值 机器数: 计算机中用0和1组合表示的数值 定点数:固定小数点的未至表达数值的机器数 -定点整数:将小数点固定在机器数的最右侧表达的整数 -定点小数:将小数点固定在机器数的最左侧表达的小数 浮点数:小数点浮动表达的实数 无符号数:只表达0和正整数的定点整数 有符号数:表达负整数、0和正整数的定点整数 -符号位需要占用一个位,常用机器的最高位 -0表示正数,1表示负数 -具有原码、反码、补码、移码
无符号数与定点数的表示
没有符号位,使用全部字长来表示数值大小 举例:
字长N=8时,编码00000000~11111111 取值范围: 0~255(28-1)
定点表示:约定机器中所有数据的小数点位置是固定不变的。通常将数据表示成纯小数或者纯整数。 定点数x=x0x1x2……xn表示如下(x0表示符号位,0正1负) 举例:
0 ≤ |x| ≤ 1 - 2-n
0 ≤ |x| ≤ 2-n - 1
目前计算机中多采用定点纯整数表示,因此将定点数的运算简称为
既然定点数有大小范围,那我们如何用定点数表示非常大的数和非常小的数呢? 我们可以引入比例因子:
浮点数的表示方法
把一个数的有效数字和数的范围在计算机的一个存储单元中分别予以表示。 数的小数点位置随比例因子的不同而在一定范围内自由移动。
一个十进制数N可以写成:
N = 10e×M
则,一个R进制数N可写成:
N = Re× M
M:尾数 e:指数 R:基数
阶码
:表达指数部分。用整数形式表示,指明小数点在数据中的位置,决定浮点数的尾数
:用定点小数表示,给出有效数字的位数,决定了浮点数的
十进制数串的表示方法:
- 未超出9(1001),不进行修正
- 超出9(1001),不超过16(10000),加6修正,使它向高一组产生进位,省去最高位。
- 超出16(10000),加6修正。
- 若两个十进制数的余三码相加,如果结果不产生进位,则从所得和值减去0011,便得十进制位和的余三码。
- 若两个十进制的余三码相加,如果结果有进位,则其进位正确,但仍需将所得值加上0011.才求的十进制和的余三码。
数的机器码表示
把符号位和数值位一起编码来表示相应的数。
-原码 -补码 -反码 -移码
原码
定点整数的原码形式为x0x1x2……xn(x0为符号位) 举例: 定点小数的原码形式为x0x1x2……xn(x0为符号位) 举例: 原码的表示范围:
- 原码为符号位加上数的绝对值,0正1负。
- 原码0有两个编码,+0和-0编码不同
- 原码表示简单,易于同真值之间进行转换。
- 原码乘除运算规则简单
- 原码加减运算负责 当两数相加时,同号则相加;如果是异号则相减。而在进行减法运算时,还要比较绝对值的大小,然后大数减去小数,最后还要给结果选择符号。
补码
模的概念: 计算机中运算器、寄存器、计数器都有一定的位数,不可能容纳无限大的任意数。当运算结果超出实际的最大表示范围,就会发生溢出,此时所产生的
定点整数的补码形式:x0x1x2……xn(x0为符号位) 举例:
补码与真值: 举例: 定点整数的补码表示: 有符号整数在计算机中默认采用补码。 -最高位表示符号,0正1负 -正数补码:直接表示数值大小(=原码=无符号数) -复数补码:将对应的正数补码取反加1
举例:
负数求补: 负数真值“取反加一”得到机器数补码 负数补码“取反加一”得到负数真值
负数求补运算,等效于用带借位的0做减法
- 补码最高一位为符号位,0正1负
- 补码零具有
唯一 编码 - 补码的加减运算规则简单 最高位参与运算,与其他位一样对待
反码
反码:二进制的各位数码0变1,1变0 有符号整数的反码:
- 最高位表示符号,0正1负
- 正数反码:直接表示数值大小(=原码=补码)
- 负数反码:将对应正数反码取反
例题:
移码
移码通常用于表示浮点数的阶码 假设定点整数移码形式为ekek-1……e2e1e0时,移码的定义是:
(计算:对应补码的符号位取反)
8位移码表示的机器数位数的真值在数轴上向右平移了27=128个位置 举例: 机器码总结:
- 正数的原码、反码、补码等于真值,只有负数才分别有不同的表示方法
- 采用补码,减法运算可以用加法运算实现,节省硬件,目前机器中广泛采用补码表示法
- 有些机器用原码进行存储和传送,运算时改用补码
- 有些机器做加减法时用补码,做乘除法时用原码
- 移码表示法主要用于表示浮点数的阶码,可以直接比较大小。表示范围和补码相同,只有最高位相反
例题:
浮点数的机器表示
32位单精度浮点数 IEEE754标准: 移码方法: E=e+127 将-126 ~ +127
的范围变为正整数1 ~ 254
64位单精度浮点数 IEEE754标准
当然,在取回这样的浮点数到运算器执行运算时,必须先恢复该隐藏位。
指数真值e用移码形式表示为阶码E
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位单/双精度浮点数:
- 真值0的机器数(机器零)
阶码E=0,尾数M=0 正0:S=0,负0:S=1
- 非规格化浮点数: 阶码E=0,尾数M≠0(E偏移量为126),真值F=(-1)S×M×2E-126
- 规格化浮点数: 阶码E = 1 ~ 254(1111 1110) 无穷大的机器数:
阶码E = 全1(1111 1111),尾数M =0 +∞:S=0,-∞:S=1
- NaN(Not a Number),不是一个数 阶码E = 全1,尾数M≠0
例题:
2.2 字符串的表示方法
大端序和小端序
字符串是指连续的一串字符,通常占用主存中连续的多个字节,每个字节存一个字符。 存放方式可分为小端方式和大端方式。
2.3 汉字的表示方式
- 汉字的输入编码:
- 汉字内码: 汉字内码是用于汉字信息的存储、检索等操作的机内代码,一般采用两个字节表示。 汉字内码有多种方案,常用以国标码为基础的编码例如,将国标码两字节的最高位置1后形成。
3. 字模码 4. 总结:
Unicode实现方法
UTF-8
以字节为单位对Unicode进行编码>对不同范围的字符使用不同长度的编码
UTF-16
以16位无符号整数为单位
UTF-32
以32位无符号整数为单位
目前UTF-8和UTF-16被广泛使用,而UTF-32由于太浪费存储空间而很少被使用
2.4 校验码
校验码 :能够发现甚至纠正信息传输或存储过程中出现错误的编码检错码 :仅能检测出错误的编码纠错码 :能够发现并纠正错误的编码- 最简单且应用广泛的检错码:
奇偶校验码 奇校验 :使包括校验位在内的数据中为1的个恒为奇数偶校验 :使包括校验位在内的数据中为1的个数恒为偶数(包括0)- 只能检测出奇数个位出错的情况,
不能纠错
例题:
2.5 定点加法、减法运算
补码加法
补码加法的公式为: 在模2n+1意义下,任意两数的补码之和等于改两数之和的补码。
例题:
- 符号位要作为数的一部分一起参加运算
- 要在模2n+1的意义下相加,即超过模的进位要丢掉
补码减法
补码减法公式是: 例题:
溢出概念与检验方法
在定点整数机器中,n+1位数的表示范围为|X|<2n-1 在运算过程中如出现大于绝对值的现象,称为
例题:
进一步结论: 当最高有效位有进位而符号位无进位时,产生
溢出检测方法
双符号位法
- 两个符号位都看作数码一样参加运算
- 两数进行以2n+2为模的加法,即最高符号位上产生 进位要丢掉 采用变形补码后,如果两个数相加后,其结果的符号位出01或10两种组合时,表示发生
溢出 ,最高符号位所表示的是结果的正确符号 。
例题: 变形补码的总结:
- 当以变形补码运算,运算结果的二符号位相异时,表示溢出;相同时,表示未溢出。故溢出逻辑表达式为V=Sf1⊕Sf2,其中Sf1和Sf2分别为最高符号位和第二符号位。此逻辑表达式可用异或门实现。
- 模2n+2补码相加的结果,不论谥出与否,最高符号位始终指示正确的符号。
单符号位法
(1)当符号位无进位而最高有效位有进位时,产生
在定点机中,当运算结果发生溢出时,机器通过逻辑电路自动检查出溢出故障,并进行中断处理。
基本二进制加法 / 减法器
两个二进制数字Ai,Bi和一个进位输入Ci相加,产生一个和输出Si,以及一个进位输出Ci+1
一位全加器
根据真值表,三个输入端和两个输出端可按如下逻辑方程进行联系: Ci+1的时间延迟为2T,其中
2.6定点乘法运算
原码并行乘法
本部分因为部分符号很难打出来,所以会用比较多的课件图片 早期计算机中为了简化硬件结构,采用串行的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) 商的数值部分运算实质上是两个正数求商的运算
例:
恢复余数法
机器不会心算,必须先作减法,若余数为正,才知道够减;若余数为负,才知道不够减。 不够减时必须恢复原来的余数,以便再继续往下运算。恢复原来的余数,只要当前的余数加上除数即可。但由于要恢复余数,使除法进行过程的步数不固定,因此控制比较复杂。
加减交替法
不恢复余数法,又称加减交替法。 其特点是运算过程中如出现不够减,则不必恢复余数,根据余数符号,可以继续往下运算步数固定,控制简单。
*重点题型 除法的加减交替计算
https://blog.csdn.net/weixin_43889841/article/details/103653662
阵列除法器
早期计算机为了简化结构,硬件除法器的设计采用串行的1位除法方案。即多次执行“
可控加法/减法(CAS)单元
不恢复余数(加减交替法)阵列除法器
假定所有被处理的数都是
阵列除法器分析: 该阵列除法器是用
最上面一行所执行的初始操作是减法,因此最上面一 行的
2.8定点运算器的组成
逻辑运算
逻辑数,指不带符号的二进制数
逻辑非、逻辑加、逻辑乘、逻辑异
逻辑乘,就是按位求**”与“** 也称逻辑与 逻辑异,对两数进行异或,就是按位求它们的模2和,逻辑异又称”按位加“
2.9行波进位的补码加法/减法器
2.10ALU的基本思想
本部分可先参考: ALU ALU2
理解74181ALU
和74182CLA
以下为课件摘录,这一部分不好打字,本文章不详细讲解。
ALU:
一位全加器(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的输出不能直接加到总线上去。因为,当形成操作结果的输出时,两条总线都被输入数占据,因而必须在ALU输出端设置
假如在总线1,2和ALU输入端之间再各加一个输入缓冲寄存器,并把两个输入数先放至这两个缓冲寄存器,那么,ALU输出端就可以直接把操作结果送至总线1或总线2上去。
2.12浮点运算和浮点运算器
浮点加法、减法运算
0操作数
的检查 2.比较阶码大小
并完成对阶
3.尾数
进行加或减运算 4.结果规格化
并进行舍入
处理
0操作数
的检查 浮点加减运算过程比定点运算过程复杂。如果判知两个操作数x
或y
中有一个数为0,即可得知运算结果而没有必要再进行后续的一系列操作以节省运算时间
比较阶码大小
并完成对阶
两浮点数进行加减,首先要看两数的阶码是否相同,即小数点位置是否对齐。若二数阶码相同,表示小数点是对齐的,就可以进行尾数的加减运算。若二数阶码不同,表示小数点位置没有对齐必须使二数阶码相同,这个过程叫作对阶要对阶,首先应求出两数阶码Ex和Ey之差,即 △E = Ex - Ey
对阶
: 尾数
进行加或减运算 对阶结束后,即可进行尾数的求和运算。不论加法运算还是减法运算,都按加法进行操作,其方法与定点加减法运算完全一样。
结果规格化
舍入
处理
阶码上溢
,超过了阶码可能表示的最大值的正指数值,一般将其认为是 ∞和-∞ 阶码下溢
,超过了阶码可能表示的最小值的负指数值,一般将其认为是0 尾数上溢
,两个同符号尾数相加产生了最高位向上的进位,将尾数右移,阶码增1来重新对齐 尾数下溢
,在将尾数右移时,尾数的最低有效位从尾数域右端流出,要进行舍入处理
例题:
浮点乘法、除法运算
步骤: 0操作数
检查 阶码
加/减操作 尾数
乘/除操作 结果规格化
及舍入
处理
尾数的运算:
2.14流水线原理
为了实现流水,首先必须把输入的任务分割为一系列的子任务,使各子任务能在流水线的各个阶段并发地执行,将任务连续不断地输入流水线,从而实现了子任务的并行 流水处理大幅度地改善了计算机的系统性能,是在计算机上实现时间并行性的一种非常经济的方法。
在流水线中,原则上要求各个阶段的处理时间都相同若某一阶段的处理时间较长,势必造成其他阶段的空转等待。因此对子任务的划分,是决定流水线性能的一个关键因素,它取决于操作部分的效率、所期望的处理速度,以及成本价格等假定作业T被分成k个子任务,可表达为
T={T1,T2,……Tn}
各个子任务之间有一定的优先关系;若i<j,则必须在T完成以后,T才能开始工作。具有这种线性优先关系的流水线称为
第三章 存储系统
3.1 存储系统概述
存储器的存储结构
时间局部性
:最近被访问的信息很可能还要被访问
空间局部性
:最近被访问的临近地址的信息也可能被访问
由若干个存储位元组成一个
存储器的分类
从
从随机存取存储器
、顺序存取存储器
、半顺序(直接)存取存储器
。
从随机存取存储器(RAM)
和只读存储器(ROM)
从易失性存储器
、非易失性存储器
。
从主存
,高速缓冲存储器
。
存储器的编址和端模式
字地址
。 字节地址
。 存储单元
。 字节
。
一个机器字可以包含数个字节 一个存储单元也可以包含数个字节