计算机组成原理
零、写在前面
本文适用于计算机组成原理(第五版)期末突击使用,基于复习提纲编写,在此基础上对部分内容进行了展开,对于某些模块也附上了相关视频链接。
按照“计算机系统概述数据表示与运算存储器指令系统控制器 I/O”的顺序列出知识主线和复习要点。此外,部分比较零散的知识归纳后列出。
重点内容需要结合教材(清华、哈工大两版均可,完整学习网上资源推荐哈工大刘宏 伟老师公开课,速通视频推荐速成视频)。
本文内容较多,完整阅读时间大概在半小时左右,理解掌握时间大概在十二小时左右(完整掌握后正常期末成绩在80+),请各位同学根据时间安排合理规划。
一、计算机系统概述
本章节内容以了解为主
1、 电子计算机发展
代数 | 时间 | 硬件技术 | 速度(次/秒) |
---|---|---|---|
一 | 1946-1957 | 电子管 | 40 000 |
二 | 1958-1964 | 晶体管 | 200 000 |
三 | 1965-1971 | 中小规模集成电路 | 1 000 000 |
四 | 1972-1977 | 大规模集成电路 | 10 000 000 |
五 | 1978-今 | 超大规模集成电路 | 100 000 000 |
2、 计算机系统的组成
硬件系统:主机、打印机、磁盘(光盘等)、网络设备、其他硬件设备
软件系统:操作系统、编译系统、网络操作系统、应用软件系统、软件文档、资料
3、 冯诺依曼计算机硬件构成及特点
- 计算机由五部分组成
- 采用存储程序的方式
- 数据以二进制编码表示
- 指令由操作码和地址码组成
- 指令在存储器中按执行顺序存放
- 机器以运算器为中心
4、 摩尔定律
当价格不变时,集成电路杀昂可容纳的元器件的数目约每隔18-24个月便会增加一倍,性能也将提升一倍。
5、 计算机的多级层次结构(虚拟机)
二、数据的运算和表示(运算器)
1、 真值数字化
- 进制:十、二、十六进制及互相转化
- 十进制转二进制:对整数部分采用除二取余法,即辗转相除法,对小数部分采用乘二取整法。注意小数点前转先算出的是最高位,小数点后的部分先算出的是最低位。
- 二进制转八、十六进制:三(四)个二进制位为一组,小数点左侧从右往左写,小数点右侧从左往右分组,不足的位置用0补齐(1 101. 010 1) 2 _2 2=(001 101. 010 100) 2 _2 2=(15.24) 8 _8 8
- ± \pm ±:有符号数,0表示+,1表示-
- 小数点:定点数(定点整数【阶码为j,位数为s,小数点固定在数的最低位之后即:符号位、数值位、隐含的小数点位置(依靠约定并不实际显示)例如1111=-7】,定点纯小数【小数点固定在最高位之后,例如1111=-0.875】,溢出(指的是超出数字所能表示的范围),浮点数(传统、IEEE754)
- 数据的存储和排列
- 大端方式:按照从最高有效字节到最低有效字节的顺序存储数据,即最高有效字节放在最前面(反着放)
- 小段方式:按照从最低有效字节到最高有效字节的顺序存储数据,即最低有效字节放在最前面(顺着放)
- IEEE754:小数点位置在阶码和尾数之间,为隐含式结构
数符(符号)|阶码|尾数 总位数
短实数: 1 8 23 32
长实数: 1 11 52 64
临时实数:1 15 64 80
2、 数字化的编码
**省流:**正数三码合一;负数原码等于机器码,反码除符号位按位取反,补码是按位取反后末尾加一。正负数的移码都是在补码的基础上最高位取反。
1 | -1 | |
---|---|---|
原码 | 0000 0001 | 1000 0001 |
反码 | 0000 0001 | 1111 1110 |
补码 | 0000 0001 | 1111 1111 |
移码 | 1000 0001 | 0111 1111 |
(1)原码
**省流:**原码在原数值的基础上添加符号位其余保持不变
机器数的最高位为符号位,0正1负,数值紧随其后,以绝对值的形式给出
非常接近真值;符号位不参与运算;数值0的表示结果不唯一
eg:+0.1011(n=4),则 [ x ] 原 = 0.1011 [x]_原=0.1011 [x]原=0.1011;-0.1011,则 [ x ] 原 = 1.1011 [x]_原=1.1011 [x]原=1.1011
(2)反码
**省流:**反码:正数保持不变,负数按位取反
机器数的最高位为符号位,0正1负,数值0的表示结果不唯一
eg:+0.1011(n=4),则 [ x ] 反 = 0.1011 [x]_反=0.1011 [x]反=0.1011;-0.1011,则 [ x ] 反 = 1.0100 [x]_反=1.0100 [x]反=1.0100
(3)补码
**省流:**补码:正数保持不变,负数按位取反末尾加一
机器数的最高位为符号位,0正1负,数值0的表示结果是唯一的(全是000000)
eg:+0.1011(n=4),则 [ x ] 补 = 0.1011 [x]_补=0.1011 [x]补=0.1011;-0.1011,则 [ x ] 补 = 1.0101 [x]_补=1.0101 [x]补=1.0101
(4)移码
**省流:**先求补码然后将符号位取反
eg:+0.1011(n=4),则 [ x ] 移 = 1.1011 [x]_移=1.1011 [x]移=1.1011;-0.1011,则 [ x ] 移 = 0.0101 [x]_移=0.0101 [x]移=0.0101
(5)溢出处理
三种任选其一:
- 当符号相同的两个数(补码形式)相加时,如果结果的符号位与加数/被加数的符号位不同时,则溢出
- 当任意符号的两数相加时,如果数值高位的进位≠符号位的进位时,则溢出
- 采用双符号位时,正数的符号位为00,负数的符号位为11,符号位参与运算,运算结果的两个符号位不同时(01或10)则表示溢出。双符号位的补码求解的模应该为 2 ( n + 2 ) 2^{(n+2)} 2(n+2)或者为4
3、 定点数加减乘
加法和乘法明确说明不考,故此处进行省略
(1)定点数加减法
- 补码的求解方法仍然需要减法,通过对补码求解公式进行拆分,引出”符号位不变,原码数值按位取反末尾加一的计算规律“
- [ x ] 补 + [ y ] 补 = [ x + y ] 补 [x]_补+[y]_补=[x+y]_补 [x]补+[y]补=[x+y]补 ( m o d 2 n + 1 / 2 ) (mod 2^{n+1}/2) (mod2n+1/2)
- [ x − y ] 补 = [ x + ( − y ) ] 补 = [ x ] 补 + [ − y ] 补 = [ x ] 补 − [ y ] 补 [x-y]_补=[x+(-y)]_补=[x]_补+[-y]_补=[x]_补-[y]_补 [x−y]补=[x+(−y)]补=[x]补+[−y]补=[x]补−[y]补
- [ − x ] 补 = − [ x ] 补 [-x]_补=-[x]_补 [−x]补=−[x]补
(2)定点数乘法
- 原码一位乘:
- 补码一位乘:
- 矫正法
- Booth算法
4、 浮点数加减
(1) 浮点数表示
j f j 1 j 2 ∣ S f s 1 s 2 … S m j_fj_1j_2|S_fs_1s_2…S_m jfj1j2∣Sfs1s2…Sm
浮点数由阶码和尾数两部分组成,阶码是整数,由阶符和阶码的数值部分组成,反应浮点数的表示范围以及小数点的实际位置。尾数是纯小数,其数值部分反应浮点数的精度,其符号(尾符)代表浮点数的正负。
(2)浮点数加减法!!重要!!
请结合例题1食用
- 对阶操作:比较两浮点数的阶码大小,求出差值E,将小的右移E位,并在阶码值上加上E使两数解码相等,符号位不参与右移,前面补零。可保留右移时的高位来保证运算的精度
- 尾数的加减运算:对阶完成后,两尾数进行加减运算,得到对应的和差
- 规格化操作:
- 如果结果的两个符号位的值不同,则代表运算尾数结果溢出,要在位数结果右移一位,阶码+1,称为右规”向右规格化“
- 两个符号位的值相同,最高数位值与符号位相同,将尾数连续左移n次直到不同,同时阶码-n,称为左规”向左规格化“
- 双符号位的原码规格化尾数最高位为1,补码规格化尾数为:00.1xxx或11.0xxx
- 舍入:在右规或对阶时,尾数低阶上的数值会被移掉影响精度。常用0/1舍入法。当移掉的最高位为1时,尾数的末位加一,如果溢出则要再次右规。
- 检查阶码是否溢出:表示浮点数溢出,不溢出则正常结束。下溢出结果为机器零(阶码和尾数全部置0),上溢出则置溢出标志。
5、 奇偶校验
奇偶校验码只能发现一位或奇数个位数的错误,不能确定错误发生在哪一位上,考虑到大多数情况下发生1位错误的概率要远大于多位同时出错,该方案还是有很大的价值的。
数据 | 奇校验编码 | 偶校验编码 |
---|---|---|
000 | (1)000 | (0)000 |
001 | (0)001 | (1)001 |
010 | (0)010 | (1)010 |
011 | (1)011 | (0)011 |
100 | (0)100 | (1)100 |
101 | (1)101 | (0)101 |
110 | (1)110 | (0)110 |
111 | (0)111 | (1)111 |
三、存储系统
1、 主存
(1)RAM
-
SRAM
基本单元电路(一对反向触发器组成的双稳态电路)——芯片(拆分地址并重合交叉选择)——时序(地址线、控制线、数据线)
-
DRAM
基本单元电路(栅极电容)——芯片(地址分时复用并重合交叉选择)——时序(地址线、控制线、数据线)——刷新和再生——三种刷新方式:
-
DRAM和SRAM的对比
DRAM采用栅极电容存储信息,SAM采用双稳态触发器存储信息
DRAM集成度高,功耗小,存取慢,一般用来组成大容量主存系统;SRAM存取快,集成度低,功耗大,组成高速缓冲存储器和小容量主存系统。
SRAM需要有片选信号,DRAM不需要,可以用行选通信号和列选通信号兼做片选信号。
SRAM地址线直接和容量有关,DRAM采用地址复用技术,一般DRAM地址引脚数为地址位数的一半:采用分时复用,先传一半行地址,再穿一半列地址。引脚数增加一个,地址位数增加两位,容量扩大四倍。
(2)ROM
PROM_EPROM_EEPROM-Flash-NOR Flash-NAND Flash
(3) 存储器扩展!!重要!!
-
位扩展
只在位数方向扩展,目的是加大字长,芯片的字数和存储器的字数是一致的
连接方式:将各存储芯片的地址线、片选线和读写线相应地并连起来
将各芯片的数据线单独列出
-
字扩展
仅在字数方向扩展,目的是增加存储器中字的数量而位数保持不变。
连接方式:将各存储芯片的地址线、数据线和读写线并连起来,用片选信号来区分各个芯片。
- 字位扩展!!重要!!
请结合例题2食用
计算所需芯片数量、按位分组、按最大芯片根数分配地址,剩余高位地址根数作为片选(译码器输入)并根据题目表要求列出地址表,完成各组地址分配)
eg:32k*8位EEPRM扩展成128k*16位只读存储器,需要多少片EPROM?画出存储器的组成框图?
需要4组,每组两片,共八片
每个芯片十五(32k= 2 5 + 10 2^{5+10} 25+10)根地址线,需要构成的是十七根地址线的芯片,多了两根做片选信号,正好用2:4译码器,两个输入四个输出,选这四组是哪一组。
(4)主存储器与CPU的链接!!重要!!
连接原理:主存储器通过DB、AB、CB与CPU进行连接;数据总线的位数与工作频率的乘积正比于数据传输速率;地址总线的位数决定了可寻址的最大内存空间;控制总线指出本次IO操作完成的时刻
eg:使用8k*8的SRAM芯片组成32k*16的存储器,画出芯片与CPU连接的逻辑图
位扩展:8位-16位,需要2片,数据位数翻倍(组内)
字扩展:8k-32k,需要4组,地址线增加2位( 2 2 2^2 22),通过地址译码使地址增加2位(添加一个2:4译码器)
片数:(64k*8)/(16k*4)=8片
地址范围:每片 8K 个存储元,因此片内地址由 13 位二进制数构成,还需要 2 位地址进 行字扩展,因此地址共 15 位。
第一组:00 0 0000 0000 0000 ~ 00 1 1111 1111 1111
第二组:01 0 0000 0000 0000 ~ 01 1 1111 1111 1111
第三组:10 0 0000 0000 0000 ~ 10 1 1111 1111 1111
第四组:11 0 0000 0000 0000 ~ 11 1 1111 1111 1111
连接结构图:
注意:本图中片4-片7的片上的数据总线应该为 D 15 − D 8 D_{15}-D_8 D15−D8,图片内容有错误
2、 辅存
(1)分类
磁表面(机械硬盘、磁带)、磁芯(破环性读出)、光存储(CD、DVD)、半导体存储器(TTL,静态MOS)
(2)磁表面技术指标
- 记录密度(道密度、位密度)
- 记录容量
- 平均访问时间
- 数据传输速率
3、 存储系统
(1)性能指标
容量,速度,位价
(2)程序访问的局部性原理
包含时间局部性和空间局部性。时间局部性:最近的未来要用到的信息,看很可能是正在使用的信息,因为程序正在循环。空间局部性:最近的未来要用到的信息,很可能与现在正在使用的信息在存储空间上是连续的,因为指令通常是顺序存放、顺序执行的。(本条内容了解即可)
(3)Cache-主存层次
- 技术指标:命中率、平均访问时间、效率
- 地址映像:直接映像、全相联映像、组相联映像!!重要!!
直接映像:每一个区与cache的页数相同,多少个区,每个cache就有多少个内容,冲突问题严重。【主存字块标记】【cache字块地址】【块内地址】
全相联映像:每个页中的每个区都可以放到cache中的任意位置,冲突率降低了,电路复杂度非常高。【主存字块标记】【块内地址】
组相联映像:分组,组间直接映射,组内全相联【组号】【块号】【块内地址】
- 地址变换:主存地址分段(位数),Cache地址分段(位数)!!重要!!
结合例题2食用最佳
- Cache与内存一致性:写回法,写一次法
(4)主存、辅存层次
-
调入机制:
页式虚拟存储器、段式虚拟存储器、段页式虚拟存储器
-
地址变换:逻辑(虚)地址分段(位数),查表(页表、段表、段表+页表),主存地址分段;
-
快表(TLB)、内表(逻辑地址转化为物理地址)、外表(逻辑地址转化为物理地址)
-
虚拟存储器、TLB和Cache的协同操作:
在最好的情况下,虚拟地址由TLB进行转换到实地址(表明页已在内存,不仅慢表有,快表也有),然后发现该实地址所在的块就在Cache中,故直接找到,并将偏移量对应的数据(字)取回送给处理器。
在一般情况下,虚拟地址由TLB进行转换到实地址(表明页内已存在内存,不仅慢表有,快表也有),然后发现未命中cache,只能从内存中将相应的块送到cache,找到正确的数据并取回处理器。
在最坏的情况下,TLB和页表均未命中(这种情况cache一定不会命中,因此cache使内存中块的副本),需要从辅存调入页到内存,然后更新页表(慢)和快表,并将页中所要查找的字所在的块调入cache,与此同时,找到正确的数据并取回处理器。
(5)cache与虚存的异同
相同点:
-
两者都是为了提高存储系统的性价比,即使存储系统的性能接近高速存储器
-
都是基于程序局部性原理:一个程序运行时只需要用到程序和数据的一小部分,将这部分放到比较快的存储器中即可,其他大部分放在速度低、价格便宜、容量大的存储器中,能以较低的价格实现高速的运算。
不同点:
- 在虚拟存储器中未命中的性能损失要远大于Cache系统中未命中的损失,主存和cache性能相差5-10倍,外存和主存性能相差上千倍
- cache主要解决CPU和主存的速度差异问题,虚存主要解决存储容量问题
- CPU和cache和主存之间均有直接访问通路,cache不命中时可直接访问主存。而虚存所依赖的辅存与CPU之间不存在直接的数据通路,主存不命中时只能通过调页解决,CPU最终还是要访问主存
- cache管理完全由硬件解决,对系统程序员和应用程序员完全透明。而虚存管理由软件(操作系统)和硬件共同完成,虚存对实现存储管理的程序员是不透明的(段式和段页式管理对应用程序员半透明)
四、指令系统
1、 指令格式
(1)操作码
操作码扩展技术(指令长度不变,以最长指令码的操作码位数作为基础,逐步向较短地址码长度指令进行扩展,以此来增加操作码的数量)
(2)地址码
充分利用CPU内存的专用寄存器,减少地址码数量(PC)以及长度(寄存器编号代替内存地址)
2、 寻址方式
(1)地址寻址
- 顺序寻址:PC+1→PC
- 跳跃寻址:(PC)+A→PC
(2)数据寻址
- 立即数寻址:操作数在指令之中
- 储存器直接寻址:操作数在内存地址中
- 存储器间接寻址:操作数在内存地址的地址之中
- 寄存器直接寻址:操作数在寄存器值中
- 寄存器间接寻址:操作数在寄存器所在地址的内存之中
- 基址寻址(BR)+A,用于段页式虚拟存储器虚拟页面向内存的调入
- 变相寻址(IX)+A,用于访问数组(数组中元素相加)
- 相对寻址(PC)+A,用于浮动程序,使逻辑存储空间中编程的程序,调入到内存任意位置都可以正常运行
- 堆栈寻址:SP,保护断点和现场(CPU内部寄存器)
(3)RISC和CISC
-
RISC形成
28定律:80%的常用程序仅使用了指令集中20%的指令,而其他80%的指令仅用于完成20%的应用场景
-
RISC特点:
- 优先选取使用频率高的简单指令以及有用而不复杂的指令,避免使用复杂的指令
- 指令长度固定,指令格式种类少、寻址方式种类少、指令之间各字段的划分比较一致,各字段的功能也比较规范
- 只有取数、存数指令访问存储器(数据在寄存器和存储器之间传送),其余指令的操作均在寄存器之间进行
- CPU中通用寄存器数量相当多,算术逻辑运算指令的操作数都在通用寄存器中存取
- 大部分指令在一个或者小于一个机器周期内完成,易于实现流水线加速
- 以硬布线控制逻辑为主,不用或少用微程序控制
- 特别重视程序编译优化工作,以减少程序执行时间
五、控制器
1、 数据通路与操作控制信号(命令)
(1)专用寄存器
(2)模型机的数据通路
(指令周期、CPU 周期(机器周期)、时钟周期(状态、 T 周期、节拍))
(3)技术指标——机器速度(MIPS 和 CPI)
-
MIPS:每秒钟多少百万条指令。
-
CPI:每条指令多少个时钟周期。
(4)模型机的操作控制信号及过程!!重要!!
加法指令完成以下操作:
- 从存储器取指令,送入IR,并进行操作码译码,PC+1,为下一条指令做准备(取指令)。
- 在ALU计算数据地址,并将计算得到的有效地址送到AR(间址)。
- 到存储器取数(去操作数)
- 进行加法计算,结果送到寄存器,并根据运算结果置状态位N,Z,V,C(计算)
指令的执行过程:
2、微程序控制器!!重要!!
(1)微程序、微指令、微操作、微命令
微命令:控制部件通过控制总线向各执行部件发出各种控制命令
微指令:在一个CPU周期内,一组实现一定操作功能的微命令的组合
微操作:执行部件接受微命令后进行的操作
微程序:实现一条机器指令功能的许多条微指令组成的序列
总结:
- 一个程序=一组机器指令
- 一条机器指令(微程序)=一组微指令
- 一条微指令=一组微命令
(2)控制存储器
存储位置程序的存储器,称为控制存储器
由于微程序是对机器指令的解释,且指令系统的机器指令固定,所以微程序固定,控制存储器只需要ROM即可
由于微程序由微指令序列组成,而微指令包括控制字段和下一条微指令地址,故微指令字长要远大于指令字长,继而需要较大容量的控制存储器
执行一条机器指令就相当于执行控制存储器中的一段微程序。
(3)微指令格式(控制信号+下一条微指令地址)
(4)微指令格式化
- 缩减控制信号长度:不编码、完全编码、部分编码:互斥+相关
- 增强微程序流控制方式:将下一条微指令地址码分为:转移控制字段+转移控制地址。
- 水平型微指令和垂直型微指令
无编码和部分编码均属于水平型微指令(并行发出所有指令或互斥信息分组【控制信号位数缩减,但并行度为损失】),完全编码属于垂直型微指令(类似于机器指令,一次只能表达一条微命令,并行度严重降低)
水平型微指令:
1. 一次能定义且并行执行多个微命令的微指令
1. 并行操作能力强,效率高,灵活性强
1. 执行一条机器指令所需的微指令数目少,执行时间短。
1. 微指令字较长,增加了控存的横向容量,同时微指令和机器指令的差别很大,设计者只有熟悉了数据通路,才有可能编制出理想的微程序,一般用户不易掌握
(这里应该是一个有序列表,但是typora抽风了,修改完保存就还是这样,无视就行)
垂直型微指令:
- 一次只能执行一个微命令的微指令
- 并行操作能力差,一般只能实现一个微操作,控制一到两个信息传送通路,效率低
- 执行一条机器指令所需的微指令数目多,执行时间长
- 垂直型微指令与机器指令很相似,所以容易掌握和利用,编程比较简单,不必过多地了解数据通路的细节,且微指令字较短
(5)微指令的编码法
1. 直接控制法
操作控制字段中的各位可以直接控制计算机,不需要进行译码
操作控制字段中的每一个独立的二进制位代表一个微命令,每个微命令对应并控制数据通路中的一个微操作
特点:结构简单,并行性强,操作速度快
微指令字太长:在N个微命令中,有许多是互斥的,他们并不允许并行操作,将他们安排在一条微指令中是毫无意义的
2.字段编码法
将操作字段分成若干个小段,每段内采用最短编码法,段与段之间采用直接控制法。
又分成两种:
字段直接编码法:各字段都可以独立地定义本字段的微命令,而与其他字段无关
字段间接编码法:一个字段的某些编码不能独立地定义某些微命令,而需要与其他字段的编码来联合定义。在字段直接编码法的基础上来进一步缩短微指令字长的方法。
(6)程序和微程序的区别
- 层次不同,一个处于程序层次,一个处于微程序层次
- 微程序是由微指令组成的,它用于描述机器指令,实际上是机器指令的实时解释器,它是由计算机的设计者事先编制好并放在控制存储器中的。对于程序员来说,计算机系统中微程序一级的结构和功能是透明的
- 程序则最终由机器指令完成,它是由软件设计人员事先编制好并存放在主存或辅存中的
(7)机器指令和微指令的区别
- 机器指令跟微指令所处的级别不同,机器指令在程序层次,微指令在为程序层次
- 一系列微指令和的有序集合构成一段微程序,完成一条机器指令的功能实现
- 机器指令和微指令结构不同,机器指令由操作码和操作数地址构成,微指令由控制信号(或微操作或微命令)和下址构成。
六、IO系统
1、 IO设备
(1)输入设备
键盘(薄膜、机械),鼠标(机械、光电)
(2)输出设备
显示器(CRT、LCD、LED),打印机(针式、喷墨、激光)
2、 IO系统
(1)IO设备+IO接口
设备:外部设备、设备控制器、端口(数据、控制、状态)
接口:实现主机和外设的通信连接控制;进行地址编码和设备选择;数据缓冲;数据格式的交换;传递控制命令和状态信息
(2)IO接口的数据交换方式
-
程序直接控制方式:
淘宝购买东西并付款之后,直接在小区门口等待(CPU 等待),直到快 递送到手中,再取回家(CPU 取数)。
-
程序中断控制方式:
淘宝购买东西并付款之后,直到接收到取快递的短信(中断请求),如果不忙(中断响应),才将快递取回家(CPU 取数)。
- 中断源:外部中断(IO设备异常、电源掉电)、内部中断(异常、故障、陷阱)
- 准备就绪触发器(D=1)、中断请求触发器(INTR=1)、中断屏蔽触发器(MASK=0)、排队其(优先权)、中断允许触发器(IF=1)
- 响应条件(快递到快递驿站(D=1)、双 11 快递量很多需要排队(优先 权)、并且你的快递合法(MASK=0)、取件人有时间(IF=1)、当前指令执行结束)
- 响应后的处理(中断服务程序)流程:中断嵌套;
-
DMA控制方式:
淘宝购买东西并付款之后,直接委托给一个秘书,预先告诉他取快递的地点和送回到哪(内存地址和设备地址(硬盘号+盘面+磁道+扇区)),并在秘书取回之后(DMA:请求总线(从老板借车)之后,再传输数据),给老板反馈(中断报告),让老板查看是否正确(奇偶校验)。
(3)程序查询方式的特点
- 实现方便,控制简单
- CPU与外设采用串行方式工作,牺牲了CPU效率,响应速度慢
- 只是用于对少量IO设备的处理
- 无法对随机出现的事件快速处理
(4)程序查询与程序中断控制方式的比较
- 程序查询方式中,何时操作IO设备需要由CPU查询并控制,在中断方式中由外围设备主动向CPU申请
- 程序查询方式中,CPU与IO设备时串行工作的;中断方式中,他们是并行工作的
- 程序查询方式中无法处理异常随机事件,中断方式可以对随即请求及时处理
- 程序查询方式的硬件结构简单,但CPU效率低,中断恰好相反
(5)DMA与程序中断控制方式的比较
- 中断方式通过程序实现数据传输,而DMA则是通过硬件来实现数据传输
- CPU对于中断的响应是在执行完一条指令后;而对DMA传送的响应则可以再指令执行过程中的任意两个存储周期(CPU)周期之间,因为DMA不需要执行中断服务程序,故不需要断电保护和现场保护
- 中断方式不仅具有数据传送能力,其特点是能处理”异常随机事件“;而DMA的特点则主要用于”成块数据“的快速传送
- 中断方式必须切换程序,所以要进行现场保护和现场恢复操作;而DMA只需要挪用内存周期来进行数据传送,不改变CPU现场
- DMA请求的优先权比中断请求高
七、 例题!!重要!!
八道例题务必全部掌握!
1、 浮点数加减法
问题:为什么选择两位符号位?保持精度,可以处理溢出
2、 存储芯片扩展及与CPU链接-1
注意:本图中片4-片7的片上的数据总线应该为 D 15 − D 8 D_{15}-D_8 D15−D8,图片内容有错误(懒得改了)。搭配讲解视频食用更佳。
3、 存储芯片扩展及与CPU的链接-2
4、 Cache和主存之间的映射方式
速通教程(26分钟)后半段cache命中率看时间安排决定是否学习
5、 微指令编码方式-1
P字段来源:
6、 微指令编码方式-2
注意:
注意区分控存容量和控存容量字数,控存容量计算公式为: 微指令字长 ∗ 2 下址字段长度 微指令字长*2^{下址字段长度} 微指令字长∗2下址字段长度,控存字数计算公式为: 2 下址字段长度 2^{下址字段长度} 2下址字段长度。
采用直接控制法的话每种情况直接占一位,外部条件和微命令都满足这个限制,否则位数只需要满足 2 n − 1 2^n-1 2n−1即可三种外部条件,n=2只需要两位。
7、 CPU内部结构及控制-1
取址周期:PC(程序计数器)【含有下一条指令的地址】,先自增,然后通过内部总线告诉**MAR(地址寄存器)放到地址总线上,然后去M(储存器)**中相应的地址拿到指令;**CU(控制单元)发出读命令到控制总线上,告诉M(储存器)要读地址上的内容,M(储存器)将地址上的内容通过DB(数据总线)给到CPU内的MDR(数据寄存器),由MDR(数据寄存器)放到IR(指令寄存器)**中。
间址周期:IR(指令寄存器),通过MAR到M储存器中访问到地址;CU通过控制总线读取M中的内容,储存器通过数据总线将数据交给CPU内的数据储存器MDR。
执行(执行无定法):参考资料
中断:参考资料
8、 CPU内部结构及控制-2