总线仲裁方法

文档序号:6555359阅读:375来源:国知局
专利名称:总线仲裁方法
技术领域
本发明涉及一种总线仲裁方法。
背景技术
计算机系统包括主单元(MASTER)与从单元(SLAVE),主单元与从单元之间的数据交换都是通过总线(BUS)完成的。当一个主单元要对一个从单元进行访问时,先向总线发出请求,总线仲裁器对收到的请求进行仲裁,选出优先秩序最高的请求,该优先秩序最高的请求所对应的主单元才能控制总线访问相应的从单元。各主单元对总线带宽(Bandwidth)和延时(Latency)有一定的要求,比如,中央处理器(CPU)对延时要求较高,而视频处理模块对带宽要求较高。一般而言,对延时要求高的主单元发出的请求会被赋予高优先级,而对带宽要求高的主单元会被赋予低优先级,这样,对延时要求高的主单元发出的请求就能尽早获得总线响应,从而防止系统发生错误。但是,对带宽要求高的主单元的请求对延时也有一定的要求,若这一类请求在相当长的一段时间内得不到总线的响应,也会造成系统错误,为了防止这种错误的发生,现有技术采用了提升优先级的方法。
请参美国专利第6385678号说明书第5栏第28行至第6栏第63行,其揭示了如下解决方案。在带宽分配控制模块1002中根据对应主单元对延时的要求设置一个时间段T,带宽分配控制模块1002控制对应的仲裁器,当该仲裁器收到对应主单元所发出的请求时对所述的时间段T进行倒计时,若时间段T倒计时完毕而该请求仍然未获得该仲裁器的响应,那么提升该请求的优先级,以保证该请求在规定的时间内得到响应。
但上述的方案仍然存在以下不足之处第一,芯片布线难度高;第二,组件化程度不高;第三,对被响应时间的控制不够精确,详述如后。
因为现有技术是通过带宽分配控制模块1002控制仲裁器进行优先级提升,为提高可配置性,带宽分配控制模块1002需要与所有的仲裁器连接,以便根据具体需求对相应的仲裁器进行控制。但如此一来就会造成芯片布线过于复杂,使分级仲裁(Hierarchical)失去其原本在布线上的优势,而且,若要增加仲裁架构的级数就要重新设计布线以及带宽分配控制模块1002,因此其组件化程度不高,通用性不佳。请求的被响应时间是指请求从发出到获得顶层仲裁器响应的这段时间,现有技术是通过在某一个仲裁器根据需求提升请求的优先级对请求的被响应时间进行控制。如果通过较低层的仲裁器对请求进行优先级提升,那么可能出现请求较顺利地获得该仲裁器的响应(未提升优先级)但被堵塞在较高层的仲裁器的情况,无法保证其在规定延时内获得顶层仲裁器的响应;如果通过较高层的仲裁器对请求进行优先级提升,那么可能出现请求在较低层仲裁器被堵塞的时间已经超过规定的最长延时,也无法保证其在规定延时内获得顶层仲裁器的响应,现有技术显然无法精确控制请求的被响应时间。
有鉴于现有技术存在的以上缺陷,亟需设计一种新的总线仲裁方法,以克服现有技术存在的上述缺陷,减少因此而产生的系统错误。

发明内容
有鉴于现有技术存在的以上缺陷,亟需设计一种新的总线仲裁方法,以克服现有技术存在的上述缺陷。
本发明提供一种总线仲裁方法,用于总线仲裁器,该总线仲裁方法设有第一优先级与第二优先级,其中,第二优先级高于第一优先级,所述方法包括以下步骤赋予第一优先级的请求一个生命周期;对所述的生命周期进行倒计时;当所述生命周期结束时,把所述的请求的优先级提升为第二优先级;其中,所述的生命周期随着请求被传递。
如上所述的总线仲裁方法,其特征在于,该总线仲裁方法用于多级总线仲裁系统,该多级总线仲裁系统包括一个以上仲裁器和一个以上缓存,仲裁器与主单元之间以及仲裁器之间以缓存耦合,所述步骤在缓存中进行。
如上所述的总线仲裁方法,其特征在于,所述缓存具有用于存储优先级信号的第一寄存器和存储第一优先级生命周期的第二寄存器。
如上所述的总线仲裁方法,其特征在于,若第一寄存器中存储的优先级信号为第二优先级,表示请求没有第一优先级生命周期,或者请求的第一优先级生命周期无效,此时无需进行优先级提升,也无需对第一优先级生命周期进行倒计时。
如上所述的总线仲裁方法,其特征在于,若第一寄存器中存储的优先级信号为第一优先级,且第二寄存器没有第一优先级生命周期,那么,对请求进行第一优先级生命周期的初始化赋值。
如上所述的总线仲裁方法,其特征在于,若第一寄存器中存储的优先级信号为第一优先级,且第二寄存器中有第一优先级生命周期,那么,暂时保持该请求的优先级信号不变,对第一优先级生命周期进行倒计时。
如上所述的总线仲裁方法,其特征在于,若第一寄存器中存储的优先级信号为第一优先级,且第二寄存器中的第一优先级生命周期为0,此时第一优先级生命周期结束,需要提升该请求的优先级为第二优先级。
通过利用本发明的总线仲裁方法,可较为精确地控制请求的被响应时间。


