CN1529858A - 计算系统 - Google Patents

计算系统 Download PDF

Info

Publication number
CN1529858A
CN1529858A CNA028096444A CN02809644A CN1529858A CN 1529858 A CN1529858 A CN 1529858A CN A028096444 A CNA028096444 A CN A028096444A CN 02809644 A CN02809644 A CN 02809644A CN 1529858 A CN1529858 A CN 1529858A
Authority
CN
China
Prior art keywords
unit
computing system
calculating
data
result
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
CNA028096444A
Other languages
English (en)
Other versions
CN100361119C (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.)
Tokyo Electron Ltd
Original Assignee
Tokyo Electron Device Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tokyo Electron Device Ltd filed Critical Tokyo Electron Device Ltd
Publication of CN1529858A publication Critical patent/CN1529858A/zh
Application granted granted Critical
Publication of CN100361119C publication Critical patent/CN100361119C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Stored Programmes (AREA)
  • Logic Circuits (AREA)
  • Executing Machine-Instructions (AREA)
  • Microcomputers (AREA)
  • Hardware Redundancy (AREA)
  • Advance Control (AREA)

Abstract

计算单元(42)在第一计算的中间执行第二计算。此时,计算单元(42)的硬件结构根据作为执行目标的计算而被切换。控制器(46)在对第二计算进行计算时将计算单元(42)的内部状态存储在存储器(44)中。而且当将被计算单元(42)执行的计算从第二计算返回第一计算时,控制器(46)通过将存储在存储器(44)中的内部状态返回给计算单元(42)控制将继续进行第一计算。

Description

