csapp第三章-系统总线

Posted by serrini on March 29, 2021

第三章 系统总线

分散连接

以运算器为中心,严重影响CPU的工作效率–>以存储器为中心,IO和主存之间交换信息可以不通过运算器,采用中断、DMA技术提高CPU效率

总线连接

某一时刻,只允许有一个部件向总线发送信息,而多个部件可以同时从总线上接收相同的信息

面向CPU的双总线结构

连接CPU和主存的叫存储总线(M总线) 建立CPU和各IO之间交换信息的通道叫输入输出总线(I/O总线) 这种结构IO设备与主存交换信息时还要占用CPU,影响效率

单总线结构

只有一组总线,出现争夺现象

以存储器为中心的双总线结构

在单总线基础上,单独开辟一条CPU与主存之间的通路,叫存储总线,速度高,只供主存和CPU之间传输信息

现在计算机大多采用该结构

1、片内总线

2、系统总线

按系统传输信息的不同,分为三类

数据总线

双向传输,数据总线的条数成为数据总线宽度,用以衡量系统性能

e.g如果数据总线宽度8位,指令字长16位,取指时,必须两次访问主存

地址总线

指出数据总线上源或目的数据的地址

单向传输

地址线的位数与存储单元的个数有关

e.g地址总线20根,对应的存储单元个数是2^20

控制总线

控制各部件在不同时刻占有总线使用权

对任一控制而言,传输是单向的,但对于控制总线总体来说,可认为是双向的

3、通信总线

串行通信总线

并行通信总线

机械特性、电气特性、功能特性、时间特性 总线性能指标

总线结构

单总线结构

多总线结构

双总线结构的特点是将速度较低的IO设备从单总线上分离出来,形成主存总线与IO总线分开的结构
其中通道是一个具有特殊功能的处理器,CPU将一部分功能下放给通道,用于管理IO设备
三总线结构
主存总线用于CPU与主存之间的传输
IO总线供CPU与各类IO之间传递信息
DMA总线用于高速外设(磁盘、磁带等)与主存之间交换信息
注:任一时刻只能使用一种总线,主存总线和DMA总线不能同时对主存进行存取,IO总线只有在CPU执行IO指令时才用到
三总线的又一形式
CPU和Cache之间有一条局部总线,它将CPU与Cache或与更多的局部设备连接
Cache的控制机构不仅将Cache连到局部总线上,而且还直接连到系统总线上,这样Cache就可通过系统总线与主存传输信息

总线控制

总线判优控制

集中控制
分布控制

常见的集中控制有三种优先权仲裁方式

链式查询
	BS总线忙、BR总线请求、BG总线同意
	BG是串行传递的,如果BG到达的接口有BR,BG就不往下传了,意味着该接口获得了总线使用权,并建立BS信号表示占用
	特点:
		查询链中,离总线控制部件最近的设备具有最高的优先级
		只需要两根线,容易扩充设备、但对故障敏感
计数器定时查询
	与链式查询相比,多了一组设备地址线,少了一根总线同意线BG
	控制部件接收到BR后,在总线未被占用的情况下(BS=0),计数器开始计数,向各设备发出一组地址信号,当某个有总线请求的设备地址与计数值一致时,获得总线使用权,终止计数查询
	特点:
		计数可以从0开始,此时设备的优先次序是固定的
		计数也可以从终点开始,循环方法,所有设备优先级相等
		计数初始值可以修改设置,故优先级次序可以改变
		对电路故障不敏感,增加了主控制线,控制复杂
		大致用log2n根线
独立请求方式
	每个设备都有一对BR和BG,总线控制部件中有一排队电路,可根据优先次序确定响应哪一个设备
	特点:
		响应速度快,优先次序控制灵活
		控制线数量多,总线控制更复杂
		需要2n根线

总线通信控制

总线在完成一次传输周期时,可分为四个阶段:
申请分配阶段
寻址阶段
传数阶段
结束阶段

通信双方如何协调如何配合

同步通信

	通信双方由统一时标控制数据传送,时标通常是CPU总线控制部件发出的,保持同步
	一般用于总线长度较短,各部件存取时间比较一致的场合

异步通信

	采用应答模式
	可以分为不互锁、半互锁、全互锁
	不互锁
		通信双方无依赖关系
	半互锁
		主模块发出请求等待从模块回答后,再撤销请求,而从模块发出应答后,不等待主模块,一段时间后撤销回答信号
	全互锁
		主模块发出请求,待从模块回答后撤销请求;从模块应答后,待主模块获知后,再撤销应答

半同步通信

	保留了同步通信的基本特点,发出时间严格按照系统时钟的某个前沿开始,接收方都采用系统时钟后沿时刻进行判断识别
	又像异步通信那样,允许不通速度的模块和谐工作,为此增设了WAIT响应信号线
	一般用于系统工作速度不高,但各设备之间速度差异大的简单系统
分离式通信
	讲一个总线周期分解成两个子周期,在第一个子周期中,主模块A获得总线使用权后将信息和该主模块的编号发到系统总线上,发完就放弃总线使用权
	B模块从总线上接收到了A发来的命令,读取等一系列操作后准备好A需要的数据,B就申请总线使用权,一旦获准,B就把A的编号、B的地址、A需要的数据发到总线上,供A接收
	上述两个周期只有单方向的信息流,每个模块都变成了主模块
	特点:
		1234