AMBA Specification Overview · 2016-10-31 · • External memory blocks • High-bandwidth...

Post on 30-Jul-2020

4 views 0 download

Transcript of AMBA Specification Overview · 2016-10-31 · • External memory blocks • High-bandwidth...

AMBA BUS

AMBA Specification OverviewAMBA : 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 cycleAHB, APB → rising edge to rising edgeASB → falling edge to falling edge

Bus transferAHB, ASB → 하나이상의 버스 사이클을 요구하는 Data read/Write.

지정된 slave로부터 completion응답을 이 이루어 질때까지.ASB에서의 전송사이즈는 byte(8bit), halfword(16bit), word(32bit)AHB는 ASB에서 지원되는 사이즈를 지원하며 64bit, 128bit를 추가적으로 지원한다.

APB → 항상 two-bus cycle을 요구한다.

Burst OperationBus 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의 특징

UnpipelinedAPB가 동작하지 않는 동안 전력 소비가 없다.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)

Slave selectDecoderHSELx

Read data busSlaveHRDATA[31:0]

Transfer doneSlaveHREADY

Write databusMasterHWDATA[31:0]

Protection controlMasterHPROT[3:0]

Burst typeMasterHBURST[2:0]

Transfer sizeMasterHSIZE[2:0]

Transfer directionMasterHWRITE

Transfer typeMasterHTRANS[1:0]

Address bus MasterHADDR[31:0]

Reset(Active low)Reset controllerHRESETn

Bus clock (rising edge)Clock sourceHCLK

DescriptionSourceName

Split completion requestSlaveHSPLITx[15:0]

Locked sequenceArbiterHMASTLOCK

Master numberArbiter HMASTER[3:0]

Bus grantArbiterHGRANTx

Locked transfersMasterHLOCKx

Bus requestMasterHBUSREQx

Transfer responseSlaveHRESP[1:0]

DescriptionSourceName

AHB signal list(2)

• AHB는 multiple bus master동작을 지원한다. 위의 테이블에서 suffix x는모듈x로부터의 신호를 가리킨다. HBUSREQx의 경우 HBUSREQarm,HBUSREQdma, HBUSREQtic와 같이 arbiter를 통해 선택되는 소스를 표시

ASB signal list

Error response HIGH=Error Low= transfer successfulBERROR

Last response BLAST

Bus requestAREQx

Wait response HIGH=Bus cycle required Low=transfer completeBWAIT

Bus grantAGNTx

Locked transfers BLOK

Slave selectDSELx

Data busBD[31:0]

Protection control BPROT[1:0]

Transfer sizeBSIZE[1:0]

Transfer direction HIGH=Write, Low=READBWRITE

Transfer typeBTRAN[1:0]

Address busBA[31:0]

Reset(Active low)BnRES

Bus clock(falling edge)BCLK

DescriptionName

APB signal list

APB write data busPWDATA

APB read data busPRDATA

APB transfer directionPWRITE

APB strobePENABLE

APB select (secondary decorder, within peripheral bridge)PSELx

APB address busPADDR[31:0]

APB reset (Active low)PRESETn

Bus clock (Rising edge)PCLK

DescriptionName

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

Burst로 데이터를 전송할 경우 NONSEQ의 다음데이터부터 SEQ로 동작한다.

SEQ11

단일 데이터 전송이나 Burst전송의 첫 번째 동작에 사용된다.

NONSEQ10

Burst전송 동작 중 IDLE상태를 갖도록 한다. Burst동작 중 데이터를 가져오기 전에 어떤 처리를 위하여 기다리게 될 경우에 중간에 IDLE상태를 만들기 위해 BUSY를 사용한다.

BUSY01

어떤 데이터 전송도 이루어지지 않는다. Master가 Slave로 데이터를 전송하고자 할 때 언제든지Slave로부터 Okay응답을 받을 수 있다.

IDLE00

DescriptionTypeHTRANS[1:0]

AHB – Transfer type example (BURST)

Burst operation(1)

16-beat increment burstINCR16111

16-beat wrapping burstWRAP16110

8-beat increment burstINCR8101

8-beat wrapping burst WRAP8100

4-beat increment burst INCR4011

4-beat wrapping burst WRAP4010

Incrementing burst of unspecified lengthINCR001

Single transferSINGLE000

DescriptionTypeHBURST[2:0]

• 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

-1024bits111

-512bits110

8-word line256bits101

4-word line128bits100

-64bits011

Word32bits010

Halfword16bits001

Byte8bits000

DescriptionSizeHSIZE[2:0]

Address decoding – slave select

Slave transfer responses

?HREADY

?HRESP[1:0]

전송이 완료되지 않은 상태. 버스의 권한을

다시 부여 받으면 계속하여 전송을 하게된다.SPLIT11

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

알려준다. Master는 전송이 완료 될 때까지

지속적으로 RETRY를 하게 된다.

RETRY10

이 응답은 에러가 발생되었음을 알려준다.ERROR01

전송이 성공할 경우에 HREADY가 “H”가 된다.

HREADY신호가 “L”일 경우에는 나머지 ERROR, RETRY, SPLIT중 하나로 응답이 이루어진다.

OKAY00

DescriptionResponseHRESP[1:0]

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

Transfer with retry response

Error response

Data buses

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

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

Data buses

Granting access with no wait states

Granting access with wait states

Data bus ownership

Handover after burst

Bus master grant signals

AHB bus slaveInterface diagram

Interface diagram

AHB bus master

Interface diagram

AHB arbiter

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

APB BRIDGE STATE MACHINE

AHB-TO-APB INTERFACE

APB-TO-AHB INTERFACE