处理器的制作方法

文档序号:6540471阅读:150来源:国知局
专利名称:处理器的制作方法
技术领域
本发明涉及重配置型处理器,所述重配置型处理器对算术逻辑单元(ALU)模块执行重配置控制。
背景技术
传统上,专注于用于提高计算机的效率和速度的硬件的技术是可重配置技术。可重配置技术允许硬件的一部分被重新配置,以灵活地支持应用(软件程序)。
使用现场可编程门阵列(FPGA)的这种硬件重配置技术已被公开(例如,参见日本早期公开的国家阶段PCT公布No.7-503804)。而且己公开如下的技术,在该技术中,对应用的性能进行测量,并且根据测量结果对模块进行动态的重配置(例如,参见日本早期公开专利公布No.2002-163150)。
此外,还公开了如下的方法,在该方法中,预先产生可重配置部分的设置信号(配置信息),并且利用在其中存储了被提供的配置信息的多个只读存储器(ROM),可以根据为了对模块进行重配置而被执行的处理来读取配置信息(例如,参见日本早期公开专利公布No.5-108347)。
当将这样的可重配置技术应用于包括了配置信息的集群结构的硬件体系结构时,不得不将可重配置类型的算术逻辑单元(ALU)(执行诸如四则运算和逻辑运算之类算术处理的单元)模块装配在集群中。在这种情况下,配置信息也被放置在相同的集群中,并且根据ALU的处理结果而被顺序读取。集群由可重配置ALU模块形式的ALU块、网络、存储器、计数器等等以及序列发生器(SQE)所构成,其中所述序列发生器用于控制这些ALU模块、网络、存储器和计数器的配置定义。
但是,为了执行各种应用,则不得不装配可重配置类型的高度灵活的ALU模块。考虑到所装配的电路,由于高度灵活的ALU而增大了电路面积并且降低了资源利用率。这样的ALU模块是具有多种装配功能的多功能ALU,就是说,该多功能ALU例如是由算术门和用于对这些算术门的结果进行累积求和运算的累积求和运算电路等等所构成,所述算术门例如是用于进行与、或、加法和减法、绝对值运算、归一化处理、乘法和为零判断的算术门。
而且,为了提高整个集群的处理性能,则期望序列发生器的内部结构能够以一种简单化方式快速地对ALU块进行重配置。就是说,如何使负责控制重配置所需的配置信息的序列发生器的处理更有效,会影响到集群的处理性能。

发明内容
本发明的目的在于,至少解决传统技术中的上述问题。
根据本发明一个方面的处理器通过切换多个算术逻辑单元模块之间的连接结构来执行预定的运算处理。算术逻辑单元模块中的每一个都包括多个算术逻辑单元。算术逻辑单元模块包括第一算术逻辑单元模块和第二算术逻辑单元模块,所述第一算术逻辑单元模块包括多个执行各种运算处理的算术逻辑单元,并且所述第二算术逻辑单元模块包括多个算术逻辑单元,这些算术逻辑单元所能执行的运算处理与第一算术逻辑单元模块相比是有限的。
根据本发明另一方面的处理器通过在序列发生器的控制下,切换多个算术逻辑单元模块之间的连接结构来执行预定的算术处理。所述算术逻辑单元模块中的每一个都具有多个算术逻辑单元。所述序列发生器在对算术逻辑单元模块中提供的存储器进行写入的时机处,对所述连接结构进行重配置。
在下面结合附图的详细描述中具体提出了本发明的其他目的、特征和优点,并且这些目的、特征和优点也将从以下描述中变得更加显而易见。


