总线系统的制作方法

文档序号:6522769阅读:132来源:国知局
专利名称:总线系统的制作方法
技术领域
本发明涉及一种总线系统,尤其涉及一种应用于单芯片系统的能在多个总线设备之间进行分布式数据传送的总线系统。
背景技术
单芯片系统是将电子系统的全部设备集中设计在同一块芯片上,通过一定的协调机制对系统中的各设备进行协作管理,以达成系统级的功能实现。单芯片系统普遍具有结构简单的特点,同时硅知识产权核复用技术也简化并加快了单芯片系统的设计过程,既可以根据具体需求方便地对应用功能模块进行增减,又可以使升级和修改变得更为容易。
单芯片系统中在同一块芯片上达成复杂功能的综合实现,常常包括多个彼此间需要收发信号的设备,为避免多个发送信号的设备同时争用总线,或者同时发送信号给相同的目标设备而产生冲突,总线系统要在总线上的各个设备之间分配通信资源。为了与系统架构相适应,单芯片系统内部各子系统之间的通信往往会设有芯片系统总线。芯片系统总线基于一定的计算机总线协议,对于每个连接到总线上的设备则采用标准化接口,这种总线系统本身也构成了整个系统中的一个模块化组成部分。这种模块化设计方式进一步提高了系统的可扩展性,同时单芯片系统实现工艺所采用的深亚微米技术也进一步促进了单芯片系统的集成度的提高。在这种高度集成化的系统芯片上,如何保证系统中各个设备的实时通信成为一个需要关注的问题。尤其在芯片中有大量分布式的嵌入式动态随机访问存储器(Embedded Dynamic Random Access Memory;EDRAM)或单管静态随机访问存储器(Static Random Access Memory;SRAM)的场合,系统中的各个主设备允许频繁地访问存储设备,并能通过存储设备进行数据传递。为达成更为实时高效地访问,对系统中各设备的并行访问提出了要求。
图1为一种现有的单芯片系统的逻辑总线结构图。总线设备1-6分别与总线10相连接,并通过总线传递信号。每次总线上的设备需要发送信号时,向仲裁器18提出总线使用请求,最后由仲裁器来决定当前占用总线的设备。这一类的总线架构中,仲裁器18的仲裁决定在某一时刻只允许一个主设备占用总线传送信号,也就是说,任一时刻只能有一个主设备得到响应而占用总线传递数据,其他主设备若需要发送信号还需等待,直至当前占用总线的主设备释放总线后才可能占用总线进行信号传递。同时,这种总线架构中,所有数据传送都需要首先经过仲裁器才能到达目标设备,因而也限制了总线频率的提高。

