CN100437975C - 集成电路,系统开发方法,和数据处理方法 - Google Patents

集成电路,系统开发方法,和数据处理方法 Download PDF

Info

Publication number
CN100437975C
CN100437975C CNB031452531A CN03145253A CN100437975C CN 100437975 C CN100437975 C CN 100437975C CN B031452531 A CNB031452531 A CN B031452531A CN 03145253 A CN03145253 A CN 03145253A CN 100437975 C CN100437975 C CN 100437975C
Authority
CN
China
Prior art keywords
parameter
integrated circuit
interface
hardware
specialized hardware
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CNB031452531A
Other languages
English (en)
Other versions
CN1471153A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of CN1471153A publication Critical patent/CN1471153A/zh
Application granted granted Critical
Publication of CN100437975C publication Critical patent/CN100437975C/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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • 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
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Logic Circuits (AREA)
  • Executing Machine-Instructions (AREA)
  • Microcomputers (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

一种集成电路包括:处理器;算术逻辑电路组,该算术逻辑电路组包括多个操作单元和以可重构方式连接所述操作单元的连接通道;基于参数的专用硬件,能够通过参数设置来改变其中的进程规范;和模块间接口,把所述处理器,所述算术逻辑电路组,以及所述基于参数的专用硬件彼此连接。

Description

集成电路,系统开发方法,和数据处理方法
技术领域
本发明通常涉及集成电路,并且特别涉及能够在其逻辑上重构的集成电路。
背景技术
当预先确定一个待执行的进程时,有可能通过设计一个专用于该进程的LSI,实现一个以高性能并且低功耗执行该进程的系统。然而,当通过改变规范(specification)来执行不同的进程时,必须要从头开始重新设计并重新制造LSI。因此,专用LSI具有非常低的规范变更能力(允许规范变更的能力)。
一个具有高规范变更能力的结构的实例是这样一种结构,其中在处理器上执行软件并且通过重写该软件来实现规范的变更。在这种情况下的规范变更能力是非常强的。然而,因为处理器被配置为可以执行通用进程,所以处理器具有很高的冗余度,因而导致了低处理性能和高功耗。
FPGA(现场可编程门阵列(Field Programmable Gate Arrays))通过把配置数据写入存储器来允许自由地重构逻辑器件之间的连接,从而能够进行各门的变更。FPGA具有规范变更能力,但是为了变更规范,必须从RTL(寄存器传送逻辑)设计开始。因此虽然不必像专用LSI那样重新制造硬件,但在逻辑设计方面的劳力相当于变更专用LSI的设计所需的劳力。此外,因为硬件的高冗余度,电路尺寸比专用LSI的尺寸增加了大约十倍,因而导致了高成本和高功耗。
此外,在SOC(芯片上系统)中,由相同的LSI芯片形成处理器和专用硬件。处理器被用于控制专用硬件。上述专用LSI的问题同样适用于专用硬件。
另外,存在一种结构,其中FPGA和处理器被一起使用,并且该处理器控制专用硬件。在该结构中,上文提到的FPGA的问题也同样适用于该FPGA。
另外,考虑编程,即使在具有高规范变更能力的由处理器和软件形成的系统中,当以自顶向下的方式做出设计时,软件的规范变更仍需要大量劳动和时间,这是相当大的工作量。在自顶向下的方法中,过程是用流程图表示的。因此不容易重写流程图和变更软件。例如,当加入一个新的进程时,必须在现存程序的一部分上加入一个条件分支。这样,除了仅增加该新进程外,还增加了进一步开发该分支后的进程的需要。当反复地更改软件时,程序的可读性和易于维护性下降。因此,增加了误差,而且改进变得不可能了。
此外,在编程方面,SOC难于给软件和硬件分配任务。在SOC中,设计员在设计的初始阶段基于他/她的经验知识将进程分配给软件和硬件。因此,在许多时候,进程的分配不是最优化的。而且以后很难更改软件和硬件之间的边界。
换句话说,当使用自顶向下的方法给软件和硬件分配任务(进程)时,在设计的初始阶段要考虑到所有的进程。接着把凭经验决定的将引起大的处理负荷的进程分配给硬件,并且将引起小的处理负荷的进程分配给软件。通过这样的设计方法获得的系统配置不总是最优化的。以后也不可能执行从硬件到软件的进程的转换。然而,为了执行从软件到硬件的进程的转换,需要硬件的设计变更和一个在工厂中的制造过程。
提出了被称做“Pleiades”的系统(Hui Zhang,Vandana Prabhu,Varghese George,Marlene Wan,Martin Benes,Arthur Abnous,“A 1VHeterogenerous Reconfigurable Processor IC for Baseband WirelessApplications”,Proceeding s of ISSCC2000)作为解决上述问题的方法。“Pleiades”包括通过总线连接的一个处理器,一个MAC(乘数累加器),一个ALU(算术逻辑单元),一个AGU(地址生成单元),一个MEM(存储器),一个FPGA,和类似的元件,并且该“Pleiades”被设计成执行单线程/进程。
“Pleiades”除了提供有一个处理器外,该“Pleiades”还提供了多种各自具有不同的粒度(可重构单元的尺寸)的可重构模块,和专用硬件,以便提供一个在规范变更能力、性能和功耗方面都最优化的结构。但是该设计方法是一个以自顶向下的方式。因此,决定将从软件操作向硬件(包括一个可重构部分)转换的进程,并且通过把进程转换到硬件来进行优化。因此,转换的设计变更是耗时的。
此外,“Pleiades”通过将单进程(或者单线程)分配给各个模块来执行信号进程。因此,需要在模块之间进行频繁的数据传送,并且处理性能受到模块之间的信号传输通道资源的限制。从硬件的角度考虑这些情况,在“Pleiades”中,各操作单元,例如MAC(乘数累加器)和ALU(算术逻辑单元)、FPGA、和处理器被提供在信号传输通道的相同层上。因此,操作单元之间,操作单元和FPGA之间,或者操作单元和处理器之间的数据传输量增加,导致了处理性能的下降。
发明内容
本发明的总目的是提供一种改进且有用的集成电路,系统开发方法,和数据处理方法,它们消除了上文提到的一个或者多个问题。
本发明的另一个更具体的目的是提供一种可重构的集成电路,其上安装了多个模块,每个模块具有不同的规范变更能力(允许规范变更的能力)、性能,和功耗,该集成电路允许进程的最优分配,并且仅需要在信号传输通道中进行比较小量的传送。
为了实现上述目的,根据本发明的一方面,提供一种集成电路,该集成电路包括:
处理器;
算术逻辑电路组,该算术逻辑电路组包括多个操作单元和一个以可重构的方式连接操作单元的连接通道;
基于参数的专用硬件,能够通过参数设置来改变其中的进程规范;以及
模块间接口,把处理器、算术逻辑电路组、和基于参数的专用硬件彼此连接。
根据本发明的上述方面,有可能通过安装各自具有不同粒度(可重构单元的尺寸)的多个模块来优化功耗、性能,和规范变更能力。此外,各算术逻辑电路不独立与模块间接口连接,但提供一个可重构的连接通道,并且在算术逻辑电路组中包含多个算术逻辑电路。因此可实现这样的结构,其中在算术逻辑电路组中进行多个操作单元之间的数据传送。因此,在本发明中,能够实现高系统性能,而操作单元的处理速度不会受到模块间接口的数据传送速率的限制。
此外,根据本发明的另一个方面,提供一种对集成电路编程的系统开发方法,该集成电路包括:处理器;算术逻辑电路组,该算术逻辑电路组具有多个操作单元和一个以可重构方式连接操作单元的连接通道;基于参数的专用硬件,该硬件能够通过参数设置来改变其中的进程规范;和模块间接口,该接口把处理器,算术逻辑电路组,和基于参数的专用硬件彼此连接,该系统开发方法包括如下步骤:
通过对象分析生成对象和对象之间的关系;
通过合并彼此相关联的对象生成多个进程,其中每个进程包括至少一个对象;以及
将进程分配给集成电路的处理器、算术逻辑电路组、和基于参数的专用硬件。
根据本发明的上述方面,例如,通过利用对象构造一个包括硬件的系统,有可能容易地执行由对象的变更所引起的规范变更。那些映射到处理器部分和可重构硬件部分的对象允许该规范变更。规范变更的目标对象和集成电路的模块之间的关系也是清楚的。因此容易执行规范变更。
通过结合附图阅读下文的详细说明,本发明的其它目的、特征和优点将更加明显。
附图说明
图1是示出根据本发明的专用平台LSI的结构的示意图;
图2是示出专用平台LSI的第一实施例的结构的示意图;
图3是示出专用平台LSI的第二实施例的结构的示意图;
图4是示出专用平台LSI的第三实施例的结构的示意图;
图5是示出专用平台LSI的第四实施例的结构的示意图;
图6是示出算术逻辑电路组的第一实施例的结构的示意图;
图7是示出算术逻辑电路组的第二实施例的结构的示意图;
图8是示出算术逻辑电路组的第三实施例的结构的示意图;
图9是示出算术逻辑电路组的第四实施例的结构的示意图;
图10是示出基于参数的硬件的第一实施例的结构的方框图;
图11是示出基于参数的硬件的第二实施例的结构的方框图;
图12是示出基于参数的硬件的第三实施例的结构的方框图;
图13是示出基于参数的硬件的第四实施例的结构的方框图;
图14是示出专用平台LSI中系统开发的实例的示意图;
图15是示出专用平台LSI中把进程映射到各模块的方法的实例的示意图。
具体实施方式
参考附图将给出关于本发明的实施例的详细说明。
图1是示出根据本发明的专用平台LSI的结构的示意图。
在图1中,专用平台LSI 10包括:一个处理器11;一个算术逻辑电路组12,它由多个操作单元构成并且可以通过改变操作单元之间的连接来重构操作流程;一个可重构门阵列13,允许对门电平进行逻辑变更;用于执行特定进程的专用硬件14;基于参数的专用硬件(可通过至少一个参数来配置的专用硬件)15,它允许通过设置参数进行特定进程规范变更;一个共同使用的存储器(共享存储器)16;和一个模块间接口17。应该注意到图1示出多个算术逻辑电路组12,可重构门阵列13,专用硬件14,和基于参数的专用硬件15;但不存在对数量的特别限制。对于上述模块,也可以每种仅提供一个。此外,本发明中,专用平台LSI 10至少包括处理器11,算术逻辑电路组12,和基于参数的专用硬件15。可重构门阵列13和专用硬件14(它们是其它的逻辑模块)是可选的。
在本发明中,如图1所示,通过安装各自具有不同粒度(可重构单元的尺寸)的多个不同模块,能够使功耗、性能、和规范变更能力(允许规范变更的能力)最优化。即,通过将每个进程分配给最适合的模块,并且由该模块执行该进程,能够使功耗和性能最优化,并且能够通过考虑规范变更中需要的变更单元的尺寸,来考虑将进程分配给模块,从而实现规范变更能力的最优化。
图2是示出专用平台LSI的第一实施例的结构的示意图。在图2中,使用相同的参考符号指示与图1中对应的相同部分,并且在此省略其说明。
图2中所示的专用平台LSI 10A除了包括图1所示的部件外,还包括数据传送控制器18。此外,模块间接口17由多个总线构成,并且数据传送控制器18控制总线上的数据传送。此外,各模块除了被提供有共享存储器16,还被提供有局部存储器。
图3是示出专用平台LSI的第二实施例的结构的示意图。在图3中,用相同的参考符号指示与图1对应的相同部分,并且在此省略其说明。
图3所示的专用平台LSI 10B除了包括图1所示的部件外,还包括数据传送控制器18和一个DSP 19。而且,模块间接口17由纵横接线器(crossbar)构成,并且数据传送控制器18控制纵横接线器上的数据传送。因此,能够提供一种可改变模块间信号路径的连接的可重构模块间接口。此外,每个模块除了被提供有共享存储器16,还被提供有一个局部存储器。另外,例如,共享存储器16可以是一个具有16个存储体的4端口存储器,并且通过存储体结构可以消除对存储器存取的竞争。
图4是示出专用平台LSI的第三实施例的结构的示意图。在图4中,用相同的参考符号指示与图3对应的相同部分,并且在此省略其说明。
图4-A所示的专用平台LSI 10C包括处理器11,多个算术逻辑电路组12,专用硬件14,基于参数的专用硬件15,由纵横接线器实现的模块间接口17,数据传送控制器18,I/O控制器20,和连接器21。专用平台LSI10C不具有可重构门阵列13。
图4-B示出与专用平台LSI 10C连接的可重构门阵列LSI 30。该可重构门阵列LSI 30包括可重构门阵列13和连接器31。
图4-C示出这样的结构,其中通过将可重构门阵列LSI 30叠置在专用平台LSI 10C上,使得专用平台LSI 10C和可重构门阵列LSI 30彼此连接。通过利用导线连接连接器21和31,使得专用平台LSI 10C能够使用可重构门阵列30的功能。应该注意到图4-C指示出一个叠置的结构,然而,这两个芯片可以布置在一个平面上,并且安装在一个基板上。此外,双芯片结构不是一个限制,而且通过进一步布置多个LSI,也可以在一个基板上安装三个芯片或者更多芯片。
图5是示出专用平台LSI的第四实施例的结构的示意图。在图5中,用相同的参考符号指示与图1对应的相同部分,并且在此省略其说明。
图5所示的专用平台LSI 10D包括处理器11,多个算术逻辑电路组12,可重构门阵列13,专用硬件14,基于参数的专用硬件15,存储器16,模块间接口17,和DSP 19。在第四实施例的结构中,模块间接口17由分层总线实现。在分层总线中,相邻的模块通过下层总线相连接,并且通过上层总线(用粗线表示)执行远离的模块之间的数据传送。在图5所示的实例中,应用了两层式总线。然而,层数并不局限于两层,可以是三层或者更多层。
图6是示出算术逻辑电路组12的第一实施例的结构的示意图。
图6所示的算术逻辑电路组12A包括:寄存器40-1到40-4;多个选择器41-1到41-3;操作单元42-11到42-15,42-21到42-25,及42-31到42-35;和控制器43。把由模块间接口17提供的数据输入,并且临时保存在寄存器40-1中。寄存器40-1具有多个寄存器电路并且能够同时存储多个数据。通过多个选择器41-1将寄存器40-1中的数据提供给操作单元42-11到42-15,选择器41-1由控制器43控制。
操作单元42-11到42-15是不同种类的操作单元。例如,操作单元42-11,42-12,和42-13分别是一个8位MPY(乘法器),一个16位MPY(乘法器),和一个MAC(乘数累加器)。操作单元42-14和42-15例如是ALU(算术逻辑单元)。控制器43控制操作单元42-11到42-15的操作,使每个操作单元接收两个数据,执行一个预定操作,并且输出一个数据。将输出的数据提供给寄存器40-2。这样,第一级中的操作单元阵列的操作完毕。此外,操作单元42-11到42-15不必是不同种类的操作单元,并且可以是相同种类的操作单元(例如ALU)。
第二和第三级被构造得与第一级相类似。通过多个选择器41-2将寄存器40-2中的数据提供给操作单元42-21到42-25,执行预定操作,并且将操作结果提供到寄存器40-3。通过多个选择器41-3将寄存器40-3中的数据提供给操作单元42-31到42-35,执行预定操作,并且将操作结果提供到寄存器40-4。将寄存器40-4中的操作结果提供给模块间接口17。
如上所述,模块间接口17提供的数据经过第一级中的操作,第一级的操作结果数据经过第二级中的操作,并且第二级的操作结果数据经过第三级中的操作。在此情况下,控制器43选择被提供给各操作单元的操作目标数据,以便随意配置操作单元之间的连接。因此能够控制操作数据的流动,就是说,将一级的结果提供给另一级,以便执行所期望的操作进程。控制器43是可编程的。当必须改变操作进程时,能够通过重写控制器43的控制程序来改变操作数据的流动(操作单元之间的连接),从而以操作进程为单元改变规范。
此外,虽然上述实例使用三级结构,但级数并不局限为三个,并且可以是两个,四个或者更多。
在上面描述的“Pleiades”中,操作单元,例如MAC(乘数累加器)和ALU(算术逻辑单元),FPGA,和处理器被布置在信号传输通道的相同层中。因此,在操作单元之间,操作单元和FPGA之间,或者在操作单元和处理器之间的传送数据量增加,这样导致处理性能的下降。另一方面,在本发明的专用平台LSI 10中,配置具有FPGA和处理器之间的中间粒度的算术逻辑电路组12,使得可在算术逻辑电路组12中进行多种操作单元之间的数据传送,其中该FPGA允许对各门进行变更,并且该处理器允许通过重写软件进行变更。因此,在本发明中,操作单元的操作处理速度不受模块间接口17的数据传送速率的限制。因此,本发明能够实现高系统性能。
图7是示出算术逻辑电路组12的第二个实施例的结构的示意图。
图7所示的算术逻辑电路组12B包括从操作单元阵列51到54的四级。与图6所示的算术逻辑电路组12A的操作单元阵列相类似,各级的操作单元阵列由寄存器,多个选择器和多个操作单元构成。四级的操作单元阵列51-54被构建得使后级中的操作单元数逐级变少。这种设置对应于这样一种情况,当执行一系列操作进程时,越靠后的级中出现的并发操作越少。就是说,每个操作单元从一个或者两个数据输入产生一个数据输出。因此,通常靠后的级中的数据数量变少,并且所需的操作单元数量变少。
另外,图7所示的结构提供有一个配置存储器44和一个旁路45。提供例如旁路45用于通过直接连接各级中的寄存器来使用后级中的操作单元,以预防该级中操作单元的数量不足以及没有提供所需类型的操作单元的情况。因此,能够利用较少数量的操作单元来实现操作的最优化。另外,配置存储器44是一个存储各选择器的选择设置信息的存储器。通过将设置数据适当写入存储器,控制器43能够控制各选择器的操作。因此选择器能够容易地实现复杂的选择组合。
图8是示出算术逻辑电路组12的第三实施例的结构的示意图。
图8所示的算术逻辑电路组12C包括一个控制器60,一个配置存储器61,一个寄存器62,多个选择器63,一个纵横接线器64,一个缓冲器65,和操作单元66-1到66-6。
将模块间接口17提供的数据输入并临时保存在寄存器62中。寄存器62有多个寄存器电路并且能够同时存储多个数据。通过控制器60控制的选择器63和纵横接线器64,将寄存器62中的数据提供给操作单元66-1到66-6。将关于选择器63的选择的设置信息存储到配置存储器61中。
操作单元66-1到66-6是不同种类的操作单元,它们包括,例如,MPY(乘法器),BIT单元,MAC(乘数累加器),和ALU(算术逻辑单元)。控制器60控制操作单元66-1到66-6的操作,每个操作单元接收一个或者两个数据,执行一个预定操作,并且输出一个数据。应该注意到操作单元中的一些操作单元可以是同种类的,或者所有操作单元可以是相同种类的。通过纵横接线器64和选择器63将输出数据提供给寄存器62。在此,操作单元阵列进行的第一操作结束。
此后,在控制器60的控制下,根据所需次数重复下列操作,由操作单元66-1到66-6处理寄存器62中的数据并且将结果返回寄存器62的操作。在此情况下,将操作的中间结果存储在缓冲器65中,使得操作单元66-1到66-6能够使用该结果。而且,把多个寄存器66A提供给操作单元66-1到66-6的各输出部分,使得它们的输出能够被临时保存。另外,为控制器60提供一个地址生成电路60A,由此能够通过地址规范控制每个单元。
另外,控制器60是可编程的。当需要改变操作进程时,能够通过重写控制器60的控制程序来改变操作数据的流动(操作单元之间的连接),从而变更每个操作的规范。
图9是示出算术逻辑电路组12的第四实施例的结构的示意图。
图9所示的算术逻辑电路组12D包括一个控制器70,一个配置存储器71,一个存储器72,一个可重构网络73,和操作单元74-1到74-7。操作单元74-1到74-7是不同种类的操作单元并且包括,例如,MPY(乘法器),BIT单元,MAC(乘数累加器),ALU(算术逻辑单元),和MOD单元(模单元)。应该注意到操作单元中的一些可以是同种类的,或者所有操作单元可以是同一类的。在模块间接口17和算术逻辑电路组12D之间的接口部分中提供有存储器72。此外,在存储器72和操作单元74-1到74-7之间提供有可重构网络73,该可重构网络73允许自由重构多个信号路径的连接。用于设置可重构网络73的信号路径的连接的配置数据被存储在配置存储器71中。图9所示的算术逻辑电路组12D的操作与图8所示的算术逻辑电路组12C的操作是相同的。
图10是示出基于参数的专用硬件15的第一实施例的结构的示意图。
图10所示的基于参数的专用硬件15A包括一个控制器89,一个参数保存寄存器81,一个数据输入/输出缓冲器(数据输入和输出缓冲器)82,一个专用硬件引擎83,和一个临时数据存储缓冲器84。
将模块间接口17提供的数据临时存储并且保存在数据输入/输出缓冲器82中。将存放在数据输入/输出缓冲器82中的数据提供给专用硬件引擎83,并且控制器80控制专用硬件引擎83的操作来执行预定数据处理。在专用硬件引擎83执行数据处理时,临时数据存储缓冲器84临时存储并且保存数据处理的中间结果。
专用硬件引擎83是一个被设计并制造成专用于执行预定数据处理的硬件,并且它不能改变其引擎的任务。但专用硬件引擎83被配置成能够改变其参数,例如,数据量和进程的精确度。参数信息被存放在参数保存寄存器81中。控制器80基于存放在参数保存寄存器81中的信息操作专用硬件引擎83,从而使该专用硬件引擎83能够根据所期望的规范执行一个预定的操作。
图11是示出基于参数的专用硬件15的第二实施例的结构的示意图。
在图11中,用相同的参数符号指示与图10中对应的相同部分,并且在此省略其说明。
图11所示的基于参数的专用硬件15B是执行快速傅立叶变换的硬件。专用硬件引擎83B包括用于FFT的蝶形单元85-1到85-4和用于数据重排列进程的变换器86。通过控制器80控制计算次数能够执行不同点数(数据数)的FFT。
图12是示出基于参数的专用硬件15的第三实施例的结构的示意图。在图12中,用相同的参考符号指示与图11相对应的相同部分,并且在此省略其说明。
图12所示的基于参数的专用硬件15C是通过在图11所示的基于参数的专用硬件15B上添加一个时钟控制器87构成的。该时钟控制器87产生时钟信号并且该信号提供给控制器80、数据输入/输出缓冲器82、专用硬件引擎83B、和临时数据存储缓冲器84。基于所提供的时钟信号操作这些电路单元。图12所示的基于参数的专用硬件15C中,能够根据参数设置来改变时钟控制器87产生的时钟信号的频率。因此能够控制FFT进程所需的时间。因此,能够改变进程模式。
图13是示出基于参数的专用硬件15的第四实施例的结构的示意图。在图13中,用相同的参考符号指示与图12对应的相同部分,并且在此省略其说明。
图13所示的基于参数的专用硬件15D是一个执行扩频通信中的解扩处理的硬件。专用硬件引擎83D包括用于解扩处理的解扩引擎88-1到88-8。也就是说,能够执行8-手指(8-finger)解扩处理。而且,通过设置参数来改变控制器80的控制操作并且由8个解扩引擎88-1到88-8执行分时处理,能够实现16,32和48个手指的解扩处理。如上所述,当手指的数量通过使用分时处理而增加时,必须增加时钟控制器87产生的时钟信号的频率,并且在预定时间期间完成一个预定进程。
在下文中,将给出关于本发明的专用平台LSI中的系统开发的说明。
软件领域中,开发了面向对象的设计方法并且用其解决在自顶向下的方法中规范变更和维护中的问题。在面向对象的设计方法中,软件组件由容易被人们直观理解的对象构成,并且通过构建对象之间的相互关系来形成整个软件程序。因为软件是由小对象构造的,这样的设计方法是有利的,例如,能够仅通过变更和替换对象并且改变用于变更规范的对象之间的关系,容易地执行规范变更。
在本发明中,包括硬件和软件的系统是由对象构成的,这样容易进行由对象变更所引起的规范变更。在利用面向对象设计方法设计的系统中,至少由一个对象构成的各进程被映射到本发明的专用平台LSI的各个模块上。
映射到处理器和可重构硬件部分的对象允许规范变更。因此能够执行在SOC中不可能进行的规范变更。在这种情况下,因为作为规范变更目标的对象和LSI模块之间的关系是清楚的,所以容易执行规范变更。
图14示出专用平台LSI中系统开发的一个实例。
首先,基于一个规范,执行关于一个系统的对象分析,并且系统被描述为对象之间的关系。在这个阶段,软件和硬件之间没有区分。
其次,合并相关联的对象以便形成(产生)多个进程。此时,例如,在各进程之间的通信量小于各进程之中的通信量的条件下形成(产生)多个进程,并且进程之间的关系不太多。在此阶段,软件和硬件之间没有区分。
再次,以一种抽象形式(例如接口和通道)描述各进程之间的通信。在这个阶段,软件和硬件之间没有区分。
最后,将进程分配给构成专用平台LSI的各个模块。此时,用接口或者通道描述的通信被映射到用于在专用平台LSI上通信的中间件或者资源上。在这个阶段,根据硬件和软件之间的区分执行映射。通过优化地给模块分配进程来优化系统。另外,因为各进程是由对象构成的,所以很容易在进程之间移动对象,并且也容易执行用于重构进程的优化操作。此外,应该注意到该设计方法可被应用到,例如,常规的SOC,也适用于专用平台LSI。
在上述的设计方法中,没有执行对单进程(单线程)的编程,但执行了对多进程(多线程)的编程。通过把各个进程(线程)分配给各模块(例如,处理器,算术逻辑电路组,可重构门阵列,专用硬件,基于参数的硬件),能够减少模块之间传送的数据量。每个进程(线程)由至少一个对象构成。因此,容易在进程之间移动。
如上文所述,在编程阶段,因为利用具有高抽象级的描述(例如利用接口描述和通道描述)来描述进程(线程)之间的通信,所以不必知道硬件间的通信,软件间的通信以及硬件和软件之间的通信。为了实现这点,提供了对应于接口或者通道的硬件模块(运行硬件间的通信以及软件和硬件之间通信的一部分)。也提供了连接软件和硬件的驱动程序和连接软件的库。
另外,应该注意到处理器11所执行的软件控制模块的线程或者进程之间的通信。
在下文中,将提供关于本发明的专用平台LSI的系统开发方法的具体描述。
可以用UML进行初始阶段的对象分析,然后在C++中实现。在下一个阶段中,合并多个对象以形成(产生)进程。再下一个阶段,将进程和接口分离。此时,例如,可以用系统C表示接口和进程。在下一个阶段中,把进程映射到专用平台LSI的各模块上。此时,在评估性能时,通过调整映射来执行优化。此外,应该注意到可以使用JAVA(注册商标)作为描述语言来取代C++。可以使用任何语言,只要该语言是面向对象的语言。接口的描述也不局限于系统C,并且例如可以使用JINI和CORBA进行描述。
图15示出将进程映射到专用平台LSI的各模块的方法的实例。
当一个分配的目标模块是处理器时,将进程映射为软件对象。此时,由一个编辑器产生软件对象。预定进程被映射到专用硬件上作为可被API调用的进程。此外,能够使用参数化硬件的进程被映射到基于参数的专用硬件,作为可被API利用参数调用的进程。将那些被处理器进行软件处理时存在速度问题的进程映射到算术逻辑电路组和可重构门阵列上。在向算术逻辑电路组的映射中,使用专用编辑器或者执行专用编程。此外,在向可重构门阵列的映射中,利用RTL描述或者高级合成工具将进程映射成电路。
另外,如上所述,例如用系统C的通道或者信号来描述接口。根据相关联的进程将被映射到的模块的类型,将这些接口映射到最佳通信方法。例如,对于硬件间通信,将接口映射到模块之间的接口;对于软件和硬件之间的通信,将接口转换成驱动程序和模块之间的接口;并且对于软件间通信,将接口转换成进程间通信库。
在上文描述中,能够将系统的进程和接口映射到专用平台LSI上。
在本发明中,通过安装各自具有不同粒度(可重构单元的尺寸)的多个不同模块,能够使功耗,性能和规范变更能力最优化。此外,每个算术逻辑电路不是独立地与模块间接口连接,而是在算术逻辑电路组中提供可重构连接通道,并且算术逻辑电路组中包括多个算术逻辑电路。因此可以实现这样的结构,在该结构中,可以在算术逻辑电路组中进行多个操作单元之间的数据传送。因此,在本发明中,能够实现高系统性能而操作单元的处理速度不会受到模块间接口的数据传送速率的限制。
另外,本发明中,例如通过利用对象构造一个包括硬件的系统能够容易地执行由对象变更引起的规范变更。映射到处理器部分和可重构硬件部分的这些对象允许规范变更。作为规范变更目标的对象和集成电路的模块之间的关系也是清楚的。因此能够容易地执行规范变更。
本发明不局限于实施例具体公开的内容,并且在不超出本发明的范围的情况下可以作出变型和改进。

Claims (10)

1.一种集成电路,包括:
处理器;
算术逻辑电路组,该算术逻辑电路组包括多个操作单元和以可重构方式连接所述操作单元的连接通道;
基于参数的专用硬件,能够通过参数设置来改变进程规范;
模块间接口,用于把所述处理器、所述算术逻辑电路组、和所述基于参数的硬件彼此连接。
2.根据权利要求1所述的集成电路,其中算术逻辑电路组进一步包括:
与模块间接口连接的数据存储电路;
连接电路,该连接电路建立所述数据存储电路和操作单元之间的信号路径,并且能够重构信号路径的连接;和
控制电路,该控制电路控制所述连接电路的信号路径的连接。
3.根据权利要求2所述的集成电路,其中所述连接电路在操作单元之间建立一个可重构的信号路径。
4.根据权利要求1所述的集成电路,进一步包括:
可重构门阵列,该可重构门阵列与模块间接口相连接并且允许对门电平的逻辑变更。
5.根据权利要求1所述的集成电路,进一步包括:
与模块间接口相连接并且执行一个特定进程的专用硬件。
6.根据权利要求1所述的集成电路,进一步包括:
与模块间接口连接的共享存储器。
7.根据权利要求1所述的集成电路,其中模块间接口是一个可重构网络,该可重构网络能够改变其中的连接通道。
8.根据权利要求1所述的集成电路,其中所述基于参数的专用硬件包括:
与模块间接口相连接的数据输入/输出缓冲器;
与所述数据输入/输出缓冲器连接,并且执行一个特定进程的专用硬件;以及
控制所述专用硬件的操作和进程规范的控制电路。
9.一种对集成电路编程的系统开发方法,该集成电路包括:处理器;算术逻辑电路组,该算术逻辑电路组具有多个操作单元和一个以可重构方式连接操作单元的连接通道;基于参数的专用硬件,能够通过参数设置来改变其中的进程规范;和模块间接口,把处理器、算术逻辑电路组、和基于参数的专用硬件彼此连接,所述系统开发方法包括下列步骤:
生成多个进程,至少一个进程包括基于第一对象和第二对象之间的数据传输量的第一对象和第二对象;以及
将进程分配给集成电路的所述处理器、所述算术逻辑电路组、和所述基于参数的专用硬件。
10.如权利要求9所述的系统开发方法,进一步包括下列步骤:
以预定语言将进程之间的通信描述为通信接口;和
将以预定语言描述的通信接口映射到模块间接口资源、硬件驱动程序、和进程间通信软件库中的至少一个上。
CNB031452531A 2002-06-28 2003-06-27 集成电路,系统开发方法,和数据处理方法 Expired - Fee Related CN100437975C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2002190555A JP3934493B2 (ja) 2002-06-28 2002-06-28 集積回路及びシステム開発方法
JP190555/2002 2002-06-28

Publications (2)

Publication Number Publication Date
CN1471153A CN1471153A (zh) 2004-01-28
CN100437975C true CN100437975C (zh) 2008-11-26

Family

ID=29774330

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB031452531A Expired - Fee Related CN100437975C (zh) 2002-06-28 2003-06-27 集成电路,系统开发方法,和数据处理方法

Country Status (4)

Country Link
US (1) US7716458B2 (zh)
JP (1) JP3934493B2 (zh)
KR (1) KR100922411B1 (zh)
CN (1) CN100437975C (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1636725B1 (en) * 2003-06-18 2018-05-16 Imagination Technologies Limited Circuit register and method therefor
US20070186076A1 (en) * 2003-06-18 2007-08-09 Jones Anthony M Data pipeline transport system
WO2005091160A1 (ja) * 2004-03-19 2005-09-29 Ipflex Inc. 活性化コードの生成方法
JP4553615B2 (ja) * 2004-03-22 2010-09-29 三洋電機株式会社 処理装置
JP4553614B2 (ja) * 2004-03-22 2010-09-29 三洋電機株式会社 処理装置
JP4451733B2 (ja) 2004-06-30 2010-04-14 富士通マイクロエレクトロニクス株式会社 半導体装置
JP2006053687A (ja) * 2004-08-10 2006-02-23 Sony Corp 演算装置
US7765250B2 (en) 2004-11-15 2010-07-27 Renesas Technology Corp. Data processor with internal memory structure for processing stream data
CN101151804B (zh) * 2005-04-05 2010-05-19 松下电器产业株式会社 计算机系统、表示配置信息的数据结构及映射装置和方法
US7415595B2 (en) 2005-05-24 2008-08-19 Coresonic Ab Data processing without processor core intervention by chain of accelerators selectively coupled by programmable interconnect network and to memory
JP4580879B2 (ja) * 2006-03-02 2010-11-17 富士通セミコンダクター株式会社 リコンフィグラブル回路
US8412862B2 (en) * 2008-12-18 2013-04-02 International Business Machines Corporation Direct memory access transfer efficiency
JP5745165B2 (ja) * 2011-05-17 2015-07-08 アルテラ コーポレイションAltera Corporation ハイブリッド統合型デバイスにおいてハードロジックとソフトロジックとの間をインターフェース接続するシステムおよび方法
US9647668B2 (en) 2012-01-13 2017-05-09 Altera Corporation Apparatus for flexible electronic interfaces and associated methods
US11200192B2 (en) 2015-02-13 2021-12-14 Amazon Technologies. lac. Multi-mode system on a chip
JP2022040721A (ja) * 2020-08-31 2022-03-11 富士フイルムビジネスイノベーション株式会社 情報処理装置、及びプログラム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US41889A (en) * 1864-03-08 Improved tool-rest for turning-lathes
CN1336588A (zh) * 2000-08-02 2002-02-20 国际商业机器公司 用动态可重构测试电路来跟踪硬件状态的方法和装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS647231A (en) * 1987-06-30 1989-01-11 Toshiba Corp Parallel processing device for object directional system
US5541849A (en) * 1990-04-06 1996-07-30 Lsi Logic Corporation Method and system for creating and validating low level description of electronic design from higher level, behavior-oriented description, including estimation and comparison of timing parameters
US5457644A (en) * 1993-08-20 1995-10-10 Actel Corporation Field programmable digital signal processing array integrated circuit
JP3170599B2 (ja) 1996-03-01 2001-05-28 経済産業省産業技術総合研究所長 プログラマブルlsiおよびその演算方法
US6567837B1 (en) * 1997-01-29 2003-05-20 Iq Systems Object oriented processor arrays
US7085670B2 (en) * 1998-02-17 2006-08-01 National Instruments Corporation Reconfigurable measurement system utilizing a programmable hardware element and fixed hardware resources
JP5148029B2 (ja) 1999-02-15 2013-02-20 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 構成可能な機能ユニットを備えるデータプロセッサ及びそのようなデータプロセッサを使用する方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US41889A (en) * 1864-03-08 Improved tool-rest for turning-lathes
CN1336588A (zh) * 2000-08-02 2002-02-20 国际商业机器公司 用动态可重构测试电路来跟踪硬件状态的方法和装置

Also Published As

Publication number Publication date
KR100922411B1 (ko) 2009-10-16
KR20040025541A (ko) 2004-03-24
JP2004040188A (ja) 2004-02-05
JP3934493B2 (ja) 2007-06-20
US7716458B2 (en) 2010-05-11
US20040001296A1 (en) 2004-01-01
CN1471153A (zh) 2004-01-28

Similar Documents

Publication Publication Date Title
US11681645B2 (en) Independent control of multiple concurrent application graphs in a reconfigurable data processor
CN100437975C (zh) 集成电路,系统开发方法,和数据处理方法
US20210191781A1 (en) Concurrent program execution optimization
US20180231605A1 (en) Configurable Vertical Integration
CN110121702B (zh) 处理器、操作处理器的方法及可读存储介质
US8194690B1 (en) Packet processing in a parallel processing environment
US11886931B2 (en) Inter-node execution of configuration files on reconfigurable processors using network interface controller (NIC) buffers
CN106462396A (zh) 具有动态指令流映射的并行片式处理器
US10564929B2 (en) Communication between dataflow processing units and memories
JP2003524969A5 (zh)
CN101124569B (zh) 微处理器结构
CN103246625A (zh) 一种数据与地址共用引脚自适应调整访存粒度的方法
CN108874730A (zh) 一种数据处理器及数据处理方法
Wah A comparative study of distributed resource sharing on multiprocessors
CN104011674B (zh) 数字信号处理器
Bouhraoua et al. A New Client Interface Architecture for the Modified Fat Tree (MFT) Network-on-Chip (NoC) Topology.

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20081126

Termination date: 20150627

EXPY Termination of patent right or utility model