在多个通道之间仲裁以存取一资源的方法和装置转让专利

申请号 : CN201410840151.8

文献号 : CN104750640B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 陈昭宇范姜敏容黄荣吉

申请人 : 创意电子股份有限公司台湾积体电路制造股份有限公司

摘要 :

本发明公开一种在多个通道之间存取一个资源的仲裁方法和装置,其中,在多个通道之间存取一个资源的仲裁方法包括以下步骤:提供每个通道一个背对背地址计数器,对每个背对背地址计数器设定一个初始值和一个预设临界值,其中,依据每一个通道对资源的存取动作来更新每一背对背地址计数器;以及,以一个连续范围的设定值设定一个通道连续存取该资源的连续次数上限;当一个通道背对背地址计数器的值高于该通道的预设临界值时,使用该通道的连续存取次数为该通道所设定的连续次数上限。

权利要求 :

1.一种在多个通道之间仲裁以存取一资源的方法,其特征在于,包括以下步骤:分别提供该多个通道中的每一通道一个背对背地址计数器,其中每一背对背地址计数器被设定用以反应相对应通道的一要求者要求;

对每一背对背地址计数器设定一个初始值和一预设临界值,其中,该每一背对背地址计数器是依据该每一背对背地址计数器反应相对应通道的该要求者要求对该资源进行一存取动作时进行更新;以及,提供一连续范围的设定值,用以限定一个通道对该资源背对背连续存取的次数上限;

当一个通道对该资源连续存取,当在该连续存取期间该通道对应的背对背地址计数器的值高于该通道的预设临界值时,则该通道对该资源背对背连续存取的次数上限为该连续范围的设定值。

2.如权利要求1所述的方法,其中,该资源为一个内存模块。

3.如权利要求2所述的方法,其中,该内存模块包括双倍数据率动态随机存取内存。

4.如权利要求1所述的方法,其中,每一通道依据其带宽需求被指定一加权值。

5.如权利要求1所述的方法,其中,当接通电源时,每个背对背地址计数器为8位宽,且该背对背地址计数器的初始值设为128。

6.如权利要求1所述的方法,其中,当目前指令是转址存取最后一个命令时,每一通道背对背地址计数器增加1。

7.如权利要求1所述的方法,其中,当目前指令不是转址存取最后一个命令时,每一通道背对背地址计数器减少1。

8.如权利要求5所述的方法,如果发生溢位,每一背对背地址计数器停在0b11111111。

9.如权利要求5所述的方法,其中,如果发生下溢,每一背对背地址计数器停在

0b00000000。

10.如权利要求5所述的方法,其中,每一背对背地址计数器的临界值被设定为

0b11111111或0b11000000。

11.如权利要求1项所述的方法,预设的连续次数的上限为4、8或16。

12.一种在多个通道之间仲裁以存取一个资源的装置,其特征在于,包括:多个背对背地址计数器,其中,每一背对背地址计数器分别与一个通道相关联,其中,每一背对背地址计数器被设定一个初始值和一个预设临界值,其中每一背对背地址计数器被设定用以反应相对应通道的一要求者要求,其中每一背对背地址计数器的更新是依据该每一背对背地址计数器反应相对应通道的该要求者要求对资源进行一存取动作时来进行更新;以及,以一个连续范围的设定值设定一个通道连续存取该资源的连续次数上限;

其中,当一个通道对该资源连续存取,当在该连续存取期间该通道对应的背对背地址计数器的值高于该通道的预设临界值时,使用该通道的连续存取次数为该通道所设定的连续次数上限。

13.如权利要求12所述的装置,其中,该资源为一个内存模块。

14.如权利要求13所述的装置,其中,该内存模块包括双倍数据率同步动态随机存取内存。

15.如权利要求12所述的装置,其中,每一通道依据其带宽需求被指定一加权值。

16.如权利要求12所述的装置,其中,当接通电源时,每一背对背地址计数器为8位宽,且该背对背地址计数器的初始值设为128。

17.如权利要求12所述的装置,其中,当目前指令为转址存取最后一个命令时,每一通道背对背地址计数器增加1。

