실행할 프로그램의 명령어와 데이터를 저장하는 기억장치
전원을 끄면 메모리에 있는 데이터는 모두 날아간다 (휘발성 저장 장치)
CPU는 보조기억장치 (비휘발성) 에 접근하지 못하므로, 실행하고 싶은 프로그램을 보조기억장치에서 메모리로 복사하여 실행한다
메모리에 프로그램의 어떤 데이터가 어떻게 저장되는지는 이 단원 에 나온다
메모리에 프로그램이 실시간으로 적재/삭제 되며 변경되는데, CPU는 어느 메모리 주소에 뭐가 저장되어 있는지 알 수가 없다. 그래서 프로그램은 0부터 시작하는 각자의 주소 (논리 주소)를 가지고 있다. CPU는 프로그램의 논리 주소를 보고 물리 주소를 찾아간다.
정보가 실제로 저장된 하드웨어상의 주소
실행중인 프로그램 각각에게 부여된 0부터 시작하는 주소
근데 논리 주소로 물리 주소를 어떻게 찾아야 할까??
CPU와 주소 버스 사이에서 논리주소와 물리주소를 변환해주는 하드웨어
각 프로그램의 첫번째 물리주소가 베이스 레지스터 에 저장된다. 이 주소는 논리 주소로는 0번지가 된다.
필요한 명령어의 논리 주소에다가 베이스 레지스터 값을 더하면 물리주소를 알 수 있다.
CPU는 실행중인 프로그램의 주소 범위에만 접근해야 한다.
그러기 위해서는 먼저 해당 프로그램의 크기, 즉 논리주소가 0으로 시작해서 몇 번까지 있는지 알아야 한다.
프로그램의 시작 주소를 베이스 레지스터가 알고 있는 것처럼, 한계 레지스터는 프로그램의 최대 크기를 저장한다.