CN101606134A - 地址转换方法和设备 - Google Patents
地址转换方法和设备 Download PDFInfo
- Publication number
- CN101606134A CN101606134A CNA2008800043245A CN200880004324A CN101606134A CN 101606134 A CN101606134 A CN 101606134A CN A2008800043245 A CNA2008800043245 A CN A2008800043245A CN 200880004324 A CN200880004324 A CN 200880004324A CN 101606134 A CN101606134 A CN 101606134A
- Authority
- CN
- China
- Prior art keywords
- leaf
- memory page
- address
- information
- page
- 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
-
- 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/04—Addressing variable-length words or parts of words
-
- 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
- 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
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/655—Same page detection
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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
通过识别引起存储器中的不同页之间的边界跨越的地址且链接与两个存储器页相关联的地址转换信息而改进处理器内的地址转换性能。根据处理器的一个实施例,所述处理器包含经配置以辨识对跨越第一存储器页与第二存储器页之间的页边界的存储器区域的存取的电路。所述电路还经配置以链接与所述第一存储器页和第二存储器页相关联的地址转换信息。因此,响应于对相同存储器区域的后续存取,可基于单一地址转换来检索与所述第一存储器页和第二存储器页相关联的所述地址转换信息。
Description
技术领域
本发明大体上涉及地址转换,且特定来说,涉及转换产生存储器页边界跨越情况的虚拟地址。
背景技术
虚拟存储器是借以可能将非连续物理存储器(物理地址空间)作为连续存储器(虚拟地址空间)呈现给进程(软件)的存储器管理技术。即使所分配的物理存储器并不总是被循序地组织的(乃至在相同媒体中,例如,SDRAM和ROM),但由于其处理连续的虚拟地址空间,因此进程将存储器视作线性序列。另外,程序通常不知道物理存储器如何被分配。而是,处理器或其它装置常规上管理虚拟存储器分配。
存储器管理将物理存储器划分为多个页(或区段)且提供虚拟地址到实际物理存储器页上的映射,所述映射对于存取存储器的过程是透明的。过程仅观察虚拟地址空间,而物理地址空间为对应数据实际上驻存于存储器中的地方。处理器常规上使用地址转换将虚拟地址空间映射到物理地址空间上。地址转换涉及基于给定虚拟地址查找物理地址。虚拟地址常规上被划分为至少两部分:虚拟页号和页偏移。虚拟页号识别虚拟存储器的特定页。页偏移识别页内的所要区域(或块)。
主存储器中所维持的页表常规上存储虚拟页号和对应物理页号的列表。使用虚拟地址的虚拟页号部分来搜索页表。如果虚拟页号与页表中的条目匹配,则从表检索对应的物理页号。否则,出现页表错误。所检索的物理页号与页偏移一起形成用于从存储器检索信息的物理地址。页号识别物理存储器的适当页。随后使用页偏移来存取页内的所要存储器区域。
为了改进性能,频繁存取的页表条目在本地存储到处理器,例如,转换旁视缓冲器(TLB)中。TLB可支持单级本地高速缓冲存储器或多个高速缓冲存储器级,例如,一级指令和数据高速缓冲存储器和二级高速缓冲存储器。在任何情况下,TLB以与页表执行的方式大致相同的方式执行地址转换。如果在使用虚拟页号的TLB查找期间出现匹配,则从TLB检索对应的物理页号且与页偏移一起提供到物理标记的高速缓冲存储器。如果物理地址在高速缓冲存储器中命中,则从高速缓冲存储器检索对应于物理地址的高速缓冲存储器线。否则,可出现较高级高速缓冲存储器查找。
虚拟存储器使得程序能够执行而不需要其全部地址空间驻存于物理存储器中。因此,可使用比实际所需少的物理存储器来执行程序。此外,由于每一程序的虚拟地址空间可独立地映射到物理存储器的专门分配到那个程序的一个或一个以上页,因此虚拟存储器使程序彼此隔离。而且,由于应用程序不对存储器管理负责,因此简化了应用程序。然而,某些类型的存储器存取需要额外的地址转换处理以成功地完成。
举例来说,当出现未对准的存储器存取时,所要字部分位于一个存储器行中且部分位于另一存储器行中。如果两行被分配到不同存储器页,则出现页边界跨越。参考存储器中的跨越两个存储器页之间的边界的区域的指令常规上被复制且以两部分执行。经复制指令的第一页片基于与第一存储器页相关联的物理地址完成执行,且经复制指令的第二页片基于与第二存储器页相关联的地址完成执行。因此,通过复制指令单独存取不同存储器页。
常规上需要多个地址转换以获得与不同存储器页相关联的物理存储器地址。执行第一地址转换以检索与第一存储器页相关联的物理地址且执行第二地址转换以检索与第二存储器页相关联的物理地址。产生边界跨越情况的指令所需的额外地址转换处理降低了处理器性能且增加了功率消耗,尤其在需要存取主存储器中所维持的页表时。
发明内容
根据本文中所教示的方法和设备,通过识别引起存储器中的不同页之间的边界跨越的虚拟或物理地址来改进处理器内的地址转换性能。即,如果指令将引起也跨越页边界的未对准的存储器存取,则识别指令。当辨识此情况时,将与两个存储器页相关联的地址转换信息链接在一起且存储于处理器内。可响应于随后存取存储器中的相同跨页区域而使用单一地址转换来获得与两个页相关联的地址转换信息。因此,避免多个地址转换。
根据处理器的一个实施例,所述处理器包含经配置以辨识对存储器中的跨越第一存储器页与第二存储器页之间的页边界的区域的存取的电路。所述电路还经配置以链接与第一存储器页和第二存储器页相关联的地址转换信息。因此,响应于对相同存储器区域的后续存取,可基于单一地址转换来检索与第一存储器页和第二存储器页相关联的地址转换信息。
当随后存取存储器中的相同区域时,处理器电路辨识对应指令且将由指令呈现的虚拟地址转换为与第一存储器页相关联的物理地址。电路基于将虚拟地址链接到与第二存储器页相关联的物理地址的先前所建立信息来检索与第二存储器页相关联的物理地址。因此,基于单一地址转换来检索与第一存储器页和第二存储器页相关联的地址转换信息。
当然,本发明不限于以上特征和优点。所属领域的技术人员在阅读详细描述且在观看附图后将认识到额外特征和优点。
附图说明
图1为说明具有用于在地址转换期间跟踪页边界跨越的电路的处理器的实施例的框图。
图2为说明图1的跨页跟踪电路的一个实施例的框图。
图3为说明用于将地址转换信息存储于图1的跨页跟踪电路中的程序逻辑的实施例的逻辑流程图。
图4为说明用于从图1的跨页跟踪电路检索地址转换信息的程序逻辑的实施例的逻辑流程图。
图5为说明图1的跨页跟踪电路的另一实施例的框图。
具体实施方式
图1说明处理器10的实施例,处理器10包括指令单元12、执行单元14、数据高速缓冲存储器16和指令高速缓冲存储器18、二级高速缓冲存储器20和总线接口单元22。指令单元12将指令流的集中控制提供到执行单元14。执行单元14执行由指令单元12派遣的指令,其包括将信息加载并存储于数据高速缓冲存储器16中。数据高速缓冲存储器16和指令高速缓冲存储器18分别存储数据和指令。L2高速缓冲存储器20在数据高速缓冲存储器16和指令高速缓冲存储器18与处理器外部的主存储器(例如DRAM24)和/或一个或一个以上硬盘驱动器(HDD)26之间提供高速存储器缓冲器。总线接口单元22提供用于在处理器10与处理器外部的装置(例如外围装置28和主存储器)之间传递数据、指令、地址和控制信号的机构。
主存储器被表示为处理器10上运行的程序的虚拟存储器。即,主存储器的页被分配为虚拟存储器以供程序执行期间由程序使用。存储器管理将物理存储器划分为多个页,且提供虚拟地址到物理存储器页上的映射,其对于存取存储器的程序是透明的。页表(未图示)维持在主存储器中以用于实现虚拟存储器地址与物理存储器地址之间的映射。存储器管理单元(MMU)30或包括于处理器10中的类似装置将频繁或最近参考的页表条目维持在处理器10本地处以用于改进地址转换性能。
为此,包括于MMU 30中或与MMU 30相关联的转换旁视缓冲器(TLB)32存储最频繁或最近存取的页表条目。由TLB 32在处理器10内在本地执行地址转换。如果TLB条目与给定虚拟页号匹配,则TLB 32提供对应的物理页号。否则,经由维持于主存储器中的页表通常由操作系统软件来执行较高级地址转换。包括于MMU 30中或与MMU 30相关联的跨页跟踪器34通过减少经执行以协调跨越存储器页边界的未对准的存储器存取的地址转换数目来改进地址转换性能。
跨页跟踪器34存储与产生页边界跨越情况的一个或一个以上虚拟地址或物理地址相关联的地址转换信息。即,如果由处理器10执行的指令参考跨越两个物理存储器页之间的边界的存储器区域,则跨页跟踪器34存储与第二存储器页相关联的地址转换信息,例如,识别第二存储器页的物理地址或页号和到虚拟地址的链接。由此,如果后续指令参考相同地址,则跨页跟踪器34能够辨识地址且提供对应的物理地址信息。因此,TLB 32仅执行一个地址转换以检索与第一存储器页相关联的物理页号。从跨页跟踪器34非转换地检索与第二存储器页相关联的物理页号。即,从跨页跟踪器34检索与第二存储器页相关联的物理页号来取代必须执行第二地址转换。指令基于各自物理地址而被复制且以两部分执行。如果指令促使若干高速缓冲存储器线在高速缓冲存储器16、18、22中的一者中跨越,则可多次复制指令。
图2说明跨页跟踪器34和包括于处理器10中的若干负载存储单元级(即,执行单元14中的一者)的一个实施例。根据此实施例,跨页跟踪器34包含用于存储与产生页边界跨越情况的地址相关联的地址转换信息的寄存器。或者,跨页跟踪器34可为具有多个条目的表。总之,跨页跟踪器34通过存储与引起页边界跨越的至少一个虚拟或物理地址相关联的地址转换信息来减少地址转换处理。
接下来参考图3的程序逻辑和由最初不与TLB 32中的任何条目匹配的指令所呈现的虚拟地址来描述跨页跟踪器34的操作。因而,执行较高级地址转换以获得对应于虚拟地址的物理地址。更详细来说,虚拟地址可包含虚拟页号和偏移。虚拟页号识别特定虚拟存储器页,而页偏移识别页内的位置。由于在此实例中最初不存在匹配的TLB条目,因此一级地址转换级36指示需要较高级地址转换,例如,如由图3的块100说明。较高级地址转换级38(例如)通过存取包括于处理器10中的较高级TLB(未图示)或维持于主存储器中的页表来请求虚拟地址的转换。总之,最终获得与虚拟地址相关联的物理地址。
地址转换信息存储于TLB条目中,例如,如由图3的块102说明。由此,在随后请求相同虚拟地址的情况下,可更易得到地址转换信息。在一个实施例中,例如多路复用器电路等物理地址选择级40或已知虚拟地址的任何其它级还确定虚拟地址是否转换到跨越两个页之间的边界的物理存储器区域,例如,如由图3的块104说明。举例来说,将虚拟地址的页偏移部分与存储器页大小设置进行比较以确定是否将出现页边界跨越。如果地址转换到位于单个存储器页内的存储器区域,则基于所转换的物理地址完成指令执行,例如,如由图3的块106说明。举例来说,高速缓冲存储器存取级42确定数据高速缓冲存储器16或L2高速缓冲存储器20是否含有由物理地址标记的线,且如果不含有,则从外部存储器检索所述线。
然而,如果虚拟地址参考横跨多个存储器页的存储器区域,则指令复制级44复制指令,例如,如由图3的块108说明。举例来说,如果地址参考具有位于一个物理存储器页中的四个字节和位于另一页中的四个字节的四倍长字,则先前所转换的物理地址用于检索驻存于第一存储器页中的四个字节。为了检索位于第二存储器页中的四个字节,由较高级地址转换级38来获得识别第二页的物理地址,例如,如由图3的块110说明。所复制指令的第一页片基于识别第一存储器页的物理地址来完成执行,例如,如由图3的块112说明。所复制指令的第二页片基于识别第二存储器页的物理地址来完成执行,例如,如由图3的块114说明。写回级46确保指令执行结果的适当存储。
由于检测到页边界跨越,因此存储针对第二存储器页而获得的地址转换信息以用于随后使用。然而,不再将信息存储于不同的TLB条目中,将其存储于跨页跟踪器34的物理地址字段48中,例如,如由图3的块116说明。此外,指示符值存储于指示符字段50中。指示符值将含有第二页的地址转换信息的跨页跟踪器条目链接到含有第一页的地址转换信息的TLB条目。
在一个实施例中,指示符字段50存储含有与第一存储器页相关联的地址转换信息的TLB条目的索引值。在另一实施例中,指示符字段50存储与第一存储器页相关联的物理地址或页号。在又一实施例中,指示符字段50存储产生边界跨越情况的虚拟地址。所属领域的技术人员将容易认识到广泛多种值可存储于指示符字段50中以链接物理地址信息48与和第一存储器页相关联的TLB条目。另外,指令复制级44替代于物理地址选择级40而可(例如)通过识别引起页边界跨越的物理地址来识别页边界跨越。无论如何,如果随后存取存储器中的相同区域,则跨页跟踪器34通过检查指示符字段50来辨识边界跨越情况。作为响应,跟踪器34提供与第二页相关联的地址转换信息。
接下来参考图4的程序逻辑和呈现引起了先前所论述的边界跨越情况的相同虚拟地址的后续指令来描述跨页跟踪器34的操作。因为在此实例中TLB 32含有匹配的条目,所以由TLB 32提供与虚拟地址相关联的物理地址或页号,例如,如由图4的块200说明。物理地址选择级40确定虚拟地址是否参考存储器中的跨越页边界的区域,例如,如由图4的块202说明。或者,指令复制级44确定对应的物理地址是否引起页边界跨越情况。无论如何,如果未检测到边界跨越情况,则指令基于由TLB 32提供的物理地址信息来完成执行,例如,如由图4的块204说明。
然而,在本实例中,已知虚拟地址引起第一存储器页与第二存储器页之间的页边界跨越。因此,如先前所述复制指令,例如,如由图4的块206说明。另外,检查跨页跟踪器34的指示符字段50以确定是否已形成与虚拟地址的链接。在一个实施例中,将匹配的TLB条目索引与存储于指示符字段50中的一个或一个以上值进行比较。在另一实施例中,将由TLB 32提供的虚拟地址或对应的物理地址(或页号)与存储于指示符字段50中的一个或一个以上地址值进行比较。
无论如何,存储于指示符字段50中的信息指示跟踪器34是否含有所要物理地址信息。除非有效字段52指示条目无效,否则从跨页跟踪器34中检索与第二页相关联的物理地址信息,例如,如由图4的块208说明。当TLB中的对应条目无效时,有效字段52指示无效。
所复制指令的第一页片基于如由TLB 32提供的识别第一存储器页的物理地址来完成执行,例如,如由图4的块210说明。所复制指令的第二页片基于如从跨页跟踪器34中检索的识别第二存储器页的物理地址来完成执行,例如,如由图4的块212说明。当跨页跟踪器34含有用于第二页的地址转换信息时,电路(未图示)防止后续地址转换的发生。因此,当跨页跟踪器34辨识页边界跨越情况时仅执行单一地址转换。
图5说明跨页跟踪器34的另一实施例。根据此实施例,跟踪器34经实施为TLB 32的部分。TLB 32中的每一条目具有有效字段54、指示符字段56、索引58、标记字段60和两个物理地址字段62和64。标记字段60存储其物理地址信息由TLB 32维持的那些虚拟地址的虚拟地址(或页号)。因而,在TLB存取期间搜索标记字段60以确定匹配给定虚拟地址的记录是否存储于TLB 32中。
第一物理地址字段62含有对应于具有由TLB 32维持的记录的每一虚拟地址的物理地址信息(例如完整地址或物理页号)。如果已知特定虚拟地址引起两个存储器页之间的边界跨越,则第二物理地址字段64含有与第二存储器页相关联的物理地址信息。当对应的TLB条目与产生边界跨越情况的虚拟地址相关联时,指示符字段56含有链接两个物理地址字段62和64的一个或一个以上位。
接下来参考由最初不与TLB 32中的任何条目匹配的指令所呈现的虚拟地址来描述被实施为TLB 32的部分的跨页跟踪器34的操作。执行较高级地址转换以获得对应于虚拟地址的物理地址,例如,如由图3的块100说明。用转换结果更新对应的TLB条目中的物理地址字段62,例如,如由图3的块102说明。如果物理地址选择级40确定虚拟地址将在存储器存取期间引起两个存储器页之间的边界跨越,则执行第二较高级地址转换。或者,指令复制级44可基于对应的物理地址来检测页边界跨越情况。无论如何,在第二较高级地址转换期间获得识别第二存储器页的物理地址,例如,如由图3的块110说明。由此,两个页的物理地址信息可用于完成指令执行。
如先前所述复制指令且使用两个物理存储器地址来完成执行,例如,如由图3的块108、112和114说明。此外,与第二存储器页相关联的物理地址信息存储于含有与第一页相关联的物理地址信息的相同TLB条目中,例如,如由图3的块116说明。即,在相同TLB条目中,与第一页相关联的物理地址信息存储于第一地址字段62中且与第二页相关联的物理地址信息存储于第二地址字段64中。设置TLB条目中的指示符字段56以指示两个物理地址经链接且与产生页边界跨越情况的虚拟地址相关联。由此,如果后续指令参考相同的虚拟或物理地址,则仅需要单一地址转换来获得与第一存储器页和第二存储器页相关联的物理地址信息。
接下来参考存取产生了先前所描述的边界跨越情况的相同虚拟地址的后续指令来描述被实施为TLB 32的部分的跨页跟踪器34的操作。当存取TLB 32时,通过将虚拟地址与存储于TLB 32中的标记值进行比较来识别匹配的条目,例如,如由图4的块200说明。在本实例中,已知所述虚拟地址引起第一存储器页与第二存储器页之间的页边界跨越。因此,如先前所述复制指令,例如,如由图4的块206说明。另外,匹配的TLB条目的第一地址字段62提供与第一存储器页相关联的物理地址信息。基于从第一地址字段62所获得的物理地址信息来完成所复制指令的第一页片的执行,例如,如由图4的块210说明。
此外,匹配的TLB条目中的指示符字段56指示第一物理地址字段62和第二物理地址字段64经链接。因此,检索存储于第二地址字段64中的物理地址信息,例如,如由图4的块208说明。从第二地址字段64检索到的物理地址信息识别第二存储器页。基于从第二地址字段64所获得的物理地址信息来完成所复制指令的第二页片的执行,例如,如由图4的块212说明。由此,在后续指令的执行期间仅执行单一地址转换。
如先前所述,如果有效字段54指示TLB条目无效,则不执行地址转换,且较高级地址转换级38获得必要的物理地址,例如,如由图3的块100和110说明。另外,指示符字段56也可响应于影响正更新的地址转换或正盖写的TLB条目的经架构寄存器而指示两个存储器页之间的链接无效。当遇到无效跨页链接时,不使用与所链接页相关联的地址转换信息。而是,执行后续的地址转换。
通过牢记以上范围的变化和应用,应理解,本发明不受以上描述的限制,也不受附图的限制。而是,本发明仅由所附权利要求书和其合法等效物来限制。
Claims (28)
1.一种在处理器中处置未对准的存储器存取的方法,其包含:
辨识对存储器中的跨越第一存储器页与第二存储器页之间的页边界的区域的存取;以及
链接与所述第一存储器页和第二存储器页相关联的地址转换信息,其中响应于对存储器中的相同区域的后续存取,可基于单一地址转换来检索与所述第一存储器页和第二存储器页相关联的所述地址转换信息。
2.根据权利要求1所述的方法,其中辨识所述存取包含:识别经配置以在存储器存取期间引起所述页边界跨越的地址。
3.根据权利要求2所述的方法,其中链接与所述第一存储器页和第二存储器页相关联的地址转换信息包含:将所述地址链接到与所述第二存储器页相关联的所述地址转换信息。
4.根据权利要求2所述的方法,其进一步包含复制呈现了所述地址的指令,其中基于与所述第一存储器页相关联的物理地址来完成所述指令的执行,且基于与所述第二存储器页相关联的物理地址来完成所述所复制指令的执行。
5.根据权利要求1所述的方法,其中链接与所述第一存储器页和第二存储器页相关联的地址转换信息包含:
将与所述第一存储器页相关联的虚拟地址信息和物理地址信息存储于转换旁视缓冲器条目中;以及
将所述转换旁视缓冲器条目链接到与所述第二存储器页相关联的物理地址信息。
6.根据权利要求5所述的方法,其中将所述转换旁视缓冲器条目链接到与所述第二存储器页相关联的物理地址信息包含:存储与所述第二存储器页相关联的所述物理地址信息和识别所述转换旁视缓冲器条目的信息。
7.根据权利要求5所述的方法,其中将所述转换旁视缓冲器条目链接到与所述第二存储器页相关联的物理地址信息包含:
将与所述第一存储器页相关联的所述虚拟地址信息和物理地址信息和与所述第二存储器页相关联的所述物理地址信息存储于所述转换旁视缓冲器条目中;以及
设置所述转换旁视缓冲器条目中的一个或一个以上位以用于指示与所述第一存储器页相关联的虚拟地址引起了所述页边界跨越。
8.根据权利要求1所述的方法,其进一步包含断开与所述第一存储器页和第二存储器页相关联的所述地址转换信息之间的所述链接。
9.根据权利要求8所述的方法,其中断开所述链接包含:使将与所述第二存储器页相关联的物理地址信息链接到与所述第一存储器页相关联的虚拟地址信息的信息无效。
10.一种处理器,其包含经配置以执行以下操作的电路:
辨识对跨越第一存储器页与第二存储器页之间的页边界的存储器区域的存取;以及
链接与所述第一存储器页和第二存储器页相关联的地址转换信息,其中响应于对相同存储器区域的后续存取,与所述第一存储器页和第二存储器页相关联的所述地址转换信息可基于单一地址转换而检索。
11.根据权利要求10所述的处理器,其中所述电路经配置以识别经配置以在存储器存取期间引起所述页边界跨越的地址。
12.根据权利要求11所述的处理器,其中所述电路经配置以将所述地址链接到与所述第二存储器页相关联的所述地址转换信息。
13.根据权利要求11所述的处理器,其中所述电路进一步经配置以复制呈现了所述地址的指令,其中所述指令的执行是基于与所述第一存储器页相关联的物理地址而完成,且所述所复制指令的执行是基于与所述第二存储器页相关联的物理地址而完成。
14.根据权利要求10所述的处理器,其中所述电路经配置以将与所述第一存储器页相关联的虚拟地址信息和物理地址信息存储于转换旁视缓冲器条目中。
15.根据权利要求14所述的处理器,其中所述电路经配置以存储与所述第二存储器相关联的物理地址信息和识别所述转换旁视缓冲器条目的信息。
16.根据权利要求14所述的处理器,其中所述电路经配置以将与所述第一存储器页相关联的所述虚拟地址信息和物理地址信息以及与所述第二存储器页相关联的物理地址信息存储于所述转换旁视缓冲器条目中,且设置所述转换旁视缓冲器条目中的一个或一个以上位以用于指示与所述第一存储器页相关联的虚拟地址引起了所述页边界跨越。
17.根据权利要求10所述的处理器,其中所述电路进一步经配置以断开与所述第一存储器页和第二存储器页相关联的所述地址转换信息之间的所述链接。
18.根据权利要求17所述的处理器,其中所述电路经配置以使将与所述第二存储器页相关联的物理地址信息链接到与所述第一存储器页相关联的虚拟地址信息的信息无效。
19.一种在处理器中执行地址转换的方法,其包含:
辨识经配置以存取存储器中的跨越第一存储器页与第二存储器页之间的页边界的区域的指令;
将由所述指令呈现的虚拟地址转换为与所述第一存储器页相关联的物理地址;以及
基于将所述虚拟地址链接到与所述第二存储器页相关联的物理地址的先前建立的信息来检索与所述第二存储器页相关联的所述物理地址。
20.根据权利要求19所述的方法,其进一步包含复制所述指令,其中基于与所述第一存储器页相关联的所述物理地址来完成所述指令的执行,且基于与所述第二存储器页相关联的所述物理地址来完成所述所复制指令的执行。
21.根据权利要求19所述的方法,其中转换所述虚拟地址包含:
识别对应于所述虚拟地址的转换旁视缓冲器条目;以及
从所述转换旁视缓冲器条目中检索与所述第一存储器页相关联的所述物理地址。
22.根据权利要求21所述的方法,其中检索与所述第二存储器页相关联的所述物理地址包含:
确定所述先前建立的信息是否与存储于所述转换旁视缓冲器条目中的对应信息匹配;以及
响应于所述信息匹配来检索地址转换信息。
23.根据权利要求21所述的方法,其中检索与所述第二存储器页相关联的所述物理地址包含:
确定所述转换旁视缓冲器条目中的一个或一个以上位是否指示所述第一存储器页与第二存储器页之间的链接;以及
响应于所述一个或一个以上位指示所述第一存储器页与第二存储器页之间的链接而从含有与所述第一存储器页相关联的所述物理地址的所述转换旁视缓冲器条目中检索地址转换信息。
24.一种处理器,其包含经配置以执行以下操作的电路:
辨识经配置以存取存储器中的跨越第一存储器页与第二存储器页之间的页边界的区域的指令;
将由所述指令呈现的虚拟地址转换为与所述第一存储器页相关联的物理地址;以及
基于将所述虚拟地址链接到与所述第二存储器页相关联的物理地址的先前建立的信息来检索与所述第二存储器页相关联的所述物理地址。
25.根据权利要求24所述的处理器,其中所述电路进一步经配置以复制所述指令,其中所述指令的执行是基于与所述第一存储器页相关联的所述物理地址而完成,且所述所复制指令的执行是基于与所述第二存储器页相关联的所述物理地址而完成。
26.根据权利要求24所述的处理器,其中所述电路经配置以识别对应于所述虚拟地址的转换旁视缓冲器条目,且从所述转换旁视缓冲器条目中检索与所述第一存储器页相关联的所述物理地址。
27.根据权利要求26所述的处理器,其中所述电路经配置以确定所述先前建立的信息是否与存储于所述转换旁视缓冲器条目中的对应信息匹配,且响应于所述信息匹配来检索地址转换信息。
28.根据权利要求26所述的处理器,其中所述电路经配置以确定所述转换旁视缓冲器条目中的一个或一个以上位是否指示所述第一存储器页与第二存储器页之间的链接,且响应于所述一个或一个以上位指示所述第一存储器页与第二存储器页之间的链接而从含有与所述第一存储器页相关联的所述物理地址的所述转换旁视缓冲器条目中检索地址转换信息。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/672,066 US8239657B2 (en) | 2007-02-07 | 2007-02-07 | Address translation method and apparatus |
US11/672,066 | 2007-02-07 | ||
PCT/US2008/053338 WO2008098140A1 (en) | 2007-02-07 | 2008-02-07 | Address translation method and apparatus |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101606134A true CN101606134A (zh) | 2009-12-16 |
CN101606134B CN101606134B (zh) | 2013-09-18 |
Family
ID=39495104
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008800043245A Expired - Fee Related CN101606134B (zh) | 2007-02-07 | 2008-02-07 | 地址转换方法和设备 |
Country Status (12)
Country | Link |
---|---|
US (1) | US8239657B2 (zh) |
EP (1) | EP2118753B1 (zh) |
JP (2) | JP2010518519A (zh) |
KR (1) | KR101057526B1 (zh) |
CN (1) | CN101606134B (zh) |
BR (1) | BRPI0806994A2 (zh) |
CA (1) | CA2675702A1 (zh) |
IN (1) | IN2014MN01739A (zh) |
MX (1) | MX2009007982A (zh) |
RU (1) | RU2461870C2 (zh) |
TW (1) | TWI381275B (zh) |
WO (1) | WO2008098140A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103339618A (zh) * | 2011-02-02 | 2013-10-02 | 美光科技公司 | 用于存取面向块的非易失性存储器的控制布置和方法 |
CN104871144A (zh) * | 2012-12-20 | 2015-08-26 | 高通股份有限公司 | 使用虚拟地址到物理地址跨页缓冲器的推测性寻址 |
CN110019248A (zh) * | 2017-09-29 | 2019-07-16 | 英特尔公司 | 用于动态多存储格式数据库访问的技术 |
CN110073338A (zh) * | 2016-12-23 | 2019-07-30 | 超威半导体公司 | 翻译旁视缓冲器中的可配置的偏斜关联性 |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10387324B2 (en) | 2011-12-08 | 2019-08-20 | Intel Corporation | Method, apparatus, and system for efficiently handling multiple virtual address mappings during transactional execution canceling the transactional execution upon conflict between physical addresses of transactional accesses within the transactional execution |
US9460018B2 (en) | 2012-05-09 | 2016-10-04 | Qualcomm Incorporated | Method and apparatus for tracking extra data permissions in an instruction cache |
RU2504000C1 (ru) * | 2012-07-20 | 2014-01-10 | Открытое акционерное общество "КОНСТРУКТОРСКОЕ БЮРО "КОРУНД-М" (ОАО КБ "КОРУНД-М") | Способ копирования данных в кэш-памяти и устройство для его осуществления |
US8819342B2 (en) | 2012-09-26 | 2014-08-26 | Qualcomm Incorporated | Methods and apparatus for managing page crossing instructions with different cacheability |
US9355040B2 (en) | 2012-10-08 | 2016-05-31 | International Business Machines Corporation | Adjunct component to provide full virtualization using paravirtualized hypervisors |
US9280488B2 (en) | 2012-10-08 | 2016-03-08 | International Business Machines Corporation | Asymmetric co-existent address translation structure formats |
US9355032B2 (en) | 2012-10-08 | 2016-05-31 | International Business Machines Corporation | Supporting multiple types of guests by a hypervisor |
US9740624B2 (en) | 2012-10-08 | 2017-08-22 | International Business Machines Corporation | Selectable address translation mechanisms within a partition |
US9600419B2 (en) | 2012-10-08 | 2017-03-21 | International Business Machines Corporation | Selectable address translation mechanisms |
US9348757B2 (en) | 2012-10-08 | 2016-05-24 | International Business Machines Corporation | System supporting multiple partitions with differing translation formats |
KR102002900B1 (ko) | 2013-01-07 | 2019-07-23 | 삼성전자 주식회사 | 메모리 관리 유닛을 포함하는 시스템 온 칩 및 그 메모리 주소 변환 방법 |
US20140310500A1 (en) * | 2013-04-11 | 2014-10-16 | Advanced Micro Devices, Inc. | Page cross misalign buffer |
US9632948B2 (en) * | 2014-09-23 | 2017-04-25 | Intel Corporation | Multi-source address translation service (ATS) with a single ATS resource |
US11442760B2 (en) | 2016-07-01 | 2022-09-13 | Intel Corporation | Aperture access processors, methods, systems, and instructions |
US20190163642A1 (en) | 2017-11-27 | 2019-05-30 | Intel Corporation | Management of the untranslated to translated code steering logic in a dynamic binary translation based processor |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5060137A (en) * | 1985-06-28 | 1991-10-22 | Hewlett-Packard Company | Explicit instructions for control of translation lookaside buffers |
US5768575A (en) * | 1989-02-24 | 1998-06-16 | Advanced Micro Devices, Inc. | Semi-Autonomous RISC pipelines for overlapped execution of RISC-like instructions within the multiple superscalar execution units of a processor having distributed pipeline control for sepculative and out-of-order execution of complex instructions |
JPH05298186A (ja) * | 1992-04-20 | 1993-11-12 | Nec Corp | 情報処理装置 |
DE69428881T2 (de) | 1994-01-12 | 2002-07-18 | Sun Microsystems, Inc. | Logisch adressierbarer physikalischer Speicher für ein Rechnersystem mit virtuellem Speicher, das mehrere Seitengrössen unterstützt |
US5765022A (en) * | 1995-09-29 | 1998-06-09 | International Business Machines Corporation | System for transferring data from a source device to a target device in which the address of data movement engine is determined |
US5734881A (en) * | 1995-12-15 | 1998-03-31 | Cyrix Corporation | Detecting short branches in a prefetch buffer using target location information in a branch target cache |
JP2000010863A (ja) * | 1998-06-24 | 2000-01-14 | Sony Computer Entertainment Inc | 情報処理装置および方法、並びに提供媒体 |
US6681311B2 (en) * | 2001-07-18 | 2004-01-20 | Ip-First, Llc | Translation lookaside buffer that caches memory type information |
US7363474B2 (en) | 2001-12-31 | 2008-04-22 | Intel Corporation | Method and apparatus for suspending execution of a thread until a specified memory access occurs |
CN100495319C (zh) * | 2003-12-23 | 2009-06-03 | 凌阳科技股份有限公司 | 处理器中读取未对齐资料的方法与装置 |
US7340582B2 (en) | 2004-09-30 | 2008-03-04 | Intel Corporation | Fault processing for direct memory access address translation |
US7334107B2 (en) | 2004-09-30 | 2008-02-19 | Intel Corporation | Caching support for direct memory access address translation |
US20060174066A1 (en) * | 2005-02-03 | 2006-08-03 | Bridges Jeffrey T | Fractional-word writable architected register for direct accumulation of misaligned data |
US7366869B2 (en) * | 2005-03-17 | 2008-04-29 | Qualcomm Incorporated | Method and system for optimizing translation lookaside buffer entries |
US20060248279A1 (en) * | 2005-05-02 | 2006-11-02 | Al-Sukhni Hassan F | Prefetching across a page boundary |
US7404042B2 (en) * | 2005-05-18 | 2008-07-22 | Qualcomm Incorporated | Handling cache miss in an instruction crossing a cache line boundary |
-
2007
- 2007-02-07 US US11/672,066 patent/US8239657B2/en not_active Expired - Fee Related
-
2008
- 2008-02-07 EP EP08729314.8A patent/EP2118753B1/en not_active Not-in-force
- 2008-02-07 RU RU2009133295/08A patent/RU2461870C2/ru not_active IP Right Cessation
- 2008-02-07 JP JP2009549240A patent/JP2010518519A/ja active Pending
- 2008-02-07 IN IN1739MUN2014 patent/IN2014MN01739A/en unknown
- 2008-02-07 WO PCT/US2008/053338 patent/WO2008098140A1/en active Application Filing
- 2008-02-07 MX MX2009007982A patent/MX2009007982A/es active IP Right Grant
- 2008-02-07 BR BRPI0806994-8A2A patent/BRPI0806994A2/pt not_active IP Right Cessation
- 2008-02-07 KR KR1020097018613A patent/KR101057526B1/ko active IP Right Grant
- 2008-02-07 CA CA002675702A patent/CA2675702A1/en not_active Abandoned
- 2008-02-07 CN CN2008800043245A patent/CN101606134B/zh not_active Expired - Fee Related
- 2008-02-12 TW TW097104973A patent/TWI381275B/zh not_active IP Right Cessation
-
2012
- 2012-11-09 JP JP2012247186A patent/JP5373173B2/ja not_active Expired - Fee Related
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103339618A (zh) * | 2011-02-02 | 2013-10-02 | 美光科技公司 | 用于存取面向块的非易失性存储器的控制布置和方法 |
CN103339618B (zh) * | 2011-02-02 | 2016-06-29 | 美光科技公司 | 用于存取面向块的非易失性存储器的控制装置、方法和存储器系统 |
CN104871144A (zh) * | 2012-12-20 | 2015-08-26 | 高通股份有限公司 | 使用虚拟地址到物理地址跨页缓冲器的推测性寻址 |
CN104871144B (zh) * | 2012-12-20 | 2018-03-09 | 高通股份有限公司 | 使用虚拟地址到物理地址跨页缓冲器的推测性寻址 |
CN110073338A (zh) * | 2016-12-23 | 2019-07-30 | 超威半导体公司 | 翻译旁视缓冲器中的可配置的偏斜关联性 |
CN110073338B (zh) * | 2016-12-23 | 2024-03-08 | 超威半导体公司 | 翻译旁视缓冲器中的可配置的偏斜关联性 |
CN110019248A (zh) * | 2017-09-29 | 2019-07-16 | 英特尔公司 | 用于动态多存储格式数据库访问的技术 |
Also Published As
Publication number | Publication date |
---|---|
KR101057526B1 (ko) | 2011-08-17 |
JP2010518519A (ja) | 2010-05-27 |
JP2013065325A (ja) | 2013-04-11 |
IN2014MN01739A (zh) | 2015-07-03 |
WO2008098140A1 (en) | 2008-08-14 |
BRPI0806994A2 (pt) | 2014-04-08 |
TWI381275B (zh) | 2013-01-01 |
JP5373173B2 (ja) | 2013-12-18 |
EP2118753B1 (en) | 2013-07-10 |
RU2009133295A (ru) | 2011-03-20 |
CN101606134B (zh) | 2013-09-18 |
RU2461870C2 (ru) | 2012-09-20 |
US20080189506A1 (en) | 2008-08-07 |
EP2118753A1 (en) | 2009-11-18 |
MX2009007982A (es) | 2009-08-07 |
US8239657B2 (en) | 2012-08-07 |
KR20090117798A (ko) | 2009-11-12 |
CA2675702A1 (en) | 2008-08-14 |
TW200842580A (en) | 2008-11-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101606134B (zh) | 地址转换方法和设备 | |
CN110998549B (zh) | 地址转换缓存 | |
CN101331466B (zh) | 同经高速缓存的存储器数据一起高速缓存存储器属性指示符 | |
KR101019266B1 (ko) | 물리적으로-태그된 동작을 사용하는 가상으로-태그된 명령 캐시 | |
US7949834B2 (en) | Method and apparatus for setting cache policies in a processor | |
US9418011B2 (en) | Region based technique for accurately predicting memory accesses | |
US20080052488A1 (en) | Method for a Hash Table Lookup and Processor Cache | |
US10545879B2 (en) | Apparatus and method for handling access requests | |
JPH07295886A (ja) | 階層メモリ、階層メモリを有するコンピュータ・システムおよび階層メモリ管理方法 | |
US8621152B1 (en) | Transparent level 2 cache that uses independent tag and valid random access memory arrays for cache access | |
JP2009512943A (ja) | 多階層の変換索引緩衝機構(TLBs)フィールドの更新 | |
US7356650B1 (en) | Cache apparatus and method for accesses lacking locality | |
US8230277B2 (en) | Storage of data in data stores having some faulty storage locations | |
KR19990077471A (ko) | 스누핑포트를사용하는프리페치캐시질의방법및시스템 | |
US6574698B1 (en) | Method and system for accessing a cache memory within a data processing system | |
CN111124954A (zh) | 一种两级转换旁路缓冲的管理装置及方法 | |
US20040078544A1 (en) | Memory address remapping method | |
GB2307319A (en) | Dual-directory virtual cache | |
EP0474356A1 (en) | Cache memory and operating method | |
US20050268021A1 (en) | Method and system for operating a cache memory | |
US6493792B1 (en) | Mechanism for broadside reads of CAM structures | |
US6460118B1 (en) | Set-associative cache memory having incremental access latencies among sets | |
US9785574B2 (en) | Translation lookaside buffer that employs spacial locality | |
CN118349494A (zh) | 用于转换虚拟地址之计算系统、芯片及相关方法 | |
JPH031250A (ja) | キャッシュメモリ検索装置 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130918 Termination date: 20210207 |