기억장치

컴퓨터의 일부분.

기억장치는 컴퓨터를 이용하여 정보를 처리하기 위해서는 처리 대상이 되는 데이터나 정보를 읽어들인 후 처리하기 전에 저장하여야 할 장소가 필요하다. 또한 처리 도중에도 데이터를 저장하여야 할 장소가 필요하며, 정보를 저장해두는 장소를 기억장치라고한다.

1 용도에 따른 기억장치의 종류

기억장치에는 여러가지 종류가 있는데, 처리중에 있는 데이터를 일시적으로 저장하는 주기억장치와 처리 전의 데이터나 처리 후의 데이터를 영구적으로 보관하는 보조기억장치가 있다.

말하자면 PC에서 하드디스크SSD가 보조기억장치이고 RAM이 주기억장치이다.

1.1 주기억장치

주기억장치는 컴퓨터가 처리할 프로그램이나 데이터를 일시적으로 저장하는 기억장치로서, 현재 처리하고 있는 프로그램과 데이터, 그리고 처리된 결과를 저장한다.

주기억장치에는 기억된 내용을 읽을 수만 있는 'ROM'과 읽고 쓸 수 있는 'RAM'이 사용된다.

1.2 보조기억장치

보조기억장치는 프로그램이나 데이터를 영구히 저장하기 위한 기억장치로 자기테이프 등과 같은 순차적으로만 접근할 수 있는 '순차접근 기억장치'와 자기디스크 등과 같은 직접 접근이 가능한 '직접접근 기억장치'로 구분할 수 있다. 전자적인 기록방식이 발명되기 이전에는 천공 카드라는 종이를 이용해서 데이터를 기록했었다.

2 매체에 따른 기억장치의 종류

2.1 자기코어 기억장치

자기코어(Magnetic Core)는 페라이트(Ferrite) 자성 물질을 작은 고리 모양으로 만든 링에 도체를 끼운 후, 도체에 흐르는 전류의 방향에 따라 데이터를 기억시키거나 읽을 수 있는 기억장치이다. 자기코어는 초창기의 컴퓨터에 사용된 기억장치로 현재에는 사용되지 않고 있다.

하나의 자기코어에는 오직 하나의 상태, 즉 1비트의 데이터가 기억된다. 따라서 원하는 크기의 기억 용량을 갖도록 하기 위해서는 많은 개수의 자기코어가 필요하다. 또한 속도가 매우 느린 기억장치이다.

자기코어는 한번 자화된 경우에는 전원이 끊어져도 해당 상태를 유지하기 때문에 비휘발성 메모리이다.

기록방법은 이러하다.

자기코어에는 1과 0의 두 가지 상태 중의 하나를 기억시킬 수 있다. 즉, 다음 그림과 같이 전류가 흐르는 방향에 따라 1이나 0의 상태를 갖게 된다.

읽기방법은 이러하다.

자기코어에 기억된 내용을 읽을 때에는 자기코어에 0을 기억시킬 때와 같은 방향으로 전류를 흐르게 한 후에 읽기 위한 선에 전류가 흐르게 되면 1, 흐르지 않으면 0으로 판단한다.

자기코어에서 데이터를 읽어낸 후에는 저장된 데이터가 사라지게 된다. 따라서 계속 데이터를 유지하기 위해서는 읽어낸 후에 다시 데이터를 저장시키기 위한 방법이 필요하다.

…요즘에는 쓰기는 커녕 보기도 힘든 물건이지만 교과서에는 나온다.

2.2 자기디스크 기억장치

위의 자기코어 기억장치를 미세화시켜 원판에 빼다박은 것을 뜻한다. 플로피디스크하드디스크가 대표적으로, 플로피디스크는 2010년대 시점에서는 거의 사용되지 않고 있고 하드디스크도 후술할 반도체 저장장치에 시나브로 밀리고 있는 상황.

2.3 광학 기억장치

빛을 이용한 화학적 반응을 이용해서 저장하는 원리를 쓰는 기억장치이다. CD, DVD, Blu-ray Disc가 대표적. 이쪽도 마찬가지로 반도체 저장장치에 의해 사용 빈도가 줄어들고 있다.

2.4 반도체 기억장치

