专利名称:管理翻译旁视缓冲器的系统和方法
技术领域:
本发明大体上涉及管理翻译旁视缓冲器。
背景技术:
技术的进步已产生更小且更强大的计算装置。举例来说,当前存在多种便携式个人计算装置,包括无线计算装置,例如,便携式无线电话、个人数字助理(PDA)和寻呼装置,其体积小、重量轻且易于由用户携带。更具体来说,便携式无线电话(例如蜂窝式电话和因特网协议(IP)电话)可经由无线网络传送语音和数据包。许多这些无线电话并入有额外装置以便为终端用户提供增强的功能性。举例来说,无线电话还可包括数字静态相机、数字视频相机、数字记录器和音频文件播放器。而且,此些无线电话可处理可执行指令,可执行 指令包括可用以接入因特网的软件应用程序,例如网页浏览器应用程序。因而,这些无线电话可包括相当大的计算能力。可经由使用包括翻译旁视缓冲器(TLB)的存储器管理单元(MMU)而增强计算装置的数据存储容量。TLB可通过存储条目而有助于计算装置快速执行翻译,所述条目将虚拟地址映射到存储器(例如,随机存取存储器(RAM))内的对应物理地址。在多个线程共享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中的TLB条目时接收到未命中。处理器可因此接收和处理包括多个指令的极长指令字(VLIff)包,其具有如下要求在针对所述VLIW包中需要翻译的所有指令而设定第一字段(使用位)之后完成所有多个指令的执行而不会接收到未命中的TLB条目错误。所揭示的实施例中的至少一者所提供的另一特定优势为,当存储器指令需要所述翻译的另一输出时(例如,在存储器指令的重放期间),微TLB可输出所述翻译而不执行存储器指令的地址与微TLB的翻译条目的新比较。在此状况下,微TLB可通过在存储器指令的翻译期间跳过比较来减少电力消耗。本发明的其它方面、优势和特征将在审阅包括以下部分的完整申请案之后变得显而易见
具体实施方式
和权利要求书。
图I为使多个翻译旁视缓冲器同步的系统的特定说明性实施例的方框图;图2为基于第一字段和第二字段而执行地址的翻译的图I的第一翻译旁视缓冲器的特定说明性实施例的图;图3为基于第一字段和第二字段而执行地址的翻译的图I的第一翻译旁视缓冲器的第二说明性实施例的图;图4为基于第一字段和第二字段而管理图I的第一翻译旁视缓冲器的方法的特定说明性实施例的流程图;图5为基于第一字段和第二字段而管理图I的第一翻译旁视缓冲器的方法的第二说明性实施例的流程图;以及图6为包括图I的第一翻译旁视缓冲器的无线通信装置的特定实施例的方框图。
具体实施例方式参看图1,展示使多个翻译旁视缓冲器同步的系统100。系统100包括处理器102,处理器102包括第一翻译旁视缓冲器(TLB) 108和第二 TLB 106。第二 TLB 106可为联合TLB,其包括由处理器102的多个线程共享的条目。第一 TLB 108可为微TLB,其包括从第二 TLB 106复制以供特定线程专门使用的条目。举例来说,处理器102可针对每一线程包括一微TLB。处理器102可使第一 TLB 108中的翻译条目112同步成与第二 TLB106中的对应翻译条目110匹配。第一 TLB 108包括第一字段114,其指示翻译条目112是否正被使用;以及第二字段116,其指示翻译条目112是否与第二 TLB 106中的对应翻译条目110匹配。处理器102可经配置以接收第一地址140且将第一地址140翻译为存储器104的第二地址142。举例来说,第一地址140可为虚拟页号(VPN),且第二地址142可为物理页号(PPN)。用以执行所述翻译的信息可存储为联合TLB (例如,第二 TLB 106)中的翻译条目(例如,翻译条目110)。举例来说,翻译条目110可将特定VPN映射到对应的PPN。处理器102可经配置以确定微TLB (例如,第一 TLB 108)是否包括翻译条目110的副本。基于所述确定,处理器102可使第一 TLB 108的翻译条目112同步成与第二 TLB 106的翻译条目110匹配。处理器102可经配置以使用第一 TLB 108的翻译条目112来执行第一地址140变为第二地址142的翻译。举例来说,当一特定线程正在执行存储器指令118时,处理器102可使用对应于所述特定线程的微TLB (例如,第一 TLB 108)来执行所述翻译。处理器102可经配置以追踪第一 TLB 108中的翻译条目112是否在使用中。当处理器102已使用翻译条目112来执行第一地址140的翻译且已开始存储器指令118的执行但未完成存储器指令118的执行时,翻译条目112可在使用中。在此状况下,可由处理器102设定第一 TLB 108的第一字段114以指示处理器102的特定线程正在使用翻译条目112。当存储器指令118已完成执行时,处理器102可清除第一字段114以指示第一 TLB 108中的翻译条目112不再在使用中。另外,当存储器指令118的执行已被中止或处理器102在存储器指令118的执行期间接收到中断160时,可清除第一字段114。处理器102还可经配置以在存储器指令118的执行完成之前阻止第一 TLB 108中 的翻译条目112被分配到另一存储器指令。举例来说,当第一字段114被设定时,处理器102可阻止翻译条目112专用于另一存储器指令。在此状况下,当处理器102在第一字段114被设定时接收到针对翻译条目112的替换请求时,处理器102将所述替换请求重新路由到第一 TLB 108中的第二条目(图中未展示)。所述第二条目可具有未被设定的对应第一字段。因此,一旦翻译条目112经分配到特定存储器指令(例如,存储器指令118),便可在存储器指令118完成执行之前阻止翻译条目112改变。处理器102可经配置以在存储器指令118正在执行的同时更新或移除第二 TLB106中的翻译条目110。举例来说,在存储器指令118的执行期间,在处理器102的第二线程正在使用第一 TLB翻译条目112时,处理器102的第一线程可更新第二 TLB 106中的翻译条目110。在此状况下,第一 TLB 108中的翻译条目112将与第二 TLB 106中的对应翻译条目110不匹配(即,在翻译条目110经更新之后)。处理器102可经配置以追踪翻译条目112是否与第二 TLB 106中的对应条目110匹配。举例来说,当将翻译条目110从第二 TLB 106复制到第一 TLB 108的翻译条目112中时,处理器102可设定第二字段116以指示两个翻译条目110、112匹配。当更新、移除或以其它方式改变对应的翻译条目110时,处理器102可清除第二字段116以指示两个条目110、112不匹配。处理器102可经配置以基于第一 TLB 108的第一字段114和第二字段116来使第一 TLB 108中的翻译条目112同步成与第二 TLB 106中的翻译条目110匹配。举例来说,当第一字段114指示第一 TLB 108中的翻译条目112正由正在执行一指令(例如,存储器指令118)的特定线程使用时,处理器102可经配置以阻止翻译条目112被改变,不管第二字段116是否指示条目110、112不匹配。作为另一实例,当第一字段114指示第一 TLB 108中的翻译条目112不在使用中时,处理器102可经配置以基于第二字段116是否指示条目110、112不匹配而使翻译条目112与第二 TLB 106中的对应翻译条目110同步。通过基于第一字段114和第二字段116来使第一 TLB 108内的特定条目同步,处理器102在第一 TLB 108中的翻译条目(例如,翻译条目112)的使用完成之后执行所述翻译条目的同步。因为在存储器指令118已完成执行之后更新第一 TLB条目112,所以第一 TLB条目112在存储器指令118的整个执行过程中留存于第一 TLB 108中。因此,处理器102的使用第一 TLB翻译条目112的特定线程在存储器指令118的执行期间不会接收到TLB未命中错误。防止TLB未命中错误可改进处理器102和存储器104的性能。参看图2,其展示包括图I的第一翻译旁视缓冲器(TLB) 108的系统200的特定实施例。第一 TLB 108可包括经配置以确定一个或一个以上地址是否与第一 TLB 108内的翻译条目(例如,翻译条目112)匹配的比较电路240。举例来说,第一 TLB 108可经配置以翻译来自极长指令字(VLIW)包201的多个地址。在此状况下,第一 TLB 108的一条目可对应于VLIW包201中的多个指令,例如VLIW包201的第一“时隙”中的第一指令203和VLIW包201的第二“时隙”中的第二指令207。第一指令203可具有第一地址205且第二指令207可具有第二地址209。举例来说,第一指令203可为用以加载存储于第一地址205处的数据的指令。响应于比较电路240确定所述地址中的至少一者(例如,第一地址205或第二地址209)与翻译条目112匹配,第一 TLB 108可使用翻译条目112来产生经翻译地址242。在此状况下,第一字段114可被设定以指示翻译条目112正由特定指令使用。举例来说,第一字段114的第一时隙260可指示翻译条目112是否正由第一指令203使用,且第一字段 114的第二时隙262可指示翻译条目112是否正由VLIW包201的第二指令207使用。当第一时隙260和第二时隙262中的一者指示翻译条目112在使用中时,在第一指令203、第二指令207或两者已完成执行之前,翻译条目112可在第一 TLB 108中保持不变。举例来说,如果第一字段114的所述时隙中的至少一者指示翻译条目112在使用中,则可不更新翻译条目112 (例如,与另一翻译旁视缓冲器同步)。举例来说,当特定指令未完成执行且因此被重放时,翻译条目112可继续“在使用中”。在此状况下,可绕过对与所述指令相关联的地址是否与第一 TLB 108中的翻译条目匹配的确定。举例来说,当第一字段114的第一时隙260被设定以指示翻译条目112在使用中时,可阻止252比较电路240比较第一地址205与翻译条目112。在此状况下,第一 TLB108可使用表示第一字段114的第一时隙260的经编码向量250来将第一地址205翻译为经翻译地址242。通过绕过对第一地址205与第一 TLB 108中的条目的比较且改为依靠表示第一字段114的向量,可更快速地且在电力消耗更少的情况下执行第一 TLB 108对地址的翻译。图3包括比较电路240的特定实施例且进一步解释其中比较电路240可确定或被阻止确定存储器地址是否与第一 TLB 108内的条目匹配的条件。参看图3,展示基于第一字段和第二字段来执行地址的翻译的第一翻译旁视缓冲器(TLB) 108的特定实施例。第一 TLB 108可包括对应于多个线程的条目。举例来说,第一TLB 108包括与第一线程相关联的第一条目302和第二条目306,以及与第二线程相关联的第一条目304和第二条目308。每一条目302、304、306、308可包括第二字段、多个第一字段和用以翻译存储器地址的其它信息。第一 TLB 108包括基于翻译条目来执行存储器地址的翻译的电路。举例来说,第一 TLB 108包括第一多路复用器357和第三多路复用器359,第一多路复用器357和第三多路复用器359经配置以输出第一 TLB 108内的条目的虚拟页号(VPN、掩码、字段I、字段2)。第一 TLB 108还包括比较电路(例如,图2的比较电路240)。在一特定实施例中,比较电路可包括第一比较器365、第二比较器366、第三比较器367和第四比较器368。比较器365到368可经配置以比较第一 TLB 108中的条目的VPN与极长指令字(VLIW)包201的地址。第一 TLB 108进一步包括第二多路复用器358、第四多路复用器360、第五多路复用器361、第六多路复用器362、第七多路复用器363和第八多路复用器364,所述多路复用器经配置以在VLIW包201的特定地址与第一 TLB 108的条目的VPN匹配时选择和输出物理页号_队1 、1、1高速缓冲属性)。如图2中所论述,第一 TLB 108的一条目可对应于VLIW包201中的多个指令,例如VLIW包201的第一“时隙”中的第一指令203和VLIW包201的第二 “时隙”中的第二指令207。一条目的第一时隙的第一字段(即,“时隙I字段I”)可指示特定条目是否正由第一存储器指令203使用,且所述特定条目的第二时隙的第一字段(即,“时隙2字段I”)可指示所述条目是否正由VLIW包201的第二存储器指令207使用。第一 TLB 108的每一条目还可包括第二字段(例如,图I的第二字段116)。第二字段可指示特定条目是否与另一 TLB中的对应条目匹配。举例来说,第一 TLB 108的条目可对应于联合TLB (例如,图I的第二 TLB 106)的条目。在此状况下,当更新或移除联合TLB的特定条目时,可设定或清除第二字段以指示第一 TLB 108中的对应条目是否与联合TLB中的对应条目匹配。举例来说,当特定条目的第二字段被设定时,第一 TLB 108中的条目可 与对应的联合TLB条目匹配。或者,当清除所述特定条目的第二字段时,联合TLB条目可能已改变且因此与第一 TLB 108中的条目不匹配。响应于确定第二字段被清除,处理器(例如,图I的处理器102)可选择性地使第一 TLB 108中的所述特定条目同步成与对应的联合TLB条目匹配。第一 TLB 108的每一条目可包括虚拟页号(VPN)、掩码、高速缓冲能力属性、物理页号(PPN)和一个或一个以上权限(permission)。VPN可为由程序中的存储器指令所使用的地址。掩码可与VPN —起用来确定存储器中的对应于所述VPN的PPN。高速缓冲能力属性可指示是否可高速缓冲特定条目。权限可包括读取权限指示符、写入权限指示符和用户权限指示符,所述指示符分别指示特定条目是否可用来读取或写入以及与所述条目相关联的特定用户是否具有使用所述条目的权限。所述TLB中的所述条目还可包括第二 TLB的索引号。索引号可指示另一 TLB(例如图I的第二 TLB 106)中的对应条目。在此状况下,当第二 TLB 106中的对应条目被更新时,所述对应条目的索引号可用以识别第一 TLB 108中的条目以进行同步。第一线程的第一条目302可包括变换信息,例如第二字段310、第一时隙的第一字段311、第二时隙的第一字段312、VPN 314、掩码316、高速缓冲能力属性318、PPN 319、读取权限指示符320、写入权限指示符321、用户权限指示符322和来自第二 TLB的条目的索引号323。第一 TLB 108还可包括对应于所述第一线程的第二条目(“T1E2”306)。在此状况下,与第一线程相关联的第二条目306可包括翻译信息335到345。作为另一实例,第二线程可与包括翻译信息324到334的第一条目(“T2E1”304)和包括翻译信息346到356的第二条目(“T2E2”308)相关联。比较器365到368可经配置以基于线程选择信号383而输出第一 TLB 108中的条目的VPN。线程选择信号383可指示特定线程当前是否由处理器(例如,图I的处理器102)选择。举例来说,当线程选择信号383指示第一线程正由处理器执行时,第一多路复用器357的输出387可为第一线程的第一条目302的VPN 314,且第三多路复用器359的输出388可为第一线程的第二条目306的VPN 338。或者,当线程选择信号383指示第二线程正由处理器执行时,第一多路复用器357的输出387可为第二线程的第一条目304的VPN 327,且第三多路复用器359的输出388可为第二线程的第二条目308的VPN349。可将第一多路复用器357的输出387传输到第一比较器365和第三比较器367。可将第三多路复用器359的输出388传输到第二比较器366和第四比较器368。每一比较器365到368可经配置以比较一条目与VLIW包201的一地址的特定时隙。举例来说,第一比较器365可比较第一 TLB 108的第一条目的地址(例如,VPN 327、314)与VLIW包201的第二存储器指令207的第二地址209。第二比较器366可比较第一TLB108的第二条目的地址(例如,VPN 338,349)与VLIW包201的第二存储器指令207的第二地址209。第三比较器367可比较第一 TLB 108的第一条目的地址(例如,VPN 327、314)与VLIW包201的第一存储器指令203的第一地址205。第四比较器368可比较第一TLB 108的第二条目的地址(例如,VPN 338,349)与VLIW包201的第一存储器指令205的第一地址205。响应于在特定比较器处检测到匹配,所述比较器的输出可指示所述匹配。举例来说,当第一比较器365确定第一多路复用器357的输出387与VLIW包201的第二地址209 匹配时,第一比较器365的输出391可为逻辑一。在此状况下,第二比较器366可确定第三多路复用器359的输出388与第二地址209不匹配,且因此第二比较器366的输出392可为逻辑零。作为另一实例,当第三比较器367确定第一多路复用器357的输出387与VLIW包201的第一地址205匹配时,第三比较器367的输出393可为逻辑一。在此状况下,第四比较器368可确定第三多路复用器359的输出388与第一地址205不匹配,且因此第四比较器368的输出394可为逻辑零。第五多路复用器361可经配置以基于第一时隙指不符386产生输出395,输出395指示第一 TLB 108中的哪一条目与第一地址205匹配。输出395可为两个位,其中第一位指示第一条目是否经选定且第二位指示第二条目是否经选定。第一时隙指示符386可包括两个位。在图3中所说明的实施例中,第一时隙指示符386的第一位可对应于第一条目(例如,302、304)中的第一时隙的第一字段(例如,311、325),且第一时隙指示符386的第二位可对应于第二条目(例如,306、308)中的第一时隙的第一字段(例如,336、347)。所述第一位可使第五多路复用器361在第一条目(例如,302、304)的第一时隙在使用中时选择逻辑一值,且在第一条目(例如,302、304)的第一时隙不在使用中时选择输出393。所述第二位可使第五多路复用器361在第二条目(例如,306、308)的第一时隙在使用中时选择逻辑一值,且在第二条目(例如,306、308)的第一时隙不在使用中时选择输出394。类似地,输出391和输出392形成二位解码选择。举例来说,当输出391为逻辑零且输出392为逻辑一时,可在第八多路复用器364处选择第二条目(306、308)。或者,当输出391为逻辑一且输出392为逻辑零时,可在第八多路复用器364处选择第一条目(302、304)。当比较器365、366都不使第二地址209与第一条目或第二条目中的VPN匹配时,输出391、392的二位解码选择可为“00”且可致使第一 TLB 108请求从另一 TLB(例如,第二TLB 106)检索所述翻译。输出391、392的二位解码选择的“11”组合可不发生。第六多路复用器362可经配置以基于第二时隙指示符385来产生二位输出396,二位输出396指示第一 TLB 108中的哪一条目与第二地址207匹配。输出396可为两个位,其中第一位指示第一条目是否经选定且第二位指示第二条目是否经选定。第一时隙指示符386可包括第一位,其对应于第一条目(例如,302、304)中的第二时隙的第一字段(例如,312,326);以及第二位,其对应于第二条目(例如,306、308)中的第一时隙的第一字段(例如,336、347)。所述第一位可使第五多路复用器361在第一条目(例如,302、304)的第一时隙在使用中时选择逻辑一值,且在第一条目(例如,302、304)的第一时隙不在使用中时选择输出393。所述第二位可致使第五多路复用器361在第二条目(例如,306、308)的第一时隙在使用中时选择逻辑一值,且在第二条目(例如,306、308)的第一时隙不在使用中时选择输出394。类似地,输出393和输出394形成二位解码选择。举例来说,当输出393为逻辑零且输出394为逻辑一时,可在第七多路复用器363处选择第二条目(306、308)。或者,当输出393为逻辑一且输出394为逻辑零时,可在第七多路复用器363处选择第一条目(302、304)。当比较器367、368都不使第一地址205与第一条目或第二条目中的VPN匹配时,输出393、394的二位解码选择可为“00”且可使第一 TLB 108请求从另一 TLB(例如,第二 TLB106)检索所述翻译。输出393、394的二位解码选择的“11”组合可不发生。或者,第一时隙指示符386和第二时隙指示符385可呈经编码形式且存储于条目 302到308外部。举例来说,第一时隙指示符386的第一位可指示第一时隙是否在使用中(即,第一时隙的第一字段311、325、336、347中的一者),且第一时隙指示符386的第二位可指示哪一条目(例如,第一条目(例如,302、304)或第二条目(例如,306、308))具有在使用中的第一时隙。当第一时隙指示符386的第一位指示第一时隙在使用中且第二位指示第一条目302具有在使用中的第一时隙时,第五多路复用器361可选择“I”输入作为输出395的第一位。在此状况下,当第一时隙指示符386的第二位指示第一条目的第一时隙在使用中时,输出395还可向第七多路复用器363指示第一条目在使用中。或者,当第一时隙指示符386的第二位指示第二条目的第一时隙在使用中时,输出395还可向第七多路复用器363指示第二条目在使用中。举例来说,第五多路复用器361可选择“I”输入作为输出395的第二位。可使用第五多路复用器361的输出395来选择到第七多路复用器363的输入。第七多路复用器363可经配置以接收第二多路复用器358的输出389和第四多路复用器360的输出390。第二多路复用器358的输出389可为特定线程的第一条目的PPN 319、330。第四多路复用器360的输出390可为特定线程的第二条目的PPN 341、352。举例来说,当第五多路复用器361的输出395指示第一线程的第一条目302经选定时,第七多路复用器363选择第一线程的第一条目302的PPN 319作为输出397。作为另一实例,当第五多路复用器361的输出395指示第二线程的第二条目308经选定时,第七多路复用器363选择第二线程的第二条目308的PPN 352。第七多路复用器363可经配置以将作为输出397的选定PPN传输到(图I的处理器102的)管线以用于进一步处理。可使用第六多路复用器362的输出396来选择到第八多路复用器364的输入。第八多路复用器364可经配置以接收第二多路复用器358的输出389和第四多路复用器360的输出390。举例来说,当第六多路复用器362的输出396指示第一线程的第一条目302经选定时,第八多路复用器364选择第一线程的第一条目302的PPN 319作为输出398。作为另一实例,当第六多路复用器362的输出396指示第二线程的第二条目308经选定时,第八多路复用器364选择第二线程的第二条目308的PPN 352。第八多路复用器364可经配置以将作为输出398的选定PPN传输到管线以用于进一步处理。
如图I所描述,第一 TLB 108可经配置以基于第一 TLB 108的第一字段和第二字段使特定条目与另一 TLB(例如,第二 TLB 106)的对应条目同步。第一 TLB 108可经配置以分别响应于输入374、375、376、378而设定和清除第一时隙的第一字段311、325、336、347。举例来说,可在输入374处通过高逻辑信号来设定第一条目302的第一时隙的第一字段311。第一 TLB 108可经配置以分别响应于输入379到382而设定和清除第二时隙的第一字段312、326、337、348。举例来说,可在输入379处通过高逻辑信号来设定第一条目302的第二时隙的第一字段312。第一 TLB 108可经配置以分别响应于输入370到373而设定和清除第二字段310、324、335、346。举例来说,当对应条目110被复制到第一条目302中时,第一 TLB 108可经配置以通过在输入370处施加高逻辑信号而设定第二字段310。作为另一实例,当第二 TLB106中对应于第一条目302的条目110改变时,可在输入370处通过低逻辑信号来清除第二字段310。在操作期间,当特定线程开始第一存储器指令203的执行时,第一 TLB 108可确定与第一存储器指令203相关联的第一地址205的翻译是否包括于第一 TLB 108的条目中。·第一 TLB 108通过比较第一地址205与条目的VPN来执行所述确定。如果第一 TLB 108确定条目不包括所述翻译,则可从第二 TLB 106或图I的存储器104检索所述翻译且将其加载到第一 TLB 108的所述条目中的一者中。举例来说,如图I中所描述,可将对应条目110从第二 TLB 106复制到第一 TLB 108中的翻译条目112中。当比较器367到368检测到在一条目的VPN与第一存储器地址205之间的匹配时,图I的处理器102可设定所述特定条目的第一时隙的对应第一字段。举例来说,当第一条目的VPN 314与第一存储器地址205匹配时,图I的处理器102设定第一条目302的第一时隙的第一字段311。图I的处理器102还可设定第二字段310以指示第一条目302包括与第二 TLB 106的特定对应条目匹配的翻译信息。可使用比较器367到368的输出393到394来执行第一存储器地址205的翻译。举例来说,当输出393到394指示VPN 314与第一存储器地址205匹配时,可由第七多路复用器363将PPN 319输出到图I的处理器102。在此状况下,处理器102可使用PPN319来存取存储器104的地址(例如,第二地址142)。如果第一存储器指令203未能完成执行,则在第一存储器指令203的重放期间,第一 TLB 108可重新执行第一存储器地址205的翻译。在此状况下,第一 TLB 108可确定已识别包括翻译信息的条目;因此,可跳过第一存储器地址205与第一 TLB 108的VPN的比较。举例来说,当第一条目302的第一时隙的第一字段311被设定时,第一 TLB 108可阻止第一存储器地址205与第一 TLB 108中的地址的比较。阻止所述比较可通过阻止对第一 TLB 108的VPN的读取来阻止比较第一存储器地址205与所述VPN。举例来说,第一多路复用器357(例如,输出电路)可经配置以响应于第一字段被设定而抑制对虚拟地址(例如,VPN)的读取。在此状况下,第一 TLB 108可关闭用以执行对第一存储器地址205与条目的VPN的比较的比较器367到368。为了执行翻译(即,产生特定PPN),第一 TLB 108可使用第一时隙指示符386。举例来说,第一时隙指示符386可指示哪一条目包括特定PPN,所述特定PPN为第一存储器地址205的翻译。在此状况下,可产生所述特定PPN且将其提供给处理器102,而不执行比较或在第二 TLB 106或图I的存储器104中对所述翻译的查找。通过比较存储器地址与TLB的条目内的地址来执行翻译与使用时隙指示符385到386的翻译相比可使用更多电力且花费更长时间来执行。因此,处理器102可通过基于第一字段和第二字段而管理第一 TLB 108以在存储器指令的执行期间选择性地跳过对地址的比较来减少电力消耗。如果在存储器指令203的执行期间更新或改变第二 TLB 106中的对应条目,则可将对所述改变的指示提供给第一 TLB 108。在此状况下,第一 TLB 108可识别对应于已更新的第二 TLB条目的条目。举例来说,第一 TLB 108可使用索引号323(其将第一条目302映射到第二 TLB中的对应条目)来确定对应于第二 TLB 106中的条目的第一条目302已改变。在此状况下,图I的处理器102可清除第一条目302的第二字段310。第一 TLB 108可基于第一字段311、312和第二字段310来使第一条目302同步成与第二 TLB 106中的已更新的对应条目匹配。举例来说,如果第一字段311、312中的任一 者被设定,则第一 TLB 108可不改变第一条目302,尽管第二字段310指示条目302与第二TLB 106中的对应条目不匹配。因此,在VLIW包201的两个存储器指令203、207已完成执行之前,不更新、移除或以其它方式改变第一 TLB 108中的特定条目。通过将第一 TLB 108配置成仅在两个存储器指令203、207都已完成执行之后才对特定翻译条目执行改变,处理器102可接收包括必须一起完成执行(例如,两个指令必须都完成执行或必须都未能执行)的指令(例如,第一存储器指令203、第二存储器指令207)的VLIW包201。举例来说,图I的处理器102可在第一存储器指令和第二存储器指令中的一者未完成执行时阻止第一存储器指令和第二存储器指令中的另一者完成执行。第一存储器指令203和第二存储器指令207可为在架构上基本的。在此状况下,因为第一 TLB 108可在两个指令都已完成执行之前不更新条目,所以正由一指令使用的特定TLB条目在另一指令完成执行之后将不改变。因此,处理器102可避免在存储器指令118的执行期间接收到未命中TLB条目错误。参看图4,展示管理翻译旁视缓冲器(TLB)的特定方法400。方法400包括在方框402处响应于开始存储器指令的执行而设定与第一 TLB的条目相关联的第一字段以指示所述条目的使用,以及设定第二字段以指示第一 TLB中的所述条目与第二 TLB中的对应条目匹配。举例来说,响应于开始存储器指令118的执行,图I的处理器102设定与第一 TLB108的翻译条目112相关联的第一字段114以指示翻译条目112的使用,且设定第二字段116以指示第一 TLB 108中的翻译条目112与第二 TLB 106中的对应翻译条目110匹配。方法400还包括在方框404处清除第二字段以指示第一 TLB中的条目与第二 TLB中的对应条目不匹配。举例来说,在图I中,如果更新或改变对应条目110,则处理器102可告知第一 TLB 108所述改变。在此状况下,图I的处理器102可经配置以清除翻译条目112的第二字段116以指示翻译条目112与第二 TLB 106中的对应条目110不匹配。方法400包括在方框406处当在开始存储器指令的执行之后已清除第二字段时使用第一 TLB中的条目来执行翻译。举例来说,在图I中,当第二字段116经清除以指示条目112、110不匹配时,第一 TLB 108可继续使用翻译条目112来执行存储器指令118的第一地址140的翻译。方法400还包括在方框408处在第一字段被设定时阻止第一 TLB中的条目被同步成与第二 TLB中的对应条目匹配。举例来说,图I的处理器102在第一字段114被设定时阻止第一 TLB 108中的翻译条目112被同步成与第二 TLB 106中的对应条目110匹配。阻止同步使得第一 TLB能够在存储器指令118的整个执行过程中继续使用翻译条目112。方法400还包括在方框410处响应于接收到中断、完成存储器指令的执行和中止存储器指令中的至少一者而清除第一字段。举例来说,图I的处理器102可响应于接收到中断160、完成存储器指令118的执行和中止存储器指令118中的至少一者而清除第一字段114。方法400进一步包括在方框412处当第一字段被清除且第二字段被清除时使第一TLB中的条目同步成与第二 TLB中的对应条目匹配。举例来说,图I的处理器102在第一字段114被清除且第二字段116被清除时使第一 TLB 108中的翻译条目112同步成与第二TLB 106中的对应条目110匹配。当第一字段114被清除时,存储器指令不再使用翻译条目112。在此状况下,在存储器指令118已完成执行之后使翻译条目112同步。 通过等到存储器指令118已完成执行之后才使翻译条目112同步,翻译条目112中的相同翻译信息在存储器指令118的整个执行过程中可供处理器102使用。因此,处理器102可避免在存储器指令118的执行期间接收到未命中TLB条目错误。参看图5,展示管理翻译旁视缓冲器的特定方法500。方法500包括在方框502处响应于开始存储器指令的执行而设定与第一 TLB的条目相关联的第一字段以指示所述条目的使用,以及设定第二字段以指示所述第一 TLB中的所述条目与第二 TLB中的对应条目匹配。所述第一字段可包括与第一 TLB中的条目相关联的多个第一字段。所述多个第一字段中的每一第一字段可指示极长指令字(VLIW)包的特定时隙是否正在使用所述条目。举例来说,在图2中,第一字段114的第一时隙260可被设定以指示VLIW包201的第一指令203正在使用翻译条目112,且第一字段114的第二时隙262可被设定以指示VLIW包201的第二指令207正在使用翻译条目112。方法500还包括在方框504处当第一字段被设定时,在所述存储器指令的重放后即刻阻止对存储器指令地址与第一 TLB的条目的比较。阻止所述比较可包括通过阻止从第一 TLB内的若干虚拟地址读取一虚拟地址来阻止对存储器指令地址与所述虚拟地址的比较。方法500还包括在第一存储器指令和第二存储器指令中的一者未完成执行时阻止第一存储器指令和第二存储器指令中的另一者完成执行。举例来说,在图2中,当第一字段114的第一时隙260被设定时,图I的处理器102可阻止252图2的比较电路240比较第一地址203与翻译条目112。方法500包括在方框506处使用表示至少所述第一字段的值的经编码向量来翻译存储器指令地址。举例来说,在图2中,当翻译条目112在使用中时,第一 TLB 108可使用表示第一字段114的经编码向量250来翻译第一地址140。通过比较存储器地址与TLB的条目内的地址来执行翻译与使用时隙指示符285到286的翻译相比可使用更多电力且花费更长时间来执行。因此,处理器102可通过基于第一字段和第二字段来管理第一 TLB 108以在存储器指令的执行期间跳过地址的比较来减少电力消耗。图6为包括具有第一字段和第二字段的翻译旁视缓冲器(TLB) 108的无线通信装置600的实施例的方框图。第一字段可指示TLB 108中的条目是否在使用中,且第二字段可指示TLB 108中的条目是否与另一 TLB (例如,图I的第二 TLB 106)中的对应条目匹配。可将无线通信装置600实施为便携式无线电子装置,其包括耦合到存储器632的处理器610,例如数字信号处理器(DSP)。在一特定实施例中,显示控制器626耦合到处理器610且耦合到显示装置628。编码器/解码器(CODEC) 634还可耦合到处理器610。扬声器636和麦克风638可耦合到CODEC 634。无线控制器640可耦合到处理器610且耦合到无线天线642。在一特定实施例中,数字信号处理器610、显示控制器626、存储器632、CODEC 634和无线控制器640包括于系统级封装或系统芯片装置622中。在一特定实施例中,输入装置630和电力供应器644耦合到系统芯片装置622。此外,在一特定实施例中,如图6中所说明,显示装置628、输入装置630、扬声器636、麦克风638、无线天线642和电力供应器644在系统单芯片装置622外部。然而,显示装置628、输入装置630、扬声器636、麦克风638、无线天线642和电力供应器644中的每一者可耦合到系统芯片装置622的组件,例如接口或控制器。 上述所揭示装置和功能性可经设计和配置到存储于计算机可读媒体上的计算机文件(例如,RTL、⑶SII、GERBER等)中。可将一些或所有此些文件提供给制造处置者,所述制造处置者基于此些文件来制造装置。所得产品包括半导体晶片,所述半导体晶片接着被切割为半导体裸片且封装到半导体芯片中。所述芯片接着用于上文所描述的装置中。所属领域的技术人员将进一步了解,结合本文中所揭示的实施例而描述的各种说明性逻辑块、配置、模块、电路和算法步骤可实施为电子硬件、计算机软件或两者的组合。上文大体上在功能性方面描述各种说明性组件、块、配置、模块、电路和步骤。将此功能性实施为硬件还是软件取决于特定应用和强加于整个系统的设计约束。所属领域的技术人员可针对每一特定应用而以不同的方式实施所描述的功能性,但不应将此些实施方案决策解释为导致脱离本发明的范围。结合本文中所揭示的实施例而描述的方法或算法的步骤可直接体现于硬件中、由处理器执行的软件模块中,或两者的组合中。软件模块可驻留于随机存取存储器(RAM)、快闪存储器、只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、寄存器、硬盘、可装卸磁盘、压缩光盘只读存储器(CD-ROM)或此项技术中已知的任何其它形式的存储媒体中。示范性存储媒体耦合到处理器,以使得所述处理器可从所述存储媒体读取信息和将信息写入到所述存储媒体中。在替代方案中,存储媒体可与处理器成一体。处理器和存储媒体可驻留于专用集成电路(ASIC)中。ASIC可驻留于计算装置或用户终端中。在替代方案中,处理器和存储媒体可作为离散组件驻留于计算装置或用户终端中。提供对所揭示的实施例的前述描述以使所属领域的技术人员能够制作或使用所揭示的实施例。对于所属领域的技术人员来说,对这些实施例的各种修改将易于显而易见,且本文中所界定的原理可在不脱离本发明的范围的情况下应用于其它实施例。因此,本发明无意限于本文中所展示的实施例,而是将被赋予与如所附权利要求书界定的原理和新颖特征相一致的可能的最广范围。
权利要求
1.一种管理第一翻译旁视缓冲器TLB的方法,所述方法包含 响应于开始存储器指令的执行而设定与所述第一 TLB的一条目相关联的第一字段以指示所述条目的使用,以及设定第二字段以指示所述第一 TLB中的所述条目与第二 TLB中的对应条目匹配。
2.根据权利要求I所述的方法,其进一步包含清除所述第二字段以指示所述第一TLB中的所述条目与所述第二 TLB中的所述对应条目不匹配。
3.根据权利要求I所述的方法,其进一步包含当在开始所述存储器指令的执行之后已清除所述第二字段时使用所述第一 TLB中的所述条目来执行翻译。
4.根据权利要求I所述的方法,其进一步包含在所述第一字段被设定时阻止所述第一TLB中的所述条目被同步成与在所述第二 TLB中的所述对应条目匹配。
5.根据权利要求I所述的方法,其进一步包含响应于接收到中断、完成所述存储器指令的所述执行和中止所述存储器指令的所述执行中的至少一者而清除所述第一字段。
6.根据权利要求I所述的方法,其进一步包含当所述第一字段被清除且所述第二字段被清除时使所述第一 TLB中的所述条目同步成与所述第二 TLB中的所述对应条目匹配。
7.根据权利要求I所述的方法,其中所述第一TLB包括与所述条目相关联的多个第一字段,其中所述多个第一字段中的每一第一字段指示极长指令字VLIW包的特定时隙是否正在使用所述条目,其中所述VLIW包包括多个时隙。
8.根据权利要求7所述的方法,其中所述VLIW包的第一时隙包括第一存储器指令且第二时隙包括第二存储器指令。
9.根据权利要求8所述的方法,其进一步包含当所述第一存储器指令和所述第二存储器指令中的一者未完成执行时阻止所述第一存储器指令和所述第二存储器指令中的另一者完成执行。
10.根据权利要求8所述的方法,其中所述第一存储器指令和所述第二存储器指令为在架构上基本的。
11.根据权利要求7所述的方法,其进一步包含当所述多个第一字段中的至少一个第一字段指示所述第一 TLB中的所述条目正由所述VLIW包的特定指令使用时,阻止所述第一TLB中的所述条目与所述第二 TLB中的所述对应条目的同步。
12.根据权利要求I所述的方法,其进一步包含当所述第一字段被设定时,在所述存储器指令的重放后即刻阻止对存储器指令地址与所述第一 TLB的所述条目的比较。
13.根据权利要求12所述的方法,其中阻止所述比较包括阻止对所述存储器指令地址与所述第一 TLB内的虚拟地址的比较。
14.根据权利要求13所述的方法,其中阻止所述比较进一步包括阻止从所述虚拟地址读取一虚拟地址。
15.根据权利要求12所述的方法,其进一步包含使用表示至少所述第一字段的值的经编码向量来翻译所述存储器指令地址。
16.根据权利要求I所述的方法,其进一步包含更新所述对应条目且识别所述第一TLB的特定条目以同步成与所述对应条目匹配。
17.根据权利要求16所述的方法,其中基于索引号来识别所述条目,所述索引号将所述第一 TLB中的所述特定条目映射到所述第二 TLB中的所述对应条目。
18.—种设备,其包含 第一翻译旁视缓冲器TLB,其包含 TLB条目; 第一字段,其对应于所述TLB条目,其中所述第一字段指示所述TLB条目是否在使用中;以及 第二字段,其对应于所述TLB条目,其中所述第二字段指示所述TLB条目是否与第二TLB中的对应条目匹配。
19.根据权利要求18所述的设备,其进一步包含执行存储器指令的处理器,其中所述处理器包括所述第一 TLB。
20.根据权利要求19所述的设备,其中所述处理器是经配置以处理第一线程和第二线程的多线程处理器。
21.根据权利要求20所述的设备,其中所述TLB条目对应于所述第一线程,且其中所述多线程处理器允许所述第一线程更改所述TLB条目且阻止所述第二线程更改所述TLB条目。
22.根据权利要求19所述的设备,其中所述处理器响应于开始所述存储器指令的执行而设定所述第一字段和所述第二字段。
23.根据权利要求22所述的设备,其进一步包含响应于所述第一字段被设定而抑制对虚拟地址的读取的电路。
24.根据权利要求22所述的设备,其中所述处理器在所述存储器指令的所述执行完成之前阻止所述第一 TLB中的所述TLB条目被分配到另一存储器指令。
25.根据权利要求22所述的设备,其中所述处理器在所述第一字段被设定时重新路由针对所述TLB条目的替换请求。
26.根据权利要求25所述的设备,其中所述替换请求响应于与所述第一TLB中的第二条目相关联的第一字段被清除而被重新路由到所述第二条目。
27.根据权利要求19所述的设备,其中所述第二TLB是联合TLB。
28.根据权利要求19所述的设备,其中所述第一TLB是微TLB。
29.—种设备,其包含 用于存储第一翻译信息的装置,所述第一翻译信息用于将第一地址翻译为第二地址; 用于指示所述用于存储所述第一翻译信息的装置是否在使用中的装置;以及 用于指示所述用于存储所述第一翻译信息的装置是否与用于存储第二翻译信息的装置匹配的装置。
30.根据权利要求29所述的设备,其中所述第一地址是虚拟地址且所述第二地址是存储器中的物理地址。
全文摘要
本发明揭示一种管理翻译旁视缓冲器TLB的系统和方法。在一特定实施例中,一种管理第一TLB的方法包括响应于开始存储器指令的执行,设定与所述第一TLB的一条目相关联的第一字段以指示所述条目的使用。所述方法还包括设定第二字段以指示所述第一TLB中的所述条目与第二TLB中的对应条目匹配。
文档编号G06F12/10GK102971720SQ201180033545
公开日2013年3月13日 申请日期2011年7月5日 优先权日2010年7月6日
发明者阿贾伊·阿南特·英格尔, 埃里克·詹姆斯·普隆迪克, 穆罕默德·T·拉布 申请人:高通股份有限公司