空间高速缓存制造技术

技术编号:36596276 阅读:11 留言:0更新日期:2023-02-04 18:07
一种高速缓存,包括:p乘q存储单元阵列;行寻址单元;以及列寻址单元。每个存储单元具有m乘n存储元胞阵列。列寻址单元对于每个存储单元具有m个n对1多路复用器,存储单元的m行中的每一行与一个n对1多路复用器相关联,其中每个n对1多路复用器具有耦接到与关联于该多路复用器的行相关联的n个存储元胞中的每个的输入。行寻址单元对于每个存储单元具有n个m对1多路复用器,存储单元的n列中的每一列与一个多路复用器相关联,其中,每个m对1多路复用器具有耦接到与关联于该多路复用器的列相关联的m个存储元胞中每个的输入。行寻址单元和列寻址单元支持例如使用虚拟或物理地址对所述存储单元阵列的读取和/或写入。存储单元阵列的读取和/或写入。存储单元阵列的读取和/或写入。

【技术实现步骤摘要】
【国外来华专利技术】空间高速缓存
[0001]相关申请的交叉引用
[0002]本申请要求于2020年6月24日提交的美国专利申请第16/910,813号的优先权,并通过引用将该美国专利申请全部并入本文。


[0003]公开了与专用类型的高速缓存存储器相关的实施方式。

技术介绍

[0004]半导体存储器(包括高速缓存)是线性布置和寻址的。当处理多维对象(如二维图像或矩阵)时,这些对象例如通过一行接一行的连接被“展平”。对于某些类型的处理算法,可能需要访问多维对象的特定部分,这些部分与这种线性的存储器布置不太匹配。例如,对于某些处理,可能需要访问距中心点小距离内的多个点,但是因为这些点可能顺序存储在彼此远离且间隔不规则的位置,所以当前存储器和高速缓存访问可能效率低、速度慢,并且需要许多不同的读取操作来访问所需数据。

技术实现思路

