CN101292228A - 转换后备缓冲器的锁定指示符 - Google Patents
转换后备缓冲器的锁定指示符 Download PDFInfo
- Publication number
- CN101292228A CN101292228A CNA2006800388152A CN200680038815A CN101292228A CN 101292228 A CN101292228 A CN 101292228A CN A2006800388152 A CNA2006800388152 A CN A2006800388152A CN 200680038815 A CN200680038815 A CN 200680038815A CN 101292228 A CN101292228 A CN 101292228A
- Authority
- CN
- China
- Prior art keywords
- tlb
- subclauses
- clauses
- virtual address
- designator
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/126—Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/68—Details of translation look-aside buffer [TLB]
- G06F2212/681—Multi-level TLB, e.g. microTLB and main TLB
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明涉及一种包括分层转换后备缓冲器(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)指示符来锁定条目以防替换。
Description
技术领域
本发明一般涉及处理器领域,且明确地说涉及一种锁定一个或一个以上转换后备缓冲器中的条目以防替换的系统和方法。
背景技术
微处理器在各种应用(包括便携式电子装置)中执行计算任务。在大多数情况中,将处理器性能最大化是主要的设计目标,以准许在便携式电子装置和其它应用中实施额外的功能和特征。同样,在许多应用中,一些计算任务具有优先其它任务的优先级,且对于系统来说保证将计算资源保留用于高优先级任务将是有利的。
许多程序的写入都仿佛执行程序的计算机具有极大量的(理想的,无限的)快速存储器。大多数的现代处理器通过采用存储器类型的层次结构来模拟这种理想条件,每个存储器类型具有不同的速度和成本特性。所述层次结构中的存储器类型从位于顶部处的极快且极贵的存储类型变化为位于低层中的逐渐减慢但是更为经济的存储类型典型的处理器存储器层次结构可包含:位于顶层处的处理器中的寄存器(门);辅之以一个或一个以上芯片上高速缓存器(SRAM);可能有芯片外高速缓存器(SRAM);主存储器(DRAM);磁盘存储装置(带电磁存取的磁媒体);及位于最低层的磁带或CD(磁媒体或光学媒体)。大多数便携式电子装置具有有限的(如果有)磁盘存储装置,且因此主存储器(通常大小有限)在存储器层次结构中的最低层。
在计算机存储器层次结构中,每个低层均维持驻留在高层级中的数据的完整(但可能失效)拷贝。即,存储在高层中的数据复制低层中的数据。由于较小的高层存储装置可映射到较大的低层存储器中的多个位置,因此需要映射方案,以在层次结构的层级之间转换地址。大多数处理器在极大的、概念上连续的虚拟地址空间中操作。主存储器的存取在由硬件和系统参数约束的物理地址空间中进行。置于处理器核心与主存储器之间的高速缓存器(高速存储器)可完全通过虚拟地址、完全通过物理地址或组合方式(例如通过使用虚拟索引和物理标签)来存取。然而,无论高速缓存器的配置如何,必须将地址由虚拟地址空间转换到物理地址空间。
许多大的虚拟地址空间(每个正在运行的程序或上下文一个空间)映射和转换到一个有限的物理存储器地址空间被称为存储器管理。由操作系统进行的存储器管理通过防止程序盖写彼此的数据来确保适当的性能;通过禁止一个用户存取另一个用户的数据来提供安全性;及通过禁止用户层程序存取管理程序层数据结构(例如操作系统分配表和参数)来提升可靠性。
可以称为页的固定大小段为单位来管理存储器,所述页可(例如)包含4K字节。一个地址的上部、或最高有效部分称为页号,其识别特定的存储器页。所述页号从虚拟地址空间转换到物理地址空间。所述地址的较低或最低有效部分称为页偏移,是页内偏移,对于虚拟地址和物理地址都是相同的;页偏移位不进行转换。作为实例,对于4K页的32位地址,页号将包含地址位[31:12]和页偏移位[11:0]:
31 页号 12 | 11 页偏移 0 |
表1:地址的页字段
在一个或一个以上称为页表的数据结构中由操作系统软件控制虚拟页号到物理页号的映射。页表可以是单个表,或分层或树状的系列表,每一表将虚拟页号的一部分或段映射到物理存储器的对应范围。另外,页表还存储所述物理页的属性,例如读取、写入及执行许可,所述页是共享还是由单个过程专用,等等。最初,处理器必须“漫步”,或遍历页表来将新的虚拟地址转换到对应的物理地址,以存取主存储器(或高速缓存存储器,如果其进行了物理索引或标记)。通过将虚拟页号和物理页号以及页属性存储在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或L0 TLB(其中主TLB称为层1或L1 TLB)。在所属技术领域中,L0 TLB又称为微TLB。L0 TLB利用大多数程序的时间和空间局部性原理来存储较少的最近最常使用的地址转换,以便可再次提取来自最近被存取的存储器页的指令或数据。为了转换虚拟地址,处理器首先向L0 TLB呈现所述虚拟页号。如果所述虚拟页号在L0 TLB中命中,那么提供对应的物理页号和页属性。如果所述虚拟页号在L0 TLB中未命中,那么向L1 TLB呈现所述虚拟页号以进行转换。
通常,L0 TLB是硬件实施方案,其不由软件辨识或不直接受软件控制。即,软件不能直接读取和写入L0 TLB条目;L0 TLB的管理由硬件执行。这种情况的一个后果是操作系统不能将L0 TLB中的条目指定为被锁定以防替换。锁定一个或一个以上L0 TLB条目以防替换的能力将是有利的,因为其将确保最快的转换始终可用于关键任务。
发明内容
在一个实施例中,对于硬件管理的L1 TLB,页表条目包括指示符,例如L1锁定(L1L)位,所述指示符指示当对应的条目存储在L1 TLB中时是否应对其进行锁定以防替换。在另一实施例中,如果L1 TLB由操作系统管理(且包括锁定条目的能力),那么L1 TLB条目包括指示符,例如L0锁定(L0L)位,所述指示符指示当所述条目存储在L0 TLB中时是否应对其进行锁定以防替换。在此实施例中,当虚拟地址在L0 TLB中未命中而在L1 TLB中命中时,将所述虚拟地址、物理地址及页属性写入到L0 TLB。响应于L1 TLB条目中的L0L位,在L0 TLB中锁定所述条目以防替换或不锁定。
一个实施例涉及一种管理分层转换后备缓冲器(TLB)的方法。将来自上层TLB的条目复制到低层TLB。响应于上层TLB条目中的指示符,将所述低层TLB中的条目锁定以防替换。
另一实施例涉及一种处理器。所述处理器包括指令执行管线和分层转换后备缓冲器(TLB),所述分层转换后备缓冲器包含高层TLB和低层TLB。低层TLB中的条目复制高层TLB中的条目。所述处理器还包括TLB控制器,所述TLB控制器操作以便在地址转换中首先存取低层TLB,且如果在低层TLB中没有找到匹配的条目,那么存取高层TLB。所述控制器进一步操作以响应于高层TLB中对应的条目中的指示符来锁定低层TLB中的条目。
另一实施例涉及一种在处理器中将虚拟地址转换到物理地址的方法。执行存储器存取指令以产生虚拟地址。使用所述虚拟地址的一部分来存取层0转换后备缓冲器(L0TLB)。如果所述虚拟地址在L0 TLB中未命中,那么使用所述虚拟地址的一部分来存取层1TLB(L1 TLB)。如果所述虚拟地址在L1 TLB中命中,那么从L1 TLB获得物理地址的一部分和页属性,检查L1 TLB条目中的层0锁定(L0L)指示符,将所述虚拟地址的一部分、所述物理地址的一部分以及所述页属性作为条目写入L0 TLB中,并响应于L0L指示符将所述L0 TLB条目锁定以防替换。
另一实施例涉及一种管理转换后备缓冲器(TLB)的方法。当TLB未命中虚拟地址时,执行页表漫步以获得对应的物理地址和锁定指示符。将包含至少所述虚拟地址和物理地址的条目写入到所述TLB。响应于所述锁定指示符,将所述TLB中的条目锁定以防替换。
附图说明
图1是L0 TLB、L1 TLB及页表的功能框图。
图2是描绘L0 TLB中的条目锁定的功能框图。
图3是处理器的功能框图。
图4是虚拟地址到物理地址转换的流程图。
具体实施方式
图1是描绘L0 TLB 100、L1 TLB 102以及页表104的功能框图。L0 TLB 100和L1 TLB 102是处理器中的电路,而页表104是存储器中的逻辑数据结构。向L0 TLB 100呈现虚拟地址或虚拟地址的一部分(例如页号)。如果所述虚拟地址命中,那么L0 TLB100提供对应的物理地址和页属性,且高速缓存器或主存储器存取可继续。这是最快的地址转换,且因此优选用于高性能。
如果所述虚拟地址在L0 TLB 100中未命中,那么存取L1 TLB 102。由于L1 TLB102的大小较大,所以其存取花费的时间长于L0 TLB 100的存取。如果所述虚拟地址在L1 TLB 102中命中,那么提供对应的物理地址和页属性,并将所述对应的物理地址和页属性写入到L0 TLB 100,以根据L0 TLB 100操作所遵循的任何替换算法来替换L0 TLB 100中的现有条目。
如果所述虚拟地址在L1 TLB 102中未命中,那么存取页表104以断定虚拟到物理的映射。尽管在图1中描绘为单个功能方块,但页表104可包含嵌套数据结构中的多个页表,且全页表104遍历可包含若干迭代存取。当页表104遍历完成时,将物理地址和页属性写入到L1 TLB 102,如有必要,那么根据当前操作的替换算法来替换现有的L1 TLB 102条目。如果在页表104中没有找到地址转换信息,那么产生错误。
在页表104漫步和将条目写入到L1 TLB 102之后,可再执行产生地址转换的指令,且所述虚拟地址将在L0 TLB 100中未命中而在L1 TLB 102中命中。L1 TLB 102提供物理地址和页属性,所述物理地址和页属性与虚拟地址一起作为条目写入到L0TLB 100中。在一些实施方案中,可在页表漫步完成时与将条目写入到L1 TLB平行地将物理地址和页属性直接写入到L0 TLB。这在图1中由虚线来指示。
当虚拟地址在L0 TLB 100中未命中而在L1 TLB 102中命中时,将条目写入到L0TLB 100。如果L0 TLB 100已满,那么必须替换条目。能够锁定L0 TLB 100中的一个或一个以上条目以防替换将是有利于确保某些关键任务的最大性能。然而,在现有技术的处理器中,操作系统软件不能直接存取L0 TLB 100,且无法规定应将哪些或任何L0 TLB 100条目锁定以防替换。对于硬件管理的L1 TLB也发生类似的情形,其中操作系统无法锁定L1 TLB条目以防替换。
根据一实施例,将L0锁定或L0L指示符添加到L1 TLB 102条目。L0L指示符可包含(例如)1个位。L0L位的状态向处理器传达是否应在L0 TLB 100中锁定所述条目以防替换。可将L0L位与页属性一起维持在页表104中。或者,在操作系统将条目直接写入到L1 TLB 102的实施方案中,软件可在创建和存储TLB 102条目时设置或不设置L0L位。当虚拟地址在L0 TLB 100中未命中而在L1 TLB 102中命中时(包括在由页表104遍历导致的L1 TLB 102更新之后),检查L0L位以确定是否应在L0 TLB100中锁定所述条目。如果设置了L0L位,那么将条目写入到L0 TLB 100并进行锁定以防替换。
类似地,在具有硬件管理的L1 TLB 102的处理器中,L1锁定或L1L指示符维持在页表中且指示是否应在L1 TLB 102中锁定对应的条目。通常,本文关于锁定L0 TLB100条目以防替换的所有论述适用于在硬件管理的L1 TLB 102的情况中锁定L1 TLB102条目以防替换。
图2是功能框图,其根据一实施例描绘一种在由L1 TLB 102条目中的L0L位指示时对L0 TLB 100条目进行锁定的方式。L0 TLB 100包括n个条目,编号为0到n-1。FLOOR寄存器101保持表示L0 TLB 100的“基底”的条目号,或可用于正常分配的最低L0 TLB 100条目。低于基底的L0 TLB 100条目不可进行替换,并因此“被锁定”。如果没有条目被锁定,那么FLOOR寄存器101含有0,并在整个L0 TLB 100上操作替换算法。如图2中所描绘,如果响应于对应的L1 TLB 102条目中的L0L位将底部的两个条目锁定,那么处理器将会使FLOOR寄存器101递增到2,第一L0 TLB 100条目可用于重新分配。正常的高速缓存器重新分配算法在此种情况下在L0 TLB 100的从“基底”或2到L0 TLB 100的顶部(n-1)的那部分中操作。可通过使FLOOR寄存器101递减将条目解锁。
将锁定的L0 TLB 100条目聚集到一个地方可简化替换算法。举例来说,如果在循环基础上替换L0 TLB 100条目,那么只有“翻转”点受到经锁定条目的影响(即,当递增超出n-1时,下一个条目是由FLOOR寄存器101指向的条目,而不是0)。不存在循环分配必须“跳过”的分散在L0 TLB 100空间上的非连续的经锁定条目。注意,聚集和锁定L0 TLB 100条目的FLOOR方法仅仅是代表性的,而不是限制性的。可根据各种方法来锁定L0 TLB 100条目以防重新分配。类似地,可在软件控制下或如页表104中所述使用FLOOR寄存器或以所属技术领域中所已知的其它方式来在L1 TLB102中锁定条目。
图3描绘采用管线式架构和分层存储器结构的代表性处理器10的功能框图。处理器10根据控制逻辑14执行指令执行管线12中的指令。所述管线包括组织成管道阶段的各种寄存器或锁存器16,以及一个或一个以上算术逻辑单元(ALU)18。通用寄存器(GPR)堆20提供构成存储器层次结构的顶部的寄存器。
管线从指令高速缓存器(I-高速缓存器)22提取指令,其中存储器寻址和许可由层0指令侧转换后备缓冲器(L0 ITLB)24和L1 ITLB 25来管理。从数据高速缓存器(D-高速缓存器)26存取数据,其中存储器寻址和许可由主L0 TLB 100和L1 TLB 102来管理。在各种实施例中,L1 ITLB 24可包含L1 TLB 102的一部分的拷贝。或者,可集成L1 ITLB 24和L1 TLB 102。类似地,在处理器10的各种实施例中,可集成或统一I-高速缓存器22和D-高速缓存器26。在存储器接口30的控制下,I-高速缓存器22及/或D-高速缓存器26中的未命中导致对主(芯片外)存储器32的存取。页表104存储在存储器32中。
处理器10可包括输入/输出(I/O)接口34,从而控制对各外围装置36的存取。所属技术领域的技术人员将认识到,可能对处理器10进行多种变化。举例来说,处理器10可包括第二层(L2)高速缓存器以用于I-高速缓存器和D-高速缓存器22、26中的一者或两者。另外,可从特定实施例中省去处理器10中所描绘的功能方块中的一者或多者。
图4是流程图,其根据一个实施例描绘大致以200指示的存储器地址转换过程。执行存储器存取指令(方块202),并向L0 TLB 100呈现虚拟地址或其一部分(方块204)。如果所述虚拟地址在L0 TLB 100中命中(方块206),那么L0 TLB 100提供物理地址或其一部分以及页属性(方块208),且高速缓存器22、26或主存储器32存取继续(未示出)。如果所述虚拟地址在L0 TLB 100中未命中(方块206),那么向L1 TLB102呈现所述虚拟地址以进行转换。
如果所述虚拟地址在L1 TLB 102中命中(方块212),那么核查L1 TLB 102条目中的L0L位(方块214)。如果未设置L0L位,那么将所述条目添加到L0 TLB 100(方块216),并提供物理地址和页属性(方块208)。如果设置了L0L位,那么将所述条目添加到L0 TLB 100,且在L0 TLB 100中锁定以防替换(方块218),并提供物理地址和页属性(方块208)。
如果所述虚拟地址在L1 TLB 102中未命中(方块212),那么对页表104进行存取(方块220)以获得地址转换。如果在页表104中没有找到转换(方块222),那么产生错误(方块224)。如果从页表104获得了转换(方块222),那么将所述转换作为条目写入到L1 TLB 102(方块226),包括指示是否应在L0 TLB 100中锁定所述条目以防替换的L0L位。然后再执行存储器存取指令202(方块202)以重新开始地址转换过程。此时,所述虚拟地址将在L0 TLB 100中未命中(方块206)而在L1 TLB 102中命中(方块212)。然后,将所述条目写入到L0 TLB 100,并视L1 TLB 102条目中的L0L位的状态而定锁定或不锁定(方块214、216、218)。尽管图4的流程图按顺序描绘步骤,但在一个实施例中,L0 TLB 100和L1 TLB 102存取可平行发生。
定义L1 TLB 102条目中的一个或一个以上L0L位为操作系统提供一种用于指定应在L0 TLB 100中锁定哪些条目以防替换的方式。这允许操作系统能够在无法直接存取L0 TLB 100的情况下确保针对某些关键任务的最快的可能存储器地址转换。类似地,在硬件管理的L1 TLB 102的情况下,可在页表104中维持指示是否应锁定对应的L1 TLB 102条目以防替换的L1L位。
尽管本文中已针对本发明的特定特征、方面和实施例对本发明进行了描述,但显而易见的是,在本发明的广泛范围内可实现大量的变化、修改和其它实施例,且因此,所有的变化、修改和实施例均视为在本发明的范围内。因此,应以所有说明性而非限制性的方面来解释本发明的实施例,且所有属于随附权利要求书的含义及等效范围内的改变均打算包含于本权利要求书的范围中。
Claims (12)
1、一种管理分层转换后备缓冲器(TLB)的方法,其包含:
将条目从上层TLB复制到低层TLB;及
响应于所述上层TLB条目中的指示符,锁定所述低层TLB中的所述条目以防替换。
2、如权利要求1所述的方法,其中所述指示符是所述上层TLB条目中的位。
3、如权利要求1所述的方法,其中由软件对包括所述指示符的所述上层TLB条目进行设置。
4、如权利要求1所述的方法,其中由软件将所述指示符设置在存储器页表中,且其中在硬件页表扩展操作期间将所述指示符设置在所述上层TLB条目中。
5、如权利要求1所述的方法,其中所述低层TLB是指令TLB。
6、如权利要求1所述的方法,其中所述低层TLB是数据TLB。
7、如权利要求6所述的方法,其进一步包含将所述上层TLB条目复制到低层指令TLB,并响应于所述指示符锁定所述低层指令TLB条目以防替换。
8、一种处理器,其包含:
指令执行管线;
分层转换后备缓冲器(TLB),其包含高层TLB和低层TLB,所述低层TLB中的条目复制所述高层TLB中的条目;及
TLB控制器,其操作以在地址转换中首先存取所述低层TLB,且如果在所述低层TLB中没有找到匹配的条目,那么存取所述高层TLB,所述控制器进一步操作以响应于所述高层TLB中的所述对应条目中的指示符来锁定所述低层TLB中的条目。
9、一种在处理器中将虚拟地址转换到物理地址的方法,其包含:
执行存储器存取指令以产生虚拟地址;
使用所述虚拟地址的一部分来存取层0转换后备缓冲器(L0 TLB);
如果所述虚拟地址在所述L0 TLB中未命中,那么使用所述虚拟地址的一部分来存取层1 TLB(L1 TLB);及
如果所述虚拟地址在所述L1 TLB中命中,那么
从所述L1 TLB获得物理地址的一部分和页属性,
检查所述L1 TLB条目中的层0锁定(L0L)指示符,
将所述虚拟地址的一部分、所述物理地址的一部分以及所述页属性作为条目写入到所述L0 TLB中,及
响应于所述L0L指示符锁定所述L0 TLB条目以防替换。
10、如权利要求9所述的方法,其进一步包含如果所述虚拟地址在所述L1 TLB中未命中,那么:
执行页表遍历以获得与所述虚拟地址相关联的物理地址和页属性;及
将所述虚拟地址的一部分、所述物理地址的一部分、所述页属性以及L0L指示符作为条目写入到所述L1 TLB中。
11、一种管理转换后备缓冲器(TLB)的方法,其包含:
当TLB未命中虚拟地址时,执行页表漫步以获得对应的物理地址和锁定指示符;
将包含至少所述虚拟地址和所述物理地址的条目写入到所述TLB;及
响应于所述锁定指示符,锁定所述TLB中的所述条目以防替换。
12、如权利要求12所述的方法,其中所述TLB是L1 TLB,且其中所述锁定指示符是L1锁定(L1L)指示符。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/210,526 | 2005-08-23 | ||
US11/210,526 US7426626B2 (en) | 2005-08-23 | 2005-08-23 | TLB lock indicator |
PCT/US2006/032902 WO2007024937A1 (en) | 2005-08-23 | 2006-08-22 | Tlb lock indicator |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101292228A true CN101292228A (zh) | 2008-10-22 |
CN101292228B CN101292228B (zh) | 2012-02-08 |
Family
ID=37497978
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006800388152A Active CN101292228B (zh) | 2005-08-23 | 2006-08-22 | 转换后备缓冲器的锁定指示符 |
Country Status (6)
Country | Link |
---|---|
US (1) | US7426626B2 (zh) |
EP (1) | EP1934753B1 (zh) |
JP (1) | JP4567789B2 (zh) |
KR (1) | KR100959014B1 (zh) |
CN (1) | CN101292228B (zh) |
WO (1) | WO2007024937A1 (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102498478A (zh) * | 2009-07-24 | 2012-06-13 | 超威半导体公司 | 在外围互连上对i/o和计算卸载设备使用两级地址转换的iommu |
CN103116556A (zh) * | 2013-03-11 | 2013-05-22 | 无锡江南计算技术研究所 | 内存静态划分虚拟化方法 |
CN106326150A (zh) * | 2015-06-26 | 2017-01-11 | 中兴通讯股份有限公司 | 内存访问处理方法及装置 |
CN106649149A (zh) * | 2015-10-28 | 2017-05-10 | 福州瑞芯微电子股份有限公司 | 实现地址映射的内存管理系统及方法 |
CN107533513A (zh) * | 2015-04-15 | 2018-01-02 | 高通股份有限公司 | 突发转换后备缓冲器 |
CN109564550A (zh) * | 2016-08-12 | 2019-04-02 | 超威半导体公司 | 更新最近最少使用的数据以获得更高普遍性的高速缓存条目的更大持久性 |
CN112753024A (zh) * | 2018-09-25 | 2021-05-04 | Ati科技无限责任公司 | 基于外部存储器的转换后备缓冲器 |
CN115794681A (zh) * | 2022-10-12 | 2023-03-14 | 中国人民解放军军事科学院国防科技创新研究院 | 适用于risc-v的多级可扩展tlb结构 |
Families Citing this family (69)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070094476A1 (en) * | 2005-10-20 | 2007-04-26 | Augsburg Victor R | Updating multiple levels of translation lookaside buffers (TLBs) field |
US8195886B2 (en) * | 2007-03-16 | 2012-06-05 | Arm Limited | Data processing apparatus and method for implementing a replacement scheme for entries of a storage unit |
US8799620B2 (en) | 2007-06-01 | 2014-08-05 | Intel Corporation | Linear to physical address translation with support for page attributes |
US7908439B2 (en) * | 2007-06-25 | 2011-03-15 | International Business Machines Corporation | Method and apparatus for efficient replacement algorithm for pre-fetcher oriented data cache |
US20090049272A1 (en) * | 2007-08-13 | 2009-02-19 | International Business Machines Corporation | Method for improving the performance of software-managed tlb |
US8156309B2 (en) * | 2007-10-18 | 2012-04-10 | Cisco Technology, Inc. | Translation look-aside buffer with variable page sizes |
US7949851B2 (en) * | 2007-12-28 | 2011-05-24 | Spansion Llc | Translation management of logical block addresses and physical block addresses |
US8464021B2 (en) * | 2008-05-28 | 2013-06-11 | Spansion Llc | Address caching stored translation |
US9239799B2 (en) * | 2008-06-26 | 2016-01-19 | Qualcomm Incorporated | Memory management unit directed access to system interfaces |
EP2148279A1 (fr) * | 2008-07-24 | 2010-01-27 | Nagravision S.A. | Méthode de mise à jour de données dans des mémoires utilisant une unité de gestion mémoire |
US9569349B2 (en) * | 2008-12-19 | 2017-02-14 | Ati Technologies Ulc | Method and apparatus for reallocating memory content |
US8275598B2 (en) * | 2009-03-02 | 2012-09-25 | International Business Machines Corporation | Software table walk during test verification of a simulated densely threaded network on a chip |
EP2546748A1 (en) | 2010-03-09 | 2013-01-16 | Fujitsu Limited | Information processing device, information processing method, and program |
US8615636B2 (en) | 2011-03-03 | 2013-12-24 | International Business Machines Corporation | Multiple-class priority-based replacement policy for cache memory |
US9465751B2 (en) | 2012-03-30 | 2016-10-11 | Intel Corporation | Efficient locking of memory pages |
US9417873B2 (en) | 2012-12-28 | 2016-08-16 | Intel Corporation | Apparatus and method for a hybrid latency-throughput processor |
US20140189333A1 (en) * | 2012-12-28 | 2014-07-03 | Oren Ben-Kiki | Apparatus and method for task-switchable synchronous hardware accelerators |
US9361116B2 (en) | 2012-12-28 | 2016-06-07 | Intel Corporation | Apparatus and method for low-latency invocation of accelerators |
US10140129B2 (en) | 2012-12-28 | 2018-11-27 | Intel Corporation | Processing core having shared front end unit |
US10346195B2 (en) | 2012-12-29 | 2019-07-09 | Intel Corporation | Apparatus and method for invocation of a multi threaded accelerator |
US9292453B2 (en) * | 2013-02-01 | 2016-03-22 | International Business Machines Corporation | Storing a system-absolute address (SAA) in a first level translation look-aside buffer (TLB) |
US10454714B2 (en) | 2013-07-10 | 2019-10-22 | Nicira, Inc. | Method and system of overlay flow control |
US10135789B2 (en) | 2015-04-13 | 2018-11-20 | Nicira, Inc. | Method and system of establishing a virtual private network in a cloud service for branch networking |
US11403099B2 (en) * | 2015-07-27 | 2022-08-02 | Sony Interactive Entertainment LLC | Backward compatibility by restriction of hardware resources |
US10915333B2 (en) | 2016-03-30 | 2021-02-09 | Sony Interactive Entertainment Inc. | Deriving application-specific operating parameters for backwards compatiblity |
US10061712B2 (en) | 2016-05-10 | 2018-08-28 | Oracle International Corporation | Virtual memory page mapping overlays |
US10223281B2 (en) | 2016-07-18 | 2019-03-05 | International Business Machines Corporation | Increasing the scope of local purges of structures associated with address translation |
US10176006B2 (en) | 2016-07-18 | 2019-01-08 | International Business Machines Corporation | Delaying purging of structures associated with address translation |
US10180909B2 (en) | 2016-07-18 | 2019-01-15 | International Business Machines Corporation | Host-based resetting of active use of guest page table indicators |
US10162764B2 (en) * | 2016-07-18 | 2018-12-25 | International Business Machines Corporation | Marking page table/page status table entries to indicate memory used to back address translation structures |
US10176111B2 (en) | 2016-07-18 | 2019-01-08 | International Business Machines Corporation | Host page management using active guest page table indicators |
US10248573B2 (en) | 2016-07-18 | 2019-04-02 | International Business Machines Corporation | Managing memory used to back address translation structures |
US10176110B2 (en) * | 2016-07-18 | 2019-01-08 | International Business Machines Corporation | Marking storage keys to indicate memory used to back address translation structures |
US10802986B2 (en) | 2016-07-18 | 2020-10-13 | International Business Machines Corporation | Marking to indicate memory used to back address translation structures |
US10282305B2 (en) | 2016-07-18 | 2019-05-07 | International Business Machines Corporation | Selective purging of entries of structures associated with address translation in a virtualized environment |
US10241924B2 (en) | 2016-07-18 | 2019-03-26 | International Business Machines Corporation | Reducing over-purging of structures associated with address translation using an array of tags |
US10169243B2 (en) | 2016-07-18 | 2019-01-01 | International Business Machines Corporation | Reducing over-purging of structures associated with address translation |
US10168902B2 (en) | 2016-07-18 | 2019-01-01 | International Business Machines Corporation | Reducing purging of structures associated with address translation |
US10515671B2 (en) | 2016-09-22 | 2019-12-24 | Advanced Micro Devices, Inc. | Method and apparatus for reducing memory access latency |
US20200036624A1 (en) | 2017-01-31 | 2020-01-30 | The Mode Group | High performance software-defined core network |
US11706127B2 (en) | 2017-01-31 | 2023-07-18 | Vmware, Inc. | High performance software-defined core network |
US20180219765A1 (en) | 2017-01-31 | 2018-08-02 | Waltz Networks | Method and Apparatus for Network Traffic Control Optimization |
US10992568B2 (en) | 2017-01-31 | 2021-04-27 | Vmware, Inc. | High performance software-defined core network |
US10778528B2 (en) | 2017-02-11 | 2020-09-15 | Nicira, Inc. | Method and system of connecting to a multipath hub in a cluster |
US10127159B1 (en) * | 2017-07-13 | 2018-11-13 | International Business Machines Corporation | Link consistency in a hierarchical TLB with concurrent table walks |
US11115480B2 (en) | 2017-10-02 | 2021-09-07 | Vmware, Inc. | Layer four optimization for a virtual network defined over public cloud |
US10999100B2 (en) | 2017-10-02 | 2021-05-04 | Vmware, Inc. | Identifying multiple nodes in a virtual network defined over a set of public clouds to connect to an external SAAS provider |
US10778466B2 (en) | 2017-10-02 | 2020-09-15 | Vmware, Inc. | Processing data messages of a virtual network that are sent to and received from external service machines |
US11223514B2 (en) | 2017-11-09 | 2022-01-11 | Nicira, Inc. | Method and system of a dynamic high-availability mode based on current wide area network connectivity |
US11321240B2 (en) * | 2018-06-08 | 2022-05-03 | International Business Machines Corporation | MMIO addressing using a translation lookaside buffer |
US11121985B2 (en) | 2019-08-27 | 2021-09-14 | Vmware, Inc. | Defining different public cloud virtual networks for different entities based on different sets of measurements |
KR102355374B1 (ko) | 2019-09-27 | 2022-01-25 | 에스케이하이닉스 주식회사 | 이종 메모리를 이용하여 메모리 주소 변환 테이블을 관리하는 메모리 관리 유닛 및 이의 메모리 주소 관리 방법 |
US11489783B2 (en) | 2019-12-12 | 2022-11-01 | Vmware, Inc. | Performing deep packet inspection in a software defined wide area network |
US11438789B2 (en) | 2020-01-24 | 2022-09-06 | Vmware, Inc. | Computing and using different path quality metrics for different service classes |
US11709710B2 (en) * | 2020-07-30 | 2023-07-25 | Vmware, Inc. | Memory allocator for I/O operations |
US11575591B2 (en) | 2020-11-17 | 2023-02-07 | Vmware, Inc. | Autonomous distributed forwarding plane traceability based anomaly detection in application traffic for hyper-scale SD-WAN |
US11929903B2 (en) | 2020-12-29 | 2024-03-12 | VMware LLC | Emulating packet flows to assess network links for SD-WAN |
CN116783874A (zh) | 2021-01-18 | 2023-09-19 | Vm维尔股份有限公司 | 网络感知的负载平衡 |
US11979325B2 (en) | 2021-01-28 | 2024-05-07 | VMware LLC | Dynamic SD-WAN hub cluster scaling with machine learning |
US12009987B2 (en) | 2021-05-03 | 2024-06-11 | VMware LLC | Methods to support dynamic transit paths through hub clustering across branches in SD-WAN |
US11509571B1 (en) | 2021-05-03 | 2022-11-22 | Vmware, Inc. | Cost-based routing mesh for facilitating routing through an SD-WAN |
US11729065B2 (en) | 2021-05-06 | 2023-08-15 | Vmware, Inc. | Methods for application defined virtual network service among multiple transport in SD-WAN |
US12015536B2 (en) | 2021-06-18 | 2024-06-18 | VMware LLC | Method and apparatus for deploying tenant deployable elements across public clouds based on harvested performance metrics of types of resource elements in the public clouds |
US12047282B2 (en) | 2021-07-22 | 2024-07-23 | VMware LLC | Methods for smart bandwidth aggregation based dynamic overlay selection among preferred exits in SD-WAN |
US11943146B2 (en) | 2021-10-01 | 2024-03-26 | VMware LLC | Traffic prioritization in SD-WAN |
CN114510889B (zh) * | 2022-02-15 | 2024-07-30 | 中电科申泰信息科技有限公司 | 一种基于申威处理器芯片架构的tlb模拟器及调试方法 |
US11909815B2 (en) | 2022-06-06 | 2024-02-20 | VMware LLC | Routing based on geolocation costs |
US12034587B1 (en) | 2023-03-27 | 2024-07-09 | VMware LLC | Identifying and remediating anomalies in a self-healing network |
US12057993B1 (en) | 2023-03-27 | 2024-08-06 | VMware LLC | Identifying and remediating anomalies in a self-healing network |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0746325B2 (ja) * | 1985-12-23 | 1995-05-17 | モトロ−ラ・インコ−ポレ−テツド | データ処理システム |
US4727485A (en) | 1986-01-02 | 1988-02-23 | Motorola, Inc. | Paged memory management unit which locks translators in translation cache if lock specified in translation table |
US6223263B1 (en) * | 1998-09-09 | 2001-04-24 | Intel Corporation | Method and apparatus for locking and unlocking a memory region |
US6553477B1 (en) * | 2000-11-06 | 2003-04-22 | Fujitsu Limited | Microprocessor and address translation method for microprocessor |
GB2388447B (en) * | 2002-05-09 | 2005-07-27 | Sun Microsystems Inc | A computer system method and program product for performing a data access from low-level code |
US6941442B2 (en) * | 2002-08-02 | 2005-09-06 | Arm Limited | Entry lockdown within a translation lookaside buffer mechanism |
JP3936672B2 (ja) * | 2003-04-30 | 2007-06-27 | 富士通株式会社 | マイクロプロセッサ |
-
2005
- 2005-08-23 US US11/210,526 patent/US7426626B2/en active Active
-
2006
- 2006-08-22 WO PCT/US2006/032902 patent/WO2007024937A1/en active Application Filing
- 2006-08-22 JP JP2008528104A patent/JP4567789B2/ja not_active Expired - Fee Related
- 2006-08-22 EP EP06789946.8A patent/EP1934753B1/en active Active
- 2006-08-22 KR KR1020087006678A patent/KR100959014B1/ko not_active IP Right Cessation
- 2006-08-22 CN CN2006800388152A patent/CN101292228B/zh active Active
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102498478A (zh) * | 2009-07-24 | 2012-06-13 | 超威半导体公司 | 在外围互连上对i/o和计算卸载设备使用两级地址转换的iommu |
CN102498478B (zh) * | 2009-07-24 | 2015-04-29 | 超威半导体公司 | 在外围互连上对i/o和计算卸载设备使用两级地址转换的iommu |
CN103116556A (zh) * | 2013-03-11 | 2013-05-22 | 无锡江南计算技术研究所 | 内存静态划分虚拟化方法 |
CN103116556B (zh) * | 2013-03-11 | 2015-05-06 | 无锡江南计算技术研究所 | 内存静态划分虚拟化方法 |
CN107533513A (zh) * | 2015-04-15 | 2018-01-02 | 高通股份有限公司 | 突发转换后备缓冲器 |
CN107533513B (zh) * | 2015-04-15 | 2021-06-04 | 高通股份有限公司 | 突发转换后备缓冲器 |
CN106326150A (zh) * | 2015-06-26 | 2017-01-11 | 中兴通讯股份有限公司 | 内存访问处理方法及装置 |
CN106326150B (zh) * | 2015-06-26 | 2020-09-15 | 中兴通讯股份有限公司 | 内存访问处理方法及装置 |
CN106649149A (zh) * | 2015-10-28 | 2017-05-10 | 福州瑞芯微电子股份有限公司 | 实现地址映射的内存管理系统及方法 |
CN109564550A (zh) * | 2016-08-12 | 2019-04-02 | 超威半导体公司 | 更新最近最少使用的数据以获得更高普遍性的高速缓存条目的更大持久性 |
CN112753024A (zh) * | 2018-09-25 | 2021-05-04 | Ati科技无限责任公司 | 基于外部存储器的转换后备缓冲器 |
CN112753024B (zh) * | 2018-09-25 | 2023-11-03 | Ati科技无限责任公司 | 基于外部存储器的转换后备缓冲器 |
CN115794681A (zh) * | 2022-10-12 | 2023-03-14 | 中国人民解放军军事科学院国防科技创新研究院 | 适用于risc-v的多级可扩展tlb结构 |
CN115794681B (zh) * | 2022-10-12 | 2023-05-23 | 中国人民解放军军事科学院国防科技创新研究院 | 适用于risc-v的多级可扩展tlb系统及其地址转换方法 |
Also Published As
Publication number | Publication date |
---|---|
US20070050594A1 (en) | 2007-03-01 |
CN101292228B (zh) | 2012-02-08 |
EP1934753B1 (en) | 2018-08-08 |
KR20080041707A (ko) | 2008-05-13 |
JP2009506434A (ja) | 2009-02-12 |
KR100959014B1 (ko) | 2010-05-24 |
WO2007024937A1 (en) | 2007-03-01 |
JP4567789B2 (ja) | 2010-10-20 |
US7426626B2 (en) | 2008-09-16 |
EP1934753A1 (en) | 2008-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101292228B (zh) | 转换后备缓冲器的锁定指示符 | |
US10282122B2 (en) | Methods and systems of a memory controller for hierarchical immutable content-addressable memory processor | |
US7287140B1 (en) | System and technique for fine-grained computer memory protection | |
CN101331466B (zh) | 同经高速缓存的存储器数据一起高速缓存存储器属性指示符 | |
CN101111819B (zh) | 用于页内程序计数器相对或绝对地址转移指令的转换后备缓冲器(tlb)访问抑制 | |
US7590802B2 (en) | Direct deposit using locking cache | |
AU658914B2 (en) | Improving computer performance by simulated cache associativity | |
Yang et al. | NV-Tree: A consistent and workload-adaptive tree structure for non-volatile memory | |
US20110302367A1 (en) | Write Buffer for Improved DRAM Write Access Patterns | |
KR20190030189A (ko) | 캐시 스토리지 | |
Zhang et al. | Fast persistent heap based on non-volatile memory | |
US6807618B1 (en) | Address translation | |
Song et al. | LIFM: A Persistent Learned Index for Flash Memory | |
Huang et al. | Indexing on Non-Volatile Memory: Techniques, Lessons Learned and Outlook | |
Park et al. | Design of a High-Performance, High-Endurance Key-Value SSD for Large-Key Workloads | |
Mittal et al. | Cache performance improvement using software-based approach | |
He | NV-Tree: A Consistent and Workload-adaptive Tree Structure for Non-volatile Memory | |
Huang et al. | Indexing on Non-Volatile Memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |