CN112506853A - 零缓冲流水的可重构处理单元阵列及零缓冲流水方法 - Google Patents

零缓冲流水的可重构处理单元阵列及零缓冲流水方法 Download PDF

Info

Publication number
CN112506853A
CN112506853A CN202011506076.3A CN202011506076A CN112506853A CN 112506853 A CN112506853 A CN 112506853A CN 202011506076 A CN202011506076 A CN 202011506076A CN 112506853 A CN112506853 A CN 112506853A
Authority
CN
China
Prior art keywords
node
configuration information
determining
time
starting time
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
Application number
CN202011506076.3A
Other languages
English (en)
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.)
Tsinghua University
Original Assignee
Tsinghua University
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 Tsinghua University filed Critical Tsinghua University
Priority to CN202011506076.3A priority Critical patent/CN112506853A/zh
Publication of CN112506853A publication Critical patent/CN112506853A/zh
Pending 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
    • G06F15/7871Reconfiguration support, e.g. configuration loading, configuration switching, or hardware OS
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Advance Control (AREA)

Abstract

本发明公开了一种零缓冲流水的可重构处理单元阵列及零缓冲流水方法,零缓冲流水的可重构处理单元阵列PEA中的处理单元PE之间的数据传输、PE对PE中的局部寄存器LR的读写、PEA对PEA中全局寄存器GR和共享存储器SM的访问不经过先进先出存储器FIFO,采用包含有停顿周期数的配置信息在可重构处理器上对运算算子进行静态调度,基于所述停顿周期数确定每个运算算子所对应的PE的启动时间,实现零缓冲流水。本发明通过配置信息的软件定义方式,利用停顿周期数从而忽略了FIFO的开销,减少了数据传输和处理的延迟,也因此极大的提高了数据传输、数据处理的效率。

Description

