CN104335167B - 用于处理计算机指令的方法和处理器 - Google Patents
用于处理计算机指令的方法和处理器 Download PDFInfo
- Publication number
- CN104335167B CN104335167B CN201380028301.9A CN201380028301A CN104335167B CN 104335167 B CN104335167 B CN 104335167B CN 201380028301 A CN201380028301 A CN 201380028301A CN 104335167 B CN104335167 B CN 104335167B
- Authority
- CN
- China
- Prior art keywords
- pipeline
- instruction
- execution
- execution pipeline
- designator
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 57
- 230000008569 process Effects 0.000 claims abstract description 33
- 238000001514 detection method Methods 0.000 claims description 30
- 230000004044 response Effects 0.000 claims description 11
- 230000005611 electricity Effects 0.000 claims description 6
- 230000001413 cellular effect Effects 0.000 claims description 2
- 239000004065 semiconductor Substances 0.000 claims description 2
- 230000001419 dependent effect Effects 0.000 abstract 1
- 238000012545 processing Methods 0.000 description 25
- 238000005516 engineering process Methods 0.000 description 5
- 239000004744 fabric Substances 0.000 description 4
- 238000011017 operating method Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 210000003811 finger Anatomy 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000006249 magnetic particle Substances 0.000 description 1
- 210000003733 optic disk Anatomy 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 210000003813 thumb Anatomy 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
- G06F9/3826—Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3838—Dependency mechanisms, e.g. register scoreboarding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Abstract
本发明揭示基于寄存器相关联偏好向执行管线发布指令及相关指令处理电路、系统、方法及计算机可读媒体。在一个实施例中,检测指令流中的指令。在确定所述指令指定至少一个源寄存器时,基于管线发布表中与所述至少一个源寄存器相关联的至少一个管线指示符确定执行管线偏好,且基于所述执行管线偏好向执行管线发布所述指令。在做出所述指令指定至少一个目标寄存器的确定时,基于所述指令被发布到的所述执行管线更新所述管线发布表中与所述至少一个目标寄存器相关联的至少一个管线指示符。以此方式,可促进指令的最优转发,从而改进处理器性能。
Description
技术领域
本发明的技术一般来说涉及基于中央处理单元(CPU)的系统中的管线式计算机指令的处理。本申请案主张2012年6月5日申请的第61/655,655号的美国临时专利申请案的优先权。
背景技术
现代计算机架构中的“指令管线处理”的出现产生对CPU资源的改进的利用及计算机应用程序的更快的执行时间。指令管线处理为可藉此通过将每一指令的处理分裂成一系列步骤增加由CPU处理的指令的输送量的处理技术。所述指令是在由多个阶段组成的“执行管线”中执行,其中每一阶段执行一系列指令中的每一者的步骤中的一者。因此,在每一CPU时钟循环中,可并行地评估多个指令的步骤。CPU可任选地使用多个执行管线来进一步提高性能。
偶尔,可出现以下情况:其中防止指令在执行管线中在其经指明的CPU时钟循环期间执行。举例来说,数据相依性可存在于第一指令与后续指令之间(即,后续指令可能需要通过由第一指令提供的操作产生的数据)。如果在后续指令开始执行之前第一指令尚未完全执行,那么当后续指令执行时,后续指令所需的数据可能仍不可用,且因此,将出现管线“危害”(具体来说,“写后读取危害”)。为了解决此危害,CPU可“暂停”或延迟后续指令的执行,直到第一指令已完全执行为止。为了有助于避免必须暂停后续指令,CPU可替代地使用被称为“管线转发”的技术。管线转发可通过允许后续指令存取第一执行指令的结果而不需要将结果写入到寄存器且接着由后续指令从寄存器读取回结果来防止对暂停后续指令的执行的需要。
管线转发可发生在于相同执行管线内执行的指令之间,所述过程可更具体地被称作“管线内转发”。另外,管线转发可发生在于单独执行管线中执行的指令之间,其中所述过程常规地被称作“管线间转发”。CPU可经配置以与在两个单独执行管线之间的管线间转发相比较在单个执行管线内更有效率地且从更多个接入点提供管线内转发。虽然可通过扩展CPU的转发电路以有效地添加更多接入点来改进管线间转发的性能,但可存在呈CPU架构的增加的复杂度的形式的取舍。
发明内容
本发明的实施例提供基于寄存器相关联偏好向执行管线发布指令。还揭示相关指令处理电路、处理器系统、方法及计算机可读媒体。在这点上,在一个实施例中,提供一种用于处理计算机指令的方法。所述方法包括检测指令流中的指令。在确定所述指令指定至少一个源寄存器时,基于管线发布表中与所述至少一个源寄存器相关联的至少一个管线指示符确定用于所述指令的至少一个执行管线偏好,及基于所述至少一个执行管线偏好向执行管线发布所述指令。所述方法另外包括在确定所述指令指定至少一个目标寄存器时,基于所述指令被发布到的所述执行管线更新所述管线发布表中与所述至少一个目标寄存器相关联的至少一个管线指示符。以此方式,可促进指令的最优转发,从而改进处理器性能。
在另一实施例中,提供一种包括指令处理电路的处理器。所述指令处理电路包括经配置以检测指令流中的指令的指令检测电路,及管线发布表。所述指令处理电路进一步包括源寄存器检测电路及目标寄存器检测电路。所述源寄存器检测电路经配置以确定所述指令是否指定至少一个源寄存器。响应于确定所述指令指定所述至少一个源寄存器,所述源寄存器检测电路经配置以基于所述管线发布表中与所述至少一个源寄存器相关联的至少一个管线指示符确定用于所述指令的至少一个执行管线偏好。所述目标寄存器检测电路经配置以确定所述指令是否指定至少一个目标寄存器。响应于确定所述指令指定所述至少一个目标寄存器,所述目标寄存器检测电路经配置以基于所述指令被发布到的所述执行管线更新所述管线发布表中与所述至少一个目标寄存器相关联的至少一个管线指示符。所述处理器经配置以响应于所述源寄存器检测电路确定所述指令指定所述至少一个源寄存器,基于所述至少一个执行管线偏好向执行管线发布所述指令。
在另一实施例中,提供一种包括指令处理电路的处理器。所述指令处理电路包括用于检测指令流中的指令的装置。所述指令处理电路进一步包括用于响应于确定所述指令指定至少一个源寄存器而基于管线发布表中与所述至少一个源寄存器相关联的至少一个管线指示符确定用于所述指令的至少一个执行管线偏好的装置。所述指令处理电路还包括用于响应于确定所述指令指定所述至少一个源寄存器而基于所述至少一个执行管线偏好向执行管线发布所述指令的装置。所述指令处理电路另外包括用于响应于确定所述指令指定至少一个目标寄存器而基于所述指令被发布到的所述执行管线更新所述管线发布表中与所述至少一个目标寄存器相关联的至少一个管线指示符的装置。
在另一实施例中,提供一种非暂时性计算机可读媒体,其具有存储于其上的计算机可执行指令以致使处理器实施用于检测指令流中的指令的方法。通过所述计算机可执行指令实施的所述方法还包括在确定所述指令指定至少一个源寄存器时,基于管线发布表中与所述至少一个源寄存器相关联的至少一个管线指示符确定用于所述指令的至少一个执行管线偏好;及基于所述至少一个执行管线偏好向执行管线发布所述指令。通过所述计算机可执行指令实施的所述方法另外包括在确定所述指令指定至少一个目标寄存器时,基于所述指令被发布到的所述执行管线更新所述管线发布表中与所述至少一个目标寄存器相关联的至少一个管线指示符。
附图说明
图1为用于检索及处理待放置到一或多个执行管线中的计算机指令的基于处理器的系统中所提供的示例性组件的框图,包含经配置以基于寄存器相关联偏好向所述一或多个执行管线发布指令的示例性指令处理电路;
图2为说明基于处理器的系统中的示例性序列的图,包含向执行管线发布第一指令,基于执行管线更新管线发布表中的管线指示符,及基于管线指示符优先向执行管线发布后续指令;
图3为说明用于进行以下操作的指令处理电路的示例性过程的流程图:基于一或多个源寄存器确定用于指令的至少一个执行管线偏好,基于至少一个执行管线偏好向执行管线发布指令,及基于指令被发布到的执行管线更新用于一或多个目标寄存器的一或多个管线指示符;
图4A到4B为说明用于基于寄存器相关联偏好向执行管线发布指令的指令处理电路的更详细示例性过程的流程图;
图5为说明包含基于存储在基于旗标的管线发布表中的寄存器相关联偏好向执行管线发布指令的示例性序列的图;
图6为说明包含基于存储在基于标识的管线发布表中的寄存器相关联偏好向执行管线发布指令的示例性序列的图;以及
图7为可包含指令处理电路的示例性的基于处理器的系统的框图,包含图1的指令处理电路,其经配置以基于寄存器相关联偏好向执行管线发布指令。
具体实施方式
现在参看各图,描述本发明的若干示例性实施例。词“示例性”在本文中用以意味着“充当实例、例子或说明”。本文中描述为“示例性”的任何实施例未必应被解释为比其它实施例优选或有利。
本发明的实施例提供基于寄存器相关联偏好向执行管线发布指令。还揭示相关指令处理电路、处理器系统、方法及计算机可读媒体。在这点上,在一个实施例中,提供一种用于处理计算机指令的方法。所述方法包括检测指令流中的指令。在确定所述指令指定至少一个源寄存器时,基于管线发布表中与所述至少一个源寄存器相关联的至少一个管线指示符确定用于所述指令的至少一个执行管线偏好,及基于所述至少一个执行管线偏好向执行管线发布所述指令。所述方法另外包括在确定所述指令指定至少一个目标寄存器时,基于所述指令被发布到的所述执行管线更新所述管线发布表中与所述至少一个目标寄存器相关联的至少一个管线指示符。以此方式,可促进指令的最优转发,从而改进处理器性能。
在这点上,图1为用于基于寄存器相关联偏好向执行管线12(0到Q)(在本文中分别被称作P0到PQ)发布指令的示例性的基于处理器的系统10的框图。下文将更详细论述,基于处理器的系统10提供经配置以确定用于指令的执行管线偏好的指令处理电路14。在一些实施例中,指令处理电路可包含指令检测电路15、源寄存器检测电路16及目标寄存器检测电路17。由指令处理电路14处理的指令可指示用于从寄存器18(0到X)(在本文中分别被称作R0到RX)读取数据及/或将数据写入到寄存器18(0到X)的操作,所述寄存器提供可由基于处理器的系统10存取的本地高速存储装置。如本文中所论述,“指令”可指通过引导计算机处理器执行一或多个指定任务的指令集架构定义的位的组合。示例性指令集架构包含(但不限于)ARM、Thumb及A64架构。
继续参看图1,在基于处理器的系统10中以通过指令流19表示的连续流处理指令。当基于处理器的系统10操作及执行指令时,指令流19可连续地前进。在此所说明的实例中,指令流19以指令存储器20开始,所述指令存储器提供用于计算机可执行程序中的指令的永久性存储装置。指令提取电路22从指令存储器20及/或任选地从指令高速缓冲存储器24中读取指令,且可递增程序计数器,所述程序计数器可存储在寄存器18(0到X)中的一者中。
一旦由指令提取电路22提取指令,所述指令便进行到指令解码电路26,所述指令解码电路将指令转译成处理器特定微指令。在此实施例中,指令解码电路26同时保持一群多个指令28(0到N)以用于解码。在提取及解码指令之后,任选地向指令队列30(即,用于存储指令的缓冲器)发布所述指令,或可向执行管线12(0到Q)中的一者发布所述指令以用于执行。在一些实施例中,特定执行管线12(0到Q)可限制可在所述特定执行管线内执行的操作的类型。举例来说,管线P0可能不准许读取存取寄存器18(0到X);因此,仅可向执行管线P1到PQ中的一者发布指示读取寄存器R0的操作的指令。
继续参看图1,指令处理电路14经配置以基于用于至少一个源寄存器的至少一个管线指示符确定用于指令的至少一个执行管线偏好,及在指定至少一个目标寄存器的情况下,基于指令被发布到的执行管线12(0到Q)中的所述执行管线更新用于所述至少一个目标寄存器的管线指示符。指令处理电路14可为任何类型的装置或电路,且可用以下各者来实施或执行:处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件,或其经设计以执行本文所描述的功能的任何组合。在一些实施例中,将指令处理电路14并入到指令提取电路22、指令解码电路26及/或任选的指令队列30中。指令处理电路14还可使用经配置以存储一或多个管线指示符的管线发布表32,所述管线指示符使寄存器18(0到X)中的每一者与执行管线12(0到Q)中的一者相关联,寄存器18(0到X)中的每一者最近被写入所述执行管线中。管线发布表32包括多个行,其中每一行对应于寄存器18(0到X)中的一者且包含至少一个管线指示符。根据本文所描述的一些实施例,所述至少一个管线指示符为对应于执行管线12(0到Q)中的相应者的布尔型旗标;在一些实施例中,所述至少一个管线指示符为存储执行管线12(0到Q)中的一者的标识的数据值。
为了提供图1的基于处理器的系统10的示例性处理序列的说明,提供图2。图2描绘图1的处理所检测到的指令流34的指令处理电路14。所述处理包含基于寄存器相关联偏好向执行管线12(0到Q)中的一者发布指令。所检测到的指令流34表示由图1的指令处理电路14从指令流19中提取及检测的一系列指令。
首先从所检测到的指令流34中提取指令36(在此实例中,“写入”指令)。指令36指示将图1的寄存器18(0到X)中的一者(在此实例中,源寄存器R2)的内容写入到目标寄存器R1(也为寄存器18(0到X)中的一者)中的操作。如通过管线发布箭头38指示,向执行管线12(0到Q)中的一者(在此实例中被称作管线P1)发布指令36。
在向执行管线P1发布指令36之后,由指令处理电路14更新管线发布表32中对应于目标寄存器R1及执行管线P1的管线指示符40(如通过箭头42指示)。管线发布表32用以跟踪将寄存器18(0到X)中的给定寄存器作为写入目标的最近的指令被发布到的执行管线12(0到Q)中的所述执行管线。在此实例中,管线发布表32含有对应于寄存器18(0到X)中的每一者的行,其中每一行含有各自对应于执行管线12(0到Q)中的一者的多个管线指示符(例如,管线指示符40)。管线发布表32中的每一管线指示符因此与寄存器18(0到X)中的确切的一者及执行管线12(0到Q)中的一者相关联。在图2中所描绘的实施例中,在任何给定时间,仅一个管线指示符可经设置用于寄存器18(0到X)中的给定寄存器。然而,寄存器18(0到X)中的两者或两者以上可各自具有经设置用于执行管线12(0到Q)中的同一者的管线指示符。因此,在此实例中,通过以下操作来更新管线指示符40:清除与目标寄存器R1相关联的行44中的所有管线指示符,及设置管线指示符40以指示向执行管线P1发布指令36,所述指令36为将寄存器R1作为写入目标的最近的指令。
指令处理电路14接下来检测所检测到的指令流34中的指令46(在此实例中,另一“写入”指令)。指令46指定寄存器R1为源寄存器,且指示将源寄存器R1的内容写入到目标寄存器R0(寄存器18(0到X)中的一者)中的操作。应理解,可提取所检测到的指令流34中紧接在指令36之后的指令46,或指令36及指令46可在所检测到的指令流34中通过其它介入指令分离。
在检测到指令46之后,由指令处理电路14存取管线发布表32(如通过箭头42指示)以确定管线指示符是否在行44中经设置用于源寄存器R1。在此实例中,管线发布表32中的管线指示符40经设置,从而指示向执行管线P1发布将源寄存器R1作为写入目标的最近的指令(此处,指令36)。基于管线指示符40,指令处理电路14确定执行管线偏好48,所述执行管线偏好指示应优先向执行管线P1发布指令46。应理解,在一些实施例中,基于对应于用于指令46的多个源寄存器的多个管线指示符,指令46可与多个执行管线偏好48相关联。应进一步理解,在一些实施例中,可能不存在如通过执行管线偏好48指示实际上向执行管线P1发布指令46的任何保证。确切地说,执行管线偏好48可被视为确定将向执行管线12(0到Q)中的哪一者发布指令46中的数个因素中的一者。
一旦指令46发布到执行管线12(0到Q)中的一者(不论是执行管线P1还是执行管线12(0到Q)中的另一者),便可针对指令46重复上文关于指令36所描述的示例性过程。在此实例中,向优选的执行管线P1发布指令46,如通过管线发布箭头50指示。在管线发布表32中更新对应于目标寄存器R0及执行管线P1的管线指示符52。对于所检测到的指令流34中指定寄存器R0为源寄存器的后续指令54(在此实例中,另一“写入”指令),指令处理电路14可存取管线发布表32以确定管线指示符是否在行56中经设置用于源寄存器R0。基于管线指示符52,指令处理电路14确定指示执行管线P1用于指令54发布的偏好的执行管线偏好58。
为了进一步说明基于寄存器相关联偏好向执行管线发布指令的过程,在图3中进一步参看图1及2展示经配置以确定执行管线偏好及更新管线指示符的指令处理电路的示例性的一般化过程。在此实例中,过程以图1的指令处理电路14(未图示)检测图2的指令46开始,所述指令46指示到目标寄存器R0的写入操作(框60)。在一些实施例中,检测指令46可通过例如图1的指令检测电路15等指令检测电路来实现。
指令处理电路14接下来确定指令46是否指定至少一个源寄存器(框62)。一些实施例可提供:通过指令处理电路14的源寄存器检测电路来做出此确定,例如,图1的源寄存器检测电路16。如果指令46并不指定至少一个源寄存器,那么基于默认执行管线发布逻辑向执行管线(例如,执行管线P0到PQ中的一者)发布指令46(框64)。如果指令46确实指定至少一个源寄存器,如图2中,那么指令处理电路14基于管线发布表32中用于所述至少一个源寄存器的管线指示符确定至少一个执行管线偏好48(框66)。在图2中所说明的实例中,执行管线偏好48是基于管线发布表32中用于源寄存器R1的管线指示符40。接着基于所述至少一个执行管线偏好48向执行管线(在图2中,执行管线P1)发布指令46(框68)。
一旦向执行管线发布指令46,不管是基于默认执行管线发布逻辑(如框64中)还是所述至少一个执行管线偏好48(如框68中),指令处理电路14便确定指令46是否指定至少一个目标寄存器(框70)。在一些实施例中,可通过指令处理电路14的目标寄存器检测电路来做出此确定,例如,图1的目标寄存器检测电路17。如果指令46并不指定至少一个目标寄存器,那么处理返回到图3的框60处。如果指令46确实指定至少一个目标寄存器,那么指令处理电路14基于指令46被发布到的执行管线更新管线发布表32中用于所述至少一个目标寄存器的至少一个管线指示符(框72)。在图2中,基于指令46被发布到执行管线P1更新管线发布表32中用于目标寄存器R0的管线指示符52。处理接着恢复执行图3的框60。
图4A到4B说明用于进行以下操作的指令处理电路(例如,图1的基于处理器的系统10中的指令处理电路14)的更详细示例性过程:检测指令流(例如,图1的指令流19)中的指令,及基于寄存器相关联偏好向执行管线(例如,图1的执行管线12(0到Q))发布指令。图4A详述用于确定所检测到的指令是否指定至少一个源寄存器及确定用于指令的至少一个执行管线偏好的过程。图4B说明用于更新管线发布表(例如,图1的管线发布表32)中的管线指示符(例如,图2的管线指示符40、52)的操作。
此实例中的过程在图4A中以指令处理电路检测是否更多指令仍待处理(图4A的框74)开始。在一些实施例中,通过检测指令提取电路及/或指令解码电路(例如,图1中分别的指令提取电路22及/或指令解码电路26)中的未经处理的指令的存在来实现此检测。如果未检测到剩余指令,那么指令处理电路执行存储在管线发布表(例如,图1的管线发布表32)中的任何管线指示符的验证。验证可包含检验所存储的管线指示符仍有效用于确定用于对应寄存器的执行管线偏好,及相应地更新管线发布表(例如,通过更新用于管线指示符的有效性位)。处理接着返回到图4A的框74。
如果检测到剩余指令,那么指令处理电路确定所检测到的指令是否为指定至少一个源寄存器(例如,图1的寄存器18(0到X)中的一者)的指令(图4A的框76)。检测到此类指令指示指令处理电路可能能够确定用于指令的至少一个执行管线偏好。在所检测到的指令并非指定至少一个源寄存器的指令的情况下,基于默认执行管线发布逻辑向执行管线发布所检测到的指令(图4A的框78),且处理继续进行到图4B的框88。
返回到图4A的框76处的决策点,如果所检测到的指令为指定至少一个源寄存器的指令,那么指令处理电路接下来确定所述指令是否为应基于所指定的源寄存器确定执行管线偏好所针对的指令(图4A的框80)。在一些实施例中,可仅分析指定至少一个源寄存器的指令的子集以确定执行管线偏好。如果指令并非应确定执行管线偏好所针对的指令,那么基于默认执行管线发布逻辑向执行管线发布指令(图4A的框78),且处理继续进行到图4B的框88。
如果针对指令确定执行管线偏好,那么由指令处理电路存取管线发布表以确定与所述至少一个源寄存器相关联的任何管线指示符是否经设置(图4A的框82)。如果无与所述至少一个源寄存器相关联的管线指示符经设置,那么基于默认执行管线发布逻辑向执行管线发布指令(图4A的框78),且处理继续进行到图4B的框88。如果与所述至少一个源寄存器相关联的至少一个管线指示符经设置,那么指令处理电路基于管线发布表中经设置的所述至少一个管线指示符确定用于指令的至少一个执行管线偏好(图4A的框84)。基于图4A的框84中所确定的所述至少一个执行管线偏好,接着向执行管线发布指令(图4A的框86),且处理在图4B的框88处继续。
现在参看图4B,指令处理电路接下来确定所述指令是否指定至少一个目标寄存器(图4B的框88)。如果所述指令并未指定至少一个目标寄存器,那么指令的正常处理在图4A的框90处继续。否则的话,指令处理电路确定是否应基于指令的目标寄存器更新管线发布表(图4B的框92)。在一些实施例中,可仅针对指令的子集更新管线发布表。如果指令并非应更新管线发布表所针对的指令,那么指令的正常处理继续(图4A的框90)。
如果指令为应更新管线发布表所针对的指令,那么指令处理电路接下来检查所述指令是否具有用于所有管线的相等的转发资源(图4B的框94)。在一些实施例中,一些指令的结果可同样用于转发到后续指令,而不管指令及后续指令被发布到的执行管线。因此,可以这么说,此类指令具有用于所有管线的相等的转发资源。如果所检测到的指令具有有限转发资源(即,如果所检测到的指令并不具有用于所有管线的相等的转发资源),那么可通过优先向与所检测到的指令相同的执行管线发布指定所检测到的指令的目标寄存器为源寄存器的后续指令改进基于处理器的系统的性能。因此,指令处理电路在管线发布表中基于所检测到的指令被发布到的执行管线设置与所述至少一个目标寄存器相关联的管线指示符(图4B的框96)。处理接着恢复执行图4A的框90。
现在返回到图4B的框94处的决策点,如果指令确实具有用于所有管线的相等的转发资源,那么优先向与所检测到的指令相同的执行管线发布后续指令将不会导致性能优点,并且,实际上,向执行管线发布指令的灵活性可能受约束。因此,在所述情况下,指令处理电路清除管线发布表中与所检测到的指令的目标寄存器相关联的所有管线指示符以指示所有管线具有相等的偏好(图4B的框98)。处理接着恢复执行图4A的框90。
如上文关于图1所提到,管线发布表32包括多个行,其中每一行对应于寄存器18(0到X)中的一者且包含至少一个管线指示符。在本文所描述的一些实施例中,每一管线指示符为对应于执行管线12(0到Q)中的一者的布尔型旗标。在这点上,图5说明包含基于存储在基于旗标的管线发布表100中的寄存器相关联偏好向执行管线12(0到Q)中的一者发布指令的示例性序列。在图5中,图1的指令处理电路14处理表示由图1的指令处理电路14从指令流19中提取及检测的一系列指令的所检测到的指令流102。第一所检测到的指令为ARM架构“加法”指令104。“加法”指令104指示将图1中所展示的寄存器18(0到X)中的两者(在此实例中,寄存器R2及R3)的内容加总且将结果写入到目标寄存器R1(也为寄存器18(0到X)中的一者)中的操作。如通过管线发布箭头106指示,向执行管线12(0到Q)中的一者(在此实例中被称作管线P1)发布“加法”指令104。
在向执行管线P1发布“加法”指令104之后,由指令处理电路14更新基于旗标的管线发布表100中对应于目标寄存器R1及执行管线P1的管线指示符108(如通过箭头110指示)。基于旗标的管线发布表100中的每一管线指示符为与寄存器18(0到X)中的恰好一者及执行管线12(0到Q)中的一者相关联的布尔型旗标。在图5中所展示的实例中,在任何给定时间,可针对寄存器18(0到X)中的给定寄存器设置仅一个管线指示符,但寄存器18(0到X)中的两者或两者以上可各自具有针对执行管线12(0到Q)中的同一者设置的管线指示符。因此,通过以下操作来更新管线指示符108:清除与目标寄存器R1相关联的行112中的所有管线指示符,及设置管线指示符108以指示向执行管线P1发布“加法”指令104,所述“加法”指令104为将寄存器R1作为写入目标的最近的指令。
指令处理电路14接下来检测所检测到的指令流102中的ARM架构MOV指令114。MOV指令114指定寄存器R1为源寄存器,且指示将源寄存器R1的内容写入到目标寄存器R0(寄存器18(0到X)中的一者)中的操作。在一些实施例中,可提取所检测到的指令流102中紧接在“加法”指令104之后的MOV指令114,而根据一些实施例,“加法”指令104及MOV指令114可在所检测到的指令流102中通过其它介入指令分离。
在检测到MOV指令114之后,由指令处理电路14存取基于旗标的管线发布表100(如通过箭头110指示)以确定是否在行112中针对源寄存器R1设置管线指示符。在此实例中,基于旗标的管线发布表100中的管线指示符108指示向执行管线P1发布将源寄存器R1作为写入目标的最近的指令(此处,“加法”指令104)。基于管线指示符108,指令处理电路14确定用于管线P1的执行管线偏好116,所述执行管线偏好116指示应优先向执行管线P1发布MOV指令114。
如上文所提到,在一些实施例中,可能不存在实际上向通过执行管线偏好116指示的执行管线12(0到Q)中的特定执行管线发布MOV指令114的任何保证,这是因为在确定指令被发布到的执行管线12(0到Q)中的最适当的执行管线中可考虑其它因素。在此实例中,向执行管线P2发布MOV指令114,如通过管线发布箭头118指示,而不是向优选的执行管线P1发布MOV指令。一旦MOV指令114被发布到执行管线P2,便接着在基于旗标的管线发布表100中更新对应于目标寄存器R0及管线P2的管线指示符120。
对于所检测到的指令流102中指定寄存器R0为源寄存器的后续MOV指令122,指令处理电路14可存取基于旗标的管线发布表100以确定管线指示符是否在行124中经设置用于源寄存器R0。基于管线指示符120,指令处理电路14确定执行管线偏好126,所述执行管线偏好指示用于管线P2的用于MOV指令122的发布的偏好。接着如上文关于“加法”指令104及MOV指令114所描述,进行MOV指令122的发布及基于MOV指令122的目标寄存器进行的基于旗标的管线发布表100的更新。
一些实施例可提供:存储在图1的管线发布表32中的每一管线指示符包含存储执行管线12(0到Q)中的一者的标识的数据值。在这点上,图6说明包含基于存储在基于标识的管线发布表128中的寄存器相关联偏好向执行管线12(0到Q)中的一者发布指令的示例性序列。在图6中,图1的指令处理电路14处理表示由图1的指令处理电路14从指令流19中提取及检测的一系列指令的所检测到的指令流130。第一所检测到的指令为ARM架构MOV指令132。MOV指令132指示将图1中所展示的寄存器18(0到X)中的一者(在此实例中,源寄存器RX)的内容复制到寄存器18(0到X)中的另一者(此处,目标寄存器R0)中的操作。在此实例中,源寄存器RX并不具有基于标识的管线发布表128中经设置的管线指示符,且因此不与任何特定执行管线12(0到Q)相关联。因此,如通过管线发布箭头134指示,基于默认执行管线发布逻辑向执行管线12(0到Q)中的一者(在此实例中,管线P0)发布MOV指令132。
在向执行管线P0发布MOV指令132之后,由指令处理电路14更新基于标识的管线发布表128(如通过箭头136指示)以设置对应于目标寄存器R0及执行管线P0的管线指示符138。基于标识的管线发布表128中的每一管线指示符为与寄存器18(0到X)中的一者相关联且识别执行管线12(0到Q)中的一者的数据值。在此实例中,通过存储执行管线P0的标识以指示向执行管线P0发布MOV指令132来更新管线指示符138,所述MOV指令132为将寄存器R0作为写入目标的最近的指令。在一些实施例中,设置管线指示符还可包含设置用于每一管线指示符的有效性位以指示所述管线指示符是否有效用于确定用于对应寄存器的执行管线偏好。因此,在此实例中,由指令处理电路14设置对应于管线指示符138的有效性位139以指示管线指示符138有效用于确定用于目标寄存器R0的执行管线偏好。
指令处理电路14接下来检测所检测到的指令流130中的后续的ARM架构MOV指令140。MOV指令140指示将源寄存器RX复制到寄存器18(0到X)中的另一者(此处,目标寄存器R1)中的操作。在一些实施例中,可在所检测到的指令流130中提取紧接在MOV指令132之后的MOV指令140,而根据一些实施例,MOV指令132及MOV指令140可在所检测到的指令流130中通过其它介入指令分离。如之前,源寄存器RX并不具有在基于标识的管线发布表128中经设置的管线指示符;因此,如通过管线发布箭头142指示,基于默认执行管线发布逻辑向执行管线12(0到Q)中的一者(此处,管线P1)发布MOV指令140。接着更新基于标识的管线发布表128以设置对应于目标寄存器R1及执行管线P1的管线指示符144。在这点上,管线指示符144存储执行管线P1的标识以指示向执行管线P1发布MOV指令140,所述MOV指令140为将寄存器R1作为写入目标的最近的指令。还设置对应于管线指示符144的有效性位145,以指示管线指示符144有效用于确定用于目标寄存器R1的执行管线偏好。
指令处理电路14接下来检测所检测到的指令流130中的ARM架构“加法”指令146。“加法”指令146指示将源寄存器R0及R1的内容加总且将结果存储在目标寄存器R2中的操作。在一些实施例中,可在所检测到的指令流130中提取紧接在MOV指令140之后的“加法”指令146,而根据一些实施例,MOV指令140及“加法”指令146可在所检测到的指令流130中通过其它介入指令分离。
在检测到“加法”指令146之后,由指令处理电路14存取基于标识的管线发布表128(如通过箭头136指示)以确定管线指示符是否在对应于源寄存器R0的行148及对应于源寄存器R1的行150中的任一者或两者中经设置。在此实例中,基于标识的管线发布表128中的管线指示符138指示向执行管线P0发布将源寄存器R0作为写入目标的最近的指令(此处,MOV指令132)。另外,基于标识的管线发布表128中的管线指示符144指示向执行管线P1发布将源寄存器R1作为写入目标的最近的指令(在此实例中,MOV指令140)。基于管线指示符138及管线指示符144,指令处理电路14确定两个执行管线偏好152,从而指示应优先向执行管线P0或执行管线P1发布“加法”指令146。
如上文所提到,在一些实施例中,可能不存在将向通过执行管线偏好152指示的执行管线12(0到Q)中的特定执行管线中的任一者发布“加法”指令146的任何保证,这是因为在确定用于指令的执行管线12(0到Q)中的最适当的执行管线中可考虑其它因素。同样地,当指令处理电路确定一个以上执行管线偏好时,一些实施例可应用额外的执行管线发布逻辑以从多个优选的执行管线当中进行选择。在此实例中,向优选的执行管线P1发布“加法”指令146,如通过管线发布箭头154指示。接着在基于标识的管线发布表128中更新对应于目标寄存器R2及执行管线P1的管线指示符156及有效性位157。
根据本文中所揭示的实施例,可在任何基于处理器的装置中提供可操作以用于基于寄存器相关联偏好向执行管线发布指令的指令处理电路或将所述指令处理电路集成到任何基于处理器的装置中。实例包含(但不限于)机顶盒、娱乐单元、导航装置、通信装置、固定位置数据单元、移动位置数据单元、移动电话、蜂窝式电话、计算机、便携式计算机、桌上型计算机、个人数字助理(PDA)、监视器、计算机监视器、电视机、调谐器、无线电、卫星无线电、音乐播放器、数字音乐播放器、便携式音乐播放器、数字视频播放器、视频播放器、数字视盘(DVD)播放器及便携型数字视频播放器。
在这点上,图7说明可使用图1中所说明的指令处理电路14的基于处理器的系统158的实例。在此实例中,基于处理器的系统158包含一或多个中央处理单元(CPU)160,每一中央处理单元包含一或多个处理器162。处理器162可包括指令处理电路(IPC)14。CPU 160可具有耦合到处理器162以用于快速存取临时存储的数据的高速缓冲存储器164。CPU 160耦合到系统总线166且可将基于处理器的系统158中所包含的主装置与从属装置互相耦合。如众所周知的,CPU 160与这些其它装置通过在系统总线166上交换地址、控制及数据信息进行通信。举例来说,CPU 160可将总线事务请求传达到存储器控制器168(作为从属装置的实例)。尽管图7中未说明,但可提供多个系统总线166。
其它主装置及从属装置可以连接到系统总线166。如图7中所说明,作为实例,这些装置可包含存储器系统170、一或多个输入装置172、一或多个输出装置174、一或多个网络接口装置176及一或多个显示器控制器178。输入装置172可包含任何类型的输入装置,包含(但不限于)输入按键、开关、语音处理器等。输出装置174可包含任何类型的输出装置,包含(但不限于)音频、视频、其它视觉指示器等。网络接口装置176可为经配置以允许将数据交换到网络180及从网络180交换数据的任何装置。网络180可以是任何类型的网络,包含(但不限于)有线或无线网络、私用或公共网络、局域网(LAN)、广域网(WLAN)及因特网。网络接口装置176可经配置以支持所要的任何类型的通信协议。存储器系统170可包含一或多个存储器单元182(0到N)。
CPU 160还可经配置以在系统总线166上存取显示器控制器178以控制发送到一或多个显示器184的信息。显示器控制器178经由一或多个视频处理器186将信息发送到显示器184以进行显示,所述一或多个视频处理器将待显示的信息处理成适合于显示器184的格式。显示器184可包含任何类型的显示器,包含(但不限于)阴极射线管(CRT)、液晶显示器(LCD)、等离子显示器等。
所属领域的技术人员将进一步了解,结合本文所揭示的实施例描述的各种说明性逻辑块、模块、电路及算法可以实施为电子硬件、存储在存储器或另一计算机可读媒体中且通过处理器或其它处理装置执行的指令或两者的组合。作为实例,本文所描述的主装置及从属装置可用于任何电路、硬件组件、集成电路(IC)、IC芯片或半导体裸片中。本文所揭示的存储器可为任何类型及大小的存储器,且可经配置以存储所要的任何类型的信息。为清楚说明这个可互换性,上文已大体上关于其功能性而描述了各种说明性组件、块、模块、电路及步骤。如何实施此功能性取决于特定应用、设计选项及/或强加于整个系统的设计约束。所属领域的技术人员可针对每一特定应用以不同方式来实施所描述的功能性,但此类实施方案决策不应被解释为会导致脱离本发明的范围。
结合本文所揭示的实施例描述的各种说明性逻辑块、模块及电路可以用以下各者来实施或执行:处理器、DSP、专用集成电路(ASIC)、FPGA或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件,或其经设计以执行本文所描述的功能的任何组合。处理器可以是微处理器,但在替代方案中,处理器可以是任何常规处理器、控制器、微控制器或状态机。处理器还可实施为计算装置的组合,例如,DSP与微处理器的组合、多个微处理器的组合、一或多个微处理器与DSP核心的联合,或任何其它此类配置。
本文所揭示的实施例可以体现在硬件及存储在硬件中的指令中,并且可以(例如)驻留在随机存取存储器(RAM)、快闪存储器、只读存储器(ROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、寄存器、硬盘、可装卸式磁盘、CD-ROM或所属领域中已知的任何其它形式的计算机可读媒体中。示例性存储媒体耦合到处理器,使得处理器可从存储媒体读取信息及将信息写入到存储媒体。在替代方案中,存储媒体可与处理器成一体式。处理器及存储媒体可驻留在ASIC中。ASIC可驻留在远程站中。在替代方案中,处理器及存储媒体可作为离散组件驻留在远程站、基站或服务器中。
还应注意,描述本文中的示例性实施例中的任一者中描述的操作步骤是为了提供实例及论述。可以用除了所说明的序列以外的众多不同序列执行所描述的操作。另外,在单个操作步骤中描述的操作实际上可以在数个不同步骤中执行。另外,可组合示例性实施例中所论述的一或多个操作步骤。应理解,如所属领域的技术人员将容易显而易见,流程图中所说明的操作步骤可以经受众多不同修改。所属领域的技术人员还将理解,可使用多种不同技术及技艺中的任一者来表示信息及信号。举例来说,可通过电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任何组合来表示可能贯穿上述描述提及的数据、指令、命令、信息、信号、位、符号及码片。
提供对本发明的先前描述以使得所属领域的技术人员能够进行或使用本发明。所属领域的技术人员将容易显而易见对本发明的各种修改,且本文中界定的一般原理可应用于其它变化而不脱离本发明的精神或范围。因此,本发明并不希望限于本文中所描述的实例及设计,而应符合与本文中所揭示的原理及新颖特征相一致的最广范围。
Claims (21)
1.一种用于处理计算机指令的方法,其包括:
检测指令流中的新的指令;
在确定所述新的指令指定至少一个源寄存器时:
基于管线发布表中的至少一个管线指示符确定用于所述新的指令的至少一个执行管线偏好,所述至少一个管线指示符与所述至少一个源寄存器相关联且指示之前发布的指令被发布至哪一个执行管线;以及
基于所述至少一个执行管线偏好向执行管线发布所述新的指令;以及
在确定所述新的指令指定至少一个目标寄存器时:
基于所述新的指令被发布到的所述执行管线更新所述管线发布表中与所述至少一个目标寄存器相关联的至少一个管线指示符。
2.根据权利要求1所述的方法,其中向所述执行管线发布所述新的指令包括向通过所述至少一个执行管线偏好指示的优选的执行管线发布所述新的指令。
3.根据权利要求1所述的方法,其中向所述执行管线发布所述新的指令包括基于所述至少一个执行管线偏好及其它执行管线发布逻辑向除了通过所述至少一个执行管线偏好指示的优选的执行管线以外的执行管线发布所述新的指令。
4.根据权利要求1所述的方法,其进一步包括在确定所述新的指令并不指定至少一个源寄存器时,基于默认执行管线发布逻辑向所述执行管线发布所述新的指令。
5.根据权利要求1所述的方法,其中确定所述至少一个执行管线偏好包括指示对至少一个执行管线的偏好,与所述至少一个源寄存器相关联的所述至少一个管线指示符是为所述至少一个执行管线而设置的。
6.根据权利要求1所述的方法,其中确定所述至少一个执行管线偏好包括在与所述至少一个源寄存器相关联的所述至少一个管线指示符中无一者经设置的情况下,基于默认执行管线发布逻辑确定所述至少一个执行管线偏好。
7.根据权利要求1所述的方法,其进一步包括检测所述新的指令具有到多个执行管线中的至少一者的有限的转发资源;
其中更新与所述至少一个目标寄存器相关联的所述至少一个管线指示符包括在所述管线发布表中设置与所述至少一个目标寄存器及所述新的指令被发布到的所述执行管线相关联的管线指示符。
8.根据权利要求1所述的方法,其进一步包括检测所述新的指令具有到多个执行管线的相等的转发资源;
其中更新与所述至少一个目标寄存器相关联的所述至少一个管线指示符包括清除所述管线发布表中与所述至少一个目标寄存器相关联的所有管线指示符。
9.根据权利要求1所述的方法,其中更新所述管线发布表中与所述至少一个目标寄存器相关联的所述至少一个管线指示符包括更新对应于多个执行管线中的相应者的多个旗标中的一者。
10.根据权利要求1所述的方法,其中更新所述管线发布表中与所述至少一个目标寄存器相关联的所述至少一个管线指示符包括存储多个执行管线中的一者的标识。
11.一种包括指令处理电路的处理器,
所述指令处理电路包括:
指令检测电路,其经配置以检测指令流中的新的指令;
管线发布表;
源寄存器检测电路,其经配置以:
确定所述新的指令是否指定至少一个源寄存器;以及
响应于确定所述新的指令指定所述至少一个源寄存器:
基于所述管线发布表中的至少一个管线指示符确定用于所述新的指令的至少一个执行管线偏好,所述至少一个管线指示符与所述至少一个源寄存器相关联且指示之前发布的指令被发布至哪一个执行管线;以及
目标寄存器检测电路,其经配置以:
确定所述新的指令是否指定至少一个目标寄存器;以及
响应于确定所述新的指令指定所述至少一个目标寄存器:
基于所述新的指令被发布到的所述执行管线更新所述管线发布表中与所述至少一个目标寄存器相关联的至少一个管线指示符;
所述处理器经配置以响应于所述源寄存器检测电路确定所述新的指令指定所述至少一个源寄存器,基于所述至少一个执行管线偏好向执行管线发布所述新的指令。
12.根据权利要求11所述的处理器,所述处理器经配置以向由所述至少一个执行管线偏好指示的优选的执行管线发布所述新的指令。
13.根据权利要求11所述的处理器,所述处理器经进一步配置以响应于所述源寄存器检测电路确定所述新的指令并不指定所述至少一个源寄存器,基于默认执行管线发布逻辑向所述执行管线发布所述新的指令。
14.根据权利要求11所述的处理器,其包括经配置以存储对应于多个执行管线中的相应者的多个旗标的所述管线发布表。
15.根据权利要求11所述的处理器,其包括经配置以存储多个执行管线中的一者的标识的所述管线发布表。
16.根据权利要求11所述的处理器,其包括安置在从由以下各者组成的群组构成的电路中的所述指令处理电路:指令提取电路、指令解码电路及指令队列。
17.根据权利要求11所述的处理器,其包括集成到半导体裸片中的所述指令处理电路。
18.根据权利要求11所述的处理器,其中所述指令处理电路集成到选自由以下各者组成的群组的一或多个装置:机顶盒、娱乐单元、导航装置、通信装置、固定位置数据单元、移动位置数据单元、调谐器、无线电装置、和卫星无线电装置。
19.根据权利要求11所述的处理器,其中所述指令处理电路集成到选自由以下各者组成的群组的一或多个装置:移动电话、计算机、监视器、电视机、和音乐播放器。
20.根据权利要求11所述的处理器,其中所述指令处理电路集成到选自由以下各者组成的群组的一或多个装置:蜂窝式电话、便携式计算机、桌上型计算机、个人数字助理PDA、计算机监视器、数字音乐播放器、便携式音乐播放器、数字视频播放器、视频播放器、数字视盘DVD播放器、和便携式数字视频播放器。
21.一种包括指令处理电路的处理器,
所述指令处理电路包括:
用于检测指令流中的新的指令的装置;
用于响应于确定所述新的指令指定至少一个源寄存器而基于管线发布表中的至少一个管线指示符确定用于所述新的指令的至少一个执行管线偏好的装置,所述至少一个管线指示符与所述至少一个源寄存器相关联且指示之前发布的指令被发布至哪一个执行管线;
用于响应于所述指令处理电路确定所述新的指令指定所述至少一个源寄存器而基于所述至少一个执行管线偏好向执行管线发布所述新的指令的装置;以及
用于响应于确定所述新的指令指定至少一个目标寄存器而基于所述新的指令被发布到的所述执行管线更新所述管线发布表中与所述至少一个目标寄存器相关联的至少一个管线指示符的装置。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261655655P | 2012-06-05 | 2012-06-05 | |
US61/655,655 | 2012-06-05 | ||
US13/741,849 | 2013-01-15 | ||
US13/741,849 US9858077B2 (en) | 2012-06-05 | 2013-01-15 | Issuing instructions to execution pipelines based on register-associated preferences, and related instruction processing circuits, processor systems, methods, and computer-readable media |
PCT/US2013/044125 WO2013184689A1 (en) | 2012-06-05 | 2013-06-04 | Issuing instructions to execution pipelines based on register-associated preferences, and related instruction processing circuits, processor systems, methods, and computer-readable media |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104335167A CN104335167A (zh) | 2015-02-04 |
CN104335167B true CN104335167B (zh) | 2018-04-27 |
Family
ID=49671778
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380028301.9A Expired - Fee Related CN104335167B (zh) | 2012-06-05 | 2013-06-04 | 用于处理计算机指令的方法和处理器 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9858077B2 (zh) |
EP (1) | EP2856304B1 (zh) |
JP (1) | JP6317339B2 (zh) |
CN (1) | CN104335167B (zh) |
WO (1) | WO2013184689A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017513094A (ja) * | 2014-03-27 | 2017-05-25 | インテル・コーポレーション | 複数のストランドからの命令をディスパッチするためのプロセッサロジックおよび方法 |
US10152101B2 (en) * | 2015-09-22 | 2018-12-11 | Qualcomm Incorporated | Controlling voltage deviations in processing systems |
US11855831B1 (en) | 2022-06-10 | 2023-12-26 | T-Mobile Usa, Inc. | Enabling an operator to resolve an issue associated with a 5G wireless telecommunication network using AR glasses |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5956747A (en) * | 1994-12-15 | 1999-09-21 | Sun Microsystems, Inc. | Processor having a plurality of pipelines and a mechanism for maintaining coherency among register values in the pipelines |
US6047369A (en) * | 1994-02-28 | 2000-04-04 | Intel Corporation | Flag renaming and flag masks within register alias table |
US6330661B1 (en) * | 1998-04-28 | 2001-12-11 | Nec Corporation | Reducing inherited logical to physical register mapping information between tasks in multithread system using register group identifier |
CN1340760A (zh) * | 2000-08-31 | 2002-03-20 | 国际商业机器公司 | 分区的发送队列和分配策略 |
CN1363063A (zh) * | 2000-02-16 | 2002-08-07 | 皇家菲利浦电子有限公司 | 减少处理器中写入通信量的方法和系统 |
CN101160561A (zh) * | 2005-02-24 | 2008-04-09 | 高通股份有限公司 | 通过循环结束分支来抑制分支历史寄存器的更新 |
US7571302B1 (en) * | 2004-02-04 | 2009-08-04 | Lei Chen | Dynamic data dependence tracking and its application to branch prediction |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5021945A (en) * | 1985-10-31 | 1991-06-04 | Mcc Development, Ltd. | Parallel processor system for processing natural concurrencies and method therefor |
JPH10143365A (ja) | 1996-11-15 | 1998-05-29 | Toshiba Corp | 並列処理装置及びその命令発行方式 |
US5963723A (en) | 1997-03-26 | 1999-10-05 | International Business Machines Corporation | System for pairing dependent instructions having non-contiguous addresses during dispatch |
US5941983A (en) | 1997-06-24 | 1999-08-24 | Hewlett-Packard Company | Out-of-order execution using encoded dependencies between instructions in queues to determine stall values that control issurance of instructions from the queues |
US6643762B1 (en) * | 2000-01-24 | 2003-11-04 | Hewlett-Packard Development Company, L.P. | Processing system and method utilizing a scoreboard to detect data hazards between instructions of computer programs |
US6754807B1 (en) * | 2000-08-31 | 2004-06-22 | Stmicroelectronics, Inc. | System and method for managing vertical dependencies in a digital signal processor |
US6976152B2 (en) * | 2001-09-24 | 2005-12-13 | Broadcom Corporation | Comparing operands of instructions against a replay scoreboard to detect an instruction replay and copying a replay scoreboard to an issue scoreboard |
US20040181651A1 (en) * | 2003-03-11 | 2004-09-16 | Sugumar Rabin A. | Issue bandwidth in a multi-issue out-of-order processor |
US20060095732A1 (en) | 2004-08-30 | 2006-05-04 | Tran Thang M | Processes, circuits, devices, and systems for scoreboard and other processor improvements |
US7774582B2 (en) | 2005-05-26 | 2010-08-10 | Arm Limited | Result bypassing to override a data hazard within a superscalar processor |
US20070022277A1 (en) | 2005-07-20 | 2007-01-25 | Kenji Iwamura | Method and system for an enhanced microprocessor |
US20070260856A1 (en) | 2006-05-05 | 2007-11-08 | Tran Thang M | Methods and apparatus to detect data dependencies in an instruction pipeline |
US8055883B2 (en) * | 2009-07-01 | 2011-11-08 | Arm Limited | Pipe scheduling for pipelines based on destination register number |
US20120023314A1 (en) | 2010-07-21 | 2012-01-26 | Crum Matthew M | Paired execution scheduling of dependent micro-operations |
-
2013
- 2013-01-15 US US13/741,849 patent/US9858077B2/en not_active Expired - Fee Related
- 2013-06-04 CN CN201380028301.9A patent/CN104335167B/zh not_active Expired - Fee Related
- 2013-06-04 EP EP13730980.3A patent/EP2856304B1/en not_active Not-in-force
- 2013-06-04 JP JP2015516123A patent/JP6317339B2/ja active Active
- 2013-06-04 WO PCT/US2013/044125 patent/WO2013184689A1/en active Application Filing
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6047369A (en) * | 1994-02-28 | 2000-04-04 | Intel Corporation | Flag renaming and flag masks within register alias table |
US5956747A (en) * | 1994-12-15 | 1999-09-21 | Sun Microsystems, Inc. | Processor having a plurality of pipelines and a mechanism for maintaining coherency among register values in the pipelines |
US6330661B1 (en) * | 1998-04-28 | 2001-12-11 | Nec Corporation | Reducing inherited logical to physical register mapping information between tasks in multithread system using register group identifier |
CN1363063A (zh) * | 2000-02-16 | 2002-08-07 | 皇家菲利浦电子有限公司 | 减少处理器中写入通信量的方法和系统 |
CN1340760A (zh) * | 2000-08-31 | 2002-03-20 | 国际商业机器公司 | 分区的发送队列和分配策略 |
US7571302B1 (en) * | 2004-02-04 | 2009-08-04 | Lei Chen | Dynamic data dependence tracking and its application to branch prediction |
CN101160561A (zh) * | 2005-02-24 | 2008-04-09 | 高通股份有限公司 | 通过循环结束分支来抑制分支历史寄存器的更新 |
Also Published As
Publication number | Publication date |
---|---|
WO2013184689A1 (en) | 2013-12-12 |
EP2856304B1 (en) | 2017-07-19 |
JP6317339B2 (ja) | 2018-04-25 |
CN104335167A (zh) | 2015-02-04 |
JP2015518995A (ja) | 2015-07-06 |
US9858077B2 (en) | 2018-01-02 |
US20130326197A1 (en) | 2013-12-05 |
EP2856304A1 (en) | 2015-04-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2850515B1 (en) | Fusing conditional write instructions having opposite conditions in instruction processing circuits, and related processor systems, methods, and computer-readable media | |
CN105453045B (zh) | 使用动态宽度计算的壁垒同步 | |
US20140149722A1 (en) | Fusing Immediate Value, Write-Based Instructions in Instruction Processing Circuits, and Related Processor Systems, Methods, and Computer-Readable Media | |
CN106537330B (zh) | 通过使用数据索引化累加器使标量操作并行化的方法和处理器 | |
JP2016515262A (ja) | 命令処理回路における冗長同期バリアの削除と、関連プロセッサシステム、方法、およびコンピュータ可読媒体 | |
CN105683905A (zh) | 在多核心处理器中并行功能的高效率硬件分派及相关的处理器系统、方法及计算机可读媒体 | |
CN106462394B (zh) | 使用共享硬件资源的群集处理器核心中硬件线程的动态负载平衡以及相关的电路、方法和计算机可读媒体 | |
CN106844017A (zh) | 用于网站服务器处理事件的方法和设备 | |
US9830152B2 (en) | Selective storing of previously decoded instructions of frequently-called instruction sequences in an instruction sequence buffer to be executed by a processor | |
CN108431831A (zh) | 循环代码处理器优化 | |
WO2017124649A1 (zh) | 用于向量运算的数据读写调度器及保留站 | |
US20130036426A1 (en) | Information processing device and task switching method | |
CN104335167B (zh) | 用于处理计算机指令的方法和处理器 | |
CN106575220A (zh) | 多个经集群极长指令字处理核心 | |
CN104854556B (zh) | 建立分支目标指令高速缓冲存储器条目的方法和系统 | |
US9146741B2 (en) | Eliminating redundant masking operations instruction processing circuits, and related processor systems, methods, and computer-readable media | |
US20140047221A1 (en) | Fusing flag-producing and flag-consuming instructions in instruction processing circuits, and related processor systems, methods, and computer-readable media | |
CN109716293A (zh) | 在基于处理器的系统中使用融合处理器核心执行分布式分支预测 | |
CN107111487A (zh) | 在乱序(ooo)处理器中提供早期指令执行,以及相关设备、方法和计算机可读媒体 | |
US20160179532A1 (en) | Managing allocation of physical registers in a block-based instruction set architecture (isa), and related apparatuses and methods | |
WO2017222798A1 (en) | Method and apparatus for performing simd gather and copy operations | |
CN106605207A (zh) | 使用文字加载预测表预测文字加载值,以及相关电路、方法和计算机可读媒体 | |
TW201913364A (zh) | 在以區塊架構處理器為基礎系統中快取指令區塊標頭資料 | |
CN107924310A (zh) | 使用避免转出表(pat)预测计算机处理器中的存储器指令转出 | |
KR20230124598A (ko) | 높은 처리량 및 낮은 오버헤드 커널 개시를 위한 압축 커맨드 패킷 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180427 Termination date: 20200604 |