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

对应于多个微操作的复杂程序指令的译码制造技术

技术编号:11388034 阅读:74 留言:0更新日期:2015-05-02 00:12
本发明专利技术涉及对应于多个微操作的复杂程序指令的译码。数据处理装置2具有能够处理多个并行处理线程的处理电路4。共享指令译码器30译码程序指令以生成要由处理电路4进行处理的微操作。指令包括具有多个微操作的至少一个复杂指令。多个获取单元8被提供用于获取由译码器30生成的微操作以用于由处理电路4进行处理。每个获取单元8至少与线程中的一个相关。译码器30响应于由获取单元8触发的分离的译码请求24,个体地生成复杂指令的多个微操作,每个译码请求24标识复杂指令的哪个微操作将由译码器30响应于译码请求24而生成。

【技术实现步骤摘要】
对应于多个微操作的复杂程序指令的译码
本技术涉及数据处理领域。更具体地,本技术涉及在支持并行处理线程的数据处理装置中对程序指令进行译码以生成微操作。
技术介绍
一些指令集包括一些与将由处理电路执行的多个微操作相对应的复杂程序指令,每个微操作表示与程序指令相关的操作的一部分。因此,指令译码器可对程序指令进行译码以生成将由处理电路执行的微操作。一些处理装置支持多个并行处理线程。分离的获取单元可被提供用于各自线程以触发获取微操作到处理电路中。共享指令译码器可被提供用于生成各自的获取单元所需的微操作。典型指令译码器将复杂程序指令作为单一的实体进行译码,从而使得:响应于来自获取单元中的一个的、对复杂程序指令进行译码的请求,指令译码器然后将在连续周期中生成与该复杂程序指令相对应的所有微操作。但是,这在共享指令译码器在多个对应于处理线程的获取单元之间共享的系统中可能有问题。如果获取单元中的一个在获取对应于复杂程序指令的微操作时中途停滞,则不能接受对同一复杂程序指令的进一步的微操作,则共享译码器也将停滞,因为其要保证完成所有对复杂程序指令的微操作。这就阻止了其他获取单元从指令译码器接收经译码的微操作,直到第一获取单元的停滞被解决,即使那些其他获取单元本可以接受微操作。这导致处理性能降低。本技术需求解决这一问题。
技术实现思路
从一个方面看,本专利技术提供了一种数据处理装置,包括:处理电路,该处理电路被配置为并行处理多个处理线程;共享指令译码器,该共享指令译码器被配置为对程序指令进行译码以生成要由处理电路处理的微操作,程序指令包括与多个微操作相对应的至少一个复杂程序指令;以及多个获取单元,该多个获取单元被配置为获取由共享指令译码器生成的微操作以用于由处理电路进行处理,每个获取单元与多个线程中的至少一个相关联;其中共享指令译码器被配置为:响应于由多个获取单元中的一个触发的译码请求,生成每个微操作;以及共享指令译码器被配置为:响应于分离的译码请求,个体地生成复杂程序指令的多个微操作,每个分离的译码请求标识了复杂程序指令的哪个微操作将由共享指令译码器响应于译码请求而生成。本技术的指令译码器响应于由获取单元触发的分离的译码请求,个体地生成复杂程序指令的微操作。每个译码请求可标识将响应于译码请求而生成的复杂程序指令的特定微操作。因此,不是如在先前的系统中那样响应于单个请求而生成所有微操作,在依次的每个译码请求之后,指令译码器可译码复杂程序指令中所请求的微操作,然后在译码另一微操作之前,等待进一步的译码请求。通过要求每个微操作被个体地请求,这允许共享指令译码器在为复杂程序指令生成微操作的中途切换正被译码的指令。因此,即使一个获取单元在只生成了复杂程序指令所需的微操作的一部分之后停滞,译码器也能够切换到生成由另一获取单元请求的微操作,然后当请求这些微操作的获取单元去停滞时,返回到生成第一程序指令的剩余微操作。这就减少了指令译码器不活动的周期数量,因此总体上提升了数据处理装置的处理性能。在一些示例中,将由处理电路进行处理的每个线程可具有它自己的用于获取将为该线程执行的微操作的获取单元。在其他示例中,获取单元中的至少一个可在多个线程之间共享。在一些示例中,每个获取单元可直接向用于处理的处理电路发送所获取的微操作。另一方面,微操作队列可被提供,每个队列对应于获取单元中的一个,因此由获取单元获取的微操作在相应的队列中被排成队列。排成队列的微操作然后可被发出,用于由处理电路进行处理。如果提供了微操作队列,那么当队列中有可用空间时,获取单元例如可请求下一个微操作。获取单元可以不同方式触发译码请求。在一些示例中,由指令译码器生成的微操作可被直接传递给相应的获取单元。在这种情况下,获取单元可生成标识了将被译码和获取以用于由处理电路进行处理的选定的微操作的译码请求。响应于来自获取单元的译码请求,指令译码器可生成选定的微操作并将其发送给获取单元。在其他示例中,获取单元可间接触发译码请求并且不必自己生成译码请求。例如,微操作缓存可被提供用于存储由共享指令译码器生成的微操作。通常,同一微操作在同一线程或不同线程中可被多次需求,因此通过缓存由译码器生成的微操作能够提升能源效率,因为这避免了译码器重复生成同一微操作的需求。如果提供了微操作缓存,那么获取电路可向微操作缓存提供获取请求,以请求从缓存获取选定的微操作,如果选定的微操作不在缓存中,则微操作缓存可向指令译码器触发译码请求。如果选定的微操作已经在缓存中,则不必触发译码请求。由微操作缓存触发的译码请求可直接传递给指令译码器,或间接通过存储了将被译码的程序指令的另一电路元件(例如,更高级别缓存)。微操作缓存每个处理周期支持的请求数量比共享指令译码器每个处理周期支持的译码请求的数量大。这意味着缓存能够向获取单元提供明显指令获取带宽,该明显指令获取带宽比共享指令译码器能够支持的带宽大。这尤其适用于当存在于单个共享指令译码器相对应的多个获取单元时。在共享指令译码器每个处理周期能够支持两个或更多译码请求从而多个微操作能够在同一周期中生成的实施例中,该两个或更多译码请求可为对应于完全不同的程序指令的微操作,或同一程序指令的不同微操作。但是,即使在多个微操作在同一周期中生成的实施例中,每个微操作仍然可响应于分离的译码请求而生成。共享指令译码器不但生成微操作自身,还可生成相应的指示所生成的微操作是否是相应的指令的最后一个微操作的控制标志。获取单元可维护用于标识下一个将被获取的微操作的程序计数器和微程序计数器,程序计数器指示对应于下一个将被获取的微操作的程序指令,且微程序计数器指示该指令的哪个微操作是下一个将被获取的微操作。当获取单元接收到所获取的微操作时,控制标志允许获取单元确定是否递增微程序计数器或程序计数器。如果所获取的微操作的控制标志指示所获取的微操作不是最后一个微操作,则递增微程序计数器以指示同一指令的下一个微操作应当在接下来被获取。另一方面,如果控制标志指示所获取的微操作是最后一个微操作,则递增程序计数器以指示下一个程序指令。当递增程序计数器时,微程序计数器也被重置以指示将为下一个程序指令获取的第一个微操作。通过在微操作被译码时采用指令译码器生成控制标志,获取单元不必记录多少个微操作对应于每个程序指令,或是否存在将为同一指令接收的任何进一步的微操作。这简化了获取单元的配置。该装置可具有存储了先前由共享指令译码器译码的一个或多个程序指令的指令缓冲器。由于复杂程序指令的每个微操作响应于分离的请求而被个体地译码,因此同一程序指令可能被多个连续的处理周期所需要以使译码器为该指令生成所有微操作。通过在指令缓冲器中存储一个或多个近期被译码的程序指令,能够提升性能和能源效率,因为这降低了同一指令需要被多次从更高级别指令数据存储设备(例如,指令缓存或存储器)获取的可能性。当接收针对指定程序指令的译码请求时,译码器可检查该指令是否在指令缓冲器中,并且如果是,则从指令缓冲器获取指定程序指令。如果该指定程序指令不在指令缓冲器中,那么译码器可从指令缓存或存储器获取该指定程序指令。通常,缓冲器可存储一个或多个最近被译码的程序指令,但是缓冲器可替换为具有更复杂的用于确定哪个程序指令应被缓冲及哪个应被驱逐出缓冲器的驱逐方案。此外,虽然缓本文档来自技高网...