零缓冲流水的可重构处理单元阵列及零缓冲流水方法
技术领域
本发明涉及可重构处理器技术领域,尤其涉及零缓冲流水的可重构处理单元阵列及零缓冲流水方法。
背景技术
本部分旨在为权利要求书中陈述的本发明实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
粗粒度可重构处理器架构(Coarse-Grained Reconfigurable Architecture,CGRA)以其低能耗、高性能、高能效的特性,正得到越来越多的关注。可重构处理器是介于通用处理器与专用处理器之间的高性能处理器,强调资源的复用,寻求与ASIC类似的高性能和高效率。同时,通过改变配置信息从而能够适应不同的任务需求,从而具备与通用处理器相同的灵活性。现有的可重构处理单元阵列中存在多个处理单元PE,使其面积和功耗的开销较大,现有的可重构处理单元阵列需要FIFO进行数据传输和缓存操作。在需要缓冲的处理器阵列中,可重构处理单元PE访问局部寄存器LR时需要经由FIFO,处理单元PE之间的数据传输和交换也需要经由FIFO,以及整个PEA阵列访问共享寄存器SM和全局寄存器GR时也需要经由FIFO。这样会造成延长数据传输和处理的延迟,降低数据传输、数据处理的效率。
发明内容
本发明实施例提供一种零缓冲流水的可重构处理单元阵列,用以减少FIFO的开销,提高数据传输和数据处理的效率,所述可重构处理单元阵列PEA中的处理单元PE之间的数据传输、PE对PE中的局部寄存器LR的读写、PEA对PEA中全局寄存器GR和共享存储器SM的访问不经过先进先出存储器FIFO,采用包含有停顿周期数的配置信息在可重构处理器上对运算算子进行静态调度,基于所述停顿周期数确定每个运算算子所对应的PE的启动时间,实现零缓冲流水。
本发明实施例还提供一种可重构处理单元阵列的零缓冲流水方法,用以减少FIFO的开销,提高数据传输和数据处理的效率,该方法包括:
采用包含有停顿周期数的配置信息在可重构处理器上对运算算子进行静态调度,基于所述停顿周期数确定每个运算算子所对应的PE的启动时间,使得可重构处理单元阵列PEA中的处理单元PE之间的数据传输、PE对PE中的局部寄存器LR的读写、PEA对PEA中全局寄存器GR和共享存储器SM的访问不经过先进先出存储器FIFO,实现零缓冲流水。
本发明实施例中,与现有技术中可重构处理单元PE访问局部寄存器LR时需要经由FIFO,处理单元PE之间的数据传输和交换也需要经由FIFO,以及整个PEA阵列访问共享寄存器SM和全局寄存器GR时也需要经由FIFO的技术方案相比,本发明中的零缓冲流水的可重构处理器阵列PEA中的处理单元PE之间的数据传输、PE对PE中的局部寄存器LR的读写、PEA对PEA中全局寄存器GR和共享存储器SM的访问不经过先进先出存储器FIFO,采用包含有停顿周期数的配置信息在可重构处理器上对运算算子进行静态调度,基于所述停顿周期数确定每个运算算子所对应的PE的启动时间,实现零缓冲流水。本发明通过配置信息的软件定义方式,利用停顿周期数从而忽略了FIFO的开销,减少了数据传输和处理的延迟,也因此极大的提高了数据传输、数据处理的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为本发明实施例中需要缓冲的可重构处理单元和零缓冲的可重构处理单元结构示意图;
图2为不存在FIFO的可重构处理单元阵列和其他单元的数据交互示意图;
图3为本发明实施例中存在FIFO的可重构处理单元阵列和其他单元的数据交互示意图;
图4为本发明实施例中a×x+b的运算流图;
图5为本发明实施例中包含各算子启动时间的a×x+b的运算流图;
图6为本发明实施例中将运算a×x+b映射到可重构阵列上;
图7为本发明实施例中x+y的运算流图;
图8为本发明实施例中包含各算子启动时间的x+y的运算流图;
图9为本发明实施例中将运算x+y映射到可重构阵列上;
图10为本发明实施例中x×y+z的运算流图;
图11为本发明实施例中包含各算子启动时间的x×y+z的运算流图;
图12为本发明实施例中将运算x×y+z映射到可重构阵列上。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
在本发明实施例中,本发明设计的是一种不存在先进先出存储器FIFO的零缓冲并且可用于流水的可重构处理单元阵列,可以有效地用于粗粒度可重构处理器中。由于可重构处理单元阵列中存在多个处理单元PE,使其面积和功耗的开销较大,而可重构处理器中各个处理单元之间先后的启动时间可以通过配置进行开启而不需要利用FIFO进行缓存操作,减少了可重构处理器的面积和功耗的开销,并且可重构处理单元输出数据均不需要经过FIFO,极大提高了数据传输的效率和运算效率。
零缓冲流水的可重构处理单元阵列:
零缓冲的可重构处理单元阵列指的是可重构处理单元PE之间的数据传输不存在FIFO,可重构处理单元PE与局部寄存器LR、全局寄存器GR、共享存储器SM之间的数据传输也不存在FIFO。采用包含有停顿周期数的配置信息在可重构处理器上对运算算子进行静态调度,基于所述停顿周期数确定每个运算算子所对应的PE的启动时间,实现零缓冲流水。
为了说明零缓冲的可重构处理单元阵列的数据传输,首先说明不存在FIFO的零缓冲可重构处理单元,作为粗粒度可重构阵列的处理单元(PE),其内部的核心功能部分主要是:PE控制器PE Control、配置存储器CM、局部寄存器堆LR、PE路由器Router、PE的执行单元(主要包括了LSU存运算模块、ALU运算操作模块、MUL乘法运算模块三个模块),如图1所示,为需要缓冲的可重构处理单元与零缓冲的可重构处理单元,其中零缓冲的可重构处理单元的数据输入到可重构处理单元,以及从可重构处理单元输出数据均不需要经过FIFO,极大提高了数据传输的效率和运算效率,并减少了很多的FIFO的开销。
零缓冲的可重构处理单元阵列在不存在FIFO的情况下,处理单元阵列需要实现PE之间的数据传输,每个处理单元PE对自身局部寄存器LR的读取和写入以及可重构处理单元阵列PEA进行数据的读写和计算处理,包括了对全局寄存器GR和共享存储器SM的访问。如图2和图3所示,分别为存在FIFO与不存在FIFO的情况下的可重构处理单元阵列。需要缓冲的处理器阵列中,可重构处理单元PE访问局部寄存器LR时需要经由FIFO,处理单元PE之间的数据传输和交换也需要经由FIFO,以及整个PEA阵列访问共享寄存器SM和全局寄存器GR时需要经由FIFO。相比之下,零缓冲的可重构处理单元阵列,通过配置信息的软件定义方式,利用停顿周期数从而忽略了FIFO的开销,也因此极大的提高了数据传输、数据处理的效率。如图2和图3所示,PEA内部集成了一个PE Array、PE的全局寄存器Global Reg、数据共享存储Shared Memory等。
下面描述一下运算在零缓冲流水的可重构处理器上的处理机制,即运用到零缓冲流水的可重构处理器结构上的软件定义方法,本套方法使用配置信息进行编译在可重构处理器进行静态调度。在本套处理机制中将运用可重构处理器配置中停顿周期数Idle来替代FIFO的相应功能,由于顶层配置信息中停顿周期数Idle与ALU运算型配置信息和LSU存运算型配置信息格式中停顿周期数Idle的处理方式不同,因而进行分开说明。
零缓冲可重构处理单元阵列上软件定义的方法即使用配置信息在可重构处理器上对算子进行静态调度。在本套处理机制中将运用可重构处理器配置中停顿周期数Idle来替代FIFO的相应功能,由于顶层配置信息中停顿周期数Idle与ALU运算型配置信息和LSU存运算型配置信息格式中停顿周期数Idle的处理方式不同,因而进行分开说明。
顶层配置信息下的停顿周期数
顶层配置信息下的停顿周期数Idle指的是当前的PE在执行顶层配置时,需要空闲的周期数,才去执行下一条真正运算的配置。由于每一个PE的配置仅有一条的顶层配置信息和多条运算型配置信息,且配置信息的执行均从顶层配置信息开始,所以,顶层配置信息下的停顿周期数Idle计算也就是每个PE运算的启动时间。
具体的,基于所述停顿周期数确定每个运算算子所对应的PE的启动时间,包括:
确定运算流程图;
基于运算流程图确定第一结点,所述第一结点为运算最早启动结点,从所述配置信息中获取第一结点的启动时间;
确定第一结点对应的运算的计算时间;
确定运算流水线额外周期时间;
基于第一结点的启动时间、第一结点对应的运算的计算时间和运算流水线额外周期时间,计算运算流程图中第二个结点的启动时间;
确定第二个结点对应的运算的计算时间;
基于第二结点的启动时间、第二结点对应的运算的计算时间和运算流水线额外周期时间,计算运算流程图中第三个结点的启动时间;
将包括有结点的启动时间的运算流图映射到PEA上对应的PE上,确定每个运算算子所对应的PE的启动时间。
下面以具体图4至图6来说明顶层配置信息下的停顿周期数的处理方式。图4中的运算流图表示的是a×x+b的运算过程,其中x对应于运算流图中Load D所对应的结果,表示该处理单元PE使用立即数寻址得来的数;运算流图中Mul算子表示a×x这一运算过程,其中a为该处理单元PE通过读取配置信息所获取的立即数,即a的值取决于配置信息;运算流图中Add算子则表示a×x的结果与b相乘这一运算过程,其中b为该处理单元PE通过读取配置信息所获取的立即数,即b的值取决于配置信息。图5中每个算子上方的算式则表示该算子所对应的处理单元PE的启动时间的计算过程。容易看出运算流图中Load D运算是最早启动的结点,在本套配置信息中给最早启动的节点的启动时间为1;由于load运算需要8个周期的计算时间,并且对于所有运算流水线额外需要1个周期的时间,所以在不考虑访存冲突的情况下,Load D下一个运算Mul对应的启动时间为1+8+1=10;同理,由于Mul运算需要3个周期的计算时间,且对于所有运算流水线额外需要1个周期的时间,所以运算Mul的下一个运算Add运算对应的启动时间为10+1+3=14。图6为将上述的运算流图映射到部分可重构阵列上的示意图,由于每个PE有各自的启动时间,因此,不需要FIFO进行缓存。
运算操作类型配置信息的停顿周期数
运算操作类型配置信息下的停顿周期数包括了ALU运算型配置信息和存运算型配置信息的停顿周期数,该停顿周期数表示单条配置本次执行完后在下一次配置执行前需要间隔的周期数。具体的停顿方式由配置信息中相应的IItype字段(表示配置迭代和idle的方式)和Iteration字段(表示本配置迭代次数,以及迭代间隔)决定。
具体的,则基于所述停顿周期数确定每个运算算子所对应的PE的启动时间,包括:
确定运算流程图;
当运算流程图上结点对应的运算存在访存冲突时,将冲突结点的工作模式设置为工作一周期数和停顿N周期;其中,N表示冲突结点的个数-1;
基于运算流程图确定第一结点,所述第一结点为运算最早启动结点,从所述配置信息中获取第一结点的启动时间;
确定第一结点对应的运算的计算时间;
确定运算流水线额外周期时间;
根据停顿N周期确定停顿周期数N;
基于第一结点的启动时间、第一结点对应的运算的计算时间、运算流水线额外周期时间和停顿周期数N,计算运算流程图中第二个结点的启动时间;
确定第二个结点对应的运算的计算时间;
基于第二结点的启动时间、第二结点对应的运算的计算时间、运算流水线额外周期时间和停顿周期数N,计算运算流程图中第三个结点的启动时间;
将包括有结点的启动时间的运算流图映射到PEA上对应的PE上,确定每个运算算子所对应的PE的启动时间。
下面具体说明运算操作类型配置信息的停顿周期数及其对启动时间的影响。
如图7中的运算流图中表示的是x+y的运算过程,其中x对应于运算流图中Load D1所对应的结果,表示该处理单元PE使用立即数寻址得来的数;其中y对应于运算流图中LoadD2所对应的结果,表示另一个处理单元PE使用立即数寻址得来的数;当x和y位于共享存储器Share Memory的同一个bank上时,Load D1和Load D2的运算存在访存冲突,即算子LoadD1所对应的处理单元PE和算子Load D2所对应的处理单元PE不能同时从共享存储器上取数,在这种情况下,应将LoadD1和LoadD2的工作模式设置为工作一周期停顿一周期,即停顿周期数为1。图8中每个算子上方的算式则表示该算子所对应的处理单元PE的启动时间的计算过程。假设Load D1运算是最早启动的结点,当然假设Load D2也可以,在本套配置信息中给最早启动的节点的启动时间为1;由于load运算需要8个周期的计算时间,并且对于所有运算流水线额外需要1个周期的时间,在考虑访存冲突的情况下,即需要停顿周期数为1,Load D1下一个运算Load D2对应的启动时间为1+8+1+1=11;同理,由于Load D2运算需要8个周期的计算时间,且停顿周期数为1,且对于所有运算流水线额外需要1个周期的时间,所以运算Load D2的下一个运算Add运算对应的启动时间为11+1+1+8=21。图9为将上述的运算流图映射到部分可重构阵列上的示意图,由于每个PE有各自的启动时间,因此,不需要FIFO进行缓存。
下面以实例来说明零缓冲流水的可重构处理单元阵列。
现以运算x×y+z的运算过程进行说明在可重构处理单元阵列不存在FIFO的情况下,使用软件定义的方法对各个算子进行静态调度,假定x、y和z均来自共享存储器的同一个bank。如图10所示,其中x对应于运算流图中Load D1所对应的结果,表示该处理单元PE使用立即数寻址得来的数;其中y对应于运算流图中Load D2所对应的结果,表示另一个处理单元PE使用立即数寻址得来的数;其中z对应于运算流图中Load D3所对应的结果,表示另一个处理单元PE使用立即数寻址得来的数;Load D1、Load D2和Load D3的运算存在访存冲突,即算子Load D1所对应的处理单元PE、算子Load D2所对应的处理单元PE和算子Load D3所对应的处理单元PE不能同时从共享存储器上取数,在这种情况下,应将LoadD1、LoadD2和Load D3的工作模式设置为工作一周期停顿两周期,即停顿周期数为2。假设Load D1运算是最早启动的结点,当然假设Load D2也可以,在本套配置信息中给最早启动的节点的启动时间为1;由于load运算需要8个周期的计算时间,并且对于所有运算流水线额外需要1个周期的时间,在考虑访存冲突的情况下,即需要停顿周期数为2,Load D1下一个运算Load D2对应的启动时间为1+8+1+2=12;同理,由于Load D2运算需要8个周期的计算时间,且停顿周期数为2,且对于所有运算流水线额外需要1个周期的时间,所以运算Load D2的下一个运算Mul运算对应的启动时间为12+1+2+8=23。由于Mul运算需要3个周期的计算时间,且停顿周期数为2,且对于所有运算流水线额外需要1个周期的时间,所以运算Mul的下一个运算Add运算对应的启动时间为23+1+2+3=29。现考虑Load D3运算的启动时间,由于Add运算的两个操作数,一个来自Mul运算的结果一个来自Load D3的运算的结果,所以可以由Add运算的启动时间反推出Load D3运算的启动时间,由于Load D3运算需要8个周期的计算时间,且停顿周期数为2,且对于所有运算流水线额外需要1个周期的时间,反推出Load D3运算的启动时间为29-8-2-1=18。如图11所示,为包含各个算子启动时间的运算流图,图12为将算子映射到可重构阵列的结果。
上述内容是从零缓冲流水的可重构处理单元阵列这个硬件结构角度来说明,本发明实施例中还提供了一种可重构处理单元阵列的零缓冲流水方法,从方法角度来说明如何实现可重构处理单元阵列的零缓冲流水。
该可重构处理单元阵列的零缓冲流水方法包括:
采用包含有停顿周期数的配置信息在可重构处理器上对运算算子进行静态调度,基于所述停顿周期数确定每个运算算子所对应的PE的启动时间,使得可重构处理单元阵列PEA中的处理单元PE之间的数据传输、PE对PE中的局部寄存器LR的读写、PEA对PEA中全局寄存器GR和共享存储器SM的访问不经过先进先出存储器FIFO,实现零缓冲流水。
在本发明实施例中,所述配置信息包括顶层配置信息,停顿周期数为顶层配置信息下的停顿周期数,顶层配置信息下的停顿周期数表示当前的PE在执行顶层配置时,需要空闲的周期数,才去执行下一条真正运算的配置;
则基于所述停顿周期数确定每个运算算子所对应的PE的启动时间,包括:
确定运算流程图;
基于运算流程图确定第一结点,所述第一结点为运算最早启动结点,从所述配置信息中获取第一结点的启动时间;
确定第一结点对应的运算的计算时间;
确定运算流水线额外周期时间;
基于第一结点的启动时间、第一结点对应的运算的计算时间和运算流水线额外周期时间,计算运算流程图中第二个结点的启动时间;
确定第二个结点对应的运算的计算时间;
基于第二结点的启动时间、第二结点对应的运算的计算时间和运算流水线额外周期时间,计算运算流程图中第三个结点的启动时间;
将包括有结点的启动时间的运算流图映射到PEA上对应的PE上,确定每个运算算子所对应的PE的启动时间。
在本发明实施例中,所述配置信息包括运算操作类型配置信息,停顿周期数为运算操作类型配置信息下的停顿周期数,所述运算操作类型配置信息下的停顿周期数表示单条配置本次执行完后在下一次配置执行前需要间隔的周期数;
则基于所述停顿周期数确定每个运算算子所对应的PE的启动时间,包括:
确定运算流程图;
当运算流程图上结点对应的运算存在访存冲突时,将冲突结点的工作模式设置为工作一周期数和停顿N周期;其中,N表示冲突结点的个数-1;
基于运算流程图确定第一结点,所述第一结点为运算最早启动结点,从所述配置信息中获取第一结点的启动时间;
确定第一结点对应的运算的计算时间;
确定运算流水线额外周期时间;
根据停顿N周期确定停顿周期数N;
基于第一结点的启动时间、第一结点对应的运算的计算时间、运算流水线额外周期时间和停顿周期数N,计算运算流程图中第二个结点的启动时间;
确定第二个结点对应的运算的计算时间;
基于第二结点的启动时间、第二结点对应的运算的计算时间、运算流水线额外周期时间和停顿周期数N,计算运算流程图中第三个结点的启动时间;
将包括有结点的启动时间的运算流图映射到PEA上对应的PE上,确定每个运算算子所对应的PE的启动时间。
在本发明实施例中,运算操作类型配置信息下的停顿周期数包括了ALU运算型配置信息和访存运算型配置信息的停顿周期数。
在本发明实施例中,本发明中的可重构处理单元阵列在不使用先进先出存储器FIFO的前提下,通过软件定义的方式,对运算流图的各个算子进行静态调度,改变各个处理单元PE的启动时间,减少了FIFO的开销,也因此极大的提高数据传输和数据处理的效率。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种零缓冲流水的可重构处理单元阵列,其特征在于,所述可重构处理单元阵列PEA中的处理单元PE之间的数据传输、PE对PE中的局部寄存器LR的读写、PEA对PEA中全局寄存器GR和共享存储器SM的访问不经过先进先出存储器FIFO,采用包含有停顿周期数的配置信息在可重构处理器上对运算算子进行静态调度,基于所述停顿周期数确定每个运算算子所对应的PE的启动时间,实现零缓冲流水。
2.如权利要求1所述的零缓冲流水的可重构处理单元阵列,其特征在于,所述配置信息包括顶层配置信息,停顿周期数为顶层配置信息下的停顿周期数,顶层配置信息下的停顿周期数表示当前的PE在执行顶层配置时,需要空闲的周期数,才去执行下一条真正运算的配置;
则基于所述停顿周期数确定每个运算算子所对应的PE的启动时间,包括:
确定运算流程图;
基于运算流程图确定第一结点,所述第一结点为运算最早启动结点,从所述配置信息中获取第一结点的启动时间;
确定第一结点对应的运算的计算时间;
确定运算流水线额外周期时间;
基于第一结点的启动时间、第一结点对应的运算的计算时间和运算流水线额外周期时间,计算运算流程图中第二个结点的启动时间;
确定第二个结点对应的运算的计算时间;
基于第二结点的启动时间、第二结点对应的运算的计算时间和运算流水线额外周期时间,计算运算流程图中第三个结点的启动时间;
将包括有结点的启动时间的运算流图映射到PEA上对应的PE上,确定每个运算算子所对应的PE的启动时间。
3.如权利要求1所述的零缓冲流水的可重构处理单元阵列,其特征在于,所述配置信息包括运算操作类型配置信息,停顿周期数为运算操作类型配置信息下的停顿周期数,所述运算操作类型配置信息下的停顿周期数表示单条配置本次执行完后在下一次配置执行前需要间隔的周期数;
则基于所述停顿周期数确定每个运算算子所对应的PE的启动时间,包括:
确定运算流程图;
当运算流程图上结点对应的运算存在访存冲突时,将冲突结点的工作模式设置为工作一周期数和停顿N周期;其中,N表示冲突结点的个数-1;
基于运算流程图确定第一结点,所述第一结点为运算最早启动结点,从所述配置信息中获取第一结点的启动时间;
确定第一结点对应的运算的计算时间;
确定运算流水线额外周期时间;
根据停顿N周期确定停顿周期数N;
基于第一结点的启动时间、第一结点对应的运算的计算时间、运算流水线额外周期时间和停顿周期数N,计算运算流程图中第二个结点的启动时间;
确定第二个结点对应的运算的计算时间;
基于第二结点的启动时间、第二结点对应的运算的计算时间、运算流水线额外周期时间和停顿周期数N,计算运算流程图中第三个结点的启动时间;
将包括有结点的启动时间的运算流图映射到PEA上对应的PE上,确定每个运算算子所对应的PE的启动时间。
4.如权利要求3所述的零缓冲流水的可重构处理单元阵列,其特征在于,运算操作类型配置信息下的停顿周期数包括了ALU运算型配置信息和访存运算型配置信息的停顿周期数。
5.一种可重构处理单元阵列的零缓冲流水方法,其特征在于,包括:
采用包含有停顿周期数的配置信息在可重构处理器上对运算算子进行静态调度,基于所述停顿周期数确定每个运算算子所对应的PE的启动时间,使得可重构处理单元阵列PEA中的处理单元PE之间的数据传输、PE对PE中的局部寄存器LR的读写、PEA对PEA中全局寄存器GR和共享存储器SM的访问不经过先进先出存储器FIFO,实现零缓冲流水。
6.如权利要求5所述的可重构处理单元阵列的零缓冲流水方法,其特征在于,所述配置信息包括顶层配置信息,停顿周期数为顶层配置信息下的停顿周期数,顶层配置信息下的停顿周期数表示当前的PE在执行顶层配置时,需要空闲的周期数,才去执行下一条真正运算的配置;
则基于所述停顿周期数确定每个运算算子所对应的PE的启动时间,包括:
确定运算流程图;
基于运算流程图确定第一结点,所述第一结点为运算最早启动结点,从所述配置信息中获取第一结点的启动时间;
确定第一结点对应的运算的计算时间;
确定运算流水线额外周期时间;
基于第一结点的启动时间、第一结点对应的运算的计算时间和运算流水线额外周期时间,计算运算流程图中第二个结点的启动时间;
确定第二个结点对应的运算的计算时间;
基于第二结点的启动时间、第二结点对应的运算的计算时间和运算流水线额外周期时间,计算运算流程图中第三个结点的启动时间;
将包括有结点的启动时间的运算流图映射到PEA上对应的PE上,确定每个运算算子所对应的PE的启动时间。
7.如权利要求5所述的可重构处理单元阵列的零缓冲流水方法,其特征在于,所述配置信息包括运算操作类型配置信息,停顿周期数为运算操作类型配置信息下的停顿周期数,所述运算操作类型配置信息下的停顿周期数表示单条配置本次执行完后在下一次配置执行前需要间隔的周期数;
则基于所述停顿周期数确定每个运算算子所对应的PE的启动时间,包括:
确定运算流程图;
当运算流程图上结点对应的运算存在访存冲突时,将冲突结点的工作模式设置为工作一周期数和停顿N周期;其中,N表示冲突结点的个数-1;
基于运算流程图确定第一结点,所述第一结点为运算最早启动结点,从所述配置信息中获取第一结点的启动时间;
确定第一结点对应的运算的计算时间;
确定运算流水线额外周期时间;
根据停顿N周期确定停顿周期数N;
基于第一结点的启动时间、第一结点对应的运算的计算时间、运算流水线额外周期时间和停顿周期数N,计算运算流程图中第二个结点的启动时间;
确定第二个结点对应的运算的计算时间;
基于第二结点的启动时间、第二结点对应的运算的计算时间、运算流水线额外周期时间和停顿周期数N,计算运算流程图中第三个结点的启动时间;
将包括有结点的启动时间的运算流图映射到PEA上对应的PE上,确定每个运算算子所对应的PE的启动时间。
8.如权利要求7所述的可重构处理单元阵列的零缓冲流水方法,其特征在于,运算操作类型配置信息下的停顿周期数包括了ALU运算型配置信息和访存运算型配置信息的停顿周期数。
CN202011506076.3A 2020-12-18 2020-12-18 零缓冲流水的可重构处理单元阵列及零缓冲流水方法 Pending CN112506853A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011506076.3A CN112506853A (zh) 2020-12-18 2020-12-18 零缓冲流水的可重构处理单元阵列及零缓冲流水方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011506076.3A CN112506853A (zh) 2020-12-18 2020-12-18 零缓冲流水的可重构处理单元阵列及零缓冲流水方法

