计算机组成原理-总线及I/O
简介
计算机组成原理系列其五,主要是针对中国大陆考研所要求的内容对计算机组成原理的知识体系进行总结和梳理,本篇内容是计算机的总线及I/O介绍,主要包含以下几点:
- 总线的基本概念
- 总线事物和定时
- I/O接口
- I/O方式
大纲
- 总线
- 分类$\star$
- 片内总线
- 系统总线
- 总线结构$\star$
- 总线的性能指标$\star$
- 例题
- 分类$\star$
- 总线事物与定时
- 总线事物
- 总线定时
- I/O接口
- 基本结构$\star$
- I/O接口的类型
- I/O端口及其编址方式$\star$
- I/O方式
- 程序查询方式
- 程序查询方式-例题
- 程序中断方式$\star$
- 程序中断工作流程
- 多重中断
- 中断屏蔽技术
- 程序中断方式-例题
- DMA方式
- 特点
- DMA的传送方式$\star$
- DMA的传送过程$\star$
- DMA和中断方式的区别$\star$
- 程序查询方式
总线
总线是一组能为多个部件分时共享的公共信息传输路线。(一个总线包含多根信号线)
总线的特点:分时和共享
- 分时:同一时刻只允许有一个部件向总线发送信息
- 共享:总线上可以挂接多个部件,各个部件之间互相交换的信息都可以通过这组线路分时共享,多个部件可同时从总线上接收相同的信息
分类
- 按数据格式
- 串行
- 并行
- 按功能
- 片内总线
- 系统总线
- 通信总线
- I/O总线
- 按时序控制
- 异步
- 同步
片内总线
片内总线是芯片内部的总线,是CPU芯片内部寄存器与寄存器之间、寄存器与ALU之间的公共连接线
系统总线
系统总线是计算机系统内各功能部件(CPU、主存、I/O接口)之间互相连接的总线。按传输信息内容的不同可分为三类:数据总线、地址总线和控制总线
- 数据总线(DB):传输各功能部件之间的数据信息,它是双向传输总线,其位数与机器字长、存储字长有关
- 地址总线(AB):用来指出数据总线上的源数据或目的数据所在的主存单元会I/O端口的地址,它是单向传输总线,其位数与主存地址空间的大小及设备数量有关
- 控制总线(CB):传输的控制信息,包括CPU送出的控制命令和主存(或外设)返回CPU的反馈信息
总线结构
- 单总线结构:使用一条单一的系统总线来连接CPU、内存和I/O设备
- 双总线结构:一条主存总线、主存和通道之间传送数据;一条I/O总线,用于多个外部设备与通道之间传送数据
- 三总线结构:内存总线、I/O总线和DMA总线
总线的性能指标
总线传输周期(总线周期)。指一次总线操作所需的时间,包括申请阶段(总线仲裁)、寻址阶段、传输阶段和结束阶段。总线传输周期通常由若干总线时钟周期构成。
总线时钟周期。即机器的时钟周期。计算机有一个统一的时钟,以控制整个计算机的各个部件,总线也要受此时钟的控制。
总线工作频率。总线上各种操作的频率,为总线周期的倒数。实际上指1秒内传送几次数据。若总线周期=N个时钟周期,则总线的工作频率 =$\frac{时钟频率}{N}$。
总线时钟频率。即机器的时钟频率,它为时钟周期的倒数。
总线宽度。又称总线位宽,它是总线上能同时传输的数据位数,通常指数据总线的根数,如32根称为32位总线。
总线带宽。可理解为总线的最大数据传输率,即单位时间内总线上最多可传输数据的位数,通常用每秒传送信息的字节数来衡量,单位可用字节/秒(B/s)表示。${总线带宽} = {总线工作频率}\times \frac{总线宽度}{8}$。
注意:总线带宽和总线宽度应加以区别。总线复用。总线复用是指一种信号线在不同的时间传输不同的信息,因此可以使用较少的线传输更多的信息,从而节省空间和成本。
信号线数。地址总线、数据总线和控制总线3种总线数的总和称为信号线数。其中,总线的最主要性能指标为总线宽度、总线(工作)频率、总线带宽
总线带宽是指总线本身所能达到的最高传输速度,它是衡量总线性能的重要指标。
三者关系:$总线带宽={总线宽度}\times{总线频率}$。
例如,总线工作频率为 22MHz,总线宽度为16位,则总线带宽 = $22\times{(\frac{16}{8})}= 44MB/s$。
例题
解:总线工作频率为1333MHz,即1秒内可以传送1333M次数据。总线宽度为64位即单条总线工作一次可以传送8Byte。因此总带宽为$3\times8\times1333MB/s \approx 32GB/s$
每个时钟周期传送2次,故$每秒传送次数 = 时钟频率 \times 2 = 2.4G \times 2/s$
$总线带宽 = 每秒传送次数\times 2B \times 2 = 2.4G \times 2 \times 2B \times2/s = 19.2GB/s$
公式中的“$\times 2B$”是因为每次传送16bit数据;“$\times 2$”是因为采用点对点的双全工总线
总线事物与定时
总线事物
总线裁决:决定哪个主控设备使用总线。
寻址阶段:主控设备送出要访问设备的地址,同时送出有关命令(读或写等),启动从设备。
数据传输阶段:主、从设备间进行数据交换。
结束阶段:有关信息在总线上撤销,让出总线使用权。
总线定时
同步定时方式
所谓同步定时方式,是指系统采用一个统一的时钟信号来协调发送和接收双方的传送定时关系。时钟产生相等的时间间隔,每个间隔构成一个总线周期。在一个总线周期中,发送方和接收方可以进行一次数据传送。适用于总线长度较短及总线所接部件的存取时间比较接近的系统。优点∶传送速度快;总线控制逻辑简单。
缺点∶可靠性较差。异步定时方式
在异步定时方式中,没有统一的时钟,也没有固定的时间间隔,完全依靠传送双方相互制约的握手信号 来实现定时控制。通常,把交换信息的两个部件或设备分为主设备和从设备,主设备提出交换信息的”请求”信号,经接口传送到从设备;从设备接到主设备的请求后,通过接口向主设备发出”回答”信号。优点∶总线周期长度可变,能保证两个工作速度相差很大的部件或设备之间 可靠地进行信息交换,自动适应时间的配合。
缺点∶比同步控制方式稍复杂一些,速度比同步定时方式慢。
- 不互锁方式:主设备发出”请求”信号后,不必等到接到从设备的”回答”信号,而是经过一段时间便撤销”请求”信号。
- 半互锁方式:主设备发出”请求”信号后,必须在接到从设备的”回答”信号后,才撤销”请求”信号,有互锁的关系。
- 全互锁方式:主设备发出”请求”信号后,必须在从设备”回答”后才撤销”请求”信号;从设备发出”回答”信号后,必须在获知主设备”请求”信号已撤销后,再撤销其”回答”信号。
I/O接口
I/O接口是主机和外设之间的交接界面,通过接口可以实现主机和外设之间的信息交换
基本结构
- 主机侧(内部接口):与系统总线相连,实质上是与主存、CPU相连
- 设备侧(外部接口):通过接口电缆与外设相连,外部接口数据传输可能是串行方式。因此I/O接口要有串并行转换功能
- 数据线:读写数据、状态字(命令字)、控制字、中断类型号
- 状态/控制寄存器:状态和设备寄存器在使用时间上是错开的,因此可以将二者合而为一
- 地址线:指明I/O端口
- 控制线:读/写I/O端口信号、中断请求信号
I/O接口的类型
- 按数据传送方式可分为
- 并行接口:一个字节或一个字所有位同时传送。
- 串行接口:一位一位地传送。
注:这里所说的数据传送方式指的是外设和接口一侧的传送方式,而在主机和接口一侧,数据总是并行传送的。接口要完成数据格式转换。
- 按主机访问I/O设备的控制方式可分为
- 程序查询接口
- 中断接口
- DMA接口
- 按功能选择的灵活性可分为
- 可编程接口
- 不可编程接口
I/O端口及其编址方式
I/O端口是指接口电路中可以被CPU直接访问的寄存器
统一编址
把I/O端口当做存储器的单元进行地址分配,用统一的访存指令就可以访问I/O端口,又称存储器映射方式。靠不同的地址码区分内存和I/O设备,I/O地址要求相对固定在地址的某部分如系统总线中地址线共10根,则可以访问的存储单元
个数为2!”= 1024个,假设要给10个I/O端口编址:- 0~9表示I/O地址,10~1023为主存单元地址
- 0~1013表示主存单元地址,1014~1023为IO地址
- 10~19表示I/O地址,0~9、20~1023为主存单元地址
- 优点:不需要专门的输入/输出指令,所有访存指令都可直接访问端口,程序设计灵活性高端口有较大的编址空间读写控制逻辑电路简单
- 缺点:端口占用了主存地址空间,使主存地址空间变小外设寻址时间长(地址位数多,地址译码速度慢)
独立编址
I/O端口地址与存储器地址无关,独立编址CPU需要设置专门的输入/输出指令访问端口,又称I/O映射方式。
靠不同的指令区分内存和I/O设备- 优点:使用专用I/O指令,程序编制清晰I/O端口地址位数少,地址译码速度快I/O端口的地址不占用主存地址空间
- 缺点:I/O指令类型少,一般只能对端口进行传送操作,程序设计灵活性差需要CPU提供存储器读/写、I/O设备读/写两组控制信号,增加了控制逻辑电路的复杂性
I/O方式
输入、输出系统实现主机与I/O设备之间的数据传送,可以采用不同的控制方式,常用的I/O方式有
- 程序查询
- 程序中断
- DMA方式
程序查询方式
信息交换完全由CPU执行程序实现
- 独占查询:CPU 100%时间都在查询I/O状态,完全串行
定时查询:确保数据不丢失的情况下,每隔一段时间CPU查询一次I/O状态
主要特点:CPU有“踏步”等待现象,CPU与I/O串行工作
优点:接口设计简单、设备量少。
- 缺点:CPU在信息传送过程中要花费很多时间用于查询和等待,而且在一段时间内只能和一台外设交换信息,效率大大降低
程序查询方式-例题
程序中断方式
程序中断是指在计算机执行现行程序的过程中,出现某些急需处理的异常情况或特殊请求,CPU暂时中止现行程序,而转去对这些异常情况或特殊请求进行处理,在处理完毕后CPU又自动返回到现行程序的断点处,继续执行原程序
程序中断工作流程
工作流程:
- 中断请求
中断源向CPU发送中断请求信号。 - 中断响应判优
响应中断的条件。
中断判优:多个中断源同时提出请求时通过中断判优逻辑响应一个中断源。
优先级设置:- 硬件故障中断属于最高级,其次是软件中断;
- 非屏蔽中断优于可屏蔽中断;
- DMA请求优于I/O设备传送的中断请求
- 高速设备优于低速设备;
- 输入设备优于输出设备;
- 实时设备优于普通设备
CPU响应中断条件
- 中断源有中断请求
- CPU允许中断及开中断(异常和不可屏蔽中断不受此限制)
- 一条指令执行完(异常不受此限制)
中断响应过程
CPU响应中断后,经过某些操作,转去执行中断服务程序。这些操作是由硬件之间实现的,称为中断隐指令。(中断隐指令不是指令系统的一条真正的指令,只是一种虚拟的说法,本质上是硬件的一系列自动操作)。
中断隐指令的操作:- 关中断。[关中断的目的:实现原子操作(操作必须一次性完成不可以中断)]
在中断服务程序中,为了保护中断现场(即CPU主要寄存器中的内容)期间不被新的中断所打断,必须关中断,从而保证被中断的程序在中断服务程序执行完毕之后能接着正确地执行下去。 - 保存断点。
为了保证在中断服务程序执行完毕后能正确地返回到原来的程序,必须将原来程序的断点(即程序计数器(PC)的内容)保存起来。可以存入堆栈,也可以存入指定单元。 - 引出中断服务程序。
引出中断服务程序的实质就是取出中断服务程序的入口地址并传送给程序计数器(PC),有两种方法实现中断源:硬件向量法和软件查询法
硬件向量法:- 每个中断都有一个唯一的类型号,每个中断类型号都对应一个中断服务程序,每个中断服务程序都有一个入口地址,即中断向量。
- 由硬件产生向量地址,再由向量地址找到入口地址。
- 向量地址由系统固定不可改变,但其对应的中断服务程序入口地址可以改变
- 关中断。[关中断的目的:实现原子操作(操作必须一次性完成不可以中断)]
中断处理过程
多重中断
- 单重中断:执行中断服务程序时不响应新的中断请求。
- 多重中断:又称中断嵌套,执行中断服务程序时可响应新的中断请求
中断屏蔽技术
中断屏蔽技术主要用于多重中断,CPU要具备多重中断的功能,须满足下列条件。
- 在中断服务程序中提前设置开中断指令。
- 优先级别高的中断源有权中断优先级别低的中断源。
每个中断源都有一个屏蔽触发器,1表示屏蔽该中断源的请求,0表示可以正常申请,所有屏蔽触发器组合在一起,便构成一个屏蔽字寄存器,屏蔽字寄存器的内容称为屏蔽字。
例题:
程序中断方式-例题
DMA方式
DMA方式是一种完全由硬件进行成组信息传送的控制方式,具有程序中断方式的优点,即在数据准备阶段,CPU和外设并行工作。
主存和DMA接口之间有一条直接数据通路。由于DMA方式传送数据不需要经过CPU,因此不必中断现行程序,I/O与主机并行工作,程序和传送并行工作。
特点
- 它使主存与CPU的固定联系脱钩,主存既可被CPU访问,又可被外设访问。
- 在数据块传送时,主存地址的确定、传送数据的计数等都由硬件电路直接实现。
- 主存中要开辟专用缓冲区,及时供给和接收外设的数据。
- DMA传送速度快,CPU和外设并行工作,提高了系统效率。
- DMA在传送开始前要通过程序进行预处理,结束后要通过中断方式进行后处理。
DMA的传送方式
使用的是三总线结构
周期窃取的是存储周期
DMA的传送过程
DMA 的数据传送过程分为预处理、数据传送和后处理了个阶段:
- 预处理。
由CPU完成一些必要的准备工作。- 首先,CPU执行几条I/O指令,用以测试I/O设备状态,初始化DMA控制器中的有关寄存器、设置传送方向、启动该设备等。
- 然后,CPU继续执行原来的程序,直到I/O设备准备好发送的数据(输入情况)或接收的数据(输出情况)时,I/O设备向DMA控制器发送DMA请求,再由DMA控制器向CPU发送总线请求(有时将这两个过程统称为DMA请求)用以传输数据。
- 数据传送。
DMA 的数据传输可以以单字节(或字)为基本单位,也可以以数据块为基本单位。对于以数据块为单位的传送(如硬盘),DMA占用总线后的数据输入和输出操作都是通过循环来实现的。需要指出的是,这一循环也是由DMA控制器(而非通过CPU执行程序)实现的,即数据传送阶段完全由DMA(硬件)控制。 - 后处理。
DMA控制器向CPU发送中断请求,CPU执行中断服务程序做DMA结束处理,包括校验送入主存的数据是否正确、测试传送过程中是否出错(错误则转诊断程序)及决定是否继续使用DMA传送其他数据等。
DMA和中断方式的区别
中断 | DMA | |
---|---|---|
数据传送 | 程序控制 程序的切换->保存和恢复现场 | 硬件控制 CPU只需进行预处理和后处理 |
中断请求 | 传送数据 | 后处理 |
响应 | 指令执行周期结束后响应中断 | 每个机器周期结束均可,总线空闲时即可响应DMA请求 |
场景 | CPU控制,低速设备 | DMA控制器控制,高速设备 |
优先级 | 优先级低于DMA | 优先级高于中断 |
异常处理 | 能处理异常事件 | 仅传送数据 |
典型例题
待补充
参考文献:
《王道考研-计算机组成原理复习指导》
《Computer Systems A Programer’s Perspective Third Edition》