3. AMBA 3 AHB-LITE Bus Architecture

 지난 챕터에서 SoC를 이루는 3요소로 프로세서, 페리프럴, 버스를 소개했습니다.

이 요소들을 인체기관으로 빗대어보어 각기 대응하면 뇌, 감각·운동기관, 신경기관이라고 소개했었습니다.

- 코어가 명령을 내리고 페리프럴에게 잘 전달하고, 페리프럴이 연산을 수행한 후, 그에 대한 리스폰스를 다시 코어에게 전달하는데 이 때마다 전달을 할 수 있게 해주는 역할이 바로 '버스'입니다.

만일, 버스가 없다면 프로세서와 페리프럴이 1:1 대응을 하여 모든 입력과 출력이 동작하게 될 것입니다. 그렇게 된다면 프로세서에서 처리할 인풋과 아웃풋이 매우 많아지겠죠. 하지만 이 때 버스를 이용한다면 공통적인 패스(Path)를 만들기 때문에, 그러한 1:1 대응을 할 필요가 없어지게 된다는 것입니다.

Master Read / Write를 시작하는 지점 [Processor]
Slave 마스터의 요청을 받아 데이터를 R/W하는 지점. [Memory, UART, etc.]
Decoder 마스터의 요청이 어떠한 Slave를 타켓으로 하는지를 결정해줍니다.
Mux Slave 1, 2, 3에서 출력이 나올 수 있다. 마스터가 요청한 한 데이터를 받아야 하는데 어떠한 신호를 선택하여 마스터에 전달해야 하는지를 결정하는 것을 Mux라고 합니다.
Control 버스가 운용될 수 있도록 W/R 혹은 전송의 단위가 byte / word / half word인지와 같은 것을 결정하는 라인입니다.
Data Write일 경우 마스터가 데이터를 전달할 것이고, Slave가 Read할 경우 Slave가 데이터를 전달할 것입니다.
Addr 마스터가 슬레이브를 선택할 때 활용하는 것. 프로세서에서 전달하는 주소. 이를 기반으로 메모리 맵에 맵핑이 됩니다.

ex) Master → Slave

마스터에서 addr을 주면 어떠한 Slave를 타겟으로 하는지를 알려줘야 하는 담당을 Decoder가 하는데 addr을 받아 해당 addr를 해석하여 Memory Map을 기반으로 해 타겟을 정합니다. ex) Slave 1이 0x0~0x10, Slave 2가 0x11~0x20, Slave 3이 0x21~0x30을 차지한다고 가정을 해봅니다. addr가 0x15일 때는 slave 1과 slave 3에는 0을 넣고 slave 2에만 1을 넣어 ctrl, data, addr을 받을 수 있도록 합니다.

 

ex) Slave → Master

세 Slave에서 하나만의 Source를 선택해 Master로 전달해줘야 합니다. 이를 결정하기 위해 Decoder에서 활용했던 addr를 Mux로 신호를 보냅니다.

 

 

AMBA : Advanced Microcontroller Bus Architecture

) AMBA1에서부터 차례로 업데이트 한 순서.

 

- AXI는 대용량 버스입니다.

- AHB는 기본적으로 멀티 버스를 지원합니다. 마스터가 한 개 이상이여서 코어, DSP 엔진 등이 될 수 있다는 장점이 있습니다.

 

 

[Slave에서의 시그널]

asdasdasd

- 슬레이브는 마스터에 의해 전달받은 값을 수행합니다.

- HSELx 신호는 어드레스 디코더의 아웃풋이며 한 번에 한 슬레이브를 택해야만 합니다.

[Master에서의 시그널]

- 마스터는 R/W을 수행하기 위해 Addr, Data, Control 신호를 제공하게 됩니다.

- 또한, 슬레이브로부터의 반응을 받는데 이 시그널에는 데이터, 레디, 리스폰스가 포함됩니다.

 

[Decoder에서의 시그널]

 

- 현재 어드레스 버스에 따른 선택할 슬레이브에 대한 신호를 내보냅니다. 또한 Mux에도 전달하게 됩니다.

- Then, 왜 Master에서는 수많은 신호가 있었는데 디코더에는 존재하지 않는지?

=> CLK에 따른 값을 출력하는 것이 아닌 단순 입력에 대해 값을 출력하는 것이기 때문에 다른 신호는 필요로 하지 않습니다.

 

[Slave Mux에서의 시그널]

- HRDATA와 RESPONSE를 하나의 입력으로 받고 어느 신호를 택해야할지를 Decoder에서 나온 Select 신호로 판별하여 아웃풋을 결정하여 내보내게 됩니다.

 

 

[AHB Lite Signal List]

 

- 마스터에서 다시 마스터로 돌아오기까지 한 사이클이 아닌 두 사이클이다.

Address Phase = Master → Slave

Data Phase = Slave → Master

'IDEC > Cortex - M0' 카테고리의 다른 글

6. VGA Peripheral (1)  (0) 2023.07.20
5. Timer / GPIO / 7-Segment Peripherals  (0) 2023.07.19
4. AHB UART Peripheral  (0) 2023.07.19
2. Cortex-M0 Overview / Register  (0) 2023.07.14
1. SoC란 무엇인가?  (0) 2023.07.14