하위 문서: 기억장치/표기 용량과 실제
#!wiki style="display: inline; display: none;"
, }}}
🖥️ 컴퓨터 부품 및 주변 기기 | ||
{{{#!wiki style="margin:0 -10px -5px; min-height:calc(1.5em + 5px);" {{{#!folding [ 펼치기 · 접기 ] {{{#!wiki style="margin: -6px -1px -11px" | <colbgcolor=#555>PC 주요 부품 | |
<rowcolor=#fff>프로세서 | CPU · GPU · 레지스터 · 캐시 메모리 | |
기억장치 | 주기억장치 : ROM · RAM(VRAM) 보조기억장치: 플래시 메모리(SSD · USB 메모리) · 자기 기억장치(HDD · 플로피 디스크 · 자기 테이프 · 외장 하드) · 광학 기억장치(ODD · CD · DVD · 블루레이 디스크) | |
'''메인보드 · 전원부 · {{{#!wiki | 메인보드 · 쿨러 · 파워서플라이 · 케이스 | |
PC 주변 기기 | ||
보안 | TPM · 스마트카드 | |
네트워크 · 입출력 | 휴먼 인터페이스 장치: 키보드 · 모니터 · 마우스 · 트랙볼 · 디지타이저 · 스타일러스 펜 · 사운드 카드 · 스피커 · 마이크 · HMD 입출력 장치: TV 수신 카드 · 프린터 · 네트워크 카드 · 캡처보드 · USB · 케이블 |
💾 컴퓨터 메모리 | |||
{{{#!wiki style="margin:0 -10px -5px;min-height:25px;" {{{#!folding [ 펼치기 · 접기 ] {{{#!wiki style="margin:-6px -1px -11px;" | 휘발성 메모리 | ||
<colbgcolor=#E0E0E0,#222> RAM | DRAM · SRAM · T-RAM · Z-RAM | ||
비휘발성 메모리 | |||
ROM | Mask ROM · PROM · EPROM · EEPROM | ||
플래시 메모리 | USB 드라이브 · SSD · eMMC · UFS {{{#!wiki style="margin: 0 5px; display: inline-block;" | 메모리 카드 | |
Secure Digital(miniSD/microSD) · CompactFlash · 메모리 스틱 · UFS 카드 · XQD · CFExpress · xD 픽처카드 · 스마트미디어 | }}} | ||
NVRAM | nvSRAM · FeRAM · MRAM · PRAM(옵테인 메모리) | ||
기계식 | 자기테이프 · 플로피 디스크 · ZIP 드라이브 · 슈퍼디스크 · 하드 디스크(Microdrive) · 광학 디스크 | ||
개발중 | CBRAM · SONOS · RPAM · Racetrack Memory · NRAM · Millipede Memory · FJG | }}}}}}}}} |
1. 개요
記憶裝置/ Memory, Computer data storage기억장치는 전자 회로에서 데이터나 상태, 명령어 등을 기록하는 장치를 말하며, 흔히 '메모리'라고도 한다. 저장장치란 말도 쓰이나 이 경우는 주로 보조기억장치를 뜻하는 경우가 많다. 기억장치는 주기억장치와 보조기억장치로 나뉜다.
컴퓨터 등 전자기기에서 사용하는 기억장치를 사용용도에 따라 가장 큰 범주로 나누어 구분하자면, 하드디스크 드라이브나 플래시 메모리 같이 장기저장을 위해 사용하는 기억장치와 회로 내에서 짧은 시간 동안 상태를 저장하는 용도로 사용되는 기억장치로 구분할 수 있다. 후자의 경우 회로와 동기화되어 작동하기에 속도는 매우 빠르지만, 값이 비싸고 보통 휘발성인 경우가 많다.
후자의 경우 디지털 회로에서는 순서논리회로를 만들기 위해서 사용한다. 순서논리회로는 내부 상태를 가지는 논리회로로 내장된 기억장치가 내부 상태를 저장한다. 예를 들면 CPU의 레지스터가 있다.
아날로그 회로에서는 신호를 지연시키기 위해 사용하는 경우가 많다. PAL이나 SECAM 디코더나 아날로그 음향기기 중 에코, 리버브, 딜레이 프로세서에는 전부 기억장치가 들어 있다.
장기저장을 위한 기억장치는 보통 값이 싸고 많은 용량을 담을 수 있는 자기테이프, 하드 디스크 드라이브, 플래시 메모리 등을 사용한다. 이들은 비휘발성 메모리인 경우가 많다.[1]
2. 역사
3. 컴퓨터의 메모리
컴퓨터에서 널리 사용되며, 큰 틀에서 설명하면, CPU는 계산을 담당하고, 메모리는 기억을 담당한다. 공장에 비유를 하자면 CPU는 일꾼이고, 메모리는 작업장이며, 보조기억장치는 창고라 할 수 있겠다. 작업장의 크기가 곧 메모리의 크기로, 작업장이 클수록 창고에서 물건을 많이 가져다 놓고 일할수 있게 된다. 어디까지나 쉽게 설명하기 위한 비유이므로 자세한 것은 아래 항목을 참고하자.CPU에서 계산한 결과가 메모리에 저장이 되는 것이다. 하드디스크 같은 보조기억장치에 저장되는 것이 아니다. 그러니까 컴퓨터가 켜지면서부터 프로그램이 실행되면 그것들은 몽땅 메모리에 올라오게 된다. 이때문에 메모리의 크기가 중요하지만 옛날엔 이 메모리의 가격이 비쌌기 때문에 메모리를 절약하기 위해 페이지니 스와핑이니 하는 온갖 방법이 탄생했다. 또한 이 메모리에도 용도별로 여러 종류가 존재하며 가격에 따라 그 크기와 용도가 결정되기도 한다. 2010년대 들어 메모리 반도체의 가격이 떨어지게 되면서 과거에 비해 메모리의 중요성이 약화되었다.
3.1. CPU와 메모리간의 접근성에 따른 분류
CPU에 가까운 순서대로 레지스터(CPU) - (캐시 메모리) - 주 기억 장치 - (캐시 메모리) - 보조 기억 장치로 나눌 수 있다. 일반적으로 용량이 작을수록 동작속도가 빠르며, 용량이 클수록 동작속도가 느리다. 반면 속도가 빠를수록 용량 대비 가격이 비싸지고, 느릴수록 싸진다. 즉, 빠른 속도가 요구되지만 많은 용량이 필요하지 않은 CPU내의 레지스터에는 고속, 고가의 기억장치를 사용하게 되고, 대용량의 자료를 영구적으로 보관하기 위해서는 저속, 저가, 대용량의 기억장치를 사용하게 된다.간단히 레지스터에 있는 데이터를 읽는 것은 머릿속에 있는 기억을 떠올리는 행동으로, 주기억장치에 있는 데이터를 읽는 것은 책장에 꽂혀 있는 책에서 특정한 책을 찾아 내용을 읽는 행동으로, 보조기억장치에 있는 데이터를 읽는 것은 지구를 한 바퀴 돌아서 특정한 내용을 찾아오는 것으로 비유하곤 한다.
저장 비트당의 가격과 용량, 그리고 속도에 따라 계층을 구분하면 피라미드형 구조를 이루게 된다. 더 자세한 내용은 메모리 계층 구조 참조.
레지스터 | ||||||||
캐시 메모리 | ||||||||
주 기억 장치 | ||||||||
버퍼(디스크 캐시) | ||||||||
보조 기억 장치 |
- 레지스터
CPU의 일부로 CPU의 동작 속도와 동기화되어 작동한다. 사용자가 값을 읽고 쓸 수 있으며 동작 속도가 매우 빠르지만 수십~수백개의 정수형[2]과 실수형 데이터만을 저장할 수 있다. SIMD를 지원하는 CPU는 SIMD 레지스터 역시 따로 제공한다.
- 주 기억 장치(Main Memory)
CPU에서 직접 접근이 가능한 메모리. 이 뜻은 '주기억장치 100번지의 내용을 레지스터 1번에 저장하라', 혹은 '레지스터 1번의 내용을 주기억장치 100번에 덮어써라'와 같은 명령이 가능하다는 뜻이다. 직접 접근이 가능하지만 상수를 쓰는 것 이외의 연산은 CPU에서 바로 수행할 수 없으며, 메모리의 값을 레지스터로 로드, 연산, 연산 결과 적용의 단계를 거쳐야 한다.[3] CISC CPU에서는 메모리의 값을 직접 변경하는 명령어를 제공하는것처럼 보이지만 내부적으로는 위 단계를 거친다.
- 보조 기억 장치
CPU에서 직접 접근이 불가능한 메모리. 접근하려면 디바이스 드라이버와 시스템 콜을 통하여 기억장치의 특정 위치의 내용을 주기억장치로 로드(Load)한 뒤 읽어야 한다. 예를 들어 '0번 디스크 8번 트랙 12번 섹터 16번지의 값을 레지스터 1번에 저장하라'와 같은 명령이 불가능하다. 해당 내용을 읽으려면 '0번 디스크 8번 트랙 12번 섹터를 주기억장치 1024번지에 로드하라'는 시스템 콜을 먼저 호출한 후 메모리에서 '1024+16번지의 값을 레지스터 1번에 저장하라'와 같은 형태로 접근해야만 한다. CPU의 입장에서 보자면 보조기억장치는 여러 종류의 주변장치 중 하나이며 그 중 '저장 기능'을 지니고 있는 장치일 뿐이다.
3.2. 용도
용도에 따라 기억장치는 여러 계층으로 구성할 수 있다. 다만 램디스크를 보면 알겠지만, 기술의 발전 및 대세 기억장치들의 발전사에 따라 이름을 붙이다 보니 이름과 실제가 다른 것들이 굉장히 많다. 아울러 영어로 쓰여 있지만, 영미권에서 쓰지 않는 콩글리시도 많다.- 매우 빠른 메모리
- 레지스터: 순서논리회로인 CPU의 상태를 저장하는 컴퓨터의 가장 중요한 저장장치이다.
- 캐시: 캐시 메모리를 지칭한다. 소비자가 직접 구매하는 제품은 아니고, CPU나 HDD 등에서 스펙으로 접하는 용어다.
- 버퍼: 느린 저장장치들은 완충역할을 해주는 보조적인 버퍼 메모리를 많이 활용한다. 그냥 캐시라고 불리기도 하며, 파워나 부스터 등으로 마케팅 되기도 한다.
- 빠른 메모리
- RAM: 1990년대 중반부터 말까지는 주로 SDRAM을 지칭했으나 2000년 DDR SDRAM이 등장한 이후[4]부터는 DDR SDRAM을 지칭한다. 엄밀히 말하자면, 현대에 널리 사용되는 거의 모든 기억 장치가 RAM이다.[5] 쓰기가 안 되는 ROM은 RAM이 아니라고 할 수도 있으나 Random Access가 가능하기 때문에 ROM 역시 RAM의 일종이다. 테이프나 천공 카드는 Random Access가 불가능하기 때문에 RAM이 아니다.
- ROM: 전원을 껐을 때 날아가지 않은 메모리이다. 메인보드에서 바이오스를 저장하는 메모리라고 알려져 있으나 2023년 기준 10년도 전에 값싸고 용량많은 플래시 메모리로 갈아타고 저장된 바이오스도 UEFI로 전환되었다. 하지만 관습적으로 여전히 롬과 바이오스라고 부른다.
- 느리지만 싸고 큰 비휘발성 메모리
- 디스크: 저장소를 지칭한다. 처음에는 플로피 디스크, 그 이후에는 하드디스크와 컴팩트 디스크의 줄임말로 오래도록 써 왔다. 디스크라고 쓰고 저장소라고 이해하는 덕분에, 디스크가 없는
샌디스크램디스크 같은 것들도 존재하게 되었으며, SSD가 시중에 퍼진 이후에는 SSD의 D가 디스크라 생각하는 사람들도 꽤 있고, 그보다 더 큰 오해는 후술(...) - 하드: 보통 재기록 가능한 비 휘발성 저장소를 지칭한다. 오랜 기간 동안 하드디스크가 저장소 역할을 해왔기 때문에 아무런 문제 없이 사용되다가, SSD가 나오면서 혼란이 시작되었다. 초창기에는 SSD 하드라 부르기도 했고 지금도 저장장치를 통틀어 하드라고 부르기도 한다.
- 이동식 디스크 - Removable Disk. 연결이 끊어질 수 있음을 전제해두는 메모리
- 플로피 디스크: 사실 플로피 디스크란 말은 하드디스크와의 상대적인 용어로, 하드디스크가 널리 쓰이기 이전에는 플로피 디스크는 그냥 "디스켓"(작은 디스크 - 어쨌든 초기 8인치 디스크보다 작다.)이라 불렸다. 이동식 디스크의 대명사이지만 이동식이란 개념은 하드디스크가 탑재된 이후 사람들에게 받아들여진 개념이다. 하드디스크와 구분하기 위한 용어 외의 내용은 위 디스크에서 상술.
- 메모리
- 메모리 카드를 지칭한다. 디지털 카메라가 한창이었을 시절 그렇게 굳어졌다. 메모리카드가 소형화된 2010년대에는 microSD 또는 그냥 SD카드라 불린다.
- SD카드(안드로이드): 초창기 안드로이드에서는 SD카드를 microSD카드가 아닌, 내부의 eMMC(플래시 메모리) 저장소를 지칭했고, 슬롯에 꽂아 쓰는 그 microSD카드는 external sdcard라고 했다. 내부 메모리를 SD카드라고 지칭했어도, 막상 안드로이드 뚜껑을 따면 내부에 SD카드가 심어져 있는 것은 아니었다. 그렇다고 용어를 금방 고치기도 힘들었던 것이, 내부 메모리란 용어는 사용자가 터치할 수 없는 안드로이드 운영체제 전용의 메모리(파티션)을 지칭했었다. 이렇게 된 이유는 안드로이드가 개발될 당시 플래시 메모리 가격이 비싸서 MB단위의 적은 용량의 칩을 사용할 수밖에 없었기 때문이다. 내장 메모리를 운영체제용(필수)으로 이용하고, SDcard를 삽입시켜 사용자 데이터 저장용(선택)으로 쓰도록 했던 것이다. 속도가 빠른 NOR 플래시 메모리(비쌈), 용량이 큰 NAND 플래시 메모리(느림) 각각을 적절하게 사용하기 위해서란 이유도 있다. 이후 NAND 플래시 메모리 가격이 내려가고, 읽기 쓰기 속도도 개선되면서 용어정리가 진행되었다. NOR메모리는 퇴출되고 "내부 메모리"(NOR 였던 것)와 "SDcard"(메모리카드 였던 것)라고 불렸던 것이 내장 메모리(eMMC)로 들어가고, 성능과 보안과 호환성을 이유로 서로 다른 파티션(ext, fat)으로 나뉘어 들어갔다가, 그 이후에는 하나로 합쳐지고 폴더로 구분되는 전환기를 거쳐 이름과 실제가 정리되게 되었다.
- CD: 광학 디스크 드라이브를 지칭한다. 대다수의 ODD(CD, DVD, BD)는 CD드라이브로 불린다. 딱히 문제되지는 않는데, 광학디스크가 사양세라 제대로 불러야 할 일도 거의 없어졌기 때문이다.
- USB: USB 메모리, 정확히는 손가락 크기의 USB 플래시 메모리 막대기를 지칭한다.
- 외장하드: 편의상 기억 저장소 부품(본체)인 "디스크"까지 붙여 부르지 않는다. 시간이 지나 외장 SSD(2.5" 규격) 수도 늘어났는데, 이들은 기술적으로 정작 USB 메모리에 가깝지만, 외장하드로 불리고 있는 실정이다.
4. 분류
- 휘발성
- 휘발성 메모리 Ⓥ
- 비휘발성
- 동작 방식
- 주 기억장치 ☆
- 보조 기억장치 ★
- 접근 방식
- 순차 접근 메모리: SAM = Sequential Access Memory. →
- 임의 접근 메모리: RAM = Random Access Memory. ※
4.1. 반도체
- 래치/플립플롭Ⓥ 논리 게이트의 궤환 회로를 통해 정보를 저장하는 방식이다. 컴퓨터에서는 레지스터를 만드는데 쓰인다.
- ROM※☆ 컴퓨터 시스템 내에는 ROM이 탑재되어 있으며, ROM 역시 주기억장치의 일부이다.
- RAM(DRAM, SRAM 등)※☆Ⓥ
- 플래시 메모리※★
- USB 메모리
- 메모리 카드
- SSD
- eMMC
- 유니버설 플래시 스토리지 (메모리카드에도 사용된다.)
- 버킷 브리게이드(BBD)ⓋⒶ
아날로그 신호를 저장하는 커패시터를 여러개 연결시켜 두고 클럭 사이클마다 하나씩 옆으로 이동시키면서 지연시키는 방식. 진폭은 연속적(아날로그)이지만 시간은 이산적(디지털)이기에 입력 신호에 대한 대역 제한이 필요하다. PCM 변조 과정 중 표본화를 진행할 때 생성되는 PAM 신호와 유사하다. 전자기타의 공간계 이펙터에 주로 사용되지만 요즘은 DSP 기반이 더 늘어나고 있다.
4.2. 자기장(Magnetic)을 이용한 방식
저장 매체(Media) 위에 자기장에 반응하는 물질을 발라두고 헤드(Head)를 이용해 특정 위치의 값을 읽어오는 장치.
* 자기코어 기억장치: 자기코어(Magnetic Core)는 페라이트(Ferrite) 자성 물질을 작은 고리 모양으로 만든 링에 도체를 끼운 후, 도체에 흐르는 전류의 방향에 따라 데이터를 기억시키거나 읽을 수 있는 기억장치이다. 자기코어는 초창기의 컴퓨터에 사용된 기억장치로 현재에는 사용되지 않고 있다. 하나의 자기코어에는 오직 하나의 상태, 즉 1비트의 데이터가 기억된다. 따라서 원하는 크기의 기억 용량을 갖도록 하기 위해서는 많은 개수의 자기코어가 필요하다. 또한 속도가 매우 느린 기억장치이다. 자기코어는 한번 자화되면 전원이 끊어져도 해당 상태를 유지하기 때문에 비휘발성 메모리이다. 자기코어에서 데이터를 읽어낸 후에는 저장된 데이터가 사라지게 된다. 따라서 계속 데이터를 유지하기 위해서는 읽어낸 후에 다시 데이터를 저장시키기 위한 방법이 필요하다. 요즘에는 쓰기는 커녕 보기도 힘든 물건이지만 교과서에는 나온다.
* 자기코어 기억장치: 자기코어(Magnetic Core)는 페라이트(Ferrite) 자성 물질을 작은 고리 모양으로 만든 링에 도체를 끼운 후, 도체에 흐르는 전류의 방향에 따라 데이터를 기억시키거나 읽을 수 있는 기억장치이다. 자기코어는 초창기의 컴퓨터에 사용된 기억장치로 현재에는 사용되지 않고 있다. 하나의 자기코어에는 오직 하나의 상태, 즉 1비트의 데이터가 기억된다. 따라서 원하는 크기의 기억 용량을 갖도록 하기 위해서는 많은 개수의 자기코어가 필요하다. 또한 속도가 매우 느린 기억장치이다. 자기코어는 한번 자화되면 전원이 끊어져도 해당 상태를 유지하기 때문에 비휘발성 메모리이다. 자기코어에서 데이터를 읽어낸 후에는 저장된 데이터가 사라지게 된다. 따라서 계속 데이터를 유지하기 위해서는 읽어낸 후에 다시 데이터를 저장시키기 위한 방법이 필요하다. 요즘에는 쓰기는 커녕 보기도 힘든 물건이지만 교과서에는 나온다.
* 기록방법: 자기코어에는 1과 0의 두 가지 상태 중의 하나를 기억시킬 수 있다. 즉, 다음 그림과 같이 전류가 흐르는 방향에 따라 1이나 0의 상태를 갖게 된다.
* 읽기방법: 자기코어에 기억된 내용을 읽을 때에는 자기코어에 0을 기억시킬 때와 같은 방향으로 전류를 흐르게 한 후에 읽기 위한 선에 전류가 흐르게 되면 1, 흐르지 않으면 0으로 판단한다.
* 아폴로 우주선의 컴퓨터에는 이 자기코어 메모리 장치가 사용되었다. 수작업으로 만드는 수공업품이며, 현대의 메모리처럼 모듈식으로 제작되었지만 부피는 상당히 크다. 자기코어 메모리를 제작하려면 자석을 정렬시킨 후 전선을 고리에 꿰는 작업이 필요해서, 수KB 분량의 메모리를 제작하는데는 주 단위의 시간이 걸렸다.
* 읽기방법: 자기코어에 기억된 내용을 읽을 때에는 자기코어에 0을 기억시킬 때와 같은 방향으로 전류를 흐르게 한 후에 읽기 위한 선에 전류가 흐르게 되면 1, 흐르지 않으면 0으로 판단한다.
* 아폴로 우주선의 컴퓨터에는 이 자기코어 메모리 장치가 사용되었다. 수작업으로 만드는 수공업품이며, 현대의 메모리처럼 모듈식으로 제작되었지만 부피는 상당히 크다. 자기코어 메모리를 제작하려면 자석을 정렬시킨 후 전선을 고리에 꿰는 작업이 필요해서, 수KB 분량의 메모리를 제작하는데는 주 단위의 시간이 걸렸다.
- 자기 디스크★※→: 매체로 원반을 이용한다. 원반의 특정 트랙으로는 임의 접근이 가능하지만 원하는 섹터를 읽을 때까지는 순차 접근만이 가능하다. 이를 하이브리드 접근이라고 한다.
- 자기 드럼☆※→
- 자기테이프★→
가격 대비 저장용량의 끝판왕. - 마그네틱 카드★→
일단 순차 접근만 가능하기는 하지만, 너무 용량이 작아 의미는 없을 것이다.
매체로 원통(Cylinder)의 바깥쪽을 이용한다. 실린더의 바깥쪽에 자성물질을 발라두고 실린더를 회전시키거나, 실린더 표면을 읽는 헤드를 여러 개 두어 특정 위치의 값을 읽는다. 반도체 메모리를 컴퓨터에 기억장치로 도입하기 전에는 자기 드럼을 주기억장치로 활용하였다. 이후 반도체 메모리가 주기억장치의 대세가 되면서 현재는 시장에서 퇴출된 상태이다. 자기 드럼이 주기억장치로 활용될 때에는 CPU에서 특정 명령을 수행한 뒤 다음 명령을 읽어와야 할 때 드럼 헤드의 위치에 바로 다음 명령어가 위치하도록 드럼의 회전 속도와 명령의 수행 시간을 계산하는 최적화를 사람이 손으로 직접 하기도 하였다. 당시에는 자기 드럼이 자기 디스크보다 빨랐기에 주기억장치로 활용될 수 있었다.
4.3. 광학(Optical) 방식
매체의 표면이나 내부에 광학적 특성을 변질시켜 데이터를 기록하는 형식. 매체의 광학적 특성을 변질시키려면 구멍을 뚫거나, 레이저로 그을리거나, 염료 등 비가역인 물리적 방법을 사용해야 하기 때문에 데이터를 덮어씌우는 작업이 불가능하거나 횟수가 극히 적게 어렵다.
- CD★※→
- DVD★※→
- HD-DVD★※→
- Blu-ray Disc★※→
- M-DISC★※→
- UMD★※→
- 광자기 디스크★※→
- 플롭티컬 디스크★※→ - 플로피디스크와 광학 매체를 결합하여 플로피디스크 크기의 매체에 120MB 데이터를 저장할 수 있는 장치였으며, 드라이브 역시 일반 플로피티스크와 플롭티컬 디스크를 자유자재로 읽을 수 있었다. 하지만 비싼 가격에 CD의 등장으로 시장에서 뜨지 못하고 곧바로 사장되었다.
- 천공 카드★: 엄연히 보조기억장치 중 하나이다.
- OMR 카드★
4.4. 지연선(Delay Line) 방식ⓋⒶ★→
신호를 신호 전달 속도가 회로의 전기신호보다 느린 매질(음파 등)을 통과시켜 지연을 발생시키는 방식으로 저장한다.4.4.1. 음향(Acoustic Delay Line) 방식
음파의 진행 속도가 전자파의 진행 속도보다 느리다는 것을 이용하여 신호를 음파의 형태로 변환하여 지연을 발생시킨다. 이 신호를 녹음하고 다시 재생하는 것을 반복하면서 계속 순환시키는 방식으로 정보를 저장한다. 과거에는 컴퓨터에 사용했으며 컴퓨터 이외에도 디지털 신호처리 방식 튜너가 보급되기 전 PAL이나 SECAM 수신기에서 신호처리 용도로 사용하기도 했다.
4.5. 음반(레코드판)Ⓐ→
원판 위의 트랙에 물리적인 홈을 파고 픽업이 그 위를 주행하면서 전기신호를 재생하는 방식이다. 이것도 초창기에는 미디 시퀀싱을 위한 디지털 기록을 저장하는 데 잠시 쓰였던 적이 있기는 하다.[6] 다만 이미 LP보다 성능이 뛰어난 기억장치들이 널리 쓰이던 시대였기 때문에 이것이 많이 쓰이지는 않았을 것이다.[7]5. 기억장치의 성능
기억장치의 성능은 기억장치의 용량, 접근 시간, 데이터 전송률 등으로 평가할 수 있다.그 밖에 중요한 것으로는 기록 밀도가 있고, 아날로그 저장장치라면 S/N 비율과 와우 앤 플러터 등이 있다.
5.1. 용량(Storage Capacity)
큰 용량을 나타낼 때에는 SI 접두어에서 따온 단위를 앞에 붙인다.||<-4><tablealign=center><tablebgcolor=#fff,#191919><table width=500><bgcolor=#cccccc,#555555> 컴퓨터의 정보 단위 - 십진 접두어 ||
[math(\small 2^{-3})] 비트Bit (b) | [math(\small 1)] 바이트Byte (B) | [math(\small 10^{3})] 킬로바이트Kilobyte (KB) | [math(\small 10^{6})] 메가바이트Megabyte (MB) | ||||
[math(\small 10^{9})] 기가바이트Gigabyte (GB) | [math(\small 10^{12})] 테라바이트Terabyte (TB) | [math(\small 10^{15})] 페타바이트Petabyte (PB) | [math(\small 10^{18})] 엑사바이트Exabyte (EB) | ||||
[math(\small 10^{21})] 제타바이트Zettabyte (ZB) | [math(\small 10^{24})] 요타바이트Yottabyte (YB) | [math(\small 10^{27})] 론나바이트Ronnabyte (RB) | [math(\small 10^{30})] 퀘타바이트Quettabyte (QB) | ||||
{{{#!wiki style="margin:0 -10px -5px; min-height:calc(1.5em + 5px)" {{{#!folding [이진 접두어 펼치기 · 접기] {{{#!wiki style="margin:-5px -1px -11px" | 이진 접두어 | [math(\small 2^{10})] 키비바이트Kibibyte (KiB) | [math(\small 2^{20})] 메비바이트Mebibyte (MiB) | ||||
[math(\small 2^{30})] 기비바이트Gibibyte (GiB) | [math(\small 2^{40})] 테비바이트Tebibyte (TiB) | [math(\small 2^{50})] 페비바이트Pebibyte (PiB) | [math(\small 2^{60})] 엑스비바이트Exbibyte (EiB) | ||||
[math(\small 2^{70})] 제비바이트Zebibyte (ZiB) | [math(\small 2^{80})] 요비바이트Yobibyte (YiB) | [math(\small 2^{90})] Robibyte (RiB) | [math(\small 2^{100})] Quebibyte (QiB) | ||||
| }}}}}}}}} | ||||||
우상단 숫자는 바이트를 기준으로 한 상대값이다. |
1 bit(비트) = 가장 작은 용량 단위
1 byte(바이트) = 8 bits
1 kB(킬로바이트) = 2의 10제곱 bytes = 1024 bytes
1 MB(메가바이트) = 2의 20제곱 bytes = 1024 kB
1 GB(기가바이트) = 2의 30제곱 bytes = 1024 MB
1 TB(테라바이트) = 2의 40제곱 bytes = 1024 GB
1 PB(페타바이트) = 2의 50제곱 bytes = 1024 TB
1 EB(엑사바이트) = 2의 60제곱 bytes = 1024 PB
1 ZB(제타바이트) = 2의 70제곱 bytes = 1024 EB
1 YB(요타바이트) = 2의 80제곱 bytes = 1024 ZB
1 RB(론나바이트) = 2의 90제곱 bytes = 1024 YB
1 QB(퀘타바이트) = 2의 100제곱 bytes = 1024 RB
컴퓨터의 기억장치는 주기억장치, 즉 RAM의 용량이 커질수록 컴퓨터의 연산 속도가 빨라질 수 있다. 그러나 경제적인 면이나 효율적인 면을 고려하여 적절한 용량을 선택하는 것이 좋다.
기억장치 용량이 시간이 지날수록 증가하면서 각종 문제들이 발생하기도 한다.
- 보조기억장치 표기용량 문제: 위에 언급된 용량 표기는 실제로는 정확하지 않다. 고용량의 자기디스크 기억장치, 반도체 보조기억장치 등에서 킬로, 메가, 기가 등의 접두어를 1000으로 끊느냐 1024로 끊느냐의 문제 때문이다. 운영 체제에서 용량을 꽤 많이 까먹는 표기 때문에 사람들이 많이 놀란다. 자세한 내용은 기억장치/표기 용량과 실제 참조.
- 하드 디스크 용량인식 문제: 기억장치 주소가 커버할 수 없을 정도로 용량이 늘어날 경우 여유분을 사용할 수 없는 문제가 있다. 자세한 내용은 항목참고. 아울러 비슷한 이유로 파일 시스템 FAT의 한도, Secure Digital의 분류등의 문서, 특히 역사가 긴 저장장치 항목에 용량 한도가 잘 기록되어 있다.
- RAM 주소할당 문제: RAM에서의 위와 비슷한 문제다. 자세한 내용과 해결 방안은 항목 참고.
여담으로, 2017년에 전 세계의 모든 인터넷 정보를 다 모으면 44 ZB가 된다고 한다.
5.2. 접근 시간(Access Time)
접근 시간은 기억장치에 기억되어 있는 데이터를 읽거나 기억장치에 데이터를 기록하는데 소요되는 시간을 말한다,램의 접근 시간은 기억시킬 메모리의 주소를 메모리 주소 레지스터(MAR)에 전달한 후, 메모리 버퍼 레지스터(MBR)에서 기억시킬 데이터를 수신할 때까지 걸리는 시간을 의미한다.
5.3. 데이터 전송률(Data Transfer Rate)
데이터 전송률은 기억장치에서 1초 동안에 전송될 수 있는 최대 정보량을 의미하는 것으로 대역폭(Bandwidth)이라고도 한다. 데이터 전송률의 단위는 초당 비트(bps)[8] 또는 초당 워드(Word/S)이다. USB와 SATA의 규격을 볼 때 Gbps라는 표기를 봤을 것이다.6. 기타
- MS에서는 느린 보조 기억장치인 HDD를 보완하기 위해서 USB 메모리 등을 이용하여 일종의 보조 캐시 처럼 사용하는 ReadyBoost라는 기술을 선보인 적이 있다. 다만, 이는 느린 HDD일 때나 효과가 있고, SSD 나 고속 HDD에서는 기능 자체가 동작하지 않는다. SSD가 널리 보급됨에 따라 같이 사장되어 버린 기술.
- MS에서 석영 유리 안에 컴퓨터 데이터를 저장하는 기술을 개발 중이다. 아시아경제(2024. 1), MS홈페이지
[1] 반도체 기반 메모리가 아닌 이상(반도체 기반 메모리의 경우 비휘발성이더라도 미세하게 데이터가 날아가는 물건도 있다. 오래 방치하면 데이터가 못 쓰게 되어 버리는 경우도 있다.)수십년동안 전원공급을 하지 않아도 데이터가 날아가지 않는다.[2] 시스템의 비트를 따라간다. 즉, 32비트 시스템이라면 32비트 정수, 64비트 시스템이라면 64비트 정수.[3] 이는 CPU의 작동 단계인 Fetch-Decode-Execute-Write Back(Store)와 일치한다.[4] 정확히 따지면 초창기인 2000~2001년 사이에는 인텔이 매우 비싼 가격의 RDRAM으로 밀어주는 바람에 DDR SDRAM을 사용할 수 있는 메인보드가 많지 않았고, 설령 찾았더라도 당시 DDR SDRAM이 기존 SDRAM보다 더 비싼 가격을 헝성하는 등 접근성이 중요한 일반 사용자 입장으로썬 매리트가 떨어졌기 때문에 여전히 SDRAM을 지칭하는 경우가 더 많았다. 인텔이 RDRAM을 포기하고 펜티엄 4 노스우드 세대인 2002년이 되어서야 DDR SDRAM으로 정착되었다.[5] 하드 디스크 드라이브는 온전한 Random Access가 아니므로 여기서 빠진다.[6] https://en.m.wikipedia.org/wiki/Vinyl_data[7] 임의접근 완전불가, 낮은 기록밀도와 높은 노이즈, 읽기 전용, 쓰기의 불편함 등 기억장치로는 최악의 성능을 가지고 있어서 굳이 이걸 쓸 이유도 없었다.[8] 1바이트는 8비트이므로, 초당 바이트로 환산하려면 8로 나눠야 한다.