CN1250906A - 使用组合的数据处理器系统和指令系统 - Google Patents

使用组合的数据处理器系统和指令系统 Download PDF

Info

Publication number
CN1250906A
CN1250906A CN99121094A CN99121094A CN1250906A CN 1250906 A CN1250906 A CN 1250906A CN 99121094 A CN99121094 A CN 99121094A CN 99121094 A CN99121094 A CN 99121094A CN 1250906 A CN1250906 A CN 1250906A
Authority
CN
China
Prior art keywords
instruction
mentioned
territory
prefix
data processor
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
CN99121094A
Other languages
English (en)
Other versions
CN1129843C (zh
Inventor
兹维卡·罗森申
亚科布·托卡尔
尤里·达扬
琼·鲍尔·格尔根
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.)
NXP USA Inc
Original Assignee
Motorola Inc
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 Motorola Inc filed Critical Motorola Inc
Publication of CN1250906A publication Critical patent/CN1250906A/zh
Application granted granted Critical
Publication of CN1129843C publication Critical patent/CN1129843C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related 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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative instruction execution
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30018Bit or string instructions
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • G06F9/30038Instructions to perform operations on packed data, e.g. vector, tile or matrix operations using a mask
    • 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/30185Instruction operation extension or modification according to one or more bits in the instruction, e.g. prefix, sub-opcode
    • 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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3853Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)
  • Multi Processors (AREA)
  • Hardware Redundancy (AREA)
  • Electrophonic Musical Instruments (AREA)

Abstract

一个控制一个数据处理器的系统,该系统包含一个指令根和一个指令前缀,该指令根具有一个用于选择由上述数据处理器执行的操作的操作选择域。该指令前缀具有一个域组中选出的域,该域组包括一个用于选择数据处理器执行上述选择的操作的条件的条件执行域,一个调整选择的操作以便通过一个具有不同长度的操作数加以执行的操作数长度调整域,一个选择指令组长度的指令组域,和一个选择上述指令前缀长度的前缀长度选择域,其中指令组包含指令根。也公开了一个对应于这个指令系统的数据处理器系统。还公开了一个静态组合不使用一个指令前缀的指令的指令系统。

Description