图1为本发明总线仲裁装置的结构简图。
图2为本发明缓存的功能模块图。
图3为本发明优先级提升模块的功能模块图。
具体实施例方式
在一个计算系统中,大致可将主单元分为两类,对延时要求高的主单元和对带宽要求高的主单元。对延时要求高的主单元发出的请求需要总线及时响应,否则可能导致系统出错,以数字电视解码芯片为例,中央处理器(CPU)、解复用模块(DEMUX)就是对延时要求高的主单元;对带宽要求高的主单元的数据吞吐量大,以数字电视解码芯片为例,视频解码模块就是对带宽要求高的主单元。为便于说明,以下称对延时要求高的主单元为第一类主单元,其请求为第一类请求,其突发(Burst)为第一类突发,其串突发(Stream Burst)为第一类串突发,而对带宽要求高的主单元为第二类主单元,其请求为第二类请求,其突发为第二类突发,其串突发为第二类串突发。
系统设计时,SDRAM被划分成若干个部分,分配给对应的主单元作为专用的存储空间。为提高数据传输效率,把分配给前述两种主单元的存储空间尽量安排在不同的逻辑存储库(BANK)中,因为在本实施例中,第一类串突发打断第二类串突发的频率较高,这样分配可使不同的主单元对SDRAM的访问尽量在逻辑存储库之间进行切换,以节省行预充电的时间。
本实施例把第一类主单元和第二类主单元进行分组分级仲裁,以便较为精确地控制两种主单元占用总线的时间。为避免两个连续的对SDRAM的操作在相同的逻辑存储库的不同行之间进行切换而引发的效率降低,同时也为简化设计,本实施例规定了以下仲裁原则组内串突发不得相互打断;在顶层仲裁器中第一类串突发可打断第二类串突发,第二类串突发不得打断第一类串突发。
本实施例分配给第一类请求两种优先级,分别为HCREQ和LCREQ,分配给第二类请求两种优先级,分别为HREQ和LREQ,这四种优先级的优先级秩序为HCREQ>HREQ>LREQ>LCREQ。其中,第一类请求默认以HCREQ的优先级参与竞争,而第二类请求默认以LREQ的优先级参与竞争。
仲裁级数取决于主单元的数量、仲裁器的仲裁接口数量以及耦接方式,为便于进行说明,本实施例的所有非顶层仲裁器的仲裁接口数量均为2,当然这个数量可根据具体需求而改变,比如设置4个仲裁接口。请参图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中进行竞争。
简言之,本发明是通过以下方法实现对请求的被响应时间进行精确控制的。首先,为低优先级请求设置一个低优先级生命周期;接着,对该低优先级生命周期进行倒计时;最后,当该低优先级生命周期结束时,提升该请求的优先级,其中,低优先级生命周期随着请求传递,也就是说当请求被上传到上级缓存时,其生命周期同时被上传到上级缓存。下面将结合实施例对本发明进行具体说明。
请参图2,为本发明缓存的功能模块图,因本实施例所有缓存结构相同,故在此仅以缓存102为例进行说明。缓存102包括缓存控制器1021、突发标志接收模块1022、优先级提升模块1023、第一存储模块1024、第二存储模块1025及多路选择器1026。第一存储模块1024和第二存储模块1025分别用于存储两个请求;多路选择器1026对第一存储模块1024和第二存储模块1025的输出进行选择;缓存控制器1021用于控制两个存储模块的先进先出(FIRST INFIRST OUT)顺序;突发标志接收模块1022用于接收突发标志(因为本实施例采用串突发数据传输模式,所以每个突发都携带有突发标志);优先级提升模块1023根据上级仲裁器的寄存器配置,对低优先级请求进行初始化的低优先级生命周期赋值,对低优先级生命周期进行倒计时,以及对优先级进行提升。
请参图3,为本发明缓存的优先级提升模块的功能模块图。优先级提升模块1023包括控制模块10231、多路选择器10232、多路选择器10233以及减法器10234。另外,图3中寄存器10251为缓存102中第二存储模块1025用于存储优先级信号(高或低)的寄存器,而寄存器10252为缓存102中第二存储模块1025用于存储低优先级生命周期的寄存器。在此需要说明的是,本实施例对应第一存储模块1024与第二存储模块1025均设有如上所述的优先级提升功能模块,为便于说明,在此仅以第二存储模块1025为例进行详细说明。另外,虽然缓存102为耦接于顶层仲裁器100的缓存,由于本实施例中的缓存结构相同,为便于说明,后述对第二类请求的优先级提升的说明将以缓存102为例进行说明。
请再参图3,寄存器10252的输入端与多路选择器10233的输出端耦合,多路选择器10233有四路输入,分别为控制模块10231对请求的低优先级生命周期的初始化赋值,下级缓存输入的生命周期值,减法器10234(实现对低优先级生命周期的倒计时)的输出以及寄存器10252的输出(保持寄存器10252的值不变),多路选择器10233的输出选择由控制模块10231控制。
寄存器10251的输入端与多路选择器10232的输出端耦合,多路选择器10232有三路输入,分别为下级缓存输入的优先级信号,控制模块10231输出的优先级信号(提升优先级)以及寄存器10251的输出(保持寄存器10251的值不变)。
每个时钟周期,控制模块10231都会对寄存器10251中存储的优先级信号以及寄存器10252中存储的低优先级生命周期值进行检测。
若寄存器10251中存储的优先级信号为高,表示该请求没有低优先级生命周期,或者该请求的低优先级生命周期无效,此时无需进行优先级提升,也无需对低优先级生命周期进行倒计时。控制模块10231选择寄存器10251的输出为多路选择器10232的输出,选择寄存器10252的输出为多路选择器10233的输出,保持两个寄存器的值不变。
若寄存器10251中存储的优先级信号为低,且寄存器10252中没有低优先级生命周期,那么,控制模块10231根据上级第二仲裁器的配置,对该请求进行低优先级生命周期的初始化赋值。此时,控制模块10231选择寄存器10251的输出为多路选择器10232的输出,暂时保持该请求的优先级信号不变,选择控制模块10231输出的低优先级生命周期为寄存器10251的输出,对该请求进行低优先级的初始化赋值。
若寄存器10251中存储的优先级信号为低,且寄存器10252中有低优先级生命周期,那么,控制模块10231选择寄存器10251的输出为多路选择器10232的输出,暂时保持该请求的优先级信号不变,选择减法器10234的输出为多路选择器10233的输出,对低优先级生命周期进行倒计时。
若寄存器10251中存储的优先级信号为低,且寄存器10252中的低优先级生命周期为0,此时低优先级生命周期结束,需要提升该请求的优先级为高。控制模块10231选择控制模块10231输出的高优先级信号为多路选择器10232的输出,提升该请求的优先级,选择寄存器10252的输出为多路选择器10233的输出,保持低优先级生命周期的值不变。
若第二存储模块1025为空,且有请求输入,那么控制模块10231选择下级缓存(或者主单元)的输入为多路选择器10232和多路选择器10233的输出。
本实施例的第二类请求默认以低优先级参与竞争,为了尽量精确地控制请求的被响应时间,本实施例在与第二类主单元耦接的缓存内对第二类请求进行低优先级生命周期的赋值。
权利要求
1.一种总线仲裁方法,该总线仲裁方法设置有第一优先级与第二优先级,其中,第二优先级高于第一优先级,其特征在于,该方法包括以下步骤赋予第一优先级的请求一个生命周期;对所述的生命周期进行倒计时;当所述的生命周期结束时,把所述的请求的优先级提升为第二优先级;其中,所述的生命周期随着请求被传递。
2.如权利要求1所述的总线仲裁方法,其特征在于,该总线仲裁方法用于多级总线仲裁系统,该多级总线仲裁系统包括一个以上仲裁器和一个以上缓存,仲裁器与主单元之间以及仲裁器之间以缓存耦合,所述步骤在缓存中进行。
3.如权利要求2所述的总线仲裁方法,其特征在于,所述缓存包括用于存储优先级信号的第一寄存器和存储第一优先级生命周期的第二寄存器。
4.如权利要求2所述的总线仲裁方法,其特征在于,若第一寄存器中存储的优先级信号为第二优先级,表示请求没有第一优先级生命周期,或者请求的第一优先级生命周期无效,此时无需进行优先级提升,也无需对第一优先级生命周期进行倒计时。
5.如权利要求2所述的总线仲裁方法,其特征在于,若第一寄存器中存储的优先级信号为第一优先级,且第二寄存器没有第一优先级生命周期,那么,对请求进行第一优先级生命周期的初始化赋值。
6.如权利要求2所述的总线仲裁方法,其特征在于,若第一寄存器中存储的优先级信号为第一优先级,且第二寄存器中有第一优先级生命周期,那么,暂时保持该请求的优先级信号不变,对第一优先级生命周期进行倒计时。
7.如权利要求2所述的总线仲裁方法,其特征在于,若第一寄存器中存储的优先级信号为第一优先级,且第二寄存器中的第一优先级生命周期为0,此时第一优先级生命周期结束,需要提升该请求的优先级为第二优先级。
全文摘要
本发明提供一种总线仲裁方法,用于总线仲裁器,该总线仲裁方法设置有第一优先级与第二优先级,其中,第二优先级高于第一优先级,该方法包括以下步骤赋予第一优先级的请求一个生命周期;对所述的生命周期进行倒计时;当所述的生命周期结束时,把所述的请求的优先级提升为第二优先级;其中,所述的生命周期随着请求被传递。通过利用本发明的总线仲裁方法,可较为精确地控制请求的被响应时间,保证请求在规定的时间内获得响应。
文档编号G06F13/36GK101046787SQ20061002533
公开日2007年10月3日 申请日期2006年3月31日 优先权日2006年3月31日
发明者张亚林, 邓良策 申请人:上海奇码数字信息有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1