PC나 Mobile 기기에서 사람의 머리 역할을 하는것은 CPU입니다.
결국 모든일은 중심은 CPU가 한다는 것이죠.
그러기 위해서는 모든 장치가 CPU와 어떤 방법으로든 연결되어 있어야 한다는 의미가 됩니다.

우체부 아저씨가 편지를 전달해 주기 위해 주소 및 번지를 사용하듯이
CPU또한 각 장치에 접근하기 위해서는 각 장치가 가지는 번지로 접근을 하게 됩니다.
CPU가 특정한 번지들은 CPU가 전용으로 사용하기위해 HW 적으로 설계를 하는경우도 있고
확장을 위해서 외부에 여러 장치가 붙을 수 있도록 범용적으로 사용할 수 있도록 만들어 놓습니다.
번지마다 무슨 기능을 하는지 만들어 놓은 지도가 바로 Address Map 이라고 합니다.

Microprocessor는 일반적으로 32bit를 많이 사용하는데 32bit로 표현할수 있는 주소는
0x0000 0000 에서 0xFFFF FFFF 까지 입니다. 4GByte 까지 표현이 가능합니다.
요즘 PC를 보면 64Bit를 지원하는 CPU 와 OS가 나오는데 제가 생각하기에는
BUS를 늘려 속도를 빠르게 하기 위해서 라기 보다는 메모리를 더 많이 늘리기 위한 수단이지 않을까 하는 생각이 드네요.
물론 BUS를 늘리면 속도가 빨라지게 되겠죠.
아무튼 개발자에게 있어 메모리 맵을 잘 알고 있으면 각종 Device가 어디 붙어 있는지 어떤주소로 Device와 연결 할 수 있는지를
파악할 수 있겠지요
Memory Map은 특정 Address중에 RAM에 들어가는 데이터의 Address를 이야기 합니다.
크게 RO(Read Only), RW(Read Write),ZI( Zero Initialize) 영역으로 구분됩니다.
RO는 프로그래밍한 코드 및 Define과 같이 값이 변하지 않는 데이터가 들어가게 되고
RW는 읽고 쓸수 있으므로 초기값을 지정한 변수들이 할당이 됩니다.
ZI는 초기값을 0으로 설정하는 변수들이 여기에 해당합니다.
'Microprocessor' 카테고리의 다른 글
Static RAM & Dynamic RAM (0) | 2023.05.31 |
---|---|
Vector Table & Exception (0) | 2023.05.31 |
Scatter loading & ROM Binary (0) | 2023.05.31 |
Nand Flash Boot (0) | 2023.05.31 |
EBI & CS (0) | 2023.05.31 |