WO2024082748A1 - 数据存储系统及其数据存储结构的数据寻址和返回方法 - Google Patents

数据存储系统及其数据存储结构的数据寻址和返回方法 Download PDF

Info

Publication number
WO2024082748A1
WO2024082748A1 PCT/CN2023/108914 CN2023108914W WO2024082748A1 WO 2024082748 A1 WO2024082748 A1 WO 2024082748A1 CN 2023108914 W CN2023108914 W CN 2023108914W WO 2024082748 A1 WO2024082748 A1 WO 2024082748A1
Authority
WO
WIPO (PCT)
Prior art keywords
address
mesh
addressing
data
level
Prior art date
Application number
PCT/CN2023/108914
Other languages
English (en)
French (fr)
Inventor
石昊明
刘明
汪福全
Original Assignee
声龙(新加坡)私人有限公司
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 声龙(新加坡)私人有限公司 filed Critical 声龙(新加坡)私人有限公司
Publication of WO2024082748A1 publication Critical patent/WO2024082748A1/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1647Handling requests for interconnection or transfer for access to memory bus based on arbitration with interleaved bank access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0207Addressing or allocation; Relocation with multidimensional access, e.g. row/column, matrix
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1684Details of memory controller using multiple buses

Definitions

  • the embodiments of the present disclosure relate to, but are not limited to, the field of data access technology, and in particular to a data storage system and a data addressing and returning method of a data storage structure thereof.
  • the present disclosure provides a data addressing and returning method for a data storage structure, wherein the data storage structure is a combination structure of a mesh and a cross switch, wherein the combination structure includes a plurality of mesh units, each of which includes: a plurality of routers, a plurality of arbitrators, a plurality of storage units, a cross switch structure and a mesh data exchange node; each router is connected to a computing unit, each The router is connected to an arbitrator, and each router is connected to the mesh data exchange node; each arbitrator is connected to the mesh data exchange node and the cross switch structure, the cross switch structure is connected to a plurality of storage units, and each two adjacent mesh units are connected through the mesh data exchange node; the data addressing and returning method includes:
  • the calculation unit calculates the location of the destination address according to the original address generated by the calculation unit, and creates an addressing address list according to the location of the destination address;
  • the router, the arbitrator, the crossbar switch structure and the mesh data switching node perform data addressing according to the addressing address list;
  • the target data obtained after data addressing is returned along the reverse route of data addressing.
  • the disclosed embodiment also provides a data storage system, which may include a data storage structure, wherein the data storage structure includes a plurality of mesh units, each mesh unit includes: a plurality of routers, a plurality of arbitrators, a plurality of storage units, a cross switch structure and a mesh data exchange node; each router is connected to a computing unit, each router is connected to an arbitrator, and each router is connected to the mesh data exchange node; each arbitrator is connected to the mesh data exchange node and the cross switch structure, the cross switch structure is connected to a plurality of storage units, and every two adjacent mesh units are connected via the mesh data exchange node; when the data storage structure performs a data read operation, the data addressing and return method is implemented.
  • the data storage structure includes a plurality of mesh units, each mesh unit includes: a plurality of routers, a plurality of arbitrators, a plurality of storage units, a cross switch structure and a mesh data exchange node; each router is connected to a computing unit, each router is connected
  • FIG1 is a schematic diagram of a data storage structure according to an embodiment of the present disclosure.
  • FIG2 is a flow chart of a data addressing and returning method according to an embodiment of the present disclosure
  • FIG3 is a schematic diagram of an example of a data storage structure according to an embodiment of the present disclosure.
  • FIG4 is a schematic diagram of another example of a data storage structure according to an embodiment of the present disclosure.
  • FIG. 5 is a flow chart of a method for calculating the location of a destination address according to an original address by a calculation unit according to an embodiment of the present disclosure
  • FIG6 is a flow chart of a method for performing data addressing according to an addressing address list by a router, an arbitrator, a crossbar switch structure, and a mesh data exchange node according to an embodiment of the present disclosure
  • FIG. 7 is a block diagram of the data storage system according to an embodiment of the present disclosure.
  • the specification may have presented the method and/or process as a particular sequence of steps. However, to the extent that the method or process does not rely on the particular order of steps described herein, the method or process should not be limited to the steps in the particular order described. As will be appreciated by one of ordinary skill in the art, other sequences of steps are possible. Therefore, the descriptions set forth herein may be limited to the steps described in the specification. The specific order of the steps of the method and/or process should not be construed as a limitation on the claims. In addition, the claims for the method and/or process should not be limited to performing their steps in the order written, and those skilled in the art can easily understand that these orders can be changed without departing from the scope of the present disclosure.
  • the data storage structure may be a combination structure of a mesh and a cross switch.
  • the combination structure may include a plurality of mesh units 1.
  • Each mesh unit 1 may include: a plurality of routers 11, a plurality of arbitrators 12, a cross switch structure 13, a mesh data exchange node 14 and a plurality of storage units 3.
  • Each router 11 is connected to a computing unit 2, each router 11 is connected to an arbitrator 12, and each router 11 is connected to the mesh data exchange node 14.
  • Each arbitrator 12 is connected to the mesh data exchange node 14 and the cross switch structure 13.
  • the cross switch structure 13 is connected to a plurality of storage units 3. Every two adjacent mesh units 1 are connected via the mesh data exchange node 14.
  • the data addressing and returning method may include steps S101-S103:
  • the calculation unit calculates the location of the destination address according to the original address generated by the calculation unit, and the calculation unit creates an addressing address list according to the location of the destination address;
  • the beneficial effects of the solution of this embodiment include: enabling any computing unit connected to the mesh network and the cross switch combination structure to access any connected storage unit, and achieving smooth return of target data through the target data original path return strategy.
  • the combined structure of mesh and cross switch may include K (K is a positive integer) interconnected mesh units 1, which can be respectively recorded as 1_1, 1_2, 1_3, 1_4, ..., 1_K-1, 1_K; each mesh unit 1 may include: n routers 11 (n is a positive integer), which can be respectively recorded as 11_1, 11_2, 11_3, ..., 11_n, n arbitrators 12, which can be respectively recorded as 12_1, 12_2, 12_3, ..., 12_n, a cross switch structure 13 and a mesh data exchange node 14.
  • a computing unit 2 is connected to a router 11, and each computing unit 2 is connected to an independent router 11, for example, routers 11_1, 11_2, 11_3, ..., 11_n are respectively connected to one computing unit 2; each router 11 is connected to an independent arbitrator 12, for example, routers 11_1, 11_2, 11_3, ..., 11_n are respectively connected to arbitrators 12_1, 12_2, 12_3, ..., 12_n; routers 11_1, 11_2, 11_3, ..., 11_n and arbitrators 12_1, 12_2, 12_3, ..., 12_n are all connected to a mesh data exchange node 14, and arbitrators 12_1, 12_2, 12_3, ..., 12_n are respectively connected to mesh data exchange nodes 14.
  • the cross switch structure 13 is connected to m storage units 3 (m is a positive integer); the mesh data exchange nodes 14 in adjacent mesh units 1_1 and mesh units 1_2 are connected to each other, the mesh data exchange nodes 14 in adjacent mesh units 1_1 and mesh units 1_3 are connected to each other, the mesh data exchange nodes 14 in adjacent mesh units 1_2 and mesh units 1_4 are connected to each other, ..., and so on, the mesh data exchange nodes 14 in any two adjacent mesh units 1 are connected to each other, so that any two mesh units 1 in the entire combined structure can be connected through multiple mesh data exchange nodes 14.
  • the crossbar switch structure 13 can realize full connection of A computing units and D storage units.
  • the crossbar switch structure 13 may include a multi-level crossbar switch, for example, a three-level crossbar switch, including:
  • Second-level crossbar switch a b ⁇ b crossbar switches
  • the third-level cross switch the address side includes: A 1 ⁇ (D/A) cross switches, and the data side includes: A (D/A) ⁇ 1 cross switches.
  • a crossbar switch also known as a crossbar, in the field of integrated circuits, has multiple input ports (referred to as input ports) and multiple output ports (referred to as output ports). It combines switches and lines into a matrix structure to achieve the network interconnection function of multiple input ports and multiple output ports.
  • the first-level cross switch in Figure 3 is five 6 ⁇ 6 cross switches (for example, CB0_6 ⁇ 6_A0, CB0_6 ⁇ 6_A1, CB0_6 ⁇ 6_A2, CB0_6 ⁇ 6_A3, CB0_6 ⁇ 6_A4), each 6 ⁇ 6 cross switch includes 6 input ports and 6 output ports, each input port is connected to an arbitrator 12, and each output port can be connected to an input port of a cross switch in the second-level cross switch.
  • 6 ⁇ 6 cross switches for example, CB0_6 ⁇ 6_A0, CB0_6 ⁇ 6_A1, CB0_6 ⁇ 6_A2, CB0_6 ⁇ 6_A3, CB0_6 ⁇ 6_A4
  • each 6 ⁇ 6 cross switch includes 6 input ports and 6 output ports, each input port is connected to an arbitrator 12, and each output port can be connected to an input port of a cross switch in the second-level cross switch.
  • each 5 ⁇ 5 cross switch includes 5 input ports and 5 output ports
  • the three-level crossbar switch may also be configured as a symmetrical structure, as shown in FIG. 4 .
  • the first-level cross switch is five 6 ⁇ 6 cross switches (for example, it may also include CB0_6 ⁇ 6_D0, CB0_6 ⁇ 6_D1, CB0_6 ⁇ 6_D2, CB0_6 ⁇ 6_D3, and CB0_6 ⁇ 6_D4), each 6 ⁇ 6 cross switch includes six input ports and six output ports, each input port is connected to an arbitrator 12, and each output port can be connected to an input port of a cross switch in the second-level cross switch.
  • each 6 ⁇ 6 cross switch includes six input ports and six output ports, each input port is connected to an arbitrator 12, and each output port can be connected to an input port of a cross switch in the second-level cross switch.
  • data addressing may be performed based on the above data storage structure and the acquired target data may be returned in the original path according to the addressing route.
  • the location of the destination address may include: the mesh unit address, the address and exit of each level of the crossbar switch structure to be passed, the storage unit address, and the storage address in the storage unit; the calculation of the location of the destination address by the calculation unit according to the original address generated by the calculation unit, as shown in FIG5, may include steps S201-S203:
  • calculating the mesh unit address and a storage unit address in the mesh unit corresponding to the mesh unit address according to the original address may include:
  • the storage unit address in the mesh unit corresponding to the mesh unit address is calculated according to the theoretical storage unit address and a preset fourth calculation formula.
  • the theoretical storage unit address may be calculated according to the original address and a preset first calculation formula.
  • the original address generated by the calculation unit 2 is addr_ori, Covering all storage unit addresses, the calculation unit 2 can resolve the original address into the address of each level of addressing in the mesh and crossbar switch combination structure (that is, the location of the destination address). In the following calculation, the result of the division is required to be rounded down, and % is the remainder operation.
  • addr_base is the theoretical storage unit address
  • addr_ori is the original address
  • D is the number of storage units connected to each mesh unit
  • D is a positive integer
  • M is the number of mesh units
  • M is a positive integer
  • the theoretical storage unit address may refer to the address of the storage unit where the destination address should be located, which is determined from all storage units 3 connected to M mesh units 1 (i.e., 0 to D ⁇ M-1 storage units).
  • the storage address in the storage unit may be calculated according to the theoretical storage unit address and a preset second calculation formula.
  • addr_depth is the storage address in the storage unit, and addr_depth can be translated into the address depth corresponding to the target address in the storage unit.
  • the total address depth of each storage unit may be Y, and addr_depth may be any one of address depths 0 to Y-1 in the storage unit.
  • the mesh unit address may be calculated according to the theoretical storage unit address and a preset third calculation formula.
  • dest_mesh is the mesh unit address.
  • dest_mesh may be the address of any one mesh unit 1 among 0 to M-1 mesh units 1 .
  • the storage unit address in the mesh unit corresponding to the mesh unit address may be calculated according to the theoretical storage unit address and a preset fourth calculation formula.
  • addr_cb_map is the storage unit address in the mesh unit corresponding to the mesh unit address; that is, the address of the storage unit where the destination address should be located is determined from all storage units 3 (that is, 0 to D-1 storage units) connected to one mesh unit 1.
  • the lowest level crossbar switch address in the crossbar switch structure in the mesh unit corresponding to the mesh unit address may be calculated according to the storage unit address in the mesh unit corresponding to the mesh unit address and a preset fifth calculation formula.
  • cb_sel is the crossbar switch address of the lowest level; A is the number of computing units connected to each mesh unit.
  • the crossbar switch address of the lowest level is the crossbar switch address of the third level.
  • cb_sel may be the address of one crossbar switch among 0 to A-1 crossbar switches in the third-level crossbar switches in a mesh unit 1 where the destination address is located.
  • the exit of the lowest level crossbar switch in the crossbar switch structure within the mesh unit corresponding to the mesh unit address can be calculated according to the storage unit address within the mesh unit corresponding to the mesh unit address and a preset sixth calculation formula.
  • mc_sel is the exit of the lowest level cross switch.
  • the crossbar switch address of the lowest level is the crossbar switch address of the third level.
  • mc_sel may be an address of one of the 0 to D/A-1 outlets of one of the third-stage crossbar switches.
  • S203 Calculate addresses of the cross switches from the first level to the second-to-last level in the cross switch structure according to the cross switch address of the lowest level in the cross switch structure.
  • the step of calculating the addresses of the crossbar switches of the first level to the second to last level in the crossbar switch structure according to the crossbar switch address of the lowest level in the crossbar switch structure may include:
  • the first-level cross switch address is calculated according to the third-level cross switch address and a preset eighth calculation formula.
  • cb_l1_sel is the second-level crossbar switch address; that is, cb_l1_sel may be the address of one crossbar switch among 0 to a-1 crossbar switches in the second-level crossbar switches in a mesh unit 1 where the destination address is located.
  • one exit may be further selected from 0 to b-1 exits in the crossbar switch corresponding to cb_l1_sel.
  • cb_l0_sel is the first-level crossbar switch address; that is, cb_l0_sel may be the address of one crossbar switch among 0 to b-1 crossbar switches in the first-level crossbar switch in a mesh unit 1 where the destination address is located.
  • one exit may be further selected from exits 0 to a-1 in the crossbar switch corresponding to cb_l0_sel.
  • the creating, by the calculation unit, an addressing address list according to the location of the destination address may include:
  • the mesh unit address where the destination address is located, the corresponding cross switch address of each level before the lowest level, the corresponding lowest level cross switch outlet and the storage address in the storage unit are written into the preset addressing address field in sequence according to the byte address order from high to low to form the addressing address list.
  • the cross switch structure includes: a first-level cross switch, a second-level cross switch and a third-level cross switch
  • the third-level cross switch is the lowest-level cross switch
  • the address of each level of cross switch before the lowest level includes: a first-level cross switch address and a second-level cross switch address.
  • the addresses of the locations where the destination addresses calculated in the foregoing content are located may be concatenated to obtain an addressing address list alu_addr, and the structure of alu_addr may be as shown in Table 1.
  • dest_mesh (mesh unit address) is in the high position and addr_depth (address depth) is in the low position.
  • the router, the arbitrator, the crossbar switch structure and the mesh data switching node perform data addressing according to the addressing address list, as shown in FIG6 , and may include steps S301-S305:
  • the router updates the addressing address list according to information in the addressing address list, and transmits the updated addressing address list to the arbitrator or the mesh data exchange node.
  • the router updates the addressing address list according to the mesh unit address where the destination address in the addressing address list is located, obtains the addressing address list after the mesh unit is addressed, and routes the addressing address list after the mesh unit is addressed to the arbitrator or the mesh data exchange node.
  • the plurality of mesh units may include a first mesh unit;
  • the first mesh unit may include a plurality of first routers, a plurality of first arbitrators, a first cross switch structure and a first mesh data exchange node; each first router is connected to a first computing unit;
  • Each first router is connected to a first arbitrator, and the first cross switch structure is connected to a plurality of first storage units;
  • the router updates the addressing address list according to the information in the addressing address list, and transmits the updated addressing address list to the arbitrator or the mesh data exchange node, which may include:
  • a first router connected to any first computing unit receives the addressing address list sent by the first computing unit, and records the address of the first mesh unit where the first router is located;
  • the first router extracts the mesh unit address where the destination address is located in the addressing address list
  • the mesh unit address where the destination address is located in the addressing address list is deleted to obtain an addressing address list after the mesh unit is addressed; the addressing address list after the mesh unit is addressed and the address of the first mesh unit where the first router is located are sent to a first arbitrator connected to the first router.
  • the first router may record the address src_mesh of the first mesh unit where the first router is located, extract the record according to the dest_mesh information in alu_addr (Table 1): dest_mesh (i.e., the mesh unit address where the destination address is located, which may also be referred to as the target mesh unit address), compare src_mesh with dest_mesh, if src_mesh and dest_mesh are inconsistent, dest_mesh is not the address of the first mesh unit where the first router is located, then alu_addr (Table 1) may be updated, that is, dest_mesh in alu_addr (Table 1) is deleted (because The mesh unit has been addressed according to dest_mesh), and mesh_addr (i.e., the addressing address list after the mesh unit is addressed) is obtained.
  • dest_mesh i.e., the mesh unit address where the destination address is located, which may also be referred to as the target mesh unit address
  • the addressing address list after the mesh unit address where the destination address is located is deleted, that is, the addressing address list after the mesh unit is addressed is mesh_addr, that is, after dest_mesh in alu_addr (Table 1) is deleted, it is mesh_addr, as shown in Table 2.
  • the first router may send mesh_addr (Table 2), src_mesh (as shown in Table 3) and dest_mesh (as shown in Table 4) together to the first mesh data exchange node, and the first mesh data exchange node sends the received dest_mesh (Table 4) to the mesh data exchange node included in the target mesh unit.
  • dest_mesh is the address of the first mesh unit where the first router is located, and then mesh_addr (Table 2) can be renamed to cb_addr (Table 2) and sent together with src_mesh (Table 3) to the arbitrator (i.e., the first arbitrator) to which the first router is connected.
  • the mesh data exchange node sends the updated address list to the target mesh data exchange node.
  • the mesh data exchange node sends the mesh unit addressing post-addressing address list to the target mesh data exchange node according to the mesh unit address where the destination address in the mesh unit addressing post-addressing address list is located, so that the target mesh data exchange node sends the mesh unit addressing post-addressing address list to the arbitrator corresponding to the target mesh data exchange node.
  • the mesh data exchange node sending the updated address list to the target mesh data exchange node may include:
  • the address list (Table 2)
  • the address of the first mesh unit where the first router is located (Table 3)
  • the mesh unit address where the destination address is located (Table 4)
  • the destination mesh data exchange node is determined according to the mesh unit address where the destination address is located (Table 4);
  • the first mesh data exchange node sends the mesh unit addressing address list (Table 2) and the address of the first mesh unit where the first router is located (Table 3) to the destination mesh data exchange node;
  • the destination mesh data exchange node sends the mesh unit addressed address list and the address of the first mesh unit where the first router is located to the arbitrator of the mesh unit where the destination mesh data exchange node is located.
  • the first mesh data exchange node determines the destination mesh unit according to dest_mesh, thereby sending cb_addr (Table 2) and src_mesh (Table 3) to the destination mesh data exchange node of the mesh unit, which is forwarded by the destination mesh data exchange node to the arbitrator of the mesh unit.
  • S303 The arbitrator sends the updated addressing address list sent from the mesh data exchange node or router to the connected crossbar switch structure.
  • the arbitrator receives the mesh unit addressing post-addressing address list sent by a mesh data exchange node or a router, and sends the mesh unit addressing post-addressing address list to the connected cross switch structure according to the first-level cross switch address in the mesh unit addressing post-addressing address list.
  • the arbitrator sends the updated address list sent from the mesh data switching node or router to the connected crossbar switch structure, which may include:
  • the first arbitrator connected to the first router or the arbitrator of the mesh unit where the destination mesh data exchange node is located receives the mesh unit addressing post-addressing address list (Table 2), the address of the first mesh unit where the first router is located, and the address of the mesh unit where the destination address is located, the address of the first mesh unit where the first router is located is saved, and the mesh unit addressing post-addressing address list and the address of the first mesh unit where the first router is located are sent to the first-level cross switch address corresponding to the mesh unit addressing post-addressing address list.
  • First level crossbar switch When the first arbitrator connected to the first router or the arbitrator of the mesh unit where the destination mesh data exchange node is located receives the mesh unit addressing post-addressing address list (Table 2), the address of the first mesh unit where the first router is located, and the address of the mesh unit where the destination address is located, the address of the first mesh unit where the first router is located is saved, and the mesh unit addressing post-addressing address list and the address of the first mesh unit where the first router
  • the arbitrator can receive data from a router and a mesh data exchange node. After any arbitrator receives cb_addr (Table 2) and src_mesh (Table 3), cb_addr (Table 2) can be renamed as cb_l0_addr (Table 2), and src_mesh can be recorded in a preset information storage address abt_id (as shown in Table 5).
  • abt_id as shown in Table 5
  • Table 5 is the address extracted by the arbitrator from Table 3 and stored in abt_id; the arbitrator can output cb_l0_addr (Table 2) and abt_id (Table 5) to the first-level cross switch in the cross switch structure.
  • the crossbar switch structure updates the updated addressing address list level by level, and sends the updated addressing address list level by level to the storage unit address where the destination address is located.
  • the crossbar switch structure may include: N-level crossbar switches; N is a positive integer; the crossbar switch structure updates the updated addressing address list level by level, and sends the updated addressing address list level by level to the storage unit address where the destination address is located, which may include:
  • the following operations are performed step by step between the first-level cross-switch and the N-1-level cross-switch: after each level of the cross-switch receives the updated addressing address list sent by the previous level, after the cross-switch of each level in the updated addressing address list saves the cross-switch address of each level in the updated addressing address list into a preset address field, the cross-switch address of each level in the updated addressing address list is deleted from the updated addressing address list to update the updated addressing address list again, and the exit of each level of the cross-switch is calculated according to the cross-switch address of each level, and the address field and the updated addressing address list are sent to the cross-switch of the next level according to the exit; wherein the address field has stored the address of the first mesh unit where the first router is located; the updated addressing address list received by the first level of the cross-switch is the addressing address list after the mesh unit is addressed;
  • the N-th level cross switch After the N-th level cross switch receives the updated addressing address list and the address field sent by the N-1-th level cross switch, the address field is saved and the exit of the N-th level cross switch in the updated addressing address list is deleted to implement the received updated address field.
  • the updated addressing address list and the received address field are sent to the connected storage unit through the outlet of the Nth level cross switch.
  • the cross switch structure includes: a first-level cross switch, a second-level cross switch and a third-level cross switch, and the third-level cross switch is a cross switch of the lowest level.
  • the cross switch structure includes: a first-level cross switch, a second-level cross switch and a third-level cross switch, and the third-level cross switch is a cross switch of the lowest level; wherein the address of each level of cross switches before the lowest level may include: a first-level cross switch address and a second-level cross switch address.
  • the cross switch structure updates the mesh unit addressing post-addressing address list level by level, and addresses the second-level cross switch address and the third-level cross switch exit level by level in the mesh unit addressing post-addressing address list updated level by level, and sends the mesh unit addressing post-addressing address list updated level by level to the storage unit address where the destination address is located.
  • the crossbar switch structure updates the updated addressing address list level by level and sends the updated addressing address list level by level to the storage unit address where the destination address is located:
  • the first-level crossbar switch corresponding to the first-level crossbar switch address receives the address list after mesh unit addressing (i.e., Table 2 renamed as cb_l0_addr) and the address of the first mesh unit (Table 5) where the first router is located, the first-level crossbar switch address is saved, and the first-level crossbar switch address in the address list after mesh unit addressing (Table 2) is deleted to update the address list after mesh unit addressing, and the first-level crossbar switch address list after addressing (Table 6) is obtained; the first-level crossbar switch exit is calculated according to the first-level crossbar switch address, and the first-level crossbar switch address list and the first address field composed of the first-level crossbar switch address and the address of the first mesh unit where the first router is located are sent to the second-level crossbar switch corresponding to the second-level crossbar switch address in the address list after the first-level crossbar switch addressing through the exit of the first-level crossbar switch;
  • Table 2 renamed as cb
  • the second-level cross switch corresponding to the second-level cross switch address receives the first-level cross switch addressing post-addressing address list (Table 6) and the first address field (Table 7), the second-level cross switch address is saved, and the second-level cross switch address in the first-level cross switch addressing post-addressing address list (Table 6) is deleted to implement the update of the first-level cross switch addressing post-addressing address list, and the second-level cross switch address is obtained.
  • the third-level cross switch corresponding to the outlet of the third-level cross switch receives the addressing address list (Table 8) and the second address field (Table 9) after the second-level cross switch is addressed, the second address field is saved, and the outlet of the third-level cross switch in the addressing address list (Table 8) after the second-level cross switch is addressed is deleted to implement the update of the addressing address list after the second-level cross switch is addressed, and the addressing address list (Table 10) after the third-level cross switch is addressed is obtained; the addressing address list (Table 10) after the third-level cross switch is addressed and the second address field are sent to the connected storage unit through the outlet of the third-level cross switch.
  • the first-level cross switch after receiving Table 2 renamed as cb_l0_addr and abt_id (Table 5), the first-level cross switch searches for which cross switch in the first level that the destination address needs to pass through according to cb_l0_sel, and determines the exit in the cross switch that needs to be passed through.
  • cb_l0_sel i.e., the first-level cross switch address, because the first-level cross switch address has been addressed
  • cb_l1_addr i.e., the address list after the first-level cross switch is addressed
  • Table 6 the first-level cross switch address cb_l0_sel is saved, i.e., saved in the preset information storage address cb_l1_id, wherein cb_l1_id also stores the content of Table 5, thereby obtaining Table 7, i.e., cb_l1_id (Table 7), which can be called the first address field
  • the first-level cross switch can send cb_l1_addr (Table 6) and cb_l1_id (Table 7) to the second-level cross switch.
  • the second-level crossbar switch receives cb_l1_addr (Table 6) to After obtaining cb_l1_id (Table 7), find which crossbar in the second-level crossbar that the destination address needs to pass through according to cb_l1_sel, and determine the exit that needs to be passed through in the crossbar.
  • Delete cb_l1_sel (i.e., the second-level crossbar address, because the second-level crossbar address has been addressed) from Table 6, obtain cb_l2_addr (i.e., the addressing address list after the second-level crossbar address is addressed), as shown in Table 8, and save the second-level crossbar address cb_l1_sel, i.e., save it in the preset information storage address cb_l2_id, where cb_l2_id also stores the content of Table 7, thereby obtaining Table 9, i.e., cb_l2_id (Table 9), which can be called the second address field, and the second-level crossbar can send cb_l2_addr (Table 8) and cb_l2_id (Table 9) to the third-level crossbar.
  • cb_l2_addr i.e., the addressing address list after the second-level crossbar address is addressed
  • the third-level cross switch after receiving cb_l2_addr (Table 8) and cb_l2_id (Table 9), the third-level cross switch searches for the exit of the third-level cross switch through which the destination address is to be addressed according to mc_sel (the exit of the third-level cross switch).
  • mc_sel i.e., the exit of the third-level cross switch, because the exit of the third-level cross switch has been addressed
  • addr_depth i.e., the storage address in the storage unit, or address depth
  • cb_l2_id is used as cb_l3_id, i.e., cb_l3_id (Table 9)
  • the third-level cross switch can send addr_depth (Table 10) and cb_l3_id (Table 9) to the connected storage unit.
  • the storage unit corresponding to the storage unit address where the destination address is located determines the storage location of the target data in the storage unit according to the addressing address list updated level by level, and completes the addressing.
  • the storage unit corresponding to the storage unit address where the destination address is located determines the storage location of the target data in the storage unit according to the storage address in the storage unit in the addressing address list after the mesh unit addressing is updated level by level, thereby completing the addressing.
  • the storage unit corresponding to the storage unit address where the destination address is located determines the storage location of the target data in the storage unit according to the addressing address list updated step by step.
  • Storage location, complete addressing can include:
  • the storage location of the target data is determined according to the storage address in the storage unit in the updated addressing address list to complete the addressing.
  • the storage unit searches for the storage location where the destination address is located according to addr_depth (address depth) in Table 10 to complete data address addressing.
  • the target data may be acquired from a corresponding storage location in a storage unit, and the target data may be returned in the original path according to the addressing address (ie, returned in the reverse path of the data addressing).
  • returning the target data obtained after data addressing according to the reverse route of data addressing may include:
  • the exit of each cross switch in the N-level cross switches during data addressing is used as the entry when the data is returned, and the entry of each cross switch during data addressing is used as the exit when the data is returned; and the address field is used as a data return address list;
  • the exit and entrance of each level of cross switch are reversely confirmed, and the data return address list and target data are uploaded level by level; wherein the data return address list is updated at each level of cross switch;
  • the arbitrator sends the data return address list and the target data received and returned by the first-level crossbar switch to the connected router;
  • the router to which the data is sent determines to send the target data to the connected computing unit according to the data return address list, or forward it to the target mesh data exchange node, so that the router corresponding to the target mesh data exchange node sends it to the corresponding computing unit.
  • the third-level cross switch uses the only data addressing entry as the only data return exit, and directly sends the data return address list and the target data to the second-level cross switch connected to the only data return exit;
  • the second-level cross switch determines, according to the second-level cross switch address in the data return address list, an entry for data addressing of the second-level cross switch as an exit for data return of the second-level cross switch, deletes the second-level cross switch address in the data return address list, and obtains a first updated data return address list; and sends the first updated data return address list and the target data to the first-level cross switch through the exit for data return of the second-level cross switch;
  • the first-level cross switch determines, according to the first-level cross switch address in the first updated data return address list, an entry for data addressing of the first-level cross switch as an exit for data return of the first-level cross switch, deletes the first-level cross switch address in the first updated data return address list, and obtains a second updated data return address list; and sends the second updated data return address list and the target data to the arbitrator through the exit for data return of the first-level cross switch;
  • the arbitrator sends the target data and the address of the first mesh unit where the first router is located to the connected router according to the address of the first mesh unit where the first router is located in the second updated data return address list;
  • the router to which the message is sent determines whether the address of the first mesh unit where the first router is located is consistent with the address of the mesh unit where the router is located. When the addresses are consistent, the target data is sent to the computing unit connected to the router; when the router determines that the address of the first mesh unit where the first router is located is inconsistent with the address of the mesh unit where the router is located, the target data is sent to the mesh data exchange node of the mesh unit where the router is located, and the mesh data exchange node forwards the target data to the mesh data exchange node corresponding to the received address of the first mesh unit where the first router is located, and the corresponding mesh data exchange node forwards the target data to the corresponding router, and the corresponding router sends the target data to the connected computing unit.
  • the second address field is cb_l3_id (Table 9), and the second-level crossbar switch address, the first-level crossbar switch address, and the address of the first mesh unit where the first router is located in the second address field are arranged in byte address order from high to low.
  • the storage unit returns cb_l3_id (Table 9) as the data return address list data_id (Table 9) together with the acquired target data.
  • the target data remains unchanged, and data_id (Table 9) will be updated accordingly as the return path reaches different locations.
  • the storage unit sends data_id (Table 9) and the target data to the third-level cross switch through the data addressing exit of the third-level cross switch during data addressing (as the entry when data is returned by the third-level cross switch).
  • the third-level cross switch has only one entry during data addressing, which is unique. Therefore, the data_id (Table 9) and the target data can be directly returned to the second-level cross switch through the unique data addressing entry (as the data return exit of the third-level cross switch in the data return process).
  • the second-level cross switch can determine the entry for data addressing of the second-level cross switch (as the exit for data return of the second-level cross switch) according to cb_l1_sel in data_id (Table 9), and then delete cb_l1_sel in data_id (Table 9), and obtain the first updated data return address list data_cb_l2_id.
  • data_cb_l2_id (Table 11) and target data can be sent to the first-level cross switch through the entry for data addressing of the second-level cross switch.
  • the first-level cross switch can determine the entry point of the first-level cross switch during data addressing (as the exit point of the first-level cross switch during data return) according to cb_l0_sel in data_cb_l2_id (Table 11), and then delete cb_l0_sel in data_id (Table 9), and obtain the second updated data return address list data_cb_l1_id.
  • data_cb_l1_id (Table 12) and target data can be sent to the arbitrator through the entry point of the first-level cross switch during data addressing, and the arbitrator forwards the data_cb_l1_id (Table 12) and the target data to the router connected to the arbitrator.
  • the router will first compare the src_mesh in data_cb_l1_id (Table 12) with the mesh unit address where it is located, and only send the target data to the connected computing unit after confirming that the two are consistent. If the two are inconsistent, the data will be transferred to the correct mesh unit through the mesh data forwarding node, and then sent to the corresponding computing unit by the router of the mesh unit.
  • the embodiment of the present disclosure also provides a data storage system X, as shown in Figures 1 and 7, which may include a data storage structure Z, wherein the data storage structure Z includes multiple mesh units, each mesh unit includes: multiple routers, multiple arbitrators, multiple storage units, a cross switch structure and a mesh data exchange node; each router is connected to a computing unit, each router is connected to an arbitrator, and each router is connected to the mesh data exchange node; each arbitrator is connected to the mesh data exchange node and the cross switch structure, the cross switch structure is connected to multiple storage units, and every two adjacent mesh units are connected through the mesh data exchange node; when the data storage structure performs a data read operation, the data addressing and return method is implemented.
  • the data storage structure Z includes multiple mesh units, each mesh unit includes: multiple routers, multiple arbitrators, multiple storage units, a cross switch structure and a mesh data exchange node; each router is connected to a computing unit, each router is connected to an arbitrator, and each router is connected to the mesh data exchange node; each arbitr
  • any embodiments in the data addressing and returning method embodiments are applicable to the system embodiments and will not be described one by one here.
  • Such software can be distributed on a computer-readable medium, which can include a computer storage medium (or non-transitory medium) and a communication medium (or temporary medium).
  • a computer storage medium includes volatile and non-volatile, removable and non-removable media implemented in any method or technology for storing information (such as computer-readable instructions, data structures, program modules or other data).
  • Computer storage media include, but are not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disk (DVD) or other optical disk storage, magnetic cassettes, magnetic tapes, disk storage or other magnetic storage devices, or any other medium that can be used to store desired information and can be accessed by a computer.
  • communication media typically embodies computer readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave or other transport mechanism, and may include any information delivery media.

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数据交换节点根据寻址地址列表进行数据寻址;将目标数据按照数据寻址的逆路线返回。

