걸리버 개발기
아래 사진이 무엇인지 아는가? 초기의 컴퓨터가 사용하던 천공 카드라고 하는 저장매체의 사진이다.
천공 카드는 천공 위치에 구멍을 뚫거나 뚫지 않음으로서 하나의 비트를 나타날 수 있다. 컴퓨터는 숫자 0과 1만으로 데이터를 표현하고 이해한다는 말을 들어보았을 것이다. 이 천공 카드는 0과 1을 구멍을 뚫거나 뚫지 않음으로서 물리적이고 단순한 방식으로 데이터를 표현한다. 오늘날 컴퓨터로 할 수 있는 일의 양과 질이 확대되면서 천공 카드는 다른 저장 매체로 대체되었다. 보다 정확히 말하자면, 천공카드로는 불가능한 속도로 데이터를 읽고 쓰기 위하여 다양한 저장 매체로 분화되었다. 레지스터, 캐시, 메모리, 하드 디스크 등의 저장 매체가 대표적이다. 이 글에서는 이 다양한 저장 매체들이 왜 분화되어 함께 쓰일 수 밖에 없었는지를 다룬다.
결론부터 이야기하자면 저장 매체들의 분화는 중앙 처리 장치(CPU)를 쉴틈없이 사용하기 위해서 분화되었다. CPU는 프로그램의 연산을 처리하는 제어 장치이다. CPU는 외부에서 정보를 입력받고, 프로그램의 명령어를 해석하여 연산하고, 다시 외부로 출력하는 역할을 한다. 프로그램의 속도에 가장 큰 발목을 잡는 지점의 하나는 바로 CPU가 저장매체로부터 데이터를 읽어오는 지점이다. 프로그램에 필요한 데이터를 확보하기 위하여 CPU가 하는 일은 저장매체로부터 데이터 읽기가 시작되고 끝날 때까지 기다리는 일이다.
그런데 프로그램에 사용되는 데이터는 아주 놀라운 법칙을 가지고 있다. 바로 자주 쓰는 데이터는 계속 자주 쓰인다는 법칙이다. 컴퓨터가 저장매체에 아무리 많은 데이터를 저장해두고 있다고 하더라도 그 안의 모든 데이터를 고르게 접근하지는 않는다. 자주 쓰이는 데이터는 자주 쓰이고, 자주 쓰이지 않는 데이터는 자주 쓰이지 않는다. 이 지점에서 저장 매체의 분화가 일어난다. 자주 쓰이는 데이터를 위하여 읽기 작업이 빠른 저장 매체인 “주 기억 장치”가 만들어지고, 자주 쓰이지 않는 데이터를 위하여 오래 기억 되는 저장 매체인 “보조 기억 장치”가 만들어진다. 보조 기억 장치에서 이전에 사용된 데이터를 주 기억 장치에 유지해두고, CPU는 주 기억 장치를 통해 간접적으로만 데이터를 읽는 방식으로 쉴틈없이 일할 수 있다.
분화된 저장 매체들은 CPU가 빠르게 접근할 수 있는가의 하나의 잣대로 줄을 세울 수 있다. CPU는 레지스터, 캐시, 메모리, 하드 디스크 저장 매체 순으로 빠르게 접근할 수 있다. 당연하겠지만 CPU가 빠르게 접근할 수 있을수록, CPU가 빠르게 접근하게 만들기 위하여 가격이 비싸다. 따라서 하나의 컴퓨터를 구성함에 있어 비싼 저장 매체는 꼭 필요한 만큼만 사용하고, 싼 저장 매체는 넉넉하게 사용하게 된다. 저장 매체의 분화에는 경제성의 원리가 포함되어 있는 것이다.
가격적인 측면이 아니더라도 모든 데이터가 레지스터나 캐시에 저장될 수는 없다. 레지스터나 캐시 그리고 메모리는 CPU에 빠르게 접근하기 위한 목적으로 만들어졌기 때문에 데이터를 오래 보관할 수 없다. 예컨데 컴퓨터의 전원을 종료하면 레지스터와 캐시 그리고 메모리의 데이터는 전부 휘발되고 만다. 하지만 하드 디스크의 데이터들은 컴퓨터의 전원이 종료되더라도 유지된다. 다시 컴퓨터의 전원이 켜지면 하드 디스크의 데이터들은 메모리, 캐시 그리고 레지스터를 통하여 CPU에 전달되어 연산될 것이다. 이처럼 레지스터, 캐시, 메모리와 하드 디스크는 질적인 차이가 크기 때문에 각각 주기억 장치와 보조기억 장치로 나누어 구분한다.
천공 카드 시절이면 모를까, 메모리 계층 구조의 최하단에 위치한 하드 디스크가 CPU와 직접 마주할 일은 없다. 개인적으로 이 사실은 한 때의 정치학과 전공생의 기억 저편에 저장되어 있던 플라톤의 국가론을 떠오르게 한다. 기원전 5세기의 철학자 플라톤은 이상적인 국가의 이데아에 도달하기 위하여서는 농민, 군인, 철인의 세 계급이 절제, 용기, 지혜라는 각자의 덕을 실천해야했다고 한다. 컴퓨터 저장 매체의 분화도 프로그램의 빠른 속도라는 이데아에 도달하기 위함이었다고 해석하면 어떨까? 이를 위하여 CPU은 연산을, 메모리(주기억장치)는 데이터의 중개를, 하드 디스크(보조기억장치)는 데이터의 보존을 실천해야한다. 물론 계층 구조의 최하단에 위치한 하드 디스크의 입장에서는 몹시 억울할지 모르겠지만.