用于可重构处理系统的存储器和可重构处理系统转让专利

申请号 : CN201810470748.6

文献号 : CN108717402B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 刘雷波朱敏尹首一魏少军

申请人 : 清华大学

摘要 :

本发明提供了一种用于可重构处理系统的存储器,可重构处理系统包括多个行计算单元组,多个行计算单元组中的每个行计算单元组包括多个行计算单元。存储器包括:多个第一存储单元,其中多个第一存储单元中的每个第一存储单元与多个行计算单元组中的每个行计算单元组一一对应连接;第二存储单元,与多个行计算单元组中的每个行计算单元组中的每个行计算单元连接;其中,第一存储单元用于存储对应的行计算单元组内的各个行计算单元之间交互的数据,第二存储单元用于存储不同行计算单元组间的各个行计算单元之间交互的数据。根据本发明实施例的方法,可以满足可重构处理系统多端口同时读写的需求,提高数据交互效率。

权利要求 :

1.一种用于可重构处理系统的存储器,所述可重构处理系统包括多个行计算单元组,所述多个行计算单元组中的每个行计算单元组包括两个行计算单元,其特征在于,所述存储器包括:

多个第一存储单元,其中所述多个第一存储单元中的每个第一存储单元与所述多个行计算单元组中的每个行计算单元组一一对应连接;

第二存储单元,与所述多个行计算单元组中的每个行计算单元组中的每个行计算单元连接;

其中,所述第一存储单元用于存储对应的行计算单元组内的各个行计算单元之间交互的数据,所述第二存储单元用于存储不同行计算单元组间的各个行计算单元之间交互的数据;

所述第一存储单元由两端口存储单元构成,以及所述第二存储单元由寄存器构成;

其中,所述两端口存储单元的第五端口与所述两个行计算单元中的第一行计算单元连接,所述两端口存储单元的第六端口时分复用地与外接设备和所述两个行计算单元中的第二行计算单元连接。

2.根据权利要求1所述的存储器,其特征在于,所述第二存储单元包括:多个第三端口,与所述多个行计算单元组中的每个行计算单元组中的每个行计算单元一一对应连接;

第四端口,与外接存储设备连接。

3.根据权利要求1所述的存储器,其特征在于,每个所述第一存储单元以及所述第二存储单元对应不同的地址空间。

4.一种可重构处理系统,其特征在于,包括:多个行计算单元组,所述多个行计算单元组中的每个行计算单元组包括两个行计算单元;

存储器,所述存储器包括:

多个第一存储单元,其中所述多个第一存储单元中的每个第一存储单元与所述多个行计算单元组中的每个行计算单元组一一对应连接;

第二存储单元,与所述多个行计算单元组中的每个行计算单元组中的每个行计算单元连接;

其中,所述第一存储单元用于存储对应的行计算单元组内的各个行计算单元之间交互的数据,所述第二存储单元用于存储不同行计算单元组间的各个行计算单元之间交互的数据;

所述第一存储单元由两端口存储单元构成,以及所述第二存储单元由寄存器构成;

其中,所述两端口存储单元的第五端口与所述两个行计算单元中的第一行计算单元连接,所述两端口存储单元的第六端口时分复用地与外接设备和所述两个行计算单元中的第二行计算单元。

5.根据权利要求4所述的可重构处理系统,其特征在于,所述第二存储单元包括:多个第三端口,与所述多个行计算单元组中的每个行计算单元组中的每个行计算单元一一对应连接;

第四端口,与外接存储设备连接。

说明书 :

用于可重构处理系统的存储器和可重构处理系统

技术领域

[0001] 本发明涉及电子信息技术,更具体地,涉及一种用于可重构处理系统的存储器和一种可重构处理系统。

背景技术

[0002] 可重构处理系统(Reconfigurable Processing Unit,RPU)是一种结合计算灵活性和计算高效性为一体的新型计算架构,可以应用于包括汽车、航空航天、国防等在内的各
个领域中,适用范围较广。在可重构处理系统中,通常需要借助缓存结构来实现算子之间的
数据交互。然而,目前库提供商提供的存储编译器(Memory Compiler)通常只支持两个端口
的存储结构,因此对可重构处理系统的计算电路构成较多限制,导致算子间的数据交互效
率低下。

发明内容

