이 글은 Crash Course의 Computer Science를 보고 정리한 글입니다.
이전에도 메모리에 대해서 이야기했지만 일반적으로 컴퓨터 메모리는 비영구적(Non-permanent)이다. 일반적으로 파일을 수정하다가 실수로 전원이 꺼진다면 메모리에 저장된 모든 데이터가 손실된다는 것이다. 이러한 이유로, 휘발성 메모리라고 불린다.
하지만 하드 디스크 같은 저장 장치에 기록된 모든 데이터는 전원이 나가거나, 지워지거나, 덮여쓰여질 때까지 유지된다. 이것은 비휘발성이다. 이전에는 휘발성 메모리가 빠르고 비휘발성 저장장치는 느렸다. 하지만 컴퓨팅 기술이 향상되면서 구별이 점차 사라지고 용어가 썩이기 시작했다.
요즘 우리는 USB와 같은 기가바이트의 용량을 제공하는 기술을 당연하게 사용한다.
가장 초기의 컴퓨터 저장 장치는 종이 펀치 카드였으며 그와 비슷한 종이 펀치 테이프가 있다. 1940년대에 펀치 카드는 크게 80열 12행의 격자로 표준화되어 최대 80 * 12 = 960 비트(120바이트)의 데이터를 하나의 카드에 저장이 가능했다. 현재까지 알려진 펀치 카드 중 가장 큰 프로그램은 미군의 반자동 지상환경(SAGE)라고 불리는 1958년에 수행된 방공 시스템 작전이었다. 주 프로그램은 62,500 개의 펀치 카드에 저장되었으며, 하나에 약 5 메가 바이트에 해당하는 데이터이고 펀치 카드의 크기는 오늘날의 평균 스마트폰 정도이다.
펀치 카드는 수 십년간 유용하고 대중적인 저장장치였다. 펀치 카드는 동력이 필요 없는데다가 종이값이 싸고 합리적이며 내구성이 있었다. 그러나, 펀치 카드는 느리고 한번 쓰면 구멍을 쉽게 지울 수 없었다. 그래서 펀치카드는 덜 유용한 형태의 저장소였고, 실행 중 단 몇 분만 값이 필요할 때도 쓰고 버려지기도 했다. 보다 빠르고 크고 유연한 형태의 컴퓨터 저장소가 필요했다.
초기의 실용적인 접근법이 1944년 ENIAC작업을 마무리해가던 J.Presper Eckert에 의해 개발되었다. 그의 발명품은 지연 기억 장치(Delay Line Memory)라고 불렸는데, 다음과 같이 작동하였다. 먼저 튜브를 하나 준비해 수은과 같은 액체로 채운다. 그럼 다음 한쪽 끝에 스피커를, 다른 한 쪽에 마이크를 놓는다. 스피커를 작동시키면 입력파가 발생한다. 이것을 튜브의 다른 쪽 끝으로 전파하는데 시간이 걸리며 파장이 마이크에 닿으면 전기 신호로 다시 변환된다. 그리고 이 전달 지연을 사용하여 데이터를 저장할 수 있다. 입력파가 있을 경우를 1, 없는 경우를 0이라고 하면, 스피커는 1010 0111과 같은 연속된 이진수를 출력할 수 있다. 상응하는 파장이 튜브를 따라 내려가고, 잠시 후 마이크에 닿아 전기신호인 1과 0들로 변환된다. 마이크와 스피커를 연결하는 회로와 손실을 보상하기 위한 작은 앰프를 만들면 데이터를 저장하는 루프를 만들 수 있게 된다.
전선을 따라 이동하는 신호는 거의 순간적이므로 표시된는 데이터는 언제든 1비트짜리 하나뿐이다. 하지만 튜브안에 많은 비트를 저장할 수 있다.
ENIAC에서 작업 후, Eckert와 그의 동료 John Mauchly는 더 크고 좋은 컴퓨터를 만들기 시작했다. 지연기억장치를 통합하여 EDVAC이라고 불렸다. 전체적으로 컴퓨터에는 128개의 지연 장치가 있으며, 각각 352비트를 저장할 수 있었다. 총 45,000비트의 메모리이다. 이로 인해 EDVAC은 가장 초기의 프로그램 저장식 컴퓨터(Stored-program Computers)가 되었다.
그러나 지연기억장치의 큰 단점은 튜브에서 한번에 1비트의 데이터만 읽을 수 있다는 것이다. 특정 비트에 접근하려면, 순차(Sequential) 또는 순환 액세스 메모리(Cyclic-access Memory)라고 하는 루프에서 돌아올 때까지 기다려야 한다. 따라서 임의 비트에 언제든 접근할 수 있는 랜덤 접근 메모리(Random Access Memory)를 원하게 되었다.
또한 메모리의 밀도를 높이는 것이 어려움이 드러났고, 파장을 가깝게 쌓아두면 쉽게 뒤섞였다. 이에 대응하여, 자기 변형 지연 장치와 같은 새로운 형태의 지연기억장치가 발명되었다.
이 지연기억장치는 금속으로 되있고 이것이 꼬이면서 작은 비틀림 파장을 만들어 데이터를 나타낸다. 와이어로 코일을 만들면서 1 * 1 피트 크기의 정사각형에 약 1000 비트를 저장할 수 있다. 그러나 1950년대 중반까지 지연기억장치는 대체로 사용되지 않았고, 비용과 안정성면에서 훨씬 뛰어난 작은 자기 도넉으로 만들어진 자심 기억 장치가 등장했다.
만약 코어 주위에 와이어를 감고 와이어를 통해 전류를 흐르게 하면, 특정 방향으로 코어가 자화된다. 전류를 끄면 코어는 자화된 상태로 유지된다. 전류를 통해 전류를 반대 방향으로 흘리면, 소위 말하는 극성은 반대 방향으로 뒤집힌다. 이 방법으로 1과 0을 저장할 수 있다. 1 비트 메모리는 별로 유용하지 않으므로 작은 도넉이 격자로 정렬되었다. 오른쪽 행과 열을 선택하기 위한 선과 모든 코어를 통과하는 선으로 비트를 쓰거나 읽을 수 있다.
코어 메모리의 첫 번째 큰 사용은 MIT의 Whirlwind 1 컴퓨터로, 1953년에 32x32 코어 배열을 사용했다. 그리고 단지 하나의 코어 평면 대신에, 16 보드가 겹겹이 쌓여 저장 용량은 약 16,000 비트였다.
중요한 점은 자심 기억 장치는 지연 기억 장치와 달리 어떤 비트든 언제든지 액세스할 수 있다는 것이다. 이것은 1950년 중반부터 20년간 우세한 랜덤 액세스 메모리 기술이 되었다.
1비트당 약 1달러에서 시작했지만 1970년대까지 1비트당 약 1센트로 떨어졌다. 하지만 1비트당 1센트도 저장장치로 싼 편은 아니다.
평범한 스마트 폰이 사진 크기가 약 5 메가 바이트로 약 4천만 비트이다.
1951년까지, Eckert와 Mauchly는 그들의 회사를 설립해서 UNIVAC이라는 새로운 컴퓨터를 고안했다. UNIVAC은 상업적으로 가장 오래된 판매용 컴퓨터 중 하나이다. 자기 테이프라는 새로운 형태의 저장장치를 가진 컴퓨터로 등장했다. 이것은 릴에 저장된 자성을 띤 물질로 길고 얇으며 유연한 스트립이다. 테이프를 테이프 드라이브라는 기계 내부에서 앞뒤로 이동할 수 있다. 내부는 쓰기 헤드이며 권선을 통해 전류를 통과시켜 자기장을 발생시키므로써 테이프의 작은 부분이 자화됐다. (권선 : 전류를 흘려 자속을 발생시키거나 서로 결합하도록 설계된 코일)
전류의 방향은 극성을 정하며, 다시 1과 0을 저장하기에 완벽했다. 또한 별도의 읽기 헤드가 극성을 비파괴적으로 감지할 수 있었다.
UNIVAC는 0.5인치 폭의 테이프에 각각 인치당 128비트를 저장할 수 있는 8개의 병렬 데이터 트랙이 있었다. 1200피트의 테이프가 들어있는 각 릴에는 약 1500만 비트(약 2메가 바이트)를 저장할 수 있었다. 테이프 드라이브가 비싸지만, 자기 테이프 자체가 싸고 콤팩트했다. 이런 이유로 오늘날에도 데이터를 보관하는 데에 여전히 사용된다.
하지만 접근 속도가 느리다. 테이프는 본질적으로 순차적이기 때문에, 되감기 또는 빨리 감기하여 원하는 데이터로 이동해야 한다.
1950년대와 60년대에 인기 있는 관련 기술은 자기 드럼 기억장치(Magnetic Drum Memory)였다. 이것은 드럼이라고 불리는 금속 실린더이다. 자성 재료로 코팅되어 데이터를 기록한다. 드럼은 연속적으로 회전하고 수십 개의 읽기 및 쓰기 헤드가 길이 방향으로 배치되었다. 헤드는 올바른 지점이 그 아래로 회전하여 약간의 데이터를 읽거나 쓸 수 있을 때까지 기다린다. 이 지연을 가능한 짧게 유지하기 위해 드럼은 1분당 1000번을 회전했다. 기술이 시작된 1953년까지 80,000비트(10 킬로바이트)의 데이터를 기록할 수 있는 장치를 살 수 있었지만 드럼의 생산은 1970년대에 끝났다.
하지만 마그네틱 드럼은 하드디스크 드라이브(Hard Disk Drivers)의 개발로 이어졌다. 둘은 매우 비슷하지만 다른 기하학적 구성을 사용한다. 대형 드럼 대신 하드 디스크가 사용되며, 저장 원리는 같고, 디스크 표면이 자성을 띄며 읽기 및 쓰기 헤드가 1과 0을 저장하고 검색할 수 있다.
디스크의 가장 큰 장점은 얇아서 많이 쌓을 수 있다는 점이다. 이는 데이터 저장을 위한 많은 표면적을 제공한다. 바로 디스크 드라이브를 이용한 첫번째 컴퓨터 RAMAC 305를 내놓은 IBM이 세계 시장에서 했던 것이다. 그것은 직경이 50인치, 24인치 디스크, 대략적으로 총 5메가바이트의 저장 용량을 제공한다. 드디어 평범한 스마트 폰의 사진 하나를 저장할 수 있게 된것이다. 이때가 1956년이다.
모든 비트의 데이터에 액세스하려면 읽기/쓰기 헤드가 스택의 위아래로 움직여 디스크의 오른쪽 방향으로 이동한 다음, 디스크 사이에 헤드를 밀어 넣었다. 드럼 메모리와 마찬가지로 디스크가 회전하기 때문에 헤드는 오른쪽 섹션이 나올때까지 기다려야 한다. RAMAC 305는 임의의 데이터 블록에 평균적으로 6/10초의 시간 간격으로 접근할 수 있으며, 이것을 탐색 시간(Seek Time)이라고 부른다.
저장 용량이 큰 반면 메모리가 충분히 빠르지 않았기 때문에 RAMAC 405 역시 드럼 메모리와 자기 코어 메모리를 가졌다. 메모리의 탐색 시간이 짧을수록 비싸고, 느릴수록 싸다. 그래서 비용과 속도 사이의 균형을 유지하여 혼합된 여러 메모리 접근 방법을 사용하는 메모리 계층구조를 사용한다.
1970년대까지 하드 디스크 드라이브는 빠르게 발전했고, 평범해졌다. 오늘날 하드디스크는 보통 1테라바이트정도 용량은 쉽게 가진다. 대략 1조 바이트, 약 20만장의 5메가 바이트 사진만큼의 용량이다.
그리고 이러한 종류의 드라이브는 온라인으로 약 40달러정도면 구입할 수 있다. 비트당 0.0000000005센트이다. 1비트당 1센트였던 코어 메모리에서 거대한 발전이다.
또한 현대 드라이브의 평균 탐색 시간은 1/100초 미만이다. 플로피 디스크(Floppy disk)도 하드디스크와 같이 자기 매체를 사용하는 플로피이다. 이것은 휴대용 저장장치에 가장 많이 사용되었으며, 1970년대 중반부터 90년 중반대까지 유비쿼터스에 가까워졌다. Zip Disk와 같은 고밀도 플로피 디스크는 1990년대 중반에 인기를 얻었지만 10년안에 인기를 잃었다.
12인치의 레이저 디스크의 형태를 가진 광학 저장 장치가 1972년에 등장했다. 90년대에 이보다 작고 대중적인 Compact Disk(CD)와 DVD가 나왔다. 기능적으로 이 기술은 하드 디스크 및 플로피 디스크와 매우 유사하지만 데이터를 자기적으로 저장하는 대신에, 광학 디스크에는 표면에 물리적인 디벗이 거의 없다. 광학 센서에 의해 캡쳐된 빛이 다르게 반사되도록하여 1과 0으로 디코딩한다. 그러나 오늘날에는 하드드라이브나 USB스틱과 같이 움직이지 않는 고체 상태의 기술로 옮겨가고 있다. 내부는 이전에 나온 집적 회로들이다.
1972년에 첫번째 RAM 집적 회로가 출시되었다. 1비트당 1센트였고, 빠르게 자기 코어 메모리를 쓸모 없게 만들었다. 하드디스크 드라이브가 비휘발성 고체상태 드라이브(SSD)로 대체되고 있는 현재까지도 비용은 떨어진다.
움직이는 부분이 없기 때문에, 정말 어디서나 찾을 필요가 없으므로 SSD의 접근 시간은 일반적으로 1/1000초 미만이다. 그러나 SSD는 컴퓨터 RAM의 속도보다 몇 배는 더 느리다. 이러한 이유로 오늘날 컴퓨터는 여전히 메모리 계층구조를 사용한다.
'컴퓨터공학 > 기초' 카테고리의 다른 글
압축 (0) | 2022.09.09 |
---|---|
파일 & 파일 시스템 (0) | 2022.09.04 |
운영 체제 OS (0) | 2022.08.25 |
집적 회로와 무어의 법칙 (0) | 2022.08.20 |
소프트웨어 공학 (0) | 2022.08.18 |
댓글