is suitable for high-bandwidth and low-latency designs 높은 대역폭*과 낮은 지연속도
provides high-frequency operation without using complex bridges 복잡한 bridge*사용 없이
meets the interface requirements of a wide range of components
is suitable for memory controllers with high initial access latency
provides flexibility in the implementation of interconnect architectures 상호연결 아키텍쳐 구현의 유연성 제공
is backward-compatible with existing AHB and APB interfaces. 구버전의 호환가능
# AXI protocol은 한마디로 빠른 속도와 병목현상을 없앤 BUS protocol이라는 말을 하고 있다.
AXI protocol의 특징은
separate address/control and data phases 주소/제어/데이터의 단계를 분리
support for unaligned data transfers, using byte strobes 바이트에 strobe*를 사용하여 정렬되지 않은 데이터 전송을 지원
uses burst-based transactions with only the start address issued 주소의 시작을 선언하는 burst*기반의 transaction*을 사용
separate read and write data channels, that can provide low-cost Direct Memory Access (DMA) 데이터를 읽고 쓰는 channel을 분리 (저비용 직접 메모리 접근 제공가능)
support for issuing multiple outstanding addresses 뛰어난 multiple 주소 issuing 지원(먼저 처리중인 transaction이 완료하지 않아도 주소 issuing이 가능)
support for out-of-order transaction completion out-of-order(고장난, 미완료) 트랜잭션도 완료 지원
permits easy addition of register stages to provide timing closure. 타이밍 완성을 제공하며 레지스터 단계를 쉽게 첨가하는것 가능
# AXI의 중요한 특징을 설명하고 있으므로 이 글은 유념해야할 필요성이 있다.
뇌피셜 번역
*bandwidth(대역폭)
*bridge
*strobe
*burst
*transaction
*DMA(Direct Memory Access)
AXI Architecture
AXI protocol은 burst기반이고, 독립적인 트랜잭션 채널들을 정의했다.
read address
read data
write address
write data
write response
adrress channel은 control 정보(전송할 데이터에 대한)를 가져다 준다.
data는 Master와 Slave사이에서 전송된다.
WRITE DATA CHANNEL (from Master to Slave) : data 전송 WRITE RESPONSE CHANNEL : Slave는 Master에게 전송완료의 signal으로 을 사용
READ DATA CHANNEL (from Slave to Master) : data 전송
AXI protocol은
실제 data transfer이전에 address information이 issue(할당)될것을 허락
뛰어난 다중 트랜잭션 지원
필요에 따라 out-of-order가능 (Slave가 자신의 상황에 맞게 처리순서를 바꾸어 할 수 있음)
Channel definition 각 독립된 채널은 쌍방향 Handshake 매커니즘을 제공하는 VALID와 READY 신호들의 set로 구성 VALID : source가 사용 (valid address, data, or control information를 각채널에서 이용 가능할 때) READY: destination이 사용 (information을 받아들일 때) LAST : 트랜잭션에서 final data item을 운반함을 지시하는 신호
Read and Write Address Channels Read와 Write Channel은 각각 Address Channel을 가짐 적절한 Address Channel은 모든 요구된 주소와 제어정보를 전송
Read data Channel Slave에서 Master로 read data와 read response information을 전송 8, 16, 32, 64, 128, 256, 512, 1024 bits의 data bus read response 신호는 read transaction의 완료를 나타냄
Write data Channel Master에서 Slave로 write data를 전송 8, 16, 32, 64, 128, 256, 512, 1024 bits의 data bus strobe 신호(data를 바이트로 나타낸 모든 8개 bits) 허용 Slave의 인지 없이 Master가 수행하기 위해 buffer로 처리함.
Write response Channel Slave는 write 트랜잭션의 완료 응답을 보낸다.
Interface and Interconnect 전형적인 시스템은 interconnect의 형식을 통해 연결한 많은 Master와 Slave 장치로 구성
-하나의 Master와 interconnect -하나의 Slave와 interconnect -하나의 Master와 하나의 Slave
두 디바이스 사이에 interconnect는 Master와 Slave port를 대칭적으로 연결하여 동등하게 한다.
Register slices -여러개의 마스터와 슬레이브가 하나의 버스를 공유하는 구조에서 인터커넥트가 마스터의 작업처리에 대한 병목현상이 발생할수 있음 -즉, 마스터가 하나의 어드레스 시그널을 슬레이브로 전달한다고 했을 때, 슬레이브가 많을수록 이를 디코딩하기위한 작업이 현저히 저하됨 결국 인터커넥트에서 마스터의 어드레싱을 처리하는 응답속도가 떨어짐 - 따라서 마스터와 인터커넥트 혹은 슬레이브와 인터커넥트 버스 중간에 레지스터 슬라이스(비트를 저장할 수 있는 플립플롭)를 두어 인터커넥트까지 거치지 않고 레지스터 슬라이스에서 바로 특정 시그널에 대한 응답을 할 수 있음 -이 결과로 Frequency가 높아지겠지만 반대로 Interconnect Path가 많아지게 됨으로써 Latency증가 -즉, 레지스터 슬라이스를 패스 중간에 얼마만큼 설치하느냐에 따라 Frequency와 Latency간의 Trade off가 있음 -processor와 고성능 memory사이의 직접적이고 빠른 연결, 그러나 간단히 register slice를 사용 (더 긴 패스의 분리, 중요한 주변장치의 수행능력 저하의 이유로)