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'를 이용해서 선택하게 됩니다.
'컴퓨터구조' 카테고리의 다른 글
SPI 통신 특징 및 다른 통신(UART, I2C와의 비교 (0) | 2025.05.19 |
---|---|
AXI protocol (0) | 2025.05.12 |
0~10까지 더하는 Dedicated Processor 설계하기 v2 (0) | 2025.04.24 |
0~10까지 더하는 Dedicated Processor 설계하기 (0) | 2025.04.09 |
0~9까지 카운트하는 Dedicated Processor 설계하기 (0) | 2025.04.06 |