会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~
首页 / 专利库 / 电脑零配件 / 协处理器 / 在具有多指令集的数据处理设备内的指令编码

在具有多指令集的数据处理设备内的指令编码

阅读:113发布:2021-03-01

IPRDB可以提供在具有多指令集的数据处理设备内的指令编码专利检索,专利查询,专利分析的服务。并且提供了支持两个指令集的数据处理设备(2)。这两个指令集共享一个公共的指令子集,包括至少一类指令,诸如所有的协处理器指令。一旦由于在存储器内的贮存次序而导致的任何差别被对例如字节序进行补偿,该公共指令子集就具有相同的指令编码。,下面是在具有多指令集的数据处理设备内的指令编码专利的具体信息内容。

1.用于处理数据的设备,所述设备包括:

数据处理逻辑,用来执行数据处理操作;以及

指令译码器,用来译码规定要由所述数据处理逻辑执行的数据处理 操作的程序指令,以及控制所述数据处理逻辑以执行所述数据处理操 作;其中所述指令译码器可在第一指令集的程序指令被译码的第一模式下和 在第二指令集的程序指令被译码的第二模式下操作,所述第一指令集的 程序指令子集具有对所述第二指令集的程序指令子集的公共贮存次序补 偿的编码以及形成代表至少一类指令的公共指令子集,所述公共指令子 集控制所述数据处理逻辑以便独立于所述指令译码器是在所述第一模式 下还是在所述第二模式下操作而执行相同的数据处理操作。

2.如在权利要求1中要求的设备,其中所述指令译码器用来使用所 述数据处理逻辑的公共部分去执行所述公共指令子集的指令。

3.如在权利要求1和2的任一项中要求的设备,其中所述公共指令 子集包括一类指令,它们是可操作以通过使用所述第一指令集和所述第 二指令集共有的协处理器逻辑而控制协处理器数据处理操作的协处理器 指令。

4.如在权利要求3中要求的设备,其中所有的无条件协处理器指令 是在所述公共子集内。

5.如在前述权利要求的任一项中要求的设备,其中所述第一指令集 是N比特指令的固定长度的指令集。

6.如在权利要求5中要求的设备,其中N是32或16之一。

7.如在前述权利要求的任一项中要求的设备,其中所述第二指令集 是可变长度指令集。

8.如在前述权利要求的任一项中要求的设备,其中在所述公共指令 子集内的至少一个程序指令在所述第一模式或所述第二模式下执行公共 数据处理操作,但取决于所述指令译码器是在所述第一模式下还是在所 述第二模式下操作而生成不同的结果数据值。

9.如在权利要求8中要求的设备,其中生成不同的结果数据值的所 述至少一个程序指令包括程序计数值作为输入操作数。

10.如在权利要求9中要求的设备,其中取决于所述指令译码器是 在所述第一模式下还是在所述第二模式下操作,而在所述程序计数值与 正执行的指令的地址之间保持不同的关系。

11.如在权利要求8中要求的设备,其中生成不同的结果数据值的 所述至少一个程序指令包括程序状态寄存器值作为输入操作数。

12.一种处理数据的方法,所述方法包括以下步骤:

通过数据处理逻辑来执行数据处理操作;以及

通过指令译码器来译码规定要由所述数据处理逻辑执行的数据处理 操作的程序指令,以及控制所述数据处理逻辑以执行所述数据处理操 作;其中在第一模式下第一指令集的程序指令被译码且在第二模式下第二指 令集的程序指令被译码,所述第一指令集的程序指令子集具有对所述第 二指令集的程序指令子集的公共贮存次序补偿的编码以及形成代表至少 一类指令的公共指令子集,所述公共指令子集控制所述数据处理逻辑以 独立于所述指令译码器是在所述第一模式下还是在所述第二模式下操作 而执行相同的数据处理操作。

13.如在权利要求12中要求的方法,其中所述数据处理逻辑的公共 部分被使用来执行所述公共指令子集的指令。

14.如在权利要求12和13的任一项中要求的方法,其中所述公共 指令子集包括一类指令,它们是可操作以通过使用所述第一指令集和所 述第二指令集共有的协处理器逻辑而控制协处理器数据处理操作的协处 理器指令。

