컴퓨터구조

메모리 매핑

_KDE_ 2025. 4. 19. 19:40

CPU는 RAM, ROM, peripheral등 여러 장치들과 연결되어 있습니다.

이 때 CPU는 각 장치들과 DATA, ADDRESS가 연결되어있습니다.

그런데 만약 RAM에 DATA를 write하고 싶은데 RAM, Peri1, Peri2 등 DATA path가 전부 쇼트되어있습니다.

Address도 마찬가지입니다.

 

그래서 내가 원하는 장치를 지정하고 그 장치에만 값을 write이나 read를 할 수 있게 하는 것이 '메모리 매핑'입니다.

 

예를 들어 CPU가 16bit Address를 내보낸다고 가진다고 가정해보겠습니다.

(A16,A15,A14 ... , A1,A0)

여기서 상위 3bit를 가지고 RAM, Peri1, Peri2 중 어떤 장치를 선택할지 정하는 것입니다. (low enable이라 0인 것이 선택된 것 입니다)

 

000이면 RAM선택, 001이면 Peri1선택, 010이면 Peri2 선택입니다.

 

그럼 A12~A0이 선택된 장치에 접근할 수 있는 범위가 되겠습니다.

 

즉 CPU의 16bit address는 0x0000~0x1FFF까지는 RAM에 대한 주소이고, 0x2000~0x3FFF까지는 Peri1에 대한 주소가 되겠습니다.

그럼 PERI2는 0x4000~0x5FFF가 되겠습니다.

 

 


 

address의 상위 3bit로 특정 장치를 선택해주는 것은 'Decoder'를 이용해서 선택하게 됩니다.