모든 프로그램과 데이터가 CPU에 의해서 실행되고 참조되기 위해서는 먼저 주기억장치 내에 적재되어야 한다. 당장 필요하지 않은 프로그램과 데이터는 보조기억장치에 저장해 두었다가 실행되거나 참조되기 위하여 필요시에 주기억장치로 옮겨여야 한다. 주기억장치는 보조기억장치보다 훨씬 빠르고 용량이 적다. 반면에 보조기억장치는 주기억장치보다 속도는 느리지만 가격이 싸고 대용량이다.
1980년대 CPU와 주기억장치 사이에 캐시 기억장치(cache memory)를 개발하여 사용함으로써 시스템의 성능과 CPU 이용률을 극대화시킬 수 있게 되었다. 캐시는 주기억장치보다 10~100배 이상의 빠른 속도를 갖고 상대적으로 용량이 작은 CPU 내의 기억 장소이다. CPU가 주기억장치에 있는 프로그램이나 데이터를 실행하서나 참조하기 전에 미리 캐시에 옮겨짐으로써 주기억장치보다 훨씬 빠르게 실행되거나 참조되게 한다.
주기억장치와 보조기억장치 사이에 위치한(buffer)는 CPU의 연산 속도에 비해 상대적으로 입출력 속도가 늦는 보조기억장치의 제한을 극복하기 위해 만든 것으로 버퍼는 주기억장치 내의 기억 공간이다. 버퍼나 디스크 캐시(disk cache)를 사용하여 CPU 연산과 보조기억장치로의 입출력 속도 차이를 해소할 수 있다. 보조기억장치는 디스크나 테이프, 드럼 등을 사용한다.
[ 그림 4-2 ]는 기억장치의 계층 구조를 보여주고 있다.