具有经物理标记的行为的经虚拟标记的指令高速缓存器的制作方法

文档序号:6454531阅读:188来源:国知局
专利名称:具有经物理标记的行为的经虚拟标记的指令高速缓存器的制作方法
技术领域
本揭示内容大体来说涉及处理系统,且更具体来说涉及经虚拟标记的指令高速缓 存器系统。
背景技术
共同处理器系统在处理器管线中使用地址转换的概念来将数据或指令的页的地 址从其虚拟存储地址变为其真实的物理存储地址。 一种地址转换装置使用常规上存储 许多条目的转换后备缓冲器(TLB),其中每一条目包括还称作进程识别符(PID)的应用 程序空间识别符(ASID)、虚拟地址标记(VT)及物理页码(PPN)。因此,所述转换后备 缓冲器包含虚拟地址与物理地址之间的映射。在其最简单的形式中,处理器管线接收 作为输入的指令的虚拟地址,将所述虚拟地址的一部分与所述TLB中的条目相比较 以找出匹配的条目且用与所述匹配条目相关联的物理页码替代所述虚拟地址的所述 部分以形成物理地址。物理地址到虚拟地址的给定映射通常覆盖所述虚拟及物理地址 空间的范围,此范围称作"页",其中页的大小通常大于指令高速缓存器中的高速缓 存线的大小,使得数条高速缓存线均可与同一虚拟或物理地址空间页相关联。
共同处理器系统还包括一个或一个以上指令高速缓存器,所述指令高速缓存器将 最近使用的指令存储在快速片上存储器中以使从较慢的片外存储器提取指令所产生 的延迟降到最低。可对指令高速缓存器加索引以高效地查找条目。所使用的与指令高 速缓存器相关的术语"加索引"意指虚拟地址或物理地址中的一组位,其用于指定组 关联指令高速缓存器中的一组或直接映射的指令高速缓存器中的一行。由虚拟地址内 的位加索引的指令高速缓存器称作经虚拟加索引的高速缓存器。由物理地址内的位加 索引的指令高速缓存器称作经物理加索引的高速缓存器。
可用与物理地址的一部分或虚拟地址的一部分相比较的密钥来标记指令高速缓 存器中的条目。用物理地址的一部分标记的指令高速缓存器称作经物理标记的指令高 速缓存器。用虚拟地址的一部分标记的指令高速缓存器称作经虚拟标记的指令高速缓存器。处理器设计者选择如何对指令高速缓存器加索引及进行标记两者。常规指令高 速缓存器可以是经虚拟加索引经虚拟标记(VIVT)、经虚拟加索引经物理标记(VIPT) 或经物理加索引经物理标记(PIPT)。通过地址转换,虚拟地址被变换为物理地址,所 述物理地址可用于查找经物理标记的指令高速缓存器中的条目或在指令高速缓存未 命中的情况下存取真实的存储器。
除虚拟地址标记以外,常规经虚拟标记的指令高速缓存器通常包括ASID或PID 标记。此标记允许处理器系统区别地址条目对于现用软件进程是否有效。举例来说, 如果所述处理器系统正执行与具有ASID 'x'的软件进程相关联的指令,那么成功的 高速缓存器匹配将需要与ASID标记及虚拟地址指令标记两者匹配。由于各种情景(例 如,现用ASID的交换,即用使用同一ASID值的新进程替代使用给定的ASID值的 一个进程),经虚拟标记的指令高速缓存器可具有变得陈旧且不再有效的一个或一个 以上条目。由于高速缓存命中从提取(从存储器)指令节约处理器时间,因此处理器 系统设计者需要高速缓存一致性,即其内容反射有效、不陈旧的指令的高速缓存。为 维持高速缓存一致性,通常响应于由软件应用程序发出的共用指令高速缓存器无效指 令使高速缓存器中的条目无效。所述软件应用程序所需要的管理指令高速缓存器的量 取决于所述指令高速缓存器是经虚拟标记还是经物理标记。由于一个或一个以上虚拟 地址可映射到给定的物理地址,因此常规经虚拟标记的指令高速缓存器中可存在别名 及同义问题。
当包含不同的虚拟地址/ASID组合的两个或两个指令高速缓存器条目映射到同 一物理地址时,别名问题发生。由于以下三个原因中的任一个,这些不同的组合可发 生。第一,两个或两个以上指令高速缓存器条目的虚拟地址可在字面上不同,但相同 软件进程的部分具有相同的ASID字段值。第二,两个或两个以上指令高速缓存器条 目的虚拟地址可相同但与不同的软件进程相关联,其因此与不同的ASID字段值相关 联。第三,两个或两个以上指令高速缓存器条目的虚拟地址可均不相同且与不同的软 件进程相关联,因此与不同的ASID值相关联。在这三种情况中的任一种下,所述不 同组合可映射到相同的物理地址。作为此别名问题的结果,常规经虚拟标记的指令高 速缓存器向软件应用程序施加以下负担针对多于经物理标记的指令高速缓存器需要 的情景发出指令高速缓存器无效指令。举例来说,写入到经虚拟标记的指令高速缓存 器中的软件应用程序将必须发出指令高速缓存器无效指令以使可与使其自身变得无 效或修改的物理地址相关联的指令高速缓存器中的每一虚拟地址无效。
同义问题是指位于所述指令高速缓存器的不同虚拟索引处但与同一物理地址相 关联的两个或两个以上指令高速缓存器条目。所述同义问题可在常规经虚拟加索引的 指令高速缓存器中发生,而不管那些指令高速缓存器是经虚拟标记还是经物理标记。
与经物理标记的指令高速缓存器相比,经虚拟标记的指令高速缓存器还向软件施 加另一额外负担以使指令高速缓存器条目无效。具体来说,当给定ASID与虚拟地址 空间的页的组合的映射从一个物理地址变为另一物理地址时,经虚拟标记的指令高速缓存器中的与ASID与所述虚拟地址空间的页的组合相关联的所有指令高速缓存器条 目不再有效,因为所述指令高速缓存器可能已经高速缓存与旧的映射相关联的旧物理 存储器位置的内容,而不是与新的映射相关联的新物理存储器位置的内容。此即使在 所述基本的旧及新物理存储器位置的实际内容可能还未改变的情况下也是真的。因 此,经写入以管理经虚拟标记的指令高速缓存器的软件必须执行指令高速缓存器无效 操作以使可能与ASID与虚拟地址空间的页的其映射改变的组合相关联的所有指令高
速缓存器条目无效。
在具有经虚拟标记的指令高速缓存器的处理器中,可在管线中与从所述经虚拟标 记的指令高速缓存器查找指令并行地执行地址转换。因此,当使用经虚拟标记的指令 高速缓存器时,此并行提供有利的功率、频率及指令通量。因此,需要一种实现常规 经虚拟标记的指令高速缓存器的优点同时消除由常规经虚拟标记的指令高速缓存器 施加到软件应用程序上的关于管理条目的额外负担且不向软件应用程序施加附加要 求的指令高速缓存器系统及方法。

