2012. 3. 26. 23:21

AMBA AXI PROTOCOL v1.0 - ARCHITECTURE OVERVIEW II

 



The AXI protocol provides a single interface definition for describing interfaces:
• between a master and the interconnect
• between a slave and the interconnect
• between a master and a slave.


The interface definition enables a variety of different interconnect implementations.
The interconnect between devices is equivalent to another device with symmetrical
master and slave ports to which real master and slave devices can be connected.
Most systems use one of three interconnect approaches:
• shared address and data buses
• shared address buses and multiple data buses
• multilayer, with multiple address and data buses.


In most systems, the address channel bandwidth requirement is significantly less than
the data channel bandwidth requirement. Such systems can achieve a good balance
between system performance and interconnect complexity by using a shared address
bus with multiple data buses to enable parallel data transfers.

위의 인터페이스와 인터커넥트 설명을 보면 마스터와 슬레이브라는 용어가 나오는데, 쉽게 얘기해서 마
스터는 AXI 아비터에게 버스 사용의 권한을 획득하여 R/W 작업을 위해 컨트롤 시그널, 어드레스 그리고 데이터를 슬레이브에게 전달하여 슬레이브와 통신이 가능하도록 해주는 디바이스(ex : CPU, DMA 등)를 의미하고 슬레이브는 마스터에게 받은 컨트롤 시그널, 어드레스와 데이터로 슬레이브 영역에서 처리하도록 해주는 디바이스(ex : SRAM, BUFFER, FIFO 등)를 의미합니다. 인터커넥트는 하나 이상의 마스터와 슬레이브가 통신이 가능하도록 메모리 맵핑된 IP로 정의할 수 있습니다. 인터커넥트도 하나의 IP기 때문에 추상적인 개념이 아니라 논리 회로 블럭을 의미합니다.

레지스터 슬라이스(Register slices)
Each AXI channel transfers information in only one direction, and there is no
requirement for a fixed relationship between the various channels. This is important
because it enables the insertion of a register slice in any channel, at the cost of an
additional cycle of latency. This makes possible a trade-off between cycles of latency
and maximum frequency of operation.
It is also possible to use register slices at almost any point within a given interconnect.
It can be advantageous to use a direct, fast connection between a processor and
high-performance memory, but to use simple register slices to isolate a longer path to
less performance-critical peripherals.

레지스터 슬라이스라는 개념을 설명하기 앞서 아래의 그림을 먼저 살펴 보겠습니다.


위의 그림을 보면 왼쪽에는 여러 개의 마스터가 있고 오른쪽에는 여러 개의 슬레이브가 있으며 인터커넥트에 연결되어 있습니다. 녹색 네모가 바로 레지스터 슬라이스로 보시면 됩니다. 레지스터 슬라이스가 필요한 이유가 무엇일까요? 위와 같이 여러 개의 마스터와 슬레이브가 하나의 버스를 공유하는 구조에서는 인터커넥트가 마스터의 작업 처리에 대한 Bottleneck이 발생할 수 밖에 없습니다. 그러니까 마스터 하나가 어드레스 시그널을 슬레이브로 전달한다고 했을 때, 이를 디코딩하기 위한 작업이 슬레이브가 많을 수록 현저히 떨어지는데 결국, 인터커넥트에서 마스터의 어드레싱을 처리하는 응답 속도가 떨어진다는 의미가 되겠지요. 따라서 마스터와 인터커넥트 혹은 슬레이브와 인터커넥트 버스 중간에 레지스터 슬라이스 (비트를 저장할 수 있는 플립플롭으로 보시면 됩니다)를 두어, 인터커넥트까지 거치지 않고 레지스터 슬라이스에서 바로 특정 시그널에 대한 응답을 할 수 있습니다. 이 결과로 Frequency가 높아지겠지만 반대로 Interconnect Path가 많아지게 됨으로써 Latency 지연이 증가하게 되겠지요. 즉, 레지스터 슬라이스를 패스 중간에 얼만큼 설치하느냐에 따라 Frequency와 Latency 간의 TRADE OFF가 있습니다. 하지만, 여기서 Latency가 상쇄될 수 있는 요인이 있는데, 최초에 비어 있는 레지스터 슬라이스 개수만큼 채울 때, Latency가 길어지지만 모두 채운 이후의 흐름에서는 오히려 더 높은 Frequency(짧은 패스)로 캐쉬 작업이 가능하기 때문입니다. 쉽게 얘기해서 레지스터 슬레이스를 설치한 패스 자체를 하나의 파이프 라인 스킴으로 보시면 이해가 쉬울 겁니다. 그리고 마스터와 슬레이브 간의 버스 패스가 너무 길어 특정 사이클 이내로 응답이 불가능한 경우는 레지스터 슬라이스를 설치해야 한다고 하네요.

(위의 그림에서 혼돈을 줄 수 있는 부분이 있습니다만, 여러 개의 마스터와 인터커넥트, 그리고 여러 개의 슬레이브와 인터커넥트가 단선으로 연결되어 오직 하나의 패스에 레지스터 슬라이스가 설치된 것처럼 보이지만, 실제 구조에서는 각 IP마다 따로 인터커넥트가 연결되어 있고 각각의 IP에 레지스터 슬라이스를 설치할 수 있는 구조로 보시면 됩니다.)

오늘은 간단히 여기까지만 정리하고 다음 시간에 타이밍 다이어그램에서 READ와 WRITE BURST의
동작을 살펴보도록 하겠습니다. (아래에 AMBA AXI SPEC 첨부하였으니 참고하세요)


Written by Simhyeon, Choe


AMBAaxi[1].pdf


ug761_axi_reference_guide.pdf