본문 바로가기

IT

AHB 버스 사용시에 Byte alignment

Microsemi Application note 에 있는 그림을 잘라 가져온다.


약간 헷갈릴 수 있는데, 그림으로 잘 그려두었다.

기본이 4바이트(워드라고 부른다)로 동작을 하니 바이트 동작을 하는 경우 alignment가 신경 쓰인다.


그냥 콱 4바이트 전용으로 동작하면 좋으련만 녹록치 않다 세상은. ^^

그림을 보면 이해가 쏙,




HADDR의 하위 2비트를 옵셋으로 사용하고, HSIZE가 동작 단위이다.

당연히 HSIZE="00" 인 경우 바이트 동작이므로 4가지의 경우가 생기고

HSIZE="01" 인 경우 2바이트 단위이므로 2가지의 경우가 생긴다. (상상일 수 있지만, HADDR[1:0] = "00" 이나 "01" 이라도 같은 동작일 듯 하다. 상위비트로 구분할 듯)

그리고, HSIZE = "10" 인 경우야 생각할 필요없이 걍 4바이트 전체로 사용, 당연히 HADDR[1:0]의 값이 큰 영향을 주지 않는다.