半导体器件的制作方法

文档序号:6511643阅读:142来源:国知局
专利名称:半导体器件的制作方法
技术领域
本发明涉及半导体器件,更具体地说,本发明涉及具有可动态重配置的电路配置的半导体器件。
背景技术
诸如LSI之类的传统半导体器件一般通过在设计阶段确定与门、或门等等的布置以及它们的互连关系以便执行预定的处理而被制造,使得能够执行满足所要求的规范的预定处理。就是说,为了实现传统半导体器件中的所需功能,通过设计对于每个门(在每个门的级别上)的电路配置(逻辑配置)来制造实现该功能的这种半导体器件。
可惜的是,上述半导体器件的电路配置是在设计阶段被固定的。因此,为了通过改变规范等等来执行满足不同要求规范的处理,每次都必须执行全部的设计和制造。这需要大量的劳力和时间,并且开发成本也是很高的。
一种解决这个问题的方法是被称为可重配置LSI的可重配置半导体器件,其即使在制造之后,也能够通过对逻辑进行重配置来改变要被执行的处理。这样的可重配置半导体器件具有多个算术单元,每个算术单元从CPU接收控制信号(配置信息),并且能够改变其功能。通过适当地组合移位器、ALU(算术和逻辑单元)、选择器等等而形成这些算术单元,并且这些算术单元可以通过从CPU接收配置信息,并且相应地对逻辑进行重配置,而改变要被执行的处理。
而且,作为关于存储器的地址控制,公开了一种在存储器(寄存器)中保存存储器地址的技术(例如,专利文献1)。
日本专利申请早期公开No.平6-309223。

发明内容
本发明的目的在于减小在具有可重配置的电路配置的半导体器件中,存储定值(fixed value)数据所需的存储容量。
本发明的半导体器件包括算术单元组、配置存储器和定值存储器,所述算术单元组具有多个算术单元,并且具有根据配置信息可重配置的电路配置。配置存储器存储了要被提供给算术单元组的配置信息。定值存储器存储要被提供给算术单元组并用于算术处理的定值。
在本发明中,要被提供给算术单元组的配置信息和定值被存储在可彼此独立控制的存储器中。因此,在配置存储器中,只需要存储用于从定值存储器中读出所需定值的信息,而无需在其中形成任何定值数据区域。另外,定值存储器不需要为算术处理器的每个状态,即为每个配置信息都存储定值。


