高速缓存用于多状态处理器的指令的制作方法

文档序号:6568131阅读:169来源:国知局
专利名称:高速缓存用于多状态处理器的指令的制作方法
技术领域
本发明大体上涉及处理系统,且更具体地说,涉及高速缓存用于多状态处理器的指令。
背景技术
计算机通常使用存储器所支持的处理器。存储器是保存程序和数据的存储媒体,处 理器需要所述程序和数据来执行其功能。近来,随着更强大的软件程序的出现,对存储 器的需求已经以令人惊讶的速度增加。结果是现代处理器需要大量的存储器,其自然比 较小的存储器慢。具有能够支持现今的处理器的速度的较大存储器对大规模商业应用来 说实在是太昂贵了。计算机设计师己经通过将存储器组织成若干分级组件来解决此问题。在容量方面最 大的组件通常是硬盘驱动器。硬盘驱动器提供大量的廉价永久存储。基本输入/输出系统 (BIOS)和操作系统仅仅是通常存储在硬盘驱动器上的程序的几个实例。当计算机运转 时,这些程序可加载到随机存取存储器(RAM)中。由用户装入的软件应用程序也可从 硬盘驱动器加载到RAM中。RAM是允许处理器更容易地存取信息的临时存储区。计算机的RAM仍不是快得足以赶上处理器。这意味着处理器可能必须等待将程序 指令和数据写入到RAM和从RAM读取程序指令和数据。高速缓冲存储器用于通过使 最经常由处理器使用的信息容易可得来增加存储器存取的速度。这通过将少量存储器 (已知为初级或等级1 (LI)高速缓冲存储器)集成到处理器中来实现。还可在一些计算 机应用中使用RAM与L1高速缓冲存储器之间的次级或等级2 (L2)高速缓冲存储器。可通过在将指令放入高速缓冲存储器中之前对所述指令部分地解码,来进一步改进 计算机的速度。此过程通常被称为"预解码",且伴随产生一些"预解码信息",其可连 同指令一起存储在高速缓冲存储器中。预解码信息指示指令的一些基本方面,例如所述 指令是算术指令还是存储指令,所述指令是否为分支指令,所述指令是否将作出存储器 引导,或可由处理器用来减小解码逻辑的复杂性的任何其它信息。预解码指令通过在不 减小其操作频率的情况下减小机器的管线的长度,来改进处理器性能。在现今的新兴技术的情况下,能够在多个状态下操作的处理器正变得普遍。"多状 态处理器"表示可支持两个或两个以上不同指令组的处理器。ARM (高级RISC机器)处理器仅是一个实例。ARM处理器是现今通常在移动应用中使用的高效、低功率RISC 处理器,所述移动应用例如是移动电话、个人数字助理(PDA)、数码相机和游戏控制 台(仅举几个实例)。ARM处理器过去己经支持两个指令组ARM指令组,其中所有 指令的长度都是32位;和Thumb指令组,其将最通常使用的指令压縮成16位格式。近 来已经添加到一些ARM处理器的第三指令组是"Thumb-2执行环境"(T2EE)。 T2EE 是被优化为用于字节码语言(例如Java和NET)的动态(JIT)编译目标的指令组(类 似于Thumb )。这些多状态处理器已显著增加了现代计算系统的容量,但可能对计算机设计师提出 空前挑战。举例来说,如果L1指令高速缓冲存储器中大小为一行的指令块含有来自多 个指令组的指令,那么通过假定整个高速缓存行含有在一个状态下的指令而计算出的预 解码信息不能用于实际上在另一状态下的那些指令。本发明中所描述的解决方案并不限 于具有Thumb和/或T2EE能力的ARM处理器,而是可应用于在将指令放入高速缓冲存 储器之前用重叠指令编码来对多个指令组的指令进行预解码的任一系统。 发明内容本发明的一个方面针对一种操作处理器的方法。所述处理器能够在不同状态下操 作,其中每个状态支持一个不同的指令组。所述方法包含在所述处理器在所述状态中的 一者下操作时,从存储器检索指令块;根据所述状态中的所述一者对所述指令进行预解 码;将经预解码的指令加载到高速缓冲存储器中;以及在所述处理器需要所述经预解码 的指令中的在高速缓冲存储器中的一者时确定所述处理器的当前状态是否与所述状态 中的用于对指令进行预解码的所述一者相同。本发明的另一方面针对一种处理系统。所述处理系统包含存储器;高速缓冲存储器; 能够在不同状态下操作的处理器,所述状态中的每一者支持一个不同的指令组,所述处 理器进一步经配置以当在所述状态中的一者下操作时,从所述存储器检索指令块;以及 预解码器,其经配置以根据所述状态中的所述一者,对从存储器检索到的指令进行预解 码,其中所述处理器进一步经配置以将经预解码的指令加载到高速缓冲存储器中,且当 处理器需要经预解码的指令中的在所述高速缓冲存储器中的一者时,确定所述处理器的 当前状态是否与所述状态中用于对所述指令进行预解码的所述一者相同。应了解,所属领域的技术人员从以下详细描述内容中将容易明了本发明的其它实施 例,其中以说明的方式来展示和描述本发明的各个实施例。将认识到,本发明能够具有 其它且不同的实施例,且本发明的若干细节能够在各个其它方面进行修改,所有这些都是在不脱离本发明的精神和范围的前提下进行的。因此,应将附图和具体实施方式
视为本质上是说明性的而不是限制性的。


