CN1359496A - 使用基于区域的页表的虚拟存储映射 - Google Patents
使用基于区域的页表的虚拟存储映射 Download PDFInfo
- Publication number
- CN1359496A CN1359496A CN00809790A CN00809790A CN1359496A CN 1359496 A CN1359496 A CN 1359496A CN 00809790 A CN00809790 A CN 00809790A CN 00809790 A CN00809790 A CN 00809790A CN 1359496 A CN1359496 A CN 1359496A
- Authority
- CN
- China
- Prior art keywords
- virtual
- virtual address
- pte
- address
- page table
- 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/1009—Address translation using page tables, e.g. page table structures
Abstract
本发明是一种用来映射虚拟存储空间的方法和装置。区域寄存器文件为虚拟存储空间中的虚拟地址提供区域标识符。该虚拟地址包括一个虚拟区域号码和一个虚拟页号码。与区域寄存器文件相连的虚拟页表查找电路,根据各虚拟地址参数生成一个页表表目(PTE)虚拟地址。这些虚拟地址参数包括该虚拟地址。
Description
发明领域
本发明涉及微处理器。本发明特别涉及虚拟存储。
技术背景
存储器管理子系统是操作系统(OS)的最重要的部分之一。虚拟存储是存储器管理子系统内的一种技术,能让处理器访问比该处理器系统中实际存在的物理存储器更大的存储空间。为此,存储器管理子系统必须提供翻译或地址映射机制,以便将虚拟地址空间映射成物理地址空间。
典型的操作系统并发地管理和控制一系列的进程。每个进程有其自己的虚拟地址空间。这些虚拟地址空间一般是互相分开的,以防止程序或数据的重叠。该OS必须保存一个页表来为每个进程存储映射信息。当系统中的进程数量变大时,或者地址映射数量高时,管理虚拟地址映射的开销在大型计算机系统中可能变成严重的性能制约因素,尤其在管理稀疏64位(bit)或更大的地址空间时。
存在许多用于虚拟映射的现有技术。一个技术采用在存储器中相邻地展开的线性或散列页表。这个技术需要大的物理存储空间。另一个技术提供用于一个翻译的集合的页表的全局共享(全局位)。尽管这个技术让OS能有效地映射全局共享的对象,它不提供用于映射稀疏64位或更大的用户地址空间的机制。
因此在技术上需要提供一种简单而有效的进行虚拟地址映射的方法。
发明综述
本发明涉及一种映射虚拟存储空间的方法和装置。简言之,一个该装置的实施例包含一个区域寄存器文件和一个虚拟页表查找电路。该区域寄存器文件为虚拟存储空间中的虚拟地址提供区域标识符。该虚拟地址包括一个虚拟区域号码和一个虚拟页号码。该虚拟页表查找电路与该区域寄存器文件相连,以便根据各虚拟地址参数生成一个页表表目(PTE)虚拟地址。这些虚拟地址参数包括该虚拟地址。
附图说明
从以下对发明的详细说明本发明的特征和优点将变得显而易见,在附图中:
图1是表示能在其中实践本发明一个实施例的系统的示意图;
图2是表示按照本发明一个实施例的基于区域的虚拟映射器(mapper)的示意图;
图3是表示按照本发明一个实施例的基于区域的页表布局的示意图;
图4是表示按照本发明一个实施例进行基于区域的虚拟存储映射的过程的流程图;
图5表示按照本发明一个实施例进行交叉地址空间拷贝的过程的流程图。
详细说明
本发明是用于将虚拟存储空间映射到页表表目地址的方法和装置。该技术提供一个虚拟区域号码(VRN)域来查找区域标识符(ID)。将区域ID与虚拟页号码(VPN)组合起来标引(index)一个翻译后备缓冲器(TLB)。当有TBL不命中(miss)时,就用基于区域的虚拟参数生成一个页表表目(PTE)虚拟地址,虚拟参数包括VRN、区域页大小、页表地址偏址(offset)寄存器、VPN和PTE大小。该技术比传统技术和OS的简单存储管理有更少的TLB不命中。
在以下的说明中,为了解释的需要,陈述了许多细节,以便于透彻地理解本发明。然而,对本领域的熟练人员来说,这些特定细节显然不是实践本发明所必需的。在其它实例中,为了突出对本发明的说明,以框图的形式表示著名的电结构和电路。
图1是能在其中实践本发明的一个实施例的计算机系统100的示意图。计算机系统100包括处理器105、主总线120、系统存储器130、PCI总线155、K个PCI设备1601至160K、和海量存储设备172。
处理器105代表任何类型的体系结构的中央处理单元,体系结构的类型诸如是复杂指令集计算机(CISC),精简指令集计算机(RISC),甚长指令字(VLIW)显式并行指令集计算(EPIC),或者混合体系结构。本发明可以在多处理器或单处理器计算机系统中实现。
主桥芯片集120包括一系列接口电路,让处理器105能访问系统存储器130和PCI总线155。系统存储器130代表一个或多个用于存储信息的机制。例如,系统存储器130可包括非易失性存储器或易失性存储器。这些存储器的例子包括闪存、只读存储器(ROM)或随机存取存储器(RAM)。系统存储器130可以装载有操作系统(OS)131、基于区域的虚拟映射器支持135和其它程序和数据138。当然,系统存储器130最好含有另外的软件(未予示出),这对理解本发明并非必要。虚拟映射器支持135包括支持基于区域的虚拟映射器107的操作的要素,诸如程序、代码、数据或查找表。
PCI插槽1601至160K提供对PCI设备的接口。PCI设备的例子包括网络接口和媒体接口。网络接口连接到诸如因特网的通信通道。因特网提供对在线服务供应商、web浏览器和其它网络通道的访问。媒体接口提供对音频和视频设备的访问。海量存储设备172包括CD、ROM、软盘和硬驱。
这里叙述的本发明让操作系统能比传统虚拟存储映射机制更有效地管理虚拟地址空间。特别地,本发明使处理器硬件能在各地址空间之间-即在两个用户级进程之间或者在操作系统同用户级进程之间-拷贝数据时,显著地降低开销。这种性能优化是非常有意义的,因为它们能显著地减少发送或接收来自用户进程的网络数据所需的时间量。此外,操作系统中的文件系统缓冲器高速缓存操作能在增加的性能水平上得到支持。这些性能优化一般有利于应用软件,然而,大型数据库或因特网或因特网web服务器将受到最大的性能好处。
当以软件实现时,本发明的各要素实质上是执行必要任务的代码段。程序或代码段可以存储在处理器可读介质中,或者以体现为载波的计算机数据信号或由通信公司调制的信号的形式,在传输介质上传输。 “处理器可读介质”可以包括任何能存储或传输信息的介质。处理器可读介质的例子包括电子电路、半导体存储设备、ROM、闪存、可擦式ROM(EROM)、软盘、紧致盘CD-ROM、光盘、硬盘、光纤介质、无线电频率(RF)连接,等等。计算机数据信号可以包括任何能在诸如电子网络通道、光纤、空气(air)、电磁、RF连接等传输介质上传播的信号。代码段可以通过诸如因特网、内部网等计算机网络下载。
图2是表示按照本发明的一个实施例的基于区域的虚拟映射器107的示意图。基于区域的虚拟映射器107包括区域寄存器文件220、翻译后备缓冲器240、虚拟页表查找电路250和页表地址(PTA)寄存器260。
基于区域的虚拟映射器107将虚拟地址210映射到一个页表表目(PTE),该页表表目对应于一个由图1中的处理器105可访问的物理存储空间中的物理地址。虚拟地址210包括两个域:一个含有具有N位的VRN的虚拟区域号码(VRN)域212,一个含有具有M位的VPN的虚拟页号码(VRN)域214。VRN被用来查找区域寄存器文件220。
区域寄存器文件(RRF)220存储2N个表目。每个表目对应于一个VRN值。每个表目有一个含有具有P位的区域ID的区域标识符(ID)域222和一个含有区域PS的区域页大小(PS)域224。将区域ID与VPN链接起来构成全局地址230。全局地址230包括区域分别含有区域ID和VPN的ID域232和VPN域234。全局地址被用来查找TLB240中的PTE,并被虚拟页表查找电路用来生成PTE虚拟地址。
TLB240高速缓存最近使用的全局到物理地址翻译的页表表目。当全局地址查找在TLB中命中时,该TLB直接生成物理地址和被引用到的页的每页存储器属性(per-page memory attribute)。当全局地址查找在TLB中不命中时,则该虚拟页表查找电路250(硬件页表查寻器(walker))生成PTE虚拟地址。
为了将PTE虚拟地址翻译成物理地址,硬件页步行器循环地使用相同的地址翻译机制(例如将PTE虚拟地址像任何其它虚拟地址一样地对待)。为了避免无限循环,如果PTE引用(reference)结果在TLB中不命中,就调用一个软件TLB不命中处理程序。
虚拟页表查找电路250接收一系列虚拟地址参数,以生成PTE虚拟地址。虚拟地址参数包括全局地址230、区域页大小、VRN212、VPN214、根据PTA寄存器260的PTA偏址(PTA基址),和PTA大小。在一个实施例中,PTE虚拟地址以下列方式生成:
Index=VPN{M-1:0}>>RRF{VRN}.ps
(1a)
(VRN{N-1:0}<<M)OR((PTA.base{M-1:0})OR(Index<<PTE size))
(1b)
其中RRF{VRN}.ps是对应于隐含VRN的RRF220中的区域页大小。操作符>>和<<分别表示右移和左移。
当以硬件实现时,虚拟页表查找电路包括执行上述操作(1a)和(1b)的电路组件(elements)。虚拟页表查找电路包括一个变址生成器、第一和第二左位移器、一个逻辑电路。变址生成器通过将虚拟页号码右移而生成变址,右移的位数对应于区域页大小。第一左位移器与变址生成器连接,以将变址左移,左移的位数对应于PTE大小。第二左位移器左移虚拟区域号码,左移的位数对应于虚拟页号码的字大小或虚拟页号码中的位数。逻辑电路与左、右位移器连接,对左移的变址、页表偏址和左移的虚拟区域号码进行0R操作,以提供PTE虚拟地址。
可以作出以下结论:
1)如果将VRN排除在方程(1a)中的变址(Index)计算之外,并且如果(VRN{N-1:0}<<M且((PTA.base(M-1:0})OR(Index<<PTE size)不重叠,就能从一个区域到另一个区域重新映射(re-map)线性页表映象(image),而不需要对页表存储器映象作任何修改。
2) 如果将区域标识符排除在PTA虚拟地址计算之外,就能独立于区域ID而管理页表表目。
基于区域的线性页表不必在整个区域中都是虚拟邻接的,而只是在每个区域内是虚拟邻接的。这就允许每个区域的页表能被独立地管理。此外,基于区域的线性页表是虚拟地映射的,即它们不必在每个区域内都是物理地邻接的。换言之,各页表本身就能被分页(paged)。在具有更大虚拟寻址能力的处理器中,例如在64位处理器中,这显著地减少了页表所需要的物理存储器的量。
此外,通过在带区域标识符(RID)的TLB中的标记翻译(taggingtranslation)也提高了性能,由此消除了刷新(flush)过程上下文开关(process context switches)上TLB的需要。基于区域的线性页表更易于由软件使用,因为不需要在页表中存储或编码RID。
因为在页表中不含RID,所以能将地址空间临时地重新映射到其它区域,而不必刷新各TLB。这就允许更快的交叉地址空间拷贝,因为现有的TLB表目能被再使用,并且操作系统软件不需要额外的页表操作来建立临时的映射。
图3是表示按照本发明一个实施例的基于区域的页表布局300的示意图。页表布局300由4个区域:区域0 310、区域1 320、区域2 330、区域3 340。使用4个区域只是示例性的。可以使用任何数量的区域。
由于基于区域的线性页表是虚拟地映射的,它也是自映射的。偏址312、322、332和342有相同的大小,并且都是由PTA寄存器(PTA.base)定义的。有相同偏址的一个好处是:只要将区域标识符传送到另一个区域寄存器,就能将整个区域-包括其自映射部分,重新映射到另一个区域。
图4是表示按照本发明的一个实施例进行基于区域的虚拟存储映射的过程400的流程图。
开始时,过程400接收由处理发布的虚拟地址,将该虚拟地址划分成虚拟区域号码(VRN)和虚拟页号码(VPN)(方框410)。VRN被用来查找区域寄存器文件(RRF),以检索区域标识符(RID)(方框420)。对应于RID的区域页大小也被检索。
过程400然后将RID同VPN链接,以形成一个全局地址(方框430)。全局地址被用来在翻译后备缓冲器(TLB)查找页表表目(PTE)(方框440)。过程400确定是否有TLB不命中(方框450)。如果没有TLB不命中,过程400终止。如果有TLB不命中,如方框460所示,过程400用方程(1a)和(1b),用VRN、PTA寄存器、区域页大小、PTA寄存器中的页表地址(PTA)偏址、VPN和PTE大小,生成PTE虚拟地址。然后,过程400终止。
基于区域的虚拟映射也能对交叉地址空间拷贝提供性能改善。只是由于下列原因:
第一,与传统的交叉地址空间拷贝技术不同,采用基于区域的虚拟存储映射的OS不需要改变任何页表表目。OS也不需要为临时地址映射创建临时页表表目。OS临时第分配预先存在的源或目的地RID给RRF中的两个不同的区域寄存器。方程(1a)和(1b)中所示的PTE虚拟地址的定义,保证无论要映射到哪个区域,页表内容都保持有效。在TLB不含有完成拷贝操作所需的所有映射的情况中,这一点是重要的。在这种情况下,由图2中所示的虚拟线性页表查找电路250实现的硬件页步行器将能找到所需的PTE。
第二,TLB查找是根据由RID和VPN构成的唯一全局地址匹配的,该全局地址不包括VRN位。因此,TLB查找与某地址空间要映射到哪个区域无关。各TLB表目标记有RID,只要某地址空间的RID不被回收,这些TLB表目就保持有效。由于较低的OS开销(即不需要创建临时页表和映射),并且作RID标记的TLB表目导致更少的TLB不命中,所以能以比用传统的TLB和OS方法的更短的时间实现交叉地址空间拷贝。
图5是表示按照本发明的一个实施例进行交叉地址空间拷贝的过程500的流程图。
开始时,过程500建立基于区域的线性页表(方框510)。换言之,将存储管理单元设置得或编程得在基于区域的线性页表中运行。然后,过程500通过把一个区域标识符(例如RID1)分配到区域寄存器文件(RRF)中的一个区域寄存器而在区域0中建立地址目的地空间(方框520)。过程500通过把另一个区域标识符(例如RID2)分配到区域寄存器文件(RRF)中的另一个区域寄存器而在区域0中建立地址源空间(方框530)。
然后,过程500初始化源地址和目的地地址(方框540)。这些源地址和目的地地址是源存储块的虚拟起始地址和目的地存储块的虚拟起始地址。然后,该过程将位于源地址的存储器内容拷贝到位于目的地地址的存储器(方框550)。过程500然后确定是否所有地址都已经被拷贝(方框560)。如果不是,过程500就更新源地址和目的地地址(方框570),然后返回到方框50。如果所有地址都已经被拷贝,过程500就终止。
所以,本发明是映射虚拟存储器的技术。该技术使用由区域寄存器文件和虚拟线性页表查找电路实现的基于区域的页表。该技术提供存储管理的更大灵活性和更高效的操作,对交叉地址空间拷贝尤其如此。
尽管本发明是结合示例性实施例作说明的,不应限制性地解释该说明。这些示例性实施例的各种修改,以及对熟悉本技术领域的人员来说显而易见的本发明的其它实施例,都应视为在本发明的精神和范围内。
Claims (20)
1.一种映射虚拟存储空间的方法,该方法包含:
为虚拟存储空间中的虚拟地址提供区域标识符,该虚拟地址包括一个虚拟区域号码和一个虚拟页号码;和
根据各虚拟地址参数生成一个页表表目(PTE)虚拟地址,这些虚拟地址参数包括该虚拟地址。
2.如权利要求1的方法,其中将该PTE虚拟地址进行虚拟映射。
3.如权利要求2的方法,其中该PTE虚拟地址包括虚拟区域号码。
4.如权利要求3的方法,其中该PTE虚拟地址是与该区域标识符(RID)无关的。
5.如权利要求4的方法,其中这些虚拟地址参数还包括由页表地址寄存器提供的页表偏址、区域页大小和PTE大小。
6.如权利要求5的方法,其中生成PTE虚拟地址的步骤包括:
通过将虚拟页号码右移对应于区域页大小的位数而生成变址;
将该变址左移对应于PTE大小的位数;
将该虚拟区域号码左移对应于该虚拟页号码中位数量的位数;
对左移后的变址、页表偏址和左移后的的虚拟区域号码进行OR运算,以提供PTE虚拟地址。
7.如权利要求1的方法,还包含:
用由区域标识符和虚拟页号码构成的全局地址从翻泽后备缓冲区(TLB)中生成PTE。
8.如权利要求7的方法,其中当有TLB不命中时生成PTE虚拟地址。
9.如权利要求7的方法,还包含:
循环地生成PTE虚拟地址;
执行访问存储器中PTE的引用;和
将所引用的TLB插入TLB。
10.如权利要求9的方法,其中如果因PTE虚拟地址的映射而导致TLB不命中,则将控制转移给软件。
11.一种映射虚拟存储空间的装置,该装置包含:
区域寄存器文件,用于为虚拟存储空间中的虚拟地址提供区域标识符,该虚拟地址包括一个虚拟区域号码和一个虚拟页号码;和
与区域寄存器文件相连的虚拟页表查找电路,用于根据各虚拟地址参数生成一个页表表目(PTE)虚拟地址,这些虚拟地址参数包括该虚拟地址。
12.如权利要求11的装置,其中将该PTE虚拟地址进行虚拟地映射。
13.如权利要求12的装置,其中该PTE虚拟地址包括虚拟区域号码。
14.如权利要求13的装置,其中该PTE虚拟地址是与区域标识符(RID)无关的。
15.如权利要求14的装置,其中这些虚拟地址参数还包括由页表地址寄存器提供的页表偏址、区域页大小和PTE大小。
16.如权利要求15的装置,其中该虚拟页表查找电路包含:
变址生成器,用于通过将虚拟页号码右移对应于区域页大小的位数而生成变址;
与变址生成器相连的第一位移器,用于将该变址左移对应于PTE大小的位数;
第二位移器,用于将该虚拟区域号码左移对应于虚拟页号码中位数量的位数;
与第一和第二位移器相连的逻辑电路,用于对左移后的变址、页表偏址和左移后的虚拟区域号码进行OR运算,以提供PTE虚拟地址。
17.如权利要求11的装置,还包括:
与区域寄存器文件相连的翻译后备缓冲区(TLB),利用由区域标识符和虚拟页号码构成的全局地址生成PTE。
18.如权利要求17的装置,其中当有TLB不命中时生成PTE虚拟地址。
19.一种系统,包含:
一个能访问一个物理存储空间的处理器;
一个与处理器相连的虚拟地址映射器,将虚拟存储空间映射到物理存储空间中,该虚拟地址映射器包含:
区域寄存器文件,用于为虚拟存储空间中的虚拟地址提供区域标识符,该虚拟地址包括一个虚拟区域号码和一个虚拟页号码;和
与该区域寄存器文件相连的虚拟页表查找电路,用于根据各虚拟地址参数生成一个页表表目(PTE)虚拟地址,这些虚拟地址参数包括该虚拟地址。
20.一种计算机程序产品,包括:
带有在其中包含计算机程序代码的计算机可用介质,该计算机程序产品具有:
计算机可读程序代码,用于为虚拟存储空间中的虚拟地址提供区域标识符,该虚拟地址包括一个虚拟区域号码和一个虚拟页号码;和
计算机可读程序代码,用于根据各虚拟地址参数生成一个页表表目(PTE)虚拟地址,这些虚拟地址参数包括该虚拟地址。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/344267 | 1999-06-30 | ||
US09/344,267 US6604184B2 (en) | 1999-06-30 | 1999-06-30 | Virtual memory mapping using region-based page tables |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1359496A true CN1359496A (zh) | 2002-07-17 |
CN1156761C CN1156761C (zh) | 2004-07-07 |
Family
ID=23349775
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB008097909A Expired - Lifetime CN1156761C (zh) | 1999-06-30 | 2000-05-26 | 使用基于区域的页表的虚拟存储映射 |
Country Status (6)
Country | Link |
---|---|
US (1) | US6604184B2 (zh) |
CN (1) | CN1156761C (zh) |
AU (1) | AU5166600A (zh) |
DE (1) | DE10084753B4 (zh) |
GB (1) | GB2368429B (zh) |
WO (1) | WO2001002962A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100365590C (zh) * | 2005-01-31 | 2008-01-30 | 浙江大学 | 在嵌入式系统模拟器上调试应用程序的方法 |
CN100445964C (zh) * | 2002-12-27 | 2008-12-24 | 英特尔公司 | 用于后期重映射虚拟机存储器页面的机制 |
CN113722246A (zh) * | 2021-11-02 | 2021-11-30 | 超验信息科技(长沙)有限公司 | 处理器中物理内存保护机制的实现方法及装置 |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6594704B1 (en) * | 1999-12-15 | 2003-07-15 | Quarry Technologies | Method of managing and using multiple virtual private networks in a router with a single routing table |
US6947970B2 (en) * | 2000-12-19 | 2005-09-20 | Intel Corporation | Method and apparatus for multilevel translation and protection table |
US6842843B1 (en) * | 2001-06-29 | 2005-01-11 | Emc Corporation | Digital data storage subsystem including arrangement for increasing cache memory addressability |
GB2381886B (en) * | 2001-11-07 | 2004-06-23 | Sun Microsystems Inc | Computer system with virtual memory and paging mechanism |
DE602004030548D1 (de) * | 2003-04-04 | 2011-01-27 | Oracle America Inc | Mehrknoten system, bei dem die globale adresse, die durch ein verarbeitungsuntersystem erzeugt wird, globale-zu-lokale übersetzungsinformationen miteinschliesst |
US7165147B2 (en) * | 2003-07-22 | 2007-01-16 | International Business Machines Corporation | Isolated ordered regions (IOR) prefetching and page replacement |
US7076635B1 (en) | 2003-09-04 | 2006-07-11 | Advanced Micro Devices, Inc. | Method and apparatus for reducing instruction TLB accesses |
US20050193169A1 (en) * | 2004-03-01 | 2005-09-01 | Ahluwalia Manish K. | Memory management |
US7457796B2 (en) * | 2004-07-08 | 2008-11-25 | International Business Machines Corporation | Method using virtual replicated tables in a cluster database management system |
GB0415850D0 (en) * | 2004-07-15 | 2004-08-18 | Imagination Tech Ltd | Memory management system |
US7562179B2 (en) | 2004-07-30 | 2009-07-14 | Intel Corporation | Maintaining processor resources during architectural events |
US8250296B2 (en) * | 2004-12-01 | 2012-08-21 | Dell Products L.P. | System and method for information handling system memory page mapping optimization |
US7383374B2 (en) * | 2005-03-31 | 2008-06-03 | Intel Corporation | Method and apparatus for managing virtual addresses |
US20110296095A1 (en) * | 2010-05-25 | 2011-12-01 | Mediatek Inc. | Data movement engine and memory control methods thereof |
JP2013073270A (ja) * | 2011-09-26 | 2013-04-22 | Fujitsu Ltd | アドレス変換装置、演算処理装置及び演算処理装置の制御方法 |
US9176888B2 (en) | 2012-10-04 | 2015-11-03 | International Business Machines Corporation | Application-managed translation cache |
US9183161B2 (en) | 2012-12-28 | 2015-11-10 | Intel Corporation | Apparatus and method for page walk extension for enhanced security checks |
US10216642B2 (en) * | 2013-03-15 | 2019-02-26 | International Business Machines Corporation | Hardware-based pre-page walk virtual address transformation where the virtual address is shifted by current page size and a minimum page size |
US10509729B2 (en) * | 2016-01-13 | 2019-12-17 | Intel Corporation | Address translation for scalable virtualization of input/output devices |
US10120812B2 (en) * | 2016-02-03 | 2018-11-06 | Nutanix, Inc. | Manipulation of virtual memory page table entries to form virtually-contiguous memory corresponding to non-contiguous real memory allocations |
US10228981B2 (en) | 2017-05-02 | 2019-03-12 | Intel Corporation | High-performance input-output devices supporting scalable virtualization |
US11494201B1 (en) * | 2021-05-20 | 2022-11-08 | Adp, Inc. | Systems and methods of migrating client information |
US11886877B1 (en) * | 2021-09-24 | 2024-01-30 | Apple Inc. | Memory select register to simplify operand mapping in subroutines |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5491806A (en) | 1990-06-26 | 1996-02-13 | Lsi Logic Corporation | Optimized translation lookaside buffer slice having stored mask bits |
CA2083634C (en) | 1991-12-30 | 1999-01-19 | Hung Ping Wong | Method and apparatus for mapping page table trees into virtual address space for address translation |
JPH0887451A (ja) * | 1994-09-09 | 1996-04-02 | Internatl Business Mach Corp <Ibm> | アドレス変換を管理する方法およびアドレス変換マネージャ |
US5809563A (en) | 1996-11-12 | 1998-09-15 | Institute For The Development Of Emerging Architectures, Llc | Method and apparatus utilizing a region based page table walk bit |
US6012132A (en) | 1997-03-31 | 2000-01-04 | Intel Corporation | Method and apparatus for implementing a page table walker that uses a sliding field in the virtual addresses to identify entries in a page table |
-
1999
- 1999-06-30 US US09/344,267 patent/US6604184B2/en not_active Expired - Lifetime
-
2000
- 2000-05-26 AU AU51666/00A patent/AU5166600A/en not_active Abandoned
- 2000-05-26 WO PCT/US2000/014589 patent/WO2001002962A1/en active Application Filing
- 2000-05-26 GB GB0200392A patent/GB2368429B/en not_active Expired - Lifetime
- 2000-05-26 CN CNB008097909A patent/CN1156761C/zh not_active Expired - Lifetime
- 2000-05-26 DE DE10084753T patent/DE10084753B4/de not_active Expired - Lifetime
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100445964C (zh) * | 2002-12-27 | 2008-12-24 | 英特尔公司 | 用于后期重映射虚拟机存储器页面的机制 |
CN100365590C (zh) * | 2005-01-31 | 2008-01-30 | 浙江大学 | 在嵌入式系统模拟器上调试应用程序的方法 |
CN113722246A (zh) * | 2021-11-02 | 2021-11-30 | 超验信息科技(长沙)有限公司 | 处理器中物理内存保护机制的实现方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
DE10084753T5 (de) | 2004-04-29 |
AU5166600A (en) | 2001-01-22 |
GB2368429A (en) | 2002-05-01 |
US20030018876A1 (en) | 2003-01-23 |
US6604184B2 (en) | 2003-08-05 |
GB2368429B (en) | 2004-02-11 |
WO2001002962A1 (en) | 2001-01-11 |
DE10084753B4 (de) | 2008-08-14 |
CN1156761C (zh) | 2004-07-07 |
GB0200392D0 (en) | 2002-02-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1156761C (zh) | 使用基于区域的页表的虚拟存储映射 | |
US9086988B2 (en) | Identification and consolidation of page table entries | |
US5956756A (en) | Virtual address to physical address translation of pages with unknown and variable sizes | |
US6560690B2 (en) | System and method for employing a global bit for page sharing in a linear-addressed cache | |
US9501421B1 (en) | Memory sharing and page deduplication using indirect lines | |
US6408373B2 (en) | Method and apparatus for pre-validating regions in a virtual addressing scheme | |
US8185692B2 (en) | Unified cache structure that facilitates accessing translation table entries | |
KR102281928B1 (ko) | 가변 변환 색인 버퍼(tlb) 인덱싱 | |
JP2001515244A (ja) | スケーリング可能な共用メモリ・マルチプロセッサ・システム | |
US11409663B2 (en) | Methods and systems for optimized translation of a virtual address having multiple virtual address portions using multiple translation lookaside buffer (TLB) arrays for variable page sizes | |
US11403222B2 (en) | Cache structure using a logical directory | |
CN111949572A (zh) | 页表条目合并方法、装置及电子设备 | |
KR20170131274A (ko) | 물리적 메모리 크기보다 큰 메모리 용량을 가능하게 하기 위한 방법 및 장치 | |
JPH08235052A (ja) | ディレクトリ内にアドレス・タグを記憶するためのシステムおよび方法 | |
WO2013186646A1 (en) | Radix table translation of memory | |
KR20160060550A (ko) | 효율적인 맵핑을 위한 페이지 캐시 장치 및 방법 | |
US6990551B2 (en) | System and method for employing a process identifier to minimize aliasing in a linear-addressed cache | |
KR20190058356A (ko) | 멀티 프로세서 시스템 및 이에 포함된 프로세서의 데이터 관리 방법 | |
US9740628B2 (en) | Page table entry consolidation | |
US11379379B1 (en) | Differential cache block sizing for computing systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C06 | Publication | ||
PB01 | Publication | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CX01 | Expiry of patent term |
Granted publication date: 20040707 |
|
CX01 | Expiry of patent term |