一种多控制器间多存储器共享并行数据读写系统及其写入、读取方法与流程

文档序号:13471972阅读:163来源:国知局
一种多控制器间多存储器共享并行数据读写系统及其写入、读取方法与流程

本发明涉及集成电路领域,尤其涉及一种多控制器间多存储器共享并行数据读写系统及其写入、读取方法。



背景技术:

随着科技的发展和社会的进步,集成电路设计得到了广泛应用,越来越多的电子设备进入了人们的日常生活,不仅给人们的日常生活带去了便利,同时也进一步促进了科技的创新与研发。在集成电路设计领域,数据读写是其中重要一项。

处理器往往具有超高的运算能力,可以在短时间内对数据进行快速计算处理。为了尽可能发挥处理器内部运算单元的运算能力,通常会配置与之耦合的ram作为内部存储器,提高数据访存效率。然而,对于多个处理器的数据读写架构而言,某一处理器需要对其他处理器对应的ram中的数据进行操作时,其往往通过axi总线来进行。由于总线在单位时间内为避免数据传输出现冲突,只允许一笔数据从该总线上通过,这就导致处理器与处理器之间在进行交互访问数据时,效率极其低下。同时,由于每一次读写访问都需通过总线来传输,加重了系统带宽消耗,也导致了功耗的增加。

此外,当处理器数量庞大时,如何对各个处理器发起的数据操作请求进行统一有效地管理,既保证提高处理器与处理器之间在进行交互访问数据时的效率,同时又使得各个处理器之间的数据访问不相冲突,解决数据读写系统硬件面积大、硬件成本高、功耗大等问题,是集成电路领域一个亟需解决的问题。



技术实现要素:

为此,需要提供一种多控制器间多存储器共享并行数据读写的技术方案,用以解决现有数据读写系统在进行处理器与处理器之间数据交互访问时,硬件面积大、硬件成本高、功耗大等问题。

为实现上述目的,发明人提供了一种多控制器间多存储器共享并行数据读写系统,所述系统包括多个处理器簇单元,所述处理器簇单元包括多个处理器单元、读数据采集单元、仲裁单元和多个存储单元;所述仲裁单元包括第一仲裁单元、第二仲裁单元和第三仲裁单元,所述地址分区单元包括第一地址分区单元和第二地址分区单元;每一存储单元对应一第三仲裁单元,所述第三仲裁单元与存储单元连接;每一处理器单元对应一第一地址分区单元,每一处理器簇单元对应一第二地址分区单元;所述第一地址分区单元与处理器单元连接,所述第二地址分区单元与第一仲裁单元连接;所述读数据采集单元与存储单元连接;

所述处理器单元用于发送数据操作请求至第一地址分区单元,所述数据操作请求包括写数据操作请求或读数据操作请求,所述写数据操作请求包括执行写数据操作的存储单元地址以及待写入的数据;所述读数据操作请求包括执行读数据操作的存储单元地址;

当需要执行数据操作请求的数据为外部处理器簇单元的数据时,所述第一地址分区单元用于将数据操作请求发送至该第一地址分区单元所在的处理器簇单元对应的第一仲裁单元;该第一地址分区单元所在的处理器簇单元对应的第一仲裁单元用于对其所接收的所有数据操作请求进行第一仲裁管理,并将通过第一仲裁管理的数据操作请求发送至第二地址分区单元,所述第二地址分区单元用于将数据操作请求发送至数据操作请求中的存储单元地址对应的存储单元所在的处理器簇单元的第二仲裁单元;所述第一仲裁管理具体为:在每个时钟周期内,仅选择满足第一预设条件的数据操作请求发送至第二地址分区单元;

所述数据操作请求中的存储单元地址对应的存储单元所在的处理器簇单元的第二仲裁单元用于对其所接收的所有数据操作请求进行第二仲裁管理,并将通过第二仲裁管理的数据操作请求发送至数据操作请求中存储单元地址的存储单元对应的第三仲裁单元;所述第二仲裁管理具体为:在每个时钟周期内,仅选择满足第二预设条件的数据操作请求送至数据操作请求中存储单元地址的存储单元对应的第三仲裁单元;

所述数据操作请求中存储单元地址的存储单元对应的第三仲裁单元用于对其所接收的所有数据操作请求进行第三仲裁管理,所述第三仲裁管理具体为:在每个时钟周期内,仅选择满足第三预设条件的数据操作请求进行对应的存储单元的数据操作;

所述读数据采集单元用于从所有存储单元执行读数据操作返回的数据中采集仅属于对应处理器单元发出的数据操作请求中的存储单元地址对应的存储单元返回的数据。

进一步地,第一仲裁单元执行第一仲裁管理、第二仲裁单元执行第二仲裁管理、第三仲裁单元执行第三仲裁管理,这些仲裁管理均基于数据操作请求的优先级排序,第一仲裁单元所选择的满足第一预设条件的数据操作请求为优先级排序最高的数据操作请求;第二仲裁单元所选择的满足第二预设条件的数据操作请求为优先级排序最高的数据操作请求;第三仲裁单元所选择的满足第三预设条件的数据操作请求为优先级排序最高的数据操作请求。

进一步地,所述数据操作请求的优先级排序包括固定优先级排序、轮询优先级排序以及权重优先级排序。

进一步地,所述存储单元为单口ram或双口ram。

进一步地,所述处理器单元为dsp处理器或硬件加速器。

发明人还提供了一种多控制器间多存储器共享并行数据写入方法,所述方法应用于多控制器间多存储器共享并行数据读写系统,所述系统包括多个处理器簇单元,所述处理器簇单元包括多个处理器单元、读数据采集单元、仲裁单元和多个存储单元;所述仲裁单元包括第一仲裁单元、第二仲裁单元和第三仲裁单元,所述地址分区单元包括第一地址分区单元和第二地址分区单元;每一存储单元对应一第三仲裁单元,所述第三仲裁单元与存储单元连接;每一处理器单元对应一第一地址分区单元,每一处理器簇单元对应一第二地址分区单元;所述第一地址分区单元与处理器单元连接,所述第二地址分区单元与第一仲裁单元连接;所述读数据采集单元与存储单元连接;所述写入方法包括以下步骤:

处理器单元发送写数据操作请求至第一地址分区单元,所述写数据操作请求包括执行写数据操作的存储单元地址以及待写入的数据;

当需要写入的数据为外部处理器簇单元的数据时,第一地址分区单元将写数据操作请求发送至该第一地址分区单元所在的处理器簇单元对应的第一仲裁单元;该地址分区单元所在的处理器簇单元对应的第一仲裁单元对其所接收的所有写数据操作请求进行第一仲裁管理,并将通过第一仲裁管理的写数据操作请求发送至第二地址分区单元,所述第二地址分区单元将写数据操作请求发送至写数据操作请求中的存储单元地址对应的存储单元所在的处理器簇单元的第二仲裁单元;所述第一仲裁管理具体为:在每个时钟周期内,仅选择满足第一预设条件的写数据操作请求发送至第二地址分区单元;