计算系统
技术领域
本发明涉及一种硬件可根据程序直接执行计算的计算系统,更具体的,本发明涉及一种适合于根据大型程序执行计算的计算系统。
背景技术
在目前的通用计算机中,进行计算的同时,CPU(中央处理单元)顺序地解释存储于存储器的程序中的指令。CPU借助于软件来执行作为执行目标的计算。这样,CPU的硬件结构不一定最适合用于作为执行目标的计算。结果是,在获得最终的计算结果之前会招致很多额外开销。
相反,作为直接利用硬件执行用程序来表示的计算的一种技术,使用可现场编程门阵列(FPGA)的计算系统已经广为人知。日本专利公开No.H8-504285(国际公开No.WO94/10627)和日本专利公开No.2000-516418(国际公开No.WO98/08306)公开了使用FPGA的计算系统。
FPGA的硬件结构可通过逻辑数据而改变。通过使用这样的FPGA,硬件可以直接执行由程序表示的计算。因此,就能够以比CPU执行计算的情况下更快的速度获得计算结果。
另一方面,由目前的通用计算机执行的大型程序由多个程序模块组成。在进行由大型程序表示的计算的同时,一个程序模块调用另一个程序模块。
但是,上述常规的使用FPGA的计算系统只能执行由实质上只包含一个程序模块的程序所表示的计算。换句话说,常规的使用FPGA的计算系统无法执行由包含多个程序模块的大型程序所表示的大型计算。因此,就存在着这样一个问题,即使用FPGA的常规计算系统不能在不同方式下应用。
日本专利公开No.H8-504285(国际公开No.WO94/10627)和日本专利公开No.2000-516418(国际公开No.WO98/08306)在此并入作为参考。
发明内容
本发明旨在克服上述现有技术的问题,本发明的目的是提供一种硬件能够直接执行由包含多个程序模块的大型程序所表示的计算的计算系统。
为实现上述目的,根据本发明第一方面的一种计算系统包括:
一计算单元(42),具有与作为执行目标的计算相对应的硬件结构,并执行作为执行目标的计算;
一状态存储器(44),存储所述计算单元的内部状态;和
一控制器(46、46),控制所述计算单元的内部状态,
其中:所述计算单元(42)在一第一计算的中间执行一第二计算;以及
当将由所述计算单元(42)执行的计算从第一计算切换至第二计算时,所述控制器(46、46)存储所述状态存储器(44)中的内部状态,并且当将由所述计算单元(42)执行的计算从第二计算返回至第一计算时,所述控制器(46、46)通过将存储在所述状态存储器(44)中的内部状态返回给所述计算单元(42),来控制所述计算单元(42)再开始执行第一计算。
根据这一发明,由包含多个程序模块的大型程序所表示的计算可以直接被硬件执行,而无须使用通用CPU。
所述状态存储器(44)可以按照先进后出的方法存储所述内部状态。
所述计算单元(42)可以包括多个门电路。
所述多个门电路之间的连接可以根据作为执行目标的计算而被切换。
根据本发明第二方面的一种计算系统包括:
一载入器(3),逐各模块地(by each module)载入多个数据模块,所述多个数据模块中的每一个表示适合于执行一预定计算的硬件结构;
一计算单元(42),具有可根据由被载入的数据模块所表示的硬件结构而被改变的硬件结构,并执行一预定的计算;和
一结果保存单元(44),其在所述计算单元(42)的硬件结构改变时保存由所述计算单元(42)执行的计算的中间结果,并在所述计算单元(42)的硬件结构返回初始状态时将该保存的中间结果返回给所述计算单元(42)。
所述多个数据模块可以包括第一数据模块和第二数据模块,其中第一数据模块表示用于执行第一计算的第一硬件结构,第二数据模块表示用于执行第二计算的第二硬件结构,第二计算在第一计算期间被执行。
第一数据模块可以包含调用数据,该调用数据用于在第一计算的中间调用第二数据模块。
该计算系统可以进一步包括:
一检测单元(43),检测包含在被载入的第一数据模块中的所述调用数据;和
一控制器(46),将所述计算单元(42)执行的第一计算的中间结果存储在所述结果保存单元(44)中,并在所述检测单元(43)检测到调用数据时控制所述载入器(3)载入第二数据模块。
在所述计算单元(42)完成第二计算的情况下,所述控制器(46)可以控制所述载入器(3)载入第一数据模块,并可以通过将存储在所述结果保存单元(44)中的所述中间结果返回给所述计算单元(42),来控制所述计算单元(42)再开始第一计算。
该计算系统可以进一步包括一变元提供单元(45),其向所述计算单元(42)提供一部分第一计算的中间结果作为用于执行第二计算的变元,并向所述计算单元(42)提供第二计算的执行结果作为用于再开始第一计算的变元。
所述结果保存单元(44)可以包括一存储器,该存储器按照先进后出的方法存储中间结果。
所述计算单元(42)可以包括多个门电路。
所述多个门电路之间的连接可以根据载入的数据模块而被切换。
该计算系统可以被连接至另一个计算系统,该另一个计算系统具有可根据由被提供的数据模块所表示的硬件结构而被改变的硬件结构,并执行一预定的计算。
该计算系统可以进一步包括一结果获得单元(7),该结果获得单元在该计算系统与另一计算系统连接时,向另一计算系统提供被载入的第二数据模块,以便控制另一计算系统执行第二计算,并从另一计算系统获得第二计算的结果。
所述计算单元(42)在所述计算系统连接至另一计算系统时可以提供被载入的第二数据模块给所述结果获得单元(7),并停止执行第一计算。
所述结果获得单元(7)可以通过为所述计算单元提供所获得的第二计算的执行结果作为再开始第一计算的变元,控制所述计算单元(42)再开始第一计算。
根据本发明第三方面的一种计算系统包括:
一载入器(3),逐各模块地载入多个程序模块,所述多个程序模块中的每一个表示一预定计算;
一解释器(47),解释包括在载入的程序模块中的指令,并根据解释结果输出至少一个用于实现与载入的程序模块所表示的计算相对应的硬件结构的信号;
一计算单元(42),具有可根据由所述解释器(47)输出的所述至少一个信号而被改变的硬件结构,并执行一预定的计算;和
一结果保存单元(44),其在所述计算单元(42)的硬件结构改变时保存由所述计算单元(42)执行的计算的中间结果,并在所述硬件结构返回初始状态时,通过将该保存的中间结果返回给所述计算单元(42),将所述计算单元恢复至和计算单元(42)硬件结构改变之前相同。
所述多个程序模块可以包括第一程序模块和第二程序模块,其中第一程序模块表示一第一计算,第二程序模块表示在该第一计算期间被执行的一第二计算。
第一程序模块可以包含调用指令,该调用指令用于在第一计算的中间调用第二程序模块。
该计算系统可以进一步包括一控制器(46),该控制器在所述解释单元(47)解释所述调用指令的情况下,将所述计算单元(42)执行的第一计算的中间结果存储在所述结果保存单元(44)中,并控制所述载入器(3)载入第二程序模块。
在所述计算单元(42)完成第二计算的情况下,所述控制器(46)可以控制所述载入器(3)载入第一数据模块,并可以通过将存储在所述结果保存单元(44)中的所述中间结果返回给所述计算单元(42),来控制所述计算单元(42)再开始第一计算。
该计算系统可以进一步包括一变元提供单元(45),其向所述计算单元(42)提供第一计算的一部分中间结果作为用于执行第二计算的变元,并向所述计算单元(42)提供第二计算的执行结果作为用于再开始第一计算的变元。
所述结果保存单元(44)可以包括一存储器,该存储器按照先进后出的方法存储中间结果。
所述计算单元(42)可以包括多个门电路。
所述多个门电路之间的连接可以根据由所述解释器提供的至少一个信号而被切换。
该计算系统可以被连接至另一个计算系统,该另一个计算系统具有可根据由被提供的程序模块所表示的计算而被改变的硬件结构,并执行所述由被提供的程序模块表示的计算。
该计算系统可以进一步包括一结果获得单元(7),该结果获得单元(7)在该计算系统与另一计算系统连接时,向另一计算系统提供所述被载入的第二程序模块,以便控制另一计算系统执行第二计算,并从另一计算系统获得第二计算的结果。
所述解释器(47)在该计算系统与另一计算系统连接时,可以向所述结果获得单元(7)提供所述被载入的第二程序模块。
所述结果获得单元(7)可以通过为所述计算单元(42)提供所获得的第二计算的执行结果作为再开始第一计算的变元,控制计算单元继续第一计算。
附图说明
图1是显示根据第一实施例的计算系统的结构的示意图。
图2是显示由图1所示计算系统执行的计算的示例的图。
图3是显示根据第二实施例的计算系统的结构示意图。
图4是显示计算系统的结构的另一示例的图。
图5是显示图4所述计算系统连接至另一计算系统的示例的图。
图6是显示计算系统结构的另一示例的图。
具体实施方式
第一实施例
下面参照附图说明根据本发明第一实施例的计算系统。
如图1所示,根据第一实施例的计算系统1包括FPGA数据存储单元2、载入器3和FPGA装置4。
FPGA数据存储单元2存储了多个数据模块(FPGA数据21至2N)。
编译器6编译多个程序模块(源程序51至5N),并由此产生FPGA数据21至2N。源程序51至5N中的每一个用可表达硬件结构的程序语言来描述,并代表将被计算系统1所执行的计算。FPGA数据21至2N表示最适于执行由源程序51至5N所代表的计算的硬件结构。
源程序51至5N中的至少一个包含用于调用其它程序模块的函数。也就是说,FPGA数据21至2N中的至少一个包含用于调用其它数据模块的调用数据。
载入器3包括逻辑电路等,并在正确的定时以模块为单位将存储在FPGA数据存储单元2中的FPGA数据21至2N载入FPGA装置4中。具体地,载入器3将由一程序模块产生的数据模块载入FPGA装置4中,该程序模块则表示作为执行目标的计算,即,该程序模块对应于作为执行目标的计算。在计算开始时,从外界给出载入数据模块的指令,除此之外,这一指令也可根据由FPGA装置4对计算的执行而给出。
FPGA装置4具有由载入器3载入的数据模块所表示的硬件结构,并将与载入的数据模块相对应的计算应用于外界所提供的输入数据。然后,FPGA装置4向外界输出计算结果作为输出数据。
具体地,FPGA装置4包括FPGA数据存储器41、门阵列42、调用检测单元43、保存堆栈44、变元传递单元45和控制单元46。调用检测单元43、保存堆栈44、变元传递单元45和控制单元46由逻辑电路或类似装置构成。
FPGA数据存储器41由RAM(随机存取存储器)构成,并存储由载入器3所载入的数据模块。
门阵列42包括由多个门电路(例如AND、OR和NOT)构成的计算单元42A和由多个触发电路(FF)构成的状态保存单元42B。
计算单元42A具有由载入的数据模块所表示的硬件结构,即,最适合于执行作为执行目标的计算的硬件结构。具体地,构成计算单元42A的这些门电路之间的连接可根据载入的数据模块而被切换。因此,计算单元42A的硬件结构就变成了由载入的数据模块所指定的结构。而通过具有这种由载入的数据模块所指定的硬件结构,计算单元42A就能够以高速执行与载入的数据模块相对应的计算。
状态保存单元42B保存由计算单元42A所执行的计算的中间结果(内部状态)。构成状态保存单元42B的每个触发器能够接受从外界写入的数据。
调用检测单元43检测包含在载入的数据模块中的、用于调用另一数据模块的调用数据。
保存堆栈44用于在调用检测单元43检测到调用数据的情况下,根据先进后出(FILO:First-In-Last-Out)的方法保存由状态保存单元42B所保存的数据(中间结果),以及用于识别调用另一数据模块的那个数据模块(即,包含调用数据的数据模块)的识别数据。
当将被调用的数据模块被实际调用时,以及当调用另一数据模块的数据模块(称为调用器(caller)数据模块)返回FPGA数据存储器41时,变元传递单元45在调用器数据模块和被调用的数据模块之间传递变元。
具体地,当一数据模块被调用时,在由状态保存单元42B的多个触发器所保存的数据当中,变元传递单元45保存用于执行与该被调用的数据模块相对应的计算的数据。然后,变元传递单元45将该保存的数据传送给门阵列42作为对应被调用的数据模块的计算的输入值(变元)。而当调用器数据模块再次被载入时,变元传递单元45保存由状态保存单元42B的多个触发器所保存的数据,即,与被调用的数据模块相对应的计算的结果(返回值)。然后,变元传递单元45将被保存的结果写入至构成状态保存单元42B的一预定的触发器。
当一数据模块被调用器数据模块调用时,控制单元46控制在保存堆栈44中保存的对应于一调用器数据模块的计算的中间结果以及该调用器数据模块的识别信息。同时,控制单元46临时地将状态保存单元42B所保存的数据中在执行对应于被调用的数据模块的计算时所使用的数据,存储在变元传递单元45中。然后,控制单元46控制载入器3将被调用的数据模块载入FPGA数据存储器41中。随后,控制单元46将存储在变元传递单元45中的数据传送给门阵列42作为输入数据。
当对应于被调用数据模块的计算被完成时,控制单元46将计算的结果(输出数据)存储在变元传递单元45中。然后,控制单元46控制载入器3将由保存堆栈44中保存的识别信息所识别的调用器数据模块载入FPGA数据存储器41中。随后,控制单元46控制已被保存在保存堆栈44中的数据(中间结果)返回至状态保存单元42B,并将临时存储在变元传递单元45中的结果(输出数据)写入至构成状态保存单元42B的一预定触发器。
从外界输入至FPGA装置4的输入数据可以是通过输入装置例如键盘输入的数据,也可以是从外部存储装置例如磁盘装置读出的数据。从FPGA装置4输出给外界的输出数据可以通过诸如显示装置等输出装置输出,也可以被写入到外部存储装置中,其还可以是用于控制外围设备的控制数据。
下面解释根据第一实施例的该计算系统1的操作。
下面将以该计算系统1执行如图2所示的计算作为示例进行说明。
如图2所示,首先载入FPGA数据21,然后,FPGA数据21调用FPGA数据2N,随后,FPGA数据21返回。
如图2所示,整个计算过程由计算A、计算B和计算C组成。计算A对应于FPGA数据21,并构成了计算B成为必须之前的一部分,而计算B则对应于FPGA数据2N。计算C对应于FPGA数据21,其构成了利用计算B的结果来执行的一部分。
首先,载入器3根据由外界提供的载入指令将FPGA数据21载入到FPGA数据存储器41中。由此,具有与FPGA数据21相对应的电平(level)的信号被输入给计算单元42A。
构成计算单元42A的门电路之间的连接根据这些输入信号被切换,使得计算单元42A的硬件结构变为由FPGA数据21所指定的结构。由此,计算单元42A变为可以执行对应于FPGA数据21的计算A。
当输入数据被从外界提供给门阵列42时,计算单元42A将计算A应用至提供的输入数据。
调用检测单元43检测在被载入的FPGA数据21中包含的调用数据,并将表示检测到调用数据的检测信号输出给控制单元46。
控制单元46响应于由调用检测单元43提供的检测信号,控制被保存在保存堆栈44中的在计算A完成时所获得的计算结果(中间结果)。具体地,控制单元46控制待被保存堆栈44的最上层中的由状态保存单元42B所保存的数据(门阵列42的内部状态),以及作为调用器数据模块的FPGA数据21的识别数据。
而且,控制单元46临时地将状态保存单元42B所保存的数据当中的在计算B中使用的数据存储在变元传递单元45中。
此后,控制单元46控制载入器3将作为被调用的数据模块的FPGA数据2N载入到FPGA数据存储器41中。这样,具有与FPGA数据2N相对应的电平的信号被输入给计算单元42A。
构成计算单元42A的门电路之间的连接根据输入信号被切换,使得计算单元42A的硬件结构变为由FPGA数据2N所指定的结构。由此,计算单元42A变为可以执行对应于FPGA数据2N的计算B。
控制单元46将临时保存在变元传递单元45中的数据输入给门阵列42作为输入数据。这样,计算单元42A执行计算B。
当计算B完成时,控制单元46临时地将来自门阵列42的输出数据存储在变元传递单元45中,作为将被传递给调用器FPGA数据21的变元。
然后,控制单元46参照在保存堆栈44的最上层中保存的识别信息,并识别出作为调用器数据的FPGA数据21。
控制单元46控制载入器3将FPGA数据21重新载入至FPGA数据存储器41。这样,计算单元42A的硬件结构以如上所述类似的方式,从由FPGA数据2N所指定的结构,切换为由FPGA数据21所指定的结构。
当调用器FPGA数据21被重新载入时,控制单元46将位于保存堆栈44的最上层中的数据(内部状态)写回至状态保存单元42B的每个触发器。这样,门阵列42的内部状态就返回初始状态。
进一步,控制单元46将临时保存在变元传递单元45中的数据写入至构成状态保存单元42B的一预定触发器。
在这种状态下,计算单元42A开始对应于FPGA数据21的计算C,并将最终计算结果输出作为输出数据。
被FPGA数据21所调用的FPGA数据2N可以调用其它的数据模块。这时,调用检测单元43可以检测包含在FPGA数据2N中包含的调用数据,并以与上述类似的方式输出表示检测到调用数据的检测信号至控制单元46。然后,控制单元46可以根据所提供的检测信号执行如上所述相同的控制。通过该操作,可以执行由三个或更多程序模块表示的大型计算。
如前面所解释的,计算单元42A的硬件结构切换为由载入的数据模块所指定的结构,即最适合于执行作为执行目标的计算的结构。由此,与CPU读取程序并执行计算的情形相比,可以在更高的速度下执行计算。
而且,通过在保存堆栈种保存对应于调用器数据模块的计算的中间结果,即使在与被调用的数据模块相对应的计算完成之后也可以再开始对应于调用器数据模块的计算。由此,可以执行由多个程序模块所表示的大型计算。
计算系统1能够执行由多个程序模块构成的大型程序所表示的计算。因此,可将程序分为多个程序模块,以便按每个程序模块创建一程序,或者每个程序模块也可以被用作为创建其它程序时的一部分。其结果是,程序的创建可以在较短时间内实现。
第二实施例
下面将参照附图说明根据本发明第二实施例的计算系统。
图3显示了根据第二实施例的计算系统的结构。
根据第二实施例的计算系统并不编译多个程序模块(源程序51至5N),但可将这些程序模块直接载入FPGA装置4。
如图3所示,根据第二实施例的计算系统包括载入器3、FPGA装置4和程序储存单元5。
载入器3根据控制单元46的指令,在预定的时序逐各模块地存储在程序储存单元5中的源程序51至5N载入至FPGA装置4中。
如图3所示,FPGA装置4包括存储器41、门阵列42、保存堆栈44、变元传递单元45、控制单元46和解释器47。
存储器41由RAM构成,并存储了由载入器3载入的一程序模块。
解释器47一个一个地顺序解释被载入存储器41中的程序模块中所包含的指令。然后,解释器47根据解释结果,向门阵列42的计算单元42A输出用于实现一最适合于执行由载入的程序模块所指定的计算的硬件结构的信号。
构成计算单元42A的门电路之间的连接根据解释器47提供的信号被切换。由此,计算单元42A的硬件结构变为最适合于执行由载入的程序模块所指定的计算的结构,即,与作为执行目标的计算相对应的结构。
而在被解释的指令为用于调用另一程序模块的指令的情况下,解释器47向控制单元46输出表示另一程序模块应该被调用的调用信号。
当解释器47提供了一调用信号时,控制单元46控制待在保存堆栈44中保存的门阵列42的内部状态以及用于识别调用器程序模块的识别数据。
然后,控制单元46临时地将状态保存单元42B的触发器所存储的数据当中,在执行由被调用的程序模块所表示的计算时使用的数据存储在变元传递单元45中。
随后,控制单元46控制载入器3载入被调用的程序模块。
然后,控制单元46将临时存储在变元传递单元45中的数据传送给门阵列42作为输入数据。
当与被调用的程序模块相对应的计算完成时,控制单元46临时地将计算结果(输出数据)保存在变元传递单元45中。
然后,控制单元46控制载入器3将由保存在保存堆栈44中的识别数据所识别的调用器程序模块载入存储器41中。
随后,控制单元46将保存在保存堆栈44中的内部状态返回状态保存单元42B,并将临时存储在变元传递单元45中的输出数据(变元),写入至构成状态保存单元42B的一预定触发器。这样,由调用器程序模块所表示的计算再开始。
解释器47可以由多个门电路构成。通过这样的结构,解释器47能够高速输出具有与载入的程序模块的解释结果相对应电平的信号。结果是,计算单元42A的硬件结构的切换可以在高速下进行,几乎不会影响执行计算的速度。
由于FPGA装置4包括上述解释器47,因此源程序51至5N能够以每个模块为单位载入FPGA装置4之中。由此,即使没有适合于FPGA装置4结构的编译器,也可以在高速下执行由多个程序模块表示的大型计算。
执行由一个程序模块表示的计算可能需要多个硬件结构。这时,如上文所述,控制单元46控制待在保存堆栈44中保存的在硬件结构被切换之前的一刻所获得的数据(中间结果)。此后,解释器47向计算单元42A输入具有预定电平的信号,而计算单元42A的硬件结构借此能够在计算过程中间被切换。
如图4所示,例如,在第一实施例中所示的计算系统的结构中可以加入由逻辑电路等构成的辅助计算控制单元。具有这样一个结构的计算系统1A可以与另一个计算系统连接。
例如,在具有如图1或图4所示结构的另一个计算系统被连接至计算系统1A的情况下,该辅助计算控制单元7可拆地(detachably)连接至另一个计算系统的载入器3、门阵列42和变元传递单元45。
进一步,例如图5中所示,两个计算系统1B和1C可以连接至计算系统1A。计算系统1B和1C具有例如与图1所示结构实质上相同的结构。这时,计算系统1A的辅助计算控制单元7分别连接至计算系统1B和1C的载入器3、门阵列42和变元传递单元45。但是,计算系统1B和1C不一定需要FPGA数据存储单元2。
下面,说明计算系统1A控制计算系统1B和1C以执行并行操作时所执行的操作。
假设首先载入FPGA数据21,且FPGA数据21调用FPGA数据2X。并假设计算系统1A控制计算系统1B和1C载入FPGA数据2X。
首先,计算系统1A的载入器3将FPGA数据21载入FPGA数据存储器41。这样,计算单元42A的硬件结构就以在第一实施例中所述的相同方式变为由FPGA数据21所指定的结构。
然后,当从外界向计算系统1A的门阵列42输入输入数据,计算系统1A的计算单元42A执行对应于FPGA数据21的计算。
计算系统1A的调用检测单元43检测包含在载入的FPGA数据21中、指示调用FPGA数据2X的调用数据。随后,调用检测单元43向控制单元46输出表示检测到调用数据的检测信号。
在调用检测单元43提供了检测信号时,计算系统1A的控制单元46控制计算系统1A的载入器3将作为被调用数据模块的FPGA数据2X载入至FPGA数据存储器41中。
当载入FPGA数据2X时,计算系统1A的门阵列42获得被载入的FPGA数据2X,作为对应于FPGA数据21的部分处理(计算)。
然后,门阵列42向辅助计算控制单元7提供所获得的FPGA数据2X,并停止执行与FPGA数据21相对应的计算。
计算系统1A的控制单元46将计算系统1A的状态保存单元42B所保存的数据当中,执行与FPGA数据2X相对应的计算所必须的数据(变元)提供给辅助计算控制单元7。
辅助计算控制单元7控制计算系统1B和1C的载入器3将所提供的FPGA数据2X载入计算系统1B和1C的FPGA数据存储器41中。其结果是,计算系统1B和1C的计算单元42A的硬件结构变为由FPGA数据2X指定的结构。
然后,计算系统1A的辅助计算控制单元7将所提供的变元当中,要提供给计算系统1B的变元,输入至计算系统1B的门阵列42作为输入数据,并将要提供给计算系统1C的变元输入至计算系统1C的门阵列42作为输入数据。其结果是,计算系统1B和1C的门阵列42分别执行对应于FPGA数据2X的计算。
当对应于FPGA数据2X的计算完成时,计算系统1B(或1C)的控制单元46临时地将来自计算系统1B(或1C)的门阵列42的输出数据存储在计算系统1B(或1C)的变元传递单元45中,作为将用于再开始对应作为调用器数据模块的FPGA数据21的计算的变元。
计算系统1A的辅助计算控制单元7控制计算系统1B和1C的变元传递单元45,且当检测到输出数据被临时存储在这些变元传递单元45中时,从上述变元传递单元45中获得存储的输出数据。
接着,计算系统1A的辅助计算控制单元7将所获得的输出数据写入至构成计算系统1A的状态保存单元42B的预定触发器中。
在这一状态下,计算系统1A的门阵列42再开始对应于FPGA数据21的计算。其结果是,最终的计算结果作为输出数据被输出。
如上所述,如果计算系统具有如图4所示的结构,则必要时可以增加另一个计算系统。由此,通过单独一个计算系统在短时间内无法完成的复杂计算和需要并行操作的计算就能够在短时间内完成。
而在具有如图4所示的结构的计算系统连接至另一个计算系统的情况下,该“另一个”计算系统可以连接又一个计算系统。由此,该“另一个”计算系统可以再如上所述相同的方式下,控制与其相联的该“又一个”计算系统执行计算,并能够获得计算结果。
进一步,例如图6所示的,上述辅助计算控制单元7可以被添加至图3所示的计算系统。然后,图6所示的计算系统1D可以控制另一个连接至该计算系统1D的计算系统来执行由载入的程序模块所表示的计算。
这时,如果计算系统1D的解释器47所解释的指令为用于调用另一个程序模块的指令,则解释器47可以向辅助计算控制单元7提供所载入的被调用的程序模块。辅助计算控制单元7可将该被提供的程序模块提供给另一计算系统,并可控制另一计算系统执行一计算。然后,辅助计算控制单元7可以从另一个计算系统获得计算结果,并可以将该计算结果提供给门阵列42,使得由调用器程序模块所表示的计算能够开始。
但是,在这种情况下,连接到计算系统1D的另一个计算系统应该具有例如图3所示的结构。
在上述实施例中,载入器3将FPGA数据存储单元2中存储的FPGA数据21至2N中的一个直接载入FPGA数据存储器41。相反,FPGA数据21至2N可以包括一宏数据(macro)。FPGA数据存储单元2可以存储宏数据,且载入器3可以在将FPGA数据21至2N载入FPGA数据存储器41中时,在FPGA数据21至2N之上执行宏调用。
在不背离本发明的精神和范围的情况下可以做出各种实施例和改变。上述实施例用于说明本发明,而并未限定本发明的范围。本发明的范围由权利要求书而非实施例来表示。在本发明的权利要求的等效意义之内做出的各种变型应被认为是处于本发明的范围之内。
本申请包括说明书、权利要求书、附图和说明书摘要,是基于2001年5月10日提交的日本专利申请No.2001-139951和2002年3月6日提交的日本专利申请No.2002-60515。上述日本专利申请在此全部并入作为参考。