18.如权利要求16所述的装置,如果发生溢位,每一背对背地址计数器停在

0b11111111。

19.如权利要求16项所述的装置,其中,如果发生下溢,每一背对背地址计数器停在

0b00000000。

20.如权利要求16所述的装置,其中,每一背对背地址计数器的临界值被设定为

0b11111111或0b11000000。

说明书 :

在多个通道之间仲裁以存取一资源的方法和装置

技术领域

[0001] 本发明一般是用在一个内存通道存取一个内存时,特别是,当多个内存通道持续存取该内存时,用在内存通道的信息流量控制。

背景技术

[0002] 在传统的仲裁器设计中,当在决定仲裁加权时,只考虑到带宽的要求。但是,当一个通道一直存取一个包含动态存取内存(DRAM)或类似的设备的内存模块,为了减少有效指令的预充电和处理时间,内存地址的区域性和连续性因素是考虑的重要因素。
[0003] 如图1所示,以往在一个系统芯片(SOC)100上,一个仲裁器105被用于仲裁从中央处理器102的直接内存存取(DMA)引擎A 103和直接内存存取(DMA)引擎B 104经由一个双倍数据率同步动态随机存取内存(DDR SDRAM)控制器核心和实际接口106到一个系统内存,该系统内存就像是双倍数据率同步动态随机存取内存(DDR SDRAM)模块101。该仲裁器105通常使用一个平均加权算法,以每个端口的加权设定值,在所有的端口之间来分享该系统内存的带宽。然而,当内存被多个通道同时存取时,以平均加权仲裁算法来分享内存的带宽,由于算法需要处理重新排序和失序的问题,以提高选到记忆仲裁体分页的正确率,这将会降低内存存取的效能。
[0004] 因此,我们需要的是一个新的仲裁方案,以解决重新排序和失序的问题,来获得在内存通道中选对内存分页的最佳正确率。

发明内容

[0005] 本发明的目的之一是提供一个快速进行仲裁信息流量的方案去控制信息流量,来获得在内存通道中选对内存分页的最佳正确率。
[0006] 在一个实施例中,用于高选对内存分页正确率的该快速进行仲裁信息流量的方案,可以整合原有的分配带宽的算法,来获得内存通道的最佳效能。
[0007] 在一个实施例中,一种在多个通道之间存取一个资源的仲裁方法包括以下步骤:分别提供每一通道一个背对背地址计数器;对每一背对背地址计数器设定一个初始值和一个预设临界值,其中,该背对背地址计数器依据相对应的通道对资源的存取动作进行更新;
以及,提供一个连续范围的设定值,用以限定一个通道对该资源背对背连续存取的次数上限;当一个通道对该资源连续存取而连续存取期间其对应的背对背地址计数器的值高于该通道的预设临界值时,则该通道对该资源背对背连续存取的次数上限为该连续范围的设定值。
[0008] 在一个实施例中,在多个通道之间存取一个内存模块的仲裁方法被应用在同步存取一个具有动态存取内存的内存模块。
[0009] 在一个实施例中,在多个通道之间存取一个资源的仲裁方法含有一个平均加权算法,并依据每个通道的带宽要求来设定每个通道的加权值。
[0010] 在一个实施例中,在多个通道之间仲裁存取一个资源的一个装置包括:多个背对背地址计数器,其中,每一背对背地址计数器分别与一个通道相关联,其中,每一背对背地址计数器被设定一个初始值和一个预设临界值,其中,每一背对背地址计数器的更新依据每一个通道对资源的存取动作来进行;以及,以一个连续范围的设定值设定一个通道连续存取该资源的连续次数上限;其中,当一个通道背对背地址计数器的值高于该通道的预设临界值时,使用该通道的连续存取次数为该通道所设定的连续次数上限。
[0011] 通过附图简要说明与和如下公开实施例的详细描述对本发明的优点、范围和技术细节进行阐述。

附图说明