写数据操作请求中的存储单元地址对应的存储单元所在的处理器簇单元的第二仲裁单元对其所接收的所有写数据操作请求进行第二仲裁管理,并将通过第二仲裁管理的写数据操作请求发送至写数据操作请求中存储单元地址的存储单元对应的第三仲裁单元;所述第二仲裁管理具体为:在每个时钟周期内,仅选择满足第二预设条件的写数据操作请求送至写数据操作请求中存储单元地址的存储单元对应的第三仲裁单元;

写数据操作请求中存储单元地址的存储单元对应的第三仲裁单元对其所接收的所有写数据操作请求进行第三仲裁管理,所述第三仲裁管理具体为:在每个时钟周期内,仅选择满足第三预设条件的写数据操作请求进行对应的存储单元的写数据操作,将待写入的数据写入存储单元。

进一步地,第一仲裁单元执行第一仲裁管理、第二仲裁单元执行第二仲裁管理、第三仲裁单元执行第三仲裁管理,这些仲裁管理均基于数据操作请求的优先级排序,第一仲裁单元所选择的满足第一预设条件的数据操作请求为优先级排序最高的数据操作请求;第二仲裁单元所选择的满足第二预设条件的数据操作请求为优先级排序最高的数据操作请求;第三仲裁单元所选择的满足第三预设条件的数据操作请求为优先级排序最高的数据操作请求。

进一步地,所述数据操作请求的优先级排序包括固定优先级排序、轮询优先级排序以及权重优先级排序。

进一步地,所述存储单元为单口ram或双口ram。

进一步地,所述处理器单元为dsp处理器或硬件加速器。

发明人还提供了一种多控制器间多存储器共享并行数据读取方法,所述方法应用于多控制器间多存储器共享并行数据读写系统,所述方法应用于多控制器间多存储器共享并行数据读写系统,所述系统包括多个处理器簇单元,所述处理器簇单元包括多个处理器单元、读数据采集单元、仲裁单元和多个存储单元;所述仲裁单元包括第一仲裁单元、第二仲裁单元和第三仲裁单元,所述地址分区单元包括第一地址分区单元和第二地址分区单元;每一存储单元对应一第三仲裁单元,所述第三仲裁单元与存储单元连接;每一处理器单元对应一第一地址分区单元,每一处理器簇单元对应一第二地址分区单元;所述第一地址分区单元与处理器单元连接,所述第二地址分区单元与第一仲裁单元连接;所述读数据采集单元与存储单元连接;所述读取方法包括以下步骤:

处理器单元发送读数据操作请求至第一地址分区单元,所述读数据操作请求包括执行读数据操作的存储单元地址;

当需要读取的数据为外部处理器簇单元的数据时,第一地址分区单元将读数据操作请求发送至该第一地址分区单元所在的处理器簇单元对应的第一仲裁单元;该地址分区单元所在的处理器簇单元对应的第一仲裁单元对其所接收的所有读数据操作请求进行第一仲裁管理,并将通过第一仲裁管理的读数据操作请求发送至第二地址分区单元;第二地址分区单元将读数据操作请求发送至读数据操作请求中的存储单元地址对应的存储单元所在的处理器簇单元的第二仲裁单元;所述第一仲裁管理具体为:在每个时钟周期内,仅选择满足第一预设条件的读数据操作请求发送至第二地址分区单元;

读数据操作请求中的存储单元地址对应的存储单元所在的处理器簇单元的第二仲裁单元对其所接收的所有读数据操作请求进行第二仲裁管理,并将通过第二仲裁管理的读数据操作请求发送至读数据操作请求中存储单元地址的存储单元对应的第三仲裁单元;所述第二仲裁管理具体为:在每个时钟周期内,仅选择满足第二预设条件的读数据操作请求送至读数据操作请求中存储单元地址的存储单元对应的第三仲裁单元;

读数据操作请求中存储单元地址的存储单元对应的第三仲裁单元用于对其所接收的所有读数据操作请求进行第三仲裁管理,所述第三仲裁管理具体为:在每个时钟周期内,仅选择满足第三预设条件的读数据操作请求进行对应的存储单元的读数据操作;

读数据采集单元从所有存储单元执行读数据操作返回的数据中采集仅属于对应处理器单元发出的数据操作请求中的存储单元地址对应的存储单元返回的数据。

进一步地,第一仲裁单元执行第一仲裁管理、第二仲裁单元执行第二仲裁管理、第三仲裁单元执行第三仲裁管理,这些仲裁管理均基于数据操作请求的优先级排序,第一仲裁单元所选择的满足第一预设条件的数据操作请求为优先级排序最高的数据操作请求;第二仲裁单元所选择的满足第二预设条件的数据操作请求为优先级排序最高的数据操作请求;第三仲裁单元所选择的满足第三预设条件的数据操作请求为优先级排序最高的数据操作请求。

进一步地,所述数据操作请求的优先级排序包括固定优先级排序、轮询优先级排序以及权重优先级排序。

进一步地,所述存储单元为单口ram或双口ram。

进一步地,所述处理器单元为dsp处理器或硬件加速器。

上述技术方案所述的多控制器间多存储器共享并行数据读写系统及其写入、读取方法,所述系统包括多个处理器簇单元,所述处理器簇单元包括多个处理器单元、读数据采集单元、仲裁单元和多个存储单元;所述仲裁单元包括第一仲裁单元、第二仲裁单元和第三仲裁单元,所述地址分区单元包括第一地址分区单元和第二地址分区单元;每一存储单元对应一第三仲裁单元,所述第三仲裁单元与存储单元连接;每一处理器单元对应一第一地址分区单元,每一处理器簇单元对应一第二地址分区单元;所述第一地址分区单元与处理器单元连接,所述第二地址分区单元与第一仲裁单元连接;所述读数据采集单元与存储单元连接;

所述写入方法包括以下步骤:首先处理器单元发送写数据操作请求至第一地址分区单元,所述写数据操作请求包括执行写数据操作的存储单元地址以及待写入的数据;而后当需要写入的数据为外部处理器簇单元的数据时,第一地址分区单元将写数据操作请求发送至该第一地址分区单元所在的处理器簇单元对应的第一仲裁单元;该地址分区单元所在的处理器簇单元对应的第一仲裁单元对其所接收的所有写数据操作请求进行第一仲裁管理,并将通过第一仲裁管理的写数据操作请求发送至第二地址分区单元,所述第二地址分区单元将写数据操作请求发送至写数据操作请求中的存储单元地址对应的存储单元所在的处理器簇单元的第二仲裁单元;所述第一仲裁管理具体为:在每个时钟周期内,仅选择满足第一预设条件的写数据操作请求发送至第二地址分区单元;

而后写数据操作请求中的存储单元地址对应的存储单元所在的处理器簇单元的第二仲裁单元对其所接收的所有写数据操作请求进行第二仲裁管理,并将通过第二仲裁管理的写数据操作请求发送至写数据操作请求中存储单元地址的存储单元对应的第三仲裁单元;所述第二仲裁管理具体为:在每个时钟周期内,仅选择满足第二预设条件的写数据操作请求送至写数据操作请求中存储单元地址的存储单元对应的第三仲裁单元;

而后写数据操作请求中存储单元地址的存储单元对应的第三仲裁单元对其所接收的所有写数据操作请求进行第三仲裁管理,所述第三仲裁管理具体为:在每个时钟周期内,仅选择满足第三预设条件的写数据操作请求进行对应的存储单元的写数据操作,将待写入的数据写入存储单元。

