利用可编程哈希地址的控制缓存访问的方法及相关缓存控制器技术

技术编号:14802234 阅读:97 留言:0更新日期:2017-03-14 22:52
一种用于控制缓存访问的方法,所述方法至少包含以下步骤:接收存储地址;利用哈希地址逻辑基于存储地址的至少一部分执行可编程哈希函数以生成哈希地址;以及至少部分地基于哈希地址确定缓存索引。

【技术实现步骤摘要】

本专利技术所公开的实施例涉及访问缓冲数据(例如缓存数据),尤其涉及利用可编程哈希地址(hashingaddress)的控制缓存访问的方法及相关缓存控制器。
技术介绍
在现今的系统中,当与处理数据的时间相比时,将数据带入处理器的时间显得非常的长。因此,在处理器输入处形成了瓶颈。缓存通过向处理器来回移动信息从而帮助减少了时间。当缓存包含需求信息时,该事务被称为缓存命中。当缓存不包含所需信息时,该事务被称为缓存缺失。通常,命中率为缓存的关键性能指标。如何提高命中率成为本领域的问题。通常,缓存可以是完全关联缓存,直接映射缓存,或组关联缓存。所述组关联缓存是介于完全关联缓存和直接映射缓存之间的混合式,并可以被认为是介于完全关联缓存和直接映射缓存的硬件复杂性/延时之间的合理折衷。无论采用哪种缓存设计,都需要提高命中率。例如,当缓存大小为4KB(千字节)时,所述缓存用于由32bpp(位/像素)的一个1024×768图像中预装载一个32×32图像。在线性地址表面(图像)中,由当前扫描线中的像素(X,Y)到下一扫描线中的像素(X,Y+1)的地址偏移等于图像中的图像间距的字节数。由于所述1024×768图像的图像间距为1024,则图像间距的字节数为4KB。考虑所述1024×768图像被分为多个箱(bin)且以逐箱(bin-by-bin)方式进行处理的情况,所述每个箱为一个32×32图像。图像间距的字节数等于缓存大小,即,扫描线的间距为4KB,其正好为缓存容量的大小4KB。如果我们不将图像的地址映射转变为缓存的阵列(bank)和组(set),则所有32个扫描线将命中相同的阵列和相同的组。对于直接映射方案,32×32图像仅有一个扫描线可以被读入缓存。所述32×32图像的下一扫描线将映射到相同的缓存线并取代缓存中当前存在的扫描线。对于4路(4-way)联合方案,32×32图像仅有4条扫描线可以保持在缓存中。所述32×32图像的其他28条扫描线将映射并试图取代缓存中当前的4条扫描线,所述当前的4条扫描线包含图像的前4条扫描线数据。结果,缺失率将变高,这归因于32×32图像仅有少量扫描线可以被保持在缓存中。此外,因为不能将32×32图像的全部扫描线同时保持在缓存中,32×32图像的数据预装载是无效的。因此,需要一种创新的缓存寻址设计将箱(bin)的大部分或全部图像数据预装载到缓存之中,因此提高命中率并减少数据处理延时。
技术实现思路
根据本专利技术的典型的实施例,提出一种利用可编程哈希地址的控制缓存访问的方法及相关缓存控制器来解决以上问题。根据本专利技术的第一方面,公开一种用于控制缓存访问的典型的方法。所述典型的方法包含:接收存储地址;利用哈希地址逻辑基于所述存储地址的至少一部分执行可编程哈希函数以生成哈希地址;并至少部分地基于所述哈希地址来确定缓存索引。根据本专利技术的第二方面,公开一种用于控制缓存访问的典型的缓存控制器。所述典型的缓存控制器包含输入接口,哈希地址逻辑,以及控制电路。输入接口配置为接收存储地址。哈希地址逻辑配置为基于所述存储地址的至少一部分执行可编程哈希函数以生成哈希地址。所述控制电路配置为至少部分地基于所述哈希地址来确定缓存索引。在阅读随后所详细描述的以不同附图形式展示的优选实施例后,对于本领域普通技术人员而言,本专利技术的这些和其他目的将变得显而易见。附图说明图1是根据本专利技术实施例的数据处理系统的框图。图2是根据本专利技术实施例的哈希地址位的位移操作图示,所述哈希地址位包括阵列信息。图3是根据本专利技术实施例的哈希地址位的另一位移操作图示,所述哈希地址位包括阵列信息。图4是根据本专利技术实施例的哈希地址位的位移操作图示,所述哈希地址位不包括阵列信息。图5是根据本专利技术实施例的哈希地址位的另一位移操作图示,所述哈希地址位不包括阵列信息。具体实施方式涉及特定组件的特定术语将始终在说明书和随后的权利要求中使用。本领域技术人员将认识到,制造商可以用不同名称来指代组件。本文件无意于区分那些名称上不同但功能相同的组件。在随后的说明书和权利要求中,术语“包含”和“包括”用于开放式类型,因此其应当被解释为“包含,但不限于…”。同样,术语“耦合”规定为意味着间接或直接电气连接中的任一。因此,如果一个设备与另一个设备耦合,其连接可以为直接电气连接或通过其他设备和连接的间接电气连接。图1是根据本专利技术实施例的数据处理系统的框图。数据处理系统100可以是电子设备的一部分。例如,数据处理系统100可以是图形处理系统。在此实施例中,数据处理系统100包含一个或多个处理器(例如,中央处理器或图形处理单元)102_1-102_N,缓存104,缓存控制器106,以及数据存储设备(例如,主存储器或下一级缓存)108。处理器102_1-102_N是缓存104的请求者(requestagent)。应当注意到,处理器102_1-102_N的数据可以调整,其取决于实际应用需求。缓存104是小尺寸存储设备(例如,具备较快数据访问速度的静态随机存取存储器(SRAM)设备),并可以被应用于图形处理系统或者位于处理器和大尺寸存储设备(例如,具备较慢数据访问速度的动态随机存取存储器(DRAM)设备)之间且需要较快信息交易的任何应用之中。如图1所示,缓存104包含数据存储器112和标签存储器(tagmemory)114。所述数据存储器112可以具有多个阵列(bank)116,每个阵列116包含多个缓存行(cacheline)118。例如,所述数据存储器112可以通过使用SRAM而应用于存储缓存数据,每个缓存行118可以配置为具有指定的缓存行大小(例如1K比特)。所述标签存储器114可以是其中存储了多个标签项120的标签RAM。类似地,所述标签存储器114可以具有多个阵列121,每个阵列121包含多个标签项120。由于不同阵列中的标签项可以被同时读取,因此所述缓存控制器106可以在一个周期内获取多个标签项。在一个典型的设计中,数据存储器112和标签存储器114可以被分配到相同存储设备的不同存储空间中。在另一典型的设计中,数据存储器112和标签存储器114可以被分配到不同的存储设备中。在此实施例中,每个标签项120与分配到数据存储器112中的一个缓存行118相关联,且具有多个状态位(例如,有效位(validbit)\V\122,页面重写标志位(dirtybit)\D\124,以及一个或多个哈希使能位(hashenablebit)\H1\-\HN\126)和标志域(tagfie本文档来自技高网
...

【技术保护点】
一种用于控制缓存访问的方法,包括:接收存储地址;利用哈希地址逻辑基于所述存储地址的至少一部分执行可编程哈希函数以生成哈希地址;以及至少部分地基于所述哈希地址确定缓存索引。

【技术特征摘要】
2014.11.21 US 14/549,5561.一种用于控制缓存访问的方法,包括:
接收存储地址;
利用哈希地址逻辑基于所述存储地址的至少一部分执行可编程哈希函数以生成哈希
地址;以及
至少部分地基于所述哈希地址确定缓存索引。
2.根据权利要求1所述的方法,其中,执行所述可编程哈希函数的步骤包括:
当至少一部分图像被装载到缓存中的图像具有第一图像大小时,通过第一哈希函数设
置来配置所述可编程哈希函数;
当至少一部分所述图像被装载到缓存中的图像具有不同于所述第一图像大小的第二
图像大小时,通过不同于所述第一哈希函数设置的第二哈希函数设置来配置所述可编程哈
希函数。
3.根据权利要求1所述的方法,其中,所述可编程哈希函数为位移操作。
4.根据权利要求3所述的方法,其中,所述位移操作配置为向右移位或向右旋转。
5.根据权利要求3所述的方法,其中,基于图像的图像大小来适应性地设置通过所述位
移操作而移位或旋转的比特位置数目,所述图像的至少一部分图像被装载到所述缓存中。
6.根据权利要求1所述的方法,其中,执行可编程哈希函数的步骤包括:
参考所述缓存的缓存大小来适应性地设置选自存储地址的地址位数目,以充当所述存
储地址的至少一部分。
7.根据权利要求1所述的方法,其中,所述缓存具有包含多个阵列的标签存储器,所述
存储地址的至少一部分包含最初用于标引阵列之一的至少一个地址位,哈希地址包含实际
上用于标引阵列之一的至少一个地址位。
8.根据权利要求1所述的方法,其中,缓存具有包含多个阵列的标签存储器,存储地址
包含实际上用于标引阵列之一的至少一个地址位,存储地址的至少一部分不包含所述至少
一个地址位。
9.根据权利要求1所述的方法,其中,存储地址由请求者产生,所述方法进一步包括:
在缓存内的缓存行的标签项中设置哈希使能位,所述哈希使能位用
来表示可编程哈希函数已经为所述存储地址而启用。
10.根据权利要求1所述的方法,进一步包括:
在缓存内的缓存行的标签项中为多个不同的请求者分别设置多个哈希使能位;
其中,每个哈希使能位表示指定的可编程哈希函数是否已经为相应的请求者所产生的
存储地址而启用。
11.一种控制缓存访问的缓存控制器...

【专利技术属性】
技术研发人员:黄锡霖柯澄瑛钟炘澔陈朝钦
申请(专利权)人:联发科技新加坡私人有限公司
类型:发明
国别省市:新加坡;SG

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

1