15.如在权利要求14中要求的方法,其中所有的无条件协处理器指 令是在所述公共子集内。

16.如在权利要求12到15的任一项中要求的方法,其中所述第一 指令集是N比特指令的固定长度的指令集。

17.如在权利要求16中要求的方法,其中N是32或16之一。

18.如在权利要求12到17的任一项中要求的方法,其中所述第二 指令集是可变长度指令集。

19.如在权利要求12到18的任一项中要求的方法,其中在所述公 共指令子集内的至少一个程序指令在所述第一模式或所述第二模式下执 行公共数据处理操作,但取决于所述指令译码器是在所述第一模式下还 是在所述第二模式下操作而生成不同的结果数据值。

20.如在权利要求19中要求的方法,其中生成不同的结果数据值的 所述至少一个程序指令包括程序计数值作为输入操作数。

21.如在权利要求20中要求的方法,其中取决于所述指令译码器是 在所述第一模式下还是在所述第二模式下操作,而在所述程序计数值与 正执行的指令的地址之间保持不同的关系。

22.如在权利要求19中要求的方法,其中生成不同的结果数据值的 所述至少一个程序指令包括程序状态寄存器值作为输入操作数。

23.一种具有计算机程序的计算机程序产品,该计算机程序用来控 制包含用来执行数据处理操作的数据处理逻辑的数据处理设备,所述计 算机程序包括:第一指令集的程序指令和第二指令集的程序指令,其控制所述数据 处理逻辑去执行所述数据处理操作;其中所述第一指令集的程序指令子集具有对所述第二指令集的程序指令 子集的公共贮存次序补偿的编码,以及形成代表至少一类指令的公共指 令子集,所述公共指令子集控制数据处理逻辑以独立于正译码所述第一 指令集的指令还是所述第二指令集的指令而执行相同的数据处理操作。

24.如在权利要求23中要求的计算机程序产品,其中所述数据处理 逻辑的公共部分被使用来执行所述公共指令子集的指令。

25.如在权利要求23和24的任一项中要求的计算机程序产品,其 中所述公共指令子集包括一类指令,它们是可操作以通过使用所述第一 指令集和所述第二指令集共有的协处理器逻辑而控制协处理器数据处理 操作的协处理器指令。

26.如在权利要求25中要求的计算机程序产品,其中所有的无条件 协处理器指令是在所述公共子集内。

27.如在权利要求23到26的任一项中要求的计算机程序产品,其 中所述第一指令集是N比特指令的固定长度的指令集。

28.如在权利要求27中要求的计算机程序产品,其中N是32或16 之一。

29.如在权利要求23到28的任一项中要求的计算机程序产品,其 中所述第二指令集是可变长度指令集。

30.如在权利要求23到29的任一项中要求的计算机程序产品,其 中在所述公共指令子集内的至少一个程序指令在所述第一指令集或所述 第二指令集的指令被译码时执行公共数据处理操作,但生成不同的结果 数据值。

31.如在权利要求30中要求的计算机程序产品,其中生成不同的结 果数据值的所述至少一个程序指令包括程序计数值作为输入操作数。

32.如在权利要求31中要求的计算机程序产品,其中取决于所述指 令译码器是在所述第一模式下还是在所述第二模式下操作,而在所述程 序计数值与正执行的指令的地址之间保持不同的关系。

33.如在权利要求30中要求的计算机程序产品,其中生成不同的结 果数据值的所述至少一个程序指令包括程序状态寄存器值作为输入操作 数。

说明书全文

本发明涉及数据处理系统领域。更具体地,本发明涉及具有多指令 集的数据处理系统以及这样的多指令集可被编码的方式。

已经知道会向数据处理系统提供多指令集。这样的数据处理系统的 例子是由英格兰,剑桥的ARM Limited公司生产的处理器核心,它既支持 ARM也支持Thumb指令集。ARM指令集是32位指令集而Thumb指令集是 16位指令集。虽然支持多指令集的数据处理系统允许在可代表程序操作 的方式上的有利的灵活程度以及可以产生诸如改进的代码密度方面的优 点,但典型地在支持该多指令集所需要的硬件量方面有增加。

