CN115328828B - 数据存储系统及其数据存储结构的数据寻址和返回方法 - Google Patents
数据存储系统及其数据存储结构的数据寻址和返回方法 Download PDFInfo
- Publication number
- CN115328828B CN115328828B CN202211264127.5A CN202211264127A CN115328828B CN 115328828 B CN115328828 B CN 115328828B CN 202211264127 A CN202211264127 A CN 202211264127A CN 115328828 B CN115328828 B CN 115328828B
- Authority
- CN
- China
- Prior art keywords
- address
- mesh
- data
- addressing
- unit
- 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
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1647—Handling requests for interconnection or transfer for access to memory bus based on arbitration with interleaved bank access
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0207—Addressing or allocation; Relocation with multidimensional access, e.g. row/column, matrix
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1684—Details of memory controller using multiple buses
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Multi Processors (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例公开了一种数据存储系统及其数据存储结构的数据寻址和返回方法,该数据存储结构为mesh与交叉开关的组合结构,包括多个mesh单元,每个mesh单元包括:多个路由器、多个仲裁器、一个交叉开关结构、一个mesh数据交换节点和多个存储单元;该方法包括:由计算单元根据原始地址计算目的地址所在位置,并根据目的地址所在位置创建寻址地址列表;由路由器、仲裁器、交叉开关结构和mesh数据交换节点根据寻址地址列表进行数据寻址;将目标数据按照数据寻址的逆路线返回。该实施例方案使得mesh网络与交叉开关组合结构连接的任意一个计算单元对连接的任意一个存储单元进行访问,实现了目标数据的顺利返回。
Description
技术领域
本申请实施例涉及数据存取技术,尤指一种数据存储系统及其数据存储结构的数据寻址和返回方法。
背景技术
随着大数据、物联网、人工智能等应用的快速兴起,数据以爆发式的速度快速增长。海量数据的高效存储、迁移与处理成为当前电子信息领域的重大挑战之一。存算一体芯片技术的提出,旨在把传统以计算为中心的架构转变为以数据为中心的架构,其直接利用存储器进行数据处理,从而把数据存储与计算融合在同一个芯片当中。在存算一体芯片设计中,交叉开关是比较常用的结构。电路集成度呈现越来越高的趋势,性能的要求越来越高,交叉开关的规模越来越大,当单个交叉开关规模过大物理后端难以实现时,会使用mesh(网格)网络与交叉开关组合的结构。
发明内容
本申请提供了一种数据存储系统及其数据存储结构的数据寻址和返回方法,能够使得mesh网络与交叉开关组合结构连接的任意一个计算单元对连接的任意一个存储单元进行访问,并且实现了目标数据顺利返回。
本申请提供了一种数据存储结构的数据寻址和返回方法,所述数据存储结构为mesh与交叉开关的组合结构,所述组合结构包括多个网格mesh单元,每个mesh单元包括:多个路由器、多个仲裁器、多个存储单元、一个交叉开关结构和一个mesh数据交换节点;每个路由器连接一个计算单元,每个路由器连接一个仲裁器,并且每个路由器均与所述mesh数据交换节点相连;每个仲裁器均与所述mesh数据交换节点和所述交叉开关结构相连,所述交叉开关结构与多个存储单元相连,每相邻的两个mesh单元通过所述mesh数据交换节点相连;所述数据寻址和返回方法包括:
由所述计算单元根据所述计算单元产生的原始地址计算目的地址所在位置,并由所述计算单元根据所述目的地址所在位置创建寻址地址列表;
由所述路由器、所述仲裁器、所述交叉开关结构和所述mesh数据交换节点根据所述寻址地址列表进行数据寻址;
将数据寻址后获得的目标数据按照数据寻址的逆路线进行返回。
该实施例方案的有益效果包括:使得mesh网络与交叉开关组合结构连接的任意一个计算单元对连接的任意一个存储单元进行访问,并且通过目标数据原路返回策略实现了目标数据的顺利返回。
本申请实施例还提供了一种数据存储系统,可以包括数据存储结构,所述数据存储结构包括多个网格mesh单元,每个mesh单元包括:多个路由器、多个仲裁器、多个存储单元、一个交叉开关结构和一个mesh数据交换节点;每个路由器连接一个计算单元,每个路由器连接一个仲裁器,并且每个路由器均与所述mesh数据交换节点相连;每个仲裁器均与所述mesh数据交换节点和所述交叉开关结构相连,所述交叉开关结构与多个存储单元相连,每相邻的两个mesh单元通过所述mesh数据交换节点相连;当所述数据存储结构执行数据读取操作时,实现所述的数据寻址和返回方法。
本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的其他优点可通过在说明书以及附图中所描述的方案来实现和获得。
附图说明
附图用来提供对本申请技术方案的理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本申请的技术方案,并不构成对本申请技术方案的限制。
图1为本申请实施例的数据存储结构示意图;
图2为本申请实施例的数据寻址和返回方法流程图;
图3为本申请实施例的数据存储结构的一个实例示意图;
图4为本申请实施例的数据存储结构的另一个实例示意图;
图5为本申请实施例的由计算单元根据原始地址计算目的地址所在位置的方法流程图;
图6为本申请实施例的由路由器、仲裁器、交叉开关结构和mesh数据交换节点根据寻址地址列表进行数据寻址的方法流程图;
图7为本申请实施例的数据存储系统组成框图。
具体实施方式
本申请描述了多个实施例,但是该描述是示例性的,而不是限制性的,并且对于本领域的普通技术人员来说显而易见的是,在本申请所描述的实施例包含的范围内可以有更多的实施例和实现方案。尽管在附图中示出了许多可能的特征组合,并在具体实施方式中进行了讨论,但是所公开的特征的许多其它组合方式也是可能的。除非特意加以限制的情况以外,任何实施例的任何特征或元件可以与任何其它实施例中的任何其他特征或元件结合使用,或可以替代任何其它实施例中的任何其他特征或元件。
本申请包括并设想了与本领域普通技术人员已知的特征和元件的组合。本申请已经公开的实施例、特征和元件也可以与任何常规特征或元件组合,以形成由权利要求限定的独特的发明方案。任何实施例的任何特征或元件也可以与来自其它发明方案的特征或元件组合,以形成另一个由权利要求限定的独特的发明方案。因此,应当理解,在本申请中示出和/或讨论的任何特征可以单独地或以任何适当的组合来实现。因此,除了根据所附权利要求及其等同替换所做的限制以外,实施例不受其它限制。此外,可以在所附权利要求的保护范围内进行各种修改和改变。
此外,在描述具有代表性的实施例时,说明书可能已经将方法和/或过程呈现为特定的步骤序列。然而,在该方法或过程不依赖于本文所述步骤的特定顺序的程度上,该方法或过程不应限于所述的特定顺序的步骤。如本领域普通技术人员将理解的,其它的步骤顺序也是可能的。因此,说明书中阐述的步骤的特定顺序不应被解释为对权利要求的限制。此外,针对该方法和/或过程的权利要求不应限于按照所写顺序执行它们的步骤,本领域技术人员可以容易地理解,这些顺序可以变化,并且仍然保持在本申请实施例的精神和范围内。
本申请提供了一种数据存储结构的数据寻址和返回方法,如图1所示,所述数据存储结构可以为mesh与交叉开关的组合结构,所述组合结构可以包括多个网格mesh单元1,每个mesh单元1可以包括:多个路由器11、多个仲裁器12、一个交叉开关结构13、一个mesh数据交换节点14和多个存储单元3;每个路由器11连接一个计算单元2,每个路由器11连接一个仲裁器12,并且每个路由器11均与所述mesh数据交换节点14相连;每个仲裁器12均与所述mesh数据交换节点14和所述交叉开关结构13相连,所述交叉开关结构13与多个存储单元3相连,每相邻的两个mesh单元1通过所述mesh数据交换节点14相连;如图2所示,所述数据寻址和返回方法可以包括步骤S101-S103:
S101、由所述计算单元根据所述计算单元产生的原始地址计算目的地址所在位置,并由所述计算单元根据所述目的地址所在位置创建寻址地址列表;
S102、由所述路由器、所述仲裁器、所述交叉开关结构和所述mesh数据交换节点根据所述寻址地址列表进行数据寻址;
S103、将数据寻址后获得的目标数据按照数据寻址的逆路线进行返回。
在本申请的示例性实施例中,如图1所示,mesh与交叉开关的组合结构可以包括K(K为正整数)个相互连接的网格mesh单元1,可以分别记作1_1、1_2、1_3、1_4、…、1_K-1、1_K;每个mesh单元1可以包括:n个路由器11(n为正整数),可以分别记作11_1、11_2、11_3、…、11_n,n个仲裁器12,可以分别记作12_1、12_2、12_3、…、12_n,一个交叉开关结构13和一个mesh数据交换节点14。
在本申请的示例性实施例中,如图1所示,计算单元2与路由器11相连,每个计算单元2连接独立的路由器11,例如,路由器11_1、11_2、11_3、…、11_n分别连接一个计算单元2;每个路由器11连接独立的仲裁器12,例如,路由器11_1、11_2、11_3、…、11_n分别连接仲裁器12_1、12_2、12_3、…、12_n;路由器11_1、11_2、11_3、…、11_n以及仲裁器12_1、12_2、12_3、…、12_n均与mesh数据交换节点14相连,仲裁器12_1、12_2、12_3、…、12_n均与交叉开关结构13相连,交叉开关结构13与m个存储单元3相连(m为正整数);相邻的mesh单元1_1和mesh单元1_2中的mesh数据交换节点14相互连接,相邻的mesh单元1_1和mesh单元1_3中的mesh数据交换节点14相互连接,相邻的mesh单元1_2和mesh单元1_4中的mesh数据交换节点14相互连接,…,依次类推,任意相邻的两个mesh单元1中的mesh数据交换节点14相互连接,实现了整个组合结构中的任意两个mesh单元1可以通过多个mesh数据交换节点14进行连接。
在本申请的示例性实施例中,整个组合结构中可以包含M个mesh单元1,即K=M(M为正整数);每个mesh单元1可以连接A(A为正整数)个计算单元2,则相应地每个mesh单元1可以包括A个路由器,即n=A,每个mesh单元1可以连接D(D为正整数)个存储单元3,即m=D。
在本申请的示例性实施例中,交叉开关结构13可以实现A个计算单元和D个存储单元全连,交叉开关结构13可以包括多级交叉开关,例如,可以为三级交叉开关,包括:
第一级交叉开关:b个a×a交叉开关;a×b=A,a、b为正整数;
第二级交叉开关:a个b×b交叉开关;
第三级交叉开关:地址端包括:A个1×(D/A)交叉开关,数据端包括:A个(D/A)×1交叉开关。
交叉开关,又名crossbar,在集成电路领域,具有多个输入端口(简称为入口)和多个输出端口(简称为出口),通过开关和线组合成矩阵结构,实现多个输入端口与多个输出端口的网络互联功能。
在本申请的示例性实施例中,例如,当A=30、D=780、M=4、a=5、b=6时,三级交叉开关的示例如图3所示。
在本申请的示例性实施例中,图3中第一级交叉开关为5个6×6交叉开关(例如,CB0_6×6_A0、CB0_6×6_A1、CB0_6×6_A2、CB0_6×6_A3、CB0_6×6_A4),每个6×6交叉开关包含6个输入端口和6个输出端口,每个输入端口与一个仲裁器12相连,每个输出端口能够与第二级交叉开关中的每个交叉开关的任意一个输入端口相连。
在本申请的示例性实施例中,图3中第二级交叉开关为6个5×5交叉开关(例如,CB1_5×5_A0、CB1_5×5_A1、CB1_5×5_A2、CB1_5×5_A3、CB1_5×5_A4、CB1_5×5_A5),每个5×5交叉开关包含5个输入端口和5个输出端口,每个输出端口与第三级交叉开关中的一个交叉开关的输入端口相连,即第二级交叉开关的5×6=30个输出端口与第三级交叉开关中的30个交叉开关的输入端口相连。
在本申请的示例性实施例中,图3中第三级交叉开关为5×6=30个交叉开关(例如,CB1_1×26_A0、…、CB1_1×26_A29),第三级交叉开关中的每个交叉开关包括一个输入端口,26个输出端口,每个输出端口分别与一个存储单元3相连,共连接有5×6×26=30×26=780个存储单元3(例如,动态随机存取内存DRAM0-25、…、DRAM754-779)。
在本申请的示例性实施例中,三级交叉开关还可以为设置为对称结构,如图4所示。
在本申请的示例性实施例中,图4中,在图3的基础上,第一级交叉开关为5个6×6交叉开关(例如,还可以包括CB0_6×6_D0、CB0_6×6_D1、CB0_6×6_ D2、CB0_6×6_ D3、CB0_6×6_ D4),每个6×6交叉开关包含6个输入端口和6个输出端口,每个输入端口与一个仲裁器12相连,每个输出端口能够与第二级交叉开关中的每个交叉开关的任意一个输入端口相连。
在本申请的示例性实施例中,图4中,在图3的基础上,第二级交叉开关为6个5×5交叉开关(例如,还可以包括CB1_5×5_D0、CB1_5×5_ D1、CB1_5×5_ D2、CB1_5×5_D3、CB1_5×5_D4、CB1_5×5_D5),每个5×5交叉开关包含5个输入端口和5个输出端口,每个输出端口与第三级交叉开关中的一个交叉开关的输入端口相连,即第二级交叉开关的5×6=30个输出端口与第三级交叉开关中的30个交叉开关的输入端口相连。
在本申请的示例性实施例中,图4中,在图3的基础上,第三级交叉开关为5×6=30个交叉开关(例如,还可以包括CB1_26×1_D0、…、CB1_26×1_D29),第三级交叉开关中的每个交叉开关包括一个输入端口,26个输出端口,每个输出端口分别与一个存储单元3相连,共连接有5×6×26=30×26=780个存储单元3(例如,动态随机存取内存DRAM0-25、…、DRAM754-779)。
在本申请的示例性实施例中,可以基于以上的数据存储结构进行数据寻址并根据寻址路线原路返回获取的目标数据。
在本申请的示例性实施例中,所述目的地址所在位置可以包括:所在的mesh单元地址、所需经过的所述交叉开关结构中每级交叉开关地址和出口、所在的存储单元地址以及所述存储单元内的存储地址;所述由所述计算单元根据所述计算单元产生的原始地址计算目的地址所在位置,如图5所示,可以包括步骤S201-S203:
S201、根据所述原始地址计算所述mesh单元地址以及所述mesh单元地址对应mesh单元内的存储单元地址。
在本申请的示例性实施例中,根据所述原始地址计算所述mesh单元地址以及所述mesh单元地址对应mesh单元内的存储单元地址,可以包括:
根据所述原始地址和预设的第一计算式计算所在的理论存储单元地址;
根据所述理论存储单元地址和预设的第二计算式计算所述存储单元内的存储地址;
根据所述理论存储单元地址和预设的第三计算式计算所述mesh单元地址;
根据所述理论存储单元地址和预设的第四计算式计算所述mesh单元地址对应mesh单元内的存储单元地址。
在本申请的示例性实施例中,可以根据所述原始地址和预设的第一计算式计算所在的理论存储单元地址。
在本申请的示例性实施例中,计算单元2产生的原始地址为addr_ori,覆盖所有存储单元地址,计算单元2可以将原始地址解析计算成mesh和交叉开关组合结构中各级寻址的地址(即所述的目的地址所在位置)。其中,在下述计算中,除法的结果要求向下取整,%为取余操作。
在本申请的示例性实施例中,所述第一计算式可以包括:
addr_base = addr_ori % (D×M);
其中,addr_base为所述理论存储单元地址,addr_ori为所述原始地址,D为每个mesh单元所连接的存储单元的数量,D为正整数,M为所述mesh单元的数量,M为正整数;该理论存储单元地址可以是指从M个mesh单元1连接的全部存储单元3(即0至D×M-1个存储单元)中确定出的所述目的地址应该所在的存储单元的地址。
在本申请的示例性实施例中,可以根据所述理论存储单元地址和预设的第二计算式计算所述存储单元内的存储地址。
在本申请的示例性实施例中,所述第二计算式可以包括:
addr_depth = addr_base /(D×M);
其中,addr_depth为所述存储单元内的存储地址,addr_depth可以译为目标地址在存储单元内对应的地址深度。
在本申请的示例性实施例中,每个存储单元的总的地址深度可以为Y,则addr_depth可以为存储单元中的0至Y-1地址深度中的任意一个地址深度。
在本申请的示例性实施例中,可以根据所述理论存储单元地址和预设的第三计算式计算所述mesh单元地址。
在本申请的示例性实施例中,所述第三计算式可以包括:
dest_mesh = addr_base/D;
其中,dest_mesh为所述mesh单元地址。
在本申请的示例性实施例中,由于共包含M个mesh单元1,因此dest_mesh可以为0至M-1个mesh单元1中的任意一个mesh单元1的地址。
在本申请的示例性实施例中,可以根据所述理论存储单元地址和预设的第四计算式计算所述mesh单元地址对应mesh单元内的存储单元地址。
在本申请的示例性实施例中,所述第四计算式可以包括:
addr_cb_map = addr_ori %D;
其中,addr_cb_map为所述mesh单元地址对应mesh单元内的存储单元地址;即从1个mesh单元1连接的全部存储单元3(即0至D-1个存储单元)中确定出的所述目的地址应该所在的存储单元的地址。
S202、根据所述mesh单元地址对应mesh单元内的存储单元地址计算所述mesh单元地址对应mesh单元内的所述交叉开关结构中最低一级的交叉开关地址和最低一级的交叉开关的出口。
在本申请的示例性实施例中,可以根据所述mesh单元地址对应mesh单元内的存储单元地址和预设的第五计算式计算所述mesh单元地址对应mesh单元内的所述交叉开关结构中最低一级的交叉开关地址。
在本申请的示例性实施例中,所述第五计算式可以包括:
cb_sel = addr_cb_map /(D/A);
其中,cb_sel为所述最低一级的交叉开关地址;A为每个mesh单元连接的所述计算单元的个数。
在本申请的示例性实施例中,当交叉开关结构包含三级交叉开关时,该最低一级的交叉开关地址即为第三级交叉开关地址。
在本申请的示例性实施例中,cb_sel可以为目的地址所在的一个mesh单元1内第三级交叉开关中0至A-1个交叉开关中的一个交叉开关的地址。
在本申请的示例性实施例中,可以根据所述mesh单元地址对应mesh单元内的存储单元地址和预设的第六计算式计算所述mesh单元地址对应mesh单元内的所述交叉开关结构中最低一级的交叉开关的出口。
在本申请的示例性实施例中,所述第六计算式可以包括:
mc_sel = addr_cb_map % (D/A);
其中,mc_sel为所述最低一级的交叉开关的出口。
在本申请的示例性实施例中,当交叉开关结构包含三级交叉开关时,该最低一级的交叉开关地址即为第三级交叉开关地址。
在本申请的示例性实施例中,mc_sel可以为第三级交叉开关中的一个交叉开关的0至D/A个出口中的一个出口的地址。
S203、根据所述交叉开关结构中最低一级的交叉开关地址计算所述交叉开关结构中第一级的交叉开关到倒数第二级的交叉开关的地址。
在本申请的示例性实施例中,所述根据所述交叉开关结构中最低一级的交叉开关地址计算所述交叉开关结构中第一级的交叉开关到倒数第二级的交叉开关的地址,可以包括:
根据第三级交叉开关地址和预设的第七计算式计算第二级交叉开关地址;
根据第三级交叉开关地址和预设的第八计算式计算第一级交叉开关地址。
在本申请的示例性实施例中,所述第七计算式可以包括:
cb_l1_sel = cb_sel %a;
其中,cb_l1_sel为所述第二级交叉开关地址;即cb_l1_sel可以为从目的地址所在的一个mesh单元1内第二级交叉开关中0至a-1个交叉开关中的一个交叉开关的地址。
在本申请的示例性实施例中,确定第二级交叉开关地址cb_l1_sel以后,还可以进一步从cb_l1_sel对应的交叉开关中的0至b-1个出口中选择出一个出口。
在本申请的示例性实施例中,所述第八计算式可以包括:
cb_l0_sel = cb_sel /b;
其中,cb_l0_sel为所述第一级交叉开关地址;即cb_l0_sel可以为从目的地址所在的一个mesh单元1内第一级交叉开关中0至b-1个交叉开关中的一个交叉开关的地址。
在本申请的示例性实施例中,确定第一级交叉开关地址cb_l0_sel以后,还可以进一步从cb_l0_sel对应的交叉开关中的0至a-1个出口中选择出一个出口。
在本申请的示例性实施例中,所述由所述计算单元根据所述目的地址所在位置创建寻址地址列表,可以包括:
将所述目的地址所在mesh单元地址、对应的最低一级之前的每一级交叉开关地址、对应的最低一级交叉开关的出口以及所在的所述存储单元内的存储地址按照从高到低的字节地址顺序依次写入预设的寻址地址字段内,构成所述寻址地址列表。
在本申请的示例性实施例中,当所述交叉开关结构包括:第一级交叉开关、第二级交叉开关和第三级交叉开关,所述第三级交叉开关为最低一级的交叉开关时;最低一级之前的每一级交叉开关地址包括:第一级交叉开关地址和第二级交叉开关地址。
在本申请的示例性实施例中,可以将前述内容中计算的目的地址所在位置的地址进行拼接,获取寻址地址列表alu_addr,alu_addr的结构可以如表1所示。
表1
dest_mesh | cb_l0_sel | cb_l1_sel | mc_sel | addr_depth |
其中,dest_mesh (mesh单元地址)处于高位,addr_depth(地址深度)处于低位。
在本申请的示例性实施例中,所述由所述路由器、所述仲裁器、所述交叉开关结构和所述mesh数据交换节点根据所述寻址地址列表进行数据寻址,如图6所示,可以包括步骤S301 -S305:
S301、所述路由器根据所述寻址地址列表中的信息更新所述寻址地址列表,并将更新后的寻址地址列表传递至所述仲裁器或所述mesh数据交换节点。
在本申请的示例性实施例中,所述路由器根据所述寻址地址列表中的所述目的地址所在mesh单元地址更新所述寻址地址列表,获取mesh单元寻址后寻址地址列表,并将所述mesh单元寻址后寻址地址列表路由至所述仲裁器或所述mesh数据交换节点。
在本申请的示例性实施例中,多个mesh单元可以包括第一mesh单元;所述第一mesh单元可以包括多个第一路由器、多个第一仲裁器、第一交叉开关结构和第一mesh数据交换节点;每个第一路由器连接一个第一计算单元,每个第一路由器连接一个第一仲裁器,所述第一交叉开关结构连接多个第一存储单元;
所述路由器根据所述寻址地址列表中的信息更新所述寻址地址列表,并将更新后的寻址地址列表传递至所述仲裁器或所述mesh数据交换节点,可以包括:
由任意的第一计算单元所连接的第一路由器接收所述第一计算单元发送的所述寻址地址列表,并记录该第一路由器所在的第一mesh单元的地址;
由该第一路由器提取所述寻址地址列表中的所述目的地址所在mesh单元地址;
比较该第一路由器所在的第一mesh单元的地址和所述目的地址所在mesh单元地址;
当该第一路由器所在的第一mesh单元的地址不是所述目的地址所在mesh单元地址时,将所述寻址地址列表中的所述目的地址所在mesh单元地址删除,以获取mesh单元寻址后寻址地址列表;将所述mesh单元寻址后寻址地址列表、该第一路由器所在的第一mesh单元的地址以及所述目的地址所在mesh单元地址发送给该第一路由器所在的第一mesh单元的第一mesh数据交换节点;
当该第一路由器所在的第一mesh单元的地址是所述目的地址所在mesh单元地址时,将所述寻址地址列表中的所述目的地址所在mesh单元地址删除,以获取mesh单元寻址后寻址地址列表;将所述mesh单元寻址后寻址地址列表以及该第一路由器所在的第一mesh单元的地址发送给该第一路由器所连接的第一仲裁器。
在本申请的示例性实施例中,第一路由器可以记录自身所在的第一mesh单元的地址src_mesh,根据alu_addr(表1)中的dest_mesh信息提取记录为:dest_mesh(即所述目的地址所在mesh单元地址,也可以称为目标mesh单元地址),将src_mesh与dest_mesh相比较,如果src_mesh与dest_mesh不一致,则dest_mesh不是第一路由器所在的第一mesh单元的地址,则可以将alu_addr(表1)进行更新,即将alu_addr(表1)中的dest_mesh删除(因为已经根据dest_mesh对mesh单元执行过寻址),获取mesh_addr(即mesh单元寻址后寻址地址列表)。需要说明的是,将所述寻址地址列表中的所述目的地址所在mesh单元地址删除后就是mesh单元寻址后寻址地址列表,即将alu_addr(表1)中的dest_mesh删除后就是mesh_addr,如表2所示。
表2
cb_l0_sel | cb_l1_sel | mc_sel | addr_depth |
在本申请的示例性实施例中,第一路由器可以将mesh_addr(表2)、src_mesh(如表3所示)以及dest_mesh(如表4所示)一起发送至第一mesh数据交换节点,由第一mesh数据交换节点根据接收到的dest_mesh(表4)发送到目标mesh单元所包含的mesh数据交换节点。
表3
src_mesh |
表4
dest_mesh |
在本申请的示例性实施例中,如果src_mesh与dest_mesh一致,则dest_mesh是第一路由器所在的第一mesh单元的地址,则可以将mesh_addr(表2)更名为cb_addr(表2)以后,与src_mesh(表3)一起发送至第一路由器所连接的仲裁器(即第一仲裁器)。
S302、所述mesh数据交换节点将更新后的寻址地址列表发送至目标mesh数据交换节点。
在本申请的示例性实施例中,所述mesh数据交换节点根据所述mesh单元寻址后寻址地址列表中的所述目的地址所在mesh单元地址将所述mesh单元寻址后寻址地址列表发送至目标mesh数据交换节点,以由所述目标mesh数据交换节点将所述mesh单元寻址后寻址地址列表发送至所述目标mesh数据交换节点对应的仲裁器。
在本申请的示例性实施例中,所述mesh数据交换节点将更新后的寻址地址列表发送至目标mesh数据交换节点,可以包括:
当该第一路由器所在的第一mesh单元的第一mesh数据交换节点接收到所述mesh单元寻址后寻址地址列表(表2)、该第一路由器所在的第一mesh单元的地址(表3)以及所述目的地址所在mesh单元地址(表4)时,根据所述目的地址所在mesh单元地址(表4)确定目的mesh数据交换节点;
由所述第一mesh数据交换节点将所述mesh单元寻址后寻址地址列表(表2)以及该第一路由器所在的第一mesh单元的地址(表3)发送给所述目的mesh数据交换节点;
由所述目的mesh数据交换节点将所述mesh单元寻址后寻址地址列表以及该第一路由器所在的第一mesh单元的地址发送给所述目的mesh数据交换节点所在mesh单元的仲裁器。
在本申请的示例性实施例中,第一mesh数据交换节点根据dest_mesh判断前往的mesh单元,从而将cb_addr(表2)以及src_mesh(表3)发送至该mesh单元的目的mesh数据交换节点,由目的mesh数据交换节点转发至该mesh单元的仲裁器。
S303、所述仲裁器将来自mesh数据交换节点或路由器发送的更新后的寻址地址列表发送至所连接的交叉开关结构。
在本申请的示例性实施例中,所述仲裁器接收mesh数据交换节点或路由器发送的所述mesh单元寻址后寻址地址列表,根据所述mesh单元寻址后寻址地址列表中的第一级交叉开关地址将所述mesh单元寻址后寻址地址列表发送至所连接的交叉开关结构。
在本申请的示例性实施例中,所述仲裁器将来自mesh数据交换节点或路由器发送的更新后的寻址地址列表发送至所连接的交叉开关结构,可以包括:
当该第一路由器所连接的第一仲裁器或者所述目的mesh数据交换节点所在mesh单元的仲裁器接收到所述mesh单元寻址后寻址地址列表(表2)、该第一路由器所在的第一mesh单元的地址以及所述目的地址所在mesh单元地址时,对该第一路由器所在的第一mesh单元的地址进行保存,并将所述mesh单元寻址后寻址地址列表以及该第一路由器所在的第一mesh单元的地址发送给所述mesh单元寻址后寻址地址列表中第一级交叉开关地址对应的第一级交叉开关。
在本申请的示例性实施例中,仲裁器可以接收来自路由器和mesh数据交换节点的数据,在任意一个仲裁器接收到cb_addr(表2)以及src_mesh(表3)以后,可以将cb_addr(表2)更名为cb_l0_addr(表2),将src_mesh记录在预设的信息存储地址abt_id(如表5所示)中,表5的内容与表3的内容相同,但意义不同,表5为仲裁器从表3提取并在存储到abt_id中的地址;仲裁器可以将cb_l0_addr(表2)和abt_id(表5)输出至交叉开关结构中的第一级交叉开关。
表5
src_mesh |
S304、所述交叉开关结构对更新后的寻址地址列表进行逐级更新,并将逐级更新后的寻址地址列表发送至所述目的地址所在的存储单元地址。
在本申请的示例性实施例中,所述交叉开关结构可以包括:N级交叉开关;N为正整数;所述交叉开关结构对更新后的寻址地址列表进行逐级更新,并将逐级更新后的寻址地址列表发送至所述目的地址所在的存储单元地址,可以包括:
在第一级交叉开关到第N-1级交叉开关之间逐级执行以下操作:在每一级交叉开关接收到上一级发送的更新后的寻址地址列表以后,将所述更新后的寻址地址列表中每一级交叉开关自身的交叉开关地址保存入预设的地址字段后,从所述更新后的寻址地址列表中删除每一级交叉开关自身的交叉开关地址,实现对所述更新后的寻址地址列表的再次更新,并根据该每一级交叉开关自身的交叉开关地址计算每一级交叉开关自身的出口,根据该出口将所述地址字段和再次更新后的寻址地址列表发送至下一级交叉开关;其中,所述地址字段中已存储有所述第一路由器所在的第一mesh单元的地址;所述第一级交叉开关接收到的更新后的寻址地址列表为所述mesh单元寻址后寻址地址列表;
在第N级交叉开关接收到所述第N-1级交叉开关发送的更新后的寻址地址列表以及所述地址字段后,对所述地址字段进行保存,并将所述更新后的寻址地址列表中的所述第N级交叉开关的出口删除实现对接收到的所述更新后的寻址地址列表的再次更新;将再次更新后的寻址地址列表和接收到的所述地址字段通过所述第N级交叉开关的出口发送给所连接的存储单元。
在本申请的示例性实施例中,可以以所述交叉开关结构包括:第一级交叉开关、第二级交叉开关和第三级交叉开关,所述第三级交叉开关为最低一级的交叉开关为例说明本申请实施例方案;其中,最低一级之前的每一级交叉开关地址可以包括:第一级交叉开关地址和第二级交叉开关地址。
在本申请的示例性实施例中,所述交叉开关结构对所述mesh单元寻址后寻址地址列表进行逐级更新,并根据逐级更新后的mesh单元寻址后寻址地址列表中的所述第二级交叉开关地址和第三级交叉开关的出口逐级寻址,将逐级更新后的mesh单元寻址后寻址地址列表发送至所述目的地址所在的存储单元地址。
在本申请的示例性实施例中,下面对所述交叉开关结构对更新后的寻址地址列表进行逐级更新,并将逐级更新后的寻址地址列表发送至所述目的地址所在的存储单元地址的方案进行详细介绍:
在所述第一级交叉开关地址对应的第一级交叉开关接收到所述mesh单元寻址后寻址地址列表(即更名为cb_l0_addr后的表2)以及该第一路由器所在的第一mesh单元(表5)的地址后,对所述第一级交叉开关地址进行保存,并将所述mesh单元寻址后寻址地址列表(表2)中的所述第一级交叉开关地址删除实现对所述mesh单元寻址后寻址地址列表的更新,获取第一级交叉开关寻址后寻址地址列表(表6);根据所述第一级交叉开关地址计算所述第一级交叉开关的出口,将所述第一级交叉开关寻址后寻址地址列表以及由所述第一级交叉开关地址和所述第一路由器所在的第一mesh单元的地址组成的第一地址字段,通过所述第一级交叉开关的出口发送给该第一级交叉开关寻址后寻址地址列表中第二级交叉开关地址对应的第二级交叉开关;
在所述第二级交叉开关地址对应的第二级交叉开关接收到所述第一级交叉开关寻址后寻址地址列表(表6)以及所述第一地址字段(表7)后,对所述第二级交叉开关地址进行保存,并将所述第一级交叉开关寻址后寻址地址列表(表6)中的所述第二级交叉开关地址删除实现对所述第一级交叉开关寻址后寻址地址列表的更新,获取第二级交叉开关寻址后寻址地址列表(表8);根据所述第二级交叉开关地址计算所述第二级交叉开关的出口,将所述第二级交叉开关寻址后寻址地址列表以及由所述第二级交叉开关地址、所述第一级交叉开关地址以及所述第一路由器所在的第一mesh单元的地址组成的第二地址字段(表9),通过所述第二级交叉开关的出口发送给该第二级交叉开关寻址后寻址地址列表(表8)中第三级交叉开关的出口对应的第三级交叉开关;
在所述第三级交叉开关的出口对应的第三级交叉开关接收到所述第二级交叉开关寻址后寻址地址列表(表8)以及所述第二地址字段(表9)后,对所述第二地址字段进行保存,并将所述第二级交叉开关寻址后寻址地址列表(表8)中的所述第三级交叉开关的出口删除实现对所述第一级交叉开关寻址后寻址地址列表的更新,获取第三级交叉开关寻址后寻址地址列表(表10);将所述第三级交叉开关寻址后寻址地址列表(表10)和所述第二地址字段通过所述第三级交叉开关的出口发送给所连接的存储单元。
在本申请的示例性实施例中,第一级交叉开关接收到更名为cb_l0_addr后的表2以及abt_id(表5)后,根据cb_l0_sel寻找寻址目的地址所需经过的第一级交叉开关中的哪一个交叉开关,并确定该交叉开关中所需经过的出口。从表2中删除cb_l0_sel(即第一级交叉开关地址,因为已经对第一级交叉开关地址寻址完毕),获取cb_l1_addr(即第一级交叉开关寻址后寻址地址列表),如表6所示,并对第一级交叉开关地址cb_l0_sel进行保存,即保存在预设的信息存储地址cb_l1_id中,其中cb_l1_id还存储有表5的内容,从而获取表7,即cb_l1_id(表7),可以称为第一地址字段,第一级交叉开关可以将cb_l1_addr(表6)和cb_l1_id(表7)发送至第二级交叉开关。
表6
cb_l1_sel | mc_sel | addr_depth |
表7
cb_l0_sel | src_mesh |
在本申请的示例性实施例中,第二级交叉开关接收cb_l1_addr(表6)以及cb_l1_id(表7)后,根据cb_l1_sel寻找寻址目的地址所需经过的第二级交叉开关中的哪一个交叉开关,并确定该交叉开关中所需经过的出口。从表6中删除cb_l1_sel(即第二级交叉开关地址,因为已经对第二级交叉开关地址寻址完毕),获取cb_l2_addr(即第二级交叉开关寻址后寻址地址列表),如表8所示,并对第二级交叉开关地址cb_l1_sel进行保存,即保存在预设的信息存储地址cb_l2_id中,其中cb_l2_id还存储有表7的内容,从而获取表9,即cb_l2_id(表9),可以称为第二地址字段,第二级交叉开关可以将cb_l2_addr(表8)和cb_l2_id(表9)发送至第三级交叉开关。
表8
mc_sel | addr_depth |
表9
cb_l1_sel | cb_l0_sel | src_mesh |
在本申请的示例性实施例中,第三级交叉开关接收cb_l2_addr(表8)和cb_l2_id(表9)后,根据mc_sel(第三级交叉开关的出口)寻找寻址目的地址所需经过的第三级交叉开关的出口。从表8中删除mc_sel(即第三级交叉开关的出口,因为已经对第三级交叉开关的出口寻址完毕),获取addr_depth(即所述存储单元内的存储地址,或称地址深度),如表10所示,并将cb_l2_id作为cb_l3_id,即cb_l3_id(表9),第三级交叉开关可以将addr_depth(表10)和cb_l3_id(表9)发送至所连接的存储单元。
表10
addr_depth |
S305、所述目的地址所在的存储单元地址对应的存储单元根据逐级更新后的寻址地址列表该存储单元中确定目标数据的存储位置,完成寻址。
在本申请的示例性实施例中,所述目的地址所在的存储单元地址对应的存储单元根据逐级更新后的mesh单元寻址后寻址地址列表中的所述存储单元内的存储地址在该存储单元中确定目标数据的存储位置,完成寻址。
在本申请的示例性实施例中,所述目的地址所在的存储单元地址对应的存储单元根据逐级更新后的寻址地址列表该存储单元中确定目标数据的存储位置,完成寻址,可以包括:
在所述第N级交叉开关的出口所连接的存储单元接收到再次更新后的寻址地址列表以后,根据该再次更新后的寻址地址列表中的所述所在的所述存储单元内的存储地址确定目标数据所在的存储位置,完成寻址。
在本申请的示例性实施例中,例如,以三级交叉开关(即N=3)为例来说明:在所述第三级交叉开关的出口所连接的存储单元接收到所述第二级交叉开关寻址后寻址地址列表以后,根据所述第二级交叉开关寻址后寻址地址列表中的所述所在的所述存储单元内的存储地址确定目标数据所在的存储位置,完成寻址。
在本申请的示例性实施例中,存储单元根据表10中的addr_depth(地址深度)寻找目的地所在的存储位置,完成数据地址寻址。
在本申请的示例性实施例中,可以从存储单元中相应的存储位置获取目标数据,并将目标数据按照寻址地址原路返回(即按照数据寻址的逆路线进行返回)。
在本申请的示例性实施例中,所述将数据寻址后获得的目标数据按照数据寻址的逆路线进行返回,可以包括:
在从所述存储单元内的存储位置获取目标数据以后,将N级交叉开关中每一级交叉开关在数据寻址时的出口作为数据返回时的入口,每一级交叉开关在数据寻址时的入口作为数据返回时的出口;并将所述地址字段作为数据返回地址列表;
根据所述数据返回地址列表逆向确认每一级交叉开关的出口和入口,将所述数据返回地址列表和目标数据逐级上传;其中,在每一级交叉开关处对所述数据返回地址列表进行更新;
所述仲裁器将接收到的所述第一级交叉开关返回的所述数据返回地址列表和所述目标数据发送给所连接的路由器;
被发送到的该路由器根据所述数据返回地址列表确定将所述目标数据发送至所连接的计算单元,或者转发至目标mesh数据交换节点,以由所述目标mesh数据交换节点对应的路由器发送至相应的计算单元。
在本申请的示例性实施例中,下面仍以三级交叉开关(即N=3)为例,对上述方案进行详细说明:
在从所述存储单元内的存储位置获取目标数据以后,将第三级交叉开关的数据寻址时的出口作为第三级交叉开关的数据返回时的入口,并将所述第二地址字段作为数据返回地址列表;
将所述数据返回地址列表和所述目标数据通过所述第三级交叉开关的数据返回时的入口发送给所述第三级交叉开关;
所述第三级交叉开关将唯一的数据寻址时的入口作为唯一的数据返回时的出口,直接将所述数据返回地址列表和所述目标数据发送给所述唯一的数据返回时的出口所连接的第二级交叉开关;
所述第二级交叉开关根据所述数据返回地址列表中的所述第二级交叉开关地址确定第二级交叉开关的数据寻址时的入口,作为第二级交叉开关的数据返回时的出口,并将所述数据返回地址列表中的所述第二级交叉开关地址删除,获取第一更新后数据返回地址列表;通过所述第二级交叉开关的数据返回时的出口将所述第一更新后数据返回地址列表和所述目标数据发送给第一级交叉开关;
所述第一级交叉开关根据所述第一更新后数据返回地址列表中的所述第一级交叉开关地址确定第一级交叉开关的数据寻址时的入口,作为第一级交叉开关的数据返回时的出口,并将所述第一更新后数据返回地址列表中的所述第一级交叉开关地址删除,获取第二更新后数据返回地址列表;通过所述第一级交叉开关的数据返回时的出口将所述第二更新后数据返回地址列表和所述目标数据发送给仲裁器;
所述仲裁器根据所述第二更新后数据返回地址列表中的所述第一路由器所在的第一mesh单元的地址将所述目标数据和所述第一路由器所在的第一mesh单元的地址发送给所连接的路由器;
被发送到的该路由器判断接收到的所述第一路由器所在的第一mesh单元的地址与自身所在的mesh单元的地址是否一致,当该路由器判断接收到的所述第一路由器所在的第一mesh单元的地址与自身所在的mesh单元的地址一致时,将所述目标数据发送至该路由器所连接的计算单元;当该路由器判断接收到的所述第一路由器所在的第一mesh单元的地址与自身所在的mesh单元的地址不一致时,将所述目标数据发送至该路由器所在mesh单元的mesh数据交换节点,由该mesh数据交换节点转发至接收到的所述第一路由器所在的第一mesh单元的地址对应的mesh数据交换节点,并由该对应的mesh数据交换节点将所述目标数据转发至相应的路由器,并由该相应的路由器将所述目标数据发送至所连接的计算单元。
在本申请的示例性实施例中,该第二地址字段即cb_l3_id(表9),第二地址字段中的所述第二级交叉开关地址、所述第一级交叉开关地址以及所述第一路由器所在的第一mesh单元的地址依次按照从高到低的字节地址顺序排列。
在本申请的示例性实施例中,存储单元将cb_l3_id(表9)作为数据返回地址列表data_id(表9),与获取的目标数据一同返回,在返回过程中目标数据一直不变,data_id(表9)会随着返回路径到达不同的位置进行相应的变化更新。
在本申请的示例性实施例中,存储单元将data_id(表9)和目标数据通过数据寻址时第三级交叉开关的数据寻址时的出口(作为第三级交叉开关的数据返回时的入口)发送至第三级交叉开关,第三级交叉开关的数据寻址时的入口仅有一个,是唯一的,因此,可以直接通过该唯一的数据寻址时的入口(在数据返回过程中作为第三级交叉开关的数据返回时的出口)将data_id(表9)和所述目标数据返回给第二级交叉开关。
在本申请的示例性实施例中,第二级交叉开关可以根据data_id(表9)中cb_l1_sel确定第二级交叉开关的数据寻址时的入口(作为第二级交叉开关的数据返回时的出口)后将data_id(表9)中的cb_l1_sel删除,获取第一更新后数据返回地址列表data_cb_l2_id,可以如表11所示,通过第二级交叉开关的数据寻址时的入口将data_cb_l2_id(表11)和目标数据发送至第一级交叉开关。
表11
cb_l0_sel | src_mesh |
在本申请的示例性实施例中,第一级交叉开关可以根据data_cb_l2_id(表11)中cb_l0_sel确定第一级交叉开关的数据寻址时的入口(作为第一级交叉开关的数据返回时的出口)后将data_id(表9)中的cb_l0_sel删除,获取第二更新后数据返回地址列表data_cb_l1_id,可以如表12所示,通过第一级交叉开关的数据寻址时的入口将data_cb_l1_id(表12)和目标数据发送至仲裁器,由仲裁器将该data_cb_l1_id(表12)和目标数据转发给该仲裁器所连接的路由器。
表12
src_mesh |
在本申请的示例性实施例中,与数据寻址时方法类似,路由器在接收到data_cb_l1_id(表12)和目标数据,会先将data_cb_l1_id(表12)中的src_mesh与自身所在的mesh单元地址相比较,确认两者一致后才会将目标数据发送至所连接的计算单元,如果两者不一致则通过mesh数据转发节点转移到正确的mesh单元后,由该mesh单元的路由器发送到相应的计算单元。
本申请实施例还提供了一种数据存储系统X,如图1、图7所示,可以包括数据存储结构Z,所述数据存储结构Z包括多个网格mesh单元,每个mesh单元包括:多个路由器、多个仲裁器、多个存储单元、一个交叉开关结构和一个mesh数据交换节点;每个路由器连接一个计算单元,每个路由器连接一个仲裁器,并且每个路由器均与所述mesh数据交换节点相连;每个仲裁器均与所述mesh数据交换节点和所述交叉开关结构相连,所述交叉开关结构与多个存储单元相连,每相邻的两个mesh单元通过所述mesh数据交换节点相连;当所述数据存储结构执行数据读取操作时,实现所述的数据寻址和返回方法。
在本申请的示例性实施例中,数据寻址和返回方法实施例中的任意实施例均适用于该系统实施例中,在此不再一一赘述。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于 RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
Claims (11)
1.一种数据存储结构的数据寻址和返回方法,其特征在于,所述数据存储结构包括多个网格mesh单元,每个mesh单元包括:多个路由器、多个仲裁器、多个存储单元、一个交叉开关结构和一个mesh数据交换节点;每个路由器连接一个计算单元,每个路由器连接一个仲裁器,并且每个路由器均与所述mesh数据交换节点相连;每个仲裁器均与所述mesh数据交换节点和所述交叉开关结构相连,所述交叉开关结构与多个存储单元相连,每相邻的两个mesh单元通过所述mesh数据交换节点相连;所述数据寻址和返回方法包括:
由所述计算单元根据所述计算单元产生的原始地址计算目的地址所在位置,并由所述计算单元根据所述目的地址所在位置创建寻址地址列表;
由所述路由器、所述仲裁器、所述交叉开关结构和所述mesh数据交换节点根据所述寻址地址列表逐级进行数据寻址;
将数据寻址后获得的目标数据按照数据寻址的逆路线进行返回;
其中,所述目的地址所在位置包括:所在的mesh单元地址、所需经过的所述交叉开关结构中每级交叉开关地址和出口、所在的存储单元地址以及所述存储单元内的存储地址;所述mesh单元地址以及所在的存储单元地址根据原始地址计算获得,所述交叉开关结构中最低一级的交叉开关地址和最低一级的交叉开关的出口根据所述存储单元地址获得,第一级的交叉开关到倒数第二级的交叉开关的地址根据所述最低一级的交叉开关地址获得;
所述寻址地址列表是将所述目的地址所在位置按照从高到低的字节地址顺序依次写入预设的寻址地址字段获得的。
2.根据权利要求1所述的数据存储结构的数据寻址和返回方法,其特征在于,所述由所述计算单元根据所述计算单元产生的原始地址计算目的地址所在位置,包括:根据所述原始地址计算所述mesh单元地址以及所述mesh单元地址对应mesh单元内的存储单元地址;
根据所述mesh单元地址对应mesh单元内的存储单元地址计算所述mesh单元地址对应mesh单元内的所述交叉开关结构中最低一级的交叉开关地址和最低一级的交叉开关的出口;
根据所述交叉开关结构中最低一级的交叉开关地址计算所述交叉开关结构中第一级的交叉开关到倒数第二级的交叉开关的地址。
3.根据权利要求2所述的数据存储结构的数据寻址和返回方法,其特征在于,所述由所述计算单元根据所述目的地址所在位置创建寻址地址列表,包括:
将所述目的地址所在mesh单元地址、对应的最低一级之前的每一级交叉开关地址、对应的最低一级交叉开关的出口以及所在的所述存储单元内的存储地址按照从高到低的字节地址顺序依次写入预设的寻址地址字段内,构成所述寻址地址列表。
4.根据权利要求3所述的数据存储结构的数据寻址和返回方法,其特征在于,所述由所述路由器、所述仲裁器、所述交叉开关结构和所述mesh数据交换节点根据所述寻址地址列表逐级进行数据寻址,包括:
所述路由器根据所述寻址地址列表中的信息更新所述寻址地址列表,并将更新后的寻址地址列表传递至所述仲裁器或所述mesh数据交换节点;
所述mesh数据交换节点将更新后的寻址地址列表发送至目标mesh数据交换节点;
所述仲裁器将来自mesh数据交换节点或路由器发送的更新后的寻址地址列表发送至所连接的交叉开关结构;
所述交叉开关结构对更新后的寻址地址列表进行逐级更新,并将逐级更新后的寻址地址列表发送至所述目的地址所在的存储单元地址;
所述目的地址所在的存储单元地址对应的存储单元根据逐级更新后的寻址地址列表在该存储单元中确定目标数据的存储位置,完成寻址。
5.根据权利要求4所述的数据存储结构的数据寻址和返回方法,其特征在于,多个mesh单元包括第一mesh单元;所述第一mesh单元包括多个第一路由器、多个第一仲裁器、第一交叉开关结构和第一mesh数据交换节点;每个第一路由器连接一个第一计算单元,每个第一路由器连接一个第一仲裁器,所述第一交叉开关结构连接多个第一存储单元;
所述路由器根据所述寻址地址列表中的信息更新所述寻址地址列表,并将更新后的寻址地址列表传递至所述仲裁器或所述mesh数据交换节点,包括:
由任意的第一计算单元所连接的第一路由器接收所述第一计算单元发送的所述寻址地址列表,并记录该第一路由器所在的第一mesh单元的地址;
由该第一路由器提取所述寻址地址列表中的所述目的地址所在mesh单元地址;
比较该第一路由器所在的第一mesh单元的地址和所述目的地址所在mesh单元地址;
当该第一路由器所在的第一mesh单元的地址不是所述目的地址所在mesh单元地址时,将所述寻址地址列表中的所述目的地址所在mesh单元地址删除,以获取mesh单元寻址后寻址地址列表;将所述mesh单元寻址后寻址地址列表、该第一路由器所在的第一mesh单元的地址以及所述目的地址所在mesh单元地址发送给该第一路由器所在的第一mesh单元的第一mesh数据交换节点;
当该第一路由器所在的第一mesh单元的地址是所述目的地址所在mesh单元地址时,将所述寻址地址列表中的所述目的地址所在mesh单元地址删除,以获取mesh单元寻址后寻址地址列表;将所述mesh单元寻址后寻址地址列表以及该第一路由器所在的第一mesh单元的地址发送给该第一路由器所连接的第一仲裁器。
6.根据权利要求5所述的数据存储结构的数据寻址和返回方法,其特征在于,所述mesh数据交换节点将更新后的寻址地址列表发送至目标mesh数据交换节点,包括:
当该第一路由器所在的第一mesh单元的第一mesh数据交换节点接收到所述mesh单元寻址后寻址地址列表、该第一路由器所在的第一mesh单元的地址以及所述目的地址所在mesh单元地址时,根据所述目的地址所在mesh单元地址确定目的mesh数据交换节点;
由所述第一mesh数据交换节点将所述mesh单元寻址后寻址地址列表以及该第一路由器所在的第一mesh单元的地址发送给所述目的mesh数据交换节点;
由所述目的mesh数据交换节点将所述mesh单元寻址后寻址地址列表以及该第一路由器所在的第一mesh单元的地址发送给所述目的mesh数据交换节点所在mesh单元的仲裁器。
7.根据权利要求6所述的数据存储结构的数据寻址和返回方法,其特征在于,所述仲裁器将来自mesh数据交换节点或路由器发送的更新后的寻址地址列表发送至所连接的交叉开关结构,包括:
当该第一路由器所连接的第一仲裁器或者所述目的mesh数据交换节点所在mesh单元的仲裁器接收到所述mesh单元寻址后寻址地址列表、该第一路由器所在的第一mesh单元的地址以及所述目的地址所在mesh单元地址时,对该第一路由器所在的第一mesh单元的地址进行保存,并将所述mesh单元寻址后寻址地址列表以及该第一路由器所在的第一mesh单元的地址发送给所述mesh单元寻址后寻址地址列表中第一级交叉开关地址对应的第一级交叉开关。
8.根据权利要求7所述的数据存储结构的数据寻址和返回方法,其特征在于,所述交叉开关结构包括:N级交叉开关;N为正整数;所述交叉开关结构对更新后的寻址地址列表进行逐级更新,并将逐级更新后的寻址地址列表发送至所述目的地址所在的存储单元地址,包括:
在第一级交叉开关到第N-1级交叉开关之间逐级执行以下操作:在每一级交叉开关接收到上一级交叉开关发送的更新后的寻址地址列表以后,将所述更新后的寻址地址列表中每一级交叉开关自身的交叉开关地址保存入预设的地址字段,并对所述更新后的寻址地址列表再次更新;根据该每一级交叉开关自身的交叉开关地址计算每一级交叉开关自身的出口,根据该出口将所述地址字段和再次更新后的寻址地址列表发送至下一级交叉开关;其中所述地址字段中已存储有所述第一路由器所在的第一mesh单元的地址;所述第一级交叉开关接收到的更新后的寻址地址列表为所述mesh单元寻址后寻址地址列表;
在第N级交叉开关接收到所述第N-1级交叉开关发送的更新后的寻址地址列表以及所述地址字段后,对所述地址字段进行保存,并将所述更新后的寻址地址列表中的所述第N级交叉开关的出口删除实现对接收到的所述更新后的寻址地址列表的再次更新;将再次更新后的寻址地址列表和接收到的所述地址字段通过所述第N级交叉开关的出口发送给所连接的存储单元。
9.根据权利要求8所述的数据存储结构的数据寻址和返回方法,其特征在于,所述目的地址所在的存储单元地址对应的存储单元根据逐级更新后的寻址地址列表该存储单元中确定目标数据的存储位置,完成寻址,包括:
在所述第N级交叉开关的出口所连接的存储单元接收到再次更新后的寻址地址列表以后,根据该再次更新后的寻址地址列表中的所述所在的所述存储单元内的存储地址确定目标数据所在的存储位置,完成寻址。
10.根据权利要求9所述的数据存储结构的数据寻址和返回方法,其特征在于,所述将数据寻址后获得的目标数据按照数据寻址的逆路线进行返回,包括:
在从所述存储单元内的存储位置获取目标数据以后,将N级交叉开关中每一级交叉开关在数据寻址时的出口作为数据返回时的入口,每一级交叉开关在数据寻址时的入口作为数据返回时的出口;并将所述地址字段作为数据返回地址列表;
根据所述数据返回地址列表逆向确认每一级交叉开关的出口和入口,将所述数据返回地址列表和目标数据逐级上传;其中,在每一级交叉开关处对所述数据返回地址列表进行更新;
所述仲裁器将接收到的所述第一级交叉开关返回的所述数据返回地址列表和所述目标数据发送给所连接的路由器;
被发送到的该路由器根据所述数据返回地址列表确定将所述目标数据发送至所连接的计算单元,或者转发至目标mesh数据交换节点,以由所述目标mesh数据交换节点对应的路由器发送至相应的计算单元。
11.一种数据存储系统,其特征在于,包括数据存储结构,所述数据存储结构包括多个网格mesh单元,每个mesh单元包括:多个路由器、多个仲裁器、多个存储单元、一个交叉开关结构和一个mesh数据交换节点;每个路由器连接一个计算单元,每个路由器连接一个仲裁器,并且每个路由器均与所述mesh数据交换节点相连;每个仲裁器均与所述mesh数据交换节点和所述交叉开关结构相连,所述交叉开关结构与多个存储单元相连,每相邻的两个mesh单元通过所述mesh数据交换节点相连;当所述数据存储结构执行数据读取操作时,实现权利要求1-10任意一项所述的数据寻址和返回方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211264127.5A CN115328828B (zh) | 2022-10-17 | 2022-10-17 | 数据存储系统及其数据存储结构的数据寻址和返回方法 |
PCT/CN2023/108914 WO2024082748A1 (zh) | 2022-10-17 | 2023-07-24 | 数据存储系统及其数据存储结构的数据寻址和返回方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211264127.5A CN115328828B (zh) | 2022-10-17 | 2022-10-17 | 数据存储系统及其数据存储结构的数据寻址和返回方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115328828A CN115328828A (zh) | 2022-11-11 |
CN115328828B true CN115328828B (zh) | 2023-01-24 |
Family
ID=83915506
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211264127.5A Active CN115328828B (zh) | 2022-10-17 | 2022-10-17 | 数据存储系统及其数据存储结构的数据寻址和返回方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115328828B (zh) |
WO (1) | WO2024082748A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115328828B (zh) * | 2022-10-17 | 2023-01-24 | 中科声龙科技发展(北京)有限公司 | 数据存储系统及其数据存储结构的数据寻址和返回方法 |
CN115905088B (zh) * | 2022-12-27 | 2023-07-14 | 声龙(新加坡)私人有限公司 | 一种数据收集结构、方法、芯片和系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109150731A (zh) * | 2018-09-19 | 2019-01-04 | 合肥工业大学 | 基于卷积神经网络的多播包连接电路及其路由方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7450438B1 (en) * | 2002-06-20 | 2008-11-11 | Cisco Technology, Inc. | Crossbar apparatus for a forwarding table memory in a router |
CN102035723A (zh) * | 2009-09-28 | 2011-04-27 | 清华大学 | 一种片上网络路由及实现方法 |
CN103595627A (zh) * | 2013-11-28 | 2014-02-19 | 合肥工业大学 | 基于多播维序路由算法的NoC路由器及其路由算法 |
CN108053852B (zh) * | 2017-11-03 | 2020-05-19 | 华中科技大学 | 一种基于交叉点阵列的阻变存储器的写入方法 |
CN114171070B (zh) * | 2021-11-11 | 2024-03-29 | 山东科技大学 | 一种基于忆阻器的存储电路及其存储方法 |
CN113986818B (zh) * | 2021-12-30 | 2022-04-08 | 中科声龙科技发展(北京)有限公司 | 芯片的地址重构方法、芯片、电子设备以及存储介质 |
CN114844827B (zh) * | 2022-05-05 | 2023-03-28 | 浙江大学 | 一种用于片上网络芯片的基于共享存储的生成树路由硬件架构及方法 |
CN114928578B (zh) * | 2022-07-19 | 2022-09-16 | 中科声龙科技发展(北京)有限公司 | 芯片结构 |
CN115328828B (zh) * | 2022-10-17 | 2023-01-24 | 中科声龙科技发展(北京)有限公司 | 数据存储系统及其数据存储结构的数据寻址和返回方法 |
-
2022
- 2022-10-17 CN CN202211264127.5A patent/CN115328828B/zh active Active
-
2023
- 2023-07-24 WO PCT/CN2023/108914 patent/WO2024082748A1/zh unknown
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109150731A (zh) * | 2018-09-19 | 2019-01-04 | 合肥工业大学 | 基于卷积神经网络的多播包连接电路及其路由方法 |
Also Published As
Publication number | Publication date |
---|---|
CN115328828A (zh) | 2022-11-11 |
WO2024082748A1 (zh) | 2024-04-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115328828B (zh) | 数据存储系统及其数据存储结构的数据寻址和返回方法 | |
US11671329B2 (en) | Computation of network flooding topologies | |
US8010557B2 (en) | Retrieving method for fixed length data | |
US20060206778A1 (en) | LDPC decoder for DVB-S2 decoding | |
CN108259328B (zh) | 报文转发方法及装置 | |
CN101667958A (zh) | 选择哈希函数的方法、存储及查找路由表的方法及装置 | |
US8132075B2 (en) | Memory mapping for parallel turbo decoding | |
CN109032533B (zh) | 一种数据存储方法、装置和设备 | |
CN110460529B (zh) | 一种内容路由器转发信息库存储结构的数据处理方法和芯片 | |
CN114925018B (zh) | 片上交叉开关系统及芯片 | |
JPH11341076A (ja) | ネットワ―ク中継装置及びネットワ―ク次転送先検索方法 | |
US9916274B2 (en) | Apparatus and method for on-chip crossbar design in a network switch using benes network | |
US20080028148A1 (en) | Integrated memory device and method of operating a memory device | |
US20190058547A1 (en) | Efficient survivor memory architecture for successive cancellation list decoding of channel polarization codes | |
CN113328948B (zh) | 资源管理方法、装置、网络设备及计算机可读存储介质 | |
CN113824633B (zh) | 园区网中路由发布方法及网络设备 | |
US20190190699A1 (en) | Efficient hash table key storage | |
CN114389989B (zh) | 多级下一跳路由处理方法及装置 | |
CN114006813B (zh) | 一种虚拟专线分配的路由动态生成方法及系统 | |
CN104584441A (zh) | 为并行turbo解码确定蝴蝶网络的控制位 | |
Horovitz et al. | On the capacity of non-binary write-once memory | |
RU2331937C2 (ru) | Способ запоминания цифровой информации | |
CN107622157B (zh) | 一种追踪电路时序路径连接性的方法 | |
WO2021150678A1 (en) | Computation of a network flooding topology | |
CN115951861A (zh) | 一种msm在多gpu下的优化方法及装置 |
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 | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20230425 Address after: 10 Jialeng Road, Singapore # 09-11 Patentee after: Shenglong (Singapore) Pte. Ltd. Address before: 1605, floor 16, No. 9, North Fourth Ring West Road, Haidian District, Beijing 100080 Patentee before: SUNLUNE TECHNOLOGY DEVELOPMENT (BEIJING) Co.,Ltd. |