计算机组成原理笔记2总线

总线的分类
1.片内总线 芯片内部的总线
2.系统总线 计算机各部件之间的信息传输线
系统总线分为:
数据总线 双向 与机器字长、存储字长有关 (比如一台64位的计算机,8位数据总线,那么传一次信息数据总线要传8次)
地址总线 单向 因为要进行寻址,所以与存储地址,IO地址相关
控制总线 有出 有入 如存储器的读、写操作,总线允许,中断确认等,都是控制总线
3.通信总线 用于计算机系统之间,或计算机系统与其它设备(如仪表等)进行通信。
按传输方式分为串行通信总线和并行通信总线
总线控制
一、总线判优控制
分为主设备和从设备。
主设备(模块) 对总线有控制权
从设备(模块) 响应从主设备发来的总线命令
在这里插入图片描述
1.链式查询
在这里插入图片描述
链式查询除了总线控制部件,数据线,地址线外,主要用到三条线,总线请求BR,总线同意BG,总线忙BS。
之所以叫链式查询是因为BG线是一个一个IO接口进行查询的。
链式查询的过程:首先挂接在总线上的IO接口通过BR这条线发出总线占用请求。上图中是IO接口1和n发出了占用请求。
当总线通过BR线收到请求时,如果此时可以被占用,则通过BG线,从IO接口0开始逐个查询。图中先查IO0,发现IO0没有申请。此时信号向下传送,查询到IO1时,IO1获得了总线使用权。
此时IO1通过BS线设置总线忙。
链式查询特点:
其中各个设备的优先级,与BG的查询顺序,也就是各IO的连接方式有关。
链式查询对故障特别敏感。尤其是当BG线在向下传送的过程中,如果某个IO口出现故障,信号无法向下个IO传输,传输就会出现故障。这种查询的优点是结构简单,可靠性好设计(将BG等线接两条即可)。
2.计数器定时查询方式
用到数据线,地址线,设备地址线,BS,BR.
设备地址线上的地址是通过计数器给出的。
在这里插入图片描述
这种传输方法也是先由各IO接口发出占用请求,总线收到请求时,如果可以被占用,则启动计数器,图中计数器初值为0,那就从地址0开始,即图中的IO0,查询,若不是IO0,则计数器初值+1,查到IO1。是IO1,那么发出总线忙信号。
这种方法的特点是更灵活,通过设置计数器初值可以灵活改变优先级,甚至可以将初值设为上一次调用计数器剩下的值。提高查询效率。
3.独立请求方式
在这里插入图片描述
这种方式由各个接口的BR独立发出请求,那么相应的总线控制部件中有一个排队器,可以按照用户自设的顺序,对这些请求进行排队,排到的IO设备通过对应的BG线占用总线。该方式更方便快捷就是需要的线过多。
二、总线通信控制
在这里插入图片描述
首先是申请分配阶段。主模块(主设备)发出申请,由总线进行如上所述的判优控制,再执行。
执行时首先是寻址阶段,主设备要寻找从设备,所以发出地址找到从设备,再通过命令控制从设备。
接下来主从设备进行数据交换。交换结束后主从设备撤销相关申请。
总线通信有四种方式:
同步通信。 由统一的时钟来控制数据传输。
异步通信。 采用应答方式,没有公共时钟标准。
半同步通信。 同步异步结合。为解决不同速度两模块间的通讯。
分离通信。 可以充分利用总线。

同步通信:特点:要有定宽,定距的时钟信号;要在给定的时间点完成相应的操作。
在这里插入图片描述
以同步数据输入为例,过程分为四个时钟周期T1-T4。
在T1的上升沿必须给出地址信号,该信号由主设备给出。图中是由CPU给出。
在T2的上升沿必须给出读命令信号,告诉从设备CPU要从 从设备中读入数据。
在T3的上升沿从设备必须通过数据总线给出数据信号。
在T4上升沿数据信号和控制信号(图中为读命令)撤销。
T4结束时,地址信号也撤销。
同步数据输出如下。
在这里插入图片描述
T1上升沿给出地址。T1的下降沿给出数据。
T2上升沿给出写命令向从设备进行数据写入。
T3时钟内都进行写入操作。
T4上升沿撤销数据,写命令.T4下降沿撤销地址信号。

同步方式中,主从模块强制同步。对于速度不同的模块则必须按速度最慢的模块进行设计传输。
异步通信:特点:不需要定宽定距的时钟但是要增加两条线。一条是请求线主设备发出请求信号,另一条是应答线。
在这里插入图片描述
第一种方式,不互锁。先由主设备发出通信请求,从设备应答,之后主设备撤销请求信号,从设备也撤销应答信号。这一过程中主设备不管从设备是否接收到请求信号,一段时间后会取消请求信号,从设备反之同理。所以通信可靠性需要改进。
第二种方式,半互锁。主设备发出请求,从设备接收到请求后,发出应答信号,一段时间后,不管主设备是否收到,从设备的应答信号自动取消。主设备收到应答后撤销请求,没收到则保持请求信号。问题是当主设备没收到回答,可能会造成请求信号一直高电平。
第三种,全互锁。主设备发出请求,从设备接收到请求后,发出应答信号。主设备收到应答后撤销请求。主设备撤销后,从设备才会撤销应答信号。如果传输中数据出错,可以请求从设备重新发送和接收信号。
异步通信就是通过请求和回答两次握手进行通信的。
半同步通信:特点:同步异步结合既有同步通信利用定宽定距时钟信号通信的特点,同时增加一条“WAIT”信号,使两个速度不同的设备可以通信。
如下图:
在这里插入图片描述
T1开始时CPU给出地址信号,T2开始时给出读命令信号,第三个时钟周期开始前,从设备如果不能准备好要传送的数据,就通过WAIT信号给出一个低电平告诉CPU进行等待。CPU检测到后会在T3到来前,插入TW周期。
在下一个时钟周期开始前,CPU依然先检测WAIT信号是否高电平。若高电平则继续等待。
当WAIT变高时,T3周期开始,接收数据,T4开始时撤销读命令和数据信号,T4结束时撤销地址信号。

总结:三种通信的共同特点:
在一个总线周期内(以输入信号为例):
主模块发地址命令(期间要占用总线)->从模块准备数据(期间总线空闲)->从模块向主模块发送数据(期间要占用总线)
实际在CPU和硬盘的通信中,整个过程大部分时间都被硬盘用来准备,查找数据。所以为了利用从模块准备数据期间的总线空闲,采用分离式通信.
分离式通信:特点:各模块都能成为主模块,即都有权申请占用总线;实际上采用同步通信方式,不等对方回答;各模块准备数据时不占用总线,相应的,总线被占用时无空闲时间。
分离式通信过程分为两个周期:
子周期1:主模块申请占用总线(期间发出地址和命令),使用完毕即放弃总线使用权。
子周期1结束后从模块准备接收/发送数据。从设备准备好后进行子周期2。
子周期2:从模块申请占用总线,此时从模块相当于变成了主模块,因为它发出了总线占用请求(期间进行数据传输),使用完毕即放弃总线使用权。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值