图1是示出了可重配置半导体器件的布置示例的示图;图2是用于解释图1中所示的配置存储器的内容的示图;图3是示出了根据本发明实施例的可重配置半导体器件的一种布置示例的示图;图4A和4B是用于解释图3中所示的配置存储器和定值存储器的内容的示图;图5是示出了根据本发明实施例的可重配置半导体器件的另一布置示例的示图;以及图6A到6C是用于解释图5中所示的配置存储器和定值存储器的内容的示图。
具体实施例方式
在前述传统的可重配置半导体器件中,因为CPU直接控制多个算术单元,因此处理速度很低。例如,当要基于来自某个算术单元的中断而改变要由多个算术单元执行的处理时,CPU响应于来自该算术单元的中断而调用并执行中断处理程序,然后将与处理例程的处理结果相对应的配置信息等提供到这些算术单元。所述中断处理需要相当于几十个时钟周期的时间。因此,在传统的可重配置半导体器件中,处理速度很低,所以不能(对于每个时钟)动态地改变由算术单元所执行的处理。
作为一种解决该问题的方法,本申请提出了一种具有如图1所示的布置的可重配置半导体器件。
图1示出了本申请人所提出的可重配置半导体器件的布置示例的示图。为了执行电路配置(逻辑配置)的改变控制,该半导体器件所具有的不是CPU,而是具有与CPU等同功能的序列发生器(sequencer)。
如图1所示,可重配置半导体器件具有序列发生器(控制器)1和算术处理器2。
序列发生器1根据来自外部(例如经由外部总线3所连接的处理器)的指令而全面地控制半导体器件。序列发生器1进行管理和控制,以动态地改变算术处理器2的电路配置(包括逻辑配置)。为了根据应用而动态地改变算术处理器2的电路配置,序列发生器1经由信号线被连接到算术处理器2的单独的功能单元,以便能够从序列发生器1提供包括配置数据(配置信息)的控制信号。
序列发生器1具有状态控制器11、状态寄存器12和配置存储器13。
例如基于来自算术处理器2的预先设置的序列或状态转换指示信号,状态控制器11产生用于从配置存储器13中读出配置数据和定值数据的配置存储器地址,并且还产生读取定时,所述配置数据和定值数据将算术处理器2的状态(电路配置)改变到下一状态。状态控制器11的配置存储器地址的产生是通过参考以下信息而完成的,所述信息指示出状态寄存器12中所保存的当前状态。当当前状态改变到下一状态时,更新状态寄存器12中所保存的信息。
配置存储器13存储了配置数据和定值数据,所述配置数据设置算术处理器2的电路配置。所有的配置数据和定值数据都是在操作开始之前,预先从外部写入到配置存储器13中的,并且保存为每个状态一对数据。在状态控制器11的控制下,将配置存储器13中所存储的配置数据和定值数据读出,并且输出到算术处理器2。随后将详细描述配置存储器13的内容。
算术处理器2具有选择器/寄存器(总线)21、算术单元22-i以及数据存储器23-j。注意,i和j是后缀,i是从1到N的(任意)自然数,并且j是从1到M的(任意)自然数。
选择器/寄存器21由序列发生器1所提供的配置数据所控制。选择器/寄存器21连接到算术单元22-1到22-N以及数据存储器23-1到23-M,并且与算术单元22-i和数据存储器22-j交换数据。换句话说,选择器/寄存器21具有连接算术单元22-1到22-N以及数据存储器23-1到23-M的网络功能,从而所述算术单元和数据存储器可以彼此通信。
更具体地说,根据配置数据,选择器/寄存器21向算术单元22-i提供数据,向数据存储器23-j提供写入数据,并且接收从数据存储器23-j所提供的读出数据。而且,选择器/寄存器21具有寄存器,并且可以根据配置数据选择性地输出寄存器中所保存的数据,或者从另一位置所提供的数据,所述寄存器例如暂时保存来自算术单元22-i的输出(算术结果)。
每个算术单元22-i都具有寄存器24和ALU单元27。
寄存器24包括分别用于保存从序列发生器1所提供的配置数据和定值数据的配置寄存器25和定值寄存器26。
通过使用例如移位电路(移位器)、ALU(算术和逻辑单元)和选择器来形成ALU单元27(为了描述的方便,在下文中也将这些组件简单地称为算术单元,而无需在它们之间进行区分)。注意,根据将被使用的应用,可以适当地选择和确定ALU单元27,更具体地说,可以适当地选择和确定形成ALU单元27的多个(或一个)算术单元。
在每个ALU单元27中,基于配置寄存器25中所保存的配置数据而设置每个算术单元的运算模式以及算术单元之间的连接。就是说,根据配置数据,可以改变每个ALU单元27的电路配置,并且这样控制单独的算术单元,以便实现诸如加法、乘法、位运算以及逻辑运算(与、或和异或)之类的所需功能。
例如移位量、算术移位过程、逻辑移位过程、移位过程之后的预定位的屏蔽过程等等在移位电路中被控制。而且,在通过使用例如AND(逻辑乘运算)电路和OR(逻辑和运算)电路而形成的ALU中,通过适当地组合这些电路,而整体上控制ALU的电路(算术)功能。例如,多个输入中的将被输出的一个输入在选择器中被控制。此外,移位电路、ALU、选择器等等之间的连接被控制。
ALU单元27根据配置数据,或者在定值寄存器26中所保存的定值数据CVD,接收从选择器/寄存器21提供的第一输入数据DT1,并且还接收从选择器/寄存器21提供的第二输入数据DT2。ALU单元27通过使用这些数据来执行预定的运算,并且输出运算结果。虽然来自ALU单元27的该输出可以直接被输出,但是也可以基于配置数据,将其反馈。例如,可以对这些输出进行累加、标准化,然后再输出。
每个数据存储器23-j存储了与算术处理器2中的处理有关的数据。
图2是用于解释图1中所示的配置存储器13的内容的示图。如图2所示,配置存储器13存储了与每个状态相对应的配置数据和定值数据。在图2中,标号CDi表示配置数据;并且CVDi表示定值数据。注意,i是后缀,并且是从1到N的(任意)自然数。参考图2,只示出了定值数据CVDi的值,并且省略了配置数据CDi的值。
当要设置第k(k是后缀,并且是从1到128的自然数)个状态时,将配置数据CDi和定值数据CVDi提供到算术单元22-i,并且保存在配置寄存器24中。就是说,与用于实现算术处理器2中的所需电路功能的某种电路配置FUNCk有关的配置数据和定值数据,由图2中所示的在行方向上排列的一对配置数据CD1到CDN和定值数据CVD1到CVDN所组成。注意,虽然在图2中没有示出,但是除了与算术单元22-i相关的配置数据之外,配置存储器13当然还存储了例如用于控制选择器/寄存器21的配置数据。
如上所述,通过使用序列发生器1而非CPU,可重配置半导体器件使所谓的动态重配置成为可能,因此对于每个时钟,可以动态地对电路配置(逻辑)进行重配置。例如,算术处理器2可以基于来自序列发生器1的配置数据(控制信号),而在某个时钟周期期间执行功能A,并且在下一时钟周期期间执行与功能A不同的功能B。
但是,在图1和2所示的可重配置半导体器件中,对于能够接收定值(常量)的算术单元,定值数据与配置数据一起被保存在配置存储器13中,并且在需要时将定值数据读出并保存在与算术单元相对应的配置寄存器24中。为了如上所述地在配置存储器13中保存定值数据,需要在每个能够接收定值数据的算术单元中,形成用于存储定值数据的定值数据区域,并且将所有定值数据保存在配置存储器13中。如果来自选择器/寄存器21的到能够接收定值数据的算术单元的第二输入数据的宽度是32位,则必须在配置存储器13中,为算术处理器2的每个算术单元以及所有状态(在下文中也被称为“配置”)形成32位的定值数据区域。
但是,几乎不必对算术处理器2的所有状态都对每个算术单元设置作为输入的定值数据,即几乎不必无论何时算术处理器2的状态被转换都对每个算术单元设置作为输入的定值数据。因此,如上所述所形成的定值数据区域浪费了配置存储器13的存储区域,这样,当定值数据要被保存在配置存储器13中时,要消耗大量的存储器(存储区域)。
下面将参考附图描述本发明的实施例。
图是3示出了根据本发明实施例的可重配置半导体器件的一种布置示例的示图。在图3中,与图1相同的标号指代具有相同功能的组成元件,并且将省略对其重复的解释。
如图3所示,根据本实施例的可重配置半导体器件具有序列发生器(控制器)1和算术处理器2A。算术处理器2A包括用于存储定值数据的定值存储器(RAM)30。
序列发生器1具有状态控制器11、状态寄存器12和配置存储器13A。
配置存储器13A存储了用于设置算术处理器2A的电路配置的配置数据,以及定值指定数据。定值指定数据是这样的信息,利用该信息可以唯一地识别定值存储器30中的定值数据,所述定值数据与算术处理器2A的状态相对应。定值指定数据用于从定值存储器30所存储的定值数据中,指定和读出与算术处理器2A的状态相对应的定值数据。注意,在下面的解释中,定值指定数据是定值存储器30中的地址。
算术处理器2A具有选择器/寄存器(总线)21、算术单元22A-i、数据存储器23-j、定值存储器30、选择器31-i和定值指定寄存器32。注意,i和j是后缀,i是从1到N的(任意)自然数,并且j是从1到M的(任意)自然数。
定值存储器30是用于存储定值数据的存储器。基于定值指定寄存器32中由序列发生器1所设置的地址值,将定值存储器30中所存储的定值数据读出并输出到选择器31-i。
选择器31-i由序列发生器1所提供的配置数据所控制,并且选择器31-i选择性地将从选择器/寄存器21所提供的第二输入数据DT2,或者从定值存储器30所提供的定值数据CVD输出到算术单元22A-i中的ALU单元27。更具体地说,当选择器31-i被配置数据设置为输出定值数据时,它经由定值存储器30中分配给算术单元22A-i的端子,而输出从定值存储器30所提供的定值数据CVD。当选择器31-i被配置数据设置为输出第二输入数据DT2时,它输出从选择器/寄存器21所提供的第二输入数据DT2。
每个算术单元22A-i都具有配置寄存器25A和ALU单元27。在本实施例中,经由选择器31-i而将定值数据从定值存储器30读出到ALU单元27。因此,在每个算术单元22A-i中,配置寄存器25A是唯一的寄存器,因此,没有使用图1中所示的定值寄存器。
注意,在配置存储器13A中所存储的配置数据和定值指定数据以及在定值存储器30中所存储的定值数据是在操作开始之前,例如利用RISC(处理器)或其他硬件,而分别从外部写入并保存到配置存储器13A和定值存储器30中的。还要注意,对于每个状态,配置数据和定值指定数据是作为一对数据而保存在配置存储器13A中的。
图4A和4B是用于解释图3中所示的配置存储器13A和定值存储器30的内容的示图。为了比较的目的,图4A和4B示出了与图2所示的配置存储器13的内容等同的内容。
图4A示出了配置存储器13A的内容。在图4A中,标号CDi(i=1到N(自然数))表示配置数据;并且CVAD表示作为定值指定数据的定值存储器30中的地址值。
图4B示出了定值存储器30的内容。在图4B中,标号CVAD表示定值存储器30中的地址值;并且CVDi(i=1到N(自然数))表示定值数据。
如图4B所示,在定值存储器30中,定值数据CVDi的相同的组合并非各自独地存储,而是存储为一套定值数据CVDi。就是说,定值存储器30所存储的定值数据CVDi的组合彼此不相同,并且不重复。
而且,如图4A所示,配置存储器13A中只存储了配置数据CDi和定值存储器30中的地址值CVAD,在所述定值存储器30中存储了相应于该状态的定值数据CVDi的组合。
下面将解释根据本实施例的可重配置半导体器件的操作。注意,除了将定值数据输入到算术单元22A-i中的算术单元的操作之外,本实施例的可重配置半导体器件的操作与图1和2中所示的可重配置半导体器件的操作相同,因此,将省略对其余部分的操作的解释。
下面将描述将定值数据输入到算术单元22A-i中的算术单元时的操作。
首先,为了转换算术处理器2的状态,从配置存储器13A中读出与该状态相对应的配置数据和定值指定数据。将所读出的配置数据提供给包括了选择器31-i的算术处理器2A中的功能单元。将所读出的定值指定数据提供给,并且设置到定值指定寄存器32中。
基于定值指定寄存器32中所设置的定值指定数据,从定值存储器30中读出在由该定值指定数据所指定的区域中所存储的定值数据,并且经由选择器31-i而将其输出到算术单元22A-i。在这种方式下,将定值数据提供给算术单元22A-i中的算术单元。
上述的本实施例使用了一个定值存储器30。但是,如图5所示,也可以使用多个定值存储器。
图5示出了根据本实施例的可重配置半导体器件的另一布置示例的示图。在图5中,与图1和3相同的标号指代具有相同功能的组成元件,并且将省略其重复的解释。
图5所示的可重配置半导体器件具有序列发生器(控制器)1和算术处理器2A。算术处理器2A包括两个定值存储器(RAM)30A和30B。
序列发生器1具有状态控制器11、状态寄存器12和配置存储器13B。配置存储器13B存储了配置数据,以及两个与定值存储器30A和30B相对应的定值指定数据。
算术处理器2A与图3中所示的不同之处在于,其具有两个定值存储器30A和30B,以及两个与定值存储器30A和30B相对应的定值指定寄存器32A和32B。但是,定值存储器30A和30B,以及定值指定寄存器32A和32B分别具有与图3所示的定值存储器30和定值指定寄存器32相同的功能,因此将省略其详细描述。
图6A到6C是用于解释图5中所示的配置存储器13B和定值存储器30A和30B的内容的示图。为了比较的目的,图6A到6C示出了与图4A和4B中所示的内容等同的内容。
图6A示出了配置存储器13B的内容。在图6A中,标号CDi(i=1到N(自然数))表示配置数据;并且CVAD1和CVAD2分别表示定值存储器30A和30B中的地址值。
图6B和6C分别示出了定值存储器30A和30B的内容。在图6B和6C中,标号CVAD1和CVAD2分别表示定值存储器30A和30B中的地址值;并且CVDi(i=1到N(自然数))表示定值数据。注意,图6B和6C示出了定值数据CVD1和CVD3被存储在定值存储器30A中,并且定值数据CVD2和CVDN被存储在定值存储器30B中的情况。
与图4B中所示出的情况类似,将定值数据CVDi的相同组合作为一对定值数据CVDi而被存储在定值存储器30A和30B的每一个中。
而且,如图6A所示,配置存储器13B分别存储了配置数据CDi,以及定值存储器30A和30B中的地址值CVAD1和CVAD2,在定值存储器30A和30B中,存储了与配置数据的状态相对应的定值数据CVDi的组合。
在图5和6A到6C中,作为示例示出了使用两个定值存储器30A和30B的情况。但是,定值存储器的数量是任意的数量。而且,假如没有特定的算术单元一直对应于多个定值存储器,那么定值存储器和算术单元之间的对应关系是任意的对应关系。例如,一个算术单元可以对应于一个定值存储器,或者通过划分算术单元而获得的多个组中的每一个都可以对应于一个定值存储器。
而且,图5和6A到6C中所示的布置不一定是最优的布置。因此,可以根据所使用的应用而适当地选择图3、4A和4B中所示的布置,或者图5和6A到6C中所示的布置。
在如上所述的本实施例中,定值数据被存储在定值存储器30(30A和30B)中,并且配置数据,以及用来读出与配置数据的状态相对应的定值数据的定值存储器的地址值被存储在配置存储器13A(13B)中。在定值存储器30(30A和30B)中,为了避免重复,只存储了定值数据的不同组合。
因此,配置存储器只需要存要定值存储器的地址值,而无需存储任何的定值数据。这样可以减小配置存储器所需的存储容量,并且减小芯片尺寸。例如,为了在定值存储器中保存八个不同的定值数据的组合,可以用三位来表示地址值。这样一来,可以非常有效地使用存储区域。
另外,定值存储器没有为每个状态存储定值数据,而是将定值数据的相同组合存储为一对定值数据。这样极大地减小了数据量。而且,定值数据被存储在定值存储器中,并且经由选择器31-i,可以将该定值数据提供到ALU单元27。这样可以省略掉定值寄存器,并且减小电路规模。
注意,在以上实施例中,作为示例只示出了一个配置寄存器25。但是,通常是以与算术单元一对一的对应关系来形成配置寄存器。由于不是经由任何的寄存器来提供定值数据,因此也可以形成用于多个算术单元的一个配置寄存器25。
还要注意,附图中所示的根据本实施例的可重配置半导体器件的布置仅仅是一个示例。因此,可重配置半导体器件还可以包括移位寄存器、计数器电路以及诸如RAM和ROM之类的存储器。
当实施本发明时,以上实施例仅仅是实施示例,因此不应该利用这些实施例来限制性地解释本发明的技术范围。就是说,不脱离本发明的技术思想或主要特征,可以以各种形式来实施本发明。
在本发明中,与用于存储配置信息的配置存储器所不同的定值存储器存储了将被提供到算术单元组的定值。由于不需要在配置存储器中设置用于存储定值的数据区域,因此仅仅通过在配置存储器中存储用于从定值存储器中读出定值的信息,就可以将预定的定值提供到算术单元组。因此,可以减小配置存储器所需的存储容量,从而可以利用小尺寸的存储器来形成配置存储器。
而且,由于定值被存储在与配置存储器不同的定值存储器中,因此不需要为算术处理器的每个状态都存储定值,并且可以省略掉定值寄存器。因此,可以减小存储定值所需的存储容量,并且减小电路规模。
本申请基于2004年6月30日递交的在先日本专利申请No.2004-194104,并要求其优先权,这里并入了其全部内容,以作为参考。
权利要求
1.一种半导体器件,包括配置存储器,所述配置存储器存储配置信息;算术单元组,所述算术单元组具有多个算术单元,并且能够根据从所述配置存储器提供的配置信息,对电路配置进行重配置;和定值存储器,所述定值存储器存储要在所述算术单元组中的算术处理中被使用的定值,并且将所存储的定值提供到所述算术单元组。
2.根据权利要求1所述的器件,其中,所述配置存储器连同所述配置信息一起存储定值指定信息,所述定值指定信息用于从所述定值存储器获取与所述配置信息相对应的定值。
3.根据权利要求2所述的器件,还包括定值指定信息寄存器,所述定值指定信息寄存器保存从所述配置存储器中连同所述配置信息一起读出的所述定值指定信息,并且将所述定值指定信息提供给所述定值存储器。
4.根据权利要求2所述的器件,其中,所述定值指定信息是所述定值存储器的地址信息,所述地址信息指示存储与所述配置信息相对应的定值的区域。
5.根据权利要求1所述的器件,还包括选择器,所述选择器根据所述配置信息,选择性地将从所述定值存储器提供的定值或者与所述定值不同的输入值提供给所述算术单元组。
6.根据权利要求5所述的器件,其中,所述选择器被放置在所述算术单元组与连接到所述算术单元组的总线之间,并且所述选择器选择性地将从所述定值存储器提供的定值或者来自所述总线的输入值提供给所述算术单元组。
7.根据权利要求1所述的器件,其中,所述半导体器件包括多个所述算术单元组,并且,所述定值存储器根据所述多个算术单元组被划分为任意数目个存储器。
8.根据权利要求1所述的器件,其中,所述半导体器件包括多个所述算术单元组和多个所述定值存储器,并且所述多个算术单元组中的每一个接收从所述多个定值存储器中的一个提供的定值。
9.根据权利要求8所述的器件,其中,所述配置存储器连同所述配置信息一起存储定值指定信息,所述定值指定信息与每个定值存储器相关,并且用于从所述多个定值存储器获取与所述配置信息相对应的定值。
10.根据权利要求1所述的器件,其中,所述算术单元组的所述算术单元的处理功能以及连接所述算术单元的互连关系根据所述配置信息而改变。
11.根据权利要求1所述的器件,还包括序列发生器,所述序列发生器控制所述算术单元组的电路配置中的改变,并且管理所述算术单元组的状态。
12.一种算术装置,包括寄存器,所述寄存器保存从外部序列发生器提供的配置信息;和算术单元组,所述算术单元组具有多个算术单元,并且能够根据所述寄存器中所保存的所述配置信息,对电路配置进行重配置,其中,要在所述算术单元组的算术处理中被使用的定值是从外部提供的。
全文摘要
本发明公开了一种半导体器件,该半导体器件包括配置存储器、算术单元以及定值存储器,其中配置存储器用于存储配置数据,定值存储器用于存储将提供给算术单元的定值数据,并且算术单元的电路配置可以根据配置数据而被重配置。由于要被提供给算术单元的配置数据和定值数据被存储在不同的存储器中,因此在配置存储器中,不需要设置用于存储定值数据的数据区域。这样,通过仅仅存储用于从定值存储器中读出定值数据的信息,就可以向算术单元提供预定的定值。
文档编号G06F11/00GK1716210SQ20051000282
公开日2006年1月4日 申请日期2005年1月25日 优先权日2004年6月30日
发明者河野哲雄, 古川浩, 笠间一郎, 今福和章, 铃木俊明 申请人:富士通株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1