Post

컴퓨터 하드웨어 - 5. 메모리 (1편)

개요

CPU의 작동원리를 보면 아시겠지만 CPU와 메모리는 절대 뗄래야 뗄 수 없는 관계입니다. 당장 CPU가 처리해야 할 명령어부터 메모리에서 가져와야 하니 메모리의 중요성은 더 강조할 필요가 없을 것 같습니다.

이번 글부터는 이 메모리를 좀 더 자세히 알아보겠습니다. 컴퓨터 메모리는 하위에 다양한 카테고리가 있기 때문에 1편에서는 다양한 컴퓨터 메모리의 종류를 먼저 알아보겠습니다. 이어서 2편에서는 CPU와 같이 사용되는 메모리인 RAM, 그 중에서도 DRAM을 집중적으로 다루겠습니다.

1. 바이트 (Byte)

먼저 좀 지루하겠지만 메모리의 본질(?)을 살짝 탐구해보겠습니다. 메모리 (Memory)란 기억이라는 뜻을 가지고 있으며 말 그대로 컴퓨터에서는 데이터를 기억하기 위한 장치입니다. 컴퓨터에서의 데이터는 잘 아시다시피 0과 1의 이진수 (Binary)로 이루어져 있으므로 결국 메모리 장치란 수많은 0과 1들을 기억하는 것이 목적입니다. 그래서 메모리는 이 0과 1들을 일렬 (Sequential)로 나열하여 저장합니다. 그리고 이 0과 1들을 비트 (bit)라고 부릅니다.

여기서 당연히 0과 1이라고만 하면 사람이 인식할 수 있는 정보가 아닙니다. 그러면 어떻게 0과 1들이 의미를 가지는 데이터가 되는 것일까요? 앞서 CPU의 명령어가 단순히 비트의 집합이고 ISA가 이를 어떻게 정의했는지에 따라 동작이 달라진다고 했었습니다. 메모리에 저장되는 데이터들은 모두 이처럼 어떤 약속을 통해 저장된 데이터라고 할 수 있습니다.

그런데 명령어는 CPU가 작업을 수행하기 위한 데이터이고, 컴퓨터를 쓴다면 텍스트, 이미지, 영상 등 굉장히 다양한 형태의 데이터를 접하게 됩니다. 이들 모두 각자 정해진 약속으로 정의된 비트의 집합인 것인데 여기서는 가장 기본적인 데이터라고 할 수 있는 텍스트 (Text)를 예로 들겠습니다.

텍스트는 말 그대로 글이라는 뜻으로 쉬운 예로는 영어 알파벳의 집합이 있습니다. 컴퓨터는 텍스트를 저장하고 표현하기 위해 특정 이진수는 특정 알파벳임을 정의한 표를 사용하는데 이를 바로 코드 (Code)1라고 합니다. 코드라고 해서 특별히 대단한 것은 아니고 가령 1000001 (65)는 영어 대문자 A, 1000010 (66)B 와 같이 약속을 만들어서 의미를 부여하는 것입니다.

이 코드의 종류 또한 꽤 다양하지만 영어 알파벳과 특수문자를 표현하기 위한 코드로는 ASCII (아스키) 코드가 제일 유명합니다. 여기서 중요한 점은 코드의 종류가 달라지면 같은 이진수여도 뜻하는 바는 완전히 달라진다는 것입니다. 마치 한국어에서 “사과”라는 단어를 발음 그대로 미국에서 말해봤자(Sa-gwa?) 전혀 의미가 통하지 않는 것과 같은 맥락이라 보시면 됩니다.

ASCII 코드

코드는 어떤 정보의 최소 단위를 표현하는 것이 목표인데, 어려우니까 그냥 영어 알파벳과 특수문자인 아스키로 계속 예를 들겠습니다. 아스키의 경우 총 128개의 문자를 표현하는데 이를 위해서는 총 7개의 비트가 필요할 것입니다. 즉 아스키 코드를 통해 저장된 데이터를 해석하려면 7개 비트를 한 덩어리로 취급하여 하나씩 가져오면 해석할 수 있는 것입니다. 이렇게 비트가 모인 하나의 덩어리를 바로 바이트 (Byte)라고 부릅니다.

