计算机系统的五大部件之间的互连方式有两种,一种是各部件之间使用单独的连线,称为分散连接。另一种是将各部件连到一组公共信息传输线上,称为总线连接。(bus)。
早期计算机连接的弊端:
早期的计算机大多数用分散连接方式。它是以运算器为中心的结构,其内部连线十分复杂,尤其是当I/O与存储器交换信息时,都需经过运算器,致使运算器停止运算,严重影响了CPU的工作效率。后来,虽然改进为以存储器为中心的的分散连接结构,I/O与主存交换信息可以不经过运算器,又采用了中断、DMA等技术,使CPU工作效率得到很大的提高,但是仍无法解决I/O设备与主机之间连接的灵活性。随着计算机应用领域的不断扩大。I/O设备的种类和数量也越来越多,人们希望随时增添或减撤设备,用分散连接方式简直是一筹莫展,由此出现了总线连接方式。
总线是连接多 个部件的信息传输线,是各部件共享的传输介质。当多个部件与总线相连时,如果出现两个或两个以上部件同时间总线发送信息,势必导致信号冲突,传输无效,因此,在某一个时刻,只允许有一个部件向总线发送信息,而多个部件可以同时从总线上接收相同的信息。
总线实际上是由许多传输线或通路组成,每条线可一位一位地传输二进制代码,一串二进制代码可在一段时间内逐一传输完成。 若干条传输线可以同时传输若干位二进制代码。
咱们看看采用总线连接的计算机结构:
其中一组总线连接CPU和主存、称为存储总线(M总线);另一组用来建立CPU和各I/O设各之间交换信息的通道,称为输人/输出总线(I/O总线)。各种I/O设备通过I/O接口挂到I/O总线上,便于增删设备。这种结构在I/O设备与主存交换信息时仍然要占用CPU,因此还会影响CPU的工作效率
如果我们把CPU,主存, I/O都连接到一条总线上呢。看下图
最明显的特点就是当I/O设备与主存交换信息时,原则上不影响CPU的工作,CPU仍可继续处理不访同主存或I/O设备的操作,这就使CPU工作效率有所提高。但是,因只有一条总线,当某一时刻各件都要占用总线时,就会发生冲突。为此,必须设置总线判断优先的逻辑功能,让各部件按照优先级的高低来占用总线,这会影响整机的工作速度。
还有一种以储存器为中心的双总线结构:
它是在单总线基础上又开辟出的一条CPU与主存之间的总线,称为存储总线。这组总线速度高,只供主存与CPU之间传输信息。这样既提高了传输效率,又减轻了系统总线的负担,还保留了I/O设备与存储器交换信息时不经过CPU的特点。
总线按照不同的角度去分类,可以分为各种种类。比如按照传送方式可以分为并行传输还有串行传输
。 在并形传输总线中,又可以按照传输数据的宽度分为8位,16位,32位…
咱们接下来介绍是按照连接部件介绍的:
片内总线:
片内总线是指芯片内部的总线,如在CPU内部,寄存器与寄存器之间的,寄存器与逻辑单元ALU都由片内总线连接。
系统总线:
系统总线是指CPU,主存,I/O设备,各大部件之间的信息传输路线。由于这些部件通常都安放在主板或者各个插件板(插卡)上,故又称为板级总线或板间总线。
按照系统总线传输信息的不同,又可以分为三大类:
1.数据总线: 数据总线用来传输各功能部件之间的数据信息,它是双向传输总线,其位数与机器字长、存储字长有关,一般为8位、16位或32位。数据总线的位数小于等于机器字长,或者说储存字长。比如一个64位计算机其数据宽度设置8位,那么我需要传输八次。数据总线的位数称为数据总线宽度,它是衡量系统性能的一个重要参数。如果数据总线的宽度为8位,指令字长为16位,那么,CPU在取指阶段必须两次访问主存。
2.地址总线:地址总线主要用来指出数据总线上的源数据或目的数据在主存单元的地址或I/O设备的地址。
例如,欲从存储器读出一个数据,则CPU要将此数据所在存储单元的地址送到地址线上。又如,欲将某数据经I/O设备输出,则CPU除了需将数据送到数据总线外,还需将该输出设备的地址(通常都经I/O接口)送到地址总线上。可见,地址总线上的代码是用来指明CPU欲访问的存储单元或I/0端口的地址,由CPU输出,单向传输。地址线的位数与存储单元的个数有关,如地址线又20根,则对应的存储单元个数为2^20。
3.控制总线:由于数据总线,地址总线都是被挂在总线上的所有部件共享的,如何使各部件能在不同时刻占有总线使用权,需要依靠控制总线来完成,因此控制总线是用来发出各种控制信号的传输线。
通常对任一控制线而言,它的传输是单向的。例如,存储器读/写命令 或 I/O设备读/写命令都是由CPU 发出的。但对于控制总线总体来说,又可认为是双向的。例如,当某设备准备就绪时,便向CPU发中断请求;当某部件(如DMA接口)需获得总线使用权时,也向CPU发出总线请求。此外,控制总线还起到监视各部件状态的作用。例如,查询该设备是处于“忙”还是“闲”,是否出错等。因此对CPU而言,控制信号既有输出,又有输人。
常见的控制信号如下。
●时钟:用来同步各种操作。
●复位:初始化所有部件。
●总线请求:表示某部件需获得总线使用权。
●总线允许:表示需要获得总线使用权的部件已获得了控制权。
●中断请求:表示某部件提出中断请求。
●中断响应:表示中断请求已被接收。
●存储器写:将数据总线上的数据写至存储器的指定地址单元内。
●存储器读:将指定存储单元中的数据读到数据总线上。
●I/O读:从指定的I/O端口将数据读到数据总线上。
●I/O写:将数据总线上的数据输出到指定的I/O端口内。
●传输响应:表示数据已被接收,或已将数据送至数据总线上。
通信总线:
这类总线用于计算机系统之间或计算机系统与其他系统(如控制仪表、移动通信等)之间的通信。
由于这类联系涉及许多方面,如外部连接、距离远近、速度快慢、工作方式等,差别极大,因此通信总线的类别很多。但按传输方式可分为两种:串行通信和并行通信。
串行通信是指数据在单条1位宽的传输线上,一位一位地按顺序分时传送。如1字节的数据,在串行传送中,1字节的数据要通过一条传输线分8次由低位到高位按顺序逐位传送。
并行通信是指数据在多条并行1位宽的传输线上,同时由源传送到目的地。如1字节的数据,在并行传送中,要通过8条并行传输线同时由源传送到目的地。
并行通信适宜于近距离的数据传输,通常小于30 m;串行通信适宜于远距离传送,可以从几米达数千公里。
一:总线的物理实现
咱们所学的各大元器件将他们联系在一起的物理实现:把这些插板通过插头与水平方向的总线插槽连接。
二,总线特性
1.为了保证机械上的可靠连接,必须规定其机械特性:机械特性是指总线在机械连接的方式上的一些特性,如他们的几何尺寸,形状,引脚以及排列的顺序…
2.为了保证电气上的正确连接,必须规定电气特性:电气特性是指总线的每一根传输线上信号传输方向和有效的电平范围。
为了保证正确连接不同的部件:还要保证
3.功能特性:每根线传输线的功能:地址/数据/控制
4.时间特性:总线中任一根线在什么时间有效。各种信号存在一定时序关系,因此时间特性一般可用于信号是时序图来描述。
总线宽度:通常是指数据总线的根数,用bi(位)表示,如8位、16位、32位、4位(即8
根、16根、32、64根)。
②总线带宽:总线带宽可理解为总线的数据传输速率,就是单位时间内总线上传输数据的位
数,通常用每秒传输信息的字节数来衡量,单位可用MBps(兆字节每秒)表示。例如,总线工作
率为33MHz,总线宽度为32位(4B),总线带宽为33x(32/8)=132MBps
③时钟同步/异步:总线上的数据与时钟同步工作的总线称为同步总线,与时钟不同步工作
的总线称为异步总线。
④总线复用:==一条信号线上分时传送两种信号。==例如,通常地址总线与数据总线在物理上
是分开的两种总线,地址总线传输地址码,数据总线传输数据信息。为了提高总线的利用率,优
化设计,特将地址总线和数据总线共用一组物理线路,在这组物理线路上分时传输地址信号和数
据信号,即为总线的多路复用。
⑤信号线数:地址总线、数据总线和控制总线三种总线数的总和。
⑥总线控制方式:包括突发工作、自动配置,仲裁方式、逻辑方式、计数方式等。
⑦其他指标:如负载能力、电源电压(是采用5V还是3.3V)、总线宽度能否扩展。
总线的负载能力即驱动能力,是持当总线接上负载后,总线输入输出的逻辑电平是否能保持
在正常的额定范围内。例如,PC总线的输出信号为低电平时,要吸入电流,这时的负载能力即指
当它吸入电流时,仍能保持额定的逻辑低电平。总线输出为高电平时,要输出电流,这时的负载
能力是指当它向负载输出电流时,仍能保持额定的逻辑高电平。由于不同的电路对总线的负载
是不同的,即使同一电路板在不同的工作频率下,总线的负载也是不同的,因此,总线负载能力指标
不是太严格的。通常用可连接扩增电路板数来反映总线的负载能力。
表3,1列出了几种流行的微机总线性能,可供参考
所谓总线标准,可视为系统与各模块、模块与模块之间的一个互连的标准界面:这个界面对它两端的模块都是透明的,即界面的任一方只需根据总线标准的要求完成自身一方接口的功能要求,而无须了解对方接口与总线的连接要求。因此,按总线标准设计的接口可视为通用接口。这样为计算机接口的软硬件设计提供了方便。
1.ISA
2.EISA
3.VESA(VL-BUS)
4.PCI
5.AGP
6.RS-232C
7.USB
总线结构分为单总线结构和多总线结构
图3.2是单总线结构的示意图,它是将CPU、主存、I/O设备(通过I/O接口)都挂在一组总线上,允诈I/O设备之间、I/O设备与CPU之间或I/O设备与主存之间直接交换信息。这种结构简单,也便于扩充,但所有的传送都通过这组共享总线,因此极易形成计算机系统的瓶颈。它也不允许两个以上的部件在同一时刻向总线传输信息,这就必然会影响系统工作效率的提高。这类总线多数被小型计算机或微型计算机所采用。
随着计算机应用范围不断扩大,其外部设备的种类和数量越来越多,它们对数据传输数量和传输速度的要求也就越来越高。倘若仍然采用单总线结构,那么,当I/O设备量很大时,总线发出的控制信号从一端逐个顺序地传递到第n个设备,其传播的廷迟时问就会严重地影响系统的工作效率。在数据传输求量和传输速度要求不太高的情况下,为克服总线瓶颈问题;尽可能采用增加总线宽度和提高传输速率来解决;但当总线上的设备,如高速视频显示器、网络传输接口等,其数量很大和传输速度要求相当高的时候,单总线结构则不能满足系统工作的要求。因此,为了根本解决数据传输速率,解决CPU、主存与I/O设备之间传输速率的不匹配,实现CPU与其他设备相对同步,不得不采用多总线结构。
双总线结构
双总线结构的特点是将速度较低的I/O设备从单总线上分离出来,形成主存总线与I/O总线分开的结构。图中通道是一个具有特殊功能的处理器,CPU将一部分功能下放给通道,使其对I/O设备具有统一管理的功能,以完成外部设备与主存储器之间的数据传送,其系统的吞吐能力可以相当大。这种结构大多用于大、中型计算机系统。
三总线结构:
如果将速率不同的I/O设备进行分类,然后将他们连接在不同的通道上,那么计算机系统的工作效率将会提高,由此发展成多总线结构。
图3.8中主存总线用于CPU与主存之间的传输;I/O总线供CPU与各类I/O设备之间传递信息;DMA总线用于高速I/O设备(磁盘、磁带等)与主存之间直接交换信息。在三总线结构中,任一时刻只能使用一种总线。主存总线与DMA总线不能同时对主存进行存取,I/O总线只有在CPU执行I/O指令时才能用到。
由图可见,处理器与 Cache(详见4.3节) 之间有一条局部总线,它将CPU与 Cache或与更多
的局部设备连接。 Cache的控制机构不仅将 Cache连到局部总线上,而且还直接连到系统总线
上,这样 Cache就可通过系统总线与主存传输信息,且I/O设备与主存之间的传输也不必通过
CPU。还有一条扩展总线,它将局城网、小型计算机接口(SCSI)、调解器( Modem)以及串行接口等都连接起来,并且通过这些接口又可与各类I/O设备相连,因此它可支持相当多的I/O设备。与此同时,扩展总线又通过扩展总线接口与系统总线相连,由此便可实现这两种总线之间的信息传递,可见其系统的工作效率明显提高。
四总线结构:
我们还要提高运行效率:四总线结构
在这里增添了一条与计算机系统紧密相连的高速总线。在高速总线上挂接了一些高速I/O设备,如高速局域网,图形工作站,多媒体,SCSI等。他们通过Cache控制机构中的高速总线桥或高速缓冲器与系统总线和局部总线相连接,使得这些高速设备与CPU更密切。而一些较低速的设备如图文传真FAX,调制解调器,串行接口任然挂在扩展总线上,并且由扩展总线接口与高速总线连接。
传统微型计算机的总线结构:
由图3.11中可见,不论高速局域网、高性能图形还是低速的FAX、 Modem都挂接在ISA或EISA总线上,并通过ISA或EISA总线控制器与系统总线相连,这样势必出现总线数据传输的瓶颈。只有将高速、高性能的外设,如高速局域网卡、高性能图形卡等尽量靠近CPU本身的总线,并与CPU同步或准同步,才可能消除瓶颈问题。
这就要求改变总线结构提高数据传送速率为此,出现了图3.12的 VL-BUS局部总线结构。
由图3.12中可见,将原先挂在ISA总线上的高速局域网卡、多媒体卡、高性能图形卡等从
ISA总线卸下来,挂到局部总线VL-BUS上,再与系统总线相连。面将打印机、FAX、 Modem等低
速设备仍挂在ISA总线上。局部总线VL-BUS就相当于在CPU与高速I/O设备之间架上了高速
通道,使CPU与高性能外设得到充分发挥,满足了图形界面软件的要求。
由于VL-BUS是从CPU总线演化而来的,与CPU的关系太紧密,以致很难支持功能更强的CPU,因此出现了PCI总线
图3.13中可见,PCI总线是通过PCI桥路(包括PCI控制器和PCI加速器)与CPU总线相连,这种结构使CPU总线与PCI总线互相隔离,具有更高的灵活性,可以支持更多的高速运行设备;而且具有即插即用的特性。当然,挂在PCI总线上的设备都要求数据传输速率高的设备,如多媒体卡、高速局域网适配器、高性能图形卡等,与高速CPU总线是相匹配的。至于低速的FAX ,Modem,打印机仍然挂在ISA、FISA总线上。
由于总线上连接着多个部件,什么时候由哪个部件发送信息,如何给信息传送定时,如何防止信息丢失,如何避免多个部件同时发送,如何规定接收信息的部件等一系列问題都需要由总线控制器统一管理。它主要包括判优控制(或称仲裁逻辑)和通信控制。
总线上所连接的各类设备,按其对总线有无控制功能可分为 主设备(模块)和从设备(模块) 两种。主设备对总线有控制权,从设备只能响应从主设备发出的总线命令,对总线没有控制权。
总线上信息的传送是由主设备启动的,如某个主设备欲与另ー个设备(从设备)进行通信时,首先由主设备发出总线请求信号,若多个主设备同时要使用总线时,就由总线控制器的判优、仲裁逻辑按一定的优先等级顺序确定哪个主设备能使用总线。只有获得总线使用权的主设备才能开始传送数据。
总线判优控制可分集中式和分布式两种,前者将控制逻集中在一处(如在CPU中),后者将控制逻辑分散在与总线连接的各个部件或设备。
常见的集中控制优先权仲裁方式有以下三种。
(1)链式查询
链式查询方式如图(a)所示。图中控制总线中有3根线用于总线控制(BS总线忙、BR总线请求、BG总线同意),其中总线同意信号BG是串行地从一个I/O接口送到下一个I/O接口。如果BG到达的接口有总线请求,BG信号就不再往下传,意味着该接口获得了总线使用权,并建立总线忙BS信号,表示它占用了总线。可见在链式查询中,离总线控制部件最近的设备具有最高的优先级。
这种方式的特点是:只需很少几根线就能按一定优先次序实现总线控制,并且很容易扩充设备,但对电路故障很敏感,且优先级别低的设备可能很难获得请求。
计数器定时查询方式如图(b)所示。与图(a)相比,多了一组设备地址线,少了根总线同意线BG。总线控制部件接到由BR送来的总线请求信号后,在总线未被使用(BS=0)
的情况下,总线控制部件中的计数器开始计数,并通过设备地址线,向各设备发出一组地址信号。当某个请求占用总线的设备地址与计数值一致时,便获得总线使用权,此时终止计数查询。
这种方式的特点是:计数可以从“0”开始,此时一但设备的优先次序被固定,设备的优先级就按0,1,…,n的顺序升序排列,而且固定不变;计数也可以从上一次计数的终止点开始,即是一种循环方法,此时设备使用总线的优先级相等;计数器的初始值还可由程序设置,故优先次序可以改变。这种方式对电路故障不如链式査询方式敏感,但增加了控制线(设各地址)数,控制也较复杂。
独立请求方式如图©所示。由图中可见,每一台设备均有一对总线请求线BR(i),和总线同意线BG(i)。当设备要求使用总线时,便发出该设备的请求信号。总线控制部件中有一排队电路,可根据优先次序确定响应哪一台设备的请求。
这种方式的特点是:响应速度快,优先次序控制灵活(通过程序改变),但控制线数量多,总线控制更复杂。
链式查询中仅用两根线确定总线使用权属于哪个设备,在计数器查询中大致用log(2)n根线,其中n是允许接纳的最大设备数,而独立请求方式需采用2n根线。
众多部件共享总线,在争夺总线使用权时,应按各部件的优先等级来解决。
在通信时间上,则应按分时方式来处理,即以获得总线使用权的先后顺序分时占用总线,即哪一个部件获得使用权,此刻就由它传送,下一部件获得使用权,接着下一时刻传送。这样一个接一个轮流交替传送。
通常将完成一次总线操作的时同称为总线周期,可分为以下4个阶段。
1.申请分配阶段:由需要使用总线的主模块(或主设备)提出申请,经总线仲裁机构决定下一传输周期的总线使用权授于某一申请者。
2.寻址阶段:取得了使用权的主模块通过总线发出本次要访问的从模块(或从设备)的地址及有关命令,启动参与本次传输的从模块。
3.传数阶段:主模块和从模块进行数据交换,数据由源模块发出,经数据总线流人目的模块
4.结束阶段:主模块的有关信息均从系统总线上撤除,让出总线使用权。
对于仅有一个主模块的简单系统,无须申请、分配和撤除,总线使用权始终归它占有。对于包含中断、DMA控制或多处理的系统,还需要有其他管理机构来参与。
总线通信控制主要解决通信双方如何获知传输开始和传输结東,以及通信双方如何协调如何配合。通常用四种方式:同步通信、异步通信、半同步通信和分离式通信。
1.同步通信
通信双方由统一时标控制数据传送称为同步通信。时标通常由CPU的总线控制部件发出,到总线上的所有部件;也可以由每个部件各自的时序发生器发出,但必须由总线控制部件发出的时钟信号对它们进行同步。
图3.16表示某个输入设备向CPU传输数据的同步通信过程。
图中总线传输周期是连接在总线上的两个部件完成一次完整且可靠的信息传输时间,它包含4个时钟周期 T1、T2、T3、T4。
对于读命令,其传输周期如下
T1的上升沿,主模块发地址。
T2的上升沿,主模块发读命令。与地址信号符合的从设备按命令进行一系列内部操作,且必须在T3的上升沿到来之前将CPU所需的数据送到数据总线上。
T3时钟周期内,从模块提供数据。将数据线上的信息送到其主模块内部寄存器中
T4上升沿,主模块撤销读命令,从模块撤销数据。输入设备不再向数据总线上传送数据,撤销它对数据总线的驱动
写命令传输周期的时序如图3.17所示。
对于写命令,其传输周期如下:
T1上升沿,主模块发地址。
T1.5,主模块开始准备提供数据。
T2上升沿,数据已经准备在数据总线上,主模块发出写命令,从模块接收到命令后,必须在规定时间内将数据总线上的数据写到地址总线所指明的单元中。
T4,主模块撤销写命令和数据等信号。
这种通信的优点是规定明确、统一,模块间的配合简单一致。其缺点是主,从模块时间配合属于强制性“同步”,必须在限定时间内完成规定的要求。并且对所有从模块都用同一限时,这就势必造成,对各不相同速度的部件而言,必须按最慢速度的部件来设计公共时钟,严重影响总线的工作效率,也给设计带来了局限性,缺乏灵活性。
同步通信一般用于总线长度较短,各部件存取时比较一致的场合。
2.异步通信:
异步通信克服了同步通信的缺点,允许各模块速度的不一致性,给设计者充分的灵活性和选择余地。它没有公共的时钟标准,不要求所有部件严格的統一操作时间,而是采用应答方式(又称握手方式),即当主模块发出请求( Request)信号时,一直等待从模块反馈回来“响应”(Acknowledge)信号后,才开始通信。当然,这就要求主、从模块之间増加两条应答线(握手交互信号线 Handshaking)
异步通信的应答方式又可分为不互锁、半互锁和全互锁三种类型,如图3.18所示。
1)不互锁方式
主模块发出请求信号后,不必等待接到从模块的回答信号,而是经过一段时间,确认从模块已收到请求信号后,便撤销其请求;例如,CPU向主存写信息,CPU要先后给出地址信号、写命令以及写入数据,即采用此种方式。
(2)半互锁方式
主模块发出请求信号,必须待接到从模块的回答信号后再撤销其请求信号,有互锁关系;而从模块在接到请求信号后发出回答信号,但不必等待获知主模块的请求信号已经撤销,而是隔段时间后自动撤销其回答信号,无互锁关系。由于一方存在互锁关系,一方不存在互锁关系,故称半互锁方式。例如,在多机系统中,某个CPU需访问共享存储器(供所有CPU访问的存储器)时,该CPU发出访存命令后,必须收到存储器未被占用的回答信号,才能真正进行访存操作。
3)全互锁方式
主模块发出请求信号,必须待从模块回答后再撤销其请求信号;从模块发出回答信号,必须待获知主模块请求信号已撤销后,再撤销其回答信号。双方存在互锁关系,故称为全互锁方式。
例如,在网络通信中,通信双方采用的就是全互锁方式。
异步通信可用于并行传送或串行传送。异步并行通信可参见图5.6,图“Ready”和“ Strobe”'就是联络信号。
异步串行通信时,没有同步时钟,也不需要在数据传送中传送同步信号。为了确认被传送的字符,约定字符格式为:1个起始位(低电平)、5~8个数据位(如ASCll码为7位)、1个奇偶校验位(作检错用)、或1.5或2个终止位(高电平)。
传送时起始位后面紧跟的是要传送字符的最低位,每个字符的结東是一个高电平的终止位。起始位至终止位构成一帧,两帧之间的间隔可以是任意长度的。图3.19是两种数据传输率的异步串行传送格式,其中图3.19(a)两帧之间有空闲位(高电平),而图3.19(b)两帧之间无空闲位,故数据传输率更高。
异步串行通信的数据传送速率用波特率来衡量。波特率是指单位时间内传送二进制数据的位数,单位用bps(位/秒)表示,记作波特。
3.半同步通信
半同步通信既保留了同步通信的基本特点,如所有的地址、命令,数据信号的发出时间,都严格参照系统时钟的某个前沿开始,而接收方都采用系统时钟后沿时刻来进行判断识别;同时又像异步通信那样,允许不同速度的模块和谐地工作。为此增设了一条“等待”(WAIT)响应信号线,采用插人时钟(等待)周期的措施来协调通信双方的配合问题。
仍以输入为例,在同步通信中,主模块在T1发出地址,在T2发出命令,在T3传输数据,在T4结束传输。倘若从模块工作速度较慢,无法在T3时刻提供数据,则必须在T3到来前通知主模块,给出WAIT(低电平)信号。若主模块在T3到来时刻测得WAIT为低电平,就插入一个等待
周期Tw(其宽度与时钟周期一致),不立即从数据线上取数。若主模块在下一个时钟周期到来时刻又测得WAIT为低,就再插入一个Tw等待,这样一个时钟周期、一个时钟周期地等待,直到主模块测得WAIT为高电平时,主模块即把此刻的下一个时钟周期当作正常周期T3,即时获
取数据,T4结束传输。
插入等待周期的半同步通信数据输入过程如图3.22所示。由图中可见,半同步通信时序可为以下形式。
T1 ,主模块发出地址信息。
T2,主模块发出命令。从从模块读出数据的命令。
Tw,当WAIT为低电平时,进入等待,Tw的宽度与T的宽度一致。
…
T3,从模块提供数据。
T4,主模块撤销读命令,从模块撤销数椐。
半同步通信适用于系统工作速度不高但又包含了由许多工作速度差异较大的各类设备组成的简单系统。半同步通信控制方式比异步通信简单,在全系统内各模块又在统一的系统时钟控制下同步工作,可靠性较高,同步结构较方便。其缺点是对系统时钟频率不能要求太高,故从整体上来看,系统工作的速度还不是很高。
4.分离式通信
以上三种通信方式都是从主模块发出地址和读写命令开始,直到数据传输结束。在整个传输周期中,系统总线的使用权完全由占有使用权的主模块和由它选中的从模块占据。进一步分析读命令传输周期,发现除了申请总线这一阶段外,其余时主要花费在如下3个方面。
①主模块通过传输总线向从模块发送地址和命令。
②从模块按照命令进行读数据的必要准备。
③从模块经数据总线向主模块提供数据。
由②可见,对系统总线而言,从模块内部读数据过程并无实质性的信息传输,总线纯属空闲等待。为了克服和利用这种消极等待,尤其在大型计算机系统中,总线的负载已处于饱和状态,充分挖掘系统总线每瞬间的潜力,对提高系统性能起到极大作用。为此人们又提出了“分离式”的通信方式,其基本思想是将一个传输周期(或总线周期)分解为两个子周期。在第一个子周期中,主模块A在获得总线使用权后将命令、地址以及其他有关信息,包括该主模块编号(当有多个主模块时,此编号尤为重要)发到系统总线,经总线传输后,由有关的从模块B接收下来。
主模块A向系统总线发布这些信息只占用总线很短的时间,一旦发送完,立即放弃总线使用权以便其他模块使用。在第二个子周期中,当B模块收到A模块发来的有关命令信号后,经选择译码、读取等一系列内部換作,将A模块所需的数据准备好,便由B模块申请总线使用权,一旦获准,B模块便将A模块的编号、B摸块的地址、A模块所需要的数据等一系列信息送到总线上,供A模块接收。很明显,上述两个传输子周期都只有单方向的信息流,每个模块都变成了主模块。
这种通信方式的特点如下
①各模块欲占用总线使用权都必须提出申请。
②在得到总线使用权后,主模块在限定的时间内向对方传送信息,采用同步方式传送,不再等待对方的回答信号。
③各模块在准备数据的过程中都不占用总线,使总线可接受其他模块的请求。
④总线被占用时都在做有效工作,或者通过它发送命令,或者通过它传送数据,不存在空闲等待时间,充分地利用了总线的有效占用,从而实现了总线在多个主、从模块间进行信息交叉重叠并行式传送,这对大型计算机系统是尤为重要的。
当然,这种方式控制比较复杂,一般在普通微型计算机系统很少采用。