CN101021783A - 面向流数据的重排序访存缓冲方法及装置 - Google Patents
面向流数据的重排序访存缓冲方法及装置 Download PDFInfo
- Publication number
- CN101021783A CN101021783A CN 200710034577 CN200710034577A CN101021783A CN 101021783 A CN101021783 A CN 101021783A CN 200710034577 CN200710034577 CN 200710034577 CN 200710034577 A CN200710034577 A CN 200710034577A CN 101021783 A CN101021783 A CN 101021783A
- Authority
- CN
- China
- Prior art keywords
- address
- memory access
- data
- buffer cell
- request
- 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.)
- Granted
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种面向流数据的重排序访存缓冲方法及装置,在地址产生器与底层存储器之间设置有地址重排序缓冲单元,在地址产生器与上层流缓冲单元之间设置有数据返回缓冲单元,地址重排序缓冲单元和数据返回缓冲单元与控制逻辑单元相连;地址重排序缓冲单元用来将地址产生器产生的访存地址序列重新组合,使得各自记录内部元素的地址相对连续起来;数据返回缓冲单元保存底层存储器突发式传输出来的数据,控制逻辑单元根据当次访问的特点控制何时向外发送访存请求、从数据返回缓冲中选择某次突发式传输的部分或者全部元素送回到上层流缓冲单元中工作。本发明能使离散的访存序列连续化、优化访存,同时能够提高访存效率、扩展有效带宽的面向流数据。
Description
技术领域
本发明主要涉及到微处理器设计领域,特指一种面向流数据的重排序访存缓冲方法及装置。
背景技术
流处理器结构是一类针对流应用能高效处理的SIMD类型的处理器结构。流应用对带宽有很高要求,其数据有量大、持续流入且较少重用等特点。流处理器核心处理部件为一系列并行工作的计算群。其处理单位为流(stream),流由一些有序同构的记录(record)组成,组成记录的则是一系列相关的数据元素(element),其中一个数据元素为一个字,记录内部的数据元素在存储器中是连续存放的。地址产生部件负责将上层结构中以记录为单位的流按照适应计算群并行高效处理的算法分解成单个的数据元素序列,存储调度缓存负责将其转换成适合访问DDR或者DDR2存储器的地址序列,为了便于说明,后文中统称DDR或者DDR2存储器为DDR存储器。
当今最常用的片外存储器为DDR DRAM,DDR的一个重要的特性就是突发式(burst)传输,它通过一个列访问实现对当前激活行的多个连续数据元素的快速访问,其突发长度一般为2、4和8,也就是说一次访存可以从存储器拿几个数据,该访问方式为连续访存提供了很高的吞吐量。因此,如果访存流地址序列为连续的块地址序列,那么DDR存储器可以达到很高的访存效率。
发明内容
本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种通过采用一种根据访存流记录长度可动态配置的重排序缓冲方法对访存序列进行重新排序,使离散的访存序列连续化,优化访存,同时能够提高访存效率、扩展有效带宽的面向流数据的重排序访存缓冲方法及装置。
为解决上述技术问题,本发明提出的解决方案为:一种面向流数据的重排序访存缓冲方法,其特征在于:
(1)在地址产生器与底层存储器之间设置有地址重排序缓冲单元,在地址产生器与上层流缓冲单元之间设置有数据返回缓冲单元,地址重排序缓冲单元和数据返回缓冲单元与控制逻辑单元相连,地址重排序缓冲单元和数据返回缓冲单元都为双缓冲;
(2)流控制器启动地址产生器工作的同时将记录长度、访存模式等信息传送到与地址重排序缓冲单元相连的控制逻辑单元,控制逻辑单元根据这些信息确定填写重排序缓冲的规则;
(3)根据上述规则对地址重排序缓冲单元中的一个地址重排序半缓冲单元进行填写,当填写完成时,阻止该地址重排序半缓冲单元接收填写操作并向下层发送选择出来的访存地址,此时另一个地址重排序半缓冲单元可以接收地址产生器产生的请求;
(4)对与load操作来说,当访存地址发送出去之后,控制逻辑单元等待存储器的数据返回信号有效,一旦底层burst传输有效,就将数据送入到对应的数据返回半缓冲单元的M[i][0](0≤i≤burst length-1,burst length为一次存储器突发式传输的长度)号位置,下一次则将数据存放在M[i][1](0≤i≤burst length-1,burst length为一次存储器突发式传输的长度)号位置,以此类推,直到将n次burst传输数据全部填写完毕,其中n与CLUSTER数目以及OFFSET寄存器数目对应;以上过程完成之后,该数据返回半缓冲单元已填写完毕,此时可以向上层流缓冲单元发送缓冲可读信号,控制逻辑单元按照重排序半缓冲单元中的地址选择在数据返回半缓冲单元中的相应数据送往上层缓冲单元,当数据返回半缓冲单元中的数据全部读取完毕之后,释放该重排序半缓冲单元和数据返回半缓冲单元;
(5)对于Store操作来说,某个访存地址发送出去之后,要将重排序半缓冲单元的矩阵中该列对应的数据依次发送到底层存储器,也就是说一个地址对应该列的若干个数据,以此类推,直到该重排序半缓冲单元中所有数据都发送完毕,释放该重排序半缓冲单元。
所述重排序缓冲单元包括两个相同结构的重排序半缓冲单元,每个重排序半缓冲单元拥有8×n个数据字单元,其中n与计算群的数目、OFFSET寄存器的数目相对应,每个重排序半缓冲单元从逻辑上讲是一个8×n的矩阵M[7][n-1];所述写缓冲顺序为按行优先原则,即以M[0][0],M[0][1],…,M[0][n-1],M[1][0],…,M[1][n-1],……,M[7][0],M[7][n-1]的顺序,每一次填写是否完毕视当前访存流的记录长度而定,并不是每次都要将重排序半缓冲单元填满才向下层发送访存请求:
(1)、当长度≥8时,底层的burst长度请求设为8,半缓冲矩阵列方向填满8个后向下层发送访存请求,请求地址为半缓冲中M[0][0],M[0][1],…,M[0][n-1]号位置内存放的地址;如果reclen%8不等于零且半缓冲正在填写当前每个记录的最后reclen%8个元素时,半缓冲矩阵列方向只要填写reclen%8个元素后就应该向下层发送访存请求;
(2)、当4≤长度<8时,底层burst长度请求设为4,半缓冲矩阵列方向填满4个后向下层发送访存请求,即缓冲只填写了M[i][j](0≤i≤3,0≤j≤n-1位置的单元。请求地址为半缓冲中M[0][0],M[0][1],…,M[0][n-1]号位置内存放的地址;如果reclen%4不等于零且半缓冲正在处理当前每个记录的最后reclen%4个元素时,半缓冲矩阵列方向只要填写reclen%4个元素后就应该向下层发送访存请求;
(3)、当2≤长度<4时,底层burst长度请求设为2,半缓冲矩阵列方向填满两个后向底层发送访存请求,即缓冲只填写了M[i][j](0≤i≤1,0≤j≤n-1)位置的单元,请求地址为半缓冲中M[0][0],M[0][1],…,M[0][n-1]号位置内存放的地址;如果reclen%2不等于零且半缓冲正在处理当前每个记录的最后reclen%2个元素时,半缓冲矩阵列方向只要填写reclen%2个元素后就应该向下层发送访存请求;
(4)、当长度=1时,在跨步模式下要特殊考虑,跨步长度为1时底层burst长度请求设为4,半缓冲M[0][j](0≤j≤n-1)号位置填写完毕之后就可以向下层发送访存请求,在这种情况下只要发送M[0][0]号位置的地址就可以了;当跨步长度为其他情况的时候,可以采取跟前面描述的方法一样向下层发送访存请求。
一种面向流数据的重排序访存缓冲方法装置,其特征在于:它包括地址重排序缓冲单元、数据返回缓冲单元以及控制逻辑单元,地址重排序缓冲单元用来将地址产生器产生的访存地址序列重新组合,使得各自记录内部元素的地址相对连续起来;数据返回缓冲单元保存底层存储器突发式传输出来的数据,控制逻辑单元根据当次访问的特点控制何时向外发送访存请求、从数据返回缓冲中选择某次突发式传输的部分或者全部元素送回到上层流缓冲单元中工作。
所述重排序缓冲单元包括两个相同结构的重排序半缓冲单元,每个重排序半缓冲单元拥有8×n个数据字单元,其中n与计算群的数目、OFFSET寄存器的数目相对应,每个重排序半缓冲单元从逻辑上讲是一个8×n的矩阵M[7][n-1]。
所述写缓冲顺序为按行优先原则,即以M[0][0],M[0][1],…,M[0][n-1],M[1][0],…,M[1][n-1],……,M[7][0],M[7][n-1]的顺序,每一次填写是否完毕视当前访存流的记录长度而定,并不是每次都要将重排序半缓冲单元填满才向下层发送访存请求:
(1)、当长度≥8时,底层的burst长度请求设为8,半缓冲矩阵列方向填满8个后向下层发送访存请求,请求地址为半缓冲中M[0][0],M[0][1],…,M[0][n-1]号位置内存放的地址;如果reclen%8不等于零且半缓冲正在填写当前每个记录的最后reclen%8个元素时,半缓冲矩阵列方向只要填写reclen%8个元素后就应该向下层发送访存请求;
(2)、当4≤长度<8时,底层burst长度请求设为4,半缓冲矩阵列方向填满4个后向下层发送访存请求,即缓冲只填写了M[i][j](0≤i≤3,0≤j≤n-1位置的单元。请求地址为半缓冲中M[0][0],M[0][1],…,M[0][n-1]号位置内存放的地址;如果reclen%4不等于零且半缓冲正在处理当前每个记录的最后reclen%4个元素时,半缓冲矩阵列方向只要填写reclen%4个元素后就应该向下层发送访存请求;
(3)、当2≤长度<4时,底层burst长度请求设为2,半缓冲矩阵列方向填满两个后向底层发送访存请求,即缓冲只填写了M[i][j](0≤i≤1,0≤j≤n-1)位置的单元,请求地址为半缓冲中M[0][0],M[0][1],…,M[0][n-1]号位置内存放的地址;如果reclen%2不等于零且半缓冲正在处理当前每个记录的最后reclen%2个元素时,半缓冲矩阵列方向只要填写reclen%2个元素后就应该向下层发送访存请求;
(4)、当长度=1时,在跨步模式下要特殊考虑,跨步长度为1时底层burst长度请求设为4,半缓冲M[0][j](0≤j≤n-1)号位置填写完毕之后就可以向下层发送访存请求,在这种情况下只要发送M[0][0]号位置的地址就可以了;当跨步长度为其他情况的时候,可以采取跟前面描述的方法一样向下层发送访存请求。
所述数据返回缓冲单元包括两个相同结构的数据返回半缓冲单元,每个数据返回半缓冲单元拥有8×n个数据字单元。
与现有技术相比,本发明的优点就在于:
1、硬件实现复杂度低。本发明中最重要的部件是两组相对应的缓冲结构;控制逻辑则主要是控制对各个缓冲的读写以及缓冲之间地址数据的配对,不涉及到很复杂的逻辑。
2、大幅度提高了流处理器的访存效率,增加了有效带宽。采用本发明的访存序列重排技术,能够有效的利用流的记录组织特性和当今主流存储器的访存特性,提高访存数据利用率,增加有效带宽。能解决流处理器中地址产生部件生成的地址序列直接送入底层存储控制器带来的吞吐率低的问题,
附图说明
图1是本发明的重排序逻辑框架示意图;
图2是本发明的重排序半缓冲和数据返回缓冲的逻辑结构示意图;
图3为本发明的工作流程示意图。
具体实施方式
以下将结合附图和具体实施例对本发明做进一步详细说明。
参见图3所示,本发明的一种面向流数据的重排序访存缓冲方法,其步骤为:
(1)在地址产生器与底层存储器之间设置有地址重排序缓冲单元,在地址产生器与上层流缓冲单元之间设置有数据返回缓冲单元,地址重排序缓冲单元和数据返回缓冲单元与控制逻辑单元相连,地址重排序缓冲单元和数据返回缓冲单元都为双缓冲;
(2)流控制器启动地址产生器工作的同时将记录长度、访存模式等信息传送到与地址重排序缓冲单元相连的控制逻辑单元,控制逻辑单元根据这些信息确定填写重排序缓冲的规则;
(3)根据上述规则对地址重排序缓冲单元中的一个地址重排序半缓冲单元进行填写,当填写完成时,阻止该地址重排序半缓冲单元接收填写操作并向下层发送选择出来的访存地址,此时另一个地址重排序半缓冲单元可以接收地址产生器产生的请求;
(4)对与load操作来说,当访存地址发送出去之后,控制逻辑单元等待存储器的数据返回信号有效,一旦底层burst传输有效,就将数据送入到对应的数据返回半缓冲单元的M[i][0](0≤i≤burst length-1,burst length为一次存储器突发式传输的长度)号位置,下一次则将数据存放在M[i][1](0≤i≤burst length-1,burst length为一次存储器突发式传输的长度)号位置,以此类推,直到将n次burst传输数据全部填写完毕,其中n与CLUSTER数目以及OFFSET寄存器数目对应;以上过程完成之后,该数据返回半缓冲单元已填写完毕,此时可以向上层流缓冲单元发送缓冲可读信号,控制逻辑单元按照重排序半缓冲单元中的地址选择在数据返回半缓冲单元中的相应数据送往上层缓冲单元,当数据返回半缓冲单元中的数据全部读取完毕之后,释放该重排序半缓冲单元和数据返回半缓冲单元;
(5)对于Store操作来说,某个访存地址发送出去之后,要将重排序半缓冲单元的矩阵中该列对应的数据依次发送到底层存储器,也就是说一个地址对应该列的若干个数据,以此类推,直到该重排序半缓冲单元中所有数据都发送完毕,释放该重排序半缓冲单元。
其中,重排序缓冲单元包括两个相同结构的重排序半缓冲单元,每个重排序半缓冲单元拥有8×n个数据字单元,其中n与计算群的数目、OFFSET寄存器的数目相对应,每个重排序半缓冲单元从逻辑上讲是一个8×n的矩阵M[7][n-1];所述写缓冲顺序为按行优先原则,即以M[0][0],M[0][1],…,M[0][n-1],M[1][0],…,M[1][n-1],……,M[7][0],M[7][n-1]的顺序,每一次填写是否完毕视当前访存流的记录长度而定,并不是每次都要将重排序半缓冲单元填满才向下层发送访存请求:
(1)、当长度≥8时,底层的burst长度请求设为8,半缓冲矩阵列方向填满8个后向下层发送访存请求,请求地址为半缓冲中M[0][0],M[0][1],…,M[0][n-1]号位置内存放的地址;如果reclen%8不等于零且半缓冲正在填写当前每个记录的最后reclen%8个元素时,半缓冲矩阵列方向只要填写reclen%8个元素后就应该向下层发送访存请求;
(2)、当4≤长度<8时,底层burst长度请求设为4,半缓冲矩阵列方向填满4个后向下层发送访存请求,即缓冲只填写了M[i][j](0≤i≤3,0≤j≤n-1)位置的单元。请求地址为半缓冲中M[0][0],M[0][1],…,M[0][n-1]号位置内存放的地址;如果reclen%4不等于零且半缓冲正在处理当前每个记录的最后reclen%4个元素时,半缓冲矩阵列方向只要填写reclen%4个元素后就应该向下层发送访存请求;
(3)、当2≤长度<4时,底层burst长度请求设为2,半缓冲矩阵列方向填满两个后向底层发送访存请求,即缓冲只填写了M[i][j](0≤i≤1,0≤j≤n-1)位置的单元,请求地址为半缓冲中M[0][0],M[0][1],…,M[0][n-1]号位置内存放的地址;如果reclen%2不等于零且半缓冲正在处理当前每个记录的最后reclen%2个元素时,半缓冲矩阵列方向只要填写reclen%2个元素后就应该向下层发送访存请求;
(4)、当长度=1时,在跨步模式下要特殊考虑,跨步长度为1时底层burst长度请求设为4,半缓冲M[0][j](0≤j≤n-1)号位置填写完毕之后就可以向下层发送访存请求,在这种情况下只要发送M[0][0]号位置的地址就可以了;当跨步长度为其他情况的时候,可以采取跟前面描述的方法一样向下层发送访存请求。
如图1和图2所示,本发明的一种面向流数据的重排序访存缓冲方法装置,它包括地址重排序缓冲单元、数据返回缓冲单元以及控制逻辑单元,地址重排序缓冲单元用来将地址产生器产生的访存地址序列重新组合,使得各自记录内部元素的地址相对连续起来;数据返回缓冲单元保存底层存储器突发式传输出来的数据,控制逻辑单元根据当次访问的特点控制何时向外发送访存请求、从数据返回缓冲中选择某次突发式传输的部分或者全部元素送回到上层流缓冲单元中工作。重排序缓冲单元包括两个相同结构的重排序半缓冲单元,每个重排序半缓冲单元拥有8×n个数据字单元,其中n与计算群的数目、OFFSET寄存器的数目相对应,每个重排序半缓冲单元从逻辑上讲是一个8×n的矩阵M[7][n-1]。数据返回缓冲和重排序缓冲是相对应的,也是由两个8×n的半缓冲组成,其作用在于load操作时接收由DDR突发传输出来的数据,它并不对这些数据进行选择,直接存到相对应的位置。控制部件根据控制信息确定重排序缓冲的填写规则、确定发送访存地址的时机以及在load操作的时候对数据返回缓冲中的数据进行选择。参见图1所示,本发明实施例中的重排序模块逻辑框图。重排序模块共包括以下几个小模块:两个重排序半缓冲,两个数据返回半缓冲以及控制这些缓冲有效运转的控制逻辑。重排序半缓冲和数据返回半缓冲逻辑上都是8×n的矩阵结构,控制逻辑可以根据记录长度的大小动态的决定填写它们的方式,并且根据填写方式确定访存的时机和方式。通过地址产生器打乱的记录内部存储连续性在重排序部件中被重新组合以适应底层存储控制器的访存操作。图2是本发明的重排序半缓冲和数据返回缓冲的逻辑结构图。图1中的四个半缓冲逻辑上都被组织成矩阵形式的结构,实际可以通过读写指针的跳变来实现这种逻辑结构。图中n的取值取决于计算群的数目。每次访存操作发出的都只是M[0][j](0≤j≤n-1)位置的地址,在跨步模式中记录长度为1的特殊情况中半缓冲填写完毕后只有M[0][0]位置的地址发出,此时M[0][j](0≤j≤n-1)位置的地址在存储空间中是连续的。
Claims (6)
1、一种面向流数据的重排序访存缓冲方法,其特征在于:
(1)在地址产生器与底层存储器之间设置有地址重排序缓冲单元,在地址产生器与上层流缓冲单元之间设置有数据返回缓冲单元,地址重排序缓冲单元和数据返回缓冲单元与控制逻辑单元相连,地址重排序缓冲单元和数据返回缓冲单元都为双缓冲;
(2)流控制器启动地址产生器工作的同时将记录长度、访存模式等信息传送到与地址重排序缓冲单元相连的控制逻辑单元,控制逻辑单元根据这些信息确定填写重排序缓冲的规则;
(3)根据上述规则对地址重排序缓冲单元中的一个地址重排序半缓冲单元进行填写,当填写完成时,阻止该地址重排序半缓冲单元接收填写操作并向下层发送选择出来的访存地址,此时另一个地址重排序半缓冲单元可以接收地址产生器产生的请求;
(4)对与load操作来说,当访存地址发送出去之后,控制逻辑单元等待存储器的数据返回信号有效,一旦底层burst传输有效,就将数据送入到对应的数据返回半缓冲单元的M[i][0](0≤i≤burst length-1,burst length为一次存储器突发式传输的长度)号位置,下一次则将数据存放在M[i][1](0≤i≤burst length-1,burst length为一次存储器突发式传输的长度)号位置,以此类推,直到将n次burst传输数据全部填写完毕,其中n与CLUSTER数目以及OFFSET寄存器数目对应;以上过程完成之后,该数据返回半缓冲单元已填写完毕,此时可以向上层流缓冲单元发送缓冲可读信号,控制逻辑单元按照重排序半缓冲单元中的地址选择在数据返回半缓冲单元中的相应数据送往上层缓冲单元,当数据返回半缓冲单元中的数据全部读取完毕之后,释放该重排序半缓冲单元和数据返回半缓冲单元;
(5)对于Store操作来说,某个访存地址发送出去之后,要将重排序半缓冲单元的矩阵中该列对应的数据依次发送到底层存储器,也就是说一个地址对应该列的若干个数据,以此类推,直到该重排序半缓冲单元中所有数据都发送完毕,释放该重排序半缓冲单元。
2、根据权利要求1所述的面向流数据的重排序访存缓冲方法,其特征在于:所述重排序缓冲单元包括两个相同结构的重排序半缓冲单元,每个重排序半缓冲单元拥有8×n个数据字单元,其中n与计算群的数目、OFFSET寄存器的数目相对应,每个重排序半缓冲单元从逻辑上讲是一个8×n的矩阵M[7][n-1];所述写缓冲顺序为按行优先原则,即以M[0][0],M[0][1],…,M[0][n-1],M[1][0],…,M[1][n-1],……,M[7][0],M[7][n-1]的顺序,每一次填写是否完毕视当前访存流的记录长度而定,并不是每次都要将重排序半缓冲单元填满才向下层发送访存请求:
(1)、当长度≥8时,底层的burst长度请求设为8,半缓冲矩阵列方向填满8个后向下层发送访存请求,请求地址为半缓冲中M[0][0],M[0][1],…,M[0][n-1]号位置内存放的地址;如果reclen%8不等于零且半缓冲正在填写当前每个记录的最后reclen%8个元素时,半缓冲矩阵列方向只要填写reclen%8个元素后就应该向下层发送访存请求;
(2)、当4≤长度<8时,底层burst长度请求设为4,半缓冲矩阵列方向填满4个后向下层发送访存请求,即缓冲只填写了M[i][j](0≤i≤3,0≤j≤n-1)位置的单元,请求地址为半缓冲中M[0][0],M[0][1],…,M[0][n-1]号位置内存放的地址;如果reclen%4不等于零且半缓冲正在处理当前每个记录的最后reclen%4个元素时,半缓冲矩阵列方向只要填写reclen%4个元素后就应该向下层发送访存请求;
(3)、当2≤长度<4时,底层burst长度请求设为2,半缓冲矩阵列方向填满两个后向底层发送访存请求,即缓冲只填写了M[i][j](0≤i≤1,0≤j≤n-1)位置的单元,请求地址为半缓冲中M[0][0],M[0][1],…,M[0][n-1]号位置内存放的地址;如果reclen%2不等于零且半缓冲正在处理当前每个记录的最后reclen%2个元素时,半缓冲矩阵列方向只要填写reclen%2个元素后就应该向下层发送访存请求;
(4)、当长度=1时,在跨步模式下要特殊考虑,跨步长度为1时底层burst长度请求设为4,半缓冲M[0][j](0≤j≤n-1)号位置填写完毕之后就可以向下层发送访存请求,在这种情况下只要发送M[0][0]号位置的地址就可以了;当跨步长度为其他情况的时候,可以采取跟前面描述的方法一样向下层发送访存请求。
3、一种面向流数据的重排序访存缓冲方法装置,其特征在于:它包括地址重排序缓冲单元、数据返回缓冲单元以及控制逻辑单元,地址重排序缓冲单元用来将地址产生器产生的访存地址序列重新组合,使得各自记录内部元素的地址相对连续起来;数据返回缓冲单元保存底层存储器突发式传输出来的数据,控制逻辑单元根据当次访问的特点控制何时向外发送访存请求、从数据返回缓冲中选择某次突发式传输的部分或者全部元素送回到上层流缓冲单元中工作。
4、根据权利要求3所述的面向流数据的重排序访存缓冲方法装置,其特征在于:所述重排序缓冲单元包括两个相同结构的重排序半缓冲单元,每个重排序半缓冲单元拥有8×n个数据字单元,其中n与计算群的数目、OFFSET寄存器的数目相对应,每个重排序半缓冲单元从逻辑上讲是一个8×n的矩阵M[7][n-1]。
5、根据权利要求4所述的面向流数据的重排序访存缓冲方法装置,其特征在于所述写缓冲顺序为按行优先原则,即以M[0][0],M[0][1],…,M[0][n-1],M[1][0],…,M[1][n-1],……,M[7][0],M[7][n-1]的顺序,每一次填写是否完毕视当前访存流的记录长度而定,并不是每次都要将重排序半缓冲单元填满才向下层发送访存请求:
(1)、当长度≥8时,底层的burst长度请求设为8,半缓冲矩阵列方向填满8个后向下层发送访存请求,请求地址为半缓冲中M[0][0],M[0][1],…,M[0][n-1]号位置内存放的地址;如果reclen%8不等于零且半缓冲正在填写当前每个记录的最后reclen%8个元素时,半缓冲矩阵列方向只要填写reclen%8个元素后就应该向下层发送访存请求;
(2)、当4≤长度<8时,底层burst长度请求设为4,半缓冲矩阵列方向填满4个后向下层发送访存请求,即缓冲只填写了M[i][j](0≤i≤3,0≤j≤n-1)位置的单元,请求地址为半缓冲中M[0][0],M[0][1],…,M[0][n-1]号位置内存放的地址;如果reclen%4不等于零且半缓冲正在处理当前每个记录的最后reclen%4个元素时,半缓冲矩阵列方向只要填写reclen%4个元素后就应该向下层发送访存请求;
(3)、当2≤长度<4时,底层burst长度请求设为2,半缓冲矩阵列方向填满两个后向底层发送访存请求,即缓冲只填写了M[i][j](0≤i≤1,0≤j≤n-1)位置的单元,请求地址为半缓冲中M[0][0],M[0][1],…,M[0][n-1]号位置内存放的地址;如果reclen%2不等于零且半缓冲正在处理当前每个记录的最后reclen%2个元素时,半缓冲矩阵列方向只要填写reclen%2个元素后就应该向下层发送访存请求;
(4)、当长度=1时,在跨步模式下要特殊考虑,跨步长度为1时底层burst长度请求设为4,半缓冲M[0][j](0≤j≤n-1)号位置填写完毕之后就可以向下层发送访存请求,在这种情况下只要发送M[0][0]号位置的地址就可以了;当跨步长度为其他情况的时候,可以采取跟前面描述的方法一样向下层发送访存请求。
6、根据权利要求3或4或5所述的面向流数据的重排序访存缓冲方法装置,其特征在于:所述数据返回缓冲单元包括两个相同结构的数据返回半缓冲单元,每个数据返回半缓冲单元拥有8×n个数据字单元。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2007100345774A CN100489772C (zh) | 2007-03-19 | 2007-03-19 | 面向流数据的重排序访存缓冲方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2007100345774A CN100489772C (zh) | 2007-03-19 | 2007-03-19 | 面向流数据的重排序访存缓冲方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101021783A true CN101021783A (zh) | 2007-08-22 |
CN100489772C CN100489772C (zh) | 2009-05-20 |
Family
ID=38709558
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2007100345774A Expired - Fee Related CN100489772C (zh) | 2007-03-19 | 2007-03-19 | 面向流数据的重排序访存缓冲方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100489772C (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101442387B (zh) * | 2008-12-22 | 2011-04-20 | 成都市华为赛门铁克科技有限公司 | 一种数据反压的处理方法和装置 |
CN102193508A (zh) * | 2010-03-12 | 2011-09-21 | 株式会社山武 | 设备启动装置以及cpu |
CN102541506A (zh) * | 2010-12-29 | 2012-07-04 | 深圳市恒扬科技有限公司 | 一种fifo数据缓存器、芯片以及设备 |
CN102567241A (zh) * | 2010-12-27 | 2012-07-11 | 北京国睿中数科技股份有限公司 | 存储器控制器及存储器访问控制方法 |
CN113742260A (zh) * | 2021-11-05 | 2021-12-03 | 南京宏泰半导体科技有限公司 | 一种用于存储器测试的地址扰乱器发生装置及其方法 |
-
2007
- 2007-03-19 CN CNB2007100345774A patent/CN100489772C/zh not_active Expired - Fee Related
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101442387B (zh) * | 2008-12-22 | 2011-04-20 | 成都市华为赛门铁克科技有限公司 | 一种数据反压的处理方法和装置 |
CN102193508A (zh) * | 2010-03-12 | 2011-09-21 | 株式会社山武 | 设备启动装置以及cpu |
CN102193508B (zh) * | 2010-03-12 | 2014-01-08 | 阿自倍尔株式会社 | 设备启动装置以及cpu |
CN102567241A (zh) * | 2010-12-27 | 2012-07-11 | 北京国睿中数科技股份有限公司 | 存储器控制器及存储器访问控制方法 |
CN102541506A (zh) * | 2010-12-29 | 2012-07-04 | 深圳市恒扬科技有限公司 | 一种fifo数据缓存器、芯片以及设备 |
CN102541506B (zh) * | 2010-12-29 | 2014-02-26 | 深圳市恒扬科技有限公司 | 一种fifo数据缓存器、芯片以及设备 |
CN113742260A (zh) * | 2021-11-05 | 2021-12-03 | 南京宏泰半导体科技有限公司 | 一种用于存储器测试的地址扰乱器发生装置及其方法 |
Also Published As
Publication number | Publication date |
---|---|
CN100489772C (zh) | 2009-05-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20190348107A1 (en) | Refresh control circuit, memory device including the same and method of operating the same for hammer refresh operation | |
EP3091439B1 (en) | Multi-bank memory with multiple read ports and multiple write ports per cycle | |
KR101528659B1 (ko) | 가변 메모리 리프레시 장치들 및 방법들 | |
CN1825479B (zh) | 存储器件和与存储器件交换数据的方法 | |
KR101609311B1 (ko) | 메모리 장치 파워 관리기 및 방법 | |
CN101308697B (zh) | 基于sdram的大容量fifo突发缓存器及数据存储方法 | |
JP5430484B2 (ja) | 半導体記憶装置、及びその制御方法 | |
CN100489772C (zh) | 面向流数据的重排序访存缓冲方法及装置 | |
CN103092785B (zh) | Ddr2 sdram控制器 | |
CN103246625B (zh) | 一种数据与地址共用引脚自适应调整访存粒度的方法 | |
CN101685381A (zh) | 固态大容量存储装置的数据串流 | |
CN101702326B (zh) | 内存控制器 | |
US8127087B2 (en) | Memory controller for improved read port selection in a memory mirrored system | |
CN105518784A (zh) | 具有用于高可靠性操作的存储控制器的数据处理器和方法 | |
CN102541678A (zh) | 多通道与非型快闪并行存储控制器 | |
WO2016176807A1 (zh) | 一种dram刷新方法、装置和系统 | |
CN105279108A (zh) | 固态硬盘写入数据的方法 | |
CN103493026A (zh) | 存取存储器单元的方法、分配存储器请求的方法、系统及存储器控制器 | |
JPH07507410A (ja) | 改良された固体記憶素子 | |
CN102622323B (zh) | 动态可重构串行总线中基于开关矩阵的数据传输管理方法 | |
CN100550189C (zh) | 存储数据的方法、映射事务的装置和写数据线的方法 | |
CN108417235A (zh) | 一种基于3d封装的dram存储器及访问方法 | |
US20100037122A1 (en) | Memory Controller for Reducing Time to Initialize Main Memory | |
CN102541769A (zh) | 一种存储器接口访问控制方法及装置 | |
US10372337B2 (en) | Write request processing method and memory controller |
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: 20090520 Termination date: 20110319 |