图1是根据本发明第一实施例的处理器的集群结构的框图;图2是高性能ALU模块的内部结构的电路图;图3是ALU_A的内部结构的框图;图4是简化的ALU模块的内部结构的电路图;图5是比较器的内部结构的电路图;图6A是根据本发明第二实施例的序列发生器单元的结构的框图;图6B是配置信息的细节的图;图7是配置控制器的内部结构的框图;以及图8是在判断寄存器中所设置的判断细节的表。
具体实施例方式
下面将参考附图来详细描述根据本发明的处理器的示例性实施例。一个集群由两个单元构成,即ALU块和序列发生器单元。
图1描绘了根据本发明第一实施例的处理器的集群结构的框图。集群100包括执行实际处理的ALU块101和提供用于重配置的配置信息的序列发生器单元102。在图1中,只描绘了一个集群100。但是实际上,多个集群100经由中央处理单元(CPU)总线120而彼此连接,以用于分布式处理(并发处理)等等。
ALU块101包括由各种算术元件所构成的多个ALU模块103、读取将被处理的数据并且存储被处理的数据的多个存储器104、产生存储器104中每个存储器的地址的多个计数器105、比较两个输入信号(条件判断)的单个比较器106、连接到精简指令集计算(RISC)总线121的总线桥107和网络108。计数器105可以根据ALU模块103的算术结果而产生到存储器104中的任意一个存储器的地址。比较器106将判断结果(比较结果)输出到序列发生器单元102。每个存储器将写入确认(Write Ack)输出到序列发生器单元102。
向网络108提供多个信号(输入A到n),并且将来自ALU模块103的算术结果和其他作为多个信号(输出A到n)输出。该网络108包括ALU模块103中的每个、比较器106、寄存器109和选择器110,其中寄存器109分别被提供作为到存储器104的信号输入单元。
然后,基于根据算术细节等等而从序列发生器单元102中输出的配置信息,可以对ALU模块103、存储器104和比较器106的组合(选择)之间的连接方式进行重配置。可以由提供到网络108的选择器110来执行这种连接方式的改变。
在ALU块101中所提供的ALU模块103包括高性能ALU模块和简化ALU模块。例如,在被用作ALU模块的输入数据的17位总线中,16位是数据位,而剩余的一位用于指示有效性或无效性(在下文中被称为“令牌位”)。这里,具有该17位总线的网络108切换ALU模块103、比较器106和存储器104之间的连接。
图2是高性能ALU模块的内部结构的电路图。在ALU模块200中已经并入了三种类型的ALU(即ALU_A 201、ALU_C 202和ALU_D203)、选择器(SEL)204和用于对算术结果进行累积的ACC寄存器205。ALU_A 201是并入了多个功能的多功能ALU。如图所示,在高性能ALU模块200中,将四个系统的数据(输入00、输入01、输入10和输入11)提供到在输入级所提供的两个ALU_A 201,并且由在输出级所提供的选择器206来产生两个系统的输出(输出0和输出1)。
包括了ALU_C 202和ALU_D 203的与-或算术电路210是用于对ALU_A 201处的算术结果和其他进行累积求和的电路,并且该电路可应用于通常在诸如傅立叶转换之类的媒体相关处理中所使用的与-或运算。
图3是ALU_A的内部结构的框图。ALU_A 201包括算术门301到307以及配置译码器308,该配置译码器308基于输入的配置信息(配置数据)而将算术细节设置到算术门。
每个算术门包括对两条输入数据(输入A、输入B)执行与运算的AND门301、执行或运算的OR门302、在配置译码器308的控制下执行加法或减法的ADD/SUB门303、执行绝对值运算的ABS门304、执行归一化处理的主要编码器305、执行乘法的MUL门306和执行为零判断的Zero门307。选择器309在配置译码器308的控制下,从这些算术门301到306的输出中选择任意一个。当只将两条数据(输入A、输入B)中的任一个提供到ALU_A 201时,ALU_A 201可以传递该数据。
图2中所示的ALU_C 202是起加法作用的ALU,该ALU将两条输入数据相加。ALU_D 203对两条输入数据执行舍入处理或者输入传递处理。执行舍入处理或输入传递处理中的哪一个则由配置设置进行定义。
这些ALU_A 201、ALU_C 202和ALU_D 203中的每个都可以基于配置信息而设置是对带符号的输入数据执行运算,还是对不带符号的输入数据执行运算。除此之外,利用配置信息,还可以对饱和运算(saturationoperation)的应用进行设置。
在简化ALU模块中,在高性能ALU模块200中所包括的多功能性的功能被简化,以减小电路尺寸。图4是简化ALU模块的内部结构的电路图。
简化ALU模块400不具有高性能ALU模块200中所包括的与-或算术电路210(见图2),并且因此不具有与-或功能。该简化ALU模块400包括与ALU_A 201(见图3)类似的ALU_B 401以及选择器402,但是在ALU_B 401中不具有MUL门306的乘法功能。而且对于ALU_B401,可以基于配置信息对是执行带符号运算还是不带符号运算,以及对饱和运算的指定进行设置。如图所示,在简化ALU模块400中,向在输入级处所提供的两个ALU_B 401提供四个系统的数据(输入00、输入01、输入10和输入11),并且由在输出级处所提供的选择器402产生两个系统的输出(输出0和输出1)。
图5是比较器的内部结构的电路图。比较器106包括减法器(COMP)501。比较器106具体用于条件判断,这种条件判断是通过比较两个输入(输入A和输入B),从而确定它们之中哪个更大或更小,或者它们是否彼此相等来实现的。判断结果被报告给序列发生器单元102(见图1),并且可以将报告的时间用作切换配置的时机。
在比较器106中的减法器501输出指示下溢(under-flow)的进位(carry)和指示减法结果为零的为零标志(zero flag)。从比较器106输出的进位和为零标志与到序列发生器单元102的判断结果(比较结果,见图1)等同。基于配置信息,可以对减法器501中的减法细节进行设置,即对利用输入(输入A和输入B)的减法是A-B还是B-A进行设置。而且,可以对带符号运算的指定进行设置。对于在ALU块101内提供的单个比较器106,作为执行算术处理的结果而出现的判断结果的输出源是该单个比较器106。然后,在作为判断结果的输出目的地的序列发生器单元102处,可以仅仅基于单个比较器106的判断结果的输入来容易地执行ALU块101的重配置。
在ALU模块200和400内提供的ALU(201、202、203和401)和比较器106中的每个都要添加一个令牌位,该令牌位指示出相关输入的有效性或无效性。在对输入数据执行运算以及输出运算结果时,ALU也必须指示出运算结果的有效性或无效性。因此,ALU产生并添加了令牌位。用于产生令牌位的逻辑是以下方案(1)到(3)中的任意一种。
(1)当两个输入都具有有效令牌时,则将有效令牌添加到用于输出的运算结果中的每个运算结果上。
(2)当两个输入中的任意一个具有有效令牌时,则将有效令牌添加到其用于输出的运算结果上。
(3)将对以上(1)或(2)中的两个输入中的任意一个进行固定监控。可以在设计时对这种固定性进行设置并且一直保持不变,或者也可以通过配置设置来改变这种固定性。基于带有以上述方式被添加的令牌位的数据,可以控制对存储器104的数据写入。
这里,关于令牌位,当将被处理的数据被存储在存储器104中的任一存储器中时,为该存储器104产生读取地址的计数器105则将令牌位添加到地址信息中。在存储器104中,只有带有效令牌位的地址才被读取,并且然后将有效令牌位添加到所读取的数据上。而且,在将被处理的数据在集群100之间被传递的结构的情况下,当从外部将数据从一个集群100提供到另一集群100时,令牌位则从所述另一集群100中被添加以用于输入。
上述ALU模块(ALU_A 201、ALU_B 401、ALU_C 202、ALU_D203和减法器501)中的每个都可以基于来自序列发生器单元102的配置信息而改变其内部的结构和功能。利用该配置信息,可以在每个模块中执行带符号运算的指定、饱和运算的指定(算术处理停止(halt)的指定)、ALU_A 201、ALU_B 401、ALU_C 202和ALU_D 203中算术处理的指定、减法器501的减法方向(A-B或B-A)的指定。还可以在选择器206、309和402中的每个选择器中执行输出选择的指定。
在使用图1而描述的根据第一实施例的ALU块101的内部结构中,例如放置十个ALU模块103、十个存储器104和单个比较器106。在所有的十个ALU模块103中,两个模块是高性能ALU模块200,并且八个模块是简化ALU模块400。通过放置至少一个比较器106,可以减少高性能ALU模块200的数量,以实现有效的算术运算。
具体而言,对于单个比较器106,将比较器106处的判断结果报告给序列发生器单元102,并且可以将报告的时间用作切换配置的时机。在执行各种应用(计算机程序)中经常使用的循环处理(例如C语言中的IF语句)时,序列发生器单元102根据使用比较器106而获得的判断结果,对ALU块101中的ALU模块103、存储器104和比较器106的连接结构进行重配置。这时,ALU模块103可以主要使用简化ALU模块400,并且甚至不使用如上所示的全部为具有累积求和功能的高性能ALU模块200的十个模块来执行算术运算。这样一来,即使不使用高性能ALU模块200,也可以根据相关应用所需的算术运算来改变ALU的连接结构,从而执行有效的算术处理。
根据第一实施例,在ALU块内放置了高性能ALU模块、简化ALU模块和比较器,并且利用它们的组合,可以实现重配置。这样一来,则可以获得能够灵活地支持各种应用的集群结构,并且提高资源利用率。而且,ALU模块不仅单独地由高性能ALU模块所配置,而且部分地由简化ALU模块所配置。这样,对于已使其更有效的算术处理,还可以获得提高面积利用率、省电和降低成本的好处。而且,可以提高算术本身的处理速度。
现在,将描述第一实施例中所描述的序列发生器单元102(见图1)所执行的重配置处理器的定时(时机)。图6A是根据本发明第二实施例的序列发生器单元的结构的框图。
序列发生器单元102包括配置存储器601、启动寄存器(launchregister)602、开始地址产生器603、配置控制器604以及为CPU提供的总线桥605,其中配置存储器601中存储了多条配置(ALU块101的结构)信息(配置#0到#n),启动寄存器602对来自外部CPU(未示出)的启动进行控制,开始地址产生器603作为集群而指定第一条配置信息(配置#1到#n中的任意一条),配置控制器604基于状态而确定下一配置信息,并且指定跟随在配置存储器601中所存储的相关配置信息之后的下一地址。
配置存储器601包括相对于总线桥605的A端口,以及相对于开始地址产生器603和配置控制器604的B端口。开始地址产生器603经由B端口来指定将被读取的开始地址。用于硬件配置(ALU块硬件配置610,在下文中将对此做进一步描述)的配置信息从B端口输出到ALU块101和配置控制器604。配置控制器604管理从配置存储器601所读取的地址,并且在重配置时,经由存储器601的B端口来指定跟随在所述配置信息的地址之后的下一地址。
将开始地址和启动触发提供给开始地址产生器603。将来自相关存储器104的写入确认和来自比较器106的判断结果(比较结果(进位和为零标志))提供给配置控制器604。配置控制器604向CPU输出中断。
这里存在两个用于重配置ALU块101的功能的时机,即,(1)在完成了一个顺序处理,并且过程进入下一处理时,以及(2)在根据条件判断所获得的判断结果而改变下一处理时。在后一种情况下,根据条件判断的判断结果(真或假)来执行重配置。
现在描述将(1)“在完成了一个顺序处理,并且过程进入下一处理时”用作重配置时机的情况。假设在ALU块101中将执行一个处理,从而使得从相关存储器104中读取将被处理的数据,并且将ALU块101中的处理结果存储在存储器104中。基于该假设,在写入存储器时,处理完成。在这一时机,改变处理器的结构。
现在描述将(2)“在根据条件判断所获得的判断结果而改变下一处理时”用作重配置时机的情况。在这种情况下,相应于条件判断的判断接过而进行改变。该判断是由上述比较器106所执行的。比较器106包括减法器501,该减法器501对两个输入信号A和B执行减法处理(A-B或B-A)(见图5)。利用两种类型的信号,即进位和为零标志,将报告发送到序列发生器单元102,其中进位是由比较器106所获得的减法结果(判断结果比较结果,见图1)。
因此,在序列发生器单元102定义了任意配置之后,对以下两个事件进行控制,以作为下一配置的时机。一个事件是(1)当在ALU块101的配置的任意时间将上一最后被处理的数据写入任意存储器104时。另一事件是(2)根据比较器106处的条件判断的判断结果(进位和为零标志)而决定所述时机。
由启动寄存器602来执行集群100的处理。由外部CPU来指定第一配置信息(例如配置#0)的开始地址602b。启动寄存器602设置启动位602a。在这一时机,将配置存储器601中所存储的第一配置信息读取到存储器104中。第一配置信息被设置在ALU块101中。此外,根据配置信息中的运算代码来定义下一配置的条件(处理器的重配置),所述运算代码将在下文中进行描述。
可以通过上述方案之外的方案来启动集群100。例如,结构可以是这样的,即从集群100的外部接收开始地址和开始事件时机。可以将该开始事件时机用作为启动寄存器602的启动位602a的设置。
图6B是配置信息的细节的图。配置存储器601中所存储的配置信息具有多个项,即如图6B所描绘的数据串601a到601h。下面将分别描述数据串601a到601h的每个项。
被称为运算代码(运算)601a的项由两位组成,这两位用于定义从当前配置到下一配置的转换状态。
被称为跳转地址(跳转ADRS#0、#1)601b和601c的项是根据比较器106所执行的条件判断的判断结果的跳转地址。这两项中的每一项都用于指定跟随当前配置之后将从配置存储器601中被读取的地址,并且都在基于判断结果而执行重配置时被使用。跳转地址601b和601c的指定是这样的使跳转地址中的任意一个(例如601b)指定与来自比较器106的为真的结果相对应的地址,而使另一跳转地址601c指定与来自比较器106的为假的结果相对应的地址。
在基于来自ALU块101的存储器写入(写入)事件而执行重配置时,被称为写入地址掩码(WAM)601d的项被用于指定ALU块101中的存储器104,从而对其中的存储器写入事件进行监控。
当基于ALU块101中提供的比较器106所执行的条件判断的判断结果而执行重配置时,被称为重配置条件判断信息(下一信息)601e的项被用于根据判断结果来指定运算。
被称为ALU块硬件配置610的项包括被称为ALU模块601f的项、被称为选择器601g的项和被称为定义计数器601h的项,其中ALU模块601f定义了ALU模块103的结构,选择器601g定义了选择器110的连接结构,定义计数器601h定义了计数器105的结构。
在上述配置信息中,除了ALU块硬件配置610之外的每个项(601a到601e)都被发送到序列发生器单元102中的配置控制器604,并且被用作确定下一配置地址的信息。
用于从当前配置转换到下一配置的条件由配置信息中所包含的运算代码601a来指定。运算代码601a中设置的运算被定义为以下的(1)到(4)。
(1)当运算代码=00时执行无运算(NOP)处理。在这种情况下,无需改变ALU块101的状态或等待事件时机,过程就会在下一时钟周期中转入相关配置存储器601中的下一配置信息(配置#0到#n)的地址,并且然后跟随新读取的运算代码601a的设置细节。
(2)当运算代码=01时在这种情况下,执行顺序处理。在将当前配置信息传递到ALU块101一侧之后,在已经执行了写入ALU块101中所提供的任意存储器104的处理时,过程在下一时钟周期中转换到下一配置存储器601的地址。是否将来自多个存储器104的写入确认用作时机由配置信息所指定。
(3)当运算代码=10时在这种情况下,执行完成指令处理。当前配置信息被传递到ALU块101一侧,然后将处理结束的中断报告给CPU,以作为ALU块101的相关存储器104中的写入处理的时机。这样一来,在集群100一侧的处理暂时结束。将哪个存储器104的写入确认用作时机由配置信息所指定。当执行应用所需的整个处理中的一部分是通过使用集群100来执行的时,使用这种情况。
(4)当运算代码=11时在这种情况下,执行条件分支指令处理。将当前配置信息传递到ALU块101一侧,然后过程等待ALU块101的比较器106所执行的条件判断的判断结果(比较结果)的输入。通过将该判断结果用作时机,可以为重配置选择与每个判断结果的不同分支目的地相对应的配置信息。
配置控制器604对ALU块101中的重配置执行集中控制。
图7是配置控制器的内部结构的框图。根据运算代码(见图6B),配置控制器604选择出将跟随在从当前配置存储器601所读取的地址之后而被读取的地址。该配置控制器604包括掩码单元701、加法器702、选择器703和判断寄存器704。
利用配置信息项中所包含的写入地址掩码(WAM)的项601d所指示的掩码值来设置掩码单元701。在从ALU块101所提供的存储器(记作存储器#0到#n)所输入的写入确认中,来自与WAM的项601d相符的存储器104的写入确认被接受,并输出到加法器702。
将在配置信息中所包含的运算代码(运算)601a的项值输出到加法器702和选择器703。加法器702参考运算代码601a的细节,从而当该值允许增加(即该值为“00、01、10”)时,在每个时钟周期中增加(将1加到)当前地址,并且然后将结果输出到选择器703。当从开始地址产生器603输入开始地址时,该加法器702从开始地址开始增加。而且,当运算代码601a指示“10”时,将中断输出到外部CPU。
当输入的运算代码601a指示“00、01、10”时,选择器703将开关(未示出)改变为连接到加法器702。这样一来,则在加法器702和选择器703之间设置了路由回路。通过将加法器702所增加的地址用作下一地址,指定相关配置存储器601的读取地址。当输入的运算代码601a指示“11”时,该选择器703将开关(未示出)改变到判断寄存器704一侧。这样一来,通过将由判断寄存器704的判断结果所指示出的地址用作下一地址来指定相关配置存储器601的读取地址。
利用配置信息中所包含的下一信息601e所指示的多个条目(条目0到3)来设置判断寄存器704。条目0到3中的每个都具有一位,该位用于对两位进行比较。然后,当从比较器106所输出的条件判断的判断结果(比较结果(1位的进位和1位的为零标志))被输入时,在两位组合的表上对用于比较的判断寄存器704中所设置的条目设置进行搜索,然后过程跳转到为每个条目所设置的下一地址的跳转目的地。下一地址的跳转目的地是在配置信息中所包含的跳转地址(跳转ADRS#0或跳转ADRS#1,见图6B)。判断寄存器704的输出被输入到选择器703。然后选择器703输出来自判断寄存器704的判断结果,以作为下一地址。
下一地址由配置控制器604根据运算代码而以下述四种方式(1)到(4)来指定。
(1)当运算代码=00时在运算代码连续为00期间,连续执行将通过把当前地址(或开始地址)加1而获得的值用作下一地址的处理。
(2)当运算代码=01时在这种情况下,由于顺序执行,因此当确认了来自由WAM 601d所指定的存储器104的写入确认的返回时,将通过把当前地址(或开始地址)加1而获得的值用作下一地址。
(3)当运算代码=10时在这种情况下,在确认了来自由WAM 601d所指定的存储器104的写入确认的返回时,将正常的完成中断报告给CPU。
(4)当运算代码=11时在这种情况下,基于来自比较器106的条件判断的判断结果而参考判断寄存器704。然后,将根据参考判断寄存器704的结果而被定义为配置的跳转地址(跳转ADRS#0和跳转ADRS#1中的任意一个,见图6B)用作下一地址。
图8是在判断寄存器中所设置的判断细节的表。这里假设比较器106所执行的减法是对两个输入作A-B的减法。这时,从比较器106输出的比较结果(进位的值和为零标志的值)在A>B时变为0、0,在A=B时变为0、1,并且在A<B时变为1、0。对于除上述情形之外的情况(异常输出),结果指示1、1。
而且,对于下一信息601e所指示的条目(条目0到3),例如假设在A>B时将条目801设置为真,并且在其他情况下将条目801设置为假。在这种情况下,从比较器106输出的比较结果(进位和为零标志)在A>B时变为0、0,这指示出真(条目=00,见图7),并且然后将跳转ADRS#0(601b)中所设置的地址用作下一地址。而且,在A=B(0、1)和A<B(1、0)时,条目指示出假(条目=01),并且然后将ADRS#1(601c)中所设置的地址用作下一地址。在其他情况下,即在比较器106的判断结果指示出逻辑上不可能的输出或异常的情况下,条目指示出条目=1、x(1、0和1、1)。如果进位和为零标志都指示1、1,则条目指示出条目=1、0,然后输出中断。
相似地,假设只有在A=B时将另一条目802设置为真,并且在其他情况下,将其设置为假。在这种情况下,从比较器106输出的比较结果(进位和为零标志)只有在A=B时变为0、0,这指示出真(条目=00,见图7),并且然后将跳转ADRS#0(601b)中所设置的地址用作下一地址。而且,在A>B(0、1)时,条目指示出假(条目=0、1),并且然后将跳转ADRS#1(601c)中所设置的地址用作下一地址。这里,即使在A<B(1、1)或者比较器106的输出在逻辑上不可能(条目=1、0)时,也输出中断以报告到外部。
这样,判断寄存器704具有查找表(LUT)的功能。当运算代码指示11时,参考判断寄存器704,从而很容易地根据比较器106的判断结果来获得下一地址。
根据第二实施例,可以适当地执行从当前配置状态到下一配置的转换。具体而言,对ALU块的硬件进行重配置的切换时机可以被快速而容易地检测到,因此可以提高处理的性能。而且,由于可以根据使用比较器的条件判断的判断结果来切换硬件结构,因此条件判断不是必须由多个ALU模块来执行,从而提供了硬件上的面积利用率,并且节省了空间和功率。
根据本发明,可以实现能够灵活地支持各种应用并且能够提高资源利用率的集群结构。这样一来,可以达到所提供的硬件在面积利用率、省电、成本和运算速度等方面都非常优良的效果。
虽然为了完全而清楚的公开,已经根据具体的实施例描述了本发明,但是所附的权利要求书并不局限于此,而是应该将其理解为涵盖了本领域技术人员能够想到的,完全落入这里所提出的基本教导之内的所有修改和替代结构。
本申请基于2004年6月30日递交的在先日本专利申请No.2004-193578并要求其优先权,这里并入了其全部内容,以作为参考。
权利要求
1.一种处理器,该处理器通过切换多个算术逻辑单元模块之间的连接结构来执行预定的运算处理,所述算术逻辑单元模块中的每一个都具有多个算术逻辑单元,其中所述算术逻辑单元模块包括第一算术逻辑单元模块,该第一算术逻辑单元模块包括多个执行各种运算处理的算术逻辑单元;以及第二算术逻辑单元模块,该第二算术逻辑单元模块包括多个算术逻辑单元,这些算术逻辑单元所能执行的运算处理与所述第一算术逻辑单元模块相比是有限的。
2.如权利要求1所述的处理器,还包括第三算术逻辑单元模块,该第三算术逻辑单元模块包括对输入信号进行比较,并且输出比较结果的比较器。
3.如权利要求2所述的处理器,还包括序列发生器,该序列发生器在所述算术逻辑单元模块之间切换所述连接结构,并且设置新的连接结构,其中所述序列发生器在来自所述比较器的比较结果的输出的时机,设置所述新的连接结构。
4.如权利要求1所述的处理器,其中所述算术逻辑单元基于多个输入信号和第一令牌位的输入而产生新的第二令牌位,所述第一令牌位指示出对所述输入信号的运算处理的结果的有效性或者无效性,所述第二令牌位指示出运算处理之后的信号,以及运算处理的结果的有效性或者无效性。
5.如权利要求3所述的处理器,其中所述序列发生器将用于设置所述运算处理的细节的配置信息输出到所述算术逻辑单元。
6.如权利要求1所述的处理器,其中所述第一算术逻辑单元模块至少包括多个执行累积求和运算处理的算术逻辑单元。
7.如权利要求6所述的处理器,其中所述算术逻辑单元包括多个运算门电路,所述多个运算门电路分别执行逻辑乘法、逻辑加法、加法、减法、绝对值运算、归一化处理、乘法和为零判断;以及选择器电路,该选择器电路选择所述运算门电路中任意一个的输出。
8.如权利要求7所述的处理器,其中所述第二算术逻辑单元模块的运算门电路不具有累积求和运算处理和乘法的功能。
9.一种处理器,该处理器通过在序列发生器的控制下,切换多个算术逻辑单元模块之间的连接结构来执行预定的算术处理,所述算术逻辑单元模块中的每一个都具有多个算术逻辑单元,其中所述序列发生器在对所述算术逻辑单元模块中提供的存储器进行写入的时机,对所述连接结构进行重配置。
10.如权利要求9所述的处理器,其中所述算术逻辑单元模块中的一个是比较器,该比较器对输入信号进行比较,并且输出比较结果,并且所述序列发生器在所述比较器的输出的时机,根据所述比较结果对所述连接结构进行重配置。
11.如权利要求10所述的处理器,其中所述序列发生器包括配置信息存储单元,该配置信息存储单元存储了多条配置信息,所述配置信息具有多个所述算术逻辑单元模块之间的预先设置的连接结构;以及配置控制单元,该配置控制单元读取所述配置信息存储单元中存储的多条配置信息中的一条,并且基于所述预先设置的连接结构来控制所述连接结构,并且所述多条配置信息中的每一条都包括指定信息,该指定信息指定如下两个时间中的任一时间,所述两个时间是写入所述存储器的时间,以及在基于所述比较结果的下一重配置时读取配置信息的时间。
12.如权利要求11所述的处理器,其中所述指定信息是用于指定所述多条配置信息中的一条的地址,并且所述配置信息存储单元将所述地址添加到所述配置信息上。
13.如权利要求11所述的处理器,其中所述配置控制单元包括加法器,所述加法器基于所述指定信息和写入存储器的时机,增加下次将被读取的配置信息的地址;判断单元,所述判断单元基于所述比较结果来判断下次将被读取的配置信息的地址;以及选择单元,所述选择单元从所述加法器执行加法之后的地址和所述判断单元所判断的地址中选择出任意一个。
14.如权利要求13所述的处理器,其中所述算术逻辑单元模块包括多个所述存储器,并且所述配置控制单元包括存储器掩码单元,该存储器掩码单元基于通过所述指定信息的指定而新读取的配置信息选择出所述存储器中的一个,判断写入所选存储器的时机,并且致使所述加法器增加所述地址。
15.如权利要求14所述的处理器,其中所述配置信息包括用于选择所述存储器中的一个存储器的存储器选择信息,并且所述存储器掩码单元将写入所选存储器判断为基于所述存储器选择信息来进行新的重配置的时机。
16.如权利要求13所述的处理器,其中所述判断单元包括判断信息,该判断信息指示出所述配置控制单元根据多个比较结果下次将读取的配置信息。
17.如权利要求16所述的处理器,其中所述配置信息包括用于判断条件的信息,并且所述判断单元读取所述用于判断条件的信息,并且将所读取的信息以表的格式设置为所述判断信息。
全文摘要
处理器通过切换多个算术逻辑单元模块之间的连接结构来执行预定的运算处理。算术逻辑单元模块中的每一个都包括多个算术逻辑单元。所述算术逻辑单元模块包括第一算术逻辑单元模块和第二算术逻辑单元模块,所述第一算术逻辑单元模块包括多个执行各种运算处理的算术逻辑单元,并且所述第二算术逻辑单元模块包括多个算术逻辑单元,这些算术逻辑单元所能执行的运算处理与第一算术逻辑单元模块相比是有限的。
文档编号G06F15/76GK1716228SQ20051005579
公开日2006年1月4日 申请日期2005年3月21日 优先权日2004年6月30日
发明者瓜生士郎, 若吉光春 申请人:富士通株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1