CN102792285B - 用于处理数据的装置和方法 - Google Patents

用于处理数据的装置和方法 Download PDF

Info

Publication number
CN102792285B
CN102792285B CN201180010468.3A CN201180010468A CN102792285B CN 102792285 B CN102792285 B CN 102792285B CN 201180010468 A CN201180010468 A CN 201180010468A CN 102792285 B CN102792285 B CN 102792285B
Authority
CN
China
Prior art keywords
page
address
conversion table
physical
virtual
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.)
Active
Application number
CN201180010468.3A
Other languages
English (en)
Other versions
CN102792285A (zh
Inventor
理查德·罗伊·格里森思怀特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ARM Ltd
Original Assignee
Advanced Risc Machines Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Advanced Risc Machines Ltd filed Critical Advanced Risc Machines Ltd
Publication of CN102792285A publication Critical patent/CN102792285A/zh
Application granted granted Critical
Publication of CN102792285B publication Critical patent/CN102792285B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/651Multi-level translation tables

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

内存地址转换电路(14)使用储存在转换表(28、32、36、38、40、42)层级中的转换数据,执行由上而下页表移走操作以将虚拟内存地址VA转换为物理内存地址PA。页大小变量S被用于控制内存地址转换电路(14)以使用物理内存地址、虚拟内存地址及转换表的不同大小S的页进行操作。这些不同大小可全部为4kB或全部为64kB。该系统可支持多个虚拟机运行环境。如同相关联超管理器(62)设定其页大小一样,这些虚拟机运行环境可独立地设定其自身的页大小变量。

Description

用于处理数据的装置和方法
技术领域
本发明涉及数据处理系统的领域。更具体而言,本发明涉及用于在数据处理系统中将虚拟内存(memory)地址转换为物理内存地址的内存地址转换机构。
背景技术
已知提供了具有诸如内存管理单元的内存地址转换电路的数据处理系统,该内存地址转换电路用以将由处理器产生的虚拟地址转换为物理地址以便访问内存系统。执行该所需转换的一种方法为使用转换表。这些转换表可被配置为转换表层级,该层级的每一级将虚拟地址的一部分编入对表的索引中,以寻找至表的另一级的指针,或提供目标物理地址的描述符。由上而下页表移走操作被执行,在该操作中,执行了对页表的不同级之一系列索引化查找,直至全部有虚拟地址已完全转换为目标物理地址为止。“由上而下”的意义为表的第一级将虚拟地址的最高有效位编入对该表的索引。
在许多系统中,通常将地址空间分成4kB页并以此页大小的粒度(granularity)执行地址转换。此外,页表(转换表)也被配置为具有4kB大小,以便有效适合被分配以储存这些页表的内存的页中。
存在相当数量的软件,这些软件显式或隐式地依赖于分成4kB页的内存地址空间。若页大小变化,则此类软件可能不可正确地操作。
US-A-2007/0106875公开了用于内存管理的系统、方法和设备。一种方法实施例包括提供能够支持可变页大小的操作系统。该方法包括提供虚拟内存地址、将虚拟内存地址转换为虚拟内存页,并且通过使用深度和/或次序对应于操作系统和/或硬件支持的页大小的多级页表将虚拟内存页映射到物理内存页。
US-A-2007/0106875公开了用于从虚拟地址确定物理地址的方法,其中,虚拟地址和物理地址之间的映射规则被实现为具有压缩节点的层级树结构。首先,映射规则中包括的压缩指示符被读取,虚拟地址中与所考虑的节点等级相关联的一部分被读取。使用此压缩指示符和虚拟地址的这部分,所考虑的节点等级的节点列表的入口被确定。所确定的入口被读取,基于此,如果所考虑的节点等级已经是在层级上最低的节点等级,则物理地址可被直接确定。如果存在更高节点等级要被处理,前面的针对较低层级等级的压缩节点确定物理地址的步骤被重复,直到达到在层级上最低的节点等级为止。
发明内容
本发明的一方面提供一种用于处理数据的装置,其包含:
内存地址转换电路,其被配置为使用储存在转换表层级结构中的转换数据,执行由上而下页表移走操作,以将虚拟内存地址转换为物理内存地址;其中
转换数据指定虚拟内存地址的2N个连续字节的页与相应物理内存地址的2N个连续字节的页之间的转换,其中N为正整数;
转换表层级结构包含大小为2N个连续字节的转换表,以使得完整转换表被储存在物理内存的一页中;
内存地址转换电路响应于指定N的当前值的页大小变量,控制内存址转换电路以使用选定大小的物理内存地址、虚拟内存地址及转换表的页来进行操作;并且
所述虚拟地址中的从所述虚拟地址的最高有效位端起扩展的预定部分被固定转换为所述物理地址的相应部分而无需页表移走。
本技术认识到,利用现提供的内存空间大小的显著增加(例如,更大的内存容量及从32位地址至64位地址的变化),利用4kB内存页对内存控制提供了在实践中并非经常需要的粒度等级。此外,本技术认识到,为了使用具有更大物理地址的4kB页,在支持由上而下页表移走操作的页表层级结构中需要更多页表级。举例而言,若每一级页表能够将虚拟地址的九位转换为物理地址的九位,则将64位虚拟地址转换为64位实体地址可能占用多达六级之页表移走。此引入了不希望的延迟增加。本技术认识到这些问题,并通过假定物理内存及虚拟内存的页大小与转换表(页表)大小可在不同的值之间切换,并且内存地址转换电路适合以当前选定的内存页及转换表大小执行所需由上而下页表移走操作,来解决这些问题。这些转换表仍可在内存页中有效适合并且更大的转换表允许增加每一页表级将虚拟地址的位转换为物理地址的位的位数。这减少了在转换中需要访问的页表级数,因此减少了相关的延迟。
应了解,若并非期望所有内存地址空间供使用,则可通过将自所需虚拟地址的最高有效位端起扩展的该虚拟地址的一部分配置为固定值(通常全部为0或全部为1)来减少所需要的页表移走级数,因此避免需要执行最高级的转换表移走。因此,若内存地址提供64位内存地址空间,则在实际实施例中可以为仅需要此地址空间的48位,并因此需要虚拟地址空间的靠上16位全部为0或全部为1,否则将发生内存转换错误。
本技术可在具有运行提供多个虚拟机运行环境的程序指令的处理器的系统中使用。这些虚拟机运行环境可具有独立设定的页大小变量,以使得在相同硬件上操作并使用相同内存地址转换电路的不同虚拟机运行环境可具有不同页大小。
当使用提供虚拟机运行环境的系统时,虚拟机将其自身的转换数据储存在虚拟机转换表层级结构中,并且内存地址转换电路对虚拟机转换表的每一访问需要内存地址转换电路进行另一地址转换来识别基础物理地址。因此,若通过虚拟机转换表的页表移走为四级移走,则通过虚拟机转换表层级结构的每一级移走自身将需要执行多个页表移走来识别物理地址(例如,执行其它四级页表移走来识别下一虚拟机转换表的物理地址),由此快速增加了每当激活由上而下页表移走时所需的页表转换的总级数。因此,准许使用更大的页表并因此即使对于大内存地址空间而言也能减少需要执行的页表移走级数的本技术在被应用于提供虚拟机运行环境的系统时具有显著优势。
用于另一地址转换的页大小变量(其与对虚拟机转换表的每一访问相关)可使用独立于多个个虚拟机运行环境的页大小变量而设定的页大小变量。
在本发明的一些实施例中,提示数据可与较小页大小相关联以指示彼此连续地挨着位于虚拟内存内的多个这些较小页也彼此连续地挨着位于物理内存内,因此全部这些较小页可通过更大大小的页的单个虚拟至物理地址转换而被表示。当连续性提示数据在允许缓存虚拟地址至物理地址转换的机构识别这样的连续页何时出现并将所涉及的转换标记为具有有效的较大页大小的机构中有用,从而节省那些转换缓存机构(例如,转换后援缓冲器)的储存容量中的空间。在这样的实施例中,若所述有效的较大页大小对应于可由页大小变量选择的较大的不同大小的页,则尤其理想。
已发现实践中希望提供包括4kB及64kB(即对应于212及216)的页表大小。
本发明的另一方面提供一种用于处理数据之装置,其包含:
内存地址转换构件,用以使用储存在转换表侧记结构中的转换数据执行由上而下页表移走操作,以将虚拟内存地址转换为物理内存地址;其中
转换数据指定虚拟内存地址的2N个连续字节的页与物理内存地址的相应2N个连续字节的页之间的转换,其中N为正整数;
转换表层级结构包含大小为2N各个连续字节的转换表,以使得完整转换表被储存物理内存的一页中;
内存地址转换构件响应于指定N的当前值的页大小变量,控制内存地址转换电路以使用选定大小的物理内存地址、虚拟内存地址及转换表的页来进行操作;并且
所述虚拟地址中的从所述虚拟地址的最高有效位端起扩展的预定部分被固定转换为所述物理地址的相应部分而无需页表移走。
本发明的另一方面提供一种用于处理数据之方法,其包含以下步骤:
利用储存在转换表层级结构中的转换数据执行由上而下页表移走操作,以将虚拟内存地址转换为物理内存地址;其中
转换数据指定虚拟内存地址的2N个连续字节的页与物理内存地址的相应2N个连续字节的页之间的转换,其中N为正整数;
转换表层级机构包含大小为2N个连续字节的转换表,以使得完整转换表被储存在物理内存的一页中;
响应于指定N的当前值的页大小变量,使用选定大小的物理内存地址、虚拟内存地址及转换表的页来进行操作;并且
其中,所述虚拟地址中的从所述虚拟地址的最高有效位端起扩展的预定部分被固定转换为所述物理地址的相应部分而无需页表移走。
附图说明
现在将参考附图通过示例来描述本发明的实施例,在附图中:
图1示意地图示数据处理系统,该数据处理系统包括耦接至内存的处理器,其中该处理器包括内存地址转换电路;
图2示意地图示利用4kB转换表及64位地址的由上而下页表移走操作(updownpagetablewalkoperation);
图3示意地图示利用64kB转换表及64位内存地址的由上而下页表移走操作;
图4为示意地图示该内存地址转换电路在接收到要转换的虚拟地址后的操作的流程图;以及
图5示意地图示具有不同页大小的多个虚拟机运行环境的提供。
具体实施方式
图1图示意地图示数据处理系统2,数据处理系统2包含耦接至内存6的处理器4。该处理器4包括数据处理核心8、高速缓存10、加载储存单元(LSU)12及内存管理单元(MMU)14(内存地址转换电路)。内存6储存转换表16(也称为页表)及物理寻址页的数据18。
当运行程序指令时,数据处理核心8产生虚拟地址VA,虚拟地址VA由内存管理单元14转换为物理地址PA。内存管理单元14也可具有其它功能,诸如取决于特权的等级或与当前处理或内存页相关联的其它属性,而控制对内存的(一个或多个)特定页的访问。内存管理单元14包括转换后援缓冲器(TLB)20,转换后援缓冲器(TLB)20储存用于将最近使用的虚拟地址转换为物理地址的转换数据的高速缓存。当虚拟地址需要转换且所需转换信息未储存在转换后援缓冲器20内时,则内存管理单元14触发由上而下页表移走操作。此页表移走操作的起始点为进入转换表的入口点的内存地址。此入口点被储存在内存管理单元14内的转换表基址寄存器(TTBR)22中。
内存管理单元14还包括转换表基址控制寄存器(TTBCR)24,转换表基址控制寄存器可由处理核心8写入,且内存管理单元14包括储存页大小变量S的页大小字段(IS)26。移走此页大小变量S控制当内存管理单元14执行由上而下页表移走操作时的物理内存的页、虚拟内存的页及转换表的大小。转换表基址控制寄存器24还可被用于切换储存在转换表基址寄存器22中的值,由此将不同层级的转换表切换为使用及不使用。这些不同层级的页表中的每一者可具有与其自身相关联的页大小变量。因此,例如,支持多个虚拟运行环境的系统可具有指定4kB页大小及转换表大小的一组转换表以及具有64kB页大小及转换表大小的另一组转换表。
图2示意地图示六级由上而下页表移走,当页大小变量指定页大小及转换表大小为4kB时,在转换后援缓冲器20中发生失误后,即由内存管理单元14执行该由上而下页表移走。转换表基址寄存器22储存指向最高级转换表28的起始位置的地址。虚拟地址的最高有效七位用于提供对此转换表的索引,并识别指向第二级转换表32的起始地址的指针30。虚拟地址的随后九位接着用于对第二级表32的索引,以识别指向第三级表36的起始地址的指针34。此处理继续,虚拟地址接下来的九位部分索引至第四级转换表38、第五级转换表40及第六级转换表42。当最终索引操作进行至第六级表42时,所识别的入口44储存对应于要转换的虚拟地址的物理地址的最高有效52位,其中虚拟地址的最低有效12位用以形成将产生的物理地址的最低有效12位。由于虚拟地址的最低有效12位未转换,此对应于所执行的转换粒度,并因此对应于其间进行了转换的虚拟内存及物理内存的页大小。在该状况下,物理内存页的页大小及虚拟内存页的页大小为4kB。可以是最高次序页表在大小上较小,以提供与总内存地址空间的整体大小匹配的映射。
图2中图示的由上而下页表移走操作所恢复的转换数据被缓存在转换后援缓冲器20中,以使得当该转换数据保存在转换后援缓冲器20中时,若对相同虚拟地址页进行另一内存访问,则不必执行另一页表移走。
此外,第六级表42的入口44中存在连续性提示数据46。此提示数据指示对应于虚拟内存的连续页的物理内存页是否也以64kB的块连续位于物理内存中。若是,则对应于已执行的此转换而缓存回转换后援缓冲器20中的数据可被标示为指示所涉及的转换数据应用于16个连续虚拟页。这节省了转换后援缓冲器20中的储存空间。
图3示意地图示当页大小变量S指定物理内存地址的页、虚拟内存地址的页及转换表全部具有64kB的大小时所执行的四级由上而下页表移走操作。图3的由上而下页表移走操作在原理上与在图2中及上文论述的由上而下页表移走操作相似,除了在该状况下转换表具有64kB的大小之外。此更大大小的页表使得更大数量的指针48能够储存在每一转换表中,并因此使得每一转换表能够访问要转换的虚拟地址的更多位。因此,第二、第三及第四级页表访问操作可分别消耗虚拟地址的13位,并因此所需页表移走的级数可减少至四级以便执行完全的64位虚拟内存地址至物理内存地址的转换。应进一步注意,物理内存地址的页及虚拟内存地址的页在大小上的增加导致虚拟地址的最低有效16位不被转换,因为这是内存页大小粒度。此更大的粒度降低了需要转换为物理地址位的虚拟地址位的数目,并且有助于减少所需页表移走的级数。
图2及图3中还图示缩短的起始点50及起始点52。转换表基址控制寄存器24针对特定转换表组可指示:自虚拟地址的最高有效位端开始的虚拟地址部分必须全部为0或全部为1,否则将发生内存错误。在该状况下,由于虚拟地址的这些最高有效位将由内存管理单元14核对是否为固定值(诸如全部为0或全部为1),所以不必执行更高级的由上而下页表移走操作。在不需要完全64位虚拟地址空间的情形下,这以减少与这些页表移走操作相关联的延时(latency)的方式减少了页表移走的级数。
图4为示意地图示内存管理单元14的一个操作视图的流程图。在步骤54,内存管理单元等待要接收以用于转换的虚拟地址。当已接收到这样的虚拟地址时,步骤56判断转换表基址寄存器22在转换表基址控制寄存器24控制下所指向的当前活动转换表层级是否为具有4kB大小的层级。这可从页大小变量S读出。如此确定的页大小用来将内存管理单元14配置为在步骤58通过4kB转换表执行多达六级的页表移走,或在步骤60通过64kB转换表执行多达四级的页表移走。一旦所需页表已根据其转换表大小及内存页大小经过由上而下页表移走,则物理地址将产生。
应了解,图4的流程图已简化,并且在实践中,可执行诸如判断所需转换信息是否已储存在转换后援缓冲器20中的其它操作以及诸如判断对虚拟地址的访问请求是否具有适当等级的许可的其他操作。
图5示意地图示操作多个虚拟机运行环境的系统。在此系统中,超管理器(hypervisor)62负责向第一来客操作系统64及第二来客操作系统66提供虚拟机运行环境。这些来客操作系统中的每一者则管理其各自的应用程序68、70、72、74、76并与这些应用程序协作。超管理器62可以用一组转换表及其自身的页大小变量进行操作。不同虚拟机可具有其自身的页大小变量,该页大小变量独立于任何其它虚拟机及超管理器62而被设定。因此,图5中的第二来客操作系统66可为支持4kB页大小所需的旧有来客操作系统,因为其应用程序72、74、76采用此页大小。相反地,第一来客操作系统64及超管理器62可以用对应于64kB的内存页大小及转换表大小的页大小变量进行操作。这是更适合于更大地址空间(诸如可由64位地址寻址的那些地址空间)的页大小及转换表大小。

Claims (13)

1.一种用于处理数据的装置,其包含:
内存地址转换电路,该内存地址转换电路被配置为使用储存在转换表层级中的转换数据执行由上而下页表移走操作,以将虚拟内存地址转换为物理内存地址;其中
所述转换数据指定虚拟内存地址的2N个连续字节的页与相应物理内存地址的2N个连续字节的页之间的转换,其中N为正整数;
所述转换表层级包含大小为2N个连续字节的转换表,以使得完整转换表被储存在物理内存的一页中;并且
所述内存地址转换电路响应于指定N的当前值的页大小变量,控制所述内存地址转换电路以使用选定大小的物理内存地址、虚拟内存地址及转换表的页来进行操作,
其中,所述虚拟地址中的从所述虚拟地址的最高有效位端起扩展的预定部分被固定转换为所述物理地址的相应部分而无需页表移走。
2.如权利要求1所述的装置,包含处理器,所述处理器被配置为运行提供多个虚拟机运行环境的程序指令,对于这多个虚拟机运行环境中的每一者的页大小变量被配置为独立地被设定。
3.如权利要求2所述的装置,其中,所述虚拟机运行环境中的每一者具有储存在虚拟机转换表层级中的虚拟机转换数据,并且在地址转换期间所述内存地址转换电路对虚拟机转换表的每一访问需要所述内存地址转换电路的一另一地址转换来识别物理地址,并且所述另一地址转换使用被配置为独立于用于所述多个虚拟机运行环境的页大小变量而被设定的页大小变量。
4.如前述权利要求中的任一项所述的装置,其中,页大小变量的不同值指定2X字节的物理页大小及2Y字节的物理页大小,其中,X及Y为正整数并且X小于Y且所述转换数据包括连续性提示数据,所述连续性提示数据用于指定2X字节大小的2Y-X个物理页连续地位于物理地址空间中。
5.如权利要求1-3中任一项所述的装置,其中,所述页大小变量指定N的值为12及16中的一者。
6.如权利要求4所述的装置,其中,所述页大小变量指定N的值为12及16中的一者。
7.一种用于处理数据的装置,其包含:
内存地址转换构件,该内存地址转换构件用于使用储存在转换表层级中的转换数据执行由上而下页表移走操作,以将虚拟内存地址转换为物理内存地址;其中
所述转换数据指定虚拟内存地址的2N个连续字节的页与相应物理内存地址的2N个连续字节的页之间的转换,其中N为正整数;
所述转换表层级包含大小为2N个连续字节的转换表,以使得完整转换表被储存在物理内存的一页中;并且
所述内存地址转换构件响应于指定N的当前值的一页大小变量,控制所述内存地址转换电路以使用选定大小的之物理内存地址、虚拟内存地址及转换表的页来进行操作,
其中,所述虚拟地址中的从所述虚拟地址的最高有效位端起扩展的预定部分被固定转换为所述物理地址的相应部分而无需页表移走。
8.一种处理数据的方法,其包含以下步骤:
使用储存在转换表层级中的转换数据执行由上而下页表移走操作,以将虚拟内存地址转换为物理内存地址;其中
所述转换数据指定虚拟内存地址的2N个连续字节的页与相应物理内存地址的2N个连续字节的页之间的转换,其中N为正整数;
所述转换表层级包含大小为2N个连续字节的转换表,以使得完整转换表被储存在物理内存的一页中;以及
响应于指定的N的当前值的页大小变量,使用选定大小的物理内存地址、虚拟内存地址及转换表的页来进行操作,
其中,所述虚拟地址中的从所述虚拟地址的最高有效位端起扩展的预定部分被固定转换为所述物理地址的相应部分而无需页表移走。
9.如权利要求8所述的方法,包含提供多个虚拟机运行环境,对于这多个虚拟机运行环境中的每一者的页大小变量独立地被设定。
10.如权利要求9所述的方法,其中,所述虚拟机运行环境中的每一者具有储存在虚拟机转换表层级中的虚拟机转换数据,并且在地址转换期间所述内存地址转换电路对虚拟机转换表的每一访问需要另一地址转换来识别物理地址,并且所述另一地址转换使用独立于用于所述多个虚拟机运行环境的页大小变量而被设定的页大小变量。
11.如权利要求8至10中任一项所述的方法,其中,页大小变量的不同值指定2X字节的物理页大小及2Y字节的物理页大小,其中,X及Y为正整数并且X小于Y并且所述转换资料包括连续性提示数据,所述连续性提示数据用于指定2X字节大小的2Y-X个物理页连续地位于物理地址空间中。
12.如权利要求8至10中任一项所述的方法,其中,所述页大小变量指定N的值为12及16中的一者。
13.如权利要求11所述的方法,其中,所述页大小变量指定N的值为12及16中的一者。
CN201180010468.3A 2010-03-15 2011-02-08 用于处理数据的装置和方法 Active CN102792285B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1004294.3 2010-03-15
GB1004294.3A GB2478727B (en) 2010-03-15 2010-03-15 Translation table control
PCT/GB2011/050210 WO2011114120A1 (en) 2010-03-15 2011-02-08 Hierarchical translation tables control

Publications (2)

Publication Number Publication Date
CN102792285A CN102792285A (zh) 2012-11-21
CN102792285B true CN102792285B (zh) 2016-03-09

Family

ID=42261609

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180010468.3A Active CN102792285B (zh) 2010-03-15 2011-02-08 用于处理数据的装置和方法

Country Status (10)

Country Link
US (2) US8566563B2 (zh)
EP (1) EP2510444B1 (zh)
JP (1) JP5654056B2 (zh)
KR (1) KR101729503B1 (zh)
CN (1) CN102792285B (zh)
GB (1) GB2478727B (zh)
IL (1) IL220062A (zh)
MY (1) MY156692A (zh)
TW (1) TWI506426B (zh)
WO (1) WO2011114120A1 (zh)

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100138575A1 (en) 2008-12-01 2010-06-03 Micron Technology, Inc. Devices, systems, and methods to synchronize simultaneous dma parallel processing of a single data stream by multiple devices
US20100174887A1 (en) 2009-01-07 2010-07-08 Micron Technology Inc. Buses for Pattern-Recognition Processors
US9323994B2 (en) 2009-12-15 2016-04-26 Micron Technology, Inc. Multi-level hierarchical routing matrices for pattern-recognition processors
US9804870B2 (en) * 2011-10-28 2017-10-31 Intel Corporation Instruction-set support for invocation of VMM-configured services without VMM intervention
KR20130050156A (ko) * 2011-11-07 2013-05-15 한국전자통신연구원 가상 주소 공간 전환 장치
US9058284B1 (en) * 2012-03-16 2015-06-16 Applied Micro Circuits Corporation Method and apparatus for performing table lookup
US20130275709A1 (en) 2012-04-12 2013-10-17 Micron Technology, Inc. Methods for reading data from a storage buffer including delaying activation of a column select
US9753860B2 (en) * 2012-06-14 2017-09-05 International Business Machines Corporation Page table entry consolidation
US9811472B2 (en) * 2012-06-14 2017-11-07 International Business Machines Corporation Radix table translation of memory
US9092359B2 (en) 2012-06-14 2015-07-28 International Business Machines Corporation Identification and consolidation of page table entries
US9524248B2 (en) * 2012-07-18 2016-12-20 Micron Technology, Inc. Memory management for a hierarchical memory system
US10282286B2 (en) * 2012-09-14 2019-05-07 Micron Technology, Inc. Address mapping using a data unit type that is variable
US9058268B1 (en) 2012-09-20 2015-06-16 Matrox Graphics Inc. Apparatus, system and method for memory management
US9703574B2 (en) 2013-03-15 2017-07-11 Micron Technology, Inc. Overflow detection and correction in state machine engines
US9448965B2 (en) 2013-03-15 2016-09-20 Micron Technology, Inc. Receiving data streams in parallel and providing a first portion of data to a first state machine engine and a second portion to a second state machine
US9135200B2 (en) 2013-06-28 2015-09-15 Futurewei Technologies, Inc. System and method for extended peripheral component interconnect express fabrics
KR102130813B1 (ko) * 2013-10-08 2020-07-06 삼성전자주식회사 재구성 가능 프로세서 및 재구성 가능 프로세서를 동작하는 방법
US9954557B2 (en) * 2014-04-30 2018-04-24 Microsoft Technology Licensing, Llc Variable width error correction
GB2528842B (en) * 2014-07-29 2021-06-02 Advanced Risc Mach Ltd A data processing apparatus, and a method of handling address translation within a data processing apparatus
US10769099B2 (en) 2014-12-30 2020-09-08 Micron Technology, Inc. Devices for time division multiplexing of state machine engine signals
US10430210B2 (en) 2014-12-30 2019-10-01 Micron Technology, Inc. Systems and devices for accessing a state machine
US11366675B2 (en) 2014-12-30 2022-06-21 Micron Technology, Inc. Systems and devices for accessing a state machine
US9495303B2 (en) * 2015-02-03 2016-11-15 Intel Corporation Fine grained address remapping for virtualization
KR102473665B1 (ko) 2015-07-28 2022-12-02 삼성전자주식회사 스토리지 디바이스 및 스토리지 가상화 시스템
US10635596B2 (en) 2015-10-02 2020-04-28 Sony Interactive Entertainment Inc. Information processing device, access controller, information processing method, and computer program for accessing memory having access units of different sizes
US10977309B2 (en) 2015-10-06 2021-04-13 Micron Technology, Inc. Methods and systems for creating networks
US10691964B2 (en) 2015-10-06 2020-06-23 Micron Technology, Inc. Methods and systems for event reporting
US10846103B2 (en) 2015-10-06 2020-11-24 Micron Technology, Inc. Methods and systems for representing processing resources
US10528476B2 (en) * 2016-05-24 2020-01-07 International Business Machines Corporation Embedded page size hint for page fault resolution
US10146555B2 (en) 2016-07-21 2018-12-04 Micron Technology, Inc. Adaptive routing to avoid non-repairable memory and logic defects on automata processor
JP2018041204A (ja) * 2016-09-06 2018-03-15 東芝メモリ株式会社 メモリ装置及び情報処理システム
US10019311B2 (en) 2016-09-29 2018-07-10 Micron Technology, Inc. Validation of a symbol response memory
US10268602B2 (en) 2016-09-29 2019-04-23 Micron Technology, Inc. System and method for individual addressing
US10592450B2 (en) 2016-10-20 2020-03-17 Micron Technology, Inc. Custom compute cores in integrated circuit devices
US10929764B2 (en) 2016-10-20 2021-02-23 Micron Technology, Inc. Boolean satisfiability
CN107066267B (zh) * 2017-03-27 2021-09-07 网易(杭州)网络有限公司 页面尺寸处理方法、装置及设备
GB2563889B (en) * 2017-06-28 2019-10-09 Advanced Risc Mach Ltd Realm identifiers for realms for memory access control
US10713081B2 (en) * 2018-08-30 2020-07-14 Red Hat, Inc. Secure and efficient memory sharing for guests
US10761876B2 (en) 2018-11-21 2020-09-01 Microsoft Technology Licensing, Llc Faster access of virtual machine memory backed by a host computing device's virtual memory
US10901911B2 (en) * 2018-11-21 2021-01-26 Microsoft Technology Licensing, Llc Faster computer memory access by reducing SLAT fragmentation
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
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
JP7048650B2 (ja) * 2020-02-04 2022-04-05 キオクシア株式会社 メモリ装置及び方法
GB2595479B (en) * 2020-05-27 2022-10-19 Advanced Risc Mach Ltd Apparatus and method
CN112256598B (zh) * 2020-10-27 2022-10-28 上海壁仞智能科技有限公司 一种内存分配的方法及装置、内存寻址的方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4763250A (en) * 1985-04-01 1988-08-09 Motorola, Inc. Paged memory management unit having variable number of translation table levels
EP1182570A2 (en) * 2000-08-21 2002-02-27 Texas Instruments Incorporated TLB with resource ID field
CN101031893A (zh) * 2004-09-30 2007-09-05 英特尔公司 使用分层转换表对输入/输出设备的地址转换

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0520199A (ja) * 1991-07-17 1993-01-29 Mitsubishi Electric Corp 複数のmmuをサポートするメモリ管理方法
US5963984A (en) * 1994-11-08 1999-10-05 National Semiconductor Corporation Address translation unit employing programmable page size
US6418521B1 (en) * 1998-12-23 2002-07-09 Intel Corporation Hierarchical fully-associative-translation lookaside buffer structure
US6349380B1 (en) * 1999-03-12 2002-02-19 Intel Corporation Linear address extension and mapping to physical memory using 4 and 8 byte page table entries in a 32-bit microprocessor
US6442664B1 (en) * 1999-06-01 2002-08-27 International Business Machines Corporation Computer memory address translation system
JP2001051900A (ja) * 1999-08-17 2001-02-23 Hitachi Ltd 仮想計算機方式の情報処理装置及びプロセッサ
DE10127198A1 (de) * 2001-06-05 2002-12-19 Infineon Technologies Ag Vorrichtung und Verfahren zum Ermitteln einer physikalischen Adresse aus einer virtuellen Adresse unter Verwendung einer hierarchischen Abbildungsvorschrift mit komprimierten Knoten
US6523104B2 (en) * 2001-07-13 2003-02-18 Mips Technologies, Inc. Mechanism for programmable modification of memory mapping granularity
US7558939B2 (en) * 2005-03-08 2009-07-07 Mips Technologies, Inc. Three-tiered translation lookaside buffer hierarchy in a multithreading microprocessor
US7516297B2 (en) * 2005-11-10 2009-04-07 Hewlett-Packard Development Company, L.P. Memory management
US7610464B2 (en) * 2006-02-22 2009-10-27 Sony Computer Entertainment Inc. Methods and apparatus for providing independent logical address space and access management
TW200823923A (en) * 2006-11-23 2008-06-01 Genesys Logic Inc Caching method for address translation layer of flash memory
US7779214B2 (en) * 2007-07-18 2010-08-17 Qnx Software Systems Gmbh & Co. Kg Processing system having a supported page size information register

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4763250A (en) * 1985-04-01 1988-08-09 Motorola, Inc. Paged memory management unit having variable number of translation table levels
EP1182570A2 (en) * 2000-08-21 2002-02-27 Texas Instruments Incorporated TLB with resource ID field
CN101031893A (zh) * 2004-09-30 2007-09-05 英特尔公司 使用分层转换表对输入/输出设备的地址转换

Also Published As

Publication number Publication date
IL220062A0 (en) 2012-09-24
JP5654056B2 (ja) 2015-01-14
EP2510444B1 (en) 2015-07-08
US20140040529A1 (en) 2014-02-06
EP2510444A1 (en) 2012-10-17
TWI506426B (zh) 2015-11-01
WO2011114120A1 (en) 2011-09-22
GB2478727A (en) 2011-09-21
KR101729503B1 (ko) 2017-05-02
GB201004294D0 (en) 2010-04-28
US8799621B2 (en) 2014-08-05
TW201131355A (en) 2011-09-16
MY156692A (en) 2016-03-15
GB2478727B (en) 2013-07-17
CN102792285A (zh) 2012-11-21
JP2013522748A (ja) 2013-06-13
IL220062A (en) 2016-05-31
KR20130048206A (ko) 2013-05-09
US20110225389A1 (en) 2011-09-15
US8566563B2 (en) 2013-10-22

Similar Documents

Publication Publication Date Title
CN102792285B (zh) 用于处理数据的装置和方法
US5479627A (en) Virtual address to physical address translation cache that supports multiple page sizes
US7089398B2 (en) Address translation using a page size tag
US8151085B2 (en) Method for address translation in virtual machines
JP6367797B2 (ja) 階層メモリシステムのためのメモリ管理
US9244855B2 (en) Method, system, and apparatus for page sizing extension
CN109582214B (zh) 数据访问方法以及计算机系统
CN102662860B (zh) 用于进程切换的旁路转换缓冲器(tlb)及在其中地址匹配的方法
US7797509B2 (en) Systems and methods for utilizing an extended translation look-aside buffer having a hybrid memory structure
CN102662869B (zh) 虚拟机中的内存访问方法和装置及查找器
US9612975B2 (en) Page cache device and method for efficient mapping
WO2021061466A1 (en) Memory management unit, address translation method, and processor
EP3553665B1 (en) Non-volatile memory access method, device, and system
CN107870867B (zh) 32位cpu访问大于4gb内存空间的方法与装置
US20080040548A1 (en) Method for Processor to Use Locking Cache as Part of System Memory
US7290107B2 (en) Direct deposit using locking cache
US20070266199A1 (en) Virtual Address Cache and Method for Sharing Data Stored in a Virtual Address Cache
US20070255927A1 (en) Data access in a data processing system
KR960008320B1 (ko) 어드레스 변환장치 및 어드레스 변환방법
CN107870870B (zh) 访问超过地址总线宽度的内存空间
US20090024798A1 (en) Storing Data
CN114490441A (zh) 一种内存管理方法及混合内存管理单元

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