使用组合的数据处理器系统和指令系统
本发明涉及数据处理器,更具体地讲,是涉及对数据处理器指令进行组合(grouping)的方法,装置和一个配合使用的指令系统。
有许多不同种类的数据处理器可以使用。某些数据处理器具有多个可以并行使用的执行单元。这种数据处理器的指令调度可以是动态或静态的。两种系统根据一个顺序指令流进行操作,使用包含优化汇编器和编译器的常规程序预处理软件工具准备该指令流以便执行。通常,动态系统在数据处理器中需要很多的硬件,而静态系统需要更复杂的程序预处理软件技术。但共同的目标是识别并发掘指令流中固有的指令级并发成份,并且保持执行的顺序特性。
在动态指令调度系统中,数据处理器中的特殊硬件在顺序指令流中维护一个可视的滑窗。在各个指令分配周期中,调度硬件遵照指令顺序约束尽可能多地选择执行单元和其它系统资源能够容纳的可见指令。附加硬件记录扫过的指令,并且根据系统状况相应地终止或收回指令。动态调度数据处理器的一个例子是Motorola MPC604微处理器。
在静态指令调度系统中,在产生并且优化顺序指令流后,程序预处理软件工具重新检查该指令流,并且根据描述硬件配置和目标数据处理器操作特性的信息把那些能够以并行方式安全地执行的指令组合到一起。由于预测某些诸如间接或计算存储器索引的程序构造的动作比较困难,所以不能预先保证调度是最优的。为了能够适应这种不可预测的构造,通常会提供某种硬件互锁装置。静态调度数据处理器的一个例子是多流程跟踪器7/14/28。用于跟踪机的编译器通常被称作Bulldog编译器,这个名字是由其在耶鲁大学的原作者命名的。
在组合用于跟踪器,即一个极长指令字(VLIW)机的指令时,Bulldog编译器被约束到一个具有7,14或28固定功能指令时间片时,任何编译器未找到有效操作的指令时间片均被简单地填上一个非操作(NOP)指令(即全零)。不是在存储器中存储这些无用的NOP,而是编译器压出NOP并且先行找出有用的指令字集,该指令字集的特征为各个VLIW具有一个位映射,该映射指示被压出的NOP(或者,从相反的角度看,有用的指令字)的位置。在预取时刻,跟踪器高速缓存/存储器控制器使用位映射字中的信息重新产生NOP以便高速缓存被填上完全充满的VLIW。一旦在预取期间重新产生了对应的VLIW,则抛弃位映射,并且甚至没有那部分指令调度或执行硬件部分知道其存在。尽管这种机制使存储器中每个VLIW的逻辑长度增加了一个字,但由于编译器没有能力用有用的指令字填充每个VLIW中的所有指令时间片,通常能够减少存储的VLIW的物理长度。另一方面,对于良好设计的代码,这种机制会显著增加存储器中的实际代码长度。
静态调度数据处理器一个更新的例子是德州仪器的TMS320C62xx微处理器家族(‘C62)。在‘C62中,每个指令字包含一个专用的“P”位,如果被程序预处理软件工具设置,该位向调度硬件指示可以并行调度指令字和下面的指令字。这样,一个同时可调度的“执行包”包括具有一个被清除P位的一个指令字和多到最大数量的,均具有一个被设置P位的前导指令字。美国专利第5,560,028号公开了这种机制的一个变种,其中并行调度控制位的控制范围在各组并行可调度指令字之间切换。在上述静态调度系统中,通过向组合功能指定各个指令中的一个位,有很大一部分指令不可用于其它功能,例如对数据处理操作进行编码。
利用这种多道执行数据处理器可以额外增加处理数据和指令的执行速度。但由于使用多道执行单元增加了数据处理器结构的复杂度,所以计算机指令代码长度会增加。在许多应用中,由于会增加费用和额外存储器所需的空间,所以增加代码长度是不期望的。一个这样的应用是一类被称作数字信号处理器(DSP)的数据处理器。DSP被应用于许多应用中,例如蜂窝电话,在这种应用中,一个基本要求是小尺寸和低功率上。期望在不显著增加指令代码长度的情况下,多道执行单元数据处理器提供更快的指令处理。
相应地,需要组合计算指令的改进方法和装置,以及改进的指令系统。
虽然在所附权利要求书中具体指出了本发明,但在下面结合附图的详细描述中公开了本发明的其它特性,其中:
图1是关于数据处理系统的一个实施例的模块图。
图2是图解图1中系统的核心中的寄存器的图例。
图3是图解图1中系统的,具有一个单独乘法和累加单元的一部分核心的一个具体实施例的图例。
图4是图解图1中系统的,具有两个乘法和累加单元的一部分核心的另一个具体实施例的图例。
图5是图解图1中系统的,具有四个乘法和累加单元的一部分核心的另一个具体实施例的图例。
图6是图解图3-5的乘法和累加单元的一个具体实施例的图例。
图7是图解图1的位域和逻辑单元的一个具体实施例的图例。
图8是图解图1的系统内地址产生单元的一个具体实施例的图例。
图9是图解管道传输图1系统所执行的指令的方法的一个具体实施例的图例。
图10是图解图1的系统所执行的一组预取计算指令和一组组合计算指令的图例。
图11是图解图1的系统核心的前缀调度和指令调度操作的图例。
图12-17图解了可以用于图1的系统的一个指令系统的各种实施例。
图18是图解使用静态组合的一个指令系统的图例。
图19是图解图18的指令系统中一个类型子域的不同值的图例。
通常,本发明的一个方面涉及一个指令系统,该系统包含一个指令根和一个指令前缀,该指令根具有一个用于选择由一个数据处理器执行的操作的操作选择域。前缀具有一个可以是下面一个或更多个的域:一个用于选择数据处理器执行选择的操作的条件的条件执行域,一个调整选择的操作以便通过一个具有不同长度的操作数加以执行的操作数长度调整域,一个选择指令组长度的指令组域,和一个选择指令前缀长度的前缀长度选择域。
根据本发明的另一方面,提供一个在具有多个寄存器的数据处理器中使用的指令系统。该指令系统包含一个指令根,该指令根具有一个宽度为m,用于选择数据处理器的2m个寄存器中的一个的寄存器选择域,和一个指令前缀,该前缀具有一个宽度为n,用于扩展上述寄存器选择域的宽度以便选择上述数据处理器中2m+n个寄存器中的一个的寄存器选择扩展域。
根据本发明的另一个方面,提供一个在数据处理器中使用的指令系统。该数据处理器适于顺序执行第一和第二种操作,并且以并行方式执行多个第一种操作。该指令系统具有一个用于选择数据处理器执行的第一和第二种操作中的一个的操作选择域。操作选择域具有一个宽度为n的类型子域,对该子域赋值如下:在顺序执行上述第一种操作的情况下取一个第一值;在并行执行上述第一种操作的情况下取一个第二值;在执行上述第二种操作的情况下取从剩余(2n-2)个值中选择的一个第三值。在一个具体实施例中,在顺序执行第二种操作的一个选定指令时类型子域可以被赋上第二值。
根据本发明的另一个方面,提供了一个控制一个数据处理器顺序执行第一和第二种操作并且以并行方式执行多个上述第一种操作的系统。该系统包含一个指令,该指令具有一个用于选择数据处理器执行的第一和第二种操作中的一个的操作选择域。操作选择域具有一个类型子域。针对顺序执行的上述第一类型指令,类型子域具有一个第一值,针对并行执行的上述第一类型指令和顺序执行的一个第二类型选定指令,类型子域具有一个第二值,并且在其它情况下具有一个第三值。
应当注意,在详细描述和附图中使用的具体术语,表示和公开的具体结构和操作细节只是为了说明并且不会以任何方式限制如所附权利要求书中所述的发明的范围。
参照图1,其中图解了处理系统10的一个实施例。处理系统10包含一个处理器核心12,一个系统接口单元(SIU)14,一个直接存储器存取单元16,一个诸如串行通信端口或定时器的外设18,内部存储器模块20,22和一个外部存储器接口模块19。处理系统10也可以被称作数据处理器。
处理器核心12包含一个地址寄存器队列26,一个程序序列发生器24,数据寄存器队列28,29,地址算术逻辑单元30(也称作地址产生单元(AGU)),乘法和累加(MAC)单元(32)(也称作数据算术逻辑单元(DALU)),一个位域和逻辑单元34,和一个可选的指令扩充加速器36。地址ALU 30通过内部总线60被连接到地址寄存器队列26。乘法和累加单元32通过内部总线62被连接到数据寄存器队列28,29。程序序列发生器24通过指令总线44被连接到地址ALU 30,DALU 32,位域单元34和指令扩充加速器36。
系统10还包含一个程序总线38,一个第一数据总线40,一个第二数据总线42,一个外设总线88,一个直接存储器存取(DMA)总线84,和一个外部存储器接口总线102。程序总线38通过总线46被连接到程序序列发生器24,通过总线66被连接到SIU 14,通过总线72和82分别被连接到内部存储器20,22。数据总线40,42通过总线48,50被连接到地址寄存器队列26,通过总线52,54被连接到数据寄存器队列28,29,并且通过总线56,58被连接到指令扩充加速器36。数据总线40,42通过总线74-80被连接到存储器20,22。
DMA总线84通过总线90被连接到SIU 14,通过总线92被连接到DMA 16,通过总线94被连接到外设单元18,并且通过总线95和97分别被连接到存储器单元20,22。外设总线88通过总线96被连接到SIU 14,通过总线98被连接到DMA 16,并且通过总线100被连接到外设单元18。外部存储器总线102被连接到外部存储器接口模块19,并且被连接到与系统10通信的外部存储器(未示出)。在图解的实施例中,程序总线38有128位宽,并且其它的总线40,42,84和88有32位宽。
参照图2,其中公开了系统10的核心12中的寄存器的一个实施例。如图所示,地址寄存器队列26包含寄存器R0-R7,堆栈指针(SP),N0-N3,M0-M2,MCTL,SA0-SA3,LC0-LC3。程序序列发生器24包含程序计数器,状态寄存器,和操作模式与状态寄存器。数据寄存器队列28包含寄存器D0-D7,而数据寄存器队列29包含寄存器D8-D15。在一个可选的实施例中,只有一个单独的寄存器队列可被用于节省成本,例如通过一或两个MAC配置。在其它的高性能应用中,可以使用多于两个的寄存器队列。
参照图3,其中图解了一个在核心12中具有一个乘法累加器32的具体实施例。在这个实施例中,单独的MAC 32通过总线62被连接到寄存器队列28,29。位域单元34通过总线64被连接到数据寄存器队列28,29。数据寄存器队列28,29通过中间移位器/限制器模块104和总线52,54,106被连接到数据总线40,42。移位器/限制器模块104被用于把总线106上具有40位格式的数据转换成总线52,54上具有16位格式的数据。
参照图4,其中图解了一个在核心12中具有两个乘法累加器32的具体实施例。除了有两个而不是一个MAC 32之外,这个实施例与图3的实施例类似。需要一个额外的总线62把数据寄存器队列28,29连接到第二个MAC单元32。并且总线52,54是32位总线而不是16位总线以便从两个MAC传送额外的数据。类似地,图5图解了一个具有四个MAC单元32的实施例。应当理解本发明不仅限于上述示例性配置,并且不仅限于特定数量的MAC单元32和特定的结构。
参照图6,其中图解了MAC单元32的一个具体实施例。MAC单元32包含一个乘法器110和一个加法器112。乘法器110从数据寄存器队列28,29接收数据输入并且乘上数据部分111,114以产生一个被输入到加法器112的乘法输出116。加法器累加一个第二数据输入120和乘法器结果116以便产生一个被回送到数据寄存器队列28,29的累加结果122。
参照图7,其中公开了位域逻辑单元34的一个具体实施例。位域逻辑单元34包含一个移位器124,一个屏蔽位发生器126,一个逻辑单元128,和一个多路复用器129。位域和逻辑单元通过总线64接收输入并且产生一个输出,该输出是一次移位,一次诸如从输入数据中消除某些位的屏蔽操作,和/或一次诸如逻辑与,或,异或或反转操作的逻辑操作的结果。选定操作的结果是通过双向总线64向寄存器队列28,29中的一个选定寄存器回送一个40位结果。
参照图8,其中图解了地址产生单元(AGU)的一个具体实施例。AGU包含寄存器M0-M2,N0-N3,R0-R7,来自地址寄存器队列126的SP,和经过调整的控制寄存器(MCTL)。AGU还包含地址算术逻辑单元30。AGU通过寄存器26被连接到第一和第二地址总线140,142和程序地址总线138。如图8所示,ALU 30从各种寄存器接收数据,对输入的数据进行选定的算术操作,并且向选定的输出寄存器提供一个算术结果。例如,可以通过总线140输出寄存器R0中存储的一个地址。之后,寄存器R0可以被加上一个来自选定的寄存器N0的偏移并且产生的加法输出被存储在寄存器R0中。
图9图解了用于图1的系统10的管道执行方法。管道方法包含的执行步骤有程序预取200,程序获取202,调度和解码204,地址产生206和执行208。
图10图解了一个指令获取集和组合指令执行集。指令获取集210包括一个被执行的指令序列。在图解的实施例中,指令序列包含八个指令,其编号为从N到N+7。在一个硬件实现中,这个指令序列可以被实现成一或多个指令缓冲区。包括获取集210的指令在程序预处理时间被静态组合成执行集216,218和220。在图解的例子中,一个第一边界212把第一执行集216的后两个指令#N和#N+1与包括第二第二执行集218的四个指令#N+2-#N+5区分开,一个第二边界214把第二执行集218和第三执行集220的前两个指令#N+6和#N+7区分开。系统并行调度相同执行集中的各个指令。基本可以同时调度和提交一个具体执行集中的所有指令,并且在一个执行集中的各个指令具有相同周期数的某些情况下,可以在最后的执行周期结束时终止各个指令。
参照图11,其中图解了系统的一部分的一个具体实施例。该实施例图解了一个前缀调度单元222,指令210,一个指令调度模块224,各个数据算术逻辑单元(DALU)32和地址产生单元(AGU)30。前缀调度单元222,指令210和指令调度模块224可以构成程序序列发生器24。在图解的实施例中,由于有六个执行单元,在一个执行集中可以组合的最大指令数应当是六。在图解的例子中,前两个指令N,N+1是前缀指令。前缀指令被传递到前缀调度单元222。前缀指令可以包含一个或多于一个的前缀字。前缀调度单元222把前缀指令转换成诸如组合扩展,条件执行和循环分支控制信号的,被反馈到指令调度单元224的控制信号。指令调度单元224接着把指令组合成执行集并且执行来自前缀调度单元222的控制信号指示的某种操作。接着通过一个路由机制把被组合的指令同时调度到合适的执行单元30,32,34以便并行解码和执行。同时调度意味着在一个公共时钟周期内开始执行各个组合指令。在系统10的图解实施例中,在一个公共时钟周期内开始执行各个组合指令,但在一个不同的时钟周期内一或多个组合指令可以完成执行。
参照图12,其中图解了系统10内可以使用的一个指令系统300的一个具体实施例。指令系统300包含一个指令前缀字302和一个指令根字316。指令前缀字302包含一个条件执行域304和其它域312。指令根316包含一个操作选择域306,一个可选操作数域308和一个用于诸如组合多个无前缀指令的其它操作的可选域310。条件执行域304包含关于是否有条件执行指令根316的信息。例如,如果条件执行域是一个第一值,则会无条件地执行指令根;如果是一个第二值,则会根据一个状态或数据寄存器内一个预定位的值有条件地执行指令根。在存在多于一个的被组合到一个执行集中的指令根的情况下,条件执行域304被用于确定是否执行整组指令根316。但在一个未示出的可选实施例中,条件执行域304可以控制有选择地执行或不执行一或多个指令根或跟在前缀之后的子集。在另一个实施例中,多个条件执行域中的每一个对应于多个指令根中的一个以便单独控制一个指令组中各个指令根的执行。在一个最优实施例中,前缀302和指令根316构成一个单独的完整指令314。在这样的系统中,如果指令314被用于无条件执行并且前缀302不需被用于此后描述的其它目的,可以把它从指令314中删除。
参照图13,其中公开了一个指令系统320的一个实施例。指令系统320包含一个前缀322,一个第一指令根326,和多达2N个的指令根330。前缀322包含一个有N位宽的组域324。各个指令根326-330包含一个操作选择域331,332和其它的可选域。组域324指示紧跟在前缀322之后并行执行多少个指令根326-330。这样,前缀322中的组域324明确地把指令根组合成执行集。在最优实施例中,具有各种操作选择域值的指令根可以和其它指令根组合在一起,由于硬件或定时约束不可以组合其它的值。如图14所示,指令字346,348与前缀混合以构成一个指令组358,其中指令根350不被组合并且构成一个单字指令组360。
参照图15,其中图解了指令系统的另一个实施例。指令系统包含一个前缀380和一个指令根384。指令系统通过一个诸如传递到或来自存储器的32位或64位数据项的变长数据操作数388进行操作。前缀380包含一个操作数长度调整域382,并且指令根384包含一个操作选择域386。前缀380,指令根384和操作数388共同构成一个指令390。操作长度调整域382指示操作数388具有一个第一预定长度,还是一个经过调整的第二长度。例如,在操作选择域386指示指令根384是一个16位字的移动操作并且操作数长度调整域382被清除的情况下,操作数的长度为16位。但如果操作数长度调整域382被设置,则操作变成32位字的操作并且操作数长度为32位。通过把长度调整域编码成前缀字380,增加了可以选择执行的操作的数量,但不必增加指令根384中操作选择域386的任何额外长度,因而在某些环境下减少了代码长度。
参照图16,其中公开了指令系统400的一个实施例。指令系统400包括一个前缀402和一个指令根408。前缀402包含一或多个寄存器组选择域,例如一个第一寄存器组选择域404和一个第二寄存器组选择域406。第一和第二寄存器组选择域404,406长度均有N位。指令字408包含M位寄存器选择域410,412。第一寄存器组选择域404可以被用于指示一个具体的,可被用于诸如一个第一DALU单元32的第一执行单元的寄存器组。第二寄存器组选择域406可以被用于指示一个具体的,可被用于诸如一个第二DALU单元32的第二执行单元的寄存器组。在一个具体实施例中,N为1并且M为3。在这个实施例中,有两个不同的寄存器组,例如系统10的寄存器队列28和29,并且各个寄存器组具有8个寄存器。通过这种方式,通过使用前缀字402的寄存器组选择域404-406而不是指令408中的额外空间可以有选择地存取较高组的,诸如寄存器队列29中寄存器R8-R15的寄存器,因而在某些环境下节省了指令字存储器空间。
参照图17,其中示出了具有变长前缀字的指令系统420的一个实施例。指令系统420包含一个第一前缀字422,一个第二前缀字424,和一个第N前缀字426。各个前缀字422-426包含一个相应的前缀长度域428-432。前缀长度域428-432构成一个链,均指示前缀字链是否完成或者是否有一个额外的前缀字。通过这种方式,许多前缀字可以被一起连接到一个变长链中。但在最优实施例中,由于第一和第二前缀字具有其它的间接指示前缀是一个字长还是两个字长的域,所以第一个前缀字422不包含长度域。
下面公开了一个使用一个编码前缀指令的指令系统的具体实施例,其中混合了许多前面图解的前缀域。在这个实施例中,有一个单字前缀编码格式和一个双字前缀编码格式。
在单字前缀编码格式中,单字前缀具有下述二进制表示:
1001 aaaa 11|0-pjcc
其中:
aaaa:包含前缀字在内的被组合指令字数量,减1
如果aaaa=0:这是一个NOP指令,对于4 DALU的情况不被调度,对于4 DALU系统,aaaa的有效值为0到6
cc:条件执行整个执行集
00无条件执行
01保留
10在状态寄存器T被设置时条件执行
11在状态寄存器被清除时条件执行
pj:在一个循环机制中使用的两个位
“-”:为未来诸如额外循环信息的使用而保留
在双字形式中,前缀具有下述格式:
                                 src0  src1 dest
