상세 컨텐츠

본문 제목

[AXI] AXI protocol에 대하여...(1)

programming/AXI

by 보라돌멩이 2020. 8. 13. 11:03

본문

8월 13일

ARM 문서를 해석하면서 공부를 하려고 한다.

 

ABOUT the AXI protocol

 

 

AXI protocol은

  • 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으로 을 사용

Channel architecture of writes

  • READ DATA CHANNEL (from Slave to Master) : data 전송

Channel architecture of reads

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

Interface and Interconnect

 

두 디바이스 사이에 interconnect는 Master와 Slave port를 대칭적으로 연결하여 동등하게 한다.

 

  • Register slices
    -여러개의 마스터와 슬레이브가 하나의 버스를 공유하는 구조에서
    인터커넥트가 마스터의 작업처리에 대한 병목현상이 발생할수 있음
    -즉, 마스터가 하나의 어드레스 시그널을 슬레이브로 전달한다고 했을 때,
    슬레이브가 많을수록 이를 디코딩하기위한 작업이 현저히 저하됨
    결국 인터커넥트에서 마스터의 어드레싱을 처리하는 응답속도가 떨어짐
    - 따라서 마스터와 인터커넥트 혹은 슬레이브와 인터커넥트 버스 중간에
    레지스터 슬라이스(비트를 저장할 수 있는 플립플롭)를 두어 인터커넥트까지 거치지 않고
    레지스터 슬라이스에서 바로 특정 시그널에 대한 응답을 할 수 있음
    -이 결과로 Frequency가 높아지겠지만 반대로 Interconnect Path가 많아지게 됨으로써 Latency증가
    -즉, 레지스터 슬라이스를 패스 중간에 얼마만큼 설치하느냐에 따라 Frequency와 Latency간의 Trade off가 있음
    -processor와 고성능 memory사이의 직접적이고 빠른 연결,
    그러나 간단히 register slice를 사용 (더 긴 패스의 분리, 중요한 주변장치의 수행능력 저하의 이유로)

register slice

 

Terminology

전문용어

 

 

AXI components and topology

  • component
  • Master componenct
  • Slave component : Memory slave component, Peripheral salve component
  • Interconnect component

AXI transactions, and memory type

  • Transaction : AXI bus에서 요구된 작동의 완성 set
  • Burst : 전송될 데이터 덩어리
  • Beat : burst는 여러개의 데이터 전송으로 이루어짐. beat들로 이루어 진다.

Caches and cashe operation

 

 

*payload : 전송할 실제(흥미를 가지는) 데이터

*assert : 시그널을 assert는 active-high나 active-low상태를 가지는 것

'programming > AXI' 카테고리의 다른 글

[AXI] AXI4-Lite Interface란?  (0) 2020.08.03
[AXI] AXI버스란?  (0) 2020.08.03
[AXI] ARM의 AMBA BUS 란?  (0) 2020.08.03

관련글 더보기