导图社区 计算机组成原理
比较系统地整理计算机组成原理笔记,计算机考研的同学可以拿去作为复习资料使用哦。
编辑于2020-10-30 19:05:55组原
存储系统
存储器的概述
分类
按照在计算机系统内的层次分类
主存储器
高速缓冲存储器
辅助存储器
按照存储介质分类
磁表面存储器
磁芯存储和半导体存储器
光存储器
按照存取方式分类
随机存储器
动态RAM(用电容做的)
用触发器做的静态RAM
只读存储器
存储器的内容只能随机读入而不能写入(但是由只读存储器的派生出来的存储器也可以重写,例如,flash memory)
串行访问存储器
智能顺序存储
按照信息的可保存性分类
断电后,存储信息就丢失的存储器,叫做易失性存储器RAM
断电后,存储信息仍然保留 ROM
性能指标
存储容量
存储字能 表示的存储器空间大小,字长表示一次存取操作的数据量
存储速度
存取时间
指的是,从启动存储器操作到完成该操作所需要的时间,分为读出时间和写入时间
一般来说存储周期要比存取时间大,因为存取完之后还需要进行恢复
存取周期
存储器进行一次完整的读写操作所需的全部时间,也就是连续两次独立访问存储器操作之间所需的最小时间间隔
概要
主存带宽:
每秒从主存进出信息的最大数量,单位为字/秒
存储器的层次结构
Cache与主存
主存与辅存
对应用程序员是透明的
硬件和操作系统共同完成,因为涉及到虚拟存储器,需要操作系统的协助
半导体随机存储器
SRAM与DRAM
SRAM与DRAM存储器构造
sram是用触发器做的六稳态晶体管,集成度较高,功耗大,需要更多硅
dram使用电容做的使用双稳态电路的两个稳定状态来表示1和0
易失性随机存储器,一旦掉电数据易丢失
dram
集中刷新
固定一个时间来对存储器进行刷新,这段不能访问存储器的时间叫做死区
分散刷新
把对每一行的刷新周期分散各个工作周期,对每一行进行周期刷新,这无疑增加了系统的存取时间,降低了整机的速度
异步刷新
使用硬件来产生两次刷新操作的时间t,进而减少CPU等待时间,从根本上提高了整机的工作效率
概要
1.对CPU来说是透明的
2.只有DRAM需要刷新,而且是行为单位的
3.刷新类似于读操作,但是只是对电容补充电荷,并没有数据的输出
只读存储器
非易失性随机存储器
主存储器的基本构成
默认DRAM是采用了地址复用技术,地址线为原来的1/2,并且分两次传送行和列的数据
地址线+数据线+片选线+读写控制线
主存储器与CPU的连接
连接原理
主存储器通过数据总线,地址总线,控制总线与CPU连接
地址总线的位数决定了可寻址的最大内存空间
控制总线指出总线周期的类型和本次输入输出的操作完成的时刻

主存容量的扩展
位扩展
多个存储芯片之间的地址线,片选端,读写控制端通过并联连接在一起,但是数据线的连接是不同的
纵向深入扩增

字扩展
多个存储芯片之间的地址线,片选端,读写控制端通过并联连接在一起,数据线的连接是相同的。通过片选信号来确定地址范围
通过译码器产生的片选信号来选择不同的芯片
横向深入扩增
字位扩展
通过片选信号进行分组,进而来控制数据导通的组数
地址线的连接方式是相同的,但是数据线的连接方式是不同的,需要译码器产生的片选信号来进行选择
存储器芯片的地址分配与片选
线选法
优缺点:线路简单,但是地址不连续,造成空间的浪费
译码片选法
通过译码器产生片选信号
存储器与CPU的连接
合理选择芯片
地址线的连接
数据线的连接
读写控制线的连接
双端口(空间并行)与多模块(时间上并行)存储器(为了提高CPU的访存速度)
双端口

分别有左右两个端口,采用的是空间并行技术
若对同一个地址进行访问,会造成数据出错
1.端口不同对同一地址进行存取操作
2.端口对同一个地址进行写入操作
3.端口对同一个地址进行读出操作
4.两个端口对同一个地址,一个进行写入数据一个进行读出数据
这俩会发生错误
解决的方法是:通过置busy为“0”忙信号,将关闭的端口延迟一个时间
多模块存储器
单体多字存储器
指的是从一个存取周期里,从地址取出m条指令,然后送去CPU执行,每隔1/M个周期,CPU向主存取一条指令。显然,增加了主存带的带宽。
指令和数据需要连续存放,但是一旦遇到转移指令,这种操作数就不明显。
多体低位交叉存储器
高位交叉编址存储器
高位代表体号,低位代表体内地址,需要将体内地址送到高位地址确定的体号内译码
编址为,[1,n-1],[n,2n-1]模块,每一个模是顺序的,需要访问完一个模块再去访问下一个存储器,是顺序访问的