[0005]因此,需要改进的高速缓存,例如,诸如在处理诸如图像或矩阵等的二维数据结构时可以提高读取灵活性和带宽的改进的高速缓存。实施方式提供了能够以非线性方式表示多维对象(例如二维图像或矩阵)的部分的高速缓存,从而允许例如高效地访问图像的附近像素。
[0006]根据第一方面,提供了一种高速缓存。该高速缓存包括p(行)
×
q(列)存储单元阵列;行寻址单元;以及列寻址单元。每个存储单元具有m(行)
×
n(列)存储元胞阵列。列寻址单元对于每个存储单元具有m个n对1多路复用器,存储单元的m行中的每一行与一个n对1多路复用器相关联,其中每个n对1多路复用器具有耦接到与关联于该多路复用器的行相关联的n个存储元胞中每个存储元胞的输入。行寻址单元对于每个存储单元具有n个m对1多路复用器,存储单元的n列中的每一列与一个m对1多路复用器相关联,其中每个m对1多路复用器具有耦接到与关联于该多路复用器的列相关联的m个存储元胞中每个存储元胞的输入。行寻址单元和列寻址单元支持存储单元阵列的读取和/或写入,使得存储单元阵列中的多个行和/或列可以并行读取和/或写入。
[0007]在一些实施方式中,m=n=4,并且每个存储元胞包括一个字节,使得每个存储单元包括16个字节,并且其中p=q=8,使得存储单元阵列包括1024个字节。在一些实施方式中,行寻址单元和列寻址单元支持在单个时钟周期中读取和/或写入一个或多个存储单元的多个行和/或列的存储元胞。在一些实施方式中,行寻址单元能够跨存储单元阵列中的一个或多个寻址多达p*m行的存储元胞,并读取p*m行中的每一行中的任何元胞,其中没有两个这样的元胞在同一行中。
[0008]在一些实施方式中,列寻址单元能够跨存储单元阵列中的一个或多个寻址多达q*
n列的存储元胞,并读取q*n列中的每一列中的任何元胞,其中没有两个这样的元胞在同一列中。在一些实施方式中,对于不在存储单元阵列的第一行中的每个存储单元,行寻址单元还具有二对一多路复用器,该二对一多路复用器具有耦接到与存储单元的每一列相关联的n对1多路复用器的输出以及与先前的行中的存储单元相关联的n对1多路复用器的输出的输入,并且对于不在所述存储单元阵列的所述第一列中的每个存储单元,所述列寻址单元还具有二对一多路复用器,该二对一多路复用器具有耦接到与所述存储单元的每一行相关联的m对1多路复用器的输出以及与先前的列中的存储单元相关联的m对1多路复用器的输出的输入。
[0009]在一些实施方式中,行寻址单元和列寻址单元各自支持对存储单元阵列的存储元胞的读取,并且其中行寻址单元支持对存储单元阵列中的存储元胞的写入。在一些实施方式中,只有行寻址单元支持对存储单元阵列的存储元胞的写入,使得列寻址单元不支持对存储单元阵列的存储元胞的写入。在一些实施方式中,p
×
q存储单元阵列中的存储单元表示可以由虚拟地址表示的最小实体。
[0010]在一些实施方式中,使得对于p
×
q存储单元阵列中的每个存储单元,存储单元中的每个存储元胞是高速缓存中的最小可寻址数据量,并且仅具有存储单元内的物理地址。在一些实施方式中,行寻址单元具有针对q*n列中的每一列的单独的地址,且列寻址单元针对p*m行中的每一行具有单独的地址,使得行寻址单元和列寻址单元支持在存储单元阵列和每个存储单元内的存储元胞阵列内同时读取和/或写入来自不同行的多达p*m个存储元胞和来自不同列的多达q*n个存储元胞。
[0011]在一些实施方式中,高速缓存还包括加载/存储单元,以及控制和解码电路,加载/存储单元能够以表示二维数据结构的远程存储来填充一些或所有存储元胞,控制和解码电路能够将表示由远程存储器表示的二维数据结构的一部分的虚拟地址转换成用于引导行和列寻址单元访问特定存储元胞的控制信号。在一些实施方式中,所述控制和解码电路保持具有虚拟原点的操作数区域,使得虚拟原点用作地址模板的参考点,该地址模板包括用于远程存储器的多个虚拟地址,且其中所述控制和解码电路还能够解码地址模板以确定多个虚拟地址。在一些实施方式中,控制和解码电路还能够操纵虚拟原点并在虚拟原点被操纵时指示加载/存储单元通过从远程存储器读取数据来初始化和/或更新存储元胞。
[0012]根据第二方面,提供了访问根据第一方面的任一实施方式所述的高速缓存的方法。该方法包括:用表示二维数据结构的远程存储器初始化第一多个存储单元;以及通过行寻址单元和/或列寻址单元以虚拟地址访问第一多个存储单元内的一个或多个存储元胞,该虚拟地址指示由相应存储元胞的内容表示的二维数据结构的一部分。
[0013]在一些实施方式中,该方法还包括将指示二维数据结构的一部分的虚拟地址转换为指示相应存储元胞的物理地址。在一些实施方式中,该方法还包括形成读控制信号并将读控制信号发送到行寻址单元和/或列寻址单元以读取相应存储元胞的内容。在一些实施方式中,通过行寻址单元和/或列寻址单元以虚拟地址访问第一多个存储单元内的一个或多个存储元胞(其中虚拟地址指示由相应存储元胞的内容表示的二维数据结构的一部分)包括:解码具有多个虚拟地址的地址模板;以及用与多个虚拟地址中的每个相对应的存储元胞的内容形成操作数向。
[0014]在一些实施方式中,该方法还包括保持具有虚拟原点的操作数区域,其中操作数
区域包括表示二维数据结构的一部分的存储单元。在一些实施方式中,该方法还包括移动虚拟原点和与虚拟原点相关联的操作数区域;以及响应于移动虚拟原点和与虚拟原点相关联的操作数区域,以表示二维数据结构的远程存储器初始化第二多个存储单元,使得第二多个存储单元表示二维数据结构的一部分。
[0015]在一些实施方式中,响应于移动虚拟原点和与虚拟原点相关联的操作数区域,以表示二维数据结构的远程存储器初始化第二多个存储单元,使得第二多个存储单元表示二维数据结构的一部分包括以下之一:(1)响应于向右移动虚拟原点和与虚拟原点相关联的操作数区域,以新的最右列的存储单元替换先前的最左列的存储单元,将新列的虚拟地址重新指定为先前的最右列的虚拟地址加上单个存储单元宽度之和;(2)响应于向左移动虚拟原点和与虚拟原本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】1.一种高速缓存(100),包括:p(行)
×
q(列)存储单元(102)阵列;行寻址单元;以及列寻址单元;其中每个存储单元(102)具有m(行)
×
n(列)存储元胞阵列(B0到B15);其中,所述列寻址单元对于每个存储单元(102)具有m个n对1多路复用器(104),存储单元(102)的m行中的每一行与一个n对1多路复用器(104)相关联,其中每个n对1多路复用器(104)具有耦接到与关联于该多路复用器(104)的行相关联的n个存储元胞(B0到B15)中的每个存储元胞的输入;其中,所述行寻址单元对于每个存储单元(102)具有n个m对1多路复用器(106),所述存储单元(102)的n列中的每一列与一个m对1多路复用器(106)相关联,其中,每个m对1多路复用器(106)具有耦接到与关联于该多路复用器(106)的列相关联的m个存储元胞(B0到B15)中的每个存储元胞的输入,以及其中,所述行寻址单元和列寻址单元支持所述存储单元(102)阵列的读取和/或写入,使得所述存储单元(102)阵列的多个行和/或列能够并行读取和/或写入。2.根据权利要求1所述的高速缓存,其中m=n=4,并且每个存储元胞(B0到B15)包括一个字节,使得每个存储单元(102)包括16个字节,并且其中p=q=8,使得存储单元(102)阵列包括1024个字节。3.根据权利要求1所述的高速缓存,其中所述行寻址单元和列寻址单元支持在单个时钟周期中对一个或多个存储单元(102)的多个行和/或列的存储元胞(B0到B15)进行读取和/或写入。4.根据权利要求1所述的高速缓存,其中,所述行寻址单元能够跨存储单元(102)阵列中的一个或多个寻址多达p*m行的存储元胞(B0到B15),并读取所述p*m行的每一行中的任何元胞,其中没有两个这样的元胞在同一行中。5.根据权利要求1所述的高速缓存,其中,所述列寻址单元能够跨存储单元(102)阵列中的一个或多个寻址多达q*n列的存储元胞(B0到B15),并读取所述q*n列的每一列中的任何元胞,其中没有两个这样的元胞在同一列中。6.根据权利要求1