所述读取方法包括以下步骤:首先处理器单元发送读数据操作请求至第一地址分区单元,所述读数据操作请求包括执行读数据操作的存储单元地址;当需要读取的数据为外部处理器簇单元的数据时,第一地址分区单元将读数据操作请求发送至该第一地址分区单元所在的处理器簇单元对应的第一仲裁单元;该地址分区单元所在的处理器簇单元对应的第一仲裁单元对其所接收的所有读数据操作请求进行第一仲裁管理,并将通过第一仲裁管理的读数据操作请求发送至第二地址分区单元;第二地址分区单元将读数据操作请求发送至读数据操作请求中的存储单元地址对应的存储单元所在的处理器簇单元的第二仲裁单元;所述第一仲裁管理具体为:在每个时钟周期内,仅选择满足第一预设条件的读数据操作请求发送至第二地址分区单元;

而后读数据操作请求中的存储单元地址对应的存储单元所在的处理器簇单元的第二仲裁单元对其所接收的所有读数据操作请求进行第二仲裁管理,并将通过第二仲裁管理的读数据操作请求发送至读数据操作请求中存储单元地址的存储单元对应的第三仲裁单元;所述第二仲裁管理具体为:在每个时钟周期内,仅选择满足第二预设条件的读数据操作请求送至读数据操作请求中存储单元地址的存储单元对应的第三仲裁单元;

而后读数据操作请求中存储单元地址的存储单元对应的第三仲裁单元用于对其所接收的所有读数据操作请求进行第三仲裁管理,所述第三仲裁管理具体为:在每个时钟周期内,仅选择满足第三预设条件的读数据操作请求进行对应的存储单元的读数据操作;读数据采集单元从所有存储单元执行读数据操作返回的数据中采集仅属于对应处理器单元发出的数据操作请求中的存储单元地址对应的存储单元返回的数据。

由于所述系统在进行读写操作时,当需要执行数据操作的数据为内部处理器簇单元的数据时,所述内部处理器簇单元即为发起数据操作请求的处理器单元所在的处理器簇单元,处理器单元会根据第一地址分区单元所分配的地址对内部处理器簇单元的存储单元进行直接访问,在读取数据或写入数据时,均无需通过外部axi总线来传输,大大提高了数据访问效率。而当需要执行数据操作的数据外部处理器簇单元的数据时,所述外部处理器簇单元即为发起数据操作请求的处理器单元所在的处理器簇单元之外的其他处理器簇单元,第一地址分区单元会收集所有发送至其的数据操作请求,并将所收集的所有数据操作请求发送至第一仲裁单元,而后将通过第一仲裁管理的数据操作请求发送至第二地址分区单元,第二地址分区单元再将该数据操作请求发送至对应的外部处理器簇单元的第二仲裁单元,进而进入后续步骤后传输至数据操作请求中的存储地址对应的存储单元,完成数据读写操作。简言之,当某一处理器簇单元的处理单元对另一处理器簇单元发起读写访问时,经过内部处理器簇单元的第一仲裁单元、外部处理器簇单元的第二仲裁单元和第三仲裁单元共三级仲裁管理,仅选择满足预设条件的数据操作请求进行数据操作,因而对不同的存储单元读写访问可以同时进行,且可以保证互不冲突,从而大大提高了数据读写访问效率,在集成电路领域具有广阔的市场前景。

附图说明

图1为本发明一具体实施方式涉及的多控制器间多存储器共享并行数据读写系统的示意图;

图2为本发明一具体实施方式涉及的多控制器间多存储器共享并行数据读写系统的处理器簇单元的示意图;

图3为本发明一具体实施方式涉及的多控制器间多存储器共享并行数据写入方法的流程图;

图4为本发明一具体实施方式涉及的多控制器间多存储器共享并行数据读取方法的流程图。

附图标记说明:

101、处理器单元;

102、存储单元;

103、第三仲裁单元;

104、第一地址分区单元;

105、读数据采集单元;

106、第二仲裁单元;

107、第一仲裁单元;

108、第二地址分区单元。

具体实施方式

为详细说明技术方案的技术内容、构造特征、所实现目的及效果,以下结合具体实施例并配合附图详予说明。

请参阅图1,为本发明一具体实施方式涉及的多控制器间多存储器共享并行数据读写系统的示意图。所述系统包括多个处理器簇单元。每个“处理器簇单元”包括一个或者多个数字信号处理器(digitalsignalprocessor,简称dsp)。每个处理器簇单元与一个“第一仲裁单元”和一个“第二仲裁单元”直接连接。所有的第一仲裁单元、所有的第二仲裁单元、与其之间的连线组成一个“外部数据仲裁网络”,用于在处理器簇单元之间传输数据和操作请求。在这个外部数据仲裁网络中,每一个第一仲裁单元,都有一根“双向连线”同时连接所有非自己处理器簇单元直接连接的第二仲裁单元。数据可以通过该双向连线从第一仲裁单元传输到第二仲裁单元,或者从第二仲裁单元传输回第一仲裁单元。

图1中包括处理器簇单元a,处理器簇单元b,处理器簇单元c,和处理器簇单元d。处理器簇单元a与第一仲裁单元a和第二仲裁单元a相连接;处理器簇单元b与第一仲裁单元b和第二仲裁单元b相连接;处理器簇单元c与第一仲裁单元c和第二仲裁单元c相连接;处理器簇单元d与第一仲裁单元d和第二仲裁单元d相连接。如上述的外部数据仲裁网络所描述,第一仲裁单元a与第二仲裁单元b、第二仲裁单元c、和第二仲裁单元d通过一条连线连接;第一仲裁单元b与第二仲裁单元a、第二仲裁单元c、和第二仲裁单元d通过一条连线连接;第一仲裁单元c与第二仲裁单元a、第二仲裁单元b、和第二仲裁单元d通过一条连线连接;第一仲裁单元d与第二仲裁单元a、第二仲裁单元b、和第二仲裁单元c通过一条连线连接。

当处理器簇单元a试图传输数据或者操作请求给处理器簇单元b时,处理器簇单元a可以先将数据或操作请求传输给第一仲裁单元a,第一仲裁单元a再通过连接第一仲裁单元a的双向连线,同时传输给与之相连的第二仲裁单元b,c,d。第二仲裁单元b,c,d通过检阅接收到的数据或者操作请求,来判断其是否该数据或者操作请求的接收者。如果不是的话,这些第二仲裁单元(第二仲裁单元c,d)将忽略该数据或者操作请求。如果是的话,该第二仲裁单元b将该数据或者操作请求传输给与自己直接相连的处理器簇单元b作进一步的处理。

当处理器簇单元b需要对从处理器簇单元a收到的数据或者操作请求提供回复数据时,处理器簇单元b先将回复数据传输给第二仲裁单元b。第二仲裁单元b再利用之前收到处理器簇单元a发出的数据或者操作请求的那根双向连线,将该回复数据传输给第一仲裁单元a。第一仲裁单元a再将该回复数据传输给与自己直接相连的处理器簇单元a作进一步的处理。因此,通过这个外部数据仲裁网络,每个处理器簇单元都可以与系统中的任意一个其他处理器簇单元相连接并进行双向的数据交换。

