You are on page 1of 55

AMBA BUS

AMBA Specification Overview


AMBA : Advanced Microcontroller Bus Architecture

AMBA Bus의 목적
① Right-first-time
② Technology-independent
③ Modular system design

AMBA는 3종류의 세부 버스구조로 나뉘어진다.


Advanced High-performance Bus (AHB)
Advanced System Bus (ASB)
Advanced Peripheral Bus (APB)
AMBA Bus

APB는 higher bandwidth main system과 lower bandwidth디바이스를


연결하는 2차버스의 역할을 담당한다.
용어정의
Bus cycle
AHB, APB → rising edge to rising edge
ASB → falling edge to falling edge

Bus transfer
AHB, ASB → 하나이상의 버스 사이클을 요구하는 Data read/Write.
지정된 slave로부터 completion응답을 이 이루어 질때까지.
ASB에서의 전송사이즈는 byte(8bit), halfword(16bit), word(32bit)
AHB는 ASB에서 지원되는 사이즈를 지원하며 64bit, 128bit를 추가
적으로 지원한다.
APB → 항상 two-bus cycle을 요구한다.

Burst Operation
Bus master에 의해 초기화되는 하나 이상의 데이터전송동작.
APB에서는 지원되지 않는다.
AMBA AHB Overview(1)

Multiple bus master와 high-bandwidth operation을 위한 high-


performance system bus

? Burst transfers
? Split transactions
? Single-cycle bus master handover
? Single clock edge operation
? Non-tristate implementation
? Wider data bus configuration(64/128)

내?외부메모리, APB bridge는 가장 일반적인 형태의 AHB slave.


또한 다른 peripheral들도 AHB slave가 될 수 있다. 그러나 low
Bandwidth peripheral들은 대체적으로 APB에 연결된다.
AMBA AHB Overview(2)

AHB master : 한번에 하나의 master만이 bus를 사용할 수 있다.

AHB slave : 슬레이브는 주어진 어드레스 범위내에서 read/write동작을


수행한다. Slave는 데이터 전송에 대한 success, failure,
waiting상태에 대한 정보를 master에게 돌려 주어야 한다.

AHB arbiter : arbiter는 한번에 하나의 master만이 bus를 사용하도록 권한


을 부여 한다. 하나의 AHB는 하나의 arbiter를 갖는다.

AHB decoder : decoder는 전송하고자 하는 slave의 어드레스를 디코딩한다.


하나의 decoder가 모든 AHB상의 slave들을 디코딩 한다.
AMBA ASB Overview

ASB는 APB보다는 상위 버스구조에 속하면서 high-performance system에서


요구하는 특징들을 지닌 bus이다.

? burst transfers
? pipelined transfer operation
? multiple bus master

ASB master, ASB slave, ASB decoder, ASB arbiter는 AHB의 특징과 동일

*그러나 signal list와 bus동작방법은 차이를 보인다.


AMBA APB Overview
AHB/ASB의 slave device로 encapsulated되어 2차버스 구조로 동작
APB는 low-bandwidth와 Pipelined bus interface를 요구하지 않는
Peripheral들을 인터페이스하는데 사용한다.

APB bridge는 bus handshake신호의 핸들링과 APB측으로의 control


신호를 retiming하는 slave모듈이다. 또한 어드레스, 데이터, 컨트롤
신호들을 래치하는 기능을 갖는다.

APB slave의 특징
Unpipelined
APB가 동작하지 않는 동안 전력 소비가 없다.
Strobe 타이밍에 의한 디코딩 동작(Unclocked interface)
AHB/ASB와 APB

• 많은 수의 peripheral macrocell로 인한 버스의 과부하는


전력의 소비 증가와 성능의 저하를 가져온다.

• 저속의 디바이스는 버스의 최대 성능을 제한한다.


Bus Selection

AHB/ASB는 다음과 같은 장치들을 인터페이스한다.


• Bus masters
• On-chip memory blocks
• External memory blocks
• High-bandwidth peripherals with FIFO interfaces
• DMA slave peripherals

APB는 다음과 같은 장치들을 인터페이스한다.


• Simple register-mapped slave devices
• Very low power interface
• Grouping Narrow-bus peripherals to avoid loading the system bus
AHB signal list(1)

Name Source Description


HCLK Clock source Bus clock (rising edge)
HRESETn Reset controller Reset(Active low)
HADDR[31:0] Master Address bus
HTRANS[1:0] Master Transfer type
HWRITE Master Transfer direction
HSIZE[2:0] Master Transfer size
HBURST[2:0] Master Burst type
HPROT[3:0] Master Protection control
HWDATA[31:0] Master Write databus
HSELx Decoder Slave select
HRDATA[31:0] Slave Read data bus
HREADY Slave Transfer done
AHB signal list(2)

Name Source Description


HRESP[1:0] Slave Transfer response
HBUSREQx Master Bus request
HLOCKx Master Locked transfers
HGRANTx Arbiter Bus grant
HMASTER[3:0] Arbiter Master number
HMASTLOCK Arbiter Locked sequence
HSPLITx[15:0] Slave Split completion request