发明内容
本发明的目的在于克服现有技术的缺陷,提供一种新颖的总线系统,特别是一种可进行分布式数据传送并且允许总线上多个主设备向多个从设备同时传送数据的总线系统。
根据本发明的总线系统,用以在多个总线设备之间进行分布式数据传送,它包括多个总线节点单元,每个总线节点单元分别对应于每个总线设备;总线环,用以将所述多个总线节点单元环形地连接在一起。
其中,所述总线节点单元包括接收队列单元,用以接收和缓存来自上一总线节点单元的数据;发送队列单元,用以缓存来自对应的总线设备的数据;环控制单元,控制所述接收队列单元接收和缓存来自上一总线节点单元的数据并将该数据送到相应的总线设备处理,控制所述发送队列单元缓存来自对应的总线设备的数据并将该数据发送给下一总线节点单元。
其中,所述总线节点单元还包括用以缓存由上一总线节点单元发送到下一总线节点单元的数据的过路队列单元。
其中,所述总线环为双向总线环,它包括顺时针环和逆时针环在内的至少两个单向环。
其中,所述环控制单元包括接收控制单元,通过所述总线环接收由上一总线节点单元发出的包含命令域、地址域和数据域在内的令牌信号,并根据该令牌信号控制当前总线节点单元的接收队列单元或过路队列单元接收和缓存来自上一总线节点单元的数据;发送控制单元,接收当前总线节点单元的发送队列单元或过路队列单元的所述令牌信号,并根据该令牌信号控制所述发送队列单元或过路队列单元中的数据发送到所述总线环。
其中,所述总线节点单元包括对应于所述总线环的至少一个单向环的至少一个忙状态模块。
其中,所述忙状态模块包括至少一个锁存寄存器,用以锁存当前总线节点单元中过路队列单元或发送队列单元中的数据;忙状态机,用以接收下一总线节点单元发出的过路队列单元已满或接收队列单元已满的忙状态信号,控制所述锁存寄存器锁存当前总线节点单元中过路队列单元或发送队列单元中的数据。
其中,所述接收队列单元、发送队列单元和过路队列单元由缓冲器组成。
其中,对应于多个总线节点单元的多个总线设备中,相互之间访问概率较大的总线设备设置在总线环上相邻的位置上。
本发明的总线系统中,总线节点单元可以通过总线环在相互之间进行数据传递,从而达成总线设备之间的数据传递。当某一总线节点单元作为源节点向作为目的节点的其他总线节点单元发送数据时,待发送的数据先由源节点的总线设备发送并缓存至源节点的发送队列单元中,再在源节点的环控制单元的控制下通过总线环发送到其他节点单元。当某一总线节点单元作为目的节点接收来自作为源节点的其他总线节点单元的数据时,在该目的节点的环控制单元的控制下,待接收的数据先缓存至该目的节点的接收队列单元中,再由总线设备接收数据并进行相应处理。在总线上源节点向目的节点传送数据的过程中,源节点和目的节点之间的总线节点单元作为过路节点单元,传送的数据则相继缓存在每个过路节点单元的过路队列单元中,以接力的方式进行传送。
而且,总线环包括顺时针环和逆时针环,可进行双向数据传送。
而且,在总线环上,相互之间访问概率较大的总线设备设置在邻近的位置。
而且该总线系统为环形结构,总线中允许多个节点的数据传递并发,从而提高了总线的传送效率,也相应地增加了总线的带宽。


