You are on page 1of 3
yo27i21, 11:34 AM AX Ve AH, Difference Betwaen AX! and AHE AXI Vs AHB OR AHB Vs AXI Difference between AXI and AHB -Aviral Mittal, Connect @ htt SITE HOME email: avimit {att} yhaoo dat cam. {this is to confuse the bots, if you are a human, you will be able to make out my correct email ID} This techerature compares AMBA AHB protocol to AMBA AXI protocol. ABB : Advanced High performance Bus XI: Advanced Xtensible Bus: AHB is ARM's most popular protocol, which was invented in an era, where the computing power of the Integrated Circuits were very primitive as compared to what we have now (2019) As the computing demands rise, AHB started to fall short in meeting the demands of the system which were ever hhungry for more bandwidths. AXI was then invented. One of the major problems with the AHB protocol is its inability to support what are called ‘outstanding’ transactions. An outstanding transaction is simply the one, which hhas been issued but its response is awaited. Yes, mostly it is related to ‘read! transactions, as the ‘write’ transactions can live without a response. ‘Though AHB does support 'split' transactions which one may argue that its what an outstanding transaction support in AHB is, but it never took off, and neither did it served the purpose of ‘outstanding’ transactions. Issuing several outstanding transactions, without receiving the response helps in increasing throughput as can be seen from the diagram and related text below: But let us consider the objective differences between the 2. The following table highlights the differences between the 2, however this is by no means an exhaustive list of differences. AHB AX Has 1 address channel, 1 read data channel, 1 Has 1 read address channel, 1 write address lwrite data channel channel, | read data channel, | write data channel. 1 write response channel That is altogether it has 5} [parallel channels. (The first AXI version had just | address channel) [Does not support outstanding reads, though with _||Has native support for multiple outstanding writes, the master can issue multiple write transactions. transactions, marking them as 'bufferable' so that if the interconnect is able to respond immediately, the master would consider the transaction over, and would issue subsequent transactions immediately in the next clock cycle. [No concept of channels, "AXI supports transaction IDs. The user may issue multiple outstanding transactions per transaction ID. A transaction ID can relate to a data stream. Hence by issuing multiple outstanding transactions per ID, AXI gives the user the power to have 'channels' of data. It does not support pipeline registers in its path, if User can insert a pipeline register anywhere in the user is not able to meet timing requirements. [path of any of the 5 channels, which helps in timing closure and help achieve higher operating frequency. Due to its in-ability to support pipeline registers |[AXI enables higher frequency of operation due to insertion, AHB limits the max freq for the design. |jits support for ‘pipe-line’ register insertion. This can hit hard, on the SoCs which are big, and may have long distances for the datapath to cover. [Number of wires are less Since AXI has 5 parallel channels running, it has lot of more wires, which may cause congestion in \www.lsip.com/ambalax_vs_ahi.html 18 yore, 11:34 AM AX Vs AH, Difference Between AX! and AHE layout. Limited Throughput. Extremely high Throughput No inherent support for side-band signals 'AXI4 supports AxUSER bits, ic. it has support for side-band signals. No QoS Support [AXI 4 supports QoS Burst Lengths are fixed i.e 1, 2, 6, 16 except for INCR types, where it can be anything as long as it does not cross 4K boundary. ‘Burst lengths can be anything, from 1-16 for |AXIB, and 1-256 for AXI4, The 'INCR' type burst can have any length, but there is no information available at the start of the (burst, how long it might be. The length of the burst is always known right at the start. This feature is supported by using |AXLEN bits. Strongly Ordered: Since there is at a time only 1 active transactions, the transactions are strongly ordered in the sense, that the responses received to any transaction(s) follow the same sequence as the transactions were issued. Since it supports multiple outstanding transactions, i.e. many transaction is issued at a time, the responses to different transactions can arrive out of order. However the responses to each ‘channel’ will still be ordered, i.e to say responses with same ID must return in order Low power dissipation Higher power dissipation. (Write Strobes are not supported. Write Strobes Are supported Locked Transfers are supported 'AXIB supports Locked Transfers, AX14 does not support Locked Transfers, Exclusive transfers are Not Supported [Exclusive transfers are supported. AXLvs AHB : How-come AXI offers higher performance and throughput than AHB. Itcan be observed from the above table it has been mentioned that AXI offers high throughput, ie high performance. However its rather uncommon to know the actual reasons and circumstances in which AXI would offer performance boost. ‘The following section attempts to explain the actual reasons and the circumstances in which AXI offers performance boost. There are 2 basic reasons why AXI may be faster: 1, Simplex Vs Duplex Transfers AXI has completely independent channels for read/write, which enables full duplex mode of data transportation. ‘That is to say read and writes can take place simultaneously, giving 2x boost over AHB in any circumstances. However this will ONLY be possible when the slave is able to process | read and | write operation simultaneously in 1 clock cycle. Which in many cases will be possible, e.g. if the slave is a dual port SRAM which can process 1 read and 1 write transaction simultaneously. Also in this example we are considering | Master and 1 Slave, But in case of multiple slaves, the master can send read transaction to 1 slave and write to other slave, even if the slave(s) cannot handle more than 1 transactions in single clock cycle. ‘To make more clarity, in a system where there is only 1 master and only 1 slave, the slave is unable to process read and write in | single clock cycle simultaneously and both master and slave are in single synchronous clock domain with no clock delay between the master and the slave there wont be any difference in performance between AXI and AHB. The AXI will only consume more power and area. 2, When there are clock eycle delays between a Master and a responding slave. -This is usually when the Master clock and slave clock is Async, and a there is a clock domain crossing bridge. It can be observed in the diagram shown below, that that as the number of OTs (outstanding transaction) increase in AXI, the efficiency increases. It can also be observed that with 1 OT, again, the performance will be |www.lsip.com/ambaax_vs_aho.html 28 so27r21, 1:34 aM [AXIVs AHEB, Difference Between AX! and AHS comparable, if we are doing only reads or only writes. In AXI case, since the system is able to issue outstanding transactions (OT), i.e. able to issue addresses without waiting for data to retum, there is only a initial delay, and then the continuous flow of data follows. In AHB this is not possible. The AHB cannot issue another transaction, without first receiving the response to its only transaction, which it can issue at a time, Itis to be noted again, that if there are no clock delays between a master and a slave, and if we assume only 1 master and I slave in the system, then again the AXT performance will be equal to AH performance, if we are doing only reads or only writes. ete ae ert hob) ete et ttt ee eee ee ee ete | | | | ef ror | ots Aba taorisakerten tol | ae 1 fe} —abrieetcye} tl ' { fet —orteo. ides — tl ‘The differences in the above table highlight, that AHB may be used in a completely synchronous system which are contained in small silicon areas, e.g for small SoCs ie IoT SoCs, Audio SoCs. It may also do well in synchronous subsystem within a larger SoC. AHB is generally used in systems which do not have high throughput demands, or in the systems where the frequency of operation is relatively lower i.e < 150 MHz. However if the SoC is large, has multiple clock domains, or if a subsystem is large and has multiple clock domains and the demand for throughput and bandwidths are high, the frequeney of clock are higher e.g, 200+ MHz, then AXTis the way to go SITE HOME Click Here to Make Comments or ask Questions |www.lsip.com/ambaax_vs_aho.html 38

You might also like