在附图中,以实例的方式而不是限制的方式来说明本发明的各方面,其中 图1是说明处理系统的实例的功能框图; 图2是说明预解码器的实例的功能框图; 图3A是说明高速缓冲存储器中的指令的数据结构的图; 图3B是说明高速缓存行的数据结构的图; 图3C是说明具有状态信息的高速缓存行的数据结构的图; 图4是说明多状态处理器的一个实施例的操作的流程图; 图5是说明具有状态信息的高速缓存目录标签的数据结构的图;以及 图6是说明多状态处理器的另一实施例的操作的流程图。
具体实施方式
希望下文结合附图陈述的具体实施方式
作为对本发明各个实施例的描述,且不希望 其代表可实践本发明的仅有的实施例。出于提供对本发明的全面理解的目的,具体实施方式
包含特定细节。然而,所属领域的技术人员将了解,可在没有这些特定细节的情况 下实践本发明。在一些情况下,以框图形式来展示众所周知的结构和组件,以免混淆本 发明的概念。图1是说明能够处理、检索和存储信息的计算机100 (或其它处理系统)的实例的 概念框图。计算机IOO可以是独立组件,或者嵌入装置中,所述装置例如是移动电话、 PDA、数码相机、游戏控制台或任一其它合适的装置。计算机100可包含处理器102, 例如微处理器或其它处理实体。在计算机100的一个实施例中,处理器102是32位嵌 入式RISC微处理器,在业界通常称为ARM处理器。ARM处理器通常被用作平台来运 行用于无线、消费者、成像、自动化、工业和连网应用的复合操作系统。包含在许多 ARM处理器中的是Thumb指令组,其将大部分通常使用的32位ARM指令压縮成16 位形式。ARM也将32位指令添加到Thumb。 Thumb指令组是可在需要代码密度时使用 的32位ARM指令的子集的简略形式。如本发明的背景技术部分中所指示,ARM处理 器还可执行T2EE。计算机100还可包含存储器104,其保存处理器102需要用来执行其功能的程序指 令和数据。存储器104可用RAM或其它合适的存储器来实施,且可由计算机的主存储器和(视情况)L2高速缓冲存储器组成。可在处理器102与存储器104之间使用指令高 速缓冲存储器106。指令高速缓冲存储器106是相对较小的,高速的L1高速缓冲存储器, 其用于临时存储来自存储器104的待由处理器102执行的程序指令。在计算机100的一 个实施例中,指令高速缓冲存储器106是高速静态RAM (SRAM),而不是可用于存储 器104的较慢且较便宜的动态RAM (DRAM)。指令高速缓冲存储器106提供用于增加 处理器存取速度的机制,因为多数程序重复地存取相同的指令。通过尽可能多地将此信 息保存在指令高速缓冲存储器106中,处理器102避免了必须存取较慢的存储器104。 计算机100还可包含数据高速缓冲存储器(未图示),其用于存储执行所述指令的过程 中所使用的数据指令高速缓冲存储器106为来自存储器104的最新近由处理器102存取的指令提供 存储。当处理器102需要来自存储器104的指令时,其首先检查指令高速缓冲存储器106, 以确定所述指令是否在那里。当在指令高速缓冲存储器106中找到处理器102所需的指 令时,所述查找被称为"高速缓存命中"。在高速缓存命中的情况下,可直接从指令高 速缓冲存储器106检索所述指令,因此大大增加指令可被处理的速率。处理器102所需 的未在指令高速缓冲存储器106中找到的指令导致"高速缓存未中"。在高速缓存未中 的情况下,处理器102必须从存储器104取出所需的指令,这与从指令高速缓冲存储器 106取出指令相比,花费显著较长的时间。通常,处理器102从存储器104取出"高速 缓存行"。来自存储器104的高速缓存行可存储在指令高速缓冲存储器106中,以供将 来存取。可通过在将来自存储器104的指令放在指令高速缓冲存储器106中之前对所述指令 进行预解码,来进一步增强计算机性能。预解码器108在指令被从存储器104取出时取 得所述指令,根据处理器102的操作状态对所述指令进行预解码,并将预解码信息存储 在指令高速缓冲存储器106中。来自处理器102的信令可用于指示处理器102的针对预 解码操作的当前操作状态。图2是说明预解码器的实例的功能框图。预解码器108包含输入寄存器202,其用 于接收来自存储器104 (见图1)的高速缓存行中的指令。在多状态处理器的情况下, 可使用两个预解码器(一个预解码器针对一个处理器状态)204a、 204b。可将输入寄存 器202中的指令提供到预解码器204a、 204b,以产生每个指令的预解码信息。可使用多 路复用器206来基于来自处理器102 (见图1)的信令,选择适当的预解码信息。在预 解码器108的一些实施例中,可对到达预解码器204a、 204b的输入进行选通,以通过 仅启用由处理器102选定的预解码器来节约功率。可将来自寄存器202的每个指令连同来自多路复用器206的其相应预解码信息一起放在输出寄存器208中。可将输出寄存器 的内容读取到处理器102和指令高速缓冲存储器106 (见图1)两者中。图3A说明单个指令302如何与其预解码信息304 —起存储在指令高速缓冲存储器 106中。图3B说明由八个指令组成的整个高速缓存行如何存储在指令高速缓冲存储器 106中。在此实例中,每个指令302a-302h的末端上附加有其预解码信息304a-304h。视 特定应用和总体设计限制而定,预解码信息可以是任一数目的位。此外,使用八个指令 来说明高速缓存行仅作为实例而提供,应了解,每个高速缓存行可保存任一数目的指令。指令高速缓冲存储器106保存高速缓存目录(未图示)。高速缓存目录针对每个高 速缓存行含有一个条目或"标签"。高速缓存目录标签与高速缓冲存储阵列中的其相关 联高速缓存行之间存在一对一映射。高速缓存目录标签含有用于高速缓存行中的第一指 令的存储器地址。处理器102 (见图1)通过搜索高速缓存目录以获得具有所述存储器 地址的标签来取出指令。匹配用信号通知高速缓存命中。匹配的高速缓存目录标签指示 哪一高速缓存行含有所需的指令。接着,处理器可存取指令及其预解码信息。如果处理 器不能找到匹配(即,高速缓存未中),那么其将试图从存储器104 (见图l)读取高速 缓存行。从存储器检索到的高速缓存行被预解码并放入指令高速缓冲存储器106中。一 个或一个以上指令还可直接加载到处理器102中,以供立即解码和执行。可对高速缓存 目录进行更新,使得处理器102在将来存取时可确定高速缓存行驻存在高速缓冲存储阵 列中的何处。在图1的处理系统中,在使用多状态处理器102的情况下,多个指令组可驻存在存 储器104中。在这些多状态处理环境下,从存储器104检索到的高速缓存行可包含用于 所述处理器的多个状态的指令。此外,将基于处理器102的当前状态对高速缓存行中的 每个指令进行预解码,且一次对整个高速缓存行进行预解码。如果(例如)当从存储器 104检索高速缓存行时处理器102正在特定状态下操作,那么在将高速缓存行中所含有 的所有指令放入指令高速缓冲存储器106中之前,将对所述指令进行预解码,如同它们 是用于所述状态的指令。由于所述预解码的缘故,当处理器102处于不同的状态时不能 合适地执行对指令高速缓冲存储器106的随后存取。处理系统IOO可使用若干技术来确保从指令高速缓冲存储器106检索到的每个指令 不会由具有不正确预解码信息的处理器102执行。 一种可能的解决方案是将"状态信息" 与预解码的指令一起存储在每个高速缓存行中。将"状态信息"界定为一个或一个以上 位,其指示当相关联的高速缓存行被预解码时处理器102处于哪一状态。图3C说明由 八个经预解码的指令组成的整个高速缓存行如何与状态信息一起存储。类似于图3B,每个指令302a-302h的末端上附加有其预解码信息304a-304h。然而,除图3B中所示之 外,高速缓存行的开端处还包含有两个位的状态信息306。两个位的状态信息提供至多 达四个不同的操作状态。所属领域的技术人员将容易能够确定支持其它应用中的必需数 目的处理器状态所需的位的数目。图4是说明多状态处理器使用状态信息与经预解码的指令来确定特定指令的预解码 信息是否正确的操作的流程图。在步骤402中,处理器将所需指令的虚拟地址翻译成存 储器地址。接着,在步骤402中,处理器搜索高速缓存目录中的标签,以获得所述存储 器地址。所述搜索导致高速缓存命中或高速缓存未中。在高速缓存未中的情况下,在步 骤406中,处理器将试图从存储器检索所述指令。在高速缓存命中的情况下,在步骤408 中,处理器将从指令高速缓冲存储器检索所述指令,且在步骤410中,将相应的状态信 息与处理器的当前状态进行比较。如果处理器的当前状态与所述指令的状态信息匹配, 那么在步骤412中,处理器将使用预解码信息来解码和执行所述指令。否则,在步骤412 中解码和执行所述指令之前,在步骤414中,处理器将对所述指令进行预解码。另一种可能的解决方案是在每个高速缓存目录标签中包含状态信息。图5展示状态 信息可如何添加到高速缓存目录中的标签。将高速缓存目录502展示为具有许多标签 504,其中每个标签对应于高速缓冲存储阵列中的一个高速缓存行。高速缓存目录标签 504含有地址字段506和状态字段508。地址字段506包含用于高速缓存行中的第一指 令的存储器地址,且状态字段508包含在高速缓存行被预解码时识别处理器的状态的状 态信息。图6是说明多状态处理器使用高速缓存目录标签中的状态信息来确定特定指令的预 解码信息是否正确的操作的流程图。在步骤602中,处理器执行所需的计算来产生用于 执行高速缓存查找的地址。在步骤604中,处理器将状态信息添加到对应于处理器的当 前状态的存储器地址。存储器地址与状态信息结合形成标签。接着,在步骤606中,将 由处理器形成的标签与高速缓存目录中的标签进行比较。在此情况下,高速缓存命中不 仅意味着处理器所需的指令在指令高速缓冲存储器中,而且意味着经预解码的指令可由 处理器在其当前状态下执行。在高速缓存命中的情况下,在步骤608中,处理器检索所 述指令,并在步骤610中,使用预解码信息来解码和执行所述指令。在高速缓存未中的 情况下,在步骤612中,处理器从存储器检索具有所需指令的高速缓存行;在步骤614 中,起始高速缓存行的预解码;且在步骤616中,使用预解码信息来解码和执行所述指 令。在步骤618中,处理器将经预解码的高速缓存行存储到指令高速缓冲存储器中,并 用地址和状态信息来更新其标签。结果是存储块的多个副本可存在于指令高速缓冲存储器中不同高速缓存行处。在不同状态下对驻存在这些副本的每一者中的指令进行预解 码,且高速缓冲存储器中的单个査找决不会返回多个高速缓存命中。结合本文所揭示的实施例而描述的各种说明性逻辑块、模块、电路、元件和/或组件 可用以下装置来实施或执行通用处理器、数字信号处理器(DSP)、专用集成电路 (ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑组件、离散门或晶体管逻辑、 离散硬件组件或经设计以执行本文所述的功能的其任一组合。通用处理器可以是微处理 器,但在替代方案中,处理器可以是任一常规处理器、控制器、微控制器或状态机。处 理器还可实施为计算装置的组合,例如DSP与微处理器的组合、多个微处理器、结合 DSP核心的一个或一个以上微处理器或任何其它此类配置。结合本文所揭示的实施例而描述的方法或算法可直接在硬件中实施,在由处理器执 行的软件模块中实施,或在上述两者的组合中实施。软件模块可驻存在RAM存储器、 快闪存储器、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移 除盘、CD-ROM或此项技术中已知的任一其它形式的存储媒体中。存储媒体可耦合到处理器,使得处理器可从存储媒体读取信息,且将信息写入到存储媒体。在替代方案中, 存储媒体可以与处理器成一体式。提供对所揭示实施例的前面的描述内容,以使所属领域的技术人员能够制作或使用 本发明。所属领域的技术人员将容易明了对这些实施例的各种修改,且在不脱离本发明 的精神或范围的情况下,本文所界定的一般原理可应用于其它实施例。因此,不希望本 发明局限于本文所展示的实施例,而是本发明应符合与权利要求书一致的完整范围,其中不希望以单数形式引用元件表示"一个且仅一个"(除非明确这样陈述),而是表示"一 个或一个以上"。所属领域的一般技术人员已知或以后将知道的贯穿本发明而描述的各 个实施例的元件的所有结构和功能均等物特意以引用的方式并入本文中,且希望为权利 要求书所涵盖。此外,本文所揭示的任何内容均不希望贡献给公众,不管权利要求书中 是否明确叙述了此类揭示内容。任何权利要求项要素均不应在35 U.S.C. §112第六段的 条款下进行解释,除非特意使用短语"用于……的装置"来叙述所述要素,或在方法项 的情况下,使用短语"用于……的步骤"来叙述所述要素。
权利要求
1.一种操作处理器的方法,所述处理器能够在不同状态下操作,所述状态中的至少两者支持不同的指令组,所述方法包括当所述处理器在所述状态中的一者下操作时,从存储器检索指令块;根据所述状态中的所述一者对所述指令进行预解码;将所述经预解码的指令加载到高速缓冲存储器中;以及在所述处理器需要所述高速缓冲存储器中所述经预解码的指令中的一者时确定所述处理器的当前状态是否与所述状态中用于对所述指令进行预解码的所述一者相同。
2. 根据权利要求1所述的方法,其进一步包括如果确定所述处理器的所述当前状态与 所述状态中用于对所述指令进行预解码的所述一者相同,那么执行所述高速缓冲存 储器中所述经预解码的指令中的所述一者。
3. 根据权利要求1所述的方法,其进一步包括将状态信息与所述经预解码的指令一起 加载在所述高速缓冲存储器中,所述状态信息指示根据所述状态中的所述一者对所 述指令进行了预解码。
4. 根据权利要求3所述的方法,其中所述确定所述处理器的所述当前状态是否与所述 状态中用于对所述指令进行预解码的所述一者相同是通过将所述处理器的所述当 前状态与所述高速缓冲存储器中的所述状态信息进行比较来作出的。
5. 根据权利要求4所述的方法,其进一步包括如果所述处理器的所述当前状态与所述 高速缓冲存储器中的所述状态信息之间的所述比较指示所述处理器的所述当前状 态与所述状态中用于对所述指令进行预解码的所述一者相同,那么执行所述高速缓 冲存储器中所述经预解码的指令中的所述一者。
6. 根据权利要求4所述的方法,其中所述经预解码的指令中的所述一者包含从所述存 储器检索到所述指令中的一者和预解码信息,所述方法进一步包括如果所述处理器 的所述当前状态与所述高速缓冲存储器中的所述状态信息之间的所述比较指示所 述处理器的所述当前状态与所述状态中用于对所述指令进行预解码的所述一者不 同,那么忽略所述预解码信息。
7. 根据权利要求6所述的方法,其进一步包括在执行之前,对所述指令中不具有所述 预解码信息的所述一者进行处理。
8. 根据权利要求1所述的方法,其中所述高速缓冲存储器包含与所述经预解码的指令 相关联的标签,所述标签由所述处理器用来确定所述经预解码的指令中所述处理器 需要的所述一者是否在所述高速缓冲存储器中,所述方法进一步包括将状态信息添 加到所述标签,所述状态信息指示根据所述状态中的所述一者对所述指令进行了预 解码。
9. 根据权利要求8所述的方法,其中所述确定所述处理器的所述当前状态是否与所述 状态中用于对所述指令进行预解码的所述一者相同是通过检査所述标签来作出的。
10. 根据权利要求9所述的方法,其进一步包括如果所述标签指示所述处理器的所述当 前状态与所述状态中用于对所述指令进行预解码的所述一者相同,那么从所述高速 缓冲存储器检索所述经预解码的指令中的所述一者。
11. 根据权利要求9所述的方法,其进一步包括如果所述标签指示所述处理器的所述当 前状态与所述状态中用于对所述指令进行预解码的所述一者不同,那么从所述存储 器检索所述指令块的另一副本。
12. 根据权利要求11所述的方法,其进一步包括执行来自指令的第二副本的所述指令 中的一者。
13. 根据权利要求11所述的方法,其进一步包括根据所述处理器的所述当前状态对所 述指令的所述另一副本进行预解码,以及将所述指令的所述经预解码的第二副本加 载到所述高速缓冲存储器中。
14. 根据权利要求13所述的方法,其进一步包括使第二标签与来自指令的所述第二副本的所述经预解码的指令相关联,以及将状态信息添加到所述第二标签,所述添加到所述第二标签的状态信息指示根据所述处理器的所述当前状态对所述指令的所 述第二副本进行了预解码。
15. 根据权利要求l所述的方法,其中所述处理器的操作状态包含ARM、Thumb和T2EE 中的至少两者。
16. —种处理系统,其包括存储器;高速缓冲存储器;处理器,其能够在不同状态下操作,所述状态中的每一者支持一不同指令组,所 述处理器进一步经配置以在所述状态中的一者下操作时从所述存储器检索指令块; 以及预解码器,其经配置以根据所述状态中的所述一者对从所述存储器检索到的所述指令进行预解码;其中所述处理器进一步经配置以将所述经预解码的指令加载到所述高速缓冲存 储器中,且当所述处理器需要所述高速缓冲存储器中所述经预解码的指令中的一者 时,确定所述处理器的当前状态是否与所述状态中用于对所述指令进行预解码的所 述一者相同。
17. 根据权利要求16所述的处理系统,其中所述处理器进一步经配置以在所述处理器 确定其当前状态与所述状态中用于对所述指令进行预解码的所述一者相同时,执行 所述高速缓冲存储器中所述经预解码的指令中的所述一者。
18. 根据权利要求16所述的处理系统,其中所述处理器进一步经配置以将状态信息与 所述经预解码的指令一起加载在所述高速缓冲存储器中,所述状态信息指示根据所 述状态中的所述一者对所述指令进行了预解码。
19. 根据权利要求18所述的处理系统,其中所述处理器进一步经配置以通过将所述处 理器的所述当前状态与所述高速缓冲存储器中的所述状态信息进行比较来确定其 当前状态是否与所述状态中用于对所述指令进行预解码的所述一者相同。
20. 根据权利要求19所述的处理系统,其中所述处理器进一步经配置以在所述处理器 的所述当前状态与所述高速缓冲存储器中的所述状态信息之间的所述比较指示所 述处理器的所述当前状态与所述状态中用于对所述指令进行预解码的所述一者相 同时,执行所述高速缓冲存储器中所述经预解码的指令中的所述一者。
21. 根据权利要求19所述的处理系统,其中所述经预解码的指令中的所述一者包含从 所述存储器检索到的所述指令中的一者和预解码信息,且其中所述处理器进一步经 配置以在所述处理器的所述当前状态与所述高速缓冲存储器中的所述状态信息之 间的所述比较指示所述处理器的所述当前状态与所述状态中用于对所述指令进行 预解码的所述一者不同时,忽略所述预解码信息。
22. 根据权利要求21所述的处理系统,其中所述处理器进一步经配置以在所述处理器 的所述当前状态与所述高速缓冲存储器中的所述状态信息之间的所述比较指示所 述处理器的所述当前状态与所述状态中用于对所述指令进行预解码的所述一者不 同时,在执行之前对所述指令中不具有所述预解码信息的所述一者进行处理。
23. 根据权利要求16所述的处理系统,其中所述高速缓冲存储器包含与所述经预解码 的指令相关联的标签,所述标签由所述处理器用来确定所述经预解码指令中所述处 理器需要的所述一者是否在所述高速缓冲存储器中,且其中所述处理器进一步经配 置以将状态信息添加到所述标签,所述状态信息指示根据所述状态中的所述一者对所述指令进行了预解码。
24. 根据权利要求23所述的处理系统,其中所述处理器进一步经配置以通过检査所述 标签来确定其当前状态是否与所述状态中用于对所述指令进行预解码的所述一者 相同。
25. 根据权利要求24所述的处理系统,其中所述处理器进一步经配置以在所述标签指 示所述处理器的所述当前状态与所述状态中用于对所述指令进行预解码的所述一 者相同时,从所述高速缓冲存储器中检索所述经预解码的指令中的所述一者。
26. 根据权利要求24所述的处理系统,其中所述处理器进一步经配置以在所述标签指 示所述处理器的所述当前状态与所述状态中用于对所述指令进行预解码的所述一 者不同时,从所述存储器中检索所述指令块的第二副本。
27. 根据权利要求26所述的处理系统,其中所述处理器进一步经配置以执行来自指令 的所述第二副本的所述指令中的一者。
28. 根据权利要求26所述的处理系统,其中所述预解码器进一步经配置以根据所述处 理器的所述当前状态对所述指令的所述第二副本进行预解码,且所述处理器进一步 经配置以将所述指令的所述经预解码的第二副本加载到所述高速缓冲存储器中。
29. 根据权利要求28所述的处理系统,其中所述高速缓冲存储器进一步经配置以使第 二标签与来自指令的所述第二副本的所述经预解码的指令相关联,且所述处理器进 一步经配置以将状态信息添加到所述第二标签,所述添加到所述第二标签的状态信 息指示根据所述处理器的所述当前状态对所述指令的所述第二副本进行了预解码。
30. 根据权利要求16所述的处理系统,其中所述处理器的操作状态包含ARM、 Thumb 禾卩T2EE。
全文摘要
一种用于高速缓存用于具有多个操作状态的处理器的指令的方法和设备。所述处理器的所述操作状态中的至少两者支持不同的指令组。当所述处理器在所述状态中的一者下操作时,可从存储器检索指令块。可根据所述状态中的所述一者对所述指令进行预解码,并将其加载到高速缓冲存储器中。所述处理器或另一实体可用于在所述处理器需要所述高速缓冲存储器中所述经预解码的指令中的一者时确定所述处理器的当前状态是否与所述状态中用于对所述指令进行预解码的所述一者相同。
文档编号G06F9/38GK101223504SQ200680025599
公开日2008年7月16日 申请日期2006年5月18日 优先权日2005年5月18日
发明者布赖恩·迈克尔·斯坦普尔, 罗德尼·韦恩·史密斯 申请人:高通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1