对应于多个微操作的复杂程序指令的译码的制作方法_4

文档序号:8257896阅读:来源:国知局
8接收所请求的微操作以及对应于该微操作的控制标志L。如果所请求的微操作存储在LO缓存20中,那么步骤94可在步骤92获取请求被发出后相当快地发生,否则如果LO缓存20必须首先从译码器30获取微操作,则会产生延时。在步骤96,获取单元8将接收到的微操作加入到队列6。
[0061]在步骤98,获取单元8为获取的微操作确定控制标志L的值。如果控制标志具有值1,那么获取的微操作是当前程序指令的最后一个微操作,因此在步骤100,获取单元8递增程序计数器12以指示下一个程序指令,并重置微程序计数器14以指示为新的程序指令获取的第一个微操作。另一方面,如果在步骤98,获取单元8确定控制标志L具有值0,那么微操作不是最后一个微操作,因此在步骤102,获取单元8递增微程序计数器以指示为同一程序指令获取的下一个微操作,且程序计数器12不递增。在上下文中,术语“递增”意为程序计数器或微程序计数器被置为下一个将被获取的微操作所需要的值。该递增每次不必按同一数量。例如,程序计数器一般按一定数量递增,例如,相邻指令的地址之间的间隔,但有时需要按不同的递增量。例如,获取单元可包括分支预测器,并且如果预测到分支,则可执行非顺序的指令获取。此外,虽然图7和图9示出了控制标志L的值I指示复杂指令的最后一个微操作且控制标志L的O值指示微操作不是最后一个微操作,但是在其他示例中,这些值可交换或这些信息可以不同方式表示。
[0062]虽然此处参照附图详细描述了本发明的说明性实施例,但应该理解的是,本发明不限于这些明确的实施例,并且在不脱离由所附权利要求限定的本发明的范围和精神的情况下,可由本领域的技术人员对其进行各种变化和修改。
【主权项】
1.一种数据处理装置,包括: 处理电路,该处理电路被配置为并行处理多个处理线程; 共享指令译码器,该共享指令译码器被配置为对程序指令进行译码以生成要由所述处理电路处理的微操作,所述程序指令包括与多个微操作相对应的至少一个复杂程序指令;以及 多个获取单元,该多个获取单元被配置为获取由所述共享指令译码器生成的微操作以用于由所述处理电路进行处理,每个获取单元与所述多个线程中的至少一个相关联; 其中所述共享指令译码器被配置为:响应于由所述多个获取单元中的一个触发的译码请求,生成每个微操作;并且 所述共享指令译码器被配置为:响应于分离的译码请求,个体地生成复杂程序指令的多个微操作,每个分离的译码请求标识了所述复杂程序指令的哪个微操作将由所述共享指令译码器响应于所述译码请求而生成。
2.如权利要求1所述的数据处理装置,包括多个微操作队列,每个微操作队列对应于所述获取单元中的一个,且被配置为将由相应的获取单元获取的用于由所述处理电路进行处理的所述微操作排成队列。
3.如权利要求1和2的任一个所述的数据处理装置,其中所述获取单元被配置为生成所述译码请求,该译码请求标识了将由所述共享指令译码器生成且要被获取以用于由所述处理电路进行处理的选定的微操作。
4.如权利要求1和2的任一个所述的数据处理装置,包括微操作缓存,该微操作缓存被配置为存储由所述共享指令译码器生成的所述微操作。
5.如权利要求4所述的数据处理装置,其中获取电路被配置为向所述微操作缓存提供获取请求以请求从所述微操作缓存获取选定的微操作;并且 所述微操作缓存被配置为:如果所述选定的微操作未被存储于所述微操作缓存中,则触发对于所述选定的微操作的译码请求。
6.如权利要求4和5的任一个所述的数据处理装置,其中所述微操作缓存被配置为:支持每处理周期的一定数目的获取请求,该数目比所述共享指令译码器所支持的每处理周期的译码请求的数目更大。
7.如任一前述权利要求所述的数据处理装置,其中对于每个微操作,所述共享指令译码器被配置为生成相应的控制标志,该相应的控制标志指示所述微操作是否是相应的程序指令的最后一个微操作。
8.如任一前述权利要求所述的数据处理装置,其中每个获取单元被配置为维护程序计数器和微程序计数器以用于标示将被获取的下一个微操作,所述程序计数器指示与所述下一个微操作相对应的程序指令,且所述微程序计数器指示相应的程序指令的哪个微操作是所述下一个微操作。
9.如从属于权利要求7时的权利要求8所述的数据处理装置,其中每个获取单元被配置为: (i)如果所获取的微操作的控制标志指示所述所获取的微操作不是相应的程序指令的最后一个微操作,则递增所述微程序计数器;以及 (ii)如果所获取的微操作的控制标志指示所述所获取的微操作是相应的程序指令的最后一个微操作,则递增所述程序计数器。
10.如任一前述权利要求所述的数据处理装置,包括指令缓冲器,该指令缓冲器被配置为存储先前已由所述共享指令译码器译码的一个或多个程序指令。
11.如权利要求10所述的数据处理装置,其中响应于针对指定程序指令的译码请求: (a)如果所述指定程序指令被存储于所述指令缓冲器中,则所述共享指令译码器被配置为从所述指令缓冲器中获得所述指定程序指令;以及 (b)如果所述指定程序指令未被存储于所述指令缓冲器中,则所述共享指令译码器被配置为从指令缓存或存储器中获得所述指定程序指令。
12.如权利要求10和11的任一个所述的数据处理装置,其中所述指令缓冲器被配置为存储由所述共享指令译码器最近译码的一个或多个程序指令。
13.如权利要求10到12的任一个所述的数据处理装置,其中所述指令缓冲器被配置为存储单个程序指令。
14.如任一前述权利要求所述的数据处理装置,其中所述处理电路包括多个处理单元,所述多个处理单元中的每一个被配置为处理所述多个线程中的至少一个线程。
15.如任一前述权利要求所述的数据处理装置,其中所述处理电路被配置为:对于所述多个线程中的至少一个线程,并行同步执行相同的一个或多个微操作的多个实例,对于每个实例使用不同的操作数。
16.如任一前述权利要求所述的数据处理装置,其中所述处理电路被配置为执行所述多个线程中的至少一些线程的时分复用。
17.如任一前述权利要求所述的数据处理装置,其中所述处理电路包括图形处理单元GPU。
18.一种数据处理装置,包括: 用于并行处理多个处理线程的处理装置; 用于对程序指令进行译码以生成要由所述处理装置进行处理的微操作的共享指令译码装置,所述程序指令包括与多个微操作相对应的至少一个复杂程序指令;以及 用于获取由所述共享指令译码装置生成的微操作以用于由所述处理装置进行处理的获取装置,每个获取装置与所述多个线程中的至少一个线程相关联; 其中所述共享指令译码装置被配置为:响应于由所述多个获取装置中的一个触发的译码请求,生成每个微操作;以及 所述共享指令译码装置被配置为:响应于分离的译码请求,个体地生成复杂程序指令的多个微操作,每个分离的译码请求标识所述复杂程序指令的哪个微操作将由所述共享指令译码装置响应于所述译码请求而生成。
19.一种数据处理方法,包括: 用共享指令译码器来对程序指令进行译码以生成将被处理的微操作,所述程序指令包括与多个微操作相对应的至少一个程序指令;以及 获取由所述共享指令译码器生成的、用于处理的微操作,其中所述获取是用多个获取单元执行的,每个获取单元与被并行处理的多个线程中的至少一个线程相关联; 其中每个微操作是由所述共享指令译码器响应于由所述多个获取单元中的一个触发的译码请求而生成的;以及 所述共享指令译码器响应于分离的译码请求,个体地生成复杂程序指令的多个微操作,每个分离的译码请求标识所述复杂程序指令的哪个微操作将响应于所述译码请求而生成。
20.如权利要求19所述的方法,包括以下步骤: 响应于标识第一复杂程序指令的第一微操作的第一译码请求,对所述第一程序指令进行译码以生成所述第一微操作; 响应于标识第二程序指令的选定的微操作的第二译码请求,对所述第二程序指令进行译码以生成所述选定的微操作;以及 响应于标识所述第一程序指令的第二微操作的第三译码请求,对所述第一程序指令进行译码,以生成所述第二微操作。
21.一种大体上如这里参考附图所述的数据处理装置。
22.—种大体上如这里参考附图所述的数据处理方法。
【专利摘要】本发明涉及对应于多个微操作的复杂程序指令的译码。数据处理装置2具有能够处理多个并行处理线程的处理电路4。共享指令译码器30译码程序指令以生成要由处理电路4进行处理的微操作。指令包括具有多个微操作的至少一个复杂指令。多个获取单元8被提供用于获取由译码器30生成的微操作以用于由处理电路4进行处理。每个获取单元8至少与线程中的一个相关。译码器30响应于由获取单元8触发的分离的译码请求24,个体地生成复杂指令的多个微操作,每个译码请求24标识复杂指令的哪个微操作将由译码器30响应于译码请求24而生成。
【IPC分类】G06F9-30
【公开号】CN104572016
【申请号】CN201410521111
【发明人】鲁纳·霍姆
【申请人】Arm 有限公司
【公开日】2015年4月29日
【申请日】2014年9月30日
【公告号】US20150100763
当前第4页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1