CN1089460C - 多指令集的数据处理 - Google Patents
多指令集的数据处理 Download PDFInfo
- Publication number
- CN1089460C CN1089460C CN95192870A CN95192870A CN1089460C CN 1089460 C CN1089460 C CN 1089460C CN 95192870 A CN95192870 A CN 95192870A CN 95192870 A CN95192870 A CN 95192870A CN 1089460 C CN1089460 C CN 1089460C
- Authority
- CN
- China
- Prior art keywords
- instruction set
- instruction
- bit
- bit data
- word
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
- 238000012545 processing Methods 0.000 title claims abstract description 24
- 238000000034 method Methods 0.000 claims description 17
- 230000004044 response Effects 0.000 claims description 4
- 230000000631 nonopiate Effects 0.000 claims description 3
- 101100494729 Syncephalastrum racemosum SPSR gene Proteins 0.000 claims 1
- 230000037361 pathway Effects 0.000 abstract 1
- 238000013507 mapping Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 6
- 238000013461 design Methods 0.000 description 6
- 238000012546 transfer Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 210000003813 thumb Anatomy 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 210000003811 finger Anatomy 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
Images
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
-
- 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/3818—Decoding for concurrent execution
- G06F9/3822—Parallel decoding, e.g. parallel decode units
-
- 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/30094—Condition code generation, e.g. Carry, Zero flag
-
- 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
-
- 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
- G06F9/30174—Runtime instruction translation, e.g. macros for non-native instruction set, e.g. Javabyte, legacy code
-
- 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/30189—Instruction operation extension or modification according to execution mode, e.g. mode flag
-
- 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)
- 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 Machines Corporation)制造的IBM370计算机包括了一个可写的控制存储器,使用该控制存储器,用户可以建立它们自己的指令集,将指令程序字与所希望的核心处理器的不同部分的操作进行映射。尽管这一方案提供了很好的灵活性,但难以产生高速度的操作,而且可写的控制存储器占据了很大的集成电路区域,因此有些不利。而且,设计一个有效的所说的指令集对用户来说是一个很重的负担。
欧洲公布专利申请EP-A-O 169565公开了一种具有16位核心处理器的***。在第一种模式中,***运行在16位的指令上,这种指令指定16位的数据处理操作。在第二种模式中,***运行在8位的指令上,这种指令指定8位的数据处理操作。使用一个编程的存贮器将8位的指令映射到一个16位的指令,然后将之译码。这个被译码的16位的指令然后执行指定的8位的数据处理操作。
众所周知,在提供的***中,一个指令集具有不同长度的程序指令字。这一方案的一个例子是由MOS工艺制造的6502微处理器。这一处理器使用8位的操作码,操作码后跟可变数目的操作数字节。在确定操作数和执行指令之前首先要对操作码进行译码。与固定的已知长度的程序指令字(即操作码和任意操作数)相比,这就要求多次存储器访问,而且是对***性能的很大限制。
IBM技术公告简报(IBM Technical Disclosure Bulletin)(Vol.15.NO.3.August 1972,page 920)公布了一种将17位指令转化为20位的指令的***。
欧洲公布专利申请EP-A-O 199173公布了一种包括一个指令译码器的微处理器。
发明内容
从本发明提供的处理数据的装置可看到其一个特点,所述装置包括:
一个核心处理器,它具有N位数据通路,并且响应多个核心控制信号;
第一译码装置,它用于对第一永久指令集(permanent instruction set)的指定N位数据处理操作的X位程序指令字进行译码以产生所述核心控制信号,来触发利用所述N位数据通路的处理;
第二译码装置,它用于对第二永久指令集(permanent instruction set)的Y位程序指令字进行译码以产生所述核心控制信号,来触发利用所述N位数据通路的处理,Y小于X;以及
一个指令集切换装置,它用于在接收到程序指令字时选择使用所述第一译码装置的一第一处理模式,或者在接收到程序指令字时选择使用所述第二译码装置的一第二处理模式,
其特征在于,
所述Y位程序指令字指定利用所述N位的数据通路的N位数据处理操作。
本发明认识到,在一个具有一宽标准的X位指令集和N位数据通路的***中(比如一个操作在32位的数据通路的32位的指令集),在通常的编程中并未充分用到X位指令集的性能。这一情况的一个例子就是32位的转移指令。该转移指令可能使用很少用到的32兆字节的范围。从而,在大多数情况下,这种转移仅用于少数指令,并且32位指令的大多数位不携带任何信息。大多数使用32位指令集的程序通常具省低的代码密度,并且使用的程序存储空间多于所需要的。
本发明通过提供一个单独的永久的Y位指令集而解决这一问题,其中Y小于X,该指令集仍然操作在全N位数据通路上。因此,使用到了N位的数据通路的性能,同时对于那些不要求该X位指令集的复杂性的应用来说,其代码密度得到提高。在具有两个永久指令集的装置中存在一个协同作用。通过使用制造商有效地实现的两个指令集(在诸如相对定时十分关键的RISC处理器的高性能***中,这很重要)以及不牺牲N位数据通路的使用,允许使用者具有一种灵活性,以改变他们所使用的指令集来适应程序的环境。
这种结构的另一优点是,在使用Y位指令集运行时,由于在每单位时间中运行较少字节的程序代码,因此对于存储程序码的存储***的数据传输能力的要求就不十分高。这样就降低了复杂性及其成本。
本发明也朝着与本领域的正常趋势相反的方向发展。这一趋势就是随着每一代新处理器的出现,要将更多的指令加入到该指令集中,为了适应这种要求,该指令集变得更宽了。相反,本发明是以一宽的复杂的指令集开始的,然后添加一较狭窄的指令集(以较少的空间用于大量的指令)以用于不要求宽指令集的整个范围的情况。
应该认识到,第一指令集和第二指令集可以完全是独立的。然而,在本发明的较佳实施例中,所述第二指令集提供了所述第一指令集所提供的操作的一个子集。
只要第二指令集是第一指令集的一个子集,由于核心处理器的硬件单元可以实现得更易于适应两个指令集,因此就允许更高效的操作。
当将一个增加了位长度的程序指令字的一个指令集已添加到一个现有的程序指令集中时,有可能要求来自两个指令集的程序指令字是正交的。然而,该指令集切换装置使得可以避免这一限制,而且允许***中所述第二指令集非正交于所述第一指令集。
自由使用非正交指令集使得***设计者的任务变得容易了,而且实现了本发明的另一特色,即能够更高效地处理指令集的设计。
该指令集切换装置可以是一个由手动干预进行控制的硬件型切换设备。然而,在本发明的较佳实施例中,所述指令集切换装置由响应一个指令集标志的装置构成,在用户的程序控制下,所述指令集标志是可设置的。
在软件控制下,能够使用指令集切换装置在第一指令集和第二指令集之间进行切换是相当有益的。比如,对于大多数程序,为了提高代码密度程序员可以使用具有Y位程序指令字的第二指令集,而对于那些要求利用第一指令集的增加的能力和复杂性的程序的一小部分可以暂时切换到具有X位程序指令字的第一指令集。
对两个独立的指令集的支持可能会对***引入另外的复杂性。在本发明的较佳实施例中,所述核心处理器包括一个程序状态寄存器(用于存储当前适当的处理状态数据)和一个保存程序状态寄存器,当出现一个程序异常而引起执行一个异常处理程序时所述保存程序状态寄存器用于存储与一个主程序有关的处理状态数据,所述指令集标志是所述处理状态数据的一部分。
将指令集标志作为编程状态数据的一部分就保证了当发生一个异常时对该标志进行保存。以此方式,一个异常处理程序就能够处理两个处理模式的异常,并且允许它访问在保存程序状态寄存器中的所保存的指令集标志(如果在处理该异常中它十分重要的话)。而且,使得该异常处理程序能够使用任一指令集以提高设计约束所要求的速度或代码密度。
为了处理不同指令集的不同的位长度,本发明的较佳实施例在所述的核心处理器中包括一个程序计数器寄存器和一个程序计数器递增器,后者用于对存储在所述程序计数器寄存器中的程序计数器值进行递增以指向下一个程序指令字,所述程序计数器递增器在所述第一处理模式而不是在所述第二处理模式中使用一个不同的递增步长。
将会理解到,第二指令集的较短的程序指令字不可能包含与第一指令集同样多的信息。为了适应这一情况,可通过减少操作数的范围节省第二指令集中的空间,其中操作数的范围在一个程序指令字内被指定。
在本发明的较佳实施例中,所述核心处理器通过一Y位数据总线连接到一个存储***,从而所述第二指令集的程序指令字只要求一个取周期,所述第一指令集的程序指令字要求多个取周期。
使用Y位的数据总线和存储***在使得对于在至少第二指令集的每一程序指令字只需一个取周期的同时,也使得要建造的***的总体开销较少。
第一译码装置和第二译码装置可以完全是独立的。然而在本发明的较佳实施例中,所述第二译码装置重新使用了所述第一译码装置的至少一部分。
第二译码装置对于第一译码装置的至少一部分的重新使用减少了电路的整体面积。而且,由于第一指令集通常不如第二指令集复杂,而且驱动同样的核心处理器,因此第二译码装置的相当多的部分仍有可能重新使用。
从本发明提供的处理数据的一种方法可以看到其另一特色,所述方法包括以下步骤:
对于具有N位数据通路以及响应多个核心控制信号的一个核心处理器,选择第一处理模式或第二处理模式;
在所述第一处理模式中,对第一永久指令集(permanent instruction set)的指定N位数据处理操作的X位程序指令字进行译码以产生所述核心控制信号,来触发利用所述N位数据通路的处理;以及
在所述第二处理模式中,对第二永久指令集(permanent instruction set)的Y位程序指令字进行译码以产生所述核心控制信号,来触发利用所述N位数据通路的处理,Y小于X,
其特征在于,
所述Y位程序指令字指定利用所述N位的数据通路的N位数据处理操作。
附图说明
结合附图将以举例的方式对本发明的一个较佳实施例进行描述,其中:
图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中被示意为一个方框。然而,为了处理一个以上的指令集,指令译码器18具有更为复杂的结构,这将结合图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机器有限公司(AdvancedRISC 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=O,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(NOY),LSL,LSR,ASR,ROR
丢失ADC,SBC,MULL
如ARM所定义的那样,用零进行移位并且大于31
8个特殊操作码,LO指定寄存器0-7,HI指定寄存器8-15SPECIAL是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.一种处理数据的装置,所述装置包括:
一个核心处理器(2),它具有N位数据通路,并且响应多个核心控制信号(32);
第一译码装置(30),它用于对第一永久指令集的指定N位数据处理操作的X位程序指令字进行译码以产生所述核心控制信号,来触发利用所述N位数据通路的处理;
第二译码装置(36),它用于对第二永久指令集的Y位程序指令字进行译码以产生所述核心控制信号,来触发利用所述N位数据通路的处理,Y小于X;以及
一个指令集切换装置,它用于在接收到程序指令字时选择使用所述第一译码装置的一第一处理模式,或者在接收到程序指令字时选择使用所述第二译码装置的一第二处理模式,
其特征在于,
所述Y位程序指令字指定利用所述N位的数据通路的N位数据处理操作。
2.根据权利要求1所述的装置,其特征在于,所述第二指令集提供了由所述第一指令集提供的操作的一个子集。
3.根据权利要求1或2所述的装置,其特征在于,所述第二指令集非正交于所述第一指令集。
4.根据权利要求1或2所述的装置,其特征在于,所述指令集切换装置包括响应一个指令集标志(T)的装置,所述指令集标志可由用户程序控制进行置位。
5.根据权利要求4所述的装置,其特征在于,所述核心处理器包括一个用于存储当前适当的处理状态数据的程序状态寄存器(CPSR)以及一个保存程序状态寄存器(SPSR),在发生一个程序异常引起一个异常处理程序执行时,所述保存程序状态寄存器用于存储与一个主程序有关的处理状态数据,所述指令集标志(T)是所述处理状态数据的一部分。
6.根据权利要求1或2所述的装置,其特征在于,所述核心处理器包括一个程序计数器寄存器(22)和一个程序计数器递增器(24),后者用于递增存储在所述程序计数器寄存器中的一个程序计数器值,以指向下一程序指令字,所述程序计数器递增器在所述第一处理模式中而不是在所述第二处理模式中应用一个不同的递增步长。
7.根据权利要求1或2所述的装置,其特征在于,与所述第一指令集的一个对应的程序指令字相比,所述第二指令集的至少一个程序指令字具有一个减少的操作数范围。
8.根据权利要求1或2所述的装置,其特征在于,所述核心处理器通过一个Y位数据总线连接到一个存储***(4),使得所述第二指令集的程序指令字需要一个取周期,而所述第一指令集的程序指令字需要多个取周期。
9.根据权利要求1或2所述的装置,其特征在于,所述第二译码装置重新使用所述第一译码装置的至少一部分。
10.根据权利要求1或2所述的装置,其特征在于,所述装置是一个集成电路。
11.一种处理数据的方法,所述方法包括以下步骤:
对于具有N位数据通路以及响应多个核心控制信号的一个核心处理器(2),选择第一处理模式或第二处理模式;
在所述第一处理模式中,对第一永久指令集的指定N位数据处理操作的X位程序指令字进行译码以产生所述核心控制信号,来触发利用所述N位数据通路的处理;以及
在所述第二处理模式中,对第二永久指令集的Y位程序指令字进行译码以产生所述核心控制信号,来触发利用所述N位数据通路的处理,Y小于X,
其特征在于,
所述Y位程序指令字指定利用所述N位的数据通路的N位数据处理操作。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB9408765.7 | 1994-05-03 | ||
GB9408765A GB2289353B (en) | 1994-05-03 | 1994-05-03 | Data processing with multiple instruction sets |
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 CN1147307A (zh) | 1997-04-09 |
CN1089460C true 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) |
Families Citing this family (86)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2307072B (en) | 1994-06-10 | 1998-05-13 | Advanced Risc Mach Ltd | Interoperability with multiple instruction sets |
US5867726A (en) * | 1995-05-02 | 1999-02-02 | Hitachi, Ltd. | Microcomputer |
US5774686A (en) * | 1995-06-07 | 1998-06-30 | Intel Corporation | Method and apparatus for providing two system architectures in a processor |
US6408386B1 (en) | 1995-06-07 | 2002-06-18 | Intel Corporation | Method and apparatus for providing event handling functionality in a computer system |
US5867681A (en) * | 1996-05-23 | 1999-02-02 | Lsi Logic Corporation | Microprocessor having register dependent immediate decompression |
JP2000512409A (ja) * | 1996-06-10 | 2000-09-19 | エル エス アイ ロジック コーポレーション | 可変長圧縮命令セットから命令を検出し及び伸張する装置ならびに方法 |
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 |
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 |
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 |
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 |
EP1050796A1 (en) * | 1999-05-03 | 2000-11-08 | STMicroelectronics S.A. | A decode unit and method of decoding |
EP1050798A1 (en) * | 1999-05-03 | 2000-11-08 | STMicroelectronics SA | Decoding instructions |
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 |
US20020069402A1 (en) * | 2000-10-05 | 2002-06-06 | Nevill Edward Colles | Scheduling control within a system having mixed hardware and software based instruction execution |
GB2367653B (en) | 2000-10-05 | 2004-10-20 | Advanced Risc Mach Ltd | Restarting translated instructions |
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 |
CN1871580A (zh) * | 2003-10-24 | 2006-11-29 | 密克罗奇普技术公司 | 在中央处理器中用于交替指令集的方法和*** |
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 | 삼성전자주식회사 | 버스 시스템 및 버스 중재 방법 |
US7975131B2 (en) * | 2005-12-23 | 2011-07-05 | Koninklijke Kpn N.V. | Processor lock |
US8832679B2 (en) * | 2007-08-28 | 2014-09-09 | Red Hat, Inc. | Registration process for determining compatibility with 32-bit or 64-bit software |
US9652210B2 (en) * | 2007-08-28 | 2017-05-16 | Red Hat, Inc. | Provisioning a device with multiple bit-size versions of a software component |
US8037286B2 (en) * | 2008-01-23 | 2011-10-11 | Arm Limited | Data processing apparatus and method for instruction pre-decoding |
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 |
US8347067B2 (en) * | 2008-01-23 | 2013-01-01 | Arm Limited | Instruction pre-decoding of multiple instruction sets |
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 | 华为技术有限公司 | 一种数据处理方法及***以及相关设备 |
US8914619B2 (en) * | 2010-06-22 | 2014-12-16 | International Business Machines Corporation | High-word facility for extending the number of general purpose registers available to instructions |
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. |
CN102360281B (zh) * | 2011-10-31 | 2014-04-02 | 中国人民解放军国防科学技术大学 | 用于微处理器的多功能定点乘加单元mac运算装置 |
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 |
US9582295B2 (en) * | 2014-03-18 | 2017-02-28 | International Business Machines Corporation | Architectural mode configuration |
US9916185B2 (en) | 2014-03-18 | 2018-03-13 | International Business Machines Corporation | Managing processing associated with selected architectural facilities |
KR102180972B1 (ko) * | 2014-04-23 | 2020-11-20 | 에스케이하이닉스 주식회사 | 메모리 컨트롤 유닛 및 그것을 포함하는 데이터 저장 장치 |
CN104991759B (zh) * | 2015-07-28 | 2018-01-16 | 成都腾悦科技有限公司 | 一种可变指令集微处理器及其实现方法 |
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 |
CN111090465B (zh) * | 2019-12-19 | 2022-08-19 | 四川长虹电器股份有限公司 | 一种rv32ic指令集的译码***及其译码方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0169565A2 (en) * | 1984-07-25 | 1986-01-29 | Nec Corporation | Microprocessor compatible with any software represented by different types of instruction formats |
EP0199173A2 (en) * | 1985-04-08 | 1986-10-29 | Hitachi, Ltd. | Data processing system |
Family Cites Families (16)
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 |
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 |
DE69032812T2 (de) * | 1989-07-07 | 1999-04-29 | Hitachi, Ltd., Tokio/Tokyo | Vorrichtung und Verfahren zur parallelen Verarbeitung |
JPH0476626A (ja) * | 1990-07-13 | 1992-03-11 | Toshiba Corp | マイクロコンピュータ |
EP0871108B1 (en) * | 1991-03-11 | 2000-09-13 | MIPS Technologies, Inc. | Backward-compatible computer architecture with extended word size and address space |
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 |
-
1994
- 1994-05-03 GB GB9408765A patent/GB2289353B/en not_active Expired - Lifetime
- 1994-09-03 TW TW083108133A patent/TW242184B/zh not_active IP Right Cessation
-
1995
- 1995-02-13 IN IN219DE1995 patent/IN190632B/en unknown
- 1995-02-15 JP JP52804395A patent/JP3173793B2/ja not_active Expired - Lifetime
- 1995-02-15 CN CN95192870A patent/CN1089460C/zh not_active Expired - Lifetime
- 1995-02-15 DE DE69530520T patent/DE69530520T2/de not_active Expired - Lifetime
- 1995-02-15 EP EP97202499A patent/EP0813144B1/en not_active Expired - Lifetime
- 1995-02-15 KR KR1020017002524A patent/KR100327776B1/ko active IP Right Grant
- 1995-02-15 KR KR1019960706181A patent/KR100315739B1/ko active IP Right Grant
- 1995-02-15 EP EP02080029A patent/EP1296225A3/en not_active Withdrawn
- 1995-02-15 WO PCT/GB1995/000315 patent/WO1995030188A1/en active IP Right Grant
- 1995-02-15 EP EP95908327A patent/EP0758464B1/en not_active Expired - Lifetime
- 1995-02-15 RU RU96118491A patent/RU2137183C1/ru not_active IP Right Cessation
- 1995-02-15 DE DE69502098T patent/DE69502098T2/de not_active Expired - Lifetime
- 1995-02-27 MY MYPI95000491A patent/MY113751A/en unknown
- 1995-03-27 IL IL11315395A patent/IL113153A/en not_active IP Right Cessation
-
1996
- 1996-10-22 US US08/735,046 patent/US5740461A/en not_active Expired - Lifetime
-
1999
- 1999-11-02 CN CNB011435283A patent/CN1174313C/zh not_active Expired - Lifetime
-
2000
- 2000-11-30 JP JP2000365503A patent/JP2002366348A/ja active Pending
-
2005
- 2005-12-05 JP JP2005350864A patent/JP2006079652A/ja active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0169565A2 (en) * | 1984-07-25 | 1986-01-29 | Nec Corporation | Microprocessor compatible with any software represented by different types of instruction formats |
EP0199173A2 (en) * | 1985-04-08 | 1986-10-29 | Hitachi, Ltd. | Data processing system |
Non-Patent Citations (2)
Title |
---|
IBM TECHNICAL DISCLOSURE BULLETIN (VOL.17,NO .11) 1975.4.1 P.F.SMITH EXTENDED CONTROL FOR MICROPROCESSORS * |
IBM TECHNICAL DISCLOSURE BULLETIN(VOL.15,NO 3 1972.8.1 .C.KEMP INSTRUCTION TRANSLATOR * |
Also Published As
Publication number | Publication date |
---|---|
DE69530520T2 (de) | 2003-12-24 |
WO1995030188A1 (en) | 1995-11-09 |
EP0813144A2 (en) | 1997-12-17 |
GB9408765D0 (en) | 1994-06-22 |
DE69502098T2 (de) | 1998-08-06 |
CN1395168A (zh) | 2003-02-05 |
KR100327776B1 (ko) | 2002-03-15 |
JPH09512652A (ja) | 1997-12-16 |
EP1296225A3 (en) | 2007-07-25 |
IN190632B (zh) | 2003-08-16 |
KR970703011A (ko) | 1997-06-10 |
DE69530520D1 (de) | 2003-05-28 |
EP0758464B1 (en) | 1998-04-15 |
EP0758464A1 (en) | 1997-02-19 |
JP3173793B2 (ja) | 2001-06-04 |
IL113153A0 (en) | 1995-06-29 |
IL113153A (en) | 1998-07-15 |
MY113751A (en) | 2002-05-31 |
EP1296225A2 (en) | 2003-03-26 |
CN1147307A (zh) | 1997-04-09 |
KR100315739B1 (ko) | 2002-02-28 |
JP2006079652A (ja) | 2006-03-23 |
GB2289353A (en) | 1995-11-15 |
DE69502098D1 (de) | 1998-05-20 |
JP2002366348A (ja) | 2002-12-20 |
GB2289353B (en) | 1997-08-27 |
EP0813144A3 (en) | 1998-01-14 |
US5740461A (en) | 1998-04-14 |
EP0813144B1 (en) | 2003-04-23 |
CN1174313C (zh) | 2004-11-03 |
TW242184B (en) | 1995-03-01 |
RU2137183C1 (ru) | 1999-09-10 |
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 | |
CN1121014C (zh) | 具有risc结构的八位微控制器 | |
CN1194292C (zh) | 具有改良的指令集体系结构的微处理器 | |
US8386754B2 (en) | Renaming wide register source operand with plural short register source operands for select instructions to detect dependency fast with existing mechanism | |
US7669041B2 (en) | Instruction-parallel processor with zero-performance-overhead operand copy | |
JP6807383B2 (ja) | 転送プレフィックス命令 | |
CN1095116C (zh) | 执行两种指令长度代码的处理机及其指令码输入装置 | |
USRE40509E1 (en) | Methods and apparatus for abbreviated instruction sets adaptable to configurable processor architecture | |
US20060174089A1 (en) | Method and apparatus for embedding wide instruction words in a fixed-length instruction set architecture | |
CN1218243C (zh) | 延伸微处理器数据模式的装置及方法 | |
CN1440528A (zh) | 寄存器中堆栈操作数的存储 | |
CN1513137A (zh) | 使用多重指令集的数据处理 | |
CN1570870A (zh) | 终极管道和最优重排技术 | |
CN1788253A (zh) | 数据处理***内的断定指令 | |
CN1629801A (zh) | 产生早期指令结果的管线式微处理器、装置以及方法 | |
EP1680735B1 (en) | Apparatus and method that accomodate multiple instruction sets and multiple decode modes | |
CN1016383B (zh) | 基于操作数长度和对位的微码转移 | |
CN1236455A (zh) | 具有risc结构的八位微控制器 | |
US6542989B2 (en) | Single instruction having op code and stack control field | |
CN1068445C (zh) | 指令调度方法和寄存器竞争检查方法 | |
CN1959630A (zh) | 微处理器 |
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 |