修改数据处理单元的行为的制作方法

文档序号:11653942阅读:398来源:国知局
修改数据处理单元的行为的制造方法与工艺

本公开涉及修改数据处理单元的行为的领域。



背景技术:

在包含管线的数据处理单元(dataprocessingunit;dpu)中,所获取的指令被译码成一个或多个微操作(由数个位表示)且这些微操作随后被传递至一个或多个执行电路。然而,有时在硬件已被构建之后会发现设计缺陷,该设计缺陷引起某些指令或指令序列不适当地被执行。先前已提出藉由对编译器重新编程来处理这些问题。例如,在产生组合代码时,编译器可避免产生已知会引起问题的指令或指令序列。然而,此方法非常耗时且复杂,需要大量的努力来实施。另外,此方法并未完全解决根本问题,因为未使用“新的”编译器编译的代码将仍然经受那样的缺陷。因此,将需要提供一种机制,在该机制中能够动态地控制特定指令或指令序列的识别,且随后提供指示已侦测到指令或指令序列的信号或采取可用于阻止那些指令不适当执行的特定动作。



技术实现要素:

自第一示例性配置来看,本发明提供一种装置,该装置包含:可重写储存电路,储存至少一个指令标识符与行为修改之间的至少一个映射;选择电路,自该可重写储存电路中选择一选定映射,该选定映射具有识别所接收的指令的指令标识符,其中所接收的指令引起数据处理单元执行默认行为;及控制电路,引起数据处理单元根据经行为修改修改后的默认行为来运作。

自第二示例性配置来看,本发明提供一种操作数据处理装置的方法,该方法包含:在可重写储存电路中,储存至少一个指令标识符与行为修改之间的至少一个映射;接收所接收的指令,其中所接收的指令引起数据处理单元执行默认行为;自可重写储存电路中选择具有识别所接收的指令的指令标识符的选定映射;且引起该数据处理单元根据经行为修改修改后的默认行为来运作。

自第三示例性配置来看,本发明提供一种装置,该装置包含:可重写储存电路,储存至少一个指令标识符;选择电路,自可重写储存电路中选择一选定映射,该选定映射具有识别待由数据处理单元执行的所接收的指令的指令标识符;控制电路,产生识别选定映射的信号;及分析电路,产生包含由数据处理单元执行的操作的输出迹,接收所述信号,并且响应于接收到所述信号而将选定映射输出至所述迹。

附图说明

本发明将仅举例而言参考如在附图中所示的本发明的实施例进一步描述,在这些附图中:

图1示意地图示根据一实施例的修复电路(patchcircuitry);

图2示意地图示根据一实施例的dpu及修复电路;

图3示意地图示根据一实施例的dpu及修复电路;

图4示意地图示根据一实施例的dpu及修复电路;

图5a图示根据一实施例的由可重写储存电路储存的映射;

图5b图示根据一实施例的由可重写储存电路储存的映射;

图5c图示根据一实施例的由可重写储存电路储存的映射;

图5d图示根据一实施例的由可重写储存电路储存的映射;

图5e图示根据一实施例的由可重写储存电路储存的映射;

图6图示用于确定特定映射中的指令标识符是否对应于所接收的指令的比较电路的实例;及

图7图以流程图形式图示用于基于所接收的指令确定要发生的任何行为修改的方法。

具体实施方式

在参考附图论述实施例之前,提供了实施例的以下描述。

自第一示例性配置来看,本发明提供一种装置,该装置包含:可重写储存电路,储存至少一个指令标识符与行为修改之间的至少一个映射;选择电路,自可重写储存电路中选择一选定映射,该选定映射具有识别所接收的指令的指令标识符,其中所接收的指令引起数据处理单元执行默认行为;及控制电路,引起该数据处理单元根据经行为修改修改后的默认行为来运作。

数据处理单元(dpu)响应于指令执行特定默认行为。可重写储存电路能够储存指令标识符与行为修改之间的若干映射。当所接收的指令与映射中之一者中的指令标识符匹配时,经由控制电路使dpu根据经行为修改修改后的默认行为来运作。因为可重写储存电路为可重写的,所以能够使用软件动态地增加、删除和编辑映射。因此,dpu响应于给定的接收指令的行为可得以改变。由此,若随着特定指令或指令序列的执行发现故障,则能够使dpu以不同于默认方式的行为来运作,从而阻止该故障发生。应注意,经行为修改修改后的默认行为可产生与默认行为完全不同的行为,以使得默认行为根本不发生。

