CN100449515C - 总线仲裁方法 - Google Patents
总线仲裁方法 Download PDFInfo
- Publication number
- CN100449515C CN100449515C CNB2006100247940A CN200610024794A CN100449515C CN 100449515 C CN100449515 C CN 100449515C CN B2006100247940 A CNB2006100247940 A CN B2006100247940A CN 200610024794 A CN200610024794 A CN 200610024794A CN 100449515 C CN100449515 C CN 100449515C
- Authority
- CN
- China
- Prior art keywords
- burst
- request
- moderator
- priority
- string
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Bus Control (AREA)
Abstract
一种总线仲裁方法,适用于串突发数据传输,每个串突发由一个或一个以上突发组成,每个突发携带一个突发标志,包括两种突发标志,即第一突发标志与第二突发标志,还包括第三突发标志;当系统检测到携带第二突发标志的突发后还有其他串突发时,则将该第二突发标志转换为第三突发标志;当仲裁器检测到第三突发标志时进行预仲裁。
Description
技术领域
本发明涉及一种总线仲裁方法。
背景技术
多媒体应用的普及对计算机系统内部数据传输的带宽(Bandwidth)以及实时性(Real-Time)有着越来越高的要求,这迫使设计者不断提升总线频率,同时提高总线效率。
计算机系统包括多个单元(Unit),这些单元被分为主单元(Master)与从单元(Slave,一般为存储器,如SDRAM)两组,它们之间的数据交换通过总线(BUS)完成。当一个主单元要对一个从单元进行访问时,先向总线发出请求,总线仲裁器对收到的请求进行仲裁,选出优先权最高的请求,对应的主单元才能控制总线访问相应的从单元。
传统的总线架构为一级仲裁,即所有主单元连接至一个总线仲裁器。从硬件实现的角度看,构成仲裁器的基本单元是二选一的多路选择器(MUX),当然还包括计算和控制电路。主单元的数量越多就意味着仲裁器所需的多路选择器越多,一个请求从仲裁器的输入端到输出端需要经过的多路选择器就越多,这个数据传输过程所需的时间也就越长;再者,主单元数量越多,仲裁器进行一次仲裁的计算量就越大,计算所需的时间也就越长,这两个因素尤其是前者严重抑制了总线频率的提升,影响了总线带宽的提高。另外,所有主单元都连接到一个仲裁器会导致芯片上该仲裁器周围的资源严重缺乏,为增强其驱动力就需要额外增加一些元件,例如在连线中增加两个倒相器(Inverter),但这样又进一步增加了电路的延时,成为另一个限制总线频率提升的原因;所有主单元都连接到一个仲裁器还会使芯片内部的连线过于复杂。最后,若采用传统的一级仲裁,要增加主单元数量就需要重新设计整个仲裁系统,其通用性不佳。
为解决上述问题,业界采用了分级总线仲裁架构(Hierarchical BUSArbitration)技术。分级仲裁是把主单元按一定数量N(N为大于1的整数)进行分组,每组的N个主单元共享一个底层仲裁器,再把底层仲裁器按N分组,每组N个底层仲裁器共享一个次底层仲裁器,以此类推直到顶层仲裁器。在这种架构中,对于上一级仲裁器而言,所有非顶层仲裁器都可被视为一个“主单元”参与竞争,根据需要也可以让主单元与非顶层仲裁器一起参加上一级仲裁。如此,整个仲裁被打断成为多级的树状仲裁架构。这样做有以下优点:第一,仲裁架构成为流水线结构,一次完整的仲裁(一个请求从被主单元发出到被顶层仲裁器输出)平均花费的时间比传统的一级仲裁大幅减少;第二,每个仲裁器负责仲裁的主单元数量减少,一次仲裁所需的计算时间得以缩短;第三,可根据主单元在芯片内的位置来分布仲裁器,使芯片内的连线更加简单;第四,仲裁器结构相同,若需增加主单元数量只要对应地增加仲裁级数以及仲裁器即可,无需重新设计仲裁架构,通用性好。总而言之,分级仲裁可有效提升频率、提高总线仲裁架构的通用性以及简化芯片内部的连线。例如,美国专利第6385678号的图9,清楚地展示了一种多级仲裁的架构。
众所周知,现今DRAM的读写大都采用突发(Burst)方式,为进一步提高数据传输效率,业界采用了串突发(Stream Burst)传输协议。这种协议规定,一个主单元与一个从单元之间多个特定的连续突发在通过一个仲裁器的过程中不被打断,且只需要对第一个突发进行仲裁即可,这些连续的突发就是一个串突发。串突发传输协议的采用大幅节省了总线仲裁的时间,对多级仲裁架构和数据吞吐量较大的系统而言效果尤为明显。
为便于说明,假设系统处于理想状态(无堵塞),一次仲裁需要一个时钟周期,一个突发的输出需要一个时钟周期(一般而言仲裁计算和输出采样无法在一个时钟周期内完成)。
在现有的串突发传输协议中,当存在两个连续的串突发时,总线要等前一个串突发传输完毕后才能进行新的仲裁以决定接下来选通哪一路输入,因为在前一串突发最后一个突发被输出之前,仲裁电路无法得到紧接着所述的最后一个突发的另一突发的仲裁所需的信息,因此,对于每一串突发而言,其第一个突发从开始仲裁到突发被采样输出需要两个时钟周期,详述如后。
为实现串突发传输,需要为每个突发设置一个突发标志,在现有的串突发传输机制中有两种突发标志,LAST表示串突发最后一个突发,SAME表示除最后一个突发外的其余突发(特别地,若一个串突发只包含一个突发,那该突发的突发标志为LAST),总线仲裁器正是根据突发标志来判断是否需要改变仲裁器的选通状态。
下面对现有的串突发传输方式的一个实施例进行说明。参见图10,仲裁器200包括多路选择器MUX 201、多路选择器MUX 202、仲裁计算模块203以及寄存器204。多路选择器201的输入端口供请求输入;寄存器204控制多路选择器201的选通状态;多路选择器202有两个输入端口,其中,第一输入端口与多路选择器201的输出端耦合,第二输入端口为无效输入;仲裁计算模块203进行仲裁计算,寄存器204的值与使能信号以及多路选择器202的选通信号均由其提供。
仲裁计算模块203是组合逻辑,每个时钟周期都会自动进行仲裁运算并且给出运算结果,但只有当寄存器204的使能信号为有效时,该运算结果才能在遇到一个时钟上升沿时被载入寄存器204,从而改变多路选择器201当前的选通状态。当一个串突发的第一个突发被一个仲裁器输出后,该仲裁器就会一直保持当前的选通状态,也就是说寄存器202的使能信号一直保持无效;当突发标志为LAST的突发被输出的同时,仲裁计算模块203控制多路选择器202选通其第二输入端口。如果存在另一个串突发紧接着所述突发标志为LAST的突发,那么,在所述突发标志为LAST的突发被输出后的第一个时钟周期,仲裁计算模块203发出有效的使能信号并控制多路选择器202选通第一输入端口,紧接着的一个时钟周期,多路选择器201将根据寄存器204的值改变选通状态。这样,在理想状态下,第二个串突发的第一个突发的输出就需要两个时钟周期。具体时序参考图2,图中SBURST表示各串突发输出所花费的时间,GRANT为仲裁器的选通信号(高有效),MLAST表示各突发输出所花费的时间,CLK为时钟。图2中第二串突发(标为SBURST2的串突发)包含4个突发,如图所示,在理想状态下(无堵塞),第二串突发从仲裁到被输出共需要5个时钟周期。
但是,对于现有技术多级仲裁架构而言,一个串突发从底层仲裁器到顶层仲裁器,其第一个突发每经过一个仲裁器所需的时间比其他突发多一个时钟周期,总线架构分级越多,串突发第一个突发由底层仲裁器到顶层仲裁器所需的额外时间就越多,这不利于总线效率的提高。为进一步提高总线效率,需要设计一种新的总线仲裁方法。
发明内容
鉴于目前总线仲裁方法中存在的一系列缺陷,本发明的目的在于提供一种能够进一步提升总线仲裁效率的总线仲裁方法。
本发明提供了一种总线仲裁方法,适用于串突发数据传输,每个串突发由一个或一个以上突发组成,每个突发携带一个突发标志,包括两种突发标志,即第一突发标志与第二突发标志,还包括第三突发标志;当系统检测到携带第二突发标志的突发后还有其他串突发时,则将该第二突发标志转换为第三突发标志;当仲裁器检测到第三突发标志时进行预仲裁。
上述方法中,所述第二突发标志表示串突发的最后一个突发所携带的突发标志,所述第一突发标志表示除所述最后一个突发之外所述串突发中的其余突发所携带的突发标志。
通过利用本发明的总线仲裁方法,带来的效率提升是十分显著的,而且仲裁级数越多效率的提升就越显著。
附图说明
图1为本发明总线仲裁装置的结构简图。
图2为采用突发标志转换机制前串突发的传输时序图。
图3为采用突发标志转换机制后串突发的传输时序图。
图4为本发明顶层仲裁器的状态机图。
图5为本发明第一仲裁器的状态机图。
图6为本发明第二仲裁器的功能模块图。
图7为本发明第一仲裁器的功能模块图。
图8为本发明顶层仲裁器的功能模块图。
图9为本发明缓存的功能模块图。
图10为仲裁器的选通功能模块图。
具体实施方式
为克服现有串突发传输存在的缺陷,进一步提升总线效率,本发明的一方面提出了一种突发标志转换机制。本发明的突发标志转换机制相对于现有的串突发传输方式增加了一种突发标志,以JOIN表示。当系统发现一个突发标志为LAST的突发后还跟着另一个突发,即发现两个连续的串突发时,就把该突发标志由LAST转换为JOIN(突发标志的转换有两种情况,具体请参后述对缓存和仲裁器的描述,主单元也可直接发出JOIN的突发标志)。
当仲裁器200(参见图10)(本实施例中有三种仲裁器,包括第一仲裁器、第二仲裁器以及顶层仲裁器,具体可参见后述说明,为便于对突发标志转换机制进行阐述,根据选通功能把第一仲裁器和第二仲裁器统称为仲裁器200进行说明)检测到突发标志为JOIN的突发时,仲裁计算模块203发出有效的使能信号,在下一个时钟上升沿,寄存器204将载入新的仲裁结果,这个仲裁结果是基于所述的突发标志为JOIN的突发(若该突发对应的输入端口紧接着有另一突发)的对应信息(如优先级信息等仲裁所需的信息)和另一输入端口输入的突发(如果存在)的对应信息计算所得,多路选择器201根据寄存器204的值改变选通状态。因此,在理想状态下(无堵塞),第二个串突发的第一个突发的输出就只需要一个时钟周期。具体时序请参图3,图中SBURST表示各串突发输出所花费的时间,GRANT为仲裁器的选通信号(高有效),MLAST表示各突发输出所花费的时间,CLK为时钟。图3中的第二个串突发(标为SBURST2)包含4个突发,在理想状态下,第二个串突发从仲裁到被输出共需4个时钟周期,与图2所示未采用突发标志转换机制的方案相比,本申请的突发标志转换机制节省了1个时钟周期。显然,对于分级仲裁而言,突发标志转换机制带来的效率提升是十分显著的,而且仲裁级数越多效率的提升就越显著。
突发标志转换机制是一种预仲裁机制,有两种预仲裁方案可供选择。第一种方案,仲裁时以突发标志为JOIN的突发所携带的对应信息(如优先级信息等)代替同一路紧接着的突发(如果有的话,如果没有则所述的突发标志为JOIN的突发被过滤为无效突发,不参加新的仲裁)所携带的相关信息进行仲裁,这种方案在硬件上比较容易实现,但如果这两个突发的对应信号不一致的话,就可能使这一次仲裁的结果不符合标准。第二种方案,仲裁器的仲裁电路的输入设计成可选择,假设下级缓存深度为二,突发标志为JOIN的突发位于该缓存的第一存储体,而且第二存储体存在另一突发,此时的仲裁电路选择第二存储体中的突发所携带的相关信号进行仲裁,这种设计的仲裁结果符合标准,但硬件实现较为复杂。本实施例所采用的是第一方案,以下将进行更详细的说明。
本发明的另一方面针对一种总线仲裁架构。在一个计算系统中,大致可将主单元分为两类,对延时要求高的主单元和对带宽要求高的主单元。对延时要求高的主单元发出的请求需要系统及时响应,否则可能导致系统出错,比如在数字电视解码芯片中,中央处理器(CPU)、解复用模块(DEMUX)是对延时要求高的主单元;对带宽要求高的主单元的数据吞吐量大,比如在数字电视解码芯片中,视频解码模块是对带宽要求高的主单元。为便于说明,以下称对延时要求高的主单元为第一类主单元,其请求为第一类请求,其突发为第一类突发,其串突发为第一类串突发,而对带宽要求高的主单元为第二类主单元,其请求为第二类请求,其突发为第二类突发,其串突发为第二类串突发(需要注意的是,这里虽然将对延迟要求高的主单元称为第一类主单元,对带宽要求高的主单元称为第二类主单元,但采用“第一”和“第二”的描述,仅仅是为了区别不同的主单元,也可以把对延迟要求高的主单元称为第二类主单元,而把对带宽要求高的主单元称为第一类主单元,下文中的具体描述也可作相应的变换)。
系统设计时,SDRAM被划分成若干个部分,分配给对应的主单元作为专用的存储空间。为提高数据传输效率,把分配给前述两种主单元的存储空间尽量安排在不同的逻辑存储库(BANK)中,因为在本实施例中,第一类串突发打断第二类串突发的频率较高,这样分配可使不同的主单元对SDRAM的访问尽量在逻辑存储库之间进行切换,以节省行预充电的时间。当然,也可以根据对各主单元之间切换概率的分析来进行存储空间的分配。
本实施例把第一类主单元和第二类主单元进行分组分级仲裁,以便较为精确地控制两种主单元对总线的控制时间。为尽量避免两个连续的对SDRAM的操作在相同的逻辑存储库的不同行之间进行切换而引发的效率降低,同时也为使设计不过于复杂,本实施例还规定了以下仲裁原则:组内串突发不得相互打断;在顶层仲裁器中第一类串突发可打断第二类串突发,第二类串突发不得打断第一类串突发。
仲裁级数取决于主单元的数量、仲裁器的仲裁接口数量以及耦接方式,为便于进行说明,本实施例的所有非顶层仲裁器的仲裁接口数量均为2,当然这个数量可根据具体需求而改变,比如设置4个仲裁接口。参见图1,图1例示出本发明的总线仲裁架构的实施例。本实施例中共有7个主单元,其中,主单元130、主单元131及主单元132是第一类主单元(即对延时要求高的主单元),而主单元133、主单元134、主单元135以及主单元136是第二类主单元(即对带宽要求高的主单元)。本实施例的仲裁装置包括:顶层仲裁器100;分别耦接于该顶层仲裁器100的缓存102和缓存104;耦接于缓存102的第一仲裁器101;分别耦接于第一仲裁器101的缓存106和缓存108;耦接于缓存106的另一第一仲裁器105;分别耦接于该另一第一仲裁器105的缓存114和缓存116,其中,主单元130耦接于缓存114,主单元131耦接于缓存116,主单元132耦接于缓存108;耦接于缓存104的第二仲裁器103;分别耦接于第二仲裁器103的缓存110和缓存112;耦接于缓存110的另一第二仲裁器107;分别耦接于该另一第二仲裁器107的缓存118和缓存120;耦接于缓存112的又一第二仲裁器109;耦接于该又一第二仲裁器109的缓存122和缓存124,其中,主单元133耦接于缓存118,主单元134耦接于缓存120,主单元135耦接于缓存122,主单元136耦接于缓存124。因此,该实施例的总线仲裁装置是一种包括顶层仲裁器、第一仲裁器和第二仲裁器的总线仲裁装置,其中第一仲裁器用于对第一类主单元的请求进行仲裁,第二仲裁器用于对第二类主单元的请求进行仲裁,并且,第一仲裁器和第二仲裁器分别自所述顶层仲裁器向下形成分级仲裁结构。因此,本实施例的总线仲裁装置采用了一种分组分级的总线总裁架构。本实施例中的缓存例如为先进先出缓存(FIFO),其深度为2,可存储两个请求。在图1所示的仲裁架构中,第一类请求和第二类请求只在顶层仲裁器100中进行竞争,从硬件角度来看,只有这种架构才能较便捷地实现第一类串突发可打断第二类串突发,而第二类串突发不得打断第一类串突发的仲裁方案,提高总线仲裁效率。
本发明的一个实施例分配给第一类请求(第一类主单元的请求)HCREQ和LCREQ两种优先级,分配给第二类请求(第二类主单元的请求)HREQ和LREQ两种优先级,这四种优先级的优先级顺序为HCREQ>HREQ>LREQ>LCREQ。第一类请求默认以HCREQ优先级参与竞争,第二类请求默认以LREQ优先级参与竞争。
因为第一类请求默认以HCREQ的优先级参与竞争,第二类请求默认以优先级较低的LREQ的优先级参与竞争,如果不设置一套限制机制,很可能出现第一类请求长时间占用顶层仲裁器使第二类请求在很长一段时间内得不到顶层仲裁器的响应的情况。为解决这个问题,本实施例可采用一种时间窗限制机制。时间窗限制机制针对某个第一类主单元或者第一仲裁器定义了一个时间段M,在满足系统要求的前提下,规定该第一类主单元或者第一仲裁器输出的请求在时间段M内得到上级仲裁器的N次响应后,其以后的第一类突发的优先级就被降为LCREQ,同时该突发被赋予一个生命周期,当进入第二个时间段M时,该低优先级生命周期结束,其优先级又被重新提升为HCREQ。只有当没有第二类请求参与竞争时,优先级为LCREQ的第一类串突发才能得到顶层仲裁器的响应。时间窗限制机制中的时间段长短M、响应次数N以及是否采用时间窗限制机制等参数均可在第一仲裁器的寄存器中进行配置。
本发明的一个实施例还可采用优先级提升机制。前述已知,第二类串突发默认以LREQ的优先级参与竞争,总线的架构为树状结构,若一个第二类串突发被阻塞在某一第二仲裁器长时间得不到响应的话,那么该节点以下的所有第二类串突发都将被堵塞,若这些被堵塞的第二类串突发中存在需要得到系统及时响应的第二类串突发的话,这种堵塞状况就可能导致系统运行不正常。为解决这个问题,在本实施例中,第二类串突发被存储于某一缓存时,该缓存将根据上级第二仲裁器的寄存器配置赋予该第二类串突发一个低优先级生命周期,生命周期可随着突发传递,当该生命周期结束时,该第二类串突发的优先级就被提升为HREQ,而且这一支路中,所述的被提升优先级的第二类串突发上面的所有第二类串突发的优先级都将被提升为HREQ,这样就能使被堵塞的需要得到系统及时响应的第二类串突发尽量及时得到响应。
优先级提升机制亦可应用于第一类串突发。当某个优先级为LCREQ的第一类突发被某个第一仲裁器选通,而该第一仲裁器的另一输入端口出现了一个优先级为HCREQ的第一类串突发,或者该优先级为LCREQ的第一类串突发后紧接着有一个优先级为HCREQ的串突发,则该优先级为LCREQ的第一类突发的优先级将被提升为HCREQ,且这一支路中,所述的被提升优先级的第一类突发上面的所有第一类串突发的优先级都将被提升为HCREQ。如此,可防止因优先级为LCREQ的第一类串突发在当前仲裁器以上的仲裁器中被堵塞而导致后面的优先级为HCREQ的第一类串突发被堵塞于当前仲裁器。
参见图4,所示为顶层仲裁器的状态机示意图。图中,IDLE表示空闲状态,CREQ表示选通第一类串突发,REQ表示选通第二类串突发。图中的各状态转换条件如下表所示:
Condition_1 | 当前无请求输入 |
Condition_2 | 有优先级为HCREQ的第一类请求输入;或者有优先级为LCREQ的第一类请求输入,且无第二类请求输入 |
Condition_3 | 当前第一类请求被仲裁输出,且突发标志是SAME或者JOIN |
Condition_4 | 当前第一类请求被仲裁输出,且突发标志是LAST,且有第二类请求输入 |
Condition_5 | 当前第二类请求被仲裁输出,且无优先级为HCREQ的第一类请求输入 |
Condition_6 | 当前第二类请求被仲裁输出,且突发标志为LAST,且无第一类请求输入 |
Condition_7 | 有第二类请求输入,且无优先级为HCREQ的第一类请求输入 |
Condition_8 | 当前第二类请求被仲裁输出,且有优先级为HCREQ的第一类请求输入;或当前第二类请求被仲裁输出,且突发标志为LAST,且有第一类请求输入 |
Condition_9 | 当前第一类请求被仲裁输出,且突发标志为LAST,且无第二类请求输入 |
参见图5,所示为非顶层仲裁器(第一或第二仲裁器)的状态机示意图(第一仲裁器与第二仲裁器的状态机相同),图中,IDLE表示空闲状态,ArbitrateState表示仲裁状态。图中各状态转换条件如下表所示:
Condition_1 | 下级缓存中没有请求;或者上级缓存满 |
Condition_2 | 下级缓存中至少有一个请求 |
Condition_3 | 已经获得仲裁权的请求的突发标志是SAME;或者上级缓存满 |
Condition_4 | 已经获得仲裁权的请求的突发标志是JOIN,并且上级缓存未满 |
Condition_5 | 已经获得仲裁权的请求的突发标志是LAST,并且其他下级缓存中至少有一个请求,并且上级缓存未满 |
Condition_6 | 已经获得仲裁权的请求的突发标志是LAST,并且其他下级缓存中没有请求,并且上级缓存未满 |
参见图6,所示为第二仲裁器103的功能模块图。第二仲裁器103包括状态机1031、寄存器组1032、计算模块1033、第一多路选择器1034、第二多路选择器1035、第三多路选择器1036及第四多路选择器1037。状态机1031控制第二仲裁器103的工作状态;寄存器组1032存储系统对仲裁器的配置,这些配置包括采用固定优先级算法还是加权循环算法,指示下级缓存是否采用优先级提升机制,若采用优先级提升机制生命周期设定为多长等等;计算模块1033进行仲裁计算,决定选通哪一路输入信号;第四多路选择器1037对下级缓存输入的请求类别信号进行选择,该请求类别信号包括三种,分别为IDLE(表示无请求)、REQ(表示对带宽要求高的主单元的请求)、CREQ(对延时要求高的主单元的请求);第三多路选择器1036对下级缓存输入的优先级信号进行选择,该优先级信号包括高和低两种,第三多路选择器1036也能进行优先级提升处理,至此可知,前述四种优先级是由请求类别信号和优先级信号组合而成;第二多路选择器1035对下级缓存输入的突发标志信号进行选择,第二多路选择器1035也能进行突发标志转换处理;第一多路选择器1034对下级缓存输入的其他输入信号进行选择。
计算模块1033的仲裁计算步骤如下:一,根据请求类别信号过滤出参与竞争的主单元或下级仲裁器;二,根据优先级信号进一步过滤出最终参与固定优先级算法或加权循环算法的主单元或者下级仲裁器;三,以固定优先级算法或加权循环算法进行计算,决定最终选通哪一路输入信号。整个仲裁计算过程只需要一个时钟周期。
以下对在第二仲裁器103中进行的突发标志转换处理和优先级提升处理的几种状况进行说明。
当系统采用突发标志转换机制,若当前被选通的是缓存110,且缓存110中只有一个突发标志为LAST的第二类请求,若缓存112中有第二类请求,那么第二仲裁器103的第二多路选择器1035就把当前被选通的第二类请求的突发标志转换为JOIN,且该请求被过滤成无效请求,不参与新的仲裁,因此,新的仲裁中只有缓存112中的第二类请求参与竞争。
当系统采用优先级提升机制,若当前被选通的是缓存110,且当前被选通的第二类请求的优先级是低,如果缓存112中有第二类请求且其优先级为高,那么第二仲裁器103的第三多路选择器1036把当前被选通的第二类请求的优先级提升为高。
参见图7,所示为第一仲裁器101的功能模块图。第一仲裁器101包括状态机1011、寄存器组1012、计算模块1013、第一多路选择器1014、第二多路选择器1015、第三多路选择器1016、第四多路选择器1017及时间窗限制处理模块1018。状态机1031控制第一仲裁器101的工作状态;寄存器组1012存储系统对仲裁器的配置,这些配置包括采用固定优先级算法还是加权循环算法,是否采用时间窗限制机制,若采用时间窗限制机制,时间段M的长短以及响应次数N等;计算模块1013进行仲裁计算,决定选通哪一路输入信号;第四多路选择器1017对下级缓存输入的请求类别信号进行选择,该请求类别信号包括三种,分别为IDLE(表示无请求)、REQ(表示对带宽要求高的主单元的请求)、CREQ(对延时要求高的主单元的请求);第三多路选择器1016对下级缓存输入的优先级信号进行选择,该优先级信号包括高和低两种,第三多路选择器1016也能进行优先级提升操作;第二多路选择器1015对下级缓存输入的突发标志信号进行选择,第二多路选择器1015也能进行突发标志转换操作;第一多路选择器1014对下级缓存输入的其他输入信号进行选择;时间窗限制处理模块1018对输入优先级信号进行时间窗限制处理。
计算模块1013的仲裁计算步骤如下:一,根据请求类别信号过滤出参与竞争的主单元或下级仲裁器;二,根据经过时间窗限制处理模块的优先级信号进一步过滤出最终参与固定优先级算法或加权循环算法的主单元或者下级仲裁器;三,以固定优先级算法或加权循环算法进行计算,决定最终选通哪一路输入信号。整个仲裁计算过程只需要一个时钟周期。
以下对在第一仲裁器101中进行的突发标志转换处理和时间窗限制处理的几种状况进行说明。
当系统采用突发标志转换机制,若当前被第一仲裁器101选通的是缓存106,而缓存106中只有一个突发标志为LAST的第一类请求,且缓存108中有第一类请求的话,那么第二多路选择器1015就会把当前被选通的第一类请求的突发标志转换为JOIN,且该第一类请求被过滤为无效请求,不参与预仲裁,新的仲裁中只有缓存108中的第一类请求参与竞争。
时间窗限制处理模块1018(第一仲裁器101对应缓存106和缓存108各设有一个时间窗限制处理模块,此处为便于说明,将两个时间窗限制处理模块合并为一个时间窗限制处理模块1018)根据寄存器组1012的配置,在规定的时间段M内对缓存106和缓存108被响应的次数(以请求为单位)进行计数,当计数超过规定的数值时,对应的缓存的下一个第一类串突发的优先级将被降为低并同时被赋予一个生命周期,该生命周期的值为当前时刻(优先级被降为低的时刻)至时间段M结束的时间。是否采用时间窗限制机制可通过配置寄存器组1012实现,如果不采用时间窗限制机制,则通过时间窗限制处理模块1018的优先级信号保持不变。低优先级生命周期随着突发传递,当突发获得顶层仲裁器100的响应或者低优先级生命周期为0后,低优先级生命周期结束,突发的优先级将被重新提升为高。
参见图8,所示为顶层仲裁器100的功能模块图。顶层仲裁器100包括状态机1001、计算模块1003、第四多路选择器1007、第二多路选择器1005及第一多路选择器1004。状态机1001控制顶层仲裁器100的工作状态;计算模块1003进行仲裁计算,决定选通哪一路输入,在本实施例中只有两路输入信号供顶层仲裁器100选择,就是次顶层第一仲裁器101的输出缓存102以及次顶层第二仲裁器103的输出缓存104;第四多路选择器1007对输入的请求类别信号进行选择,该请求类别信号包括三种,分别为IDLE(表示无请求)、REQ(表示对带宽要求高的主单元的请求)、CREQ(对延时要求高的主单元的请求);第二多路选择器1005对突发标志信号进行选择;第一多路选择器1004对其他输入信号进行选择。
计算模块1003的仲裁计算采用固定优先级算法,即HCREQ>HREQ>LREQ>LCREQ,且顶层仲裁器100还有一条原则就是对延时要求高的主单元的串突发可打断对带宽要求高的主单元的串突发,而对带宽要求高的主单元的串突发不得打断对延时要求高的主单元的串突发,具体可参照上述顶层仲裁器100的状态机介绍。
参见图9,所示为本发明的一个实施例的缓存的功能模块图,因本实施例所有缓存结构相同,故在此仅以缓存102为例进行说明。缓存102包括缓存控制器1021、突发标志转换模块1022、优先级提升模块1023、第一存储模块1024、第二存储模块1025及多路选择器1026。缓存控制器1021用于控制两个存储模块的先进先出顺序;突发标志转换模块1022在特定的条件下将缓存内为LAST的突发标志转换为JOIN;优先级提升模块1023根据上级仲裁器的寄存器配置,对第二类请求进行赋予生命周期的操作,并对第一类请求和第二类请求的低优先级生命周期进行计算,当生命周期结束时进行优先级提升,当生命周期未结束而请求获得响应时,该生命周期随着该请求被上传到上级缓存。本实施例中,之所以利用上级仲裁器对缓存102进行配置是为了降低硬件的复杂程度;第一存储模块1024和第二存储模块1025分别用于存储两个请求;多路选择器1026对第一存储模块1024和第二存储模块1025的输出进行选择。
以下对在缓存中进行的突发标志转换操作和优先级提升操作的几种状况进行说明。在本实施例中,缓存102只负责存储和处理第二类突发,为便于说明,第一类突发的存储和处理也以缓存102为例进行说明。
当系统采用优先级提升机制时,缓存的优先级提升模块根据上级第二仲裁器的配置,对第二类请求赋予生命周期。同时优先级提升模块对缓存内第二类请求的生命周期进行倒计数,生命周期结束时,优先级提升模块将通过缓存控制器把该优先级提升为高。
当系统采用优先级提升机制时,若缓存中当前被选通的存储模块中的请求的优先级为低,另一存储模块中的请求的优先级为高,那么优先级提升模块就会通过缓存控制器把当前被选通的存储模块中的请求的优先级提升为高。
当系统采用优先级提升机制时,若缓存输入端有优先级为高的请求,那么缓存中的请求的优先级都将被提升为高。
当系统采用时间窗限制机制时,若缓存中有优先级为低的第一类请求,优先级提升模块将对该等第一类请求的生命周期进行倒计数,生命周期结束时,优先级提升模块将通过缓存控制器把该等第一类请求的优先级提升为高。
当系统采用突发标志转换机制时,若缓存中最后输入的请求的突发标志为LAST,当检测到缓存的输入端有请求输入时,所述的最后输入的请求的突发标志就被转换为JOIN。
当系统采用突发标志转换机制时,若某一缓存在当前时钟周期没有获得响应,该缓存的一个存储单元中有一突发标志为LAST的突发而另一存储单元为空,且当前时钟周期该缓存的输入端没有请求输入,如果该缓存收到下级仲裁器发出的下一个时钟周期将会有请求输入的指示时,该缓存将把所述的突发标志由LAST转换为JOIN。这样可保证即使所述的突发标志为LAST的突发将在下一个时钟周期被输出,该缓存的上一级仲裁器仍然来得及进行预仲裁,实现两个串突发的连续输出。
如果当前时钟周期缓存获得上级仲裁器的响应,则缓存当前被选通的存储模块不作优先级提升和串突发标志转换。
另外,若系统不采用优先级提升机制和时间窗限制机制,则只有两种优先级的请求在顶层仲裁器中竞争,即HCREQ和LREQ。在这种方案中,顶层仲裁器只要发现第一类请求就将其输出,无论当时是否有第二类串突发正在输出。
本发明可以用其它具体形式来实施,而不背离其精神或基本特征。所述的实施例在所有方面都被认为仅是说明性的而非限制性的。
Claims (1)
1.一种总线仲裁方法,适用于串突发数据传输,每个串突发由一个或一个以上突发组成,每个突发携带一个突发标志,包括两种突发标志,即第一突发标志与第二突发标志,所述第二突发标志表示串突发的最后一个突发所携带的突发标志,所述第一突发标志表示除所述最后一个突发之外所述串突发中的其余突发所携带的突发标志,其特征在于:
还包括第三突发标志;
当系统检测到携带第二突发标志的突发后还有其他串突发时,则将该第二突发标志转换为第三突发标志;
当仲裁器检测到第三突发标志时进行预仲裁。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006100247940A CN100449515C (zh) | 2006-03-17 | 2006-03-17 | 总线仲裁方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006100247940A CN100449515C (zh) | 2006-03-17 | 2006-03-17 | 总线仲裁方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101038573A CN101038573A (zh) | 2007-09-19 |
CN100449515C true CN100449515C (zh) | 2009-01-07 |
Family
ID=38889484
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006100247940A Expired - Fee Related CN100449515C (zh) | 2006-03-17 | 2006-03-17 | 总线仲裁方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100449515C (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102541506B (zh) * | 2010-12-29 | 2014-02-26 | 深圳市恒扬科技有限公司 | 一种fifo数据缓存器、芯片以及设备 |
CN104951414B (zh) * | 2014-03-24 | 2018-10-12 | 联想(北京)有限公司 | 一种控制方法及电子设备 |
CN107844442A (zh) * | 2016-09-19 | 2018-03-27 | 深圳市中兴微电子技术有限公司 | 请求源响应的仲裁方法及装置 |
CN114925004B (zh) * | 2022-07-19 | 2022-10-21 | 中科声龙科技发展(北京)有限公司 | 轮询仲裁器及其轮询仲裁方法和芯片 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6141713A (en) * | 1997-06-26 | 2000-10-31 | Hyundai Electronics Industries Co., Ltd. | Bus arbitrator with a hierarchical control structure |
US6385678B2 (en) * | 1996-09-19 | 2002-05-07 | Trimedia Technologies, Inc. | Method and apparatus for bus arbitration with weighted bandwidth allocation |
CN1366247A (zh) * | 2001-01-18 | 2002-08-28 | 深圳市中兴集成电路设计有限责任公司 | 一种具有改进结构的pci桥 |
-
2006
- 2006-03-17 CN CNB2006100247940A patent/CN100449515C/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6385678B2 (en) * | 1996-09-19 | 2002-05-07 | Trimedia Technologies, Inc. | Method and apparatus for bus arbitration with weighted bandwidth allocation |
US6141713A (en) * | 1997-06-26 | 2000-10-31 | Hyundai Electronics Industries Co., Ltd. | Bus arbitrator with a hierarchical control structure |
CN1366247A (zh) * | 2001-01-18 | 2002-08-28 | 深圳市中兴集成电路设计有限责任公司 | 一种具有改进结构的pci桥 |
Also Published As
Publication number | Publication date |
---|---|
CN101038573A (zh) | 2007-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101038574A (zh) | 总线仲裁装置 | |
US7305510B2 (en) | Multiple master buses and slave buses transmitting simultaneously | |
EP0587865B1 (en) | Sharing of bus access among multiple state machines with minimal wait time and prioritization of like cycle types | |
CN101383712B (zh) | 一种片上网络的路由节点微结构 | |
US7797467B2 (en) | Systems for implementing SDRAM controllers, and buses adapted to include advanced high performance bus features | |
US20060221931A1 (en) | On-chip inter-subsystem communication including concurrent data traffic routing | |
US6519666B1 (en) | Arbitration scheme for optimal performance | |
CN100481048C (zh) | 总线仲裁方法 | |
KR20050043426A (ko) | 파이프라인 버스 시스템에서 커맨드 전송 방법 및 장치 | |
US6996684B2 (en) | Multiple-grant controller with parallel arbitration mechanism and related method | |
CN100449515C (zh) | 总线仲裁方法 | |
US7543093B2 (en) | Method and system for stream burst data transfer | |
CN1838103A (zh) | 减少微处理器系统中的存储器等待时间的系统和方法 | |
EP1811394B1 (en) | An arbitrator and its arbitration method | |
CN100481047C (zh) | 总线仲裁方法 | |
US5241629A (en) | Method and apparatus for a high performance round robin distributed bus priority network | |
AU2022259481A1 (en) | Event-driven readout system with non-priority arbitration for multichannel data sources | |
CN1191530C (zh) | 多命令部件共用主控器的pci主桥 | |
JPS593614A (ja) | 優先順位制御方式 | |
US7047284B1 (en) | Transfer request bus node for transfer controller with hub and ports | |
US5664213A (en) | Input/output (I/O) holdoff mechanism for use in a system where I/O device inputs are fed through a latency introducing bus | |
CN115269467B (zh) | 一种总线仲裁的方法、装置、存储介质及电子设备 | |
CN1581124A (zh) | 多设备系统中的通信子系统及其通信方法 | |
CN101324871A (zh) | 无等待动态优先级的pci总线仲裁扩展器 | |
CN1365059A (zh) | 一种具有改进结构的微处理器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090107 Termination date: 20120317 |