CN117891758B - 一种基于仲裁的存储访问系统、处理器及计算设备 - Google Patents
一种基于仲裁的存储访问系统、处理器及计算设备 Download PDFInfo
- Publication number
- CN117891758B CN117891758B CN202410274907.0A CN202410274907A CN117891758B CN 117891758 B CN117891758 B CN 117891758B CN 202410274907 A CN202410274907 A CN 202410274907A CN 117891758 B CN117891758 B CN 117891758B
- Authority
- CN
- China
- Prior art keywords
- access
- arbitration
- requests
- sub
- matrix
- 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.)
- Active
Links
- 239000000872 buffer Substances 0.000 claims abstract description 46
- 239000011159 matrix material Substances 0.000 claims description 67
- 238000010586 diagram Methods 0.000 description 16
- 238000000034 method Methods 0.000 description 4
- 230000010354 integration Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明提供一种基于仲裁的存储访问系统、处理器及计算设备,访问系统包括输入接口、访问缓存、多个存储块、输出缓存,所述输入接口用于接收多个访问请求,每个访问请求均包含多个通道的地址调度请求;所述访问缓存用于存储通道对每一个存储块的地址调度请求队列;存储访问系统被配置为:由所述输入接口接收多个访问请求并将每个访问请求中每个通道对每个存储块的地址调度请求按到达顺序存储在所述访问缓存中;获取所述访问缓存中的访问队列输出并对其进行多级仲裁以获得仲裁结果,仲裁结果是存储块不冲突、通道不冲突且是有效调度请求相对最多的一组地址调度请求;基于仲裁结果进行调度以对存储块进行访问并将访问结果存储在所述输出缓存中。
Description
技术领域
本发明涉及计算机领域,具体来说,涉及计算机领域的存储技术,更具体地说,涉及一种基于仲裁的存储访问系统、处理器及计算设备。
背景技术
存储访问系统是计算机设备领域中不可或缺的装置,存储访问系统具有存储功能,其中存储的数据可被其他硬件通过访问请求读取。现在常见的多输入输出存储访问系统中,一个时钟周期需要支持多个非连续的存储块的读写,所以系统需要有多个存储块(bank)组成。数据的请求一方一次请求多个通道(lane)的地址访问时,存储访问系统返回的数据不能跨通道,但是可以垮请求,通道和存储块之间没有一一对应关系,多个通道可能会访问同一个存储块出现访问冲突,每个通道的输出对应于输出缓存中一个缓存模块,同一个通道中的不同访问结果均存储在同一个缓存模块中。
常见的存储访问系统中配置有若干存储块(bank),由于每个存储块有一个可供访问的端口,多个存储块可同时被访问,但是每个存储块仅支持一个访问。一般的访问请求中都包含多个通道(lane,也叫请求地址),每个通道对应于一个访问,当一个访问请求中多个通道均需要访问同一个存储块时,就存在访问冲突,无法在同一个时钟周期内完成访问,需要通过多次访问才能完成,时延较大,存储块的资源利用率以及访问效率也大大减弱。鉴于此,为了提高存储块的利用率,多访问请求并行访问的方案应运而生,所谓多访问请求并行访问是指同时接收多个访问请求,但是由于每个通道每次只能执行一个访问请求,就将多个访问请求中的多个通道中的访问进行整合重组后对存储块进行多次访问,使得每次访问的的存储块不冲突,从而可以使得每次访问尽可能的访问所有存储块从而提高存储块的利用率,但是这种方案在应用过程中,每次访问均需要遍历所有访问请求的所有通道,会带来较大的时延,并且这种访问的方式可能会存在同一个访问通道中访问不同的存储模块的访问被同时执行,这样会在输出缓存发生冲突,即同一个通道中访问不同存储模块的访问结果需要存储在同一个缓存模块中,就不能在同一个时钟周期内完成,会发生冲突,需要多个时钟周期,从而带来额外的时延。
综上所述,现在存储访问系统存在访问效率低、存储资源利用率交底的问题,亟需一种更加高效并能够提高存储资源利用率的方案。
需要说明的是:本背景技术仅用于介绍本发明的相关信息,以便于帮助理解本发明的技术方案,但并不意味着相关信息必然是现有技术。在没有证据表明相关信息已在本发明的申请日以前公开的情况下,相关信息不应被视为现有技术。
发明内容
因此,本发明的目的在于克服上述现有技术的缺陷,提供效率更高的基于仲裁的存储访问方案。
本发明的目的是通过以下技术方案实现的:
根据本发明的第一方面,提供一种基于仲裁的存储访问系统,包括输入接口、访问缓存、多个存储块、输出缓存,其中,所述输入接口用于接收多个访问请求,每个访问请求均包含多个通道的地址调度请求,每个访问请求中的每个通道访问一个存储块,同一个访问请求中的不同通道访问不同或相同的存储块;所述访问缓存用于按照存储模块存储所有访问请求中的所有通道对每一个存储块的地址调度请求队列;所述多个存储块用于存储可供访问的数据,每个存储块每次支持一个通道的访问;所述输出缓存包括多个缓存模块,一个缓存模块用于缓存一个通道的访问结果;所述存储访问系统被配置为:由所述输入接口接收多个访问请求并将每个访问请求中每个通道对每个存储块的地址调度请求按到达顺序存储在所述访问缓存中;获取所述访问缓存中的访问队列输出并对其进行多级仲裁以获得仲裁结果,其中,仲裁结果是存储块不冲突、通道不冲突且是有效调度请求相对最多的一组地址调度请求;基于仲裁结果进行调度以对存储块进行访问并将访问结果存储在所述输出缓存中。
可选的,所述访问缓存包括多个子访问缓存,每个子访问缓存对应于一个存储块,每个子访问缓存包括数量与通道数量相同的多个访问队列,一个访问队列对应于一个通道,每个访问队列用于存储其所对应通道中来自不同访问请求中的对存储块的地址调度请求队列。
可选的,所述每个访问队列被配置为采用先进先出原则输出队列中的地址调度请求。
优选的,当一个访问队列不为空时,指示该队列对应通道对存储块存在有效调度请求。
优选的,所述系统被配置为:在仲裁开始时,将所述访问队列输出按照存储块序号为行、通道序号为列、访问队列输出为坐标值构建初始访问坐标矩阵,访问坐标矩阵中行列交叉点的坐标值为交叉点对应的通道对与其交叉的存储块的地址调度请求信息,地址调度请求信息为有效调度请求或为空;将初始访问坐标矩阵划分为若干个2*2的子矩阵单元,并以不同的细粒度对子矩阵单元进行多级仲裁以获得仲裁结果,每级仲裁在基于上次仲裁后的结果更新访问坐标矩阵后进行仲裁,其中,细粒度指示的是每级仲裁时对应的子矩阵单元个数。
优选的,所述系统被配置为每次仲裁时执行如下步骤:基于上次仲裁结果更新访问坐标矩阵,其中,更新访问坐标矩阵时保留上一级仲裁时被选择的地址调度请求信息、未被选择的地址调度请求信息对应坐标值置为空;以上一次的每个子矩阵单元构成一个元素,以2*2矩阵元素为单位将更新后的访问坐标矩阵划分为多个新的子矩阵单元,并从每个新的子矩阵单元中选择有效调度请求最多的一条对角线对应的一组地址调度请求。
优选的,所述系统被配置为:在进行任意一级仲裁时,如果一个子矩阵单元的两条对角线上的有效调度请求数量一致,则选择优先级高的有效调度请求所在的对角线对应的一组地址调度请求。
优选的,所述系统被配置为:在进行第二级及其后续的仲裁时,任意一个子矩阵单元已选择的对角线上存在空的坐标值时,从该子矩阵单元其他未被选择的有效调度请求中选择一个补充调度请求,并将补充调度请求与已选择的对角线上的地址调度请求组成该子矩阵单元最终被选择的一组地址调度请求,其中,补充调度请求是与已选择的对角线上的所有有效调度请求对应的通道和存储块均不冲突的可选的有效调度请求。
与现有技术相比,本发明的优点在于:本发明通过解耦多级仲裁,无需遍历所有访问通道中的所有访问请求即可快速得到较优的仲裁结果,有效地提高整个系统的访问性能,并能够保证访问不冲突、输出缓存不冲突。
附图说明
以下参照附图对本发明实施例作进一步说明,其中:
图1为现有技术中存储访问系统架构示意图;
图2为现有技术中存储访问系统架构一种访问请求方案示意图;
图3为现有技术中存储访问系统并行访问请求方案示意图;
图4为根据本发明实施例的存储访问系统架构示意图;
图5为根据本发明实施例的子访问缓存示意图;
图6为根据本发明实施例的第一级仲裁时访问坐标矩阵示例示意图;
图7为根据本发明实施例的第一级仲裁时子矩阵单元仲裁方向示例示意图;
图8为根据本发明实施例的第二级仲裁时访问坐标矩阵示例示意图;
图9为根据本发明实施例的第二级仲裁时子矩阵单元示例示意图;
图10为根据本发明实施例的第二级仲裁时子矩阵单元以左上到右下对角线为仲裁方向的仲裁示意图;
图11为根据本发明实施例的第二级仲裁时子矩阵单元以左下到右上对角线为仲裁方向的仲裁示意图;
图12为根据本发明实施例的第三级仲裁时访问坐标矩阵示例示意图;
图13为根据本发明实施例的第三级仲裁时以左上到右下对角线为仲裁方向的仲裁示意图;
图14为根据本发明实施例的第三级仲裁时以左下到右上对角线为仲裁方向的仲裁示意图。
具体实施方式
为了使本发明的目的,技术方案及优点更加清楚明白,以下结合附图通过具体实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
如在背景技术部分提到的,现有技术中的存储访问系统存在访问效率低和存储资源利用率低的问题,本发明的目的主要是针对该问题提出一种访问效率高且存储资源利用率高的方案。
在介绍本发明的方案前,先结合一个具体的示例介绍一下现有技术中的方案以便更好的理解本发明。
为了方便理解,如图1所示,存储访问系统一般包括输入接口、多个存储块、输出缓存,其中,所述输入接口用于接收多个访问请求,每个访问请求均包含多个通道的地址调度请求,每个访问请求中的每个通道访问一个存储块,同一个访问请求中的不同通道访问不同或相同的存储块;所述多个存储块用于存储可供访问的数据,每个存储块每次支持一个通道的访问;所述输出缓存包括多个缓存模块,一个缓存模块用于缓存一个通道的访问结果。本发明实施例中均以存储访问系统包含8个存储块和8个缓存模块为示例进行展开说明,对应的访问请求中包含8个通道,采用通道与存储块之间的连线来代表通道要访问存储块,其他情况与之类似就不重复举例。
当存储访问系统每次只接收一个访问请求时,如图2所示,访问请求中的8个通道可能存在访问冲突即不同的通道的地址调度请求需要访问同一个存储块(例如图2中的通道1和通道2均需要访问存储块1,在同一个时钟周期就会存在访问冲突),这就无法在同一拍时钟周期内完成访问请求中的所有访问,需要两拍,那么其他已经访问完的通道就需要等待一拍才能返回访问请求中所有的数据,这个时候不仅产生了等待时延,很多存储块也会空闲造成存储资源利用率下降。
当存储访问系统每次接收多个访问请求时,如图3所示,不仅同一访问请求中的多个通道可能存在访问冲突,不同访问请求之间也可能存在访问冲突(即不同访问请求中的不同或相同通道的地址调度请求要访问同一个存储块),现有技术的并行访问方案是每次遍历多个所有访问请求中的所有通道,从而找出一组存储块不冲突的请求来调度执行,这种方式的好处是每次可以极大程度的提高存储块的利用率,缺点是每次需要遍历所有请求中的所有通道,时延较大,并且可能存在输出缓存冲突。
鉴于现有技术中存在的这些问题,本发明提出一种新的方案,如图4所示,本发明通过在存储访问系统设置访问缓存来为每个存储块增加访问队列缓存用于以队列的方式缓存每个通道对每个存储块的访问请求队列,并将队列输出以仲裁的方式获得一组通道不冲突、存储块不冲突且有效调度请求最多的一组地址调度请求,从而实现访问效率和存储资源利用率的双重提高。本发明方案通过增加访问缓存的方式,不用遍历所有访问请求中的所有通道即可获得最优的地址调度请求组合,在提高存储块利用率的同时极大地降低了处理时延。
根据本发明的一个实施例,仍旧参照图4,访问缓存中包含与存储块数量相当的多个子访问缓存,一个子访问缓存对应于一个存储块,每个子访问缓存包括数量与通道数量相同的多个访问队列,一个访问队列对应于一个通道,每个访问队列用于存储其所对应通道中来自不同访问请求中的对存储块的地址调度请求队列。如图4中的所展示的,不同通道与子访问缓存之间的连线代表不同通道对子访问缓存对应存储模块的地址调度请求。如前面背景技术中介绍的,由于存储访问系统返回的数据不能跨通道,一个通道只能访问一个存储块(以单端口存储访问系统为例),存储访问系统就需要设计一套针对多个时钟地址根据多个存储块做整合操作,以保证多个存储块被充分利用。本发明中针对整合所提出的方案是增加一个访问缓存来存储每个存储模块对应于每个通道中的地址调度请求队列,本文以8条通道访问8个存储块为例,存储访问系统在整合前,需要放置64个队列(每个存储块设置8个队列,缓存可能进入该存储块的8条通道中的地址调度请求队列)做访问请求缓存,其他数量通道以及其他数量存储块和缓存模块的情况与之类似就不重复举例。需要说明的是,为了方便描述,本发明中用l1、……、l8分别表示八个通道,用b1、……、b8分别表示8个存储块。
根据本发明的一个实施例,如图4所示,本发明在输入接口处配置访问缓存,并在访问缓存中设置多个子访问缓存以使每个存储块对应于一个子访问缓存,为了方便描述,分别用子访问缓存1、……、子访问缓存8来表示。其中,子访问缓存1中分别存储所有访问请求中每个通道对存储块1的地址调度请求队列,并以此类推。如图5所示,子访问缓存1中包含8个队列,分别表示为队列11、……、队列18,其中队列11中存储所有访问请求中的通道1中对存储块1的地址调度请求形成的队列,以此类推;子访问缓存2中包含8个队列,分别表示为队列21、……、队列28,其中队列21中存储所有访问请求中的通道1中对存储块2的地址调度请求形成的队列,其他子访问缓存与上述子访问缓存1和子访问缓存2相似,此处不过多赘述。通过以队列的形式存储每个访问请求中对每个通道对存储块的地址调度请求,无需遍历所有访问请求中的所有通道,只需以从队列出口经过仲裁选出一组通道不冲突、存储块不冲突的一组地址调度请求来执行即可,以达到时延最小化、存储块利用率最大化的目的。
根据本发明的一个示例,假设如图4所示的存储装置接到4个访问请求,分别为访问请求1、访问请求2、访问请求3、访问请求4,每个访问请求中要访问的存储块如表1所示:
表1:访问请求表
由于有八个存储块,因此,每个子访问缓存中均设置8个队列来分别存储来每个通道中的对该访问缓存对应存储块的地址请求队列,队列采用先进先出原则。
其中,子访问缓存1中存储所有访问请求对存储块1的地址调度请求(为了简化描述,将访问请求1-4中的地址调度请求简写为访1-4,对列11表示通道1中对存储块1的访问队列,后续队列以此类推)如表2所示:
表2:存储块1的地址调度请求
其中,子访问缓存2中存储所有访问请求对存储块2的地址调度请求,如表3所示:
表3:存储块2的地址调度请求
其中,子访问缓存3中存储所有访问请求对存储块3的地址调度请求,如表4所示:
表4:存储块3的地址调度请求
其中,子访问缓存4中存储所有访问请求对存储块4的地址调度请求,如表5所示:
表5:存储块4的地址调度请求
其中,子访问缓存5中存储所有访问请求对存储块5的地址调度请求,如表6所示:
表6:存储块5的地址调度请求
其中,子访问缓存6中存储所有访问请求对存储块6的地址调度请求,如表7所示:
表7:存储块6的地址调度请求
其中,子访问缓存7中存储所有访问请求对存储块7的地址调度请求,如表8所示:
表8:存储块7的地址调度请求
其中,子访问缓存8中存储所有访问请求对存储块8的地址调度请求,如表9所示:
表9:存储块8的地址调度请求
从表1至表9可以看出,无需遍历每个访问请求的每个通道,每次只需要从队列的输出就可以一目了然的获取每一拍时钟周期,每个访问存储模块对应的来自不同通道的地址调度请求,对所有子访问缓存的队列输出进行多级仲裁即可获得通道不冲突、存储模块不冲突的一组地址调度请求。
根据本发明的一个实施例,在仲裁开始时,将所述访问队列输出按照存储块序号为行、通道序号为列、访问队列输出为坐标值构建初始访问坐标矩阵,访问坐标矩阵中行列交叉点的坐标值为交叉点对应的通道对与其交叉的存储块的地址调度请求信息,地址调度请求信息为有效调度请求或为空;将初始访问坐标矩阵划分为若干个2*2的子矩阵单元,并以不同的细粒度对子矩阵单元进行多级仲裁以获得仲裁结果,每级仲裁在基于上次仲裁后的结果更新访问坐标矩阵后进行仲裁,其中,细粒度指示的是每级仲裁时对应的子矩阵单元个数。
仍旧以表1中的示例为例,在进行调度时,每次从队列出口获得输出来进行仲裁。以第一次为例,子访问缓存1的队列出口输出为[访1,访1,空,空,空,空,空,空],子访问缓存2队列出口输出为[访3,访2,访1,空,空,空,空,空],子访问缓存3队列出口输出为[空,访4,访2,访1,访5,空,空,空],子访问缓存4队列出口输出为[空,空,空,访2,访1,访3,空,空],子访问缓存5队列出口输出为[空,空,空,空,访2,空,空,空],子访问缓存6队列出口输出为[空,空,空,空,访4,访1,空,空],子访问缓存7队列出口输出为[空,空,空,空,空,空,访2,访1],子访问缓存8队列出口输出为[空,空,空,空,空,空,访1,访2],然后以存储块为行、通道为列、上述这些输出为行列坐标值构建访问矩阵以对这些输出进行多级仲裁来得到第一次要执行的访问。其中,第一次仲裁时构建的访问矩阵如表10所示:
表10:第一次仲裁时的访问矩阵
针对表10中的64个地址调度请求,依次做三级仲裁,分别如下:
第一级仲裁:
首先将64个地址请求,按照如图6所示的方式分成16组(分别为group0、……、group15),每组为一个2*2的子矩阵单元,每个子矩阵单元里面包含4个调度请求信息,例如,如group0的四个请求分别对应{b1_l1,b2_l1,b1_l2,b2_l2},其中,b1_l1表示通道1中对存储块1的调度请求信息,16个group处理方式完全一致。
为了简化描述,下面以group0为例说明第一级仲裁时每个group的仲裁方式。需要说明的是,为了方便描述,如图7中的(a)所示,group0中每个坐标值用“x”来表示。对于group0来说,在保证没有存储块冲突和通道冲突情况下,只有两种选择,如图7中的(b)和(c)所示。其中,图7中的(b)图按照左上到右下对角线选出的是[{b1,l1}{b2,l2}],图7中的(c)图按照左下到右上对角线选出的是[{b0,l1},{b1,l0}]。一般情况下,在图7中的(b)和(c)之间的仲裁方式有三种情况:
第一种情况:图7中的(b)和(c)中选出的有效调度请求个数不一样时,选择有效调度请求个数多的一组,例如,如果图7中的(b)中有两个有效调度请求,图7中的(c)中只有一个有效调度请求,则选择图7中的(b)中的结果作为仲裁结果。
第二种情况:图7中的(b)和(c)中选出的有效调度请求个数一样时,为了保证仲裁的公平性,可以根据方向作为仲裁的依据,例如这次按照图7中的(b)所示的方向进行仲裁选择图7中的(b)的结果作为仲裁结果,后面的时钟同一子矩阵单元仲裁时就选择图7中的(c)的方向进行仲裁。
第三中情况:图7中的(b)和(c)存在优先级的业务或者长时间没有得到仲裁的请求,需要快速得到响应,则可优先仲裁图7中的(b)或者(c)中存在高优先级仲裁请求的队列。
其他子矩阵单元与group0的仲裁方式一样,就不过多赘述。
第二级仲裁:
将第一级仲裁后的结果用于更新访问坐标矩阵,更新的方式就是将上一级仲裁的结果保留,上一级仲裁中未被选择的调度请求对应位置置为空。如图8所示,将访问坐标矩阵划分为4个新的子矩阵单元,如图8中的1、2、3、4所示区域,并将其描述为G1、G2、G3、G4,其中,图8仅在第一个子矩阵单元G1中示意性地展示了上一级仲裁结果,并不意味着图8所示是上一级仲裁后的全部结果。
从图8可以看出,第一级仲裁后,图8中的第一个子矩阵单元G1对应的是第一级仲裁时的group0、group1、group4、group5,且在group0和group1的仲裁中采用的是图7中的(b)指示的左上到右下对角线的方向,在group4和group5的仲裁中采用的是图7中的(c)指示的左下到右上对角线的方向。同理,如图9所示,第二级仲裁时的第一个子矩阵单元G1在进行仲裁时,与第一级仲裁的原理一致,将其分为左上到右下所示对角线方向和左下到右上所示对角线方向的两组,仲裁方式有多种,本发明实施例中以图10和图11两种仲裁方式进行说明。如果横向由l1/l2 从左向右,l3/l4 从右向左;纵向:b1/b2从下向上,b3/b4从上到下,每个方向只保留最后一个有效调度请求,结果如图10所示。如果横向l1/l2 从右向左,l3/l4从左向右;纵向:b1/b2从上向下,b3/b4从下到上,每个方向只保留最后一个有效调度请求,结果如图11所示。四个方向在逻辑计算中是完全独立的,同时进行计算,假设丢弃的点为1,四个方向的结果做或运算,得到所有丢弃的点,剩下的点都是仲裁出的点。
进行仲裁时,为了保证仲裁的公平性可以选择方向仲裁,例如前一个时钟周期选择如图10所示的左上到右下对角线方向,后一时钟周期就选择如图11所述左下到右上对角线方向;如果存在有优先级的调度请求,则判断优先级调度请求所在的组,如果在左上到右下对角线的组就选择如图10所示方向进行仲裁,反之选择如图11所示方向进行仲裁。
其他子矩阵单元G2-G4的仲裁方式与G1同理,就不过多赘述。
第三级仲裁:
假设第二级仲裁中,G1和G4选择图11所示方向进行仲裁,G2和G3选择图10所示方向进行仲裁,基于第二季仲裁结果更新访问坐标矩阵后得到如图12所示的访问坐标矩阵。同理,如图12所示,第三级仲裁时与第一级仲裁和第二级仲裁的原理一致,将其分为左上到右下所示对角线方向和左下到右上所示对角线方向的两组,仲裁方式有多种,与第二级仲裁方式类似,此处不再过多赘述,第三极仲裁时仲裁方向如图13和14所示,为了保证仲裁的公平性可以选择方向仲裁,例如前一个时钟周期选择如图13所示方向,后一时钟周期就选择如图14所述方向;如果存在有优先级的调度请求,则判断优先级调度请求所在的组,如果在左上到右下的组就选择如图13所示方向进行仲裁,反之选择如图14所示方向进行仲裁。
按照上述仲裁方式对如表10所述的访问坐标矩阵进行仲裁时,假设每级仲裁均选择如图7中的(b)所示的方向,最后的仲裁结果如表11所示:
表11:仲裁结果
从表11可以看出,经过仲裁得到的地址调度请求是通道不冲突、存储块不冲突且能充分利用存储块资源的一组有效调度请求,存储块不冲突能够保证访问不冲突,通道不冲突能够保证输出缓存不冲突,从而极大地提升整个系统的访问性能。在这次仲裁进行访问后,各个访问队列进行更新,持续输出还未被执行的地址调度请求,并进行新的仲裁。
与现有技术相比,本发明通过解耦多级仲裁,无需遍历所有访问通道中的所有访问请求即可快速得到较优的仲裁结果,有效地提高整个系统的访问性能,并能够保证访问不冲突、输出缓存不冲突。
需要说明的是,虽然上文按照特定顺序描述了各个步骤,但是并不意味着必须按照上述特定顺序来执行各个步骤,实际上,这些步骤中的一些可以并发执行,甚至改变顺序,只要能够实现所需要的功能即可。
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以包括但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (10)
1.一种基于仲裁的存储访问系统,包括输入接口、访问缓存、多个存储块、输出缓存,其中:
所述输入接口用于接收多个访问请求,每个访问请求均包含多个通道的地址调度请求,每个访问请求中的每个通道访问一个存储块,同一个访问请求中的不同通道访问不同或相同的存储块;
所述访问缓存用于按照存储模块存储所有访问请求中的所有通道对每一个存储块的地址调度请求队列;
所述多个存储块用于存储可供访问的数据,每个存储块每次支持一个通道的访问;
所述输出缓存包括多个缓存模块,一个缓存模块用于缓存一个通道的访问结果;
所述存储访问系统被配置为:
由所述输入接口接收多个访问请求并将每个访问请求中每个通道对每个存储块的地址调度请求按到达顺序存储在所述访问缓存中;
获取所述访问缓存中的访问队列输出并对其进行多级仲裁以获得仲裁结果,其中,仲裁结果是存储块不冲突、通道不冲突且是有效调度请求最多的一组地址调度请求;
基于仲裁结果进行调度以对存储块进行访问并将访问结果存储在所述输出缓存中。
2.根据权利要求1所述的系统,其特征在于,所述访问缓存包括多个子访问缓存,每个子访问缓存对应于一个存储块,每个子访问缓存包括数量与通道数量相同的多个访问队列,一个访问队列对应于一个通道,每个访问队列用于存储其所对应通道中来自不同访问请求中的对存储块的地址调度请求队列。
3.根据权利要求2所述的系统,其特征在于,所述每个访问队列被配置为采用先进先出原则输出队列中的地址调度请求。
4.根据权利要求3所述的系统,其特征在于,当一个访问队列不为空时,指示该队列对应通道对存储块存在有效调度请求。
5.根据权利要求4所述的系统,其特征在于,所述系统被配置为:
在仲裁开始时,将所述访问队列输出按照存储块序号为行、通道序号为列、访问队列输出为坐标值构建初始访问坐标矩阵,访问坐标矩阵中行列交叉点的坐标值为交叉点对应的通道对与其交叉的存储块的地址调度请求信息,地址调度请求信息为有效调度请求或为空;
将初始访问坐标矩阵划分为若干个2*2的子矩阵单元,并以不同的细粒度对子矩阵单元进行多级仲裁以获得仲裁结果,每级仲裁在基于上次仲裁后的结果更新访问坐标矩阵后进行仲裁,其中,细粒度指示的是每级仲裁时对应的子矩阵单元个数。
6.根据权利要求5所述的系统,其特征在于,所述系统被配置为每次仲裁时执行如下步骤:
基于上次仲裁结果更新访问坐标矩阵,其中,更新访问坐标矩阵时保留上一级仲裁时被选择的地址调度请求信息、未被选择的地址调度请求信息对应坐标值置为空;
以上一次仲裁时的每个子矩阵单元构成一个元素,以2*2矩阵元素为单位将更新后的访问坐标矩阵划分为多个新的子矩阵单元,并从每个新的子矩阵单元中选择有效调度请求最多的一条对角线对应的一组地址调度请求。
7.根据权利要求6所述的系统,其特征在于,所述系统被配置为:
在进行任意一级仲裁时,如果一个子矩阵单元的两条对角线上的有效调度请求数量一致,则选择优先级高的有效调度请求所在的对角线对应的一组地址调度请求。
8.根据权利要求7所述的系统,其特征在于,所述系统被配置为:
在进行第二级及其后续的仲裁时,任意一个子矩阵单元已选择的对角线上存在空的坐标值时,从该子矩阵单元其他未被选择的有效调度请求中选择一个补充调度请求,并将补充调度请求与已选择的对角线上的地址调度请求组成该子矩阵单元最终被选择的一组地址调度请求,其中,补充调度请求是与已选择的对角线上的所有有效调度请求对应的通道和存储块均不冲突的可选的有效调度请求。
9.一种处理器,其特征在于,所述处理器上配置有如权利要求1-8任一所述的系统。
10.一种计算设备,其特征在于,所述计算设备包括如权利要求9所述的处理器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410274907.0A CN117891758B (zh) | 2024-03-12 | 2024-03-12 | 一种基于仲裁的存储访问系统、处理器及计算设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410274907.0A CN117891758B (zh) | 2024-03-12 | 2024-03-12 | 一种基于仲裁的存储访问系统、处理器及计算设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117891758A CN117891758A (zh) | 2024-04-16 |
CN117891758B true CN117891758B (zh) | 2024-05-17 |
Family
ID=90649143
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410274907.0A Active CN117891758B (zh) | 2024-03-12 | 2024-03-12 | 一种基于仲裁的存储访问系统、处理器及计算设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117891758B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7257714B1 (en) * | 1999-10-19 | 2007-08-14 | Super Talent Electronics, Inc. | Electronic data storage medium with fingerprint verification capability |
CN104486258A (zh) * | 2014-12-09 | 2015-04-01 | 中国航空工业集团公司第六三一研究所 | 一种基于交换通道的交换电路 |
KR20150057153A (ko) * | 2013-11-18 | 2015-05-28 | 삼성전자주식회사 | 불휘발성 메모리 시스템 및 그것의 동작 방법 |
CN109564556A (zh) * | 2016-07-15 | 2019-04-02 | 超威半导体公司 | 具有条纹和读取/写入事务管理的存储器控制器仲裁器 |
CN112703489A (zh) * | 2020-04-14 | 2021-04-23 | 深圳市大疆创新科技有限公司 | 控制器、存储器件访问系统、电子设备和数据传输方法 |
CN113301285A (zh) * | 2021-05-11 | 2021-08-24 | 深圳市度信科技有限公司 | 多通道数据传输方法、装置及系统 |
CN116324744A (zh) * | 2020-08-24 | 2023-06-23 | 超威半导体公司 | 具有多个命令子队列和对应的仲裁器的存储器控制器 |
CN117312199A (zh) * | 2023-11-30 | 2023-12-29 | 杭州海康威视数字技术股份有限公司 | 多端口访问仲裁方法、装置、设备及存储介质 |
CN117501230A (zh) * | 2021-06-24 | 2024-02-02 | 超威半导体公司 | 多存储列存储器控制器中的高效存储列切换 |
CN117546135A (zh) * | 2021-06-22 | 2024-02-09 | 超威半导体公司 | 具有混合dram/持久性存储器通道仲裁的存储器控制器 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7103684B2 (en) * | 2003-12-02 | 2006-09-05 | Super Talent Electronics, Inc. | Single-chip USB controller reading power-on boot code from integrated flash memory for user storage |
CN104112427B (zh) * | 2014-07-21 | 2017-10-13 | 京东方科技集团股份有限公司 | 像素电路及其驱动方法和显示装置 |
CN105513534B (zh) * | 2016-02-04 | 2017-12-01 | 京东方科技集团股份有限公司 | 一种像素结构、显示装置及驱动方法 |
CN107731167A (zh) * | 2016-08-12 | 2018-02-23 | 京东方科技集团股份有限公司 | 像素电路、显示面板、显示设备及驱动方法 |
CN106409221B (zh) * | 2016-10-31 | 2019-05-31 | 昆山国显光电有限公司 | 多面显示像素电路及其驱动方法、多面oled显示器 |
CN111143257A (zh) * | 2019-12-02 | 2020-05-12 | 深圳市奥拓电子股份有限公司 | Ddr仲裁控制器、视频缓存装置及视频处理系统 |
CN210837103U (zh) * | 2019-12-18 | 2020-06-23 | 京东方科技集团股份有限公司 | 移位寄存器、栅极驱动电路以及显示装置 |
CN111063294B (zh) * | 2019-12-20 | 2021-01-15 | 深圳市华星光电半导体显示技术有限公司 | 一种像素驱动电路及显示面板 |
CN111506264B (zh) * | 2020-04-10 | 2021-07-06 | 华中科技大学 | 支持灵活分块存取的虚拟多通道sdram访问方法 |
CN112463668B (zh) * | 2020-11-20 | 2021-10-22 | 华中科技大学 | 一种基于stt-mram的多通道高速数据访存结构 |
CN113112957B (zh) * | 2021-04-27 | 2022-09-09 | 深圳市华星光电半导体显示技术有限公司 | 显示面板的驱动方法及显示面板 |
CN117648270A (zh) * | 2022-09-05 | 2024-03-05 | 兆易创新科技集团股份有限公司 | 存储器操作方法、存储器和电子设备 |
-
2024
- 2024-03-12 CN CN202410274907.0A patent/CN117891758B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7257714B1 (en) * | 1999-10-19 | 2007-08-14 | Super Talent Electronics, Inc. | Electronic data storage medium with fingerprint verification capability |
KR20150057153A (ko) * | 2013-11-18 | 2015-05-28 | 삼성전자주식회사 | 불휘발성 메모리 시스템 및 그것의 동작 방법 |
CN104486258A (zh) * | 2014-12-09 | 2015-04-01 | 中国航空工业集团公司第六三一研究所 | 一种基于交换通道的交换电路 |
CN109564556A (zh) * | 2016-07-15 | 2019-04-02 | 超威半导体公司 | 具有条纹和读取/写入事务管理的存储器控制器仲裁器 |
CN112703489A (zh) * | 2020-04-14 | 2021-04-23 | 深圳市大疆创新科技有限公司 | 控制器、存储器件访问系统、电子设备和数据传输方法 |
CN116324744A (zh) * | 2020-08-24 | 2023-06-23 | 超威半导体公司 | 具有多个命令子队列和对应的仲裁器的存储器控制器 |
CN113301285A (zh) * | 2021-05-11 | 2021-08-24 | 深圳市度信科技有限公司 | 多通道数据传输方法、装置及系统 |
CN117546135A (zh) * | 2021-06-22 | 2024-02-09 | 超威半导体公司 | 具有混合dram/持久性存储器通道仲裁的存储器控制器 |
CN117501230A (zh) * | 2021-06-24 | 2024-02-02 | 超威半导体公司 | 多存储列存储器控制器中的高效存储列切换 |
CN117312199A (zh) * | 2023-11-30 | 2023-12-29 | 杭州海康威视数字技术股份有限公司 | 多端口访问仲裁方法、装置、设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
"一种多通道共享读写SDRAM 的仲裁方法";张思政;《电子电路设计与方案》;20181031;第20-24页 * |
Also Published As
Publication number | Publication date |
---|---|
CN117891758A (zh) | 2024-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5659687A (en) | Device for controlling memory data path in parallel processing computer system | |
US8560795B2 (en) | Memory arrangement for multi-processor systems including a memory queue | |
EP3368989B1 (en) | Intelligent coded memory architecture with enhanced access scheduler | |
CN1728118B (zh) | 资源分配管理方法和设备 | |
JPH0728786A (ja) | ベクトルプロセッサ | |
US20060047919A1 (en) | Atomic read/write support in a multi-module memory configuration | |
US20110002345A1 (en) | Method and apparatus for dequeuing data | |
JP2002510079A (ja) | メモリ・インタフェース間で読み書きの順序付けられた実行を強制する方法と装置 | |
US9841913B2 (en) | System and method for enabling high read rates to data element lists | |
EP3657337B1 (en) | Method, apparatus, device and storage medium for accessing static random access memory | |
JPH10228417A (ja) | データ処理システムにおけるメモリリクエスト再順序付け法 | |
US20080320016A1 (en) | Age matrix for queue dispatch order | |
US6779092B2 (en) | Reordering requests for access to subdivided resource | |
CN112463415B (zh) | 基于随机地址的多端口共享内存管理系统及方法 | |
CN117015767A (zh) | 存储器信道控制器的芯片上互连 | |
JP2561261B2 (ja) | バッファ記憶アクセス方法 | |
CN117891758B (zh) | 一种基于仲裁的存储访问系统、处理器及计算设备 | |
JP2013101617A (ja) | デジタル信号処理用のメモリアクセス | |
US8560784B2 (en) | Memory control device and method | |
JP3260456B2 (ja) | コンピュータシステムおよびそれに適した集積回路並びに要求選択回路 | |
CN1287314A (zh) | 带有具用于一个共用存储器的接口的多个处理器的装置 | |
CN113468181B (zh) | 基于fpga的并行哈希连接加速方法及系统 | |
JP4391464B2 (ja) | 2分木構造の情報を記憶する装置及びヒープ構造の情報を記憶する装置 | |
US11914899B2 (en) | System for managing access to a memory resource by multiple users | |
CN113946525B (zh) | 用于仲裁对共享资源的访问的系统和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |