知识点梳理:
基本门电路功能
** **与、或、非
异或、与非、或非
例如:“与非”门中的某一个输入值为“0”,那么它的输出值?
将8位二进制n的bit1置1? n∨ 0000 0010
将8位二进制n的bit1置0? n∧ 1111 1101
异或门:在定点运算器中,无论采用双符号位还是单符号位,
必须有溢出判别电路,它一般用异或门来实现。
**三态门:三态指高电平、低电平和高阻态。**输出既可以是一般二值逻辑电路,即正常的高电平(逻辑1)或低电平(逻辑0),又可以保持特有的高阻抗状态。高阻态相当于隔断状态(电阻很大,相当于开路)。
第1章:
计算机系统:软件+硬件 软件: 系统软件、应用软件
计算机发展按照元器件分为五代。
摩尔定律
微型计算机的发展以什么技术为标志? 微处理器
到目前计算机中所有的信息仍以二进制方式表示
** 使用二进制的原因是由物理器件的性能决定**
计算机的性能指标
字长:整数寄存器和定点运算器的宽度,即一次能同时进行二进制整数运算的位数
n 位微机表示该计算机所用的CPU能同时处理n位的二进制数
字长决定运算的范围和精度,多少位的计算机中的多少位指的是计算机的字长
** CPI :是执行一条指令平均使用的CPU 时钟数 Clocks Per Instruction**
** MIPS是计算机系统每秒执行多少百万条指令 **Million Instructions Per Second
** **MFLOPS浮点数操作速度指标,每秒执行多少百万条浮点指令
从用户观点看,评价计算机系统性能的综合参数是吞吐率
实际应用程序的测试结果不能全面代表计算机的性能
**运算器的组成,其中最重要的部件? **
**可以进行算术逻辑运算, **算术逻辑运算单元ALU
存储程序控制原理:
提出者冯诺依曼,内容:存储程序、程序控制。
冯.诺依曼的基本工作方式是控制流驱动方式
计算机的体系结构一般分为冯.诺依曼结构和哈佛结构两种
** 哈佛结构中指令和数据存放在不同的存储器。**
如何区分指令和数据:冯.诺依曼计算机中指令和数据均以二进制形式存放在存储器中,
** CPU区分它们的依据是指令周期的不同阶段。**
** 指令流向控制器,数据流向运算器。**
计算机系统的层次结构
** 高级语言级、汇编语言级、操作系统级、一般机器级、微程序设计级**
上层实现对下层的功能扩展,而下层是实现上层的基础
软件与硬件在逻辑上是等效的,等价的提法不是很准确。
第2章
不同进制数的转换:
十进制转换为二进制
** 整数部分除2取余**,小数部分乘2取整,先得到的数靠近小数点放
** **十进制小数转换为二进制时,到所求精度位置,可能存在一定的误差。
十进制转换为8进制
整数部分除8取余,小数部分乘8取整,先得到的数靠近小数点放
十进制转换为16进制
整数部分除8取余,小数部分乘8取整,先得到的数靠近小数点放
十进制转换为2进制时,如果十进制数字较大,可先转换为8或16进制
二进制🡪十六进制
从小数点开始,向外,每4位分开,不足4位补0,(整数前面补0,小数后面补0)
最后将每个4位二进制数转换为1位十六进制数
十六进制🡪二进制
1位十六进制数变4位二进制数
B字节 1个字节包含8位 1B=8b
** KB、MB、GB K=2 M=2 G=2**
计算机中无符号整数直接用真值表示,表示地址时采用无符号数。
n位无符号整数表示范围 0~2******-1 (8位无符号数:0~255)**
有符号整数:一个定点数由符号位和数值域两部分组成。
原码 、反码、补码、移码 (计算)
** 计算机中有符号整数用补码表示**
** n位补码的表示范围 -2—2-1 例: 8位 -128~127
** ** 已知[X]补,如何求[-X]补? 含符号位在内每位取反
** 移码表示法主要用于表示浮点数中的阶码
移码为补码变符号位
** 在原码 、反码、补码、移码中,零的表示补码、移码形式是唯一的。**
补码的真值公式 公式 整数、纯小数?
计算某个数大于或小于某个值的条件(每一位的取值 参见课后题2)
移位运算的规则
算术移位
补码移位:无论是正数还是负数,移位时符号位保持不变,
补码右移时,补符号位
原码和补码的数位扩展(等值扩展):
原码,符号位不变,高位补0
补码,符号位不变,高位补符号位
** **例:8位扩展为16位 10000001 01111111
原码 符号位不变,在符号位后加8个0
1 00000000 0000001 0 00000000 1111111
补码 符号位不变,在符号位后加8个与符号位相同的字符
1 11111111 0000001 0 000000001111111
变形补码运算 例18、19、变形补码减法[x-y]=[x+[-y]
减法运算通过补码运算的二进制加法器实现。
** 双符号位运算时,符号位为 10,表示负溢出,符号位为01,表示正溢出
** 溢出 10负溢 01 正溢 (高位是结果的符号)
判断加减法溢出的方法:均可以采用异或门来实现
(1)采用判断进位的方式,最高位进位与符号位进位不同时溢出
(2)采用双符号位的方式,双符号位不同溢出,01正溢10负溢** **
乘法:
** 原码乘法 符号位做异或运算,其他绝对值相乘
** 带求补器的补码乘法(P36例21)
** 乘数补码——转原码——**
** 符号位异或、绝对值计算乘积——结果以补码形式出现**
阵列乘法器:全并行运算的乘法器
BCD码:4位编码 、8421BCD码 0000~1001
ASCII编码使用8位二进制,最左边一位为0
奇偶校验:
** 奇偶校验(含校验码的个数为奇数或偶数) P25
** 数 校验位
** 奇校验 奇数个1 110101 1**
** 偶校验 偶数个1 110101 0**
** 用1位奇偶校验能检测出1位主存错误的百分比为100%。**
** 用1位奇偶校验,校验出错意味着有1位或者奇数位错误
** 校验正确意味着未出错或出现偶数位错
海明码
** 能纠正一位错误时,校验位的位数k和数值位位数m中间的关系?
** 2>=m+k+1 (每一位的错误状态、无错误状态)
加法器
** 全加器的真值表、S和Ci+1的逻辑表达式、逻辑图**
** 行波进位加法器的逻辑图**
Ai、Bi两数相加,Ci为进位输入,则进位输出的逻辑表达式
Ci+1=Gi+PiCi,其中Gi=AiBi Pi=AiBi
** G生成进位 P传递进位**
加法器先行进位的目的:加速传递进位信号。
运算器的主要功能:算术运算和逻辑运算
运算器虽有许多部件组成,但核心部件是算术逻辑运算单元ALU
提高运算器高速性采用的措施:
先行进位、阵列乘除法、流水线
74181ALU 4位算术逻辑运算单元,支持16种逻辑运算、16种算术运算
组内先行进位
74182CLA 先行进位部件,可以实现多组74181ALU的组间先行进位
组合形式
四片74181ALU串联
进位传递功能:组内先行进位,组间行波(串行)进位
四片74181ALU和一片74182CLA器件相配合,
进位传递功能:组内先行进位,组间先行进位
7. 四片和一片器件相配合,具有如下进位传递功能______。
片内先行进位、片间先行进位
**设计一个64位全并行的ALU需要几片先行进位部件74182? **
5片(4+1) (16位用1个74182,64位用4个74182)
(这4个先行进位部件的输出再用1个74182进行进位)
IEEE754 浮点数构成,
数符S 阶码E 尾数M
IEEE754 会计算32位浮点数的真值
** (-1)×1.M×2**
浮点数:
在浮点数编码表示中,包含符号位、阶码、尾数、基数
** 基数在机器数中不出现,是隐含的。
阶码的位数决定表示范围
尾数的位数决定表示的精度,尾数需要规格化
** 采用规格化的浮点数目的:
** (1)提高数据的表示精度**
** (2)使数据的表示唯一**
** **规格化数:正负0.1XXX
原码 0 1XXX 或 1 1XXX
补码 0 1XXX 或 1 0XXX 即数符与尾数小数点后第一位数字相异
浮点数运算当尾数发生溢出时,需要尾数向右规格化,阶码加1
浮点数运算溢出判断:阶码是否溢出
** **浮点数的溢出是指运算结果的绝对值(P53 图2.16)
大于机器所能表示的最大的绝对值——上溢
小于机器所能表示的最小绝对值——下溢
即阶码超出表示范围
浮点运算过程:
对阶(小阶向大阶看齐)
尾数计算
规格化:如果用补码表示规格化数,符号位和数值位首位的值正好相反。
舍入处理
浮点运算流水线
流水线将任务分成若干个子任务,流水线的时钟周期=最慢的子任务时间+缓存时间
理论上:K级线性流水线处理几乎可以提高K倍速度
第3章
存储器的层次
计算机的存储器采用分级方式是为了解决容量、价格、速度三者之间的矛盾
CPU能直接访问主存储器和cache
CPU不能直接访问磁盘和光盘。
外存和内存比较
速度、容量、成本
主存储器的性能指标:P65
存储容量、存取时间、存取(存储)周期和存储器带宽。
存取时间:发出读写命令到操作完成的实际时间。
** 存储周期:存储器进行连续读和写操作所允许的最短时间间隔**
存储器的数据传输速率:每秒钟传输的字节数 B/s
已知存储周期、数据线宽度,求数据传输速率。
例: 存储周期200ns、64位,求数据传输速率?
1s/200ns*64/8=
字编址、字节编址
** 按字编址:字长**
** 计算地址单元的个数?
例:容量1MB,数据线32位 1M/4=2 地址线18位
** 给出容量、字长,计算寻址范围,计算地址线、数据线的数量
** **例: 字长32位,存储容量64KB,
寻址范围 64KB/32=64K8/32=16K,
** 一个512K×16的存储器,其地址线和数据线的条数,寻址范围
** 19 16 0~2-1*
** 大端模式、小端模式 **
字长多余8位时,一个存储字内部的多字节排列问题,
大端模式的高字节存放在内存的低地址端。
小端模式的低字节存放在内存的低地址端。(顺序一致)
片选信号为1101时,选定一个8K×8位的存储芯片,则该芯片的所在存储单元空间的首、末地址为多少,用十六进制表示?
1101 0000000000000 首地址 1101 0 0000 0000 0000->1A000H
1101 1111111111111 末地址 1101 1 1111 1111 1111->1BFFFH
存储器的扩展:位扩展(字长位数)、字扩展(字存储容量)
** 地址译码:**
** (1)线选法**
** (2)2-4译码器、3-8译码器……**
存储器分类(是否随机读写,掉电后信息是否容易丢失):
RAM————DRAM、SRAM 一旦断电,存储在其中的信息将全部丢失,且无法恢复
** 静态存储器使用双稳态触发器。**
** 动态存储器用电容存储,需要定期刷新。**
** ** 动态存储器刷新有三种方式:
集中式刷新、分散式刷新、异步式刷新。
ROM————
EPROM光擦可编程的只读存储器
** EPROM是指电擦可编程的只读存储器**
Flash ROM(闪存)读、写速度不一致,读快写慢。
写0需要把电子弄到浮空栅
** 读只需选中后看是否有电压变化**
提高读写速度的方法:
** 双端口存储器:采用(两套相互独立的读写电路) 空间并行**
** **增加一级或多级Cache
多体交叉存储器:低位交叉存放,同时读写,顺序传送(流水) 时间并行
Cache
Cache是一种高速缓冲存储器。
增加cache存储器的目的:解决CPU和主存之间的速度匹配问题
CPU能直接访问主存和Cache,但不能直接访问磁盘和光盘。
主存到Cache映射,由硬件完成,对程序员透明。
** 方式:会判断和计算**
** 全相联映射**:映射到任意一行,适合小容量cache
** 直接映射**:映射到固定的行,适合大容量高速cache
** 组相联映射**:映射到固定的组
Cache中常用的替换算法有:
最不经常使用(LFU)、最近最不经常使用(LRU)、随机替换**。**
Cache 的命中率计算
Cache的命中率、cache主存速度比、访问效率
Cache地址与主存地址的关系?Cache内容和主存内容的关系?
虚拟存储器
常用的虚拟存储器系统由主存-外存两级存储器组成
虚拟存储管理系统的基础是程序访问的局部性原理,
此理论的基本含义是在程序的执行过程中,程序对主存的访问是不均匀的
虚拟存储器和Cache的比较
引入虚拟存储器的目的是为了扩大主存储器容量
引入Cache的目的是为了提高访问主存的速度
虚拟存储器对用户和应用程序员都是透明的,对系统程序员不透明
Cache对所有程序员透明。
第4章
指令系统:一台计算机中所有机器指令的集合。
CISC:复杂指令系统计算机
** RISC:精简指令系统计算机,系列机的指令系统向后兼容
计算机语言
** 低级语言:机器指令、汇编语言
** 计算机能够直接识别和执行的唯一语言是二进制机器语言。**
** 高级语言:**
指令格式由操作码字段和操作数地址字段组成。
** 操作码n位——————指令条数最多2的n次方**
从操作数的物理位置来说,可将指令归结为三种类型:
存储器—存储器型,寄存器—寄存器型、 寄存器—存储器型
也可以写成(SS、RR、RS)
寻址时间
RR型指令最短,RS次之,SS最长
寻址方式
指令寻址:顺序寻址、跳跃寻址
操作数基本寻址方式:
** 采用不同寻址方式的目的主要是:**
缩短指令长度、扩大寻址空间、提高编程灵活性。
** 寻址方式:形成操作数有效地址的方式。**
** 立即寻址——操作数在指令中
** 直接寻址——操作数在指令包含的内存地址中
相对寻址——PC+偏移地址
** 间接寻址——操作数地址在内存地址中,**
在内存中找到地址,根据地址再次访问内存
寄存器寻址——操作数在通用寄存器中
寄存器间接寻址——操作数地址在通用寄存器中,
操作数在通用寄存器指定的内存地址中
偏移寻址包括:相对寻址、基址寻址、变址寻址
(变址寻址便于解决数组问题)
X变址寄存器 D偏移地址
先变址再间址的寻址方式,有效地址 ((X)+D)
先间址再变址的寻址方式,有效地址 ((X))+D
堆栈寻址:按照先进后出的存储原理存储数据。
各种寻址方式的速度比较 立即>直接>间接
多操作数指令可以是单地址指令吗? 可以
隐含寻址指令中不需要指出地址,0地址隐含指令:一个操作数隐含
单地址隐含指令:地址码指明一个操作数,另一个操作数隐含
所以多操作数指令可以是单地址指令
单字长指令可以含多个操作数
直接寻址时间短于间接寻址
假定指令中地址码所给出的是操作数的有效地址,则该指令采用直接寻址
变址寻址便于处理数组问题
程序控制类指令的功能是?转移指令 改变程序执行的顺序 汇编语言特性:硬件相关、编制难度大、执行速度快
第5章
CPU寄存器,各寄存器的作用
程序计数器(PC):下一条指令的地址(当前指令地址+1 或 转移地址)
程序计数器(PC)属于控制器
指令寄存器(IR):存放欲执行指令
地址寄存器(AR):
状态条件寄存器(PSW)Program Status Word
条件转移指令执行时所依据的条件来自(程序状态字寄存器PSWR)
状态寄存器用来存放算术逻辑运算及测试指令的结果状态
通用寄存器
数据缓冲寄存器(DR)
简单CPU模型中的MAR、MDR
MAR地址寄存器,位数是地址码长度
MDR数据寄存器,位数是存储字长
地址线决定访问的地址空间 n条地址线——地址空间2
数据线决定数据宽度 n条数据线
指令译码器是对指令的操作码字段进行译码的
操作控制器
作用:根据指令操作码和时序信号产生各种操作控制信号
分类:根据微操作信号发生的方法
硬布线控制器
微程序控制器
** 比较:速度快慢,修改难易 **
硬布线控制器与微程序控制器比较。
微程序控制器的时序系统比较简单
微程序控制器的速度比硬布线控制器慢(需要从控存读微指令)
硬布线控制器的结构复杂。
硬连线控制器比微程序控制器快
计算机工作的时间
** 最小时间周期是时钟周期**
** 若干个时钟周期构成CPU周期(机器周期)**
** 机器周期通常用内存中读取一次指令字的最短时间来确定(存取周期)。**
** 微指令周期对应一个CPU周期, 若干个CPU周期构成指令周期,**
** 指令周期****是CPU从主存取出一条指令并执行该指令的时间。**
微程序控制器
控制存储器中存放解释指令执行的微程序
微程序由若干条微指令组成
每条微指令中包含1个到多个微命令
微命令
相容(兼容)的
微命令是指几个微命令是可以同时出现的
互斥的微命令是指几个微命令是不可以同时出现的,因此可对它们编码。
微指令格式分为水平型和垂直型,
水平型微指令的位数较长,水平型微指令实现同样功能时,微程序较短,
水平性微指令一次可完成多个微操作,垂直型一次只能完成1到2个微操作
水平微指令
微命令的编码方式:直接表示、编码表示法、混合表示法
编码表示是对互斥微命令进行编码
在水平微指令格式中,产生后继微地址的方法通常有两种:
计数器方式、多路转移方式
为了提高运算器的运行速度,采用了先行进位、阵列乘除法、流水线等并行技术措施。
当前设计高性能计算机的重要技术途径是采用并行处理技术
设计高性能计算机的途径有很多,提高CPU主频、扩大内存容量、将指令和数据分别存放以及并行处理技术等,其中当前最重要的是采用并行处理技术。
并发性是指两个以上的事件在同一时间间隔内发生。
流水线:
一个时钟周期内一条流水线可执行一条以上的指令
** 流水线的时钟周期由最慢的部件决定**,+缓存时间
** 例如部件执行时间为10ns、20ns、25ns,缓存时间忽略不计,则为25ns**
流水线的加速比:未使用流水线的时间/使用流水线的时间
一个m段流水线处理器提高的效率
** 和具有m个并行部件的处理器相比,一个m段流水线处理器具备几乎同等水平的吞吐能力**
** **计算:第一条指令m,其他指令1,若有n条指令则m+(n-1),效率mn/[m+n-1]
若n很大,则mn/[m+n-1]约等于mn/n,即m
流水线的相关性是引起指令流水线堵塞的原因:
数据相关 (可以通过数据旁路等来改善)
资源相关
控制相关
超标量流水线:
在每个时钟周期并发多条指令
一条指令分为十几段指令来由不同电路单元完成
超标量是通过内置多条流水线来同时执行多个处理器,其实质是以空间换取时间
流水线CPU
流水线CPU是以时间并行性为原理构造的处理
RISC机器一定是流水线CPU,
流水CPU不一定是RISC的CPU,CISC的机器也可以采用流水CPU
RISC的含义、RISC的特点 **
RISC指令系统特点
指令长度固定
指令种类少(选取使用频率较高的一些简单指令)
寻址方式少
设置大量通用寄存器,访问存储器指令简单 **
** RISC普遍采用硬连线控制器
** RISC大多数指令在一个时钟周期内完成
动态流水线
动态流水线是指在同一时间范围内,当某些段正在实现某种运算时,而另外一些段却在进行另一种运算,这样可提高流水线的效率,但会使流水线控制变得很复杂。
第6章 总线
系统总线分类:
数据线(用于传输指令、操作数、中断向量)
区分:取指周期、执行周期、中断周期
** 地址线(用于指定主存和I/O设备接口电路的地址)**
控制线(提供主存、I/O接口设备的控制信号和响应信号及时序信号)
比如握手(应答)信号
计算总线带宽
从信息流的传送效率来看,单总线系统工作效率最低。
总线的传输方式:
串行:以脉冲方式传输
并行:以电位方式传输
复用:减少总线中信号线的数量,提供总线利用率
总线的同步和异步工作方式:
** 总线的同步通信方式(用一个公共的时钟信号进行同步) 快**
** 总线的异步通信方式(不采用时钟信号,只采用握手信号) 慢**
** 全互锁、半互锁、不互锁 速度不同,谁最快?不互锁**
总线的仲裁方式
集中式仲裁
** 链式查询方式: 缺点:电路敏感、不公平**
** 计数器定时查询方式:若从零开始,低优先级设备难得到响应
** 独立请求方式: 响应最快
分布式仲裁
常见的总线标准:ISA、EISA、PCI、PCI-e
PCI是一种与处理器无关的高速外围总线,它采用集中式仲裁策略的同步总线。
第七章
外围设备:除了CPU和内存以外其他的设备。
磁盘存储器:
平均存取时间:寻道时间、等待时间、数据传送时间
平均等待时间:转一圈时间的一半
磁盘驱动器向盘片磁层记录数据时,
采用的写入方式是串行的还是并行的?
磁盘阵列:RAID
第八章
**端口:为了与CPU交互信息的方便,
在接口内部一般设置一些被CPU直接访问的寄存器,这些寄存器称为端口。
** 端口种类,存放的内容
状态:I/O设备的状态
控制:CPU发出的命令
数据:外设和总线之间交换的数据。
I/O控制方式 1、2程序方式实现,3、4硬件实现
1程序查询方式
2中断方式
3 DMA方式
4通道方式
** 通道是一个特殊功能的处理器,**
它有自己的指令和程序专门负责数据输入输出的传输控制
外围设备的两种编址方法:
I/O地址与内存 统一编址/独立编址
访问I/O,采用 访存指令/输入输出指令
在统一编址方式下,存储单元和I/O设备是靠不同的地址码来区分的。
在独立编址方式下,存储单元和I/O设备是靠不同的指令来区分的**。**
中断:
CPU响应中断的时间是一条指令执行结束,不是立即停止当前指令的执行。
中断发生时,程序计数器内容的保护和更新是由硬件自动完成的
中断中需要说明的问题:P241 尽管中断请求随机,只有在公操作时才处理中断请求
中断向量地址——中断服务程序入口地址的指示器,
查中断向量表形成中断服务程序的入口地址,
多级中断:
设置中断排队判优逻辑的目的:
** 是使同时提出请求中的优先级别最高者,得到及时响应。**
** **实现:设置各级中断的中断屏蔽触发器
中断屏蔽字的作用:暂时屏蔽对某些可屏蔽中断源的响应
例:某计算机有四级中断L3~L0,中断屏蔽字为M3M2M1M0,Mi=1表示对Li 级中断进行屏蔽,若中断响应优先级从高到低的顺序是L2→L0→L3→L1,问L3的中断屏蔽字为?
1010 L3屏蔽3级(本级)和1级中断,不屏蔽0级和2级中断
Pentium 系统有两类中断源:
由 CPU 外部的硬件信号引发的称为外部中断,由指令执行引发的称为异常
中断向量地址是中断服务程序入口地址的地址
DMA 直接内存访问
DMA控制器与CPU分时使用内存时,通常采用三种方法:
** ** 停止CPU访问、周期挪用、DMA与CPU交替访内。
DMA方式成块传送数据,每传送一个数据要占用一个存储周期的时间。
通道
** 通道是一个特殊功能的处理器,**
通道有自己的指令和程序专门负责数据输入和输出的传输控制。
CPU对通道的管理:
CPU通过执行I/O指令以及处理来自通道的中断实现对通道的管理。