본문 바로가기

컴퓨터의 발전과 이해

보조기억장치의 개요

컴퓨터 시스템을 이요한 데이터 처리를 위해서는 프로그램과 데이터가 주기억장치에 상주해야 가능하지만, 프로그램과 데이터의 양이 대단히 클 경우 이 모든 프로그램과 데이터를 주기억장치에 모두 저장해 두려면 엄처 안게 큰 주기억장치가 필요해진다. 그러나 모든 프로그램과 데이터가 주기억장치에 모두 저장되어 있다 할지라도 프로그램의 실행은 순차적으로 이루어지기 때문에 어느 한순간에 모든 프로그램과 데이터를 동시에 요구하지는 않는다.

 

따라서 프로그램의 실행에 바로 요구되지 않는 프로그램이나 데이터를 주기억장치가 아닌 다른 장소에 저장해 놓고 필요할 때마다 일정한 양만큼 주기억장치로 가져와 실행시키는 것이 주기억장치를 효율적으로 관리할 수 있다.

 

일반적으로 보조기억장치는 주기억장치보다 접근 속도가 느리고, 주기억장치는 캐시 기억장치보다 접근 속도가 느려 중앙처리장치의 처리시간이 빠를지라도 기억장치의 느린 접근시간 때문에 명령어 실행시간이 느려진다. 이러한 시간적 차이를 해결하기 위해 기억장치를 계층적으로 운용한다. 즉 기억장치의 계층구조에서 중앙처리장치 내에 있는 레지스터가 가장 빠르고 다음으로 캐시 기억장치, 주기억장치가 빠르며, 보조기억장치는 가장 느린 기억장치에 속하게 된다.

캐시 기억장치는 주기억장치 캐시, 중앙처리장치(CPU), 또는 줄여서 캐시라고도 불린다. 일반적으로 CPU가 어떤 주기억장치 주소를 참조하면, 캐시는 그 주소가 캐시 내에 있는지를 점검하여 그 주소가 있으면 해당되는 데이터를 즉시 CPU에 전달하여 처리되도록 한다. 그러나 그 주소가 캐시에 없으면 캐시는 해당되는 데이터를 주기억장치에서부터 읽어와 CPU에 전달하고 그 데이터가 포함된 하나의 블록을 캐시 내에 저장한다.

 

이렇게 함으로써 다음에 필요한 데이터는 이전에 인출한 데이터 근처에 있을 가능성이 가장 많다는 가정하에 주기억장치에서부터 인출해야 하는 시간을 단축할 수 있다. 이러한 캐시는 CPU에 내장되는 1차 캐시와 CPU와 주기억장치 사이에 탑재되는 2차(L2) 캐시로 구분되며 펜티엄과 같은 최근의 CPU에는 캐시 충돌의 방지와 성능 향상을 위해 명령어 캐시와 데이터 캐시로 분리된 2개의 캐시가 내장되어 있기도 하다.

 

한편 주기억장치 아래에 있는 버퍼 캐시, 자기 테이프, 자기 디스크, 광디스크 등이 기억장치를 주기억장치를 보조해 준다고 하여 보조기억장치 또는 2차 기억장치라고 한다. 이 보조기억장치는 컴퓨터의 기능과 성능을 결정하는데 제일 중요한 요소가 되고 있다. 즉 모든 응용분야에서 컴퓨터 시스템의 효율성을 결정하는데 제일 중요한 요소가 되고 있다. 즉 모든 응용 분야에서 컴퓨터 시스템의 효율성을 결정하는데 주요한 요소 중의 하나는 대량의 데이터를 저장하고 액세스 할 수 있는 능력이라고 할 수 있다.