근데 아마 대부분 분들은 1바이트 = 8비트라는 정의에 익숙하실 것입니다. 사실 이건 관습적(!)으로 정해진 부분으로 5-60년대 극초창기의 컴퓨터들은 컴퓨터마다 바이트의 정의가 달랐습니다. 즉 1바이트를 6비트로 정의한 컴퓨터도 있었고, 4비트로 정의한 컴퓨터도 있었고.. 그렇다는 얘기인데요. 어쨌든 컴퓨터를 쓰다 보니 인간 문자를 표현하기 위한 아스키 코드 단위만큼은 하나로 묶는 게 좋을 것 같다고 느꼈고 제 추측이지만 어차피 이진수를 다루니까 7비트보단 8비트가 깔끔하지 않겠냐(…) 라는 생각 때문에 1바이트 = 8비트로 자리잡게 되지 않았나 합니다. 이건 반쯤 유머고 어쨌든 요지는 1바이트가 8비트가 된 것은 처음부터 그렇게 정한 게 아니라 컴퓨터를 만들고 쓰다 보니 이게 가장 편해서(?)가 좀 더 정확한 배경이라는 것입니다2.

아무튼 바이트라는 최소 단위가 중요한 이유는 CPU가 메모리를 접근할 때 사용하는 최소 단위이기 때문입니다. 즉 메모리에서 원하는 데이터를 꺼내올 때는 특정 위치의 8비트 덩어리를 꺼내오는 것입니다. 이 위치를 주소 (Address) 라고 부르며 0부터 메모리의 바이트 개수 - 1 만큼의 숫자를 통해 각각의 바이트를 구분합니다. 즉 1GB 메모리라는 것은 주소가 $0$부터 $2^{30} - 1$까지 $2^{30}$개 있는 메모리라는 것입니다3. (아래 그림에 나온 데이터를 ASCII 코드로 해석했을 때 뭐가 나오는지 확인해보세요)

메모리에 데이터가 저장되는 모습

메모리는 이처럼 바이트의 집합이라고 할 수 있고 메모리 하나가 가지고 있을 수 있는 바이트의 개수를 통해 용량 (Capacity)이 정해집니다. 메모리는 데이터를 기록하기 위한 물리적인 방식, CPU가 접근하는 방식, 속도, 휘발성 등의 특징을 통해 굉장히 다양한 형태가 개발되었고 개발되고 있습니다. 이제 다양한 형태의 메모리를 몇가지 구분 방식을 통해 소개하도록 하겠습니다.

2. 메모리의 종류

컴퓨터에서 사용하는 메모리는 역할에 따라 크게 두가지로 구분할 수 있습니다. 여기서는 역할에 따른 종류를 소개하고 다음 챕터에서는 하드웨어의 종류에 따른 소개를 하겠습니다.

2.1. 메인 메모리 (Main Memory)

메인 메모리 (Main Memory, 주기억 장치)란 CPU와 직접 상호작용하는 메모리를 의미합니다. 즉 앞서 사용해왔던 CPU와 메모리에서의 메모리가 바로 이 메인 메모리를 의미합니다. 앞서 “CPU는 메모리를 바이트 단위로 접근한다”, “CPU가 실행할 명령어는 메모리에서 가져온다”와 같은 설명에 나온 메모리는 모두 메인 메모리를 의미합니다.

메인 메모리의 가장 큰 특징이라면 휘발성 메모리 (Voltaile Memory)라는 것입니다. 이는 전원이 꺼졌을 때 저장하고 있던 데이터가 모두 소실된다 라는 의미입니다. 즉 무언가를 기억하기 위한 장치인데 컴퓨터가 켜져 있는 동안에만 기억이 가능하고 꺼져 있으면 모두 날라간다는 것입니다(!).

따라서 컴퓨터에는 작업한 데이터를 저장하기 위한 비휘발성 메모리 (Non Volatile Memory)도 존재하는데, 이들은 보통 메인 메모리보다는 저장 장치로써 사용됩니다. 그러면 비휘발성 메모리를 메인 메모리로 사용하면 되는 것 아닌가 라는 의문을 가질 수도 있을 텐데요. 이는 순수히 현실적인 이유에 의한 것으로 아직까지는 비휘발성 메모리 하드웨어가 휘발성 메모리 수준의 성능을 보여주지 못하고 있기 때문입니다.

대표적인 휘발성 메모리인 DRAM

대표적인 비휘발성 메모리인 SSD (플래시 메모리 사용)

즉 메인 메모리는 CPU와 직접 데이터를 주고 받아야 하는 메모리인만큼 메모리 속도가 곧 성능에 직결되는데, 아직은 휘발성으로 만든 메모리가 비휘발성 메모리에 비해 훨씬 성능이 좋기 때문에 둘의 역할을 나누어서 사용하는 것입니다.

메인 메모리에 사용하는 대표적인 하드웨어로는 RAM (Random Access Memory)이 있습니다. 아마 PC를 구입할 때 CPU랑 함께 “램은 몇 GB다” 와 같이 대표적인 스펙 중 하나로 접하셨을 텐데 바로 이를 의미합니다.

2.2 보조 메모리 (Secondary Memory)

보조 메모리는 앞서 메인 메모리가 휘발성 메모리인 만큼 전원이 꺼져도 데이터를 보존하기 위한 목적으로 사용되는 별도 메모리입니다. 그래서 보통 저장 장치 (Storage)라고 흔히 부릅니다. 이 저장 장치는 당연히 모두 비휘발성 메모리를 통해 구현하며 이 비휘발성 메모리의 종류에 따라 저장 장치의 종류도 천차만별로 나눠지게 됩니다.

아마 컴퓨터 내부에서 사용하는 저장 장치 중 가장 유명한 두가지는 SSD (Solid State Drive)하드 디스크 (Hard Disk Drive, HDD)가 있을 것입니다. 이러한 저장 장치들은 메인 메모리처럼 CPU에서 바로 접근하는 것이 불가능하고 중간에 이들 저장 장치를 컨트롤하기 위한 컨트롤러 (Controller)가 필요합니다. 이 때문에 보조 혹은 이차 (Secondary) 메모리라고 부르는 것입니다4.

이런 저장장치를 구현하기 위한 비휘발성 메모리는 생각보다 꽤나 다양합니다. 따라서 대표적인 하드웨어들을 RAM에 이어 몇가지 소개하도록 하겠습니다.

3. 메모리 하드웨어 종류

메모리는 각 역할에 따라 다양한 형태의 하드웨어가 존재합니다. 여기서는 휘발성 메모리와 비휘발성 메모리 하드웨어들 중 알아두면 좋은 대표적인 것들을 하나씩 정리해보겠습니다.

3.1. RAM

RAM은 앞서 소개한 것처럼 대표적인 휘발성 메모리로서 CPU와 직접 소통하는 메인 메모리로 사용되는 하드웨어입니다. RAM은 Random Access Memory의 약자로 한국어로는 임의 접근 메모리라고 풀어쓰기도 합니다. 물론 잘 아시다시피 보통은 다들 이라고 부릅니다.

RAM은 이름에 그 특징이 그대로 녹아있는데, 임의 접근이 가능하다는 것의 의미는 메모리의 어느 위치든 거의 동일한 시간에 접근이 가능하다는 것을 의미합니다. 즉 RAM은 메모리의 어느 주소든 동등한 (uniform) 접근 시간으로 접근할 수 있다는 것입니다.

이 속성이 중요한 이유를 생각해보면 가령 임의 접근이 불가능해서 메모리 주소 $N$을 찾아가기 위해 $0$부터 순차적으로 접근하는 것만 가능하다고 하면 뒤쪽에 있는 주소일수록 메모리 접근에 소요되는 시간이 계속 증가할 것입니다. 컴퓨터를 사용하면 수많은 데이터가 다양한 위치에 저장될 것인데 위치에 따른 접근 시간이 다르면 성능에도 큰 영향을 미칠 것입니다.

컴퓨터가 한창 발전하던 20세기는 당연하지만 메모리 기술이 지금만큼 발전하지 못했기 때문에 임의 접근이 가능하다는 것만으로도 큰 차별점을 가질 수 있었습니다. 그러면서 성능도 메모리 중 가장 훌륭했기 때문에 자연스레 컴퓨터의 메인 메모리로 자리잡게 되었습니다. 지금도 순수 성능만으로 RAM의 성능을 넘는 다른 메모리가 상용화 되지는 않았습니다.

