CN104885063B - 针对转译后备缓冲器(tlb)的重叠检查 - Google Patents

针对转译后备缓冲器(tlb)的重叠检查 Download PDF

Info

Publication number
CN104885063B
CN104885063B CN201480003984.7A CN201480003984A CN104885063B CN 104885063 B CN104885063 B CN 104885063B CN 201480003984 A CN201480003984 A CN 201480003984A CN 104885063 B CN104885063 B CN 104885063B
Authority
CN
China
Prior art keywords
page
entry
size
input
tlb
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
Application number
CN201480003984.7A
Other languages
English (en)
Other versions
CN104885063A (zh
Inventor
苏雷什·K·文库马汉提
埃里克·J·普隆德克
卢奇安·科德雷斯库
沙恩·M·马洪
拉胡尔·R·托莱
法迪·A·哈姆丹
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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN104885063A publication Critical patent/CN104885063A/zh
Application granted granted Critical
Publication of CN104885063B publication Critical patent/CN104885063B/zh
Expired - Fee Related 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
    • 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/652Page size control

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

本发明提供一种设备,其包含转译后备缓冲器TLB。所述TLB包含至少一个条目,其包含对应于条目页面的条目虚拟地址及条目页面大小指示。所述设备还包含经配置以接收对应于输入页面的输入页面大小指示及输入虚拟地址的输入逻辑。所述设备进一步包含重叠检查逻辑,其经配置以至少部分基于所述条目页面大小指示及所述输入页面大小指示确定所述输入页面是否与所述条目页面重叠。

Description

针对转译后备缓冲器(TLB)的重叠检查
优先权主张
本申请案主张2013年1月15日申请的题为“针对转译后备缓冲器(TLB)的重叠检查(OVERLAP CHECKING FOR A TRANSLATION LOOKASIDE BUFFER(TLB))”的第13/741,981号美国非临时专利申请案的优先权,所述申请案的内容以其全文引用的方式并入本文中。
技术领域
本发明一般来说涉及转译后备缓冲器(TLB)的管理。
背景技术
技术的进步已导致较小且较强大的计算装置。举例来说,当前存在多种便携式个人计算装置,包含无线计算装置,例如便携式无线电话、个人数字助理(PDA)、平板计算机及寻呼装置,其体积小,重量轻,且易于由用户携带。许多此类计算装置包含并入于其中的其它装置。举例来说,无线电话还可包含数字静态摄像机、数码摄像机、数字记录器,及音频文件播放器。并且,此类计算装置可处理可执行指令,包含软件应用程序,例如可用以存取互联网的网络浏览器应用程序,及利用静态或摄像机并提供多媒体播放功能性的多媒体应用程序。因而,这些装置可执行通常由例如桌上型计算机等较大装置执行的功能。
处理器(例如,无线电话及其它计算装置中的处理器)常常包含一或多个转译后备缓冲器(TLB)。TLB可用以在虚拟地址与物理地址之间快取转译。当在TLB中未发现指定虚拟地址时,可针对指定虚拟地址在TLB中创建新条目,其中新条目包含对应物理地址转译。创建此条目可在硬件中或通过软件来进行。替代地,可用用于指定虚拟地址的转译信息来改写TLB的现有条目。如果发现指定虚拟地址,即,匹配TLB的条目,那么TLB传回存储在匹配条目中的物理地址。
为了维持数据一致性,防止出现以下情形可为有用的:其中TLB的多个条目匹配输入虚拟地址。按照惯例,此任务落到使用TLB的操作***上。然而,归因于编程错误及其它条件,可能难以依赖操作***来实现此任务。此外,一些***可并行地执行多个操作***(例如,与超管理器通信的客户操作***),所述操作***可引入TLB管理的其它复杂性;所述超管理器可负责对(软件编程)TLB进行编程,且客户操作***定义转译,但无法被信任创建并不重叠的转译。
发明内容
揭示TLB处的处理器级别(例如,基于硬件)重叠检查。所述TLB可为软件管理的或硬件管理的。可在支持可变页面大小的***中使用重叠检查,这是因为可变页面大小的使用可使得重叠页面成为可能。因为所揭示技术可在硬件中实施,所以所揭示技术可比基于软件的重叠检查更快。
可实施一或多个指令以利用所揭示的基于硬件的重叠检查技术。举例来说,可实施重叠检查指令。当由处理器执行时,所述重叠检查指令产生指示TLB中的任何条目是否对应于将与指定输入页面重叠的页面的输出。因此,所述重叠检查指令可用以确定针对输入页面在所述TLB中创建新条目是否将在所述TLB中产生重叠条目。在一些实施方案中,所述重叠检查指令的所述输出可指示所述TLB中有多少个条目与所述输入页面重叠或可识别特定重叠条目。
作为另一实例,可实施条件性TLB写入指令。如果所述所创建条目将不与所述TLB中的任何现有条目重叠,那么所述条件性TLB写入指令可针对输入页面在所述TLB中创建条目。如果创建所述条目将导致重叠,那么所述条件性TLB写入指令可产生类似于所述重叠检查指令的所述输出的输出。
在特定实施例中,一种方法包含在TLB处接收输入虚拟地址及输入页面大小指示。所述输入虚拟地址及所述输入页面大小指示对应于输入页面。所述方法还包含基于所述输入页面大小指示与所述TLB的条目的条目页面大小指示的比较确定计算的页面大小,其中所述TLB的所述条目对应于条目页面。所述方法进一步包含基于所述计算的页面大小执行所述输入虚拟地址与条目虚拟地址的隐蔽比较以确定所述输入页面是否与所述条目页面重叠。
在另一特定实施例中,一种设备包含TLB。所述TLB包含至少一个条目,其包含对应于条目页面的条目虚拟地址及条目页面大小指示。所述设备还包含经配置以接收对应于输入页面的输入页面大小指示及输入虚拟地址的输入逻辑。所述设备进一步包含重叠检查逻辑,其经配置以至少部分基于所述条目页面大小指示及所述输入页面大小指示确定所述输入页面是否与所述条目页面重叠。
在另一特定实施例中,一种方法包含在处理器处执行重叠检查指令。所述重叠检查指令包含对应于输入页面的输入虚拟地址及输入页面大小指示。执行所述重叠检查指令包含基于TLB的条目的条目页面大小指示与所述输入页面大小指示的比较确定计算的页面大小。执行所述重叠检查指令还包含基于所述计算的页面大小执行所述输入虚拟地址与所述条目的条目虚拟地址的隐蔽比较以确定所述输入页面是否与条目页面重叠。执行所述重叠检查指令进一步包含基于关于所述输入页面是否与所述条目页面重叠的所述确定输出执行结果。
在另一特定实施例中,一种方法包含在包含TLB的处理器处执行条件性TLB写入指令。所述TLB包含第一条目,其具有对应于条目页面的条目虚拟地址及条目页面大小指示。所述条件性TLB写入指令包含对应于输入页面的输入虚拟地址及输入页面大小指示。执行所述条件性TLB写入指令包含基于所述条目页面大小指示与所述输入页面大小指示的比较确定计算的页面大小。执行所述条件性TLB写入指令还包含基于所述计算的页面大小执行所述输入虚拟地址与所述条目虚拟地址的隐蔽比较以确定所述输入页面是否与所述条目页面重叠。执行所述条件性TLB写入指令进一步包含响应于确定所述输入页面并不与所述条目页面重叠,将所述输入页面大小指示及所述输入虚拟地址写入到所述TLB的第二条目。
在另一特定实施例中,一种设备包含用于存储至少一个条目的装置。所述至少一个条目包含对应于条目页面的条目虚拟地址及条目页面大小指示。所述设备还包含用于接收对应于输入页面的输入页面大小指示及输入虚拟地址的装置。所述设备进一步包含用于基于所述条目页面大小指示与所述输入页面大小指示的比较确定计算的页面大小的装置。所述设备包含用于基于所述计算的页面大小执行所述输入虚拟地址与所述条目虚拟地址的隐蔽比较以确定所述输入页面是否与所述条目页面重叠的装置。
在另一特定实施例中,一种非暂时性处理器可读媒体包含重叠检查指令。所述重叠检查指令包含对应于输入页面的输入虚拟地址及输入页面大小指示。所述重叠检查指令可由包含TLB的处理器执行以基于所述TLB的条目的条目页面大小指示与所述输入页面大小指示的比较确定计算的页面大小。所述重叠检查指令还可由所述处理器执行以基于所述计算的页面大小执行所述输入虚拟地址与所述条目的条目虚拟地址的隐蔽比较以确定所述输入页面是否与条目页面重叠。所述重叠检查指令进一步可由所述处理器执行以基于关于所述输入页面是否与所述条目页面重叠的所述确定输出执行结果。
在另一特定实施例中,一种非暂时性处理器可读媒体包含条件性TLB写入指令。所述条件性TLB写入指令包含对应于输入页面的输入虚拟地址及输入页面大小指示。所述条件性TLB写入指令可由包含TLB的处理器执行,所述TLB包含第一条目,所述第一条目具有对应于条目页面的条目虚拟地址及条目页面大小指示。所述条件性TLB写入指令可由所述处理器执行以基于所述条目页面大小指示与所述输入页面大小指示的比较确定计算的页面大小。所述条件性TLB写入指令还可由所述处理器执行以基于所述计算的页面大小执行所述输入虚拟地址与所述条目虚拟地址的隐蔽比较以确定所述输入页面是否与所述条目页面重叠。所述条件性TLB写入指令进一步可由所述处理器执行以响应于确定所述输入页面并不与所述条目页面重叠,将所述输入页面大小指示及所述输入虚拟地址写入到所述TLB的第二条目。
通过所揭示实施例中的至少一者提供的一个特定优点是在TLB处执行处理器级别重叠检查的能力,所述能力可增加计算***或电子装置中的可靠性及数据一致性,而不依赖于有可能错误的第三方方法(例如,操作***TLB检查)。本发明的其它方面、优点及特征将在审阅全部申请案之后变得显而易见,所述全部申请案包含以下部分:附图说明、具体实施方式及权利要求书。
附图说明
图1为可操作以执行针对TLB的重叠检查的***的特定实施例的图;
图2为***的特定实施例的图,所述***可操作以执行针对TLB的重叠检查且包含可操作以执行重叠检查指令及条件性TLB写入指令之处理器;
图3为执行针对TLB的重叠检查的方法的特定实施例的流程图;
图4为执行重叠检查指令的方法的特定实施例的流程图;
图5为执行条件性TLB写入指令的方法的特定实施例的流程图;以及
图6为包含可操作以执行针对TLB的重叠检查的组件的无线装置的框图。
具体实施方式
图1为可操作以执行针对转译后备缓冲器(TLB)的重叠检查的***100的特定实施例的图。***100包含耦合到输入逻辑110、重叠检查逻辑120、写入逻辑150及重叠指示寄存器140的TLB 130。在特定实施例中,TLB 130为软件管理的TLB。替代地,TLB 130可为硬件管理的TLB。在说明性实施例中,图1的***100及/或其组件可包含在处理器中或耦合到处理器,例如中央处理单元(CPU)或数字信号处理器(DSP)。举例来说,处理器可集成到电子装置中,例如机顶盒、音乐播放器、视频播放器、娱乐单元、导航装置、通信装置、个人数字助理(PDA)、固定位置数据单元、计算装置或其任何组合。
在特定实施例中,使用硬件(例如,通过DSP、CPU、控制器、现场可编程门阵列(FPGA)装置、专用集成电路(ASIC)、另一硬件装置或其任何组合)来实施输入逻辑110、重叠检查逻辑120及写入逻辑150中的一或多者。替代地或另外,可使用软件(例如,可由处理器执行的指令)来实施输入逻辑110、重叠检查逻辑120及写入逻辑150中的一或多者,如参看图6进一步描述。
TLB 130可包含一或多个条目。在图1中,TLB 130包含第一条目131、第二条目132、第三条目133及第四条目134,其中条目131到134中的每一者对应于TLB 130的一行。每一条目131到134可包含虚拟地址(“虚拟地址”)及页面大小指示(“页面大小指示”)。在所说明实例中,使用实际页面大小(例如,4千字节(K)、64K、1兆字节(MB)、16MB等)表示页面大小指示。在替代实施例中,可使用位掩码(还被称作“掩码”)表示页面大小指示,如本文进一步描述。
TLB 130的条目131到134还可包含映射到虚拟地址的物理地址(“物理地址”)。条目131到134可进一步包含应用程序空间识别符(“ASID”)、高速缓存能力指示(例如,指示是否可高速缓存条目)、权限指示(“权限”)(例如,读取权限、写入权限及/或用户权限)及全局指示(“全局”)。TLB 130的每一条目可具有一索引。举例来说,第一条目131具有索引0,第二条目132具有索引1,第三条目133具有索引2,且第四条目134具有索引3。
应注意,在图1的实施例中,使用32位地址空间及4K最小页面大小来用于说明目的。因此,在TLB 130的虚拟地址及物理地址列中仅表示二十个最高有效位(对应于五个十六进制(hex)数字)。可能并不使用地址的十二个最低有效位(对应于三个十六进制数字),这是因为最小页面大小为4K,且因此,十二个最低有效位可能并不包含在TLB 130中(例如,节省空间)。因此,TLB 130中的虚拟地址可表示虚拟页面的虚拟页码而不是特定地址。在替代实施例中,可使用不同大小地址空间及不同的最小页面大小。
如图1中所展示,第一条目131对应于在虚拟地址0x10000处开始的4K页面。因此,就32位地址空间来说,4K页面包含虚拟地址0x10000000到0x10000FFF。类似地,索引1处的第二条目132对应于在虚拟地址0x2000X处开始的64K页面。大写“X”用以指示通过大写“X”表示的十六进制数字的任何值将在64K页面内。也就是说,64K页面横跨32位虚拟地址范围0x20000000到0x2000FFFF。索引2处的第三条目133对应于在虚拟地址0x300XX处开始的1MB页面,且索引3处的第四条目134对应于在虚拟地址0x40XXX处开始的16MB页面。
在操作期间,TLB 130可接收TLB查找。通常,TLB查找可指定输入虚拟地址104且TLB可传回来自TLB的先前所存储的对应物理地址(如果在TLB中发现输入虚拟地址的话)或已针对新近创建的映射添加到TLB的对应物理地址。为了进行说明,考虑指定通过虚拟地址0x1000X表示的64K输入页面的TLB查找。如本文所使用,术语“输入页面”可指通过TLB查找或关于TLB 130的其他读取/写入操作表示的存储器页面。64K输入页面可横跨范围0x10000到0x1000F。因此,64K输入页面可与通过TLB 130的第一条目131表示的4K条目页面重叠。如本文所使用,术语“条目页面”可指通过TLB 130中的条目表示的存储器页面。应注意,尽管存在重叠,但接收输入虚拟地址104而不是输入页面大小指示102的常规TLB重叠检查方法无法检测到重叠,这是因为0x10000未必等于通过0x1000X表示的任何值。因此,可能针对64K输入页面在TLB 130中创建重叠条目,所述重叠条目可为不合需要的且可导致未定义的行为及/或数据一致性问题(例如,因为后续TLB查找可匹配第一条目131以及新近创建的条目两者)。
根据所描述重叠检查技术,TLB 130可包含以下两者或耦合到以下两者:输入逻辑110及重叠检查逻辑120。在TLB查找期间,输入逻辑110可接收输入页面大小指示102以及输入虚拟地址104。举例来说,输入虚拟地址104可为0x1000X且输入页面大小指示102可为64K。在替代实施例中,可使用掩码表示输入页面大小指示102,如本文进一步描述。
重叠检查逻辑120可从输入逻辑110接收输入页面大小指示102及输入虚拟地址104,且可检验TLB 130的条目131到134以确定条目131到134中的任一者是否对应于与输入页面重叠的条目页面。举例来说,重叠检查逻辑120可包含页面大小计算逻辑122及隐蔽比较逻辑124。对于条目131到134中的每一者,页面大小计算逻辑122可确定计算的页面大小(例如,输入页面大小与对应条目页面大小中的较大者)。举例来说,当检查与第一条目131的重叠时,逻辑122可确定64K的计算的页面大小,所述大小为64K的输入页面大小与4K的条目页面大小中的较大者。类似地,针对剩余条目132到134的重叠检查的计算的页面大小可分别为64K、1MB及16MB。
隐蔽比较逻辑124可接收计算的页面大小且可基于计算的页面大小执行输入虚拟地址104与第一条目131的虚拟地址的隐蔽比较以检查重叠。为了进行说明,对于第一条目131,因为计算的大小为64K,所以隐蔽比较逻辑124可隐蔽掉输入虚拟地址0x1000X及条目虚拟地址0x10000的最后一个(例如,最低有效)十六进制数字。因为当隐蔽掉最后一个十六进制数字时两个虚拟地址相等(即,0x1000=0x1000),所以重叠检查逻辑120可得出结论:64K输入页面与第一条目131中表示的4K条目页面重叠。重叠检查逻辑120可类似地检验TLB130的剩余条目132到134。替代地,一旦检测到重叠,重叠检查逻辑120即可停止检验TLB条目。
重叠检查逻辑120可产生指示重叠检查的结果的重叠指示126。举例来说,重叠指示126可为指示是否检测到至少一个重叠的布尔型(例如,真/假)输出。作为另一实例,重叠指示126可指示TLB 130中导致重叠的条目的数目。为了进行说明,重叠指示126可为每当TLB 130的条目导致重叠时递增的计数器。作为又一实例,重叠指示126可指示特定重叠条目的索引。为了进行说明,当TLB 130的条目导致重叠时,可将重叠指示126设置为条目的索引。在特定实施例中,重叠指示126可存储在重叠指示寄存器140中或可存储在处理器架构的保留位中。
当TLB 130的条目131到134中无一者导致重叠时,可针对输入页面在TLB 130中创建新条目。举例来说,写入逻辑150可从输入逻辑110接收输入页面大小指示102及输入虚拟地址104,且可从重叠检查逻辑120接收指示未检测到重叠的重叠指示126。作为响应,写入逻辑150可针对输入页面在TLB 130中创建新条目。替代地,如果TLB130为“满的”,那么写入逻辑150可用针对输入页面的虚拟到物理地址映射改写TLB130的现有(例如,最老的、最近最少使用的,等)条目。当检测到重叠时,写入逻辑150可避免修改TLB 130。
应注意,尽管图1的先前描述针对输入页面大小指示102及针对存储在TLB 130中的页面大小指示使用页面大小(例如,4K、64K等),但替代实施例可涉及将页面大小表示为位掩码。在此类实施例中,页面大小计算逻辑122可通过对掩码进行逻辑与运算来确定两个页面大小中的较大者。所得的计算的掩码可供隐蔽比较逻辑124在检查重叠时使用。为了进行说明,在上述实例中,当使用掩码而不是页面大小时,输入虚拟地址104可保持0x1000X,但输入页面大小指示102可为FFFF0而不是64K。第一条目131的页面大小指示可为FFFFF而不是4K。页面大小计算逻辑122可对两个掩码执行逻辑与运算以产生计算的掩码FFFF0(即,FFFFF及FFFF0=FFFF0)。当比较输入虚拟地址104与第一条目131的虚拟地址时,隐蔽比较逻辑124可使用计算的掩码FFFF0。当使用计算的掩码FFFF0时,可能在比较之前将两个虚拟地址的最后一个(例如,最低有效)十六进制数字隐蔽掉,从而导致对重叠的相同的肯定确定(即,因为0x1000=0x1000)。
在特定实施例中,TLB 130可在每一条目131到134中包含全局指示项及ASID项。举例来说,当结合超管理器使用图1的***100时,不同ASID可对应于不同客户操作***且可被视为对虚拟地址的扩展。为了进行说明,如果支持ASID,那么第一条目131的虚拟地址可为0x1010000,且上述实例中的64K输入页面的输入虚拟地址可为0x101000X。当支持ASID时,除输入页面大小指示102及输入虚拟地址104之外,输入逻辑110还可接收输入ASID106。当TLB 130的特定条目的全局指示具有第一值(例如,1)时,重叠检查逻辑120可在重叠检查期间比较输入ASID 106与条目ASID。当全局指示具有第二值(例如,0)时,重叠检查逻辑120可在确定输入页面是否与条目页面重叠时忽略(例如,隐蔽掉及/或避免比较)所述ASID。
图1的***100因此可使得能够在TLB 130处进行重叠检查,所述情形可增加计算***或电子装置中的可靠性及数据一致性。此外,因为图1的***100可使得能够在处理器级别(例如,使用TLB 130内或耦合到TLB 130的逻辑模块)进行此类重叠检查,所以图1的***100可使得能够进行TLB重叠检查,而不依赖于有可能错误的第三方方法。因此,图1的***100可提供保护从而免于进行试图创建重叠TLB条目的操作***或应用程序。
对于检验处理器中(例如,TLB错过队列或TLB写入队列中)处于“飞行中”的数据及指令而不是已经处于TLB中的条目的重叠检查方法来说,图1的***100可为优选的。举例来说,一旦重叠错误为固定的,检验处于飞行中的数据/指令就可导致重试操作。另外,在多线程***中,检查TLB错过/写入队列可为计算上昂贵的。
在特定实施例中,一或多个处理器可执行指令可触发及/或使用参看图1描述的重叠检查操作。举例来说,可执行重叠检查指令及条件性TLB写入指令。重叠检查指令可包含输入虚拟地址及输入页面大小指示。重叠检查指令可产生布尔型输出(例如,指示任何条目是否与输入页面重叠),识别与输入页面重叠的特定条目,识别多少个条目与输入页面重叠,等等。在一些实施方案中,输出可存储在处理器的寄存器(例如,重叠指示寄存器140)中。
条件性TLB写入指令还可包含对应于输入页面的输入虚拟地址及输入页面大小指示。如果输入页面与条目页面匹配,那么条件性TLB写入指令可产生类似于重叠检查指令的输出的输出。如果未检测到重叠,那么条件性TLB写入指令可针对输入页面将新条目写入到TLB中或可修改TLB中的现有条目以反映输入页面。
在特定实施例中,可在单个采样周期中执行重叠检查指令及/或条件性TLB写入指令。举例来说,指令可表示关于TLB的内容可寻址存储器(CAM)部分的原子事件。
图2为可操作以执行重叠检查指令及条件性TLB写入指令的***200的特定实施例的图。***200包含可经由总线接口(I/F)208耦合到指令高速缓冲存储器210的存储器202。在特定实施例中,可将***200的全部或一部分集成到处理器中。替代地,存储器202可在处理器外部。
存储器202可经由总线接口208将指令发送到指令高速缓冲存储器210。指令高速缓冲存储器210可经由总线211耦合到定序器214。定序器214可接收通用中断216,可从中断寄存器(未图示)中检索通用中断。在特定实施例中,指令高速缓冲存储器210可经由多个当前指令寄存器(未图示)耦合到定序器214,所述当前指令寄存器可耦合到总线211且可能与处理器的特定线程(例如,硬件线程)相关联。在特定实施例中,处理器可为包含多个硬件线程的内插多线程处理器。
数据高速缓冲存储器还可经由总线接口208耦合到存储器202。在特定实施例中,***200包含包含重叠检查的TLB 270。举例来说,TLB 270可包含TLB条目272(例如,图1的TLB条目131到134)、输入逻辑274(例如,图1的输入逻辑110)、重叠检查逻辑276(例如,图1的重叠检查逻辑120),及写入逻辑278(例如,图1的写入逻辑150)。
在特定实施例中,总线211可为一百二十八位(128位)总线且定序器214可经配置以经由各自包含一或多个指令的指令包从存储器202中检索指令。总线211可耦合到第一指令执行单元(X-单元)218、第二指令执行单元220、第三指令执行单元222,及第四指令执行单元224。应注意,可能存在少于四个或多于四个指令执行单元。每一指令执行单元218到224可包含可操作逻辑,例如载入/存储逻辑及/或算术逻辑单元(ALU)。每一指令执行单元218到224可经由总线228耦合到通用寄存器组226。通用寄存器组226还可经由总线230耦合到定序器214、TLB 270及存储器202,如所展示。
***200还可包含管理控制寄存器232及全局控制寄存器234以存储可以通过定序器214内的控制逻辑存取的位,以确定是否接受中断(例如,通用中断216)及控制指令的执行。
在操作期间,可从存储器202中提取可执行指令且将可执行指令存储在指令高速缓冲存储器210中。举例来说,指令可包含重叠检查指令260及/或条件性TLB写入指令262。在执行期间,指令260到262中的每一者可造成在TLB 270处执行重叠检查操作。
举例来说,重叠检查指令260可包含操作码(例如,“TLBOC”)、对应于输入页面的输入虚拟地址,及输入页面大小指示。如果支持ASID,那么重叠检查指令260还可包含输入ASID。在执行重叠检查指令260期间,输入逻辑274可接收输入虚拟地址、输入页面大小指示及输入ASID(如果存在的话)。重叠检查逻辑276可检验TLB条目272以确定TLB条目272中的任一者是否对应于与输入页面重叠的条目页面。重叠检查逻辑276可产生指示重叠检查的结果的指令执行结果(例如,布尔型输出、重叠条目的数目、特定重叠条目的索引等)。可将指令执行结果存储在存储装置中(例如,存储器202中或通用寄存器组226中)。应注意,不同于条件性TLB写入指令262,重叠检查指令260可为“只读”指令,其并不修改TLB条目272。
条件性TLB写入指令262可包含操作码(例如,“TLBCW”)、对应于输入页面的输入虚拟地址,及输入页面大小指示。如果支持ASID,那么条件性TLB写入指令262还可包含输入ASID。在执行条件性TLB写入指令262期间,输入逻辑274可接收输入虚拟地址、输入页面大小指示及输入ASID(如果存在的话)。重叠检查逻辑276可检验TLB条目272以确定TLB条目272中的任一者是否对应于与输入页面重叠的条目页面。当重叠检查逻辑276确定至少一个条目页面与输入页面重叠时,重叠检查逻辑276可输出指示TLB写入失败的指令执行结果。当重叠检查逻辑276并未检测到重叠时,重叠检查逻辑276可将输入页面大小指示、输入虚拟地址及输入ASID(如果存在的话)写入到TLB条目272中的一者(例如,在于例如存储器202等存储器中创建针对输入页面的映射之后)。
因此可使用图2的***200来实施包含触发TLB重叠检查的一或多个指令的指令集架构(ISA)。图2的***200可为处理器设计者及应用程序开发者提供存取基于硬件的TLB重叠检查特征的权利。
图3为执行针对TLB的重叠检查的方法300的特定实施例的流程图。在说明性实施例中,可在图1的***100或图2的***200处执行方法300。
方法300可包含在302处在TLB处接收输入虚拟地址及输入页面大小指示。所述输入虚拟地址及所述输入页面大小指示对应于输入页面。举例来说,在图1中,输入逻辑110可接收输入页面大小指示102及输入虚拟地址104。为了进行说明,输入页面大小指示102可为1MB且输入虚拟地址104可为0x200XX。
方法300还可包含在304处基于输入页面大小指示与TLB的条目的条目页面大小指示的比较确定计算的页面大小,所述条目对应于条目页面。在特定实施例中,可选择输入页面大小与条目页面大小中的较大者作为计算的页面大小。举例来说,页面大小计算逻辑122可针对第一条目131确定计算的页面大小为1MB,所述大小为针对第一条目131的1MB输入页面大小与4K条目页面大小中的较大者。
方法300可进一步包含在306处基于计算的页面大小执行输入虚拟地址与条目的条目虚拟地址的隐蔽比较以确定输入页面是否与条目页面重叠。举例来说,在图1中,隐蔽比较逻辑124可针对第一条目131执行输入虚拟地址0x200XX与条目虚拟地址0x10000的隐蔽比较。因为计算的页面大小为1MB,所以可在比较之前将两个最低有效(例如,最右)十六进制数字隐蔽掉。因此,对于第一条目131,比较可介于0x200与0x100之间,且重叠检查逻辑120可确定输入页面与通过第一条目131表示的条目页面之间不存在重叠。
方法300可包含在308处确定是否仍存在TLB的任何未进行检验的条目。如果不存在未进行检验的条目,那么方法300可包含在310处输出重叠指示。举例来说,重叠指示可为布尔型输出、重叠条目的数目、特定重叠条目的索引,或某一其它重叠指示。替代地,如果检测到重叠,那么可输出重叠指示,且重叠指示的不存在可指示未检测到重叠。
如果TLB中仍存在未进行检验的条目,那么方法300可返回到304。举例来说,在图1中,重叠检查逻辑可检验TLB 130的剩余条目132到134。在第二条目132的情况下,计算的页面大小可为1MB,所述大小为1MB输入页面大小与64K条目页面大小中的较大者。作为响应,隐蔽比较逻辑124可隐蔽掉输入虚拟地址0x200XX及条目虚拟地址0x2000X的两个最低有效十六进制数字。因为所得值匹配(即,0x200=0x200),所以重叠检查逻辑276可检测到重叠(例如,通过第二条目132表示的条目页面包含输入页面)。
在特定实施例中,图3的方法300可通过DSP、CPU、控制器、现场可编程门阵列(FPGA)装置、专用集成电路(ASIC)、另一硬件装置、固件装置或其任何组合来实施。作为一实例,可由执行指令的处理器来执行图3的方法300,如关于图6所描述。
图4为执行重叠检查指令的方法400的特定实施例的流程图。在说明性实施例中,可在图1的***100或图2的***200处执行方法400。
可在于处理器处执行重叠检查指令期间执行图4中所说明的每一操作。重叠检查指令可包含对应于输入页面的输入虚拟地址及输入页面大小指示。方法400可包含在402处基于TLB的条目的条目页面大小指示与输入页面大小指示的比较确定计算的页面大小。举例来说,在图2中,在执行重叠检查指令260期间,重叠检查逻辑276可基于TLB条目272中的一者的条目页面大小指示与输入页面大小指示的比较确定计算的页面大小。
方法400还可包含在404处基于计算的页面大小执行输入虚拟地址与条目的条目虚拟地址的隐蔽比较以确定输入页面是否与条目页面重叠。举例来说,在图2中,重叠检查逻辑276可基于计算的页面大小执行隐蔽比较。
方法400可进一步包含在406处确定是否仍存在TLB的任何未进行检验的条目。在特定实施例中,可同时检验TLB的所有条目。如果TLB中仍存在未进行检验的条目,那么方法400可返回到402。如果不存在未进行检验的条目,那么方法400可包含在408处输出执行结果,及在410处将执行结果存储在处理器的寄存器中。举例来说,在图2中,重叠检查逻辑276可将执行结果存储在通用寄存器组226中。执行结果可为布尔型结果、对应于与输入页面重叠的条目页面的TLB的条目的数目、对应于与输入页面重叠的特定条目页面的TLB的特定条目,等等。在替代实施例中,一旦识别重叠,方法400就可输出重叠指示且终止,而不是继续检验额外TLB条目。图4的方法400因此可使得能够执行重叠检查指令以确定针对输入页面在TLB中创建新条目是否将在TLB中产生重叠条目。
在特定实施例中,图4的方法400可通过DSP、CPU、控制器、现场可编程门阵列(FPGA)装置、专用集成电路(ASIC)、另一硬件装置、固件装置或其任何组合来实施。作为一实例,可由执行指令的处理器来执行图4的方法400,如关于图6所描述。
图5为执行条件性TLB写入指令的方法500的特定实施例的流程图。在说明性实施例中,可在图1的***100或图2的***200处执行方法500。
可在于包含TLB的处理器处执行条件性TLB写入指令期间执行图5中所说明的每一操作。TLB可包含至少一个条目,其具有对应于条目页面的条目虚拟地址及条目页面大小指示。条件性TLB写入指令可包含对应于输入页面的输入虚拟地址及输入页面大小指示。方法500可包含在502处基于条目页面大小指示与输入页面大小指示的比较确定计算的页面大小。举例来说,在图2中,在执行条件性TLB写入指令262期间,重叠检查逻辑276可基于TLB条目272中的一者的条目页面大小指示与输入页面大小指示的比较确定计算的页面大小。
方法500还可包含在504处基于计算的页面大小执行输入虚拟地址与条目的条目虚拟地址的隐蔽比较以确定输入页面是否与条目页面重叠。举例来说,在图2中,重叠检查逻辑276可基于计算的页面大小执行隐蔽比较。
方法500可进一步包含在506处确定是否仍存在TLB的任何未进行检验的条目。在替代实施例中,一旦识别重叠,方法500就可输出重叠指示且终止,而不是继续检验额外TLB条目。如果TLB中仍存在未进行检验的条目,那么方法500可返回到502。如果不存在未进行检验的条目,那么方法500可包含在508处确定输入页面是否与至少一个条目页面重叠。
当无条目页面与输入页面重叠时,方法500可包含在510处将输入页面大小指示及输入虚拟地址写入到TLB的第二条目。当至少一个条目页面与输入页面重叠时,方法500可包含在512处输出指示写入失败的执行结果。图5的方法500因此可使得能够执行单个指令以检查TLB中的重叠及在未检测到重叠的情况下在TLB中创建新条目。
在特定实施例中,图5的方法500可通过DSP、CPU、控制器、现场可编程门阵列(FPGA)装置、专用集成电路(ASIC)、另一硬件装置、固件装置或其任何组合来实施。作为一实例,可由执行指令的处理器来执行图5的方法500,如关于图6所描述。
参看图6,展示电子装置600的框图。在特定实施例中,电子装置600或其组件可包含在通信装置、计算装置、个人数字助理(PDA)、娱乐单元、机顶盒、音乐播放器、视频播放器、导航装置、固定位置数据单元或其任何组合中。
电子装置600包含耦合到存储器632的处理器(例如,DSP)610。处理器610可为多核心处理器及/或包含多个硬件线程。举例来说,处理器610可支持内插多线程执行。
图6包含耦合到处理器610并耦合到显示器628的显示控制器626。译码器/解码器(编码解码器)634可耦合到处理器610。扬声器636及麦克风638可耦合到编码解码器634。图6还指示无线控制器640可耦合到处理器610并且耦合到天线642(例如,经由射频(RF)接口)。
存储器632可为包含可执行指令的有形的非暂时性计算机可读或处理器可读存储媒体。所述指令可由例如处理器610等处理器执行以执行本文所描述的各种功能及方法,包含图3、4及5的方法300、400及500。举例来说,存储器632可存储重叠检查指令260及条件性TLB写入指令262。指令260及262的执行可触发处理器610的TLB 270处的重叠检查操作。举例来说,此类重叠检查操作可涉及TLB条目272、输入逻辑274、重叠检查逻辑276,及/或写入逻辑278,如参看图2所描述。
在特定实施例中,处理器610、显示控制器626、存储器632、编码解码器634及无线控制器640包含在***级封装或***单芯片装置622中。在特定实施例中,输入装置630及电力供应器644耦合到***单芯片装置622。此外,在特定实施例中,如图6中所说明,显示器628、输入装置630、扬声器636、麦克风638、天线642及电力供应器644在***单芯片装置622外部。然而,显示器628、输入装置630、扬声器636、麦克风638、天线642及电力供应器644中的每一者可耦合到***单芯片装置622的组件,例如接口或控制器。
结合所描述实施例,一种设备包含用于存储至少一个条目的装置。所述至少一个条目包含对应于条目页面的条目虚拟地址及条目页面大小指示。举例来说,用于存储的装置可为图1的TLB 130、图2的TLB 270、经配置以存储数据的另一装置或模块,或其任何组合。
所述设备还可包含用于接收对应于输入页面的输入页面大小指示及输入虚拟地址的装置。举例来说,用于接收的装置可包含图1的输入逻辑110、图2的输入逻辑274、经配置以接收数据的另一装置或模块,或其任何组合。
所述设备可进一步包含用于基于条目页面大小指示与输入页面大小指示的比较确定计算的页面大小的装置。举例来说,用于确定的装置可包含图1的页面大小计算逻辑122、图2的重叠检查逻辑276、经配置以计算页面大小的另一装置或模块,或其任何组合。
所述设备可包含用于基于计算的页面大小执行输入虚拟地址与条目虚拟地址的隐蔽比较以确定输入页面是否与条目页面重叠的装置。举例来说,用于执行隐蔽比较的装置可包含图1的隐蔽比较逻辑124、图2的重叠检查逻辑276、经配置以执行隐蔽比较的另一装置或模块,或其任何组合。
所属领域的技术人员将进一步了解,结合本文所揭示的实施例描述的逻辑块、配置、模块、电路及算法步骤可实施为电子硬件、由处理器执行的计算机软件或两者的组合。上文已大体在其功能性方面描述各种说明性组件、块、配置、模块、电路及步骤。此类功能性是实施为硬件还是处理器可执行指令取决于特定应用及强加于整个***的设计约束。所属领域的技术人员可针对每一特定应用以不同方式实施所描述功能性,但此类实施决策不应被解释为会造成对本发明的范围的偏离。
结合本文所揭示的实施例而描述的方法或算法的步骤可直接体现在硬件中、在由处理器执行的软件模块中或在所述两者的组合中。软件模块可驻留在随机存取存储器(RAM)、快闪存储器、只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)电可擦除可编程只读存储器(EEPROM)、寄存器、硬盘、装卸式磁盘、压缩光盘只读存储器(CD-ROM)、数字影音光盘(DVD)或所属领域中已知的任何其它形式的非暂时性存储媒体中。示范性存储媒体耦合到处理器,使得处理器可从存储媒体读取信息及将信息写入到存储媒体。在替代方案中,存储媒体可与处理器成一体式。处理器及存储媒体可驻留在专用集成电路(ASIC)中。ASIC可驻留在计算装置或用户终端中。在替代方案中,处理器及存储媒体可作为离散组件驻留在计算装置或用户终端中。
提供对所揭示实施例的先前描述以使得所属领域的技术人员能够制作或使用所揭示实施例。所属领域的技术人员将容易显而易见对这些实施例的各种修改,且可将本文定义的原理应用到其它实施例而不偏离本发明的范围。因此,本发明并不希望限于本文展示的实施例,而应符合与如通过所附权利要求书界定的原理及新颖特征一致的可能的最宽范围。

