转换后备缓冲器的锁定指示符的制作方法

文档序号:6569268阅读:204来源:国知局
专利名称:转换后备缓冲器的锁定指示符的制作方法
技术领域
本发明一般涉及处理器领域,且明确地说涉及一种锁定一个或一个以上转换后备 缓冲器中的条目以防替换的系统和方法。
背景技术
微处理器在各种应用(包括便携式电子装置)中执行计算任务。在大多数情况中, 将处理器性能最大化是主要的设计目标,以准许在便携式电子装置和其它应用中实施 额外的功能和特征。同样,在许多应用中, 一些计算任务具有优先其它任务的优先级, 且对于系统来说保证将计算资源保留用于高优先级任务将是有利的。
许多程序的写入都仿佛执行程序的计算机具有极大量的(理想的,无限的)快速 存储器。大多数的现代处理器通过采用存储器类型的层次结构来模拟这种理想条件, 每个存储器类型具有不同的速度和成本特性。所述层次结构中的存储器类型从位于顶 部处的极快且极贵的存储类型变化为位于低层中的逐渐减慢但是更为经济的存储类型 典型的处理器存储器层次结构可包含位于顶层处的处理器中的寄存器(门);辅之以
一个或一个以上芯片上高速缓存器(SRAM);可能有芯片外高速缓存器(SRAM); 主存储器(DRAM);磁盘存储装置(带电磁存取的磁媒体);及位于最低层的磁带或 CD (磁媒体或光学媒体)。大多数便携式电子装置具有有限的(如果有)磁盘存储装
置,且因此主存储器(通常大小有限)在存储器层次结构中的最低层。
在计算机存储器层次结构中,每个低层均维持驻留在高层级中的数据的完整(但
可能失效)拷贝。即,存储在高层中的数据复制低层中的数据。由于较小的高层存储 装置可映射到较大的低层存储器中的多个位置,因此需要映射方案,以在层次结构的 层级之间转换地址。大多数处理器在极大的、概念上连续的虚拟地址空间中操作。主 存储器的存取在由硬件和系统参数约束的物理地址空间中进行。置于处理器核心与主 存储器之间的高速缓存器(高速存储器)可完全通过虚拟地址、完全通过物理地址或 组合方式(例如通过使用虚拟索引和物理标签)来存取。然而,无论高速缓存器的配 置如何,必须将地址由虚拟地址空间转换到物理地址空间。
许多大的虚拟地址空间(每个正在运行的程序或上下文一个空间)映射和转换到 一个有限的物理存储器地址空间被称为存储器管理。由操作系统进行的存储器管理通
过防止程序盖写彼此的数据来确保适当的性能;通过禁止一个用户存取另一个用户的 数据来提供安全性;及通过禁止用户层程序存取管理程序层数据结构(例如操作系统分配表和参数)来提升可靠性。
可以称为页的固定大小段为单位来管理存储器,所述页可(例如)包含4K字节。 一个地址的上部、或最高有效部分称为页号,其识别特定的存储器页。所述页号从虚 拟地址空间转换到物理地址空间。所述地址的较低或最低有效部分称为页偏移,是页
内偏移,对于虚拟地址和物理地址都是相同的;页偏移位不进行转换。作为实例,对
于4K页的32位地址,页号将包含地址位[31:12]和页偏移位[11:0〗
31 页号 12
11 页偏移 0
表l:地址的页字段
在一个或一个以上称为页表的数据结构中由操作系统软件控制虚拟页号到物理 页号的映射。页表可以是单个表,或分层或树状的系列表,每一表将虚拟页号的一部 分或段映射到物理存储器的对应范围。另外,页表还存储所述物理页的属性,例如读 取、写入及执行许可,所述页是共享还是由单个过程专用,等等。最初,处理器必须 "漫步",或遍历页表来将新的虚拟地址转换到对应的物理地址,以存取主存储器(或 高速缓存存储器,如果其进行了物理索引或标记)。通过将虚拟页号和物理页号以及页
属性存储在TLB中,可加速后续地址转换。TLB可存储用于数据页和指令页两者的地 址转换和页属性。另外,可包含一子组统一 TLB的指令TLB (ITLB)可单独地存储用 于指令的地址转换和页属性。
TLB可包含内容可寻址存储器(CAM)和相关联的随机存取存储器(RAM),每一者 均具有固定数目的条目,例如32、 64或128。 CAM执行经呈现用于转换的虚拟页号 与所有经存储的先前已转换虚拟页号的平行比较。CAM的输出是匹配所施加虚拟页号 的经存储的虚拟页号的位置。所述位置对RAM进行索引,所述RAM提供对应于所述 虚拟页号的经存储的物理页号,以及页属性。施加到高速缓存器及/或主存储器的物理 地址然后是从TLB检索且并置有来自虚拟地址的页偏移的物理页号。
当呈现新的虚拟页号进行转换时,会发生TLB未命中,且处理器必须遍历页表 来执行转换。当页表漫步完成时,虚拟页号和物理页号以及页属性被存储在TLB中的 空位置中。如果TLB已满,那么必须用新条目替换现有条目。在所属技术领域中已熟 知各种替换算法,例如随机算法、循环算法、最近未使用算法、先进先出(FIFO)算法、 第二次机会FIFO算法、最近最少使用算法、不常使用算法、老化算法等等。对于与 关键任务相关联的存储器页,许多TLB实施方案允许操作系统锁定一个或一个以上 TLB条目以防替换,以确保所述条目始终驻留在所述TLB中以针对所述关键任务执行 快速转换。当必须替换TLB条目时,已锁定的TLB条目不参与TLB替换算法。然而, 并不是所有处理器指令集合均包括TLB管理指令,例如用于锁定TLB条目以防替换 的指令。在这些情况中,所述TLB由硬件管理,且操作系统可能缺少直接锁定TLB条目的方式。
对于更高的性能,处理器可包括具有(例如)4、 8或16个条目的较小但更快的 TLB,所述TLB称为层0或LOTLB (其中主TLB称为层1或Ll TLB)。在所属技术 领域中,LOTLB又称为微TLB。 L0TLB利用大多数程序的时间和空间局部性原理来 存储较少的最近最常使用的地址转换,以便可再次提取来自最近被存取的存储器页的 指令或数据。为了转换虚拟地址,处理器首先向L0 TLB呈现所述虚拟页号。如果所 述虚拟页号在L0 TLB中命中,那么提供对应的物理页号和页属性。如果所述虚拟页 号在L0TLB中未命中,那么向L1TLB呈现所述虚拟页号以进行转换。
通常,L0 TLB是硬件实施方案,其不由软件辨识或不直接受软件控制。g卩,软 件不能直接读取和写入LOTLB条目;L0TLB的管理由硬件执行。这种情况的一个后 果是操作系统不能将LO TLB中的条目指定为被锁定以防替换。锁定一个或一个以上 L0TLB条目以防替换的能力将是有利的,因为其将确保最快的转换始终可用于关键任 务。

发明内容
在一个实施例中,对于硬件管理的L1TLB,页表条目包括指示符,例如L1锁定 (L1L)位,所述指示符指示当对应的条目存储在L1TLB中时是否应对其进行锁定以防 替换。在另一实施例中,如果L1TLB由操作系统管理(且包括锁定条目的能力),那 么L1 TLB条目包括指示符,例如L0锁定(L0L)位,所述指示符指示当所述条目存储 在LOTLB中时是否应对其进行锁定以防替换。在此实施例中,当虚拟地址在LOTLB 中未命中而在L1 TLB中命中时,将所述虚拟地址、物理地址及页属性写入到L0TLB。 响应于Ll TLB条目中的LOL位,在L0 TLB中锁定所述条目以防替换或不锁定。
一个实施例涉及一种管理分层转换后备缓冲器(TLB)的方法。将来自上层TLB的 条目复制到低层TLB。响应于上层TLB条目中的指示符,将所述低层TLB中的条目 锁定以防替换。
另一实施例涉及一种处理器。所述处理器包括指令执行管线和分层转换后备缓冲 器(TLB),所述分层转换后备缓冲器包含高层TLB和低层TLB。低层TLB中的条目复 制高层TLB中的条目。所述处理器还包括TLB控制器,所述TLB控制器操作以便在 地址转换中首先存取低层TLB,且如果在低层TLB中没有找到匹配的条目,那么存取 高层TLB。所述控制器进一步操作以响应于高层TLB中对应的条目中的指示符来锁定 低层TLB中的条目。
另一实施例涉及一种在处理器中将虚拟地址转换到物理地址的方法。执行存储器 存取指令以产生虚拟地址。使用所述虚拟地址的一部分来存取层0转换后备缓冲器(LO TLB)。如果所述虚拟地址在LOTLB中未命中,那么使用所述虚拟地址的一部分来存 取层1TLB (Ll TLB)。如果所述虚拟地址在Ll TLB中命中,那么从Ll TLB获得物理地址的一部分和页属性,检查LTLB条目中的层0锁定(L0L)指示符,将所述虚拟地 址的一部分、所述物理地址的一部分以及所述页属性作为条目写入LO TLB中,并响 应于L0L指示符将所述L0 TLB条目锁定以防替换。
另一实施例涉及一种管理转换后备缓冲器(TLB)的方法。当TLB未命中虚拟地址 时,执行页表漫步以获得对应的物理地址和锁定指示符。将包含至少所述虚拟地址和 物理地址的条目写入到所述TLB。响应于所述锁定指示符,将所述TLB中的条目锁定 以防替换。


图1是L0TLB、 LITLB及页表的功能框图。
图2是描绘LO TLB中的条目锁定的功能框图。
图3是处理器的功能框图。
图4是虚拟地址到物理地址转换的流程图。
具体实施例方式
图1是描绘LO TLB 100、 LI TLB 102以及页表104的功能框图。LO TLB 100和 LI TLB 102是处理器中的电路,而页表104是存储器中的逻辑数据结构。向L0TLB 100 呈现虚拟地址或虚拟地址的一部分(例如页号)。如果所述虚拟地址命中,那么LOTLB 100提供对应的物理地址和页属性,且高速缓存器或主存储器存取可继续。这是最快 的地址转换,且因此优选用于高性能。.
如果所述虚拟地址在LOTLB 100中未命中,那么存取LI TLB 102。由于LI TLB 102的大小较大,所以其存取花费的时间长于LOTLB 100的存取。如果所述虚拟地址 在LITLB 102中命中,那么提供对应的物理地址和页属性,并将所述对应的物理地址 和页属性写入到LO TLB 100,以根据LO TLB 100操作所遵循的任何替换算法来替换 LOTLB 100中的现有条目。
如果所述虚拟地址在Ll TLB 102中未命中,那么存取页表104以断定虚拟到物 理的映射。尽管在图1中描绘为单个功能方块,但页表104可包含嵌套数据结构中的 多个页表,且全页表104遍历可包含若干迭代存取。当页表104遍历完成时,将物理 地址和页属性写入到LI TLB 102,如有必要,那么根据当前操作的替换算法来替换现 有的L1TLB102条目。如果在页表104中没有找到地址转换信息,那么产生错误。
在页表104漫步和将条目写入到L1 TLB 102之后,可再执行产生地址转换的指 令,且所述虚拟地址将在LO TLB 100中未命中而在LI TLB 102中命中。LI TLB 102 提供物理地址和页属性,所述物理地址和页属性与虚拟地址一起作为条目写入到LO TLB 100中。在一些实施方案中,可在页表漫步完成时与将条目写入到L1 TLB平行 地将物理地址和页属性直接写入到LOTLB。这在图1中由虛线来指示。当虚拟地址在L0 TLB 100中未命中而在LI TLB 102中命中时,将条目写入到LO TLB 100。如果LOTLB 100已满,那么必须替换条目。能够锁定LO TLB 100中的一 个或一个以上条目以防替换将是有利于确保某些关键任务的最大性能。然而,在现有 技术的处理器中,操作系统软件不能直接存取LOTLB 100,且无法规定应将哪些或任 何L0TLB100条目锁定以防替换。对于硬件管理的L1TLB也发生类似的情形,其中 操作系统无法锁定LI TLB条目以防替换。
根据一实施例,将LO锁定或LOL指示符添加到LI TLB 102条目。LOL指示符可 包含(例如)l个位。LOL位的状态向处理器传达是否应在LOTLB 100中锁定所述条 目以防替换。可将L0L位与页属性一起维持在页表104中。或者,在操作系统将条目 直接写入到Ll TLB 102的实施方案中,软件可在创建和存储TLB 102条目时设置或 不设置LOL位。当虚拟地址在LOTLB 100中未命中而在LI TLB 102中命中时(包括 在由页表104遍历导致的LI TLB 102更新之后),检査LOL位以确定是否应在LO TLB IOO中锁定所述条目。如果设置了LOL位,那么将条目写入到LOTLB 100并进行锁定 以防替换。
类似地,在具有硬件管理的L1TLB102的处理器中,L1锁定或L1L指示符维持 在页表中且指示是否应在LITLB 102中锁定对应的条目。通常,本文关于锁定LOTLB IOO条目以防替换的所有论述适用于在硬件管理的LI TLB 102的情况中锁定Ll TLB 102条目以防替换。
图2是功能框图,其根据一实施例描绘一种在由LI TLB 102条目中的LOL位指 示时对LO TLB 100条目进行锁定的方式。LO TLB 100包括w个条目,编号为0到"-7 。 FLOOR寄存器101保持表示LOTLB 100的"基底"的条目号,或可用于正常分配的 最低LO TLB 100条目。低于基底的LO TLB 100条目不可进行替换,并因此"被锁定"。 如果没有条目被锁定,那么FLOOR寄存器101含有0,并在整个LOTLB 100上操作 替换算法。如图2中所描绘,如果响应于对应的Ll TLB 102条目中的L0L位将底部 的两个条目锁定,那么处理器将会使FLOOR寄存器101递增到2,第一LOTLB 100 条目可用于重新分配。正常的高速缓存器重新分配算法在此种情况下在LO TLB 100 的从"基底"或2到LO TLB 100的顶部的那部分中操作。可通过使FLOOR 寄存器101递减将条目解锁。
将锁定的LOTLB IOO条目聚集到一个地方可简化替换算法。举例来说,如果在 循环基础上替换LOTLB 100条目,那么只有"翻转"点受到经锁定条目的影响(即, 当递增超出"-7时,下一个条目是由FLOOR寄存器101指向的条目,而不是0)。不 存在循环分配必须"跳过"的分散在LOTLB 100空间上的非连续的经锁定条目。注意, 聚集和锁定LOTLB 100条目的FLOOR方法仅仅是代表性的,而不是限制性的。可根 据各种方法来锁定LOTLB IOO条目以防重新分配。类似地,可在软件控制下或如页表 104中所述使用FLOOR寄存器或以所属技术领域中所已知的其它方式来在LI TLB 102中锁定条目。图3描绘采用管线式架构和分层存储器结构的代表性处理器10的功能框图。处 理器10根据控制逻辑14执行指令执行管线12中的指令。所述管线包括组织成管道阶 段的各种寄存器或锁存器16,以及一个或一个以上算术逻辑单元(ALU) 18。通用寄 存器(GPR)堆20提供构成存储器层次结构的顶部的寄存器。
管线从指令高速缓存器(I-高速缓存器)22提取指令,其中存储器寻址和许可由 层0指令侧转换后备缓冲器(LO ITLB) 24和Ll ITLB 25来管理a从数据高速缓存器(D-高速缓存器)26存取数据,其中存储器寻址和许可由主LO TLB 100和Ll TLB 102来 管理。在各种实施例中,LUTLB24可包含L1TLB102的一部分的拷贝。或者,可集 成Ll ITLB 24和Ll TLB 102。类似地,在处理器10的各种实施例中,可集成或统一 I-高速缓存器22和D-高速缓存器26。在存储器接口 30的控制下,I-高速缓存器22及 /或D-高速缓存器26中的未命中导致对主(芯片外)存储器32的存取。页表104存 储在存储器32中。
处理器10可包括输A/输出(I/O)接口34,从而控制对各外围装置36的存取。 所属技术领域的技术人员将认识到,可能对处理器10进行多种变化。举例来说,处理 器10可包括第二层(L2)高速缓存器以用于I-高速缓存器和D-高速缓存器22、 26中 的一者或两者。另外,可从特定实施例中省去处理器IO中所描绘的功能方块中的一者 或多者。
图4是流程图,其根据一个实施例描绘大致以200指示的存储器地址转换过程。 执行存储器存取指令(方块202),并向LOTLB 100呈现虚拟地址或其一部分(方块 204)。如果所述虚拟地址在LOTLB 100中命中(方块206),那么LOTLB 100提供物 理地址或其一部分以及页属性(方块208),且高速缓存器22、 26或主存储器32存取 继续(未示出)。如果所述虚拟地址在LO TLB 100中未命中(方块206),那么向Ll TLB 102呈现所述虚拟地址以进行转换。
如果所述虚拟地址在L1TLB102中命中(方块212),那么核查Ll TLB 102条目 中的L0L位(方块214)。如果未设置LOL位,那么将所述条目添加到LOTLB 100 (方 块216),并提供物理地址和页属性(方块208)。如果设置了LOL位,那么将所述条 目添加到LOTLBIOO,且在L0TLB100中锁定以防替换(方块218),并提供物理地 址和页属性(方块208)。
如果所述虚拟地址在L1TLB102中未命中(方块212),那么对页表104进行存 取(方块220)以获得地址转换。如果在页表104中没有找到转换(方块222),那么 产生错误(方块224)。如果从页表104获得了转换(方块222),那么将所述转换作为 条目写入到L1 TLB 102 (方块226),包括指示是否应在LO TLB 100中锁定所述条目 以防替换的LOL位。然后再执行存储器存取指令202 (方块202)以重新开始地址转 换过程。此时,所述虚拟地址将在LOTLB 100中未命中(方块206)而在L1TLB 102 中命中(方块212)。然后,将所述条目写入到LOTLB 100,并视Ll TLB 102条目中 的LOL位的状态而定锁定或不锁定(方块214、 216、 218)。尽管图4的流程图按顺序描绘步骤,但在一个实施例中,L0 TLB 100和LI TLB 102存取可平行发生。
定义Ll TLB 102条目中的一个或一个以上L0L位为操作系统提供一种用于指定 应在LO TLB 100中锁定哪些条目以防替换的方式。这允许操作系统能够在无法直接存 取LO TLB 100的情况下确保针对某些关键任务的最快的可能存储器地址转换。类似 地,在硬件管理的LI TLB 102的情况下,可在页表104中维持指示是否应锁定对应的 LI TLB 102条目以防替换的L1L位。
尽管本文中已针对本发明的特定特征、方面和实施例对本发明进行了描述,但显 而易见的是,在本发明的广泛范围内可实现大量的变化、修改和其它实施例,且因此, 所有的变化、修改和实施例均视为在本发明的范围内。因此,应以所有说明性而非限 制性的方面来解释本发明的实施例,且所有属于随附权利要求书的含义及等效范围内 的改变均打算包含于本权利要求书的范围中。
权利要求
1、一种管理分层转换后备缓冲器(TLB)的方法,其包含将条目从上层TLB复制到低层TLB;及响应于所述上层TLB条目中的指示符,锁定所述低层TLB中的所述条目以防替换。
2、 如权利要求l所述的方法,其中所述指示符是所述上层TLB条目中的位。
3、 如权利要求1所述的方法,其中由软件对包括所述指示符的所述上层TLB条 目进行设置。
4、 如权利要求1所述的方法,其中由软件将所述指示符设置在存储器页表中, 且其中在硬件页表扩展操作期间将所述指示符设置在所述上层TLB条目中。
5、 如权利要求1所述的方法,其中所述低层TLB是指令TLB。
6、 如权利要求l所述的方法,其中所述低层TLB是数据TLB。
7、 如权利要求6所述的方法,其进一步包含将所述上层TLB条目复制到低层指 令TLB,并响应于所述指示符锁定所述低层指令TLB条目以防替换。
8、 一种处理器,其包含 指令执行管线;分层转换后备缓冲器(TLB),其包含高层TLB和低层TLB,所述低层TLB中的 条目复制所述高层TLB中的条目;及TLB控制器,其操作以在地址转换中首先存取所述低层TLB,且如果在所述低层 TLB中没有找到匹配的条目,那么存取所述高层TLB,所述控制器进一步操作以响应 于所述高层TLB中的所述对应条目中的指示符来锁定所述低层TLB中的条目。
9、 一种在处理器中将虚拟地址转换到物理地址的方法,其包含-执行存储器存取指令以产生虚拟地址;使用所述虚拟地址的一部分来存取层0转换后备缓冲器(LO TLB); 如果所述虚拟地址在所述L0 TLB中未命中,那么使用所述虚拟地址的一部分来 存取层1 TLB (LI TLB);及如果^f述虚拟地址在所述Ll TLB中命中,那么从所述L1 TLB获得物理地址的一部分和页属性, 检査所述LI TLB条目中的层0锁定(L0L)指示符,将所述虚拟地址的一部分、所述物理地址的一部分以及所述页属性作为条目 写入到所述LOTLB中,及响应于所述L0L指示符锁定所述LO TLB条目以防替换。
10、 如权利要求9所述的方法,其进一步包含如果所述虚拟地址在所述LI TLB 中未命中,那么执行页表遍历以获得与所述虚拟地址相关联的物理地址和页属性;及 将所述虚拟地址的一部分、所述物理地址的一部分、所述页属性以及LOL指示符 作为条目写入到所述LI TLB中。
11、 一种管理转换后备缓冲器(TLB)的方法,其包含-当TLB未命中虚拟地址时,执行页表漫步以获得对应的物理地址和锁定指示符; 将包含至少所述虚拟地址和所述物理地址的条目写入到所述TLB;及 响应于所述锁定指示符,锁定所述TLB中的所述条目以防替换。
12、 如权利要求12所述的方法,其中所述TLB是L1TLB,且其中所述锁定指示 符是L1锁定(L1L)指示符。
全文摘要
本发明涉及一种包括分层转换后备缓冲器(TLB)的处理器,所述分层转换后备缓冲器包含层1 TLB和小且高速的层0 TLB。所述L0 TLB中的条目复制所述L1 TLB中的条目。所述处理器在地址转换中首先存取所述L0 TLB,且如果虚拟地址在所述L0TLB中未命中,那么存取所述L1 TLB。当所述虚拟地址在所述L1 TLB中命中时,将所述虚拟地址、物理地址以及页属性写入到所述L0 TLB,如果所述L0 TLB已满,那么替换现有条目。可响应于所述L1 TLB条目中的L0锁定(L0L)指示符,而在所述L0TLB中锁定所述条目以防替换。类似地,在硬件管理的L1 TLB中,可响应于在对应页表条目中的L1锁定(L1L)指示符来锁定条目以防替换。
文档编号G06F12/10GK101292228SQ200680038815
公开日2008年10月22日 申请日期2006年8月22日 优先权日2005年8月23日
发明者托马斯·安德鲁·萨托里乌斯, 杰弗里·托德·布里奇斯, 维克托·罗伯茨·奥格斯堡, 詹姆斯·诺里斯·迪芬德尔费尔 申请人:高通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1