AMBA AXI PROTOCOL v1.0 - ARCHITECTURE OVERVIEW I
AMBA AXI 프로토콜에 대해서 공부해 봅시다. (AMBA AXI Protocol spec v1.0 참조)
1.1 About the AXI protocol
AMBA AXI 프로토콜의 핵심 특징은 다음과 같습니다.
• separate address/control and data phases
• support for unaligned data transfers using byte strobes
• burst-based transactions with only start address issued
• separate read and write data channels to enable low-cost Direct Memory Access(DMA)
• ability to issue multiple outstanding addresses
• out-of-order transaction completion
• easy addition of register stages to provide timing closure.
위의 특징 중에서 AHB와 비교해 진보한 부분을 살펴보면 READ DATA와 WRITE DATA CHANNEL이
나누어져 있는데요. 일반적으로 AHB의 BUS는 같은 시간에 READ/WRITE가 불가능하지만 AXI의
CHANNEL(BUS)은 같은 시간에 READ와 WRITE를 할 수 있습니다. 따라서 THROUGHPUT이 증가하
겠지요. 또 하나의 특징은 MULTIPLE OUTSTANDING ADDRESS로 ISSUING이 가능합니다. AHB의
경우에는 하나의 BURST TRANSACTION이 완료한 후에 다음 BURST TRANSACTION을 위한
ADDRESS를 ISSUING할 수 있지만, AXI에서는 먼저 처리중인 BURST TRANSACTION이 완료될 때
까지 기다리지 않고 TRANSACTION의 ADDRESS를 ISSUING할 수 있습니다. MULTIPLE
OUTSTANDING ADDRESS의 ISSUING이 가능함으로써 OUT-OF-ORDER TRANSACTION의 구현을
할 수 있습니다.
Out-of-order transactions can improve system performance in two ways:
• The interconnect can enable transactions with fast-responding slaves to complete
in advance of earlier transactions with slower slaves.
• Complex slaves can return read data out of order. For example, a data item for a
later access might be available from an internal buffer before the data for an
earlier access is available.
위에서 언급한 것처럼 MASTER는 ADDRESS ISSUING 순서에 상관없이 보다 빠른 SLAVE로부터
트랜잭션을 완료할 수 있고 나중에 읽은 데이터를 먼저 처리할 수도 있습니다.
1.2 Architecture
AXI 프로토콜은 BURST를 기반으로 하고 있고, 모든 트랜잭션은 어드레스 채널에서 전송하는 어드레스
와 컨트롤 정보 가지고 있습니다. 데이터 전송은 마스터와 슬레이브 간의 WRITE DATA CHANNEL을
통해서 슬레이브로, 그리고 READ DATA CHANNEL을 통해서 마스터로 각각 이루어 집니다. WRITE
TRANSACTION에서는 모든 데이터는 마스터에서 슬레이브로 전송이 이루어지고 WRITE
TRANSACTION이 완료되면 슬레이브는 마스터로 WRITE RESPONSE CHANNEL을 통해 완료 시그널
을 전송함으로써 TRANSACTION을 완료하게 됩니다.
각각의 독립적인 채널은 INFORMATION SIGNAL 세트로 이루어져 있고 TWO-WAY VALID와 READY 핸드쉐이크 메커니즘을 사용합니다. 시그널 몇 가지를 간단하게 설명드리면 VALID는 채널상에서 유효
한 DATA와 CONTROL INFORMATION이 사용 가능한지에 대한 여부(가능하다면 엣지가 HIGH 상태가 됨) READY는 데이터를 수락 가능한지에 대한 여부를 나타내는 시그널입니다. 그리고 READ DATA
CHANNEL과 WRITE DATA CHANNEL은 둘 다 LAST 시그널을 가지고 있습니다만, 이것은 트랜잭션
에서 마지막 데이터 아이템의 전송을 의미할 때 HIGH로 ISSUING합니다.
READ ADDRESS CHANNEL AND WRITE ADDRESS CHANNEL
READ와 WRITE TRANSACTION은 각각의 ADDRESS CHANNEL을 사용하는데, 트랜잭션을 위해 ADDRESS와 CONTROL INFORMATION을 ADDRESS CHANNEL을 통해서 전송합니다.
The AXI protocol supports the following mechanisms:
• variable-length bursts, from 1 to 16 data transfers per burst
• bursts with a transfer size of 8-1024 bits
• wrapping, incrementing, and non-incrementing bursts
• atomic operations, using exclusive or locked accesses
• system-level caching and buffering control
1) Read data channel
The read data channel conveys both the read data and any read response information
from the slave back to the master. The read data channel includes:
• the data bus, which can be 8, 16, 32, 64, 128, 256, 512, or 1024 bits wide
• a read response indicating the completion status of the read transaction.
2) Write data channel
The write data channel conveys the write data from the master to the slave and includes:
• the data bus, which can be 8, 16, 32, 64, 128, 256, 512, or 1024 bits wide
• one byte lane strobe for every eight data bits, indicating which bytes of the data
bus are valid.
Write data channel information is always treated as buffered, so that the master can
perform write transactions without slave acknowledgement of previous write transactions.
3) Write response channel
The write response channel provides a way for the slave to respond to write transactions.
All write transactions use completion signaling.
The completion signal occurs once for each burst, not for each individual data transfer
within the burst.