반도체 기억장치는 기본 논리 소자로 플립플롭 회로를 사용한 것으로 반도체 소자를 이용하여 만들어졌다. 반도체를 재료로 사용하였기 때문에 반도체 기억장치는 크기가 작고 속도가 빠르며 전력을 적게 소비한다. 그러나 반도체 기억장치를 이용하여 대용량의 메모리를 구성하기에는 가격이 너무 비싸 보조기억장치보다는 주로 주기억장치로 사용된다. 다만 2010년대 중반부터 반도체 소자 저장장치인 SSD가 보조기억장치로서의 인기를 얻었으며, 중소용량의 휴대용 저장장치로 SD카드USB 메모리도 많이 사용한다.

반도체 기억장치는 성질에따라 롬(ROM)과 램(RAM)으로 구분하고, 전원이 끊어져도 내용을 기억하고 있는 비휘발성 메모리와 전원이 끊어지면 내용이 삭제되는 휘발성 메모리로 나눌 수 있다. 또한, 저장된 내용을 읽으면 내용이 삭제되는 파괴 메모리와 내용을 읽어도 삭제되지 않는 비파괴 메모리로 나눌 수 있다. 롬은 비휘발성 메모리이고, 램은 휘발성 메모리이다.

롬과 램은 각 항목에서 참조.

3 기억장치의 성능

기억장치의 성능은 기억장치의 용량, 접근 시간, 데이터 전송률 등으로 평가할 수 있다.

3.1 용량(Storage Capacity)

1KB(Kilo Byte) = 2의 10제곱 Byte = 1024 Byte
1MB(Mega Byte) = 2의 20제곱 Byte = 1024 KB
1GB(Giga Byte) = 2의 30제곱 Byte = 1024 MB
1TB(Tera Byte) = 2의 40제곱 Byte = 1024 GB
1PB(Peta Byte) = 2의 50제곱 Byte = 1024 TB

컴퓨터의 기억장치는 주기억장치, 즉 램의 경우에는 용량이 커질수록 컴퓨터의 연산 속도가 빨라질 수 있다. 그러나 경제적인 면이나 효율적인 면을 고려하여 적절한 용량을 선택하는 것이 좋다.

참고로 위 용량 표기는 실제로는 정확하지 않다. 자기디스크 기억장치, 반도체 보조기억장치가 그렇다. 여기에 대해서는 아래 항목 참조.

3.1.1 하드디스크와 플래시 메모리의 표기 용량과 실제

3.2 접근 시간(Access Time)

접근 시간은 기억장치에 기억되어 있는 데이터를 읽거나 기억장치에 데이터를 기록하는데 소요되는 시간을 말한다,
램의 경우에는 기억시킬 메모리의 주소를 메모리 주소 레지스터(MAR)에 전달한 후, 메모리 버퍼 레지스터(MBR)에서 기억시킬 데이터를 수신할 때까지 걸리는 시간을 의미한다.

3.3 데이터 전송률(Data Transfer Rate)

데이터 전송률은 기억장치에서 1초 동안에 전송될 수 있는 최대 정보량을 의미하는 것으로 대역폭(Bandwidth)이라고도 한다. 데이터 전송률의 단위는 초당 비트(bps)[1] 또는 초당 워드(Word/S)이다. USBSATA의 규격을 볼 때 Gbps라는 표기를 봤을 것이다.

4 기억장치의 계층

기억장치의 속도가 빠를수록 저장할 수 있는 비트당 가격이 비싸지고, 속도가 느릴수록 저장할 수 있는 비트당 가격이 싸짐으로써 대용량의 기억장치로 사용할 수 있다. 이러한 기억장치들은 속도와 용량, 가격에 따라 사용할 부분을 결정하여 컴퓨터 시스템을 구성하게 된다.

즉, 빠른 속도가 요구되지만 많은 용량이 필요하지 않은 CPU내의 레지스터에는 고속, 고가의 기억장치를 사용하게 되고, 대용량의 자료를 영구적으로 보관하기 위해서는 저속, 저가, 대용량의 기억장치를 사용하게 된다.

저장 비트당의 가격과 용량, 그리고 속도에 따라 계층을 구분하면 피라미드형 구조를 이루게 된다.

레지스터
캐시 메모리
주 기억장치
보조 기억장치

위로 올라갈수록 고가/고속 이며 소용량이며 내려갈수록 저가/저속의 대용량이다.

순서는 레지스터->주기억장치->보조기억장치로 자료가 이동하며 다시 순서대로 돌아온다.
  1. 1바이트는 8비트이므로, 초당 바이트로 환산하려면 8로 나눠야 한다.