하지만 이후 개발된 RAM이 아닌 많은 메모리들도 임의 접근은 가능합니다. 대표적으로 SSD에 쓰이는 플래시 메모리 (Flash Memroy)가 임의 접근이 가능합니다. 물론 이 또한 앞서 다뤘듯이 성능이 RAM에 아주 크게 못 미치기 때문에 메인 메모리로써 사용되지 않는 것입니다 5.

RAM은 계속 강조하듯이 메인 메모리로 사용하는 가장 중요한 하드웨어입니다. 이 RAM은 또 크게 DRAM과 SRAM이라 하여 두가지로 구분되는데 이들을 간단히 살펴보겠습니다.

3.1.1. DRAM

DRAM (Dynamic RAM)은 가장 흔히 접할 수 있는 RAM입니다. 이름에 Dynamic이 붙은 이유는 그 작동방식에 있습니다. 먼저 메모리란 0과 1을 저장하기 위한 장치임을 말씀드렸습니다. 그러면 물리적으로 이 0과 1을 어떻게 구분해서 저장할까를 생각해볼 수 있는데요, 전자 회로에서는 전기 (정확히는 전하)를 저장하는 대표적인 장치로 축전기 (Capacitor)가 있습니다. DRAM은 바로 이 축전기를 이용하여 0과 1을 구분하게 됩니다.

좀 더 구체적으로 메모리라는 것은 수많은 메모리 셀 (Memory Cell)들의 집합이고 각 셀은 0과 1을 구분하여 저장하게 됩니다. DRAM은 이 메모리 셀을 축전기를 통해 구현한 것이고, 축전기에 전하가 저장되어 있으면 1, 아니면 0이라고 구분하여 저장하는 것입니다.

DRAM의 메모리 셀 구조

그런데 축전기는 전하를 무한정 잡아둘 수 있는 것이 아니기 때문에 지속적으로 저장된 전하가 줄어들게 됩니다. 그래서 시간이 지나면 1을 의도하고 저장한 메모리 셀에서 전하가 빠져서 0으로 읽히는 경우가 발생하게 됩니다. 당연히 이러면 메모리로서 가치가 없기 때문에 DRAM은 주기적으로 필요한 셀에 한해 전하를 다시 채워주는 작업을 수행하게 됩니다. 이 작업을 바로 리프레시 (Refresh) 라고 부릅니다. 이 리프레시 작업의 존재 때문에 DRAM의 메모리 셀들은 동적으로 전하를 유지하기 때문에 Dynamic이라는 이름이 붙게 된 것입니다.

DRAM은 RAM 중에서도 메인 메모리에 쓰이는 바로 그 RAM입니다. 즉 우리가 컴퓨터 부품으로 RAM을 산다고 하면 99.99% 이 DRAM을 사게 되는 것입니다. 그러므로 본 편을 시작할 때 다음 편에서 이 DRAM을 좀더 자세히 알아보겠다고 소개한 것입니다.

3.1.2. SRAM

SRAM (Static RAM)은 이름에서 알 수 있듯이 정적 (Static)인 RAM으로 DRAM처럼 동적으로 작동하는 부분이 없는 RAM입니다. 즉 SRAM의 메모리 셀은 리프레시 같은 작업이 없어도 0 또는 1의 상태를 계속 유지할 수 있습니다. 이는 SRAM의 메모리 셀을 축전기가 아닌 완전히 다른 방식으로 구현하기 때문입니다.

SRAM의 메모리 셀 구조

당연히 회로도의 의미는 모르셔도 되고(저도 잘 모릅니다) 딱 봐도 DRAM의 메모리 셀보다 훨씬 복잡하다는 것을 알 수 있습니다. 또한 축전기도 없이 오로지 트랜지스터로만 구현되어 있다는 사실도 확인할 수 있습니다. SRAM은 이처럼 단일 메모리 셀을 구현하기 위해 물리적으로 더 많은 장치가 필요하기 때문에 같은 용량이라면 DRAM보다 훨씬 비싼 단가를 가지게 됩니다. 달리 말하면 같은 공간에 SRAM이 더 적은 용량을 가지기 때문에 용량 집적도가 낮다고도 합니다.

