CN1147307A - 多指令集的数据处理 - Google Patents

多指令集的数据处理 Download PDF

Info

Publication number
CN1147307A
CN1147307A CN95192870A CN95192870A CN1147307A CN 1147307 A CN1147307 A CN 1147307A CN 95192870 A CN95192870 A CN 95192870A CN 95192870 A CN95192870 A CN 95192870A CN 1147307 A CN1147307 A CN 1147307A
Authority
CN
China
Prior art keywords
instruction set
instruction
word
bit
tupe
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
Application number
CN95192870A
Other languages
English (en)
Other versions
CN1089460C (zh
Inventor
D·V·贾加
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ARM Ltd
Original Assignee
Advanced Risc Machines Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Advanced Risc Machines Ltd filed Critical Advanced Risc Machines Ltd
Publication of CN1147307A publication Critical patent/CN1147307A/zh
Application granted granted Critical
Publication of CN1089460C publication Critical patent/CN1089460C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3818Decoding for concurrent execution
    • G06F9/3822Parallel decoding, e.g. parallel decode units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30094Condition code generation, e.g. Carry, Zero flag
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/3017Runtime instruction translation, e.g. macros
    • G06F9/30174Runtime instruction translation, e.g. macros for non-native instruction set, e.g. Javabyte, legacy code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30189Instruction operation extension or modification according to execution mode, e.g. mode flag
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30196Instruction 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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)
  • Hardware Redundancy (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

描述了一个利用两个指令集的数据处理系统,两个指令集控制使用处理器核(2)的全N位数据通路。一个指令集是一32位指令集,而另一个是一16位指令集。两个指令集都是永久地配备的,而且具有相关的指令译码硬件。

Description

多指令集的数据处理
本发明涉及数据处理领域。更具体地说,本发明涉及利用多个程序指令字集的数据处理。
数据处理系统利用一在程序指令字的控制下进行操作的处理器核,这些指令字在译码时用于产生控制信号以控制该处理器核的不同单元以执行必须的功能,从而实现在程序指令字中规定的处理。
典型的处理器核具有给定位宽度的数据通路,该宽度限制了对应一给定的指令可以操纵的数据字的长度。在数据处理领域,数据通路的宽度的增加一直是一个趋势,即逐渐从8位的体系结构转移到16位,  32位和64位的体系结构。在随着数据通路宽度增加的同时,指令集中的可能的指令的数目(在CISC和RISC策略中)以及这些指令的位长度也在增加。比如已经从16位指令集的16位体系结构转移到32位指令集的32位体系结构。
随着向增加结构的宽度的迁移,一个问题是维护为以前各代机器所编写的程序软件的向后兼容。解决这一问题的一个途径是提供具有兼容模式的新系统。比如,数字设备公司(Digital Equipment Corporation)的VAX11计算机具有能对较早的PDP11计算机的指令进行译码的兼容模式。尽管这一方法允许使用较早的程序软件,然而这种使用并未充分利用所运行的新处理设备中的所提高的能力,即当系统实际上具有支持32位的运算的硬件时,可能只使用到多级16位运算。
与结构的宽度的改变相关的另一问题是使用新的增加的位宽度指令集的计算机程序的大小趋于增加(32位的程序指令字所占的存储空间是16位程序指令字的两倍)。尽管在程序大小的增加在一定程度上为指令所抵销,因为新的指令指定的一个操作在以前可能需要多于一个的短指令,但是这一增加程序大小的趋势仍然存在。
对付这一问题的一个方案是让用户能有效地指定它们的指令集。国际商用机器公司(International Business Machins Corporation)制造的IBM370计算机包括了一个可写的控制存储器,使用该控制存储器,用户可以建立它们自己的指令集,将指令程序字与所希望的处理器核的不同部分的操作进行映射。尽管这一方案提供了很好的灵活性,但难以产生高速度的操作,而且可写的控制存储器占据了很大的集成电路区域,因此有些不利。而且,设计一个有效的所说的指令集对用户来说是一个很重的负担。
众所周知,在提供的系统中,一个指令集具有不同长度的程序指令字。这一方案的一个例子是由MOS工艺制造的6502微处理器。这一处理器使用8位的操作码,操作码后跟可变数目的操作数字节。在确定操作数和执行指令之前首先要对操作码进行译码。与固定的已知长度的程序指令字(即操作码和任意操作数)相比,这就要求多次存储器访问,而且是对系统性能的很大限制。
从本发明提供的处理数据的装置可看到其一个特点,所述装置包括:
一个处理器核,它具有N位的数据通路,并且响应多个核控制信号;
第一译码装置,它用于对来自一第一永久指令集(permanentinstruction set)的X位程序指令字进行译码,从而产生所述核控制信号,以触发使用所述N位的数据通路的处理;
第二译码装置,它用于对来自一第二永久指令集(permanentinstruction set)的Y位程序指令字进行译码,从而产生所述核控制信号,以触发使用所述N位的数据通路的处理,Y小于X;并且
一个指令集切换装置,它用于在接收到程序指令字时选择使用所述第一译码装置的第一处理模式,或者在接收到程序指令字时选择使用所述第二译码装置的第二处理模式。
本发明认识到,在一个具有一宽标准的X位指令集和N位数据通路的系统中(比如一个操作在32位的数据通路的32位的指令集),在通常的编程中并未充分用到X位指令集的性能。这一情况的一个例子就是32位的转移指令。该转移指令可能使用很少用到的32兆字节的范围。从而,在大多数情况下,这种转移仅用于少数指令,并且32位指令的大多数位不携带任何信息。大多数使用32位指令集的程序通常具有低的代码密度,并且使用的程序存储空间多于所需要的。
本发明通过提供一个单独的永久的Y位指令集而解决这一问题,其中Y小于X,该指令集仍然操作在全N位数据通路上。因此,使用到了N位的数据通路的性能,同时对于那些不要求该X位指令集的复杂性的应用来说,其代码密度得到提高。
在具有两个永久指令集的装置中存在一个协同作用。通过使用制造商有效地实现的两个指令集(在诸如相对定时十分关键的RISC处理器的高性能系统中,这很重要)以及不牺牲N位数据通路的使用,允许使用者具有一种灵活性,以改变他们所使用的指令集来适应程序的环境。
这种结构的另一优点是,在使用Y位指令集运行时,由于在每单位时间中运行较少字节的程序代码,因此对于存储程序码的存储系统的数据传输能力的要求就不十分高。这样就降低了复杂性及其成本。
本发明也朝着与本领域的正常趋势相反的方向发展。这一趋势就是随着每一代新处理器的出现,要将更多的指令加入到该指令集中,为了适应这种要求,该指令集变得更宽了。相反,本发明是以一宽的复杂的指令集开始的,然后添加一较狭窄的指令集(以较少的空间用于大量的指令)以用于不要求宽指令集的整个范围的情况。
应该认识到,第一指令集和第二指令集可以完全是独立的。然而,在本发明的较佳实施例中,所述第二指令集提供了所述第一指令集所提供的操作的一个子集。
只要第二指令集是第一指令集的一个子集,由于处理器核的硬件单元可以实现得更易于适应两个指令集,因此就允许更高效的操作。
当将一个增加了位长度的程序指令字的一个指令集已添加到一个现有的程序指令集中时,有可能要求来自两个指令集的程序指令字是正交的。然而,该指令集切换装置使得可以避免这一限制,而且允许系统中所述第二指令集非正交于所述第一指令集。
自由使用非正交指令集使得系统设计者的任务变得容易了,而且实现了本发明的另一特色,即能够更高效地处理指令集的设计。
该指令集切换装置可以是一个由手动干预进行控制的硬件型切换设备。然而,在本发明的较佳实施例中,所述指令集切换装置由响应一个指令集标志的装置构成,在用户的程序控制下,所述指令集标志是可设置的。
在软件控制下,能够使用指令集切换装置在第一指令集和第二指令集之间进行切换是相当有益的。比如,对于大多数程序,为了提高代码密度程序员可以使用具有Y位程序指令字的第二指令集,而对于那些要求利用第一指令集的增加的能力和复杂性的程序的一小部分可以暂时切换到具有X位程序指令字的第一指令集。
对两个独立的指令集的支持可能会对系统引入另外的复杂性。在本发明的较佳实施例中,所述处理器核包括一个程序状态寄存器(用于存储当前适当的处理状态数据)和一个保存程序状态寄存器,当出现一个程序异常而引起执行一个异常处理程序时所述保存程序状态寄存器用于存储与一个主程序有关的处理状态数据,所述指令集标志是所述处理状态数据的一部分。
将指令集标志作为编程状态数据的一部分就保证了当发生一个异常时对该标志进行保存。以此方式,一个异常处理程序就能够处理两个处理模式的异常,并且允许它访问在保存程序状态寄存器中的所保存的指令集标志(如果在处理该异常中它十分重要的话)。而且,使得该异常处理程序能够使用任一指令集以提高设计约束所要求的速度或代码密度。
为了处理不同指令集的不同的位长度,本发明的较佳实施例在所述的处理器核中包括一个程序计数器寄存器和一个程序计数器递增器,后者用于对存储在所述程序计数器寄存器中的程序计数器值进行递增以指向下一个程序指令字,所述程序计数器递增器在所述第一处理模式而不是在所述第二处理模式中使用一个不同的递增步长。
将会理解到,第二指令集的较短的程序指令字不可能包含与第一指令集同样多的信息。为了适应这一情况,可通过减少操作数的范围节省第二指令集中的空间,其中操作数的范围在一个程序指令字内被指定。
在本发明的较佳实施例中,所述处理器核通过一Y位数据总线连接到一个存储系统,从而所述第二指令集的程序指令字只要求一个取周期,所述第一指令集的程序指令字要求多个取周期。
使用Y位的数据总线和存储系统在使得对于在至少第二指令集的每一程序指令字只需一个取周期的同时,也使得要建造的系统的总体开销较少。
第一译码装置和第二译码装置可以完全是独立的。然而在本发明的较佳实施例中,所述第二译码装置重新使用了所述第一译码装置的至少一部分。
第二译码装置对于第一译码装置的至少一部分的重新使用减少了电路的整体面积。而且,由于第一指令集通常不如第二指令集复杂,而且驱动同样的处理器核,因此第二译码装置的相当多的部分仍有可能重新使用。
从本发明提供的处理数据的一种方法可以看到其另一特色,所述方法包括:
为一个具有N位的数据通路并且响应多个核控制信号的处理器核选择第一处理模式或第二模式之一;
在所述第一译码模式中,对来自第一永久指令集(permanentinstruction set)的X位程序指令字进行译码,从而产生所述核控制信号,以触发使用N位的数据通路的处理;并且
在所述第二译码模式中,对来自第二永久指令集(permanentinstruction set)的Y位程序指令字进行译码,从而产生所述核控制信号,以触发使用N位的数据通路的处理,Y小于X。
结合附图将以举例的方式对本发明的一个较佳实施例进行描述,其中:
图1概略地示出了包括一个处理器核和一存储系统的数据处理装置;
图2概略地示出了对于一个具有一个指令集的系统的指令和指令译码器;
图3示出了在具有两个指令集的系统中使用的一个指令流水线和指令译码器;
图4示出了一个X位的程序指令字的译码过程;
图5和图6示出了Y位程序指令字到X位程序指令字的映射;
图7示出了一个X位指令集;
图8示出了一个Y位指令集;以及
图9示出了第一指令集和第二指令集使用的处理寄存器。
图1示出了一个数据处理系统(它形成为一个集成电路的一部分),该系统包括一个连接到一Y位存储系统4的处理器核2。在本例中,Y=16。
处理器核2包括一个寄存器组6,一个Booths乘法器(Boothsmultiplier)8,一个桶式移位器(barrel shiftter)10,一个32位算术逻辑单元12,和一个写数据寄存器14。在处理器核2和存储系统4之间是一个指令流水线16,一个指令译码器18和一个写数据寄存器20。图中示出一个程序计数器寄存器22(它是处理器核2的一部分)正在寻址存储系统4。在执行每一指令以及必须为指令流水线16取出一新的指令时,程序计数器递增器24起到递增程序计数器寄存器22中的程序计数器值的作用。
处理器核2在各功能单元之间采用了N-位数据通路(在这个例子中为32位数据通路)。在运转时,指令流水线16中的指令被指令译码器18译码,从而产生各种核控制信号,并被传输至处理器核2中的不同功能单元。作为对这些核控制信号的响应,处理器核的不同部分实施32-位处理操作,例如32-位乘法,32-位加法和32-位逻辑运算。
寄存器组6包含一个当前程序状态寄存器26和一个保存程序状态寄存器28。当前程序状态寄存器26为处理器核2保存各种条件和状态标志。这些标志包括处理模式标志(如系统模式,用户模式,存贮器中止模式等),以及表示出现算术运算结果为零、出现进位等等的标志。保存程序状态寄存器28(可以是成组的多个这种保存程序状态寄存器中的一个)用来在一个异常出现而引起处理器模式切换时暂存当前程序状态寄存器26的内容。这样可以使对异常的处理更快更有效。
当前程序状态寄存器26中含有一个指令集标志T。该指令集标志被传送给指令译码器18和程序计数器递增器24。当该指令集标志T被置位时,系统操作第二指令集中的指令(即Y-位程序指令字,在这个例子中为16-位程序指令字)。该指令集标志T控制程序计数器递增器24,使之在第二指令集被操作时采用一个较小的增量步长。这与第二指令集的程序指令字字长较短,以至在存贮器系统4的存贮位置中,指令间具有更小间距是相一致的。
前面提到,存贮器系统4是一个16-位存贮器系统,通过16-位数据总线与读数据寄存器20和指令流水线16相连。相对于高性能的32-位存贮器系统,这种16-位存贮器系统较为简单和廉价。使用这种16-位存贮器系统,可以在一个周期内取到16-位程序指令字。然而,如果需要使用一条第二指令集中的32-位指令(由指令集标志T指示),那么,需要进行两次取指,从而还原一条32-位指令并将之提供给指令流水线16。
一旦所需的程序指令字已从存贮器系统4被还原,它们即被指令译码器18译码,同时,不管该指令是16-位指令还是32-位指令,在处理器核2中均开始32-位处理过程。
指令译码器18在图1中被示意为一个方框。然而,为了处理一个以上的指令集,指令译码器1 8具有更为复杂的结构,这将结合图2和图3进行阐述。
图2示意了指令流水线16和一个处理单指令集的指令译码器18。在这个例子中,指令译码器18只含有一个第一译码装置30,用以译码32-位指令。该译码装置30使用一个可编程逻辑阵列(PLA)对第一指令集(ARM指令集)进行译码,从而产生大量的核控制信号32并将之传输到处理器核2。当前被译码(即:产生当前的核控制信号32)的程序指令字还保存在一个指令寄存器34中。处理器核2中的功能部件(如Booths乘法器8或寄存器组6)直接从这个指令寄存器34中读取各自处理操作所需的操作数。
基于这种设计下的操作过程具有这样一个特征,即:第一译码装置30要求必须在第一译码装置开始操作的时钟周期的开始阶段获得某些输入(由流水线阶段PipeC所输出的、以实线标示出的P位)。这是为了保证核控制信号32能被及时产生,以便驱动处理器核2中的必要部件。第一译码装置30是一个相对较大且较慢的可编程逻辑阵列结构,所以这种对时间的考虑是有重要意义的。
这种用可编程逻辑阵列结构来完成指令译码的设计是本领域中的一种传统方法。一个输入集合以及由这些输入产生的所需输出一起被定义。可以用市场上已提供的软件来设计这种能够从指定的输入集合产生指定的输出集合的PLA结构。
图3示意了图2中的系统经修改后的结构,它用来完成对第一指令集和第二指令集的译码。当通过指令集标志T选择第一指令集时,系统将按照以上结合图2所介绍过的过程运转。当指令集标志T指示指令流水线16中的指令是来自第二指令集时,第二译码装置36将被变为活动状态。
该第二译码装置采用一个快速PLA 38和一个并行慢速PLA 40对16-位指令(Thumb指令)进行译码。快速PLA 38用来将16-位Thumb指令的各二进制位的一个子集(Q位)映射到用以驱动第一译码装置的对应32-位ARM指令的P位。因为仅有相对较少的位数需要进行这种映射,快速PLA 38可以相对较“浅”,于是可以足够迅速地操作,以提供第一译码装置足够的时间响应PipeC的内容而产生核控制信号32。可以认为快速PLA 38是在为第一译码装置“伪造”一个对应32-位指令的关键位,而没有花费任何不必要的时间来映射整条指令。
然而,如果使处理器核2在不做根本性改变和不添加重要附加电路部件的基础上能够工作时,那么完整的32-位指令仍然是需要的。在快速PLA 38正在进行关键映射的同时,并行相连的慢速PLA 40用来将16-位指令映射到对应的32-位指令,并将之放置于指令寄存器34中。这个更为复杂的映射将贯穿于快速PLA 38和第一译码装置进行操作的整个过程之中。有一点非常重要,那就是,该32-位指令必须在指令寄存器34中存在充分长的时间,这样使得为了响应核控制信号32对处理器核2产生控制,任意操作数均可从指令寄存器34中读取。
比较好的情况是,图3中的系统在译码第二指令集时的全部动作是当第二指令集中的16-位指令通过指令流水线16时将其翻译成第一指令集中的32-位指令。使这一点成为现实可行的措施是:将第二指令集做成第一指令集的一个子集,以便保证在第二指令集中的指令和第一指令集中的指令之间存在一个一一映射。
提供指令集标志T使得第二指令集与第一指令集为非正交的关系。这一点在第一指令集是一个已存在的指令集,且没有任何空余位可用来使另外的正交的指令集被检测和译码的情况下是特别有用的。
图4示意了一条32-位指令的译码过程。在图4上部所示的连续的处理器时钟周期中,完成了一个取操作、一个译码操作以及最后的一个执行操作。如果所要求的是一条特殊的指令(如一条乘法指令),那么需要增加一个或多个附加的执行周期。
一条32-位指令42由许多不同的域组成。后面结合图7将要介绍,对于不同的指令,这些域的界限也将不同。
指令42中某些位要求在一个初级译码阶段被译码。这些P位是位4至7,位20,和位22至27。正是这些位被第一译码装置30所要求,且必须被快速PLA 38所“伪造”。这些位必须输入到第一译码装置并在其中译码,以便在译码周期的第一阶段结束之前产生适当的核控制信号32。如果需要的话,对整条指令的译码将持续到译码周期的末尾。在译码周期的末尾,处理器2在执行周期中从指令寄存器34中读取指令中的操作数。这些操作数可以是寄存器号、偏移量或其它变量。
图5示意了作为例子的16-位指令到32-位指令的映射。粗线起源处为16-位指令中的Q位,它们需要被映射到32-位指令中的P位,以便被输入到第一译码装置30。可以看出,这些位中的大部分或是直接被复制过去,或是经过一个简单的映射。16-位指令中的操作数Rn′,Rd和立即数需要在其最高有效端用零填充,以填满32-位指令。由于32-位指令的操作数范围要比16-位指令的大,所以上述的填充是必需的。
从图5下部给出的32-位指令通用结构可以看出,32-位指令比由16-位指令所代表的该指令的子集提供更多的灵活性。例如,32-位指令首部是条件码Cond,它使该指令成为有条件地可执行。相反,16-位指令中不带有任何条件码,它们所映射到的32-位指令中的条件码被置为“1110”,这个值相当于条件执行状态:“总是”。
图6示意了另一种指令映射。在这个例子中,16-位指令是一个与图5中所示指令类型不同的取数/存数指令。不过,该指令仍然是32-位指令集中简单数据传输指令的一个子集。
图7用图表方式示意了32-位指令集中的11种不同类型指令的格式。这些指令依次是:
1.数据处理PSR传输;
2.乘法;
3.简单数据交换;
4.简单数据传输;
5.未定义;
6.块数据传输;
7.分支;
8.协处理器数据传输;
9.协处理器数据操作;以及
10.协处理器寄存器传输。
11.软件中断。
对该指令集的一个完整说明可以在先进RISC机器有限公司(Advanced RISC Machines Limited)生产的ARM6处理器的数据表中的得到。图7中所突出强调的指令是图5和图6中所示的指令。
图8示意了除32-位指令集之外的16-位指令集。在该指令集中所突出强调的指令分别在图5和图6中做了示意。该16-位指令集中的指令经过某种选择,以使它们均可被映射到一条32-位指令,从而形成该32-位指令集的一个子集。
下面所说明的格式依次对应于该指令集中各条指令。格式1:Op=0,1两种操作均置条件码标志。
   0: ADD Rd,Rs,#立即数3
   1: SUB Rd,Rs,#立即数3格式2:Op=0,1两种操作均置条件码标志。
   0: ADD Rd,Rm,Rn
   1: SUB Rd,Rm,Rn格式3:3个操作码。用来生成大的立即数。
   1=ADD Rd,Rd,#立即数8<<8
   2=ADD Rd,Rd,#立即数8<<16
   3=ADD Rd,Rd,#立即数8<<24格式4:Op给出3个操作码,所有操作均是MOVS Rd,Rs SHIFT#立
   即数5,其中SHIFT为:
   0为LSL
   1为LSR
   2为ASR
如ARM所定义的那样,用零进行移位。格式5:Op1*8+Op2给出32个ALU操作码,Rd=Rd op Rn.所有操
   作均置条件码标志。这些操作是:
   AND,OR,EOR,BIC(AND NOT),NEGATE,CMP,CMN,
   MUL,TST,TEQ,MOV,MVN(NOT),LSL,LSR,ASR,ROR
   丢失ADC,SBC,MULL
   如ARM所定义的那样,用零进行移位并且大于31
   8个特殊操作码,LO指定寄存器0-7,HI指定寄存器8-15
   SPECIAL是CPSR或SPSR
   MOV HI,LO(移动隐藏寄存器到可见寄存器)
   MOV LO,HI(移动可见寄存器到隐藏寄存器)
   MOV HI,HI(如过程返回)
   MOVS HI,HI(如异常返回)
   MOVS HI,LO(如中断返回,可以是SUBS HI,HI,#4)
   MOV SPECIAL,LO(MSR)
   MOV LO,SPECIAL(MRS)
   CMP HI,HI(堆栈界限检查)
   8个空余操作码格式6:Op给出4个操作码,所有操作均置条件码标志
   0:MOV Rd,#立即数8
   1:CMP Rs,#立即数8
   2:ADD Rd,Rd,#立即数8
   有可能用ADD Rd,Rs,#立即数5来替换ADD指令格式7:取一个PC+Offset的字(256字,1024字节)。注意,偏移
   量必须字对齐。
   LDR Rd,[pc,#+1024]
   该指令用来访问下一个字符区,读取常数、地址等等。格式8:从SP(r7)+256个字(1024字节)中存取字
   从SP(r7)+256个字节中存取字节
   LDR Rd,[SP,#+1024)
   LDRB Rd,[SP,#+256]
   这些指令用于堆栈和框架访问格式9:以带符号的3位立即数偏移量(迟后增/减)存取字(或字节),
   强迫回写
   L代表存/取,U代表上/下(加/减偏移量),B代表字节/字
   LDR{B}Rd,[Rb],#+/-Offset3
   STR{B}Rd,[Rb],#+/-Offset3
   这些指令用于数组的访问
   偏移量编码为0-7时代表字节,编码为0,4-28时代表字格式10:以带符号的寄存器偏移量(预先增/减)存取字(或字节),
    无回写
    L代表存/取,U代表上/下(加减偏移量),B代表字节/字
    LDR Rd,[Rb,+/-Ro,LSL#2]
    STR Rd,[Rb,+/-Ro,LSL#2]
    LDRB Rd,[Rb,+/-Ro]
    STRB Rd,[Rb,+/-Ro]
    这些指令用于“基址+偏移量”型指针的访问,并且与8-位MOV,
    ADD,SUB结合时将带来相当快速的立即数偏移量的访问格式11:以带符号的5位立即数偏移量(预先增/减)存取字(或字节),
    无回写
    L代表存/取,B代表字节/字
    LDR{B}Rd,[Rb,#+Offset5]
    STR{B}Rd,[Rb,#+Offset5]
    这些指令用于结构的访问
    偏移量编码为0-31时代表字节,编码为0,4-124时代表字格式12:多重存取(强迫回写)
    LDMIA Rb!,{Rlist}
    STMIA Rb!,{Rlist}
    Rlist指定寄存器r0-r7
    这些指令的一个子类是一对子程序调用和返回指令
    对于LDM,如果r7是基址,而rlist中的位7置位,则PC被
    取到
    对于STM,如果r7是基址,而rlist中的位7置位,则LR被
    存储
    如果r7被用作基址寄存器,则以sp取而代之,那么在这两种
    情况下,将实现一个全下行堆栈,即LDM类似ARM的
    LDMFD,STM类似ARM的STMFD
    因而对块拷贝,将r7用作结束指针
    如果r7不是基址寄存器,LDM和STM类似ARM的LDMIA,
    STMIA格式13:取地址。该指令将8位无符号常数与PC或堆栈指针相加,并
    将结果存于目的寄存器中
    ADD Rd,sp,+256字节
    ADD Rd,pc,+256字(1024字节)
    SP位表明SP或PC哪一个是源
    如果SP是源,而r7被指定为目的寄存器,则SP被用作目的
    寄存器格式14:条件分支跳转,+/-128个字节,其中,cond定义了条件码(象
    ARM中的那样),cond=15编码为SWI(仅256,应该足
    够)格式15:设置一个长跳转和连接中的位22:12。MOV lr,#offset<<12。格式16:进行一个长跳转和连接。操作为:SUB newlr,pc,#4;ORR pc,
    oldlr,#offset<<1。newlr和oldlr代表在该操作之前和之后的
    lr寄存器。
如前所述,与32-位指令集相比,16-位指令集操作数的范围缩小了。相应地,16-位指令集使用了寄存器6(参看图1)的一个子集,而该寄存器6是提供给全32-位指令集用的。图9示意了16-位指令集所使用的寄存器子集。

Claims (11)

1.一种处理数据的装置,所述装置包括:
一个处理器核,它具有N位数据通路,并且响应多个核控制信号;
第一译码装置,它用于对一第一永久指令集的X位程序指令字进行译码以产生所述核控制信号,来触发利用所述N位数据通路的处理;
第二译码装置,它用于对一第二永久指令集的Y位程序指令字进行译码以产生所述核控制信号,来触发利用所述N位数据通路的处理,  Y小于X;以及
一个指令集切换装置,它用于在接收到程序指令字时选择使用所述第一译码装置的一第一处理模式,或者在接收到程序指令字时选择使用所述第二译码装置的一第二处理模式。
2.根据权利要求1的装置,其中所述第二指令集提供了由所述第一指令集提供的操作的一个子集。
3.根据权利要求1和2的任一权利要求的装置,其中第二指令集非正交于所述第一指令集。
4.根据权利要求1、2和3的任一权利要求的装置,其中所述指令集切换装置包括响应一个指令集标志的装置,所述指令集标志可由用户程序控制进行置位。
5.根据权利要求4的装置,其中所述处理器核包括一个用于存储当前适当的处理状态数据的程序状态寄存器以及一个保存程序状态寄存器,在发生一个程序异常引起一个异常处理程序执行时,所述保存程序状态寄存器用于存储与一个主程序有关的处理状态数据,所述指令集标志是所述处理状态数据的一部分。
6.根据前面任一权利要求的装置,其中所述处理器核包括一个程序计数器寄存器和一个程序计数器递增器,后者用于递增存储在所述程序计数器寄存器中的一个程序计数器值,以指向下一程序指令字,所述程序计数器递增器在所述第一处理模式中而不是在所述第二处理模式中应用一个不同的递增步长。
7.根据前面任一权利要求的装置,其中与所述第一指令集的一个对应的程序指令字相比,所述第二指令集的至少一个程序指令字具有一个减少的操作数范围。
8.根据前面任一权利要求的装置,其中所述处理器核通过一个Y位数据总线连接到一个存储系统,使得所述第二指令集的程序指令字需要一个取周期,而所述第一指令集的程序指令字需要多个取周期。
9.根据前面任一权利要求的装置,其中所述第二译码装置重新使用所述第一译码装置的至少一部分。
10.根据前面任一权利要求的装置,其中所述装置是一个集成电路。
11.一种处理数据的方法,所述方法包括以下步骤:
对于具有N位数据通路以及响应多个核控制信号的一个处理器核,选择第一处理模式或第二处理模式;
在所述第一处理模式中,对一第一永久指令集的X位程序指令字进行译码以产生所述核控制信号,来触发利用所述N位数据通路的处理;
在所述第二处理模式中,对一第二永久指令集的Y位程序指令字进行译码以产生所述核控制信号,来触发利用所述N位数据通路的处理,Y小于X。
CN95192870A 1994-05-03 1995-02-15 多指令集的数据处理 Expired - Lifetime CN1089460C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB9408765A GB2289353B (en) 1994-05-03 1994-05-03 Data processing with multiple instruction sets
GB9408765.7 1994-05-03

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CNB011435283A Division CN1174313C (zh) 1994-05-03 1999-11-02 多指令集的数据处理

Publications (2)

Publication Number Publication Date
CN1147307A true CN1147307A (zh) 1997-04-09
CN1089460C CN1089460C (zh) 2002-08-21

Family

ID=10754489

Family Applications (2)

Application Number Title Priority Date Filing Date
CN95192870A Expired - Lifetime CN1089460C (zh) 1994-05-03 1995-02-15 多指令集的数据处理
CNB011435283A Expired - Lifetime CN1174313C (zh) 1994-05-03 1999-11-02 多指令集的数据处理

Family Applications After (1)

Application Number Title Priority Date Filing Date
CNB011435283A Expired - Lifetime CN1174313C (zh) 1994-05-03 1999-11-02 多指令集的数据处理

Country Status (13)

Country Link
US (1) US5740461A (zh)
EP (3) EP0813144B1 (zh)
JP (3) JP3173793B2 (zh)
KR (2) KR100327776B1 (zh)
CN (2) CN1089460C (zh)
DE (2) DE69530520T2 (zh)
GB (1) GB2289353B (zh)
IL (1) IL113153A (zh)
IN (1) IN190632B (zh)
MY (1) MY113751A (zh)
RU (1) RU2137183C1 (zh)
TW (1) TW242184B (zh)
WO (1) WO1995030188A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102314333A (zh) * 2010-06-22 2012-01-11 国际商业机器公司 用于扩展可用于指令的通用寄存器的数目的方法和系统
CN102360281A (zh) * 2011-10-31 2012-02-22 中国人民解放军国防科学技术大学 用于微处理器的多功能定点mac运算装置
CN104991759A (zh) * 2015-07-28 2015-10-21 成都腾悦科技有限公司 一种可变指令集微处理器及其实现方法
CN111090465A (zh) * 2019-12-19 2020-05-01 四川长虹电器股份有限公司 一种rv32ic指令集的译码系统及其译码方法

Families Citing this family (82)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2290395B (en) 1994-06-10 1997-05-28 Advanced Risc Mach Ltd Interoperability with multiple instruction sets
US5867726A (en) * 1995-05-02 1999-02-02 Hitachi, Ltd. Microcomputer
US6408386B1 (en) 1995-06-07 2002-06-18 Intel Corporation Method and apparatus for providing event handling functionality in a computer system
US5774686A (en) * 1995-06-07 1998-06-30 Intel Corporation Method and apparatus for providing two system architectures in a processor
US5867681A (en) * 1996-05-23 1999-02-02 Lsi Logic Corporation Microprocessor having register dependent immediate decompression
AU3480897A (en) * 1996-06-10 1998-01-07 Lsi Logic Corporation An apparatus and method for detecting and decompressing instructions from a variable-length compressed instruction set
US5794010A (en) * 1996-06-10 1998-08-11 Lsi Logic Corporation Method and apparatus for allowing execution of both compressed instructions and decompressed instructions in a microprocessor
GB2349252B (en) * 1996-06-10 2001-02-14 Lsi Logic Corp An apparatus and method for detecting and decompressing instructions from a variable-length compressed instruction set
US5896519A (en) * 1996-06-10 1999-04-20 Lsi Logic Corporation Apparatus for detecting instructions from a variable-length compressed instruction set having extended and non-extended instructions
US5905893A (en) * 1996-06-10 1999-05-18 Lsi Logic Corporation Microprocessor adapted for executing both a non-compressed fixed length instruction set and a compressed variable length instruction set
EP0833246B1 (en) * 1996-09-27 2014-11-26 Texas Instruments Incorporated A method of producing a computer program
JP3781519B2 (ja) * 1997-08-20 2006-05-31 富士通株式会社 プロセッサの命令制御機構
US6230259B1 (en) * 1997-10-31 2001-05-08 Advanced Micro Devices, Inc. Transparent extended state save
US6438679B1 (en) * 1997-11-03 2002-08-20 Brecis Communications Multiple ISA support by a processor using primitive operations
US6012138A (en) * 1997-12-19 2000-01-04 Lsi Logic Corporation Dynamically variable length CPU pipeline for efficiently executing two instruction sets
EP0942357A3 (en) * 1998-03-11 2000-03-22 Matsushita Electric Industrial Co., Ltd. Data processor compatible with a plurality of instruction formats
US6079010A (en) * 1998-03-31 2000-06-20 Lucent Technologies Inc. Multiple machine view execution in a computer system
US7225436B1 (en) 1998-12-08 2007-05-29 Nazomi Communications Inc. Java hardware accelerator using microcode engine
US6332215B1 (en) * 1998-12-08 2001-12-18 Nazomi Communications, Inc. Java virtual machine hardware for RISC and CISC processors
US20050149694A1 (en) * 1998-12-08 2005-07-07 Mukesh Patel Java hardware accelerator using microcode engine
US6327650B1 (en) * 1999-02-12 2001-12-04 Vsli Technology, Inc. Pipelined multiprocessing with upstream processor concurrently writing to local register and to register of downstream processor
EP1050798A1 (en) * 1999-05-03 2000-11-08 STMicroelectronics SA Decoding instructions
EP1050796A1 (en) 1999-05-03 2000-11-08 STMicroelectronics S.A. A decode unit and method of decoding
US6662087B1 (en) * 2000-01-03 2003-12-09 Spx Corporation Backward compatible diagnostic tool
US20020004897A1 (en) * 2000-07-05 2002-01-10 Min-Cheng Kao Data processing apparatus for executing multiple instruction sets
US6775732B2 (en) * 2000-09-08 2004-08-10 Texas Instruments Incorporated Multiple transaction bus system
GB2367653B (en) 2000-10-05 2004-10-20 Advanced Risc Mach Ltd Restarting translated instructions
US20020069402A1 (en) * 2000-10-05 2002-06-06 Nevill Edward Colles Scheduling control within a system having mixed hardware and software based instruction execution
GB2367654B (en) 2000-10-05 2004-10-27 Advanced Risc Mach Ltd Storing stack operands in registers
GB2367915B (en) 2000-10-09 2002-11-13 Siroyan Ltd Instruction sets for processors
KR20020028814A (ko) * 2000-10-10 2002-04-17 나조미 커뮤니케이션즈, 인코포레이티드 마이크로코드 엔진을 이용한 자바 하드웨어 가속기
US7149878B1 (en) 2000-10-30 2006-12-12 Mips Technologies, Inc. Changing instruction set architecture mode by comparison of current instruction execution address with boundary address register values
GB2369464B (en) 2000-11-27 2005-01-05 Advanced Risc Mach Ltd A data processing apparatus and method for saving return state
US7076771B2 (en) 2000-12-01 2006-07-11 Arm Limited Instruction interpretation within a data processing system
US7711926B2 (en) * 2001-04-18 2010-05-04 Mips Technologies, Inc. Mapping system and method for instruction set processing
GB2376099B (en) * 2001-05-31 2005-11-16 Advanced Risc Mach Ltd Program instruction interpretation
GB2376097B (en) 2001-05-31 2005-04-06 Advanced Risc Mach Ltd Configuration control within data processing systems
GB2376098B (en) 2001-05-31 2004-11-24 Advanced Risc Mach Ltd Unhandled operation handling in multiple instruction set systems
GB2376100B (en) * 2001-05-31 2005-03-09 Advanced Risc Mach Ltd Data processing using multiple instruction sets
US6826681B2 (en) * 2001-06-18 2004-11-30 Mips Technologies, Inc. Instruction specified register value saving in allocated caller stack or not yet allocated callee stack
US7107439B2 (en) * 2001-08-10 2006-09-12 Mips Technologies, Inc. System and method of controlling software decompression through exceptions
US8769508B2 (en) 2001-08-24 2014-07-01 Nazomi Communications Inc. Virtual machine hardware for RISC and CISC processors
US7818356B2 (en) * 2001-10-29 2010-10-19 Intel Corporation Bitstream buffer manipulation with a SIMD merge instruction
US7493470B1 (en) 2001-12-07 2009-02-17 Arc International, Plc Processor apparatus and methods optimized for control applications
US7278137B1 (en) * 2001-12-26 2007-10-02 Arc International Methods and apparatus for compiling instructions for a data processor
EP1324191A1 (en) * 2001-12-27 2003-07-02 STMicroelectronics S.r.l. Processor architecture, related system and method of operation
WO2003065165A2 (en) * 2002-01-31 2003-08-07 Arc International Configurable data processor with multi-length instruction set architecture
US7131118B2 (en) * 2002-07-25 2006-10-31 Arm Limited Write-through caching a JAVA® local variable within a register of a register bank
GB2399897B (en) * 2003-03-26 2006-02-01 Advanced Risc Mach Ltd Memory recycling in computer systems
US7194601B2 (en) 2003-04-03 2007-03-20 Via-Cyrix, Inc Low-power decode circuitry and method for a processor having multiple decoders
US7437532B1 (en) 2003-05-07 2008-10-14 Marvell International Ltd. Memory mapped register file
US6983359B2 (en) 2003-08-13 2006-01-03 Via-Cyrix, Inc. Processor and method for pre-fetching out-of-order instructions
US7096345B1 (en) 2003-09-26 2006-08-22 Marvell International Ltd. Data processing system with bypass reorder buffer having non-bypassable locations and combined load/store arithmetic logic unit and processing method thereof
USH2212H1 (en) * 2003-09-26 2008-04-01 The United States Of America As Represented By The Secretary Of The Navy Method and apparatus for producing an ion-ion plasma continuous in time
US20050091474A1 (en) * 2003-10-24 2005-04-28 Microchip Technology Incorporated Fuse configurable alternate behavior of a central processing unit
US7707389B2 (en) 2003-10-31 2010-04-27 Mips Technologies, Inc. Multi-ISA instruction fetch unit for a processor, and applications thereof
GB2412192B (en) * 2004-03-18 2007-08-29 Advanced Risc Mach Ltd Function calling mechanism
US7802080B2 (en) 2004-03-24 2010-09-21 Arm Limited Null exception handling
US7930526B2 (en) 2004-03-24 2011-04-19 Arm Limited Compare and branch mechanism
EP1622009A1 (en) * 2004-07-27 2006-02-01 Texas Instruments Incorporated JSM architecture and systems
WO2006030650A1 (ja) * 2004-09-16 2006-03-23 Nec Corporation 複数の処理ユニットでリソースを共有する情報処理装置
US7406406B2 (en) * 2004-12-07 2008-07-29 Bull Hn Information Systems Inc. Instructions to load and store containing words in a computer system emulator with host word size larger than that of emulated machine
KR100633773B1 (ko) * 2005-07-01 2006-10-13 삼성전자주식회사 버스 시스템 및 버스 중재 방법
ATE461481T1 (de) * 2005-12-23 2010-04-15 Koninkl Kpn Nv Prozessor-verriegelung
US9652210B2 (en) * 2007-08-28 2017-05-16 Red Hat, Inc. Provisioning a device with multiple bit-size versions of a software component
US8832679B2 (en) * 2007-08-28 2014-09-09 Red Hat, Inc. Registration process for determining compatibility with 32-bit or 64-bit software
US8037286B2 (en) * 2008-01-23 2011-10-11 Arm Limited Data processing apparatus and method for instruction pre-decoding
US8347067B2 (en) * 2008-01-23 2013-01-01 Arm Limited Instruction pre-decoding of multiple instruction sets
US7917735B2 (en) * 2008-01-23 2011-03-29 Arm Limited Data processing apparatus and method for pre-decoding instructions
US7925867B2 (en) * 2008-01-23 2011-04-12 Arm Limited Pre-decode checking for pre-decoded instructions that cross cache line boundaries
US7925866B2 (en) * 2008-01-23 2011-04-12 Arm Limited Data processing apparatus and method for handling instructions to be executed by processing circuitry
TWI379230B (en) * 2008-11-14 2012-12-11 Realtek Semiconductor Corp Instruction mode identification apparatus and instruction mode identification method
US9274796B2 (en) * 2009-05-11 2016-03-01 Arm Finance Overseas Limited Variable register and immediate field encoding in an instruction set architecture
CN101840328B (zh) * 2010-04-15 2014-05-07 华为技术有限公司 一种数据处理方法及系统以及相关设备
GB2484489A (en) * 2010-10-12 2012-04-18 Advanced Risc Mach Ltd Instruction decoder using an instruction set identifier to determine the decode rules to use.
US9875108B2 (en) * 2013-03-16 2018-01-23 Intel Corporation Shared memory interleavings for instruction atomicity violations
US9965320B2 (en) 2013-12-27 2018-05-08 Intel Corporation Processor with transactional capability and logging circuitry to report transactional operations
US9916185B2 (en) 2014-03-18 2018-03-13 International Business Machines Corporation Managing processing associated with selected architectural facilities
US9582295B2 (en) * 2014-03-18 2017-02-28 International Business Machines Corporation Architectural mode configuration
KR102180972B1 (ko) * 2014-04-23 2020-11-20 에스케이하이닉스 주식회사 메모리 컨트롤 유닛 및 그것을 포함하는 데이터 저장 장치
US10007520B1 (en) * 2016-02-25 2018-06-26 Jpmorgan Chase Bank, N.A. Systems and methods for using alternate computer instruction sets
US10120688B2 (en) * 2016-11-15 2018-11-06 Andes Technology Corporation Data processing system and method for executing block call and block return instructions

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5317240A (en) * 1976-07-31 1978-02-17 Toshiba Corp Controller
US4236204A (en) * 1978-03-13 1980-11-25 Motorola, Inc. Instruction set modifier register
US4338663A (en) * 1978-10-25 1982-07-06 Digital Equipment Corporation Calling instructions for a data processing system
US4876639A (en) * 1983-09-20 1989-10-24 Mensch Jr William D Method and circuitry for causing sixteen bit microprocessor to execute eight bit op codes to produce either internal sixteen bit operation or internal eight bit operation in accordance with an emulation bit
JPS6133546A (ja) * 1984-07-25 1986-02-17 Nec Corp 情報処理装置
EP0199173B1 (en) * 1985-04-08 1994-02-02 Hitachi, Ltd. Data processing system
JPS62262146A (ja) * 1986-05-09 1987-11-14 Hitachi Ltd 処理装置
JP2845433B2 (ja) * 1987-09-07 1999-01-13 日本電気株式会社 集積回路装置
US5115500A (en) * 1988-01-11 1992-05-19 International Business Machines Corporation Plural incompatible instruction format decode method and apparatus
EP0407911B1 (en) * 1989-07-07 1998-12-09 Hitachi, Ltd. Parallel processing apparatus and parallel processing method
JPH0476626A (ja) * 1990-07-13 1992-03-11 Toshiba Corp マイクロコンピュータ
DE69231451T2 (de) * 1991-03-11 2001-05-10 Mips Tech Inc Rückwärts kompatible Rechnerarchitektur mit erweiterten Wortbreiten und Adressraum
US5327566A (en) * 1991-07-12 1994-07-05 Hewlett Packard Company Stage saving and restoring hardware mechanism
US5574928A (en) * 1993-10-29 1996-11-12 Advanced Micro Devices, Inc. Mixed integer/floating point processor core for a superscalar microprocessor with a plurality of operand buses for transferring operand segments
GB2284492B (en) * 1993-12-06 1998-05-13 Graeme Roy Smith Improvements to computer control units
US5481684A (en) * 1994-01-11 1996-01-02 Exponential Technology, Inc. Emulating operating system calls in an alternate instruction set using a modified code segment descriptor
US5481693A (en) * 1994-07-20 1996-01-02 Exponential Technology, Inc. Shared register architecture for a dual-instruction-set CPU
US5598546A (en) * 1994-08-31 1997-01-28 Exponential Technology, Inc. Dual-architecture super-scalar pipeline

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102314333A (zh) * 2010-06-22 2012-01-11 国际商业机器公司 用于扩展可用于指令的通用寄存器的数目的方法和系统
CN102360281A (zh) * 2011-10-31 2012-02-22 中国人民解放军国防科学技术大学 用于微处理器的多功能定点mac运算装置
CN102360281B (zh) * 2011-10-31 2014-04-02 中国人民解放军国防科学技术大学 用于微处理器的多功能定点乘加单元mac运算装置
CN104991759A (zh) * 2015-07-28 2015-10-21 成都腾悦科技有限公司 一种可变指令集微处理器及其实现方法
WO2017016232A1 (zh) * 2015-07-28 2017-02-02 成都腾悦科技有限公司 一种可变指令集微处理器及其实现方法
CN104991759B (zh) * 2015-07-28 2018-01-16 成都腾悦科技有限公司 一种可变指令集微处理器及其实现方法
CN111090465A (zh) * 2019-12-19 2020-05-01 四川长虹电器股份有限公司 一种rv32ic指令集的译码系统及其译码方法

Also Published As

Publication number Publication date
TW242184B (en) 1995-03-01
CN1395168A (zh) 2003-02-05
EP0813144A2 (en) 1997-12-17
MY113751A (en) 2002-05-31
KR100327776B1 (ko) 2002-03-15
DE69530520T2 (de) 2003-12-24
EP0758464B1 (en) 1998-04-15
DE69502098T2 (de) 1998-08-06
GB9408765D0 (en) 1994-06-22
GB2289353B (en) 1997-08-27
EP1296225A2 (en) 2003-03-26
EP0758464A1 (en) 1997-02-19
EP0813144A3 (en) 1998-01-14
RU2137183C1 (ru) 1999-09-10
KR970703011A (ko) 1997-06-10
GB2289353A (en) 1995-11-15
CN1174313C (zh) 2004-11-03
EP1296225A3 (en) 2007-07-25
JPH09512652A (ja) 1997-12-16
JP3173793B2 (ja) 2001-06-04
JP2006079652A (ja) 2006-03-23
US5740461A (en) 1998-04-14
IN190632B (zh) 2003-08-16
KR100315739B1 (ko) 2002-02-28
DE69530520D1 (de) 2003-05-28
JP2002366348A (ja) 2002-12-20
EP0813144B1 (en) 2003-04-23
IL113153A (en) 1998-07-15
WO1995030188A1 (en) 1995-11-09
DE69502098D1 (de) 1998-05-20
CN1089460C (zh) 2002-08-21
IL113153A0 (en) 1995-06-29

Similar Documents

Publication Publication Date Title
CN1089460C (zh) 多指令集的数据处理
CN1088214C (zh) 用多指令集处理数据的器件和方法
CN1204490C (zh) 高数据密度risc处理器
CN1129843C (zh) 使用组合的数据处理器系统和指令系统
US7979676B2 (en) Method for instructing a data processor to process data
US6408382B1 (en) Methods and apparatus for abbreviated instruction sets adaptable to configurable processor architecture
CN1121014C (zh) 具有risc结构的八位微控制器
US7669041B2 (en) Instruction-parallel processor with zero-performance-overhead operand copy
US8386754B2 (en) Renaming wide register source operand with plural short register source operands for select instructions to detect dependency fast with existing mechanism
US9092215B2 (en) Mapping between registers used by multiple instruction sets
CN1095116C (zh) 执行两种指令长度代码的处理机及其指令码输入装置
US20060174089A1 (en) Method and apparatus for embedding wide instruction words in a fixed-length instruction set architecture
US7574583B2 (en) Processing apparatus including dedicated issue slot for loading immediate value, and processing method therefor
CN1431584A (zh) 延伸微处理器数据模式的装置及方法
CN1309347A (zh) 具有改良的指令集体系结构的微处理器
US7313671B2 (en) Processing apparatus, processing method and compiler
US7552313B2 (en) VLIW digital signal processor for achieving improved binary translation
CN1016383B (zh) 基于操作数长度和对位的微码转移
US6542989B2 (en) Single instruction having op code and stack control field
US20110238961A1 (en) System and method of instruction modification
WO2000077622A1 (en) Data processor comprising a register stack
CN1799025A (zh) 移动位字段的方法和程控单元
Jeroen van Straten ρ-VEX user manual

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CX01 Expiry of patent term

Expiration termination date: 20150215

Granted publication date: 20020821