计算机组成原理—计算机系统概述前面这篇讲到了,计算机中由存储器、运算器、控制器、输入输出设备五部分组成。计算机中各个组件需要进行信息的传递,如果在各个需要传递信息的组件之间之间拉一条线,这样会导致的问题是:由于现代的计算机中组件的数量可能达到数百个,都互相拉线的话,会占据大量的空间。此外,计算机不容易扩展,如果要增加一个输入设备或者输出设备,需要把该设备和计算机中的其他设备进行连接,很难扩展。
总线就是为了解决这个问题诞生的,总线是计算机中各个组件公共的数据传输媒介。
总线的数据传输
总线的数据传输分为串行传输和并行传输。
串行传输可以用于远距离传输,并行传输一般用于短距离的数据传输。
总线的结构
单总线结构
这种结构比较简单,缺点也很明显,就是当存储器与IO设备进行数据传输时,CPU将会停止,同一时间只能有一对设备进行信息传输
面向CPU的双总线结构
以CPU为核心,使用两条总线。该方法也存在着缺点,就是在于存储器和IO设备之间没有总线直接相连,当存储器与IO设备需要进行数据传输时,CPU正在执行的任务也会被打断。
面向存储器的双总线结构
以存储器为核心,使用两条总线
三总线结构
增加DMA总线(直接存储器访问),高速IO设备通过DMA与主存直接访问。
又一种三总线结构
由于CPU的快速发展,内存速度远小于CPU的速度,因此增加了Cache,CPU通过Cache与主存打交道,新增了局部总线,用于CPU和Cache之间的信息传输。
四总线结构
增加了高速总线,将高速设备和低速设备分开,提高数据的传输速率。
总线的分类
1、片内总线:芯片内部的总线
2、系统总线:计算机中各部件之间的信息传输线
3、通信总线:用于计算机系统之间或者计算机系统和其他系统之间的通信。
第二种总线还能细分为:
数据总线:双向的,与机器字长、存储字长有关
地址总线:单向的,与存储地址、IO地址有关,一般宽度与MAR相等
控制总线:有出有入,发出各种控制信号
总线控制
主设备(主模块):对总线有控制权
从设备(从模块):相应从主设备发来的总线命令
一条总线上,同一时间只能有两台设备进行数据的传输,如何做到确保只有两台设备进行数据传输呢,这里就是总线判优控制。
总线判优控制分为两大类,分别是集中式和分布式。集中式又分为:链式查询、计数器定时查询、独立请求方式
链式查询
上面这个图就是链式查询的流程,所有的IO接口都接到BR总线上,每当有一个IO接口要提出使用总线时,会通过BR向总线控制部件发送请求(上图是接口1和接口n发出了请求),控制部件接收到请求后,由于不知道是谁发出的请求(这里仅知道有接口发出了请求,但不知道是哪一个设备发出的),这里就需要用到BG,BG以链式把IO接口都串在一起,依次查询是哪个接口发出的请求,查询时先经过了接口1,因此接口1获得权限,接着接口1通过BS线设置总线忙。这样接口1就获得了总线的使用权限。
这种方式的优点时设计比较简单,缺点是速度比较慢。
计数器定时查询方式
计数器定时查询流程如上,与链式查询相比,少了一条BG,多了一条设备地址线,总线控制部件中多了一个计数器,假设初始值为0,当控制部件接收到请求后,通过设备地址线,依次查询初始值对应的接口(由于初始值为0,因此这里先查询接口0),如果该设备没有发出请求,则计数器加1,继续往后面请求。这种设计的好处就是能够通过设置计数器的初始值来确定接口的优先级。
独立请求方式
上面两种方式都是得通过依次查询各个接口才能够知道是哪个接口发出了请求,速度较慢,下面这种请求可以直接确定是哪个接口发出了请求
每个接口多了两条BR线和BG线和总线控制部件相连,总线控制部件中有个用来确定优先级的排队器。当有接口需要请求控制权限时,通过BR线发出请求,排队器通过优先级的比对,然后通过BG线授予接口权限。