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

文档序号:8430671阅读:506来源:国知局
在多个通道之间仲裁以存取一资源的方法和装置的制造方法
【技术领域】
[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为从多个端口上I次转址的存取序列;
[0016]图4B为从多个端口上以连续4次转址的存取序列;
[0017]图5为本发明的一个实施例在多个通道之间仲裁的一个流程图;
[0018]图6为一个仲裁器的简图,其中,该仲裁器具有依照本发明的一个实施例中的整合有平均加权排序的动态学习的流量控制方案。
[0019]附图标记说明:100-系统芯片;101-双倍数据率同步动态随机存取内存(DDRSDRAM)模块;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_通道之间仲裁的流程步骤I ;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 (OblOOOOOOO)。在一个实施例中,当为通道产生的目前指令是转址存取到最后一个命令时,一个通道背对背地址计数器303会增加。例如,如果目前指令的起始地址为16和最后一个命令的最后一个地址为15,目前指令的地址是接续在最后一个命令的地址时,目前指令是转址存取到最后一个命令。另一方面,在一个实施例中,当目前指令不是转址存取最后一个命令时,该背对背地址计数器304会减少。导致,该背对背地址计数器将记录一个通道的转址存取活动;以及当转址存取频繁发生时,背对背地址计数器的值会到预设临界值302。否则,将它会低于预设临界值。如果一个通道会经常做转址存取,该仲裁器将允许该通道做更多的转址存取以增加选对内存分页的正确率。
[0024]在一个实施例中,如果发生溢位(overflow)的情况,每个背对背地址计数器会停在Obllllllll,如果发生下溢(underflow)的情况,每个地址计数器会停止在0b00000000。在一个实施例中,每个背对背地址计数器的临界值被设定为Obl 1111111或Obl 1000000。请注意,背对背地址计数器的宽度可以根据设计来设定,因此背对背地址计数器的溢位的情况只能发生在某些特定的情况下。
[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次的存取,而
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1