从一个方面看来,本发明提供用于处理数据的设备,所述设备包括:

数据处理逻辑,用来执行数据处理操作;以及

指令译码器,用来译码规定要由所述数据处理逻辑执行的数据处理 操作的程序指令,以及控制所述数据处理逻辑以执行所述数据处理操 作;其中

所述指令译码器在其中第一指令集的程序指令被译码的第一模式下 和在其中第二指令集的程序指令被译码的第二模式下是可操作的,所述 第一指令集的程序指令子集具有对所述第二指令集的程序指令子集的公 共贮存次序补偿的编码以及形成代表至少一类指令的公共指令子集,所 述公共指令子集控制所述数据处理逻辑以独立于所述指令译码器是在所 述第一模式下还是在所述第二模式下操作而执行相同的数据处理操作。

本发明认识到,通过安排指令集编码以使得公共子集共享相同的编 码(至少在由于贮存次序,例如字节序(endianness)导致的任何变化已 被补偿之后),则这样的系统在它们的实现上可被有利地简化,以及它们 的操作的其它方面可被改进。作为例子,用于实施所规定的处理操作的 公共译码逻辑和/公共处理逻辑可以更加容易被利用,同时支持多指令集 所需要的硬件附加开销减小。

在本发明的优选实施例中,被包括在该公共指令子集内的该类指令 (类例如被认为是具有类似的功能性的一组指令集,诸如装载/存储指 令、乘法指令等等)包括协处理器指令,以使得相同的协处理器逻辑可被 第一指令集和第二指令集使用。这特别有利,因为存在有许多协处理器 设计以及它们可能只为一个指令集开发,而通过另一个指令集来重用这 个相同的协处理器设计的能力代表显著的优点。当所有的协处理器指令 处在公共子集内以使得一组公共的协处理器的全部互操作性可以被提供 以任一个指令集时,这是特别优选的。

可是将会理解,第一指令集和第二指令集可以具有许多不同的特 性,优选地第一指令集是一个固定长度指令集,便利地有32位或16位 指令,而第二指令集是是可变长度指令集。

将会看到,虽然公共指令子集执行公共数据处理操作,但情况并不 一定是这些公共数据处理操作将总是产生相同的结果数据值。这并不有 损于上述的硬件节省和其它优点,但这可能是与某些数据值有关联的特 定特性的结果,这些数据值取决于正在利用哪个指令集而要被用作为输 入操作数。可能具有指令集特定的特性的、用作输入操作数的数据值的 例子是:程序计数值,该程序计数值可相对于正执行的指令而被保持, 取决于所使用的指令集而具有不同的值;和/或程序状态寄存器值,该程 序状态寄存器值可以保有指示哪个指令集正在被使用的一个或多个比 特,以及因此取决于哪个指令集正被使用而具有不同的值。

从另一方面看来,本发明提供一种处理数据的方法,所述方法包括 以下步骤:

通过数据处理逻辑来执行数据处理操作;以及

通过指令译码器来译码规定要由所述数据处理逻辑执行的数据处理 操作的程序指令,以及控制所述数据处理逻辑来执行所述数据处理操 作;其中

在第一模式下第一指令集的程序指令被译码和在第二模式下第二指 令集的程序指令被译码,所述第一指令集的程序指令子集对所述第二指 令集的程序指令子集的公共贮存次序补偿的编码以及形成代表至少一类 指令的公共指令子集,所述公共指令子集控制所述数据处理逻辑以独立 于所述指令译码器是在所述第一模式下还是在所述第二模式下操作而执 行相同的数据处理操作。

从再一方面看来,本发明提供具有计算机程序的计算机程序产品, 该计算机程序用来控制一数据处理设备,该数据处理设备包含可操作以 执行数据处理操作的数据处理逻辑,所述计算机程序包括:

第一指令集的程序指令和第二指令集的程序指令,其控制所述数据 处理逻辑来执行所述数据处理操作;其中

所述第一指令集的程序指令子集具有对所述第二指令集的程序指令 子集的公共贮存次序补偿的编码,以及形成代表至少一类指令的公共指 令子集,所述公共指令子集控制数据处理逻辑以独立于正译码所述第一 指令集的指令还是所述第二指令集的指令来执行相同的数据处理操作。

