CN108717402B - 用于可重构处理系统的存储器和可重构处理系统 - Google Patents
用于可重构处理系统的存储器和可重构处理系统 Download PDFInfo
- Publication number
- CN108717402B CN108717402B CN201810470748.6A CN201810470748A CN108717402B CN 108717402 B CN108717402 B CN 108717402B CN 201810470748 A CN201810470748 A CN 201810470748A CN 108717402 B CN108717402 B CN 108717402B
- Authority
- CN
- China
- Prior art keywords
- storage unit
- calculation unit
- row
- port
- row calculation
- 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.)
- Active
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
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)
Abstract
本发明提供了一种用于可重构处理系统的存储器,可重构处理系统包括多个行计算单元组,多个行计算单元组中的每个行计算单元组包括多个行计算单元。存储器包括:多个第一存储单元,其中多个第一存储单元中的每个第一存储单元与多个行计算单元组中的每个行计算单元组一一对应连接;第二存储单元,与多个行计算单元组中的每个行计算单元组中的每个行计算单元连接;其中,第一存储单元用于存储对应的行计算单元组内的各个行计算单元之间交互的数据,第二存储单元用于存储不同行计算单元组间的各个行计算单元之间交互的数据。根据本发明实施例的方法,可以满足可重构处理系统多端口同时读写的需求,提高数据交互效率。
Description
技术领域
本发明涉及电子信息技术,更具体地,涉及一种用于可重构处理系统的存储器和一种可重构处理系统。
背景技术
可重构处理系统(Reconfigurable Processing Unit,RPU)是一种结合计算灵活性和计算高效性为一体的新型计算架构,可以应用于包括汽车、航空航天、国防等在内的各个领域中,适用范围较广。在可重构处理系统中,通常需要借助缓存结构来实现算子之间的数据交互。然而,目前库提供商提供的存储编译器(Memory Compiler)通常只支持两个端口的存储结构,因此对可重构处理系统的计算电路构成较多限制,导致算子间的数据交互效率低下。
发明内容
本发明的一个方面提供了一种用于可重构处理系统的存储器,所述可重构处理系统包括多个行计算单元组,所述多个行计算单元组中的每个行计算单元组包括多个行计算单元,其特征在于,所述存储器包括:多个第一存储单元,其中所述多个第一存储单元中的每个第一存储单元与所述多个行计算单元组中的每个行计算单元组一一对应连接,以及第二存储单元,与所述多个行计算单元组中的每个行计算单元组中的每个行计算单元连接。其中,所述第一存储单元用于存储对应的行计算单元组内的各个行计算单元之间交互的数据,所述第二存储单元用于存储不同行计算单元组间的各个行计算单元之间交互的数据。
可选地,上述第一存储单元包括:多个第一端口,其中所述多个第一端口中的每个第一端口与所述第一存储单元对应的行计算单元组中的每个行计算单元一一对应连接,以及第二端口,与外接存储设备连接。
可选地,上述第二存储单元包括:多个第三端口,与所述多个行计算单元组中的每个行计算单元组中的每个行计算单元一一对应连接,以及第四端口,与外接存储设备连接。
可选地,上述第一存储单元由寄存器构成,以及所述第二存储单元由寄存器构成。
可选地,上述多个行计算单元组中的每个行计算单元组包括两个行计算单元,其特征在于,所述第一存储单元由两端口存储单元构成,以及所述第二存储单元由寄存器构成。其中,所述两端口存储单元的第五端口与所述两个行计算单元中的第一行计算单元连接,所述两端口存储单元的第六端口时分复用地与外接设备和所述两个行计算单元中的第二行计算单元连接。
可选地,上述第一存储单元以及所述第二存储单元对应不同的地址空间。
本发明的另一个方面提供了一种可重构处理系统,包括:多个行计算单元组,所述多个行计算单元组中的每个行计算单元组包括多个行计算单元,以及存储器。所述存储器包括:多个第一存储单元,其中所述多个第一存储单元中的每个第一存储单元与所述多个行计算单元组中的每个行计算单元组一一对应连接,以及第二存储单元,与所述多个行计算单元组中的每个行计算单元组中的每个行计算单元连接。其中,所述第一存储单元用于存储对应的行计算单元组内的各个行计算单元之间交互的数据,所述第二存储单元用于存储不同行计算单元组间的各个行计算单元之间交互的数据。
可选地,上述第一存储单元包括:多个第一端口,其中所述多个第一端口中的每个第一端口与所述第一存储单元对应的行计算单元组中的每个行计算单元一一对应连接,以及第二端口,与外接存储设备连接。
可选地,上述第二存储单元包括:多个第三端口,与所述多个行计算单元组中的每个行计算单元组中的每个行计算单元一一对应连接,以及第四端口,与外接存储设备连接。
可选地,上述多个行计算单元组中的每个行计算单元组包括两个行计算单元,其特征在于,所述第一存储单元由两端口存储单元构成,以及所述第二存储单元由寄存器构成。其中,所述两端口存储单元的第五端口与所述两个行计算单元中的第一行计算单元连接,所述两端口存储单元的第六端口时分复用地与外接设备和所述两个行计算单元中的第二行计算单元连接。
可见,在本发明实施例的技术方案中,通过第一存储单元实现各个行计算单元组内的数据交互,通过第二存储单元实现各个行计算单元组间的数据交互,从而可以实现各个行计算单元之间的数据交互。并且本发明实施例中的第一存储单元和第二存储单元能够支持多端口同时读写,因此,大大提高了数据交互效率,从而提高了可重构处理系统的处理速度。
附图说明
为了更完整地理解本发明及其优势,现在将参考结合附图的以下描述,其中:
图1示意性示出了根据本发明实施例的存储器的应用场景;
图2A示意性示出了根据本发明实施例的存储器的第一存储单元的示意图;
图2B示意性示出了根据本发明实施例的存储器的第二存储单元的示意图;以及
图3示意性示出了根据本发明实施例的可重构处理系统的示意图。
具体实施方式
以下,将参照附图来描述本发明的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本发明的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本发明实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本发明。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。本领域技术人员还应理解,实质上任意表示两个或更多可选项目的转折连词和/或短语,无论是在说明书、权利要求书还是附图中,都应被理解为给出了包括这些项目之一、这些项目任一方、或两个项目的可能性。例如,短语“A或B”应当被理解为包括“A”或“B”、或“A和B”的可能性。
附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。
因此,本发明的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本发明的技术可以采取存储有指令的计算机可读介质上的计算机程序产品的形式,该计算机程序产品可供指令执行系统使用或者结合指令执行系统使用。在本发明的上下文中,计算机可读介质可以是能够包含、存储、传送、传播或传输指令的任意介质。例如,计算机可读介质可以包括但不限于电、磁、光、电磁、红外或半导体系统、装置、器件或传播介质。计算机可读介质的具体示例包括:磁存储装置,如磁带或硬盘(HDD);光存储装置,如光盘(CD-ROM);存储器,如随机存取存储器(RAM)或闪存;和/或有线/无线通信链路。
可重构处理系统RPU对数据读写速度有着较高的要求,为了提高RPU的计算速度,通常需要RPU的缓存结构能够支持多端口同时读写。然而,这对缓存结构的设计提出了很高的要求。
本发明的实施例提供了一种用于可重构处理系统的存储器。其中,可重构处理系统包括多个行计算单元组,多个行计算单元组中的每个行计算单元组包括多个行计算单元。存储器包括:多个第一存储单元,多个第一存储单元中的每个第一存储单元与多个行计算单元组中的每个行计算单元组一一对应连接,以及第二存储单元,与多个行计算单元组中的每个行计算单元组中的每个行计算单元连接。其中,第一存储单元用于存储对应的行计算单元组内的各个行计算单元之间交互的数据,第二存储单元用于存储不同行计算单元组间的各个行计算单元之间交互的数据。
根据本发明实施例的存储器,通过第一存储单元实现各个行计算单元组内的数据交互,通过第二存储单元实现各个行计算单元组间的数据交互,从而可以实现各个行计算单元之间的数据交互。并且本发明实施例中的第一存储单元和第二存储单元能够支持多端口同时读写,因此,大大提高了数据交互效率,从而提高了可重构处理系统的处理速度。
图1示意性示出了根据本发明实施例的存储器的应用场景100。
如图1所示,该应用场景100包括可重构处理系统RPU 110、以及存储器120。
根据本发明实施例,可重构处理系统RPU 110可以包括可重构配置管理器(Reconfigurable Context Manager,RCM)111、可重构调度管理器(ReconfigurableSchedule Manager,RSM)112以及可重构单元阵列(Reconfigurable Cell Array,RCA)113。
其中,RCM 111用于解析配置信息,并将解析结果发送至RCA 113,以配置RCA 113中的至少一部分计算单元RC的运算功能。RSM 112用于从RCM 111接收配置信息,并根据配置信息生成时序控制信息,其中时序控制信息可以包括令牌。RCA 113用于根据时序控制信息执行运算任务,RCA 113中的计算单元RC接收到时序控制信息时开始执行运算,并在运算完毕后,依据预设顺序在RCA 113内将时序控制信息传递至下一级计算单元RC。当RCA 113完成时序控制信息对应的运算任务时,销毁时序控制信息,其中运算任务可以包括接收到时序控制信息的各级计算单元RC所执行的运算。
在本发明实施例中,存储器120可以与RCA 113实现数据交互,以存储RCA在运算过程中的中间数据等相关信息。例如,RCA 113可以从存储器120中读取数据,也可以将数据写入存储器120中。本发明实施例的存储器120可以内置于可重构处理系统110中,也可以置于可重构处理系统110外且能够与可重构处理系统110通信连接。
根据本发明实施例,RCA 113可以包括多个行计算单元,每一行计算单元可以包括多个算子单元,每个算子单元能够实现相应的运算功能。
在本发明实施例中,可以将RCA 113分为多个行计算单元组,每个行计算单元组包括多个行计算单元。例如,一个行计算单元组可以实现相对独立的计算任务,其组内的各个行计算单元之间的数据交互较多,而与组外的行计算单元交互较少。
本发明实施例的存储器120可以包括多个第一存储单元,每个第一存储单元与一个行计算单元组连接,用于存储该组内的多个行计算单元之间交互的数据。存储器120还可以包括第二存储单元,与每一个行计算单元连接,当不属于同一组内的行计算单元需要进行数据交互时,可以通过第二存储单元进行数据交互。
需要注意的是,图1所示仅为可以应用本发明实施例的场景的示例,以帮助本领域技术人员理解本发明的技术内容,但并不意味着本发明实施例不可以用于其他设备、系统、环境或场景。
下面结合图1的应用场景,参考图2A~2B来描述根据本发明示例性实施方式的存储器。
本发明实施例中的存储器可以用于可重构处理系统。其中,可重构处理系统包括多个行计算单元组,多个行计算单元组中的每个行计算单元组包括多个行计算单元。
根据本发明实施例,可重构处理系统中可以包括可重构单元阵列RCA,可重构单元阵列RCA可以由多个行计算单元(Row Calculated Unit,RCU)组成,每个行计算单元可以包括多个算子单元,每个算子单元能够实现相应的运算功能。
在本发明实施例中,可以将RCA分为多个行计算单元组,每个行计算单元组包括多个行计算单元。例如,一个行计算单元组可以实现相对独立的计算任务,其组内的各个行计算单元之间的数据交互较多,而与组外的行计算单元交互较少。
图2A示意性示出了根据本发明实施例的存储器的第一存储单元的示意图。
如图2A所示,存储器可以包括多个第一存储单元210,多个第一存储单元中的每个第一存储单元与多个行计算单元组中的每个行计算单元组一一对应连接。
例如,如图2A所示,可重构单元阵列RCA可以包括16个行计算单元RCU,16个RCU可以构成多个行计算单元组。例如,RCU1~RCU4可以构成第一行计算单元组,RCU5~RCU8可以构成第二行计算单元组,RCU9~RCU12可以构成第三行计算单元组,RCU13~RCU16可以构成第四行计算单元组。
可以理解,图2A仅为示例性实施方式,为了帮助本领域技术人员理解,本发明实施例不限制RCA的行计算单元数量,也不限制RCA的分组方式。
本发明实施例的每个第一存储单元210对应连接一个行计算单元组。用于存储对应的行计算单元组内的各个行计算单元之间交互的数据。例如,第一存储单元210对应连接的行计算单元组内的各行计算单元可以将数据存入第一存储单元210,也可以从第一存储单元210中读取数据,从而实现组内各行计算单元之间的数据交互。
根据本发明实施例,第一存储单元210可以包括多个第一端口,多个第一端口中的每个第一端口与第一存储单元对应的行计算单元组中的每个行计算单元一一对应连接。
例如,如图2A所示,第一存储单元210可以包括4个第一端口(端口A1~端口A4),端口A1可以与RCU1对应连接,端口A2可以与RCU2对应连接,端口A3可以与RCU3对应连接,端口A4可以与RCU4对应连接。
在本发明实施例中,RCU可以通过其对应的端口与第一存储单元实现数据交互。
本发明实施例的第一存储单元210通过多个第一端口支持多端口同时读写,从而满足了组内各个行计算单元间进行高效数据交互的需求,提高了数据交互的效率,进而提高了可重构处理系统的处理速度。
根据本发明实施例,第一存储单元210还可以包括第二端口,用于与外接存储设备连接。
例如,如图2A所示,第一存储单元210包括第二端口(端口B1),端口B1可以与外接设备连接。端口B1例如可以是系统总线端口,用于与RCA外部进行数据交互。
根据本发明实施例,第一存储单元210例如可以由寄存器构成。例如,可以通过寄存器来构建支持多端口同时读写的缓存结构。因此,该缓存结构能够满足多端口同时访问,各个行计算单元访问第一存储单元210时不需要额外的等待。本发明实施例能够满足可重构计算电路同时多端口高效读写的需求,提高了行计算单元间的数据交互效率。
或者,第一存储单元210也可以由两端口存储单元构成。其中,两端口存储单元的一端口与两个行计算单元中的第一行计算单元连接,两端口存储单元的另一端口时分复用地与外接设备和两个行计算单元中的第二行计算单元连接。由两端口存储单元构成的第一存储单元210,优选地适用于具有两个行计算单元的行计算单元组。
例如,当第一存储单元为两端口的存储单元构成时,可以与具有两个行计算单元的行计算单元组连接,实现两个RCU之间的数据交互。例如,系统总线和可以和行计算单元组的其中一个RCU共享第一存储单元的一个端口,这种情况下,可以通过第一存储单元端口的时分复用来实现系统总线和一个RCU共享一个端口。
应该理解,图2A中的行计算单元RCU、行计算单元组、第一存储单元210、端口A、端口B的数目仅仅是示意性的。本发明实施例对此不做限定,本领域技术人员可以根据实际情况设定。
图2B示意性示出了根据本发明实施例的存储器的第二存储单元的示意图。
如图2B所示,存储器还可以包括第二存储单元220。第二存储单元220与多个行计算单元组中的每个行计算单元组中的每个行计算单元连接。
例如,如图2B所示,可重构单元阵列RCA可以包括16个行计算单元RCU,16个RCU可以构成多个行计算单元组。例如,RCU1~RCU4可以构成第一行计算单元组,RCU5~RCU8可以构成第二行计算单元组,RCU9~RCU12可以构成第三行计算单元组,RCU13~RCU16可以构成第四行计算单元组。
本发明实施例的第二存储单元220与每个行计算单元RCU分别连接。第二存储单元220用于存储不同行计算单元组间的各个行计算单元之间交互的数据。
例如,第二存储单元220可以与RCA中的各个行计算单元RCU连接,每个RCU均可以将数据存入第二存储单元220,也可以从第二存储单元220中读取数据。例如,当不属于同一行计算单元组的两个行计算单元需要进行数据交互时,可以将交互数据写入第二存储单元,进而通过第二存储单元220实现数据交互。
根据本发明实施例,第二存储单元220可以包括多个第三端口,分别与多个行计算单元组中的每个行计算单元组中的每个行计算单元一一对应连接。
例如,如图2B所示,第二存储单元220可以包括16个第三端口(端口C1~端口C16),端口C1可以与RCU1对应连接,端口C2可以与RCU2对应连接,……,端口C16可以与RCU16对应连接。
在本发明实施例中,RCU可以通过其对应的端口访问第二存储单元。例如,当RCU需要与组外的其他RCU进行数据交互时,可以将需要交互的数据存储于第二存储单元。
本发明实施例的第二存储单元220通过多个第三端口支持多端口同时读写,从而满足了组间各个行计算单元间数据交互的需求,提高了数据交互的效率,进而提高了可重构处理系统的处理速度。
根据本发明实施例,第二存储单元220还可以包括第四端口,用于与外接存储设备连接。
例如,如图2B所示,第二存储单元220包括第四端口(端口D1),端口D1可以与外接设备连接。端口D1例如可以是系统总线端口,用于与RCA外部进行数据交互。例如,RCA可以通过端口D1从外接设备读取配置信息等相关数据。
根据本发明实施例,第二存储单元220例如可以由寄存器构成。例如,可以通过寄存器来构建支持多端口同时读写的缓存结构。因此,该缓存结构能够满足多端口同时访问,各个行计算单元访问第二存储单元220时不需要额外的等待。本发明实施例能够满足可重构计算电路同时多端口高效读写的需求,提高了行计算单元间的数据交互效率。
应该理解,图2B中的行计算单元RCU、行计算单元组、第二存储单元220、端口C、端口D的数目仅仅是示意性的。本发明实施例对此不做限定,本领域技术人员可以根据实际情况设定。
根据本发明实施例,第一存储单元210以及第二存储单元220对应不同的地址空间。RCA中的算子单元可以通过访问不同的缓存地址从而访问不同的存储单元。
可以理解,由于第二存储单元220的端口较多,可以将第二存储单元的结构设计的较小。第一存储单元210的端口较少,可以将第一存储单元的结构设计的较大一些。这样既可以满足可重构系统中行计算单元之间的数据交互,也可以根据设计规模的需求调整缓存结构占用的资源。
本发明实施例通过使用寄存器来构建支持多端口同时读写的缓存结构,以满足可重构计算电路同时多端口高效读写的需求。在本发明实施例中,将存储器分为第二存储单元和多个第一存储单元,通过第一存储单元实现各个行计算单元组内的数据交互,通过第二存储单元实现各个行计算单元组间的数据交互,从而可以实现各个行计算单元之间的高效数据交互。
图3示意性示出了根据本发明实施例的可重构处理系统的示意图。
如图3所示,可重构处理系统包括可重构单元阵列RCA310、多个第一存储单元320以及第二存储单元330。
根据本发明实施例,可重构单元阵列RCA 310可以由多个行计算单元(RowCalculated Unit,RCU)组成,每个行计算单元可以包括多个算子单元,每个算子单元能够实现相应的运算功能。
在本发明实施例中,可以将RCA分为多个行计算单元组,每个行计算单元组包括多个行计算单元。例如,一个行计算单元组可以实现相对独立的计算任务,其组内的各个行计算单元之间的数据交互较多,而与组外的行计算单元交互较少。
多个第一存储单元320,多个第一存储单元中的每个第一存储单元与多个行计算单元组中的每个行计算单元组一一对应连接。
例如,可重构单元阵列RCA可以包括16个行计算单元RCU,16个RCU可以构成多个行计算单元组。例如,RCU1~RCU4可以构成第一行计算单元组,RCU5~RCU8可以构成第二行计算单元组,RCU9~RCU12可以构成第三行计算单元组,RCU13~RCU16可以构成第四行计算单元组。
本发明实施例的每个第一存储单元320对应连接一个行计算单元组,用于存储对应的行计算单元组内的各个行计算单元之间交互的数据。例如,第一存储单元320对应连接的行计算单元组内的各行计算单元可以将数据存入第一存储单元320,也可以从第一存储单元320中提取数据,从而实现组内各行计算单元之间的数据交互。
根据本发明实施例,第一存储单元320可以包括多个第一端口,多个第一端口中的每个第一端口与第一存储单元对应的行计算单元组中的每个行计算单元一一对应连接。
例如,第一存储单元320可以包括4个第一端口(端口A1~端口A4),端口A1可以与RCU1对应连接,端口A2可以与RCU2对应连接,端口A3可以与RCU3对应连接,端口A4可以与RCU4对应连接。在本发明实施例中,RCU可以通过其对应的端口访问第一存储单元以实现对第一存储单元的数据读写。
本发明实施例的第一存储单元320通过多个第一端口支持多端口同时读写,从而满足了组内各个行计算单元间数据交互的需求,提高了数据交互的效率,进而提高了可重构处理系统的处理速度。
根据本发明实施例,第一存储单元320还可以包括第二端口,该第二端口用于与外接存储设备连接。
例如,第一存储单元320包括第二端口(端口B1),端口B1可以与外接设备连接。端口B1例如可以是系统总线端口,用于与RCA外部的设备进行数据交互。
根据本发明实施例,第一存储单元320例如可以由寄存器构成。例如,可以通过寄存器来构建支持多端口同时读写的缓存结构。因此,该缓存结构满足多端口同时访问,各个行计算单元访问第一存储单元320时不需要额外的等待。本发明实施例能够满足可重构计算电路同时多端口高效读写的需求,提高了行计算单元间的数据交互效率。
或者,第一存储单元320也可以由两端口存储单元构成。其中,两端口存储单元的一端口与两个行计算单元中的第一行计算单元连接,两端口存储单元的另一端口时分复用地与外接设备和两个行计算单元中的第二行计算单元连接。由两端口存储单元构成的第一存储单元320,优选地适用于具有两个行计算单元的行计算单元组。
例如,当第一存储单元为两端口的存储单元构成时,可以与具有两个行计算单元的行计算单元组连接,实现两个RCU之间的数据交互。例如,系统总线和可以和行计算单元组的其中一个RCU共享第一存储单元的一个端口,这种情况下,可以通过第一存储单元端口的时分复用来实现系统总线和一个RCU共享一个端口。
第二存储单元330,与多个行计算单元组中的每个行计算单元组中的每个行计算单元连接。
本发明实施例的第二存储单元330与每个行计算单元RCU分别连接。第二存储单元330用于存储不同行计算单元组间的各个行计算单元之间交互的数据。
例如,第二存储单元330可以与RCA中的各个行计算单元RCU连接,每个RCU均可以将数据存入第二存储单元330,也可以从第二存储单元330中读取数据。例如,当不属于同一行计算单元组的两个行计算单元需要进行数据交互时,可以将交互数据写入第二存储单元,进而通过第二存储单元330实现数据交互。
根据本发明实施例,第二存储单元330可以包括多个第三端口,分别与多个行计算单元组中的每个行计算单元组中的每个行计算单元一一对应连接。
例如,第二存储单元330可以包括16个第三端口(端口C1~端口C16),端口C1可以与RCU1对应连接,端口C2可以与RCU2对应连接,……,端口C16可以与RCU16对应连接。
在本发明实施例中,RCU可以通过其对应的端口访问第二存储单元。例如,当RCU需要与组外的其他RCU进行数据交互时,可以将需要交互的数据存储于第二存储单元。
本发明实施例的第二存储单元330通过多个第三端口支持多端口同时读写,从而满足了组间各个行计算单元间数据交互的需求,提高了数据交互的效率,进而提高了可重构处理系统的处理速度。
根据本发明实施例,第二存储单元330还可以包括第四端口,该第四端口用于与外接存储设备连接。
例如,第二存储单元330包括第四端口(端口D1),端口D1可以与外接设备连接。端口D1例如可以是系统总线端口,用于与RCA外部进行数据交互。
根据本发明实施例,第二存储单元330例如可以由寄存器构成。例如,可以通过寄存器来构建支持多端口同时读写的缓存结构。因此,该缓存结构能够满足多端口同时访问,各个行计算单元访问第二存储单元330时不需要额外的等待。本发明实施例能够满足可重构计算电路同时多端口高效读写的需求,提高了行计算单元间的数据交互效率。
根据本发明实施例,第一存储单元320以及第二存储单元330对应不同的地址空间。RCA中的算子单元可以通过访问不同的缓存地址从而访问不同的存储单元。
应该理解,图3中的行计算单元RCU、行计算单元组、第一存储单元320、第二存储单元330、端口A、端口B、端口C、端口D的数目仅仅是示意性的。本发明实施例对此不做限定,本领域技术人员可以根据实际情况设定。
本发明实施例通过使用寄存器来构建支持多端口同时读写的缓存结构,以满足可重构计算电路同时多端口高效读写的需求。在本发明实施例中,将存储器分为多个第一存储单元和第二存储单元,通过第一存储单元实现各个行计算单元组内的数据交互,通过第二存储单元实现各个行计算单元组间的数据交互,从而可以实现各个行计算单元之间的数据交互。
本领域技术人员可以理解,本发明的各个实施例和/或权利要求中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本发明中。特别地,在不脱离本发明精神和教导的情况下,本发明的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本发明的范围。
尽管已经参照本发明的特定示例性实施例示出并描述了本发明,但是本领域技术人员应该理解,在不背离所附权利要求及其等同物限定的本发明的精神和范围的情况下,可以对本发明进行形式和细节上的多种改变。因此,本发明的范围不应该限于上述实施例,而是应该不仅由所附权利要求来进行确定,还由所附权利要求的等同物来进行限定。
Claims (5)
1.一种用于可重构处理系统的存储器,所述可重构处理系统包括多个行计算单元组,所述多个行计算单元组中的每个行计算单元组包括两个行计算单元,其特征在于,所述存储器包括:
多个第一存储单元,其中所述多个第一存储单元中的每个第一存储单元与所述多个行计算单元组中的每个行计算单元组一一对应连接;
第二存储单元,与所述多个行计算单元组中的每个行计算单元组中的每个行计算单元连接;
其中,所述第一存储单元用于存储对应的行计算单元组内的各个行计算单元之间交互的数据,所述第二存储单元用于存储不同行计算单元组间的各个行计算单元之间交互的数据;
所述第一存储单元由两端口存储单元构成,以及所述第二存储单元由寄存器构成;
其中,所述两端口存储单元的第五端口与所述两个行计算单元中的第一行计算单元连接,所述两端口存储单元的第六端口时分复用地与外接设备和所述两个行计算单元中的第二行计算单元连接。
2.根据权利要求1所述的存储器,其特征在于,所述第二存储单元包括:
多个第三端口,与所述多个行计算单元组中的每个行计算单元组中的每个行计算单元一一对应连接;
第四端口,与外接存储设备连接。
3.根据权利要求1所述的存储器,其特征在于,每个所述第一存储单元以及所述第二存储单元对应不同的地址空间。
4.一种可重构处理系统,其特征在于,包括:
多个行计算单元组,所述多个行计算单元组中的每个行计算单元组包括两个行计算单元;
存储器,所述存储器包括:
多个第一存储单元,其中所述多个第一存储单元中的每个第一存储单元与所述多个行计算单元组中的每个行计算单元组一一对应连接;
第二存储单元,与所述多个行计算单元组中的每个行计算单元组中的每个行计算单元连接;
其中,所述第一存储单元用于存储对应的行计算单元组内的各个行计算单元之间交互的数据,所述第二存储单元用于存储不同行计算单元组间的各个行计算单元之间交互的数据;
所述第一存储单元由两端口存储单元构成,以及所述第二存储单元由寄存器构成;
其中,所述两端口存储单元的第五端口与所述两个行计算单元中的第一行计算单元连接,所述两端口存储单元的第六端口时分复用地与外接设备和所述两个行计算单元中的第二行计算单元。
5.根据权利要求4所述的可重构处理系统,其特征在于,所述第二存储单元包括:
多个第三端口,与所述多个行计算单元组中的每个行计算单元组中的每个行计算单元一一对应连接;
第四端口,与外接存储设备连接。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810470748.6A CN108717402B (zh) | 2018-05-16 | 2018-05-16 | 用于可重构处理系统的存储器和可重构处理系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810470748.6A CN108717402B (zh) | 2018-05-16 | 2018-05-16 | 用于可重构处理系统的存储器和可重构处理系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108717402A CN108717402A (zh) | 2018-10-30 |
CN108717402B true CN108717402B (zh) | 2021-03-30 |
Family
ID=63900149
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810470748.6A Active CN108717402B (zh) | 2018-05-16 | 2018-05-16 | 用于可重构处理系统的存储器和可重构处理系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108717402B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113934681B (zh) * | 2021-12-15 | 2022-09-13 | 北京清微智能信息技术有限公司 | 一种可重构计算阵列及构建方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102236632A (zh) * | 2011-05-27 | 2011-11-09 | 清华大学 | 一种层次化描述动态可重构处理器配置信息的方法 |
US9032343B1 (en) * | 2012-10-19 | 2015-05-12 | Altera Corporation | Integrating multiple FPGA designs by merging configuration settings |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102402415B (zh) * | 2011-10-21 | 2013-07-17 | 清华大学 | 一种动态可重构阵列内数据缓存的装置及方法 |
CN102650980B (zh) * | 2012-04-09 | 2014-07-23 | 清华大学 | 多核动态可重构处理器生成配置信息的方法和装置 |
CN103761075B (zh) * | 2014-02-10 | 2017-01-25 | 东南大学 | 一种粗粒度动态可重构数据规整控制单元结构 |
US10719321B2 (en) * | 2015-09-19 | 2020-07-21 | Microsoft Technology Licensing, Llc | Prefetching instruction blocks |
CN105790809B (zh) * | 2016-02-24 | 2018-08-21 | 东南大学 | 面向mimo信道检测系统中粗粒度可重构阵列及路由结构 |
CN106021171A (zh) * | 2016-05-06 | 2016-10-12 | 东南大学—无锡集成电路技术研究所 | 一种基于大规模粗粒度可重构处理器的sm4-128的密钥扩展实现方法及系统 |
CN107341544B (zh) * | 2017-06-30 | 2020-04-10 | 清华大学 | 一种基于可分割阵列的可重构加速器及其实现方法 |
-
2018
- 2018-05-16 CN CN201810470748.6A patent/CN108717402B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102236632A (zh) * | 2011-05-27 | 2011-11-09 | 清华大学 | 一种层次化描述动态可重构处理器配置信息的方法 |
US9032343B1 (en) * | 2012-10-19 | 2015-05-12 | Altera Corporation | Integrating multiple FPGA designs by merging configuration settings |
Also Published As
Publication number | Publication date |
---|---|
CN108717402A (zh) | 2018-10-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11294599B1 (en) | Registers for restricted memory | |
US20220121603A1 (en) | Network-on-chip data processing method and device | |
US9335947B2 (en) | Inter-processor memory | |
US8127116B2 (en) | Dependency matrix with reduced area and power consumption | |
CN103647850A (zh) | 一种分布式版本控制系统的数据处理方法、设备及系统 | |
KR20080105390A (ko) | 플래시 메모리에 사용되는 명령어들을 제어하는 방법 및장치 | |
JP2006344220A5 (zh) | ||
CN111459543B (zh) | 一种管理寄存器文件单元的方法 | |
CN108717402B (zh) | 用于可重构处理系统的存储器和可重构处理系统 | |
US11561925B2 (en) | Tensor partitioning and partition access order | |
US11366783B1 (en) | Multi-headed multi-buffer for buffering data for processing | |
US11494326B1 (en) | Programmable computations in direct memory access engine | |
US10223269B2 (en) | Method and apparatus for preventing bank conflict in memory | |
CN109446130A (zh) | 一种i/o设备状态信息的获取方法及系统 | |
CN103907108A (zh) | 共享闪存的方法、控制器及系统 | |
US20220342835A1 (en) | Method and apparatus for disaggregation of computing resources | |
CN107656702A (zh) | 加速硬盘读写的方法及其系统、以及电子设备 | |
US11500802B1 (en) | Data replication for accelerator | |
CN116360672A (zh) | 访问存储器的方法、装置和电子设备 | |
CN111666253B (zh) | 向具有共享存储器的共享处理元件的系统传递可编程数据 | |
CN112631955A (zh) | 数据处理方法、装置、电子设备以及介质 | |
CN116860185B (zh) | Sram阵列的数据访问装置、系统、方法、设备、芯片和介质 | |
US10990408B1 (en) | Place and route aware data pipelining | |
US11907144B1 (en) | Early semaphore update | |
US11983128B1 (en) | Multidimensional and multiblock tensorized direct memory access descriptors |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |