7. AMBA 3 AHB-lite Bus Architecture
7์ฅ AMBA 3 AHB-Lite Bus Architecture ๊ฐ์
AHB-Lite๋ ARM AMBA(Advanced Microcontroller Bus Architecture) 3.0 ํ์ค์ Single master ๋ฒ์ . Cortex-M0/M3 ๊ณ์ด MCU์ ํ์ค ์์คํ ๋ฒ์ค.
AMBA 3 AHB-Lite ํน์ง
- Single-master bus: ๊ธฐ์กด AHB๋ multi-master์์ง๋ง Lite๋ ๋จ์ผ master (arbiter ์๋ต)
- Pipelined transactions: Address phase์ Data phase ์ค์ฒฉ โ throughput โ
- Burst transfer ์ง์ (INCR, WRAP)
- Split transaction ์ง์ X (Lite ๋ฒ์ )
Signal Description
Master Output
- HCLK: bus clock
- HRESETn: active-low reset
- HADDR[31:0]: address
- HWRITE: 1=write, 0=read
- HSIZE[2:0]: transfer size (byte/halfword/word)
- HBURST[2:0]: burst type (SINGLE, INCR, WRAP4, INCR4, โฆ)
- HPROT[3:0]: protection/cache attribute
- HTRANS[1:0]: transfer type (IDLE, BUSY, NONSEQ, SEQ)
- HWDATA[31:0]: write data
- HMASTLOCK: locked transaction
Slave Output
- HRDATA[31:0]: read data
- HREADY: slave ready (wait state)
- HRESP: response (OKAY, ERROR)

AHB-Lite Transaction
๊ธฐ๋ณธ transaction์ Address phase์ Data phase์ 2 cycle:
T0 T1 T2
HCLK __/\__/\__/\__/\__
HADDR ___[Addr]________
HWRITE __[____1_____]____
HTRANS ___[NONSEQ]__[IDLE]_
HWDATA __________[Data]__
HREADY ___________/โพโพโพ\_
- T1 (Address phase): Master๊ฐ address + control ์ ๊ณต
- T2 (Data phase): Slave๊ฐ data ์ ๊ณต ๋๋ ๋ฐ์, HREADY๋ก ์๋ฃ ์ ํธ
Wait State
Slave๊ฐ ์ค๋น ์๋๋ฉด HREADY=0 ์ ์ง โ Data phase ์ฐ์ฅ.
Burst Transfer
์ฐ์๋ ์ฌ๋ฌ word ์ ์ก์ ํ๋์ NONSEQ + ์ฌ๋ฌ SEQ๋ก:
Burst Type (HBURST)
- SINGLE: ๋จ์ผ transfer
- INCR: unspecified length increment
- WRAP4: 4-beat wrapping (cache line)
- INCR4: 4-beat incrementing
- WRAP8, INCR8, WRAP16, INCR16: ๊ธธ์ด ์ง์
HTRANS
- IDLE: no transfer
- BUSY: burst ์ค ์ผ์ ์ค์ง
- NONSEQ: burst ์์ ๋๋ ๋จ์ผ transfer
- SEQ: burst ๋ด ํ์ transfer (address ์ฆ๊ฐ)

AHB-Lite System ๊ตฌ์ฑ
[AHB Master]
โ AHB
โผ
โโโโ [Decoder] โโโ HSELx
โ โ
[MUX] [AHB Slave 1]
โ [AHB Slave 2]
โ [AHB Slave 3]
โผ
(HRDATA, HREADY, HRESP)
- Decoder: HADDR์ decodingํด์ ํด๋น Slave์ HSEL ํ์ฑํ
- MUX: ์ ํ๋ Slave์ HRDATA, HREADY, HRESP๋ฅผ master๋ก
HSELx & Address Decode
๊ฐ Slave์๋ ๊ณ ์ address ๋ฒ์๊ฐ ํ ๋น๋จ. Decoder๊ฐ HADDR ์์ bit์ผ๋ก HSEL ์ ํ:
if (HADDR[31:20] == 0x400)
HSEL_UART = 1;
else if (HADDR[31:20] == 0x401)
HSEL_GPIO = 1;
AHB to APB Bridge
AHB-Lite์ ์ ์ APB๋ฅผ ์ฐ๊ฒฐ. Bridge๊ฐ AHB master ์ญํ , APB slave์ ํต์ . Cortex-M0 SoC์ ์ผ๋ฐ์ ๊ตฌ์กฐ:
[Cortex-M0 Core]
โ AHB-Lite
โผ
[AHB Interconnect]
โ โ โ
โ โ โโโ SRAM
โ โโโโโโ Flash
โโโโโโโโ AHBโAPB Bridge
โ APB
โโโ UART
โโโ Timer
โโโ GPIO
โโโ SPI/I2C

HPROT (Protection Signals)
Cache/bufferability, user/privileged, data/opcode๋ฅผ ๋ํ๋:
- HPROT[0]: opcode fetch (0) / data access (1)
- HPROT[1]: user (0) / privileged (1)
- HPROT[2]: non-bufferable (0) / bufferable (1)
- HPROT[3]: non-cacheable (0) / cacheable (1)
HRESP
- OKAY (0): normal completion
- ERROR (1): slave error โ master๊ฐ 2-cycle ์ํ์ค๋ก error ์๋ต ๋ฐ์
์ ๋ฆฌ
| ์์ | ํต์ฌ |
|---|---|
| AHB-Lite | Single-master ๋ฒ์ AHB |
| Pipelined | Address/Data 2-stage overlap |
| Burst | INCR, WRAP์ผ๋ก cache line fill |
| HREADY | Wait state ์ ์ด |
| Decoder + MUX | ์ฌ๋ฌ slave์ ๋ผ์ฐํ |
| Bridge to APB | Peripheral ์ฐ๊ฒฐ |
AHB-Lite๋ Cortex-M0/M3 SoC์ ๊ธฐ๋ณธ bus๋ก, ๋จ์ํ๋ฉด์๋ ์ถฉ๋ถํ ๋์ญํญ์ ์ ๊ณตํด ์ ์ ๋ ฅ ์๋ฒ ๋๋ ์์คํ ์ ์ ํฉํ๋ค.

Comments (0)
No comments yet. Be the first to comment!
Please to write a comment.