低位交叉编址
低位为体号,高位是体内地址,需要将高位确定的体内地址送到低位地址确定的体号内译码
单元地址的确定是:模块号=单元地址%m所确定的模块号
模块数等于数据总线宽度,一个字的存取周期位T,总线的传输周期位r,模块数量为:m=T/r.m叫做交叉存取度,当连续读取m个字时,t1=T+(m-1)r。而顺序存储就是t2=mT
在模块之间可以采用流水线的方式进行存取,提高了存储器的带宽

高速缓冲存储器(cache),考虑到程序的转移和依靠并行主存系统的所提高的频宽是有限的
cache在与主存的映射方式类似于判断题,需要一个标记(tag),主干,还有一个有效位。这不就是判断的序号,题干们还有判断对错
程序的局部性原理
时间局部性
因为程序中有循环,现在访问过的程序在不久的将来又要访问
空间局部性
因为程序是顺序执行的,顺序执行的,数据一般是以数组的形式的方式聚簇地放在一起的
Cache
Cache保存主存中最活跃的若干块的副本
cache与CPU以字交换,cache与主存以块进行交换
命中率的计算
命中率
平均时间

Cache的和主存的映射方式(指把主存地址空间映射到Cache空间)每行增加了一个有效位
直接相联
将主存块映射到某一缓存块当中
缺点是,有冲突
一对多


全相联
优点:冲突概率低,空间利用率高
缺点:标记的比较速度比较慢,实现的成本高,通常使用按内容寻址的相联存储器进行地质映射
多对多

组相联
组间采取直接映射,组内全相联映射(组内可以映射到任何一个cache行)
组内有多少个cache行,就说明有几路组相联
几对多

组相联的访问过程:先通过访存地址中的组号与相对应的cache中的行号相比较,若相等且有效,则根据访存地址中低位块内地址进行存取操作,则称之为:cache命中,反之未命中时,CPU应该将根据此地址读出在内存中的位置,然后再写到cache里面并且将有效位置1.最后再送到CPU中
Cache主存块的替换算法
随机算法
先进先出算法
cache的工作原理
1.cache命中,直接与CPU进行数据交换
2.cache未命中,需要cpu与主存进行交换,并将该信息放到cache中
3.放回信息时cache满,则通过某种替换算法将最久未使用的信息替换出来
还有的就是同时访问cache和主存
LRU(近期最少使用算法)
2路的时候使用一位的LRU,四路的时候使用2位的LRU
最不经常使用算法
Cache写策略
cache命中时
全写法
CPU对cache写命中时,同时写回cache与主存中。当需要被替换的时候,不必写回主存,直接将新的块覆盖掉即可,但是此种方式增加了访存的次数
改进:为了减少全写法对cache效率的影响,增加了一个具有FIFO的写缓冲队列,解决了这个写入主存时的速度不匹配的问题
保证了主存与cache的一致性
缺点是:增加访存的次数
写回法
只修改cache中的内容,而不用修改主存,只有当cache中的内容将要被替换时,才将其写回主存中。
优点:减少了访存次数,但是需要为每个cache行设置脏位,以反映是否被修改过。
对应于写命中的情况
cache未命中时
写分配法
不命中时,加载主存中的块到cache中,然后更新这个块,利用了空间的局部性,缺点是每次不命中是都需要从主存中读取一个块
非写分配法
只写入主存,不进行调换
全写法与非写分配法进行配合,写回法与写分配法结合使用
虚拟存储器
虚拟存储器的概念
页式虚拟存储器
基于快表的地址转换机构
段式虚拟存储器
段页式虚拟存储器
虚拟存储器于cache的比较
指令系统
指令格式
零地址
一地址
二地址
三地址
四地址
扩展操作码指令格式
不允许短码是长码的前缀,即短操作码不能与长操作码的前面部分的代码相同
各个指令的操作码一定不能重复
使用频率高的指令分配比较短的操作码,使用频率低的采用较长的操作码,目的就是为了能够减少指令译码和分析的时间
指令的寻址方式
指令寻址
下一条将要执行的指令地址
顺序寻址(PC寻址)
跳跃寻址
绝对地址
相对地址
数据寻址
寻找操作数的地址
隐含寻址(0)
+

立即数寻址(0)
用补码的形式

直接寻址(1)

间接寻址(一次间接2)

寄存器寻址(0)

寄存器间接寻址(1)

