The Advanced eXtensible Interface (AXI), is an on-chip communication bus protocol developed by
ARM
In human anatomy, the arm refers to the upper limb in common usage, although academically the term specifically means the upper arm between the glenohumeral joint (shoulder joint) and the elbow joint. The distal part of the upper limb between the ...
. It is part of the
Advanced Microcontroller Bus Architecture
The ARM Advanced Microcontroller Bus Architecture (AMBA) is an open-standard, on-chip interconnect specification for the connection and management of functional blocks in system-on-a-chip (SoC) designs. It facilitates development of multi-process ...
3 (AXI3) and 4 (AXI4) specifications.
AXI has been introduced in 2003 with the AMBA3 specification. In 2010, a new revision of AMBA, AMBA4, defined the AXI4, AXI4-Lite and AXI4-Stream
protocol
Protocol may refer to:
Sociology and politics
* Protocol (politics), a formal agreement between nation states
* Protocol (diplomacy), the etiquette of diplomacy and affairs of state
* Etiquette, a code of personal behavior
Science and technology
...
. AXI is
royalty-free
Royalty-free (RF) material subject to copyright or other intellectual property rights may be used without the need to pay royalties or license fees for each use, per each copy or volume sold or some time period of use or sales.
Computer standard ...
and its specification is freely available from
ARM
In human anatomy, the arm refers to the upper limb in common usage, although academically the term specifically means the upper arm between the glenohumeral joint (shoulder joint) and the elbow joint. The distal part of the upper limb between the ...
.
AMBA AXI specifies many optional
signal
In signal processing, a signal is a function that conveys information about a phenomenon. Any quantity that can vary over space or time can be used as a signal to share messages between observers. The ''IEEE Transactions on Signal Processing'' ...
s, which can be included depending on the specific requirements of the design, making AXI a versatile bus for numerous applications.
While the communication over an AXI
bus
A bus (contracted from omnibus, with variants multibus, motorbus, autobus, etc.) is a road vehicle that carries significantly more passengers than an average car or van. It is most commonly used in public transport, but is also in use for cha ...
is between a single initiator and a single target, the specification includes detailed description and
signal
In signal processing, a signal is a function that conveys information about a phenomenon. Any quantity that can vary over space or time can be used as a signal to share messages between observers. The ''IEEE Transactions on Signal Processing'' ...
s to include N:M interconnects, able to extend the bus to topologies with more initiators and targets.
AMBA AXI4, AXI4-Lite and AXI4-Stream have been adopted by
Xilinx
Xilinx, Inc. ( ) was an American technology and semiconductor company that primarily supplied programmable logic devices. The company was known for inventing the first commercially viable field-programmable gate array (FPGA) and creating the fi ...
and many of its partners as main communication buses in their products.
Thread IDs
Thread IDs allow a single initiator port to support multiple threads, where each thread has in-order access to the AXI address space, however each thread ID initiated from a single initiator port may complete out of order with respect to each other. For instance in the case where one thread ID is blocked by a slow peripheral, another thread ID may continue independently of the order of the first thread ID. Another example, one thread on a cpu may be assigned a thread ID for a particular initiator port memory access such as read addr1, write addr1, read addr1, and this sequence will complete in order because each transaction has the same initiator port thread ID. Another thread running on the cpu may have another initiator port thread ID assigned to it, and its memory access will be in order as well but may be intermixed with the first thread IDs transactions.
Thread IDs on an initiator port are not globally defined, thus an AXI switch with multiple initiator ports will internally prefix the initiator port index to the thread ID, and provide this concatenated thread ID to the target device, then on return of the transaction to its initiator port of origin, this thread ID prefix will be used to locate the initiator port and the prefix will be truncated. This is why the target port thread ID is wider in bits than the initiator port thread ID.
Axi-lite bus is an AXI bus that only supports a single ID thread per initiator. This bus is typically used for an end point that only needs to communicate with a single initiator device at a time, example, a simple peripheral such as a
UART
A universal asynchronous receiver-transmitter (UART ) is a computer hardware device for asynchronous serial communication in which the data format and transmission speeds are configurable. It sends data bits one by one, from the least significan ...
. In contrast, a CPU is capable of initiating transactions to multiple peripherals and address spaces at a time, and will support more than one thread ID on its AXI initiator ports and AXI target ports. This is why a CPU will typically support a full spec AXI bus. A typical example of a front side AXI switch would include a full specification AXI initiator connected to a CPU initiator, and several AXI-lite targets connected to the AXI switch from different peripheral devices.
(Additionally, the AXI-lite bus is restricted to only support transaction lengths of a single data word per transaction.)
Handshake
AXI defines a basic
handshake mechanism, composed by an
xVALID
and
xREADY
signal. The
xVALID
signal is driven by the source to inform the destination entity that the payload on the channel is valid and can be read from that
clock cycle
In electronics and especially synchronous digital circuits, a clock signal (historically also known as ''logic beat'') oscillates between a high and a low state and is used like a metronome to coordinate actions of digital circuits.
A clock sign ...
onwards. Similarly, the
xREADY
signal is driven by the receiving entity to notify that it is prepared to receive data.
When both the
xVALID
and
xREADY
signals are high in the same
clock cycle
In electronics and especially synchronous digital circuits, a clock signal (historically also known as ''logic beat'') oscillates between a high and a low state and is used like a metronome to coordinate actions of digital circuits.
A clock sign ...
, the data payload is considered "transferred" and the source can either provide a new data payload, by keeping high
xVALID
, or terminate the transmission, by de-asserting
xVALID
. An individual data transfer, so a clock cycle when both
xVALID
and
xREADY
are high, is called "beat".
Two main rules are defined for the control of these signals:
* A source must not wait for a high
xREADY
to assert
xVALID
.
* Once asserted, a source must keep a high
xVALID
until a handshake occurs.
Thanks to this
handshake
A handshake is a globally widespread, brief greeting or parting tradition in which two people grasp one of each other's like hands, in most cases accompanied by a brief up-and-down movement of the grasped hands. Customs surrounding handshakes a ...
mechanism, both the source and the destination can control the flow of data, throttling the speed if needed.
Channels
In the AXI specification, five
channels
Channel, channels, channeling, etc., may refer to:
Geography
* Channel (geography), in physical geography, a landform consisting of the outline (banks) of the path of a narrow body of water.
Australia
* Channel Country, region of outback Austral ...
are described:
* Read Address channel (AR)
* Read Data channel (R)
* Write Address channel (AW)
* Write Data channel (W)
* Write Response channel (B)
Other than some basic ordering rules, each
channel
Channel, channels, channeling, etc., may refer to:
Geography
* Channel (geography), in physical geography, a landform consisting of the outline (banks) of the path of a narrow body of water.
Australia
* Channel Country, region of outback Austral ...
is independent from each other and has its own couple of
xVALID/xREADY
handshake
A handshake is a globally widespread, brief greeting or parting tradition in which two people grasp one of each other's like hands, in most cases accompanied by a brief up-and-down movement of the grasped hands. Customs surrounding handshakes a ...
signals.
AXI
Signals
Bursts
AXI is a
burst-based protocol
Protocol may refer to:
Sociology and politics
* Protocol (politics), a formal agreement between nation states
* Protocol (diplomacy), the etiquette of diplomacy and affairs of state
* Etiquette, a code of personal behavior
Science and technology
...
, meaning that there may be multiple data transfers (or beats) for a single request. This makes it useful in the cases where it is necessary to transfer large amount of data from or to a specific pattern of addresses.
In AXI, bursts can be of three types, selected by the signals ARBURST (for reads) or AWBURST (for writes):
* FIXED
* INCR
* WRAP
In FIXED bursts, each beat within the transfer has the same address. This is useful for repeated access at the same memory location, such as when reading or writing a
FIFO.
In INCR bursts, on the other hand, each beat has an address equal to the previous one plus the transfer size. This burst type is commonly used to read or write sequential memory areas.
WRAP bursts are similar to the INCR ones, as each transfer has an address equal to the previous one plus the transfer size. However, with WRAP bursts, if the address of the current beat reaches the "Higher Address boundary", it is reset to the "Wrap boundary":
with
Transactions
Reads
To start a read transaction, the initiator has to provide on the Read address channel:
* the start address on ARADDR
* the burst type, either FIXED, INCR or WRAP, on ARBURST (if present)
* the burst length on ARLEN (if present).
Additionally, the other auxiliary signals, if present, are used to define more specific transfers.
After the usual ARVALID/ARREADY handshake, the target has to provide on the Read data channel:
* the data corresponding to the specified address(es) on RDATA
* the status of each beat on RRESP
plus any other optional signals.
Each beat of the target's response is done with a RVALID/RREADY handshake and, on the last transfer, the target has to assert RLAST to inform that no more beats will follow without a new read request.
Writes
To start a write operation, the initiator has to provide both the address information and the data ones.
The address information are provided over the Write address channel, in a similar manner as a read operation:
* the start address has to be provided on AWADDR
* the burst type, either FIXED, INCR or WRAP, on AWBURST (if present)
* the burst length on AWLEN (if present)
and, if present, all the optional signals.
An initiator has also to provide the data related to the specified address(es) on the Write data channel:
* the data on WDATA
* the "strobe" bits on WSTRB (if present), which conditionally mark the individual WDATA bytes as "valid" or "invalid"
Like in the read path, on the last data word, WLAST has to be asserted by the initiator.
After the completion of both the transactions, the target has to send back to the initiator the status of the write over the Write response channel, by returning the result over the BRESP signal.
AXI4-Lite
AXI4-Lite is a
subset
In mathematics, Set (mathematics), set ''A'' is a subset of a set ''B'' if all Element (mathematics), elements of ''A'' are also elements of ''B''; ''B'' is then a superset of ''A''. It is possible for ''A'' and ''B'' to be equal; if they are ...
of the AXI4 protocol, providing a
register-like structure with reduced features and complexity. Notable differences are:
* all bursts are composed by 1 beat only
* all data accesses use the full data bus width, which can be either 32 or 64 bits
AXI4-Lite removes part of the AXI4 signals but follows the AXI4 specification for the remaining ones. Being a
subset
In mathematics, Set (mathematics), set ''A'' is a subset of a set ''B'' if all Element (mathematics), elements of ''A'' are also elements of ''B''; ''B'' is then a superset of ''A''. It is possible for ''A'' and ''B'' to be equal; if they are ...
of AXI4, AXI4-Lite transactions are fully compatible with AXI4 devices, permitting the
interoperability
Interoperability is a characteristic of a product or system to work with other products or systems. While the term was initially defined for information technology or systems engineering services to allow for information exchange, a broader defi ...
between AXI4-Lite initiators and AXI4 targets without additional conversion logic.
Signals
AXI-Stream
See also
*
Advanced Microcontroller Bus Architecture
The ARM Advanced Microcontroller Bus Architecture (AMBA) is an open-standard, on-chip interconnect specification for the connection and management of functional blocks in system-on-a-chip (SoC) designs. It facilitates development of multi-process ...
*
Wishbone (computer bus)
The Wishbone Bus is an open source hardware computer bus intended to let the parts of an integrated circuit communicate with each other. The aim is to allow the connection of differing cores to each other inside of a chip. The Wishbone Bus is use ...
*
Master/slave (technology)
Master/slave is a model of asymmetric communication or control where one device or process (the "master") controls one or more other devices or processes (the "slaves") and serves as their communication hub. In some systems, a master is selected ...
References
External links
AMBA webpageAXI4 specificationARM AXI introduction
{{Computer-bus
Computer buses
System on a chip