대신 SRAM은 DRAM처럼 리프레시 작업이 필요 없기 때문에 데이터를 읽고 쓰는 속도가 DRAM에 비해 훨씬 빠릅니다. 그래서 고용량보다 속도가 훨씬 중요한 환경에서 주로 사용되는데 바로 캐시 메모리가 SRAM을 통해 구현된 메모리입니다. 이처럼 SRAM은 설령 존재감은 DRAM만큼은 아닐 수 있어도 CPU 뿐만 아니라 다양한 장치의 핵심 메모리 장치로써 절찬리에 사용되고 있습니다.

3.2. ROM

ROM은 Read Only Memory라는 의미로 이름에서 알 수 있듯이 데이터를 읽는 것만 가능한 메모리를 의미합니다. 그래서 데이터를 쓰는 것은 ROM을 만든 시점에 한번 가능하다고 할 수 있습니다. 대신 전원이 꺼져도 계속 데이터를 유지할 수 있기 때문에 비휘발성 메모리의 일종이라고 할 수 있습니다.

ROM 메모리

근데 메모리라는 것은 데이터를 가져오는 것도 중요하지만 저장하는 것도 중요한데, 새로운 데이터를 저장하는 게 만든 이후에 안된다면 무슨 쓸모가 있는 걸까요? 이는 ROM의 대표적인 활용처를 보면 그 쓰임새를 이해할 수 있습니다. ROM 같은 경우에는 한번 기록된 이후에 바뀔 필요가 없는 데이터를 저장해야 하는데, 주로 하드웨어 동작을 제어하기 위한 펌웨어 (Firmware)가 이런 데이터에 해당합니다. 특히 가전 제품 같은 경우에는 용도가 명확히 정해져 있고 바뀌지 않기 때문에 이런 장치의 펌웨어를 ROM에 저장해두면 좋을 것입니다.

또한 20세기에는 게임이나 소프트웨어들을 상당수 이 ROM의 형태로 유통하였습니다. 저는 고전 게임기를 전혀 접해보지 못했지만 아마 접해보신 분들은 롬 카트리지 내지는 롬 팩이라는 용어가 익숙하실 것입니다. 이들은 모두 게임 소프트웨어를 저장한 ROM을 내장하고 있어 이런 이름으로 불렸다고 할 수 있습니다.

고전 게임의 상징과도 같은 롬 카트리지

그런데 이런 단순해보이는 펌웨어라도 버그가 아주 없지는 않을 것입니다. 펌웨어 뿐만 아니라 다른 데이터라도 변경이 필요한 경우는 있을 수 있으므로 ROM은 기록된 데이터를 어떻게든 변경할 수 있는 방향으로 발전을 거듭해왔습니다. 그래서 나온 것 중 한번 기록된 데이터를 이후에 변경할 수 있는 ROM을 PROM (Programmable ROM) 이라고 합니다. 근데 또 이 PROM은 데이터를 한번만 바꿀 수 있기 때문에 이후 지웠다 바꾸는 걸 반복할 수 있는 EPROM (Erasable PROM)이 나오고 지우는 방식을 또 발전시킨 EEPROM (Electrically EPROM) 까지 나오게 됩니다.

대신 ROM은 어쨌든 읽기 작업에만 초점을 맞춘 것들이라 데이터를 바꿀 수 있다 해도 이 바꾸는 게 RAM에서 데이터를 바꾸는 것보단 훨씬 복잡합니다. EEPROM이라 해도 데이터를 다시 기록하기 위해서는 아예 별도의 장비가 필요한 경우도 있을 정도입니다. 그럼에도 ROM이 쓰이는 이유는 데이터 보존력이 2023년 현재에도 다른 어떤 메모리 장치보다 훌륭한 편이기 때문에 진짜로 딱히 바뀔 필요가 없는 게 확실하다면 ROM을 쓰는 것이 이득인 경우도 있기 때문입니다.

3.3. 플래시 메모리 (Flash Memory)