Claims (19)

1.一种管理转译后备缓冲器的方法,所述方法包括:
在转译后备缓冲器TLB处接收输入虚拟地址及输入页面大小指示,所述输入虚拟地址及所述输入页面大小指示对应于输入页面;
确定由所述输入页面大小指示表示的输入页面大小与由所述TLB的条目的条目页面大小指示表示的条目页面大小之中的较大者,其中所述TLB的所述条目对应于条目页面;
选择所确定的所述输入页面大小与所述条目页面大小之中的所述较大者作为第一选定页面大小;
基于所述第一选定页面大小执行所述输入虚拟地址与所述条目的条目虚拟地址的第一隐蔽比较;以及
在执行所述第一隐蔽比较之后,基于所述TLB作出的所述TLB含有未进行检验的条目的确定,选择性地执行第二隐蔽比较。
2.根据权利要求1所述的方法,其中执行所述第一隐蔽比较包括:
确定所述输入虚拟地址与所述条目虚拟地址中待隐蔽掉的位的数目,所述位的数目基于所述第一选定页面大小;以及
确定所述输入页面是否与所述条目页面重叠。
3.根据权利要求1所述的方法,其进一步包括:
在确定所述TLB含有未进行检验的条目之后:
比较所述TLB的第二条目的第二条目页面大小指示与所述输入页面大小指示以识别所述输入页面大小与第二条目页面大小之中的较大者,其中所述TLB的所述第二条目对应于第二条目页面;
选择所识别的所述输入页面大小与所述第二条目页面大小之中的所述较大者作为第二选定页面大小;以及
基于所述第二选定页面大小执行所述输入虚拟地址与所述第二条目的第二条目虚拟地址的所述第二隐蔽比较以确定所述输入页面是否与所述第二条目页面重叠,其中执行所述第二隐蔽比较包括基于所述第二选定页面大小确定所述输入虚拟地址与所述第二条目虚拟地址中待隐蔽掉的位的第二数目。
4.根据权利要求3所述的方法,其中所述第一选定页面大小不同于所述第二选定页面大小,且其中所述第一选定页面大小对应于所述输入页面大小,所述第二选定页面大小对应于所述第二条目页面大小。
5.根据权利要求3所述的方法,其进一步包括:在比较所述第二条目页面大小指示与所述输入页面大小指示之前,将所述第二条目页面识别为所述TLB的未进行检验的条目。
6.一种用于管理转译后备缓冲器的设备,所述设备包括:
处理器,其经配置以执行重叠检查指令,所述重叠检查指令包括对应于输入页面的输入页面大小指示及输入虚拟地址,所述处理器包括:
转译后备缓冲器TLB,其包括至少一个条目,所述至少一个条目包含对应于条目页面的条目虚拟地址及条目页面大小指示;
输入逻辑,其经配置以接收所述输入页面大小指示及所述输入虚拟地址;以及重叠检查逻辑,其经配置以进行以下操作:
确定由所述输入页面大小指示表示的输入页面大小与由所述条目页面大小指示表示的条目页面大小之中的较大者;
选择所确定的所述输入页面大小与所述条目页面大小之中的所述较大者作为第一选定页面大小;
基于所述选定页面大小确定所述重叠检查指令的结果,其中所述结果基于所述输入页面是否与所述条目页面重叠;以及
在确定所述重叠检查指令的所述结果之后,基于所述TLB作出的所述TLB含有未进行检验的条目的确定,选择性地确定第二重叠检查的第二结果;以及寄存器,其经配置以从所述重叠检查逻辑接收一或多个结果。
7.根据权利要求6所述的设备,其中所述重叠检查逻辑包括存储在所述处理器处的专用重叠检查逻辑。
8.根据权利要求6所述的设备,其中所述至少一个条目进一步包含应用程序空间识别符ASID及全局指示,其中所述输入逻辑经进一步配置以接收输入ASID,且其中所述重叠检查逻辑经进一步配置以进行以下操作:
响应于所述全局指示具有第一值,基于所述ASID与所述输入ASID的比较,确定所述输入页面是否与所述条目页面重叠;以及
响应于所述全局指示具有第二值,独立于所述ASID与所述输入ASID,确定所述输入页面是否与所述条目页面重叠。
9.根据权利要求6所述的设备,其中所述输入页面大小指示是通过第一掩码或所述输入页面大小来表示,且其中所述条目页面大小指示是通过第二掩码或所述条目页面大小来表示。
10.根据权利要求6所述的设备,其中所述至少一个条目包含映射到所述条目虚拟地址的物理地址、应用程序空间识别符ASID、高速缓存能力指示、权限指示、全局指示或其任何组合。
11.一种执行重叠检查指令的方法,所述方法包括:
在处理器处执行重叠检查指令,其中所述重叠检查指令包含对应于输入页面的输入虚拟地址及输入页面大小指示,且其中执行所述重叠检查指令包含:
确定由所述输入页面大小指示表示的输入页面大小与由转译后备缓冲器TLB的条目的条目页面大小指示表示的条目页面大小之中的较大者;
选择所确定的所述输入页面大小与所述条目页面大小之中的所述较大者作为第一选定页面大小;
基于所述第一选定页面大小执行所述输入虚拟地址与所述条目的条目虚拟地址的隐蔽比较以确定所述输入页面是否与条目页面重叠;
在执行所述隐蔽比较之后,基于所述TLB作出的所述TLB含有未进行检验的条目的确定,选择性地执行第二隐蔽比较;以及
基于关于所述输入页面是否与所述条目页面重叠的所述确定且基于所述TLB并不含有未进行检验的条目的确定,输出执行结果;以及
基于所述执行结果,选择性地更新所述TLB,其中选择性地更新所述TLB包括:响应于所述执行结果指示不重叠,将所述输入页面大小及所述输入虚拟地址写入到所述TLB的第二条目。
12.根据权利要求11所述的方法,其进一步包括基于所述执行结果选择性地更新所述TLB,其中选择性地更新所述TLB包括响应于所述执行结果指示重叠而维持所述TLB,且其中所述执行结果包括布尔型输出。
13.根据权利要求11所述的方法,其中所述处理器包括专用重叠检查逻辑以执行所述重叠检查指令,且其中执行所述重叠检查指令进一步包括将所述执行结果存储在所述处理器的寄存器中。
14.一种执行条件性转译后备缓冲器写入指令的方法,所述方法包括:
在包含转译后备缓冲器TLB的处理器处执行条件性TLB写入指令,其中所述TLB包含具有对应于条目页面的条目虚拟地址及条目页面大小指示的第一条目,且其中所述条件性TLB写入指令包含对应于输入页面的输入虚拟地址及输入页面大小指示,
其中执行所述条件性TLB写入指令包括:
确定由所述输入页面大小指示表示的输入页面大小与由所述条目页面大小指示表示的条目页面大小之中的较大者;
选择所确定的所述输入页面大小与所述条目页面大小之中的所述较大者作为第一选定页面大小;
基于所述第一选定页面大小执行所述输入虚拟地址与所述条目虚拟地址的隐蔽比较以确定所述输入页面是否与所述条目页面重叠;
在执行所述隐蔽比较之后,基于所述TLB作出的所述TLB含有未进行检验的条目的确定,选择性地执行第二隐蔽比较;以及
响应于确定所述输入页面并不与所述条目页面重叠以及确定所述TLB并不含有未进行检验的条目,将所述输入页面大小指示及所述输入虚拟地址写入到所述TLB的第二条目。
15.根据权利要求14所述的方法,其中执行所述条件性TLB写入指令进一步包括响应于确定所述输入页面与所述条目页面重叠,输出指示写入失败的执行结果,且其中所述执行结果识别对应于与所述输入页面重叠的一或多个条目页面的所述TLB的条目的数目,识别对应于与所述输入页面重叠的特定条目页面的所述TLB的特定条目,或其组合。
16.一种用于管理转译后备缓冲器的设备,所述设备包括:
用于在转译后备缓冲器TLB处接收指令的装置,所述指令包括对应于输入页面的输入页面大小指示及输入虚拟地址;
用于确定所述TLB的条目页面的条目页面大小指示与所述输入页面大小指示之中的较大者的装置;
用于选择所确定的所述输入页面大小指示与所述条目页面大小指示之中的所述较大者作为第一选定页面大小指示的装置;以及
用于基于所述选定页面大小指示执行所述输入虚拟地址与对应于所述条目页面的条目虚拟地址的第一隐蔽比较以确定所述输入页面是否与所述条目页面重叠,并且在执行所述第一隐蔽比较之后,基于所述TLB作出的所述TLB含有未进行检验的条目的确定,选择性地执行第二隐蔽比较的装置。
17.根据权利要求16所述的设备,其中所述指令是重叠检查指令或条件性转译后备缓冲器TLB写入指令。
18.一种非暂时性处理器可读媒体,其包括:
重叠检查指令;
其中所述重叠检查指令包含对应于输入页面的输入虚拟地址及输入页面大小指示;以及
其中所述重叠检查指令可由包含转译后备缓冲器TLB的处理器执行以进行以下操作:
确定由所述输入页面大小指示表示的输入页面大小与由所述TLB的条目页面的条目页面大小指示表示的条目页面大小之中的较大者;
选择所确定的所述输入页面大小与所述条目页面大小之中的所述较大者作为选定页面大小;
基于所述选定页面大小执行所述输入虚拟地址与所述条目的条目虚拟地址的隐蔽比较以确定所述输入页面是否与所述条目页面重叠;
在执行所述隐蔽比较之后,基于所述TLB作出的所述TLB含有未进行检验的条目的确定,选择性地执行第二隐蔽比较;以及
部分基于所述隐蔽比较输出执行结果。
19.一种非暂时性处理器可读媒体,其包括:
条件性转译后备缓冲器TLB写入指令;
其中所述条件性TLB写入指令包含对应于输入页面的输入虚拟地址及输入页面大小指示;且
其中所述条件性TLB写入指令可由包含TLB的处理器执行,所述TLB包含具有对应于条目页面的条目虚拟地址及条目页面大小指示的第一条目,以进行以下操作:
确定由所述输入页面大小指示表示的输入页面大小与由所述条目页面大小指示表示的条目页面大小之中的较大者;
选择所确定的所述输入页面大小与所述条目页面大小之中的所述较大者作为选定页面大小;
基于所述选定页面大小执行所述输入虚拟地址与所述条目虚拟地址的隐蔽比较以确定所述输入页面是否与所述条目页面重叠;
在执行所述隐蔽比较之后,基于所述TLB作出的所述TLB含有未进行检验的条目的确定,选择性地执行第二隐蔽比较;以及
响应于确定所述输入页面并不与所述条目页面重叠以及确定所述TLB并不含有未进行检验的条目,将所述输入页面大小指示及所述输入虚拟地址写入到所述TLB的第二条目。
CN201480003984.7A 2013-01-15 2014-01-10 针对转译后备缓冲器(tlb)的重叠检查 Expired - Fee Related CN104885063B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/741,981 US9208102B2 (en) 2013-01-15 2013-01-15 Overlap checking for a translation lookaside buffer (TLB)
US13/741,981 2013-01-15
PCT/US2014/011027 WO2014113286A2 (en) 2013-01-15 2014-01-10 Overlap checking for a translation lookaside buffer (tlb)