[0012] 图1为一传统用于仲裁使用元件到系统内存的流量控制算法;
[0013] 图2为一个仲裁器的简图,其中,该仲裁器具有依照本发明的一个实施例的动态学习的流量控制方案;
[0014] 图3为一个背对背地址计数器;
[0015] 图4A为从多个端口上1次转址的存取序列;
[0016] 图4B为从多个端口上以连续4次转址的存取序列;
[0017] 图5为本发明的一个实施例在多个通道之间仲裁的一个流程图;
[0018] 图6为一个仲裁器的简图,其中,该仲裁器具有依照本发明的一个实施例中的整合有平均加权排序的动态学习的流量控制方案。
[0019] 附图标记说明:100-系统芯片;101-双倍数据率同步动态随机存取内存(DDR SDRAM)模块;102-中央处理器;103-直接内存存取(DMA)引擎A;104-直接内存存取(DMA)引擎B;105-仲裁器;106-双倍数据率同步动态随机存取内存(DDR SDRAM)控制器核心和实际接口;201-预设的连续次数上限;202-端口一(背对背地址计数器);203-端口二(背对背地址计数器);204-端口三(背对背地址计数器);205-端口一(中央处理器);206-端口二(直接内存存取);207-端口三(直接内存存取);208-端口一;209-端口二;210-端口三;301-背对背地址计数器的初始值;302-预设临界值;303-通道背对背地址计数器;401-端口一的地址;402-背对背地址计数器的值;403-临界值符合条件;404-中央处理器的端口;405-实际的使用地址系列;421-端口一的地址;422-背对背地址计数器的值;423-临界值符合条件;424-端口二的地址;425-实际的使用地址系列;501-通道之间仲裁的流程步骤1;502-通道之间仲裁的流程步骤2;503-通道之间仲裁的流程步骤3;504-通道之间仲裁的流程步骤4;
601-预设的连续次数上限;602-端口一(背对背地址计数器);603-端口二(背对背地址计数器);604-端口三(背对背地址计数器);605-端口一(中央处理器);606-端口二(直接内存存取);607-端口三(直接内存存取);608-端口一;609-端口二;610-端口三。

具体实施方式