在一些实施例中,指令标识符识别多个指令。这些实施例允许dpu的行为基于一类或更多类指令或具有特定特性的任何指令而修改。

指令标识符识别多个指令可以有许多方式。然而,在一些实施例中,指令标识符包含基本指令及掩码;所接收的指令是由多个位表示的;且该掩码指示所接收的指令中那些必须与基本指令的相应位相匹配的位,以便该指令标识符识别所接收的指令。这种识别多个指令的方式尤为有效且允许当发生匹配时在控制方面具有很大灵活性。

在一些实施例中,指令标识符识别包含一个或多个运算符的至少一个指令。指令运算符指示由dpu执行的操作或任务。操作的实例包括执行整数加法或乘法,引起程序流发生分支,或执行浮点运算。指令标识符可用于识别一个此种运算类型,一类运算(例如,整数或浮点加法)或所有运算。

在一些实施例中,指令标识符识别包含一个或多个操作数的至少一个指令。操作数为对其执行运算的各个元素。例如,在加法运算“addr223”中,该运算将值“2”及“3”相加在一起且将结果储存于寄存器r2中,操作数为“r2”、“2”及“3”。操作数可以为绝对值、寄存器地址或内存地址。

在一些实施例中,指令标识符识别引用一个或多个内存地址的至少一个指令。当储存数据至内存或自内存接收数据(可由加载/储存处理单元执行的操作)时常常引用内存地址。由于在加载/储存单元与内存装置本身之间必须发生的交握协议,访问内存可能尤为复杂。因此,相对于向/从内存装置加载或储存数据,发生问题并不罕见。

在一些实施例中,至少一个映射还包含所需状态;且选择电路还依赖于所需状态匹配数据处理单元的当前状态来选择选定映射。在这些实施例中,不仅指令必须匹配特定映射的标识符,而且dpu亦必须具有匹配所需状态的当前状态。在映射与指令序列相关的情况下,所需状态可在指令之间变化,可对所有指令相同,或可仅针对序列中的最终指令而指定。

在一些实施例中,所需状态包含数据处理单元处于32位模式或64位模式之一者中的要求。dpu在其中操作的执行模式可对dpu如何工作具有影响。因此,在一些情况下,为了在特定执行模式中运行某些指令,需要影响dpu的行为。

在一些实施例中,所需状态包含数据处理单元操作于比预定运行级别具有更多特权的级别或比预定级别具有更少特权的级别中的要求。dpu通常可以不同级别的特权操作。例如,多件用户软件各自以“用户”特权级别操作且操作系统按照“管理器”或“监视器”特权级别来操作。如此能够使操作系统限制或控制对敏感数据或操作的存取,或将多件用户软件彼此分离以便其无法彼此干扰。在更复杂的布置中,超级管理器可在甚至更高的“超级管理器”特权级别下运行,以允许多个操作系统在管理器的控制及管理下在一个装置上操作。其他或不同的级别亦是可能的。

在一些实施例中,所需状态包含数据处理单元已启用或禁用指定功能的要求。例如,传输后备缓冲器(translationlookasidebuffer;tlb)可用以在最近使用的虚拟内存地址与物理内存地址之间快速变换。然而,在一些场合,该功能可藉由停用tlb而禁用。所需状态可代表多个不同功能。例如,所需状态可要求一些功能被启用,而其他功能被禁用。

在一些实施例中,所需状态包含数据处理单元正在使用预定指令集或预定指令集以外的指令集的要求。通常可使dpu在不同指令集之间切换。因此,所需状态可要求特定指令集正在由dpu使用以修改由特定指令引起的行为。

在一些实施例中,至少一个映射包含包括所述指令标识符在内的至少两个指令标识符的序列;且选择电路自可重写储存电路选择一选定映射,该选定映射具有包括所述指令标识符在内的至少两个指令标识符的序列,其中该至少两个指令标识符识别包括所接收的指令的接收指令的序列。然而,在乱序实现方式中,被进行行为修改的所接收的指令可为序列中的第一指令,被进行行为修改的所接收的指令通常在接收指令序列的末端。因此,当所接收的指令为指令序列中的第一或最后一个指令时,装置能够控制所接收的指令的行为。例如,可能是以下情况,加法指令之后跟随减法指令引起故障发生。映射因此可包括指令标识符序列-第一指令标识符匹配加法指令且第二指令标识符匹配减法指令,以便序列中的减法指令的行为被修改以避免故障行为。

