컴퓨터가 자료를 처리하려면 그 자료와 이를 처리할 수 있는 프로그램을 저장할 수 있는 곳이 있어야 한다. 처리장치로 프로그램을 불러내어 처리하는 과정에서 일시적인 저장이 필요하기도 하고, 또한 지금 바로 처리장치가 필요로 하지 않는 자료와 프로그램을 얼마 동안 보존했다가 필요할 때 꺼내서 사용할 수 있는 저장장치도 필요하다. 이러한 저장 기능을 담당하는 장치를 통틀어 기억장치라 일컫는다. 기억장치는 읽고 쓰는 속도에 비례하여 가격이 비싸기 때문에, 처리장치와 직접 연결된 기억장치는 작은 용량의 속도가 빠른 것으로 구성하여 처리 속도를 높이고, 대량의 자료 저장을 위하여는 속도는 느리지만 가격이 싼 것으로 구성하여 비용과 성능을 감안하여 컴퓨터 시스템을 구성하는 것이 대부분이다. 이처럼 한 시스템에서 여러 종류의 기억장치를 연결하여 속도와 저장량을 보완한 구조체를 메모리 계층이라 한다. 메모리 계층은 크게 3단계로 구분할 수가 있다. 첫째, 중앙처리장치에 내장되는 기억장치로서 처리장치와 속도가 비슷한 플립플롭으로 이루어진 레지스터들을 말하며, 이들은 명령이나 자료들을 일시적으로 저장하는 역할을 하며 버퍼(buffer) 또는 캐시(cache) 메모리라고 한다. 둘째, 주기억장치로서 컴퓨터가 작동하는 동안 처리장치가 필요로 하는 일이 많은 프로그램 명령어와 자료를 저장하고 있는 기억장치이다. 비교적 용량이 크고 속도도 빠르다. 이 장치의 특징은 중앙처리장치 명령에 의하여 기억된 장소에 직접 접근하여 쓰고 읽을 수 있다. 여기에 사용되는 소자에는 램(RAM)을 비롯하여 여러 가지 소자들이 있다. 일반적으로 단순히 기억장치라 하면 바로 이 주기억장치를 의미한다. 셋째, 보조기억장치로서 용량은 크지만 기계적인 부품들이 연결되기 때문에 속도는 주기억장치에 비하여 상당히 느리다. 이는 입력되는 자료와 처리결과를 보관하거나, 중앙처리장치에서 계속적으로 필요로 하지 않는 각종 프로그램들을 저장하는데 사용한다. 가장 대표적인 것이 자기 디스크이다.