现在参照附图仅仅借助于示例来描述本发明的实施例,其中:

图1示意地例示使用多指令集且具有相关联的协处理器的数据处理 设备;

图2例示在Thumb指令集中BL和BLX指令的编码;

图3例示在Thumb指令集的增强版本中如何互相区分16位和32位 指令的编码;

图4例示在ARM指令集中协处理器指令的编码;

图5例示在Thumb指令集的增强版本中无条件协处理器指令的编 码;

图6例示在ARM指令集和增强的Thumb指令集中无条件CDP协处理 器指令的贮存次序的差别;

图7例示可藉以设计用于ARM和Thumb指令集的指令译码器的方 式;

图8例示可藉以设计用于ARM和Thumb指令集的指令译码器的第二 种方式;

图9例示图8的指令译码器如何被修正来译码ARM和增强的Thumb 指令集;以及

图10示意地例示可以按照上述的技术来实施程序指令的通用计算机 的结构。

图1显示一个数据处理设备2。数据处理设备2包括处理器核心3, 该处理器核心3包括寄存器存储体4、乘法器6、移位器8、加法器10、 指令译码器12(包括一个公共子集指令译码器13)、指令预取缓冲器14、 指令预取单元16和程序状态寄存器18。在寄存器存储体4内的一个寄存 器是程序计数寄存器20,它存储一个地址值,该地址值与当前正执行的 程序指令的地址值有预定关系。这个关系可以根据在现时正使用哪个指 令集而变化,例如当前指令地址加4,当前指令地址加8等等。将会看到, 虽然图1上只显示一个协处理器,但可以附着多个协处理器,同时通过 每个协处理器指令中的协处理器号码字段来区分计划由不同的协处理器 执行的指令。

协处理器22被耦合到处理器核心3以及与处理器核心3共享指令字 和数据字。协处理器22响应于在由指令预取单元16取装的指令流内的 协处理器指令。

协处理器指令由处理器核心3结合协处理器22来执行。在例示的设 备中,协处理器22具有内部寄存器存储体和内部数据处理逻辑。协处理 器指令由公共子集指令译码器12识别,以及连同确定协处理器指令要何 时被执行的控制信号一起传送到协处理器。

某些协处理器指令从协处理器的内部寄存器存储体读出它们所有的 操作数和把它们所有的结果写入到协处理器的内部寄存器存储体,且因 此不需要与处理器核心3进行进一步的交互。其它协处理器指令需要数 据值被送到协处理器22。这些数据值的可能的源包括寄存器存储体4、 程序状态寄存器18和存储器(未示出)。在例示的设备中,处理器核心3 从想要的位置得到这样的数据值以及把它们经由数据接口D传送到协处 理器22。再一个协处理器指令把由协处理器22产生的数据值传送到协处 理器22外部的目的地,诸如寄存器存储体4、程序状态寄存器18和存储 器。在例示的设备中,这样的数据值经由数据接口D传送到处理器核心 3,它把这些数据值写入到期望的目的地。

将会看到,对这种类型的协处理器操作的许多变例是可能的以及它 们被包括在本技术内。例如,协处理器22可能缺乏内部寄存器存储体, 这样,它的内部数据处理逻辑总是对经由数据接口D从处理器核心3传 送的数据值动作以及把它的结果值经由数据接口D发回处理器核心3。第 二个例子是协处理器22可能具有一个单独的到存储器的接口,这样,它 可以从存储器装载数据值,以及把数据值存储到存储器,而不牵涉到处 理器核心3。在这种情形下,数据接口D只被使用于来自或去往处理器核 心3内的位置(诸如寄存器存储体4和程序状态寄存器18)的数据值。 替换地,数据接口D可以整个省略,这样,数据值可以只在处理器核心3 与协处理器22之间传送,这是通过首先从其中一个把数据值存储到存储 器然后再把数据值从存储器装载到另一个而进行的。