请参阅图2,为本发明一具体实施方式涉及的多控制器间多存储器共享并行数据读写系统的一个处理器簇单元的示意图。所述处理器簇单元包括多个处理器单元101和多个存储单元102。每一处理器单元101一一对应一个“第一地址分区单元”104和一个“读数据采集单元”105,即一个处理器单元101和一个与之对应的第一地址分区单元104连接,也和一个与之对应的读数据采集单元105连接。每一存储单元102一一对应一个“第三仲裁单元”103,即一个存储单元102和与之相对应的一个第三仲裁单元103连接。

如图2所示,第一地址分区单元104、第三仲裁单元103、与之间的连线组成一个“内部数据仲裁网络”,用于在处理器簇单元内部传输数据操作请求。在这个内部数据仲裁网络中,所有的第一地址分区单元104与所有的第三仲裁单元103之间都有一一对应的独立连线相连接。就是说,每根独立连线只连接一个第一地址分区单元104与一个第三仲裁单元103;而每个第一地址分区单元104,都有与第三仲裁单元103数量相同的独立连线,来一一连接所有的第三仲裁单元103。通过这个内部数据仲裁网络,在处理器簇单元内部的任意一个处理器单元101,都可以将数据操作请求,传输至处理器簇单元内部的任意一个存储单元102。

如图2所示,读数据采集单元105与连接存储单元102的连线,组成一个“内部数据读取网络”,用于在处理器簇单元内部传输从处理器单元读取出的数据(“读取数据”)。在这个内部数据读取网络中,每一个存储单元102,都有一根连线同时连接所有的读数据采集单元105。就是说,储存在一个存储单元102中的数据,可以通过连接该存储单元102的连线,同时传输给所有的读数据采集单元105。通过这个内部数据读取网络,在处理器簇单元内部的任意一个存储单元102存储的数据,都可以传输给处理器簇单元内部的任意一个处理器单元101。

在本实施方式中,图2中的每个处理器单元101都可为dsp处理器或硬件加速器。在其他实施例中,处理器单元101还可以为其他具有存储器访问功能的处理器。当一个处理器单元101需要对某个存储单元102进行数据读取或写入的操作时,它可以发送一个“数据操作请求”到上述的内部数据仲裁网络。所述“数据操作请求”包括“写数据操作请求”或“读数据操作请求”。所述“写数据操作请求”包括要将数据写入的“存储单元地址”以及“待写入的数据”,表明处理器单元101试图将待写入的数据,根据存储单元地址写入到一个或者多个存储单元102中。所述“读数据操作请求”包括读取数据所在的存储单元地址,表明处理器单元101试图将在存储单元地址内的数据,从一个或者多个存储单元102中读取出来。无论数据操作请求是写数据操作请求还是读数据操作请求,处理器单元101都先将该数据操作请求发送至与之对应的第一地址分区单元104。

所述地址分区单元104根据数据操作请求中的存储单元地址,通过内部数据仲裁网络,将该数据操作请求发送至某个特定的第三仲裁单元103。所述特定的第三仲裁单元103为与数据操作请求相关的存储单元102相对应的第三仲裁单元103。假设处理器单元a要发送一个与存储单元b相关的数据操作请求,该处理器单元a可以先将该数据操作请求发送给第一地址分区单元a。因为与存储单元b相对应的是第三仲裁单元b,第一地址分区单元a再根据数据操作请求中的存储单元地址,将该数据操作请求通过与第三仲裁单元b连接的独立连线,发送给第三仲裁单元b。

图2中的每个第三仲裁单元103用于接收一个或者多个第一地址分区单元104发送来的数据操作请求,并对数据操作请求进行“仲裁管理”。所述仲裁管理具体为:在每个时钟周期内,仅选择满足预设条件的数据操作请求,并对存储单元102作相应的数据操作。具体来说,一个第三仲裁单元103可以同时接收到多个第一地址分区单元104发送来的多个数据操作请求。该第三仲裁单元103通过仲裁管理,来安排如何处理这多个数据操作请求。

当数据操作请求为写数据操作请求时,第三仲裁单元103可以根据数据操作请求中的存储单元地址以及待写入的数据来进行数据存储操作。当数据操作请求为读数据操作请求时,第三仲裁单元103可以根据数据操作请求中的存储单元地址,从存储单元102中读取数据,再将读取的数据通过上述的内部数据读取网络传输给处理器单元101。具体做法是,读取的数据通过与存储单元102连接的连线,同时传输给所有的读数据采集单元105。就是说,通过这根连线,每个读数据采集单元105同时(或者几乎同时)收到了从一个存储单元102传输来的读取数据。

每个读数据采集单元105用于从所有存储单元102执行读数据操作返回的读取数据中,仅采集对应存储单元102的返回数据。所述对应的存储单元102为某个处理器单元101发出的数据操作请求中的存储单元地址对应的存储单元102。假设处理器单元a试图发送一个与存储单元b相关的读数据操作请求,第三仲裁单元b将从存储单元b读取的数据,通过连线返回给所有的读数据采集单元105。当对应处理器单元a的读数据采集单元a发现该返回数据对应的是处理器单元a时,该读数据采集单元a会采集并将该返回数据传输给处理器单元a。对应其他处理器单元101的读数据采集单元105发现该返回数据不对应其连接的处理器单元101时,这些读数据采集单元105就不会采集并忽略该返回数据。

图2的处理器簇单元可以通过第一仲裁单元107和第二仲裁单元106,与外部处理器簇单元进行数据交换。图2中的第一仲裁单元107即图1的第一仲裁单元;图2的第二仲裁单元106即图1的第二仲裁单元。另外,图2的第一仲裁单元107与一个第二地址分区单元108连接。图2的第二仲裁单元106与一个第一地址分区单元104d和一个读数据采集单元105d相连接。

图2中的第一地址分区单元104d,通过多条相应的独立连线,与每个第三仲裁单元103相连接。当第二仲裁单元106试图将数据和请求传输给某个第三仲裁单元103(比如第三仲裁单元103b)时,它可以通过第一地址分区单元104d,利用一条相应的独立连线直接将该数据和请求传输给该第三仲裁单元103。因此,第二仲裁单元106可通过第一地址分区单元104d来接触图2处理器簇单元的内部数据仲裁网络,并可将从外部处理器簇单元接收到的数据和请求,传输给第三仲裁单元103以及存储单元102。

图2中的读数据采集单元105d连接在每条与存储单元102相连接的连线上。这样,从一个存储单元102传输出的数据,可以通过与该存储单元102相连的连线,同时传输给所有的读数据采集单元105,包括读数据采集单元105d。因此,第二仲裁单元106可通过读数据采集单元105d来接触图2处理器簇单元的内部数据读取网络,并可将在本处理器簇单元内部的存储单元102传输出的数据,传输给外部处理器簇单元。