Publications (2)

Publication Number Publication Date
CN104885063A CN104885063A (zh) 2015-09-02
CN104885063B true CN104885063B (zh) 2018-01-02

Family

ID=50030520

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480003984.7A Expired - Fee Related CN104885063B (zh) 2013-01-15 2014-01-10 针对转译后备缓冲器(tlb)的重叠检查

Country Status (6)

Country Link
US (1) US9208102B2 (zh)
EP (1) EP2946297B1 (zh)
JP (1) JP5922317B2 (zh)
KR (1) KR101623465B1 (zh)
CN (1) CN104885063B (zh)
WO (1) WO2014113286A2 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2536205A (en) * 2015-03-03 2016-09-14 Advanced Risc Mach Ltd Cache maintenance instruction
US10372618B2 (en) * 2016-10-14 2019-08-06 Arm Limited Apparatus and method for maintaining address translation data within an address translation cache
WO2018100363A1 (en) 2016-11-29 2018-06-07 Arm Limited Memory address translation
US10083126B2 (en) * 2016-12-06 2018-09-25 Arm Limited Apparatus and method for avoiding conflicting entries in a storage structure
US11106596B2 (en) * 2016-12-23 2021-08-31 Advanced Micro Devices, Inc. Configurable skewed associativity in a translation lookaside buffer
US10831673B2 (en) 2017-11-22 2020-11-10 Arm Limited Memory address translation
US10866904B2 (en) 2017-11-22 2020-12-15 Arm Limited Data storage for multiple data types
US10929308B2 (en) * 2017-11-22 2021-02-23 Arm Limited Performing maintenance operations

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US6233652B1 (en) * 1998-10-30 2001-05-15 Intel Corporation Translation lookaside buffer for multiple page sizes
US6560689B1 (en) * 2000-03-31 2003-05-06 Intel Corporation TLB using region ID prevalidation

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4654790A (en) * 1983-11-28 1987-03-31 Amdahl Corporation Translation of virtual and real addresses to system addresses
JPH06202954A (ja) * 1992-12-28 1994-07-22 Fujitsu Ltd タグ比較回路及びこれを用いたトランスレーション・ルック・アサイド・バッファ
JPH08329687A (ja) * 1995-06-05 1996-12-13 Hitachi Ltd 半導体集積回路
WO1996012231A1 (en) 1994-10-14 1996-04-25 Silicon Graphics, Inc. A translation buffer for detecting and preventing conflicting virtual addresses from being stored therein
US5630087A (en) 1994-11-02 1997-05-13 Sun Microsystems, Inc. Apparatus and method for efficient sharing of virtual memory translations
US6549997B2 (en) * 2001-03-16 2003-04-15 Fujitsu Limited Dynamic variable page size translation of addresses
US6643759B2 (en) * 2001-03-30 2003-11-04 Mips Technologies, Inc. Mechanism to extend computer memory protection schemes
US20070005932A1 (en) * 2005-06-29 2007-01-04 Intel Corporation Memory management in a multiprocessor system
US8195916B2 (en) 2009-03-04 2012-06-05 Qualcomm Incorporated Apparatus and method to translate virtual addresses to physical addresses in a base plus offset addressing mode
US8635428B2 (en) 2009-12-09 2014-01-21 Oracle America, Inc. Preventing duplicate entries in a non-blocking TLB structure that supports multiple page sizes
JP5459006B2 (ja) 2010-03-24 2014-04-02 富士通株式会社 メモリ管理装置、メモリ管理方法及びメモリ管理プログラム
US20110295587A1 (en) 2010-06-01 2011-12-01 Eeckhout Lieven Methods and systems for simulating a processor

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US6233652B1 (en) * 1998-10-30 2001-05-15 Intel Corporation Translation lookaside buffer for multiple page sizes
US6560689B1 (en) * 2000-03-31 2003-05-06 Intel Corporation TLB using region ID prevalidation