将会看到,在操作中,从存储器(未示出)内的存储器地址取装程 序指令,且将其送到指令预取缓冲器14。当程序指令到达指令预取缓冲 器14内的译码级时,指令译码器12译码这些指令且生成控制信号,这 些控制信号被加到处理器核心3内的处理逻辑,以及按需要加到协处理 器22,以便控制这些其它的单元来执行规定的数据处理操作。处理器核 心3可以在第一模式下和第二模式下操作,在第一模式中进行第一指令 集译码,而在第二模式中进行第二指令集译码。指示处理器核心3处于 哪一模式的一种方式是使用在程序状态寄存器18之一内的标志值。取决 于哪个指令集当前是工作的,指令译码器12将按照当前工作的指令集和 它的编码来解译所接收的指令。按照本技术,被支持的两个指令集共享 用于公共的指令子集的公共编码,包括至少一类指令,诸如所有的无条 件协处理器指令,由此使能容易地重用相同的物理硬件来实施那些公共 的处理操作。将会看到,来自不同指令集的程序指令的贮存次序可以变 化,诸如由于字节序差别、指令字尺寸差别等等而导致,但一旦这样的 贮存次序差别已被补偿,公共的指令子集就共享编码,正如后面将讨论 的。

在此示例的实施例中,处理器核心3支持两个指令集,ARM指令集 和Thumb指令集的增强版本(有关现有的ARM和Thumb指令集的细节,参 见ARM结构参考手册)。对Thumb指令集的增强包括对它的BL和BLX指 令的改变,这使它有可能加上很大数量的32位指令。

在对Thumb指令集增强之前,它的BL和BLX指令由在图2所示形式 的指令流中两个接连的半字组成。在有效的程序中,其最高有效的5个 比特是11101,11110或11111的指令半字只以这两种形式的配对出现。 BL和BLX之外的所有其它指令由其最高有效的5个比特是处在00000到 11100的范围中的单个半字组成。

一种实施方案可以接连地执行BL或BLX指令的两个半字,以及这样 执行它们的组合的效果产生了BL或BLX指令的想要的效果,它是要执行 对Thumb子例程(对于BL)或ARM子例程(BLX)的子例程调用。更精确地, 它是要分支到目标地址,在指令是BLX的情况下切换到ARM指令集,以 及在寄存器14中放置一个指向跟随第二半字的指令的指针,寄存器14 在ARM/Thumb指令集结构中是子例程链路寄存器。被调用的子例程可以 通过分支到这个指针而返回。

替换地,一个实施方案可以一起译码这两个半字为32位指令以及直 接执行BL或BLX指令的想要的效果。在Thumb指令集的未增强版本中, 这是一种允许更有效地执行BL或BLX指令的优化,但不是必不可少的。

Thumb指令集的增强版本改而需要(在要被描述的条件下)来自指 令流的两个接连的半字被作为32位指令对待,而不作为要互相顺序地执 行的两个16位半字对待。具体地,如图3所示,如果要被执行的下一个 半字的最高5比特取数值00000到11100的任何值,则它被作为16位指 令对待。如果它们取数值11101,11110和11111中的一个值,则它和以 后的半字一起被作为32位指令对待。所以需要所有存在的BL和BLX指 令被作为32位指令被对待。

未增强的Thumb指令集的所有指令在增强版本中仍旧是可得到的, BL和BLX作为32位指令,以及所有其它指令作为16位指令。比较图2 与图3,很明显,可用的32位指令中只有一小部分是BL和BLX指令。 其它的32位指令可在增强版本中使用,以提供在未增强版本中不存在的 附加功能性。具体地,ARM指令集包含在未增强Thumb指令集中不可得 到的许多组指令,以及除BL和BLX之外的32位指令可被使用来在增强 的Thumb指令集中提供那些指令的Thumb等价物。

协处理器指令是这样的一组指令的例子:它们存在于ARM指令集中, 但在Thumb指令集的未增强版本中没有等价物。ARM指令是32位字;当 这样的指令的比特[27:24]取数值1100,1101和1110中的一个数值时, 该指令是一个协处理器指令。图4显示了这些指令的主要的组,它们是:

把数据值从存储器传送到协处理器的LDC指令;

把数据值从协处理器传送到存储器的STC指令;

把数据值从处理器核心寄存器传送到协处理器中的MCR指令;

把两个数据值从处理器核心寄存器传送到协处理器中的MCRR指 令;

