CN1321271A - 控制程序产品及数据处理系统 - Google Patents
控制程序产品及数据处理系统 Download PDFInfo
- Publication number
- CN1321271A CN1321271A CN00801825A CN00801825A CN1321271A CN 1321271 A CN1321271 A CN 1321271A CN 00801825 A CN00801825 A CN 00801825A CN 00801825 A CN00801825 A CN 00801825A CN 1321271 A CN1321271 A CN 1321271A
- Authority
- CN
- China
- Prior art keywords
- data
- field
- processing
- processing unit
- instruction
- 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
Links
- 238000012545 processing Methods 0.000 title claims abstract description 305
- 238000000034 method Methods 0.000 claims description 50
- 230000008859 change Effects 0.000 claims description 31
- 230000008569 process Effects 0.000 claims description 30
- 238000003860 storage Methods 0.000 claims description 15
- 241001269238 Data Species 0.000 claims description 8
- 230000005540 biological transmission Effects 0.000 claims description 3
- 238000002360 preparation method Methods 0.000 abstract description 25
- 238000005516 engineering process Methods 0.000 description 22
- 238000012546 transfer Methods 0.000 description 18
- 230000006870 function Effects 0.000 description 17
- 230000006872 improvement Effects 0.000 description 9
- 230000001343 mnemonic effect Effects 0.000 description 5
- 238000009825 accumulation Methods 0.000 description 4
- 230000033228 biological regulation Effects 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 230000000052 comparative effect Effects 0.000 description 3
- 230000005284 excitation Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 239000002699 waste material Substances 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 239000002131 composite material Substances 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 238000000275 quality assurance Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 238000013519 translation 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/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
-
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
-
- 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/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
- G06F9/30167—Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
-
- 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
-
- 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/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3893—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator
- G06F9/3895—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator for complex operations, e.g. multidimensional or interleaved address generators, macros
- G06F9/3897—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator for complex operations, e.g. multidimensional or interleaved address generators, macros with adaptable data path
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
- Executing Machine-Instructions (AREA)
- Image Processing (AREA)
- Eye Examination Apparatus (AREA)
- Saccharide Compounds (AREA)
- Circuits Of Receivers In General (AREA)
- Communication Control (AREA)
- Steering Control In Accordance With Driving Conditions (AREA)
- Vehicle Body Suspensions (AREA)
- Input Circuits Of Receivers And Coupling Of Receivers And Audio Equipment (AREA)
- Facsimiles In General (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
提供一种具有第一字段和第二字段的指令组,其中第一字段描述用来指定在构成一个数据处理系统的至少一个处理单元中执行的操作内容或数据处理内容的执行指令,而第二字段描述把该处理单元设置到准备好执行根据执行指令要执行的操作或数据处理的状态的准备信息,从而可以提供一种控制程序,该程序的指令组在第二字段中描述的准备信息和第一字段中描述的执行指令无关。从而,根据准备信息对相继执行指令的执行做出准备。
Description
本发明涉及用微代码等描述的控制程序产品以及能执行该控制程序的数据处理系统。
含有诸如微处理器(MPU)和数字信号处理器(DSP)的操作功能的处理器(数据处理系统或LSI)称为用于实现通用处理和专用数字数据处理的设备。明显有助于改进这些处理器的性能的体系结构因素包括流水线技术、超流水线技术、超标量技术、VLIW技术和添加专用数据通路(专用指令)。体系结构要素还包括分支预测、寄存器组、高速缓存技术等等。
非流水线和流水线之间存在着明显的性能差异。基本地,对于同一条指令,流水线阶段的数量可靠地改进吞吐量。例如,可期待四阶段流水线能至少四倍地提高吞吐量,而八阶段流水线可达到八倍地提高吞吐量,这意味着超流水线技术附加地二倍地或更多地改进性能。由于进程中的改进使能对关键通路分段,操作频率的上限将会明显改进并且流水线技术的贡献会进一步增加。然而,尚未消除分支指令的延迟或代价,超流水线机器是否能成功取决于通过编译程序的指令调度能够处理多少个和存储器存取以及分支相对应的多级延迟。
超标量技术是在带有复杂的内部数据通路的程序计数器附近同时执行多条指令的技术。同样由编译程序优化技术中的进展所支持,这种技术已变为能够同时执行四条到八条指令。在大多数情况下,指令本身仍常常使用某寄存器中的最近操作结果和/或结果。除峰性能外,即使充分使用诸如转发、指令再定位、不按序和寄存器更名的各种技术,这种要求把能同时执行的指令的平均数量减少到远远低于上面所描述的数量。尤其,因为不可能执行多条条件分支指令等,超标量技术的效果进一步减小。从而,对处理器性能改善的贡献程度平均应为2倍到2.5倍的数量级。若存在可特别好地兼容的应用,实际上的贡献程度应为四倍或更少的数量级。
VLIW技术作为下个技术出现。根据该技术,事先配置数据通路以允许并行执行,进行优化从而编译程序改进并行执行并且产生适当的VLIW指令码。该技术采用一种特别合理的思路,消除掉超标量中所需要的用来检查各条指令的并行执行的似然性的电路。从而该技术被当成是特别有希望作为实现用于并行执行的硬件的手段。然而,该技术也不能执行多条条件分支指令。从而,对性能的实际贡献程度约为3.5到5倍的数量级。另外,当处理应用的处理器需要进行图象处理或特殊数据处理时,VLIW不是最优的解决办法。这是因为,尤其当应用需要利用操作结果进行连续或序贯处理时,VLIW中在通用寄存器中保持数据的同时要执行操作或对该数据进行处理存在着限制。该问题是和常规流水线技术中的问题是相同的。
另一方面,从过去的经验知道,当在专用电路实现时可以以更高的性能进行各种矩阵计算、向量计算等。从而,在用于达到最高性能的最先进的技术中,基于VLIW的思想变成是带有根据应用的用途设置的各种专用算术电路的。
然而,VLIW是改进程序计数器附近的并行处理执行效率的技术。从而,VLIW在例如同时执行二个或多个对象或者执行二个或多个子例程中不是那样有效的。另外,设置各种专用算术电路增加了硬件,并且还降低了软件灵活性。另外,本质上它难以解决执行条件转移中出现的代价。
从而,本发明的一个目的是为了提高处理器速度从不同于这些常规技术的立足点研究这些问题,并且提供一种新的解决办法,更具体地,本发明的一个目的是提供一种能象流水线改进吞吐量同时解决执行条件转移所产生的代价的系统即控制程序产品,提供一种能执行该控制程序的数据处理系统,并且提供一种它的控制方法。本发明的另一个目的是提供一种控制程序产品,其能以高速并且不必使用各种各样的专用于各个数据处理的专用电路下灵活地执行各个数据处理,甚至是复杂的数据处理。而且,本发明的目的之一是提供一种能执行该程序的数据处理系统以及它的一种控制方法。
本申请的发明人发现上面描述的问题是由于作为上述各技术的基础的用于常规非流水线技术的指令组的限制造成的。更具体地,定义处理器中的数据处理的程序(微代码、汇编码、机器语言等)的指令组(指令格式)是由一条指令操作(执行指令)和一个定义在执行该指令中使用的寄存器组的环境或接口的操作数的组合形成的助记码。从而,在查看常规指令组时由指令组规定的整个处理方面是完全可理解。与此相反,在指令组出现并被译码之前不能知道指令组的任何方面。本发明重大地改变指令组本身的结构,从而成功地解决上述现有技术难以解决的问题并且能够明显地改进数据处理系统的性能。
在本发明中,提供一种包括第一字段和第二字段的指令组,其中第一字段描述(记录)用来指定在构成一个数据处理系统的至少一个处理单元中执行的操作内容或数据处理内容的执行指令,而第二字段描述(记录)把该处理单元设置到准备好执行根据执行指令要执行的操作或数据处理的状态的准备信息,从而在第二字段中描述和第一字段中描述的执行指令的内容无关的用于操作或数据处理的准备信息。这样,本发明提供一种由上面的指令组构成的控制程序产品或控制程序设备。可以以记录在或存储在数据处理系统可读的适当记录介质上的形式或者以嵌入在计算机网络上或其它通信上发送的传输媒体中的形式提供该控制程序。
该处理单元是一个适当的用以形成数据处理系统的单元并且在其中可按功能性或者数据通路划分该数据处理系统,并且该单元包括一个控制单元、一个算术单元和一个处理单元或数据流处理单元,后者具有可按样板管理的有些小型的数据通路或者具有专用数据通路。
依据本发明的一种数据处理系统包括:至少一个的处理单元,用于执行操作或数据处理;一个取指令组的单元,其中指令组包括第一字段和第二字段,第一字段描述用于指定要在该处理单元中执行的操作或数据处理的内容的执行指令,第二字段描述把该处理单元设置到准备好执行根据执行指令要执行的操作或数据处理的状态的准备信息;第一执行控制单元,用于译码第一字段中的执行指令并且用于通过该被预置的处理单元着手该操作或数据处理从而准备好执行该执行指令的操作或数据处理;以及第二执行控制单元,用于译码第二字段中的准备信息,并且和第一执行控制单元的进行内容无关地设置该处理单元的状态从而准备好执行另一个操作或数据处理。
一种依据本发明的用于控制包括至少一个用来执行操作或数据处理的处理单元的数据处理系统的方法包括:取包含着上述第一和第二字段的指令组的步骤;译码第一字段中的执行指令并且通过被预置的该处理单元着手该操作或数据处理从而准备好执行该执行指令的操作或数据处理的第一控制步骤;以及与第一控制步骤无关地译码第二字段中的准备信息并设定该处理单元的状态从而准备好执行一操作或数据处理的第二控制步骤。
依据本发明的指令组具有描述一执行指令的第一字段和描述准备信息的第二字段,其中准备信息(准备指令)和执行指令无关并包括诸如寄存器和中间数据的信息。从而,在算术指令中,在第一字段中说明诸如“ADD”的指令操作,并且在第二字段中说明规定寄存器的指令或信息。看起来该指令组和常规的汇编码相同,但是执行指令和准备信息彼此是独立的,并且从而在同一指令组内彼此是不对应的。这样,该指令组具有这样的特性,由该数据处理系统的处理单元例如控制单元执行的处理不能通过它自己得到完整的理解或者不能由其自身完全规定。换言之,依据本发明的指令组明显不同于常规助记码。在本发明中,常规地在单个或相同的指令组中描述的指令操作以及它的对应操作数被允许成单独地和独立的定义,从而,常规指令组不能实现的处理变成容易被执行。
在第二字段中说明用于在相继的指令的第一字段中所说明的执行指令的准备信息。这使得可能在出现一条包含某执行指令的指令组之前准备该执行指令的执行。换言之,有可能在执行指令的前面把处理单元设置成准备好根据该执行指令要执行某操作或数据处理的状态。例如,有可能在某指令组的第一字段中说明一条用于操作该数据处理系统中的一控制单元中所包括的至少一个算术/逻辑单元的指令(指令格式或指令记录)。并且有可能在前一个指令组的第二字段中为该至少一个算术/逻辑单元中的上述操作说明用于定义该算术/逻辑单元的接口例如源寄存器或目的地寄存器的指令或信息。从而,在取出该执行指令之前,译码该算术/逻辑单元的寄存器信息,并设定各寄存器。接着,根据随后取出的执行指令执行逻辑操作,并在指定的寄存器中存储结果,还有可能在第一字段中和该执行指令一起说明目的地寄存器。
从而,借助本发明的指令组,可以象流水线处理那样在多阶段下进行数据处理并且改进吞吐量。即,指令“ADD,R0,R1,#1234H”意味着相加寄存器R1和数据#1234H并且在寄存器R0中存储结果。然而,根据硬件体系结构,为了高速处理这是有好处的,即在执行指令ADD的执行周期的前一个时钟的前一条指令的执行周期中重叠地对算术加法器ADD即算术/逻辑单元所属于的数据通路的输入寄存器执行来自寄存器R0和数据“#1234H”的读处理。在该情况下,单纯地进行算术相加,从而AC特性(执行频率特性)得到改进。在常规的流水线处理中,当增加流水线阶段的数量从而为从寄存器文件的读周期排它地消耗单个阶段时也会在一定程序下改进该问题。然而,在常规的流水线处理中,上述方法必然增加输出的延迟。相反,本发明可在不增加延迟下解决该问题。
在本发明的指令组中,有可能在执行指令的前面说明准备信息。从而,在诸如条件分支指令的分支指令中,在执行指令之前向控制单元提供分支目的地信息。即,在常规助记码中,人一眼就可理解指令组的整个含意,但是在该指令组出现之前不知道它。与之相反,在本发明的指令组中,不能一眼看出指令组的整个含意,但是在执行指令出现之前提供和该执行指令相关的信息。从而,由于在执行指令之前分配分支目的地,有可能在分支目的地处取指令组,并且还有可能为分支目的地处的执行指令做准备。
概言之,大多数当前的CPU/DSP通过把流水线处理移动到较晚的阶段(时基上较晚)成功地提高处理速度。然而,一旦执行程序的转移和CALL/RET问题显露出来。更具体地,由于事先未得到取地址信息,上述问题实质上造成不能在流水线中解决的惩罚。当然,DSP中采用的分支预测、延迟转移、高速转移缓冲器或高速循环处理技术成功地明显减小这种惩罚。然而,当出现一些连续转移时这样的问题再次显露出来,并且周知的事实是这些技术不能提供实质性的解决办法。
另外,在常规技术中,不能事先得到相继指令所需要的寄存器信息。这增加了用来提高流水线处理速度的转发处理或旁路处理的复杂性。这样,现有技术对处理速度的提高造成硬件成本的明显增加。
如上面所描述,在常规指令组中,只是在译码指令组后才得到分支目的地的地址信息,这使得难以实质性地解决执行条件转移下所产生的代价。相反,在本发明的指令组中,因为事先得到分支目的地信息,消除了执行条件转移产生的代价。另外,若硬件具有足够的容量或足够大,还有可能取出分支目的地处的准备指令,从而对转移后面的相继执行指令做准备。若转移条件不满足,仅仅浪费准备,而不造成执行时间上的代价。
另外,因为在指令执行的同时或者之前知道相继指令所需的寄存器信息,可在不增加硬件成本下提高处理速度。在本发明中,在编译或汇编阶段期间事先通过软件处理成功地实现常规流水线处理中在硬件上常规进行的一部分的处理。
在本发明的数据处理系统中,用于根据准备信息进行处理的第二执行控制单元可以是一个可以通过晶体管之间的连接动态地控制可变体系结构的单元,例如FPGA(现场可编程门阵列)。然而,动态地改变诸如FPGA的硬件要消耗许多时间,并且为了减少该配置时间需要附加的硬件,也有可能在具有二个面或更多面的RAM中存储FPGA的再配置信息并且在后台执行再配置从而在明显缩短的时间内动态改变体系结构。然而,为了能在几个时钟内进行再配置,需要装配一个RAM并存储重构信息所有可能的组合。这实质上并不解决FPGA的长再配置时间的经济问题。另外,由于FPGA用于能得到基于门式硬件的有效映射的体系结构,迄今看来尚未解决FPGA的原始问题即FPGA在实用层上的不良AC特性。
相反,在本发明中,独立地用和处理单元的执行时间(执行计时)无关的准备信息定义处理单元的输入和/或输出接口。这样,在第二执行单元中或在第二控制步骤中,可以和处理单元的执行计时无关地独立地设置处理单元的输入和/或输出接口。从而,在具有多个处理单元的数据处理系统中,通过第二执行控制单元或第二控制步骤,可以和执行无关地通过这些处理单元控制数据通路的组合。从而,定义至少一个处理单元,例如在第二字段中所记录的或所说明的该数据处理系统中所包括的算术/逻辑单元,的接口指令变成数据流指示。这使得能改进数据通路的独立性。结果是,在执行另一条指令程序时进行数据流指示。另外,还提供一种允许把处于空间状态的控制单元或数据处理系统的内部数据通路借给在另一个外部控制单元或数据处理系统中执行的更为迫切的进程的体系结构。
另外,准备信息中还包括定义处理单元的处理内容和/或电路配置的信息。从而,第二执行控制单元或者第二控制步骤指明处理单元的处理内容(电路配置)。这样,可更灵活地配置数据通路。
另外,第二执行控制单元或第二控制步骤具有调度器的功能,以便为控制各种各样的数据处理管理数据通路的组合,例如定义算术/逻辑单元的接口以对取操作译码寄存器信息和定义另一个处理单元的接口。例如,在按固定时间进行矩阵计算处理并且然后进行过滤处理的情况下,在每个处理之前为这些处理提供数据处理系统的处理单元之间的连接并且通过时间计数器顺序地进行每个处理。用另一个比较电路或者外部事件检测器代替时间计数器能使更加复杂灵活的调度成为可能。
可在每个处理单元中采用FPGA体系结构。然而,动态改变硬件要长的时间,并且为缩短时间需要附加的硬件。这使得在执行应用期间难以动态地控制处理单元内的硬件。若为了瞬时转换利用排式结构设置多个RAM,几个时钟到几十个时钟数量级的转换会需要数量相当大的排式结构。这样,基本上要求使FPGA中的每个宏单元可独立编程并且可检测按基于程序的控制机改变的时间或计时。然而,目前的FPGA不足以应付这样的结构。若FPGA能应付这样的结构,为了动态地控制计时需要本发明中那样的新式指令控制体系结构。
因此,在本发明中,需要把包含着专用内部数据通路的电路单元用作为处理单元。通过具有按样板准备的有些小型的处理单元并且通过组合这些样板数据通路,可规定并进行数据流型处理。另外,根据准备信息或准备指令处理单元的一部分内部数据通路变成是可选择的,处理单元的处理内容变成是可改变的。结果是,可在短时间内更灵活地配置硬件。
以下把带有适当的逻辑门或逻辑门组以及用输入/输出接口把各内部数据通路和该逻辑门或这些门连接起来的处理单元称为样板,因为该处理单元中提供的专用数据通路是象样板那样使用的。即,在该处理单元中,有可能通过改变输入/输出到各逻辑门的数据的次序或者通过改变逻辑门之间的连接或改变对逻辑门的选择,改变处理单元的处理。所需要的只是事先对选择一部分的内部数据通路做好准备。从而和需要在晶体管一级上对电路作出改变的FPGA相比,可在更短的时间内改变处理。另外,使用事先安排的用于专用目的内部数据通路减少了冗条电路元部件的数量并且提高晶体管的区域使用效率。因此,安装密度变大,这导致更经济的生产。另外,排列数据通路以适应高速处理还可得到优良的AC特性。从而,在本发明中,需要在第二执行控制单元和第二控制步骤中使处理单元的至少一部分的内部数据通路变成是可根据准备信息选用的。
还需要第二执行控制单元具有调度器的功能以管理处理单元的一个接口,从而管理保持每个处理单元的该接口的进度表,其中该进度表是根据准备信息设定的。
另外,需要根据准备信息指定由多个处理单元构成的处理块中的输入和/或输出接口。由于借助单条指令改变多个处理单元的接口,利用单条指令改变和该多个处理单元相关的数据通路。从而,需要在第二执行控制单元或步骤中,可在处理块的单元中根据准备信息改变处理单元的输入和/或输出接口。
此外,需要设置一个存储多个定义处理块中的输入和/或输出接口的配置数据的存储器,并且需要能通过根据准备信息选择该存储器中存储的多个配置数据之一改变处理块中的输入和/或输出接口。当用数据流定义指令指定配置数据时,从不使用冗余指令的一个程序控制多个处理单元的接口的改变。
另外,该具有作为处理单元的适用于通用处理的第一控制单元,例如算术/逻辑单元,和适用于专用处理的第二控制单元,例如多个具有专用内部数据通路的数据流处理单元,的数据处理系统变成一个适用于要求高速性能和实时性能的处理,例如网络处理和图象处理,的系统LSI。在本发明的指令组中,用来操作算术/逻辑单元的执行指令在第一字段中说明,而定义算术/逻辑单元和/或数据流处理单元的接口的准备信息在第二字段中说明。从而,通过本发明的指令组,提供适用于控制上述系统LSI的程序产品。
常规地,处理复杂数据处理的唯一方法是准备专用电路并且利用该电路实现专用指令,从而增加硬件成本。与此相反,在本发明的指令组中,在第二字段中与执行指令无关地说明算术/逻辑单元的接口以及要执行的处理内容,从而有可能在指令组中包括用于控制流水线和/或控制数据通路的组合。从而,本发明提供在程序计数器附近有效执行并行处理而且超同时地执行二个或多个对象以及超同时地执行二个或多个子例程的手段。换言之,在常规的指令中不能同时进行具有不同语境的数据处理和/或算法,因为这需要根据指向彼此远离的点的远程程序计数器进行同时处理。相反,通过用本发明的指令组适当地定义数据流,与各个程序计数器无关地进行这种处理。
因此,借助本发明的指令组,当事先从应用侧使数据通路有效地改进并行处理性能时,事先通过软件利用第二字段配置或排列这些数据通路。这样,通过软件根据需要利用指令级激励或执行所实现的数据通路(数据流)。这些数据通路不仅应用于和某些专用目的对应的数据处理并且还应用于激励状态机的目的,这样,数据通路的应用是特别自由的。
另外,第二字段中的信息允许事先方便地生成用于相随指令的准备周期。常规地,必须利用寄存器进行操作。然而,通过准备周期的缓冲使得有可能使用存储器(单端口/双端口)或寄存器文件代替寄存器。在指令组的第二字段中,可以说明指示处理单元中所包括的寄存器之间的或者缓冲器和存储器之间的输入/输出的指令。从而,当在第二执行控制单元中或在第二控制步骤中控制寄存器之间的或者缓冲器和存储器之间的输入/输出时,和执行指令无关地进行对/从存储器的输入/输出。
这增强了各个指令序列之间的关联,并且对避免执行之前的硬件资源争用作出贡献,从而使得有可能快速适应多条指令的并行执行要求和/或外部中断要求。另外,因为基本上可把存储器看成是寄存器,可实现高速任务切换。还有可能采用预装入式高速缓冲器来代替高速缓存,后者不能消除常规的先取惩罚。从而,可以实现确保100%命中率和不产生惩罚的高速嵌入式系统。
换言之,通过允许把存储器当成是寄存器,有可能以高速处理多个异步处理请求例如中断,从而有可能在特别灵活的方式下处理复杂的数据处理和连续数据处理。此外,由于不必用长的时间存储和恢复寄存器,高速管理任务切换变得非常容易。另外,由于完全消除掉外部存储器和内部存储器间的存取速度的差异,高速缓存中的先取惩罚问题变成有效地得到解决。因此,可以高速处理CALL/RET和中断/IRET。这样,可以防止用来响应易于配置的事件的环境以及因这样的事件造成的数据处理性能的下降。
另外,在第一或第二字段中,有可能说明多个执行指令或准备指令例如VLIW,并且有可能第一或第二执行控制单元包括多个用来独立处理多个分别在第一或第二字段中说明的独立执行指令或准备指令的执行控制部分。从而,可得到性能的进一步改进。
通过实现把本发明的控制单元用作为核心或者外围电路的数据处理系统,有可能提供一种更经济的具有上述优点并具有高处理速度的数据处理系统。
图1示出本发明的指令组。
图2更详细地示出图1的指令组的Y字段。
图3示出使用图1的指令组的一个例子。
图4示出通过图3的指令组如何在寄存器中存储数据。
图5示出用于执行本发明的指令组的数据处理系统。
图6示出用常规CPU或DSP执行的一个程序。
图7示出一个依据本发明的数据处理系统的程序。
图8示出利用本发明的指令组的图7程序的编译后的程序。
图9示出另一个依据本发明的数据处理系统的程序。
图10示出通过图9的程序配置的数据流。
图11示出另一个通过本发明的指令组执行数据处理的数据处理系统。
图12示出如何利用样板的不同组合构成不同的专用电路。
图13示出样板中的一个。
以下参照各附图更详细地说明本发明。图1示出依据本发明的指令组的结构或格式(指令格式)。本发明中的指令组(DAD/DNA的指令组)10包括二个字段:称为指令执行基本字段的第一字段(X字段)11和能改进相继的指令执行的称为指令执行准备周期字段的第二字段(附加字段或Y字段)12。指令执行基本字段(X字段)11规定诸如加/减、“或”运算、“与”运算和比较的数据运算以及各种其它数据处理的内容例如转移,并且规定存储运算结果的位置(目的地)。另外,为了改进指令长度的使用效率,X字段11只包括供执行的指令的信息。另一方面,附加字段(Y字段)12能够说明相同指令组的和X字段11的执行指令无关的指令或多条指令(信息),并且例如分配着相继指令的执行准备周期的信息。
现更详细地说明指令组10。X字段11具有一个说明对处理单元例如算术/逻辑单元的指令操作或执行指令(执行ID)的执行指令字段15,一个指示Y字段12有效/无效以及Y字段12中所指示的准备指令(准备信息)的类型的字段(类型字段)16以及一个示出目的地寄存器的字段17。如上面所说明,类型字段16的描述和Y字段12相关的,并且可以和X字段11中的其它字段的描述无关地予以定义。
在Y字段12中,说明通过类型字段16定义的准备信息。Y字段12中说明的准备信息是用来使某操作或其它数据处理准备好以供执行的信息。在图2中示出其中的一些具体例子。首先,再次注意X字段11中的类型字段16用于说明独立于或者无关于执行指令字段15中的信息的信息。在Y字段12中,有可能说明一个地址信息字段26,它说明地址ID(AID)21以及其使用意图是通过AID21定义的地址信息22,例如,一个地址(ADRS)和一个输入/输出地址(ADRS.FROM/TO)。Y字段12中说明的该地址信息用于在寄存器之间或者缓冲器和存储器(包括寄存器)之间读和写,并且通过Y字段中的信息块传送例如DMA变成准备好。除输入/输出地址(R/W)之外,还有可能把例如指示执行分支指令时的转移目的地(取地址,F)的地址以及并行执行时起始地址(D)的信息在Y字段12中作为地址信息描述。
在Y字段中,还有可能说明定义寄存器类型的指令的信息23,例如,充当算述运算或其它逻辑运算指令(包括MOVE,存储器读/写等)的源寄存器的寄存器(Reg)的被定义的立即值(imm)和/或信息。换言之,有可能把Y字段12使用成用来定义相继执行指令的源的字段27。
另外,在Y字段12中,有可能说明定义算术/逻辑单元(ALU)或者其它数据处理单元的接口(源、目的地)、处理内容或功能以及/或者它们的组合的信息25,例如,具有准备好的供使用的数据通路的样板。换言之,把Y字段12用作为说明数据流规定指令25的字段28,以定义供进行进专用数据处理的流水线式的重构数据通路(数据流或数据通路)。在Y字段12中还有可能说明启动或执行数据流的信息以及终止其的信息。从而,由Y字段12定义的可重构数据通路提供的数据流使得能执行独立于从一个代码RAM取代码的程序计数器的进程。
请注意图1和图2中示出的指令集的格式只是依据本发明的具有二个独立指令字段的指令组的一个例子,并且本发明不受限于图1和2示出的格式。例如,X和Y字段中一些字段的位置是不受限制的。独立字段例如类型字段16的位置可替代地位于Y字段12的开头。还有可能改变X字段11和Y字段12的次序。在该例子中,因为Y字段12的信息包含在X字段11中,在译码说明执行指令的X字段11时判断Y字段12中是否存在准备信息并判断准备信息的类型。
在下面说明的例子中,分别在X字段11和Y字段12中说明执行指令和准备指令。然而,通过指令格式,有可能提供在X或Y字段中不说明指令(NOP被描述)的并且实际上只有X字段11或Y字段12是有效的指令组。通过上述指令格式另一种指令组也是可能的,也就是在同一指令组10的Y字段12中同时描述具有例如和X字段11中说明的执行指令有关的寄存器信息的操作数的准备指令,即该准备指令不是独立于X字段11中的执行指令的。可以在其中具有本发明的X字段11和Y字段12彼此独立并且在同一指令组中彼此无关的指令组的同一个程序中混合式地包括上面刚提到的指令组。为了本发明的说明的清晰下面不说明具体例子,然而,既有X字段11和Y字段12之中的有关说明彼此独立的指令组10并且又具有X字段11和Y字段12之中的有关说明彼此相关的指令组的程序产品以及记录这种程序的记录介质是在本发明的范围内的。
图3示出本发明的指令组10的一个例子。在j-1号指令组10,T(j-1),中,X字段11的类型字段16指示在同一指令组的Y字段12中说明32位的立即值(immediate)。指令组T(j-1)的Y字段12中把“#00001234H”记录为立即值。在下一个j号指令组T(j)中,在X字段11的执行指令字段15中说明“MOVE”,并且在目的地字段17中指示寄存器R3。从而,当取j号指令组T(j)时,一控制单元的ALU在寄存器R3中存储前一指令组T(j-1)中定义的立即值“#00001234H”。
这样,在本实施例的指令组10中(以下把j号指令组10称为指令组T(j)),通过前一个指令组T(j-1)对指令组T(j)中说明的执行指令做准备。从而,不能单独地从指令组T(j)知道该控制单元的ALU所执行的整个处理,而是要由二个指令组T(j-1)和T(j)唯一确定的。另外,在指令组T(j-1)的执行指令字段15中,和指令组T(j-1)的Y字段12无关地说明另一条用于由前一指令组的Y字段准备的另一进程的执行指令。此外,在指令组T(j)的类型字段16和Y字段12中,说明在相继指令组的执行指令字段中所说明的另一执行指令的另一准备信息。
在本实施例,在紧前面的指令组T(j-1)的Y字段12中说明在指令组T(j)的X字段11中说明的执行指令的准备信息(准备指令)。换言之,在该例子中,准备指令等待时间对应于一个时钟。然而,可以在紧前面的指令组之前的另一个指令组中说明准备信息。例如,在具有多个ALU的控制单元的控制程序中或者对于后面说明的数据流控制,不必在紧前面的指令组中说明准备指令。只要在具有和该准备指令对应的执行指令的指令组被取出供执行之前持有或保持各ALU的状态(环境或接口)或者准备指令所设置的样板的配置,可以在具有和该准备指令对应的执行指令的指令组10数个指令周期之前执行的指令组10的Y字段12中说明该准备指令。
图4示出在充当寄存器的寄存器文件或存储器中存储根据图3的指令组的数据项的状态。一处理器取j-1号指令组T(j-1),并且根据其Y字段12中的准备指令在该处理器的ALU的源寄存器DPO.R中锁存立即值“#00001234H”。接着,该处理器取相继的j号指令组T(j),并且在X字段11中的执行指令“MOVE”的执行周期里把该锁存的中间值存储到缓冲器29b中。然后,在和存储器或寄存器文件29a的寄存器R3对应的地址处保存缓冲器29b中的数据项。即使存储目的地不是寄存器而是存储器,借助本实施例的指令组10,能够通过根据该执行指令之前的准备信息进行的处理在执行指令周期中装入或者存储数据。
图5示出具有能执行含有本实施例的指令组10的程序的控制单元30的处理器(数据处理系统)38的示意结构。在代码ROM39中保存具有本实施例的指令组10的微代码或微程序18。控制单元30包括一个取单元31和第一执行控制单元32,其中取单元31用于一旦需要时根据一个程序计数器从代码ROM39取该微程序的一个指令组10,而第一执行控制单元32具有译码取出的指令组10的X字段11从而确定或断言ALU34的操作的功能以及选择目的地寄存器34d从而锁存ALU34中的逻辑运算结果的功能。
控制单元30还包括第二执行控制单元33,其具有根据X字段11的类型字段16中的信息译码取出的指令组10的Y字段以及选择算术处理单元(ALU)34的源寄存器组34s的功能。该第二执行控制单元33能够独立于X字段的说明(类型字段16中的信息除外)解释Y字段12中的指令或信息。若Y字段12中说明的信息定义数据流,第二执行控制单元33还具有选择或设定ALU34的源侧和目的地侧,即确定ALU的接口,以及在预定时钟之间或者给出取消指令之前持续地保持该状态的功能。另外,在Y字段12中的信息定义数据流的情况下,第二执行控制单元33还确定ALU34的操作(处理内容)并且按预定的周期保持该状态。
相应地,第一执行控制单元32实现第一控制步骤,即,译码X字段11中的执行指令并且根据该执行指令通过预先设置的处理单元着手运算或其它数据处理以便准备好执行该执行指令的操作或其它数据处理。另一方面,和第一执行控制单元32的执行内容以及由此产生的第一控制步骤无关地,第二执行控制单元33完成第二控制步骤,即,译码Y字段12中的准备信息和设置该处理单元的状态以便准备好执行运算或其它数据处理。
控制单元30还包括这些执行控制单元32、33以及ALU34的多种组合,使得执行各种进程成为可能。结果是可以利用控制单元30作为核心或外围电路配置出用于高速图象数据处理的DSP、能高速进行数字处理的CPU和MPU等等。
图6至9示出由本实施例的控制单元30执行的一些样本程序。图6中示出的样本程序41是按可由常规CPU或DSP执行而建立的一个例子。该程序从一个开始于地址#START的表提取最大值,并且在一旦检测出表示最后的数据的#END时终止。
图7中示出的程序42对应于和图6的过程相同的过程,该程序转换成适用于用来执行本发明的指令组的控制单元30。程序42生成为利用单个指令组执行二条指令。通过一个编释程序把图7中示出的程序转换成本发明的指令组的执行程序以由控制部件30执行。
图8示出具有本发明的指令组10的编译后的程序43。以记录或存储在ROM39、RAM或其它适当的可由该数据处理系统读的记录介质上的形式提供具有这样的指令组10的程序产品18。另外,还可以分发嵌入在可在网络环境中交换的传输媒体中的程序产品43或18。参照程序42容易理解在程序43中,在第一指令组10的Y字段12中进行第二指令组10的执行指令15的准备。在该第一指令组10中,类型字段16指示在Y字段12中把立即值说明是准备信息。第二执行控制单元23译码Y字段12并且把该立即值提供给ALU的源高速缓存或寄存器组。从而,通过第二指令组10,在已为这些执行指令做好准备的ALU34上执行各执行指令15。即,在执行第二指令组10的时刻,简单地对目的地字段17中定义的寄存器组执行执行指令字段15中的指令“MOVE”。
类似地,在第二指令组10的Y字段12中,把设置各源寄存器的指令说明成是相随的第三指令组10的执行指令字段15中的执行指令“MOVE”和“ADD”的准备信息。类型字段16定义Y字段12中说明的寄存器和立即值。
在程序43中,如上面所述那样译码第三和随后的指令组10。在第三指令组10的类型字段16和Y字段12中说明随后的第四指令组10的各执行指令15的准备信息。第四指令组10的执行指令是比较(CMP)和条件转移(JCC)。从而,通过第三指令组10的类型字段16和Y字段12,在随后的执行指令15中要比较的寄存器R1、立即数据#END(#FF FF FF FF H)以及分支目的地的地址#LNEXT(#00 000 500 H)说明为是准备信息。因此,一旦执行第四指令组10的各执行指令15,由于已对按比较电路运行的算术处理电路34设置了输入数据,在该执行周期中获得比较结果。另外,已为取地址寄存器设置转移地址。从而,通过执行指令15的条件转移,在该执行周期中根据该比较结果取转移地址处的另一个指令组10。
通过第四指令组10的类型字段16和Y字段12,说明有关要比较的寄存器(R0的R1)和分支目的地地址#LOOP(#0 000 0 496H)的信息以作为随后的第五指令组10的执行指令15,即比较(CMP)和条件转移(JCC),的准备信息。从而,如第四指令组,一旦执行第五指令组10,由于算术处理单元34的接口已经准备好执行X字段11中所说明的CMP和JCC,在该执行周期进行该比较和条件转移。
在第五指令组10的Y字段12中,说明源寄存器信息(R1)和转移目的地#LOOP的地址以作为随后的第六指令组10的各执行指令,即移动(MOVE)和转移(JMP),的准备信息。从而,在执行第六指令组10时,在该执行周期中把数据项存储到目的地寄存器RO并且从转移目的地的地址#LOOP取另一条指令。
这样,依据本发明的指令组,执行指令是和说明用于执行源执行指令的接口和/或其它信息的准备指令分开的。另外,准备指令是在在执行指令之前取出的指令组中说明的。因此,通过每个指令组中说明的执行指令,由于已对ALU34源侧读出或分配数据,简单地或只执行和算术运算对应的执行。从而,得到出色的AC特性和改进的执行频率特性。另外,尽管执行指令的操作计时和常规流水线的计时不同,但如常规流水线那样,诸如指令取、寄存器译码和其它处理是以分阶段的方式执行的。从而,吞吐量也得到改进。
另外,该实施例的程序能在单个指令组中说明二条指令。从而,通过象VLIW在程序计数器附近并行执行多条指令,处理速度得到进一步改进。
另外,在该程序43中,在第四指令组的执行指令字段15中说明条件转移,并且在前面的第三指令组的Y字段12中说明源分支目的地的地址。从而,一旦执行第四指令组或者执行之前,对取寄存器设置该分支目的地地址。这样,当满足转移条件时,无任何惩罚地取和/或执行分支目的地处的指令组。也可能预取分支目的地处的指令,从而可以事先对执行分支目的地处的执行指令做出准备。因此,甚至在损失一个时钟下执行分支目的地处的指令。这样,在逐个时钟的基础上准确地定义处理。
图9示出本发明的程序44,其利用本发明的指令组10的Y字段12定义数据流,以执行上面根据该数据流说明的相同过程,在该程序44中说明的数据流指定指令中,“DFLWI”是用于初始化数据流的指令,而“DFLWC”是定义形成该数据流(数据通路)的算术处理单元34的连接信息(接口信息)和处理内容(功能)的指令。“DFLWT”是定义数据流的终止条件的指令。结束处的指令“DFLWS”用于对所定义的数据流输入数据和激励该数据通路的处理。在Y字段12中作为准备信息说明这些数据流指定指令25并且由第二执行控制单元33译码,从而通过处理单元34设置用于进行这些数据处理的结构(配置)。
为执行图9中示出的程序44时,第二执行控制单元按第二控制步骤和该处理单元的执行时间或计时无关地设置该处理单元的输入和/或输出接口,并且根据该程序中对数据流的规定定义该处理单元中要执行的处理的内容。另外,第二执行控制单元33还充当调度器36以在第二控制步骤中管理保持有关处理单元的接口的进度表。
从而,如图10中所示,充当调度器36的第二执行控制单元33定义三个算术处理单元34的有关接口(输入/输出)以及处理的内容或功能,并且在满足结束条件之前保持这些状态和/或配置。这样,通过利用这些算术处理单元34配置的数据流或数据通路,和程序计数器无关按顺序地进行和图6中所示相同的处理。换言之,通过指定数据流,在由三个算术处理单元34执行之前在控制单元30中设置用于该处理的专用电路。从而,在和程序计数器的控制无关下执行得到最大值的处理。若充当DP1.SUB的ALU34判定DP1.R1和#END对应,该数据流结束。
这样,如图9中所示,该数据流的定义能在不使用任何转移指令下进行和图6或7中示出的程序相同的处理。从而,尽管控制单元30是通用的,它有效地并且速度特别高地进行专用的处理,好象一个具有用于该专用处理的专用电路的控制单元那样。
依据本发明的指令组和控制电路有可能在控制单元中设置用于各种处理的数据流或超数据流。还可把这些数据流应用为样板以执行其它处理或程序。这意味着在任何时刻利用软件修改硬件以配置为适应于特定的数据处理,而且这种配置是通过其它程序或硬件实现的。并且有可能通过软件在控制单元中设立多个数据流,而且可定义多命令流。这明显有利于多个处理的并行执行,而且使编程容易控制它们的各种执行变型。
图11是一个按系统LSI50设置的数据处理系统的示意结构,其具有多个可通过本发明的包括X字段11和Y字段12的指令组10定义数据流的处理单元(样板)。该系统LSI50包括一个用于进行数据处理的处理器部分51,一个存储用来控制该处理器区51中的处理的程序18的代码RAM52,以及一个存储其它控制信息或处理的数据的数据RAM53,而且RAM53成为一个暂时工作存储器。处理器部分51包括一个用于取程序码的取单元(FU)55、一个用于进行通用处理的通用数据处理单元(多用途ALU,第一控制单元)56,以及一个能在数据流方式下处理数据的数据流处理单元(DFU,第二控制单元)57。
本实施例的LSI50译码在单个指令组10中包括一组X字段11和Y字段12的程序码并且相应地执行处理。FU55包括一个用于存储取出的指令组10的X字段11中的指令的取寄存器(FR(X))61x,以及一个用于存储相应的Y字段12中的指令的取寄存器(FR(Y))61y。FU55还包括一个用于译码FR(X)61x中锁存的指令的X译码器62x,和一个用于译码FR(Y)61y中锁存的指令的Y译码器62y。FU55还包括一个寄存器(PC)63,用于根据这些译码器62x和62的译码结果存储相继指令组的地址,并且PC63充当程序计数器。任何时刻从代码RAM52中存储的程序的预定地址取出后续指令组。
在该LSI50中,X译码器62x充当前面提到的第一执行单元32。从而,X译码器62x根据指令组10的X字段11中所说明的执行指令进行本发明的第一控制步骤。Y译码器62y充当第二执行控制单元。从而,Y译码器62y根据指令组10的Y字段12中所说明的准备信息进行本发明的第二控制步骤。这样,在该数据处理系统的控制中,在取单元55中进行取本发明的数据集的步骤;在X译码器62x中,进行译码第一字段中的执行指令以及通过已经预置的处理单元着手该执行指令的运算或数据处理的第一控制步骤从而准备好执行该执行指令的运算或数据处理;在Y译码器62y中,和第一控制步骤无关地进行译码第二字段中的准备信息以及设定处理单元的状态的第二控制步骤从而准备好执行运算或数据处理。
多用途ALU56包括会同图5说明的算术单元(ALU)34和用于存储ALU34的输入/输出数据的寄存器组35。倘若FU55中译码的指令是ALU34的执行指令和/或准备信息,相应地对多用途ALU56提供X译码器62x的译码信号φx和Y译码器62y的译码信号φy,从而如上面解释那样在ALU34中进行所说明的处理。
DFU57具有一个样板部分72,在样板部分72中设置着多个用于为各种处理配置多个数据流或伪数据流中之一的样板71。如上面会同图9和10说明那样,每个样板71是一个具有专用数据通路或数据流的功能的处理单元(处理电路),例如算术处理单元(ALU)。当Y译码器62y译码Y字段12中的按准备信息说明的数据流指定指令25时,根据信号φy设置各样板71,即DFU57的各处理单元,的有关接口和处理内容或功能。
因此,有可能通过Y字段12中说明的数据流指定符25改变各样板71的有关连接和改变各样板71中的处理。这样,通过这些样板71的组合,在样板区72中借助程序18灵活地配置适用于特定数据处理的数据通路。从而,在处理器51中提供用于该特定处理的专用电路,在其中和程序计数器无关地进行处理。换言之,由于通过软件数据流指定指令25可改变样板71的有关输入/输出以及样板71中的处理,在任何时刻可修改或重构处理器51的硬件成为适应于该特定数据处理的配置。
如图12(a)中所示,为了通过该处理器51的DFU57在输入数据φin上进行某处理以得到输出数据φout,有可能通过数据流指定符25设置各样板71的有关接口,从而利用图12(b)中所示的彼此串联连接的样板1-1、1-2和1-3进行数据处理。类似地,对于样板块72中的其它样板,有可能设定它们各自的接口,从而通过多个样板的适当组合配置数据通路或数据流。从而,借助程序18在任何时间在样板部分72中配置多个适用于处理输入数据φin的专用或特定处理单元或者专用数据通路73。
另一方面,在改变输入数据φin上进行的处理的情况下,有可能通过数据流指定指令25改变样板71之间的连接,如图12(C)中所示。Y译码器62y译码数据流指定指令25从而改变相应样板71的各个接口。Y译码器62y的这种控制处理(第二控制步骤)使得能在样板段72中利用彼此串联连接的样板1-1、2-n和m-n配置适应于其它不同处理的一个或多个数据通路73。
另外,还可以把由单个样板71或者多个样板71的组合构成的处理单元分配给另一个并行执行的处理或者程序。在通过适当总线多个处理器51彼此连接的情况下,还有可能配置一个具有为一个主要通过另一个处理器51进行的数据处理组合的各样板71的串(数据通路)73,从而有可能特别有效地使用数据处理资源,即,各个样板71。
另外,和意图甚至要复盖简单的逻辑门例如“和”以及“或”的实现的FPGA不同,本发明的样板71是高层的其中包括某基本上具有ALU或其它逻辑门功能的专用数据通路的数据处理单元,通过数据流指定指令25定义或重新定义样板71各自的接口从而改变样板71的组合。这样,配置较大的适应于所需特定处理的数据通路。同时,还可以通过在样板71内部改变ALU或其它逻辑门等的连接的数据流指定指令25定义处理内容或者各样板71中自身进行的处理。即,通过选择样板内的一部分的内部数据通路还定义和改变样板71中进行的处理内容。
从而,在DFU57的硬件具有多个按本例设置的可为特定数据处理再配置的样板71的情况中,不需要象在FPGA中那样再变换整个芯片或者甚至在有限逻辑块的基础上再变换。替代地,通过改换各样板71中或样板段72中先前设置的数据通路或者通过选择一部分的数据通路,利用事先准备的ALU或逻辑门实现所需的数据通路。换言之,在样板71内部,只是在最少需要下重新设置或重构逻辑门的连接,并且甚至在样板71之间只是在最少需要下重新设置或重构连接。这使得能在非常短和有限的时间内(以时钟脉冲为单元)把硬件改变到适应于特定数据处理的配置。
由于FPGA不包括逻辑门,它们是特别通用的。但是,FPGA包括大量对于形成实现特定应用的逻辑电路非必要的接线,并且这种冗余妨碍信号通路长度的减少。和专用于要执行的应用的ASIC相比,FPGA占据更大的面积并且AC特性下降。相反,采用本发明的事先包含着逻辑门的各样板71的处理器51能够防止FPGA中造成的大的浪费面积并且还能改进AC特性。从而,本实施例中的基于各样板71的数据处理单元57是能通过程序改变硬件的可重构处理器。这样,在本发明中,和采用FPGA的处理器相比,有可能提供软件灵活性更高并且硬件速度性能更高的数据处理系统。
事先在这些样板71中包含适当的逻辑门,从而,以适当密度实现执行特定应用所需的逻辑门。因此,使用各样板71的数据处理单元是经济的。在用FPGA构成数据处理器的情况中,必须考虑频繁地下载用于重构的程序以便补偿封装密度的减少。这种下载所需的时间还降低处理速度。相反,由于使用样板71的处理器51具有高封装密度,对密度降低所需做出的补偿减少,并且不那么需要对硬件的频繁重构。另外,以块为单位控制硬件的重构。在这些方面下,有可能提供基于FPGA可重构处理器难以得到的能通过软件重构硬件的小型、高速数据处理系统。
另外,图11中示出的DFU57包括一个配置寄存器(CREG)75和一个配置RAM(CRAM)76,CREG75能集体地定义或设定样板段72中设置的各样板71的接口和处理内容(以下称为配置数据),CRAM76存储多个要对CREG75设置的配置数据Ci(以下,i表示一适当的整数)。把如“DFSET Ci”的指令提供为数据流指定符25的指令。当Y译码器62y译码该指令时,把存储在CRAM76里的配置数据Ci之中的所需配置数据装入到CREG75中。结果是,集体地改变样板段72中设置的多个样板71的配置。替代地,可以以由多个样板71构成的处理块为基础改变配置。
当Y译码器62y译码诸如上面解释的DFLWI或DFLWC的数据流指定指令25时,也有可能设定或改变单个样板71的配置。另外,如上面提到的那样,因为能用单条指令改变多个需要大量信息的样板71的配置,指令效率得到改进并且减少重物消耗的时间。
DFU57还包括一个控制器77,用于在一个块一个块的基础上把配置数据下载到CRAM76中。另外,把“DFLOAD BCi”设置为一条数据流指定符25指令。当Y译码器62y译码该指令时,和事先在数据RAM53等中准备的大量配置数据78一起把一些用于正在进行的处理或将来可能出现的处理的配置数据Ci预先下载到配置存储器,即,CRAM76。通过这种结构,可把小容量、高速辅助存储器等应用为CRAM76并且硬件变为灵活地和更快地重构。
图13示出样板71的一个例子。该样板71能够通过DFU57中准备的数据流RAM(DFRAM)79和另一个样板71交换数据。另一个样板71的处理结果通过I/O接口81输入到输入高速缓存82a至82d,然后被处理并输出到输出高速缓存83a至83d。该样板71具有一条能够对分别存储在输入高速缓存82a至82d的A、B、C、D进行下述处理并且把运算结果存储在输出高速缓存83b和把比较结果存储在输出高速缓存83c中的数据通路88。通过I/O接口81和DFRAM 79把样板71的处理结果再次输出到另一个样板。IF A=?
THEN(C+B)=D
ELSE(C-B)=D …(A)
该样板具有它自己的配置寄存器84。该样板71中的寄存器84中存储的数据控制多个选择器89,以选择输入到诸如控制部分85、加法器86和比较器87的信号。从而,通过改变样板71中的配置寄存器84里的数据,有可能进行另一个使用数据通路88的一部分的处理。例如,在该样板71中,在不必利用控制部分85下还提供下述处理。
(B+C)=D
(B-C)=D …(B)
类似地,通过改变配置寄存器86中的数据,可以使用数据通路88的一部分,从而把样板71用作为使用控制部分85的条件判定电路、使用加法器86的加/减电路、或使用比较器87的比较电路。这些逻辑门是从样板71中包含的专用电路形成的,从而在电路结构和处理时间上不存在浪费部分。另外,通过由配置寄存器84控制的接口81有可能改变对/从样板71的输入和输出数据配置。这样,样板71全部或部分地变为用于所需数据处理的数据流。
样板71还能根据来自上述CREG75的数据或者来自FU55的Y译码器(YDEC)62y的数据重写它自己的配置寄存器84中的数据,从而通过来自Y译码器62y的信号控制其中的选择。即,根据数据流指定指令25,通过Y译码器62y或者Y译码器62y进行的第二控制步骤控制该样板71的配置。从而,硬件的二种重构是可能的,一种是按照CRAM76中存储的配置数据Ci和别的样板一起根据DFSET指令等改变样板71的硬件配置;另一种是通过由数据流指定指令25设定的配置寄存器84中的数据选择样板71的专用数据通路88的一部分。
从而,通过数据流指定指令或者单独地或者成组地或多个块地改变样板71的配置,由此灵活地重构处理器51的数据通路。
样板71的结构不受限于上面的实施例。有可能设置适当类型和数量的具有逻辑门的样板,以便为实现多种数据处理,进行组合、选择一部分的内部数据通路和改变样板71的组合。更具体地,在本发明中,按几种类型的样板设置有点小型的数据通路。这样,通过指定这些数据通路的组合实现数据流类型的处理,从而在改进的性能状态下进行这些特定的处理。另外,利用处理器51的多用途ALU 56的功能实现这些样板不能管理的任何处理。此外,在该处理器的多用途ALU56中,通过指令组10的Y字段10中说明的准备指令使转移等产生的惩罚为最小。这样,含有本实施例51的系统LSI 50使得可能提供一种高性能的LSI,该LSI能如程序描述处理那样灵活地改变硬件并且它适用于高速和实时处理。该LSI还灵活地应付应用中的改变,技术要求中的改变不会造成处理性能的下降。
当在开发和设计系统LSI 50时知道该系统LSI 50要执行的应用的概要的情况下,有可能主要利用具有适用于该应用的处理的配置的样板配置样板段52。结果是,可以利用数据流类型处理进行数量增加的数据处理,从而改进处理性能。在通过系统LSI 50提供通用LSI的情况下,有可能主要利用适应于通用应用中经常出现的处理,例如浮点运算、乘法和除法、图象处理等,的样板配置样板段72。
这样,依据本发明的指令组和数据处理系统使得提供这样一种LSI成为可能,其具有进行各种处理的数据流或伪数据流并且可以通过软件在任何时刻把执行数据流的硬件改变到适用于特定数据处理的配置。另外,可以在诸如和具有X字段11和Y字段12的指令组10无关的处理器的控制单元或数据处理系统中包含前面提及的通过样板的组合,即DFU 52或样板区72,进行数据流类型处理的体系结构。从而,有可能提供一种和FPGA相比能高速进行处理、在更短时间内改变硬件并具有更佳AC特性的数据处理系统。
还有可能配置一种包括DFU57或样板区72并包括常规通用嵌入式处理器,即利用助记码操作的处理器,的系统LSI。在这种情况下,任何样板71不能应付的处理可由通用处理器进行。然而如上面所说明,常规处理器具有诸如转移代价和浪费用于算术处理的寄存器的准备时钟的问题。因此,需要应用本实施例的能够译码供执行的具有X字段和Y字段的指令组10的处理器51。
另外,借助本实施例的处理器51和指令组10,在执行数据处理之前和通过Y字段12的另一个处理并行地设置或改变DFU 57的配置。这在程序效率和处理效率上是有好处的。还通过在单个指令组中说明常规助记指令码和数据流类型指令码改进程序效率。本实施例的指令组10的Y字段的功能不受限于如上面所解释那样地说明数据流类型指令代码。
依据本发明的处理器能在执行之前通过Y字段12改变物理数据通路或结构。相反,在常规处理器中,仅仅通过共享存储器把多个多处理器彼此连接起来。从而,即使存在空间状态下的处理器,不能从外部使用该处理器的内部数据处理单元。在依据本发明的数据处理器中,设定一适当的数据流能使其它控制单元或数据处理器使用该处理器中未使用的硬件。
作为辅助效果,在本发明的控制单元中以及使用它的处理器中,指令执行序列的效率得到改进,并且确保内部数据通路的独立性和自由程度(可使用性)的改进,从而,即使同时提供用于具有完全不同特性的环境的处理的指令序列,只要可得到执行硬件便成功地执行各处理。
现在,硬件和软件的协调设计的优点变成达到一定高度,并且本发明的指令组和控制单元的组合成为如何在允许的硬件成本内以有效和经济的方式实现用户要求的算法和/或数据处理的一种答案。例如,根据反映已经实现的数据通路的配置的和本发明的指令组有关的数据和/或信息(先前的DAP/DNA)并且根据为执行处理随后添加的硬件和/或序列,和用软件描述的新数据通路(数据流)对应的新组合类型变成用于该处理的最优解决办法并且改进性能同时又使硬件成本为最小。
在常规硬件中,不太会把配置划分到元部件。从而,不存在组合元部件的灵活性,改进性能的主要解决办法是对信号增加新的数据通路。这样,常规体系结构难以根据积累某些改进性能的信息或者增添实际中为实现所需要的性能改进而实施的硬件信息数值地予以评估,从而使得建立数据库是困难的。相反,依据本发明,由于把小型数据通路提供成样板并且指定数据通路的组合以进行数据流类型处理,容易在特别细心的改进性能的方式下评估硬件和软件之间的协调。还有可能累积硬件和软件间的折衷信息,从而,能把各种数据通路组合的可能性紧密地和对处理性能的贡献程序联系起来。这使得有可能把积累和成本、所需的处理信息以及处理执行的性能有关的评估数据紧密地和硬件和软件二者关联起来。另外,由于是在不断开主处理或通用处理的执行下实现数据通路的,可从过去积累的有关硬件以及本发明的指令组的数据预测增加性能要求的期望结果。
从而,本发明不仅对明显地减少目前的设计和技术要求成本而且还对借助添加新硬件和新软件之间的最小折衷完善下一代新设计做出贡献。此外,和处理类型相对应,便利了把内部数据通路借到外部,从而硬件资源共享成为可能。因此,通过本发明的多个模块(DAP/DNA模块)的并行处理变成用来实现小型硬件的最有用方面中的一个方面。
请注意,上面提及的数据处理系统和指令组是本发明的实施例之一,从而,在数据处理器中,也有可能使用外部RAM或ROM代替代码RAM或数据RAM等,并且还利用外部DRAM或SRAM等提供接口。另外还具有作为数据处理器例如系统LSI的周知功能,例如用于连接其它外部部件的I/O接口,的数据处理器也包括在本发明的范围内。因此,通过后面的权利要求书的各条款理解和领会本发明,并且后面的权利要求书复盖的所有修改都在本发明的范围内。
在通过本发明的指令组和数据处理系统提供的新编程环境中,除了前面所描述的之外有可能提供其它专用指令。可能的例子包括:“XFORK”,用于除了现行程序之外还同时激励一个或多个对象(程序)并且支持指令级上的并行处理激励;“XSYNK”,用于同步对象(程序);“XPIPE”,用于指示并行处理之间的流水线连接;以及“XSWITCH”,用于终止现行对象并且激励相继的对象。
如前面已说明的那样,包括着本发明的指令组、利用这些指令组编程以及能执行这些指令组的数据处理系统的本技术是基于重大改进指令组结构或配置的原理的,从而解决现有技术难以对付的已说明过的问题并且在性能上达到明显的改进。
在本发明中,从和常规方式完全不同的角度评述和构建指令组的结构,从而本发明的指令组特别有效地解决许多对于现有技术看起来特别难以解决的问题。实际上,在现有技术中,根据特别标准的传统预想方式利用硬件实现指令组的结构和指令提供(获取)方法,从而在基本观念上阻碍这些问题的解决。常规的利用大型、复杂硬件配置解决所有问题的试图在开发对当今社会作出贡献的技术中造成明显地提高成本。在基于该技术配置的各种信息处理产品中成本也被提高。在本发明中,提供应是本来的并且对应用要求赋予优先级的指令组。从而,本发明提供的手段不仅能改善产品性能效率并且更象能得到产品的高开发效率和质量保证。
另外,依据本发明,可以用资源,即样板和使用这些样板的指令组,积累能改进性能的数据通路(数据流)。这样,任何时候根据随后添加的硬件配置信息以及进行数据处理的序列信息更新积累的数据通路变为可能,因此容易得到最优答案。从而,通过本发明,将以更加希望的方式进行按惯例指出的应用间的资源共享、硬件中的资源共享以及为改善性能的硬件投资,而且,本发明可以对构建网络社会作为技术基础做出重大贡献。
工业应用性
本发明的数据处理系统是按能执行各种数据处理的处理器、LSI等提供的,并且不仅可应用于电子部件的集成电路还可应用于光学部件,并且甚至可应用于集成电子部件和光学部件的光集成电路部件。尤其,包含本发明的指令组的控制程序和数据处理器能在高速下灵活地执行数据处理,并且最好用于需要具有高速性能和实时性能的处理例如网络处理和图象处理。
Claims (39)
1.一种由包括第一字段和第二字段的指令组组成的控制程序产品,其中第一字段描述用来指定在构成一个数据处理系统的至少一个处理单元中执行的操作内容或数据处理内容的执行指令,而第二字段描述把该处理单元设置到准备好执行根据执行指令要执行的操作或数据处理的状态的准备信息,第二字段中的准备信息用于和指令组的第一字段中描述的执行指令的内容无关的操作或数据处理。
2.权利要求1的控制程序产品,其中在第二字段中描述用于在相继的指令组的第一字段中描述的执行指令的准备信息。
3.权利要求1的控制程序产品,其中准备信息包括用于和处理单元的执行计时无关地指定处理单元的输入和/或输出接口的信息。
4.权利要求1的控制程序产品,其中准备信息包括用于指定处理单元的处理内容的信息。
5.权利要求1的控制程序产品,其中数据处理系统包括多个处理单元,并且准备信息包括用于通过这些处理单元指定数据通路的组合的信息。
6.权利要求1的控制程序产品,其中处理单元包括专用内部数据通路,并且准备信息包括用于选择该内部数据通路的一部分的信息。
7.权利要求1的控制程序产品,其中准备信息包括用于指定由多个处理单元构成的处理块中的输入/输出接口的信息。
8.权利要求7的控制程序产品,其中数据处理系统包括一个存储定义该处理块中的输入和/或输出接口的多个配置数据的存储器,并且
准备信息包括用于选择该存储器中存储的多个配置数据中的一个以改变该处理块中的输入和/或输出接口的信息。
9.权利要求1的控制程序产品,其中数据处理系统具有包括作为处理单元的算术/逻辑单元的第一控制单元,并且具有包括作为处理单元组的多个包含着专用内部数据通路的数据流处理单元的第二控制单元,以及
该控制程序产品包括其中在第一字段中描述用于操作该算术/逻辑单元的执行指令和在第二字段中描述指定该算术/逻辑电路和/或这些数据流处理单元的接口的准备信息的指令组。
10.权利要求9的控制程序产品,其中准备信息包括用于通过这些数据流处理单元指定数据通路的组合的信息。
11.权利要求9的控制程序产品,其中准备信息包括用于选择内部数据通路的一部分的信息。
12.权利要求1的控制程序产品,其中在第二字段中描述指定寄存器或缓冲器和存储器之间的输入/输出的指令。
13.权利要求1的控制程序产品,其中分别在第一和/或第二字段中描述多条执行指令和/或准备信息。
14.一种在其上记录一种控制程序的记录媒体,该控制程序由包括第一字段和第二字段的指令组组成,其中第一字段描述用来指定在构成一个数据处理系统的至少一个处理单元中执行的操作内容或数据处理内容的执行指令,而第二字段描述把该处理单元设置到准备好执行根据执行指令要执行的操作或数据处理的状态的准备信息,第二字段中的准备信息用于和指令组的第一字段中描述的执行指令的内容无关的操作或数据处理。
15.一种在其内嵌有一种控制程序的传输媒体,该控制程序由包括第一字段和第二字段的指令组组成,其中第一字段描述用来指定在构成一个数据处理系统的至少一个处理单元中执行的操作内容或数据处理内容的执行指令,而第二字段描述把该处理单元设置到准备好执行根据执行指令要执行的操作或数据处理的状态的准备信息,第二字段中的准备信息用于和指令组的第一字段中描述的执行指令的内容无关的操作或数据处理。
16.一种数据处理系统,包括:
至少一个的处理单元,用于执行操作或数据处理;
一个取指令组的单元,其中指令组包括第一字段和第二字段,第一字段描述用于指定要在该处理单元中执行的操作或数据处理的内容的执行指令,第二字段描述把该处理单元设置到准备好执行根据执行指令要执行的操作或数据处理的状态的准备信息;
第一执行控制单元,用于译码第一字段中的执行指令并且用于通过被预置的处理单元着手该操作或数据处理从而准备好执行该执行指令的操作或数据处理;以及
第二执行控制单元,用于译码第二字段中的准备信息,并且和第一执行控制单元的进行内容无关地设置该处理单元的状态从而准备好执行一操作或数据处理。
17.权利要求16的数据处理系统,其中第一或第二执行控制单元包括多个用于独立地处理多个分别在第一或第二处理字段中描述的独立的执行指令或准备信息的执行控制部分。
18.权利要求16的数据处理系统,其中第二执行控制单元和处理单元的执行计时无关地设定处理单元的输入和/或输出接口。
19.权利要求16的数据处理系统,其中第二执行控制单元定义处理单元的处理内容。
20.权利要求16的数据处理系统包括多个处理单元,其中第二执行控制单元通过这些处理单元控制数据通路的组合。
21.权利要求16的数据处理系统,其中处理单元包括专用内部数据通路。
22.权利要求16的数据处理系统,其中处理单元包括至少一个逻辑门和一条通过输入/输出接口和该逻辑门连接的内部数据通路。
23.权利要求21的数据处理系统,其中第二执行控制单元根据准备信息选择处理单元的内部数据通路的一部分。
24.权利要求16的数据处理系统,其中第二执行控制单元根据准备信息改变由多个处理单元构成的处理块中的输入和/或输出接口。
25.权利要求24的数据处理系统包括一个存储多个定义该处理块中的各输入和/或输出接口的配置数据的存储器,其中
第二执行控制单元根据准备信息通过选择该存储器中存储的多个配置数据中的一个改变该处理块中的输入和/或输出接口。
26.权利要求16的数据处理系统,其中第二执行控制单元具有充当用来管理处理单元的接口的调度器的功能。
27.权利要求16的数据处理系统,还包括包含着一个作为处理单元的算术/逻辑单元的第一控制单元以及具有作为处理单元组的多个包含专用数据通路的数据流处理单元的第二控制单元,其中
第一执行控制单元操作该算术/逻辑单元,以及
第二执行控制单元设定该算术/逻辑单元和/或这些数据流处理单元的接口。
28.权利要求27的数据处理系统,其中第二执行控制单元通过这些数据流处理单元控制数据通路的组合。
29.权利要求27的数据处理系统,其中数据流处理部件具有一条专用内部数据通路,并且第二执行控制单元根据准备信息选择数据流处理单元的内部数据通路的一部分。
30.权利要求16的数据处理系统,其中第二执行控制单元具有控制寄存器或缓冲器和存储器之间的输入/输出的功能。
31.一种用于控制包括至少一个用来执行操作或数据处理的处理单元的数据处理系统的方法,包括:
取包括第一字段和第二字段的指令组的步骤,其中第一字段描述用于指定在该处理单元中执行的操作内容或数据处理内容的执行指令,而第二字段描述把该处理单元设置到准备好执行根据执行指令要执行的操作或数据处理的状态的准备信息;
译码第一字段中的执行指令并且通过被预置的该处理单元着手该操作或数据处理从而准备好执行该执行指令的操作或数据处理的第一控制步骤;以及
与第一控制步骤无关地译码第二字段中的准备信息并设定该处理单元的状态从而准备好执行操作或数据处理的第二控制步骤。
32.权利要求31的方法,其中在第二控制步骤中,和处理单元的执行计时无关地设定该处理单元的输入和/或输出接口。
33.权利要求31的方法,其中在第二控制步骤中,定义该处理单元的处理内容。
34.权利要求31的方法,其中该数据处理系统包括多个处理单元,并且在第二控制步骤中,通过这些处理单元控制数据通路的组合。
35.权利要求31的方法,其中处理单元具有一条专用内部数据通路,并且在第二控制步骤中,选择该处理单元的该内部数据通路的一部分。
36.权利要求31的方法,其中在第二控制步骤中,改变由多个处理单元构成的处理块中的输入和/或输出接口。
37.权利要求31的方法,其中该数据处理系统包括一个存储多个定义该处理块中的输入和/或输出接口的配置数据的存储器,以及
在第二执行步骤中,通过选择该存储器中存储的多个配置数据中的一个改变该处理块中的输入和/或输出接口。
38.权利要求31的方法,其中在第二控制步骤中,管理保持处理单元的接口的进度表。
39.权利要求31的方法,其中在第二控制步骤中,控制寄存器或缓冲器和存储器之间的输入/输出。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP244137/1999 | 1999-08-30 | ||
JP24413799 | 1999-08-30 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004100055960A Division CN1301459C (zh) | 1999-08-30 | 2000-08-30 | 数据处理系统及其控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1321271A true CN1321271A (zh) | 2001-11-07 |
CN1145879C CN1145879C (zh) | 2004-04-14 |
Family
ID=17114319
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB008018251A Expired - Fee Related CN1145879C (zh) | 1999-08-30 | 2000-08-30 | 数据处理系统及其控制方法 |
CNB2004100055960A Expired - Lifetime CN1301459C (zh) | 1999-08-30 | 2000-08-30 | 数据处理系统及其控制方法 |
CNB008018243A Expired - Lifetime CN1148647C (zh) | 1999-08-30 | 2000-08-30 | 数据处理系统及其控制方法 |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004100055960A Expired - Lifetime CN1301459C (zh) | 1999-08-30 | 2000-08-30 | 数据处理系统及其控制方法 |
CNB008018243A Expired - Lifetime CN1148647C (zh) | 1999-08-30 | 2000-08-30 | 数据处理系统及其控制方法 |
Country Status (16)
Country | Link |
---|---|
US (4) | US6904514B1 (zh) |
EP (2) | EP1215569B1 (zh) |
JP (2) | JP4234925B2 (zh) |
KR (2) | KR100497078B1 (zh) |
CN (3) | CN1145879C (zh) |
AT (1) | ATE466330T1 (zh) |
AU (3) | AU6864400A (zh) |
BR (2) | BR0013594A (zh) |
CA (2) | CA2348261C (zh) |
DE (1) | DE60044300D1 (zh) |
EA (2) | EA004196B1 (zh) |
HK (1) | HK1047326A1 (zh) |
IL (4) | IL142676A0 (zh) |
NZ (2) | NZ516679A (zh) |
TW (2) | TW504608B (zh) |
WO (3) | WO2001016711A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106843810A (zh) * | 2013-03-15 | 2017-06-13 | 英特尔公司 | 跟踪指令的控制流程 |
CN108027806A (zh) * | 2015-09-22 | 2018-05-11 | 高通股份有限公司 | 在基于块的数据流指令集架构(isa)中配置粗粒度可配置阵列(cgra)以用于数据流指令块执行 |
CN110663225A (zh) * | 2017-05-24 | 2020-01-07 | Wago管理有限责任公司 | 数据总线用户设备的初始化 |
Families Citing this family (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE60044300D1 (de) * | 1999-08-30 | 2010-06-10 | Ip Flex Inc | Daten-prozessor |
JP2003140886A (ja) * | 2001-10-31 | 2003-05-16 | Seiko Epson Corp | インストラクションセット及びコンパイラ |
US7679398B2 (en) * | 2002-07-17 | 2010-03-16 | Osann Jr Robert | Reprogrammable instruction DSP |
US7093225B2 (en) * | 2002-07-17 | 2006-08-15 | Osann Robert Jr | FPGA with hybrid interconnect |
JP4002151B2 (ja) * | 2002-07-31 | 2007-10-31 | 富士通株式会社 | 情報処理装置 |
US20070186076A1 (en) * | 2003-06-18 | 2007-08-09 | Jones Anthony M | Data pipeline transport system |
KR20060063800A (ko) * | 2003-06-18 | 2006-06-12 | 앰브릭, 인크. | 집적 회로 개발 시스템 |
US20050097306A1 (en) * | 2003-09-29 | 2005-05-05 | Gajski Daniel D. | No-instruction-set-computer processor |
DE10360998B4 (de) * | 2003-12-23 | 2008-09-04 | Infineon Technologies Ag | Schutz von Chips gegen Attacken |
US7937557B2 (en) | 2004-03-16 | 2011-05-03 | Vns Portfolio Llc | System and method for intercommunication between computers in an array |
US9047094B2 (en) * | 2004-03-31 | 2015-06-02 | Icera Inc. | Apparatus and method for separate asymmetric control processing and data path processing in a dual path processor |
JP4451733B2 (ja) * | 2004-06-30 | 2010-04-14 | 富士通マイクロエレクトロニクス株式会社 | 半導体装置 |
US7779380B2 (en) * | 2004-10-28 | 2010-08-17 | Ipflex Inc. | Data processing apparatus including reconfigurable logic circuit |
CN100346292C (zh) * | 2005-12-02 | 2007-10-31 | 浙江大学 | 多地址空间异步计算等待响应指令的控制方法 |
JP4795025B2 (ja) * | 2006-01-13 | 2011-10-19 | キヤノン株式会社 | ダイナミックリコンフィギャラブルデバイス、制御方法、及びプログラム |
US7617383B2 (en) * | 2006-02-16 | 2009-11-10 | Vns Portfolio Llc | Circular register arrays of a computer |
US7904615B2 (en) * | 2006-02-16 | 2011-03-08 | Vns Portfolio Llc | Asynchronous computer communication |
US7966481B2 (en) | 2006-02-16 | 2011-06-21 | Vns Portfolio Llc | Computer system and method for executing port communications without interrupting the receiving computer |
JP4410297B2 (ja) * | 2006-03-09 | 2010-02-03 | 富士通株式会社 | リコンフィギャラブル回路 |
US7555637B2 (en) * | 2007-04-27 | 2009-06-30 | Vns Portfolio Llc | Multi-port read/write operations based on register bits set for indicating select ports and transfer directions |
EP2148272B1 (en) * | 2007-05-17 | 2012-08-08 | Fujitsu Limited | Calculation unit, processor, and processor architecture |
US7752592B2 (en) * | 2007-10-10 | 2010-07-06 | International Business Machines Corporation | Scheduler design to optimize system performance using configurable acceleration engines |
US20100023730A1 (en) * | 2008-07-24 | 2010-01-28 | Vns Portfolio Llc | Circular Register Arrays of a Computer |
US8898051B2 (en) * | 2009-06-12 | 2014-11-25 | Cadence Design Systems, Inc. | System and method for implementing a trace interface |
JP5718558B2 (ja) * | 2009-09-16 | 2015-05-13 | 富士ゼロックス株式会社 | 画像データ処理装置 |
TWI563479B (en) * | 2009-12-30 | 2016-12-21 | Tatung Co | Field emission display |
JP5617282B2 (ja) * | 2010-03-09 | 2014-11-05 | 富士通セミコンダクター株式会社 | データ処理システム |
WO2011121709A1 (ja) * | 2010-03-29 | 2011-10-06 | 株式会社東芝 | 半導体装置 |
GB2483903A (en) * | 2010-09-24 | 2012-03-28 | Advanced Risc Mach Ltd | Instruction which specifies the type of the next instruction to be executed |
US9412022B2 (en) * | 2012-09-06 | 2016-08-09 | Leonard Flom | Iris identification system and method |
JP6321325B2 (ja) | 2013-04-03 | 2018-05-09 | ルネサスエレクトロニクス株式会社 | 情報処理装置および情報処理方法 |
KR102276718B1 (ko) * | 2015-11-25 | 2021-07-13 | 삼성전자주식회사 | Vliw 인터페이스 장치 및 제어 방법 |
RU182446U1 (ru) * | 2018-03-13 | 2018-08-17 | Федеральное государственное бюджетное образовательное учреждение высшего образования "Казанский государственный энергетический университет" | Усовершенствованное устройство проверки однородности нескольких однотипных выборок |
CN110209629B (zh) * | 2019-07-15 | 2023-12-15 | 北京一流科技有限公司 | 协处理器的数据处理路径中的数据流动加速装置及其方法 |
CN113760364B (zh) * | 2020-06-03 | 2022-06-17 | 广东高云半导体科技股份有限公司 | 逻辑器件的控制器 |
Family Cites Families (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5626062B2 (zh) | 1973-12-12 | 1981-06-16 | ||
JPS61294548A (ja) * | 1985-06-21 | 1986-12-25 | Toshiba Corp | 機械命令実行装置 |
US5038386A (en) | 1986-08-29 | 1991-08-06 | International Business Machines Corporation | Polymorphic mesh network image processing system |
JPS6482131A (en) * | 1987-09-24 | 1989-03-28 | Mitsubishi Electric Corp | Data processor |
JPH01156824A (ja) * | 1987-12-14 | 1989-06-20 | Hitachi Ltd | マイクロプロセッサ |
JPH02183332A (ja) * | 1989-01-10 | 1990-07-17 | Fujitsu Ltd | プログラムド制御方式 |
GB9123271D0 (en) | 1991-11-02 | 1991-12-18 | Int Computers Ltd | Data processing system |
US5452455A (en) * | 1992-06-15 | 1995-09-19 | International Business Machines Corporation | Asynchronous command support for shared channels for a computer complex having multiple operating systems |
JP3684579B2 (ja) * | 1993-04-27 | 2005-08-17 | 富士通株式会社 | 分散型並列計算機のプロセッサエレメント |
US5535406A (en) * | 1993-12-29 | 1996-07-09 | Kolchinsky; Alexander | Virtual processor module including a reconfigurable programmable matrix |
US5551570B1 (en) | 1994-02-02 | 1999-10-05 | Tartan Paper Products | Decorative packaging system including a method and kit therefor |
JPH07253882A (ja) * | 1994-03-15 | 1995-10-03 | Hitachi Ltd | 命令制御装置 |
JPH07319692A (ja) * | 1994-05-25 | 1995-12-08 | Fuji Electric Co Ltd | プログラマブルコントローラ |
US5617431A (en) * | 1994-08-02 | 1997-04-01 | Advanced Micro Devices, Inc. | Method and apparatus to reuse existing test patterns to test a single integrated circuit containing previously existing cores |
US6128720A (en) * | 1994-12-29 | 2000-10-03 | International Business Machines Corporation | Distributed processing array with component processors performing customized interpretation of instructions |
US6052773A (en) | 1995-02-10 | 2000-04-18 | Massachusetts Institute Of Technology | DPGA-coupled microprocessors |
US5742180A (en) | 1995-02-10 | 1998-04-21 | Massachusetts Institute Of Technology | Dynamically programmable gate array with multiple contexts |
JP2987308B2 (ja) * | 1995-04-28 | 1999-12-06 | 松下電器産業株式会社 | 情報処理装置 |
US5826072A (en) * | 1995-11-13 | 1998-10-20 | Oasis Design, Inc. | Pipelined digital signal processor and signal processing system employing same |
US5956518A (en) | 1996-04-11 | 1999-09-21 | Massachusetts Institute Of Technology | Intermediate-grain reconfigurable processing device |
US5771362A (en) * | 1996-05-17 | 1998-06-23 | Advanced Micro Devices, Inc. | Processor having a bus interconnect which is dynamically reconfigurable in response to an instruction field |
US6023564A (en) * | 1996-07-19 | 2000-02-08 | Xilinx, Inc. | Data processing system using a flash reconfigurable logic device as a dynamic execution unit for a sequence of instructions |
US5805875A (en) * | 1996-09-13 | 1998-09-08 | International Computer Science Institute | Vector processing system with multi-operation, run-time configurable pipelines |
DE19654846A1 (de) * | 1996-12-27 | 1998-07-09 | Pact Inf Tech Gmbh | Verfahren zum selbständigen dynamischen Umladen von Datenflußprozessoren (DFPs) sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen (FPGAs, DPGAs, o. dgl.) |
JPH10260832A (ja) * | 1997-03-18 | 1998-09-29 | Hitachi Ltd | 情報処理装置 |
JP3790607B2 (ja) * | 1997-06-16 | 2006-06-28 | 松下電器産業株式会社 | Vliwプロセッサ |
US5966534A (en) | 1997-06-27 | 1999-10-12 | Cooke; Laurence H. | Method for compiling high level programming languages into an integrated processor with reconfigurable logic |
US5970254A (en) | 1997-06-27 | 1999-10-19 | Cooke; Laurence H. | Integrated processor and programmable data path chip for reconfigurable computing |
JP3414209B2 (ja) | 1997-07-30 | 2003-06-09 | 松下電器産業株式会社 | プロセッサ |
JP3449186B2 (ja) * | 1997-08-19 | 2003-09-22 | 富士通株式会社 | パイプラインバイパス機能を有するデータ処理装置 |
US6282627B1 (en) * | 1998-06-29 | 2001-08-28 | Chameleon Systems, Inc. | Integrated processor and programmable data path chip for reconfigurable computing |
US6647511B1 (en) * | 1998-09-17 | 2003-11-11 | Texas Instruments Incorporated | Reconfigurable datapath for processor debug functions |
JP2000207202A (ja) | 1998-10-29 | 2000-07-28 | Pacific Design Kk | 制御装置およびデ―タ処理装置 |
US6181163B1 (en) * | 1999-01-21 | 2001-01-30 | Vantis Corporation | FPGA integrated circuit having embedded SRAM memory blocks and interconnect channel for broadcasting address and control signals |
US6477683B1 (en) * | 1999-02-05 | 2002-11-05 | Tensilica, Inc. | Automated processor generation system for designing a configurable processor and method for the same |
DE60044300D1 (de) * | 1999-08-30 | 2010-06-10 | Ip Flex Inc | Daten-prozessor |
-
2000
- 2000-08-30 DE DE60044300T patent/DE60044300D1/de not_active Expired - Lifetime
- 2000-08-30 AU AU68644/00A patent/AU6864400A/en not_active Abandoned
- 2000-08-30 EP EP00956782A patent/EP1215569B1/en not_active Expired - Lifetime
- 2000-08-30 EP EP00956783A patent/EP1134654A4/en not_active Withdrawn
- 2000-08-30 JP JP2001520598A patent/JP4234925B2/ja not_active Expired - Lifetime
- 2000-08-30 KR KR10-2001-7005452A patent/KR100497078B1/ko not_active IP Right Cessation
- 2000-08-30 NZ NZ516679A patent/NZ516679A/en not_active IP Right Cessation
- 2000-08-30 US US09/830,704 patent/US6904514B1/en not_active Expired - Lifetime
- 2000-08-30 WO PCT/JP2000/005849 patent/WO2001016711A1/ja not_active Application Discontinuation
- 2000-08-30 AU AU68642/00A patent/AU782238B2/en not_active Ceased
- 2000-08-30 IL IL14267600A patent/IL142676A0/xx active IP Right Grant
- 2000-08-30 AT AT00956782T patent/ATE466330T1/de not_active IP Right Cessation
- 2000-08-30 TW TW089117580A patent/TW504608B/zh not_active IP Right Cessation
- 2000-08-30 CA CA002348261A patent/CA2348261C/en not_active Expired - Fee Related
- 2000-08-30 AU AU68643/00A patent/AU776972B2/en not_active Ceased
- 2000-08-30 CN CNB008018251A patent/CN1145879C/zh not_active Expired - Fee Related
- 2000-08-30 CN CNB2004100055960A patent/CN1301459C/zh not_active Expired - Lifetime
- 2000-08-30 NZ NZ516680A patent/NZ516680A/en not_active IP Right Cessation
- 2000-08-30 WO PCT/JP2000/005850 patent/WO2001016717A1/ja active Application Filing
- 2000-08-30 TW TW089117579A patent/TW495711B/zh not_active IP Right Cessation
- 2000-08-30 BR BR0013594-1A patent/BR0013594A/pt not_active IP Right Cessation
- 2000-08-30 EA EA200200310A patent/EA004196B1/ru not_active IP Right Cessation
- 2000-08-30 CN CNB008018243A patent/CN1148647C/zh not_active Expired - Lifetime
- 2000-08-30 EA EA200200309A patent/EA004071B1/ru not_active IP Right Cessation
- 2000-08-30 WO PCT/JP2000/005848 patent/WO2001016710A1/ja active IP Right Grant
- 2000-08-30 US US09/830,664 patent/US6826674B1/en not_active Expired - Lifetime
- 2000-08-30 CA CA002348259A patent/CA2348259A1/en not_active Abandoned
- 2000-08-30 BR BR0013595-0A patent/BR0013595A/pt not_active IP Right Cessation
- 2000-08-30 IL IL14267500A patent/IL142675A0/xx active IP Right Grant
- 2000-08-30 KR KR10-2001-7005453A patent/KR100491593B1/ko active IP Right Grant
- 2000-08-30 JP JP2001520597A patent/JP3842129B2/ja not_active Expired - Lifetime
-
2001
- 2001-04-18 IL IL142676A patent/IL142676A/en not_active IP Right Cessation
- 2001-04-18 IL IL142675A patent/IL142675A/en not_active IP Right Cessation
-
2002
- 2002-11-13 HK HK02108232.9A patent/HK1047326A1/zh unknown
-
2004
- 2004-09-22 US US10/946,746 patent/US20050038550A1/en not_active Abandoned
-
2005
- 2005-04-11 US US11/103,345 patent/US20050240757A1/en not_active Abandoned
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106843810A (zh) * | 2013-03-15 | 2017-06-13 | 英特尔公司 | 跟踪指令的控制流程 |
CN108027806A (zh) * | 2015-09-22 | 2018-05-11 | 高通股份有限公司 | 在基于块的数据流指令集架构(isa)中配置粗粒度可配置阵列(cgra)以用于数据流指令块执行 |
CN110663225A (zh) * | 2017-05-24 | 2020-01-07 | Wago管理有限责任公司 | 数据总线用户设备的初始化 |
CN110663225B (zh) * | 2017-05-24 | 2022-02-18 | Wago管理有限责任公司 | 数据总线用户设备的初始化 |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1301459C (zh) | 数据处理系统及其控制方法 | |
CN106547518B (zh) | 用于加速器的低等待时间调用的装置和方法 | |
CN105051678B (zh) | 异构处理器装置和方法 | |
US20170235578A1 (en) | Method and Apparatus for Scheduling of Instructions in a Multi-Strand Out-Of-Order Processor | |
CN106293640A (zh) | 用于紧密耦合的异构计算的硬件处理器和方法 | |
JP2011525008A (ja) | リアルタイムデータ処理のための方法&装置 | |
TW201741872A (zh) | 根據指令類型來配置負載及儲存緩衝器的處理器、方法及系統 | |
US20080294871A1 (en) | Multidimensional processor architecture | |
TW201741867A (zh) | 記憶體複製指令、處理器、方法及系統 | |
Wolf et al. | Amidar project: lessons learned in 15 years of researching adaptive processors | |
US20230367604A1 (en) | Method of interleaved processing on a general-purpose computing core | |
CN1595351A (zh) | 一种基于mips指令集的处理器的多线程方法和装置 | |
JP2004102988A (ja) | データ処理装置 | |
WO2007039837A2 (en) | Implied instruction set computing (iisc) / dual instruction set computing (disc) / single instruction set computing (sisc) / recurring multiple instruction set computing (rmisc) based computing machine / apparatus / processor | |
Dou et al. | A coarse-grained reconfigurable computing architecture with loop self-pipelining | |
Albishri | Design & Development of a High-speed Performance ALU by Using Execution Modes and Multi-Operand Operation | |
US20080270773A1 (en) | Processing element having dual control stores to minimize branch latency | |
JP2004005739A (ja) | データ処理装置の制御方法 | |
Döbrich | Performance Improvement of Adaptive Processors | |
JP2011128672A (ja) | スーパースカラプロセッサ及びその命令処理方法 | |
Chen et al. | Embedded Processor Design |
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 | ||
C19 | Lapse of patent right due to non-payment of the annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |