주기억장치는 전원이 켜진 상태에서만 데이터를 읽거나 기록할 수 있고, 전원이 꺼지면 기억된 내용이 모두 지워지는 휘발성의 특징이 있다. 일반적으로 기억장치는 정보의 장기적인 저장을 목적으로 하지만, 주기억장치는 프로그래므이 명령을 저장하고 있다가 빠르게 실행할 수 있도록 하는 것이 목적이다. 그래서 실행이 완료된 명령들은 신속한 실행을 위해서 다른 명령들로 교체된다. 또한 전원이 꺼지면 더 이상 빠르게 실행할 일이 없으므로 기억된 모든 명령들은 주기억장치에서 삭제된다.
주기억장치는 저장하기 위한 기억소자로만 구성되지는 않는다. [ 그림 7-5 ]는 주기억장치의 구조를 나타낸 것이다. 우선, 주기억장치는 CPU에 존재하고 있는 제어장치에서 데이터를 읽거나 쓰기 동작을 수행하도록 제어신호를 수신한다. 쓰기 동작 모드에서는 입력장치나 보조기억장치에서 주기억장치로 입력정보가 전달된다. 버퍼 기능을 수행하는 기록회로는 입력된 프로그램과 데이터를 임시 저장하였다가 프로그램 명령과 프로그램에서 사용될 데이터를 실제로 기억하는 기억소자들로 구성된 기억매체에 전달된다. 또한 제어장치는 데이터가 저장될 기억소자의 주소를 번지 선택회로에 전달하여 데이터가 저장될 기억소자를 선택하도록 한다. 읽기 동작 모드에서는 제어장치 읽기 제어신호를 발생시키고 인출된 정보가 저장된 기억소자의 번지를 지정한다. 해당 번지에 저장된 내용은 판독회로에서 판독되어 외부로 출력된다.
명령어 처리과정에서 주기억장치의 역할을 생각해보자. 명령어는 머신 사이클(machine cycle)이라 불리는 인출(fetch)-해독(decode)-실행(execute)-저장(store)의 4단계를 통해서 수행된다. 이 모든 과정은 시스템 클록(system clock)에 의해 동기화되어 있다. 특히, 첫 번째 인출(fetch) 단계는 필요한 명령어를 주기억장치에서 불러오며, 마지막 저장(store) 단계는 수행 결과를 주기억장치에 저장한다. 즉 머신 사이클 중에서 두 단계를 거쳐 주기억장치에 읽기 동작과 쓰기 동작을 수행하는 것을 할 수 있다. 두 단계에서 주기억장치의 주소 번지는 기억장치 주소 레지스터 MAR(Memory Address Register)를 통해 전달되고, 주기억장치와 버스 간의 데이터는 기억장치 버퍼 레지스터 MBR(Memory Buffer Register)를 통해 전달된다. [ 그림 7-6 ] 은 주기억장치와 레지스터의 관계를 나타낸 것이다. 인출 과정에서는 MAR이 지시하는 주기억장치의 주소 번지에서 데이터를 읽어와서 MBR에 저장한다. 저장 과정에서는 MAR에 저장되 있는 주소 번지에 해당하는 주기억장치 위치에 MBR에 저장되어 있는 데이터를 저장한다.