发明内容
本揭示内容的一个方面认识到具有经虚拟标记的指令高速缓存器及经物理标记 的指令高速缓存器两者的优点的指令高速缓存器系统。本发明的此方面使用从软件程 序的角度来看作为经物理标记的指令高速缓存器进行操作的经虚拟标记的指令高速 缓存器。本揭示内容的另一方面认识到虚拟地址或其部分在地址转换装置及经虚拟标记 的指令高速缓存器两者中用作标记。通过此认识,可额外使用引导到地址转换装置的 无效指令来使经虚拟标记的指令高速缓存器中的条目无效。
在本揭示内容的另一方面,一种指令高速缓存器系统包括经虚拟标记的指令高速 缓存器,地址转换装置及控制逻辑电路。所述地址转换装置响应于地址转换无效指令。 所述控制逻辑电路经配置以响应于所述地址转换无效指令而使经虚拟标记的指令高 速缓存器中的条目无效。
在又一方面,揭示一种使经虚拟标记的指令高速缓存器从软件程序的观点来看操 作起来就好像其是经物理标记的指令高速缓存器的方法。所述方法包括接收地址转换 无效指令及响应于所述地址转换无效指令使经虚拟标记的指令高速缓存器中的条目无效。
在再一方面中,揭示一种用于引导经虚拟标记的指令高速缓存器操作起来就好像 其是经物理标记的指令的控制逻辑电路。所述控制逻辑电路包括用于接收地址转换无 效指令的第一输入及用于响应于所述地址转换无效指令产生控制信号以使经虚拟标 记的指令高速缓存器中的条目无效的装置。
应了解,根据以下详细说明,所属技术领域中的技术人员将容易地明了本发明的其它实施例,在所述详细说明中以图解说明的方式来显示并说明本发明的各种实施 例。正如人们将要了解,本发明可具有其它及不同实施例,且可在各种其它方面对其 若干细节进行修改,所有这些均不背离本发明。因此,应将图式及详细说明视为具例 示性质而非限制性质。


