系统总线
计算机的主机
- 数据总线:是双向的,也就是CPU既可以从主存当中获取数据,也可以向主存当中保存数据
- 地址总线:是单向的,只有CPU将地址给主存(MAR)
- 控制总线:虽然看起来控制总线是双向的,实际上控制总线有两种类型,每一种类型是单向的。即CPU传给存储器的控制信号,存储器传给CPU的状态信号
总线的基本概念
- 总线的作用:总线把需要通信的各个部件连接起来。
- 什么是总线:总线是连接各个部件的信息传输线,是各个部件共享的传输介质。
- 总线上信息的传送:串行和并行
总线结构的计算机举例
面向CPU的双总线结构图
- *处理器通过M总线与主存连接,通过I/O总线与各个接口进行连接
单总线结构图
- *处理、主存和各个接口通过单一的总线连接在一起
以存储器为中心的双总线结构图
- 存储器通过存储总线与CPU连接,同时系统总线将CPU、主存和各个接口进行连接
总线的分类
- 片内总线:芯片内部的总线
- 系统总线:计算机各个部件之间的信息传输线
- 通信总线:用于计算机系统之间或计算机系统与其他系统之间的通信
注意:
- 系统总线分类:数据总线,地址总线,控制总线
- 数据总线:双向与机器字长、存储字长有关
- 地址总线:单向与存储器地址、I/O地址有关
- 控制总线:出——存储器读、存储器写、总线允许、中断确认,入——中断请求、总线请求
- 通信总线的传输方式:串行通信总线、并行通信总线
总线特性以及性能指标
总线物理实现
- CPU插板、主存插板、I/O插板都插在总线上
总线特性
- 机械特性:尺寸、形状、管脚数以及排列顺序
- 电气特性:传输方向和有效的电平范围
- 功能特性:传输线的功能,分为地址线、数据线、控制线
- 时间特性:信号的时序关系
总线的性能指标
- 总线的宽度:数据线的根数
- 标准传输率:每秒传输的最大字节数,MBps
- 时钟同步/异步:同步与不同步
- 总线复用:地址线与数据线的复用
- 信号线数:地址线、数据线和控制线的总和
- 总线控制方式:并发、自动、仲裁、逻辑、计数
- 其他指标:负载能力
总线的标准
控制总线
相关的基本概念
- 主设备(模块):对总线有控制权
- 从设备(模块):响应从主设备发来的总线命令
总线的判优控制
链式查询
通过总线请求和总线忙将各个IO设备连接在一起,当IO接口有总线请求的时候,会通过总线请求线向总线控制设备发送请求。总线控制部件会通过总线同意线发出总线响应信号然后依次传递给后面的每一个IO接口,直到发出请求位为止。此时发出请求的IO接口会通过总线忙信号向总线控制部件发送总线忙信号,在完成数据传输之后,会把总线同意信号继续向后传递。
计数器定时查询
总线控制部件通过数据线、地址线和设备地址线和IO接口相连
总线控制部件当中含有计数器,计数器记录的是设备地址。当计数器为n时向设备地址发送n地址。对应接口如果有请求时,会通过总线忙发出忙信号,然后完成数据通讯
独立请求方式
每个IO接口都通过数据总线、地址总线和总线控制部件相连,其中每个接口通过总线请求线、总线同意线单独和总线控制部件连接。
总线控制部件内部含有排队器,可以根据排队情况向对应的部件发出响应信号
总线控制
- 目的:解决通信双方协调配合的问题
- 总线传输周期:申请分配阶段、寻址阶段、传数阶段、结束阶段
注意:
- 申请分配阶段:主模块申请、总线仲裁决定
- 寻址阶段:主模块向从模块给出地址和指令
- 传数阶段:主模块和从模块交换数据信息
- 结束阶段:主模块撤销有关信息
总线通信的四种方式
- 同步通信:由统一时标控制数据传送,在给定的时间点上给除固定的操作,对于速度不同的模块,我们必须选择速度最慢的模块作为统一的时标。
- 异步通信:采用应答方式,没有公共的时钟标准。
- 半同步通信:同步、异步相结合。
- 分离式通信:充分挖掘系统总线每个瞬间的潜力。
同步式数据输入
下面我们以从设备向CPU发送数据为例,来讲解同步式数据输入:
- 首先同步通信需要一个定宽定距的时标来控制整个传输过程,也就是第一行的时钟,如图包含四个时钟周期。除此之外,CPU要完成数据输入还需要地址信号和读信号,从设备在给定的时间点上要给出数据的输出(对于CPU来说就是数据的输入)。
- 在T1时钟周期的上升沿,CPU沿给出地址信号,地址信号是主设备给出的,在这个例子当中就是CPU给出的。
- 在T2时钟周期的上升沿,CPU给出读命令,告诉从设备,主模块(这里就是CPU)要从从模块读入数据。
- 在T3时钟周期的上升沿,从设备给出数据信号。
- 在T3时钟周期的最后,数据信号和控制信号撤销。
- 在T4时钟周期的最后,地址信号也可以撤销了。
同步式数据输出
下面我们以CPU输出数据为例,讲解同步式数据输出:
- 与同步式数据输入类似,在这里也需要一个定宽定距的时标来控制整个输出过程。在这里主模块还是CPU,CPU必须给出地址信号,以此来知道向哪一个从模块进行数据传输,同时给出数据和写命令。
- 在T1时钟周期的上升沿,CPU给出地址信号。
- 在T1时钟周期的下降沿,CPU给出输出数据。
- 在T2时钟周期的上升沿,CPU给出写命令向从设备进行数据写入。
- 在T3时钟周期的上升沿还是在进行着写入操作。
- 在T4时钟周期的上升沿,CPU撤销数据和写命令。
- 在T4时钟周期结束的时候,撤销地址信号。