WO2011137813A2 - 先进可扩展接口总线以及相应的数据传输方法 - Google Patents

先进可扩展接口总线以及相应的数据传输方法 Download PDF

Info

Publication number
WO2011137813A2
WO2011137813A2 PCT/CN2011/074554 CN2011074554W WO2011137813A2 WO 2011137813 A2 WO2011137813 A2 WO 2011137813A2 CN 2011074554 W CN2011074554 W CN 2011074554W WO 2011137813 A2 WO2011137813 A2 WO 2011137813A2
Authority
WO
WIPO (PCT)
Prior art keywords
packet
basic unit
slave device
interface
route
Prior art date
Application number
PCT/CN2011/074554
Other languages
English (en)
French (fr)
Other versions
WO2011137813A3 (zh
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 华为技术有限公司
Priority to PCT/CN2011/074554 priority Critical patent/WO2011137813A2/zh
Priority to CN2011800005885A priority patent/CN102216920B/zh
Publication of WO2011137813A2 publication Critical patent/WO2011137813A2/zh
Publication of WO2011137813A3 publication Critical patent/WO2011137813A3/zh
Priority to US13/495,554 priority patent/US9058433B2/en

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/38Information transfer, e.g. on bus
    • 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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0038System on Chip

Definitions

  • the Advanced Extensible Interface is a high-performance system bus for interconnecting high-speed deep sub-micron integrated circuits.
  • the AXI protocol architecture is shown in Figure la.
  • the AXI transmission is based on five transmission channels.
  • AXI divides the transmission into five packets in the direction, which are the read request packets for the read operation (AR, Address Read), read data and response packets (R, Read) and write operation write request packets (AW, Address Write), write data packets (W, Write), write response packets (B, Back), where AR packets,
  • the AW packet and the W packet are sent to the slave device (Master), and the R packet and the B packet are packets returned from the device to the master device.
  • a typical read operation of AXI consists of an AR and a number of Rs.
  • a typical write operation of AXI consists of one AW, several Ws, and one B.
  • a single transmission consists of multiple packets and is tagged with the same device identification (ID, IDentity) number. Among them, the dependencies between the various packets are small, and there is no fixed phase relationship, thus supporting efficient outstanding, that is, the active device or the slave device can have several active (active) but unfinished operations. And sequential control by ID.
  • the AXI bus is built into a variety of complex on-chip bus architectures, including shared bus structures (Shared Bus), full-crossing bus structures (Crossbar) and other topologies to complete Multiple master devices and multiple slave devices are interconnected on-chip.
  • the multi-channel characteristics of the AXI bus itself also determine the number of its set of signal lines (about 300), so a 3x3 fully-crossed bus structure will have 2700 AXI signal lines, while 4x4 full-crossing Bus The structure has 4,800 AXI signal lines.
  • the inventors of the present invention found that in the scenario with more master devices and slave devices, if an existing full-cross bus structure is used to build the AXI bus, the signal lines The number will be so large that the chip will not be able to be routed at all, or even if it can be routed, the trace will be very long, resulting in a large delay, resulting in a significant drop in the frequency of the bus, affecting the performance of the bus;
  • the access and expansion of the AXI bus of this structure is also very difficult, and its routing mechanism is a single routing structure, which is easy to cause route blocking.
  • An advanced and expandable interface AXI bus including:
  • the AXI bus is an N 2 full-loop mesh (Mesh) bus structure, including an N ⁇ N basic unit, and the basic unit is a bus structure with a total crossover of 2 2 (ie, a Crossbar of 2 2 ),
  • the base unit includes two slave interface and two master interfaces; each slave interface on the base unit is connected to a master interface on another base unit to form a first path; wherein, N is A positive integer.
  • a data transmission method includes:
  • the basic unit is a 2 x 2 AXI full-cross bus structure, and the AXI bus is configured to construct an N 2 full-circular mesh Mesh bus structure by using the basic unit, where N is a positive integer, the basic unit The number is NXN.
  • the embodiment of the present invention adopts a 2 X 2 AXI full-cross bus structure as a basic unit, and then uses the basic unit to construct an N 2 full-cycle Mesh bus structure. Since the N 2 full-cycle Mesh bus structure is adopted, In the existing full-cross bus structure, the wiring is less, the complexity is lower, and the scalability is also strong. In addition, since the basic unit in the N 2 full-cycle Mesh bus structure is internally 2 X 2 AXI Fully cross-over bus structure, so the routing mechanism can be made more flexible. Moreover, since the multi-port structure is adopted, it is advantageous to set a plurality of routes to avoid the AXI bus congestion caused by the path blocking, and in the case of a large amount of data, the multiple routes can be utilized to implement the offloading.
  • Figure la is a schematic diagram of the AXI protocol architecture
  • Figure lb is a schematic diagram of an existing fully crossed bus structure
  • FIG. 2 is a schematic diagram of a basic unit in an AXI bus according to an embodiment of the present invention.
  • FIG. 3 is a structural diagram of an AXI bus with N being 3 according to an embodiment of the present invention.
  • FIG. 4 is a schematic diagram of a registration piece connected to a master device
  • FIG. 6 is a flowchart of a data transmission method according to an embodiment of the present invention.
  • FIG. 7 is a schematic diagram of a scenario of an AXI bus with N being 3 according to an embodiment of the present invention. detailed description
  • An AXI bus includes: the AXI bus is an N 2 full-circular mesh Mesh bus structure, including NN basic units, and the basic unit is a bus structure with a full AXI of 2 2 (ie, a Crossbar of 2 2 )
  • the basic unit includes two slave interfaces and two master interfaces; each slave interface on the base unit is connected to a master interface on another base unit to form a first path.
  • N is a positive integer, in order to avoid excessive network to cause excessive delay, N-likely taking a positive integer less than 8 is better. The following will be explained by way of example. As shown in FIG.
  • the figure is a schematic diagram of a basic unit having two slave interface and two master interfaces, specifically a first slave interface, a second slave interface, a first master interface, and a second master device interface, wherein the first slave device interface is respectively connected to the first master device interface and the second master device interface, and the second slave device interface is also respectively connected to the first master device interface and the second master device interface,
  • the dotted line in Figure 2 is a schematic diagram of a basic unit having two slave interface and two master interfaces, specifically a first slave interface, a second slave interface, a first master interface, and a second master device interface, wherein the first slave device interface is respectively connected to the first master device interface and the second master device interface, and the second slave device interface is also respectively connected to the first master device interface and the second master device interface, The dotted line in Figure 2.
  • first slave device interface and the second slave device interface are the same, and the structure and function between the first master device interface and the second master device interface are also the same.
  • first slave interface and the second slave interface are collectively referred to as a slave interface
  • first master interface and the second master interface are collectively referred to as a master interface.
  • the N 2 full-loop mesh (Mesh) bus structure is constructed by using the basic unit, so that each slave interface on the basic unit is connected to a master device interface on another basic unit, wherein, for convenience of description, the basic
  • the path formed by the connection between the units is referred to as the first path, that is, the first path refers to the path between the slave interface of one base unit and the master interface of another base unit.
  • the graph N is a configuration diagram of an AXI bus 3, in which AXI bus, including 2 3 (i.e., nine) basic units, in particular: a base unit, the base unit substantially ⁇ Unit C, Base Unit 0, Base Unit 5, Base Unit? , the basic unit 0, the basic unit H, and the basic unit I; wherein, the connection relationship between the units can be as follows:
  • the first master device interface of the base unit A is interfaced with the second slave device of the base unit A, and the second master device interface of the base unit A is interfaced with the first slave device of the base unit E;
  • the first master device interface of the base unit C is interfaced with the second slave device of the base unit E, and the second master device interface of the base unit C is interfaced with the first slave device of the base unit G;
  • the first master device interface of the base unit D is interfaced with the second slave device of the base unit C, and the second master device interface of the base unit D is interfaced with the first slave device of the base unit H;
  • the first master device interface of the base unit G is interfaced with the second slave device of the base unit F, and the second master device interface of the base unit G is interfaced with the first slave device of the base unit B;
  • the first master interface of the base unit I is interfaced with the second slave of the base unit B, and the second master interface of the base unit I is interfaced with the first slave of the base unit D.
  • connection between the basic units is referred to as the first path.
  • connection between the units in FIG. 3 can be specifically referred to.
  • a register slice is included, which is mainly used to connect a master device or a slave device, that is, the master device or the slave device can access the AXI bus through the registration piece.
  • the number of the registration slices may be set according to the requirements of the actual application.
  • the number of levels of the registration slice may be equal to the number of nodes on the first path (for the convenience of description, in the embodiment of the present invention, The description is made by taking the number of levels of the registration slice equal to the number of nodes on the first path as an example.
  • the number of stages of the registration slice is not particularly limited), wherein the node here refers to the master device or the slave device. . That is to say, on the first path, multiple master devices or slave devices can be inserted, and the master device and the slave device can have multiple nodes in turn.
  • a registration piece is used to access a master device or a slave device, so each time a master device or a slave device is inserted, it is necessary to add a primary registration slice.
  • a multiplex (MUX, Multiplex) module and a composite signal (COMP) module may be included.
  • the MUX module in the registration slice may be used to receive a read request packet, a write request packet, or a write data packet inserted by the connected master device;
  • the module may be configured to intercept the device identifier of the master device, and a read data and a response packet, or a write response packet that matches the device identifier;
  • the MUX module in the registration slice can be used to receive the read data and the response packet or the write response packet inserted by the connected slave device; at this time, the COMP module is It can be used to intercept a read request packet, a write request packet, and a corresponding write data packet whose address matches the preset setting address.
  • each base unit may have a function of aligning the write request packet and the write data packet received by the master device interface of the base unit.
  • the so-called alignment means that a certain correspondence is satisfied between the write request and the write data. If the write request packet and the write data packet are not aligned, but are sent separately, the data may be crossed and the bus may be deadlocked.
  • the basic unit is further configured to align the write request packet with the corresponding write data packet to ensure that the write request packet and the write data packet transmitted by the main device interface do not have an Outstanding function.
  • the new W data is the write data packet corresponding to the write request packet.
  • write request packet and the write data packet received by the master device interface of the basic unit are aligned, and the corresponding write data packet is determined for the write request packet.
  • this embodiment adopts a 2 x 2 AXI full-cross bus structure as a basic unit, and then uses the basic unit to construct an N 2 full-cycle Mesh bus structure, because the N 2 full-cycle Mesh bus structure is adopted. Therefore, compared with the existing full-cross bus structure, the wiring is less, the complexity is lower, and the scalability is also strong.
  • the basic unit in the N 2 full-cycle Mesh bus structure is internally used 2 2 AXI full-cross bus structure, so it can provide two slave interfaces and two master interfaces, which is beneficial to set multiple routes, making the routing mechanism more flexible, to avoid AXI bus congestion caused by path blocking, and In the case of a large amount of data, the multiple routes can also be utilized to implement the offloading.
  • an embodiment of the present invention further provides a data transmission method. Specifically, it can be as follows. In the present embodiment, description will be made from the viewpoint of the basic unit.
  • a data transmission method includes: receiving, by a master device interface of a basic unit, a data packet sent by a master device; transmitting, by using a slave device interface of the basic unit, the data packet to the destination slave device through the AXI bus; The interface receives the response packet returned from the device.
  • the basic unit is a 2 x 2 AXI full-cross bus structure, and the AXI bus is an N 2 full-cycle Mesh bus structure constructed by using the basic unit, where N is a positive integer, and the number of basic units is NXN
  • N is a positive integer
  • NXN the number of basic units
  • the 101 Receive, by using a master device interface of the basic unit, a data packet sent by the master device; where, the data The package can be a read request packet, a write request packet, or a write data packet.
  • the basic unit needs to select the route, that is, step 102, that is, the step "send the data packet to the destination slave device through the AXI bus through the slave interface of the basic unit", which can be as follows:
  • the route is selected according to the identity of the AXI bus, and the data packet is sent to the destination slave device through the selected route through the slave interface of the base unit.
  • AXI bus master identifier may include a device identifier and N 2 bit wide routing identifier; for example, the 32 full Mesh structures, if the master device is set to 6 bits (bits), compared with the route ID 32, That is 9bits, then, the identification of the bus with a total of 15 bits per transmission.
  • the route selection according to the identifier of the AXI bus may be: decoding the route identifier to determine a next hop node, for example, each bit in the route identifier may be used as a basic unit (ie, The decoding address of the 2x2 full cross bus is used.
  • 1 is the right interface of the basic unit (ie, the right main interface or the right slave interface), 0 is the left interface of the basic unit (ie, the left main interface or the left) Slave device interface), or, vice versa, that is, 0 is the right interface of the basic unit, 1 is the left interface of the basic unit; after the interface of the basic unit is determined, it can determine which basic unit of the next hop node, and Specifically, which interface is the basic unit of the next hop node.
  • the order of decoding can be from high to low, or from low to high, as follows:
  • Decoding the route identifier to determine the next hop node may specifically include:
  • the write request packet Upon receiving the read request packet, the write request packet, or the write data, the highest bit of the route identifier is decoded to determine the next hop node, and the route identifier is cyclically shifted to the left after decoding;
  • the write request packet Upon receiving the read request packet, the write request packet, or the write data, the lowest bit of the route identifier is decoded to determine the next hop node, and the route identifier is cyclically shifted right after decoding;
  • the highest bit of the route identifier is decoded to determine the next hop node, and the route identifier is cyclically shifted to the left after decoding.
  • the route identifier needs to be a full route, that is, the N 2 bits in the route identifier need to be full. Taking N as 3 as an example, 9 bits in the route identifier must be all valid, and the route must be decoded after 9 times. Going back to the starting point, that is, if the packet is not received from the device, the packet needs to be returned to the master device that sent the packet. In addition, if the slave device rejects the master device, then the slave device needs to reject the route identifier of the master device until the route is switched to avoid an error in the command (Order). After the packet is returned to the primary device, the primary device can switch routes and try again.
  • the response packet returned by the destination device is received by the slave device interface of the basic unit.
  • the response packet may be a read data and a response packet or a write response.
  • the specific information may be as follows:
  • step 103 that is, the step of "receiving the response packet returned by the destination slave device through the slave device interface of the basic unit" may specifically be:
  • step 103 ie, step "passes the basic Receiving, by the slave device interface of the unit, the response packet returned by the destination slave device may be specifically: receiving, by the slave device interface of the basic unit, the write response packet returned by the destination slave device.
  • the line condition of the AXI bus can be detected by using the all-one traversal request and the all-zero traversal request AXI bus, so as to detect whether the device is online, that is, the data transmission method may further include:
  • the all-one traversal request and the all-zero traversal request are used to traverse the AXI bus, wherein the route identifier in the all-one traversal request is set to all 1, and the route identifier in the all-zero traversal request is set to all zeros.
  • the route identifier in the all-one traversal request is "111111111", which is sequentially passed, E ⁇ I ⁇ D ⁇ H ⁇ C ⁇ G ⁇ B ⁇ F ⁇ A ⁇ E; all 0
  • the route identifier in the traversal request is "000000000", which in turn passes EGFHAIBDCE.
  • each basic unit may also have a write request received by the master device interface of the base unit.
  • the ability to package and write data packets which is:
  • the data transmission method may further include: aligning the received write request packet with the corresponding write data packet to ensure that the write request packet and the write data packet transmitted by the master device interface do not have an Outstanding function.
  • the newly-created W data is a write data packet corresponding to the write request packet.
  • this embodiment provides a data transmission method based on the AXI bus provided by the embodiment of the present invention. Since the AXI bus adopts a bus structure of AXI full crossover of 22 as a basic unit, and then utilizes the basic unit. Building an N 2 full-cycle Mesh bus structure, because of the N 2 full-cycle Mesh bus structure, the wiring is less, the complexity is lower, and the scalability is stronger than the existing full-cross bus structure. .
  • the data transmission method provided in this example also provides a flexible routing mechanism, thereby enhancing the security of the AXI bus and enabling bandwidth offloading compared to the single routing mechanism in the prior art.
  • this embodiment The provided data transmission method can also detect whether the device is online by using a full traversal request. According to the method described in the above embodiments, the following will be exemplified in further detail.
  • an AXI bus with N is 3, and 1 in the route identifier indicates the right interface of the base unit (ie, the right master interface or the right slave interface), where 0 is the left interface of the base unit. (ie, the left main device interface or the left slave device interface) is explained as an example.
  • the path between each basic unit is a first path, and a small dot on each first path indicates a registration slice, and the master device or the slave device can access the AXI bus through the registration piece.
  • the first master device accesses the AXI through the registration piece 001.
  • the bus, the first slave device accesses the AXI bus through the registration slice 003 on the first path between the base unit D and the base unit H.
  • the following describes an example in which the first master device reads data from the first slave device as an example.
  • the specific process can be as follows:
  • Step 1 The first master device sends a read request packet for reading data to the first slave device, where the read request packet carries an identifier of the AXI bus, where the identifier of the AXI bus includes an inherent identifier of the first master device (here, Primary device ID) and route ID.
  • the read request packet carries an identifier of the AXI bus, where the identifier of the AXI bus includes an inherent identifier of the first master device (here, Primary device ID) and route ID.
  • the routing identifier may be obtained by the first master device by querying the routing table according to the matching address of the first slave device, where the routing table may be stored in the first master device.
  • the routing of the read request packet needs to pass through the base unit H.
  • the main route is: A ⁇ E ⁇ G ⁇ B ⁇ D ⁇ H ⁇ C ⁇ G ⁇ F ⁇ A
  • the route identifier is "101011101”
  • the alternate route is AEIDHCGBFA:
  • the route identifier is "11111111 ⁇ .
  • Step 2 After receiving the read request packet, the master device interface of the basic unit A determines the node of the next hop according to the route identifier. For example, if the route identifier is "101011101", the most significant bit of the route identifier of the basic unit A is The bit is decoded. Since the bit of the highest bit is " ⁇ , which represents the master device interface on the right, the base unit A determines that the next hop node is the basic unit E, and the base unit A cyclically shifts the route identifier to the left, that is, the route. The flag changes to "010111011” and the read request packet is then sent to the base unit E.
  • Step 3 After receiving the read request packet, the basic unit E also determines the node of the next hop according to the route identifier "010111011". Since the bit of the highest bit is "0", the basic unit E determines the next hop node. For the basic unit G, the basic unit E moves the route identifier to the left, that is, the route identifier becomes "101110110", then the read request packet is sent to the base unit G.
  • Step 4 After receiving the read request packet, the basic unit G determines the node of the next hop according to the route identifier "101110110". Since the bit of the highest bit is " ⁇ , the basic unit E determines that the next hop node is basic. Unit B, the base unit G cyclically shifts the route identifier to the left, that is, the route identifier becomes "011101101", and then transmits the read request packet to the base unit B.
  • Step 6 After receiving the read request packet, the basic unit D determines the node of the next hop according to the route identifier "111011010". Since the bit of the highest bit is "1", the basic unit D determines that the next hop node is The basic unit H, the basic unit D cyclically shifts the route identifier to the left, that is, the route identifier becomes "110110101", and then transmits the read request packet to the base unit H.
  • Step 7 After receiving the read request packet, the basic unit H sends the read request packet to the first slave device according to the address of the first slave device in the read request packet. Then the route ID is rotated to the left, that is, the route ID becomes "101101011".
  • Step 9 The basic unit H determines the next hop node according to the route identifier "101101011". Since the read data and the response packet are transmitted at this time, the basic unit H can determine the next hop node according to the least significant bit in the route identifier "101101011", since the lowest bit is " ⁇ , therefore, the basic unit H Determining that the next hop node is the basic unit C, and then shifting the route identifier to the right, that is, the route identifier becomes "110110101", and then the read data and the response packet are sent to the basic unit C, where the read data and the response packet are carried.
  • Step 10 After receiving the read data and the response packet, the basic unit C determines the next hop node according to the route identifier “110110101”. Since the lowest bit is “ ⁇ , the basic unit H determines that the next hop node is the basic unit. G, then the route identifier is rotated to the right, that is, the route identifier becomes "111011010", and then the read data and the response packet are sent to the base unit G.
  • Step 11 After receiving the read data and the response packet, the basic unit G according to the route identifier "111011010" determines the next hop node. Since the least significant bit is "0", the basic unit H determines that the next hop node is the basic unit F, and then cyclically shifts the route identifier to the right, that is, the route identifier becomes "011101101" Then, the read data and the response packet are sent to the base unit F.
  • Step 12 After receiving the read data and the response packet, the basic unit F determines the next hop node according to the route identifier “011101101”. Since the lowest bit is “ ⁇ , the basic unit H determines that the next hop node is the basic unit. A, then the route identifier is rotated to the right, that is, the route identifier becomes "101110110", and then the read data and the response packet are sent to the base unit A.
  • Step 12 After receiving the read data and the response packet, the basic unit A sends the read data and the response packet to the first master device according to the read data and the master device identifier in the response packet.
  • Step 13 The first master device receives the read data and the response packet.
  • the flow when the first master device writes the data to the first slave device is similar to that of the first master device, and details are not described herein again. It should be noted that the above only uses the highest bit in the route identifier as the decoding of the previous slave device (ie, in the direction of the read request packet, the write request packet, or the write data), and returns with the highest bit in the route identifier.
  • the decoding of the master device (that is, the direction of the read data and the response packet and the write response packet) will be described as an example. It should be understood that the lowest bit in the route identifier can also be set as the decoding of the previous slave device, and the lowest bit in the route identifier is used as the decoding of the returned master device.
  • the implementation method is similar. Let me repeat.
  • the slave device may also be related to the order control cache, so as to buffer the operation that needs to be saved, that is, when receiving the read request packet, writing the request packet, or writing the data packet, the response is not immediately returned, but The cache is first performed, and the response is returned after a preset time.
  • the master device can know whether the device is online: For a normal access request, if the access request is not received by the slave device, but is returned to the master device that sent the access request, it indicates that the slave device is not online or does not exist.
  • the master device updates and optimizes the route: For the normal access request, if the access request is received from the device, the slave device can carry the hop count information in the returned information, and the master device receives the hop count information. After the returned information, the route is updated according to the hop count information carried therein to find a better path to spare.
  • a Cache Coherent query can be implemented, and the query has a node cache (Cache, ie, a cache cache), and if not, a normal request is sent to the memory to obtain The node caches the data image.
  • cache ie, a cache cache
  • the traversal can be used as broadcast information, and when the information finally arrives at the transmitting node, it indicates the end of the broadcast.
  • this embodiment provides a data transmission method based on the AXI bus provided by the embodiment of the present invention. Since the AXI bus adopts a 2 X 2 AXI full-cross bus structure as a basic unit, and then utilizes the basic The unit builds an N 2 full-cycle Mesh bus structure. Because of the N 2 full-cycle Mesh bus structure, the wiring is less, the complexity is lower, and the scalability is lower than that of the existing full-cross bus structure. Strong.
  • the data transmission method provided in this example also provides a flexible routing mechanism, thereby enhancing the security of the AXI bus and enabling bandwidth offloading compared to the single routing mechanism in the prior art.
  • this embodiment The provided data transmission method can also detect whether the device is online, or implement cache consistency detection, and information high-speed broadcasting through a full traversal request.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Multi Processors (AREA)
  • Small-Scale Networks (AREA)

Abstract

一种先进可扩展接口(AXI)总线,以2×2的AXI全交叉的总线结构为基本单元,所述基本单元上包括两个从设备接口和两个主设备接口;利用基本单元搭建一个N2全循环网状Mesh总线结构,使得基本单元上的每一个从设备接口都和另一个基本单元上的一个主设备接口相连,形成第一路径。一种数据传输方法,包括:通过基本单元的主设备接口接收主设备发送的数据包;通过基本单元的从设备接口,利用AXI总线将数据包发送给目的从设备;通过基本单元的从设备接口接收所述目的从设备返回的响应包;其中,所述基本单元为以2×2的AXI全交叉的总线结构,其中,AXI总线为利用基本单元搭建一个N2全循环网状总线结构。

Description

先进可扩展接口总线以及相应的数据传输方法 技术领域
本发明涉及通信技术领域,具体涉及一种先进可扩展接口( AXI, Advanced extensible Interface ) 总线以及相应的数据传输方法。
背景技术
先进可扩展接口 (AXI, Advanced extensible Interface )是适用于高速深 亚微米集成电路的互联的高性能系统总线。 AXI协议架构如图 la所示, AXI传 输基于五个传输通道进行, 在上层协议看来, AXI是将传输按方向分为五种包 ( Packet ) , 分别为读操作的读请求包( AR, Address Read ) 、 读数据及应答 包(R, Read )和写操作的写请求包( AW, Address Write ) 、 写数据包( W, Write )、 写应答包(B, Back ) , 其中 AR包、 AW包、 W包为主设备( Master ) 发送给从设备( Slave ) , R包及 B包为从设备返回给主设备的包。 AXI的典型 读操作由一个 AR和若干的 R组成, AXI的典型写操作由一个 AW、 若干的 W和 一个 B组成。 一次传输由多个包组成, 并以相同的设备标识(ID, IDentity )号 作为标记。 其中各种包之间的依赖性很小, 没有固定的相位关系, 因此支持高 效率的挂起传输 (Outstanding ) , 即主设备或从设备都可以存在若干激活 ( Active )但未完成的操作, 并通过 ID进行顺序控制。
AXI总线除了点对点的主设备和从设备连接外, 还被搭建为各种复杂的片 内总线结构, 包括共享总线结构( Shared Bus )、全交叉的总线结构( Crossbar ) 等拓朴类型, 以完成多个主设备和多个从设备在片内的互联。
参见图 lb,该图为现有的全交叉的总线结构的示意图,从图 lb中可以看出, 在该总线结构中,每个主设备都与所有的从设备具有连接关系, 所以只要同时 闭合多个交叉节点 (Crosspoint ) , 多个不同的主设备和从设备间就可以同时 传输数据, 使得所有端口可以同时线速交换数据。 其中, AXI总线信号线的数 量为一组 AXI连接的信号线数量、主设备端口数量和从设备端口数量三者之间 的乘积。 当端口数量线性增加的同时, 信号线的数量是以二次方增长。 而 AXI 总线本身多通道特性也决定了其一组信号线的数量非常多 (约 300根), 所以, 一个 3x3的全交叉的总线结构将会有 2700根 AXI信号线, 而 4x4的全交叉的总线 结构则有 4800根 AXI信号线。
在对现有技术的研究和实践过程中, 本发明的发明人发现, 在具有较多主 设备和从设备的场景下, 如果使用现有的全交叉的总线结构来搭建 AXI总线 的话, 信号线的数量将十分庞大, 以至于芯片布线时根本无法布通, 或者即使 能够布通,其走线也将非常长,致使延迟较大,从而导致总线的频率大幅下降, 影响总线的性能; 另外, 该结构的 AXI总线的接入和扩展也很困难, 而且其 路由机制为单一路由结构, 容易造成路由阻塞。
发明内容
本发明实施例提供一种 AXI总线结构以及相应的数据传输方法, 该 AXI总 线结构复杂度较低, 扩展性强, 且路由灵活。
一种先进可扩展接口 AXI总线, 包括:
所述 AXI总线为一个 N2全循环网状(Mesh )总线结构, 包括 N χ N基本单 元, 所述基本单元为以 2 2的 ΑΧΙ全交叉的总线结构(即 2 2的 Crossbar ), 所 述基本单元上包括两个从设备接口和两个主设备接口;所述基本单元上的每一 个从设备接口都和另一个基本单元上的一个主设备接口相连, 形成第一路径; 其中, N为正整数。
一种数据传输方法, 包括:
通过基本单元的主设备接口接收主设备发送的数据包;
通过基本单元的从设备接口, 利用先进可扩展接口 AXI总线将所述数据包 发送给目的从设备;
通过基本单元的从设备接口接收所述目的从设备返回的响应包;
其中, 所述基本单元为以 2 x 2的 AXI全交叉的总线结构, 所述 AXI总线为 利用所述基本单元搭建一个 N2全循环网状 Mesh总线结构, 其中, N为正整数, 基本单元的个数为 N X N个。
本发明实施例采用以 2 X 2的 AXI全交叉的总线结构为基本单元, 然后利用 该基本单元搭建一个 N2全循环 Mesh总线结构, 由于采用的是 N2全循环 Mesh总 线结构, 所以相对于现有的全交叉总线结构而言, 布线较少, 复杂度较低, 而 且扩展性也较强, 此外, 由于该 N2全循环 Mesh总线结构中的基本单元内部采 用的是 2 X 2的 AXI全交叉的总线结构, 所以可以使得路由机制更为灵活筒单, 而且由于采用的是多端口结构, 所以有利于设置多条路由, 以避免路径阻塞所 导致的 AXI总线堵塞, 而且在数据量较大的情况下, 还可以利用这多条路由实 现分流。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所 需要使用的附图作筒单地介绍,显而易见地, 下面描述中的附图仅仅是本发明 的一些实施例, 对于本领域技术人员来讲, 在不付出创造性劳动的前提下, 还 可以根据这些附图获得其他的附图。
图 la是 AXI协议架构的示意图;
图 lb是现有的全交叉的总线结构的示意图;
图 2是本发明实施例所提供的 AXI总线中基本单元的示意图;
图 3是本发明实施例所提供的 N为 3的一个 AXI总线的结构图;
图 4是注册片连接主设备时的示意图;
图 5是注册片连接从设备时的示意图;
图 6是本发明实施例所提供的一种数据传输方法的流程图;
图 7是本发明实施例所提供的 N为 3的一个 AXI总线的场景示意图。 具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清 楚、 完整地描述, 显然, 所描述的实施例仅仅是本发明一部分实施例, 而不是 全部的实施例。基于本发明中的实施例, 本领域技术人员在没有作出创造性劳 动前提下所获得的所有其他实施例, 都属于本发明保护的范围。
本发明实施例提供一种 AXI总线以及相应的数据传输方法。 以下分别进行 详细说明。 一种 AXI总线, 包括: 该 AXI总线为一个 N2全循环网状 Mesh总线结构, 包 括 N N个基本单元, 所述基本单元为以 2 2的 AXI全交叉的总线结构(即 2 2的 Crossbar ), 其中, 该基本单元上包括两个从设备接口和两个主设备接口; 该基本单元上的每一个从设备接口都和另一个基本单元上的一个主设备接口 相连, 形成第一路径。 其中, N为正整数, 为了避免网络过大以导致延迟过大, N—般取小于 8的正整数时效果较佳。 以下将举例进行说明。 如图 2所示, 该图为基本单元的示意图, 该基本单元具有两个从设备接口 和两个主设备接口, 具体为第一从设备接口、 第二从设备接口、 第一主设备接 口和第二主设备接口; 其中, 第一从设备接口分别与第一主设备接口和第二主 设备接口连接,第二从设备接口也分别与第一主设备接口和第二主设备接口连 接, 参见图 2中的虚线部分。
需说明的是, 其中, 第一从设备接口和第二从设备接口之间的结构和功能 都相同,第一主设备接口和第二主设备接口之间的结构和功能也都相同。其中, 在本发明实施例中, 第一从设备接口和第二从设备接口统称为从设备接口, 第 一主设备接口和第二主设备接口统称为主设备接口。
利用基本单元搭建一个 N2全循环网状(Mesh ) 总线结构, 使得该基本单 元上的每一个从设备接口都和另一个基本单元上的一个主设备接口相连, 其 中, 为了描述方便, 将基本单元之间连接所形成的路径称为第一路径, 即第一 路径指的是一个基本单元的从设备接口与另一个基本单元的主设备接口之间 的路径。
例如, 参见图 3 , 该图为一个 N为 3的一个 AXI总线的结构图, 在该 AXI总 线中, 包括有 32个(即 9个)基本单元, 具体为: 基本单元 、 基本单元^ 基 本单元 C、 基本单元0、 基本单元5、 基本单元?、 基本单元0、 基本单元 H和基 本单元 I; 其中, 各个单元之间的连接关系可以如下:
基本单元 A的第一主设备接口与基本单元 I的第二从设备接口连接,基本单 元 A的第二主设备接口与基本单元 E的第一从设备接口连接;
基本单元 B的第一主设备接口与基本单元 D的第二从设备接口连接, 基本 单元 B的第二主设备接口与基本单元 F的第一从设备接口连接;
基本单元 C的第一主设备接口与基本单元 E的第二从设备接口连接, 基本 单元 C的第二主设备接口与基本单元 G的第一从设备接口连接;
基本单元 D的第一主设备接口与基本单元 C的第二从设备接口连接, 基本 单元 D的第二主设备接口与基本单元 H的第一从设备接口连接;
基本单元 E的第一主设备接口与基本单元 G的第二从设备接口连接, 基本 单元 E的第二主设备接口与基本单元 I的第一从设备接口连接;
基本单元 F的第一主设备接口与基本单元 H的第二从设备接口连接, 基本 单元 F的第二主设备接口与基本单元 A的第一从设备接口连接;
基本单元 G的第一主设备接口与基本单元 F的第二从设备接口连接, 基本 单元 G的第二主设备接口与基本单元 B的第一从设备接口连接;
基本单元 H的第一主设备接口与基本单元 A的第二从设备接口连接, 基本 单元 H的第二主设备接口与基本单元 C的第一从设备接口连接;
基本单元 I的第一主设备接口与基本单元 B的第二从设备接口连接,基本单 元 I的第二主设备接口与基本单元 D的第一从设备接口连接。
其中, 基本单元之间连接所形成的路径称为第一路径, 比如, 具体可参见 图 3中各个单元之间的连线。
在该第一路径上, 包括有注册片(Register Slice ), 主要用于连接主设备或 从设备, 即主设备或从设备可以通过该注册片接入该 AXI总线。
该注册片的级数可以根据实际应用的需求进行设定, 比如, 可以设定该注 册片的级数与第一路径上的节点数相等(为了描述方便, 在本发明实施例中, 将均以注册片的级数与第一路径上的节点数相等为例进行说明, 应当理解的 是, 注册片的级数并没有特别的限制), 其中, 这里的节点指的是主设备或从 设备。 也就是说, 在第一路径上, 可以插入多个主设备或从设备, 而主设备和 从设备又可以拥有多个节点。一般的, 一个注册片用于接入一个主设备或从设 备, 所以, 每插入一个主设备或从设备, 就需要增加一级注册片。
其中, 注册片的结构可参见图 4和图 5。 在该注册片中, 可以包括多路复用 ( MUX, Multiplex )模块和复合信号 (COMP )模块。
参见图 4, 当注册片用于连接主设备时, 该注册片中的 MUX模块可以用于 接收该连接的主设备所插入的读请求包、写请求包或写数据包;而此时, COMP 模块则可以用于截获所述主设备的设备标识,以及与该设备标识匹配的读数据 及应答包、 或写应答包;
参见图 5, 当注册片用于连接从设备时该注册片中的 MUX模块可以用于接 收该连接的从设备所插入的读数据及应答包、 或写应答包; 而此时, COMP模 块则可以用于截获地址与预置设定地址匹配的读请求包、写请求包和对应的写 数据包。
为了防止 AXI总线上的写请求包和写数据包因传输分离而导致挂死或节 点插入数据困难等情况,每个基本单元还可以具有将基本单元的主设备接口所 收到的写请求包和写数据包对齐的功能。所谓对齐,指的是写请求与写数据之 间满足一定的对应性。 如果写请求包和写数据包不能对齐, 而是分离发送, 可 能会导致数据交叉而使得总线死锁。 即:
基本单元,还用于将所述写请求包和相应的写数据包对齐, 以保证其主设 备接口所传输的写请求包和写数据包不存在挂起传输(Outstanding )功能。 其 中, 每个基本单元在其主设备接口下面的节点收到写请求包时, 其后新起的 W 数据即为该写请求包所对应写数据包。
需说明的是, 将基本单元的主设备接口所收到的写请求包和写数据包对 齐, 指的是为写请求包确定其相应的写数据包。
由上可知, 本实施例采用以 2 x 2的 AXI全交叉的总线结构为基本单元, 然 后利用该基本单元搭建一个 N2全循环 Mesh总线结构, 由于采用的是 N2全循环 Mesh总线结构, 所以相对于现有的全交叉总线结构而言, 布线较少, 复杂度 较低, 而且扩展性也较强, 此外, 由于该 N2全循环 Mesh总线结构中的基本单 元内部采用的是 2 2的 AXI全交叉的总线结构, 所以可以提供两个从设备接口 和两个主设备接口, 有利于设置多条路由, 使得路由机制更为灵活, 以避免路 径阻塞所导致的 AXI总线堵塞, 而且在数据量较大的情况下, 还可以利用这多 条路由实现分流。
相应的, 本发明实施例还提供一种数据传输方法。 具体可以如下所述。 在本实施例中, 将从基本单元的角度进行描述。
一种数据传输方法, 包括: 通过基本单元的主设备接口接收主设备发送的 数据包; 通过基本单元的从设备接口, 利用 AXI总线将该数据包发送给目的从 设备; 通过基本单元的从设备接口接收目的从设备返回的响应包。
其中, 基本单元为以 2 x 2的 AXI全交叉的总线结构, AXI总线为利用该基 本单元搭建的一个 N2全循环 Mesh总线结构, 其中, N为正整数, 基本单元的个 数为 N X N个, 具体可参见前面实施例。
以下将举例对该数据传输方法进行说明。 参见图 6, 该数据传输方法的具 体流程可以如下:
101、 通过基本单元的主设备接口接收主设备发送的数据包; 其中, 数据 包具体可以为读请求包、 写请求包或写数据包。
102、 通过基本单元的从设备接口, 利用 AXI总线将数据包发送给目的从 设备。
例如, 通过基本单元的从设备接口, 利用 AXI总线将读请求包、 写请求包 或写数据包发送给目的从设备。
为了提高 AXI的安全性以及路由的灵活性, 主设备与目的从设备之间可以 具有多条(即至少两条)路由, 这样, 在需要时就可以利用这多条路由来实现 分流,而且,在当前路由发生故障或堵塞时,也可以利用其他的路由进行传输, 避免由于路由堵塞所导致的 AXI总线堵塞。 进行传送之前, 基本单元需要选择路由, 即此时步骤 102, 即步骤 "通过基本 单元的从设备接口, 利用 AXI总线将所述数据包发送给目的从设备" 具体可以 如下:
根据 AXI总线的标识选择路由, 通过基本单元的从设备接口, 利用选择的 路由将数据包发送给目的从设备。
此外,在当前路由发生故障或堵塞时,基本单元还可以选择其他路由来传 送当前的数据包, 即该数据传输方法还可以包括:
在选择的路由发生故障或堵塞时,确定发生故障或堵塞的时间是否超过预 置时间; 若是, 则根据 AXI总线的标识重新选择路由; 若否, 则在路由恢复正 常后, 继续利用当前路由传输数据包。
其中, AXI总线的标识即 AXI总线的 ID, 用于指示路由, 发送的请求每一 个节点都是用 AXI总线的 ID的最高 bit作为路由信息, 路由后, ID循环左移, 最 高位移到最低位。 返回应答则相反。 ID分成两部分, 一部分是主设备的代号, 另一部分是路由信息,路由信息就是发送的时候主设备根据记录的路由信息填 充的。 AXI总线的标识可以包括主设备标识和 N2位宽的路由标识; 例如, 在该 32全循环 Mesh总线结构中, 如果主设备标识为 6个比特(bits ), 路由标识则为 32, 即 9bits, 那么, 每次传输共 15 bits 的总线的标识。
其中, 根据 AXI总线的标识选择路由具体可以为: 对路由标识进行译码, 以确定下一跳节点,例如,可以将路由标识中的每一个比特位作为基本单元(即 2x2全交叉总线)的译码地址使用, 1为基本单元的右边接口 (即右边的主设备 接口或右边的从设备接口), 0为基本单元的左边接口(即左边的主设备接口或 左边的从设备接口), 或者, 也可以反过来, 即 0为基本单元的右边接口, 1为 基本单元的左边接口; 确定了基本单元的接口后, 即可以确定下一跳节点是哪 个基本单元, 以及具体是该作为下一跳节点的基本单元中的哪个接口。具体可 以实施时, 译码的顺序可以从高位到低位, 也可以从低位到高为, 具体如下:
( 1 )对路由标识进行译码, 以确定下一跳节点具体可以包括:
在接收到读请求包、写请求包或写数据时,对路由标识的最高比特位进行 译码以确定下一跳节点, 并在译码后将路由标识循环左移;
在接收到读数据及应答包或写应答包时,对路由标识的最低比特位进行译 码以确定下一跳节点, 并在译码后将路由标识循环右移。
或者,
( 2 )对路由标识进行译码, 以确定下一跳节点具体可以包括:
在接收到读请求包、写请求包或写数据时,对路由标识的最低比特位进行 译码以确定下一跳节点, 并在译码后将路由标识循环右移;
在接收到读数据及应答包或写应答包时,对路由标识的最高比特位进行译 码以确定下一跳节点, 并在译码后将路由标识循环左移。
其中, 路由标识需为全路由, 即路由标识中的 N2位比特位需占满, 以 N为 3为例, 路由标识中的 9 bits必须全都有效, 且该路由在 9次译码后必须回到起 点, 即若没有从设备接收该数据包, 需要将数据包返回给发送该数据包的主设 备。 另外, 如果从设备拒绝该主设备, 则此后, 该从设备需要对该主设备的路 由标识一直拒绝, 直到切换路由, 以避免出现命令(Order )发生错误。 在数 据包返回到主设备之后, 主设备可以切换路由再次尝试。
103、 通过基本单元的从设备接口接收目的从设备返回的响应包; 其中, 响应包具体可以为读数据及应答包或写应答; 具体可以如下:
若该数据包具体为读请求包, 则步骤 103 , 即步骤 "通过基本单元的从设 备接口接收所述目的从设备返回的响应包" 具体可以为:
通过基本单元的从设备接口接收所述目的从设备返回的读数据及应答包。 若该数据包具体为写请求包和写数据包, 则步骤 103 , 即步骤 "通过基本 单元的从设备接口接收所述目的从设备返回的响应包" 具体可以为: 通过基本单元的从设备接口接收所述目的从设备返回的写应答包。
可选的, 还可以通过全 1遍历请求和全 0遍历请求 AXI总线来对 AXI总线的 线路状况进行检测, 以便对设备是否在线进行检测, 即该数据传输方法还可以 包括:
采用全 1遍历请求和全 0遍历请求遍历 AXI总线, 其中全 1遍历请求中的路 由标识设定为全 1 , 全 0遍历请求中的路由标识设定为全 0。 例如, 还是以 N2的 AXI总线为例, 全 1遍历请求中的路由标识为 " 111111111 " , 依次通过, E^I^D^H^C^G^B^F^A^E; 全 0遍历请求中 的路由标识为 "000000000" ,依次通过 E G F H A I B D C E。
此外, 为了防止 AXI总线上的写请求包和写数据包因传输分离而导致挂死 或节点插入数据困难等情况,每个基本单元还可以具有将基本单元的主设备接 口所收到的写请求包和写数据包对齐的功能。 即:
即该数据传输方法还可以包括:将接收到的写请求包与相应的写数据包对 齐, 以保证其主设备接口所传输的写请求包和写数据包不存在挂起传输 ( Outstanding )功能。 其中, 每个基本单元在其主设备接口下面的节点收到写 请求包时, 其后新起的 W数据即为该写请求包所对应写数据包。
由上可知, 本实施例提供了基于本发明实施例所提供的 AXI总线的一种数 据传输方法,由于该 AXI总线采用以 2 2的 AXI全交叉的总线结构为基本单元, 然后利用该基本单元搭建一个 N2全循环 Mesh总线结构, 由于采用的是 N2全循 环 Mesh总线结构, 所以相对于现有的全交叉总线结构而言, 布线较少, 复杂 度较低, 而且扩展性也较强。 此外, 本实例所提供的数据传输方法还提供灵活 的路由机制, 从而相对于现有技术中单一的路由机制而言, 增强了 AXI总线的 安全性, 以及可以实现带宽分流; 而且, 本实施例所提供的数据传输方法还可 以通过全遍历请求来对设备是否在线进行检测。 根据以上实施例所描述的方法, 以下将举例作进一步详细说明。
在本实施例中, 将以 N为 3的一个 AXI总线, 且路由标识中的 1表示基本单 元的右边接口 (即右边的主设备接口或右边的从设备接口) , 0为基本单元的 左边接口 (即左边的主设备接口或左边的从设备接口) 为例进行说明。 参见图 7, 其中, 各个基本单元之间的路径为第一路径, 每一条第一路径 上的小圆点表示注册片, 主设备或从设备可以通过该注册片接入 AXI总线。 比 如, 参见图 7中的基本单元 A和基本单元 E之间的路径 002就是其中的一条第一 路径, 而小圆点 001和 003均为注册片, 第一主设备通过注册片 001接入 AXI总 线, 第一从设备通过基本单元 D和基本单元 H之间的第一路径上的注册片 003 接入 AXI总线。
以下将以第一主设备向第一从设备读取数据为例进行说明。具体流程可以 如下:
步骤 1、 第一主设备发送关于向第一从设备读取数据的读请求包, 读请求 包中携带 AXI总线的标识, 其中, AXI总线的标识包括第一主设备的固有标识 (在此即为主设备标识)和路由标识。
其中,路由标识可以由第一主设备根据第一从设备的匹配地址通过查询路 由表来获得, 其中, 路由表可以存放在第一主设备中。
需说明的是, 主设备可以具有多个主设备标识, 而从设备可以具有多个匹 配地址, 可以根据预置策略从中选择合适的主设备标识和从设备的匹配地址。
由于第一从设备位于基本单元 D的主设备接口和基本单元 H的从设备接口 之间的路径上, 所以, 该读请求包的路由需要经过基本单元 H。 为了描述方便, 在本实施例中, 设定第一主设备与第一从设备之间具有两条路由, 主路由为: A^E^G^B^D^H^C^G^F^A, 路由标识为 " 101011101" , 备用路由 为 A E I D H C G B F A: , 路由标识为 "11111111 Γ 。
步骤 2、 基本单元 A的主设备接口接收到该读请求包后, 根据路由标识确 定下一跳的节点, 比如, 路由标识为 "101011101" , 则基本单元 A对该路由 标识的最高位的比特位进行译码, 由于该最高位的比特位为 "Γ , 代表右边 的主设备接口, 因此, 基本单元 A确定下一跳节点为基本单元 E, 基本单元 A 将路由标识循环左移, 即路由标识变为 "010111011" , 然后将该读请求包发 送给基本单元 E。
步骤 3、基本单元 E接收到该读请求包后, 同样根据路由标识 "010111011" 确定下一跳的节点, 由于该最高位的比特位为 "0" , 因此, 基本单元 E确定下 一跳节点为基本单元 G, 基本单元 E将路由标识循环左移, 即路由标识变为 "101110110" , 然后将该读请求包发送给基本单元 G。
步骤 4、 基本单元 G接收到该读请求包后, 根据路由标识 "101110110" 确 定下一跳的节点, 由于该最高位的比特位为 "Γ , 因此, 基本单元 E确定下一 跳节点为基本单元 B , 基本单元 G将路由标识循环左移, 即路由标识变为 "011101101" , 然后将该读请求包发送给基本单元 B。
步骤 5、 基本单元 B接收到该读请求包后, 根据路由标识 "011101101" 确 定下一跳的节点, 由于该最高位的比特位为 "0" , 因此, 基本单元 B确定下 一跳节点为基本单元 D, 基本单元 B将路由标识循环左移, 即路由标识变为 "111011010" , 然后将该读请求包发送给基本单元 D。
步骤 6、 基本单元 D接收到该读请求包后, 根据路由标识 "111011010" 确 定下一跳的节点, 由于该最高位的比特位为 "1" , 因此, 基本单元 D确定下 一跳节点为基本单元 H, 基本单元 D将路由标识循环左移, 即路由标识变为 "110110101" , 然后将该读请求包发送给基本单元 H。
步骤 7、 基本单元 H接收到该读请求包后, 根据读请求包中的第一从设备 的地址将读请求包发送给第一从设备。 然后将路由标识循环左移, 即路由标识 变为 "101101011" 。
步骤 8、 第一从设备接收到该读请求包后, 返回相应的读数据及应答包给 基本单元11。
步骤 9、 基本单元 H根据路由标识 "101101011" 确定下一跳节点。 由于此 时传送的是读数据及应答包, 所以基本单元 H可以根据路由标识 "101101011" 中的最低位比特位来确定下一跳节点, 由于最低位比特位为 "Γ , 因此, 基 本单元 H确定下一跳节点为基本单元 C, 于是将路由标识循环右移, 即路由标 识变为 "110110101" , 然后该读数据及应答包发送给基本单元 C, 其中, 该 读数据及应答包中携带第一主设备的主设备标识和路由标识 "110110101" 。
步骤 10、 基本单元 C接收到该读数据及应答包后, 根据路由标识 "110110101" 确定下一跳节点, 由于最低位比特位为 "Γ , 因此, 基本单 元 H确定下一跳节点为基本单元 G, 于是将路由标识循环右移, 即路由标识变 为 "111011010" , 然后该读数据及应答包发送给基本单元 G。
步骤 11、 基本单元 G接收到该读数据及应答包后, 根据路由标识 "111011010" 确定下一跳节点, 由于最低位比特位为 "0" , 因此, 基本单 元 H确定下一跳节点为基本单元 F, 于是将路由标识循环右移, 即路由标识变 为 "011101101" , 然后该读数据及应答包发送给基本单元 F。
步骤 12、 基本单元 F接收到该读数据及应答包后, 根据路由标识 "011101101" 确定下一跳节点, 由于最低位比特位为 "Γ , 因此, 基本单 元 H确定下一跳节点为基本单元 A, 于是将路由标识循环右移, 即路由标识变 为 "101110110" , 然后该读数据及应答包发送给基本单元 A。
步骤 12、 基本单元 A接收到该读数据及应答包后, 根据读数据及应答包中 的主设备标识将读数据及应答包发送给第一主设备。
步骤 13、 第一主设备接收该读数据及应答包。
第一主设备将数据写入第一从设备时的流程与此类似, 在此不再赘述。 需说明的是,以上仅仅以将路由标识中的最高比特位作为前面的从设备的 译码(即在读请求包、 写请求包或写数据方向), 且以路由标识中的最高比特 位作为返回的主设备(即在读数据及应答包和写应答包方向)的译码为例进行 说明。应当理解的是,也可以设定路由标识中的最低比特位作为前面的从设备 的译码,路由标识中的最低比特位作为返回的主设备的译码, 实现方法与此类 似, 在此不再赘述。
另外, 需说明的是, 对于需要保序(即保持顺序)的操作, 必须使用相同 的主设备标识和路由标识, 此外,应尽量避免使用相同的主设备标识访问多个 从设备, 以防止保序带来的性能下降。 可选的, 从设备中还可以涉及保序控制 緩存, 以便对需要保序的操作进行緩沖, 即在接收到读请求包、 写请求包或写 数据包时, 并不立即返回响应, 而是先进行緩存, 经过预置的时间后才返回响 应。
采用本发明实施例所提供的方法, 还可以实现如下检测:
( 1 )主设备可获知设备是否在线: 对于正常访问请求, 如果该访问请求 没有被从设备接收, 而是返回给了发送该访问请求的主设备, 则表示该从设备 不在线或不存在。
( 2 )主设备更新和优化路由: 对于正常访问请求, 如果该访问请求被从 设备接收, 则可以让从设备在返回的信息中可携带跳数信息, 主设备在接收到 该返回的信息后,根据其中携带的跳数信息更新路由,以查找更好的路径备用。
( 3 )通过全遍历请求, 可实现緩存一致性(Cache Coherent )查询, 查询 是否具有节点緩存(Cache, 即存储器高速緩存, 筒称緩存)数据映像, 如果 没有, 则发送正常请求给内存以获取节点緩存数据映像。
( 4 )该遍历可用作广播信息, 当信息最终到达发送节点时, 表示广播的 结束。
由上可知, 本实施例提供了基于本发明实施例所提供的 AXI总线的一种数 据传输方法,由于该 AXI总线采用以 2 X 2的 AXI全交叉的总线结构为基本单元, 然后利用该基本单元搭建一个 N2全循环 Mesh总线结构, 由于采用的是 N2全循 环 Mesh总线结构, 所以相对于现有的全交叉总线结构而言, 布线较少, 复杂 度较低, 而且扩展性也较强。 此外, 本实例所提供的数据传输方法还提供灵活 的路由机制, 从而相对于现有技术中单一的路由机制而言, 增强了 AXI总线的 安全性, 以及可以实现带宽分流; 而且, 本实施例所提供的数据传输方法还可 以通过全遍历请求来对设备是否在线进行检测, 以及实现緩存一致性检测, 和 信息高速广播。
总之, 相对于现有技术的 AXI总线而言, 本实施例所提供的 AXI总线及相 应的数据传输方法, 具有较高的性能。 本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步 骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读 存储介质中, 存储介质可以包括: 只读存储器(ROM, Read Only Memory ), 随机存取记忆体(RAM, Random Access Memory) , 磁盘或光盘等。
以上对本发明实施例所提供的 ΑΧΙ总线以及相应的数据传输方法进行了 上实施例的说明只是用于帮助理解本发明的方法及其核心思想; 同时,对于本 领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改 变之处, 综上所述, 本说明书内容不应理解为对本发明的限制。

Claims

权 利 要 求
1、 一种先进可扩展接口 AXI总线, 其特征在于,
所述 AXI总线为一个 N2全循环网状 Mesh总线结构,包括 N Ν个基本单元, 所述基本单元为以 2 2的 ΑΧΙ全交叉 Crossbar的总线结构, 所述基本单元上包 括两个从设备接口和两个主设备接口,所述基本单元上的每一个从设备接口都 和另一个基本单元上的一个主设备接口相连, 形成第一路径; 其中, N为正整 数。
2、 根据权利要求 1所述的 AXI总线结构, 其特征在于, 所述第一路径上包 括注册片, 所述注册片用于连接主设备或从设备。
3、 根据权利要求 2所述的 AXI总线, 其特征在于,
所述注册片包括多路复用 MUX模块和复合信号 C0MP模块;
当所述注册片用于连接主设备时, 所述 MUX模块用于接收主设备插入的 读请求包、 写请求包或写数据包; 所述 COMP模块用于截获所述主设备的设备 标识, 以及与所述设备标识匹配的读数据及应答包、 或写应答包;
当所述注册片用于连接从设备时, 所述 MUX模块用于接收所述从设备插 入的读数据及应答包、 或写应答包; 所述 COMP模块用于截获地址与预置设定 地址匹配的读请求包、 写请求包和对应的写数据包。
4、 根据权利要求 3所述的 AXI总线, 其特征在于,
所述基本单元,还用于将所述基本单元的主设备接口所收到的写请求包和 相应的写数据包对齐。
5、 一种数据传输方法, 其特征在于, 包括:
通过基本单元的主设备接口接收主设备发送的数据包;
通过基本单元的从设备接口, 利用先进可扩展接口 AXI总线将所述数据包 发送给目的从设备;
通过基本单元的从设备接口接收所述目的从设备返回的响应包;
其中,所述基本单元为以 2 x 2的 AXI全交叉 Crossbar的总线结构,所述 AXI 总线为利用所述基本单元搭建一个 N2全循环网状 Mesh总线结构, 其中, N为正 整数, 基本单元的个数为 Ν χ N个。
6、根据权利要求 5所述的方法,其特征在于,所述数据包具体为读请求包, 则:
所述通过基本单元的从设备接口接收所述目的从设备返回的响应包包括: 通过基本单元的从设备接口接收所述目的从设备返回的读数据及应答包。
7、 根据权利要求 5所述的方法, 其特征在于, 所述数据包具体为写请求包 和写数据包, 贝
所述通过基本单元的从设备接口接收所述目的从设备返回的响应包包括: 通过基本单元的从设备接口接收所述目的从设备返回的写应答包。
8、 根据权利要求 5所述的方法, 其特征在于, 主设备与目的从设备之间具 有至少两条路由, 则所述通过基本单元的从设备接口, 利用 AXI总线将所述数 据包发送给目的从设备包括:
根据 AXI总线的标识选择路由, 所述 AXI总线的标识用于指示路由; 通过基本单元的从设备接口,利用选择的路由将所述数据包发送给目的从 设备。
9、 根据权利要求 8所述的方法, 其特征在于, 还包括:
在选择的路由发生故障或堵塞时,确定发生故障或堵塞的时间是否超过预 置时间;
若是, 则根据 AXI总线的标识重新选择路由。
10、 根据权利要求 8或 9所述的方法, 其特征在于, 所述 AXI总线的标识包 括主设备标识和 N2位宽的路由标识; 则根据 AXI总线的标识选择路由包括: 对路由标识进行译码, 以确定下一跳节点。
11、根据权利要求 10所述的方法,其特征在于,所述对路由标识进行译码, 以确定下一跳节点包括:
在接收到读请求包、写请求包或写数据时,对所述路由标识的最高比特位 进行译码以确定下一跳节点, 并在译码后将路由标识循环左移; 在接收到读数 据及应答包或写应答包时,对所述路由标识的最低比特位进行译码以确定下一 跳节点, 并在译码后将路由标识循环右移;
或者,
在接收到读请求包、写请求包或写数据时,对所述路由标识的最低比特位 进行译码以确定下一跳节点, 并在译码后将路由标识循环右移; 在接收到读数 据及应答包或写应答包时,对所述路由标识的最高比特位进行译码以确定下一 跳节点, 并在译码后将路由标识循环左移。
12、 根据权利要求 10所述的方法, 其特征在于, 还包括:
如果所述路由标识为全路由, 若没有从设备接收所述数据包, 则将所述数 据包返回给发送该数据包的主设备。
13、 根据权利要求 10所述的方法, 其特征在于, 还包括:
采用全 1遍历请求和全 0遍历请求遍历 AXI总线, 其中全 1遍历请求中的路 由标识设定为全 1 , 全 0遍历请求中的路由标识设定为全 0。
14、 根据权利要求 7至 9, 11至 13中任一项所述的方法, 其特征在于, 还包 括:
将接收到的写请求包与相应的写数据包对齐。
PCT/CN2011/074554 2011-05-24 2011-05-24 先进可扩展接口总线以及相应的数据传输方法 WO2011137813A2 (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/CN2011/074554 WO2011137813A2 (zh) 2011-05-24 2011-05-24 先进可扩展接口总线以及相应的数据传输方法
CN2011800005885A CN102216920B (zh) 2011-05-24 2011-05-24 先进可扩展接口总线以及相应的数据传输方法
US13/495,554 US9058433B2 (en) 2011-05-24 2012-06-13 Advanced extensible interface bus and corresponding data transmission method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2011/074554 WO2011137813A2 (zh) 2011-05-24 2011-05-24 先进可扩展接口总线以及相应的数据传输方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US13/495,554 Continuation US9058433B2 (en) 2011-05-24 2012-06-13 Advanced extensible interface bus and corresponding data transmission method

Publications (2)

Publication Number Publication Date
WO2011137813A2 true WO2011137813A2 (zh) 2011-11-10
WO2011137813A3 WO2011137813A3 (zh) 2012-04-26

Family

ID=44746733

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2011/074554 WO2011137813A2 (zh) 2011-05-24 2011-05-24 先进可扩展接口总线以及相应的数据传输方法

Country Status (3)

Country Link
US (1) US9058433B2 (zh)
CN (1) CN102216920B (zh)
WO (1) WO2011137813A2 (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101993258B1 (ko) * 2012-11-22 2019-09-27 삼성전자주식회사 레지스터 슬라이싱 회로 및 이를 포함하는 시스템 온 칩
CN105005546B (zh) * 2015-06-23 2018-01-30 中国兵器工业集团第二一四研究所苏州研发中心 一种内置交点队列的异步axi总线结构
CN106933765A (zh) * 2017-03-31 2017-07-07 山东超越数控电子有限公司 一种基于fpga的多主多从数据采集系统及其交叉通信控制方法
CN109558350B (zh) * 2018-11-20 2023-04-14 海信空调有限公司 一种程序监控复用端口、控制方法和家用电器
CN110674075B (zh) * 2019-09-27 2023-03-10 山东华芯半导体有限公司 一种axi总线广播机制的实现方法和系统
CN112073249B (zh) * 2020-09-17 2024-03-05 深圳市信锐网科技术有限公司 数据传输方法、集群交换机系统及相关设备
CN112257381B (zh) * 2020-10-26 2024-01-12 广州安凯微电子股份有限公司 一种AXI Crossbar设计电路验证方法和系统
CN112579501A (zh) * 2020-12-11 2021-03-30 北京爱芯科技有限公司 Axi总线结构及芯片系统
WO2023028741A1 (zh) * 2021-08-30 2023-03-09 华为技术有限公司 一种高级扩展接口总线及片上系统
CN113886310A (zh) 2021-11-02 2022-01-04 上海兆芯集成电路有限公司 桥接模块、数据传输系统和数据传输方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101324869A (zh) * 2008-07-03 2008-12-17 北京中星微电子有限公司 一种基于axi总线的多路复用器
US20100111088A1 (en) * 2008-10-29 2010-05-06 Adapteva Incorporated Mesh network
CN101853237A (zh) * 2010-05-31 2010-10-06 华为技术有限公司 片上系统及axi总线下的传输方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6696917B1 (en) * 2000-09-21 2004-02-24 Nortel Networks Limited Folded Clos architecture switching
US20030101280A1 (en) * 2001-11-27 2003-05-29 Chiu Kenneth Y. Fast jump address algorithm
US7461187B2 (en) * 2005-07-07 2008-12-02 Canon Kabushiki Kaisha Bus system and data transfer method
WO2008018004A2 (en) * 2006-08-08 2008-02-14 Koninklijke Philips Electronics N.V. Electronic device and method for synchronizing a communication
US8644305B2 (en) * 2007-01-22 2014-02-04 Synopsys Inc. Method and system for modeling a bus for a system design incorporating one or more programmable processors
CN101276317A (zh) * 2008-05-13 2008-10-01 深圳华为通信技术有限公司 数据传输方法、数据传输系统及终端
CN201422114Y (zh) * 2009-03-31 2010-03-10 成都纵横测控技术有限公司 一种基于pxi总线的误码率测试模块
US8489791B2 (en) * 2010-03-12 2013-07-16 Lsi Corporation Processor bus bridge security feature for network processors or the like
US8285912B2 (en) * 2009-08-07 2012-10-09 Arm Limited Communication infrastructure for a data processing apparatus and a method of operation of such a communication infrastructure

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101324869A (zh) * 2008-07-03 2008-12-17 北京中星微电子有限公司 一种基于axi总线的多路复用器
US20100111088A1 (en) * 2008-10-29 2010-05-06 Adapteva Incorporated Mesh network
CN101853237A (zh) * 2010-05-31 2010-10-06 华为技术有限公司 片上系统及axi总线下的传输方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
YOO, JUNHEE ET AL.: 'Communication Architecture Synthesis of Cascaded Bus Matrix.' DESIGN AUTOMATION CONFERENCE, 2007. ASP-DAC '07. 2007, ASIA AND SOUTH PACIFIC., pages 171 - 177 *

Also Published As

Publication number Publication date
CN102216920A (zh) 2011-10-12
US20120303849A1 (en) 2012-11-29
CN102216920B (zh) 2013-08-28
US9058433B2 (en) 2015-06-16
WO2011137813A3 (zh) 2012-04-26

Similar Documents

Publication Publication Date Title
WO2011137813A2 (zh) 先进可扩展接口总线以及相应的数据传输方法
KR101802810B1 (ko) 하이브리드 회선 교환 및 패킷 교환 라우터의 아키텍처 및 그 방법
CN103098428B (zh) 一种实现pcie交换网络的报文传输方法、设备和系统
KR930001746B1 (ko) 자기 경로 선택 교환망
US6597691B1 (en) High performance switching
KR101937211B1 (ko) 상호 연결에서 이종 채널 용량
US8964559B2 (en) Deadlock prevention in direct networks of arbitrary topology
US9577956B2 (en) System and method for supporting multi-homed fat-tree routing in a middleware machine environment
US9825844B2 (en) Network topology of hierarchical ring with recursive shortcuts
US6304568B1 (en) Interconnection network extendable bandwidth and method of transferring data therein
US20140092728A1 (en) Faulty core recovery mechanisms for a three-dimensional network on a processor array
JP7091923B2 (ja) 転送装置、転送方法及びプログラム
JPS6184945A (ja) 自己経路選択パケツトスイツチ回路網
US8340112B2 (en) Implementing enhanced link bandwidth in a headless interconnect chip
JPH05153163A (ja) メツセージのルーテイング方法およびネツトワーク
JP2006087102A (ja) スイッチ装置の透過的回復のための装置および方法
CN104798352A (zh) 用于不同的独立交换域的集中式控制与管理平面
JPH0629986A (ja) ハイブリッドローカルエリアネットワークおよびデータメッセージ送信方法
US20070088863A1 (en) Method and system for flexible and negotiable exchange of link layer functional parameters
US7447223B2 (en) Switching mesh with broadcast path redundancy
US20130250954A1 (en) On-chip router and multi-core system using the same
KR101242172B1 (ko) 하이브리드 광학 네트워크-온-칩 시스템 및 그의 라우팅 방법
WO2014179957A1 (zh) 存储设备、存储系统及数据发送方法
JP6586374B2 (ja) 通信装置、経路管理サーバ、通信方法、および仮想ポート割当方法
JP2006511115A (ja) パケット交換方式ネットワークにおけるリターンパス導出

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 201180000588.5

Country of ref document: CN

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

Ref document number: 11777232

Country of ref document: EP

Kind code of ref document: A2

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 11777232

Country of ref document: EP

Kind code of ref document: A2