图2的第一仲裁单元107通过一根连线,同时连接所有与处理器单元101相连接的读数据采集单元105(比如读数据采集单元105a、105b、105c)。这样,这样,第一仲裁单元107可以通过该连线,将一条数据和请求同时传输给这些读数据采集单元105。因此,第一仲裁单元107通过与读数据采集单元105的连接成为内部数据读取网络的一部分,并可将从外部处理器簇单元接收到的数据和请求,传输给在本处理器簇单元内部的处理器单元101。

同时,第一仲裁单元107通过多条相应的独立连线,与所有与处理器单元101相连接的第一地址分区单元104(比如第一地址分区单元104a、104b、104c)相连接。这样,这些第一地址分区单元104,可以通过这些独立连线,将各自的数据和请求传输给第一仲裁单元107。因此,第一仲裁单元107通过与第一地址分区单元104的连接成为内部数据仲裁网络的一部分,并可将在本处理器簇单元内部的处理器单元101发出的数据和请求,传输给外部处理器簇单元。

具体来说,当本处理器簇单元中的某个处理器单元101发出的数据操作请求与外部处理器簇单元相关(即数据操作请求中的存储单元地址对应的存储单元,不存在于本处理器簇单元中)时,本处理器簇单元可以通过与之对应的第一仲裁单元107来将该数据操作请求传输给外部处理器簇单元。在这种情况下,该处理器单元101(比如处理器单元101a)将数据操作请求传送至与之对应的第一地址分区单元104(比如第一地址分区单元a)。所述第一地址分区单元104发现数据操作请求中的存储单元不存在于本处理器簇单元时,会将该数据操作请求通过一个与第一仲裁单元107连接的独立连线,发送至第一仲裁单元107。第一仲裁单元107可以同时接收到多个第一地址分区单元104发送来的多个数据操作请求。

之后,第一仲裁单元107用于对其所接收的所有数据操作请求进行“第一仲裁管理”,并将通过了第一仲裁管理的数据操作请求,发送至与之对应的第二地址分区单元108。所述第一仲裁管理具体为:在每个时钟周期内,仅选择满足“第一预设条件”的数据操作请求发送至第二地址分区单元108。在某些实施方式中,第一仲裁单元107执行的第一仲裁管理基于收到的数据操作请求的优先级排序,而第一仲裁单元107所选择的满足第一预设条件的数据操作请求为优先级排序最高的数据操作请求。

所述第二地址分区单元108可用于将数据操作请求发送至外部处理器簇单元。具体来说,第二地址分区单元108与多个外部处理器簇单元的第二仲裁单元106都有一一相应的独立连线。根据数据操作请求中的存储单元地址,第二地址分区单元108可以判别该数据操作请求需要传输到哪个外部处理器簇单元,再通过与该外部处理器簇单元相连的一根独立连线,将该数据操作请求传输到那个外部处理器簇单元的第二仲裁单元106。

当一个处理器簇单元的第二仲裁单元106接收到从外部处理器簇单元的第二地址分区单元108传输来的多个数据操作请求时,该第二仲裁单元106进行“第二仲裁管理”,并将通过了第二仲裁管理的数据操作请求,发送至与之相对应的第一地址分区单元104d。第一地址分区单元104d再根据收到的数据操作请求中的存储单元地址,找到相关的存储单元102(比如,存储单元102c),并将数据操作请求传输到与该存储单元102相对应的第三仲裁单元103(比如,第三仲裁单元103c)。所述第二仲裁管理具体为:在每个时钟周期内,仅选择满足“第二预设条件”的数据操作请求送至数据操作请求中存储单元地址的存储单元对应的第三仲裁单元。在某些实施方式中,第二仲裁单元106执行的第二仲裁管理基于收到的数据操作请求的优先级排序,而第二仲裁单元106所选择的满足第二预设条件的数据操作请求为优先级排序最高的数据操作请求。

第三仲裁单元103对其从第一地址分区单元104接收到的所有数据操作请求(包括从本处理器簇单元传输来的和从外部处理器簇单元传输来的数据操作请求),进行“第三仲裁管理”。并按照通过了第三仲裁管理的数据操作请求,对相应的存储单元102进行数据读取或者写入的操作。所述第三仲裁管理具体为:在每个时钟周期内,仅选择满足“第三预设条件”的数据操作请求进行对应的存储单元的数据操作。在某些实施方式中,第三仲裁单元103执行的第三仲裁管理基于收到的数据操作请求的优先级排序,而第三仲裁单元103所选择的满足第三预设条件的数据操作请求为优先级排序最高的数据操作请求。

当外部处理器簇单元传输来的数据操作请求为读数据操作请求时,本处理器簇单元需要将其内部的某个存储单元102中的读取数据传输到外部处理器簇单元。具体来说,某个存储单元102可将读取数据通过一根连线,同时传输给所有的读数据采集单元105。在这种情况下,读取数据只与读数据采集单元105d有关,与读数据采集单元105a,105b,和105c无关。因此,读数据采集单元105d将读取数据传输给第二仲裁单元106。第二仲裁单元106再根据之前接收到与读取数据相关的数据操作请求的传播路线,将读取数据传播给外部处理器簇单元的第二地址分区单元108。

外部处理器簇单元的第二地址分区单元108将接收到读取数据再传到第一仲裁单元107。第一仲裁单元107再通过内部数据读取网络,将读取数据传输给发出数据操作请求的处理器单元101。

在使用多控制器间多存储器共享并行数据读写系统进行“数据读取数据操作”时,首先处理器单元发送读数据操作请求至第一地址分区单元,所述读数据操作请求包括执行读数据操作的存储单元地址;

当需要读取的数据为外部处理器簇单元的数据时,第一地址分区单元将读数据操作请求发送至该第一地址分区单元所在的处理器簇单元对应的第一仲裁单元;该地址分区单元所在的处理器簇单元对应的第一仲裁单元对其所接收的所有读数据操作请求进行第一仲裁管理,并将通过第一仲裁管理的读数据操作请求发送至第二地址分区单元;第二地址分区单元将读数据操作请求发送至读数据操作请求中的存储单元地址对应的存储单元所在的处理器簇单元的第二仲裁单元;所述第一仲裁管理具体为:在每个时钟周期内,仅选择满足第一预设条件的读数据操作请求发送至第二地址分区单元;

而后读数据操作请求中的存储单元地址对应的存储单元所在的处理器簇单元的第二仲裁单元对其所接收的所有读数据操作请求进行第二仲裁管理,并将通过第二仲裁管理的读数据操作请求发送至读数据操作请求中存储单元地址的存储单元对应的第三仲裁单元;所述第二仲裁管理具体为:在每个时钟周期内,仅选择满足第二预设条件的读数据操作请求送至读数据操作请求中存储单元地址的存储单元对应的第三仲裁单元;

而后读数据操作请求中存储单元地址的存储单元对应的第三仲裁单元用于对其所接收的所有读数据操作请求进行第三仲裁管理,所述第三仲裁管理具体为:在每个时钟周期内,仅选择满足第三预设条件的读数据操作请求进行对应的存储单元的读数据操作;