5中任一项所述的高速缓存,其中:对于不在存储单元(102)阵列的第一行中的每个存储单元(102),所述行寻址单元还具有二对一多路复用器,该二对一多路复用器具有耦接到与所述存储单元(102)的每一列相关联的n对1多路复用器(104)的输出以及与先前的行中的存储单元(102)相关联的n对1多路复用器(104)的输出的输入,以及对于不在存储单元(102)阵列的第一列中的每个存储单元(102),所述列寻址单元还具有二对一多路复用器,该二对一多路复用器具有耦接到与存储单元(106)的每一行相关联的m对1多路复用器(106)的输出以及与先前的列中的存储单元(102)相关联的m对1多路复用器(106)的输出的输入。7.根据权利要求1

5中任一项所述的高速缓存,其中,所述行寻址单元和所述列寻址单元各自支持对所述存储单元(102)阵列的存储元胞(B0到B15)的读取,并且其中所述行寻址单元支持对所述存储单元(102)阵列的存储元胞(B0到B15)的写入。
8.根据权利要求7所述的高速缓存,其中只有所述行寻址单元支持对所述存储单元(102)阵列的存储元胞(B0到B15)的写入,使得所述列寻址单元不支持对所述存储单元(102)阵列的存储元胞(B0到B15)的写入。9.根据权利要求1

5中任一项所述的高速缓存,其中所述p
×
q存储单元(102)阵列中的存储单元(102)表示能够由虚拟地址表示的最小实体。10.根据权利要求1

5中任一项所述的高速缓存,使得对于所述p
×
q存储单元(102)阵列中的每个存储单元,所述存储单元(102)内的每个存储元胞(B0到B15)是所述高速缓存(100)中的最小可寻址数据量,并且仅具有所述存储单元(102)内的物理地址。11.根据权利要求1

5中任一项所述的高速缓存,其中所述行寻址单元针对q*n列中的每一列具有单独的地址,且所述列寻址单元针对p*m行中的每一行具有单独的地址,使得所述行寻址单元和列寻址单元支持在存储单元(102)阵列和每个存储单元(102)内的存储元胞(B0到B15)阵列内同时读取和/或写入来自不同行的多达p*m个存储元胞(B0到B15)和来自不同列的多达q*n个存储元胞(B0到B15)。12.根据权利要求1

5中任一项所述的高速缓存,还包括:加载/存储单元,其能够(906)以表示二维数据结构的远程存储器填充一些存储元胞或全部存储元胞(B0到B15);以及控制和解码电路(903),其能够将表示由远程存储器表示的二...

【专利技术属性】
技术研发人员:M
申请(专利权)人:艾迪克斯生物识别普通股份公司
类型:发明
国别省市:

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

1