当前位置: 首页 > 专利查询>ARM有限公司专利>正文

用于处理数据的设备和方法技术

技术编号:2858890 阅读:167 留言:0更新日期:2012-04-11 18:40
提供了一种系统,所述系统包括:执行核心,可操作来执行内部指令;翻译缓冲器,可操作来存储一个或多个内部指令的多个内部指令块,所述内部指令块是一个或多个外部指令的各自外部指令块的动态翻译;再映射器,响应于所述外部指令块之一内的外部指令的执行请求来识别存储在所述翻译缓冲器内的相应内部指令,以便可以把来自于所述相应内部指令块的一个或多个内部指令提供给所述执行核心。(*该技术在2023年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术涉及一种具有外部指令集和内部指令集的数据处理系统,例如,涉及到这样一种具有指令高速缓冲存储器的系统,所述系统特别地使用与软件或者硬件翻译器相组合的存储器来把处理器的外部可见指令集与在内部实现的指令集相分开。从美国专利US-A-6,332,215可以获知,该专利提供了这样一种系统,在该系统之中,由指令翻译硬件把外部Java字节码翻译成内部的本机处理器指令。从Intel公司生产的奔腾IV处理器的跟踪高速缓冲存储器机制可知,所述机制通过计算机代码的一组基本块来存储表示先前执行路径的数据,这样就使得可以容易地获知推测性跟踪,而不必单个地取出所组成的基本块并将其作为测量结果,从而增加了强流水线系统中的处理速度。将所述跟踪信息使用大小固定的行存储在常规的高速缓冲存储器中,所述行具有用于规定推测性跟踪结构的标记中的指针。正如将要看到的那样,本专利技术不是在传统的高速缓冲存储器结构之上构造的;它在标准的随机存取存储器结构上实现了一种瞬态高速缓冲存储器,所述瞬态高速缓冲存储器包括大小可变的块,这样就有助于更大的空间效率和更快的操作。在Transmeta生产的微处理器中已知的是,提供了这样一种系统,在所述系统之中,软件用于把指令集从非本机指令集翻译成本机指令集,然后管理所述翻译以便在处理器上执行。提供用于支持多个外部指令集的微处理器是众所周知的。这些微处理器的一个例子是ARM体系结构的微处理器,这种微处理器目前支持三种外部指令集,也就是ARM、Thumb和Java指令集。尽管希望能够扩展由特定微处理器所支持的不同指令集的数目,但是多种指令集趋向于把额外的复杂性引入译码器中,这样又对处理器的性能和功耗产生了不良影响。从一个方面来看,本专利技术提供了一种用于处理数据的设备,所述设备包括执行核心,可操作来执行内部指令;翻译缓冲器,可操作来存储一个或多个内部指令的多个内部指令块,所述内部指令块是一个或多个外部指令的各自外部指令块的动态翻译;再映射器,响应于对外部指令块的执行请求来识别在所述翻译缓冲器内存储的相应内部指令块,以致使得把来自于所述相应内部指令块的一个或多个内部指令提供给所述执行核心。所述再映射器包含将先前遇到的外部块的起始地址确切地映射到它们在翻译缓冲器中对应的内部地址。块是相关的,但不局限于通常所熟知的基本块。一个块通常起始于这样一种指令,所述指令作为一个或多个分支指令的目标,并且通常由分支指令或者对块大小的某一预先规定的限制来终止。然而,正如将看到的那样,在一些情况下,一个块可以继续一组指令,所述指令包括来自于可能的多个基本块的指令,并且不必按照原程序的次序。本专利技术认识到通过使用翻译缓冲器,可以有效地分摊在从一种指令集翻译为另一种指令集的过程所牵扯的、对所述处理器的性能和功耗所造成的不良影响,在所述翻译缓冲器中,存储通过翻译对应的外部指令块而动态形成的内部指令块,以致使得当要执行涉及相同部分的计算机程序时可以直接再次使用它们,而不必进一步翻译。实际生活中,许多计算机程序重复地执行相同的小计算机代码部分,并且据此一旦此计算机代码已被翻译,那么可以再次使用所述翻译,而不会招致与另一次翻译相关联的性能和功耗的额外开销。尽管对外部指令的执行请求可以不同于外部指令块中的第一指令,但是更为优选的是存储尽可能少的覆盖式翻译,以便节省存储空间,并且由此,所述执行请求应该是外部指令块中的第一外部指令,来自于相应内部指令块的内部指令被提供给所述执行核心,所述执行核心从来自于内部指令块的第一内部指令开始。尽管产生采用其他方式执行的实施例也是可能的,但是更加优选的是,因为内部指令块提供了至少由外部指令块规定的功能,所以内部指令块在功能上等效于各个相应的外部指令块。当所述外部指令块和/或内部指令块的长度可变时,存储器的存储资源的灵活性和高效应用就得到了改进。本专利技术特别适合于这样的系统,在该系统之中,外部指令和内部指令都属于可外部访问的指令集的一部分。一种定界外部指令块的优选方式是安排成利用分支外部指令来终止外部指令块。在实际的程序执行中,此类定界与程序流的跳转能很好地匹配。尽管可能的情况是并非所有内部指令块都可以利用分支指令加以终止,诸如在将单个外部指令块翻译为指令的多个内部帧的情况就是这样,但是优选的是,当利用分支外部指令定界外部指令块时,然后优选地,对应的内部指令块也利用分支内部指令加以终止。内部指令块可以具有导致不是所有内部指令块都是利用分支指令加以终止的最大大小。为了便于将外部指令块快速映射到内部指令块,优选的是,再映射器存储映射数据,所述映射数据用于识别所要求的映射并指向所述翻译缓冲器内相应的内部指令块的地址。优选的是,专用于所述翻译的存储器资源的管理是通过下列方式来实现的把翻译缓冲器划分为多个不同部分,使用一个这样的部分作为将新生成的映射数据和已翻译的内部指令写入到其中的当前活动部分,直到当前部分内没有可利用的空闲空间为止,然后在当前部分,清空预先填充的部分和相关联的再映射器部分,并且把新生成的数据指向该新清空的部分。用于选择要使用的存储器资源的不同部分优选技术是循环算法。有益的是,所述翻译缓冲器可以存储涉及内部指令块的更进一步信息,更具体来讲,存储外部指令边界控制数据,用于规定特定的内部指令是否对应于外部指令之间的边界,以便易于中断和异常处理等等。可用来控制并行执行的指令间依赖控制数据,在处理中断之时有用的提前终止控制数据,分支预测数据用于加速处理,下一块数据指向被预测将要使用的特定的下一内部指令块,以及可用于统计分析执行中的代码的代码剖析数据。可以但不是必须的是对于要存储在内部指令块中的外部指令地址而言,或者作为选择,外部PC值能够在运行时间被重构,所述重构是通过每当在内部指令块中看见外部指令边界位时增量计数器加1来实现的。在本专利技术优选的实施例中,通过提供更新机制可以改善总体系统性能,所述更新机制可操作来响应于检测到的执行行为更新在翻译缓冲器内存储的数据。由此,一旦已经动态地形成了翻译,就可以通过反馈机制来微调所述翻译,所述反馈机制用于根据所觉察到的行为来更新诸如分支预测等等的信息。存储在所述翻译缓冲器中的指令翻译可以依照各种方式来实现,诸如采用相对简单且合理紧密匹配的指令集上下文中的硬件翻译器来实现,或者在对更复杂或者不怎么紧密匹配的指令集进行软件控制之下来实现。优选的是,所述指令翻译器可以响应运行时间信息来产生解析的内部指令,例如解析的存储器地址,内联的异常处理器、模式转变和简化计算(例如在内部指令内作为立即操作数内联的诸如PC之类的的值)。通过在翻译缓冲器中提供锁定区域可以改善总体系统性能,尤其改善处理中断等等的能力,其中可以将内部指令块置于所述锁定区域中,并且进行锁定,以便如果要求它们,则可持久地用于快速使用。锁定区域可以是可变长度的。本专利技术优选实施例还认识到一旦已经做出翻译,那么当将其被驱逐出翻译缓冲器时,仍然有益的是,可以通过临时将其保存在挽救存储器(rescue memory)中来使用,所述挽救存储器可以比翻译缓冲器慢,但是比必须重新从头开始翻译要快并且更为高效。还能够将数据在适当时机移入挽救存储器中,对,可以确定的是它将很快被驱逐,但是将会在后来被使用。有益的是,将正执行的程序分为内部本文档来自技高网...

【技术保护点】
用于处理数据的设备,所述设备包括:执行核心,可操作来执行内部指令;翻译缓冲器,可操作来存储一个或多个内部指令的多个内部指令块,所述内部指令块是一个或多个外部指令的各自外部指令块的动态翻译;再映射器,响应于对处于所述外部指令块之一内的外部指令的执行请求,来识别在所述翻译缓冲器内存储的相应内部指令块,以致使得将来自于所述相应内部指令块的一个或多个内部指令提供给所述执行核心。

【技术特征摘要】
GB 2002-9-20 0221916.01.用于处理数据的设备,所述设备包括执行核心,可操作来执行内部指令;翻译缓冲器,可操作来存储一个或多个内部指令的多个内部指令块,所述内部指令块是一个或多个外部指令的各自外部指令块的动态翻译;再映射器,响应于对处于所述外部指令块之一内的外部指令的执行请求,来识别在所述翻译缓冲器内存储的相应内部指令块,以致使得将来自于所述相应内部指令块的一个或多个内部指令提供给所述执行核心。2.如权利要求1所述的设备,其中所述执行请求是外部指令块内的第一外部指令,并且把来自于所述相应内部指令块的内部指令提供给所述执行核心,所述执行核心起始于来自于所述相应内部指令块的第一内部指令。3.如权利要求1和2任一项所述的设备,其中内部指令块在功能上等效于各个相应的外部指令块。4.如权利要求1、2和3的任一项所述的设备,其中所述外部指令块的长度可变。5.如前述权利要求中任一项所述的设备,其中所述内部指令块的长度可变。6.如前述权利要求中任一项所述的设备,其中所述内部指令是可外部访问的指令集的一部分。7.如前述权利要求中任一项所述的设备,其中外部指令块用分支外部指令加以终止。8.如前述权利要求中任一项所述的设备,其中内部指令块用分支内部指令加以终止。9.如前述权利要求中任一项所述的设备,其中所述再映射器存储映射数据,所述映射数据用于识别外部指令块的地址和在所述翻译缓冲器内相应内部指令块地址之间的映射。10.如权利要求9所述的设备,其中所述映射数据被存储在所述再映射器内的再映射器存储器中。11.如权利要求10所述的设备,其中所述再映射器存储器被划分为多个再映射器存储器部分,每个再映射器存储器部分均与所述翻译缓冲器中各自翻译缓冲器部分相关联,所述再映射器可以操作这种所述再映射器存储器部分之一,所述再映射器存储器部分之一用于接收新生成的映射数据,直到所述相关联的翻译缓冲器部分不再具有空闲空间来接受新生成的映射数据,于是另一所述重新映射存储器部分被选择并且被清空,并且把新生成的映射数据存储在其中,新生成的内部指令块存储在相关联的翻译缓冲器部分中。12.如权利要求11所述的设备,其中使用循环算法来选择所述另一再映射器存储器部分。13.如前述权利要求中任一项所述的设备,其中所述翻译缓冲器还存储内部指令块内每个内部指令的外部指令边界控制数据,用于规定所述内部指令是否对应于外部指令之间的边界。14.如前述权利要求中任一项所述的设备,其中所述翻译缓冲器还存储内部指令块内每个内部指令的指令独立性控制数据,用于规定在不依赖于所述内部指令块内先前指令的情况下是否执行所述内部指令。15.如前述权利要求中任一项所述的设备,其中所述翻译缓冲器还存储内部指令块内每个内部指令的提前终止控制数据,用于规定在不破坏系统状态的情况下并在结束之前是否终止所述内部指令。16.如前述权利要求中任一项所述的设备,其中所述翻译缓冲器还存储每个内部指令块的分支预测数据,用于规定在完成所述内部指令块的执行之时要获得的预测分支目标。17.如前述权利要求中任一项所述的设备,其中所述翻译缓冲器还存储每个内部指令块的下一块数据,用于规定要加以执行的已预测的下一内部指令块在所述翻译缓冲器中的位置。18.如前述权利要求中任一项所述的设备,其中所述翻译缓冲器还存储每个内部指令块的代码剖析数据,用于规定涉及所述内部指令块执行的统计量。19.如权利要求16、17和18任一项所述的设备,包括更新器,可操作来响应于检测到的执行行为,更新在所述翻译缓冲器内存储的数据,所述数据与所存储的内部指令块相关。20.如前述权利要求中任一项所述的设备,包括指令翻译器,可操作来将外部指令块翻译为内部指令块。21.如权利要求20所述的设备,其中所述指令翻译器是以下翻译器之一基于硬件的指令翻译器;和基于软件的指令翻译器。22.如前述权利要求中任一项所述的设备,其中所述翻译缓冲器包括锁定区域,其中可以将内部指令块放置在锁定存储器中。23.如前述权利要求中任一项所述的设备,包括挽救存储器,在所述挽救存储器中至少临时存储在所述翻译缓冲器中先前存储的内部指令块,并且当在所述翻译缓冲器内查找所述内部指令块时,如果发生未命中,所述挽救存储器可用来访问。24.如前述权利要求中任一项所述的设备,其中至少某一内部指令或者内部指令块是在程序执行流程中它们的位置前被推测性地执行的。25.如权利要求20和21任一项所述的设备,其中当所述指令翻译器将外部指令块翻译为内部指令块时,所述指令翻译器对关于所述外部指令块的可用的运行时间信息做出响应。26.如权利要求25所述的设备,其中所述指令翻译器可操作来进行以下一个或多个操作解析存储器地址;解析内联异常处理器;去除模式转变;和简化依赖于在运行时间上恒定或者基本上恒定的信息的计算。27.如前述权利要求中任一项所述的设备,包括异常处理器,可操作来在执行内部指令块的内部指令时发生异常的情况下,触发对异常处理指令的执行并且存储异常返回指针,以便使得对所述内部指令块的执行能够在发生所述异常的点处恢复。28.如前述权利要求中任一项所述的设备,包括中断处理器,可操作来在执行内部指令块的内部指令时发生中断的情况下,触发对中断处理指令的执行并且存储中断返回指针,以便使得对所述内部指令块的执行能够在发生所述异常的点处恢复。29.如前述权利要求中任一项所述的设备,其中所述再映射器和翻译缓冲器具有多个部分,这些部分被分配来存储对应于不同类型的外部指令块的内部指令块。下一权利要求也涉及再映射器,但它们可以联合。30.如权利要求10所述的设备,其中所述再映射器存储器具有多个部分,这些部分被分配来存储对应于不同类型的外部指令块的映射数据。31.如权利要求22所述的设备,其中在锁定存储器中所放置的内部指令块被预处理,以便减少在所述再映射器中查找。32.如前述权利要求中任一项所述的设备,其中所述翻译缓冲器被地址映射到物理存储器区域,所述物理存储器区域可以在程序控制下加以访问。33.如前述权利要求中任一项所述的设备,其中绕过再映射器的分支内部指令可操作来执行分支操作,所述操作绕过所述再...

【专利技术属性】
技术研发人员:K弗劳特纳AC罗斯
申请(专利权)人:ARM有限公司
类型:发明
国别省市:GB[英国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1