图1是处理器的一个实施例的功能框图。 图2是对图1的指令高速缓存器系统的更详细描绘。
图3是图解说明使可能与直接映射的指令高速缓存器中的物理地址相关联的一 组经虚拟标记的指令高速缓存器条目的选择性无效的框图。
图4是图解说明使可能与二路组关联指令高速缓存器中的物理地址相关联的一 组经虚拟标记的指令高速缓存器条目的选择性无效的框图。
图5是图解说明从软件程序的观点来看经虚拟标记的指令高速缓存器操作起来 就好像其是经物理标记的指令高速缓存器的方法的流程图。
具体实施例方式
下文中结合附图论述的详细说明既定说明本发明的各种实施例,而非既定仅表示 其中可实践本发明的实施例。为提供对本发明的透彻了解,详细说明中包括具体细节。 然而,所属技术领域中的技术人员将明了,也可在没有这些具体细节的情况下实践本 发明。在某些实例中,为避免遮蔽本发明的概念,以框图形式显示众所周知的结构及 组件。
图1描绘处理器100的功能框图。处理器ioo根据控制逻辑电路110在指令执行 管线120中执行指令。处理器IOO可以是任何类型的管线化处理器组件,例如包括 微处理器、数字信号处理器(DSP)、桥接器、可编程逻辑、离散门或晶体管逻辑或 任何其它信息处理组件。在某些实施例中,管线120可以是具有多个平行管线的超标 量设计。管线120包括组织成管道级的各种寄存器或锁存器160A-D,及一个或一个 以上执行单元180。虽然图1中描绘五个管道级,但所属技术领域中的技术人员应认 识到,处理器100中可包括多于或少于所图解说明的管道级的管道级。通用寄存器 (GPR)堆130提供包含存储器层级的顶层的寄存器。处理器IOO包括指令高速缓存 器系统127,指令高速缓存器系统127包括经虚拟标记的指令高速缓存器(I高速缓 存器)122、转换后备缓冲器(TLB) 128及控制电路110。
管线120通过向指令高速缓存器122提供虚拟地址来从指令高速缓存器122提取 指令。存储器地址转换由TLB 128管理。与向指令高速缓存器122提供虚拟地址并行, 管线120将所述虚拟指令地址提供到TLB 128以确定在未在指令高速缓存器122中找 到虚拟地址的情况下(高速缓存未命中)用于经由存储器接口 30存取存储器32的对应物理地址。控制逻辑电路110从管线120接收无效指令且管理使指令高速缓存器 122及TLB 128中的一个或一个以上条目无效。结合图2的论述更全面地说明指令高 速缓存器系统127的结构及操作。
从数据高速缓存器(D-高速缓存器)126存取数据,其中存储器地址转换及许可 由转换后备缓冲器(TLB) 128管理。虽然图1将TLB128描绘为集成TLB,但在各 种实施例中,可将TLB 128分离为多个TLB,其中一个专用于将存取转换到数据高 速缓存器126,而另一个专用于将存取转换到指令高速缓存器122。在存储器接口 140 的控制下,指令高速缓存器122及/或数据高速缓存器126中的未命中导致对主(片 外)存储器150的存取。此种对主存储器的存取使用从TLB 128检索的物理地址。
处理器100可包括输入/输出(I/O)接口 134,其控制对各个外围装置136及138 的存取。所属技术领域中的技术人员将认识到,可对处理器100进行多种变化。举例 来说,处理器100可包括用于指令高速缓存器122及数据高速缓存器126中的一者或 两者的二级(L2)高速缓存器。另外,可从特定实施例省略处理器100内所描绘的一 个或一个以上功能块。
图2是对图1的指令高速缓存器系统127的更详细描绘。在此实例性实施例中, TLB 128经配置而具有三列210A-210C。列210A包含与软件进程相关联的应用程序 空间识别符(ASID)。寄存器215包含可存储在专用寄存器或GPR堆130中的当前执 行的软件进程的ASID。列210B包含TLB虚拟标记。TLB虚拟标记是虚拟地址的--部分。举例来说,虚拟地址205是存储在寄存器(例如,程序计数器(PC)寄存器)中 的32位地址。在此实例中,位位置31-12界定虚拟地址的界定TLB虚拟标记的部分。
列210C包含对应于ASID/TLB虚拟标记组合的20位物理页码(PPN)。当来自虛 拟地址205的现用ASID (与执行的软件进程相关联)及TLB虚拟标记与存储在TLB 128的一行中的ASID标记与TLB虚拟标记的组合匹配,那么从TLB 128返回物理页 码。将所返回的PPN与页偏移连接以界定对应的物理地址。特定来说,在连接期间, 将所返回的PPN置于位位置31-12中,而虚拟地址的页偏移部分继续占据位位置ll-0。
在此实例性实施例中,经虛拟标记的指令高速缓存器122是具有1024 "1线组" 及32字节线的32KB直接映射高速缓存器。在此实施例中,经虚拟标记的指令高速 缓存器122经配置而有四列220A-220D。列220A包含与软件进程相关联的应用程序 空间识别符(ASID)。列220B包含指令高速缓存器(IS)虚拟标记。列220C包含与特定 的指令高速缓存器虚拟标记与ASID组合相关联的32字节指令线。视情况,列220D 包含指示在什么条件下存储所述指令高速缓存器中的相关联条目的旗标以限制后续 条目无效的范围。
虚拟地址205经描绘以显示其位位置的两层含义。当虚拟地址205由经虚拟标记 的指令高速缓存器122使用时,位位置31-15界定指令高速缓存器(1$)虚拟标记,位 位置14-5界定索引207以从指令高速缓存器122中的1024 "1线组"选择一个线或 组,且位位置4-0界定指令线列220C中的偏移。直接映射指令高速缓存器122中的行还称作"1线组"。虽然(例如)八个32位指令可驻存于单个指令线中,但出于 简明的目的,图解说明每一1$虚拟标记的一个指令。我们认识到,本揭示内容构想其 它指令大小。当虚拟地址205由TLB 128用于地址转换时,位位置31-12界定TLB 虚拟标记且位位置ll-O界定页偏移。
在对所指定虚拟地址的指令高速缓存器査找期间,来自所述虚拟地址的索引207 在指令高速缓存器122中选择对应的线。然后,将所述所指定虚拟地址的现用ASID 215及位位置31-15与存储在所选择的高速缓存线中的ASID标记及1$虚拟标记相比 较。
同样,在所指定虚拟地址的TLB转换期间,将所述所指定虚拟地址的现用ASID 215及位位置31-12与存储在TLB 128中的ASID标记及TLB虚拟标记相比较以找出 匹配,且因此找出对应的PPN。
虽然未在此图解说明,但在某些实施例中,虚拟地址的包含TLB虚拟标记的部 分可以是所述虚拟地址的包含指令高速缓存器虚拟标记的同一部分。所属技术领域中 的技术人员应认识到,虽然将经虚拟标记的指令高速缓存器122图解说明为直接映射 高速缓存器,但还可将指令高速缓存器122体现为组关联高速缓存器以存取呈多线组 形式的条目群组。
返回到TLB 128,描绘别名关系及区别关系。当同一物理页码(PPN)位于TLB 128 中的两个或两个以上条目中时,别名关系发生。举例来说,条目211及213两者均参 考PPN 0x80000。在此实例中,条目211及213具有相同的TLB虚拟标记但与不同的 软件进程相关联以使ASID标记/TLB虚拟标记组合唯一。条目212及214也是彼此 的别名,因为其两者均参考PPN 0x90000。相对于彼此,条目212及214具有唯一的 TLB虚拟标记及唯一的ASID标记以界定唯一的ASID/TLB虚拟标记组合。当同一 TLB虚拟标记映射到两个或两个以上不同的物理页码时,区别关系发生。条目211 及212描绘区别关系,因为同一TLB虚拟标记(TLB标记A)分别映射到两个不同 的物理页码0x80000及0x90000。
认识到TLB虚拟标记及1$虚拟标记由虚拟地址中的位位置(其中某些为共用位 位置)组成,TLB128中的条目与指令高速缓存器122中的条目相关。因此,出于命 名的目的,当提及特定1$虚拟标记(例如,IS标记A)时使用下标指示所述特定1$虚 拟标记的值与具有相同下标的TLB虚拟标记(例如,TLB标记》的值相关。在图2 的实例性实施例中,TLB虚拟标记包含比IS虚拟标记更多的位。因此, 一个TLB虚 拟标记可对应于一个或一个以上1$虚拟标记。因此,具有物理页码的一个TLB条目 可对应于一个或一个以上指令高速缓存器条目,意指指令高速缓存器122中的指令或 指令也可物理地位于对应TLB条目的物理页码中。出于简明的目的,应注意,未图 解说明与特定TLB条目相关的所有指令高速缓存器条目。给出上文所说明的TLB条 目与I高速缓存器条目之间的一对多关系,如果给定的指令高速缓存器行与给定的 TLB行中的同一 ASID标记及虚拟地址标记值相关联,那么所述给定的指令高速缓存器行中的指令或指令可额外地位于对应于与所述给定的TLB行相关联的虚拟地址空
间页的虚拟地址空间页内。
随着时间推移,TLB 128及指令高速缓存器122两者的条目可变得陈旧。举例来 说,如果ASID由后续不相关的软件程序再次使用,且所述后续程序的虚拟到物理的 映射不同于先前程序的那些映射,那么包含所述被再次使用的ASID的TLB及指令高 速缓存器两者中的条目将不再有效,因为其将被映射到与先前软件程序相关联的物理 地址。为维持TLB及高速缓存一致性,使用控制逻辑电路110来管理TLB 128及指 令高速缓存器122两者中的陈旧条目。 一般来说,出于各种原因,包括经物理标记的 指令高速缓存器中不存在别名问题及仅虚拟地址到物理地址映射的改变在经物理标 记的指令高速缓存器中不需要指令高速缓存器无效,对于管理指令高速缓存器中的陈 旧条目来说,针对经物理标记的指令高速缓存器写入的软件程序可比针对经虚拟标记 的指令高速缓存器写入的那些软件程序简单。然而,当从一个物理地址到另一物理地 址的改变给定进程ID的给定虚拟地址的映射时,针对经物理标记的指令高速缓存器 写入的软件程序及针对经虚拟标记的指令高速缓存器写入的那些软件程序两者必须 包括显式TLB无效指令。
存在其中应通过经虚拟标记的指令高速缓存器使指令高速缓存器的条目无效的 两个主要类别的情景。第一类别的情景涉及地址映射改变,其中(举例来说)虚拟地 址变为映射到不同的物理地址。在常规经虚拟标记的指令高速缓存器实施方案中,指 令高速缓存器无效指令用于使此类别情景下的指令高速缓存器无效。此外,在第一类 别的情景中,TLB无效指令用于在常规经虚拟标记的指令高速缓存器及常规经物理标 记的指令高速缓存器实施方案两者中使TLB无效。第二类别的情景涉及其中物理存 储器的内容改变的情景。在第二类别的情景中,指令高速缓存器无效指令用于在常规 经虚拟标记的指令高速缓存器及常规经物理标记的指令高速缓存器实施方案两者中 使指令高速缓存器无效。然而,在常规经物理标记的指令高速缓存器实施方案中,指 令高速缓存器无效指令仅需要识别将要使其无效的已改变存储器的物理地址,而不是 在常规经虚拟标记的指令高速缓存器实施方案中可能与所述物理地址有关的所有可 能虚拟地址。
控制逻辑电路110经配置以认识到针对经虚拟标记的指令高速缓存器常规需要 软件程序来调用显式指令高速缓存器无效的第一类别的情景即使针对经物理标记的 指令高速缓存器也需要软件程序来调用TLB无效。举例来说, 一个情景包括当 ASID/TLB虚拟标记组合被映射到新的物理页码的情形。在此情景中,控制逻辑电路 110响应于显式TLB无效指令使TLB 128中的涉及所述ASID/TLB虚拟标记组合的 条目无效且还使经虚拟标记的指令高速缓存器122中的涉及ASID/指令高速缓存器虚 拟标记组合的条目无效。在某些实施例中,所述显式TLB无效指令导致指令高速缓 存器122中的所有条目的闪速无效,而不管所指定的ASID/TLB虚拟标记组合。
至于解决对所指定物理地址的内容做出的修改的第二类别的情景,软件程序发出显式指令高速缓存器无效指令以致使指令高速缓存器122被更新。显式指令高速缓存 器无效指令的内容可以或可不指定与所述经修改的物理地址相关联的虚拟地址或所 述经修改的物理地址。
在一个实施例中,控制逻辑电路110响应于此显式指令高速缓存器无效指令而经 配置以闪速地使经虚拟标记的指令高速缓存器122中的所有条目无效。在此实施例
中,可在所述显式指令高速缓存器无效指令中指定与给定的物理地址相关联的虚拟地 址或(另一选择为)所述给定的物理地址。然而,由于闪速地使所有指令高速缓存器 条目无效,因此简单地忽略所述显式指令高速缓存器无效指令的所指定虚拟地址或物 理地址。
在替代实施例中,控制逻辑电路110响应于所述显式指令高速缓存器无效指令而 经配置以选择性地使经虚拟标记的指令高速缓存器122中的条目无效。 一般来说,由 于指令高速缓存器条目具有对应于物理地址的虚拟标记,因此将必须使可对应于所指 定的物理地址的指令高速缓存器条目无效。参考TLB 128中的行212及214中的条目 作为识别由于物理地址的内容的改变而将需要针对其使对应经虚拟标记的指令高速 缓存器条目无效的多个虚拟地址的实例。这些条目为别名条目且被映射到同一物理页 码0x90000。
同样,指令高速缓存器条目225及224包含也在由所述物理页码的前17位界定 的物理地址处找到的指令,因为1$虚拟标记(1$标记a及IS标记b)的值分别与TLB 虚拟标记(TLB标记a及TLB标记b)的值相关,如上述虚拟地址205的位位置的双 层含义所图解说明。因此,如果(举例来说)物理地址0x9000J)000的内容改变,那 么条目225及224连同也在物理地址0x9000—0000处找到其指令的未经图解说明的任 何其它条目将由控制逻辑电路110选择性地无效化。更特定来说,在选择性地使经虚 拟标记的指令高速缓存器122中的条目无效的此实施例中,控制逻辑电路110经配置 以使与特定指令髙速缓存器虚拟索引(所指定的物理地址可能驻存其中)相关联的所 有条目(例如,所选择指令高速缓存器组中的所有条目)无效。
图3是图解说明可能与直接映射指令高速缓存器122中的物理地址相关联的一组 经虚拟标记的指令高速缓存器条目的选择性无效的框图。如虚拟地址205中所描绘, 当虚拟地址205由经虚拟标记的指令高速缓存器122使用时,位位置14-12或参考305 是索引位(还称作指令高速缓存器索引位)的部分。位位置14-12还是TLB虚拟标记 的部分。然而,由于位位置14-12是地址转换期间的经转换位,因此这些相同位是对 应于虚拟地址205的物理页码的部分。由于1$虚拟标记不使用位位置14-12且可指定 物理页码为无效,因此位14-12的每一组合在经虚拟标记的指令高速缓存器122内界 定阈值0、 128、 256、 ...、 896,其中可定位对应于所述物理页码的相关联指令高速缓 存器条目。剩余索引位(位ll-5或参考315)在地址转换期间不被转换,且因此在虚 拟地址205与其经转换的物理地址之间共用。因此,位11-5指定从所界定阈值的偏 移以定位可能与所述物理页相关的对应指令高速缓存器条目。由于参考305包含三个位,因此控制逻辑电路110响应于正被无效化的物理地址而可经配置以通过将位14-12
的每一组合与所述物理地址的位11-5连接来同时使经虚拟标记的指令高速缓存器122 中的八个条目无效。
一般来说,由于位11-0未通过地址转换而转换,因此其在所指定的物理地址与 可转换为所述物理地址的任何虚拟地址之间不变。换句话说,可映射到所述所指定的 物理地址的所有虚拟地址必须与位ll-O中的物理地址匹配。因此,来自位置ll-0中 的那些位的任何位(其用作指令高速缓存器索引的部分以选择可能包含对应于所述所 指定的物理地址的条目的指令高速缓存器组)必须具有与来自所述物理地址的对应位 相同的值。仅位置14-12中的那些指令高速缓存器索引位(举例来说,其可取不同于 来自所述物理地址的对应位的值)仍识别可能包含对应于所述所指定的物理地址的条 目的一组条目。
响应于从指令高速缓存器识别将被无效化的物理地址的显式指令高速缓存器无 效指令(由于所述物理地址的内容己改变),控制逻辑电路110使用位位置11-5来 确定从位14-12所界定的阈值的偏移以使所述指令高速缓存器中的经转换组的有资格 条目中的所有条目无效,从而允许在组的基础上而不是在整个指令高速缓存器的基础 上使所述指令高速缓存器无效。通过指定将被无效化的物理地址的单个指令或(另一 选择为)与所述无效物理地址相关联的虚拟地址,此实施例使写入到经物理标记的指 令高速缓存器模型中的软件能够在经虚拟标记的指令高速缓存器上自动调用指令高 速缓存器无效操作以确保从所述高速缓存器移除到所指定的物理地址的所有可能虚 拟地址别名。如所说明,此种移除可在线、组或整个高速缓存器的基础上进行。以此 方式,可在不对写入到经物理标记的指令高速缓存器模型的软件施加任何额外负担的 情况下适当地管理所述经虚拟标记的指令高速缓存器。
由控制逻辑电路110同时加索引到经虚拟标记的指令高速缓存器122中的数量取 决于经虚拟标记的指令高速缓存器的组关联性。图4是图解说明可能与二路组关联指 令高速缓存器422中的物理地址相关联的一组经虚拟标记的指令高速缓存器条目的 选择性无效的框图。除其关联性以外,二路关联指令高速缓存器422是具有32字节 线的32KB经虚拟标记的指令高速缓存器且可适合地类似于指令高速缓存器222。虚 拟地址405是存储在寄存器(例如,程序计数器(PC))中的32位地址,且类似于虚 拟地址205,虚拟地址405经描绘以显示其位位置的两层含义。指令高速缓存器422 具有索引418,其具有九位的大小,且因此1$虚拟标记具有18位的大小。对于此实 施例来说,位位置13-12或经转换位位置410将界定四个阈值,从而产生四个同时索 引,且位位置11-5或未经转换的位位置415将界定从所述四个阈值中的每一者的偏 移以选择性地使所述经虚拟标记的指令高速缓存器中的行无效。在二路组关联高速缓 存器中,每一行包括两个高速缓存器线。因此,控制逻辑电路110同时给四个高速缓 存器行加索引且因此使八个经虚拟标记的指令高速缓存器条目无效。
我们认识到,将经虚拟标记的指令高速缓存器的不同大小及配置构想为额外实施例。以实例的方式,具有32字节线的32KB经虚拟标记的指令高速缓存器的4路组 关联实施例将产生具有八位大小的索引,且因此产生具有19位大小的1$虚拟标记。 对于4路组关联指令高速缓存器来说,位位置12将界定两个阈值且位位置11-5将界 定从所述两个阈值的偏移以选择性地使所述4路指令高速缓存器中的条目无效。
以另一实例的方式,具有32字节线的32KB经虚拟标记的指令高速缓存器的8 路组关联实施例将产生具有七位大小的索引且因此产生具有20位大小(与TLB虚拟 标记的大小相同)的1$虚拟标记,且在此点上为物理页码的大小。对于8路组关联指 令高速缓存器来说,不存在所界定的阈值且位位置11-5将加索引到所述8路高速缓 存器中。然而,应注意,8路高速缓存器中的每一行包含8个高速缓存线,选择性地 使八个高速缓存线无效。此外,由于在此实例中所述TLB虚拟标记大小等于B虚拟 标记大小,因此可保证所述指令高速缓存器中的可与所指定的物理地址相关联的任何 条目位于由单个指令高速缓存器索引选择的指令高速缓存器路中,其又与来自所述所 指定的物理地址的索引位位置相同,因为那些位位置未被转换。换句换说,当所有指 令高速缓存器索引位位于页偏移内的位位置中时,(因此)所述指令高速缓存器索引 位未由地址转换机制转换,因此可保证所述指令高速缓存器中的可与所述所指定的物 理地址相关联的任何条目位于由所述单个指令高速缓存器索引选择的指令高速缓存 器路中。
这些先前实例展示根据本揭示内容的教示的组关联经虚拟加索引且经虚拟标记 的指令高速缓存器如何影响选择性无效。特定来说,经虚拟加索引且经虚拟标记的高 速缓存器的组关联性越高,由地址转换过程转换但以其未经转换形式用于所述指令高 速缓存器的索引的位的数量越低,从而产生正被选择性地无效化的较低数量的指令高 速缓存器行。同样,物理页的大小影响被转换的地址位的数量。由于所述页大小增大, 虚拟地址的更少的高阶位被转换。因此,页大小越大,那么由地址转换过程转换但以 其未经转换形式用于所述指令高速缓存器的索引的位的数量越低,再次产生正被选择 性地无效化的较低数量的指令高速缓存器行/组。
在其中物理页码中的位数量与指令高速缓存器虚拟标记中的位数量相同的情况 下,指令高速缓存器索引中不存在最终通过地址转换过程进行转换的位305。因此, 所述组可能指令高速缓存器路被减少到一个所保证路。 一般来说,页大小的增大导致 更少的转换位,且因此与物理地址相关联的可能指令高速缓存器条目的大小减小。
返回到图2,控制逻辑电路110从软件程序接收作为输入的无效指令(例如,TLB 无效指令及指令高速缓存器无效指令),而不管所述软件程序通过经物理标记的指令 高速缓存器写入还是通过经虚拟标记的指令高速缓存器写入。可从管线120中的解码 级(例如,管道级160B)提供这些无效指令。控制逻辑电路110响应于一组TLB无 效指令而使用已知机制(例如,产生用于响应于已知指令高速缓存器无效指令而使指 令高速缓存器的一个或一个以上条目无效的指令高速缓存器控制信号)使指令高速缓 存器122中的一个或一个以上条目无效。通过响应于所述组TLB无效指令来额外管理所述指令高速缓存器及针对指示物理地址的内容已改变的情景响应于指令高速缓
存器无效指令,控制逻辑电路iio从必须针对每一情景单独发出指令高速缓存器无效
指令(常规经虚拟标记的指令高速缓存器需要)减轻软件程序的负担。因此,现在可 有利地在管理经虚拟加索引、经虚拟标记的指令高速缓存器的处理器100上执行经写 入以管理经物理标记的指令高速缓存器的软件程序,使得其从软件的角度来看行动起 来就好像其是经物理加索引且经物理标记那样。
控制逻辑电路110还响应于已知指令高速缓存器无效指令来使经虚拟标记的指 令高速缓存器122中的一个或一个以上条目无效以使所写入的现有软件程序管理经 虚拟标记的指令高速缓存器。此外,在某些实施例中,控制逻辑电路110可从处理器 100接收可选启用信号237,可在具体来说针对经虚拟标记的指令高速缓存器写入的 软件程序正在执行时使用所述信号。作为处理器状态位、配置位及类似物的结果来调 用启用信号237。当启用信号237被调用时,控制逻辑电路110如上文所说明的那样 操作。当未调用(停用)启用信号237时,控制逻辑电路110将响应于TLB无效指 令来使来自TLB 128的一个或一个以上条目无效且将响应于指令高速缓存器无效指 令来使经虚拟标记的指令高速缓存器122中的一个或一个以上条目无效。当未调用 (停用)启用信号237时,控制逻辑电路110将不响应于TLB无效指令而使经虚拟
标记的指令高速缓存器122中的条目无效,且未必将响应于指令高速缓存器无效指令 而使比具体来说与所指定的虚拟地址相关联的那些条目更多的指令高速缓存器条目无效。
在某些实施例中,控制逻辑电路110可包括TLB控制信号产生器235及指令高 速缓存器控制信号产生器245。到指令高速缓存器控制信号产生器245中的输入241 及243分别将TLB无效指令及指令高速缓存器无效指令耦合到指令高速缓存器控制 信号产生器245。指令高速缓存器控制信号产生器245经配置以基于所接收的无效指 令来产生控制信号以使经虚拟标记的指令高速缓存器122中的一个或一个以上条目 无效。TLB控制信号产生器235基于所接收的特定类型的TLB无效指令以已知方式 产生控制信号以使TLB 128中的一个或一个以上条目无效。当到指令高速缓存器控制 信号产生器245的输入是指令高速缓存器无效指令的结果时,指令高速缓存器控制信 号产生器245以已知方式产生控制信号以使经虚拟标记的指令高速缓存器122中的一 个或一个以上条目无效。另外,指令高速缓存器控制信号产生器245响应于TLB无 效指令产生控制信号以使经虚拟标记的指令高速缓存器122中的一个或一个以上条 目无效。下表说明接收以下TLB无效指令所导致的指令高速缓存器控制信号产生器 245的功能行为<formula>formula see original document page 16</formula>。
表l
列220D是用以在指令高速缓存器122中的条目在转换机制处于一个启用状态中 时的时间建立时基于虚拟标记比较确保所述条目上无错误"匹配"的一个实施例,但 所述匹配在所述转换机制处于另一启用状态中时的稍后时间发生。举例来说,在转换 机制(例如,TLB 128)具有允许TLB 128处于启用或停用状态中的启用特征的情形 中,存储在指令高速缓存器122中的条目可包含旗标值,所述旗标值指示所述TLB 在所述条目被存储时是否操作。当条目在不操作的TLB 128期间存储在所述指令高速 缓存器中,那么所存储的条目与相同于未经转换的虚拟地址的物理地址相关联。
在其中TLB从被停用转变到被启用的情况下,响应于TLB转变信号239通过控 制逻辑电路100使在不操作的TLB期间存储的指令高速缓存器条目无效。此外,在 其中TLB从被启用转变到被停用的情况下,响应于TLB转变信号239通过控制逻辑 电路110使在操作的TLB期间存储的指令高速缓存器条目无效。通常在TLB128从 被停用转变到被启用及从被启用转变到被停用时产生TLB转变信号239。特定来说, 指令高速缓存器控制信号产生器245响应于TLB转变信号239产生控制信号以使指 令高速缓存器122中与旗标字段匹配的条目无效,所述旗标字段指示所述条目最初是 在TLB 128处于其刚从中转变的状态中时存储的。在替代实施例中,可在启用转换表 的状态时设定列220D的旗标。在此实施例中,当进行指令高速缓存器查找时,研究 所述旗标以确定是否存在与当前状态的转换表的匹配。
在另一替代实施例中,在没有可选列220D的情况下解决确保在先前不一致的状 态下建立的指令高速缓存器条目上不发生错误"匹配"的问题。在此实施例中,当 TLB启用转变信号239指示TLB启用机制中已存在转变时,控制逻辑电路110闪速 地使整个高速缓存器122无效。
所属技术领域中的技术人员应认识到,可在不背离本发明的教示的情况下将虚拟 地址205的大小及TLB 128及指令高速缓存器122的尺寸应用到其它实施例。
图5是图解说明用于使经虚拟标记的指令高速缓存器从软件程序的观点看操作 起来就好像其是经物理标记的指令高速缓存器的方法500的流程图。在功能块510, 所述方法提取指令。所提取的指令进行到指令解码530,在此处将所提取的指令解码。在块540处, 所述方法确定指令的类型。如果指令的类型是地址转换无效指令,那么所述方法进行 到根据地址转换无效指令使TLB (例如,TLB 128)中的一个或一个以上条目无效的 块550。所述方法进一步进行到块560。在块560处,所述方法还根据地址转换无效 指令的映射使指令高速缓存器122中的一个或一个以上条目无效,例如表1中所界定。 所属技术领域中的技术人员将了解,可将块550与560的次序颠倒而不影响无效过程。 返回到块540,如果指令的类型是指令高速缓存器无效指令,那么所述方法进行到块 560以根据指令高速缓存器无效指令使指令高速缓存器122中的一个或一个以上条目 无效。返回到块540,如果指令的类型不是任何类型的无效指令,那么返回到块510 以提取下一指令。
结合本文所揭示实施例说明的各种例示性逻辑块、模块、电路、元件及/或组件 可用通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵 列(FPGA)或其它可编程逻辑组件、离散门或晶体管逻辑、离散硬件组件或其设计用于 执行本文所说明的功能的任一组合来实施或执行。通用处理器可以是微处理器,但另 一选择为,处理器也可以是任一常规处理器、控制器、微控制器或状态机。处理器也 可实施为计算组件的组合,例如DSP与微处理器的组合、多个微处理器、 一个或一 个以上微处理器与DSP核心的联合或任何其它此种配置。
结合本文所揭示实施例说明的方法或算法可直接包含在硬件、由处理器执行的软 件模块或两者的组合内。软件模块可驻存于RAM存储器、快闪存储器、ROM存储 器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可抽换式磁盘、CD-ROM或 所属技术领域中已知的任何其它形式的存储媒介中。存储媒介可耦合到所述处理器, 使得所述处理器可从所述存储媒介读取信息或向所述存储媒介写入信息。另一选择 为,存储媒介可整合到所述处理器中。
虽然在实施例的上下文中揭示本发明,但应认识到,所属技术领域中的技术人员 可采用与上文论述及以上权利要求书相一致的各种各样的实施方案。
权利要求
1、一种指令高速缓存器系统,其包含经虚拟标记的指令高速缓存器;地址转换装置,所述装置响应于地址转换无效指令;及控制逻辑电路,其经配置以响应于所述地址转换无效指令使所述经虚拟标记的指令高速缓存器中的条目无效。
2、 如权利要求1所述的指令高速缓存器系统,其中所述地址转换装置是转换后 备缓冲器(TLB)。
3、 如权利要求1所述的指令高速缓存器系统,其中所述控制逻辑电路经配置以响应于所述地址转换无效指令闪速地使所述经虚拟标记的指令高速缓存器无效。
4、 如权利要求l所述的指令高速缓存器系统,其中所述控制逻辑电路经配置以 使所述经虚拟标记的指令高速缓存器中对应于所述地址转换无效指令所指定的应用 程序服务识别符(ASID)的一个或一个以上条目无效。
5、 如权利要求1所述的指令高速缓存器系统,其中所述控制逻辑电路经配置以 使所述经虚拟标记的指令高速缓存器中对应于所述地址转换无效指令中所指定的索 引的一组选择性条目无效。
6、 如权利要求l所述的指令高速缓存器系统,其中所述控制逻辑电路经配置以 响应于所述地址转换装置改变状态而闪速地使所述经虚拟标记的指令高速缓存器无 效。
7、 如权利要求l所述的指令高速缓存器系统,其中所述控制逻辑电路包含用于 接收启用信号的输入,所述控制逻辑电路经配置以在接收所述启用信号之后响应于所 述地址转换无效指令而仅使所述经虚拟标记的指令高速缓存器中的所述条目无效。
8、 如权利要求1所述的指令高速缓存器系统,其中所述控制逻辑电路经配置以 响应于指定特定物理地址的无效的指令高速缓存器无效指令而闪速地使所述经虚拟 标记的指令高速缓存器无效。
9、 如权利要求5所述的指令高速缓存器系统,其中所述索引包含经转换的位位置及未经转换的位位置,其中所述经转换位位置的值的每一组合在所述经虚拟标记的指令高速缓存器中 界定阈值,其中所述控制逻辑电路进一步经配置以选择性地使位于离开所述所界定阈值的 偏移处的条目无效,所述偏移由所述未经转换位位置的值指定。
10、 如权利要求1所述的指令高速缓存器系统,其设置于处理器中。
11、 一种使经虚拟标记的指令高速缓存器从软件程序的观点来看操作起来就好像 其是经物理标记的指令高速缓存器的方法,所述方法包含接收地址转换无效指令;及响应于所述地址转换无效指令使经虚拟标记的指令高速缓存器中的条目无效。
12、 如权利要求11所述的方法,其中使所述经虚拟标记的指令高速缓存器中的 所述条目无效进一步包含闪速地使所述经虚拟标记的指令高速缓存器无效。
13、 如权利要求ll所述的方法,其中使所述经虚拟标记的指令高速缓存器中的 所述条目无效进一步包含使对应于所述地址转换无效指令所指定的应用程序服务识别符(ASID)的一个或 一个以上条目无效。
14、 如权利要求11所述的方法,其中使所述经虚拟标记的指令高速缓存器中的所述条目无效进一步包含使对应于所述地址转换无效指令所指定的地址的一组选择性条目无效。
15、 如权利要求11所述的方法,其中使所述经虚拟标记的指令高速缓存器中的 所述条目无效进一步包含响应于地址转换装置改变状态而闪速地使所述经虚拟标记的指令高速缓存器无效。
16、 如权利要求11所述的方法,其中使所述经虚拟标记的指令高速缓存器中的所述条目无效进一步包含 接收启用信号;及在接收所述启用信号之后使所述经虚拟标记的指令高速缓存器中的所述条目无效。
17、 如权利要求ll所述的方法,其中使所述经虚拟标记的指令高速缓存器中的 所述条目无效进一步包含接收指定特定物理地址的无效的指令高速缓存器无效指令;及 响应于所述指令高速缓存器无效指令而闪速地使所述经虛拟标记的指令高速缓 存器无效。
18、 一种控制逻辑电路,其用于引导经虚拟标记的指令高速缓存器从软件程序的 观点来看操作起来就好像其是经物理标记的指令高速缓存器,所述控制逻辑电路包 含第一输入,其用于接收地址转换无效指令;及产生装置,其用于响应于所述地址转换无效指令产生控制信号以使所述经虚拟标 记的指令高速缓存器中的条目无效。
19、 如权利要求18所述的控制逻辑电路,其进一步包含-第二输入,其用于接收指令高速缓存器无效指令,其中所述用于产生控制信号以 使所述经虚拟标记的指令高速缓存器中的条目无效的装置也响应于所述指令高速缓 存器无效指令。
20、 如权利要求19所述的控制逻辑电路,其进一步包含第三输入,其用于停用所述用于响应于所述地址转换无效指令产生控制信号以使 所述经虚拟标记的指令高速缓存器中的条目无效的装置。
全文摘要
本发明揭示一种具有经虚拟标记的指令高速缓存器的指令高速缓存器系统,从软件程序的角度来看,所述经虚拟标记的指令高速缓存器操作起来就好像其是经物理标记的指令高速缓存器。所述指令高速缓存器系统还包括响应于地址转换无效指令的地址转换装置及控制逻辑电路。所述控制逻辑电路经配置以响应于所述地址转换无效指令使所述经虚拟标记的指令高速缓存器中的条目无效。
文档编号G06F12/08GK101421706SQ200780013573
公开日2009年4月29日 申请日期2007年4月17日 优先权日2006年4月19日
发明者托马斯·安德鲁·萨托里乌斯, 罗德尼·韦恩·史密斯, 达朗·尤金·施特雷特 申请人:高通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1