CN1321270A - 程序产品及数据处理系统 - Google Patents

程序产品及数据处理系统 Download PDF

Info

Publication number
CN1321270A
CN1321270A CN00801824A CN00801824A CN1321270A CN 1321270 A CN1321270 A CN 1321270A CN 00801824 A CN00801824 A CN 00801824A CN 00801824 A CN00801824 A CN 00801824A CN 1321270 A CN1321270 A CN 1321270A
Authority
CN
China
Prior art keywords
data
data stream
processing unit
processing
designated order
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
CN00801824A
Other languages
English (en)
Other versions
CN1148647C (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.)
IP Flex Inc
Fujifilm Business Innovation Corp
Original Assignee
IP Flex 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 IP Flex Inc filed Critical IP Flex Inc
Publication of CN1321270A publication Critical patent/CN1321270A/zh
Application granted granted Critical
Publication of CN1148647C publication Critical patent/CN1148647C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • 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/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • G06F9/30167Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
    • 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
    • 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/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3893Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator
    • G06F9/3895Concurrent 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/3897Concurrent 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)
  • Executing Machine-Instructions (AREA)
  • Debugging And Monitoring (AREA)
  • Communication Control (AREA)
  • Circuits Of Receivers In General (AREA)
  • Image Processing (AREA)
  • Saccharide Compounds (AREA)
  • Eye Examination Apparatus (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Facsimiles In General (AREA)
  • Vehicle Body Suspensions (AREA)
  • Steering Control In Accordance With Driving Conditions (AREA)
  • Input Circuits Of Receivers And Coupling Of Receivers And Audio Equipment (AREA)

Abstract

在本发明中,独立于处理单元的执行时序指定多个处理单元中至少一个处理单元的输入和/或输出接口,以允许多个处理单元在程序级上定义各种数据通路,其中多个处理单元构成了一个数据处理系统。本发明在不需要针对各种数据处理的专用电路的情况下,可以按硬件提供的高速度灵活地执行各种复杂的数据处理。

Description

程序产品及数据处理系统
本发明涉及用微代码等描述的控制程序产品以及能执行该控制程序的数据处理系统。
含有诸如微处理器(MPU)和数字信号处理器(DSP)的操作功能的处理器(数据处理系统或LSI)称为用于实现通用处理和专用数字数据处理的设备。明显有助于改进这些处理器的性能的体系结构因素包括流水线技术、超流水线技术、超标量技术、VLIW技术和添加专用数据通路(专用指令)。体系结构要素还包括分支预测、寄存器组、高速缓存技术等等。
在VLIW技术中,事先配置数据通路以允许并行执行,进行优化从而编译程序改进并行执行并且产生适当的VLIW指令码。该技术采用一种特别合理的思路,消除掉超标量中所需要的用来检查各条指令的并行执行的似然性的电路。从而该技术被当成是特别有希望作为实现用于并行执行的硬件的手段。然而,当处理应用的处理器需要进行图象处理或特殊数据处理时,VLIW不是最优的解决办法。这是因为,尤其当应用需要利用操作结果进行连续或序贯处理时,VLIW中在通用寄存器中保持数据的同时要执行操作或对该数据进行处理存在着限制。该问题是和常规流水线技术中的问题是相同的。
另一方面,从过去的经验知道,当在专用电路实现时可以以更高的性能进行各种矩阵计算、向量计算等。从而,在用于达到最高性能的最先进的技术中,基于VLIW的思想变成是带有根据应用的用途设置的各种专用算术电路的。
然而,VLIW是改进程序计数器附近的并行处理执行效率的技术。从而,VLIW在例如同时执行二个或多个对象或者执行二个或多个子例程中不是那样有效的。另外,设置各种专用算术电路增加了硬件,并且还降低了软件灵活性。
FPGA(现场可编程门阵列)结构可以改变晶体管之间的连接并且在某种程度上可以进行动态控制从而可以实现各种专用算术运算电路。然而,在基于FPGA结构中,动态地改变硬件要消耗许多时间,并且为了减少该配置时间需要附加的硬件。于是,在实际执行应用期间,难于动态控制硬件,并且这也不是一个经济的解决方案。有可能在具有二个面或更多面的RAM中存储FPGA的再配置信息并且在后台执行再配置从而在明显缩短的时间内动态改变体系结构。然而,为了能在几个时钟内进行再配置,需要装配一个RAM并存储重构信息所有可能的组合。这实质上并不解决FPGA的长再配置时间的经济问题。另外,由于FPGA用于能得到基于门式硬件的有效映射的体系结构,迄今看来尚未解决FPGA的原始问题即FPGA在实用层上的不良AC特性。
于是,本发明的目的是提供一种系统(如程序产品,执行该程序的数据处理系统)和该处理系统的控制方法,在该系统中,可以以高速度灵活地执行复杂的数据处理,而不需要使用专用于原始数据处理的各种专用电路。本发明的另一目的是提供一种更经济的数据处理系统,处理系统的控制方法以及程序产品,即使在执行应用时也可以动态地进行硬件控制,并且能在硬件级上实现软件级的灵活性,并且可以以高速度执行各种数据处理。
于是,本发明提供一种控制数据处理系统的程序产品,其中数据处理系统包括多个处理单元。该程序产品或程序装置包括数据流指定指令,用于独立于处理单元的执行时间或时序指定至少一个处理单元的输入和/或输出接口,从而定义该处理单元配置的数据通路。可以以记录或存储在数据处理系统的可读记录介质的形式,如ROM或RAM,提供该程序。该程序也可以以嵌入能够通过计算机网络或其他通信设施传输的传输介质中形式提供。
本发明还提供一种数据处理系统,包括多个处理单元,其中多个处理单元包括可变的输入和/或输出接口;取数据流指定指令的单元,数据流指定指令用于独立于处理单元的执行时间或时序指定至少一个处理单元的输入和/或输出接口;以及,数据流指定单元,用于对数据流指定指令进行译码并且设置处理单元的输入和/或输出接口,以配置多个处理单元的数据通路。本发明的程序产品控制处理系统。因此,由多个处理单元的组合形成的数据通路可以随着程序而改变,从而可以由硬件执行各种数据处理,即,适用于各种处理的数据通路或数据流。
根据本发明的控制数据处理系统的方法包括步骤:取数据流指定指令,该指令用于独立于处理单元的执行时序指定至少一个处理单元的输入和/或输出接口;以及,数据流指定步骤,对数据流指定指令进行译码,并设置处理单元的输入和/或输出接口,从而由多个处理单元配置某个数据通路。
传统上,处理复杂的数据处理的唯一方式是准备专用电路并且使用该电路实现专用指令,于是增加硬件成本。相反,在本发明的系统(诸如程序产品),数据处理系统及其控制方法中,描述了作为算术运算/逻辑单元的处理单元的接口,从而可以将流水线控制结构和数据通路控制引入指令组,即程序产品。这允许用程序描述各种数据处理和用合适硬件执行各种数据处理,从而本发明提供的数据处理系统既具有软件灵活性又具有由专用电路提供的高速性能。此外,在不继续执行主处理或通用处理的情况下可以实现这些数据通路,于是,在执行应用期间能动态地配置硬件。
此外,本发明提供的装置不仅在执行程序计数器附近的并行处理时有效,并且在同时伪执行两个或多个对象以及同时伪执行两个或多个函数时也是有效的。换句话说,在传统的指令组中,分别基于远程程序计数器的两个或多个处理(诸如具有不同语境的数据处理和算术运算执行)不能同时激活。相反,在本发明中,使用数据流指定指令合适地指定的数据流使上述处理与程序计数器无关地执行。
因此,使用该指令组,可以事先由软件加入那些对于改进应用方的并行处理性能有效的数据通路,从而在指令级由软件按需要激活由此实现的数据通路(数据流)。由此这些数据通路不仅用于对应于专门用途的数据处理,而且还用于实现通用状态机的目的,本发明的结构具有非常高的自由度。
此外,本发明可以通过根据数据流指定指令指定处理单元的接口来改变由处理单元组合形成的数据通路。因此,与FPGA中改变晶体管之间的连接不同,仅通过切换具有合适和/或专用数据处理功能的处理单元之间的接口就可以定义数据通路。于是,在短时间内可以重新配置硬件。此外,本发明的数据处理系统不需要象FPGA中晶体管级那样的通用结构,可以改进安装或封装的密度,从而更紧致,可以提供如系统LSI那么经济的数据处理器。此外,用于减少了冗余结构,可以提高处理速度并且可以改进AC特性。
于是,在根据本发明的程序、数据处理系统和其控制方法中,记录或描述了定义数据处理系统的至少一个处理单元的接口的指令。于是,可以使数据流变为可描述的并可以改进数据通路的独立性。结果,可以容易地提供能够在执行程序的其他指令时进行数据流指定的结构,甚至在理想状态下允许将数据处理系统的内部数据通路借给正在同一芯片的其他外部数据处理器和其他数据处理系统中执行的更紧急的处理。
此外,还希望可以根据数据通路指定指令改变能够通过组合配置数据通路的处理单元中的处理内容和功能。换句话说,在数据流指定单元和数据流指定步骤,希望根据数据流指定指令改变处理单元中的处理内容。这可以改进由处理单元的组合形成的数据通路的灵活性,从而在减少硬件资源情况可以增加数据流类型处理所能进行的数据处理的数目,从而可以改进性能。
可以在各个处理单元中使用FPGA结构。然而,如上所述,动态改变或重新配置硬件需要较长的时间,并且为了减少重新配置的时间需要附加硬件。这样就难于在执行应用期间在处理单元中动态控制硬件。即使对于瞬时切换,用库结构来提供多个RAM,在几个或几十个时钟单元上的切换仍需要相当数量的库结构。于是,基本上需要使FPGA中的每个宏单元可编程地独立于实现基于程序控制机制的切换时间或时序并且是可检测的。然而,当前的FPGA结构不足以处理这种结构,并且需要一种在合适的时刻指定切换的新的指令控制机制。
因此,在本发明中,希望使用包括专用内部数据通路的电路作为处理单元。按模板准备具有紧致数据通路的处理单元并且指定数据通路的组合以进行数据流类型的处理。此外,根据数据流指定指令选择单元的内部数据通路的一部分以改变处理单元中进行处理的功能和内容。结果,可以在短时间内灵活地重新配置硬件。
例如,包括至少一个逻辑门和使用输入/输出接口连接逻辑门的内部数据通路的处理单元使得通过改变输入到逻辑门中或从逻辑门中输出的数据次序,改变逻辑门之间的连接或选择逻辑门来改变处理单元的处理内容成为可能,并且可以仅通过选择事先准备的内部数据通路的一部分来进行这些选择和/或改变。于是,与可以在晶体管级重新配置电路的FPGA相比,可以在短时间内改变处理单元的处理内容。此外,使用事先准备好用于某些目的的内部数据通路可以减小冗余电路元件的数目并且可以增加晶体管的单位面积使用率。因此,提高了安装或封装的密度并提供更加经济的处理系统。在该系统中,提供了适于高速处理的数据通路并且使系统的AC特性更加完美。于是,在本发明中,希望数据流指定单元或步骤能够根据数据流指定指令选择处理单元的内部数据通路的一部分。
希望数据流指定单元具有调度器的功能,可以管理处理单元的接口,从而管理基于数据流指定指令设置的每个处理单元的接口的调度。例如,仅在固定时间进行矩阵运算并且其后进行筛选的情况下,在执行每个处理之前进行数据处理系统内的处理单元之间的连接,并且使用时间计数器来保持每个连接。如果使用其他比较电路或外部事件检测器来代替时间计数器,则可以实现更复杂和更灵活的调度。
此外,希望根据数据流指定指令定义由多个处理单元形成的处理块的输入和/或输出接口。由于使用单条指令,使多个处理单元中的接口成为可变的或可配置的,与多个处理单元相关的数据通路对于单条指令成为可变的或可重新配置的。因此,在数据流指定单元中,希望根据数据流指定指令改变或配置由多个处理单元形成的处理块中的输入和/或输出接口。
希望提供存储多个配置数据的存储器,其中配置数据定义处理块中的输入和/或输出接口,并在数据流指定单元或步骤中,通过根据数据流指定指令选择存储器中存储的多个配置数据中的一个来改变处理块中的输入和/或输出接口。由于通过数据流指定指令指定配置数据,使得改变多个处理单元的接口成为可由程序控制的,并且指令本身不是冗余的。
图1示出本发明的包括数据流指定指令的指令组。
图2更详细地示出图1的指令组的Y字段。
图3示出使用图1的指令组的一个例子。
图4示出通过图3的指令组如何在寄存器中存储数据。
图5示出用于执行本发明的指令组的数据处理系统。
图6示出用常规CPU或DSP执行的一个程序。
图7示出一个依据本发明的数据处理系统的程序。
图8示出利用本发明的指令组的图7程序的编译后的程序。
图9示出另一个依据本发明的数据处理系统的程序。
图10示出通过图9的程序配置的数据流。
图11示出能够指定数据流的数据处理系统的另一个例子。
图12示出如何改变数据通路。
图13示出另一个通过本发明的指令组执行数据处理的数据处理系统。
图14示出如何利用样板的不同组合构成不同的专用电路。
图15示出样板中的一个。
以下参照各附图更详细地说明本发明。图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以及其使用意图是通过AID 21定义的地址信息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字段中不说明指令(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的示意结构。在代码ROM 39中保存具有本实施例的指令组10的微代码或微程序18。控制单元30包括一个取单元31和第一执行控制单元32,其中取单元31用于一旦需要时根据一个程序计数器从代码ROM 39取该微程序的一个指令组10,而第一执行控制单元32具有译码取出的指令组10的X字段11从而确定或断言ALU 34的操作的功能以及选择目的地寄存器34d从而锁存ALU34中的逻辑运算结果的功能。
控制单元30还包括第二执行控制单元33,其具有根据X字段11的类型字段16中的信息译码取出的指令组10的Y字段以及选择算术处理单元(ALU)34的源寄存器组34s的功能。该第二执行控制单元33能够独立于X字段的说明(类型字段16中的信息除外)解释Y字段12中的指令或信息。若Y字段12中说明的信息定义数据流,第二执行控制单元33还具有选择或设定ALU 34的源侧和目的地侧,即确定ALU的接口,以及在预定时钟之间或者给出取消指令之前持续地保持该状态的功能。另外,在Y字段12中的信息定义数据流的情况下,第二执行控制单元33还确定ALU 34的操作(处理内容)并且按预定的周期保持该状态。
控制单元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。以记录或存储在ROM 39、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”。
这样,依据本发明的指令组,执行指令是和说明用于执行源执行指令的接口和/或其它信息的准备指令分开的。另外,准备指令是在在执行指令之前取出的指令组中说明的。因此,通过每个指令组中说明的执行指令,由于已对ALU 34源侧读出或分配数据,简单地或只执行和算术运算对应的执行。从而,得到出色的AC特性和改进的执行频率特性。另外,尽管执行指令的操作计时和常规流水线的计时不同,但如常规流水线那样,诸如指令取、寄存器译码和其它处理是以分阶段的方式执行的。从而,吞吐量也得到改进。
另外,该实施例的程序能在单个指令组中说明二条指令。从而,通过象VLIW在程序计数器附近并行执行多条指令,处理速度得到进一步改进。
另外,在该程序43中,在第四指令组的执行指令字段15中说明条件转移,并且在前面的第三指令组的Y字段12中说明源分支目的地的地址。从而,一旦执行第四指令组或者执行之前,对取寄存器设置该分支目的地地址。这样,当满足转移条件时,无任何惩罚地取和/或执行分支目的地处的指令组。也可能预取分支目的地处的指令,从而可以事先对执行分支目的地处的执行指令做出准备。因此,甚至在损失一个时钟下执行分支目的地处的指令。这样,在逐个时钟的基础上准确地定义处理。
图9示出本发明的程序44,其利用本发明的指令组10的Y字段12定义数据流指定指令25。可以以存储或保存在ROM39,RAM或其他数据处理系统可读的记录介质上的形式提供具有这样数据流指定指令25的程序产品。此外,程序产品44或18可以嵌入传输介质并且可以通过网络分发。在该程序44中说明的数据流指定指令25中,“DFLWI”是用于初始化数据流的指令,而“DFLWC”是定义形成该数据流(数据通路)的算术处理单元34的连接信息(接口信息)和处理内容(功能)的指令。“DFLWT”是定义数据流的终止条件的指令。结束处的指令“DFLWS”用于对所定义的数据流输入数据和激励该数据通路的处理。在Y字段12中作为准备信息说明这些数据流指定指令25并且由第二执行控制单元33译码,从而通过处理单元34设置用于进行这些数据处理的结构(配置)。
为执行图9中示出的程序44时,第二执行控制单元按第二控制步骤和该处理单元的执行时间或计时无关地设置该处理单元的输入和/或输出接口,并且根据该程序中对数据流的规定定义该处理单元中要执行的处理的内容。另外,第二执行控制单元33还充当调度器36以在第二控制步骤中管理保持有关处理单元44的接口的进度表。
从而,如图10中所示,充当调度器36的第二执行控制单元33定义三个算术处理单元34的有关接口(输入/输出)以及处理的内容或功能,并且在满足结束条件之前保持这些状态和/或配置。这样,通过利用这些算术处理单元34配置的数据流或数据通路,和程序计数器无关按顺序地进行和图6中所示相同的处理。换言之,通过指定数据流,在由三个算术处理单元34执行之前在控制单元30中设置用于该处理的专用电路。从而,在和程序计数器的控制无关下执行得到最大值的处理。若充当DP1.SUB的ALU 34判定DP1.R1和#END对应,该数据流结束。
这样,如图9中所示,该数据流的定义能在不使用任何转移指令下进行和图6或7中示出的程序相同的处理。从而,尽管控制单元30是通用的,它有效地并且速度特别高地进行专用的处理,好象一个具有用于该专用处理的专用电路的控制单元那样。
依据本发明的指令组和控制电路有可能在控制单元中设置用于各种处理的数据流或超数据流。还可把这些数据流应用为样板以执行其它处理或程序。这意味着在任何时刻利用软件修改硬件以配置为适应于特定的数据处理,而且这种配置是通过其它程序或硬件实现的。并且有可能通过软件在控制单元中设立多个数据流,而且可定义多命令流。这明显有利于多个处理的并行执行,而且使编程容易控制它们的各种执行变型。
图11示出了能够由具有数据流指定指令25的程序41控制的数据处理系统的另一实施例。该数据处理系统40是作为系统LSI提供的,包括代码RAM 39,其上记录了程序41;还包括取单元42,能够从代码RAM 39中取指令。该实施例的取单元42包括数据流译码器(DFDEC)42b,用于对取出的数据流指定指令25进行译码;还包括译码器42a,用于对数据流指定指令25之外的其他通用指令译码。因此,控制该数据处理器40的程序41可能包括数据流指定指令25和其他通用指令。替代地,在代码RAM 39中提供包括数据流指定指令25的程序和由其他通用指令形成的程序,以在从这些程序中取指令时,通过合适的方法同步它们。
由通用译码器42a对通用指令译码,为了执行向包括ALU、寄存器等的嵌入式通用处理器43提供译码信号φp。另一方面,由DFDEC42b对数据流指定指令25译码,并将译码信号φf提供给数据流处理单元(DFU)45,以执行该指令。
该实施例的DFU 45包括多个数据处理单元(DPU)46。每个DPU 46是一个可以重新配置的处理单元,具有由各个FPGA形成的数据通路。因此,DPU 46包括FPGA 46c,具有FPGA 46c的映象的RAM 46b或ROM,用于控制FPGA 46c的数据输入/输出的接口46d,以及用于向FPGA 46c和接口46d提供存储在RAM 46b中的映象信息和接口信息以定义它们的配置或状态的配置控制部分46a。
在该数据处理器40中,取单元42执行取包括数据流指定指令的数据组的步骤,并且DFDEC 42b作为数据流指定单元并且执行包括数据流指定步骤的控制过程。换句话说,DFDEC 42b对数据流指定指令译码以指定通过DFU 45的每个DPU 46的配置控制部分46a的DPU 46的接口46d。因此,数据流指定指令25允许控制DFU 45中的DPU 46的连接,以便按程序级的灵活性配置和/或控制由多个DPU 46形成的数据通路。
在图12(a)中,由12个DPU 46配置两条数据通路47a和47b。相反,通过改变DPU 46的接口,可以从12个DPU 46中配置其他能够执行不同于图12(a)的其他数据处理的单条数据通路48,如图12(b)所示。由DFU 45配置的数据通路不限于此,可以通过使用数据流指定指令的软件在数据处理器40的DFU 45中定义三条或多条数据通路。结果,可以大大简化多个处理的并行执行。此外,如果任何DPU 46是可用的,可以配置在其他处理器中使用的其他适当的数据通路。
此外,在不停止其他数据通路中的数据处理,或不停止嵌入式处理器43中的处理的情况下,可以执行组合DPU 46的处理以配置、重新配置或改变数据通路。此外,在不改变FPGA 46c中的处理的情况下,仅改变接口46d的设置就可能动态改变数据通路。此外,在改变DPU 46的处理内容(处理本身)的情况下,可以通过使用具有小规模电路的FPGA 46c减少再映象所需的时间。因此,程序可以灵活地配置相应于由数据处理系统40执行的应用的数据处理的数据通路,并且以非常高的速度执行这些处理。然而,在当前的FPGA中,硬件不能在几个或几十个时钟内进行映象,如上所述。于是,为了执行希望的数据流处理,在执行之前,必须将指令设计成是关于几个或几十个时钟的,从而在数据处理的开始时刻以及对于描述程序中数据流指定指令的分枝指令,增加了要求一致性的限制。
图13是一个按系统LSI 50设置的数据处理系统的示意结构,其具有多个可通过本发明的包括X字段11和Y字段12的指令组10定义数据流的处理单元(样板)。该系统LSI 50包括一个用于进行数据处理的处理器部分51,一个存储用来控制该处理器区51中的处理的程序18的代码RAM 52,以及一个存储其它控制信息或处理的数据的数据RAM 53,而且RAM 53成为一个暂时工作存储器。处理器部分51包括一个用于取程序码的取单元(FU)55、一个用于进行通用处理的通用数据处理单元(多用途ALU,第一控制单元)56,以及一个能在数据流方式下处理数据的数据流处理单元(DFU,第二控制单元)57。
本实施例的LSI 50译码在单个指令组10中包括一组X字段11和Y字段12的程序码并且相应地执行处理。FU 55包括一个用于存储取出的指令组10的X字段11中的指令的取寄存器(FR(X))61x,以及一个用于存储相应的Y字段12中的指令的取寄存器(FR(Y))61y。FU 55还包括一个用于译码FR(X)61x中锁存的指令的X译码器62x,和一个用于译码FR(Y)61y中锁存的指令的Y译码器62y。FU 55还包括一个寄存器(PC)63,用于根据这些译码器62x和62的译码结果存储相继指令组的地址,并且PC 63充当程序计数器。任何时刻从代码RAM 52中存储的程序的预定地址取出后续指令组。
在该LSI 50中,X译码器62x充当前面提到的第一执行单元32。从而,X译码器62x根据指令组10的X字段11中所说明的执行指令进行本发明的第一控制步骤。Y译码器62y充当第二执行控制单元。从而,Y译码器62y根据指令组10的Y字段12中所说明的准备信息进行本发明的第二控制步骤。这样,在该数据处理系统的控制中,在取单元55中进行取本发明的数据集的步骤;在X译码器62x中,进行译码第一字段中的执行指令以及通过已经预置的处理单元着手该执行指令的运算或数据处理的第一控制步骤从而准备好执行该执行指令的运算或数据处理;在Y译码器62y中,和第一控制步骤无关地进行译码第二字段中的准备信息以及设定处理单元的状态的第二控制步骤从而准备好执行运算或数据处理。
多用途ALU 56包括会同图5说明的算术单元(ALU)34和用于存储ALU 34的输入/输出数据的寄存器组35。倘若FU55中译码的指令是ALU 34的执行指令和/或准备信息,相应地对多用途ALU 56提供X译码器62x的译码信号φx和Y译码器62y的译码信号φy,从而如上面解释那样在ALU34中进行所说明的处理。
DFU 57具有一个样板部分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的硬件成为适应于该特定数据处理的配置。
如图14(a)中所示,为了通过该处理器51的DFU 57在输入数据φin上进行某处理以得到输出数据φout,有可能通过数据流指定符25设置各样板71的有关接口,从而利用图14(b)中所示的彼此串联连接的样板1-1、1-2和1-3进行数据处理。类似地,对于样板块72中的其它样板,有可能设定它们各自的接口,从而通过多个样板的适当组合配置数据通路或数据流。从而,借助程序18在任何时间在样板部分72中配置多个适用于处理输入数据φin的专用或特定处理单元或者专用数据通路73。
另一方面,在改变输入数据φin上进行的处理的情况下,有可能通过数据流指定指令25改变样板71之间的连接,如图14(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中进行的处理内容。
从而,在DFU 57的硬件具有多个按本例设置的可为特定数据处理再配置的样板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可重构处理器难以得到的能通过软件重构硬件的小型、高速数据处理系统。
另外,图13中示出的DFU 57包括一个配置寄存器(CREG)75和一个配置RAM(CRAM)76,CREG 75能集体地定义或设定样板段72中设置的各样板71的接口和处理内容(以下称为配置数据),CRAM 76存储多个要对CREG 75设置的配置数据Ci(以下,i表示一适当的整数)。把如“DFSET Ci”的指令提供为数据流指定符25的指令。当Y译码器62y译码该指令时,把存储在CRAM 76里的配置数据Ci之中的所需配置数据装入到CREG 75中。结果是,集体地改变样板段72中设置的多个样板71的配置。替代地,可以以由多个样板71构成的处理块为基础改变配置。
当Y译码器62y译码诸如上面解释的DFLWI或DFLWC的数据流指定指令25时,也有可能设定或改变单个样板71的配置。另外,如上面提到的那样,因为能用单条指令改变多个需要大量信息的样板71的配置,指令效率得到改进并且减少重物消耗的时间。
DFU 57还包括一个控制器77,用于在一个块一个块的基础上把配置数据下载到CRAM 76中。另外,把“DFLOAD BCi”设置为一条数据流指定符25指令。当Y译码器62y译码该指令时,和事先在数据RAM 53等中准备的大量配置数据78一起把一些用于正在进行的处理或将来可能出现的处理的配置数据Ci预先下载到配置存储器,即,CRAM 76。通过这种结构,可把小容量、高速辅助存储器等应用为CRAM 76并且硬件变为灵活地和更快地重构。
图15示出样板71的一个例子。该样板71能够通过DFU 57中准备的数据流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还能根据来自上述CREG 75的数据或者来自FU 55的Y译码器(YDEC)62y的数据重写它自己的配置寄存器84中的数据,从而通过来自Y译码器62y的信号控制其中的选择。即,根据数据流指定指令25,通过Y译码器62y或者Y译码器62y进行的第二控制步骤控制该样板71的配置。从而,硬件的二种重构是可能的,一种是按照CRAM 76中存储的配置数据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特性的数据处理系统。
还有可能配置一种包括DFU 57或样板区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接口,的数据处理器也包括在本发明的范围内。因此,通过后面的权利要求书的各条款理解和领会本发明,并且后面的权利要求书复盖的所有修改都在本发明的范围内。
如上面已描述的,本发明允许通过根据数据流指定指令改变多个处理单元的各个接口,从而使数据通路能够根据程序进行灵活的重新安排。这样在不必对各个数据处理设计专用电路的情况下就可以按硬件的速度来灵活地执行各个复杂的数据处理。另外,依据本发明,可以用资源,即样板和使用这些样板的指令组,积累能改进性能的数据通路(数据流)。这样,任何时候根据随后添加的硬件配置信息以及进行数据处理的序列信息更新积累的数据通路变为可能,因此容易得到最优答案。从而,通过本发明,将以更加希望的方式进行按惯例指出的应用间的资源共享、硬件中的资源共享以及为改善性能的硬件投资,而且,本发明可以对构建网络社会作为技术基础做出重大贡献。
工业应用性
本发明的数据处理系统是按能执行各种数据处理的处理器、LSI等提供的,并且不仅可应用于电子部件的集成电路还可应用于光学部件,并且甚至可应用于集成电子部件和光学部件的光集成电路部件。尤其,包含本发明的指令组的控制程序和数据处理器能在高速下灵活地执行数据处理,并且最好用于需要具有高速性能和实时性能的处理例如网络处理和图象处理。

Claims (21)

1.一种用于控制包括多个处理单元的数据处理系统的程序产品,包括数据指定指令,用于独立于处理单元的执行时序指定至少一个处理单元的输入和/或输出接口,以定义一条由处理单元配置的数据通路。
2.根据权利要求1的程序产品,其中数据流指定指令包括用于定义处理单元的处理内容的信息。
3.根据权利要求1的程序产品,其中处理单元包括一个特定的内部数据通路,并且
数据流指定指令包括用于选择一部分内部数据通路的信息。
4.根据权利要求1的程序产品,其中数据流指定指令包括用于定义由多个处理单元形成的处理块中的输入和/或输出接口的信息。
5.根据权利要求4的程序产品,其中数据处理系统包括存储多个配置数据的存储器,配置数据用于定义处理块中的输入和/或输出接口,并且
数据流指定指令包括用于通过选择存储器中存储的多个配置数据中的一个来改变处理块中的输入和/或输出接口的信息。
6.一种记录介质,其上存储了用于控制包括处理单元的数据处理系统的程序,该程序包括数据流指定指令,用于独立于处理单元的执行时序指定至少一个处理单元的输入和/或输出接口,以定义一条由处理单元配置的数据通路。
7.一种传输介质,其上嵌入了用于控制包括处理单元的数据处理系统的程序产品,该程序包括数据流指定指令,用于独立于处理单元的执行时序指定至少一个处理单元的输入和/或输出接口,以定义一条由处理单元配置的数据通路。
8.一种数据处理系统,包括:
多个处理单元,其中包括可变的输入和/或输出接口;
用于取数据流指定指令的单元,其中数据流指定指令用于独立于处理单元的执行时序指定至少一个处理单元的输入和/或输出接口;以及
数据流指定单元,用于对数据流指定指令译码并且设置处理单元的输入和/或输出接口,以便由多个处理单元配置数据通路。
9.根据权利要求8的数据处理系统,其中数据流指定单元根据数据流指定指令改变处理单元的处理内容。
10.根据权利要求8的数据处理系统,其中处理单元包括特定的内部数据通路。
11.根据权利要求10的数据处理系统,其中处理单元包括至少一个逻辑门,以及通过输入/输出接口连接逻辑门的内部数据通路。
12.根据权利要求10的数据处理系统,其中数据流指定单元根据数据流指定指令选择处理单元的一部分内部数据通路。
13.根据权利要求8的数据处理系统,其中数据流指定单元包括一个调度器用于管理处理单元的接口。
14.根据权利要求8的数据处理系统,其中数据流指定单元根据数据流指定指令改变由多个处理单元形成的处理块中的输入和/或输出接口。
15.根据权利要求14的数据处理系统,进一步包括存储多个配置数据的存储器,其中配置数据用于定义处理块中的输入和/或输出接口,其中
数据流指定单元通过根据数据流指定指令选择存储在存储器中的多个配置数据中的一个来改变处理块中的输入和/或输出接口。
16.一种用于控制包括多个处理单元的数据处理系统的方法,其中多个处理单元包括可变的输入和/或输出接口,该方法包括:
取数据流指定指令步骤,用于独立于处理单元的执行时序指定至少一个处理单元的输入和/或输出接口;以及
数据流指定步骤,对数据流指定指令进行译码并且设置处理单元的输入和/或输出接口,以便由多个处理单元配置数据通路。
17.根据权利要求16的方法,其中在数据流指定步骤,根据数据流指定指令改变处理单元的处理内容。
18.根据权利要求16的方法,其中处理单元包括特定的内部数据通路,并且
在数据流指定步骤,根据数据流指定指令选择处理单元的一部分内部数据通路。
19.根据权利要求16的方法,其中在数据流指定步骤,管理用于保持处理单元的接口的调度表。
20.根据权利要求16的方法,其中在数据流指定步骤,根据数据流指定指令改变由多个处理单元形成的处理块中的输入和/或输出接口。
21.根据权利要求20的方法,其中数据处理系统包括存储多个用于定义处理块中的输入和/或输出接口的配置数据的存储器,其中
在数据流指定步骤,通过根据数据流指定指令选择存储器中存储的多个配置数据中的一个改变处理块中的输入和/或输出接口。
CNB008018243A 1999-08-30 2000-08-30 数据处理系统及其控制方法 Expired - Lifetime CN1148647C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP24413799 1999-08-30
JP244137/1999 1999-08-30

Publications (2)

Publication Number Publication Date
CN1321270A true CN1321270A (zh) 2001-11-07
CN1148647C CN1148647C (zh) 2004-05-05

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 数据处理系统及其控制方法
CNB008018243A Expired - Lifetime CN1148647C (zh) 1999-08-30 2000-08-30 数据处理系统及其控制方法
CNB2004100055960A Expired - Lifetime CN1301459C (zh) 1999-08-30 2000-08-30 数据处理系统及其控制方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CNB008018251A Expired - Fee Related CN1145879C (zh) 1999-08-30 2000-08-30 数据处理系统及其控制方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
CNB2004100055960A Expired - Lifetime CN1301459C (zh) 1999-08-30 2000-08-30 数据处理系统及其控制方法

Country Status (16)

Country Link
US (4) US6826674B1 (zh)
EP (2) EP1134654A4 (zh)
JP (2) JP4234925B2 (zh)
KR (2) KR100497078B1 (zh)
CN (3) CN1145879C (zh)
AT (1) ATE466330T1 (zh)
AU (3) AU782238B2 (zh)
BR (2) BR0013595A (zh)
CA (2) CA2348259A1 (zh)
DE (1) DE60044300D1 (zh)
EA (2) EA004071B1 (zh)
HK (1) HK1047326A1 (zh)
IL (4) IL142676A0 (zh)
NZ (2) NZ516679A (zh)
TW (2) TW504608B (zh)
WO (3) WO2001016717A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104102474A (zh) * 2013-04-03 2014-10-15 瑞萨电子株式会社 信息处理装置和信息处理方法

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW504608B (en) * 1999-08-30 2002-10-01 Ip Flex Inc Program product and data processing device
JP2003140886A (ja) * 2001-10-31 2003-05-16 Seiko Epson Corp インストラクションセット及びコンパイラ
US7093225B2 (en) 2002-07-17 2006-08-15 Osann Robert Jr FPGA with hybrid interconnect
US7679398B2 (en) * 2002-07-17 2010-03-16 Osann Jr Robert Reprogrammable instruction DSP
JP4002151B2 (ja) * 2002-07-31 2007-10-31 富士通株式会社 情報処理装置
RU2006100275A (ru) * 2003-06-18 2006-07-10 Амбрик, Инк. (Us) Система разработки интегральной схемы
US20070186076A1 (en) * 2003-06-18 2007-08-09 Jones Anthony M Data pipeline transport system
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 富士通マイクロエレクトロニクス株式会社 半導体装置
JP4893309B2 (ja) * 2004-10-28 2012-03-07 富士ゼロックス株式会社 再構成可能な論理回路を有するデータ処理装置
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
US7966481B2 (en) 2006-02-16 2011-06-21 Vns Portfolio Llc Computer system and method for executing port communications without interrupting the receiving computer
US7904615B2 (en) * 2006-02-16 2011-03-08 Vns Portfolio Llc Asynchronous computer communication
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
WO2008142750A1 (ja) * 2007-05-17 2008-11-27 Fujitsu Limited 演算ユニット、プロセッサ及びプロセッサアーキテクチャ
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
US9069918B2 (en) * 2009-06-12 2015-06-30 Cadence Design Systems, Inc. System and method implementing full-rate writes for simulation acceleration
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 富士通セミコンダクター株式会社 データ処理システム
JP5580404B2 (ja) * 2010-03-29 2014-08-27 株式会社東芝 半導体装置
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
US9880842B2 (en) * 2013-03-15 2018-01-30 Intel Corporation Using control flow data structures to direct and track instruction execution
US20170083313A1 (en) * 2015-09-22 2017-03-23 Qualcomm Incorporated CONFIGURING COARSE-GRAINED RECONFIGURABLE ARRAYS (CGRAs) FOR DATAFLOW INSTRUCTION BLOCK EXECUTION IN BLOCK-BASED DATAFLOW INSTRUCTION SET ARCHITECTURES (ISAs)
KR102276718B1 (ko) * 2015-11-25 2021-07-13 삼성전자주식회사 Vliw 인터페이스 장치 및 제어 방법
DE102017208818A1 (de) * 2017-05-24 2018-11-29 Wago Verwaltungsgesellschaft Mbh Initialisierung von Datenbusteilnehmern
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)

* Cited by examiner, † Cited by third party
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プロセッサ
US5970254A (en) * 1997-06-27 1999-10-19 Cooke; Laurence H. Integrated processor and programmable data path chip for reconfigurable computing
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
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
TW504608B (en) * 1999-08-30 2002-10-01 Ip Flex Inc Program product and data processing device

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104102474A (zh) * 2013-04-03 2014-10-15 瑞萨电子株式会社 信息处理装置和信息处理方法
US9977664B2 (en) 2013-04-03 2018-05-22 Renesas Electronics Corporation Information processing device and information processing method in heterogenous multi-cores having different architectures
CN104102474B (zh) * 2013-04-03 2018-10-30 瑞萨电子株式会社 信息处理装置和信息处理方法

Also Published As

Publication number Publication date
CA2348261C (en) 2006-02-14
AU782238B2 (en) 2005-07-14
NZ516679A (en) 2004-03-26
JP4234925B2 (ja) 2009-03-04
EP1215569A1 (en) 2002-06-19
IL142676A0 (en) 2002-03-10
CN1321271A (zh) 2001-11-07
KR100497078B1 (ko) 2005-06-27
JP3842129B2 (ja) 2006-11-08
KR20010080366A (ko) 2001-08-22
IL142675A (en) 2006-07-05
IL142675A0 (en) 2002-03-10
CN1301459C (zh) 2007-02-21
EP1134654A1 (en) 2001-09-19
US20050240757A1 (en) 2005-10-27
EA004196B1 (ru) 2004-02-26
KR20010080367A (ko) 2001-08-22
WO2001016717A8 (fr) 2001-04-12
KR100491593B1 (ko) 2005-05-27
AU776972B2 (en) 2004-09-30
TW495711B (en) 2002-07-21
IL142676A (en) 2006-08-20
WO2001016711A1 (fr) 2001-03-08
CN1532692A (zh) 2004-09-29
EA200200310A1 (ru) 2002-10-31
CN1145879C (zh) 2004-04-14
BR0013594A (pt) 2002-07-16
CA2348259A1 (en) 2001-03-08
EP1215569B1 (en) 2010-04-28
WO2001016717A1 (fr) 2001-03-08
BR0013595A (pt) 2002-07-16
US6904514B1 (en) 2005-06-07
US6826674B1 (en) 2004-11-30
US20050038550A1 (en) 2005-02-17
WO2001016710A1 (fr) 2001-03-08
NZ516680A (en) 2004-01-30
EA004071B1 (ru) 2003-12-25
TW504608B (en) 2002-10-01
HK1047326A1 (zh) 2003-02-14
EA200200309A1 (ru) 2002-08-29
AU6864300A (en) 2001-03-26
ATE466330T1 (de) 2010-05-15
AU6864400A (en) 2001-03-26
EP1215569A4 (en) 2006-08-23
AU6864200A (en) 2001-03-26
CA2348261A1 (en) 2001-03-08
DE60044300D1 (de) 2010-06-10
EP1134654A4 (en) 2006-08-23
CN1148647C (zh) 2004-05-05

Similar Documents

Publication Publication Date Title
CN1148647C (zh) 数据处理系统及其控制方法
JP7264955B2 (ja) プログラム可能な最適化を有するメモリネットワークプロセッサ
US20190004878A1 (en) Processors, methods, and systems for a configurable spatial accelerator with security, power reduction, and performace features
CN102782672B (zh) 用于高效嵌入式同类多核平台的基于瓦片的处理器架构模型
US11029958B1 (en) Apparatuses, methods, and systems for configurable operand size operations in an operation configurable spatial accelerator
JP6849274B2 (ja) 融合された単一のサイクルのインクリメント−比較−ジャンプを実施するための命令及びロジック
CN1434380A (zh) 图像处理装置和方法以及用于该装置的编译程序
US20220100680A1 (en) Apparatuses, methods, and systems for a configurable accelerator having dataflow execution circuits
CN1147307A (zh) 多指令集的数据处理
US20080294871A1 (en) Multidimensional processor architecture
CN110321159A (zh) 用于实现链式区块操作的系统和方法
Wolf et al. Amidar project: lessons learned in 15 years of researching adaptive processors
Merten et al. Modulo schedule buffers
JPS62165242A (ja) プロセツサ
CN1650257A (zh) 互换地址寄存器所存内容的方法和设备
JP2004102988A (ja) データ処理装置
CN1639690A (zh) 半导体装置
Albishri Design & Development of a High-speed Performance ALU by Using Execution Modes and Multi-Operand Operation
JP4560705B2 (ja) データ処理装置の制御方法
Döbrich Performance Improvement of Adaptive Processors

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

Free format text: FORMER OWNER:

C56 Change in the name or address of the patentee

Owner name: FUJI XEROX CORP.

Free format text: FORMER NAME: IP FLEX INC.

CP03 Change of name, title or address

Address after: Tokyo, Japan

Patentee after: Fuji Xerox Co.,Ltd.

Address before: Tokyo, Japan

Patentee before: IP Flex Inc.

TR01 Transfer of patent right

Effective date of registration: 20100512

Address after: Tokyo, Japan

Patentee after: IP Flex Inc.

Address before: Tokyo, Japan

Co-patentee before: Tomoyoshi Sato

Patentee before: IP Flex Inc.

CX01 Expiry of patent term

Granted publication date: 20040505

CX01 Expiry of patent term