一、系统总线
总线概念
起源:将计算机系统的五大部件共同连到一组公共信息传输线上,就是总线。早期使用的是每个设备都有自己的连接线,分散连接,不方便随时增添和减撤设备。
总线新问题:由于总线是各部件共享的传输介质,所以在某一时刻只能允许其中一个部件向总线发送信息。
总线组成:由许多传输线组成,每一条传输线可一位一位地传输二进制代码。
总线分类
按连接部件不同分类:片类总线、系统总线、通信总线
片类总线:看不见的总线,是指芯片内部的总线,CPU内部中寄存器与寄存器之间、寄存器与算术逻辑单元ALU之间的总线。
系统总线:指五大部件之间的信息传输线。系统总线按传输信息的不同分为:数据总线、地址总线、控制总线
- 数据总线:用来传输各部件之间的数据信息,数据总线的位数称为数据总线宽度,即一次能传输的最大二进制的个数。
- 地址总线:用来指出数据总线上的源数据或目的数据在主存单元的地址或I/O设备上的地址。地址总线的位数与存储单元有关,存储单元个数=2的(地址总线的位数)次方。
- 控制总线:由于总线是各部件共享的,为了合理分配各部件的总线占用权,需要依靠控制总线发出各种控制信号来完成。常见控制信号:总线请求、总线允许、中断请求、读写……
通信总线:用于计算机系统之间的通信。
总线特性和性能指标
总线是由许多导线直接印刷在电路板上的。
总线性能指标:
- 总线宽度:值数据总线的根数
- 总线带宽(数据传输速率):单位时间内总线上传输数据的总位数 MBps,最大传输率 = 一次可传输的最大字节数*工作频率
- 同步方式:总线上的数据与时钟是否同步
- 信号线数:地址、数据、控制的总线数的总和
总线标准:即统一总线建立的标准,视为通用接口。目前流行的总线标准如下
- ISA总线
- EISA总线
- PCI总线:处理图形、多媒体
- AGP总线:处理三维数据
- USB总线
总线结构
单总线结构:将CPU、注册、I/O设备都挂在一组总线上。
多总线结构
- 双总线结构:主存总线、I/O总线。将速度较低的I/O设备从单总线上分离出来,使用通道连接I/O设备。通道是具有特殊功能的处理器,对I/O设备管理。
- 三总线结构:主存总线、I/O总线、DMA总线。DMA总线用于高速I/O设备与主存之间直接交换信息。注意:三总线结构中任一时刻只能使用一种总线。
- 四总线结构:局部总线、系统总线、高速总线、扩展总线。
总线控制
概念:由于总线上连接着许多个部件,那么如何避免多个部件同时发送信息,需要总线控制器统一管理。主要包括:判优控制、通信控制
总线判优控制:集中式、分布式
总线上连接的各个设备分为主设备和从设备,主设备对总线有控制权;从设备没有控制权,只能接收响应从主设备发来的总线命令。
问题的产生:当多个主设备向总线发送请求信号使用总线时,就需要总线控制器的判优、仲裁逻辑按一定的优先等级顺序来确实那个主设备先使用总线。
集中式仲裁方式:
- 链式查询:控制总线中有3根用于总线控制(BS总线忙、BR总线请求、BG总线同意),总线控制部件主动从离自己最近的一个设备开始一个一个的发起BG信号查询,询问该设备是否需要使用总线。一旦有设备接口有BR总线请求就建立BS总线忙信号,表示占用了总线,其他设备就继续等待。
- 计数器定时查询:少了BG总线同意,多了一组设备地址线。没有了BG同意信号主动询问,只能设备主动发起BR总线请求,此时计数器开始计数,并通过设备地址线向各个设备发出一组地址信号。当某个设备的地址线与计数器一致时,便获得总线使用权,此时计数器停止。
- 独立请求方式:每一台设备均有一对总线请求BR和总线同意BG。
总线通信控制:
主要解决通信双方如何获知传输开始和传输结束,以及通信双方如何协调如何配合。四种方式:同步通信、异步通信、半同步通信、分离式通信。
计算题
总线的时钟频率MHz、总线的传输周期、时钟周期、总线的宽度
求总线带宽、总线的数据传输率MBps ???
二、存储器
存储器分类
存储器作用:存放程序和数据
按存储介质分类:
- 半导体存储器
- 磁表面存储器
- 磁芯存储器
- 光盘存储器
按存取方式分类:
- 随机存储器(Random Access Memory,RAM):主存采用。静态、动态
- 只读存储器(Read Only Menory,ROM):只能读出,不能重新写入新的。MROM、PROM、EPROM、EEPROM
- 串行访问存储器
按在计算机中的作用分类:
- 主存储器
- 辅助存储器
- 缓冲存储器
存储器的层次结构
性能指标:速度、容量、每位价格
缓存-主存:解决CPU和主存速度不匹配的问题
主存-辅存:解决存储系统的容量问题
主存储器
主存的内部结构:三大部分组成、细分又多了译码器、驱动器、读/写电路:这些器件是辅助MAR和MDR的。
主存的工作原理:两个大过程
- 1、MAR访问存储单元:需要经过地址译码器、驱动等电路,才能找到所需访问的存储单元
- 2、存储单元读到MDR:需要经过读出放大器,才能将选中单元的存储字送到MDR
现代计算机中:MAR、MDR在CPU芯片内;译码器、驱动器、读写电路在存储芯片内。
从主存中读出一个信息字520(假设要读取数据520):
- 1、CPU把信息字520的地址给MAR
- 2、MAR通过地址总线把地址送到主存
- 3、CPU再通过控制总线向主存发出读命令
- 4、主存此时接收到了地址和读命令,就会把该地址里面的信息字520读出来放到数据总线上,再送到MDR
向主存中写入一个信息字520:同上的工作原理
主存中存储单元地址的分配
一个字节 = 8位二进制,存储字长都取8的倍数。
寻址方式:按字寻址、按字节寻址
主存的技术指标
存储容量:指主存能存放的二进制总位数
- 以二进制数为单位:存储容量=存储单元个数*存储字长
- 以字节数为单位:存储容量=存储单元个数*存储字长/8
存储速度:由存取时间和存取周期表示
- 存取时间:指完成一次读或写到完成操作所需要的全部时间
- 存取周期:指两次独立的存储器操作(如连续两次读操作)所需的最小间隔时间
存储器带宽:指单位时间内存储器存取的信息量,衡量数据的传输速度,提高带宽方法如下:
- 缩短存取周期
- 增加存储字长
- 增加存储体
半导体存储芯片
基本结构:采用超大规模集成电路制造,在一个芯片内集成具有记忆功能的存储矩阵、译码驱动电路、读写电路等。
存储芯片容量:由地址线、数据线的位数决定。芯片容量=2的地址线位数次方乘以数据线位数。
半导体存储芯片的译码驱动方式
作用:使用地址线来确定要选择的存储单元
地址线的排列方法:线选法、重合法
线选法:一根地址线代表一个存储单元,小容量
重合法:由两根地址线共同决定一个存储单元,大容量
随机存取存储器
两大类:静态RAM、动态RAM
静态RAM:
- 静态RAM基本单元电路:存储器中用于寄存0和1代码的电路称为存储器的基本单元电路,由6个MOS管组成
- Intel 2114芯片的基本单元电路就是6个MOS管组成,容量为1K*4的2114
- 2114芯片内部结构图和工作原理
动态RAM
- 动态RAM基本单元电路:三管式、单管式;靠电容存储电荷的原理来寄存信息。有电荷表示1、无电荷表示0,电容上的电荷保持时间只有1-2ms,时间太短为了维持状态必须在2ms内恢复一次原状态,即再生或刷新。
- 三种刷新方式:集中刷新、分散刷新、异步刷新
芯片内部结构:A代表地址线、D代表数据线、CS代表片选信号、WE代表读写允许信号
只读存储器
PROM、EPROM、EEPROM
重点:存储器与CPU的连接
概念介绍
存储容量的扩展:将若干存储芯片连在一起组成大容量的存储器,三种扩展方式:位扩展、字扩展、字位扩展
首先理解芯片组成方式:1K*8位
是指某个存储器芯片的容量,1K*8代表该存储器芯片具有1K个存储单元,每个存储单元能存储8位二进制数。
位扩展:指增加存储字长——>增加连接到地址线上的线路的数量即可增大一次性读取的位数能力
字扩展:指增加存储器字的数量(即存储单元个数)——>增加地址线的数量即可增加存储单元个数
字、位扩展:既增加存储字的数量、又增加存储字长
存储器与CPU的连接:即如何连接地址线、数据线、控制线、片选线、存储芯片选择???
题型:给出要设计的CPU的地址线数量、数据线数量、访存控制信号、读写控制信号、一些可供选择的存储芯片、74138译码器。设计出该CPU,画出连接图。
要求:设CPU有16根地址线、8根数据线,设计8K的系统程序区。
解题步骤:
- 第一步芯片选择:根据题目要求的固定地址大小——>确定最合适的芯片(有些芯片需要使用其他芯片先扩展才能获得题目要求的地址大小)。
- 第二步求实际地址线:根据要求的地址大小——>确定实际需要的地址线数量,即2的X次方=要求的地址大小——>得出x为实际需要的地址线数量。
- 第三步画A01图:根据实际地址线数量可以得出二进制形式的地址范围,即A的范围,选择13个A,从A0到A12区间的范围都是代表地址的(那么剩余的其他A可能会用于接74138译码器的A/B/C输入端,下面详说)
- 第四步取余A为输入:在未用完的地址线中选择紧接着的3个作为74138译码器的ABC三个输入端 ,且输出端Y就是由这3根地址线的二进制的十进制数决定。
- 第五步确定片选信号CS:芯片上的CS信号直接与译码器的输出Y相连。
- 第六步:最后一步,把读写信号WR、其他信号连起来,根据扩展情况连接地址线、数据线、控制线。
存储器的校验 (汉明码)
首先理解什么是奇偶校验:偶校验——使代码里面的1的个数为偶数个。奇校验——使代码里面的1的个数为奇数个。
概念:在数据存储过程中可能会出现差错,为了及时发现错误并及时纠正错误,将原数据配成汉明码。汉明码就是采用奇偶校验的码。
汉明码纠错能力:具有纠错一位的能力,只错一个数据。
编码的最小距离:任意两组合法代码之间相同位置不同数据的个数,就是最小距离。比如1011和0010两组代码中,在位置1、4数据不相同,所以最小距离就是2
代码长度N不同,其添加的检测位数K也不同。2^k-1>=k+n
汉明码的原理:当给定一组01代码,此时要在这串代码中某些位置插入k位检测位,插入后的这串代码就是原代码的汉明码。
如何确定检测位的插入位置和检测位的值???
汉明码插入位置:在2的i次方上的位置都是汉明码,1、2、4、8……
汉明码怎么分组:
- 某个编码的二进制符合XXX1,就是C1组,1/3/5/7/9/11……
- 某个编码的二进制符合XX1X,就是C2组,2/3/6/7/10/11/14/15……
- 某个编码的二进制符合X1XX,就是C3组,4/5/6/7/12/13/14/15……
- 某个编码的二进制符合1XXX,就是C4组,8/9/10/11/12/13/14/15/24……
汉明码的值:首先知每位检测位的值由每一小组确定得来,若该小组内1的个数为偶数则检测位值就是0,反之为1。(核心就是检测位的值由该检测小组内二进制是1的个数是否为偶数决定),会发现生成的检测位的值就是用来补充自己小组内1的个数为偶数个的,比如小组C1里面1的个数为奇数个,那么还需要1个1来补成偶数个,那么检测位就是用来补数的,形成偶数个1。
求汉明码步骤:
- 1、首先确定检测位的位数k,2^k-1>=k+n
- 2、确定每一组小组C,最后异或运算得结果,即检测位的值,每一组确定一位检测位的值C
- 3、根据检测位的位置插入检测位的值——>就是汉明码
汉明码纠错原理:接收方接收到一串汉明码后,要重新形成新的检测位 ,重新生成每个小组P(包括原检测位C),重新求得新检测位的值。新的检测位的值必须为0才能为真,如果不为0说明原检测位和原小组共同组成的代码里面1的个数不为偶数个,明明不符合要求,所以就能发现哪一个小组有问题。
汉明码确定错误位置:由新检测位P的值先确定哪些位置可能会错,再结合其他小组正确的位置来找出错误位置。汉明码最牛的地方就是可以根据所有新检测位p的值组合(大到小排列)再转换为对应的十进制就是编码中出错的位置。
如p3=1、p2=1、p1=0;大到小排列组合:p3p2p1=110=6,所以就是第6位出错了。
提高访存速度的措施
单体多字系统:
- 使用场景:指令和数据在主存内是连续存放的
- 工作原理:在一个存取周期内,从同一地址取出4条指令,再逐条将指令送至CPU
- 核心:一次访问多个字长
多体并行系统:
- 工作原理:采用多个独立的模块,每一个模块都是一个完整的小存储器,各模块都有独立的MAR、MDR、地址译码、驱动电路、读写电路。多个独立的存储体构成。
- 核心:连续访问不同的存储体。
- 分类:高位交叉编址、低位交叉编址
- 高位交叉编址:顺序存储的思想,只能一个存储体满了之后,才能存到下一个存储体。高位地址表示存储体的编号、低位地址表示体内地址。
- 低位交叉编址:交叉存储的思想,连续存放在相邻的存储体中,一个存储体内第一个存储单元存满后,会到下一个存储体的第一个存储单元存,依次类推。低位地址表示存储体的编号、高位地址表示体内地址。
高速缓冲存储器Cache
概念:Cache缓存的作用是CPU可以不直接访问主存,主存提取把CPU要取的信息送至缓存Cache,CPU直接与高速Cache交换信息。
Cache工作原理
首先理解Cache映射:即主存和缓存之间有对应关系,如主存中某块区域对应缓存中某块区域(也就是主存把信息送至了缓存中)。将主存与缓存都分成若干块,一个块里面又包含若干个字,且主存和缓存的块大小相等。
主存地址的结构:分成两部分,前m位二进制表示主存的块地址、后b位表示块内地址,块数量=2的m次方。
缓存地址的结构:分成两部分,前c位二进制表示缓存的块号、后b位表示块内地址,2的b次方=B一个块的大小,块长。
CPU欲读取主存信息时:两种情况,一是所需信息已经在缓存Cache中、二是不在缓存中。
判断信息是否在Cache:此时需要在缓存中设计一个标记,该缓存标记的内容就是主存的块编号,当CPU读信息时,先将主存前m位(即块号)地址与缓存的标记(代表主存的块号)进行比较,相等说明主存信息已经送至缓存。
Cache内部结构
由三部分组成:Cache存储体、地址映射变换机构、Cache替换机构
Cache存储体:以块为单位与主存交换信息
地址映射变换机构:主存地址以某种函数关系映射到Cache中
替换机构:当Cache被装满时,需要移出某些块,而把新的主存中的块装入
Cache读写操作:当写操作时,需要确保Cache与主存保持一致的问题,因为CPU先修改了Cache中数据,而此时主存中还未被修改。
- 写直达法:即同时修改Cache和主存,但是增加了访存次数
- 写回法:只写入Cache,不写入主存,当Cache中的数据被替换时才写回主存,此时需要判断该Cache被替换数据是否被修改过,设置两个标志位状态来判断,“清”、“浊”
Cache的改进
单一缓存和两级缓存:指CPU和主存之间只有一个缓存或两个缓存,如今,缓存都是与CPU制作在同一个芯片内的,又称片内缓存;主存与片内缓存之间的缓存叫片外缓存。
统一缓存和分立缓存:指指令和数据是否放在同一个Cache缓存内
Cache——主存地址映射
指将主存地址映射到Cache地址,主要方法:直接映射、全相联映射、组相联映射(前两者的折中)
直接映射:
- 每个主存块只能对应一个缓存块,每个缓存块对应多个主存块
- 采用取模%运算,i = j % c // j为主存块号、c为缓存块数量、i为缓存块号
全相联映射
- 每块主存可以对应任意一块缓存块
组相联映射
- 是直接和组相连相结合的方法,把Cache缓存分组Q,每组有R块;
替换策略
当Cache空间已经满了时,此时又要新写入数据,要把Cache中旧数据替换为要使用的最新数据。
替换算法:由于全相联和组相联里面一个主存块都可以对应多个缓存块,这就产生了当我要写入Cache是选择哪一个缓存块的问题
三种方法:先进先出算法、近期最少使用算法、随机法
辅助存储器
硬磁盘、软磁盘、磁带、光盘
磁表面存储器
磁表面存储器:在不同形状的载体上涂有磁性材料层,载磁体高速运动,由磁头在磁层上进行读写操作,这些信息的轨迹就是磁道。磁道是一个个同心圆。
磁表面存储器的技术指标:
- 记录密度:单位时间内存储的二进制信息量,
- 存储容量
- 平均寻址时间
- 数据传输率
- 误码率
磁记录原理和记录方式
循环冗余校验码
三、输入输出系统
重点:I/O设备与主机交换信息的三种控制方式:程序查询、中断、DMA(Direct Memory Access)
I/O系统发展
4个阶段
1、I/O设备通过CPU与主存交换信息
2、接口模块和DMA阶段
3、具有I/O通道结构的阶段
通道可以视为具有特殊功能的处理器,CPU不直接参与管理I/O设备与主存交换信息,由通道指令完成。
4、具有I/O处理机的阶段
I/O系统组成
I/O软件和I/O硬件组成
I/O软件
任务:
- 将用户写的程序或数据输入主机内
- 将运算结果输送给用户
- 实现输入输出系统与主机工作的协调
I/O指令
属于机器指令的一类,指令格式=操作码+命令码+设备码
通道指令
通道指令是对具有通道的I/O系统专门设置的指令,通道指令存放在主存的任何地方,由通道从主存中取出来。
通道指令的作用就是执行I/O操作,如读写等而I/O指令是CPU指令系统的一部分,是CPU用来控制输入输出操作的指令,由CPU译码后执行。
I/O硬件
带有接口的I/O系统:包括接口模块及I/O设备两块
具有通道的I/O系统:一个通道可以和多个设备控制器相连,一个设备控制器可以控制多个同一类型的设备。
I/O设备与主机的联系方式
联系方式需要解决的问题:
- CPU如何对I/O设备编址:统一编址、不统一编址
- 如何寻找I/O设备号:I/O指令中的设备码字段
- 信息传送是逐位串行还是多位并行
- I/O设备与主机以什么方式进行联络:立即响应方式、异步工作采用应答信号联络、同步工作采用同步时标联络
- I/O设备与主机是怎么连接的:总线式
I/O设备与主机信息传送的控制方式
共有5种控制方式:
- 程序查询方式
- 程序中断方式
- 直接存储器存取方式DMA
- I/O通道方式
- I/O处理机方式
程序查询方式
概念:只要一启动I/O设备,CPU就通过程序不断查询I/O设备是否已做好准备。
缺点:只要一启动I/O设备,CPU便不断查询I/O设备的准备情况,从而终止了原程序的执行,出现原地踏步的现象。
程序中断方式
概念:只要一启动I/O设备,CPU不查询设备是否准备就绪,仍然执行原程序,而是由准备就绪的I/O设备主动向CPU发出中断请求。
缺点:CPU在响应中断请求后,必须停止现行程序而转入中断服务程序,与主存交换信息时还会占用CPU内部的一些寄存器,消耗CPU资源。
直接存储器存取方式DMA(大型机)
概念:I/O设备直接与主存交换信息,而不占用CPU,主存与I/O设备之间有一条数据通路。
I/O设备
I/O接口
概念:I/O接口指主机与I/O设备之间设置的一个硬件电路及其相应的软件控制。
接口的功能作用:
- 实现I/O设备的选择
- I/O设备种类繁多,速度不一,接口实现数据缓冲,达到速度匹配
- 实现数据串-并格式的转换
- 实现电平转换
- 可以传送控制命令
- 可以监视设备的工作状态,并保存状态信息,供CPU查询
接口的功能和组成
每一台I/O设备都是通过I/O接口挂到I/O系统总线上的,I/O系统总线包括4种:数据线、设备选择线、命令线、状态线。
1、选址功能
设备选择电路,用于识别设备地址。
2、传送命令的功能
命令寄存器和命令译码器
3、传送数据的功能
数据缓冲寄存器,用于存放欲传送的数据。
4、反映I/O设备工作状态的功能
设备状态标记
程序查询方式
程序中断方式
DMA方式
DMA方式的特点
主存与DMA接口之间有一条数据通路,因此主存和设备交换信息时,不通过CPU,也不需要CPU暂停现行程序为设备服务,省去了保护现场和恢复现场。
注意:DMA接口和CPU若同时访问主存,CPU必须将总线占有权让给DMA接口使用,DMA接口采用周期窃取的方式占用一个存取周期。
DMA接口的功能和组成
功能:
- 向CPU申请DMA传送。
- 在CPU允许DMA工作时,处理总线控制权的转交。
- 在DMA期间管理系统总线,控制数据传送。
- 确定数据传送的起始地址和数据长度。
- 在数据传送结束时,给出DMA操作完成的信号。
基本组成:
- 主存地址寄存器AR:用于存放主存中需要交换数据的地址。
- 字计数器WC:用于记录传送数据的总字数。
- 数据缓存寄存器BR:用于暂存每次传送的数据。
- DMA控制逻辑:负责管理DMA的传送过程,由控制电路、时序电路、命令状态控制寄存器等组成。
- 中断机构:向CPU提出中断请求
- 设备地址寄存器DAR:存放I/O设备的设备码。
DMA的工作过程
DMA传送过程:预处理、数据传送、后处理。
预处理:CPU对DMA接口进行预置信息处理,完成后,CPU继承执行原程序。当I/O设备准备好后,便通过DMA接口向CPU提出占用总线的申请,获取总线的控制权后,数据的传送便由DMA接口进行管理。
数据传送:DMA方式以数据块为单位传送数据。
后处理:当DMA的中断请求得到响应后,CPU停止原程序的执行,转去执行中断服务程序,做一些DMA的结束工作。