读数据采集单元从所有存储单元执行读数据操作返回的数据中采集仅属于对应处理器单元发出的数据操作请求中的存储单元地址对应的存储单元返回的数据。具体地,对于同一处理器簇单元内的处理器单元与存储单元进行交互时,发起数据操作请求的处理器单元所对应的读数据采集单元会从该处理器簇单元中的所有存储单元执行读数据操作返回的数据中,仅采集属于处理器单元发出的数据操作请求中的存储单元地址对应的存储单元返回的数据。而当发起数据操作请求的处理器单元与执行数据操作请求的存储单元位于不同的处理器簇单元内时,则从存储单元中读取的数据会沿着数据操作请求的发起方向原路返回,返回数据的过程无需经过仲裁管理。

在使用多控制器间多存储器共享并行数据读写系统进行“数据写入数据操作”时,首先处理器单元发送写数据操作请求至第一地址分区单元,所述写数据操作请求包括执行写数据操作的存储单元地址以及待写入的数据;而后当需要写入的数据为外部处理器簇单元的数据时,第一地址分区单元将写数据操作请求发送至该第一地址分区单元所在的处理器簇单元对应的第一仲裁单元;该地址分区单元所在的处理器簇单元对应的第一仲裁单元对其所接收的所有写数据操作请求进行第一仲裁管理,并将通过第一仲裁管理的写数据操作请求发送至第二地址分区单元,所述第二地址分区单元将写数据操作请求发送至写数据操作请求中的存储单元地址对应的存储单元所在的处理器簇单元的第二仲裁单元;所述第一仲裁管理具体为:在每个时钟周期内,仅选择满足第一预设条件的数据操作请求发送至第二地址分区单元;所述第一仲裁管理具体为:在每个时钟周期内,仅选择满足第一预设条件的写数据操作请求发送至第二地址分区单元;

而后写数据操作请求中的存储单元地址对应的存储单元所在的处理器簇单元的第二仲裁单元对其所接收的所有写数据操作请求进行第二仲裁管理,并将通过第二仲裁管理的写数据操作请求发送至写数据操作请求中存储单元地址的存储单元对应的第三仲裁单元;所述第二仲裁管理具体为:在每个时钟周期内,仅选择满足第二预设条件的写数据操作请求送至写数据操作请求中存储单元地址的存储单元对应的第三仲裁单元;

而后写数据操作请求中存储单元地址的存储单元对应的第三仲裁单元对其所接收的所有写数据操作请求进行第三仲裁管理,所述第三仲裁管理具体为:在每个时钟周期内,仅选择满足第三预设条件的写数据操作请求进行对应的存储单元的写数据操作,将待写入的数据写入存储单元。

在本实施方式中,第一仲裁单元执行第一仲裁管理、第二仲裁单元执行第二仲裁管理、第三仲裁单元执行第三仲裁管理,这些仲裁管理均基于数据操作请求的优先级排序,第一仲裁单元所选择的满足第一预设条件的数据操作请求为优先级排序最高的数据操作请求;第二仲裁单元所选择的满足第二预设条件的数据操作请求为优先级排序最高的数据操作请求;第三仲裁单元所选择的满足第三预设条件的数据操作请求为优先级排序最高的数据操作请求。优选的所述数据操作请求的优先级排序包括固定优先级排序、轮询优先级排序以及权重优先级排序。

以图2中的处理器簇单元与其他处理器簇单元进行读写数据交互为例,对本发明的系统做作一步说明。假设图2中的处理器簇单元为处理器簇单元a,另一处理器簇单元为处理器簇单元b,处理器簇单元a包括3个处理器单元(在其他实施例中,处理器单元的数量可以为任意个数),为了便于说明,将3个处理器单元分别标记为处理器单元a、处理器单元b、处理器单元c,它们对应的读数据采集单元分别为读数据采集单元a、读数据采集单元b、读数据采集单元c,对应的第一地址分区单元为第一地址分区单元a、第一地址分区单元b、第一地址分区单元c。其中,第一地址分区单元a对应于处理器单元a,处理器单元a对应于读数据采集模块a;第一地址分区单元b对应于处理器单元b,处理器单元b对应于读数据采集模块b,以此类推。

图2中的处理器簇单元a还存在着3个存储单元(在其他实施例中,存储单元的数量可以为任意个数),将3个存储单元标记为存储单元a、存储单元b、存储单元c,它们对应的第三仲裁单元分别为第三仲裁单元a、第三仲裁单元b、第三仲裁单元c。此外,处理器簇单元a还包括第一仲裁单元a、第二仲裁单元a以及第二地址分区单元a。第二仲裁单元a还与第一地址分区单元d、读数据采集模块d相连接,第一仲裁单元a与第二地址分区单元a连接。

同理,处理器簇单元b中所包括的模块与处理器簇模块a类似,为了便于说明,将处理器簇单元b中的3个处理器单元(在其他实施例中,处理器单元的数量可以为任意个数)分别标记为处理器单元h、处理器单元i、处理器单元j,它们对应的读数据采集单元分别为读数据采集单元h、读数据采集单元i、读数据采集单元j,对应的第一地址分区单元为第一地址分区单元h、第一地址分区单元i、第一地址分区单元j。其中,第一地址分区单元h对应于处理器单元h,处理器单元h对应于读数据采集模块h;第一地址分区单元i对应于处理器单元i,处理器单元i对应于读数据采集模块i,以此类推。

处理器簇单元b还存在着3个存储单元(在其他实施例中,存储单元的数量可以为任意个数),将3个存储单元标记为存储单元h、存储单元i、存储单元j,它们对应的第三仲裁单元分别为第三仲裁单元h、第三仲裁单元i、第三仲裁单元j。此外,处理器簇单元b还包括第一仲裁单元b、第二仲裁单元b以及第二地址分区单元b。第二仲裁单元b还与第一地址分区单元k、读数据采集模块k相连接,第一仲裁单元b与第二地址分区单元b连接。

下面以处理器簇单元中的处理器单元a向处理器簇单元b中的存储单元h写入数据为例,对本发明的写入方法作进一步说明。首先处理器单元a发起写数据操作请求,第一地址分区单元a将写数据操作请求发送至第一仲裁单元a,第一仲裁单元a对该写数据操作请求进行第一仲裁管理,若通过则将写数据操作请求发送至第二地址分区单元a。第二地址分区单元a接收该写数据操作请求后,会将写数据操作请求发送至处理器簇单元b中的第二仲裁单元b,所述写数据操作请求包括待写入的数据以及存储单元h的存储地址。而后第二仲裁单元b对该写数据操作请求进行第二仲裁管理,若通过则将该写数据操作请求发送至存储单元h对应的第三仲裁单元h,并进行第三仲裁管理,当通过第三仲裁管理后则可以将待写入的数据写入到存储单元h中。

同样,以处理器簇单元中的处理器单元a向处理器簇单元b中的存储单元h读取数据为例,对本发明的读取方法作进一步说明。首先处理器单元a发起读数据操作请求,第一地址分区单元a将读数据操作请求发送至第一仲裁单元a,第一仲裁单元a对该读数据操作请求进行第一仲裁管理,若通过则将读数据操作请求发送至第二地址分区单元a。第二地址分区单元a接收该读数据操作请求后,会将读数据操作请求发送至处理器簇单元b中的第二仲裁单元b,所述读数据操作请求包括存储单元h的存储地址。而后第二仲裁单元b对该读数据操作请求进行第二仲裁管理,若通过则将该读数据操作请求发送至存储单元h对应的第三仲裁单元h,并进行第三仲裁管理,当通过第三仲裁管理后,读数据采集单元a从所有存储单元返回的数据中仅选择存储单元h返回的进行采集。具体地,存储单元h中的数据依次经过第三仲裁单元h、第二仲裁单元b、第一仲裁单元a返回至处理器单元a,返回数据时需要协同仲裁单元进行相应的时序管理,由于第三仲裁单元直接进行存储单元访问,时序固定,可直接返回至第二仲裁单元,如图2所示。