相对寻址(1)

基址寻址(1)

多程序
变址寻址(1)

\数组
堆栈寻址(1)
由sp指针的控制pop与push
CISC与RICS的比较

中央处理器
CPU的结构和功能
由控制器与运算器组成
功能
指令控制
取指令,分析指令,执行指令
操作控制
CPU进行管理对内存的操作信号
时间控制
对各种操作加以时间的控制
数据加工
对数据进行加工和处理
中断处理
异常情况和特殊情况做出处理
结构
运算器
算术逻辑单元
暂存寄存器
对应用程序员是透明的
暂存从主存读来的数据
累加寄存器
暂存ALU的计算结果
通用寄存器
存放操作数和中间结果
程序状态寄存器(PSW)
保留状态信息
对用户是可见的
计数器
控制乘除运算的步骤
移位器
进行移位运算
控制器
程序计数器(PC)
指出下一条指令在内存中的地址
指令寄存器(IR)
保存正在执行的那条指令
对用户是透明的
指令译码器
仅对操作码字段进行译码
存储器地址寄存器(MAR)
用于存放访问内存的地址
存储器数据寄存器(MDR)
用于存放向主存写入的信息和从主存写出的信息
对用户是透明的
时序系统和微操作(CU)
用于产生时序信号
指令执行过程
指令周期
指令周期由多个机器周期表示,机器周期又可分为时钟周期,也称CPU周期
取指
取指令
间址
取有效地址
执行
取操作数
中断
保存程序断点
四次都有访存的操作
无条件转移指令只有取址和执行周期
进栈操作是SP指针减一
指令周期的数据流
取指周期
取指令放到指令寄存器
间址周期
取操作数的有效地址
中断周期
保存断点和提供中断服务程序入口地址
执行方案
单指令周期
最多的那个
多指令周期
不同类型的指令
流水线周期
数据通路的功能和基本结构
数据通路的功能
数据在功能部件之间的传送的路径
CPU内部的运算器及寄存器与寄存器之间的数据交换
数据通路的基本结构
CPU内部单总线结构
将所有寄存器的输入端和输出端都放到同一条公共通路上
CPU内部三总线结构
将所有寄存器的输入端和输出端都连接到多条公共通路上
专用数据通路方式
避免使用共享的线路,硬件成本比较高
控制器的功能和工作原理
控制器的结构和功能
根据微操作的产生方式不同,分为硬布线和微程序控制器,但是其中的PC与IR是相同的
控制器部件通过数据总线接收指令信息,从运算器部件接收指令转移地址
控制器的功能
1.取指令,指出下一条指令的地址
2.完成译码和指令测试
3.指挥并控制CPU,主存和输入与输出之间的数据流向
硬布线控制器
时钟周期
机器周期
存储字长等于指令字长时,取指周期也被视为机器周期
指令周期
微操作命令分析
CPU的控制方式
1.同步控制方式
2.异步控制方式,采用应答信号
3.联合控制方式
微程序控制器
思想
将机器指令编写位微程序,微程序里面包含了微指令,微指令里面又包含了微操作,微程序被存放在控制存储器当中,然后用寻址用户机器指令的办法来寻址微程序中的微指令
相关术语
微命令
最小的控制序列
微操作
不可分割的操作
微指令
微命令的集合,存放伪指令的控制存储器的地址被称为微地址
微操作码
产生某一步的控制信息
微地址码
用于产生下一条指令的微指令的地址
微周期
从控制存储器读取一条微指令并执行相应微操作所需的时间
微程序与程序
程序是指令的集合,可以实现特定的功能,指令是功能是由微程序来实现的。微程序是机器指令的实时解释器,更多的用来描述机器指令。
地址寄存器
用于存放主存的读写地址
微地址寄存器
用于存放控制寄存器的读写微地址
指令寄存器
用于存放主存中读出的指令
微指令寄存器
用于存放从控制存储器中读出的位置指令
微指令的编码方式
直接编码
无需译码,但是需要的字长很长,需要的存储器容量极大
字段直接编码
字段分段三原则
1.互斥性微命令放在一段,相容性命令放在不同的段
2.每段的信息位不能太多
3.每小段留一个位,也就是说3位只能表示7个互斥的微操作
字段间接编码
微指令的地址形成方式
直接由微程序的下地址指出(断定方式)
根据机器指令的操作码形成
微指令的格式
水平型微指令
微程序短但是指令位数长
垂直性微指令
一条微指令执行一种微操作,短,简单
硬布线和微程序的特点
硬布线的速度取决于电路延迟
微程序采用了存储器的原理,每读一条指令都要从控制存储器中取一次,影响速度
指令流水线
指令流水线
流水线的定义
取指,分析,执行
执行方式
顺序执行
3nt
一次重叠执行
(1+2n)t
二次重叠执行
(n+2)t
流水线的特点
1.一个任务分为多个子任务
2.有一个锁存器
3.流水线的各个功能所用的时间端尽量相同
4.需要有一个输入时间和输出时间
5.需要有一个连续不断地提供同一种任务
指令流水线的分类
部件级,处理机级,处理机间级
单功能,多功能
动态和静态
线性与非线性
影响流水线得因素
资源冲突
数据冒险
在一个程序中,下一条指令会使用到本条指令运算产生得数据
解决方法
1.后推法:通过硬件阻塞“stall”和软件插入得方式“NOP”暂停一个或几个时钟周期
2.采用数据旁路技术
3.通过编译器得优化
控制冒险
当前指令要指出下一条指令得地址,连续得两条指令会造成指令冒险
解决方法
1.对转移指令进行分支预测
2.加快形成条件码
3.提高猜中方向得准确率
4.预取转移指令成功和不成功得目标指令
相关问题
流水线得性能指标
流水线得吞吐量
实际情况下
流水线的加速比
使用流水线与不使用流水线的时间之比:
流水线的效率
n个时空的占比与时间和K段任务所围成的时空效率之比:
超标量流水线概念
超标量流水技术
1.可以发送多条独立的指令
2.不能控制指令的执行顺序
超标量技术
超长指令字
总线
总线概述
基本概念
分时与共享是两个特点
猝发式传输方式:一个总线周期内传输地址连续的多个数据字的总线方式称为猝发式传送
总线分类
片内总线
用于连接CPU内部寄存器与寄存器之间,寄存器与ALU之间
系统总线
数据总线
双向
与存储字长和机器字长有关
地址总线
单向
指向源数据和目的数据的主存单元地址或I/O地址
控制总线
有cpu的控制命令,和主存的反馈信号
通信总线
时序来分
同步传输总线
异步传输总线
数据结构格式来分
并行传输总线
串行传输总线
系统的结构
单总线结构
CPU,主存,i/o接口都连接同一根系统总线上
双总线结构
CPU,主存的连接在一根总线上,i/o单独一根总线,然后增加一个通道的设备将外设与cpu与主存连接起来

