专利名称:无来自正常分配的干扰情况下的高速缓存器锁定的制作方法
技术领域:
本发明通常涉及处理器领域且更明确地说,涉及一种无来自正常分配的干扰情况 下的高速缓存器锁定的方法。
#狄*
微处理器可在各种各样的应用(包含便携式电子装置)中执行计算任务。需要最 大化处理器性能以便可准许在便携式电子装置及其它应用中实施额外功能及特征。
由于计算机程序中常见的空间及时间局部性特性,因此将在任一给定时间处理的
指令及数据极可能在不久的将来就需要,且可保持在高速度的高速缓冲存储器中,其 中可快速地得到所述指令及数据。存储器存取指令向高速缓存器中的CAM结构呈现 (虚拟或物理)地址的一部分(称为旗标),其中将所述旗标与高速缓存器的RAM 中所存储的指令及/或数据的对应地址位作比较(本文中将CAM与RAM内容一起称 为高速缓存器条目)。如果所述旗标匹配或"命中",那么返回含有所需指令及/或数 据的高速缓存器线(或,在组相关联高速缓存器的情况下,返回多个高速缓存器线,且 通过称为索引的所述地址的不同部分来选择一个高速缓存器线)。如果所述旗标不匹配 任一 CAM条目,那么其"未命中"且所述存储器存取指令继续以从主存储器存取所 需的指令或数据。
通常需要的是最大化总髙速缓存器命中率,因此最小化对主存储器的芯片外存 取,此可招致等待时间、使管线停止及消耗额外过滤。另外,在某些应用中,少数重 要且经常使用的指令可能是已知的,且此信息可能维持在高速缓存器中,而不管高速 缓存器的整体性能如何。某些指令组架构提供"锁定"高速缓存器条目的装置,以使 得条目在正常高速缓存器未命中处理期间不被替换。在某些情况下,对待锁定高速缓 存器条目的选择是明确的及精确的,以便最小化被锁定条目对正常高速缓存器分配算 法的影响。
图1是描绘锁定高速缓存器条目的一个代表性装置的功能框图。高速缓存器l(其 包括指令高速缓存器、数据高速缓存器或统一高速缓存器)包含编号为0到n-l的n 个条目。基底寄存器2保存表示高速缓存器的"基底"的条目数目或可用于正常分配 的最低高速缓存器条目。在所述基底以下的高速缓存器条目不可用于替换且因此不能 "被锁定"。如果没有条目被锁定,那么基底寄存器含有一 0,且高速缓存器替换算 法在整个高速缓存器中操作。如图1中所描绘,如果底部的三个条目被锁定,处理器 将基底寄存器递增到三,第一高速缓存器条目可用于再分配。在此情况下,正常高速 缓存器再分配算法在高速缓存器从"基底"或三到高速缓存器的顶部n-l的部分中操作。
将一个地方中的被锁定高速缓存器条目分成组会简化替换算法。例如,如果在轮 转基础上替换高速缓存器条目,那么仅"转滚"点会受到被锁定条目的影响(即,当递
增越过n-l时,下一条目是由基底寄存器2而非0指向的条目)。不存在轮转分配必须 "跳过"的分散在高速缓存器空间上的非邻接的被锁定条目。应注意,分组及锁定高 速缓存器条目的基底方法仅是代表性的而不是限制性的。可将高速缓存器条目聚集在 一起且锁定以防止根据各种方法再分配。
中断通常是由处理器外部的事件所产生且可以是性质不确定的。因此,中断可出 现在尝试精心布置被锁定高速缓存器条目的码执行期间。中断处置码可包含在高速缓 存器中可能未命中的存储器存取指令,从而导致对主存储器的存取。这些存储器存起 将在高速缓存器中产生正常的分配。目卩,被提取用来服务中断的指令及数据将替换某 些高速缓存器线。如果中断出现在被锁定高速缓存器条目处理已开始之后,但在建立 及布置所述被锁定条目之前,那么可再分配要锁定的高速缓存器条目。另外,可在打 算用于被锁定条目的区域(例如基底寄存器下面的地方)中分配未被锁定的高速缓存 器条目。此可产生非邻接被锁定条目,从而显著地增加某些高速缓存器替换算法(例 如,轮转)的负担。
发明内容
在一个或一个以上实施例中,定义区块正常高速缓存器分配(BNCA)模式。当处 理器进入BNCA模式时,高速缓存器条目仅可通过预定指令来分配。正常存储器存取 指令(例如,作为中断码的一部分)可执行且将在高速缓存器未命中的情况下从主存储 器检索数据;然而,不允许这些指令分配所述高速缓存器中的条目。仅预定指令(例如, 那些用来建立被锁定高速缓存器条目的指令)可分配所述高速缓存器中的条目。当建立 了所述被锁定条目时,所述处理器退出BNCA模式,且任一存储器存取指令可分配高 速缓存器条目。可通过在配置寄存器中设定一位来指示BNCA模式。
一个实施例涉及一种限制高速缓存器中的分配的方法。在限制模式中,仅允许一 预定组的指令来分配高速缓存器条目。在非限制模式中,允许任一存储器存取指令来 分配高速缓存器条目。
另一实施例涉及一种管理高速缓存器的方法。进入其中仅预定指令可分配高速缓 存器条目的限制模式。使用所述预定指令来分配高速缓存器条目。退出所述限制模式 且针对任一存储器存取指令分配高速缓存器条目。
又一实施例涉及一种处理器。所述处理器包含高速缓冲存储器及配置寄存器,所 述配置寄存器具有区块正常高速缓存器分配(BNCA)位。所述处理器另外包含高速缓存
器控制器,其操作以通过存储器存取指令来控制所述高速缓存器中的条目的所述分配,
且进一步操作以在设定所述BNCA位时除一预定组的指令外不允许所述分配。
图1是高速缓冲存储器及基底寄存器的功能框图。
图2是处理器的功能框图。
图3是锁定高速缓存器条目的方法的流程图。
具体实施例方式
图2描绘代表性处理器10的功能框图,其采用管线式架构及分层存储器结构两 者。处理器10根据控制逻辑14执行指令执行管线12中的指令。控制逻辑14中包含 以下将更详细描述的配置寄存器15,其包含区块正常高速缓存器分配(BNCA)位16。 所述管线包含组织成管线级的各种寄存器或锁存器17,以及一个或一个以上算术逻辑 单元(ALU) 18。通用寄存器(GPR)堆20提供构成存储器分层的顶部的寄存器。
管线从指令高速缓存器(I高速缓存器)22提取指令,其中存储器寻址及许可是 由指令侧转换后援缓冲器(ITLB) 24来进行管理。数据是从数据高速缓存器(D高速 缓存器)26存取,其中存储器寻址及许可是由主转换后援缓冲器(TLB) 28来进行管 理。在各种实施例中,ITLB24可包括TLB 28的一部分的副本。另一选择是,可将ITLB 24与TLB28集成在一起。类似地,在处理器10的各种实施例中,可将I高速缓存器 22和D高速缓存器26相集成或联合在一起。在存储器接口 30的控制下,I高速缓存 器22及/或D高速缓存器26中的未命中导致对主(芯片外)存储器32的存取。
处理器10可包含输入/输出(I/O)接口34,其控制对各个外围装置36的存取。 所属领域的技术人员将认识到,可以对处理器IO作出多种变化。例如,处理器10可 包含用于I与D高速缓存器22、 26中的任一者或二者的第二层级(L2)高速缓存器。 另外,可将处理器10中所描绘的一个或一个以上功能块从特定实施例中省去。
包含存储器存取指令的常见指令组架构仅分配高速缓存器条目而不将指令或数 据读取到管线中。例如,PLD(预加载)指令读取主存储器中的地址。如果PLD在相关 高速缓存器中未命中,那么将来自存储器的数据读取并加载到高速缓存器中,以替换 现有的高速缓存器条目。PLD指令可由程序用来恭敬地将某些重要指令及/或数据预加 载到I高速缓存器22及/或D高速缓存器26,以确保存取所述指令及/或数据的后续码 将在相关高速缓存器22、 16中命中。所述程序可联合写入到基底寄存器(或其它锁定 机构)来使用PLD指令以锁定高速缓存器22、 26中的预加载条目以防止被其它存储 器存取操作替换。然而,在此处理期间接收的中断可颠覆所需的预加载及高速缓存器 条目锁定操作。
根据一个或一个以上实施例,处理器10可进入其中仅预定指令可分配高速缓存
器条目的模式。例如,可通过写入(例如)配置寄存器15中的区块正常高速缓存器分 配(BNCA)位16来进入所述模式。当BNCA指示符16经设定或处于活动状态时,可 防止共用存储器存取指令分配(例如,替换)高速缓存器22、 26中的条目。仅选择预定 指令可分配高速缓存器条目。这些指令可包含(例如)用于分配高速缓存器条目而不 将数据读取到管线中的PLD指令。所述指令不可能由中断处置码来执行,且因此中断 码不可能颠覆在BNCA模式中执行的预加载及高速缓存器条目锁定操作。另一选择是, 在提供明确高速缓存器锁定(例如,LPLD(锁定预加载)指令)的指令组架构中,可将 BNCA模式期间的高速缓存器分配限于所述锁定高速缓存器分配指令。
如果在BNCA模式期间——即高速缓存器预加载及锁定操作期间不出现中断,那 么将适当地执行任何存储器存取指令;仅防止所述指令分配高速缓存器条目。S卩,如 果存储器存取指令在高速缓存器22、 26中未命中,那么将执行主存储器存取,且将所 述指令或数据返回到管线。然而,髙速缓存器未命中处理将不能分配高速缓存器条目。 因此,如果随后尝试对相同或接近的指令或数据进行存取,那么其将在高速缓存器中 再次未命中,且从主存储器检索指令或数据。这将因引入重复的较长存储器存取等待 时间而使中断例程的执行性能降级。然而,假定中断例程既短又极少发生。另一方面, 通过确保可在不被作为中断码的一部分执行的存储器存取指令颠覆的情况下建立精确 的被锁定高速缓存器条目来实现显著的性能增益及设计简化。
参照图3的流程图来描述根据一个实施例建立被锁定高速缓存器条目的过程。设 定BNCA位16(或其它BNCA模式指示符)(框40)。此指示控制I高速缓存器22及D 高速缓存器26的电路仅允许某些预定指令(例如,PLD)来分配高速缓存器条目(框42)。 此允许处理器10建立经定位以优化正常高速缓存器分配程序的精确的固定高速缓存 器条目。如果在BNCA模式期间出现中断,那么执行中断码,且不允许所有存储器存 取指令(预定指令除外)分配高速缓存器条目(框44)。当中断码完成时,处理器10继续 预加载及锁定高速缓存器条目。当已建立了所有所需的被锁定高速缓存器条目时(框 46),处理器10退出BNCA模式且清除BNCA位16(或其它BNCA模式指示符)(框48)。 处理器10接着继续执行,从而允许任一存储器存取指令按照正常分配协议来分配高速 缓存器条目(框50)。以此方式,防止精确的被锁定高速缓存器条目的建立被中断码存 储器存取指令颠覆。
在一个实施例中,单个BNCA位16控制用于所有高速缓存器22、 26的BNCA 模式。根据另一实施例,单独的BNCA位16控制单独用于I高速缓存器22及D高速 缓存器26的BNCA模式。在再一实施例中,可将I高速缓存器22及D高速缓存器 26中的一者或两者划分成两个或两个以上库,且每一高速缓存器库可独立地进入 BNCA模式,如由对应的BNCA位16所指示。在又一实施例中,n路组相关联高速缓 存器22、 26的每一组可具有独立的进入及退出BNCA模式,如由对应的BNCA位16 所指示。 一般来说,所属领域的技术人员将易于认识到本文中揭示的一个或一个以上 实施例的教示可应用于众多替代实施方案。
尽管本文已相对于本发明的特定特征、方面及实施例描述了本发明的实施例,但 显而易见,众多变化、修改及其它实施例也可在本教示的广阔范围内。因此,应在所 有方面将本发明实施例理解为说明性而非限制性,且希望包含在随附权利要求书的含 义和等效范围内的所有改变均涵盖在随附权利要求书内。
权利要求
1.一种限制高速缓存器中的分配的方法,其包括在限制模式中,仅允许一预定组的指令来分配高速缓存器条目;及在非限制模式中,允许任一存储器存取指令来分配高速缓存器条目。
2、 如权利要求1所述的方法,其中通过设定区块正常高速缓存器分配(BNCA)指 示符来进入所述限制模式,且通过重新设定所述BNCA指示符来退出所述限制模式。
3、 如权利要求2所述的方法,其中所述BNCA指示符是配置寄存器中的位。
4、 如权利要求1所述的方法,其中所述预定组的指令包含操作以将数据加载到 所述高速缓存器中及锁定所述高速缓存器条目以防止替换的指令。
5、 如权利要求4所述的方法,其中单独指令操作以加载及锁定指令高速缓存器 及数据高速缓存器条目。
6、 如权利要求1所述的方法,其中所述限制及非限制模式可单独地应用于数据 高速缓存器及指令高速缓存器。
7、 如权利要求l所述的方法,其中将所述高速缓存器划分成两个或两个以上库, 且其中限制及非限制模式可单独地应用于每一库。
8、 如权利要求1所述的方法,其中所述高速缓存器是组相关联高速缓存器,且 其中限制及非限制模式可单独地应用于每一组。
9、 一种管理高速缓存器的方法,其包括进入其中仅预定指令可分配高速缓存器条目的限制模式; 使用所述预定指令来分配高速缓存器条目;退出所述限制模式且针对任一存储器存取指令分配高速缓存器条目。
10、 如权利要求9所述的方法,其进一步包括在使用所述预定指令分配高速缓存 器条目之后,锁定所述分配的高速缓存器条目以防止替换。
11、 如权利要求9所述的方法,其进一步包括-处理在所述限制模式期间接收的中断;及针对所述中断码中的存储器存取指令执行存储器存取,而不针对所述中断码中的 所述存储器存取指令分配任何高速缓存器条目。
12、 如权利要求9所述的方法,其中进入所述限制模式包括在配置寄存器中设定 区块正常高速缓存器分配(BNCA)位,且其中退出所述限制模式包括清除所述BNCA 位。
13、 一种处理器,其包括 高速缓冲存储器;配置寄存器,其具有区块正常高速缓存器分配(BNCA)位;及 高速缓存器控制器,其操作以通过存储器存取指令来控制所述高速缓存器中的条 目的分配,且进一步操作以在设定所述BNCA位时不允许所述分配,预定组的指令除 外。
14、如权利要求13所述的处理器,其中所述预定组的指令包含锁定分配指令。
全文摘要
定义一种用于处理器的区块正常高速缓存器分配(BNCA)模式。在BNCA模式中,高速缓存器条目仅可通过预定指令来分配。正常存储器存取指令(例如,作为中断码的一部分)可执行且将在发生高速缓存器未命中的情况下从主存储器检索数据;然而,不允许这些指令分配所述高速缓存器中的条目。仅预定指令(例如,那些用来建立被锁定高速缓存器条目的指令)可分配所述高速缓存器中的条目。当建立了所述被锁定条目时,所述处理器退出BNCA模式,且任一存储器存取指令可分配高速缓存器条目。可通过在配置寄存器中设定位来指示BNCA模式。
文档编号G06F12/08GK101375257SQ200780003978
公开日2009年2月25日 申请日期2007年1月31日 优先权日2006年1月31日
发明者托马斯·安德鲁·萨托里乌斯, 杰弗里·托德·布里奇斯, 维克托·罗伯茨·奥格斯堡, 詹姆斯·诺里斯·迪芬德尔费尔 申请人:高通股份有限公司