高速缓存哈希的利记博彩app
【技术领域】
[0001] 本发明设及用于生成高速缓存地址的高速缓存逻辑器、高速缓存存储器系统和用 于生成高速缓存地址的方法。
【背景技术】
[0002] 高速缓存存储器通过减少与存储器访问相关的延迟而被广泛用于提高数据处理 系统的性能。运通常是通过在能够W低于存储数据的主存储器的延迟来访问的高速缓存存 储器处高速缓存一些之前访问过的(例如,最近访问的)数据来实现的。为了保证能够易 于从高速缓存存储器检索高速缓存的数据,必须根据定义的方案组织高速缓存的数据。
[0003] 通常,将用于高速缓存的数据保存在由地址(诸如,存储器地址或计算系统中的 硬件资源地址)标识的资源处。运些资源地址的访问可W遵循某些固定的模式(诸如J顿 序存储器区块的访问),并且因此可能注意确保表示相关(例如,顺序)资源地址的数据均 匀分布在高速缓存存储器上,W避免病态访问情况。全部映射到仅少数高速缓存线路的一 系列地址是病态访问情况的实例,其中重复访问相同的少数高速缓存线路可能导致大量高 速缓存线路更换和当从该高速缓存需要数据时的糟糕的命中率。运种行为严重影响高速缓 存存储器的性能。
[0004] 本领域中已提出多种机制W改进数据在高速缓存上的分布和对于针对给定大小 的高速缓存最大化高速缓存命中率。运些机制可W使用哈希函数来给数据到高速缓存 地址上的映射注入伪随机变化。例如,M.Schlanskeer等在其论文"Randomizationand AssociativityintheDesignofPlacement-InsensitiveCaches"(ComputerSystems Uboratory,HPk93-41,1993年6月)中描述了使用哈希函数来随机化高速缓存中的数据 的位置。然而,使用此类复杂的哈希函数在娃面积和延迟方面一般太昂贵,而不能在高速的 高速缓存存储器系统的关键路径中实现。 阳0化]通过避免高速缓存访问冲突(例如,当因在同一高速缓存线路上正执行另一 高速缓存读取而无法访问高速缓存的数据时可能发生)来改进高速缓存性能的其它机 制包括使用偏斜相关的高速缓存架构。在"Acasefortwo-wayskewed-associative caches" (A.Seznec,Proceedingsofthe20thInternationalSymposiumonComputer Architecture,SanDiego,1993 年 5 月)和"Trade-offsforSkewed-Associative (Niches巧.Vandierendonck和K.Debosschere(根特大学的电子及信息系统系发表的论文) 中描述了运种架构。偏斜相关的架构需要多个高速缓存块(cachebank),因为该机制通过 高速缓存地址的块间分散来获取低未命中率。然而,如Vandierendonck的论文所评述的, 通过将偏斜相关的架构与哈希函数组合W将随机字符注入数据至高速缓存的映射来实现 最佳性能。再次地,运种哈希函数很复杂并且通常太昂贵而不能在高速的高速缓存存储器 系统的关键路径中实现。
【发明内容】
[0006] 根据本发明第一方面,提供了一种用于根据二进制输入存储器地址生成高速缓存 地址的高速缓存逻辑器,该二进制输入存储器地址包括为具有第一预定义长度的第一比特 序列的第一二进制串和作为具有第二预定义长度的第二比特序列的第二二进制串,该高速 缓存逻辑器包括:
[0007] 哈希引擎,该哈希引擎被构造成根据第一二进制串生成第Ξ二进制串,该第Ξ二 进制串具有第二预定义长度,并且哈希引擎被构造成通过借助于第一逐比特运算组合第 一二进制串的比特的相应子集来形成第Ξ二进制串的各比特,其中,在哈希引擎处定义第 一二进制串的比特的子集,使得每个子集是唯一的并且每个子集平均起来包括第一二进制 串的约一半比特;W及
[0008] 组合单元,该组合单元被设置成借助于可逆运算将第Ξ二进制串与第二二进制串 组合,W形成用作高速缓存存储器中的高速缓存地址的至少一部分的二进制输出串。
[0009] 可W在哈希引擎用硬件借助于第一二进制串与第Ξ二进制串的比特之间的数据 路径,定义第一二进制串的比特的该子集,每个数据路径被设置成提供第一二进制串的比 特,W与同一子集的第一二进制串的其它比特组合,W形成第Ξ二进制串的对应比特。
[0010] 所述数据路径可W是哈希引擎的物理连接。
[0011] 哈希引擎可W包括多组逐比特运算符,每组逐比特运算符被设置成根据第一二进 制串的比特的对应子集形成第Ξ二进制串的比特。
[0012] 该二进制输出串可W用于标识高速缓存存储器块中的高速缓存行。
[0013] 该第一二进制串可W是二进制输入存储器地址的预定的最高有效比特序列。
[0014] 该第二二进制串可W是二进制输入地址的预定的次高有效比特序列。
[0015] 该二进制输入存储器地址可W具有固定长度,并且第一二进制串和第二二进制串 是二进制输入存储器地址中相邻的比特序列。
[0016] 高速缓存逻辑器还可W包括块选择单元,该块选择单元被构造成借助于第二逐比 特运算将从二进制输出串导出的一个或更多个比特与二进制输入存储器地址的同等数量 的比特组合,W生成用于标识具有多个高速缓存块的高速缓存存储器中的块的块标识符。
[0017] 块标识符在长度上可W等于从二进制输出串导出的比特的数量。
[0018] 该二进制输入串的该一个或更多个比特可W是不比第二二进制串的比特高的比 特。
[0019] 该二进制输入串的该一个或更多个比特可W与该二进制输入串中的第二二进制 串相邻。
[0020] 高速缓存逻辑器还可W包括块加扰单元,该块加扰单元具有比特寄存器,该比特 寄存器被构造成存储预定二进制串,该块加扰单元被构造成通过将来自二进制输出串的一 个或更多个比特的序列用作比特寄存器中的查找器来对二进制输出串的一个或更多个比 特进行运算,W从所存储的预定二进制串选择预定数量的比特W在块选择单元中用作从二 进制输出串导出的该一个或更多个比特,其中,该预定二进制串具有W下属性,即所选择比 特的值具有基本相同的可能性为可能值中的任一值。
[0021] 预定二进制串可W是伪随机二进制串。
[0022] 预定二进制串可W是2^个比特长,并且来自二进制输出串的该预定比特序列可W 是二进制输出串的N个最低有效比特,块加扰单元被构造成将二进制输出串的该N个最低 有效比特用作该预定二进制串中的比特地址,从该比特地址其从所存储的预定二进制串读 取预定数量比特。
[0023] 比特寄存器可W是可编程的,并且块加扰单元可操作用于使伪随机生成的二进制 串被写入比特寄存器W用作预定二进制串。
[0024] 第一逐比特运算和可逆运算均可W是X0R运算。 阳02引第二逐比特运算可W是X0R运算。
[0026] 根据本发明第二方面,提供了一种高速缓存存储器系统,该高速缓存存储器系统 包括:
[0027] 根据本发明第一方面的具有上述任意特征的高速缓存逻辑器;W及
[0028] 具有多个高速缓存块的高速缓存存储器;
[0029] 其中,高速缓存存储器系统被构造成在由块标识符指示的高速缓存块的二进制输 出串指示的高速缓存行至少存储第一二进制串和具有二进制输入存储器地址、用于高速缓 存的数据。
[0030] 每个高速缓存块可W具有2S个行,其中,S为第二二进制串和第Ξ二进制串的每个 中的比特数量。
[0031] 二进制输入存储器地址可W包括二进制输入存储器地址的W个最低有效比特的 第四二进制串,第四二进制串不包括第一二进制串、第二二进制串或从二进制输出串导出 的、用在块选择单元的比特,并且高速缓存存储器的各高速缓存行具有至少2"个字节加上 第一二进制串宽的长度的宽度。
[0032] 根据本发明第Ξ方面,提供了一种用于根据二进制输入存储器地址生成高速缓存 地址的方法,该二进制输入存储器地址包括为具有第一预定义长度的第一比特序列的第 一二进制串和作为具有第二预定义长度的第二比特序列的第二二进制串,该方法包括W下 步骤:
[0033] 接收输入存储器地址的第一二进制串;
[0034] 根据第一二进制串生成第Ξ二进制串,第Ξ二进制串具有第二预定义长度,第 Ξ二进制串的各比特通过借助于第一逐比特运算组合第一二进制串的比特的相应子集来 形成,其中,第一二进制串的比特的子集被定义成使得每个子集是唯一的并且每个子集平 均起来包括第一二进制串的约一半比特。
[0035] 借助于可逆运算将第Ξ二进制串与第二二进制串组合,W形成用作高速缓存存储 器中的高速缓存地址的至少一部分的二进制输出串。
[0036] 可W提供用于生成高速缓存逻辑器的机器可读代码。可W提供已被编码了非暂时 性机器可读代码的机器可读存储介质W生成高速缓存逻辑器。
【附图说明】
[0037] 现在将W例示的方式参照附图描述本发明,其中:
[0038] 图1是局速缓存存储器系统的不意图。
[0039] 图2是块加扰单元的示意图;
[0040] 图3是例示生成高速缓存地址的方法的流程图。
[0041] 图4是根据一个示例的硬连线的哈希引擎的示意图。
【具体实施方式】
[0042] W下描述被提出W使本领域的任何技术人员能够进行和使用本发明,并在特定应 用的上下文中提供。对于本公开的实施方式的各种变更对于本领域技术人员是显而易见 的。
[0043] 本文定义的一般原理可W应用于其它实施方式和应用,儿不背离本发明的精神和 范围。因此,本