三总线结构
CPU与主存之间通过主存总线连接,主存与I/O接口之间通过DMA总线连接,I/O总线用于CPU和外设之间通信,呈现一个三角的关系
总线的性能指标
总线的传输周期(简称总线周期),通常由若干个总线时钟周期构成的
申请阶段
寻址阶段
传输阶段
结束阶段
总线的时钟周期
机器的时钟
总线的工作频率
总线周期的倒数
总线的时钟频率
总线时钟周期的倒数
概要
总线宽度
数据总线的根数,同时能够传输的位数
总线带宽
总线的数据传输率
总线工作频率*(总线宽度/8)
总线复用
指的是同一种信号线在不同的时间里可以传输不同的信息,较少的信号线传输更多的信息
总线仲裁
背景:为了解决功能部件同时竞争总线使用权,而使用总线仲裁控制部件
按仲裁控制机构的设置
集中控制
链式查询
BS,BG,BR
BR请求,BG用于回复,当请求的时候,仲裁机构不忙则将应答信号通过BG依次回答每个请求部件儿
部件儿离总线控制器越近其优先级就越高
计数器定时查询
BR,BS
当有部件儿请求使用总线时,通过总线控制器的计数,当控制器闲的时候,将通过部件儿设备号以及优先级来确定部件儿的使用权。
1.计数器从0开始,那么优先级就固定了
2.计数器从上一次停止的地方开始,那么每个部件儿使用的总线的机会是相等的
3.当时使用软件来对优先级的次序进行改变时,使得更灵活的被访问
假如有n个部件儿,就需要
独立请求方式
BR,BG
每一个部件而都有一个请求线与回复线,优先级更灵活
但要求需要更多的线路连接,若有n个部件就需要2n+1条线
分布控制
每个主模块都有自己的仲裁号和仲裁器
总线操作与定时
背景:总线在双方交换的过程中需要时间上配合关系的控制
有异步方式和同步方式
同步方式
由系统的时钟信号来统一分配
一个总线周期的结束就是另一个总线周期的开始
速度快但是可靠性较差
各部件的存取时间比较接近
异步方式
没有统一的时钟信号,通过“应答信号”来实现控制
不互锁方式
发出“请求”信号之后过一段时间就自动撤销了,发送“回答”信号在一段时间后自动撤销了