以下附图为对本发明示例性实施例的辅助说明,结合以下附图对本发明实施例的阐述,是为进一步揭露本发明的特征所在,但并不限制本发明,图中相同符号代表实施例中相应元件或步骤,其中图1为现有技术中的一种单芯片系统的总线结构示意图。
图2为本发明的一个实施例中一种总线系统的结构框图。
图3为本发明的总线系统中一个总线节点单元的内部结构框图。
图4为本发明的一个实施例中总线节点单元间令牌的组成示意图。
图5为本发明的总线节点单元中环控制单元的结构示意图。
图6为本发明的总线节点单元中环控制单元的工作原理图,它包括了一个忙状态模块。
图7为图6中所示的忙状态模块中的忙状态机的逻辑结构示意图。
具体实施例方式
图2所示的实施例以包含6个总线设备11至16的总线系统为例来说明本发明的总线系统。总线设备可以是CPU、解码器及其它专用集成电路模块(ASIC)或者存储器,如SDRAM、FLASH等。
参见图2,本发明的总线系统包括一个环形结构的总线环20,有多个总线设备分别通过各自对应的总线节点单元(也简称为总线节点)21至26连接在总线环20上。总线环20例如为双向环,包括顺时针环和逆时针环。总线环上,总线设备11至16通过各自对应的总线节点单元21至26可以双向地传递信号。顺时针环和逆时针环可以设置为在物理上相互独立,这样,相邻的两个总线设备相互之间可以同时进行数据的双向传递。
在本发明的一个实施例中,总线设备彼此间的相邻关系也遵循一定的规则,即总线环20中,相互间访问概率较大的设备设置在邻近位置。例如,总线设备11和总线设备13需要向总线设备12读/写数据,总线设备14也需要向总线设备13读/写数据,而总线设备11和总线设备13相比总线设备14对总线设备12的访问更为频繁,故总线设备11和总线设备13设置在总线环中总线设备12的相邻两侧,而总线设备14可设置得离总线设备12较远。此外,总线设备11需要向总线设备15和16读/写数据,相对而言,总线设备11对于总线设备16的访问概率大于对总线设备15的访问概率,因此,把总线设备16设置于总线设备11相邻位置处,而总线设备15可以设置得离总线设备11稍远。
总线环20是由多条等位宽的总线通过一个环的方式连接而成。每两个总线节点单元之间的总线采用点到点的传输方式。总线环上的每个节点单元均可通过总线向相邻的节点单元传送独立的内容,可以进行环的至少一个方向的数据传送。在本实施例中,当总线环采用双向环时,总线环上的总线节点单元之间可进行双向数据传输。
总线环20中,各总线设备之间的数据传送操作采用分布式进行。例如,从总线设备11传送数据给总线设备14,当数据在总线环20中沿顺时针环传送时,其数据传送路由为总线节点单元11——>总线节点单元12——>总线节点单元13——>总线节点单元14。此时,总线节点单元11作为源节点单元,总线节点单元14作为目的节点单元。而对于总线节点单元11和14而言,总线节点单元12和13均为过路节点单元。另一方面,如将总线节点单元12看作当前总线节点单元的话,则总线节点单元11为它的上一总线节点单元,而总线节点单元13为它的下一总线节点单元。
而在同一时刻,总线设备15和总线设备16之间的数据传送不受总线设备11和总线设备14之间的数据传送操作的影响。
这样,在同一时刻,总线环20中允许有多个总线设备在进行数据传送操作,从而使总线环的传送带宽得以大大提高。
图3示例性地表示了总线环20上每个总线节点单元21至26的内部结构。
每个总线节点单元包括接收队列单元231、发送队列单元232、过路队列单元233和环控制单元235。接收队列单元231、发送队列单元232、过路队列单元233例如由缓冲器组成,它可以缓存数据,如寄存器或静态随机存储器、动态随机存储器等。在本实施例中以FIFO形式进行缓存。接收队列单元231、发送队列单元232分别在总线节点单元接收数据、发送数据的过程中缓存数据。当总线节点单元既不是发送数据的源节点,又不是接收数据的目的节点,而只是作为数据输送路径中的一过路节点时,由过路队列单元233对传送的过路数据进行缓存。
总线节点单元之间利用令牌在总线环上进行信号传递。在本发明的一个实施例中,总线设备之间发送命令时,所有的命令、地址和数据信号都是同时发出的。令牌分为三个组成部分命令域、地址域和数据域。
图4是本发明一个实施例中总线节点单元之间所用令牌的组成示意图。如图4所示,其中的命令域41中包括输出下一个节点和输入上一个节点的传输命令信号ONCmd和IPCmd。对于采用突发形式发送的数据,命令域41中可以有输出下一个节点和输入上一个节点的突发命令信号ONBurst和IPBurst。地址域42中包括输出下一个节点和输入上一个节点的目的节点号码ONDstnum和IPDstnum;输出下一个节点和输入上一个节点的目的传输地址ONAddr和IPAddr;输出下一个节点和输入上一个节点的源节点号码ONSrcnum和IPSrcnum。数据域43中则至少包括输出下一个节点的数据和输入上一个节点的数据ONData和IPData。命令域41还可以包括输出上一个节点的输出忙状态信号OPBusy和输入下一个节点的输入忙状态信号INBusy。输出忙状态信号OPBusy和输入忙状态信号INBusy将在下面进一步描述。
某一总线节点单元作为源节点向其他总线节点单元发送数据时,待发送的数据先从源节点所对应的总线设备送到源节点的发送队列单元中并缓存,再在源节点的环控制单元的控制下通过总线环发送到其他节点单元。某一总线节点单元作为目的节点接收来自其他总线节点单元的数据时,待接收的数据先缓存至该目的节点的接收队列单元中,再在目的节点的环控制单元的控制下由该目的节点所对应的总线设备接收缓存在接收队列单元中的数据。在总线环上源节点向目的节点传送数据的过程中,作为源节点的总线节点单元和作为目的节点的总线节点单元之间如果还存在其它总线节点单元,则后者作为过路节点,传送中的数据相继缓存在每个过路节点的过路队列单元中,以接力的方式进行传送。
图5为环控制单元235的结构框图,图6为环控制单元235的工作原理图。环控制单元235包括接收控制单元2351和发送控制单元2352,分别控制总线节点单元的数据的接收和发送。结合图5和图6可以看到,接收控制单元2351通过总线环20的顺时针环201或逆时针环202接收由上一个总线节点单元发出的令牌信号,并判断数据发送的目的节点是否为当前节点。如果目的节点是当前节点,则由接收队列单元231接收数据并缓存。如果目的节点不是当前节点,当前节点只是作为过路节点,则由当前节点的过路队列单元233接收数据并缓存。
发送控制单元2352接收总线节点单元的发送队列单元232和过路队列单元233的令牌信号,并判断待发送的数据是来自发送队列单元232还是来自过路队列单元233。发送控制单元2352采用预定的算法来选择优先发送的数据,如本技术领域人员知晓的,菊花链算法、优先级固定算法或公平循环算法等。本实施例中采用公平循环算法进行说明。当发送控制单元2352中发送队列单元232和过路队列单元233的总线请求出现竞争时,发送控制单元2352按照公平循环算法,轮换选择发送队列单元232和过路队列单元233的数据。发送控制单元2352同时还需根据令牌信号判断出待发送的数据是送给总线环20的顺时针环201还是逆时针环202,在输出数据时则按令牌信号发送数据到相应的单向环。
参照图6,发送控制单元2352对应于每一个单向环(顺时针环201或逆时针环202)分别设置了一个忙状态模块60。在本实施例中顺时针环201和逆时针环202的每个忙状态模块60设置有至少一个忙状态机。与忙状态机相配合,在令牌的命令域设置了两个相对应的忙状态信号OPBUSY和INBUSY。其中,OPBUSY为输出信号,是由当前节点输出给其上一个节点显示当前节点在忙状态;INBUSY为输入信号,是由下一个节点输入到当前节点显示下一个节点在忙状态。
在当前节点处于忙状态,不能接收来自上一个节点的数据时,当前节点发出忙状态信号OPBUSY给上一个节点,使上一个节点锁存住数据;在当前节点需要向下一个节点发送数据时,如果下一个节点处于忙状态,不能接收数据,则当前节点的忙状态模块60会接收到忙状态信号INBUSY,而锁存住数据。
每个忙状态模块60中设有至少一个锁存寄存器来锁存数据。在本实施例中设置了两个锁存寄存器604和605,分别称为第一锁存寄存器和第二锁存寄存器,二者分别由忙状态机601和602控制。
图7为忙状态机的逻辑结构示意图。参见图7,忙状态机有两种状态输入忙状态(INBUSY)和空闲状态(IDLE)。一般情况下忙状态机为IDLE,当出现以下两种情况时,忙状态机转入输入忙状态1)当下一个节点为过路节点,而忙状态机接收到下一个节点发出的过路队列单元已满的忙状态信号INBUSY,此时,第一锁存寄存器或第二锁存寄存器会锁存当前节点过路队列单元中的数据;或者2)当下一个节点为目的节点,而忙状态机接收到下一个节点发出的接收队列单元已满的忙状态信号INBUSY,此时,第一锁存寄存器或第二锁存寄存器会锁存当前节点发送队列单元中的数据。
忙状态机601,602控制其锁存寄存器603,604的锁存动作,使令牌保持稳定。锁存寄存器例如可以用触发器实现,如D触发器或RS触发器,忙状态信号INBUSY送入触发器的控制端控制锁存动作。
在每一个单向环中,例如在本实施例的顺时针环201或逆时针环202中,主要可能有两种情形会产生忙状态信号OPBUSY。第一种情形是,当当前节点的接收队列单元为满时,当前节点同时接收到一个以当前节点为目的节点需要当前节点的接收队列单元接收数据的请求信号;第二种情形是,当当前节点的两个锁存寄存器都有数据在传送,即都为非锁存状态,同时又接收到一个有过路数据要求传送的请求信号。这两种情形下,当前节点的接收控制单元将发送OPBUSY信号给上一个节点。当当前节点出现上述这两种情形,当前节点会输出OPBUSY信号给上一个节点,OPBUSY信号输入到上一个节点后,对于上一个节点而言,接收到的信号即为INBUSY信号。
在发送控制单元按照公平循环算法选中待发送的数据后,将发出请求信号给总线环上的下一个总线节点。在这里,发送控制单元输出的下一个总线节点单元为目的节点时,下一个总线节点单元判断其接收队列单元是否为满;发送控制单元输出的下一个总线节点单元是作为过路节点时,下一个总线节点单元判断其两个锁存寄存器是否都为非锁存状态。下一个节点的接收队列单元或者过路队列单元如果为满状态,则反馈一个忙状态信号OPBUSY给当前节点。当前节点接收到上一个节点发出的信号后,当前节点的忙状态机要根据反馈来的忙状态信号INBUSY作出决定,使数据暂时缓存在当前节点中,而不进行下一步的传送。在下一个总线节点单元的忙状态结束时,当前节点的忙状态机转换到空闲状态,允许将当前节点中接收队列单元或过路队列单元中缓存的数据发送给下一个总线节点单元。
在当前节点单元作为源节点向其下一个节点输出发送队列单元中的数据的同时,当前节点作为过路节点也可以同时输出过路队列单元中的数据,这样进一步达成了当前节点单向环数据的并行传送。对于本实施例的每一个单向环而言,都可以实现数据的并行传送。而当当前节点的发送队列单元和过路队列单元同时在进行数据传送时,如果同向单向环上的上一个节点发出需要以当前节点为过路节点传送数据的请求信号,则当前节点的接收控制单元会反馈OPBUSY信号给上一个节点,使上一个节点的数据被锁存住,而不会丢失,从而使上一个节点的令牌保持稳定。
在本发明的其它实施例中,在总线节点单元上可以设置更多独立的过路队列单元,并相应地增加锁存寄存器的数量,也允许更多路数据的并行传送。
本实施例只是为了进一步更清楚地描述本发明,而非对本发明的限制。应该可以理解,本发明并不限于上述实施例所做的阐述,任何基于本发明的修改和本发明的等同物都应涵盖在本发明的权利要求的精神和范围之内。
权利要求
1.一种用以在多个总线设备之间进行分布式数据传送的总线系统,其特征在于包括多个总线节点单元,每个总线节点单元分别对应于每个总线设备;总线环,用以将所述多个总线节点单元环形地连接在一起。
2.如权利要求1所述的总线系统,其特征在于,所述总线节点单元包括接收队列单元,用以接收和缓存来自上一总线节点单元的数据;发送队列单元,用以缓存来自对应的总线设备的数据;环控制单元,控制所述接收队列单元接收和缓存来自上一总线节点单元的数据并将该数据送到相应的总线设备处理,以及控制所述发送队列单元缓存来自对应的总线设备的数据并将该数据发送给下一总线节点单元。
3.如权利要求2所述的总线系统,其特征在于,所述总线节点单元还包括用以缓存由上一总线节点单元发送到下一总线节点单元的数据的过路队列单元。
4.如权利要求1所述的总线系统,其特征在于,所述总线环为双向总线环,它包括顺时针环和逆时针环在内的至少两个单向环。
5.如权利要求3所述的总线系统,其特征在于,所述环控制单元包括接收控制单元,通过所述总线环接收由上一总线节点单元发出的包含命令域、地址域和数据域在内的令牌信号,并根据该令牌信号控制当前总线节点单元的接收队列单元或过路队列单元接收和缓存来自上一总线节点单元的数据;发送控制单元,接收当前总线节点单元的发送队列单元或过路队列单元的所述令牌信号,并根据该令牌信号控制所述发送队列单元或过路队列单元中的数据发送到所述总线环。
6.如权利要求4所述的总线系统,其特征在于,所述总线节点单元包括对应于所述总线环的至少一个单向环的至少一个忙状态模块。
7.如权利要求6所述的总线系统,其特征在于,所述忙状态模块包括至少一个锁存寄存器,用以锁存当前总线节点单元中过路队列单元或发送队列单元中的数据;忙状态机,用以接收下一总线节点单元发出的过路队列单元已满或接收队列单元已满的忙状态信号,控制所述锁存寄存器锁存当前总线节点单元中过路队列单元或发送队列单元中的数据。
8.如权利要求3所述的总线系统,其特征在于,所述接收队列单元、发送队列单元和过路队列单元由缓冲器组成。
9.如权利要求1至8任一所述的总线系统,其特征在于,对应于多个总线节点单元的多个总线设备中,相互之间访问概率较大的总线设备设置在总线环上相邻的位置上。
全文摘要
一种用以在多个总线设备之间进行分布式数据传送的总线系统,包括多个总线节点单元,每个总线节点单元分别对应于每个总线设备;总线环,用以将所述多个总线节点单元环形地连接在一起。该总线系统为环形结构,总线中允许多个节点的数据传递并发,从而提高了总线的传送效率,也相应地增加了总线的带宽。
文档编号G06F13/40GK1877553SQ20051002648
公开日2006年12月13日 申请日期2005年6月6日 优先权日2005年6月6日
发明者周振亚, 孙民梁 申请人:上海奇码数字信息有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1