CN106990939A - 修改数据处理单元的行为 - Google Patents
修改数据处理单元的行为 Download PDFInfo
- Publication number
- CN106990939A CN106990939A CN201610886213.8A CN201610886213A CN106990939A CN 106990939 A CN106990939 A CN 106990939A CN 201610886213 A CN201610886213 A CN 201610886213A CN 106990939 A CN106990939 A CN 106990939A
- Authority
- CN
- China
- Prior art keywords
- instruction
- behavior
- circuit
- mapping
- data processing
- 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.)
- Granted
Links
- 238000012545 processing Methods 0.000 title claims abstract description 43
- 230000008859 change Effects 0.000 title claims abstract description 18
- 238000013507 mapping Methods 0.000 claims abstract description 84
- 230000004048 modification Effects 0.000 claims abstract description 36
- 238000012986 modification Methods 0.000 claims abstract description 36
- 230000006399 behavior Effects 0.000 claims description 91
- 238000000034 method Methods 0.000 claims description 15
- 230000006870 function Effects 0.000 claims description 11
- 230000014509 gene expression Effects 0.000 claims description 6
- 230000004044 response Effects 0.000 claims description 6
- 238000005516 engineering process Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 5
- 230000007547 defect Effects 0.000 description 3
- 230000005611 electricity Effects 0.000 description 3
- 230000008439 repair process Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 239000002773 nucleotide Substances 0.000 description 2
- 125000003729 nucleotide group Chemical group 0.000 description 2
- 235000017060 Arachis glabrata Nutrition 0.000 description 1
- 241001553178 Arachis glabrata Species 0.000 description 1
- 235000010777 Arachis hypogaea Nutrition 0.000 description 1
- 235000018262 Arachis monticola Nutrition 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 235000020232 peanut Nutrition 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000013519 translation Methods 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/30181—Instruction operation extension or modification
- G06F9/30185—Instruction operation extension or modification according to one or more bits in the instruction, e.g. prefix, sub-opcode
-
- 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/30181—Instruction operation extension or modification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
-
- 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/22—Microcontrol or microprogram arrangements
- G06F9/24—Loading of the microprogram
-
- 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/22—Microcontrol or microprogram arrangements
- G06F9/26—Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
- G06F9/262—Arrangements for next microinstruction selection
- G06F9/268—Microinstruction selection not based on processing results, e.g. interrupt, patch, first cycle store, diagnostic programs
-
- 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/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
-
- 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/3017—Runtime instruction translation, e.g. macros
-
- 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/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
- G06F9/328—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for runtime instruction patching
-
- 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/3802—Instruction prefetching
-
- 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/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/348—Circuit details, i.e. tracer hardware
-
- 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/30181—Instruction operation extension or modification
- G06F9/30196—Instruction operation extension or modification using decoder, e.g. decoder per instruction set, adaptable or programmable decoders
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Abstract
本公开涉及修改数据处理单元的行为。一种装置被提供,该装置包含可重写储存电路,该可重写储存电路储存至少一个指令标识符与行为修改之间的至少一个映射。选择电路自可重写储存电路中选择一选定映射,该选定映射具有识别所接收的指令的指令标识符。所接收的指令引起数据处理单元执行默认行为。控制电路引起数据处理单元根据经行为修改修改后的默认行为来运作。
Description
技术领域
本公开涉及修改数据处理单元的行为的领域。
背景技术
在包含管线的数据处理单元(Data Processing Unit;DPU)中,所获取的指令被译码成一个或多个微操作(由数个位表示)且这些微操作随后被传递至一个或多个执行电路。然而,有时在硬件已被构建之后会发现设计缺陷,该设计缺陷引起某些指令或指令序列不适当地被执行。先前已提出藉由对编译器重新编程来处理这些问题。例如,在产生组合代码时,编译器可避免产生已知会引起问题的指令或指令序列。然而,此方法非常耗时且复杂,需要大量的努力来实施。另外,此方法并未完全解决根本问题,因为未使用“新的”编译器编译的代码将仍然经受那样的缺陷。因此,将需要提供一种机制,在该机制中能够动态地控制特定指令或指令序列的识别,且随后提供指示已侦测到指令或指令序列的信号或采取可用于阻止那些指令不适当执行的特定动作。
发明内容
自第一示例性配置来看,本发明提供一种装置,该装置包含:可重写储存电路,储存至少一个指令标识符与行为修改之间的至少一个映射;选择电路,自该可重写储存电路中选择一选定映射,该选定映射具有识别所接收的指令的指令标识符,其中所接收的指令引起数据处理单元执行默认行为;及控制电路,引起数据处理单元根据经行为修改修改后的默认行为来运作。
自第二示例性配置来看,本发明提供一种操作数据处理装置的方法,该方法包含:在可重写储存电路中,储存至少一个指令标识符与行为修改之间的至少一个映射;接收所接收的指令,其中所接收的指令引起数据处理单元执行默认行为;自可重写储存电路中选择具有识别所接收的指令的指令标识符的选定映射;且引起该数据处理单元根据经行为修改修改后的默认行为来运作。
自第三示例性配置来看,本发明提供一种装置,该装置包含:可重写储存电路,储存至少一个指令标识符;选择电路,自可重写储存电路中选择一选定映射,该选定映射具有识别待由数据处理单元执行的所接收的指令的指令标识符;控制电路,产生识别选定映射的信号;及分析电路,产生包含由数据处理单元执行的操作的输出迹,接收所述信号,并且响应于接收到所述信号而将选定映射输出至所述迹。
附图说明
本发明将仅举例而言参考如在附图中所示的本发明的实施例进一步描述,在这些附图中:
图1示意地图示根据一实施例的修复电路(patch circuitry);
图2示意地图示根据一实施例的DPU及修复电路;
图3示意地图示根据一实施例的DPU及修复电路;
图4示意地图示根据一实施例的DPU及修复电路;
图5A图示根据一实施例的由可重写储存电路储存的映射;
图5B图示根据一实施例的由可重写储存电路储存的映射;
图5C图示根据一实施例的由可重写储存电路储存的映射;
图5D图示根据一实施例的由可重写储存电路储存的映射;
图5E图示根据一实施例的由可重写储存电路储存的映射;
图6图示用于确定特定映射中的指令标识符是否对应于所接收的指令的比较电路的实例;及
图7图以流程图形式图示用于基于所接收的指令确定要发生的任何行为修改的方法。
具体实施方式
在参考附图论述实施例之前,提供了实施例的以下描述。
自第一示例性配置来看,本发明提供一种装置,该装置包含:可重写储存电路,储存至少一个指令标识符与行为修改之间的至少一个映射;选择电路,自可重写储存电路中选择一选定映射,该选定映射具有识别所接收的指令的指令标识符,其中所接收的指令引起数据处理单元执行默认行为;及控制电路,引起该数据处理单元根据经行为修改修改后的默认行为来运作。
数据处理单元(DPU)响应于指令执行特定默认行为。可重写储存电路能够储存指令标识符与行为修改之间的若干映射。当所接收的指令与映射中之一者中的指令标识符匹配时,经由控制电路使DPU根据经行为修改修改后的默认行为来运作。因为可重写储存电路为可重写的,所以能够使用软件动态地增加、删除和编辑映射。因此,DPU响应于给定的接收指令的行为可得以改变。由此,若随着特定指令或指令序列的执行发现故障,则能够使DPU以不同于默认方式的行为来运作,从而阻止该故障发生。应注意,经行为修改修改后的默认行为可产生与默认行为完全不同的行为,以使得默认行为根本不发生。
在一些实施例中,指令标识符识别多个指令。这些实施例允许DPU的行为基于一类或更多类指令或具有特定特性的任何指令而修改。
指令标识符识别多个指令可以有许多方式。然而,在一些实施例中,指令标识符包含基本指令及掩码;所接收的指令是由多个位表示的;且该掩码指示所接收的指令中那些必须与基本指令的相应位相匹配的位,以便该指令标识符识别所接收的指令。这种识别多个指令的方式尤为有效且允许当发生匹配时在控制方面具有很大灵活性。
在一些实施例中,指令标识符识别包含一个或多个运算符的至少一个指令。指令运算符指示由DPU执行的操作或任务。操作的实例包括执行整数加法或乘法,引起程序流发生分支,或执行浮点运算。指令标识符可用于识别一个此种运算类型,一类运算(例如,整数或浮点加法)或所有运算。
在一些实施例中,指令标识符识别包含一个或多个操作数的至少一个指令。操作数为对其执行运算的各个元素。例如,在加法运算“ADD r2 23”中,该运算将值“2”及“3”相加在一起且将结果储存于寄存器r2中,操作数为“r2”、“2”及“3”。操作数可以为绝对值、寄存器地址或内存地址。
在一些实施例中,指令标识符识别引用一个或多个内存地址的至少一个指令。当储存数据至内存或自内存接收数据(可由加载/储存处理单元执行的操作)时常常引用内存地址。由于在加载/储存单元与内存装置本身之间必须发生的交握协议,访问内存可能尤为复杂。因此,相对于向/从内存装置加载或储存数据,发生问题并不罕见。
在一些实施例中,至少一个映射还包含所需状态;且选择电路还依赖于所需状态匹配数据处理单元的当前状态来选择选定映射。在这些实施例中,不仅指令必须匹配特定映射的标识符,而且DPU亦必须具有匹配所需状态的当前状态。在映射与指令序列相关的情况下,所需状态可在指令之间变化,可对所有指令相同,或可仅针对序列中的最终指令而指定。
在一些实施例中,所需状态包含数据处理单元处于32位模式或64位模式之一者中的要求。DPU在其中操作的执行模式可对DPU如何工作具有影响。因此,在一些情况下,为了在特定执行模式中运行某些指令,需要影响DPU的行为。
在一些实施例中,所需状态包含数据处理单元操作于比预定运行级别具有更多特权的级别或比预定级别具有更少特权的级别中的要求。DPU通常可以不同级别的特权操作。例如,多件用户软件各自以“用户”特权级别操作且操作系统按照“管理器”或“监视器”特权级别来操作。如此能够使操作系统限制或控制对敏感数据或操作的存取,或将多件用户软件彼此分离以便其无法彼此干扰。在更复杂的布置中,超级管理器可在甚至更高的“超级管理器”特权级别下运行,以允许多个操作系统在管理器的控制及管理下在一个装置上操作。其他或不同的级别亦是可能的。
在一些实施例中,所需状态包含数据处理单元已启用或禁用指定功能的要求。例如,传输后备缓冲器(Translation Lookaside Buffer;TLB)可用以在最近使用的虚拟内存地址与物理内存地址之间快速变换。然而,在一些场合,该功能可藉由停用TLB而禁用。所需状态可代表多个不同功能。例如,所需状态可要求一些功能被启用,而其他功能被禁用。
在一些实施例中,所需状态包含数据处理单元正在使用预定指令集或预定指令集以外的指令集的要求。通常可使DPU在不同指令集之间切换。因此,所需状态可要求特定指令集正在由DPU使用以修改由特定指令引起的行为。
在一些实施例中,至少一个映射包含包括所述指令标识符在内的至少两个指令标识符的序列;且选择电路自可重写储存电路选择一选定映射,该选定映射具有包括所述指令标识符在内的至少两个指令标识符的序列,其中该至少两个指令标识符识别包括所接收的指令的接收指令的序列。然而,在乱序实现方式中,被进行行为修改的所接收的指令可为序列中的第一指令,被进行行为修改的所接收的指令通常在接收指令序列的末端。因此,当所接收的指令为指令序列中的第一或最后一个指令时,装置能够控制所接收的指令的行为。例如,可能是以下情况,加法指令之后跟随减法指令引起故障发生。映射因此可包括指令标识符序列-第一指令标识符匹配加法指令且第二指令标识符匹配减法指令,以便序列中的减法指令的行为被修改以避免故障行为。
在一些实施例中,该装置包含管线,该管线包含指令获取电路、指令译码电路和至少一个执行电路;且该数据处理单元包含该指令译码电路及该至少一个执行电路。指令获取电路引起指令得以自例如内存而获取。指令译码电路引起所获取的指令得以译码为一个或多个微操作,该一个或多个微操作随后被提供至至少一个执行电路。至少一个执行电路可包括例如算术逻辑单元(Arithmetic Logic Units;ALU)、浮点单元(Floating PointUnit;FPU)、加载/储存单元、分支单元,及乘法累加单元(Multiply Accumulate unit;MAC)。其他实例对于本领域技术人员将是显而易见的。在一些实施例中,指令获取电路发送控制信号至选择电路以及至译码电路。
在一些实施例中,响应于接收到所述指令,指令译码电路输出对应于待由至少一个执行电路执行的一个或多个微操作的多个位;所述行为修改指示所述多个位的集合要被修改。由译码电路输出的总位可被称为输出平面且可包含大量位,这些位可被发送至一个或多个执行电路。藉由修改这些位中的一些位,能够由于运行特定指令而改变DPU的行为。
所述集合可以是完全新位集合。如此可引起执行电路执行与默认行为完全不同的行为。然而,在其他实施例中,所述集合为一子集。换言之,例如,藉由若已知寄存器r2已变得不可用而总是使用寄存器r3而非寄存器r2,则可稍微修改行为。在一些实施例中,所述集合由单个位构成。该位可用于编码特殊行为。例如,单个位可用于表示特定指令将不被乱序执行。
默认行为通过行为修改而被修改可以有许多实例。然而,在一些实施例中,经行为修改修改后的默认行为包含引起数据处理单元冲洗管线。管线可使得多个指令能够被大体上同时地处置。实际上,当一个指令正在由执行电路执行时,下一个指令正在由指令译码电路译码且在该下一个指令之后的指令正在由指令获取电路获取。冲洗管线使得所有正在被处置的指令被丢弃。此举具有“重设”管线状态的效果。
在一些实施例中,经行为修改修改后的默认行为包含引起数据处理单元启用或禁用对数据的预取。在预期到最近要使用数据时,可以在从例如内存中获取数据之前对要获得数据进行预取。对数据预取的禁用例如可藉由将任何预取指令转换为NOOP指令来实现,该NOOP指令为仅引起程序计数器递增的特殊指令。从而,预取因此可被禁用。
在一些实施例中,经行为修改修改后的默认行为包含引起数据处理单元改变在一个时钟周期中发出的指令数目。此改变的实例为三重发出(triple-issuing),其中三个指令可同时地发出至执行电路。因此,在一些实施例中,三重发出可被减少至双重发出或多重发出可被全部禁用,从而将在一个时钟周期中发出的指令的数目减少至1。
在一些实施例中,经行为修改修改后的默认行为包含引起数据处理单元启用或禁用乱序执行。乱序执行使得指令能够被重排序以改善并行性。例如,若仅存在单个浮点电路,则一次仅可处置一个浮点运算。序列中的两个浮点指令因此可被重排序,以便在第一浮点指令被运行时,这些指令由能运行的其他指令所散置。
在一些实施例中,经行为修改修改后的默认行为包含信号的产生,该信号识别选定映射。该信号因此可用于确定遇到了指令(或指令序列)。当执行除错或收集统计量(例如,用于效能分析)时,此信息可能是有益的。
在一些实施例中,该装置包含用于接收信号的嵌式逻辑分析器。可使嵌式逻辑分析器(Embedded Logic Analyser;ELA)接收在当特定事件发生时来自装置内的不同电路的输入信号。例如,每当ALU接收到执行特定操作的指令时,ELA可接收来自ALU的信号。藉由另外地向ELA提供关于何时遇到指令或指令序列的信息,能够对装置的行为执行更多详细分析。
现将参照附图描述特定实施例。
图1图示根据一实施例的修复电路100。修复电路100包含选择电路110,选择电路110接收对应于所接收的指令的输入信号。在此实施例中,输入信号是由指令获取电路产生的且与发送至作为管线的一部分的指令译码电路的相同信号相对应。选择电路110参考可重写储存电路120,该可重写储存电路储存指令标识符与行为修改之间的映射表。由比较电路150进行比较,且若发现匹配,则将所得行为修改提供至控制电路,该控制电路输出行为修改信号(例如,“修复信号”)。控制电路130另外地输出控制信号,该控制信号用于控制行为修改的插入。在图2至图4中更详细地图示此过程,这些附图图示DPU。可重写储存电路120中的每一条目与特定指令、某类指令,或任一者的序列相关。对于映射指令序列的每一映射,必须提供计数器以追踪至今每一序列中的多少指令已匹配。每一计数器储存于选择电路110中的计数器140的群组中。
图2图示包含DPU 280的系统200。在此实例中,DPU包含系统200的负责实际上执行指令的那些部分且具体而言包括指令译码器220及多个执行电路220、225、230、235及240。指令获取电路205及指令译码电路210以及执行电路220、225、230、235和240共同地形成管线。在管线之内,指令由指令获取电路205获取。如此引起输入信号被提供至指令译码电路210以及修复电路110。指令译码电路210译码指令,且如此引起多个位以一个或多个微操作的形式由指令译码电路210输出。这些微操作在复用器215处与修复电路110输出的补丁(例如,经修改的微操作)复用在一起。由修复电路110输出的控制信号可用于控制复用器。因此,能够使组成由指令译码电路210输出的微操作的位的整个集合或仅这些位的子集或甚至单个位得以修改。复用器215的输出对应于经行为修改修改后的默认行为,且所得修改后的微操作随后被传送至相关执行电路220、225、230、235及240。在此实施例中,执行电路包括:算术逻辑单元(ALU),该单元执行整数运算或逻辑运算;浮点单元(Floating PointUnit;FPU)225,该单元对浮点数执行运算;加载/储存单元(LD/ST)230,该单元处置从/向内存数据和储存数据;分支单元(BR)235,该单元处置程序流的控制和分支;乘积累加单元(MAC)240,该单元处置将数字相乘且将该结果相加至累加器的专门算术情况。然而,这些电路仅为执行电路的实例。具体而言,可以使用这些或其他执行电路的任何组合。执行电路的组合亦可变化。在一些情况下,亦可包括相同类型的多个执行电路。在此实施例中,包括了一组配置寄存器250。这些寄存器控制DPU 245运作的方式。在一些实施例中,配置寄存器250可用于启用或禁用功能,诸如预取功能。在一些情况下,这些寄存器可用于禁用实验性的功能。在任何情况下,指令译码电路210鉴于配置寄存器250的值依赖于所接收的指令来发出微操作。修复电路110可提供覆写配置寄存器的补丁。例如,若由指令译码电路210产生的微操作含有应使用实验性预取机制的指示,则修复电路可在知道实验性机制不起作用的情况下,针对部分微操作发出作为补丁的替换位集合以禁用实验性机制。
图3图示系统300,系统300类似于图2中所示的系统200,除了修复电路110能够向指令译码电路210中的多发出电路305输出信号。多发出电路305控制DPU 245执行指令的多发出(例如双发出)的能力。此举涉及在单个时钟周期中发出多个指令(例如,在双发出的情况下为两个指令)的过程。在一些实施例中,在行为修改涉及禁用或启用多发出的情况下,不必向复用器215提供“补丁”或任何经修改的位。
图4图示系统400,其中由修复电路110输出的行为修改信号采用至嵌式逻辑分析器(ELA)405的信号的形式,该ELA为DPU的另一实例。行为修改信号指示储存于可重写储存电路120中的映射中的何者已与所接收的指令匹配。例如,行为修改信号可包含映射的索引。ELA接收来自系统400之内的不同电路的输入,这些电路包括那些执行电路220、225、230、235及240。ELA基于其接收的信号输出迹(trace)。例如,响应于ALU 220执行加法操作,信号被传输至ELA 405,ELA 405将此信息输出至迹。然而,另外,由ELA 405自修复电路110接收的信号亦引起输出被写入至迹。此举可使得藉由查看具有与由指令获取电路205获取的特定指令或指令序列是否匹配相关的附加信息的迹而更容易地执行除错或统计分析。
图5A图示根据一实施例的由可重写储存电路120储存的映射505的实例。所接收的指令被与每一映射中的指令标识符进行匹配,直至发现匹配,或直至确定无匹配为止。每一映射包含至少一个指令标识符,各指令标识符包含基本指令515及掩码510。掩码510指示基本指令515中的哪些位要与所接收的指令中的相应位映射。在此实施例中,在掩码510的位位置i中的“1”的存在指示基本指令515的位位置i中的位必须匹配所接收的指令的位位置i中的位。因此,在图5A中所示的实例中,若所接收的指令具有任何四个位,之后是位“0010”,之后是任何另外的八个位,则将发生匹配。因此,在此情况下,指令标识符将与一大类指令相匹配。相反,当掩码几乎充满1时,则仅非常特定的指令将引起匹配。标志“S”520用于指示此指令标识符是否为映射505中的指令标识符序列的一部分。在此情况下,映射505的值“0”指示此指令标识符并非为映射505中的指令标识符序列的一部分。因此,若所接收的指令匹配此映射505中的单个指令标识符,则列于输出区段525之下的行为修改发生。输出区段525中的各列530、535、540、545指示当特定映射匹配时可发生的不同行为修改。ELA列525用于指示是否信号应例如输出至ELA 405,如先前参考图4所论述。该信号包括对已匹配的条目的指示。在此实例中,该信号指示值“0”来指示编号0的映射是匹配的。预取(Pre)列530指示是否应启用或禁用对指令的预取。预取可藉由例如将所有隐式内存存取指令转换为NOOP指令来禁用,该NOOP指令仅递增DPU的程序计数器。OOO列535指示是否应启用或禁用乱序指令执行。在此实例中,条目“0”指示应禁用乱序指令执行;换言之,此指令的排序是不可改变的。多发出(Multi)列540指示可与此指令并行发出的指令数目。本文的值“1”将意谓指令仅可就其自身发出。换言之,此指令无法与任何其他指令一起多发出(诸如,双发出)。当然,在本文提供的任何值取决于来自下层硬件的支持。例如,若仅提供单个ALU,则无论本文提供的值如何,算术或逻辑整数指令仅可单发出。冲洗列545指示一旦已执行指令就冲洗管线。其他行为修改亦是可能的。此外,单个映射可提供多个修改。例如,单个映射可引起管线得以冲洗,且对于指令的排序,藉由针对该单个条目在OOO列535中设定“0”及冲洗列545中设定“1”来保持不变。
图5B图示其中存在包含指令标识符555、560的序列的单个映射550的实例。在此情况下,若第一所接收的指令匹配第一指令标识符555且随后的指令匹配第二指令标识符560,则将匹配该单一映射550。第一指令标识符的S列520中的值“1”用于指示,在匹配了第一指令标识符555的情况下,下一个指令标识符560亦必须匹配要匹配的整体映射550本身。在此实例中,第一指令必须包含12个位,之后是位“1111”。后续指令必须包含位“01100100”,之后是另外8个位。若满足了所有这些条件,则输出列指示在执行了指令之后冲洗管线。需要多个指令要被匹配的每一映射使用计数器140集合中的一计数器来记录至今指令标识符序列中已有多少指令标识符匹配。若在任何阶段,当前指令不匹配下一个指令标识符,则计数器被重设且匹配必须重新开始。
如前所述,许多行为修改在配置寄存器250中设定有默认值。在配置寄存器250中设置的值影响由指令译码电路210输出的微操作。在图5A及图5B中所示的表中提供的一些行为修改(预取、OOO,及冲洗)引起一组经改变的微操作要被修复电路110输出。这些改变通常由非常小数目的位(通常甚至是单个位)来表示。例如,若加法指令的微操作包含140个位,则第50个位可控制是否允许乱序执行。若已知随后必须改变何位,而不是重新输出经修改微操作的整个集合,则可以输出小得多的「补丁」。此补丁可经由复用器215应用于由指令译码电路210产生的微操作,该复用器215由修复电路110所控制。如此非常有效地产生了一组经修改的微操作。多发出藉由向指令译码电路210中的多发出电路305发出信号来启用或禁用。ELA 405的使用藉由简单地向ELA 405提供信号来启用或禁用。
图5C图示其中对于映射的行为修改提供不同输出列565的实例。新位列570指示待与表示由指令译码电路210产生的微操作的位复用的新的一组位。开始列575指示这些位要与表示由指令译码电路210产生的微操作的位复用的点。长度列580指示替换位的长度。在此实例中,亦提供T列585。此列指示后续指令是否要被修改。随后,提供后续输出行以指示如何修改那些指令。例如,图5C中所示的映射指示,若与所接收的指令匹配,则用于表示由指令译码电路210产生的微操作的位中的位11至位18要被修改为「0010 1110」。此外,由指令译码电路210产生的微操作的位中针对后续指令的位216至219要被修改为「0110」。因此,输出列565共同显式地指示由指令译码电路210产生的微操作如何藉由复用器215修改。
图5D图示具有另外的不同输出列565的实例。在图5D的情况下,每一映射具有一组替换位595及掩码590,该掩码指示组成由指令译码电路210输出的微操作的位中哪些位应被替换以及哪些位应被保持。在此实例中,掩码590中在位位置j处的“1”指示在由指令译码电路210产生的微操作的位置j处的位应用在替换位595的位置j处的相应位替换。在位置j处的“0”指示不应对位置j处的位进行替换。例如,在图5D的实例中,微操作的前四个位将用“1111”替换,接下来四个位将不被修改,随后四个位将用“1110”替换,且接下来四个位将用“0011”替换。此过程允许对微操作进行极其复杂的修改。
图5A至图5D中所述的实例中之每一者可被组合以使得一些映射使用图5A中所述的技术,且其他映射使用图5B、图5C或图5D中所述的技术。实现这种布置的一种方式将为具有一种首要表,该表提供指令标识符以及索引及要使用的次要表的指示。随后可对四个不同技术中的每一技术提供不同的次要表。
在图5C中描述的「T」列的使用亦可延伸至图5A、图5B或图5D中所描述的技术中的任一者。
图5E图示当确定所接收的指令与映射中的指令标识符是否匹配时可以进行的进一步考虑。尽管图5E结合图5C中所示的技术图示此进一步考虑,但是该考虑可与结合图5A至图5D描述的技术中的任一者一起使用。在图5E中,增加了另一组状态列600。在这些实施例中,若满足两个条件,则指令标识符与所接收的指令匹配。首先,所接收的指令必须对应于如先前所述的基本指令及掩码;且其次,DPU的状态亦必须匹配由状态列600定义的状态。在此实例中,状态列600包含32位列605,该列指示DPU当前是否正在以32位的模式执行。级别列610指示DPU的当前执行级别。换言之,级别列610指示DPU当前正在其中执行的当前特权级别。管理器可以比操作系统在更高特权级别执行,操作系统可以比用户应用在更高特权级别执行。状态列亦可用于指示特定方面的功能是否要被启用或禁用。例如,TLB列615用于指示传输后备缓冲器(TLB)当前是否有效。另一列A64 620用于确定当前正在执行的指令集是否为A64。然而,此列亦可被修改以指示若干指令集中之何者当前正在由DPU执行。例如,值“0”可表示A64,值“1”可表示“A32”,值“2”可表示“T32”,且值“3”可表示“D16”。在此实例中,若第一指令具有四个位,继之以位“0000”,继之以另外四个位,继之以位“1011”且若在接收到第一指令之时,执行级别为“2”且TLB被启用,且若下一个所接收的指令具有四个位,继之以位“0000”,继之以另外四个位,继之以位“1011”且若在接收到下一指令之时,执行级别为“2””TLB被禁用,则发生对于图5E中所示的单个映射625的匹配。若所有这些条件都满足,则发生由输出列565指示的行为修改。应注意,在此实施例中,可对于每个指令标识符提供DPU的不同所需状态。如此允许匹配中的更大灵活性。然而,在其他实施例中,存在单个所需状态,且当接收到序列中的每一指令时,此状态必须对应于DPU的状态。在其他实施例中,仅当序列中的最终指令与映射中的最终指令标识符相比时,才考虑DPU的状态。
图6示意地图示可用于指示特定映射是否匹配所接收的输入信息的电路700。电路包含第一与(AND)门705,该第一与门在输入信息与掩码515之间执行逻辑与。在两个输入均为“1”的情况下,逻辑函数AND返回“1”,否则返回“0”。因此,AND门的输出为与输入信息和掩码之间的逻辑与相对应的一组位。若两组位相互匹配,则第一相等电路710返回单个位“1”,否则返回单个位“0”。在不考虑DPU的状态的实施例中,第一相等电路710的输出于是与匹配(若输出为“1”)还是不匹配(若输出为“0”)相对应。在考虑DPU的状态的实施例中,第二相等电路715用于将指定状态列与DPU的状态比较。在特定状态行中没有条目的情况下,不进行比较。第二相等电路715及第一相等电路710的结果随后经提供至第二与门720。第二与门720的输出于是与匹配(若输出为“1”)还是不匹配(若输出为“0”)相对应。第二与门720要求相对于指令标识符及DPU的所需状态两者都匹配。
图7图示流程图800,该流程图图示所接收的指令可与可重写储存电路120中的映射匹配的方式。过程开始于其中接收到指令的步骤805。在步骤810处,表示当前正在考虑何映射的计数器k被设定为0。在步骤815处,判断计数器k是否小于映射的数目。若否,则整组映射均已考虑且未发现匹配,在此情况下,过程返回至步骤805中接收下一个指令的。否则,过程继续至步骤820,其中判断映射k是否匹配。此举包括将所接收的指令与由条目k的计数器指示的当前映射k的指令标识符比较,以及将系统状态与和映射k中的指令标识符相对应的任何所需状态相比较。例如,若条目k的计数器为「2」,则将第三指令标识符及该指令标识符的相应状态与所接收的指令及DPU的状态相比较。若无匹配(即,若指令或状态中的任一者不匹配),则与映射k相关联的任何计数器在步骤825处被重设。如此表示以下的事实,若映射k与指令/条件序列有关,则该序列已由非匹配指令/条件所中断。随后,k的值在步骤830处递增,且过程返回至步骤815以检查下一个映射。否则,在步骤840处,判断此指令是否为映射k中的最后一个指令。例如,此举可测试S列的值(如参考图5A至图5E中所示的实施例而论述)是否为0。若否,则与k相关联的计数器在步骤845处递增,且计数器k在步骤830处递增且过程返回至步骤815。如此表示另外的指令必须在全部映射匹配之前被匹配的情况。若在步骤840处判断此指令为最后一个指令,则在步骤850处,输出相应控制信号以实现行为修改;且在步骤855处,k的计数器被重设。
应注意,若由于相同的接收的指令而发生多个匹配,则系统的行为是未定义的。具体而言,如此可导致同时进行多个修改,此举可产生不可预知的行为。这可藉由例如仅对匹配的第一映射实施行为修改来防止。
在本申请案中,用词“被配置以”用于意谓装置的组件具有能够执行所定义操作的配置。在此上下文中,“配置”意谓硬件或软件互连的布置或方式。例如,装置可具有提供定义操作的专用硬件,或者处理器或其他处理装置可被编程以执行功能。“被配置以”并非意味装置组件需要以任何方式改变来提供定义的操作。
尽管已参照附图在本文中详细描述了本发明的说明性实施例,但是应理解,本发明并不限于这些精确实施例,且可在不背离如由所附权利要求定义的本发明的精神及范围的情况下,由本领域技术人员在本文中实现各种改变、添加及修改。例如,在不背离本发明的范围的情况下,可对独立权利要求的特征进行与从属权利要求的特征的各种组合。
Claims (20)
1.一种装置,包含:
可重写储存电路,储存至少一个指令标识符与行为修改之间的至少一个映射;
选择电路,自所述可重写储存电路选择一选定映射,该选定映射具有识别所接收的指令的指令标识符,其中该所接收的指令引起所述数据处理单元执行默认行为;及
控制电路,引起所述数据处理单元根据经所述行为修改修改后的默认行为来运作。
2.如权利要求1所述的装置,其中
所述指令标识符识别多个指令。
3.如权利要求2所述的装置,其中
所述指令标识符包含基本指令及掩码;
所述所接收的指令由多个位表示;并且
所述掩码指示所述所接收的指令中必须匹配所述基本指令的相应位的那些位,以便所述指令标识符识别所述所接收的指令。
4.如权利要求1所述的装置,其中
所述指令标识符识别包含一个或多个运算符的至少一个指令。
5.如权利要求1所述的装置,其中
所述指令标识符识别包含一个或多个操作数的至少一个指令。
6.如权利要求1所述的装置,其中
所述指令标识符识别引用一个或多个内存地址的至少一个指令。
7.如权利要求1所述的装置,其中
所述至少一个映射还包含所需状态;且
所述选择电路还依赖于所述所需状态匹配所述数据处理单元的当前状态的来选择所述选定映射。
8.如权利要求7所述的装置,其中
所述所需状态包含一个或多个以下要求:所述数据处理单元处于32位模式、处于64位模式、处于比预定执行级别具有更多特权的级别、处于比所述预定级别具有更少特权的级别、使指定功能启用或禁用、正在使用一预定指令集,以及正在使用除了所述预定指令集以外的指令集。
9.如权利要求1所述的装置,其中
所述至少一个映射包含包括所述指令标识符在内的至少两个指令标识符的序列;及
所述选择电路自所述可重写储存电路选择一选定映射,该选定映射具有包括所述指令标识符在内的至少两个指令标识符的序列,其中所述至少两个指令标识符识别包括所述所接收的指令在内的接收指令的序列。
10.如权利要求1所述的装置,其中
所述装置包含管线,该管线包含指令获取电路、指令译码电路及至少一个执行电路;及
所述数据处理单元包含所述指令译码电路及所述至少一个执行电路。
11.如权利要求10所述的装置,其中
响应于接收到所述指令,所述指令译码电路输出与待由所述至少一个执行电路执行的一个或多个微操作相对应的多个位;
所述行为修改指示待修改的所述多个位的集合。
12.如权利要求11所述的装置,其中
所述集合为一子集。
13.如权利要求10所述的装置,其中
经所述行为修改修改后的所述默认行为包含引起所述数据处理单元冲洗所述管线。
14.如权利要求1所述的装置,其中
经所述行为修改修改后的所述默认行为包含引起所述数据处理单元启用或禁用对数据的预取。
15.如权利要求1所述的装置,其中
经所述行为修改修改后的所述默认行为包含引起所述数据处理单元改变在一个时钟周期中发出的指令的数目。
16.如权利要求1所述的装置,其中
经所述行为修改修改后的所述默认行为包含引起所述数据处理单元启用或禁用乱序执行。
17.如权利要求1所述的装置,其中
经所述行为修改修改后的所述默认行为包含信号的产生,所述信号识别所述选定映射。
18.如权利要求1所述的装置,其中
所述装置包含用于接收所述信号的嵌式逻辑分析器。
19.一种操作装置的方法,包含以下步骤:
在可重写储存电路中储存至少一个指令标识符与行为修改之间的至少一个映射;
接收所接收的指令,其中所述所接收的指令引起数据处理单元执行默认行为;
自所述可重写储存电路中选择一选定映射,该选定映射具有识别所述所接收的指令的指令标识符;及
引起所述数据处理单元根据经所述行为修改修改后的所述默认行为来运作。
20.一种装置,包含:
可重写储存电路,储存至少一个指令标识符;
选择电路,自所述可重写储存电路中选择一选定映射,该选定映射具有识别待由所述数据处理单元执行的所接收的指令的指令标识符;
控制电路,产生一信号,该信号识别所述选定映射;及
分析电路,产生包含待由所述数据处理单元执行的操作的输出迹,接收所述信号,且响应于接收到所述信号而将所述选定映射输出至所述迹。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/927,596 | 2015-10-30 | ||
US14/927,596 US10860322B2 (en) | 2015-10-30 | 2015-10-30 | Modifying behavior of a data processing unit using rewritable behavior mappings of instructions |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106990939A true CN106990939A (zh) | 2017-07-28 |
CN106990939B CN106990939B (zh) | 2022-03-15 |
Family
ID=56508263
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610886213.8A Active CN106990939B (zh) | 2015-10-30 | 2016-10-11 | 修改数据处理单元的行为 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10860322B2 (zh) |
CN (1) | CN106990939B (zh) |
GB (1) | GB2543874B (zh) |
TW (1) | TWI737628B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023283895A1 (zh) * | 2021-07-15 | 2023-01-19 | 华为技术有限公司 | 处理器和指令处理方法 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6049672A (en) * | 1996-03-08 | 2000-04-11 | Texas Instruments Incorporated | Microprocessor with circuits, systems, and methods for operating with patch micro-operation codes and patch microinstruction codes stored in multi-purpose memory structure |
US6530076B1 (en) * | 1999-12-23 | 2003-03-04 | Bull Hn Information Systems Inc. | Data processing system processor dynamic selection of internal signal tracing |
CN1538291A (zh) * | 2003-03-06 | 2004-10-20 | 诺斯罗普-格鲁曼公司 | 产生直接指令的模拟计算机技术 |
CN101073070A (zh) * | 2004-08-24 | 2007-11-14 | 塞门铁克操作公司 | 提供数据存储器内位置的修改历史的系统和方法 |
US20110154107A1 (en) * | 2009-12-23 | 2011-06-23 | International Business Machines Corporation | Triggering workaround capabilities based on events active in a processor pipeline |
CN102609241A (zh) * | 2012-01-19 | 2012-07-25 | 中兴通讯股份有限公司 | 热补丁方法及装置 |
US20120331271A1 (en) * | 2007-12-27 | 2012-12-27 | Robert Valentine | Compressed instruction format |
CN103299270A (zh) * | 2011-04-29 | 2013-09-11 | 北京中天安泰信息科技有限公司 | 运行时指令重组方法及装置 |
US20140143521A1 (en) * | 2012-11-19 | 2014-05-22 | International Business Machines Corporation | Instruction swap for patching problematic instructions in a microprocessor |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5944841A (en) * | 1997-04-15 | 1999-08-31 | Advanced Micro Devices, Inc. | Microprocessor with built-in instruction tracing capability |
US5983337A (en) | 1997-06-12 | 1999-11-09 | Advanced Micro Devices, Inc. | Apparatus and method for patching an instruction by providing a substitute instruction or instructions from an external memory responsive to detecting an opcode of the instruction |
US6321380B1 (en) | 1999-06-29 | 2001-11-20 | International Business Machines Corporation | Method and apparatus for modifying instruction operations in a processor |
US6631463B1 (en) | 1999-11-08 | 2003-10-07 | International Business Machines Corporation | Method and apparatus for patching problematic instructions in a microprocessor using software interrupts |
US20030135718A1 (en) * | 2002-01-14 | 2003-07-17 | International Business Machines Corporation | Method and system using hardware assistance for instruction tracing by revealing executed opcode or instruction |
US7069176B2 (en) * | 2003-08-07 | 2006-06-27 | Arm Limited | Trace source correlation in a data processing apparatus |
US7318125B2 (en) * | 2004-05-20 | 2008-01-08 | International Business Machines Corporation | Runtime selective control of hardware prefetch mechanism |
US8966223B2 (en) * | 2005-05-05 | 2015-02-24 | Icera, Inc. | Apparatus and method for configurable processing |
US8443227B2 (en) | 2008-02-15 | 2013-05-14 | International Business Machines Corporation | Processor and method for workaround trigger activated exceptions |
US8914681B2 (en) * | 2009-08-18 | 2014-12-16 | Lexmark International, Inc. | Integrated circuit including a programmable logic analyzer with enhanced analyzing and debugging capabilities and a method therefor |
GB2483907A (en) * | 2010-09-24 | 2012-03-28 | Advanced Risc Mach Ltd | Privilege level switching for data processing circuitry when in a debug mode |
US8782380B2 (en) * | 2010-12-14 | 2014-07-15 | International Business Machines Corporation | Fine-grained privilege escalation |
US20130097462A1 (en) * | 2011-06-28 | 2013-04-18 | Vivek Singh | Embedded logic analyzer |
WO2013101042A1 (en) * | 2011-12-29 | 2013-07-04 | Intel Corporation | Indicating a length of an instruction of a variable length instruction set |
US9354884B2 (en) * | 2013-03-13 | 2016-05-31 | International Business Machines Corporation | Processor with hybrid pipeline capable of operating in out-of-order and in-order modes |
-
2015
- 2015-10-30 US US14/927,596 patent/US10860322B2/en active Active
-
2016
- 2016-06-08 GB GB1610011.7A patent/GB2543874B/en active Active
- 2016-09-12 TW TW105129554A patent/TWI737628B/zh active
- 2016-10-11 CN CN201610886213.8A patent/CN106990939B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6049672A (en) * | 1996-03-08 | 2000-04-11 | Texas Instruments Incorporated | Microprocessor with circuits, systems, and methods for operating with patch micro-operation codes and patch microinstruction codes stored in multi-purpose memory structure |
US6530076B1 (en) * | 1999-12-23 | 2003-03-04 | Bull Hn Information Systems Inc. | Data processing system processor dynamic selection of internal signal tracing |
CN1538291A (zh) * | 2003-03-06 | 2004-10-20 | 诺斯罗普-格鲁曼公司 | 产生直接指令的模拟计算机技术 |
CN101073070A (zh) * | 2004-08-24 | 2007-11-14 | 塞门铁克操作公司 | 提供数据存储器内位置的修改历史的系统和方法 |
US20120331271A1 (en) * | 2007-12-27 | 2012-12-27 | Robert Valentine | Compressed instruction format |
US20110154107A1 (en) * | 2009-12-23 | 2011-06-23 | International Business Machines Corporation | Triggering workaround capabilities based on events active in a processor pipeline |
CN103299270A (zh) * | 2011-04-29 | 2013-09-11 | 北京中天安泰信息科技有限公司 | 运行时指令重组方法及装置 |
CN102609241A (zh) * | 2012-01-19 | 2012-07-25 | 中兴通讯股份有限公司 | 热补丁方法及装置 |
US20140143521A1 (en) * | 2012-11-19 | 2014-05-22 | International Business Machines Corporation | Instruction swap for patching problematic instructions in a microprocessor |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023283895A1 (zh) * | 2021-07-15 | 2023-01-19 | 华为技术有限公司 | 处理器和指令处理方法 |
Also Published As
Publication number | Publication date |
---|---|
TW201723808A (zh) | 2017-07-01 |
GB2543874A (en) | 2017-05-03 |
GB2543874B (en) | 2019-01-23 |
US10860322B2 (en) | 2020-12-08 |
US20170123803A1 (en) | 2017-05-04 |
GB201610011D0 (en) | 2016-07-20 |
CN106990939B (zh) | 2022-03-15 |
TWI737628B (zh) | 2021-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10540181B2 (en) | Managing branch prediction information for different contexts | |
Calder et al. | Next cache line and set prediction | |
CN101401065B (zh) | 用于分支预测的方法和装置 | |
US7363469B2 (en) | Method and system for on-demand scratch register renaming | |
US6766441B2 (en) | Prefetching instructions in mis-predicted path for low confidence branches | |
KR20070118135A (ko) | 인덱스당 2개 이상의 분기 타겟 어드레스를 저장하는 분기타겟 어드레스 캐시 | |
EP2024820B1 (en) | Sliding-window, block-based branch target address cache | |
KR20000062468A (ko) | 다수의 예측 분기 명령을 통한 명령 페치의 정렬 명령캐시 제어 | |
JP5209633B2 (ja) | ワーキング・グローバル・ヒストリ・レジスタを備えるシステム及び方法 | |
US10599437B2 (en) | Managing obscured branch prediction information | |
KR20090042303A (ko) | 가변 길이 명령 세트의 브랜치 명령의 최종 입도와 캐싱된 브랜치 정보의 관련 | |
Adiga et al. | The ibm z15 high frequency mainframe branch predictor industrial product | |
JP2011150691A (ja) | 演算処理装置、情報処理装置及び制御方法 | |
JP7046087B2 (ja) | キャッシュ・ミス・スレッド・バランシング | |
US7130991B1 (en) | Method and apparatus for loop detection utilizing multiple loop counters and a branch promotion scheme | |
CN106990939A (zh) | 修改数据处理单元的行为 | |
CN111183413B (zh) | 用于在计算机中执行程序的方法 | |
Milenkovic et al. | Microbenchmarks for determining branch predictor organization | |
US9081895B2 (en) | Identifying and tagging breakpoint instructions for facilitation of software debug | |
Uzelac | Microbenchmarks and mechanisms for reverse engineering of modern branch predictor units | |
CN113168327B (zh) | 一种多分支跳转处理装置和方法、处理器 | |
US20240192958A1 (en) | Branch target buffer operation with auxiliary indirect cache | |
Mosier et al. | Relational models of microarchitectures for formal security analyses | |
Pilla et al. | A speculative trace reuse architecture with reduced hardware requirements | |
JP4533432B2 (ja) | Tlb相関型分岐予測器及びその使用方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |