CN110888832A - 可重构处理器 - Google Patents
可重构处理器 Download PDFInfo
- Publication number
- CN110888832A CN110888832A CN201910783093.2A CN201910783093A CN110888832A CN 110888832 A CN110888832 A CN 110888832A CN 201910783093 A CN201910783093 A CN 201910783093A CN 110888832 A CN110888832 A CN 110888832A
- Authority
- CN
- China
- Prior art keywords
- circuit
- matrix
- reconfigurable
- processing
- configuration
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
- G06F15/7871—Reconfiguration support, e.g. configuration loading, configuration switching, or hardware OS
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Logic Circuits (AREA)
- Microcomputers (AREA)
- Complex Calculations (AREA)
Abstract
本发明提供可重构处理器。可重构处理器具备:可重构电路,其具有多个处理单元,能够动态地重构由多个处理单元形成的电路结构;配置存储器,其存储多个表示在可重构电路中构成的电路结构的结构信息;以及控制电路,其对可重构电路和配置存储器进行控制,其中,控制电路具备:加载处理部,其将表示第一电路的第一结构信息和表示第二电路的第二结构信息从外部存储器加载到配置存储器;以及处理控制部,其使基于第一电路的处理动作和基于第二电路的处理动作重复执行,直至一个矩阵的全部元素与另一个矩阵的全部元素的乘积和运算处理结束为止。
Description
技术领域
本发明的实施方式涉及一种可重构处理器。
背景技术
以往,作为能够由设计者重构独特的电路的芯片、例如能够作为专用于特定处理的专用硬件或特殊应用处理器发挥功能的芯片,已知有FPGA(Field Programmable GateArray:现场可编程门阵列)、可重构处理器。FPGA与可重构处理器在与电路的重构相关的基本构成要素的粒度方面尤为不同,FPGA的基本构成单位为具有1比特(bit)的细粒度的LUT(Lookup table:查找表),与此相对地,可重构处理器的基本构成单位为具有至少4比特、例如16比特左右的粗粒度的处理单元(Processing Element)。
在可重构处理器中,多个处理单元以矩阵状配设,通过被写入有结构信息的过程即配置来使可重构处理器安装特定的功能,该结构信息包括该多个处理单元的配线的连接关系和各处理单元的功能定义结构信息。在FPGA中也是,通过大致同样的配置来安装特定的功能。可重构处理器中的结构数据的基本构成单位的粒度比FPGA中的基本构成单位的粒度粗,因此可重构处理器中的结构数据所需的参数少,数据量小,因而加载结构信息所花费的时间也短。
因此,在FPGA中,保存结构信息的配置存储器仅具有一个用以保存用于安装当前的功能的结构信息的存储体,与此相对地,可重构处理器中的配置存储器具有保存用于安装当前的功能的结构信息的前台存储体和保存用于实现将来使用的功能的结构信息的后台存储体。可重构处理器加载结构信息所花费的时间短,因此能够在处理过程中对数据进行处理的期间对多个存储体进行切换,这样的动作将多个处理单元动态地重构,因此被称为动态重构。
此外,作为与这样的可重构处理器有关的技术,已知如下一种可重构处理器的控制方法(参照专利文献1):在将多个处理单元中的第一处理单元使用于数据的存储之后,将第一处理单元与第二处理单元连接来将数据从第一处理单元移动复制到第二处理单元,同时,在其它的处理单元中实现规定的功能。
现有技术文献
专利文献
专利文献1:日本专利第5882714号说明书
发明内容
发明要解决的问题
近年来,从提高灵活性、降低成本及功耗的观点出发,提出了对深度学习等机器学习应用并行处理性能优异的FPGA、可重构处理器的方案。在进行机器学习方面,矩阵的乘法运算是必需的,特别是关于可重构处理器要求在进行矩阵的乘法运算时进一步提高并行度。
本发明的实施方式是为了解决上述的问题点而完成的,其目的在于提供一种在进行矩阵的乘法运算时能够提高并行度的可重构处理器。
用于解决问题的方案
为了解决上述的问题,本实施方式所涉及的可重构处理器具备:可重构电路,其具有多个处理单元,能够动态地重构由所述多个处理单元形成的电路结构;配置存储器,其存储多个表示在该可重构电路中构成的电路结构的结构信息;以及控制电路,其对所述可重构电路和所述配置存储器进行控制,所述可重构处理器进行所连接的外部存储器中存储的矩阵的乘法运算,所述可重构处理器的特征在于,所述控制电路具备:加载处理部,其将表示第一电路的第一结构信息和表示第二电路的第二结构信息从所述外部存储器加载到所述配置存储器,其中,所述第一电路将外部存储器中存储的一个矩阵的至少一个规定的行或者至少一个规定的列中包括的全部元素保存于缓冲存储器,所述第二电路基于所述外部存储器中存储的另一个矩阵的全部元素和所述缓冲存储器中保存的全部元素执行乘积和运算处理;以及处理控制部,其使基于所述第一电路的处理动作和基于第二电路的处理动作重复执行,直至所述一个矩阵的全部元素与所述另一个矩阵的全部元素的乘积和运算处理结束为止,其中,所述第一电路是基于被加载到所述配置存储器的所述第一结构信息而在所述可重构电路中构成的,所述第二电路是基于被加载到所述配置存储器的所述第二结构信息而在与构成所述第一电路的时机不同的时机在所述可重构电路中构成的。
发明的效果
根据本发明的实施方式,在进行矩阵的乘法运算时能够提高并行度。
附图说明
图1是示出实施方式所涉及的可重构处理器的硬件结构的图。
图2是表示可重构电路的硬件结构的框图。
图3是示出作为运算对象的矩阵的图。
图4是表示控制电路的功能结构的框图。
图5是表示控制电路的与矩阵的乘法运算相关的整体动作的流程图。
图6是表示转置控制处理的动作的流程图。
图7是表示动作控制处理的动作的流程图。
图8是表示第一运算控制处理的动作的流程图。
图9是表示第一电路的框图。
图10是表示第二电路的框图。
图11是表示第二运算控制处理的动作的流程图。
图12是表示第三电路的框图。
附图标记说明
1:可重构处理器;2:外部存储器;10:可重构电路;12:控制电路;PE:处理单元;121:大小判定部;123:参数变更部;125:电路构成部;126:处理控制部。
具体实施方式
下面,参照附图来说明本发明的实施方式。
(可重构处理器的硬件结构)
对本实施方式所涉及的可重构处理器的硬件结构进行说明。图1是表示可重构处理器的硬件结构的框图。图2是表示可重构电路的硬件结构的框图。
如图1所示,本实施方式所涉及的可重构处理器1具备可重构电路10、配置存储器11、控制电路12、数据总线13以及与外部存储器2连接的外部I/O 14。
外部存储器2是用于保存由控制电路12执行的程序、利用可重构电路10或控制电路12进行处理的数据、表示可重构电路10的电路结构的结构信息等的RAM(Random AccessMemory:随机存取存储器)。
如图2所示,可重构电路10具有以矩阵状配置的多个处理单元PE,是能够基于结构信息来动态地变更由这些处理单元PE形成的电路的结构的动态可重构设备。在此,结构信息表示作为电路结构的、各处理单元PE的功能定义和多个处理单元PE间的连接关系。
此外,在图2中,仅示出可重构电路10中包括的处理单元PE的一部分来进行说明,关于后述的图9、图10、图11也是同样的。另外,本实施方式所涉及的可重构电路10可以是仅由同一种类的处理单元PE构成的同类型(日语:ホモ型)和由专用于特定功能的多个种类的处理单元PE构成的异类型(日语:ヘテロ型)中的任一方。
配置存储器11是保存从外部存储器2加载的结构信息的存储装置,在本实施方式中,配置存储器11具有三个存储体,各存储体分别能够保存一个结构信息。能够将这三个存储体中的规定的一个存储体设为前台存储体,此时其余两个存储体被作为后台存储体使用。在此,前台存储体是用于保存表示当前的电路结构的一个结构信息的存储体,后台存储体是用于保存表示要动态切换的电路结构的两个结构信息的存储体。选择三个存储体中的一个存储体来作为前台存储体,基于该前台存储体中保存的结构信息来构成可重构电路10的电路。
控制电路12是对可重构电路10和配置存储器11进行控制的CPU(CentralProcessing Unit:中央处理单元)。控制电路12基本上进行以下控制:向配置存储器11加载外部存储器2中保存的结构信息、选择配置存储器11中的前台存储体、以及使可重构电路10开始和停止执行处理。另外,执行外部存储器2中保存的程序以实现后述的各功能。
(矩阵的乘法运算中的存储器访问)
基于上述的硬件结构的可重构处理器进行矩阵的乘法运算。在矩阵的乘法运算中,如后述的那样,存储器访问会成为瓶颈。在此,对矩阵的乘法运算中的存储器访问进行说明。图3是示出作为运算对象的矩阵的图。
如图3所示,在将矩阵A与矩阵B之积计算为矩阵C的情况下,在计算矩阵C中的元素C1时,通过式C1=A1×B1+A2×B2+A3×B3+A4×B4来计算矩阵A中的包括A1~A4这四个元素的行与矩阵B中的包括元素B1~B4的列的乘积和。也就是说,对矩阵A的规定行中的各元素和矩阵B的与该规定的行对应的列中的与行的各元素对应的元素进行乘法运算,并将所有的关于元素的积相加,由此得到的结果为矩阵C的元素。
在由可重构电路10计算矩阵C的情况下,矩阵A和矩阵B作为要进行处理的数据被保存于外部存储器2。在每次计算矩阵A的一个元素与矩阵B的同该一个元素对应的一个元素之积时都从外部存储器2读出这些元素的情况下,在计算矩阵C的一个元素、例如元素C1时,需要从外部存储器2读出元素A1~A4、元素B1~B4共计八个元素,计算矩阵C的全部元素需要将矩阵A和矩阵B中的元素从外部存储器2读出128次。像这样,与运算处理容易的运算相比,矩阵的乘法运算中针对外部存储器2的存储器访问量大,因此存储器访问可能会成为处理速度的瓶颈。作为运算对象的矩阵的元素数越多,则该问题越显著。
在本实施方式中,在可重构电路10的内部构成多个缓冲存储器,在这些缓冲存储器内保存矩阵B的至少一个以上的列中包括的全部元素来进行矩阵的乘法运算。在将矩阵B的一列的全部元素保存于缓冲存储器来进行矩阵的乘法运算的情况下,首先,从外部存储器2读出矩阵B的一列的四个元素(例如B1~B4)并保存于缓冲存储器,从外部存储器2读出矩阵A的规定的一行的四个元素(例如A1~A4),根据这四个元素(A1~A4)与缓冲存储器中保存的四个元素(B1~B4)的乘积和,来计算矩阵C的一个元素(C1)。能够将缓冲存储器中保存的矩阵B的一列的四个元素(B1~B4)用于计算矩阵C的一列中的全部元素(C1,C5,C9,C13),因此在计算矩阵C的一列时,从外部存储器2读出包括矩阵B的四个元素(B1~B4)和矩阵A的16个元素(A1~A16)在内的共计20个元素。因而,在计算矩阵C的全部元素时,将矩阵A和矩阵B中的元素从外部存储器2读出80次。像这样,通过将元素保存于缓冲存储器,能够将所保存的元素使用多次,从而能够降低进行矩阵的乘法运算所需的存储器访问量,进而能够减少处理时间。
另外,在将矩阵B的两列的全部元素(例如B1~B8)保存于缓冲存储器来进行矩阵的乘法运算的情况下,首先,从外部存储器2读出矩阵B的两列的八个元素(B1~B8)并保存于缓冲存储器,从外部存储器2读出矩阵A的规定的一行中的四个元素(例如A1~A4),根据该四个元素(A1~A4)与缓冲存储器中保存的一列的四个元素(B1~B4)以及另一列的四个元素(B5~B8)的各元素的乘积和,来计算矩阵C的一行中包括的两个元素(C1,C2)。能够将缓冲存储器中保存的矩阵B的两列的八个元素(B1~B8)用于计算矩阵C的两列中的全部元素(C1,C5,C9,C13,C2,C6,C10,C14),因此在计算矩阵C的两列时,从外部存储器2读出包括矩阵B的八个元素(B1~B8)和矩阵A的16个元素(A1~A16)在内的共计24个元素,因而,在计算矩阵C的全部元素时,将矩阵A和矩阵B中的元素从外部存储器2读出48次。
像这样,缓冲存储器中保存的元素数越多,则能够使与矩阵的乘法运算相关的存储器访问越少。此外,在以后的说明中,设为可重构处理器1将矩阵B的一列的元素保存于缓冲存储器来进行矩阵的乘法运算,但也可以将多个列的元素保存于缓冲存储器,另外,也可以将矩阵A的至少一行以上的行中包括的元素保存于缓冲存储器。
(控制电路的功能结构)
对控制电路的功能结构进行说明。图4是表示控制电路的功能结构的框图。
作为功能,控制电路12具备大小判定部121、选择部122、参数变更部123、加载处理部124、电路构成部125、处理控制部126、运算部127以及处理判定部128。
大小判定部121判定作为运算对象的矩阵的大小是否为规定的阈值以上。在此,矩阵的大小是外部存储器2中保存的矩阵A或矩阵B的数据大小。选择部122根据大小判定部121的判定来选择外部存储器2中保存的结构信息。参数变更部123对由选择部122选择出的结构信息的参数进行变更。在此,结构信息的参数是表示外部存储器2上的、由基于结构信息在可重构电路10中构成的电路使用的数据的指针,具体地说,是表示外部存储器2中保存的矩阵的元素的指针。
加载处理部124将通过参数变更部123被变更了参数的结构信息加载到配置存储器11。电路构成部125通过将配置存储器11的三个存储体中的一个存储体选择为前台存储体,来变更可重构电路10的电路结构。处理控制部126控制由可重构电路10进行的处理动作的开始和停止。运算部127进行矩阵的乘法运算。处理判定部128判定在由可重构电路10进行的矩阵的乘法运算中是否基于所有矩阵元素的乘积和运算处理已结束,即,判断矩阵的乘法运算是否结束。
(控制电路的整体动作)
对控制电路的与矩阵的乘法运算相关的整体动作进行说明。图5是表示控制电路的与矩阵的乘法运算相关的整体动作的流程图。
如图5所示,首先,大小判定部121判定作为运算对象的矩阵的大小是否为第一阈值以上(S101)。
在矩阵的大小为第一阈值以上的情况下(S101:“是”),执行后述的转置控制处理(S102),之后执行后述的第一运算控制处理(S103),整体处理结束。
另一方面,在矩阵的大小比第一阈值小的情况下(S101:“否”),大小判定部121判定矩阵的大小是否为值比第一阈值小的第二阈值以上(S104)。
在矩阵的大小为第二阈值以上的情况下(S104:“是”),执行转置控制处理(S105),之后执行后述的第二运算控制处理(S106),整体处理结束。
另一方面,在矩阵的大小比第二阈值小的情况下(S104:“否”),控制电路12执行运算矩阵的积的运算处理(S107),整体处理结束。
像这样,控制电路12根据作为运算对象的矩阵的大小,利用可重构电路10执行第一运算控制处理、第二运算控制处理、运算处理。在此,第一运算控制处理是在可重构电路10中构成并行度高的电路来进行矩阵的乘法运算的处理。另外,第二运算控制处理是在可重构电路10中构成并行度比第一运算控制处理的并行度较低但结构信息的加载时间较短的电路来进行矩阵的乘法运算的处理。另外,运算处理是在控制电路12中无需加载结构信息就能进行矩阵的乘法运算的处理。
因而,第一阈值被设定为如以下那样的小的矩阵的大小为宜:在通过第一运算控制处理进行矩阵的乘法运算时使结构信息的加载时间成为瓶颈的矩阵的大小,第二阈值被设定为如以下那样的小的矩阵的大小为宜:在通过第二运算控制处理进行矩阵的运算时使结构信息的加载时间成为瓶颈的矩阵的大小。
(转置控制处理的动作)
对在上述的整体动作中的步骤S102、S105中执行的转置控制处理进行说明。图6是表示转置控制处理的动作的流程图。
如图6所示,首先,选择部122选择利用可重构电路10进行转置处理所用的结构信息。在此,转置处理是将矩阵B的行与列互换的处理,是用于使矩阵A与矩阵B的乘法运算容易进行的处理。此外,在后文中详细记述的第一运算控制处理和第二运算控制处理中,处理对象是进行转置得到的矩阵BT,但是为方便起见,在以后的说明中,矩阵B的列这样的表达表示的是进行转置得到的矩阵BT的行。
接着,参数变更部123对由基于所选择的结构信息构成的电路使用的参数进行变更(S202)。在此变更的参数是表示外部存储器2中保存的矩阵B的元素的指针。
在变更参数之后,加载处理部124将由选择部122选择出的结构信息、即用于进行转置处理的结构信息从外部存储器2加载到配置存储器11中的存储体(S203),电路构成部125通过将该存储体选择为前台存储体,来变更可重构电路10的电路结构(S204)。
在变更电路结构之后,处理控制部126执行对由可重构电路10进行的处理进行控制的动作控制处理(S205)。通过该动作控制处理,使由构成了用于进行转置处理的电路的可重构电路10开始进行处理动作。
(动作控制处理的动作)
对在上述的转置控制处理中的步骤S205中执行的动作控制处理的动作进行说明。图7是表示动作控制处理的动作的流程图。
如图7所示,处理控制部126使可重构电路10开始进行处理动作(S301),对可重构电路10进行轮询(S302),判定是否满足预先给出的停止条件(S303)。在转置控制处理中,设为在对矩阵B的全部元素进行了转置的情况下判定为满足停止条件。
在满足停止条件的情况下(S303:“是”),处理控制部126使可重构电路10结束处理动作(S304),结束动作控制处理。
另一方面,在不满足停止条件的情况下(S303:“否”),处理控制部126再次对可重构电路10进行轮询(S302)。
通过这样的动作控制处理,能够使构成了规定的电路的可重构电路10进行动作直到满足预先给出的停止条件为止。此外,不仅在转置控制处理中执行该动作控制处理,在第一运算控制处理、第二运算控制处理中也给出不同的停止条件来执行该动作控制处理。
(第一运算控制处理)
对第一运算控制处理进行说明。图8是表示第一运算控制处理的动作的流程图。图9是表示第一电路的框图。图10是表示第二电路的框图。
如图8所示,首先,选择部122选择第一结构信息和第二结构信息(S401)。在此,根据第一结构信息使可重构电路10构成为第一电路,在该第一电路的内部构成的缓冲存储器内保存矩阵B的两列中包括的全部元素。另外,根据第二结构信息使可重构电路10构成为第二电路,从外部存储器2向该第二电路加载矩阵A中的全部元素,该第二电路计算基于矩阵A的行与缓冲存储器内保存的列的乘积和。
接着,参数变更部123针对所选择的第一结构信息和第二结构信息分别变更参数(S402)。在此,针对第一结构信息变更的参数是外部存储器2中保存的矩阵B的规定的两列中包括的全部元素的数据大小以及表示这些元素的指针,针对第二结构信息变更的参数是外部存储器2中保存的矩阵A中包括的全部元素的数据大小以及表示这些元素的指针。通过更新该参数来依次选择矩阵B的规定的两列。
在变更参数之后,加载处理部124将由选择部122选择出的第一结构信息从外部存储器2加载到配置存储器11(S403),同样地,将第二结构信息从外部存储器2加载到配置存储器11(S404)。
在加载结构信息之后,电路构成部125将配置存储器11中的保存有第一结构信息的存储体选择为前台存储体,由此在可重构电路10中构成第一电路(S405)。
在此,对第一电路进行说明。在可重构电路10中构成多个该第一电路。如图9所示,各个第一电路分别包括第一加载电路101、缓冲存储器102、写入指针103以及写入数据104。第一加载电路101从外部存储器2加载矩阵B的规定的两列中包括的元素。缓冲存储器102用于保存通过第一加载电路101加载的数据。写入指针103用于指定缓冲存储器102中的写入数据的位置。写入数据104用于将通过第一加载电路101加载的数据写入到缓冲存储器102。
在对第一电路进行变更之后,处理控制部126对可重构电路10执行动作控制处理(S406)。在此,动作控制处理为以下处理:当矩阵B的规定的两列中包括的全部元素被写入到可重构电路10中的缓冲存储器102时,使可重构电路10停止处理动作。
在构成为第一电路的可重构电路10进行处理动作之后,电路构成部125将配置存储器11中的保存有第二结构信息的存储体选择为前台存储体,由此在构成了第一电路的可重构电路10中重构第二电路(S407)。
在此,对第二电路进行说明。在可重构电路10中,与多个第一电路对应地构成多个该第二电路。如图10所示,各个第二电路分别包括在第一电路中被写入了矩阵B的规定的两列中的元素的缓冲存储器102、读取指针105、第二加载电路106以及乘积和运算电路107。读取指针105用于读出缓冲存储器102中保存的矩阵B的元素。第二加载电路106从外部存储器2加载矩阵A中包括的与缓冲存储器102中保存的矩阵B的元素对应的元素。乘积和运算电路107基于利用读取指针105从缓冲存储器102读出的矩阵B的元素与利用第二加载电路106加载的矩阵A的元素进行乘积和运算。
在构成第二电路之后,处理控制部126对可重构电路10执行动作控制处理(S408)。在此,动作控制处理为以下处理:当完成基于缓冲存储器102中保存的矩阵B的规定的两列与所加载的矩阵A的所有的行进行的乘积和运算时,使可重构电路10停止处理动作。此外,乘积和运算的结果作为矩阵C的元素被存储到外部存储器2。
在构成为第二电路的可重构电路10进行处理动作之后,处理判定部128判定是否已结束矩阵A与矩阵B的乘法运算,即是否已进行矩阵B的所有的列与矩阵A中的行的乘积和运算(S409)。
在矩阵的乘法运算没有结束的情况下(S409:“否”),参数变更部123针对第一结构信息和第二结构信息更新作为参数的指针(S410),电路构成部125在构成了第二电路的可重构电路10中重构第一电路(S405)。此外,例如能够通过将进行指针的更新的硬件机构追加到可重构电路10中来省略步骤S410的参数的更新。
另一方面,在矩阵的乘法运算已结束的情况下(S409:“是”),结束第一运算控制处理。
根据这样的第一运算控制处理,在可重构电路10中构成将矩阵B的列保存于缓冲存储器102的第一电路之后,在可重构电路10中构成加载矩阵A并且对该加载矩阵A与缓冲存储器102中保存的矩阵B的列进行乘积和运算的第二电路。像这样,通过将进行矩阵的乘法运算的电路在时间上分割为第一电路和第二电路,与在可重构电路10中同时构成这些电路相比能够在可重构电路10中构成更多的电路,能够提高并行度。另外,由于基于事先加载到配置存储器11的第一结构信息和第二结构信息来在可重构电路10中重复构成第一电路和第二电路,因此无需每次在可重构电路10中构成第一电路和第二电路时都加载第一结构信息和第二结构信息,因而能够减少加载结构信息所需的时间。
(第二运算控制处理)
对第二运算处理进行说明。图11是表示第二运算控制处理的动作的流程图。图12是表示第三电路结构的框图。
如图11所示,首先,选择部122选择第三结构信息(S501)。在此,根据第三结构信息,在可重构电路10中构成将第一电路与第二电路结合而成的第三电路。
接着,参数变更部123针对所选择的第三结构信息变更参数(S502)。在此,针对第三结构信息变更的参数是以下参数:外部存储器2中保存的矩阵B的规定的一列中包括的全部元素的数据大小及表示这些元素的指针、以及外部存储器2中保存的矩阵A中包括的全部元素的数据大小及表示这些元素的指针。
在变更参数之后,加载处理部124将由选择部122选择出的第三结构信息从外部存储器2加载到配置存储器11(S503),电路构成部125将配置存储器11中的保存有第三结构信息的存储体选择为前台存储体,由此在可重构电路10中构成第三电路(S504)。
在此,对第三电路进行说明。在可重构电路10中构成多个该第三电路。如图12所示,各个第三电路分别包括第一加载电路101、缓冲存储器102、写入指针103、写入数据104、读取指针105、第二加载电路106以及乘积和运算电路107,如上述那样,第三电路是将第一电路与第二电路结合而成的结构。
在构成第三电路之后,处理控制部126对可重构电路10执行动作控制处理(S505)。在此,动作控制处理为以下处理:当完成基于缓冲存储器102中保存的矩阵B的规定的一列与所加载的矩阵A的所有的行进行的乘积和运算时,使可重构电路10停止处理动作。此外,乘积和运算的结果作为矩阵C的元素被存储到外部存储器2。
在构成为第三电路的可重构电路10进行处理动作之后,处理判定部128判定是否已结束矩阵A与矩阵B的乘法运算,即是否已进行矩阵B的所有的列与矩阵A中的行的乘积和运算(S506)。
在矩阵的乘法运算没有结束的情况下(S506:“否”),参数变更部123针对第三结构信息更新作为参数的指针(S507),处理控制部126再次对可重构电路10执行动作控制处理(S505)。
另一方面,在矩阵的乘法运算已结束的情况下(S506:“是”),结束第二运算控制处理。
根据这样的第二运算控制处理,与在时间上分割为第一电路和第二电路的情况相比,一个第三电路所需的处理单元PE的数量变多,因此并行度降低,但是由于仅加载一个结构信息,因此能够减少加载结构信息所需的时间。
此外,在第一运算控制处理中将缓冲存储器102中保存的矩阵B的列数设为两列,在第二运算控制处理中将缓冲存储器102中保存的矩阵B的列数设为一列,但是在任意的处理中都是设为至少一列以上即可,理想的是使第一运算控制处理中的列数比第二运算控制处理中的列数多。
本发明的实施方式是作为例子而呈现出的,意图不在于限定发明的范围。这些新的实施方式能够以其它的各种方式实施,在不脱离发明的主旨的范围内能够进行各种省略、置换、变更。这些实施方式、实施方式的变形包含在发明的范围、主旨中,并且包含在权利要求书所记载的发明及与该发明相同的范围内。
Claims (5)
1.一种可重构处理器,具备:可重构电路,其具有多个处理单元,能够动态地重构由所述多个处理单元形成的电路结构;配置存储器,其存储多个表示在该可重构电路中构成的电路结构的结构信息;以及控制电路,其对所述可重构电路和所述配置存储器进行控制,所述可重构处理器进行所连接的外部存储器中存储的矩阵的乘法运算,所述可重构处理器的特征在于,所述控制电路具备:
加载处理部,其将表示第一电路的第一结构信息和表示第二电路的第二结构信息从所述外部存储器加载到所述配置存储器,其中,所述第一电路将所述外部存储器中存储的一个矩阵的至少一个规定的行或者至少一个规定的列中包括的全部元素保存于缓冲存储器,所述第二电路基于所述外部存储器中存储的另一个矩阵的全部元素和所述缓冲存储器中保存的全部元素执行乘积和运算处理;以及
处理控制部,其使基于所述第一电路的处理动作和基于第二电路的处理动作重复执行,直至所述一个矩阵的全部元素与所述另一个矩阵的全部元素的乘积和运算结束为止,其中,所述第一电路是基于被加载到所述配置存储器的所述第一结构信息而在所述可重构电路中构成的,所述第二电路是基于被加载到所述配置存储器的所述第二结构信息而在与构成所述第一电路的时机不同的时机在所述可重构电路中构成的。
2.根据权利要求1所述的可重构处理器,其特征在于,
所述控制电路还具备大小判定部,该大小判定部判定所述矩阵的数据大小是否为第一阈值以上,
在所述矩阵的数据大小为所述第一阈值以上的情况下,所述处理控制部进行基于所述第一电路的处理动作和基于所述第二电路的处理动作。
3.根据权利要求2所述的可重构处理器,其特征在于,
所述加载处理部将表示第三电路的第三结构信息从所述外部存储器加载到所述配置存储器,其中,所述第三电路将所述外部存储器中存储的一个矩阵的至少一个规定的行或者至少一个规定的列中包括的全部元素保存于缓冲存储器,并且基于所述外部存储器中存储的另一个矩阵的全部元素和所述缓冲存储器中保存的全部元素执行乘积和运算处理,
在所述矩阵的数据大小比所述第一阈值小的情况下,所述处理控制部进行基于所述第三电路的处理动作,所述第三电路是基于被加载到所述配置存储器的第三结构信息而在所述可重构电路中构成的。
4.根据权利要求3所述的可重构处理器,其特征在于,
所述大小判定部判定所述矩阵的数据大小是否为第二阈值以上,该第二阈值小于所述第一阈值,
在所述矩阵的数据大小比所述第一阈值小且为所述第二阈值以上的情况下,所述处理控制部进行基于所述第三电路的处理动作。
5.根据权利要求4所述的可重构处理器,其特征在于,
所述控制电路还具备运算部,该运算部进行所述一个矩阵与所述另一个矩阵的乘法运算,
在所述矩阵的数据大小比所述第二阈值小的情况下,所述运算部进行所述一个矩阵与所述另一个矩阵的乘法运算。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018168697A JP7132043B2 (ja) | 2018-09-10 | 2018-09-10 | リコンフィギュラブルプロセッサ |
JP2018-168697 | 2018-09-10 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110888832A true CN110888832A (zh) | 2020-03-17 |
Family
ID=69745891
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910783093.2A Pending CN110888832A (zh) | 2018-09-10 | 2019-08-23 | 可重构处理器 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP7132043B2 (zh) |
CN (1) | CN110888832A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112286864A (zh) * | 2020-12-24 | 2021-01-29 | 北京清微智能科技有限公司 | 加速可重构处理器运行的稀疏化数据处理方法及*** |
CN112507284A (zh) * | 2020-12-18 | 2021-03-16 | 清华大学 | 稀疏矩阵乘法在可重构处理器阵列上的实现方法及装置 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11556337B2 (en) | 2021-04-12 | 2023-01-17 | Analog Devices International Unlimited Company | Parallel matrix multiplication technique optimized for memory fetches |
CN115221101B (zh) * | 2021-04-16 | 2023-12-19 | 中科寒武纪科技股份有限公司 | 用于优化片上***的矩阵乘操作的方法和相关产品 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0446721B1 (en) * | 1990-03-16 | 2000-12-20 | Texas Instruments Incorporated | Distributed processing memory |
US7149867B2 (en) | 2003-06-18 | 2006-12-12 | Src Computers, Inc. | System and method of enhancing efficiency and utilization of memory bandwidth in reconfigurable hardware |
US8051124B2 (en) | 2007-07-19 | 2011-11-01 | Itt Manufacturing Enterprises, Inc. | High speed and efficient matrix multiplication hardware module |
JP5882714B2 (ja) | 2011-12-14 | 2016-03-09 | 東京計器株式会社 | リコンフィギュラブルプロセッサの制御方法及びリコンフィギュラブルプロセッサのコンフィギュレーション情報を生成する方法及びコンフィギュレーション情報生成ツール |
-
2018
- 2018-09-10 JP JP2018168697A patent/JP7132043B2/ja active Active
-
2019
- 2019-08-23 CN CN201910783093.2A patent/CN110888832A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112507284A (zh) * | 2020-12-18 | 2021-03-16 | 清华大学 | 稀疏矩阵乘法在可重构处理器阵列上的实现方法及装置 |
CN112507284B (zh) * | 2020-12-18 | 2022-08-12 | 清华大学 | 稀疏矩阵乘法在可重构处理器阵列上的实现方法及装置 |
CN112286864A (zh) * | 2020-12-24 | 2021-01-29 | 北京清微智能科技有限公司 | 加速可重构处理器运行的稀疏化数据处理方法及*** |
CN112286864B (zh) * | 2020-12-24 | 2021-06-04 | 北京清微智能科技有限公司 | 加速可重构处理器运行的稀疏化数据处理方法及*** |
Also Published As
Publication number | Publication date |
---|---|
JP2020042479A (ja) | 2020-03-19 |
JP7132043B2 (ja) | 2022-09-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110888832A (zh) | 可重构处理器 | |
CN105703765B (zh) | 基于dram的可重构装置 | |
US10515135B1 (en) | Data format suitable for fast massively parallel general matrix multiplication in a programmable IC | |
US20060004991A1 (en) | Semiconductor device | |
US9483442B2 (en) | Matrix operation apparatus | |
KR102357863B1 (ko) | 메모리 접근 방법 및 장치 | |
US9705505B2 (en) | Reconfigurable semiconductor device | |
KR20200108774A (ko) | 순환 큐 기반의 명령어 메모리를 포함하는 메모리 장치 및 그 동작방법 | |
US20150012718A1 (en) | System for compensating for dynamic skew in memory devices | |
JP2020187747A (ja) | 高帯域幅メモリシステム及びメモリアドレス方法 | |
JP5007838B2 (ja) | 情報処理装置および情報処理プログラム | |
CN112712457B (zh) | 数据处理方法以及人工智能处理器 | |
CN109935194B (zh) | Led显示屏的显示控制方法、装置及存储介质 | |
CN111045979A (zh) | 基于存储器处理器的多处理架构及其操作方法 | |
US20160048971A1 (en) | Data processing apparatus, data processing method, and non-transitory computer readable medium | |
CN103765493A (zh) | 数字平方计算机实现的方法和设备 | |
GB2521029A (en) | Data processing device and method for interleaved storage of data elements | |
JP2022074442A (ja) | 演算装置および演算方法 | |
CN111488119B (zh) | 用于哈希解决方案的半导体存储器件及其驱动方法 | |
JP5196538B2 (ja) | 半導体集積回路の設計方法、半導体集積回路の設計プログラム、及び半導体集積回路 | |
CN103905687B (zh) | 图像处理装置和图像处理方法 | |
US20210288650A1 (en) | Semiconductor device and circuit layout method | |
US9853644B2 (en) | Multiple-layer configuration storage for runtime reconfigurable systems | |
WO2020197925A1 (en) | Multiple precision memory system | |
CN113361679B (zh) | 存储器装置及其操作方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20200317 |
|
WD01 | Invention patent application deemed withdrawn after publication |