Publications (1)

Publication Number Publication Date
CN112506853A true CN112506853A (zh) 2021-03-16

Family

ID=74922503

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011506076.3A Pending CN112506853A (zh) 2020-12-18 2020-12-18 零缓冲流水的可重构处理单元阵列及零缓冲流水方法

Country Status (1)

Country Link
CN (1) CN112506853A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113407483A (zh) * 2021-06-24 2021-09-17 重庆大学 一种面向数据密集型应用的动态可重构处理器

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8266383B1 (en) * 2009-09-28 2012-09-11 Nvidia Corporation Cache miss processing using a defer/replay mechanism
CN103559154A (zh) * 2013-11-06 2014-02-05 东南大学 一种可重构系统中隐藏存储访问延时的方法
CN110494851A (zh) * 2017-03-14 2019-11-22 珠海市芯动力科技有限公司 可重构并行处理
US20200065098A1 (en) * 2018-08-21 2020-02-27 Qualcomm Incorporated Providing efficient handling of branch divergence in vectorizable loops by vector-processor-based devices
CN111869314A (zh) * 2018-10-19 2020-10-30 Oppo广东移动通信有限公司 无线通信方法和终端设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8266383B1 (en) * 2009-09-28 2012-09-11 Nvidia Corporation Cache miss processing using a defer/replay mechanism
CN103559154A (zh) * 2013-11-06 2014-02-05 东南大学 一种可重构系统中隐藏存储访问延时的方法
CN110494851A (zh) * 2017-03-14 2019-11-22 珠海市芯动力科技有限公司 可重构并行处理
US20200065098A1 (en) * 2018-08-21 2020-02-27 Qualcomm Incorporated Providing efficient handling of branch divergence in vectorizable loops by vector-processor-based devices
CN111869314A (zh) * 2018-10-19 2020-10-30 Oppo广东移动通信有限公司 无线通信方法和终端设备

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113407483A (zh) * 2021-06-24 2021-09-17 重庆大学 一种面向数据密集型应用的动态可重构处理器
CN113407483B (zh) * 2021-06-24 2023-12-12 重庆大学 一种面向数据密集型应用的动态可重构处理器