在一些实施例中,该装置包含管线,该管线包含指令获取电路、指令译码电路和至少一个执行电路;且该数据处理单元包含该指令译码电路及该至少一个执行电路。指令获取电路引起指令得以自例如内存而获取。指令译码电路引起所获取的指令得以译码为一个或多个微操作,该一个或多个微操作随后被提供至至少一个执行电路。至少一个执行电路可包括例如算术逻辑单元(arithmeticlogicunits;alu)、浮点单元(floatingpointunit;fpu)、加载/储存单元、分支单元,及乘法累加单元(multiplyaccumulateunit;mac)。其他实例对于本领域技术人员将是显而易见的。在一些实施例中,指令获取电路发送控制信号至选择电路以及至译码电路。

在一些实施例中,响应于接收到所述指令,指令译码电路输出对应于待由至少一个执行电路执行的一个或多个微操作的多个位;所述行为修改指示所述多个位的集合要被修改。由译码电路输出的总位可被称为输出平面且可包含大量位,这些位可被发送至一个或多个执行电路。藉由修改这些位中的一些位,能够由于运行特定指令而改变dpu的行为。

所述集合可以是完全新位集合。如此可引起执行电路执行与默认行为完全不同的行为。然而,在其他实施例中,所述集合为一子集。换言之,例如,藉由若已知寄存器r2已变得不可用而总是使用寄存器r3而非寄存器r2,则可稍微修改行为。在一些实施例中,所述集合由单个位构成。该位可用于编码特殊行为。例如,单个位可用于表示特定指令将不被乱序执行。

默认行为通过行为修改而被修改可以有许多实例。然而,在一些实施例中,经行为修改修改后的默认行为包含引起数据处理单元冲洗管线。管线可使得多个指令能够被大体上同时地处置。实际上,当一个指令正在由执行电路执行时,下一个指令正在由指令译码电路译码且在该下一个指令之后的指令正在由指令获取电路获取。冲洗管线使得所有正在被处置的指令被丢弃。此举具有“重设”管线状态的效果。

在一些实施例中,经行为修改修改后的默认行为包含引起数据处理单元启用或禁用对数据的预取。在预期到最近要使用数据时,可以在从例如内存中获取数据之前对要获得数据进行预取。对数据预取的禁用例如可藉由将任何预取指令转换为noop指令来实现,该noop指令为仅引起程序计数器递增的特殊指令。从而,预取因此可被禁用。

在一些实施例中,经行为修改修改后的默认行为包含引起数据处理单元改变在一个时钟周期中发出的指令数目。此改变的实例为三重发出(triple-issuing),其中三个指令可同时地发出至执行电路。因此,在一些实施例中,三重发出可被减少至双重发出或多重发出可被全部禁用,从而将在一个时钟周期中发出的指令的数目减少至1。

在一些实施例中,经行为修改修改后的默认行为包含引起数据处理单元启用或禁用乱序执行。乱序执行使得指令能够被重排序以改善并行性。例如,若仅存在单个浮点电路,则一次仅可处置一个浮点运算。序列中的两个浮点指令因此可被重排序,以便在第一浮点指令被运行时,这些指令由能运行的其他指令所散置。

在一些实施例中,经行为修改修改后的默认行为包含信号的产生,该信号识别选定映射。该信号因此可用于确定遇到了指令(或指令序列)。当执行除错或收集统计量(例如,用于效能分析)时,此信息可能是有益的。

在一些实施例中,该装置包含用于接收信号的嵌式逻辑分析器。可使嵌式逻辑分析器(embeddedlogicanalyser;ela)接收在当特定事件发生时来自装置内的不同电路的输入信号。例如,每当alu接收到执行特定操作的指令时,ela可接收来自alu的信号。藉由另外地向ela提供关于何时遇到指令或指令序列的信息,能够对装置的行为执行更多详细分析。

现将参照附图描述特定实施例。

图1图示根据一实施例的修复电路100。修复电路100包含选择电路110,选择电路110接收对应于所接收的指令的输入信号。在此实施例中,输入信号是由指令获取电路产生的且与发送至作为管线的一部分的指令译码电路的相同信号相对应。选择电路110参考可重写储存电路120,该可重写储存电路储存指令标识符与行为修改之间的映射表。由比较电路150进行比较,且若发现匹配,则将所得行为修改提供至控制电路,该控制电路输出行为修改信号(例如,“修复信号”)。控制电路130另外地输出控制信号,该控制信号用于控制行为修改的插入。在图2至图4中更详细地图示此过程,这些附图图示dpu。可重写储存电路120中的每一条目与特定指令、某类指令,或任一者的序列相关。对于映射指令序列的每一映射,必须提供计数器以追踪至今每一序列中的多少指令已匹配。每一计数器储存于选择电路110中的计数器140的群组中。

图2图示包含dpu280的系统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),该单元执行整数运算或逻辑运算;浮点单元(floatingpointunit;fpu)225,该单元对浮点数执行运算;加载/储存单元(ld/st)230,该单元处置从/向内存数据和储存数据;分支单元(br)235,该单元处置程序流的控制和分支;乘积累加单元(mac)240,该单元处置将数字相乘且将该结果相加至累加器的专门算术情况。然而,这些电路仅为执行电路的实例。具体而言,可以使用这些或其他执行电路的任何组合。执行电路的组合亦可变化。在一些情况下,亦可包括相同类型的多个执行电路。在此实施例中,包括了一组配置寄存器250。这些寄存器控制dpu245运作的方式。在一些实施例中,配置寄存器250可用于启用或禁用功能,诸如预取功能。在一些情况下,这些寄存器可用于禁用实验性的功能。在任何情况下,指令译码电路210鉴于配置寄存器250的值依赖于所接收的指令来发出微操作。修复电路110可提供覆写配置寄存器的补丁。例如,若由指令译码电路210产生的微操作含有应使用实验性预取机制的指示,则修复电路可在知道实验性机制不起作用的情况下,针对部分微操作发出作为补丁的替换位集合以禁用实验性机制。

图3图示系统300,系统300类似于图2中所示的系统200,除了修复电路110能够向指令译码电路210中的多发出电路305输出信号。多发出电路305控制dpu245执行指令的多发出(例如双发出)的能力。此举涉及在单个时钟周期中发出多个指令(例如,在双发出的情况下为两个指令)的过程。在一些实施例中,在行为修改涉及禁用或启用多发出的情况下,不必向复用器215提供“补丁”或任何经修改的位。

图4图示系统400,其中由修复电路110输出的行为修改信号采用至嵌式逻辑分析器(ela)405的信号的形式,该ela为dpu的另一实例。行为修改信号指示储存于可重写储存电路120中的映射中的何者已与所接收的指令匹配。例如,行为修改信号可包含映射的索引。ela接收来自系统400之内的不同电路的输入,这些电路包括那些执行电路220、225、230、235及240。ela基于其接收的信号输出迹(trace)。例如,响应于alu220执行加法操作,信号被传输至ela405,ela405将此信息输出至迹。然而,另外,由ela405自修复电路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用于指示是否信号应例如输出至ela405,如先前参考图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发出信号来启用或禁用。ela405的使用藉由简单地向ela405提供信号来启用或禁用。

图5c图示其中对于映射的行为修改提供不同输出列565的实例。新位列570指示待与表示由指令译码电路210产生的微操作的位复用的新的一组位。开始列575指示这些位要与表示由指令译码电路210产生的微操作的位复用的点。长度列580指示替换位的长度。在此实例中,亦提供t列585。此列指示后续指令是否要被修改。随后,提供后续输出行以指示如何修改那些指令。例如,图5c中所示的映射指示,若与所接收的指令匹配,则用于表示由指令译码电路210产生的微操作的位中的位11至位18要被修改为「00101110」。此外,由指令译码电路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)当前是否有效。另一列a64620用于确定当前正在执行的指令集是否为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的计数器被重设。

应注意,若由于相同的接收的指令而发生多个匹配,则系统的行为是未定义的。具体而言,如此可导致同时进行多个修改,此举可产生不可预知的行为。这可藉由例如仅对匹配的第一映射实施行为修改来防止。

在本申请案中,用词“被配置以”用于意谓装置的组件具有能够执行所定义操作的配置。在此上下文中,“配置”意谓硬件或软件互连的布置或方式。例如,装置可具有提供定义操作的专用硬件,或者处理器或其他处理装置可被编程以执行功能。“被配置以”并非意味装置组件需要以任何方式改变来提供定义的操作。

尽管已参照附图在本文中详细描述了本发明的说明性实施例,但是应理解,本发明并不限于这些精确实施例,且可在不背离如由所附权利要求定义的本发明的精神及范围的情况下,由本领域技术人员在本文中实现各种改变、添加及修改。例如,在不背离本发明的范围的情况下,可对独立权利要求的特征进行与从属权利要求的特征的各种组合。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1