半互锁方式
发出请求信号后需要接收到回答信号才会撤销请求信号

全互锁方式
请求信号发出必须接到回答信号才撤销,回答信号发出后从设备需要接到请求信号销毁才能撤销

总线标准
ISA总线:是最早出现的微型计算机的系统总线,IBM的AT机上
EISA总线是为了配合32位CPU而设计的扩展总线
VESA是一个32位的标准计算机局部总线,是应对多媒体PC要求告诉运转的活动图像大量数据应运而生的
PCI,外部互联设备总线,32and64,PCI可以通过桥接的方式实现多层PCI总线
PCI-Express,取代全面的PCI和AGP,最终统一的总线标准
AGP加速图形接口是一种视频接口
RS-2323C一种串行通用总线
USB即插即用,热插拔的优点
PCMCIA即插即用的功能
IDE集成设备电路,ATA,是一种IDE接口接口磁盘驱动器接口类型,硬盘和光驱通过它和主板连接
SCSI
SATA串行高级技术附件儿
考前需要过一遍儿
输入输出系统
输入输出系统
I/O控制方式有四种
I/O指令格式与通用格不相同的
程序查询方式
CPU查询I/O设备是否准备好,控制CPU与I/O设备的信息交换
程序中断方式
只有在I/O设备准备好之后才可以向CPU发出请求传输中断请求
适用于数据量比较小的传输
DMA方式
无需中断响应程序的参与
通道方式
通道控制部件来连接多个外设
通道程序一般放在主存中
适用于比较大的数据传输
外部设备
外存储器(磁盘存储器)
硬盘设备的组成
存储区域
磁头(硬盘上有多少个磁头)
柱面(盘片上有多少个磁道)
扇区数(表示磁道上有多少个扇区)
硬盘存储器的组成
磁盘驱动器和磁盘控制器
磁记录原理
磁盘性能指标
平均寻道时间
寻道时间
延迟时间
传输时间
数据传输率
Dr=r*N,r指的是磁盘转数,N指的是磁道的字节数
磁盘地址
驱动器号-柱面号-盘面号-扇区号
硬盘工作流程
寻址,读盘,写盘
磁盘阵列
多个磁盘,提高了传输率
并行存取大幅提高存储系统的数据吞吐量,提高安全可靠性,数据校验,提供容错能力。但是并不能提高磁盘的利用率
I/O接口
数据线
数据缓冲寄存器
在这里使用的I/O指令需要操作系统内核的特权指令
状态/控制寄存器
这俩的传输方向刚好相反
控制线
地址线
I/O端口和编址
独立编址
可以使用访存指令来访问
通过地址码的不同来区分I/O设备
统一编址
两个独立的地址空间
独有的I/O指令,数据传送发生在端口与寄存器之间
I/O方式
程序中断方式
CPU“踏步等待”现象,CPU与I/O串行工作的
程序中断方式
中断请求类型
浮点数的下溢出被当作是机器0的来处理的
中断判优
CPU响应中断的条件
有中断源
CPU开中断
一条指令执行完毕且没有紧迫的任务
中断隐指令
一种不能被用户所使用的特殊指令
关中断
为保护现场,需要将寄存器中的内容保护起来,不响应别的中断
保存断点
将原来的地址保存到PC当中
引出中断服务程序
将中断服务程序的入口地址送到PC当中
由硬件完成的
中断向量
中断服务程序的入口地址
加起来就是一个中断服务程序的向量表
中断处理过程
关中断
保存断点
引出中断服务程序入口地址
硬件完成
保护现场
开中断
执行中断服务程序
关中断
恢复现场和屏蔽字
开中断和中断返回
中断程序来完成的,在一个指令周期结束之后即可响应中断
DMA方式
需要有DMA接口的设备,因为需要具有控制总线的能力
特点
全硬件
在数据准备阶段,CPU与外设是并行工作的
中断的作用,硬件故障和传输结束时需要中断
DMA的传送方式
提停止CPU访存
DMA与CPU交替访存
周期窃取
必须有控制系统总线的能力
DMA的传送过程
预处理
CPU的参与,将总线控制权交给DMA
数据传送
完全由DMA来控制
后处理
CPU执行中断服务程序
在每个机器周期结束之后即可响应中断
总结
1.中断方式需要CPU,DMA方式只需要预处理和后处理需要CPU
2.中断的响应在每条指令的结束就可以响应中断,DMA方式需要在机器周期结束之后才可以
3.DMA的传输率更高,没有CPU的干预
4.DMA的优先级高于中断的优先级
5.对异常事件的处理能力,中断能力更高
6.中断是靠程序传送的,DMA是靠硬件的