• AHB는 multiple bus master동작을 지원한다. 위의 테이블에서 suffix x는


모듈x로부터의 신호를 가리킨다. HBUSREQx의 경우 HBUSREQarm,
HBUSREQdma, HBUSREQtic와 같이 arbiter를 통해 선택되는 소스를 표시
ASB signal list
Name Description
BCLK Bus clock(falling edge)
BnRES Reset(Active low)
BA[31:0] Address bus
BTRAN[1:0] Transfer type
BWRITE Transfer direction HIGH=Write, Low=READ
BSIZE[1:0] Transfer size
BPROT[1:0] Protection control
BD[31:0] Data bus
DSELx Slave select
BWAIT Wait response HIGH=Bus cycle required Low=transfer complete
AGNTx Bus grant
AREQx Bus request
BERROR Error response HIGH=Error Low= transfer successful
BLAST Last response
BLOK Locked transfers
APB signal list

Name Description
PCLK Bus clock (Rising edge)

PRESETn APB reset (Active low)

PADDR[31:0] APB address bus

PSELx APB select (secondary decorder, within peripheral bridge)

PENABLE APB strobe

PWRITE APB transfer direction

PRDATA APB read data bus

PWDATA APB write data bus


AMBA AHB
A typical AMBA AHB-based system
Multiplexor interconnection
AHB - Simple transfer

*Data phase는 HREADY신호가 ‘1’이 될 때까지 지속된다.


AHB – Transfer with wait states
Multiple transfers
AHB – Transfer type

HTRANS[1:0] Type Description

어떤 데이터 전송도 이루어지지 않는다. Master


00 IDLE 가 Slave로 데이터를 전송하고자 할 때 언제든지
Slave로부터 Okay응답을 받을 수 있다.
Burst전송 동작 중 IDLE상태를 갖도록 한다.
Burst동작 중 데이터를 가져오기 전에 어떤 처리
01 BUSY
를 위하여 기다리게 될 경우에 중간에 IDLE상태
를 만들기 위해 BUSY를 사용한다.

단일 데이터 전송이나 Burst전송의 첫 번째 동작


10 NONSEQ
에 사용된다.

Burst로 데이터를 전송할 경우 NONSEQ의 다음


11 SEQ
데이터부터 SEQ로 동작한다.
AHB – Transfer type example (BURST)
Burst operation(1)
HBURST[2:0] Type Description

000 SINGLE Single transfer

001 INCR Incrementing burst of unspecified length

010 WRAP4 4-beat wrapping burst

011 INCR4 4-beat increment burst

100 WRAP8 8-beat wrapping burst

101 INCR8 8-beat increment burst

110 WRAP16 16-beat wrapping burst

111 INCR16 16-beat increment burst

• Bursts동작은 1kB어드레스 범위를 넘어설 수 없다.


• unspecified length동작을 이용하여 single transfer동작을 행할 수 있다.
Burst operation(2)

• Burst사이즈는 bytes의 수를 의미하지 않고 beat의 수를 의미한다.


HSIZE[2:0]도 동시에 고려해야 한다.
ex) word단위로 4beat전송 -> 16bytes전송
4-beat wrapping burst
4-beat incrementing burst
Eight-beat wrapping burst
Undefined-length bursts
Control signals – Transfer size

HSIZE[2:0] Size Description


000 8bits Byte
001 16bits Halfword
010 32bits Word
011 64bits -
100 128bits 4-word line
101 256bits 8-word line
110 512bits -
111 1024bits -
Address decoding – slave select
Slave transfer responses
? HREADY
? HRESP[1:0]
HRESP[1:0] Response Description
00 OKAY 전송이 성공할 경우에 HREADY가 “H”가 된다.
HREADY신호가 “L”일 경우에는 나머지 ERROR,
RETRY, SPLIT중 하나로 응답이 이루어진다.
01 ERROR 이 응답은 에러가 발생되었음을 알려준다.

10 RETRY RETRY응답은 전송이 아직 완료되지 않았음을


알려준다. Master는 전송이 완료 될 때까지
지속적으로 RETRY를 하게 된다.
11 SPLIT 전송이 완료되지 않은 상태. 버스의 권한을
다시 부여 받으면 계속하여 전송을 하게된다.

* ERROR, RETRY, SPLIT는 모두 2-cycle응답을 필요로 한다.


Transfer with retry response
Error response
Data buses

* Active byte lanes for a 32-bit little-endian data bus


Data buses
* Active byte lanes for a 32-bit big-endian data bus
Granting access with no wait states
Granting access with wait states
Data bus ownership
Handover after burst
Bus master grant signals
AHB bus slave
Interface diagram
AHB bus master
Interface diagram
AHB arbiter
Interface diagram
AHB decoder
Ex) Excalibur에서 AHB BUS Interface
AMBA APB
A typical AMBA AHB-based system
State Diagram
APB Write & read

Write Read
APB Slave
APB bridge
APB BRIDGE MODULE
APB BRIDGE BLOCK DIAGRAM
AHB-TO-APB INTERFACE
APB-TO-AHB INTERFACE

You might also like