把数据值从协处理器传送到处理器核心寄存器的MRC指令;

把两个数据值从协处理器传送到处理器核心寄存器的MRRC指令;

在协处理器内执行不需要把数据值传入或传出协处理器的操作的 CDP指令;

在处理器核心3中引起一个未定义的指令例外的未定义指令。

所有的这些协处理器指令包含cpnum字段,它标识该指令打算用于 的协处理器;和cond字段。Cond字段的数值对于无条件的协处理器指 令是1110或1111,而在范围0000到1101的数值产生对于cond=1110 的等价指令的有条件版本。(对于cond=1111的无条件指令不具有有条件 版本。)

所有的这些协处理器指令可以通过使用上述的技术在数据处理设备 2上执行。

对于无条件ARM协处理器指令的等价指令在如图5所示的增强的 Thumb指令集中被编码。把它与图4进行比较,并且注意到对于无条件 ARM指令cond=1110或1111,将会理解,除了贮存次序考虑以外,每个 无条件Thumb协处理器指令的编码等同于等价的ARM协处理器指令的编 码。而且,所有这些无条件Thumb协处理器指令具有其中 HW1[15:11]=11101或11111的编码,且因此按照图3所例示的规则是 32位指令。

贮存次序考虑由以下事实引发,即:ARM指令字和Thumb指令半字 正常地是按小尾(litt1e-endian)次序被存储,即,使它们的最低有效 字节在最低的存储器地址。作为例子,其存储器地址是A的ARM无条件 CDP指令将被保持在地址A,A+1,A+2,A+3处的四个字节中,正如图6的 左边显示的。在增强的Thumb指令集中的等价指令将通过在地址A处的 第一半字HW1和在地址A+2处的第二半字HW2被保持,且这样将导致指 令被保持在四个字节中,如图6的右边显示的。比较这两边,Thumb指 令由与ARM指令相同的字节组成,但是是以不同的贮存次序:在地址A 和A+2处的字节互相相对地交换,在地址A+1和A+3处的字节也这样交 换。将会看到,不管精确的指令类型如何,对于所有的无条件协处理器 指令将在贮存次序上存在相同的差别。

增强的Thumb指令集是可变长度指令集,包含16位和32位指令。 在译码这样的指令集时的第一步骤是识别在指令预取缓冲器14中的各个 指令。在本实施例中,在指令预取缓冲器14中的每个项目是由指令预取 单元16先前从存储器取装的字对准的字。把在缓冲器的头处的项目表示 为WORD1和把下一个项目表示为WORD2,被送到指令译码器12的指令由 以下规则确定:   当前的   指令集   指令地址   mod 4   WORD1[15:11]   WORD1[31:26]   发送到译码器的指令   比特[31:16]比特[15:0]   ARM   总是0   任意   任意   WORD1[31:16]WORD1[15:0]   Thumb   0   00000-11100   任意   0 WORD1[15:0]   Thumb   0   11101-11111   任意   WORD1[15:0]WORD1[31:16]   Thumb   2   任意   00000-11100   0 WORD1[31:16]   Thumb   2   任意   11101-11111   WORD1[31:16]WORD2[15:0]

这以被补偿的贮存次序把正确的指令发送到指令译码器12。它总是 作为32位发送,对于16位Thumb指令,最高有效的16位是零。将会看 到,对于Thumb指令集,不需要单独的比特来告知指令译码器12该指令 是16位指令还是32位指令:被发送到指令译码器12的32位的最高有 效位对于16位指令总是0而对于32位指令总是1。

将会看到,处理器核心实施方案在它们如何预取指令和它们一次译 码多少指令方面变化很大,所以,识别各个指令的这个方法将需要按照 处理器核心实施方案的这些和其它方面被修正。

实施指令译码器12有两种普通的现有方式,使得指令译码器可以处 理ARM和Thumb指令集。在一个如图7所示的方法中,Thumb到ARM转 换器包含把每个Thumb指令转换成相应的ARM指令的逻辑。如果正在执 行ARM码,则复用器选择原始指令,或者如果正在执行Thumb码,则复 用器选择转换的指令。然后通过ARM译码器对复用器的输出译码。