[0020] 本发明详述如下。下列实施例用以呈现最佳实施例而非用以限缩本发明的范畴。
[0021] 本发明公开了一种在多个通道之间存取一个资源的一个仲裁方法。与传统的仲裁方法相比较,所公开的仲裁方法提供了一个更佳效能来增加选对内存分页的正确率。
[0022] 在一个实施例中,请参阅图2,其为根据当前发明的一个实施例的一个具有快速进行学习的流量控制方案的仲裁器200。如图2其具有三个通道经由不同端口连接到该仲裁器来存取该资源,而该资源可以是一个内存模块。该端口一208连接到一个中央处理器;该端口二209连接到一个第一直接内存存取引擎和该端口三210连接到一个第二直接内存存取引擎。共有三个背对背地址计数器,其中,该第一背对背地址计数器202与该中央处理器的端口相关联;该第二背对背地址计数器203与该第一直接内存存取引擎相关联;该第三背对背地址计数器204与该第二个直接内存存取引擎相关联。每个背对背地址计数器被设定一个初始值和一个预设临界值。依据该中央处理器对资源的存取的动作来更新该第一背对背地址计数器202;依据该第一直接内存存取引擎对资源的存取的动作来更新该第二背对背地址计数器203;依据该第二直接内存存取引擎对资源的存取的动作来更新该第三背对背地址计数器204。一个对每个端口预设的连续次数上限201是用于限定一个通道存取该资源的连续次数。当一个通道在使用时,如果一个通道背对背地址计数器的值高于该通道预定义的预设临界值时,该通道的连续使用次数为该通道预设的连续次数上限。
[0023] 请参考图3,其为一个背对背地址计数器300。在一个实施例中,当接通电源时,每个背对背地址计数器位宽度为8和该背对背地址计数器的初始值301被设定为128(0b10000000)。在一个实施例中,当为通道产生的目前指令是转址存取到最后一个命令时,一个通道背对背地址计数器303会增加。例如,如果目前指令的起始地址为16和最后一个命令的最后一个地址为15,目前指令的地址是接续在最后一个命令的地址时,目前指令是转址存取到最后一个命令。另一方面,在一个实施例中,当目前指令不是转址存取最后一个命令时,该背对背地址计数器304会减少。导致,该背对背地址计数器将记录一个通道的转址存取活动;以及当转址存取频繁发生时,背对背地址计数器的值会到预设临界值302。否则,将它会低于预设临界值。如果一个通道会经常做转址存取,该仲裁器将允许该通道做更多的转址存取以增加选对内存分页的正确率。
[0024] 在一个实施例中,如果发生溢位(overflow)的情况,每个背对背地址计数器会停在0b11111111,如果发生下溢(underflow)的情况,每个地址计数器会停止在0b00000000。在一个实施例中,每个背对背地址计数器的临界值被设定为0b11111111或0b11000000。请注意,背对背地址计数器的宽度可以根据设计来设定,因此背对背地址计数器的溢位的情况只能发生在某些特定的情况下。
[0025] 根据设计需求,连续存取的好处可以运用在许多方面。例如,可以在一个周期存取一个的内存模块中的地址,或在一个请求内的多个周期的存取,或者其它合适的方式。对于任何给定的通道,转址存取表示在一个时间间隔内,为该端口存取的地址是连续的,如果为通道存取的地址不是连续的,将停止转址存取,并根据转址存取的活动来更新背对背地址计数器。
[0026] 例如,如在图4A所示的从端口一的一个直接内存存取序列。在一个实施例中,连续存取的好处可以是一个通道上实际存取该内存的周期数。该背对背地址计数器的初始值为128和一个预定义的临界值134。该预设的连续次数上限为8。在开始的时候,端口一的背对背地址计数器的值低于预设临界值,如方框401中的第一系列的地址,分别为20,21,22,23,
24,25,26,27,28,29,2a,2b,2c,2d,2e,2f。在使用地址29后,该背对背地址计数器将增加9,并如方框402中所示,该背对背地址计数器的值等于135,并超过了预设临界值,就如方框
403中所示该预设临界值符合条件的逻辑值为真。此时,端口一因为该预设的连续次数上限,可做一个连续8次的存取,而不会被从中央处理器的端口所发出的存取请求所中断。当该背对背地址计数器的值低于临界值时,中央处理器将通过所连的端口发出中断去暂停端口一的存取。例如在方框404中的地址30和40,将被使用在该端口一地址之间,就像是方框
405中的实际存取模式。然而,如方框404中的中央处理器的端口的地址50,将被延迟直到端口一完成存取地址2f,因为该端口一的使用受连续次数预设上限8次存取的限制,而不会被从中央处理器的端口或另一个端口所发出的存取请求所中断。因此,方框405中所示是实际的使用地址系列。
[0027] 在另一个实施例中,连续存取的好处可以如图4B所示,该通道被授权存取内存的次数。在每个授权存取中,该通道会有多个周期连续存取该内存,就像是在一个单一授权存取中,在一个直接内存存取会有4个周期。该背对背地址计数器的初始值为128和一个预设临界值134。该预设的连续次数上限为8。在开始的时候,端口一的背对背地址计数器的值低于临界值,如方框421中的第一系列的地址,分别为0-3,4-7,8-b,c-f,10-13,14-17,18-1b,1c-1f,20-23,23-27,28-2b,2c-2f。在使用地址23-27后,该背对背地址计数器将增加9,如方框422中所示,该背对背地址计数器的值等于135,该值超过了预设临界值,就如方框423中所示该临界值符合条件的逻辑值为真。此时,端口一因为该预设的连续次数上限,可做一个连续8次的存取,而不会被从端口二所发出的存取请求所中断。当该背对背地址计数器的值低于临界值时,端口二将通过所连的端口发出中断去暂停端口一的存取。例如在方框424中的地址30-33和40-43,将被使用在该端口一地址之间,就像是方框425中的实际存取模式。然而,如方框424中的中央处理器的端口的地址50-53,将被延迟直到端口一完成存取地址2f,因为该端口一的使用受预设的连续次数上限8次存取的限制,而不会被从端口二或另一个端口所发出的存取请求而中断该连续8次的存取。因此,方框425中所示是实际的使用地址系列。
[0028] 在一个实施例中,一种在多个通道之间存取一个资源的仲裁方法包括以下步骤:提供每个通道一个背对背地址计数器;设定每个背对背地址计数器一个初始值和预设临界值,其中,根据由通道对资源的存取的活动来更新该背对背地址计数器;并提供每个通道一个预设的连续次数上限,以限定该通道存取该资源的连续次数,其中,如果一个通道背对背地址计数器的值高于该通道的预设临界值,该通道的连续使用次数会是该通道预设的连续次数上限。
[0029] 请参考图5,根据本发明的一个实施例,在一群通道之间仲裁的流程图500,在步骤501中,分别提供一个背对背地址计数器给每个通道,在步骤502中,设定每个背对背地址计数器一个初始值和一个预设临界值,其中,依据每一个通道对资源的存取动作来更新每一背对背地址计数器;在步骤503中,每个通道设定一个连续次数上限,以限定该通道存取该资源的连续次数,在步骤504中,如果该通道的背对背地址计数器值高于通道的预设临界值,一个通道使用次数会只是通道预设的连续次数上限。根据前述步骤在多个通道之间存取一个资源的仲裁方法,其中,该资源是一个内存模块,其中,该内存模块包括双倍数据率同步动态随机存取内存(DDR SDRAM)。在一个实施例中,一个预设的连续次数上限可以在所有的端口或通道之间共享,来限定对每个通道存取的连续次数。在一个实施例中,每个端口或通道都可以有独立的预设的连续次数上限,以提供更高的使用弹性。
[0030] 请参阅图6,根据本发明的一个实施例,具有平均加权排序在快速进行学习方案的一个仲裁器600。如图6所示,有三个端口608,609和610连接到该仲裁器。有三个背对背地址计数器,其中,该第一背对背地址计数器602相关联于中央处理器的端口;该第二背对背地址计数器603相关联于第一直接内存存取引擎;和该第三背对背地址计数器604相关联于第二个直接内存存取引擎。设定每个背对背地址计数器一个初始值和一个预设临界值。依据中央处理器对资源的存取的动作来更新该第一背对背地址计数器602;依据该第一直接内存存取引擎对资源的存取的动作来更新该第二背对背地址计数器603;依据该第二直接内存存取引擎对资源的存取的动作来更新该第三背对背地址计数器604。一个预设的连续次数上限601是为每个端口限定一个通道存取该资源的连续次数,该资源就像是一个内存模块。如在圆圈605中的该端口一被连接到被设定为最高加权值的一个中央处理器;如在圆圈606的该端口二被连接到被设定为中间加权值的一个第一直接内存存取引擎;如在圆圈607所示的该端口二被连接到被设定为最低加权值的一个第二直接内存存取引擎。可以根据每个端口的带宽要求设定每个端口的加权值。当一个通道是在使用中,在该通道可被允许连续存取的一个仲裁方案,其中,该仲裁方案包括具有平均加权排序在快速进行学习的方案。
也就是说,利用一个漏桶方案的平均加权排序来控制带宽,漏桶的容许值将以固定的时间间隔逐步增加,在通道完成基于快速进行的流量控制方案所做的内存存取,漏桶的容许值可扣减预设的连续次数上限。
[0031] 在一个实施例中,一个预设的连续次数上限可以在所有的端口或通道之间共享,来限定对每个通道存取的连续次数。在一个实施例中,每个端口或通道都可以有独立的预设的连续次数上限,以提供更高的使用弹性。
[0032] 本发明的最佳实施例详述如上。然而此实施例非用以限制本发明,显而易见地,在不脱离本发明的精神与范围内,任何熟习技艺者得以完成许多更动及润饰。本发明的保护范围须视本说明书所附的权利要求范围所界定为准。