Similar Documents

Publication Publication Date Title
US11307873B2 (en) Apparatus, methods, and systems for unstructured data flow in a configurable spatial accelerator with predicate propagation and merging
Kapasi et al. The Imagine stream processor
CN108268278B (zh) 具有可配置空间加速器的处理器、方法和系统
US10445451B2 (en) Processors, methods, and systems for a configurable spatial accelerator with performance, correctness, and power reduction features
Mei et al. ADRES: An architecture with tightly coupled VLIW processor and coarse-grained reconfigurable matrix
EP3776229A1 (en) Apparatuses, methods, and systems for remote memory access in a configurable spatial accelerator
JP4987882B2 (ja) スレッドに最適化されたマルチプロセッサアーキテクチャ
US20210200541A1 (en) Apparatuses, methods, and systems for configurable operand size operations in an operation configurable spatial accelerator
US20040221137A1 (en) Efficient complex multiplication and fast fourier transform (FFT) implementation on the ManArray architecture
CN110073329A (zh) 访存设备、计算设备和应用于卷积神经网络运算的设备
WO2020005447A1 (en) Apparatuses, methods, and systems for integrated control and data processing in a configurable spatial accelerator
KR20070108827A (ko) 감소된 대역폭 요건들을 갖는 행렬 곱셈
JP2003216943A (ja) 画像処理装置、この装置に用いられるコンパイラおよび画像処理方法
US20200210358A1 (en) Apparatuses, methods, and systems for in-network storage in a configurable spatial accelerator
US11907713B2 (en) Apparatuses, methods, and systems for fused operations using sign modification in a processing element of a configurable spatial accelerator
JPWO2016024508A1 (ja) マルチプロセッサ装置
CN113407483B (zh) 一种面向数据密集型应用的动态可重构处理器
CN112559954B (zh) 基于软件定义可重构处理器的fft算法处理方法及装置
CN112506853A (zh) 零缓冲流水的可重构处理单元阵列及零缓冲流水方法
Uhrig et al. A two-dimensional superscalar processor architecture
JP4589305B2 (ja) Ilp及びtlpを利用する再構成可能なプロセッサアレイ
CN1257450C (zh) 节省资源的硬件环路
CN102012802B (zh) 面向向量处理器数据交换的方法及装置
Tai et al. Scalable matrix decompositions with multiple cores on FPGAs
WO2022126621A1 (zh) 零缓冲流水的可重构处理单元阵列及零缓冲流水方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination