CN1841343A - 改进任务切换的系统和方法 - Google Patents
改进任务切换的系统和方法 Download PDFInfo
- Publication number
- CN1841343A CN1841343A CNA2006100661423A CN200610066142A CN1841343A CN 1841343 A CN1841343 A CN 1841343A CN A2006100661423 A CNA2006100661423 A CN A2006100661423A CN 200610066142 A CN200610066142 A CN 200610066142A CN 1841343 A CN1841343 A CN 1841343A
- Authority
- CN
- China
- Prior art keywords
- task
- page table
- catalogue
- table entry
- switched
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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/654—Look-ahead translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/68—Details of translation look-aside buffer [TLB]
- G06F2212/681—Multi-level TLB, e.g. microTLB and main TLB
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
一种数据处理系统中的改进的任务切换的方法和系统。首先,第一级高速缓冲存储器把被无效的页表项和相关的第一页目录基地址驱逐到第二级高速缓冲存储器。接着,该第二级高速缓冲存储器确定是否发生了任务切换。如果没有发生任务切换,第一级高速缓冲存储器把该被无效的页表项发送到当前运行任务目录。如果发生了任务切换,那么第一级高速缓冲存储器从第二级高速缓存目录中加载一组与新任务有关的页表项,以能够进行改进的任务切换,而无需访问存储在主存储器中的页表来获取该组页表项。
Description
技术领域
本发明一般涉及数据处理系统,更具体地说,本发明涉及在数据处理系统中处理转换。还具体地说,本法发明涉及利用转换后援缓冲器(translation lookaside buffer)来改进数据处理系统的性能。
背景技术
通常,现代数据处理系统利用虚拟存储系统来编址超大容量的存储器,即使系统的主存储器包含小得多的地址空间。通常,具有较小存储容量的存储器(例如,高速缓存)具有较快的访问时间。相应地,具有较大存储容量的存储器(例如,硬盘驱动器)具有较慢的访问时间。因此,虚拟存储系统通过把频繁访问的数据存储在高速缓存或者主存储器中来提供一个很大的可用系统存储器的假象。该虚拟存储系统把非频繁访问的数据存储到硬盘驱动器中并仅当需要的时候才获取该数据。因此,由于对硬盘驱动器的访问因硬盘驱动器较慢的访问时间而会导致较大的性能损失,所以把频繁访问的数据存储在高速缓存或者主存储器中的虚拟存储系统改进了数据处理系统的性能。
为了方便数据的获取和访问,虚拟存储系统通常定义诸如页或者段的离散存储单元,其包括虚拟存储地址和对应的物理存储地址两者。实际的物理存储地址可以指向高速缓存、主存储器、或者诸如硬盘驱动器的较慢的备用存储器中的位置。如果所请求的数据的物理地址位于高速缓存或者主存储器中,那么该数据就被容易和快速地访问和利用。然而,如果该物理地址表明该页位于诸如硬盘驱动器的备用存储器位置,那么该页必须被转移和“交换”到主存储器中,然后在这里该数据可被访问。为了释放足够的存储空间来存储新获取的数据,这种转移通常需要把位于高速缓存或者主存储器中的其他数据转换出该高速缓存或者主存储器而回到该硬盘驱动器中。该存储器等级结构的各等级之间的转移通常由一存储器管理单元控制。
页处理过程需要一数据结构,其通常被称为页表,该页表索引由该数据处理系统处理的不同页。典型的页表通常由虚拟页号、表的大小、页的数量和虚拟地址空间来索引。页表通常很大并存储在主存储器中,并经常是分页的。因此,如果数据处理系统中的处理器请求访问存储在主存储器中的数据,该处理器必须首先查阅位于该存储器中的页表来确定所请求的数据的物理地址。接着,该处理器必须再次访问该主存储器来执行实际的数据获取。
本领域技术人员将知道,一种最小化主存储器访问时间的成本的方法是缓存最近访问的转换,从而如果当前地址引用与最近访问的地址引用相同的页,则跳过映射过程。通常,最后的转换被保存在一特定的转换高速缓存中,本领域的技术人员通常知其为转换后援缓冲器(TLB)。一TLB条目,也被称为页表项(PTE),通常包括多个字段,例如:虚拟地址、物理页帧号、保护字段、使用位和一修改或者脏位。
然而,传统的转换后援缓冲器存储仅仅对应于数据处理系统正在执行的当前任务的页表项。当发生任务切换时,整个转换后援缓冲器必须被清空(或者无效),以便存储用于新任务的页表项。在针对新任务的转换后援缓冲器无效后,为了刷新该转换后援存储器进行的对页表的随后存储器访问消耗许多个时钟周期并对该数据处理系统的性能产生负面的影响。因此需要一种在数据处理系统中提供对最近访问的页表项的访问并改进任务切换的性能的系统和方法。
发明内容
公开了一种数据处理系统中的改进的任务切换的系统和方法。首先,第一级高速缓冲存储器把被无效的页表项和相关的第一页目录基地址驱逐到第二级高速缓存。接着,该第二级高速缓冲存储器确定是否发生了任务切换。如果没有发生任务切换,那么第一级高速缓冲存储器把该被无效的页表项发送到一当前运行任务目录。如果发生了任务切换,那么第一级高速缓冲存储器从该第二级高速缓存目录中加载一组与新任务有关的页表项,以能够进行改进的任务切换,而无需访问存储在主存储器中的页表来获取该组页表项。
在下面优选实施例的详细说明书中,本发明的这些和其他特征和优点将会得到说明,由于这些说明,它们也会对本领域普通的技术人员变得清楚。
附图说明
被认为是本发明的特点的新颖特征在随后的权利要求书中阐明。然而,通过参考连同附图一起阅读的以下对示例性实施例的详细说明,本发明本身、以及其使用的优选方式、其他目标和优点将会得到最好的理解,附图中:
图1是描述可在其中实施本发明的优选实施例的一示例性数据处理系统的框图;
图2是示出可在其中实施本发明的优选实施例的一示例性数据处理系统中的处理器的详细框图;
图3是示出可在其中实施本发明的优选实施例的一示例性数据处理系统中的转换后援缓冲器(TLB)的详细框图;
图4A是示出根据本发明的一优选实施例的改进的任务切换的方法的无效阶段和任务切换确定阶段的高层逻辑流程图;
图4B是示出根据本发明的一优选实施例的改进的任务切换的方法的任务切换阶段的高层逻辑流程图;以及
图4C是示出根据本发明的一优选实施例的改进的任务切换的方法的最近最少使用页表项阶段的高层逻辑流程图。
具体实施方式
本发明公开了一种数据处理系统中的改进的任务切换的系统和方法。为了方便使得数据处理系统的部件能够直接访问存储器位置的有效地址到物理地址转换,最近访问页表项被存储在本地高速缓存中,该本地高速缓存通常也被称为转换后援缓冲器(TLB)。在本发明的一优选实施例中,该TLB包括两部分,第一级TLB和第二级TLB。接着该第二级TLB被进一步地划分为一任务切换目录和一当前运行任务目录。
作为所有存储设备的特征,该TLB包含有限的存储容量。当容量被充满时,该第一级TLB将驱逐旧的页表项来为新的页表项释放存储空间。通过一最近最少使用算法或者类似算法可容易实现该驱逐过程。
当一页表项被驱逐时,该第二级TLB必须确定该驱逐是因为任务切换还是仅仅因为该TLB变满。如果该驱逐是由任务切换引起的,那么将搜索任务切换目录来确定该任务切换目录是否包括一页目录基地址和对应于该新切换的任务的相关页表项。
另外,如果该第二级TLB已经确定没有发生任务切换,该被驱逐的页表项将仅仅被转移到当前运行任务目录。
现在参考附图,并具体参考图1,其描述一示例性数据处理系统100的框图,在该系统中可以实施本发明的优选实施例。示例性数据处理系统100可以在诸如IBM兼容计算机系列的一个成员的一通用计算机上实现,或者在那些当前可购买到的几种工作站或者图形计算机设备中的一个上实现。
如图所示,示例性数据处理系统100包括处理器102,其通过系统总线106连接到系统存储器104。优选地,系统存储器104可以由一组动态随机存取存储器(DRAM)模块实现。通常,系统存储器104包括数据、指令和页帧表(PFT),这将结合图3和图4A-4C进一步更详细地讨论。夹层总线(mezzanine bus)108担当系统总线106和外围总线114之间的中介。本领域的技术人员将知道外围总线114可以被实现为外设部件互连(PCI)、加速图形端口(AGP)或者任何其他外围总线。连接到外围总线114上的是硬盘驱动器110,其由数据处理系统100使用作为海量存储设备。一组外围设备112也连接到外围总线114上。
本领域的技术人员将知道,数据处理系统100可以包括许多没有特别在图1中示出的其他部件。由于这些其他部件对于理解本发明不是必要的,所以它们在图1中没有示出,在这里也不作进一步讨论。然而还应当理解,由本发明提供的用来改进任务切换和页转换性能的对数据处理系统100的增强可以应用于任何系统体系结构的数据处理系统,并且决不会局限于在图1中示出的一般化的多处理器体系结构或者对称多处理(SMP)体系结构。
现在参考图2,它是示出了可在其中实现本发明的优选实施例的一示例性处理器的详细框图。如图所示,处理器102包含一指令流水线,该指令流水线包括一指令定序单元(ISU)200和多个执行单元208、212、214、218和220。ISU200利用实地址从一L1指令高速缓存206中取来用于处理的指令,该实地址是通过由指令存储器管理单元(IMMU)204执行的有效地址到实地址转换(ERAT)获得的。当然,如果所请求的指令高速缓存线(cache line)不在L1指令高速缓存206中,那么ISU200通过指令高速缓存重新加载总线207从L2高速缓存234中请求相关的指令高速缓冲线,该重载总线也连接到一预取引擎232上。
在指令被取来和任何预处理(如果有的话)被执行后,ISU200根据指令的类型通过指令总线209向执行单元208、212、214、218和220发送指令,这种发送可能是不按次序的。就是说,条件寄存器修改(condition-regoster-modifying)指令和分支指令分别被发送给条件寄存器单元(CRU)208和分支执行单元(BEU)212,定点指令和加载/存储指令分别被发送给定点单元(FXU)214和加载-存储单元(LSU)218,而浮点指令被发送给浮点单元(FPU)220。
在可能的排队和缓冲后,由执行单元208、212、214、218和220机会式地(opportunistically)执行由ISU200发送的指令。指令“执行”在这里被定义为这样的过程,借此处理器的逻辑电路检查一指令操作码(opcode)和相关操作数(如果有的话),并作为响应,在该数据处理系统中(例如在系统存储器位置之间、在寄存器或者缓冲器和存储器之间,等等)移动数据或指令,或者在该数据上执行逻辑或数学操作。对于存储器访问(例如加载类型的或者存储类型的)指令,执行通常包括根据指令操作数计算一目标有效地址(EA)。
在执行单元208、212、214、218和220之一中执行期间,指令可以从连接到执行单元的寄存器文件中的一个或者多个体系结构(architected)寄存器和/或重命名的(rename)寄存器中接收输入的操作数(如果有的话)。指令执行的数据结果(即目的操作数),如果有的话,同样被执行单元208、212、214、218和220写入到寄存器文件中的指令指定位置。例如,FXU214从一浮点寄存器文件(FPRF)222接收输入操作数并把目的操作数存储在其中,而LSU218从GPRF216中接收输入操作数并使得数据在L1数据高速缓存230(通过互连217)与GPRF216和FPRF222之间进行转移。类似地,当执行条件寄存器修改指令或者条件寄存器依赖(condition-register-dependent)指令时,CRU208和BEU212访问控制寄存器文件(CRF)210,在一个优选实施例中该文件包括条件寄存器、链接寄存器、计数寄存器、和每个寄存器的重命名寄存器。BEU212访问条件寄存器、链接寄存器和计数寄存器的值来解析条件分支,从而获得一路径地址,BEU212把该路径地址提供给指令定序单元200来启动沿着指示路径的指令取。在执行单元完成指令的执行后,执行单元通知指令定序单元200,该指令定序单元计划安排指令以程序顺序完成以及数据结果(如果有的话)到处理单元102的体系结构状态的提交。
仍然参照图2,本发明的一优选实施例优选地包括一数据存储器管理单元(DMMU)224。DMMU224把从LSU218接收到的、程序启动的加载和存储操作中的有效地址(EA)转换为物理地址(PA),该物理地址在包括L1数据高速缓存230、L2高速缓存234和系统存储器104的易失性存储等级结构中被使用。DMMU224包括一转换后援缓冲器(TLB)226和一TLB预取引擎228。
这里结合图3和图4A-4C更详细地介绍的TLB226缓冲页表项(PTE)的子集的副本,所述副本被用来把由在处理器102中执行的软件使用的有效地址(EA)转换为物理地址(PA)。如在这里所使用的,有效地址(EA)被定义为标识被映射到虚拟地址的存储器存储位置或者其他资源的地址。另一方面,物理地址(PA)在这里被定义为标识实际存储器位置或者其他实际资源的物理地址空间中的地址。
现在参照图3,描述了可在其中实现本发明的一优选实施例的示例性转换后援缓冲器(TLB)的详细框图。如图所示,TLB226被进一步地划分为第一级TLB300和第二级TLB302。第二级TLB302还被划分为任务切换目录(TSD)304和当前运行任务目录(CRTD)306。
第一级TLB300保存一标识当前运行任务的当前页目录基地址(PDBA)308a。与当前PDBA308a相关联的是从页帧表(PFT)116获取的一组最近访问页表项308b。页帧表116,位于系统存储器104中,其包括一组页表项(PTE)。如前面所讨论的那样,页表项被用来把由在处理器102中执行的软件所使用的有效地址转换为物理地址。因为处理器102利用有效地址寻址存储器位置,所以处理器102需要页表项来把有效地址转换为实际包含所请求的数据或者指令的物理地址。
因此,第一级TLB300缓存最近所引用的页表项来方便处理器102的未来访问。第一级TLB300优选地通过利用最近最少使用算法,把最近最少使用的页表项驱逐到第二级TLB302的当前运行任务目录306中,如果第二级TLB302确定该页表项不是因为任务切换被驱逐的话,这将在后面结合图4A-4C更详细地讨论。因此,如果处理器102请求在第一级TLB300中没有找到的页表项,那么处理器查阅在第二级TLB302中的当前运行任务目录306。再者,如图所示,当前运行任务目录306也包括当前页目录基地址314a和相关的页表项314b。页表项314b是那些已经通过一最近最少使用算法或者其他算法从第一级TLB300中被驱逐的页表项。
如前面所讨论的那样,第二级TLB302还包括一任务切换目录(TSD)304。任务切换目录304包含一组页目录基地址310a和312a以及相关的页表项310b和312b。在数据处理系统100运行期间,如果第二级TLB302确定已发生任务切换,那么第一级TLB300把一页目录基地址308a和所有的相关页表项308b发送到任务切换目录304。接着,第一级TLB300搜索任务切换目录的内容来查找对应于该新任务的页目录基地址(PDBA)。如果第一级TLB300找到对应于该新任务的页目录基地址(PDBA),那么第一级TLB300加载存储在任务切换目录304中对应于所找到的页目录基地址(PDBA)的所有页表项(PTE)。
现在参照图4A,它是示出了根据本发明的一优选实施例的优选的改进的任务切换方法的无效阶段和任务切换确定阶段的高层逻辑流程图。
无效阶段:
通常,当处理器102需要有效地址到物理地址转换时,处理器102查阅一页表项来实现该转换。纯粹由于页表项的数量,页帧表116在系统存储器104中存储所有页表项。然而,由于访问系统存储器104所需要的时间大大超过了一个处理器周期,所以当等待从位于系统存储器104中的页帧表116中获取页表项时,处理器102将拖延(例如不做任何有用工作)多个处理器周期。因此,为了屏蔽这个存储器访问等待时间,将最近访问页表项存储在一转换后援缓冲器(TLB)226中以用于处理器的本地访问。如前面所讨论的那样,TLB226被进一步地划分为第一级TLB300和第二级TLB302。第一级TLB300存储对应于当前运行任务的最近访问页表项。因为第一级TLB300仅能存储有限数量的项,所以如方框400、402、404和406所示的那样,旧的页表项被无效并被从第一级TLB300驱逐到第二级TLB302中。可以利用最近最少使用算法或者任何其他算法来识别、无效和驱逐旧的页表项。
任务切换确定阶段:
任务切换确定阶段包括第二级TLB302确定一页表项的无效和驱逐是否是因为任务切换。旧的页表项可以由于除了最近最少使用算法计算的结果外的其他原因而被无效。例如,数据处理系统中的任务通常与某组页表项相关。因此,如果处理器102查阅第一级TLB300并且没有找到所请求的页表项,这可能是任务切换的结果。如方框408所示的那样,一旦第一级TLB300驱逐一旧的页表项,第二级TLB302确定该驱逐是否是任务切换的结果。通常,第二级TLB302查阅与被驱逐的页表项相关的页目录基地址,并把它与存储在一控制寄存器中的页目录基地址相比较。如果页目录基地址相匹配,那么就没有发生任务切换,并且该过程进行到标号B,该标号连接到在图4C中所示出的高层逻辑流程图。另一方面,如果页目录基地址不相匹配,那么已经发生任务切换,并且该过程进行到标号A,该标号连接到在图4B中所示出的高层逻辑流程图。
现在参照图4B,它是示出了根据本发明的一优选实施例的改进的任务切换方法的任务切换阶段的高层逻辑流程图。
任务切换阶段:
如果第二级TLB302确定已经发生了任务切换,那么这个确定启动两个过程。本领域技术人员将知道这些过程可以顺序或者并行运行。
任务切换阶段-过程1:
如方框410和412所示,第一个过程包括第一级TLB300搜索任务切换目录304来查找对应于该新任务的页目录基地址和相关的页表项。如果搜索成功,那么如方框418所示,第一级TLB300取消由预取引擎232执行的所请求的预测加载。该所请求的预测加载将结合任务切换阶段-过程2更详细地讨论。另外,如方框414和416所示,第一级TLB300加载相关的页表项并开始该新任务的执行。然而如方框420和416所示,如果搜索不成功,那么第一级TLB300将等待所请求的预测加载的完成,然后开始新任务的执行。接着,该过程继续到标号C,表明该过程返回到图4A的方框402,并以迭代的方式继续进行。
任务切换阶段-过程2:
如方框422所示,第二个过程包括预取引擎232预测地从系统存储器104中的页帧表116中获取一组页表项。如果在过程1中所涉及的对任务切换目录304的搜索成功,那么如方框418和414所示,预取引擎232的预测加载被取消,并且处理器102接着运行新加载的任务。然而,如果在第一个过程中所涉及的对任务切换目录304的搜索不成功,那么如方框420和416所示,第一级TLB300在接着进行新任务的处理之前等待预测加载的完成。接着,如前面所讨论的那样,该过程进行到标号C,并以迭代的方式继续进行。
此外,过程2包括把来自第一级TLB300的页表项和当前运行任务目录306合并起来以便存储在任务切换目录304中。首先,如方框423所示,确定任务切换目录304是否已满。接着如果确定任务切换目录304已满,那么如方框424所示,任务切换目录304把页目录基地址(其对应于一任务)和一组相关的页表项驱逐到系统存储器104中。任务切换目录可以使用一最近最少使用算法或者任何其他算法来确定哪个页目录基地址应该被驱逐。接着如方框426和428所示,将存储在第一级TLB300中的所有页表项与存储在当前运行任务目录306中的页表项合并,并且将合并后的列表存储在任务切换目录304中。接着如方框416所示,处理器102开始新任务的处理。然而如果确定任务切换目录304未满,就不需要驱逐当前所存储的页目录基地址和相关的页表项。相反,如方框426和428所示,任务切换目录304仅从第一级TLB300中接收剩余的被无效的页表项并把所述无效的页表项与位于当前运行任务目录306中的页表项相合并,再把合并后的列表存储在任务切换目录306中。接着,处理器102开始新加载的任务的执行(方框416)并且该过程转到标号C,在这里该过程以迭代的方式继续进行。
现在参照图4C,它是示出了根据本发明的一优选实施例的优选的改进的任务切换方法的最近最少使用页表项驱逐阶段的高层逻辑流程图。
最近最少使用页表项驱逐阶段:
如果第二级TLB302确定没有发生任务切换,该确定启动两个过程。
本领域技术人员将知道这些过程可以顺序或者并行运行。
最近最少使用页表项驱逐阶段-过程1:
如方框432和434所示,第一个过程涉及在第二级TLB302中的当前运行任务目录306从第一级TLB300中接收一页表项请求并确定所请求的页表项是否存储在当前运行任务目录306中。如方框436所示,如果所请求的页表项存储在当前运行任务目录306中,那么如方框448所示,第一级TLB300取消由预取引擎232启动的预测加载。该预测加载将与最近最少使用页表项驱逐阶段-过程2一起更详细地讨论。接着如方框438所示,第一级TLB300加载所请求的页表项,并如方框440所示继续进行当前任务的处理。接着该过程转到标号C,并以迭代的方式继续进行。
然而,如果所请求的页表项没有被存储在当前运行任务目录306中,那么如方框450和438所示,处理器102等待下面将在过程2中说明的预测加载的完成,并且第一级TLB300加载所请求的页表项。接着,处理器102继续运行该任务(方框440)。接着该过程转到标号C,并以迭代的方式继续进行。
最近最少使用页表项驱逐阶段-过程2:
如方框442所示,第二个过程涉及处理器102继续进行当前任务的处理。而且如方框444所示,响应于一预测加载请求,预取引擎232预测地从系统存储器104的页帧表116中获取所请求的页表项。如果在过程1中对当前运行任务目录306搜索成功,那么如方框448和438所示,预取引擎232取消来自当前运行任务目录306的预测加载,并且第一级TLB300加载所请求的页表项。接着,数据处理系统100继续进行当前任务的处理并返回到该过程的开始,如方框440和标号C所示。
然而如果在过程1中涉及的对任务切换目录的搜索不成功,那么如方框450、438和440所示,第一级TLB300在把所请求的页表项加载到第一级TLB300并继续进行当前任务的处理之前等待预测加载的完成。
另外如方框445所示,必须确定当前运行任务目录306的状态。如果当前运行任务目录304已满,那么如方框446和449所示,将驱逐一页表项来释放存储空间以便用来容纳来自第一级TLB300的最近被驱逐的页表项。接着,该过程进行到标号C并以迭代的方式继续进行。然而,如果当前运行任务目录304未满,那么将最近从第一级TLB300驱逐的页表项写入到当前运行任务目录304。接着,该过程进行到标号C并以迭代的方式继续进行。
尽管图4中所示出的流程图指出操作的一特定顺序和过程操作的一特定粒度,但是在其他的实施例中所示出的顺序可以被改变(例如,过程操作可以另外的顺序执行或者基本并行地执行)并且一个或者多个过程操作可以被合并或分割。同样,在本发明其他实施例中,额外的过程操作可以在需要时被添加。
如所公开的,本发明是一种在数据处理系统中的改进的任务切换和页转换性能的系统和方法。在第一级转换后援缓冲器(TLB)300无效一页表项后,第二级TLB确定该页表项的无效是否是任务切换的结果。如果第二级TLB确定该页表项的无效是任务切换的结果,那么该第二级TLB搜索任务切换目录来查找对应于该新被交换的任务的页目录基地址和相关的页表项。如果第二级TLB找到该页目录基地址,那么相关的页表项被加载到第一级TLB中以用于处理器的本地访问。因此,处理器将不需要查询位于系统存储器中的页帧表来获得所请求的页表项以执行有效地址到物理地址转换。如果第二级TLB确定该页表项的无效不是任务切换的结果,那么第一级TLB把该无效页表项驱逐到一当前运行任务目录中。
尽管本发明已经参照一优选实施例被特别示出,但是本领域的技术人员将知道可以对其做出形式和细节上的各种变化而不脱离本发明精神和范围。指出下面的情况也是重要的,即尽管本发明已经在全功能的计算机系统的情境中被说明,但是本领域的技术人员将知道本发明的机制能够作为多种形式的计算机程序被分发,并且不管用来实际执行该分发的信号承载介质的特定类型,本发明可以同样地被应用。这种信号承载介质的例子包括但不局限于诸如软盘或CD-ROM的可记录类型的介质和诸如模拟和数字通信链路的传输类型的介质。
Claims (25)
1.一种在数据处理系统中的改进的任务切换的方法,包括:
把被无效的页表项和相关的第一页目录基地址从第一级高速缓冲存储器驱逐到第二级高速缓冲存储器;
响应所述驱逐,确定是否发生任务切换;
响应于确定没有发生任务切换,把所述被无效的页表项发送到当前运行任务目录;以及
响应于确定已经发生所述任务切换,从任务切换目录中加载对应于新任务的第一多个页表项,以能够进行改进的任务切换,而无需访问存储在主存储器中的页表来获取所述第一多个页表项。
2.根据权利要求1所述的方法,还包括:
响应于确定已经发生所述任务切换,把至少一个预测加载请求发送到系统存储器来请求与所述新任务相关的第二多个页表项。
3.根据权利要求2所述的方法,还包括:
响应于确定已经发生所述任务切换,解析所述任务切换目录来获取与所述新任务相关的第二页目录基地址;以及
响应于确定所述任务切换目录不包含所述第二页目录基地址,加载与所述新任务相关的所述第二多个页表项。
4.根据权利要求1所述的方法,还包括:
响应于所述加载,开始所述新任务的执行。
5.根据权利要求1所述的方法,还包括:
确定所述任务切换目录是否已满;
响应于确定所述任务切换目录已满,把一页目录基地址和多个相关的页表项从所述任务切换目录中驱逐;以及
把来自所述第一级高速缓冲存储器的多个页表项和存储在所述当前运行任务目录中的多个页表项合并成列表;以及
把所述列表存储到所述任务切换目录中。
6.根据权利要求1所述的方法,还包括:
响应于确定没有发生所述任务切换,确定所请求的页表项是否存储在所述当前运行任务目录中。
7.根据权利要求1所述的方法,还包括:
响应于确定没有发生所述任务切换,发送对于所请求的页表项的预测加载请求。
8.根据权利要求1所述的方法,还包括:
响应于确定没有发生所述任务切换,从所述当前运行任务目录中驱逐页表项;以及
响应于所述驱逐,把所述被无效的页表项添加到所述当前运行任务目录。
9.一种数据处理系统,包括:
系统存储器,其包括页表;以及
处理器,其通过互连连接到所述系统存储器,其中所述处理器还包括:
第一级高速缓冲存储器,用于驱逐被无效的页表项和相关的第一页目录基地址;
第二级高速缓冲存储器,其连接到所述第一级高速缓冲存储器,其中所述第二级高速缓冲存储器确定是否发生任务切换,其中所述第二级高速缓冲存储器还包括:
当前运行任务目录,用于存储至少一个被从所述第一级高速缓冲存储器中驱逐出的页表项;
任务切换目录,用于存储至少一组与至少一个其他任务相关的多个页表项并发送与所述新任务相关的第一多个页表项,以能够进行改进的任务切换,而无需访问存储在所述系统存储器中的所述页表来获取所述第一多个页表项。
10.根据权利要求9所述的数据处理系统,其中响应于确定已经发生所述任务切换,所述第二级高速缓存目录把至少一个预测加载请求发送到所述系统存储器来请求与所述新任务相关的第二多个页表项。
11.根据权利要求10所述的数据处理系统,其中响应于确定已经发生所述任务切换,所述第二级高速缓存目录分析所述任务切换目录来获得与所述新任务相关的第二页目录基地址,以及响应于确定所述任务切换不包含所述第二页目录基地址,加载与所述新任务相关的第二多个页表项。
12.根据权利要求9所述的数据处理系统,其中响应于加载所述第一多个页表项,所述处理器开始所述新任务的执行。
13.根据权利要求9所述的数据处理系统,其中所述第二级高速缓存目录确定所述任务切换目录是否已满,以及响应于确定所述任务切换目录已满,从所述任务切换目录中驱逐页目录基地址和多个相关的页表项,以及把来自所述第一级高速缓冲存储器中的多个页表项和存储在所述当前运行任务目录中的多个页表项合并成列表,并把所述列表存储到所述任务切换目录中。
14.根据权利要求9所述的数据处理系统,其中响应于确定没有发生所述任务切换,所述第二级高速缓存目录确定所请求的页表项是否存储在所述当前运行任务目录中。
15.根据权利要求9所述的数据处理系统,其中响应于确定没有发生所述任务切换,所述第二级高速缓存目录发送对于所请求的页表项的预测加载请求。
16.根据权利要求9所述的数据处理系统,其中响应于确定没有发生所述任务切换,所述第二级高速缓存目录从所述当前运行任务目录中驱逐页表项,以及响应于从所述当前运行任务目录中驱逐所述页表项,把所述被无效的页表项添加到所述当前运行任务目录。
17.一种处理器,包括:
第一级高速缓冲存储器,用于驱逐被无效的页表项和相关的第一页目录基地址;
第二级高速缓冲存储器,其连接到所述第一级高速缓冲存储器,其中所述第二级高速缓冲存储器确定是否发生任务切换,其中所述第二级高速缓冲存储器还包括:
当前运行任务目录,用于存储至少一个被从所述第一级高速缓冲存储器中驱逐出的页表项;
任务切换目录,用于存储至少一组与至少一个其他任务相关的多个页表项并发送与所述新任务相关的第一多个页表项,以能够进行改进的任务切换,而无需访问存储在系统存储器中的页表来获取所述第一多个页表项。
18.根据权利要求17所述的处理器,其中响应于确定已经发生所述任务切换,所述第二级高速缓存目录把至少一个预测加载请求发送到所述系统存储器来请求与所述新任务相关的第二多个页表项。
19.根据权利要求18所述的处理器,其中响应于确定已经发生所述任务切换,所述第二级高速缓存目录分析所述任务切换目录来获得与所述新任务相关的第二页目录基地址,以及响应于确定所述任务切换不包含所述第二页目录基地址,加载与所述新任务相关的第二多个页表项。
20.根据权利要求17所述的处理器,其中响应于加载所述第一多个页表项,所述处理器开始所述新任务的执行。
21.根据权利要求17所述的处理器,其中所述第二级高速缓存目录确定所述任务切换目录是否已满,以及响应于确定所述任务切换目录已满,从所述任务切换目录中驱逐页目录基地址和多个相关的页表项,以及把来自所述第一级高速缓冲存储器中的多个页表项和存储在所述当前运行任务目录中的多个页表项合并成列表,并把所述列表存储到所述任务切换目录中。
22.根据权利要求17所述的处理器,其中响应于确定所述任务切换没有发生,所述第二级高速缓存目录确定所请求的页表项是否存储在所述当前运行任务目录中。
23.根据权利要求17所述的处理器,其中响应于确定没有发生所述任务切换,所述第二级高速缓存目录发送对于所请求的页表项的预测加载请求。
24.根据权利要求17所述的处理器,其中响应于确定没有发生所述任务切换,所述第二级高速缓存目录从所述当前运行任务目录中驱逐页表项,以及响应于从所述当前运行任务目录中驱逐所述页表项,把所述被无效的页表项添加到所述当前运行任务目录。
25.一种用于数据处理系统中的改进的任务切换的计算机程序产品,包含用于执行前面方法权利要求的任一方法的指令。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/095,052 | 2005-03-31 | ||
US11/095,052 US7386669B2 (en) | 2005-03-31 | 2005-03-31 | System and method of improving task switching and page translation performance utilizing a multilevel translation lookaside buffer |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1841343A true CN1841343A (zh) | 2006-10-04 |
CN100428198C CN100428198C (zh) | 2008-10-22 |
Family
ID=37030380
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006100661423A Active CN100428198C (zh) | 2005-03-31 | 2006-03-24 | 改进任务切换的系统和方法 |
Country Status (2)
Country | Link |
---|---|
US (2) | US7386669B2 (zh) |
CN (1) | CN100428198C (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105302840A (zh) * | 2014-07-31 | 2016-02-03 | 阿里巴巴集团控股有限公司 | 一种缓存管理方法与设备 |
CN105389271A (zh) * | 2014-11-13 | 2016-03-09 | 上海兆芯集成电路有限公司 | 用于执行具有最低表查询优先级的硬件预取表查询的系统和方法 |
CN110730956A (zh) * | 2017-06-19 | 2020-01-24 | 超威半导体公司 | 用于降低存储器系统中的页面迁移开销的机制 |
Families Citing this family (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7386669B2 (en) * | 2005-03-31 | 2008-06-10 | International Business Machines Corporation | System and method of improving task switching and page translation performance utilizing a multilevel translation lookaside buffer |
US7945761B2 (en) * | 2006-11-21 | 2011-05-17 | Vmware, Inc. | Maintaining validity of cached address mappings |
CN101295265A (zh) | 2007-04-25 | 2008-10-29 | 国际商业机器公司 | 全系统isa仿真系统及其识别进程的方法 |
US20090089510A1 (en) * | 2007-09-28 | 2009-04-02 | Mips Technologies, Inc. | Speculative read in a cache coherent microprocessor |
US8296520B2 (en) * | 2007-12-19 | 2012-10-23 | International Business Machines Corporation | System and method for optimizing neighboring cache usage in a multiprocessor environment |
US8397029B2 (en) | 2007-12-19 | 2013-03-12 | International Business Machines Corporation | System and method for cache coherency in a multiprocessor system |
US7836257B2 (en) * | 2007-12-19 | 2010-11-16 | International Business Machines Corpation | System and method for cache line replacement selection in a multiprocessor environment |
US8769221B2 (en) * | 2008-01-04 | 2014-07-01 | International Business Machines Corporation | Preemptive page eviction |
KR20100021868A (ko) * | 2008-08-18 | 2010-02-26 | 삼성전자주식회사 | 플래시 메모리 장치를 위한 버퍼 캐쉬 관리 방법 |
JP5423232B2 (ja) * | 2009-08-17 | 2014-02-19 | 富士通株式会社 | プロセス状態検知プログラム、情報処理装置、プロセス状態検知方法 |
WO2012156850A1 (en) * | 2011-05-19 | 2012-11-22 | International Business Machines Corporation | Managing the translation look-aside buffer (tlb) of an emulated machine |
US10136883B2 (en) | 2011-11-16 | 2018-11-27 | VentureMD Innovations, LLC | Method of anchoring a suture |
US10675014B2 (en) | 2011-11-16 | 2020-06-09 | Crossroads Extremity Systems, Llc | Knotless soft tissue attachment |
US10470756B2 (en) | 2011-11-16 | 2019-11-12 | VentureMD Innovations, LLC | Suture anchor and method |
US10548585B2 (en) | 2011-11-16 | 2020-02-04 | VentureMD Innovations, LLC | Soft tissue attachment |
US20140101405A1 (en) * | 2012-10-05 | 2014-04-10 | Advanced Micro Devices, Inc. | Reducing cold tlb misses in a heterogeneous computing system |
US9330026B2 (en) | 2013-03-05 | 2016-05-03 | Qualcomm Incorporated | Method and apparatus for preventing unauthorized access to contents of a register under certain conditions when performing a hardware table walk (HWTW) |
US9317443B2 (en) | 2014-04-17 | 2016-04-19 | International Business Machines Corporation | Managing translations across multiple contexts using a TLB with entries directed to multiple privilege levels and to multiple types of address spaces |
US9323692B2 (en) | 2014-04-17 | 2016-04-26 | International Business Machines Corporation | Managing translation of a same address across multiple contexts using a same entry in a translation lookaside buffer |
US9684606B2 (en) * | 2014-11-14 | 2017-06-20 | Cavium, Inc. | Translation lookaside buffer invalidation suppression |
US9697137B2 (en) | 2014-11-14 | 2017-07-04 | Cavium, Inc. | Filtering translation lookaside buffer invalidations |
US9734088B2 (en) * | 2015-08-12 | 2017-08-15 | International Business Machines Corporation | Memory management unit and method for accessing data |
KR102329924B1 (ko) * | 2015-10-27 | 2021-11-23 | 삼성전자 주식회사 | 전자 장치 및 이의 메모리 관리 방법 |
US9898296B2 (en) * | 2016-01-08 | 2018-02-20 | International Business Machines Corporation | Selective suppression of instruction translation lookaside buffer (ITLB) access |
US9354885B1 (en) * | 2016-01-08 | 2016-05-31 | International Business Machines Corporation | Selective suppression of instruction cache-related directory access |
US10417140B2 (en) * | 2017-02-24 | 2019-09-17 | Advanced Micro Devices, Inc. | Streaming translation lookaside buffer |
US12014208B2 (en) * | 2018-06-29 | 2024-06-18 | Advanced Micro Devices, Inc. | Techniques for reducing serialization in divergent control flow |
US10884943B2 (en) | 2018-08-30 | 2021-01-05 | International Business Machines Corporation | Speculative checkin of ERAT cache entries |
CN110032452B (zh) * | 2019-04-19 | 2021-08-24 | 上海兆芯集成电路有限公司 | 处理系统与异构处理器加速方法 |
CN110334123A (zh) * | 2019-05-17 | 2019-10-15 | 平安科技(深圳)有限公司 | 业务数据切换方法、装置、计算机设备和存储介质 |
US20240037042A1 (en) * | 2022-08-01 | 2024-02-01 | Qualcomm Incorporated | Using retired pages history for instruction translation lookaside buffer (tlb) prefetching in processor-based devices |
CN115794681B (zh) * | 2022-10-12 | 2023-05-23 | 中国人民解放军军事科学院国防科技创新研究院 | 适用于risc-v的多级可扩展tlb系统及其地址转换方法 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6356989B1 (en) * | 1992-12-21 | 2002-03-12 | Intel Corporation | Translation lookaside buffer (TLB) arrangement wherein the TLB contents retained for a task as swapped out and reloaded when a task is rescheduled |
US5479627A (en) * | 1993-09-08 | 1995-12-26 | Sun Microsystems, Inc. | Virtual address to physical address translation cache that supports multiple page sizes |
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 |
US5603004A (en) * | 1994-02-14 | 1997-02-11 | Hewlett-Packard Company | Method for decreasing time penalty resulting from a cache miss in a multi-level cache system |
US5588283A (en) * | 1995-06-07 | 1996-12-31 | Ropak Canada Inc. | Lidding machine |
US5830683A (en) * | 1996-01-22 | 1998-11-03 | North American Science Associates, Inc. | Indicator systems for determination of sterilization |
US5809528A (en) * | 1996-12-24 | 1998-09-15 | International Business Machines Corporation | Method and circuit for a least recently used replacement mechanism and invalidated address handling in a fully associative many-way cache memory |
US6490658B1 (en) * | 1997-06-23 | 2002-12-03 | Sun Microsystems, Inc. | Data prefetch technique using prefetch cache, micro-TLB, and history file |
US5898852A (en) | 1997-06-26 | 1999-04-27 | Sun Microsystems, Inc. | Load instruction steering in a dual data cache microarchitecture |
US6105113A (en) * | 1997-08-21 | 2000-08-15 | Silicon Graphics, Inc. | System and method for maintaining translation look-aside buffer (TLB) consistency |
US6279080B1 (en) * | 1999-06-09 | 2001-08-21 | Ati International Srl | Method and apparatus for association of memory locations with a cache location having a flush buffer |
JP2001051900A (ja) * | 1999-08-17 | 2001-02-23 | Hitachi Ltd | 仮想計算機方式の情報処理装置及びプロセッサ |
US6538650B1 (en) * | 2000-01-10 | 2003-03-25 | Intel Corporation | Efficient TLB entry management for the render operands residing in the tiled memory |
EP1391820A3 (en) * | 2002-07-31 | 2007-12-19 | Texas Instruments Incorporated | Concurrent task execution in a multi-processor, single operating system environment |
US7562179B2 (en) * | 2004-07-30 | 2009-07-14 | Intel Corporation | Maintaining processor resources during architectural events |
US7558939B2 (en) * | 2005-03-08 | 2009-07-07 | Mips Technologies, Inc. | Three-tiered translation lookaside buffer hierarchy in a multithreading microprocessor |
US7386669B2 (en) * | 2005-03-31 | 2008-06-10 | International Business Machines Corporation | System and method of improving task switching and page translation performance utilizing a multilevel translation lookaside buffer |
-
2005
- 2005-03-31 US US11/095,052 patent/US7386669B2/en active Active
-
2006
- 2006-03-24 CN CNB2006100661423A patent/CN100428198C/zh active Active
-
2008
- 2008-04-11 US US12/101,728 patent/US7783835B2/en active Active
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105302840A (zh) * | 2014-07-31 | 2016-02-03 | 阿里巴巴集团控股有限公司 | 一种缓存管理方法与设备 |
CN105302840B (zh) * | 2014-07-31 | 2019-11-15 | 阿里巴巴集团控股有限公司 | 一种缓存管理方法与设备 |
CN105389271A (zh) * | 2014-11-13 | 2016-03-09 | 上海兆芯集成电路有限公司 | 用于执行具有最低表查询优先级的硬件预取表查询的系统和方法 |
CN105389271B (zh) * | 2014-11-13 | 2018-09-04 | 上海兆芯集成电路有限公司 | 用于执行具有最低表查询优先级的硬件预取表查询的系统和方法 |
CN110730956A (zh) * | 2017-06-19 | 2020-01-24 | 超威半导体公司 | 用于降低存储器系统中的页面迁移开销的机制 |
CN110730956B (zh) * | 2017-06-19 | 2024-01-09 | 超威半导体公司 | 用于降低存储器系统中的页面迁移开销的机制 |
Also Published As
Publication number | Publication date |
---|---|
CN100428198C (zh) | 2008-10-22 |
US7386669B2 (en) | 2008-06-10 |
US20080215815A1 (en) | 2008-09-04 |
US7783835B2 (en) | 2010-08-24 |
US20060230252A1 (en) | 2006-10-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100428198C (zh) | 改进任务切换的系统和方法 | |
EP0215544B1 (en) | Virtual memory address fetching | |
JP2618175B2 (ja) | キャッシュ・アクセスのための仮想アドレス変換予測の履歴テーブル | |
US7194597B2 (en) | Method and apparatus for sharing TLB entries | |
US6728858B2 (en) | Method and apparatus including heuristic for sharing TLB entries | |
EP0097790B1 (en) | Apparatus for controlling storage access in a multilevel storage system | |
CN1296827C (zh) | 一种使用数据地址增加组相关存储器的访问速度的方法 | |
EP1624369B1 (en) | Apparatus for predicting multiple branch target addresses | |
US5475827A (en) | Dynamic look-aside table for multiple size pages | |
US7136967B2 (en) | Multi-level cache having overlapping congruence groups of associativity sets in different cache levels | |
US20080104362A1 (en) | Method and System for Performance-Driven Memory Page Size Promotion | |
US6487639B1 (en) | Data cache miss lookaside buffer and method thereof | |
US5555395A (en) | System for memory table cache reloads in a reduced number of cycles using a memory controller to set status bits in the main memory table | |
JPH0887451A (ja) | アドレス変換を管理する方法およびアドレス変換マネージャ | |
WO1996041250A2 (en) | System and method for processing multiple requests and out of order returns | |
JP2001195303A (ja) | 機能が並列に分散された変換索引バッファ | |
CN1196997C (zh) | 不按序执行指令的装置和检测不按序指令的方法 | |
US6298411B1 (en) | Method and apparatus to share instruction images in a virtual cache | |
US10698836B2 (en) | Translation support for a virtual cache | |
US5737749A (en) | Method and system for dynamically sharing cache capacity in a microprocessor | |
KR100895715B1 (ko) | 메모리 관리 유닛, 메모리 관리 유닛을 포함하는 시스템 및어드레스 변환 방법 | |
US8688952B2 (en) | Arithmetic processing unit and control method for evicting an entry from a TLB to another TLB | |
US6990551B2 (en) | System and method for employing a process identifier to minimize aliasing in a linear-addressed cache | |
CN1286006C (zh) | 高速缓存系统与管理高速缓存的方法 | |
US5341485A (en) | Multiple virtual address translation per computer cycle |
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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20190812 Address after: American California Patentee after: Facebook Inc Address before: American New York Patentee before: International Business Machines Corp. |
|
TR01 | Transfer of patent right | ||
CP01 | Change in the name or title of a patent holder |
Address after: California, USA Patentee after: Yuan platform Co. Address before: California, USA Patentee before: Facebook, Inc. |
|
CP01 | Change in the name or title of a patent holder |