当前位置: 首页 > 专利查询>小马智行专利>正文

用于高效存储和访问时空数据的存储器架构制造技术

技术编号:34684162 阅读:18 留言:0更新日期:2022-08-27 16:15
本文描述了用于以优化多维数据在线性数据存储器中的存储和访问的方式对此类数据进行存储器地址编码的系统、方法和非暂时性计算机可读介质。多维数据可以是包括两个或更多个空间维度和时间维度的时空数据。提供了一种改进的存储器架构,其包括将多维坐标作为输入并产生线性物理存储器地址的地址编码器。地址编码器对多维数据进行编码,使得在多维空间中彼此靠近的两个多维坐标将很可能彼此紧挨着存储在线性数据存储器中。以这种方式,主存储器访问的数量以及因此总体存储器访问延迟被减少,特别是对于沿任何给定维度移动的相应概率非常接近的真实世界应用而言。非常接近的真实世界应用而言。非常接近的真实世界应用而言。

【技术实现步骤摘要】
【国外来华专利技术】用于高效存储和访问时空数据的存储器架构
[0001]相关申请的交叉引用
[0002]本申请要求于2019年12月10日提交的美国申请号16/709,217的优先权,该申请的全部内容通过引用并入本文。


[0003]本专利技术总体上涉及存储器架构,并且更具体地,在一些实施例中,涉及用于高效存储和访问时空数据的存储器架构。

技术介绍

[0004]平面存储器模型或线性存储器模型是指存储器寻址范式,其中存储器对于程序而言表现为单个连续的地址空间。在这样的模型中,中央处理单元(CPU)可以直接(并且线性地)寻址所有可用存储器,而无需求助于任何类型的存储器分段或分页方案。尽管如此,可以在线性存储器模型之上实现存储器管理和地址转换,以促进操作系统功能、资源保护、多任务处理或增加存储器容量,使其超出处理器物理地址空间所导致的限制。
[0005]虚拟存储器寻址是一种存储器管理技术,它提供了对在给定机器上实际可用的存储资源的理想化抽象。计算机的操作系统使用硬件和软件的组合,将由程序使用的存储器地址(称为虚拟地址)映射到计算机存储器中的物理地址。从进程或任务的角度来看,主存储器表现为连续的地址空间或连续分段的集合。操作系统管理虚拟地址空间和物理存储器到虚拟存储器的分配。CPU中的称为存储器管理单元(MMU)的地址转换硬件自动地将虚拟地址转换为物理地址。操作系统内的软件可以例如使用分页技术来扩展这些能力,以提供可以超过物理存储器容量的虚拟地址空间,从而引用与计算机中物理存在的相比更多的存储器。
[0006]不管是使用线性存储器寻址方案(按照该方案,对物理存储器进行直接和线性寻址)还是使用虚拟寻址方案(按照该方案,虚拟地址空间表现为连续并且采用线性寻址,但潜在地映射到物理存储器的不连续的部分),在存储器中存储和访问数据的顺序可能不会反映数据的真实世界特征。现有的存储器寻址方案无法充分反映某些类型数据的真实世界特征,因此面临许多与其相关的技术缺陷。本文描述了解决这些缺陷中的至少一些的技术方案。

技术实现思路

[0007]本文描述了用于以优化多维数据在线性数据存储器中的存储和访问的方式对此类数据进行存储器地址编码的系统、方法和非暂时性计算机可读介质。多维数据可以包括与任何数量的维度中的每一者相关联的各个数据。在示例性实施例中,多维数据可以是包括两个或更多个空间维度和时间维度的时空数据。在示例性实施例中,提供了改进的存储器架构,其包括将多维坐标作为输入并产生线性物理存储器地址的地址编码器。地址编码器对多维数据进行编码,使得在多维空间中彼此靠近的两个多维坐标将很可能彼此紧挨着
存储在线性数据存储器中。以这种方式,可以减少主存储器访问的数量,从而减少总体存储器访问延迟,特别是在沿着任何给定维度从一个多维坐标移动到另一个多维坐标的各个概率很接近的真实世界应用方面。
[0008]在示例性实施例中,公开了一种用于对包括第一多维数据和第二多维数据的多维数据进行存储器地址编码的计算机实现方法。该方法包括:对第一多维数据应用地址编码以获得用于第一多维数据的第一存储器地址;以及对第二多维数据应用地址编码以获得用于第二多维数据的第二存储器地址。第二多维数据是从第一多维数据通过将第一多维数据中与特定维度对应的相应数据增加一个单位来获得的。该方法还包括:将第一多维数据存储在存储器中的第一存储器地址处;以及将第二多维数据存储在存储器中的第二存储器地址处。地址编码确保了第二存储器地址和第一存储器地址之间的线性差独立于多维数据的任何维度的尺寸而有界。
[0009]在示例性实施例中,公开了一种用于对包括第一多维数据和第二多维数据的多维数据进行存储器地址编码的系统。该系统包括至少一个处理器和至少一个存储计算机可执行指令的存储器。至少一个处理器配置成访问至少一个存储器并执行计算机可执行指令以执行操作集。该操作集包括:对第一多维数据应用地址编码以获得用于第一多维数据的第一存储器地址;以及对第二多维数据应用地址编码以获得用于第二多维数据的第二存储器地址。第二多维数据是从第一多维数据通过将第一多维数据中与特定维度对应的相应数据增加一个单位来获得的。该组操作还包括:将第一多维数据存储在存储器中的第一存储器地址处;以及将第二多维数据存储在存储器中的第二存储器地址处。地址编码确保了第二存储器地址和第一存储器地址之间的线性差独立于多维数据的任何维度的尺寸而有界。
[0010]在示例性实施例中,公开了一种用于对包括第一多维数据和第二多维数据的多维数据进行存储器地址编码的计算机程序产品。该计算机程序产品包括可由处理电路读取的非暂时性计算机可读介质。非暂时性计算机可读介质存储可由处理电路执行以使方法被执行的指令。该方法包括:对第一多维数据应用地址编码以获得用于第一多维数据的第一存储器地址;以及对第二多维数据应用地址编码以获得用于第二多维数据的第二存储器地址。第二多维数据是从第一多维数据通过将第一多维数据中与特定维度对应的相应数据增加一个单位来获得的。该方法还包括:将第一多维数据存储在存储器中的第一存储器地址处;以及将第二多维数据存储在存储器中的第二存储器地址处。地址编码确保了第二存储器地址和第一存储器地址之间的线性差独立于多维数据的任何维度的尺寸而有界。
[0011]本专利技术的示例性实施例的以下附加特征可以结合上述方法、系统或计算机程序产品中的任一者来实现。在示例性实施例中,第一多维数据和第二多维数据表示时空数据。在一个示例性实施例中,第一多维数据包括与第一维度对应的第一数据和与第二维度对应的第二数据。在示例性实施例中,对第一多维数据应用地址编码以获得第一存储器地址包括:识别第一数据的第一位表示;识别第二数据的第二位表示;以及对第一位表示和第二位表示进行交织以获得第一存储器地址。
[0012]在示例性实施例中,对第一位表示和第二位表示进行交织包括:将包括第一位表示的最低有效位和第二位表示的最低有效位的第一位集合组合在一起;以及将一个或多个附加的位集合附接到第一位集合的连续更高有效位位置中以获得第一存储器地址,其中每个附加的位集合包括来自第一数据和第二数据中的每一者的在相同位位置处的相应位。
[0013]在示例性实施例中,存储器是主存储器,并且配置成由本文公开的系统执行的方法或操作集包括:接收访问第一多维数据的第一存储器访问请求;以及对第一多维数据应用地址编码以获得第一存储器地址。该方法/操作集还包括:至少部分地基于第一存储器地址的至少一部分来确定第一多维数据没有存储在高速缓冲存储器中;从主存储器中检索包括第一多维数据的数据块;以及将数据块存储在高速缓冲存储器中。
[0014]在示例性实施例中,上述方法/操作集还包括:接收访问第二多维数据的第二存储器访问请求;以及对第二多维数据应用地址编码以获得第二存储器地址。该方法/操作集还包括:至少部分地基于第二存储器地址的至少一部分来确定第二多维数据存储在高速缓冲存储器中;以及从高速缓冲存储器中检索第二多维数据存储器,其中先前存储在高速缓冲存储器中的数据块还包括第二多维数据。
[0015本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种用于对多维数据进行存储器地址编码的计算机实现的方法,所述多维数据包括第一多维数据和第二多维数据,所述方法包括:对所述第一多维数据应用地址编码以获得用于所述第一多维数据的第一存储器地址;对所述第二多维数据应用所述地址编码以获得用于所述第二多维数据的第二存储器地址,其中所述第二多维数据是从所述第一多维数据通过将所述第一多维数据中与特定维度对应的相应数据增加一个单位来获得的;将所述第一多维数据存储在存储器中的所述第一存储器地址处;和将所述第二多维数据存储在所述存储器中的所述第二存储器地址处,其中,所述地址编码确保所述第二存储器地址和所述第一存储器地址之间的线性差独立于所述多维数据的任何维度的尺寸而有界。2.根据权利要求1所述的计算机实现的方法,其中所述第一多维数据包括与第一维度对应的第一数据和与第二维度对应的第二数据,并且其中对所述第一多维数据应用所述地址编码以获得所述第一存储器地址包括:识别所述第一数据的第一位表示;识别所述第二数据的第二位表示;和对所述第一位表示和所述第二位表示进行交织以获得所述第一存储器地址。3.根据权利要求2所述的计算机实现的方法,其中对所述第一位表示和所述第二位表示进行交织包括:将包括所述第一位表示的最低有效位和所述第二位表示的最低有效位的第一位集合组合在一起;和将一个或多个附加的位集合附接到所述第一位集合的连续更高有效位位置中以获得所述第一存储器地址,其中每个附加的位集合包括来自所述第一数据和所述第二数据中的每一者的在相同位位置处的相应位。4.根据权利要求1所述的计算机实现的方法,其中所述存储器是主存储器,所述方法还包括:接收访问所述第一多维数据的第一存储器访问请求;对所述第一多维数据应用所述地址编码以获得所述第一存储器地址;至少部分地基于所述第一存储器地址的至少一部分来确定所述第一多维数据没有存储在高速缓冲存储器中;从所述主存储器中检索包括所述第一多维数据的数据块;和将所述数据块存储在所述高速缓冲存储器中。5.根据权利要求4所述的计算机实现的方法,还包括:接收访问所述第二多维数据的第二存储器访问请求;对所述第二多维数据应用所述地址编码以获得所述第二存储器地址;至少部分地基于所述第二存储器地址的至少一部分来确定所述第二多维数据存储在所述高速缓冲存储器中;和从所述高速缓冲存储器中检索所述第二多维数据,其中先前存储在所述高速缓冲存储器中的所述数据块还包括所述第二多维数据。6.根据权利要求4所述的计算机实现的方法,其中所述数据块在大小上与所述高速缓
冲存储器的最小缓存行对应,并且其中至少部分地基于所述地址编码,所述数据块还包括所述第二多维数据的概率大于百分之五十。7.根据权利要求1所述的计算机实现的方法,其中所述地址编码确保所述第一存储器地址和所述第二存储器地址之间的线性差在2
(4k

1)
之内的概率为2
(

k)
,其中k≥1。8.根据权利要求1所述的计算机实现的方法,其中所述第一多维数据和所述第二多维数据表示时空数据。9.一种用于对多维数据进行存储器地址编码的系统,所述多维数据包括第一多维数据和第二多维数据,所述系统包括:至少一个处理器;和存储计算机可执行指令的至少一个存储器,其中所述至少一个处理器配置成访问所述至少一个处理器并执行所述计算机可执行指令以:对所述第一多维数据应用地址编码以获得用于所述第一多维数据的第一存储地址;对所述第二多维数据应用所述地址编码以获得用于所述第二多维数据的第二存储器地址,其中所述第二多维数据是从所述第一多维数据通过将所述第一多维数据中与特定维度对应的相应数据增加一个单位来获得的;将所述第一多维数据存储在存储器中的所述第一存储器地址处;和将所述第二多维数据存储在所述存储器中的所述第二存储器地址处,其中所述地址编码确保所述第二存储器地址和所述第一存储器地址之间的线性差独立于所述多维数据的任何维度的尺寸而有界。10.根据权利要求9所述的系统,其中所述第一多维数据包括与第一维度对应的第一数据和与第二维度对应的第二数据,并且其中所述至少一个处理器配置成通过执行所述计算机可执行指令以进行以下操作来对所述第一多维数据应用所述地址编码以获得第一存储器地址:识别所述第一数据的第一位表示;识别所述第二数据的第二位表示;和对所述第一位表示和所述第二位表示进行交织以获得所述第一存储器地址。11.根据权利要求10所述的系统,其中所述至少一个处理器配置成通过执行所述计算机可执行指令以进行如下操...

【专利技术属性】
技术研发人员:张钰勃孟平凡
申请(专利权)人:小马智行
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1