以上为需要执行数据操作请求的数据为外部处理器簇单元的数据时的情况,即两个不同的处理器簇单元进行读写数据交互的情况。当需要执行数据操作请求的数据为内部处理器簇单元的数据时,以处理器簇单元a需要往处理器簇单元a中的存储单元b执行数据操作请为例,作进一步说明。处理器单元a需要向存储单元b中写入数据时,第一地址分区单元a将写数据操作请求发送至仲裁单元b,第三仲裁单元b进行仲裁管理,如果通过该写数据操作请求,则即可将待写入的数据写入到存储单元b中。当处理器单元a需要从存储单元b中读取数据时,第一地址分区单元a将读数据操作请求发送至第三仲裁单元b,第三仲裁单元进行仲裁管理,如果通过该读数据操作请求,则读数据采集单元a所有存储单元返回的数据中仅选择存储单元b返回的进行采集。

第一仲裁单元往往会出现收到来自不同第一地址分区单元发送的数据操作请求的情况,因而就需要对这些数据操作请求进行第一仲裁管理。例如第一仲裁单元a同时收到了来自第一地址分区单元a和第一地址分区单元b的写数据操作请求,因而需要对这两个数据操作请求进行第一仲裁管理,既选择一个满足预设条件的数据操作请求,发送至第二地址分区单元a。优选的,所述满足预设条件的数据操作请求为优先级排序最高的数据操作请求。进一步地,所述数据操作请求的优先级排序包括固定优先级排序、轮询优先级排序以及权重优先级排序。对于固定优先级排序而言,可以事先自定义不同处理器单元的数据操作请求的优先级顺序,例如处理器单元a的数据操作请求的优先级要高于处理器单元b的,则第一仲裁单元a会先选择第一地址分区单元a发送的数据操作请求,并将该数据操作请求发送至第二地址分区单元a。对于轮询优先级排序而言,即通过轮询的方式来选择不同处理器单元的数据操作请求,例如第一仲裁单元上一次进行第一仲裁管理后,所通过的数据操作请求为第一地址分区单元a发送的数据操作请求,则再次对第一地址分区单元a和第一地址分区单元b的数据操作请求进行第一仲裁管理时,可在当前时钟周期内,选择第一地址分区单元b的数据操作请求,将该数据操作请求发送至第二地址分区单元a。对于权重优先级排序而言,对于每个处理器单元均有对应的权重值,权重值为一数值(优选为正整数),用以标识处理器单元的优先级顺序。在第一仲裁单元的进行第一仲裁管理时,可以比较发出这些数据操作请求的处理器单元的权重值大小,仅选择当前权重值最大的处理器单元的数据操作请求,发送至第二地址分区单元。当仲裁管理结束后,可以对当前权重值最大的处理器单元的权重值进行调整,例如可以将该处理器单元的权重值减1。采用权重优先级排序可以使得第一仲裁管理更加合理,可以保证每个处理器单元发送的数据操作请求均可以被第一仲裁单元所选择,优化了仲裁管理机制。第二仲裁单元与第三仲裁单元的仲裁管理同理可得。

在本实施方式中,所述存储单元为单口ram或双口ram。当存储单元为单口ram时,第三仲裁单元每一次第三仲裁管理所选择的数据操作请求的数量为一个。当存储单元为双口ram时,第三仲裁单元每一次第三仲裁管理所选择的数据操作请求的数量为两个。

请参阅图3,以及发明人还提供了一种多控制器间多存储器共享并行数据写入方法,所述方法应用于多控制器间多存储器共享并行数据读写系统,所述系统包括多个处理器簇单元,所述处理器簇单元包括多个处理器单元、读数据采集单元、仲裁单元和多个存储单元;所述仲裁单元包括第一仲裁单元、第二仲裁单元和第三仲裁单元,所述地址分区单元包括第一地址分区单元和第二地址分区单元;每一存储单元对应一第三仲裁单元,所述第三仲裁单元与存储单元连接;每一处理器单元对应一第一地址分区单元,每一处理器簇单元对应一第二地址分区单元;所述第一地址分区单元与处理器单元连接,所述第二地址分区单元与第一仲裁单元连接;所述读数据采集单元与存储单元连接;所述写入方法包括以下步骤:

首先进入步骤s301处理器单元发送写数据操作请求至第一地址分区单元,所述写数据操作请求包括执行写数据操作的存储单元地址以及待写入的数据;

而后进入步骤s302当需要写入的数据为外部处理器簇单元的数据时,第一地址分区单元将写数据操作请求发送至该第一地址分区单元所在的处理器簇单元对应的第一仲裁单元;

而后进入步骤s303该地址分区单元所在的处理器簇单元对应的第一仲裁单元对其所接收的所有写数据操作请求进行第一仲裁管理,并将通过第一仲裁管理的写数据操作请求发送至第二地址分区单元;

而后进入步骤s304第二地址分区单元将写数据操作请求发送至写数据操作请求中的存储单元地址对应的存储单元所在的处理器簇单元的第二仲裁单元。所述第一仲裁管理具体为:在每个时钟周期内,仅选择满足第一预设条件的写数据操作请求发送至第二地址分区单元;

而后进入步骤s305写数据操作请求中的存储单元地址对应的存储单元所在的处理器簇单元的第二仲裁单元对其所接收的所有写数据操作请求进行第二仲裁管理,并将通过第二仲裁管理的写数据操作请求发送至写数据操作请求中存储单元地址的存储单元对应的第三仲裁单元。所述第二仲裁管理具体为:在每个时钟周期内,仅选择满足第二预设条件的写数据操作请求送至写数据操作请求中存储单元地址的存储单元对应的第三仲裁单元;

而后进入步骤s306写数据操作请求中存储单元地址的存储单元对应的第三仲裁单元对其所接收的所有写数据操作请求进行第三仲裁管理.所述第三仲裁管理具体为:在每个时钟周期内,仅选择满足第三预设条件的写数据操作请求进行对应的存储单元的写数据操作,将待写入的数据写入存储单元。

在本实施方式中,第一仲裁单元执行第一仲裁管理、第二仲裁单元执行第二仲裁管理、第三仲裁单元执行第三仲裁管理,这些仲裁管理均基于数据操作请求的优先级排序,第一仲裁单元所选择的满足第一预设条件的数据操作请求为优先级排序最高的数据操作请求;第二仲裁单元所选择的满足第二预设条件的数据操作请求为优先级排序最高的数据操作请求;第三仲裁单元所选择的满足第三预设条件的数据操作请求为优先级排序最高的数据操作请求。优选的,所述写数据操作请求的优先级排序包括固定优先级排序、轮询优先级排序以及权重优先级排序。

