我正在参加「掘金·启航计划」
作为一个非科班程序员,觉得还是有必要把计算机基础打好的,虽然平时看起来用不上,但就像习武一样,招式要练,内功也要练,这样才能成长
计算机硬件系统由中央处理器、存储器、I/O以及连接它们的系统总线组成。
3.1 总线的基本概念
各个部件之间的连接方式分为两种:
1.分散连接:各部件之间通过单独的连线
2.总线连接:各部件连到一组公共的信息传输线
在某一时刻,只允许有一个部件向总线发送信息,而多个部件可以同时从总线上接收相同的信息
总线实际上是由许多传输线或者通路组成,每条线可传输一位二进制代码,一串二进制代码可在一段时间内逐一传输完成。若干条传输线可同时传输若干位二进制代码,如16条传输线组成的总线,可同时传输16位二进制代码。
3.2 总线的分类
片内总线:指芯片内部的总线,如CPU芯片内部,寄存器与寄存器之间、寄存器与算逻单元ALU之间都要总线连接
系统总线:指CPU、主存、I/O 各个部件之间信息传输线
数据总线:双向传输,其位数与机器字长、存储字长有关 存储字长和机器字长的区别
地址总线:主要用来指出数据总线上的源数据或目的数据在主存单元上的地址,单向传输,其位数与存储单元的个数有关,如20根地址线,则存储单元个数为2^20
控制总线:用来发出各种控制信号的传输线
通信总线:计算机系统直接或计算机系统与其他系统之间的通信
3.3 总线特性及性能指标
从物理角度看,总线就是一组电导线;
3.4 总线结构
分为单总线结构和多总线结构
在三总线结构中,任一时刻只能使用一种总线
3.5 总线控制
主要包括判优控制和通信控制
3.5.1 总线判优控制
按其对总线有无控制功能分为主设备和从设备;主设备对总线有控制权,从设备只能响应从主设备发来的总线命令。
当多个主设备同时要使用总线时,就需要总线控制器判优,仲裁逻辑按一定的优先等级顺序,确定哪个主设备能使用总线,只有获得总线使用权后才可以传送数据。
集中式查询方式理解:blog.csdn.net/InnerPeaceH…
链式查询需要两根线确定总线使用权;计数器需要log2n根线;独立请求方式需要2n根线
计数器定时查询方式:通过二进制方式寻址,n根线可以标识2^n个设备
3.5.2 总线通信控制
目的:解决通信双方协调配合问题
传输周期:
- 申请分配阶段:主模块申请总线仲裁决定
- 寻址阶段:主模块向从模块给出地址和命令
- 传输阶段:主模块和从模块交换数据
- 结束阶段:主模块撤销有关信息
总线通信方式
1.同步通信
定义:通信双方由统一时标控制数据传送。时标通常由CPU的总线控制部件发出,送到总线上的所有部件;也可由部件各自的时序控制器发出,但必须由总线控制部件发出的时钟信号对它们进行同步。
同步通信在系统总线设计时,T1、T2、T3、T4都有明确的唯一的规定:
优点:规定明确、统一,模块间的配合简单一致
缺点:主从模块间的时间配合属于强制性“同步”,必须在限定时间内完成规定的要求,因此只能按照最慢速度来设计公共时钟,影响效率
2.异步通信
允许各模块的速度不一致性,采用应答方式,即当主模块发出请求信号时,一直等待从模块反馈回来响应信号后才开始通信。
异步通信方式可分为 不互锁、半互锁和全互锁三种方式。
不互锁:主模块发出请求信号后,不等待从模块的回答信号,而是经过一段时间后,确认从模块收到请求信号,就撤销其请求信号;从设备接到请求信号后,在条件允许时发出回答信号,并且经过一段时间,确认主设备已收到回答信号后,自动撤销回答信号。
半互锁:主模块等待从模块的回答信号后才撤销请求信号
全互锁:主模块等待从模块的回答信号后才撤销请求信号,从模块等待主模块获知后撤销回答信号
3.半同步通信
结合同步通信和异步通信各自的优点,还是以时钟周期的形式,只是在T3时刻,如果从模块数据没有准备好,那就等待,直到从模块数据准备好,就在下一个时钟周期获取数据,完成T3任务,在T4结束传输
4.分离式通信
其基本思想是将一个传输周期分解成两个子周期,在第一个子周期中,主模块获得总线使用权后,将命令、地址以及其他有关信息,包括该主模块的编号,发送到系统总线上,由从模块接收下来,发送完后就立即放弃总线使用权;在第二个子周期中,从模块准备好数据后,申请总线使用权,然后将主模块所需数据送到总线上,供主模块接收。