编码:0011 aaaa TTHH pjcc 101M bBeE bBeE bBeE
其中:
aaa,cc,pj:与单字前缀中相同
例如:
aaaa==3->双字前缀+2个组合指令字
M:为将来扩展到更长的前缀字而保留
0:前缀为双字
1:前缀至少有3个字长(至少一个附加字)
EEE:针对DALU UNIT 0的数据寄存器扩充;E个位均用作第四寄存器域编码位,有效地进行FFF->FFFF的调整,等等。
--1:用于FFF域的高数据寄存器
-1-:用于J2域的高数据寄存器
1--:用于J1域的高数据寄存器
注意:FFF,J2,J1为操作数域。
例如:
DALU DJ1,DJ2,DF
在两个操作数DALU单元指令的情况下,只使用-EE。
在一个操作数DALU单元指令的情况下,只使用--E。
eee:对于DALU UNIT 1,与EEE相同
BBB:对于DALU UNIT 2,与EEE相同
bbb:对于DALU UNIT 3,与EEE相同
HH:针对AGU指令的数据寄存器扩充。
-1用于AGU 0中MOVE操作的高数据寄存器
1-用于AGU10中MOVE操作的高数据寄存器
例如,在系统10中,当H位被设置成1时使用寄存器队列29中的寄存器而不是寄存器队列28中的寄存器。
TT:按比例扩大MOVE指令以便更宽地传送;每个位激活一个AGU单元。对于各个单元,这些位适用于单元也对一个指令进行解码的情况:
MOVE.2W,MOVE.2F,MOVE.L
如果T位为0:保持这些指令的原状
如果T位为1:
MOVE.2W->MOVE.4W
MOVE.2F->MOVE.4F
MOVES.2F->MOVES.4F
MOVE.L->MOVE.2L
-1使AGU0中的指令被解释成更宽的MOVE
1-使AGU1中的指令被解释成更宽的MOVE
原则上这些组合为下述内容保留:
MOVE.2L
MOVE.4W
MOVE.4F
根据另一个实施例,现在公开一个不使用前缀指令对指令进行组合的方法。参照图18,其中图解了一个没有可被用于静态组合的前缀字的指令。指令450包含一或多个指令字,例如一个第一指令字452和一个第二指令字454。第一指令字452包含一个也被称作一个操作码的操作选择域456,该选择域可被用于选择多个不同的,可以在诸如系统10的系统上执行的操作。操作选择域456包含一个长度为n位的类型子域458。在一个具体实施例中,n等于2。虽然在图解中以一个双指令字指令为例,但所述的操作选择域内的类型子域和类型子域的使用适用于许多种的单字和多字指令。
参照图19,该图例图解了如何可以把通过一个指令内的操作选择域编码的不同种类的指令映射到类型子域中的值。类型子域通常被用于提供组合和针对一个具有多指令和/或多指令字的执行集的多字指令信息。可以被执行的指令在高级别上被分成类型I指令和类型II指令。可以串行或并行地执行类型I指令,即类型I指令可以和其它指令组合以便在一个执行集中执行。类型II指令可以顺序执行,但并行执行的能力有限或者不能完全组合。某些类型II指令510不能与任何其它指令组合。这种不能组合的指令的一个例子是使数据处理器10处于低功率待命模式的休眠指令。
如图19所示,对于顺序执行的类型I指令,类型子域被设成一个第一值,例如针对图解实施例中片段502的01。对于和其它单字指令并行执行的类型I指令,类型子域被设成一个第二值,例如图中的00,片段504。至少一个类型II指令被设成一个第三值,例如10,片段510,或可选的一个第四值,例如11,片段512。使用所示的两位类型子域进行指令组合会减少指令选择的可用操作码空间。例如,在现有的系统中,如果一个单独的位被专用于组合信息,则操作码空间会被减少百分之五十(50%)。对于两位系统,操作码空间会被减少百分之二十五(25%)。
但在图解的实施例中,为了保留有用的操作码空间,针对类型子域的第二值,即00,某些多字指令重用一部分操作码空间。与至少一个其它指令并行执行的多字指令的片段506和顺序执行的多字指令的片段508使用一部分共享类型I并行单字指令的操作码象限。这种重用技术的一个实现方法是使用在其它情况下不允许使用的指令组合,例如把一个类型I可组合指令与一个类型II不可组合指令相组合。在其它情况下通过使用矛盾的指令组合,可以对多字序列进行编码。通过这种方式,可以保留有价值的操作码空间,因而改进了指令系统。
上述不同类型指令的一个例子职下所述。括号内是实际的汇编指令。
类型I串行502:寄存器D0加1(inc d0)
类型I并行504:寄存器d0加1并且把寄存器r0所指地址的字移动到寄存器r1(inc d0,move.w(r0),d1)(两个单配对指令)
多字506:在把偏移加到寄存器d3中后移动寄存器中的地址(incd0,move.b(R3+1000),d3)(一个单字和一个多字指令)
多字串行508:把1000加到d0中并且存储到d1中(add#1000,d0,d1)
类型II 510或512:中断执行(doze)
虽然片段510,512中的类型II指令可以具有相同类型,但在一个具体实施例中,可以分割指令以便不允许组合的指令被放在片段510中,而有限制地允许组合的指令被放在片段512中。
对于具有上述类型子域的指令,可以使用一般的组合规则。这种规则的一个例子是:
1、类型子域为00的指令字后面跟着被组合的额外指令字。
2、类型子域不为00的指令字是指令中的最后指令字。
3、最后指令字中的10指示至少有一个多字指令被执行,其中在执行集中有至少两个指令字。
4、一个指令组中第二个字中类型子域之后的一个位可被用来区分成对的双字指令和三字指令。在一个实施例中,区分位是紧跟在一个指令字组的第二个指令字中的类型子域之后的位。使用相同或其它指令中的附加位可以区分诸如四字指令的其它指令和三字指令,以及成对的单或双字指令。
在一个具体的图解实施例中,有3种传递组合信息以便把指令组合成执行集的方式:
-使用指令中2-3个最有意义的位—不使用前缀
-使用一个执行集的单字前缀
-使用一个执行集的双字前缀
下面的组合算法选择要使用(当给出要组合的指令时)的选项以便减少指令代码长度。
该算法是:
-在执行集中使用寄存器d8-d15?
*是->使用双字前缀
*否->继续
-执行集有条件执行(Ifc),或应当传递循环信息?
*是->使用单字前缀
*否->继续
-执行集只有一个指令?
*是->不需要前缀
*否->继续
-可以根据其类型组合执行集中的指令?
*是->不需要前缀-只使用2个最有意义的位对组合进行编码
*否->使用单字前缀
下面公开了以列表形式对一个静态组合实施例进行的描述。
单字指令类型编码:
其中的2个最有意义的位
类型子域458:类型    允许组合
00       1  与下一个指令组合
01       1  执行集结束—可以和前面的类型1指令(00)
            组合
11       2  执行集结束—可以和前面的类型1指令(00)
            组合(不完全组合情况)
10       4  执行集中只有一个指令,不能组合
两和三字识别:
(L-执行集中的最后指令)
字L-1    字L
00    10    由于10不能与00组合,所以这是一个针对两个
            单字指令的非法情况。因而针对这种情况保持
           2&3字指令。
字L-2    字L-1    字L
不关心   000      10  (L-1,L)是一个双字指令(类型3)
                  --可以和前面指令组合
非00     001      10  双字,不可组合(类型4)。(字L-2
                  属于前面的执行集)
00       001      10  (L-2,L-1,L)是一个三字组合指
                  令(类型3)--可以和前面指令组合
下面概述这里公开的其它方面。
在一个执行选定操作的数据处理器中,一个指令系统包含一个前缀字和一个指令字,该前缀字具有一个选择数据处理器执行选定的操作的条件的条件执行域,该指令字具有一个选择数据处理器要执行的操作的操作选择域。条件执行域可以选择一个数据处理器不执行选定操作的条件。在一个实施例中,前缀字和指令字包括一个指令和一个执行步骤,数据处理器执行上述步骤的条件取决于上述前缀字的条件执行域。指令可以包含多于一个的指令字。在另一个实施例中,前缀在指令中是可选的。
一个系统指示一个数据处理器执行选定的操作,该系统包含一个前缀字和一个指令字,该前缀字具有一个选择数据处理器执行选定的操作的条件的条件执行域,该指令字具有一个选择数据处理器要执行的操作的操作选择域。条件执行域可以选择上述数据处理器不执行选定操作的条件。在一个实施例中,前缀字和指令字包括一个指令,数据处理器执行上述指令的条件取决于上述前缀字的条件执行域。指令可以包含多于一个的指令字。并且,前缀在指令中可以是可选的。
在另一个实施例中,本发明公开了一个指示一个数据处理器执行选定的操作的系统,该系统包含一个前缀字和一个指令字,该前缀字具有一个选择数据处理器执行选定的操作的条件的条件执行域,该指令字具有一个选择数据处理器要执行的操作的操作选择域。条件执行域可以选择上述数据处理器不执行选定操作的条件。
前缀字和指令字包括一个指令,数据处理器执行上述指令的条件取决于上述前缀字的条件执行域。指令可以包含多于一个的指令字。
另一个实施例涉及通过具有第一和第二长度的操作数进行操作的一个数据处理器中的一个指令系统。该指令系统包含一个前缀字和一个指令字,上述前缀字具有一个用于调整一个被选定的操作,以便通过具有上述第二长度的一个操作数执行该操作的操作数长度调整域,上述指令字具有一个用于选择通过一个具有上述第一长度的操作数执行的操作的操作选择域。在一个实施例中,操作数具有多个长度,操作选择域选择一个通过具有上述多个长度中预定一个长度的操作数执行的操作,并且操作数长度调整域调整操作,以便通过一个具有上述多个长度中一个不同长度的操作数执行该操作。
在一个数据处理器中,一个指令系统包含一个前缀字和多个指令字,上述前缀字具有一个选择一个指令组的长度的指令组域,上述指令字均具有一个选择上述数据处理器执行的操作的操作选择域。数据处理器同时开始执行包括上述组的指令字选择的所有操作。前缀字和指令字可以构成一个指令。在一个实施例中,前缀字出现在上述指令中的各个指令字之前。在另一个实施例中,指令组域长度为n并且可以组合2n个上述多个指令字。也存在某些不能与任何上述多个指令字组合的指令字。
提供了一个控制数据处理器的系统。该系统包含一个指令根和一个指令前缀。该指令根具有一个用于选择由上述数据处理器执行的操作的操作选择域。指令前缀具有一个可以从下面至少一个中选择的域:一个用于选择数据处理器执行上述选定操作的条件的条件执行域,一个调整选定的操作以便通过一个具有不同长度的操作数加以执行的操作数长度调整域,一个选择包含指令根的指令组的字长的指令组域,和一个选择上述指令前缀的字长的前缀长度选择域。指令可以包括多于一个的指令根。前缀通常出现在至少一个指令根之前。
一个控制具有多个寄存器的数据处理器的系统。该系统包含一个指令根,该指令根具有一个宽度为m,用于选择上述数据处理器的2m个寄存器中的一个的寄存器选择域;和一个指令前缀,该前缀具有一个宽度为n,用于扩展上述寄存器选择域的宽度以便选择上述数据处理器中2m+n个寄存器中的一个的寄存器选择扩展域。
这里已经描述了一个实施例,其中包含一个改进的方法和组合数据处理器指令的装置至少一个最优实施例,和指令系统的实施例。本领域技术人员显然可以理解,可以通过多种方式修改所公开的主题内容,并且可以假设出许多不同于专门提出并描述的最优形式的实施例。例如,只以举例的方式描述了数据处理器10的特定单元和配置。可以使用许多其它的可选系统。例如,核心12中的DMA16,存储器20,22和某些执行单元是可选的。相应地,上述公开的主题内容是说明性的,并且没有约束性,在法律允许的最大范围内,所附权利要求书试图覆盖所有这样的修改和落在本发明真实宗旨和范围内的其它实施例。本发明的范围可以通过对后面的权利要求及其等效作能够允许的最宽的解释后来确定。本发明的范围不应限于前面的详细描述。

Claims (10)

1.一个指令系统,其特征在于:
一个指令根,该指令根具有一个用于选择由上述数据处理器执行的操作的操作选择域;和
一个指令前缀,该前缀具有一个从下面域组中选出的域:
一个条件执行域,用于选择一个条件,在该条件下数据处理器执行上述选择操作;
一个操作数长度调整域,用于调整选择的操作以便通过一个具有不同长度的操作数加以执行;
一个指令组域,用于选择一个指令组长度;和
一个前缀长度选择域,用于选择上述指令的前缀长度。
2.如权利要求1所述的指令系统,其中上述域是上述条件执行域并且指令根和指令前缀构成一个指令,上述数据处理器执行上述指令的条件取决于上述指令前缀的上述条件执行域。
3.如权利要求2所述的指令系统,其中上述指令包含多于一个的指令根。
4.如权利要求1所述的指令系统,其中指令被分布在一个数据处理系统内。
5.在一个具有2n个包含2m个寄存器的组的数据处理器中的一个指令系统,其特征在于:
一个前缀字,该前缀字具有一个长度为n,用于选择2n组上述寄存器中的一个组的寄存器组选择域;
一个指令字,该指令字具有一个长度为m,用于在上述选定的组中的2m个寄存器中选择一个寄存器的寄存器选择域。
6.一个控制数据处理器通过具有第一和第二长度的操作数执行操作的系统,其特征在于:
一个指令根,该指令根具有一个用于选择通过一个具有上述第一长度的操作数执行的操作的操作选择域;
一个指令前缀,该指令前缀具有一个调整上述选定的操作以便通过具有上述第二长度的操作数执行该操作的操作数长度调整域。
7.在一个数据处理器中的指令系统,其特征在于:
多个指令根,每个指令根具有一个选择上述数据处理器执行的操作的操作选择域;
一个指令前缀,该指令前缀具有一个用于选择多个上述指令根以构成一个组的指令组域,数据处理器同时开始执行上述组选定的所有操作。
8.一个数据处理系统,其特征在于:
一个包含多个执行单元的数据处理核心;
至少一个与数据处理核心相连的外设;
一个位于数据处理核心内的指令系统,该指令系统包括:
一个指令根,该指令根具有一个用于选择由上述数据处理器执行的操作的操作选择域;和
一个指令前缀,该前缀具有一个从域组中选出的域,该域组包括一个用于选择数据处理器执行上述选择的操作的条件的条件执行域,一个调整选择的操作以便通过一个具有不同长度的操作数加以执行的操作数长度调整域,一个选择指令组长度的指令组域,和一个选择上述指令前缀长度的前缀长度选择域。
9.一个在顺序执行第一和第二种操作,并且以并行方式执行多个上述第一种操作的数据处理器中的指令系统,其特征在于:
一个指令,该指令具有一个用于选择上述数据处理器执行的上述第一和第二种操作中的一个的操作选择域,操作选择域具有一个宽度为n的类型子域,对该子域赋值如下:
在顺序执行上述第一种操作的情况下取一个第一值;
在并行执行上述第一种操作的情况下取一个第二值;
在执行上述第二种操作的情况下取从剩余(2n-2)个值中选择的一个第三值。
10.一个控制一个数据处理器顺序执行第一和第二种操作并且以并行方式执行多个上述第一种操作的系统,其特征在于:
一个指令,该指令具有一个用于选择上述数据处理器执行的第一和第二种操作中的一个的操作选择域,操作选择域具有一个类型子域,该类型子域具有:
一个针对顺序执行的上述第一类型操作的第一值;
一个针对并行执行的上述第一类型操作和顺序执行的上述第二类型操作中至少一个选定操作的第二值。
CN99121094A 1998-10-13 1999-10-12 使用组合的数据处理器系统和指令系统 Expired - Fee Related CN1129843C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/170,690 US6418527B1 (en) 1998-10-13 1998-10-13 Data processor instruction system for grouping instructions with or without a common prefix and data processing system that uses two or more instruction grouping methods
US09/170,690 1998-10-13

Publications (2)

Publication Number Publication Date
CN1250906A true CN1250906A (zh) 2000-04-19
CN1129843C CN1129843C (zh) 2003-12-03

Family

ID=22620876

Family Applications (1)

Application Number Title Priority Date Filing Date
CN99121094A Expired - Fee Related CN1129843C (zh) 1998-10-13 1999-10-12 使用组合的数据处理器系统和指令系统

Country Status (10)

Country Link
US (1) US6418527B1 (zh)
EP (1) EP0994413B1 (zh)
JP (1) JP2000122864A (zh)
KR (1) KR100690225B1 (zh)
CN (1) CN1129843C (zh)
AT (1) ATE266226T1 (zh)
DE (1) DE69916962T2 (zh)
ES (1) ES2221282T3 (zh)
SG (1) SG95605A1 (zh)
TW (1) TW497073B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111813446A (zh) * 2019-04-12 2020-10-23 杭州中天微系统有限公司 一种数据加载和存储指令的处理方法和处理装置

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1039375A1 (en) * 1999-03-19 2000-09-27 Motorola, Inc. Method and apparatus for implementing zero overhead loops
US6606700B1 (en) * 2000-02-26 2003-08-12 Qualcomm, Incorporated DSP with dual-mac processor and dual-mac coprocessor
US7020763B2 (en) * 2000-03-08 2006-03-28 Sun Microsystems, Inc. Computer processing architecture having a scalable number of processing paths and pipelines
US6725360B1 (en) * 2000-03-31 2004-04-20 Intel Corporation Selectively processing different size data in multiplier and ALU paths in parallel
US7010788B1 (en) * 2000-05-19 2006-03-07 Hewlett-Packard Development Company, L.P. System for computing the optimal static schedule using the stored task execution costs with recent schedule execution costs
GB2366643B (en) * 2000-05-25 2002-05-01 Siroyan Ltd Methods of compressing instructions for processors
US6415376B1 (en) * 2000-06-16 2002-07-02 Conexant Sytems, Inc. Apparatus and method for issue grouping of instructions in a VLIW processor
US6877084B1 (en) * 2000-08-09 2005-04-05 Advanced Micro Devices, Inc. Central processing unit (CPU) accessing an extended register set in an extended register mode
US7472257B2 (en) * 2001-11-26 2008-12-30 Nxp B.V. Rerouting VLIW instructions to accommodate execution units deactivated upon detection by dispatch units of dedicated instruction alerting multiple successive removed NOPs
US7697946B2 (en) * 2002-06-04 2010-04-13 Forster Ian J Reflective communication using radio-frequency devices
JP3627725B2 (ja) * 2002-06-24 2005-03-09 セイコーエプソン株式会社 情報処理装置及び電子機器
US6944749B2 (en) * 2002-07-29 2005-09-13 Faraday Technology Corp. Method for quickly determining length of an execution package
US6865662B2 (en) * 2002-08-08 2005-03-08 Faraday Technology Corp. Controlling VLIW instruction operations supply to functional units using switches based on condition head field
WO2004114128A2 (en) * 2003-06-25 2004-12-29 Koninklijke Philips Electronics N.V. Instruction controlled data processing device
US7340588B2 (en) * 2003-11-24 2008-03-04 International Business Machines Corporation Extending the number of instruction bits in processors with fixed length instructions, in a manner compatible with existing code
US7873815B2 (en) 2004-03-04 2011-01-18 Qualcomm Incorporated Digital signal processors with configurable dual-MAC and dual-ALU
US20060149926A1 (en) * 2004-12-23 2006-07-06 Yuval Sapir Control words for instruction packets of processors and methods thereof
US20060150171A1 (en) * 2004-12-28 2006-07-06 Ceva D.S.P. Ltd. Control words for instruction packets of processors and methods thereof
US20060149922A1 (en) * 2004-12-28 2006-07-06 Ceva D.S.P. Ltd. Multiple computational clusters in processors and methods thereof
US7350040B2 (en) * 2005-03-03 2008-03-25 Microsoft Corporation Method and system for securing metadata to detect unauthorized access
US7526633B2 (en) * 2005-03-23 2009-04-28 Qualcomm Incorporated Method and system for encoding variable length packets with variable instruction sizes
US7793078B2 (en) * 2005-04-01 2010-09-07 Arm Limited Multiple instruction set data processing system with conditional branch instructions of a first instruction set and a second instruction set sharing a same instruction encoding
JP5217431B2 (ja) * 2007-12-28 2013-06-19 富士通株式会社 演算処理装置及び演算処理装置の制御方法
US8407680B2 (en) * 2008-12-16 2013-03-26 International Business Machines Corporation Operand data structure for block computation
US8285971B2 (en) * 2008-12-16 2012-10-09 International Business Machines Corporation Block driven computation with an address generation accelerator
US8327345B2 (en) * 2008-12-16 2012-12-04 International Business Machines Corporation Computation table for block computation
US8458439B2 (en) * 2008-12-16 2013-06-04 International Business Machines Corporation Block driven computation using a caching policy specified in an operand data structure
US8281106B2 (en) * 2008-12-16 2012-10-02 International Business Machines Corporation Specifying an addressing relationship in an operand data structure
GB2486737B (en) * 2010-12-24 2018-09-19 Qualcomm Technologies Int Ltd Instruction execution
GB2486740B (en) * 2010-12-24 2019-02-13 Qualcomm Technologies Int Ltd Encapsulated instruction set
WO2012131437A1 (en) * 2011-03-30 2012-10-04 Freescale Semiconductor, Inc. Integrated circuit device and method for enabling cross-context access
US8898433B2 (en) * 2012-04-26 2014-11-25 Avago Technologies General Ip (Singapore) Pte. Ltd. Efficient extraction of execution sets from fetch sets
KR102210997B1 (ko) * 2014-03-12 2021-02-02 삼성전자주식회사 Vliw 명령어를 처리하는 방법 및 장치와 vliw 명령어를 처리하기 위한 명령어를 생성하는 방법 및 장치
US9733940B2 (en) 2014-11-17 2017-08-15 International Business Machines Corporation Techniques for instruction group formation for decode-time instruction optimization based on feedback
US9940242B2 (en) 2014-11-17 2018-04-10 International Business Machines Corporation Techniques for identifying instructions for decode-time instruction optimization grouping in view of cache boundaries
US10402199B2 (en) 2015-10-22 2019-09-03 Texas Instruments Incorporated Conditional execution specification of instructions using conditional extension slots in the same execute packet in a VLIW processor
US20170192788A1 (en) * 2016-01-05 2017-07-06 Intel Corporation Binary translation support using processor instruction prefixes
CN107688854B (zh) * 2016-08-05 2021-10-19 中科寒武纪科技股份有限公司 一种能支持不同位宽运算数据的运算单元、方法及装置
US10761849B2 (en) * 2016-09-22 2020-09-01 Intel Corporation Processors, methods, systems, and instruction conversion modules for instructions with compact instruction encodings due to use of context of a prior instruction
CN116917859A (zh) * 2022-01-26 2023-10-20 谷歌有限责任公司 带有可变长度指令的并行解码指令集合计算机架构

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0827716B2 (ja) * 1985-10-25 1996-03-21 株式会社日立製作所 データ処理装置及びデータ処理方法
EP0221577B1 (en) * 1985-11-08 1996-01-17 Nec Corporation Microprogram control unit
DE69123629T2 (de) * 1990-05-04 1997-06-12 International Business Machines Corp., Armonk, N.Y. Maschinenarchitektur für skalaren Verbundbefehlssatz
US5214763A (en) * 1990-05-10 1993-05-25 International Business Machines Corporation Digital computer system capable of processing two or more instructions in parallel and having a coche and instruction compounding mechanism
JPH04156613A (ja) * 1990-10-20 1992-05-29 Fujitsu Ltd 命令バッファ装置
DE69429061T2 (de) * 1993-10-29 2002-07-18 Advanced Micro Devices, Inc. Superskalarmikroprozessoren
US5689672A (en) * 1993-10-29 1997-11-18 Advanced Micro Devices, Inc. Pre-decoded instruction cache and method therefor particularly suitable for variable byte-length instructions
DE69427265T2 (de) * 1993-10-29 2002-05-02 Advanced Micro Devices, Inc. Superskalarbefehlsdekoder
EP1186995B1 (en) * 1993-11-05 2003-09-03 Intergraph Corporation Instruction memory with associative cross-bar switch
EP0652510B1 (en) 1993-11-05 2000-01-26 Intergraph Corporation Software scheduled superscalar computer architecture
US5630083A (en) * 1994-03-01 1997-05-13 Intel Corporation Decoder for decoding multiple instructions in parallel
US5822778A (en) * 1995-06-07 1998-10-13 Advanced Micro Devices, Inc. Microprocessor and method of using a segment override prefix instruction field to expand the register file
JPH09265397A (ja) * 1996-03-29 1997-10-07 Hitachi Ltd Vliw命令用プロセッサ
US6275927B2 (en) * 1998-09-21 2001-08-14 Advanced Micro Devices. Compressing variable-length instruction prefix bytes

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111813446A (zh) * 2019-04-12 2020-10-23 杭州中天微系统有限公司 一种数据加载和存储指令的处理方法和处理装置

Also Published As

Publication number Publication date
KR20000029005A (ko) 2000-05-25
TW497073B (en) 2002-08-01
US20020056035A1 (en) 2002-05-09
ATE266226T1 (de) 2004-05-15
KR100690225B1 (ko) 2007-03-12
EP0994413A2 (en) 2000-04-19
EP0994413A3 (en) 2002-01-23
DE69916962D1 (de) 2004-06-09
ES2221282T3 (es) 2004-12-16
US6418527B1 (en) 2002-07-09
DE69916962T2 (de) 2005-04-07
EP0994413B1 (en) 2004-05-06
SG95605A1 (en) 2003-04-23
CN1129843C (zh) 2003-12-03
JP2000122864A (ja) 2000-04-28

Similar Documents

Publication Publication Date Title
CN1129843C (zh) 使用组合的数据处理器系统和指令系统
CN1088214C (zh) 用多指令集处理数据的器件和方法
CN1089460C (zh) 多指令集的数据处理
CN1148647C (zh) 数据处理系统及其控制方法
KR101754462B1 (ko) 동적 비순차적 프로세서 파이프라인을 구현하기 위한 방법 및 장치
CN1127687C (zh) 带外部协处理器可访问的上下文切换寄存器组的risc处理器
CN1299218C (zh) 执行指令的方法
CN100339824C (zh) 高效执行特长指令字的处理器和方法
CN1655118A (zh) 处理器和编译器
CN1121014C (zh) 具有risc结构的八位微控制器
US20030154358A1 (en) Apparatus and method for dispatching very long instruction word having variable length
CN1629801A (zh) 产生早期指令结果的管线式微处理器、装置以及方法
CN1252144A (zh) 一可编程组件中可构元件的自同步方法
CN1595390A (zh) 执行部分宽度压缩数据指令
WO2015114305A1 (en) A data processing apparatus and method for executing a vector scan instruction
CN1716189A (zh) 设计用户可定制的处理器的方法以及装置
CN1278931A (zh) 特别适于译码数字音频信号的数字信号处理器
CN1035190A (zh) 基于操作数长度和对位的微码转移
CN1068445C (zh) 指令调度方法和寄存器竞争检查方法
CN1508674A (zh) 提供可变宽度的至少六路加法指令的方法及相应装置
CN1959630A (zh) 微处理器
CN1234066C (zh) 基于操作队列复用的指令流水线系统和方法
CN1355900A (zh) 用于处理器流水线分段法及再装配的方法以及装置
CN100351782C (zh) 用于设计数字处理器的方法以及装置
CN100343799C (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
ASS Succession or assignment of patent right

Owner name: FREEDOM SEMICONDUCTORS CO.

Free format text: FORMER OWNER: MOTOROLA, INC.

Effective date: 20040820

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20040820

Address after: Texas in the United States

Patentee after: FreeScale Semiconductor

Address before: Illinois Instrunment

Patentee before: Motorola, Inc.

C56 Change in the name or address of the patentee

Owner name: FISICAL SEMICONDUCTOR INC.

Free format text: FORMER NAME: FREEDOM SEMICONDUCTOR CORP.

CP01 Change in the name or title of a patent holder

Address after: Texas in the United States

Patentee after: FREESCALE SEMICONDUCTOR, Inc.

Address before: Texas in the United States

Patentee before: FreeScale Semiconductor

C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20031203

Termination date: 20131012