在本实施方式中,所述存储单元为单口ram或双口ram。当存储单元为单口ram时,第三仲裁单元每一次第三仲裁管理所选择的数据操作请求的数量为一个。当存储单元为双口ram时,第三仲裁单元每一次第三仲裁管理所选择的数据操作请求的数量为两个。

在本实施方式中,所述处理器单元为dsp处理器或硬件加速器。在其他实施例中,所述处理器单元还可以为其他具有存储器访问功能的处理器。

请参阅图4,发明人还提供了一种多控制器间多存储器共享并行数据读取方法,所述方法应用于多控制器间多存储器共享并行数据读写系统,所述方法应用于多控制器间多存储器共享并行数据读写系统,所述系统包括多个处理器簇单元,所述处理器簇单元包括多个处理器单元、读数据采集单元、仲裁单元和多个存储单元;所述仲裁单元包括第一仲裁单元、第二仲裁单元和第三仲裁单元,所述地址分区单元包括第一地址分区单元和第二地址分区单元;每一存储单元对应一第三仲裁单元,所述第三仲裁单元与存储单元连接;每一处理器单元对应一第一地址分区单元,每一处理器簇单元对应一第二地址分区单元;所述第一地址分区单元与处理器单元连接,所述第二地址分区单元与第一仲裁单元连接;所述读数据采集单元与存储单元连接;所述读取方法包括以下步骤:

首先进入步骤s401处理器单元发送读数据操作请求至第一地址分区单元,所述读数据操作请求包括执行读数据操作的存储单元地址;

而后进入步骤s402当需要读取的数据为外部处理器簇单元的数据时,第一地址分区单元将读数据操作请求发送至该第一地址分区单元所在的处理器簇单元对应的第一仲裁单元;

而后进入步骤s403该地址分区单元所在的处理器簇单元对应的第一仲裁单元对其所接收的所有读数据操作请求进行第一仲裁管理,并将通过第一仲裁管理的读数据操作请求发送至第二地址分区单元;

而后进入步骤s404第二地址分区单元将读数据操作请求发送至读数据操作请求中的存储单元地址对应的存储单元所在的处理器簇单元的第二仲裁单元;所述第一仲裁管理具体为:在每个时钟周期内,仅选择满足第一预设条件的读数据操作请求发送至第二地址分区单元;

而后进入步骤s405读数据操作请求中的存储单元地址对应的存储单元所在的处理器簇单元的第二仲裁单元对其所接收的所有读数据操作请求进行第二仲裁管理,并将通过第二仲裁管理的读数据操作请求发送至读数据操作请求中存储单元地址的存储单元对应的第三仲裁单元;所述第二仲裁管理具体为:在每个时钟周期内,仅选择满足第二预设条件的读数据操作请求送至读数据操作请求中存储单元地址的存储单元对应的第三仲裁单元;

而后进入步骤s406读数据操作请求中存储单元地址的存储单元对应的第三仲裁单元用于对其所接收的所有读数据操作请求进行第三仲裁管理,所述第三仲裁管理具体为:在每个时钟周期内,仅选择满足第三预设条件的读数据操作请求进行对应的存储单元的读数据操作;

而后进入步骤s407读数据采集单元从所有存储单元执行读数据操作返回的数据中采集仅属于对应处理器单元发出的数据操作请求中的存储单元地址对应的存储单元返回的数据。

在本实施方式中,第一仲裁单元执行第一仲裁管理、第二仲裁单元执行第二仲裁管理、第三仲裁单元执行第三仲裁管理,这些仲裁管理均基于数据操作请求的优先级排序,第一仲裁单元所选择的满足第一预设条件的数据操作请求为优先级排序最高的数据操作请求;第二仲裁单元所选择的满足第二预设条件的数据操作请求为优先级排序最高的数据操作请求;第三仲裁单元所选择的满足第三预设条件的数据操作请求为优先级排序最高的数据操作请求。优选的所述读数据操作请求的优先级排序包括固定优先级排序、轮询优先级排序以及权重优先级排序。

在本实施方式中,所述存储单元为单口ram或双口ram。当存储单元为单口ram时,第三仲裁单元每一次第三仲裁管理所选择的数据操作请求的数量为一个。当存储单元为双口ram时,第三仲裁单元每一次第三仲裁管理所选择的数据操作请求的数量为两个。

在本实施方式中,所述处理器单元为dsp处理器或硬件加速器。在其他实施例中,所述处理器单元还可以为其他具有存储器访问功能的处理器。

上述技术方案所述的多控制器间多存储器共享并行数据读写系统及其写入、读取方法,由于所述系统在进行读写操作时,当需要执行数据操作的数据为内部处理器簇单元的数据时,所述内部处理器簇单元即为发起数据操作请求的处理器单元所在的处理器簇单元,处理器单元会根据第一地址分区单元所分配的地址对内部处理器簇单元的存储单元进行直接访问,在读取数据或写入数据时,均无需通过外部axi总线来传输,大大提高了数据访问效率。而当需要执行数据操作的数据外部处理器簇单元的数据时,所述外部处理器簇单元即为发起数据操作请求的处理器单元所在的处理器簇单元之外的其他处理器簇单元,第一地址分区单元会收集所有发送至其的数据操作请求,并将所收集的所有数据操作请求发送至第一仲裁单元,而后将通过第一仲裁管理的数据操作请求发送至第二地址分区单元,第二地址分区单元再将该数据操作请求发送至对应的外部处理器簇单元的第二仲裁单元,进而进入后续步骤后传输至数据操作请求中的存储地址对应的存储单元,完成数据读写操作。简言之,当某一处理器簇单元的处理单元对另一处理器簇单元发起读写访问时,经过内部处理器簇单元的第一仲裁单元、外部处理器簇单元的第二仲裁单元和第三仲裁单元共三级仲裁管理,仅选择满足预设条件的数据操作请求进行数据操作,因而对不同的存储单元读写访问可以同时进行,且可以保证互不冲突,从而大大提高了数据读写访问效率,在集成电路领域具有广阔的市场前景。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括……”或“包含……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的要素。此外,在本文中,“大于”、“小于”、“超过”等理解为不包括本数;“以上”、“以下”、“以内”等理解为包括本数。

本领域内的技术人员应明白,上述各实施例可提供为方法、装置、或计算机程序产品。这些实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。上述各实施例涉及的方法中的全部或部分步骤可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机设备可读取的存储介质中,用于执行上述各实施例方法所述的全部或部分步骤。所述计算机设备,包括但不限于:个人计算机、服务器、通用计算机、专用计算机、网络设备、嵌入式设备、可编程设备、智能移动终端、智能家居设备、穿戴式智能设备、车载智能设备等;所述的存储介质,包括但不限于:ram、磁碟、磁带、光盘、闪存、u盘、移动硬盘、存储卡、记忆棒、网络服务器存储、网络云存储等。

上述各实施例是参照根据实施例所述的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到计算机设备的处理器以产生一个机器,使得通过计算机设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机设备以特定方式工作的计算机设备可读存储器中,使得存储在该计算机设备可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机设备上,使得在计算机设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已经对上述各实施例进行了描述,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改,所以以上所述仅为本发明的实施例,并非因此限制本发明的专利保护范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1