Claims (19)

1.一种计算系统,包括:
一计算单元(42),具有与作为执行目标的计算相对应的硬件结构,并执行作为执行目标的计算;
一状态存储器(44),存储所述计算单元的内部状态;和
一控制器(46、46),控制所述计算单元的内部状态,
其中:所述计算单元(42)在一第一计算的中间执行一第二计算;以及
当将由所述计算单元(42)执行的计算从第一计算切换至第二计算时,所述控制器(46、46)存储所述状态存储器(44)中的内部状态,并且当将由所述计算单元(42)执行的计算从第二计算返回至第一计算时,所述控制器(46、46)通过将存储在所述状态存储器(44)中的内部状态返回给所述计算单元(42)来控制所述计算单元(42)以再开始执行第一计算。
2.根据权利要求1所述的计算系统,其中所述状态存储器(44)按照先进后出的方法存储内部状态。
3.根据权利要求1所述的计算系统,其中:
所述计算单元(42)包括多个门电路;以及
所述多个门电路之间的连接根据作为执行目标的计算而被切换。
4.一种计算系统,包括:
一载入器(3),逐各模块地载入多个数据模块,该多个数据模块中的每一个表示适合于执行一预定计算的硬件结构;
一计算单元(42),具有可根据被载入的数据模块所表示的硬件结构而被改变的硬件结构,并执行一预定的计算;和
一结果保存单元(44),其在所述计算单元(42)的硬件结构改变时保存由所述计算单元(42)执行的计算的中间结果,并在所述计算单元(42)的硬件结构返回初始状态时将该保存的中间结果返回给所述计算单元(42)。
5.根据权利要求4所述的计算系统,其中:
多个数据模块包括第一数据模块和第二数据模块,其中第一数据模块表示用于执行第一计算的第一硬件结构,第二数据模块表示用于执行第二计算的第二硬件结构,第二计算在第一计算期间被执行。
第一数据模块包含调用数据,该调用数据用于在第一计算的中间调用第二数据模块。
所述计算系统进一步包括:
一检测单元(43),检测包含在被载入的第一模块中的调用数据;和
一控制器(46),在所述检测单元(43)检测到调用数据时,将所述计算单元(42)执行的第一计算的中间结果存储在所述结果保存单元(44)中,并控制所述载入器(3)载入第二数据模块。
6.根据权利要求5所述的计算系统,其中
在所述计算单元(42)完成第二计算的情况下,所述控制器(46)控制所述载入器(3)载入第一数据模块,并通过将存储在所述结果保存单元(44)中的中间结果返回给所述计算单元(42),控制所述计算单元(42)再开始第一计算。
7.根据权利要求6所述的计算系统,进一步包括
一变元提供单元(45),其向所述计算单元(42)提供一部分第一计算的中间结果作为用于执行第二计算的变元,并向所述计算单元(42)提供第二计算的执行结果作为用于再开始第一计算的变元。
8.根据权利要求7所述的计算系统,其中
所述结果保存单元(44)包括一存储器,该存储器按照先进后出的方法存储中间结果。
9.根据权利要求7所述的计算系统,其中:
所述计算单元(42)包括多个门电路;以及
所述多个门电路之间的连接根据载入的数据模块而被切换。
10.根据权利要求5所述的计算系统,其中:
所述计算系统可以被连接至另一个计算系统,该另一个计算系统具有可根据由被提供的数据模块所表示的硬件结构而改变的硬件结构,并执行一预定的计算;
所述计算系统进一步包括一结果获得单元(7),该结果获得单元在所述计算系统与另一个计算系统连接的情况下,向另一个计算系统提供被载入的第二数据模块,以控制另一个计算系统执行第二计算,并从另一个计算系统获得第二计算的执行结果。
11.根据权利要求10所述的计算系统,其中:
所述计算单元(42)在所述计算系统连接至另一计算系统的情况下,向所述结果获得单元(7)提供被载入的第二数据模块,并停止执行第一计算;以及
所述结果获得单元(7)通过为所述计算单元提供所获得的第二计算的执行结果作为再开始第一计算的变元,控制所述计算单元(42)再开始第一计算。
12.一种计算系统,包括:
一载入器(3),以每一模块为单位载入多个数据模块,该多个数据模块中的每一个表示一预定计算;
一解释器(47),解释包括在载入的程序模块中的指令,并根据解释结果输出至少一个用于实现与载入的程序模块所表示的计算相对应的硬件结构的信号;
一计算单元(42),具有可根据由所述解释器(47)输出的至少一个信号而改变的硬件结构,并执行一预定的计算;和
一结果保存单元(44),其在所述计算单元(42)的硬件结构改变时保存由所述计算单元(42)执行的计算的中间结果,并在该硬件结构返回初始状态时,通过将该保存的中间结果返回给所述计算单元(42),将所述计算单元恢复至和所述计算单元(42)硬件结构改变之前相同。
13.根据权利要求12所述的计算系统,其中:
多个程序模块包括第一程序模块和第二程序模块,其中第一程序模块表示一第一计算,第二程序模块表示在第一计算期间被执行的一第二计算。
第一程序模块包含调用指令,该调用指令用于在第一计算的中间调用第二程序模块。
所述计算系统进一步包括一控制器(46),该控制器在所述解释单元(47)解释调用指令的情况下,将所述计算单元(42)执行的第一计算的中间结果存储在所述结果保存单元(44)中,并控制所述载入器(3)载入第二程序模块。
14.根据权利要求13所述的计算系统,其中
在所述计算单元(42)完成第二计算的情况下,所述控制器(46)控制所述载入器(3)载入第一程序模块,并通过将存储在所述结果保存单元(44)中的中间结果返回给所述计算单元(42),控制所述计算单元(42)再开始第一计算。
15.根据权利要求14所述的计算系统,进一步包括
一变元提供单元(45),其向所述计算单元(42)提供第一计算的一部分中间结果作为用于执行第二计算的变元,并向所述计算单元(42)提供第二计算的执行结果作为用于再开始第一计算的变元。
16.根据权利要求15所述的计算系统,其中
所述结果保存单元(44)包括一存储器,该存储器按照先进后出的方法存储中间结果。
17.根据权利要求15所述的计算系统,其中:
所述计算单元(42)包括多个门电路;以及
所述多个门电路之间的连接根据由所述解释器提供的至少一个信号而被切换。
18.根据权利要求13所述的计算系统,其中
所述计算系统可以被连接至另一个计算系统,该另一个计算系统具有可根据由被提供的程序模块所表示的计算而改变的硬件结构,并执行由被提供的程序模块所表示的计算。
所述计算系统进一步包括一结果获得单元(7),该结果获得单元在所述计算系统与另一个计算系统连接时,向另一个计算系统提供被载入的第二程序模块,以控制另一个计算系统执行第二计算,并从另一个计算系统获得第二计算的结果。
19.根据权利要求18所述的计算系统,其中:
所述解释器(47)在所述计算系统与另一个计算系统连接时,向所述结果获得单元(7)提供被载入的第二程序模块;以及
所述结果获得单元(7)通过为所述计算单元(42)提供所获得的第二计算的执行结果作为再开始第一计算的变元,控制所述计算单元继续第一计算。
CNB028096444A 2001-05-10 2002-05-08 计算系统 Expired - Fee Related CN100361119C (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
JP139951/2001 2001-05-10
JP2001139951 2001-05-10
JP060515/2002 2002-03-06
JP2002060515A JP3561506B2 (ja) 2001-05-10 2002-03-06 演算システム
PCT/JP2002/004461 WO2002093404A2 (en) 2001-05-10 2002-05-08 Computing system

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CNA2007100021370A Division CN101025731A (zh) 2001-05-10 2002-05-08 计算系统

Publications (2)

Publication Number Publication Date
CN1529858A true CN1529858A (zh) 2004-09-15
CN100361119C CN100361119C (zh) 2008-01-09

Family

ID=26614885

Family Applications (2)

Application Number Title Priority Date Filing Date
CNA2007100021370A Pending CN101025731A (zh) 2001-05-10 2002-05-08 计算系统
CNB028096444A Expired - Fee Related CN100361119C (zh) 2001-05-10 2002-05-08 计算系统

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CNA2007100021370A Pending CN101025731A (zh) 2001-05-10 2002-05-08 计算系统

Country Status (7)

Country Link
US (1) US20050027836A1 (zh)
EP (1) EP1421511A2 (zh)
JP (1) JP3561506B2 (zh)
KR (2) KR100776608B1 (zh)
CN (2) CN101025731A (zh)
TW (1) TW561405B (zh)
WO (1) WO2002093404A2 (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1659486B1 (en) * 2003-08-29 2019-04-17 Fuji Xerox Co., Ltd. Data processing device
EP1669868A4 (en) * 2003-09-30 2009-03-25 Sanyo Electric Co PROCESSOR AND INTEGRATED CIRCUIT WITH CONVERTIBLE CIRCUIT AND PROCESSING PROCESS THEREFORE
CN100412801C (zh) * 2003-09-30 2008-08-20 三洋电机株式会社 备有可重构电路的处理装置、集成电路装置
JP3836109B2 (ja) * 2004-02-19 2006-10-18 東京エレクトロン株式会社 プログラマブル論理回路制御装置、プログラマブル論理回路制御方法及びプログラム
WO2006011232A1 (ja) 2004-07-30 2006-02-02 Fujitsu Limited リコンフィギュラブル回路およびリコンフィギュラブル回路の制御方法
US7941794B2 (en) 2004-08-30 2011-05-10 Sanyo Electric Co., Ltd. Data flow graph processing method and processing apparatus provided with reconfigurable circuit
US20060200603A1 (en) * 2005-03-01 2006-09-07 Naoto Kaneko Dynamic resource allocation for a reconfigurable IC
DE102005010477A1 (de) * 2005-03-04 2006-09-07 Daimlerchrysler Ag Vorrichtung und Verfahren zur Abarbeitung priorisierter Steuerungsprozesse
DE102005010476A1 (de) * 2005-03-04 2006-09-07 Daimlerchrysler Ag Steuergerät mit konfigurierbaren Hardwaremodulen
JP4720436B2 (ja) * 2005-11-01 2011-07-13 株式会社日立製作所 リコンフィギュラブルプロセッサまたは装置
US20070139074A1 (en) * 2005-12-19 2007-06-21 M2000 Configurable circuits with microcontrollers
EP2523117B1 (en) * 2011-05-11 2014-01-22 Telefonaktiebolaget L M Ericsson (publ) Interface module for HW block
WO2018237361A1 (en) * 2017-06-22 2018-12-27 Icat Llc HIGH SPEED PROCESSORS

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5802290A (en) * 1992-07-29 1998-09-01 Virtual Computer Corporation Computer network of distributed virtual computers which are EAC reconfigurable in response to instruction to be executed
US6594752B1 (en) * 1995-04-17 2003-07-15 Ricoh Company, Ltd. Meta-address architecture for parallel, dynamically reconfigurable computing
US5933642A (en) * 1995-04-17 1999-08-03 Ricoh Corporation Compiling system and method for reconfigurable computing
US5778439A (en) * 1995-08-18 1998-07-07 Xilinx, Inc. Programmable logic device with hierarchical confiquration and state storage
US5706514A (en) * 1996-03-04 1998-01-06 Compaq Computer Corporation Distributed execution of mode mismatched commands in multiprocessor computer systems
US5838165A (en) * 1996-08-21 1998-11-17 Chatter; Mukesh High performance self modifying on-the-fly alterable logic FPGA, architecture and method
GB2317468B (en) * 1996-09-23 2001-01-24 Advanced Risc Mach Ltd Digital signal processing integrated circuit architecture
DE19651075A1 (de) * 1996-12-09 1998-06-10 Pact Inf Tech Gmbh Einheit zur Verarbeitung von numerischen und logischen Operationen, zum Einsatz in Prozessoren (CPU's), Mehrrechnersystemen, Datenflußprozessoren (DFP's), digitalen Signal Prozessoren (DSP's) oder dergleichen
JP3587095B2 (ja) * 1999-08-25 2004-11-10 富士ゼロックス株式会社 情報処理装置
JP3621315B2 (ja) * 1999-11-22 2005-02-16 Necエレクトロニクス株式会社 マイクロプロセッサシステム

Also Published As

Publication number Publication date
TW561405B (en) 2003-11-11
WO2002093404A2 (en) 2002-11-21
KR20040004617A (ko) 2004-01-13
WO2002093404A3 (en) 2004-03-25
US20050027836A1 (en) 2005-02-03
KR100776608B1 (ko) 2007-11-16
CN100361119C (zh) 2008-01-09
EP1421511A2 (en) 2004-05-26
KR20060114722A (ko) 2006-11-07
JP2003029969A (ja) 2003-01-31
CN101025731A (zh) 2007-08-29
JP3561506B2 (ja) 2004-09-02

Similar Documents

Publication Publication Date Title
CN1529858A (zh) 计算系统
CN1258154C (zh) 多处理器系统、数据处理系统和数据处理方法
CN1253806C (zh) 仲裁电路和数据处理系统
CN86100690A (zh) 处理机输入/输出和中断过滤器
CN1877532A (zh) 编译装置
CN1916842A (zh) 构件化软件系统中实现反射机制的构件封装方法
CN1794168A (zh) 信息处理设备、信息处理方法、半导体器件及计算机程序
CN1866221A (zh) 一种软件接口测试方法和装置
US20090292846A1 (en) Method of interrupt scheduling
CN1758213A (zh) 带有共享内容的异构型并行多线程处理器(hpmt)
CN1592881A (zh) 图形用户接口组件焦点目的设置装置和焦点移动装置
CN1761949A (zh) 垃圾收集系统
CN1700357A (zh) 用于内置错误诊断的半导体存储器件
CN1731361A (zh) 一种跨平台函数调用系统
CN1734415A (zh) 分枝预测装置及分枝预测方法
CN1013316B (zh) 计算机程序的动态适应环境
CN1598797A (zh) 实时处理器系统及控制方法
CN1770108A (zh) 软件在线升级的方法
CN1959630A (zh) 微处理器
CN1096025C (zh) 信息处理装置及多任务控制方法
CN2682491Y (zh) 调试功能内置型微型计算机
CN1636185A (zh) 逻辑计算系统和方法
CN100343799C (zh) 产生流水线微处理器的早期状态标志的装置及方法
CN1851819A (zh) 存储设备的测试方法及测试装置
CN1690909A (zh) 一种安全计算机及其实现方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: TOKYO ELECTRON LTD.

Free format text: FORMER OWNER: TOKYO ELECTRON DEVICE LTD.

Effective date: 20070615

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

Effective date of registration: 20070615

Address after: Tokyo, Japan, Japan

Applicant after: Tokyo Electron Limited

Address before: Kanagawa, Japan

Applicant before: Tokyo Electron Device Ltd.

C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20080109

Termination date: 20120508