AMBA_BUS_APB_1

Learning stuff 2013. 2. 28. 18:24

APB


AMBA BUS AHB 다음은 APB 이다!!

APB는 Advanced Peripheral Bus 라는건 다 아실테고 주변 장치... 그러니까 빠를 필요없는 보통 AHB와 같이 쓰인다. 어떻게 쓰이느냐 다음과 같이.....


그림과 같이 AHB 는 high performance, pipelined, burst operation 등등 그냥 좋은거 인데

APB 는 Low power, Simple interface, low bandwidth 등등 성능이 별로 좋을 필요 없는곳에....


다음은 APB 의 상태도이다. APB는 기본적으로 3가지 동작으로 이루어 진다

1. IDLE : the default state

2. SETUP : transfer 이 필요할때 첫 상태. selection 신호인 PSELx = 1

3. ENABLE : PSELx = 1 인 상태에서 enable 신호인 PENABLE 빵!



APB Write, APB Read 동작

Write 와 Read 동작 모두 아주 간단하다. Write냐 Read 냐의 차이는 PWRITE 가 1이냐 0이냐의  차이이다.


기본적인 Write Read 동작은 위 3단계에 맞추어 생각하면 될것같다


다음 두 그림은 AHB 와 연결하여 생각한 것이다.


첫번째 Write 를 보면

1. AHB의 Address phase

2. AHB의 Data phase

3. APB의 setup phase

4. APB의 enable phase

순이다.


READ는 

1. AHB의 Address phase

2. APB의 setup phase

3. APB의 enable phase 에 data가 나오고 동시에 AHB의 Data phase


APB 의 Burst operation

평범한건 똑같다. 그냥 SET_UP, ENABLE 이 반복이 되고 IDLE 상태가 없어서 이득이 된다는 것이 좋은점이다.


한가지만 이야기 한다면 Burst_of_write 나 read 에서 동그라미 친 부분에서 보낸 opreation 1 의 APB 에서 일어나는 SET_UP, ENABLE 과정때문에 HREADY 를 Low로 내려서 1 cycle 을 지연시키는것을 볼 수 있다. 

그 다음은 Back-to-back 임의의 주변장치를 대상으로 읽고, 쓰는 동작이 반복적으로 발생하는 상황이다. 그림 보고 설명 해봅시당


1. Operation 1 이 address phase 에서 write 로써 addr1 을 보내주고 있다.

2. Operation 2 가 따라오면서 read 로써 addr2 를 주고 있다. 동시에 Operation 은 data phase 로써 write 할 Data 1 을 주고 있다.

3. 기다려야 하기 때문에...... HREADY 를 low 로 내리고 APB로 넘어간 Operation 은 작업을 시작한다.

4. Operation 1 의 SET_UP

5. Operation 1 의 ENABLE

6. Operation 2 의 SET_UP

7. Operation 2 의 ENABLE

8. Operation 2 로 Data 2 가 툭 튀어나오는 동시에 rising edge 가 HIGH 로 복귀된 HREADY를 읽으면서 AHB 쪽 동작 즉 여기서는 Operation 3 의 Address phase가 진행되지

9. Opeation 4 의 Address phase 인 동시에 Operation 3의 data phase

10. 반복.............


즉 여기서 볼수 있듯이 Write 뒤에 Read가 올 시 Read 는 3-cycle 을 기다려야 한다. 뉴뉴


마지막으로 APH Overview

'Learning stuff' 카테고리의 다른 글

Switching techniques  (0) 2013.03.02
NoC  (0) 2013.03.02
AMBA_Bus_transfer_3  (0) 2013.02.28
AMBA_bus_transfer_2  (0) 2013.02.27
AMBA_Bus_transfer_1  (0) 2013.02.26