Also Published As

Publication number Publication date
KR101623465B1 (ko) 2016-05-23
CN104885063A (zh) 2015-09-02
EP2946297B1 (en) 2019-02-27
KR20150108361A (ko) 2015-09-25
US9208102B2 (en) 2015-12-08
WO2014113286A3 (en) 2014-09-12
JP5922317B2 (ja) 2016-05-24
US20140201494A1 (en) 2014-07-17
WO2014113286A2 (en) 2014-07-24
JP2016507096A (ja) 2016-03-07
EP2946297A2 (en) 2015-11-25

Similar Documents

Publication Publication Date Title
CN104885063B (zh) 针对转译后备缓冲器(tlb)的重叠检查
US7426626B2 (en) TLB lock indicator
KR101072645B1 (ko) 마이크로프로세서내의 예외­트리거링 페이지를 표시하기 위한 방법 및 장치
EP2591420B1 (en) System and method to manage a translation lookaside buffer
US8832383B2 (en) Delayed replacement of TLB entries
US10083126B2 (en) Apparatus and method for avoiding conflicting entries in a storage structure
US20120173843A1 (en) Translation look-aside buffer including hazard state
US9804969B2 (en) Speculative addressing using a virtual address-to-physical address page crossing buffer
KR20180058797A (ko) 데이터 매칭을 통한 캐시 라인 중복제거를 위한 방법 및 장치
US8966320B2 (en) Fault inspection unit, central processing unit, and fault inspection method
US20170024138A1 (en) Memory management
US8539209B2 (en) Microprocessor that performs a two-pass breakpoint check for a cache line-crossing load/store operation
EP2620875B1 (en) Address translation inspection device, central processing device, and address translation inspection method
EP2562652B1 (en) System and method for locking data in a cache memory
CN107533513B (zh) 突发转换后备缓冲器
US7899965B2 (en) Managing message signaled interrupts
TW200931443A (en) Apparatus for predicting memory access and method thereof
US11853597B2 (en) Memory management unit, method for memory management, and information processing apparatus
JP2010108381A (ja) 集積回路、集積回路の制御方法および半導体デバイス
US20160162412A1 (en) Completion packet return
US9274794B2 (en) Processor and instruction processing method in processor
US20160124859A1 (en) Computing system with tiered fetch mechanism and method of operation thereof
JPH0290345A (ja) メモリシステム
JPH10283253A (ja) 制御装置
JPH0561775A (ja) アクセス権検査装置

Legal Events

Date Code Title Description
PB01 Publication
EXSB Decision made by sipo to initiate 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: 20180102

Termination date: 20220110

CF01 Termination of patent right due to non-payment of annual fee