【技术保护点】
一种数据处理装置,包括:处理电路,该处理电路被配置为并行处理多个处理线程;共享指令译码器,该共享指令译码器被配置为对程序指令进行译码以生成要由所述处理电路处理的微操作,所述程序指令包括与多个微操作相对应的至少一个复杂程序指令;以及多个获取单元,该多个获取单元被配置为获取由所述共享指令译码器生成的微操作以用于由所述处理电路进行处理,每个获取单元与所述多个线程中的至少一个相关联;其中所述共享指令译码器被配置为:响应于由所述多个获取单元中的一个触发的译码请求,生成每个微操作;并且所述共享指令译码器被配置为:响应于分离的译码请求,个体地生成复杂程序指令的多个微操作,每个分离的译码请求标识了所述复杂程序指令的哪个微操作将由所述共享指令译码器响应于所述译码请求而生成。

【技术特征摘要】
2013.10.09 GB 1317857.91.一种数据处理装置,包括:处理电路,该处理电路被配置为并行处理多个处理线程;共享指令译码器,该共享指令译码器被配置为对程序指令进行译码以生成要由所述处理电路处理的微操作,所述程序指令包括与多个微操作相对应的至少一个复杂程序指令;以及多个获取单元,该多个获取单元被配置为获取由所述共享指令译码器生成的微操作以用于由所述处理电路进行处理,每个获取单元与所述多个处理线程中的至少一个相关联;其中所述共享指令译码器被配置为:响应于由所述多个获取单元中的一个触发的译码请求,生成每个微操作;并且所述共享指令译码器被配置为:响应于分离的译码请求,个体地生成复杂程序指令的多个微操作,每个分离的译码请求标识了所述复杂程序指令的哪个微操作将由所述共享指令译码器响应于所述译码请求而生成。2.如权利要求1所述的数据处理装置,包括多个微操作队列,每个微操作队列对应于所述获取单元中的一个,且被配置为将由相应的获取单元获取的用于由所述处理电路进行处理的所述微操作排成队列。3.如权利要求1和2的任一个所述的数据处理装置,其中所述获取单元被配置为生成所述译码请求,该译码请求标识了将由所述共享指令译码器生成且要被获取以用于由所述处理电路进行处理的选定的微操作。4.如权利要求1和2的任一个所述的数据处理装置,包括微操作缓存,该微操作缓存被配置为存储由所述共享指令译码器生成的所述微操作。5.如权利要求4所述的数据处理装置,其中获取电路被配置为向所述微操作缓存提供获取请求以请求从所述微操作缓存获取选定的微操作;并且所述微操作缓存被配置为:如果所述选定的微操作未被存储于所述微操作缓存中,则触发对于所述选定的微操作的译码请求。6.如权利要求4所述的数据处理装置,其中所述微操作缓存被配置为:支持每处理周期的一定数目的获取请求,该数目比所述共享指令译码器所支持的每处理周期的译码请求的数目更大。7.如权利要求1所述的数据处理装置,其中对于每个微操作,所述共享指令译码器被配置为生成相应的控制标志,该相应的控制标志指示所述微操作是否是相应的程序指令的最后一个微操作。8.如权利要求7所述的数据处理装置,其中每个获取单元被配置为维护程序计数器和微程序计数器以用于标示将被获取的下一个微操作,所述程序计数器指示与所述下一个微操作相对应的程序指令,且所述微程序计数器指示相应的程序指令的哪个微操作是所述下一个微操作。9.如权利要求8所述的数据处理装置,其中每个获取单元被配置为:(i)如果所获取的微操作的控制标志指示所述所获取的微操作不是相应的程序指令的最后一个微操作,则递增所述微程序计数器;以及(ii)如果所获取的微操作的控制标志指示所述所获取的微操作是相应的程序指令的最后一个微操作,则递增所述程序计数器。10.如权利要求1所述的数据处理装置,包括指令缓冲器,该指令缓冲器被配置为存储先前已由所述共享指令译码器译码的一个或多个程序指令。11.如权利要求10所述的数据处理装置,其中响应于...

【专利技术属性】
技术研发人员:鲁纳·霍姆
申请(专利权)人:ARM有限公司
类型:发明
国别省市:英国;GB

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

1