플래시 메모리 (Flash Memory)는 1980년대에 도시바에서 처음 개발한 비휘발성 메모리 장치입니다. 플래시 메모리는 처음 나왔을 때 지우는 작업이 마치 카메라의 플래시를 연상시킨다 하여 이러한 이름이 지어졌다고 하는데요6. 그만큼 당시에는 지우는 속도가 혁신적으로 빠른 장치였다고 할 수 있습니다.

플래시 메모리

따라서 플래시 메모리는 ROM처럼 비휘발성이면서 ROM의 단점을 대부분 개선한 장치였다보니 ROM의 자리를 많이 대체하게 됩니다. 대표적으로 펌웨어를 저장하던 메모리를 요즘은 거의 대부분 플래시 메모리로 사용하고 있습니다. 그래서 과거에는 펌웨어 업데이트가 사실상 불가능하거나 가능해도 매우 어려웠지만, 요즘은 플래시 메모리를 사용하는 만큼 매우 간단하기 때문에 제품에 따라선 펌웨어 업데이트가 웬만한 소프트웨어 업데이트만큼 자주 이루어지는 경우도 있습니다7.

하지만 플래시 메모리는 이 뿐만 아니라 훨씬 광범위하게 사용되는 메모리입니다. 2010년대 상용화되어 2023년 현재 사실상 표준 저장장치라 할 수 있는 SSD는 물론, 이동식 저장장치로 아직도 많이 쓰이는 USB 메모리나 SD 카드들이 모두 플래시 메모리를 사용하고 있습니다. 더군다나 거의 모든 스마트폰과 태블릿 PC도 플래시 메모리를 저장장치로 사용하고 있으니 가히 메모리 반도체의 핵심 부품이라 할 수 있습니다.

플래시 메모리는 그 자체로도 할 수 있는 이야기가 많기도 하고 SSD의 핵심 부품이기도 하기 때문에 관련한 자세한 이야기는 이후 저장 장치 파트에서 다루도록 하겠습니다.

3.4. 기타 메모리 장치들

RAM, ROM, 플래시 메모리 말고도 메모리는 물리적인 기록 방식에 따라 다양한 형태로 존재합니다. 대표적으로는 빛을 이용해 기록하는 CD, 자기력 (Magnetic Force)을 이용해 기록하는 하드 디스크 (HDD) 등이 있습니다. 이들은 모두 비휘발성 메모리로 데이터를 지속적으로 저장하는 것을 목적으로 개발되었습니다.

빛을 이용하는 메모리는 광디스크 (Optical Disc)가 있습니다. 광디스크 하면 역시 CD (Compact Disc)가 제일 유명할 텐데요, 광디스크는 빛을 강하게 쬐서 데이터를 기록하기 때문에 CD에 데이터를 기록하는 과정을 굽는다 (Burning)라고도 표현하는 것을 들어보셨을 것입니다. CD는 ROM처럼 읽는 것만 되는 것도 있고 (CD-R과 CD-ROM8), 다시 기록하는 게 가능한 것도 있는데 (CD-RW) 일반적으로는 ROM처럼 수정이 거의 필요하지 않은 데이터를 저장하는 용도로 사용합니다..

CD와 CD를 읽기 위한 드라이브의 모습

요즘은 인터넷 스트리밍에 밀려 자취를 많이 감춘 음반도 CD로 주로 나왔었고, 게임도 2000년대에는 주로 CD의 형태로 유통되었습니다. CD 이후에 기록 가능한 용량을 늘린 DVD나 블루레이 (Blu-ray)도 나왔는데 이들은 주로 영상을 저장하기 위한 용도로 사용되고 있습니다. 다만 이 또한 OTT 서비스에 밀려 소장 목적이 아니면 흔히 사용하지는 않는 편입니다.

자기력을 이용하는 메모리는 대표적으로 하드 디스크 (Hard Disk Drive, HDD)가 있습니다. 하드 디스크는 컴퓨터의 내장 저장장치로 2010년대 초반까지는 운영체제를 깔고 쓰는 대표적인 저장장치였습니다. 다만 이후 플래시 메모리를 사용한 SSD가 개발되면서 압도적인 성능 차이 때문에 대략 2015년 이후로는 점유율이 크게 줄어 현재는 대용량 저장 장치가 필요한 경우가 아니면 수요가 많이 줄었습니다.

하드 디스크