Description

数据存储系统及其数据存储结构的数据寻址和返回方法
交叉引用
本公开要求于2022年10月17日提交中国专利局、申请号为202211264127.5、发明名称为“数据存储系统及其数据存储结构的数据寻址和返回方法”的中国专利申请的优先权,其内容应理解为通过引用的方式并入本公开中。
技术领域
本公开实施例涉及但不限于数据存取技术领域,尤其涉及一种数据存储系统及其数据存储结构的数据寻址和返回方法。
背景技术
随着大数据、物联网、人工智能等应用的快速兴起,数据以爆发式的速度快速增长。海量数据的高效存储、迁移与处理成为当前电子信息领域的重大挑战之一。存算一体芯片技术的提出,旨在把传统以计算为中心的架构转变为以数据为中心的架构,其直接利用存储器进行数据处理,从而把数据存储与计算融合在同一个芯片当中。在存算一体芯片设计中,交叉开关是比较常用的结构。电路集成度呈现越来越高的趋势,性能的要求越来越高,交叉开关的规模越来越大,当单个交叉开关规模过大物理后端难以实现时,会使用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、将数据寻址后获得的目标数据按照数据寻址的逆路线进行返回。
该实施例方案的有益效果包括:使得mesh网络与交叉开关组合结构连接的任意一个计算单元对连接的任意一个存储单元进行访问,并且通过目标数据原路返回策略实现了目标数据的顺利返回。
在本公开的示例性实施例中,如图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=6、b=5 时,三级交叉开关的示例如图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_base%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-1个出口中的一个出口的地址。
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(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
在本公开的示例性实施例中,第一路由器可以将mesh_addr(表2)、src_mesh(如表3所示)以及dest_mesh(如表4所示)一起发送至第一mesh数据交换节点,由第一mesh数据交换节点根据接收到的dest_mesh(表4)发送到目标mesh单元所包含的mesh数据交换节点。
表3
表4
在本公开的示例性实施例中,如果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
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
表7
在本公开的示例性实施例中,第二级交叉开关接收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
表9
在本公开的示例性实施例中,第三级交叉开关接收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
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
在本公开的示例性实施例中,第一级交叉开关可以根据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
在本公开的示例性实施例中,与数据寻址时方法类似,路由器在接收到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数据交换节点根据所述寻址地址列表进行数据寻址;
    将数据寻址后获得的目标数据按照数据寻址的逆路线进行返回。
  2. 根据权利要求1所述的数据存储结构的数据寻址和返回方法,其中,所述目的地址所在位置包括:所在的mesh单元地址、所需经过的所述交叉开关结构中每级交叉开关地址和出口、所在的存储单元地址以及所述存储单元内的存储地址;所述由所述计算单元根据所述计算单元产生的原始地址计算目的地址所在位置,包括:根据所述原始地址计算所述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任意一项所述的数据寻址和返回方法。
PCT/CN2023/108914 2022-10-17 2023-07-24 数据存储系统及其数据存储结构的数据寻址和返回方法 WO2024082748A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202211264127.5 2022-10-17
CN202211264127.5A CN115328828B (zh) 2022-10-17 2022-10-17 数据存储系统及其数据存储结构的数据寻址和返回方法

Publications (1)

Publication Number Publication Date
WO2024082748A1 true WO2024082748A1 (zh) 2024-04-25

Family

ID=83915506

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2023/108914 WO2024082748A1 (zh) 2022-10-17 2023-07-24 数据存储系统及其数据存储结构的数据寻址和返回方法

Country Status (2)

Country Link
CN (1) CN115328828B (zh)
WO (1) WO2024082748A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
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 (5)

* Cited by examiner, † Cited by third party
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
CN103595627A (zh) * 2013-11-28 2014-02-19 合肥工业大学 基于多播维序路由算法的NoC路由器及其路由算法
CN113986818A (zh) * 2021-12-30 2022-01-28 中科声龙科技发展(北京)有限公司 芯片的地址重构方法、芯片、电子设备以及存储介质
CN114928578A (zh) * 2022-07-19 2022-08-19 中科声龙科技发展(北京)有限公司 芯片结构
CN115328828A (zh) * 2022-10-17 2022-11-11 中科声龙科技发展(北京)有限公司 数据存储系统及其数据存储结构的数据寻址和返回方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102035723A (zh) * 2009-09-28 2011-04-27 清华大学 一种片上网络路由及实现方法
CN108053852B (zh) * 2017-11-03 2020-05-19 华中科技大学 一种基于交叉点阵列的阻变存储器的写入方法
CN109150731B (zh) * 2018-09-19 2020-09-18 合肥工业大学 基于卷积神经网络的多播包连接电路及其路由方法
CN114171070B (zh) * 2021-11-11 2024-03-29 山东科技大学 一种基于忆阻器的存储电路及其存储方法
CN114844827B (zh) * 2022-05-05 2023-03-28 浙江大学 一种用于片上网络芯片的基于共享存储的生成树路由硬件架构及方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
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
CN103595627A (zh) * 2013-11-28 2014-02-19 合肥工业大学 基于多播维序路由算法的NoC路由器及其路由算法
CN113986818A (zh) * 2021-12-30 2022-01-28 中科声龙科技发展(北京)有限公司 芯片的地址重构方法、芯片、电子设备以及存储介质
CN114928578A (zh) * 2022-07-19 2022-08-19 中科声龙科技发展(北京)有限公司 芯片结构
CN115328828A (zh) * 2022-10-17 2022-11-11 中科声龙科技发展(北京)有限公司 数据存储系统及其数据存储结构的数据寻址和返回方法

Also Published As

Publication number Publication date
CN115328828A (zh) 2022-11-11
CN115328828B (zh) 2023-01-24

Similar Documents

Publication Publication Date Title
WO2024082748A1 (zh) 数据存储系统及其数据存储结构的数据寻址和返回方法
EP3035613B1 (en) Ccn routing using hardware-assisted hash tables
US10778583B2 (en) Chained longest prefix matching in programmable switch
US10050866B2 (en) Parallel top-K simple shortest paths discovery
JP2012524932A (ja) アドレス検索のためのデータ構造、方法、及びシステム
EP3057270A1 (en) Technologies for modular forwarding table scalability
CN106533992B (zh) 用于全连接网格拓扑结构的高速pci架构路由
US11182365B2 (en) Systems and methods for distributed storage of data across multiple hash tables
BR112019003145A2 (pt) compressão de tabelas de encaminhamento
EP3562098A1 (en) Entry creation for equal cost paths
US20090234841A1 (en) Retrieving Method for Fixed Length Data
CN110769079A (zh) 一种检索ip对应地理位置的方法及装置
US9197598B2 (en) MAC address distribution
US11838222B2 (en) In-line data identification on network
WO2016091027A1 (zh) 一种网络地址转换与访问控制列表规则聚合方法和装置
CN109726144A (zh) 一种数据报文的处理方法和装置
US20190190699A1 (en) Efficient hash table key storage
EP3301872A1 (en) Traffic control method and apparatus
CN113328948A (zh) 资源管理方法、装置、网络设备及计算机可读存储介质
CN107948072B (zh) 报文转发方法和装置
JP5144225B2 (ja) 情報検索装置、及び情報検索装置へのエントリ情報の登録方法
US10484304B2 (en) Determining actions to be immediately performed on a network packet with an application specific integrated circuit
US11095495B2 (en) Multi-result lookups
CN111669338B (zh) 一种报文转发方法、装置、高密度服务器及存储介质
JP3754043B2 (ja) データ検索装置

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 23878744

Country of ref document: EP

Kind code of ref document: A1