CN103761213A - 基于循环流水计算的片上阵列系统 - Google Patents
基于循环流水计算的片上阵列系统 Download PDFInfo
- Publication number
- CN103761213A CN103761213A CN201410052187.XA CN201410052187A CN103761213A CN 103761213 A CN103761213 A CN 103761213A CN 201410052187 A CN201410052187 A CN 201410052187A CN 103761213 A CN103761213 A CN 103761213A
- Authority
- CN
- China
- Prior art keywords
- processing unit
- router
- configuration
- array
- direct
- 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.)
- Pending
Links
Images
Landscapes
- Advance Control (AREA)
Abstract
本发明提供了一种基于循环流水计算的片上阵列系统,包括片上总线协议接口接收并解释高级精简指令集处理器的命令流,翻译成相应的控制代码后,对内嵌式直接存储器访问单元、内部存储器、阵列控制单元进行配置和协调;处理单元阵列为4乘4的处理单元组成的阵列,每行处理单元之间由一级路由器连接,处理单元阵列在阵列控制单元的控制下进行循环流水运算,每个处理单元接收路由器发送的配置指令来完成相应的计算;内部存储器分成并行工作的两个存储体;整个处理单元阵列通过内嵌式直接存储器访问单元与外部存储器进行数据的交换。本发明能够实现明显的性能增益,并在实现复杂度、运行效率与通用性中达到了一个权衡。
Description
技术领域
本发明涉及一种基于循环流水计算的片上阵列系统。
背景技术
基于循环流水计算的片上阵列架构旨在将多重循环程序直接通过粗粒度的处理单元阵列形成硬件流水线执行,程序以流水化的方式实现。这样,循环可以很自然地映射到阵列上,同时循环被分解成各个部分,循环控制条件由阵列控制单元完成,循环体固定在处理单元组成的运算阵列上进行流水运算。
可重构计算平台的适用性来自其数据驱动的阵列自然地支持了空间局部计算,把计算结构有效地映射到数据驱动的体系结构上是近年来研究的热点,硬件资源的增加需要有效的映射算法的支持,与传统的资源约束问题相比,怎样利用大量的硬件资源成为一个新的问题。映射循环最有效的优化方式是循环流水化,循环流水化对于提高性能起着非常重要的作用。因为在大部分可重构体系结构中实现流水化的存储单元已经在片上,可以充分利用这些资源。就数据流计算而言,通过数据流软件流水化可以有效地实现循环执行方式,但要达到最大的吞吐率需要依靠有效的平衡技术。对于数据驱动体系结构,我们可以利用这种结构的本质特性在控制流和数据流的基础上来调度操作。
编译上一般使用数据流软件流水化技术和其它的软件流水化方法实现循环流水化,其中一种称之为自循环流水化的技术,这种技术能够实现动态的循环流水化,与数据流软件流水化相比可以降低平衡需求。在数据驱动的体系结构上循环流水化不需要操作的调度,只需建立一种结构把循环体中的操作和执行循环迭代的硬件结构连接在一起。自循环流水化技术相对于传统数据流软件流水化,最大的区别就是最初控制循环的计数器可以分为两个计数器,这两个计数器根据数据流的流动形成同步。这样就有两条独立的索引值来访问操作数,这种技术适用于各类循环和各个嵌套的循环结构。
循环自动流水化技术与自循环流水化相近,但它比自循环流水化与硬件联系得更紧密,直接为应用提供了高效的执行模型。基于循环流水计算的片上阵列架构在硬件上就保证了从高级语言到体系结构的直接映射,循环中的每一个操作可以用基于循环流水计算的片上阵列架构中的处理单元处理单元实现(这种实现称为操作绑定)。一种算法的核心循环所表示的数据流图,通过操作绑定的过程映射到基于循环流水计算的片上阵列架构硬件上,利用数据驱动的方式自主完成循环的计算任务,这种技术便称为循环自动流水化。循环自动流水化技术为应用提供了高效的流水化执行方式,并为编译减轻了负担。
基于循环流水计算的片上阵列架构在实现循环自动流水化的时候,就是采用了循环自动流水化技术。针对一个作加法运算的循环,阵列控制单元根据指针状态控制操作数的提取以及配置指令的转发,这样处理单元就可以在相应指针所对应的配置指令下作加法运算。随后阵列控制单元源源不断根据指针状态控制操作绑定,实现循环自动流水化。
在传统可重构计算系统中,一般都是对同行或者同列处理单元进行配置,以获得操作数以及操作方式。这种配置方法不利于实现循环自动流水化计算,因为阵列中每一次的计算都需要提供不同的配置指令协同完成。在基于循环流水计算的片上阵列架构中,处理单元本身不直接获得配置指令,它是由一个成为阵列控制单元的模块进行配置,根据循环的深度以及各级阵列的指针,来决定向每一级处理单元提供什么样的配置方式。这种配置方式无疑简化了处理单元的工作,让它专注于计算而无需参与控制流,同时也让循环自动流水化计算更加易于实现。
基于循环流水计算的片上阵列架构适合处理顺序执行的循环运算,这就需要该循环算法是无循环迭代相关的循环,要适用于循环迭代相关的循环还需要进一步的研究。
发明内容
本发明的目的在于提供一种基于循环流水计算的片上阵列系统,能够实现明显的性能增益,并在实现复杂度、运行效率与通用性中达到了一个权衡。
为解决上述问题,本发明提供一种基于循环流水计算的片上阵列系统,包括高级精简指令集处理器、片上总线协议接口、处理单元阵列、路由器、内部存储器、内嵌式直接存储器访问单元、外部存储器、阵列控制单元,其中,
所述片上总线协议接口,用于接收并解释高级精简指令集处理器的命令流,翻译成相应的控制代码后,对所述内嵌式直接存储器访问单元、内部存储器、阵列控制单元进行配置,并协调其进行工作;
所述处理单元阵列为4乘4的处理单元组成的阵列,每行处理单元之间由一级路由器连接,处理单元阵列用于在阵列控制单元的控制下进行循环流水运算,数据流采取顺序执行方式,逐行传递下去直至完成运算,每个处理单元,用于接收路由器发送的配置指令来完成相应的计算,每个处理单元都具有乘、加等基本运算功能;
每一级的路由器具有互联预测功能以及配置指令再生功能,用于对原始配置指令进行处理再转发到处理单元中;
所述内部存储器分成并行工作的两个存储体,一个存储体用于存储处理单元阵列的原始配置指令以及待处理的操作数;另一个存储体用于存储处理单元阵列的运算结果;
所述内嵌式直接存储器访问单元是高级精简指令集处理器的内嵌式直接存储器访问控制器件,整个处理单元阵列通过内嵌式直接存储器访问单元与外部存储器进行数据的交换;
所述阵列控制单元,用于在片上总线协议接口的作用下,通过对四级路由器的控制实现对整个处理单元阵列的数据流的操作。
进一步的,在上述系统中,所述片上总线协议接口用于与高级精简指令集处理器进行多周期指令的交互;配置内嵌式直接存储器访问模块,实现外部同步动态随机存取外部存储器与内部存储器的交互,包括配置指令和操作数的读取以及已处理数据的写回;配置阵列控制单元,使阵列控制单元能通过路由器控制处理单元阵列的数据流,正确完成循环流水运算,并且最高效率地使用处理单元;及配置内部存储器,使内部存储器完成将处理单元阵列的处理结果写回内部缓存。
进一步的,在上述系统中,所述内嵌式直接存储器访问单元,用于实现外部存储器与内部存储器之间配置指令和数据的双向传输。
进一步的,在上述系统中,每个处理单元的三个输入均来源于路由器,所述输入包括1个配置指令以及2个操作数,每个处理单元包括1个乘法器、1个移位器、配置指令寄存器、输出结果寄存器以及处理单元状态寄存器。
进一步的,在上述系统中,所述配置指令用于指示1个乘法器、1个移位器、配置指令寄存器、输出结果寄存器以及处理单元状态寄存器的工作模式。
进一步的,在上述系统中,所述工作模式包括源操作数的选取、目的操作数的选取、算术逻辑单元计算的方式。
进一步的,在上述系统中,所述路由器,用于预测处理单元阵列中哪个处理单元工作,以及操作数如何分配。
进一步的,在上述系统中,每一级的路由器用于获取下一行处理单元返回的工作状态,路由器根据下一行处理单元的工作状态选择自左边开始的第一个空闲的处理单元;一旦选中一个空闲的处理单元,路由器将来自上一行的处理单元输出的两个中间结果送给下一行的处理单元进行计算,其中,如果上一行的处理单元有多个中间结果送入下一行处理单元进行计算,优先选择相邻两个中间结果到下一行的处理单元中进行运算,路由器每次配置的处理单元做相同的运算。
进一步的,在上述系统中,所述阵列控制单元,用于向路由器发送处理单元需要的控制信号以及配置指令,阵列控制单元内部有四个指向配置指令的指针变量,分别代表四级路由器的配置状态,其中,路由器向处理单元发送完成配置指令及操作数后,表示路由器完成了一次对处理单元的配置,此时该路由器对应的指针变量自动加1,从而表示阵列控制单元将向该路由器发送第二次配置指令,在阵列控制单元初始工作时,四个指针变量均清空为零,表明阵列控制单元只对四级路由器发送相同的第一次的原始配置指令,由每一级的路由器截取原始配置指令相应位,生成一个新的配置指令送给该路由器控制的处理单元中去,路由器一旦完成对处理单元的配置,并不需要等待处理单元完成工作,阵列控制单元就会对该路由器发出下一次的配置指令。
与现有技术相比,本发明通过所述片上总线协议接口,用于接收并解释高级精简指令集处理器的命令流,翻译成相应的控制代码后,对所述内嵌式直接存储器访问单元、内部存储器、阵列控制单元进行配置,并协调其进行工作;所述处理单元阵列为4乘4的处理单元组成的阵列,每行处理单元之间由一级路由器连接,处理单元阵列用于在阵列控制单元的控制下进行循环流水运算,数据流采取顺序执行方式,逐行传递下去直至完成运算,每个处理单元,用于接收路由器发送的配置指令来完成相应的计算,每个处理单元都具有乘、加等基本运算功能;每一级的路由器具有互联预测功能以及配置指令再生功能,用于对原始配置指令进行处理再转发到处理单元中;所述内部存储器分成并行工作的两个存储体,一个存储体用于存储处理单元阵列的原始配置指令以及待处理的操作数;另一个存储体用于存储处理单元阵列的运算结果;所述内嵌式直接存储器访问单元是高级精简指令集处理器的内嵌式直接存储器访问控制器件,整个处理单元阵列通过内嵌式直接存储器访问单元与外部存储器进行数据的交换;所述阵列控制单元,用于在片上总线协议接口的作用下,通过对四级路由器的控制实现对整个处理单元阵列的数据流的操作,能够实现明显的性能增益,并在实现复杂度、运行效率与通用性中达到了一个权衡。
附图说明
图1是本发明一实施例的基于循环流水计算的片上阵列系统的结构图;
图2是本发明一实施例的处理单元的结构图;
图3是本发明一实施例的基于循环流水计算的内部指令格式;
图4是本发明一实施例的16乘16乘法器结构图;
图5是本发明一实施例的8乘8乘法器结构图;
图6是本发明一实施例的处理单元阵列的结构图;
图7是本发明一实施例的路由器的结构图;
图8是本发明一实施例的阵列控制单元的基本工作原理图;
图9是本发明一实施例的内部存储器的结构图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
如图1~9所示,本发明提供一种基于循环流水计算的片上阵列系统,包括高级精简指令集处理器2、片上总线协议接口1、处理单元阵列6、路由器62、内部存储器5、内嵌式直接存储器访问单元4、外部存储器7、阵列控制单元3,其中,
所述片上总线协议接口1,用于接收并解释高级精简指令集处理器的命令流,翻译成相应的控制代码即控制信号后,对所述内嵌式直接存储器访问单元4、内部存储器5、阵列控制单元3进行配置,并协调其进行工作;
如图6所示,所述处理单元阵列6为4乘4的处理单元61组成的阵列,每行处理单元61之间由一级路由器62连接,处理单元阵列6用于在阵列控制单元3的控制下进行循环流水运算,数据流采取顺序执行方式,逐行传递下去直至完成运算,每个处理单元61,用于接收路由器62发送的配置指令来完成相应的计算,每个处理单元61都具有乘、加等基本运算功能;具体的,所述处理单元阵列6为核心计算模块,处理单元形成阵列后能通过并行计算大规模地提高运算效率。具体的,图1中,为简单起见,处理单元阵列中省略了部分单元模块。
每一级的路由器62具有互联预测功能以及配置指令再生功能,用于对原始配置指令进行处理再转发到处理单元61中;具体的,如图7所示,在设计的时候,第一级路由器和其余三级路由器是有所区别的,第一级路由器有8个数据输入口,操作数来源内部存储器;而其余三级路由器有4个数据输入口,操作数来源上级的四个处理单元。因为基于循环流水计算的片上阵列架构每行只有4个处理单元,所以除第一级路由器外其余三级路由器只需要4个数据输入口。但是每级路由器的数据输出口都是8个,这是因为每个处理单元需要2个操作数,一行4个处理单元总共最多可以完成8个操作数的运算。路由器除数据输入输出口外,还有其余以下几个端口:内容-输入,配置指令输入,源自阵列控制单元,四输入;处理单元-状态,处理单元状态输入,源自路由器所控制的四个处理单元,四输入;内容-输出,配置指令输出,目的地为工作处理单元,四输出;指针-输出,路由器状态指针,输出至阵列控制单元。
如图9所示,所述内部存储器5分成并行工作的两个存储体,一个存储体用于存储处理单元阵列6的原始配置指令以及待处理的操作数,用来解决处理单元阵列6与外部存储器速率不匹配的问题;另一个存储体用于存储处理单元阵列的运算结果即已处理的数据,再经由直接存储器访问写回外部存储器,这样可以缓解外部存储器的速度瓶颈,使得处理单元阵列有较高的利用率。这两个存储体可以并行工作:即一个在存储的同时另一块在进行输出,这样可以降低阵列等待数据的时间,提高了处理单元阵列的效率。图9中,输入接口:组-控制,输入自片上总线接口控制器,组的选择信号,0选择组0,1选择组1;控制-存储体0,输入自片上总线接口控制器,包含有读写控制的地址信号,存储体0;控制-存储体1,输入自片上总线接口控制器,包含有读写控制的地址信号,存储体1;控制-结果,输入自片上总线接口控制器,包含有读写控制的地址信号,结果;控制-直接存储器访问,输入自直接存储器访问,包含有读写控制的地址信号,直接存储器访问;输入-直接存储器访问,输入自直接存储器访问,直接存储器访问向内部存储器写数据的接口;输入-结果,输入自可重构计算阵列,从阵列发过来的结果数据;内部存储器-控制器,输入自阵列控制单元,决定如何输出数据。输出接口:输出-存储体0,输出至处理单元阵列的第一级路由器,数据为处理单元阵列所需的操作数,从根据存储体0的控制信号,产生的存储体0输出;输出-存储体1,输出至处理单元阵列的阵列控制单元,数据为处理单元阵列所需的配置指令,从根据存储体1的控制信号,产生的存储体1输出;输出-接存储器访问,输出至直接存储器访问,向直接存储器访问输出数据的接口。
所述内嵌式直接存储器访问单元4是高级精简指令集处理器2的内嵌式直接存储器访问控制器件,整个处理单元阵列6通过内嵌式直接存储器访问单元4与外部存储器7进行数据的交换,而不是通过与高级精简指令集处理器2的接口来传送,能更多地利用到处理单元阵列6的硬件加速功能而不占用高级精简指令集处理器2的运算时间。
所述阵列控制单元3,用于在片上总线协议接口1的作用下,通过对四级路由器62的控制实现对整个处理单元阵列6的数据流的操作。具体的,处理单元在阵列控制单元的控制下进行循环流水运算,数据流采取顺序执行方式,逐级传递下去直至完成运算。仿真结果显示,本发明的基于循环流水计算的片上阵列架构与通用处理器比较可以达到较明显的性能增益,并在实现复杂度、运行效率与通用性中达到了一个权衡。
优选的,所述片上总线协议接口1用于与高级精简指令集处理器2进行多周期指令的交互;配置内嵌式直接存储器访问模块4,实现外部同步动态随机存取外部存储器7与内部存储器5的交互,包括配置指令和操作数的读取以及已处理数据的写回;配置阵列控制单元3,使阵列控制单元3能通过路由器62控制处理单元阵列6的数据流,正确完成循环流水运算,并且最高效率地使用处理单元;及配置内部存储器5,使内部存储器5完成将处理单元阵列6的处理结果写回内部缓存。
优选的,所述内嵌式直接存储器访问单元4,用于实现外部存储器7与内部存储器5之间配置指令和数据的双向传输。考虑一次基于循环流水计算的片上阵列系统的运行:阵列控制单元3通过路由器62对处理单元阵列6进行配置,处理单元阵列6取到位于内部存储器5中的数据进行操作,如果这些配置指令与数据完全由高级精简指令集处理器2来提供,则会造成数据传输效率的下降,所以这里通过内嵌式直接存储器访问单元4进行外部存储器与内部存储器之间的控制字及数据传输,减少处理器工作拖延,高级精简指令集处理器2可以重新排程去处理其他事务,系统的整体效率提高。
优选的,每个处理单元61的三个输入均来源于路由器62,所述输入包括1个配置指令以及2个操作数,如图2所示,每个处理单元61包括1个乘法器、1个移位器、配置指令寄存器、输出结果寄存器以及处理单元状态寄存器以及结果的保存。所述配置指令用于指示1个乘法器、1个移位器、配置指令寄存器、输出结果寄存器以及处理单元状态寄存器的工作模式。所述工作模式包括源操作数的选取、目的操作数的选取、算术逻辑单元计算的方式。可以看出,处理单元是在配置指令的作用下,完成源操作数和目的操作数的选取,算术逻辑单元计算以及结果的保存。处理单元的操作数来源有两种方式,第一种就是路由器转发的操作数,第二种就是来自配置指令定义的立即数,这一方式更加增强了处理单元计算的灵活性。具体的,这里内部寄存器包括配置指令寄存器、输出结果寄存器以及处理单元状态寄存器。一条配置指令可控制处理单元在一个周期内完成复杂的操作,如获取上一周期相邻的处理单元产生的两个中间值并相乘,将结果输出到下一级的路由器中去。处理单元根据算术逻辑单元中操作数状态,把当前的工作状态返回给上级路由器,因此路由器只会把操作数送往空闲的处理单元中去。相比其它可重构处理单元而言,本实施例的处理单元更加简化一些,主要得益于互连方式的简化,就省去了多路选择器的设计,让处理单元专门作运算。在基于循环流水计算的片上阵列架构中,处理单元之间互连是由路由器来决定的,它会根据每个处理单元的状态寄存器来决定是否由该处理单元来完成运算操作。状态的标志位是根据处理单元的操作数状态来决定的,当两个操作数就位时,处理单元就发出一个忙碌信号给路由器,这就显示该处理单元处于工作中,路由器在选取处理单元进行运算的时候就不会考虑状态为工作中的处理单元单元。这种设计一是可以简化互连设计,更大优点是能够智能的选择空闲处理单元作运算,大大提高阵列单元利用率,也更有利于加快流水化运算。如图3所示,在配置指令的设计上,由于定义每个处理单元的配置寄存器的宽度为32位,因此基于循环流水计算的片上阵列架构的配置指令也设计为32位。从图3中的格式2上可以看出,目前实际使用了25位,其余保留位可以待后续功能拓展加以修改。其中,复数/实数:复数和实数模式的选择,主要应用于快速傅里叶变换运算;变换-方向:移位的方向;变换-位数:移位的位数;算术逻辑单元-指令,减法-指令:处理单元中的算术逻辑单元所作操作数的编号,乘法、加法等;常数:存放常数;保留:保留位。图3中的格式1为带立即数和算术逻辑单元的配置指令格式,配置指令低16位是立即数,支持立即数的操作;而图3中的格式2中为不带立即数的配置指令格式,它的第15-12位配合第19-16位指示算数逻辑运算单元的操作。除此之外,两者的高16位各部分定义相同。对算术逻辑单元操作段的配置指令来说,共有四类功能配置,以下是它涵盖的各种操作:立即数操作:常数装载,常数与……;算术类指令:加、减、逆减、常数乘、乘;逻辑类指令:与、或、异或;其他类指令:与结果累加、装载0、回合结束、通过、保持。本实施例吸取了莫菲西斯结构中可重构处理单元的所有优点,能够完成莫菲西斯结构中所擅长的各种运算操作。同时由于互连方式得到了简化,可以看出处理单元本身得到了简化,基于处理单元的配置指令也有了更多可拓展配置指令使用。
详细的,图4为本实施例的16乘16乘法器结构图,为了加快乘法的执行速度,在每个处理单元中设计硬件乘法器,处理单元单元的核心部件就是乘法器和移位器部分。因此在处理单元的设计中,硬件乘法器的设计是考虑的重点。所设计的乘法器应该既能支持一般的实数乘法,又要满足复数乘法。由于基于循环流水计算的片上阵列架构的粒度是16位,所设计的16乘16的乘法器可以用4个8乘8的乘法器实现,这样可以以较少的代价灵活实现不同的乘法运算。和实数乘法一样,本实施例能够提供两种类型的复数乘法,即操作数与立即数相乘,操作数与操作数相乘。这一设计增大了复数乘法的灵活性,而且配置指令中的立即数也为16位,与莫菲西斯结构中12位相比,和算术逻辑单元更加兼容,有利于配置指令的设计。图4中为4个8乘8乘法器的组织结构图,包括数据输入单元,乘法器单元,输出控制单元。当算术逻辑单元执行复数乘法时,二元操作数各自拆分为8位实部和8位虚部,按照特定次序送入8乘8乘法器,结果输出直接传入加法器3,得到实部和虚部;当算术逻辑单元执行实数乘法时,二元操作数各自拆分为高8位和低8位,按照图中所示次序送入8乘8乘法器,结果输出给加法器2、加法器1,分别得到乘积结果的第31-24位和第23-8位,低8位由二元操作数低位乘法结果的第7-0位直接输出。输出选择单元是通过配置指令来控制的。可见8乘8的定点乘法器是算术逻辑单元的核心部件,它完成一次乘法操作的周期直接影响整个处理器的运算性能。
图5表示8乘8乘法器结构图,采用了改进的布斯乘法算法,它可以减少一半的乘法乘积项,大大提高运算速度。如图所示,主要由4个模块组成:布斯乘法编码器,部分积生成电路,部分积规约电路,16位加法器。
为了加快乘法的处理速度,要求减少部分积的数目。这种技术实际上是对乘数进行再编码来加快部分积的形成,最典型的就是布斯乘法算法。布斯乘法算法经过改进以后又形成了多位扫描的改进布斯乘法算法。这些算法实际上是对乘数进行重新编码,即通过冗余的带符号数产生新的乘数表示形式,再按照一般的乘法步骤进行操作。
改进的布斯乘法算法能够将部分积的个数减少一半,即由8个减少为4个。具体编码过程是:乘数按三位一组进行划分,相互重叠一位。每一组的三位进行编码,并形成一个部分积。所形成的部分积的数目等于乘数宽度的一半。编码过程由最高有效位至最低有效位进行,进入编码的输入位是两个当前的位和一个来自相邻低位组的最高位。
优选的,所述路由器62,用于预测处理单元阵列中哪个处理单元61工作,以及操作数如何分配。每个处理单元返回一个状态给上一级路由器,每一级的路由器62用于获取下一行处理单元61返回的工作状态,路由器62根据下一行处理单元61的工作状态选择自左边开始的第一个空闲的处理单元61进行运算;一旦选中一个空闲的处理单元61,路由器62将来自上一行的处理单元61输出的两个中间结果送给下一行的处理单元61进行计算,其中,如果上一行的处理单元61有多个中间结果送入下一行处理单元61进行计算,优先选择相邻两个中间结果到下一行的处理单元61中进行运算,路由器62。具体的,所述处理单元阵列中的处理单元用于做运算处理,而操作数由路由器指定。每一级路由器根据下一行处理单元的空闲状态来决定把操作数送往哪个处理单元,这样就能使得互联更加智能简单,同时提高了处理单元的利用率。片上总线协议接口1并不直接控制处理单元阵列6操作,而是通过阵列控制单元3控制四级路由器62的配置指令,当做顺序循环流水运算时,这四级配置指令完全一致,由各级路由器截取原始配置指令有效位,重新生成新的配置指令给路由器控制的下行的处理单元中去。同时为了增加通用性,可以通过改变配置指令,给各级路由器发送不同配置指令以实现处理单元作不同的运算操作。处理单元阵列中每次路由器配置的处理单元是做相同运算的,但是路由器可以多次配置不同处理单元,以使得同行处理单元分别完成不同运算,提高处理单元阵列的利用率,比如路由器对于下一行中的两个处理单元进行配置作一个需要4个周期完成的运算操作,当这两个处理单元在运算的时候,阵列控制单元会对路由器发送下一个配置指令,假定为1个周期的运算操作,这时候路由器可以选择这行处理单元中空闲的另外两个处理单元工作,这样就实现了同行处理单元同时工作,但做不同的运算。
优选的,如图8所示,所述阵列控制单元3,用于向路由器62(路由器0、1、2、3)发送处理单元61需要的控制信号以及配置指令,阵列控制单元3内部有四个指向配置指令的指针变量,分别代表四级路由器62的配置状态,其中,路由器62向处理单元61发送完成配置指令及操作数后,表示路由器62完成了一次对处理单元的配置,此时该路由器62对应的指针变量自动加1,从而表示阵列控制单元3将向该路由器62发送第二次配置指令,在阵列控制单元3初始工作时,四个指针变量均清空为零,表明阵列控制单元3只对四级路由器62发送相同的第一次的原始配置指令,由每一级的路由器62截取原始配置指令相应位,生成一个新的配置指令送给该路由器62控制的处理单元61中去,路由器62一旦完成对处理单元61的配置,并不需要等待处理单元61完成工作,阵列控制单元3就会对该路由器62发出下一次的配置指令。具体的,因为处理单元的操作数来源由路由器决定,而不是传统可重构处理单元阵列中那样由配置指令决定,所以原始配置指令完全可以有足够位来决定运算操作顺序,通过上述方法把多次运算操作方式传递下去,这也是拓展配置指令可以实现的功能。如6所述阵列控制单元控制了四级路由器的配置指令,进行顺序循环流水运算时,这四级配置指令完全一致,由各级路由器截取原始配置指令有效位,重新生成新的配置指令给路由器控制的下一行的处理单元中。为了增加处理单元阵列的通用性,并不只满足用于循环运算,可以通过改变配置指令,给各级路由器发送不同配置指令以实现处理单元作不同的运算操作。从整个阵列的角度看,除了路由器控制下的各行处理单元之间的数据流之外,在阵列控制单元与路由器之间同时存在着控制流。数据流和控制流协同工作,完成阵列运算。图8中,输入接口:使能信号,阵列控制单元使能信号,源自片上总线接口控制器;指针,路由器指针信号,源自四级路由器,四输入;内容输入,配置指令,源自内部存储器,四输入。输出接口:内部存储器-控制,内部存储器控制信号,决定如何向路由器发送操作数以及如何取配置指令到阵列控制单元;内容至路由器,输出配置指令,目标为四级路由器,四输出。
详细的,二维离散余弦变换算法在所述基于循环流水计算的片上阵列系统上的的步骤包括:
步骤1,加载1组共8个数据到路由器,同时阵列控制单元广播原始配置指令到4个路由器上,此时为第1个周期;
步骤2,按照行列法,路由器转发8个操作数至4个处理单元,进行第一次乘法运算;同时因为流水化的运算,第2组数据此时已经加载到第一级路由器上了,此时为第2个周期;
步骤3,上一行处理单元运算得到的4个结果经第二级路由器转至第二行处理单元中的两个,进行加法运算;同时因为流水化的运算,第2组数据在做步骤2中第1组数据所执行的乘法运算,此时为第3个周期;
步骤4,上一行处理单元运算得到的2个结果经第三级路由器转至第三行的一个处理单元中,进行加法运算,结果存至第四级路由器中;同时因为流水化的运算,第2组数据在做步骤3中第1组数据所执行的加法运算,此时为第4个周期;
步骤5,第2组数据执行步骤4中第1组数据的加法运算方式,结果转至第四级路由器中,此时为第5个周期;
步骤6,将第四级路由器中的两个操作数转至第四行一个处理单元中,进行加法运算得到结果,此时为第6个周期;
步骤7,8乘8块的数据不断进行流水运算,重复上述步骤,直至完成所描述所有运算;
步骤8,计算完成后便得到了最终的结果,此时将结果输出即可。
本实施例的基于循环流水计算的片上阵列系统工作在片上总线协议接口1上,通过与高级精简指令集处理器2指令通信,达到辅助高级精简指令集处理器进行大规模密集计算的目的;提出阵列控制单元的设计思想,区别于由接口控制器来完成阵列控制,这一思想使得对于阵列控制更加自动化,有利于算法映射及编译器的设计;并提出由一个路由选择器来决定处理单元之间的互连关系,采用自上而下的流水化运算方式,同行处理单元61在路由器62的控制下完成运算,并且添加了阵列控制单元3逻辑,让阵列控制单元3负责循环控制,提高阵列单元使用率,提高了快速傅里叶变换、离散余弦变换的计算效率,并减少了算法映射的复杂度,直接有助于实现循环流水化运算、简化处理单元及互连网络。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
显然,本领域的技术人员可以对发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包括这些改动和变型在内。
Claims (9)
1.一种基于循环流水计算的片上阵列系统,其特征在于,包括高级精简指令集处理器、片上总线协议接口、处理单元阵列、路由器、内部存储器、内嵌式直接存储器访问单元、外部存储器、阵列控制单元,其中,
所述片上总线协议接口,用于接收并解释高级精简指令集处理器的命令流,翻译成相应的控制代码后,对所述内嵌式直接存储器访问单元、内部存储器、阵列控制单元进行配置,并协调其进行工作;
所述处理单元阵列为4乘4的处理单元组成的阵列,每行处理单元之间由一级路由器连接,处理单元阵列用于在阵列控制单元的控制下进行循环流水运算,数据流采取顺序执行方式,逐行传递下去直至完成运算,每个处理单元,用于接收路由器发送的配置指令来完成相应的计算,每个处理单元都具有乘、加等基本运算功能;
每一级的路由器具有互联预测功能以及配置指令再生功能,用于对原始配置指令进行处理再转发到处理单元中;
所述内部存储器分成并行工作的两个存储体,一个存储体用于存储处理单元阵列的原始配置指令以及待处理的操作数;另一个存储体用于存储处理单元阵列的运算结果;
所述内嵌式直接存储器访问单元是高级精简指令集处理器的内嵌式直接存储器访问控制器件,整个处理单元阵列通过内嵌式直接存储器访问单元与外部存储器进行数据的交换;
所述阵列控制单元,用于在片上总线协议接口的作用下,通过对四级路由器的控制实现对整个处理单元阵列的数据流的操作。
2.如权利要求1所述的基于循环流水计算的片上阵列系统,其特征在于,所述片上总线协议接口用于与高级精简指令集处理器进行多周期指令的交互;配置内嵌式直接存储器访问模块,实现外部同步动态随机存取外部存储器与内部存储器的交互,包括配置指令和操作数的读取以及已处理数据的写回;配置阵列控制单元,使阵列控制单元能通过路由器控制处理单元阵列的数据流,正确完成循环流水运算,并且最高效率地使用处理单元;及配置内部存储器,使内部存储器完成将处理单元阵列的处理结果写回内部缓存。
3.如权利要求1所述的基于循环流水计算的片上阵列系统,其特征在于,所述内嵌式直接存储器访问单元,用于实现外部存储器与内部存储器之间配置指令和数据的双向传输。
4.如权利要求1所述的基于循环流水计算的片上阵列系统,其特征在于,每个处理单元的三个输入均来源于路由器,所述输入包括1个配置指令以及2个操作数,每个处理单元包括1个乘法器、1个移位器、配置指令寄存器、输出结果寄存器以及处理单元状态寄存器。
5.如权利要求4所述的基于循环流水计算的片上阵列系统,其特征在于,所述配置指令用于指示1个乘法器、1个移位器、配置指令寄存器、输出结果寄存器以及处理单元状态寄存器的工作模式。
6.如权利要求5所述的基于循环流水计算的片上阵列系统,其特征在于,所述工作模式包括源操作数的选取、目的操作数的选取、算术逻辑单元计算的方式。
7.如权利要求6所述的基于循环流水计算的片上阵列系统,其特征在于,所述路由器,用于预测处理单元阵列中哪个处理单元工作,以及操作数如何分配。
8.如权利要求7所述的基于循环流水计算的片上阵列系统,其特征在于,每一级的路由器用于获取下一行处理单元返回的工作状态,路由器根据下一行处理单元的工作状态选择自左边开始的第一个空闲的处理单元;一旦选中一个空闲的处理单元,路由器将来自上一行的处理单元输出的两个中间结果送给下一行的处理单元进行计算,其中,如果上一行的处理单元有多个中间结果送入下一行处理单元进行计算,优先选择相邻两个中间结果到下一行的处理单元中进行运算,路由器每次配置的处理单元做相同的运算。
9.如权利要求8所述的基于循环流水计算的片上阵列系统,其特征在于,所述阵列控制单元,用于向路由器发送处理单元需要的控制信号以及配置指令,阵列控制单元内部有四个指向配置指令的指针变量,分别代表四级路由器的配置状态,其中,路由器向处理单元发送完成配置指令及操作数后,表示路由器完成了一次对处理单元的配置,此时该路由器对应的指针变量自动加1,从而表示阵列控制单元将向该路由器发送第二次配置指令,在阵列控制单元初始工作时,四个指针变量均清空为零,表明阵列控制单元只对四级路由器发送相同的第一次的原始配置指令,由每一级的路由器截取原始配置指令相应位,生成一个新的配置指令送给该路由器控制的处理单元中去,路由器一旦完成对处理单元的配置,并不需要等待处理单元完成工作,阵列控制单元就会对该路由器发出下一次的配置指令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410052187.XA CN103761213A (zh) | 2014-02-14 | 2014-02-14 | 基于循环流水计算的片上阵列系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410052187.XA CN103761213A (zh) | 2014-02-14 | 2014-02-14 | 基于循环流水计算的片上阵列系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103761213A true CN103761213A (zh) | 2014-04-30 |
Family
ID=50528453
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410052187.XA Pending CN103761213A (zh) | 2014-02-14 | 2014-02-14 | 基于循环流水计算的片上阵列系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103761213A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107506329A (zh) * | 2017-08-18 | 2017-12-22 | 浙江大学 | 一种自动支持循环迭代流水线的粗粒度可重构阵列及其配置方法 |
WO2018103736A1 (en) * | 2016-12-09 | 2018-06-14 | Beijing Horizon Information Technology Co., Ltd. | Systems and methods for data management |
CN111352744A (zh) * | 2018-12-21 | 2020-06-30 | 图核有限公司 | 计算机中的数据交换 |
CN113032013A (zh) * | 2021-01-29 | 2021-06-25 | 成都商汤科技有限公司 | 一种数据传输方法、芯片、设备和存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101625635A (zh) * | 2009-07-31 | 2010-01-13 | 清华大学 | 一种处理循环任务的方法、系统和设备 |
CN102279753A (zh) * | 2011-09-08 | 2011-12-14 | 无锡东集电子有限责任公司 | 可重构系统配置管理的方法及用于可重构系统的配置管理单元 |
-
2014
- 2014-02-14 CN CN201410052187.XA patent/CN103761213A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101625635A (zh) * | 2009-07-31 | 2010-01-13 | 清华大学 | 一种处理循环任务的方法、系统和设备 |
CN102279753A (zh) * | 2011-09-08 | 2011-12-14 | 无锡东集电子有限责任公司 | 可重构系统配置管理的方法及用于可重构系统的配置管理单元 |
Non-Patent Citations (1)
Title |
---|
杨超: "一种循环流水阵列架构的研究与实现", 《中国优秀硕士论文全文数据库-信息科学辑》, vol. 2010, no. 10, 15 October 2010 (2010-10-15), pages 32 - 57 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018103736A1 (en) * | 2016-12-09 | 2018-06-14 | Beijing Horizon Information Technology Co., Ltd. | Systems and methods for data management |
US10241837B2 (en) | 2016-12-09 | 2019-03-26 | Beijing Horizon Information Technology Co., Ltd. | Systems and methods for data management |
CN110050267A (zh) * | 2016-12-09 | 2019-07-23 | 北京地平线信息技术有限公司 | 用于数据管理的系统和方法 |
US11360818B2 (en) | 2016-12-09 | 2022-06-14 | Beijing Horizon Information Technology Co., Ltd | Systems and methods for data management |
US11360819B2 (en) | 2016-12-09 | 2022-06-14 | Beijing Horizon Information Technology Co. Ltd | Systems and methods for data management |
CN110050267B (zh) * | 2016-12-09 | 2023-05-26 | 北京地平线信息技术有限公司 | 用于数据管理的系统和方法 |
CN107506329A (zh) * | 2017-08-18 | 2017-12-22 | 浙江大学 | 一种自动支持循环迭代流水线的粗粒度可重构阵列及其配置方法 |
CN111352744A (zh) * | 2018-12-21 | 2020-06-30 | 图核有限公司 | 计算机中的数据交换 |
CN111352744B (zh) * | 2018-12-21 | 2023-10-31 | 图核有限公司 | 计算机中的数据交换 |
CN113032013A (zh) * | 2021-01-29 | 2021-06-25 | 成都商汤科技有限公司 | 一种数据传输方法、芯片、设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108268278B (zh) | 具有可配置空间加速器的处理器、方法和系统 | |
CN109213723B (zh) | 一种用于数据流图处理的处理器、方法、设备、及一种非暂时性机器可读介质 | |
CN104915322B (zh) | 一种卷积神经网络硬件加速方法 | |
CN101826142B (zh) | 一种可重构椭圆曲线密码处理器 | |
CN109597646A (zh) | 具有可配置空间加速器的处理器、方法和系统 | |
CN102043761B (zh) | 一种基于可重构技术的傅立叶变换的实现方法 | |
CN100456230C (zh) | 超长指令字与单指令流多数据流融合的计算群单元 | |
CN109002659B (zh) | 一种基于超级计算机的流体机械仿真程序优化方法 | |
CN103970720B (zh) | 基于大规模粗粒度嵌入式可重构系统及其处理方法 | |
CN104375805A (zh) | 采用多核处理器仿真可重构处理器并行计算过程的方法 | |
CN105912501A (zh) | 一种基于大规模粗粒度可重构处理器的sm4-128加密算法实现方法及系统 | |
CN103761213A (zh) | 基于循环流水计算的片上阵列系统 | |
CN103984560A (zh) | 基于大规模粗粒度嵌入式可重构系统及其处理方法 | |
CN101504599A (zh) | 适于数字信号处理应用的专用指令集微处理系统 | |
CN102193830A (zh) | 面向众核环境的分治映射/归约并行编程模型 | |
CN103049710A (zh) | 用于sm2数字签名验证算法的fpga芯片 | |
CN114356840A (zh) | 具有存内/近存计算模块的SoC系统 | |
CN114356836A (zh) | 基于risc-v的三维互联众核处理器架构及其工作方法 | |
CN112446471B (zh) | 基于异构众核处理器的卷积加速方法 | |
CN102945148A (zh) | 一种并行指令集的实现方法 | |
Du et al. | Feature-aware task scheduling on CPU-FPGA heterogeneous platforms | |
CN103235717B (zh) | 具有多态指令集体系结构的处理器 | |
CN110890120B (zh) | 基于阻变存储器的通用区块链应用处理加速方法及系统 | |
Abdelhamid et al. | MITRACA: A next-gen heterogeneous architecture | |
Tan et al. | A pipelining loop optimization method for dataflow architecture |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20140430 |