자기력을 이용한 장치로 또 언급할 만한 저장 장치로는 플로피 디스크 (Floppy Disk, FDD)가 있습니다. 디스켓 (Diskette)이라는 이름으로도 많이 불린 플로피 디스크는 USB 메모리처럼 이동식 저장 장치로 사용되기도 했고, 80년대에는 하드 디스크가 아닌 이 플로피 디스크가 운영체제를 실행하는 데 쓰이기도 했습니다. CD나 이런 것들이 나오기도 전에 꽤 오랜 시간 핵심 저장 장치로 사용되었기 때문에 한 시대를 풍미했으며 많은 소프트웨어에서 저장 장치의 아이콘으로 사용되는 데 큰 기여를 합니다. 하지만 2000년대 이후로는 용량이 너무 작았기 때문에 (보통 1.44MB) 플래시 메모리 등의 발전으로 빠르게 사장되었고 그에 따라 이후에 컴퓨터를 배운 어린 세대의 경우 저장 아이콘의 의미를 모르는 경우도 꽤 흔히 발견되는 듯 합니다.

플로피 디스크와 Microsoft Word의 저장 아이콘

마치기에 앞서 여기서 다룬 3가지 메모리 (광디스크, HDD, FDD)의 공통적인 특징이라면 모두 원형으로 생겼다는 것입니다9. 이 때문에 이들은 RAM이나 플래시 메모리처럼 임의 접근의 특징을 가지지 못합니다. 즉 메모리 내에 데이터가 물리적으로 저장된 위치에 따라 접근 속도가 달라집니다. 그래서 CD나 하드 디스크 같은 경우에는 원의 안쪽으로 갈 수록 데이터를 읽고 쓰는 속도가 느려집니다.

4. 정리

이번 글에서는 컴퓨터 메모리의 목적과 다양한 메모리 장치의 예시를 간단하게 알아봤습니다. 이 중에서 일반적인 컴퓨터 사용에서 가장 쉽게 접할 수 있는 메모리 장치는 DRAM과 플래시 메모리라고 할 수 있습니다. 여기서도 DRAM이 메모리라고만 불렀을 때 보통 의미하는 대상이기 때문에 다음 편에서 DRAM에 관해서만 좀 더 자세히 다루고자 합니다. 플래시 메모리는 컴퓨터의 메모리보다는 보통 저장 장치의 목적으로 사용되기 때문에 추후 저장 장치를 다룰 때 자세히 다루겠습니다.


  1. 소스 코드의 코드랑 본질적으로 비슷한 의미이긴 하나 일단 여기선 이해의 편의를 위해 조금은 다른 느낌으로 표 (Table) 같은 것이라 이해하시면 좋을 것 같습니다. ↩︎

  2. https://en.wikipedia.org/wiki/Byte ↩︎

  3. GB의 G는 Giga로써 SI 단위로는 사실 $10^9$, 즉 10억을 의미합니다. 근데 메모리에서는 $2^{10} = 1024$ 단위로 Kilo (K), Mega (M), Giga (G)의 단위를 주로 쓰는데요, 관련해서는 용량 얘기를 할 때 자세히 다루겠습니다. ↩︎

  4. https://en.wikipedia.org/wiki/Computer_data_storage#Secondary_storage ↩︎

  5. 플래시 메모리는 메인 메모리로써 사용하는 게 일반적인 CPU에서는 불가능하지만, RAM처럼 쓸 수 있는 비휘발성 RAM이 별도로 존재합니다. 다만 연구도 많이 지지부진하고 실제로 소비자 대상으로까지 상용화된 적이 거의 없어서 다루지는 않겠습니다. ↩︎

  6. https://en.wikipedia.org/wiki/Flash_memory#Invention_and_commercialization ↩︎

  7. 대표적으로 EFM 사의 ipTime 인터넷 공유기는 펌웨어 업데이트가 매우 잦은 것으로 유명합니다. ↩︎

  8. CD-R과 CD-ROM은 읽기만 된다는 점에선 비슷하지만 서로 다른 규격입니다. ↩︎

  9. 플로피 디스크도 케이스를 분해해보면 실제 데이터 저장을 담당하는 부분은 원형입니다. ↩︎

This post is licensed under CC BY 4.0 by the author.