[0003] 本发明的一个方面提供了一种用于可重构处理系统的存储器,所述可重构处理系统包括多个行计算单元组,所述多个行计算单元组中的每个行计算单元组包括多个行计算
单元,其特征在于,所述存储器包括:多个第一存储单元,其中所述多个第一存储单元中的
每个第一存储单元与所述多个行计算单元组中的每个行计算单元组一一对应连接,以及第
二存储单元,与所述多个行计算单元组中的每个行计算单元组中的每个行计算单元连接。
其中,所述第一存储单元用于存储对应的行计算单元组内的各个行计算单元之间交互的数
据,所述第二存储单元用于存储不同行计算单元组间的各个行计算单元之间交互的数据。
[0004] 可选地,上述第一存储单元包括:多个第一端口,其中所述多个第一端口中的每个第一端口与所述第一存储单元对应的行计算单元组中的每个行计算单元一一对应连接,以
及第二端口,与外接存储设备连接。
[0005] 可选地,上述第二存储单元包括:多个第三端口,与所述多个行计算单元组中的每个行计算单元组中的每个行计算单元一一对应连接,以及第四端口,与外接存储设备连接。
[0006] 可选地,上述第一存储单元由寄存器构成,以及所述第二存储单元由寄存器构成。
[0007] 可选地,上述多个行计算单元组中的每个行计算单元组包括两个行计算单元,其特征在于,所述第一存储单元由两端口存储单元构成,以及所述第二存储单元由寄存器构
成。其中,所述两端口存储单元的第五端口与所述两个行计算单元中的第一行计算单元连
接,所述两端口存储单元的第六端口时分复用地与外接设备和所述两个行计算单元中的第
二行计算单元连接。
[0008] 可选地,上述第一存储单元以及所述第二存储单元对应不同的地址空间。
[0009] 本发明的另一个方面提供了一种可重构处理系统,包括:多个行计算单元组,所述多个行计算单元组中的每个行计算单元组包括多个行计算单元,以及存储器。所述存储器
包括:多个第一存储单元,其中所述多个第一存储单元中的每个第一存储单元与所述多个
行计算单元组中的每个行计算单元组一一对应连接,以及第二存储单元,与所述多个行计
算单元组中的每个行计算单元组中的每个行计算单元连接。其中,所述第一存储单元用于
存储对应的行计算单元组内的各个行计算单元之间交互的数据,所述第二存储单元用于存
储不同行计算单元组间的各个行计算单元之间交互的数据。
[0010] 可选地,上述第一存储单元包括:多个第一端口,其中所述多个第一端口中的每个第一端口与所述第一存储单元对应的行计算单元组中的每个行计算单元一一对应连接,以
及第二端口,与外接存储设备连接。
[0011] 可选地,上述第二存储单元包括:多个第三端口,与所述多个行计算单元组中的每个行计算单元组中的每个行计算单元一一对应连接,以及第四端口,与外接存储设备连接。
[0012] 可选地,上述多个行计算单元组中的每个行计算单元组包括两个行计算单元,其特征在于,所述第一存储单元由两端口存储单元构成,以及所述第二存储单元由寄存器构
成。其中,所述两端口存储单元的第五端口与所述两个行计算单元中的第一行计算单元连
接,所述两端口存储单元的第六端口时分复用地与外接设备和所述两个行计算单元中的第
二行计算单元连接。
[0013] 可见,在本发明实施例的技术方案中,通过第一存储单元实现各个行计算单元组内的数据交互,通过第二存储单元实现各个行计算单元组间的数据交互,从而可以实现各
个行计算单元之间的数据交互。并且本发明实施例中的第一存储单元和第二存储单元能够
支持多端口同时读写,因此,大大提高了数据交互效率,从而提高了可重构处理系统的处理
速度。

附图说明

[0014] 为了更完整地理解本发明及其优势,现在将参考结合附图的以下描述,其中:
[0015] 图1示意性示出了根据本发明实施例的存储器的应用场景;
[0016] 图2A示意性示出了根据本发明实施例的存储器的第一存储单元的示意图;
[0017] 图2B示意性示出了根据本发明实施例的存储器的第二存储单元的示意图;以及
[0018] 图3示意性示出了根据本发明实施例的可重构处理系统的示意图。

具体实施方式