指令译码器12的这个形式可被修正为:通过在原始指令的比特 [27:24]是1100,1101,或1110(这些比特对于16位Thumb指令将总是 0000,以及对于非协处理器32位Thumb指令是1100、1101或1110之 外的某个数值)的情况下、使得Thumb到ARM转换器把原始指令无改变地 传送到复用器,而译码已被包括在增强的Thumb指令集中的无条件协处 理器指令。将会看到,增强的Thumb指令集可包含除BL、BLX和无条件 协处理器指令以外的另外的32位指令;如果这样,则还将对Thumb到 ARM转换器作出进一步修正,以处理这些指令。

实施指令译码器12的第二个普通的现有方式是将单独的译码器用于 ARM和Thumb指令集,正如图8所示的。复用器然后在正执行ARM代码 的情况下被使用来选择ARM译码器的输出,或在正执行Thumb代码的情 况下被使用来选择Thumb译码器的输出。

指令译码器12的这个形式可被修正为通过把ARM译码器分割成译码 协处理器指令的一部分和译码非协处理器ARM指令的一部分,而译码该 无条件协处理器指令,如图9所示。如果增强的Thumb指令集包含除BL、 BLX和无条件协处理器指令以外的另外的32位指令,则非协处理器Thumb 译码器被修正来处理它们。最后的复用器然后在指令的比特[27:24]是 1100,1101或1110的情况下选择协处理器译码器的输出;否则,如果正 在执行ARM代码,则它们选择非协处理器ARM译码器的输出,或者如果 正在执行Thumb代码,则选择非协处理器Thumb译码器的输出。

在指令译码器12的第一种形式中,公共子集指令译码器13是ARM 译码器的译码协处理器指令的那个部分。在第二形式中,它是协处理器 译码器。

对在ARM和增强的Thumb指令集中的无条件协处理器指令使用公共 贮存次序补偿的编码,在减小所需要的逻辑的量和消耗的功率量方面, 与在每个指令集中使用不同的编码相比,对两种形式的指令译码器12都 具有很大的优点。另一个优点是,协处理器22只需要能够执行与在对 Thumb指令集增强之前它能够执行的相同的指令。除了避免由协处理器需 要的逻辑和它们消耗的功率的增加以外,这也意味着现有的协处理器不 需要被修正以便从增强的Thumb指令集可用。

将会看到,上述的技术可被修正以在设计内的其它地方,诸如在图7 的Thumb到ARM转换器内,执行贮存次序补偿,以及像任何其它逻辑设 计那样,它可被变形成许多逻辑上等价的设计。本技术包括所有这样的 修正和变形。

图10示意地例示可以按照上述的技术实施程序指令的通用计算机 200。该通用计算机200包括中央处理单元202、随机存取装储器204、 只读存储器206、网络接口卡208、硬盘驱动210、显示驱动器212、和 监视器214以及具有键盘218和鼠标220的用户输入/输出电路216,它 们全部经由公共总线222连接。在操作时,中央处理单元202将执行计 算机程序指令,这些程序指令可被存储在随机存取装储器204、只读存储 器206和硬盘驱动210中的一个或多个或经由网络接口卡208被动态地 下载。所执行的处理的结果可以经由显示驱动器212和监视器214被显 示给用户。用于控制通用计算机200的操作的用户输入可以经由用户输 入输出电路216从键盘218或鼠标220被接收。将会看到,计算机程序 可以以各种不同的计算机语言被写入。计算机程序可被存储在和被分布 在记录媒体上或被动态地下载到通用计算机200。当在适当的计算机程序 的控制下工作时,通用计算机200可执行上述的技术,以及可被认作为 形成用于执行上述技术的设备。通用计算机200的结构可以很大地变化 以及图10只是一个例子。

高效检索全球专利

IPRDB是专利检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,专利查询、专利分析

电话:13651749426

侵权分析

IPRDB的侵权分析产品是IPRDB结合多位一线专利维权律师和专利侵权分析师的智慧,开发出来的一款特色产品,也是市面上唯一一款帮助企业研发人员、科研工作者、专利律师、专利分析师快速定位侵权分析的产品,极大的减少了用户重复工作量,提升工作效率,降低无效或侵权分析的准入门槛。

立即试用