CN104380270B - 存储器的根表转换 - Google Patents
存储器的根表转换 Download PDFInfo
- Publication number
- CN104380270B CN104380270B CN201380028612.5A CN201380028612A CN104380270B CN 104380270 B CN104380270 B CN 104380270B CN 201380028612 A CN201380028612 A CN 201380028612A CN 104380270 B CN104380270 B CN 104380270B
- Authority
- CN
- China
- Prior art keywords
- address
- conversion table
- entry
- effective
- memory
- 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.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
-
- 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
-
- 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
-
- 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
- G06F12/1018—Address translation using page tables, e.g. page table structures involving hashing techniques, e.g. inverted page tables
-
- 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/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1036—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
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
一种方法,包括:接收访问存储器的期望块的请求。所述请求包括有效地址,所述有效地址包括有效段标识符(ESID)和线性地址,所述线性地址包括最高有效部分和字节索引。在缓冲器中定位条目,所述条目包括有效地址的ESID。基于包括根页表指针(RPTP)的条目,执行:使用RPTP来定位转换表层次的转换表;使用所定位的转换表来转换线性地址的最高有效部分以获得存储器的块的地址;以及基于所获得的地址,执行所请求的对于存储器的期望块的访问。
Description
技术领域
本发明涉及管理处理系统中的存储器页表,并且更具体地涉及处理系统中存储器区域的根表转换。
背景技术
在计算机系统中使用若干地址转换机制。例如,在IBM的中,由通过选择与有效地址相关联的ESID表条目、并使用条目以通过散列算法来定位页表条目组而找到的页表条目,将有效地址转换为对应的真实地址。又例如,在同样为IBM的中,通过转换表的层次,将有效地址转换为对应的真实地址,通过有效地址的一部分来索引转换表,以找到所述层次的下一转换表的地址,直到获得真实(或绝对)地址。因此,PowerPC地址转换将(大范围的存储器(264字节)的)64位有效地址映射在仅仅2级中(SLB表条目和页表条目),而zArchitecture层次地址转换需要5个表来转换大的有效地址范围(264字节)。两个地址转换机制都对相应的操作系统提供优点。
通过引用合并于此的EP6903861A 1996-01-03“Address translator and methodof operation”教导了CAM/SRAM结构(44),其执行与分段/分页寻址方案兼容但仅需要单个查找步骤的地址转换。有效至真实地址转换器中的每个条目具有两个CAM字段(ESID,EPI),其将输入段标识符和输入页标识符与所存储的段标识符和所存储的页标识符分别独立地进行比较。如果两个比较都相等,则ERAT输出与存储的段-存储的页对相关联的存储的真实地址字段(DATA)。在无效操作期间,ERAT可基于段或页粒度,通过分别要求段或页CAM字段匹配来使所存储的转换无效。
通过引用合并于此的US8103851B22012-01-24“Dynamic address translationwith translation table entry format control for identifying format of thetranslation table entry”教导了增强的动态地址转换设备。在一个实施例中,获得要转换的虚拟地址和转换表层次的转换表的初始源地址。使用虚拟地址的索引部分来参考转换表中的条目。如果转换表条目中包含的格式控制字段被启用,则表条目包含大小为至少1M字节的大数据块的帧地址。帧地址然后与虚拟地址的偏移部分相组合以形成主存储或存储器中的小的4K字节的数据块的转换后的地址。
发明内容
实施例包括一种用于接收访问存储器的期望块的请求的方法、系统和计算机程序产品。所述请求包括有效地址,所述有效地址包括有效段标识符(ESID)和线性地址,所述线性地址包括最高有效部分和字节索引。通过处理器在缓冲器中定位条目,所述条目包括有效地址的ESID。基于包括根页表指针(RPTP)的条目,执行:使用RPTP来定位转换表层次的转换表;使用所定位的转换表来转换线性地址的最高有效部分以获得存储器的块的地址;以及基于所获得的地址,执行所请求的对于存储器的期望块的访问。基于包括VSID的条目,使用散列函数执行定位转换表条目组的页表条目,以获得存储器的块的地址。使用所获得的地址包括:使用线性地址的字节索引和所获得的地址以形成存储器的期望块的地址。转换表层次的所定位的转换表的表级别通过RPTP指示。RPTP指定要使用的线性地址的大小。线性地址的一部分用于索引到所定位的转换表中以定位转换表条目,所述转换表条目包括转换表层次的下一级转换表的源地址。线性地址包括页标识符和字节偏移标识符。
通过本发明的技术实现另外的特征和优点。这里详细描述本发明的其他实施例和方面,并且其被认为是所要求保护的本发明的一部分。为了更好地理解本发明及其优点和特征,参照说明书和附图。
附图说明
现在,将参照附图仅通过示例描述本发明的实施例,附图中:
图1A图示使用散列PTE(PowerPC)方法映射到物理存储器的虚拟存储器(VM)的高级视图的示例;
图1B图示用于生成虚拟地址的方法的示例;
图1C图示由Power ISA使用的散列页表(HPT)转换结构的示例;
图2描绘层次转换机制;
图3图示高级转换表的索引检索(indexing);
图4示出混合转换机制;
图5示出混合转换机制;
图6图示示出用于选择要与RPTP一起使用的有效地址的位数的方法的框图;
图7图示处理器系统的示例性实施例;
图8图示用于访问存储器位置的方法的示例性实施例;
图9图示线性地址和对应于线性地址的表(表/目录)的示例性实施例;
图10图示用于访问存储器页的示例性方法的框图;
图11图示用于定位ESID和相关联的RPTP并从有效地址提取线性地址的示例性方法的框图;以及
图12图示计算机程序产品的示例性实施例。
具体实施方式
包括中央处理单元(CPU)的处理器可以使用段备用缓冲器(SLB)作为改进虚拟地址转换速度的高速缓存。之前的系统已经使用单个根页表指针(RPTP)来使用线性地址访问页。这样的系统管理可能在存储器空间中具有大的间隙的单个的大的区域。下面描述的实施例提出了提供用于使用任何数目的RPTP来转换任何数目的多个不连续的虚拟存储器区域的方法、系统和计算机可读介质。
图1A图示使用如例如由PowerPC使用的散列页表条目(PTE)方法而映射到物理存储器103的虚拟存储器(VM)101的高级视图的示例。在示例中,程序仅使用VM的段A和B。将VM的所有段映射到通过有效段ID(ESID)105(包括对于B的ESID和对于A的ESID)所标识的段ID(SID)条目。由程序使用的“有效地址”107选择具有ESID值和虚拟段ID(VSID)值的SID条目。VSID值表示要由散列算法使用的“虚拟地址”的高阶位。基于VSID的散列值用于定位页表条目(PTE)。页表条目包括物理存储器103的页的地址。
图1B图示用于生成用于散列的虚拟地址102的方法的示例。关于此点,在处理器的存储器管理单元中接收有效地址104,其包括有效段标识符(ESID)字段106、页字段108和字节偏移(字节字段)字段110。访问段备用缓冲器(SLB)112,并且在SLB 112中定位具有有效地址104的ESID 106的条目。具有ESID 106的条目包括相关联的虚拟段标识符(VSID)114。相关联的VSID用于从有效地址104生成包括SLB 112中的VSID 114、以及页108和字节110的虚拟地址102,所述VSID 114与有效地址104的ESID 106相关联。虚拟地址102可用于访问存储器系统中的物理存储器。在本公开中,术语物理存储器、实际存储器、系统存储器和绝对存储器将可互换地使用来指代处理器可访问的主存储。
图1C图示由PowerPC使用的散列页表(HPT)转换结构的示例,在通过引用合并于此的Power ISATM版本2.06修订B规范中进一步详细描述Power ISA。有效地址(EA)104的ESID部分106用于定位SLB 112中的条目。所述条目包括VSID字段114。VSID字段114的值和EA104的一部分被散列以产生用于定位页表(HPT)150中的页表组152的散列值。搜索组152的PTE以定位具有匹配VSID的最高有效部分的值的字段的对应PTE。当找到对应PTE时,将PTE中物理存储器页的地址用于访问物理存储器。为了改进性能,一旦找到PTE条目,就将PTE中找到的物理存储器页的地址和EA 104部分存储在TLB 154中,使得对于同一EA页的进一步的访问将在TLB 154中“命中”并且避免PTE搜索。通过由处理器提供的页表源地址来定位页表。
当在组中找到对应于散列值的PTE 152时,将PTE中的物理存储器页的地址用于访问物理存储器。为了改进性能,一旦找到PTE条目,就将PTE中找到的物理存储器页的地址和EA 104部分存储在TLB 154中,使得对于同一EA页的进一步的访问将在TLB 154中“命中”并且避免PTE搜索。通过由处理器提供的页表源地址来定位页表。
各自通过引用合并于此的IBM zArchitecture Principle of Operation SA22-7832-8和Intel Itanium Architecture Software Developer’s Manual Volume2:SystemArchitecture,Document Number:245318-005包括对于使用转换表的层次的其他地址转换方案的描述。
图2描绘示例层次转换表转换机制。在此情况下,为转换所有虚拟存储器202(虽然仅使用区域A和B)提供转换表。例如,通过控制寄存器(CR3)206提供层次转换表204的最高阶转换表的源。有效地址208用于索引到层次转换表204的每个表中,以确定下一表的源地址,例如,从而定位具有物理存储器210的页的地址的页表条目(PTE)。
图3示出通过有效地址208a的高位部分“索引”层次的最高级转换表以定位用于定位下一转换表(表2)的表1条目302a。类似地,有效地址208b的下一部分用于索引到表2中以找到具有表3的源地址的表2条目302b。有效地址208c的下一部分用于索引到表3中以找到具有表304的源地址的表3条目302c。有效地址208d的下一部分用于索引到表304中以定位具有物理存储器页306的地址的页表条目302d。在实施例中,转换表的层次的源可包括表选择符字段,用于确定所述源应用于转换表的所述层次的哪一个。因此,转换可能仅需要层次的子集(其中,有效地址被限于包括具有0值的预定数目的最高有效位)。使用较少表的转换将比使用较多表的转换更快。
图4示出混合转换机制。在混合转换机制中,如在之前呈现的散列方法中,在块401中,将虚拟存储器208的有效地址用于定位与段备用缓冲器(SLB)402中的ESID对应的条目。然而,在混合转换机制中,或者使用传统的散列方法来定位PTE,或者使用层次地址转换机制。如在块403中确定的,ESID包括用于散列的VSID(散列是),或用于定位转换表层次的RPTP(散列否)。如果散列,则在块405中,使用图1A的散列函数来定位转换表条目组的页表条目。如果不散列,则在块407中使用利用RPTP定位的转换表的集合来定位如图2所示的真实存储器的页。在实施例中,仅实现“散列否”路径。
图5示出混合层次转换机制的高级视图。在此机制中,对于虚拟存储器504的各个子范围(A和B 504a和504b)实现小的层次转换表集合502a和502b,因此减少所需的转换表的数目以及转换所需的层次的深度。如图1A中的SID 506用于定位具有EA的ESID和RPTP508(而不是VSID)的条目。每个RPTP 508a和508b包括转换表层次集合的最高级表的源地址。在实施例中,RPTP 508包括选择符,用于选择要使用转换表502的哪一级来作为最高级表。如图2中搜索层次转换表502以定位例如物理存储器510的页地址。在实施例中,可通过比页更大的段定义真实地址。例如,zArchitecture提供用于真实存储器的4K字节的页或大得多的页(通过段表条目而不是页表条目定位)的选项。
为了支持用于虚拟存储器的区域A和B的较小的表,必须对于每个区域有效地删截有效地址,以仅包括在转换表的子集中使用的地址位。例如,如果不会使用表1,则用于索引到表1中的位将被置零。
图6图示示出这样的示例方法的框图:用于通过获得SLB条目中的尺寸字段602、并对顺序的SLB条目搜索例如与有效地址的ESID相关联并配置为访问所期望的段尺寸的SLB条目,选择要与图5中的RPTP 508使用的有效地址的位数。在另一实现中,虚拟地址的尺寸(段尺寸)信息可以编码在单个SLB条目中,不需要上述搜索。
当发现SLB条目时,使用RPTP部分来发现要使用的转换表层次的第一转换表的源地址。尺寸字段602用于生成段尺寸掩码(mask)。段尺寸掩码删截有效地址(EA)中的索引到转换表中将不需要的高阶位。段尺寸掩码用于引导EA的将要用于索引到存储器的真实地址的块中的部分,其中,通过转换表提供块的地址。因此,对于每个RPTP仅需要最少量的转换表。
现在转向图7,总地示出处理器系统(系统)700的示例性实施例。系统700包括处理器(CPU)702,其包括存储器管理单元/TLB部分704和本地高速缓存706。处理器702通信连接到具有一个或多个高速缓存710和主存储的存储器子系统708。在主存储中典型地存储转换(根)表,SID。处理器连接到输入/输出(I/O)控制器712。I/O控制器712包括I/O存储器管理单元(I/O MMU)716并且通信连接到例如可包括数据输入设备、传感器和诸如显示器的输出设备的外部I/O设备714。在其他实施例(未示出)中,处理器702可具有至存储器708的接口,所述接口与I/O控制器接口相分离。
图8图示用于转换有效地址以获得具有期望的根页表指针RPTP的SLB条目的方法的示例性实施例。关于此点,在(图7的)系统700的存储器管理单元704中接收有效地址802。有效地址802包括有效段标识符(ESID)部分804和线性地址部分807,线性地址部分807例如包括页808部分和字节偏移(字节)810部分。访问示例性SLB缓冲器812。缓冲器812例如包括内容可寻址表,其包括具有ESID 814字段、有效条目字段(V)816、根页表指针(RPTP)字段818、段尺寸字段820和段性质字段822的条目。段性质822可以向本领域技术人员指定诸如访问许可、访问类型(可高速缓存、禁止高速缓存、I/O)、树几何(级数、每级的位数等)和最近最多/最少使用指示的参数。段性质822可以指定诸如对段页表条目中包含的字段的覆盖(override)的参数,以及定义诸如结合的页表条目的处理的参数的性质。在示例性操作中,在SLB 812中标识具有有效地址802的ESID 804的条目。从SLB 812检索所标识的条目的RPTP 801。
RPTP 801和线性地址807例如用于使用例如地址转换表层次(根表(即,根树),如下面将描述的图7的根树711)访问存储器位置。并行或顺序地或以两者结合的方式搜索SLB812的每个条目(SLBE0…SLBEn),直到发现匹配ESID的SLB条目。如果对于SLB条目设置了有效位816,则使用段尺寸820来构造用于提取ESID 804和线性地址807的掩码。有效地址802中的“s”的值是未知的,直到出现来自SLB 812的匹配。在示例性实施例中,段尺寸820是2的“n”次幂,使得2n以字节表示段尺寸。因此,对于n=30,计算段尺寸为一千兆字节。用于提取线性地址的掩码“mc”是段尺寸减一字节,因此(2n-1)。用于提取ESID 304的掩码“m”是用于提取线性地址的掩码“mc”的一的补码,因此(~(2n-1))。有效地址802与“m”逐位地进行逻辑与操作。SLB条目中的ESID与“m”逐位地进行逻辑与操作。如果上述逻辑函数的结果相等,则已经发现匹配的SLB条目。从匹配的SLB条目选择RPTP 801。也可以确定线性地址807,因为“s”是确定已知的。其是有效地址802与“mc”逐位地进行逻辑与操作。如果上述逻辑函数的结果不等,则搜索继续。如果当穷尽所有SLBE时搜索失败,则调用系统中断处理程序(handler)或一些其他机制来发信号通知错误情况。
在一些示例性实施例中,诸如进程ID、线程ID、处理器ID和分区ID的字段与SLBE中存储的那些对应值进行比较。这些ID与有效地址802无关,并且建立用于有效地址802的上下文。这样,当处理器切换到不同进程(例如,两个进程可以以不同方式使用同一地址2000)时,替代被分配清除(flush)SLB的任务,两个进程可以在同一SLB中并存。对于线程/处理器/分区ID,它们扩展上下文超出运行的程序,使得它们指定实际或虚拟化的硬件。
在图8中上述的方法的另一实施例中,SLBE包含允许可选择的转换的一个或多个字段,使得基于连续存储器块的直接转换、经散列页表转换的区域等,一个条目选择RPTP,并且另一条目选择另一转换方案。
图9图示线性地址807和与线性地址807对应的表(表/目录)902的示例性实施例。表902用于使用RPTP 801和线性地址807转换页地址以访问页904。可以划分或分配线性地址807的页808标识符以标识具有任何指定或命名的任何数目的目录。出于图示目的,示例性实施例包括页808标识符,其被划分为对应于四个目录(全局目录906、上部目录908、中间目录910和页表912)的标识符部分(全局目录部分901、上部目录部分903、中间目录部分905和页表部分907)。
关于此点,将适当数目的零附加到RPTP 801以构造全局目录指针。所附加的零的数目对应于全局目录906的尺寸。对于此示例,全局目录906是每个条目8字节的512个条目,导致总大小为4096字节。因此,在此示例中将12个零(log24096)附加到RPTP 801值。(所有表/目录每条目具有8字节,对应于64位示例)。将36位页808细分为每个9位的四个集合,以导览(navigate)全局目录906、上部目录908、中间目录910和页表912。例如,RPTP 801将是0x0000000000100000,并且线性地址807将是0x1234567890AB。在全局目录906开始,提取线性地址807的9个最高有效位(值36)并将其用作到全局目录906中的0..511索引,并读取在存储器位置0x0000000000100000+36*8处的条目。所读取的值被当作指向上部目录908的指针。(例如,返回0x0000000000200000)。提取线性地址807的下一个9个最高有效位(值209)并将其用作到上部目录908中的0..511索引,并读取在存储器位置0x0000000000200000+209*8处的条目。所读取的值被当作指向中间目录410的指针。(例如,返回0x0000000000300000)。提取线性地址807的下一个9个最高有效位(值179)并将其用作到中间目录910中的0..511索引,并读取在存储器位置0x0000000000300000+179*8处的条目。所读取的值被当作指向页表912的指针。(例如,返回0x0000000000400000)。提取线性地址807的剩余的9个最低有效位(值393)并将其用作到页表912中的0..511索引,并读取在存储器位置0x0000000000400000+393*8处的条目。所读取的值被当作指向页904的指针(例如,返回0x0000000000500000)。线性地址807的字节810的12位(值17)与页904的值(0x0000000000500000)相加,得到完整转换后的地址:0x00000000005000AB。
图9仅仅包括线性地址和对应表/目录的一个示例。其他示例可以包括不同数目的表,或线性地址的位的排列、倒置或省略,这导致替代的表访问模式。
尽管所示实施例描述了使用64位有效地址804的系统,但是可以使用任何替代尺寸的任何其他有效地址。
图10图示用于用诸如例如(图7的)系统700的处理器系统访问存储器页的示例性方法的框图。关于此点,在块1002中,在存储器管理单元704中接收(图8的)有效地址802。在块1004中,存储器管理单元704标识缓冲器812中包括有效地址的ESID 804的条目,并从所标识的缓冲器条目检索与ESID 804相关联的RPTP 801,并检索RPTP 801。如果在块1007中当穷尽所有SLBE时搜索失败,则在块1009中调用系统中断处理程序或另一机制来发信号通知错误情况。在块1006中,存储器管理单元704从有效地址802提取线性地址807。在块1007中,系统700确定访问是否是虚拟化访问。如果是,则在块1011中使用RPTP 801的去虚拟化的等效和线性地址807的去虚拟化的等效,在页中访问去虚拟化的存储器位置。在块1008中,RPTP 801和线性地址807与(图9的)表902一起使用来创建转换后的地址并在页904中访问存储器位置(如上所述)。在块1010中,将访问的存储器位置中的数据发送到处理器702。
图11图示用于定位ESID和相关联的RPTP并从有效地址提取线性地址(如上面图10的块1004和1006所述)的示例性方法的框图。关于此点,参照图11,在块1102中,选择第一有效SLBE。在块1104中,从SLBE的段尺寸提取n值。在块1106中,通过计算(~(2n-1))生成ESID掩码M。如果在块1108中与M逐位地进行与操作的有效地址的ESID不等于与M逐位地进行与操作的缓冲器的ESID,则在块1109中选择下一有效SLBE。如果在块1110中已经穷尽所有SLBE,则在块1111中调用系统中断处理程序。在块1112中,计算(2n-1)以生成线性地址掩码Mc。在块1114中,通过将掩码Mc与有效地址逐位地进行与操作而组装线性地址。在块1116中,所选择的SLBE包括ESID、RPTP、段尺寸和段性质。
如上所述,实施例可以以计算机实现的处理和用于实践这些处理的装置的形式体现。实施例作为制造品可以包括如图12所绘在计算机可读/可用介质1202上的计算机程序产品1200,所述计算机可读/可用介质1202具有计算机程序代码逻辑1204,所述计算机程序代码逻辑1204包含在有形介质中体现为指令。用于计算机可读/可用介质1202的示例性制造品可包括软磁盘、CD-ROM、硬盘驱动器、通用串行总线(USB)闪存驱动器、或任何其他计算机可读存储介质,其中当计算机程序代码逻辑1204加载到计算机中并由计算机执行时,计算机成为用于实践本发明的装置。实施例包括例如存储在存储介质中、加载到计算机中和/或由计算机执行、或在一些传输介质(如电线或电缆、通过光纤、或经由电磁辐射)上传输的计算机程序代码逻辑1204,其中当计算机程序代码逻辑1204加载到计算机中并由计算机执行时,计算机成为用于实践发明的装置。当在通用微处理器上实现时,计算机程序代码逻辑1204段配置微处理器以创建特定逻辑电路。
上述方法和系统的技术效果和优点允许任何数目的RPTP转换任何数目的多个不连续存储器区域以访问存储器位置中的数据。
所属技术领域的技术人员知道,本发明的各个方面可以实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明的各个方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其他设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article of manufacture)。
也可以把这些计算机程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其它可编程数据处理装置、或其他设备上执行一系列操作步骤,以产生计算机实现的处理,从而,在计算机或其他可编程装置上执行的指令提供用于实现流程图和/或框图中的一个或多个方框中规定的功能/动作的处理。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
这里使用的术语仅用于描述特定实施例,并且不意图限制本发明。如这里使用的,单数形式“一个”和“这个”意在也包括复数形式,除非上下文清晰地另有所指。还将理解,术语“包括”和/或“包含”当在此说明书中使用时,指定所述特征、整数、步骤、操作、元件和/或组件的存在,但是不排除一个或多个其他特征、整数、步骤、操作、元件、组件和/或其集合的存在或添加。
权利要求中的对应结构、材料、动作和所有方式或步骤加功能元件的等效意在包括用于与具体要求保护的其他要求保护的元件结合执行功能的任何结构、材料或动作。已经为了图示和说明的目的呈现了本发明的描述,但是其不意图是穷尽性的,或将本发明限制于所公开的形式。对于本领域普通技术人员许多修改和变化将是明显的,而不背离本发明的范围和精神。选择和描述实施例以便最佳地说明本发明的原理和实际应用,并且使得本领域普通技术人员能够对于具有适于预期的特定使用的各种修改的各种实施例而理解本发明。
这里描绘的流程图仅是一个示例。可以有对于这里描述的此图或步骤(或操作)的许多变化,而不背离本发明的精神。例如,可以以不同顺序执行步骤,或者可以添加、删除或修改步骤。所有这些变化被认为是所要求保护的发明的一部分。
虽然已经描述了本发明的优选实施例,但是将理解,本领域技术人员现在和将来可以进行落入权利要求的范围内的各种改进和增强。这些权利要求应被解释为维持首先描述的本发明的适当保护范围。
Claims (14)
1.一种用于访问处理系统中的存储器位置的方法,所述方法包括:
接收访问位于多个不连续的虚拟存储器区域中的一个的存储器的期望块的请求,所述请求包括有效地址,所述有效地址包括有效段标识符ESID和线性地址,所述线性地址包括最高有效部分和字节索引;
通过处理器在具有多个条目的段备用缓冲器中定位具有匹配所述有效地址的有效段标识符ESID的条目;
基于包括根页表指针RPTP的所述在段备用缓冲器中定位的具有匹配所述有效地址的有效段标识符ESID的条目,执行:
使用所述在段备用缓冲器中定位的具有匹配所述有效地址的有效段标识符ESID的条目的根页表指针RPTP来定位转换表层次的转换表,所述转换表的层次的源可包括表选择符字段,用于确定所述源应用于转换表的所述层次的哪一个;
使用所定位的转换表来转换线性地址的最高有效部分的全部以获得存储器的块的地址;以及
基于所获得的地址,执行所请求的对于存储器的期望块的访问。
2.如权利要求1所述的方法,其中基于包括虚拟段标识符的条目,使用散列函数执行定位转换表条目组的页表条目,以获得存储器的块的地址。
3.如权利要求1所述的方法,其中使用所获得的地址包括:使用线性地址的字节索引和所获得的地址以形成存储器的期望块的地址。
4.如权利要求1所述的方法,其中转换表层次的所定位的转换表的表级别通过根页表指针RPTP指示。
5.如权利要求1所述的方法,其中根页表指针RPTP指定要使用的线性地址的大小。
6.如权利要求1所述的方法,其中线性地址的一部分用于索引到所定位的转换表中以定位转换表条目,所述转换表条目包括转换表层次的下一级转换表的源地址。
7.如权利要求1所述的方法,其中线性地址包括页标识符和字节偏移标识符。
8.一种用于访问存储器位置的计算机系统,所述系统包括:
存储器;以及
处理器,被配置为执行如下方法:
接收访问位于多个不连续的虚拟存储器区域中的一个的存储器的期望块的请求,所述请求包括有效地址,所述有效地址包括有效段标识符ESID和线性地址,所述线性地址包括最高有效部分和字节索引;
通过处理器在具有多个条目的段备用缓冲器中定位具有匹配所述有效地址的有效段标识符ESID的条目;
基于包括根页表指针RPTP的所述在段备用缓冲器中定位的具有匹配所述有效地址的有效段标识符ESID的条目,执行:
使用所述在段备用缓冲器中定位的具有匹配所述有效地址的有效段标识符ESID的条目的根页表指针RPTP来定位转换表层次的转换表,所述转换表的层次的源可包括表选择符字段,用于确定所述源应用于转换表的所述层次的哪一个;
使用所定位的转换表来转换线性地址的最高有效部分的全部以获得存储器的块的地址;以及
基于所获得的地址,执行所请求的对于存储器的期望块的访问。
9.如权利要求8所述的系统,其中所述处理器被进一步配置为:
基于包括虚拟段标识符的条目,使用散列函数执行定位转换表条目组的页表条目,以获得存储器的块的地址。
10.如权利要求8所述的系统,其中使用所获得的地址包括:使用线性地址的字节索引和所获得的地址以形成存储器的期望块的地址。
11.如权利要求8所述的系统,其中转换表层次的所定位的转换表的表级别通过根页表指针RPTP指示。
12.如权利要求8所述的系统,其中根页表指针RPTP指定要使用的线性地址的大小。
13.如权利要求8所述的系统,其中线性地址的一部分用于索引到所定位的转换表中以定位转换表条目,所述转换表条目包括转换表层次的下一级转换表的源地址。
14.如权利要求8所述的系统,其中线性地址包括页标识符和字节偏移标识符。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/517,758 US9811472B2 (en) | 2012-06-14 | 2012-06-14 | Radix table translation of memory |
US13/517,758 | 2012-06-14 | ||
PCT/IB2013/054164 WO2013186646A1 (en) | 2012-06-14 | 2013-05-21 | Radix table translation of memory |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104380270A CN104380270A (zh) | 2015-02-25 |
CN104380270B true CN104380270B (zh) | 2017-08-25 |
Family
ID=49757044
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380028612.5A Expired - Fee Related CN104380270B (zh) | 2012-06-14 | 2013-05-21 | 存储器的根表转换 |
Country Status (5)
Country | Link |
---|---|
US (2) | US9811472B2 (zh) |
CN (1) | CN104380270B (zh) |
DE (1) | DE112013002938B4 (zh) |
GB (1) | GB2517356B (zh) |
WO (1) | WO2013186646A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110502452A (zh) * | 2019-07-12 | 2019-11-26 | 华为技术有限公司 | 访问电子设备中的混合缓存的方法及装置 |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9811472B2 (en) | 2012-06-14 | 2017-11-07 | International Business Machines Corporation | Radix table translation of memory |
US9753860B2 (en) | 2012-06-14 | 2017-09-05 | International Business Machines Corporation | Page table entry consolidation |
US9092359B2 (en) | 2012-06-14 | 2015-07-28 | International Business Machines Corporation | Identification and consolidation of page table entries |
US9633155B1 (en) | 2015-11-10 | 2017-04-25 | International Business Machines Corporation | Circuit modification |
US10346314B2 (en) | 2016-08-03 | 2019-07-09 | International Business Machines Corporation | Efficiently generating effective address translations for memory management test cases |
US10339065B2 (en) * | 2016-12-01 | 2019-07-02 | Ampere Computing Llc | Optimizing memory mapping(s) associated with network nodes |
US10169185B1 (en) | 2017-08-12 | 2019-01-01 | International Business Machines Corporation | Efficient testing of direct memory address translation |
US10649778B1 (en) | 2018-12-04 | 2020-05-12 | International Business Machines Corporation | Performance optimized congruence class matching for multiple concurrent radix translations |
US11847064B2 (en) * | 2018-12-07 | 2023-12-19 | International Business Machines Corporation | Buffer and methods for address translations in a processor |
US11163695B2 (en) | 2019-12-03 | 2021-11-02 | International Business Machines Corporation | Methods and systems for translating virtual addresses in a virtual memory based system |
US11461237B2 (en) | 2019-12-03 | 2022-10-04 | International Business Machines Corporation | Methods and systems for translating virtual addresses in a virtual memory based system |
US11734188B2 (en) | 2021-03-11 | 2023-08-22 | International Business Machines Corporation | Unified translation miss queue for multiple address translation modes |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101315614A (zh) * | 2007-06-01 | 2008-12-03 | 英特尔公司 | 支持页属性的虚拟地址至物理地址的转换 |
Family Cites Families (65)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3781808A (en) * | 1972-10-17 | 1973-12-25 | Ibm | Virtual memory system |
US4914577A (en) * | 1987-07-16 | 1990-04-03 | Icon International, Inc. | Dynamic memory management system and method |
JP2635058B2 (ja) * | 1987-11-11 | 1997-07-30 | 株式会社日立製作所 | アドレス変換方式 |
US5125086A (en) | 1989-06-29 | 1992-06-23 | Digital Equipment Corporation | Virtual memory paging apparatus with variable size in-page clusters |
US5247634A (en) | 1990-03-20 | 1993-09-21 | Hewlett-Packard Company | Method of managing memory allocation by association of memory blocks with a tree structure |
US5282274A (en) | 1990-05-24 | 1994-01-25 | International Business Machines Corporation | Translation of multiple virtual pages upon a TLB miss |
CA2045789A1 (en) | 1990-06-29 | 1991-12-30 | Richard Lee Sites | Granularity hint for translation buffer in high performance processor |
US5222222A (en) * | 1990-12-18 | 1993-06-22 | Sun Microsystems, Inc. | Apparatus and method for a space saving translation lookaside buffer for content addressable memory |
GB2251102B (en) * | 1990-12-21 | 1995-03-15 | Sun Microsystems Inc | Translation lookaside buffer |
EP0508577A1 (en) * | 1991-03-13 | 1992-10-14 | International Business Machines Corporation | Address translation mechanism |
US5617554A (en) * | 1992-02-10 | 1997-04-01 | Intel Corporation | Physical address size selection and page size selection in an address translator |
US5465337A (en) * | 1992-08-13 | 1995-11-07 | Sun Microsystems, Inc. | Method and apparatus for a memory management unit supporting multiple page sizes |
WO1994027222A1 (de) * | 1993-05-10 | 1994-11-24 | Jochen Liedtke | Verfahren zum umsetzen einer virtuellen speicheradresse mit einer ersten länge in eine realadresse mit einer zweiten länge |
US5479627A (en) * | 1993-09-08 | 1995-12-26 | Sun Microsystems, Inc. | Virtual address to physical address translation cache that supports multiple page sizes |
US5765209A (en) * | 1993-09-23 | 1998-06-09 | Hewlett-Packard Co. | Method and apparatus to eliminate redundant mapping in a TLB utilizing variable sized pages |
US5586283A (en) * | 1993-10-07 | 1996-12-17 | Sun Microsystems, Inc. | Method and apparatus for the reduction of tablewalk latencies in a translation look aside buffer |
US5526504A (en) * | 1993-12-15 | 1996-06-11 | Silicon Graphics, Inc. | Variable page size translation lookaside buffer |
EP0690386A1 (en) | 1994-04-04 | 1996-01-03 | International Business Machines Corporation | Address translator and method of operation |
US5907867A (en) * | 1994-09-09 | 1999-05-25 | Hitachi, Ltd. | Translation lookaside buffer supporting multiple page sizes |
US5963984A (en) * | 1994-11-08 | 1999-10-05 | National Semiconductor Corporation | Address translation unit employing programmable page size |
US5774135A (en) | 1996-11-05 | 1998-06-30 | Vlsi, Technology, Inc. | Non-contiguous memory location addressing scheme |
US5930830A (en) | 1997-01-13 | 1999-07-27 | International Business Machines Corporation | System and method for concatenating discontiguous memory pages |
US5946679A (en) * | 1997-07-31 | 1999-08-31 | Torrent Networking Technologies, Corp. | System and method for locating a route in a route table using hashing and compressed radix tree searching |
US6804766B1 (en) | 1997-11-12 | 2004-10-12 | Hewlett-Packard Development Company, L.P. | Method for managing pages of a designated memory object according to selected memory management policies |
US6275912B1 (en) | 1998-06-30 | 2001-08-14 | Microsoft Corporation | Method and system for storing data items to a storage device |
US6185570B1 (en) * | 1998-07-01 | 2001-02-06 | Nortel Networks Limited | Method and apparatus for performing radix lookups using transition bits and fields in transition tables |
US6141738A (en) * | 1998-07-08 | 2000-10-31 | Nortel Networks Corporation | Address translation method and system having a forwarding table data structure |
US7149982B1 (en) | 1999-12-30 | 2006-12-12 | Microsoft Corporation | System and method for saving user-specified views of internet web page displays |
JP3719897B2 (ja) * | 2000-02-29 | 2005-11-24 | 富士通株式会社 | データ転送装置、データ転送方法及び記録媒体 |
JP2002132581A (ja) | 2000-10-25 | 2002-05-10 | Mitsubishi Electric Corp | メモリ管理機構 |
TW594502B (en) * | 2003-01-30 | 2004-06-21 | Ind Tech Res Inst | Length-scalable fast Fourier transformation digital signal processing architecture |
US7003647B2 (en) | 2003-04-24 | 2006-02-21 | International Business Machines Corporation | Method, apparatus and computer program product for dynamically minimizing translation lookaside buffer entries across contiguous memory |
US7149872B2 (en) | 2003-07-10 | 2006-12-12 | Transmeta Corporation | System and method for identifying TLB entries associated with a physical address of a specified range |
US7469324B2 (en) | 2005-01-07 | 2008-12-23 | Azul Systems, Inc. | System and method for concurrent compacting self pacing garbage collection using loaded value and access barriers |
US8417913B2 (en) | 2003-11-13 | 2013-04-09 | International Business Machines Corporation | Superpage coalescing which supports read/write access to a new virtual superpage mapping during copying of physical pages |
US7278008B1 (en) * | 2004-01-30 | 2007-10-02 | Nvidia Corporation | Virtual address translation system with caching of variable-range translation clusters |
US7296139B1 (en) * | 2004-01-30 | 2007-11-13 | Nvidia Corporation | In-memory table structure for virtual address translation system with translation units of variable range size |
US7444523B2 (en) * | 2004-08-27 | 2008-10-28 | Microsoft Corporation | System and method for using address bits to signal security attributes of data in the address space |
US8843727B2 (en) | 2004-09-30 | 2014-09-23 | Intel Corporation | Performance enhancement of address translation using translation tables covering large address spaces |
US7278006B2 (en) | 2004-12-30 | 2007-10-02 | Intel Corporation | Reducing memory fragmentation |
US7370174B2 (en) | 2005-01-05 | 2008-05-06 | Intel Corporation | Method, system, and program for addressing pages of memory by an I/O device |
US7366869B2 (en) | 2005-03-17 | 2008-04-29 | Qualcomm Incorporated | Method and system for optimizing translation lookaside buffer entries |
US7447869B2 (en) | 2005-04-07 | 2008-11-04 | Ati Technologies, Inc. | Method and apparatus for fragment processing in a virtual memory system |
US20060253682A1 (en) | 2005-05-05 | 2006-11-09 | International Business Machines Corporation | Managing computer memory in a computing environment with dynamic logical partitioning |
US7533228B1 (en) | 2005-05-27 | 2009-05-12 | Sun Microsystems, Inc. | Two-pass sliding compaction |
US7412466B1 (en) | 2005-05-31 | 2008-08-12 | Sun Microsystems, Inc. | Offset-based forward address calculation in a sliding-compaction garbage collector |
US7389395B1 (en) | 2005-06-26 | 2008-06-17 | Sun Microsystems, Inc. | Split-reference, two-pass mark-compaction |
US7330958B2 (en) * | 2005-09-22 | 2008-02-12 | International Business Machines Corporation | Method and apparatus for translating a virtual address to a real address using blocks of contiguous page table entries |
US7480782B2 (en) | 2006-06-14 | 2009-01-20 | Sun Microsystems, Inc. | Reference-updating using per-chunk referenced-address ranges in a compacting garbage collector |
US9311227B2 (en) | 2006-10-31 | 2016-04-12 | Hewlett Packard Enterprise Development Lp | Memory management |
US7783859B2 (en) | 2007-07-12 | 2010-08-24 | Qnx Software Systems Gmbh & Co. Kg | Processing system implementing variable page size memory organization |
US7779214B2 (en) | 2007-07-18 | 2010-08-17 | Qnx Software Systems Gmbh & Co. Kg | Processing system having a supported page size information register |
US8046597B2 (en) | 2007-08-14 | 2011-10-25 | Dell Products L.P. | System and method for managing storage device capacity use |
US7917725B2 (en) | 2007-09-11 | 2011-03-29 | QNX Software Systems GmbH & Co., KG | Processing system implementing variable page size memory organization using a multiple page per entry translation lookaside buffer |
US8037278B2 (en) * | 2008-01-11 | 2011-10-11 | International Business Machines Corporation | Dynamic address translation with format control |
US8103851B2 (en) * | 2008-01-11 | 2012-01-24 | International Business Machines Corporation | Dynamic address translation with translation table entry format control for indentifying format of the translation table entry |
US8296547B2 (en) * | 2008-08-27 | 2012-10-23 | International Business Machines Corporation | Loading entries into a TLB in hardware via indirect TLB entries |
US8301863B2 (en) * | 2008-11-17 | 2012-10-30 | International Business Machines Corporation | Recursive logical partition real memory map |
US8195917B2 (en) | 2009-07-01 | 2012-06-05 | Advanced Micro Devices, Inc. | Extended page size using aggregated small pages |
GB2478727B (en) | 2010-03-15 | 2013-07-17 | Advanced Risc Mach Ltd | Translation table control |
US20110238946A1 (en) | 2010-03-24 | 2011-09-29 | International Business Machines Corporation | Data Reorganization through Hardware-Supported Intermediate Addresses |
US8862859B2 (en) * | 2010-05-07 | 2014-10-14 | International Business Machines Corporation | Efficient support of multiple page size segments |
US8745307B2 (en) * | 2010-05-13 | 2014-06-03 | International Business Machines Corporation | Multiple page size segment encoding |
US9811472B2 (en) | 2012-06-14 | 2017-11-07 | International Business Machines Corporation | Radix table translation of memory |
US9122508B2 (en) * | 2012-06-15 | 2015-09-01 | International Business Machines Corporation | Real time measurement of I/O interrupt delay times by hypervisor by selectively starting and/or stopping corresponding LPARs |
-
2012
- 2012-06-14 US US13/517,758 patent/US9811472B2/en not_active Expired - Fee Related
-
2013
- 2013-03-05 US US13/785,188 patent/US9785569B2/en not_active Expired - Fee Related
- 2013-05-21 DE DE112013002938.3T patent/DE112013002938B4/de active Active
- 2013-05-21 CN CN201380028612.5A patent/CN104380270B/zh not_active Expired - Fee Related
- 2013-05-21 WO PCT/IB2013/054164 patent/WO2013186646A1/en active Application Filing
- 2013-05-21 GB GB1421552.9A patent/GB2517356B/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101315614A (zh) * | 2007-06-01 | 2008-12-03 | 英特尔公司 | 支持页属性的虚拟地址至物理地址的转换 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110502452A (zh) * | 2019-07-12 | 2019-11-26 | 华为技术有限公司 | 访问电子设备中的混合缓存的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
DE112013002938B4 (de) | 2022-01-27 |
GB201421552D0 (en) | 2015-01-21 |
GB2517356B (en) | 2020-03-04 |
GB2517356A (en) | 2015-02-18 |
US9785569B2 (en) | 2017-10-10 |
DE112013002938T5 (de) | 2015-03-19 |
US20130339654A1 (en) | 2013-12-19 |
CN104380270A (zh) | 2015-02-25 |
US9811472B2 (en) | 2017-11-07 |
WO2013186646A1 (en) | 2013-12-19 |
US20130339652A1 (en) | 2013-12-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104380270B (zh) | 存储器的根表转换 | |
US9086988B2 (en) | Identification and consolidation of page table entries | |
CN104737138B (zh) | 用半虚拟化的管理程序提供全虚拟化的附属部件 | |
US7089398B2 (en) | Address translation using a page size tag | |
US9405702B2 (en) | Caching TLB translations using a unified page table walker cache | |
CN110998549B (zh) | 地址转换缓存 | |
KR20180099819A (ko) | 시스템 성능 향상을 위한 적응적 값 범위 프로파일링 | |
CN109690484A (zh) | 在虚拟机进入时转换 | |
US10216642B2 (en) | Hardware-based pre-page walk virtual address transformation where the virtual address is shifted by current page size and a minimum page size | |
US9251092B2 (en) | Hybrid address translation | |
US10191853B2 (en) | Apparatus and method for maintaining address translation data within an address translation cache | |
CN107735773B (zh) | 用于高速缓冲存储标签压缩的方法及设备 | |
JP7062695B2 (ja) | 論理ディレクトリを使用したキャッシュ構造 | |
DE102014109083A1 (de) | Bilden von Anweisungsgruppen basierend auf der Optimierung von Anweisungen bei der Dekodierung | |
US11221963B2 (en) | Methods and systems for incorporating non-tree based address translation into a hierarchical translation lookaside buffer (TLB) | |
US9798674B2 (en) | N-ary tree for mapping a virtual memory space | |
CN111279324A (zh) | 用于定位元数据的方法 | |
US9740628B2 (en) | Page table entry consolidation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170825 |
|
CF01 | Termination of patent right due to non-payment of annual fee |