[0019] 以下,将参照附图来描述本发明的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本发明的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细
节以提供对本发明实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细
节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免
不必要地混淆本发明的概念。
[0020] 在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本发明。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在
或添加一个或多个其他特征、步骤、操作或部件。
[0021] 在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的
含义,而不应以理想化或过于刻板的方式来解释。
[0022] 在使用类似于“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”的可能性。
[0023] 附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、
专用计算机或其他可编程数据处理装置的处理器,从而这些指令在由该处理器执行时可以
创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。
[0024] 因此,本发明的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本发明的技术可以采取存储有指令的计算机可读介质上的计算机程序产品的形式,该
计算机程序产品可供指令执行系统使用或者结合指令执行系统使用。在本发明的上下文
中,计算机可读介质可以是能够包含、存储、传送、传播或传输指令的任意介质。例如,计算
机可读介质可以包括但不限于电、磁、光、电磁、红外或半导体系统、装置、器件或传播介质。
计算机可读介质的具体示例包括:磁存储装置,如磁带或硬盘(HDD);光存储装置,如光盘
(CD‑ROM);存储器,如随机存取存储器(RAM)或闪存;和/或有线/无线通信链路。
[0025] 可重构处理系统RPU对数据读写速度有着较高的要求,为了提高RPU的计算速度,通常需要RPU的缓存结构能够支持多端口同时读写。然而,这对缓存结构的设计提出了很高
的要求。
[0026] 本发明的实施例提供了一种用于可重构处理系统的存储器。其中,可重构处理系统包括多个行计算单元组,多个行计算单元组中的每个行计算单元组包括多个行计算单
元。存储器包括:多个第一存储单元,多个第一存储单元中的每个第一存储单元与多个行计
算单元组中的每个行计算单元组一一对应连接,以及第二存储单元,与多个行计算单元组
中的每个行计算单元组中的每个行计算单元连接。其中,第一存储单元用于存储对应的行
计算单元组内的各个行计算单元之间交互的数据,第二存储单元用于存储不同行计算单元
组间的各个行计算单元之间交互的数据。
[0027] 根据本发明实施例的存储器,通过第一存储单元实现各个行计算单元组内的数据交互,通过第二存储单元实现各个行计算单元组间的数据交互,从而可以实现各个行计算
单元之间的数据交互。并且本发明实施例中的第一存储单元和第二存储单元能够支持多端
口同时读写,因此,大大提高了数据交互效率,从而提高了可重构处理系统的处理速度。
[0028] 图1示意性示出了根据本发明实施例的存储器的应用场景100。
[0029] 如图1所示,该应用场景100包括可重构处理系统RPU 110、以及存储器120。
[0030] 根据本发明实施例,可重构处理系统RPU  110可以包括可重构配置管理器(Reconfigurable Context Manager,RCM)111、可重构调度管理器(Reconfigurable 
Schedule Manager,RSM)112以及可重构单元阵列(Reconfigurable Cell Array,RCA)113。
[0031] 其中,RCM 111用于解析配置信息,并将解析结果发送至RCA 113,以配置RCA 113中的至少一部分计算单元RC的运算功能。RSM 112用于从RCM 111接收配置信息,并根据配
置信息生成时序控制信息,其中时序控制信息可以包括令牌。RCA 113用于根据时序控制信
息执行运算任务,RCA 113中的计算单元RC接收到时序控制信息时开始执行运算,并在运算
完毕后,依据预设顺序在RCA 113内将时序控制信息传递至下一级计算单元RC。当RCA 113
完成时序控制信息对应的运算任务时,销毁时序控制信息,其中运算任务可以包括接收到
时序控制信息的各级计算单元RC所执行的运算。
[0032] 在本发明实施例中,存储器120可以与RCA 113实现数据交互,以存储RCA在运算过程中的中间数据等相关信息。例如,RCA 113可以从存储器120中读取数据,也可以将数据写
入存储器120中。本发明实施例的存储器120可以内置于可重构处理系统110中,也可以置于
可重构处理系统110外且能够与可重构处理系统110通信连接。
[0033] 根据本发明实施例,RCA 113可以包括多个行计算单元,每一行计算单元可以包括多个算子单元,每个算子单元能够实现相应的运算功能。
[0034] 在本发明实施例中,可以将RCA 113分为多个行计算单元组,每个行计算单元组包括多个行计算单元。例如,一个行计算单元组可以实现相对独立的计算任务,其组内的各个
行计算单元之间的数据交互较多,而与组外的行计算单元交互较少。
[0035] 本发明实施例的存储器120可以包括多个第一存储单元,每个第一存储单元与一个行计算单元组连接,用于存储该组内的多个行计算单元之间交互的数据。存储器120还可
以包括第二存储单元,与每一个行计算单元连接,当不属于同一组内的行计算单元需要进
行数据交互时,可以通过第二存储单元进行数据交互。
[0036] 需要注意的是,图1所示仅为可以应用本发明实施例的场景的示例,以帮助本领域技术人员理解本发明的技术内容,但并不意味着本发明实施例不可以用于其他设备、系统、
环境或场景。
[0037] 下面结合图1的应用场景,参考图2A~2B来描述根据本发明示例性实施方式的存储器。
[0038] 本发明实施例中的存储器可以用于可重构处理系统。其中,可重构处理系统包括多个行计算单元组,多个行计算单元组中的每个行计算单元组包括多个行计算单元。
[0039] 根据本发明实施例,可重构处理系统中可以包括可重构单元阵列RCA,可重构单元阵列RCA可以由多个行计算单元(Row Calculated Unit,RCU)组成,每个行计算单元可以包
括多个算子单元,每个算子单元能够实现相应的运算功能。
[0040] 在本发明实施例中,可以将RCA分为多个行计算单元组,每个行计算单元组包括多个行计算单元。例如,一个行计算单元组可以实现相对独立的计算任务,其组内的各个行计
算单元之间的数据交互较多,而与组外的行计算单元交互较少。
[0041] 图2A示意性示出了根据本发明实施例的存储器的第一存储单元的示意图。
[0042] 如图2A所示,存储器可以包括多个第一存储单元210,多个第一存储单元中的每个第一存储单元与多个行计算单元组中的每个行计算单元组一一对应连接。
[0043] 例如,如图2A所示,可重构单元阵列RCA可以包括16个行计算单元RCU,16个RCU可以构成多个行计算单元组。例如,RCU1~RCU4可以构成第一行计算单元组,RCU5~RCU8可以
构成第二行计算单元组,RCU9~RCU12可以构成第三行计算单元组,RCU13~RCU16可以构成
第四行计算单元组。
[0044] 可以理解,图2A仅为示例性实施方式,为了帮助本领域技术人员理解,本发明实施例不限制RCA的行计算单元数量,也不限制RCA的分组方式。
[0045] 本发明实施例的每个第一存储单元210对应连接一个行计算单元组。用于存储对应的行计算单元组内的各个行计算单元之间交互的数据。例如,第一存储单元210对应连接
的行计算单元组内的各行计算单元可以将数据存入第一存储单元210,也可以从第一存储
单元210中读取数据,从而实现组内各行计算单元之间的数据交互。
[0046] 根据本发明实施例,第一存储单元210可以包括多个第一端口,多个第一端口中的每个第一端口与第一存储单元对应的行计算单元组中的每个行计算单元一一对应连接。
[0047] 例如,如图2A所示,第一存储单元210可以包括4个第一端口(端口A1~端口A4),端口A1可以与RCU1对应连接,端口A2可以与RCU2对应连接,端口A3可以与RCU3对应连接,端口
A4可以与RCU4对应连接。
[0048] 在本发明实施例中,RCU可以通过其对应的端口与第一存储单元实现数据交互。
[0049] 本发明实施例的第一存储单元210通过多个第一端口支持多端口同时读写,从而满足了组内各个行计算单元间进行高效数据交互的需求,提高了数据交互的效率,进而提
高了可重构处理系统的处理速度。
[0050] 根据本发明实施例,第一存储单元210还可以包括第二端口,用于与外接存储设备连接。
[0051] 例如,如图2A所示,第一存储单元210包括第二端口(端口B1),端口B1可以与外接设备连接。端口B1例如可以是系统总线端口,用于与RCA外部进行数据交互。
[0052] 根据本发明实施例,第一存储单元210例如可以由寄存器构成。例如,可以通过寄存器来构建支持多端口同时读写的缓存结构。因此,该缓存结构能够满足多端口同时访问,
各个行计算单元访问第一存储单元210时不需要额外的等待。本发明实施例能够满足可重
构计算电路同时多端口高效读写的需求,提高了行计算单元间的数据交互效率。
[0053] 或者,第一存储单元210也可以由两端口存储单元构成。其中,两端口存储单元的一端口与两个行计算单元中的第一行计算单元连接,两端口存储单元的另一端口时分复用
地与外接设备和两个行计算单元中的第二行计算单元连接。由两端口存储单元构成的第一
存储单元210,优选地适用于具有两个行计算单元的行计算单元组。
[0054] 例如,当第一存储单元为两端口的存储单元构成时,可以与具有两个行计算单元的行计算单元组连接,实现两个RCU之间的数据交互。例如,系统总线和可以和行计算单元
组的其中一个RCU共享第一存储单元的一个端口,这种情况下,可以通过第一存储单元端口
的时分复用来实现系统总线和一个RCU共享一个端口。
[0055] 应该理解,图2A中的行计算单元RCU、行计算单元组、第一存储单元210、端口A、端口B的数目仅仅是示意性的。本发明实施例对此不做限定,本领域技术人员可以根据实际情
况设定。
[0056] 图2B示意性示出了根据本发明实施例的存储器的第二存储单元的示意图。
[0057] 如图2B所示,存储器还可以包括第二存储单元220。第二存储单元220与多个行计算单元组中的每个行计算单元组中的每个行计算单元连接。
[0058] 例如,如图2B所示,可重构单元阵列RCA可以包括16个行计算单元RCU,16个RCU可以构成多个行计算单元组。例如,RCU1~RCU4可以构成第一行计算单元组,RCU5~RCU8可以
构成第二行计算单元组,RCU9~RCU12可以构成第三行计算单元组,RCU13~RCU16可以构成
第四行计算单元组。
[0059] 本发明实施例的第二存储单元220与每个行计算单元RCU分别连接。第二存储单元220用于存储不同行计算单元组间的各个行计算单元之间交互的数据。
[0060] 例如,第二存储单元220可以与RCA中的各个行计算单元RCU连接,每个RCU均可以将数据存入第二存储单元220,也可以从第二存储单元220中读取数据。例如,当不属于同一
行计算单元组的两个行计算单元需要进行数据交互时,可以将交互数据写入第二存储单
元,进而通过第二存储单元220实现数据交互。
[0061] 根据本发明实施例,第二存储单元220可以包括多个第三端口,分别与多个行计算单元组中的每个行计算单元组中的每个行计算单元一一对应连接。
[0062] 例如,如图2B所示,第二存储单元220可以包括16个第三端口(端口C1~端口C16),端口C1可以与RCU1对应连接,端口C2可以与RCU2对应连接,……,端口C16可以与RCU16对应
连接。
[0063] 在本发明实施例中,RCU可以通过其对应的端口访问第二存储单元。例如,当RCU需要与组外的其他RCU进行数据交互时,可以将需要交互的数据存储于第二存储单元。
[0064] 本发明实施例的第二存储单元220通过多个第三端口支持多端口同时读写,从而满足了组间各个行计算单元间数据交互的需求,提高了数据交互的效率,进而提高了可重
构处理系统的处理速度。
[0065] 根据本发明实施例,第二存储单元220还可以包括第四端口,用于与外接存储设备连接。
[0066] 例如,如图2B所示,第二存储单元220包括第四端口(端口D1),端口D1可以与外接设备连接。端口D1例如可以是系统总线端口,用于与RCA外部进行数据交互。例如,RCA可以
通过端口D1从外接设备读取配置信息等相关数据。
[0067] 根据本发明实施例,第二存储单元220例如可以由寄存器构成。例如,可以通过寄存器来构建支持多端口同时读写的缓存结构。因此,该缓存结构能够满足多端口同时访问,
各个行计算单元访问第二存储单元220时不需要额外的等待。本发明实施例能够满足可重
构计算电路同时多端口高效读写的需求,提高了行计算单元间的数据交互效率。
[0068] 应该理解,图2B中的行计算单元RCU、行计算单元组、第二存储单元220、端口C、端口D的数目仅仅是示意性的。本发明实施例对此不做限定,本领域技术人员可以根据实际情
况设定。
[0069] 根据本发明实施例,第一存储单元210以及第二存储单元220对应不同的地址空间。RCA中的算子单元可以通过访问不同的缓存地址从而访问不同的存储单元。
[0070] 可以理解,由于第二存储单元220的端口较多,可以将第二存储单元的结构设计的较小。第一存储单元210的端口较少,可以将第一存储单元的结构设计的较大一些。这样既
可以满足可重构系统中行计算单元之间的数据交互,也可以根据设计规模的需求调整缓存
结构占用的资源。
[0071] 本发明实施例通过使用寄存器来构建支持多端口同时读写的缓存结构,以满足可重构计算电路同时多端口高效读写的需求。在本发明实施例中,将存储器分为第二存储单
元和多个第一存储单元,通过第一存储单元实现各个行计算单元组内的数据交互,通过第
二存储单元实现各个行计算单元组间的数据交互,从而可以实现各个行计算单元之间的高
效数据交互。
[0072] 图3示意性示出了根据本发明实施例的可重构处理系统的示意图。
[0073] 如图3所示,可重构处理系统包括可重构单元阵列RCA310、多个第一存储单元320以及第二存储单元330。
[0074] 根据本发明实施例,可重构单元阵列RCA 310可以由多个行计算单元(Row Calculated Unit,RCU)组成,每个行计算单元可以包括多个算子单元,每个算子单元能够
实现相应的运算功能。
[0075] 在本发明实施例中,可以将RCA分为多个行计算单元组,每个行计算单元组包括多个行计算单元。例如,一个行计算单元组可以实现相对独立的计算任务,其组内的各个行计
算单元之间的数据交互较多,而与组外的行计算单元交互较少。
[0076] 多个第一存储单元320,多个第一存储单元中的每个第一存储单元与多个行计算单元组中的每个行计算单元组一一对应连接。
[0077] 例如,可重构单元阵列RCA可以包括16个行计算单元RCU,16个RCU可以构成多个行计算单元组。例如,RCU1~RCU4可以构成第一行计算单元组,RCU5~RCU8可以构成第二行计
算单元组,RCU9~RCU12可以构成第三行计算单元组,RCU13~RCU16可以构成第四行计算单
元组。
[0078] 本发明实施例的每个第一存储单元320对应连接一个行计算单元组,用于存储对应的行计算单元组内的各个行计算单元之间交互的数据。例如,第一存储单元320对应连接
的行计算单元组内的各行计算单元可以将数据存入第一存储单元320,也可以从第一存储
单元320中提取数据,从而实现组内各行计算单元之间的数据交互。
[0079] 根据本发明实施例,第一存储单元320可以包括多个第一端口,多个第一端口中的每个第一端口与第一存储单元对应的行计算单元组中的每个行计算单元一一对应连接。
[0080] 例如,第一存储单元320可以包括4个第一端口(端口A1~端口A4),端口A1可以与RCU1对应连接,端口A2可以与RCU2对应连接,端口A3可以与RCU3对应连接,端口A4可以与
RCU4对应连接。在本发明实施例中,RCU可以通过其对应的端口访问第一存储单元以实现对
第一存储单元的数据读写。
[0081] 本发明实施例的第一存储单元320通过多个第一端口支持多端口同时读写,从而满足了组内各个行计算单元间数据交互的需求,提高了数据交互的效率,进而提高了可重
构处理系统的处理速度。
[0082] 根据本发明实施例,第一存储单元320还可以包括第二端口,该第二端口用于与外接存储设备连接。
[0083] 例如,第一存储单元320包括第二端口(端口B1),端口B1可以与外接设备连接。端口B1例如可以是系统总线端口,用于与RCA外部的设备进行数据交互。
[0084] 根据本发明实施例,第一存储单元320例如可以由寄存器构成。例如,可以通过寄存器来构建支持多端口同时读写的缓存结构。因此,该缓存结构满足多端口同时访问,各个
行计算单元访问第一存储单元320时不需要额外的等待。本发明实施例能够满足可重构计
算电路同时多端口高效读写的需求,提高了行计算单元间的数据交互效率。
[0085] 或者,第一存储单元320也可以由两端口存储单元构成。其中,两端口存储单元的一端口与两个行计算单元中的第一行计算单元连接,两端口存储单元的另一端口时分复用
地与外接设备和两个行计算单元中的第二行计算单元连接。由两端口存储单元构成的第一
存储单元320,优选地适用于具有两个行计算单元的行计算单元组。
[0086] 例如,当第一存储单元为两端口的存储单元构成时,可以与具有两个行计算单元的行计算单元组连接,实现两个RCU之间的数据交互。例如,系统总线和可以和行计算单元
组的其中一个RCU共享第一存储单元的一个端口,这种情况下,可以通过第一存储单元端口
的时分复用来实现系统总线和一个RCU共享一个端口。
[0087] 第二存储单元330,与多个行计算单元组中的每个行计算单元组中的每个行计算单元连接。
[0088] 本发明实施例的第二存储单元330与每个行计算单元RCU分别连接。第二存储单元330用于存储不同行计算单元组间的各个行计算单元之间交互的数据。
[0089] 例如,第二存储单元330可以与RCA中的各个行计算单元RCU连接,每个RCU均可以将数据存入第二存储单元330,也可以从第二存储单元330中读取数据。例如,当不属于同一
行计算单元组的两个行计算单元需要进行数据交互时,可以将交互数据写入第二存储单
元,进而通过第二存储单元330实现数据交互。
[0090] 根据本发明实施例,第二存储单元330可以包括多个第三端口,分别与多个行计算单元组中的每个行计算单元组中的每个行计算单元一一对应连接。
[0091] 例如,第二存储单元330可以包括16个第三端口(端口C1~端口C16),端口C1可以与RCU1对应连接,端口C2可以与RCU2对应连接,……,端口C16可以与RCU16对应连接。
[0092] 在本发明实施例中,RCU可以通过其对应的端口访问第二存储单元。例如,当RCU需要与组外的其他RCU进行数据交互时,可以将需要交互的数据存储于第二存储单元。
[0093] 本发明实施例的第二存储单元330通过多个第三端口支持多端口同时读写,从而满足了组间各个行计算单元间数据交互的需求,提高了数据交互的效率,进而提高了可重
构处理系统的处理速度。
[0094] 根据本发明实施例,第二存储单元330还可以包括第四端口,该第四端口用于与外接存储设备连接。
[0095] 例如,第二存储单元330包括第四端口(端口D1),端口D1可以与外接设备连接。端口D1例如可以是系统总线端口,用于与RCA外部进行数据交互。
[0096] 根据本发明实施例,第二存储单元330例如可以由寄存器构成。例如,可以通过寄存器来构建支持多端口同时读写的缓存结构。因此,该缓存结构能够满足多端口同时访问,
各个行计算单元访问第二存储单元330时不需要额外的等待。本发明实施例能够满足可重
构计算电路同时多端口高效读写的需求,提高了行计算单元间的数据交互效率。
[0097] 根据本发明实施例,第一存储单元320以及第二存储单元330对应不同的地址空间。RCA中的算子单元可以通过访问不同的缓存地址从而访问不同的存储单元。
[0098] 应该理解,图3中的行计算单元RCU、行计算单元组、第一存储单元320、第二存储单元330、端口A、端口B、端口C、端口D的数目仅仅是示意性的。本发明实施例对此不做限定,本
领域技术人员可以根据实际情况设定。
[0099] 本发明实施例通过使用寄存器来构建支持多端口同时读写的缓存结构,以满足可重构计算电路同时多端口高效读写的需求。在本发明实施例中,将存储器分为多个第一存
储单元和第二存储单元,通过第一存储单元实现各个行计算单元组内的数据交互,通过第
二存储单元实现各个行计算单元组间的数据交互,从而可以实现各个行计算单元之间的数
据交互。
[0100] 本领域技术人员可以理解,本发明的各个实施例和/或权利要求中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本发明中。特别地,在
不脱离本发明精神和教导的情况下,本发明的各个实施例和/或权利要求中记载的特征可
以进行多种组合和/或结合。所有这些组合和/或结合均落入本发明的范围。
[0101] 尽管已经参照本发明的特定示例性实施例示出并描述了本发明,但是本领域技术人员应该理解,在不背离所附权利要求及其等同物限定的本发明的精神和范围的情况下,
可以对本发明进行形式和细节上的多种改变。因此,本发明的范围不应该限于上述实施例,
而是应该不仅由所附权利要求来进行确定,还由所附权利要求的等同物来进行限定。