总线

冯诺依曼计算机特点

1、 由运算器,控制器(指挥控制程序的运行),存储器,输入设备,输出设备五部分组成。
2、 指令和数据以同等地位存于存储器,可按照地址进行访问。
3、 指令和数据使用二进制进行表示。
4、 指令由操作码和地址码组成,操作码:要进行什么操作,地址码:操作数所在的内存或寄存器中地址
5、 存储程序:程序存放于存储器中。
6、 以运算器为中心。
具体图如下:
在这里插入图片描述以运算器为中心,所有的数据输入、输出、运算等都经过运算器,运算器将成为计算机的瓶颈。为此,将一运算器为中心的体系结构进行改进成为已存储器为中心,如下所示:
在这里插入图片描述

总线连接

基于冯诺依曼的计算机体系结构将计算机分为了运算器,控制器,存储器,输入设备,输出设备五部分,由于运算器和控制器在在逻辑关系和电路结构上联系十分紧密,通常将他们统称为中央处理器(CPU)。将输入输出设备统称为IO设备,但总是这样,计算机的基本组成结构也分为三大部分,如下图所示:
在这里插入图片描述
在这里插入图片描述

那这三部分设备应该怎样去连接呢?
采用分散的连接方式?需要通信的两个部件,两两之间进行连接,这样可以想象,如果机器有几百个部件,部件之间两两连接,并且两两之间线的条数也比较多。如果这样连接,连接线的数量数非常庞大的,如果把这些线做在印刷电路板上,成本非常高,难度也非常大。并且试想,如果一个CPU同时要和几百个设备进行连接,那连接的接口需要占用大量的空间,这样导致系统很难扩展。基于这种原因考虑,所以采用总线进行连接。

总线

是各个部件的信息传输线,是各个部件共享的传输介质。英文为BUS(公共汽车)

总线的瓶颈

在任何一个时刻,只有一对设备能使用总线。其他设备需要等待使用总线的设备释放总线使用权。

总线上信息的传输

在这里插入图片描述
串行:只有一根线,数据一位一位的进行传输,接收方一位一位的接收
并行:多条线路,同时传送多位。
如果传输距离比较长,数据线平行往外传输数据,线之间会产生干扰,数据会发生错误。所以并行传输的距离一般比较短,将其控制在计算机机箱内。串行传输的距离比较远,可以在机器与机器之间进行传输。

总线结构

1、单总线结构

在这里插入图片描述

对于单总线结构,如果主存中有数据写出或读入,CPU将会停止执行程序,这样要种影响CPU的效率。因为程序的执行指令和数据都来自主存。为了避免IO会影响到CPU和主存之间的交互,所以出现了面向CPU的双总线结构。

2、面向CPU的双总线结构

在CPU和主存之间建立独立的总线。
在这里插入图片描述
但是如果使用以上这种,由于外部IO设备和主存之间没有直接信息通路,如果IO设备要和主存进行信息传输,只能以CPU为媒介进行信息传输,这样IO和主存之间的信息传输同样会打断CPU执行程序。继续对双总线结构进行改进。

3、双总线结构

在这里插入图片描述通道:具有特殊功能的处理器,专门用于输入输出操作,一般来说通道具有自己的控制器,指令系统,能执行简单的指令,执行通道程序。通道的程序通常由操作系统进行编写。这种结构下,再进行IO接口和主存进行数据通信的时候,CPU依然不具有主存总线的控制权,不能访问主存(但是仍然可以执行一些不需要访存的指令),但能在一定程度上为CPU减轻压力。

4、三总线结构

在这里插入图片描述
对于这种三总线结构,主存总线,用于CPU和内存之间的数据传输,DMA总线用于主存和IO接口之间的数据传输,IO总线在CPU执行IO指令时用到。这里,这三种总线,在任何一个时刻只能使用一种总线。主存总线和DMA总线不能同时对主存进行存取。
当然还有各种各样的总线结构,这里就不一一进行列举了。

总线判优控制

由于一条总线上连接了多种设备,这些设备共享总线,但是在同一时间点只能有一个设备占用总线,所以,如果在同一时间点有多个设备向总线控制部件发出占用总线的请求,那应该如何判断哪个设备占用总线呢。

1、链式查询方式

在这里插入图片描述
当有多个(假设为1和n)IO设备同时通过BR提出总线占用请求的时候,控制部件通过BG逐个向下查询,看每个IO设备是否发出了接口占用请求,此时发现1发出了请求,则1通过BS发出总线忙信号告知总线控制部件总线被占用。
这种方式,优先级和BG查询顺序有关,即和每个IO设备连接在BG的上的连接顺序有关,越靠前的优先级越高。并且这种方式,会出现靠后的IO接口设备一直得不到响应的情况。
缺点:对电路故障敏感。如果连接靠后的设备肯能一直得不到响应。
可靠性设计:可以多增加一根BS线和BG线,防止电路故障。

2、计数器定时查询方式

在这里插入图片描述
总线控制部件中有一个计数器,初始值可以为任意。IO设备通过设备地址线发出计数器的值,如果值为0,则查找IO接口0,判断是否发出了占用请求,如果没有,计数器+1,继续通过设备地址线发出请求,此时发现接口1发出了请求,则设备发通过BS发出总线忙占用总线。如果这个计数器的值,每次设置为上次请求占用接口编号+1,则就可以循环所有的设备,避免了链式查询中可能有些设备永远得不到响应的问题。并且这里的计数器的值可以通过程序动态改变,控制比较灵活。使用的控制线的条数为 logN

3、独立请求方式

在这里插入图片描述
这种方式下,在控制部件内部有排队器,决定了各个接口的优先级,如果有多个IO接口同时发出总线占用请求,控制部件通过排队器的优先级确定那个接口占用总线。这种方式控制更加灵活,但更加复杂,并且使用的控制线的条数为2n。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值