관리 메뉴

미닉스의 작은 이야기들

SSD 이야기 3. 액세스 타임을 줄여라 본문

삽질기3-SSD 이야기

SSD 이야기 3. 액세스 타임을 줄여라

미닉스 김인성 2007.08.17 01:51

3. 액세스 타임을 줄여라

 

 

응답속도를 빠르게 하기 위한 액세스 타임 줄이기는 다양한 방법으로 시도되어 왔는데 하드디스크 내부적인 방법과 외부적인 방법이 있습니다. 이것들에 대해서 간략히 알아 봅니다.

 

 

. 내적인 방법

 

1. 기계적 성능과 밀도 높이기

 

 

하드디스크 회전 속도를 높이면 응답속도를 높일 수 있습니다. 그래서 3,600rpm에서 15,000rpm까지 회전속도는 점점 높아졌습니다. 15,000rpm의 하드디스크는 소음과 가격 등 여러 가지 문제 때문에 아직은 서버용으로만 나오고 있습니다. PC에서 사용되기 위해서는 좀 더 시간이 필요합니다.

 

디스크의 밀도를 높여도 됩니다. 초기 5.25인치 하드디스크에서 3.5인치로 크기가 작아졌고 다시 디스크 개수가 1개 혹은 2개로 줄어들었습니다. 디스크 한 면에 쓸 수 있는 데이터량도 기하급수적으로 늘었습니다. 1TB 하드디스크의 디스크수가 2개일 때 한 면당 250GB(250,000MB) 정도의 밀도를 가지고 있습니다. 동일한 조건의 초기 40MB 하드디스크는 한 면당 10MB의 밀도였습니다.

 

 


헤드 확대 사진: 밀도의 증가를 위해서는 수많은 발명이 이루어졌습니다. 수직기록방식으로의 변화, 자기저항헤드, GMR헤드를 거쳐 TMR 헤드까지, 현미경으로 볼 수 있는 곳에서 거대한 발전이 있어 왔습니다. 데이터 기록면인 디스크와 정보를 읽어 들이는 헤드 사이의 간격도 1/100,000,000미터까지 줄어들었습니다.

이미지 출처: http://www.pctechguide.com/31HardDisk_Construction.htm

 

 

 

2. 인터리빙

 


인터리빙: 하드디스크의 기계적인 동작 특성을 이용한 성능 향상 법 중 하나.

 

 

그림에서 헤드가 데이터 읽기를 끝내고 다음 섹터로 넘어가기 위해서 필요한 시간 동안 디스크가 회전하면서 읽어야 할 지점(1)을 지나칩니다. 만약 다음 트랙의 시작점을 2번에 둔다면 헤드가 이동하는 시간과 실린더가 이동한 거리가 맞아떨어져서 바로 다음 데이터를 읽을 수 있습니다. 좀 더 빠른 rpm을 가지고 있다면 3번에 다음 트랙의 시작점을 두면 됩니다. 이 방법이 인터리빙이며 상당한 성능의 향상을 가져왔습니다. 예전에는 사용자가 직접 하드디스크의 인터리빙 값을 정해주기도 했지만 지금은 하드디스크가 알아서 합니다.

이미지 출처: http://www.ifi.uio.no/~inf3150/tfaq1.html

 

 

 

3. 전송 요청 재정렬

 

 

NCQ TCQ: 하드디스크 헤드가 움직이는 속도(물리적인 움직임)에 비해 하드디스크로 데이터 전송에 대한 요청(전자적인 움직임)을 하는 시간이 훨씬 짧습니다. 때문에 A를 읽고 있는 동안 B를 읽으라는 명령이 도달하고 다시 D C를 읽으라는 명령이 A를 다 읽기도 전에 도달합니다.

 

 

만약 하드디스크가 한 작업을 끝내고 다음 작업을 선택할 때 스스로 가장 효율적인 방식을 택할 수 있다면 전송 요청 순서대로(A-B-C-D) 데이터를 읽기 보다는 헤드의 효율적인 이동(A-D-C-B) 방식을 쓸 수 있을 것입니다. 이 것이 바로 서버용 SCSI 하드디스크에 있는 TCQ라는 방식이며 SATA NCQ라는 이름으로 적용되고 있습니다.

이미지 출처: http://www.pctechguide.com/31HardDisk_Construction.htm

 

 

그러나 NCQ TCQ는 단위 시간당 전송량을 늘일 수 있고 어떤 경우 응답 속도를 높일 수도 있지만 최악의 경우에 오히려 응답속도를 떨어뜨릴 수 있습니다. (B에 대한 전송 요청은 C, D 요청 이후에 처리되므로 원래 요청보다 늦게 전송 됩니다.)

 

하드디스크를 직접 개선하여 액세스 타임을 줄여보려는 노력은 큰 성과를 거두지 못했다. 오랜 노력에도 불구하고 초기 하드디스크에 비해 10배 정도 밖에 좋아지지 않았다.

 

 

 

. 외적인 방법

 

 

액세스 타임이 만들어내는 것은 응답속도의 지연뿐만이 아닙니다. 하드디스크가 다른 모든 장치들의 작업을 중단시키는 것이 더 큰 일이라고 할 수 있습니다.

 

1GHz(1,000,000,000Hz) CPU가 있을 때 1/1,000,000,000 초마다 한 개의 명령어가 처리됩니다. CPU 내부의 시간으로는 1/1,000,000,000초가 1단위초라고 생각할 수 있다는 뜻입니다. 이렇게 빠른 CPU가 하드디스크와 작업을 하기 위해서 다음과 같은 과정을 거칩니다.

 

CPU가 필요한 데이터를 찾습니다.

 

이 데이터가 하드디스크에 있음을 알고 전송을 요청합니다.

 

하드디스크는 이 요청에 대해서 10,000,000단위초(10ms) 후에 반응을 합니다.

 

그 동안 CPU를 비롯한 기타 모든 장비는 아무 일도 하지 못하고 기다리고 있어야 합니다.

 

사용자 삽입 이미지































화성 탐사선: 빛의 속도로도 화성까지 가는데 10분이 더 걸립니다.

이미지 출처: http://blogs.ocregister.com/sciencedude/archives/2006/10/

 

 

 

오른쪽을 찍으라는 명령을 내리면 10분이 지난 후에 탐사선이 그 명령을 수신합니다. 카메라가 천천히 돌아 사진 찍습니다(10). 다시 10분이 지나야 새로운 사진이 지구로 전송됩니다. 그 사진을 보고서야 명령에 제대로 반응했는지 알 수 있습니다. 30분 동안 지구 조종실에서는 초조하게 결과를 기다릴 수 밖에 없습니다. 긴 지연 시간을 가진 탐사선 제어는 답답한 기다림과의 싸움이라고 할 수 있습니다.

 

 

4. DMA

 

 

화성 탐사선에게 한 번에 한 개의 명령만 보낸다면 오랜 시간이 걸리겠지만 여러 명령을 한 꺼번에 보내거나 조건문까지 첨부해서 보낸다면 빠른 반응을 얻을 수 있을 것입니다.

 

 

----------------------

    왼쪽으로 돌아서 사진을 찍어라 (명령 전송 10, 사진 찍기 10, 사진 전송 10)

 

               전송된 사진을 보고 장애물이 없음을 확인함.

 

    5m 전진해라 (명령 전송 10)

 

분당 10cm씩 이동 (50, 결과 보고 10)

 

               5m 전송이 완료되었다는 보고를 받음.

 

    사진을 찍어 보내라 (명령 전송 10, 사진 찍기 10, 사진 전송 10)

 

                    전송된 사진을 판독함.

 

총 걸린 시간: 130

-----------------------

 

* 이런 명령을

 

-----------------------

     왼쪽으로 돌아서 사진을 찍고 장애물이 없으면 5m 전진해서 사진을 찍어 보내라.

 

 

             왼쪽 사진과 장애물이 있다는 메시지를 전송 받음 (30)

             또는 왼쪽 사진과 5m 전진해서 찍은 사진을 모두 전송 받음 (80)

 

총 걸린 시간: 80

------------------------

 

* 이렇게 바꾸어 한 번에 여러 명령을 보내면 반응시간이 줄어들고 같은 시간에 화성에 대한 훨씬 많은 정보를 얻을 수 있을 것입니다.

 

 

그러므로 탐사선 제작 경험이 많아질수록 탐사선이 스스로 환경에 반응 할 수 있도록 만들게 됩니다. 아마 결국에는 처음부터 끝까지 알아서 동작하는 로봇을 제작하게 되겠지요.

 

 


메인프레임: 스팩으로 따지면 요즘의 PC보다 못한 과거의 메인프레임이 고성능을 낼 수 있었던 것은 채널이라고 불리는, 독립적으로 동작하는 시스템들의 조합이었기 때문입니다.

이미지 출처: http://it-dep-fio-ds.web.cern.ch/it-dep-fio-ds/Documentation/tapedrive/ibm3090-92.gif

 

 

컴퓨터의 DMA(Direct Memory Access)는 바로 이런 식의 접근법으로 개발된 방법입니다.

 

CPU는 하드디스크의 데이터 시작 주소와 총 데이터 량을 지정해주고 전송될 곳의 주소를 알려 줍니다. 그 후 하드디스크와 메모리는 스스로 알아서 데이터 전송을 시작하고 완료된 후에 결과를 CPU에 보고합니다. CPU는 전송 지시를 내린 후 대기 시간 없이 바로 다른 작업에 임할 수 있습니다.

 

 

DMA 방식의 전송 효율이 워낙 좋아서 모든 하드디스크는 CPU가 관여해야 하는 전송 방식인 PIO(Programmed I/O)에서 DMA로 채택하게 되었습니다.

 

 

5. 버퍼

 

만약 화성 탐사선이 한 번에 한 개의 사진만 전송하지 않고 전후 좌우 사진을 동시에 전송한다면 상황을 파악하는데 더 도움이 될 것입니다. 전송된 대부분의 사진은 참고만 하고 말겠지만 오른쪽뿐만 아니라 왼쪽 사진도 필요할 때가 생겼을 때 또다시 지루하게 기다리지 않아도 됩니다.

 

하드디스크에 데이터 전송 요청이 있을 때 한 번에 한 섹터의 데이터만 보내지 않고 그 주변의 여러 개의 섹터를 모두 전송하는 것이 효율적임이 밝혀졌습니다. 하드디스크 입장에서는 어차피 회전하는 디스크라서 가만히 있어도 원형의 트랙 전체가 다 읽히게 되어 있습니다. 이것을 버리지 않고 모두 모아서 전송하면 프로그램이 요청한 다음 데이터가 그 속에 있을 확률이 높습니다. 데이터는 연속으로 사용하는 경우가 많으니까요. 그래서 하드디스크는 데이터 전송을 블록 단위로 모아서 하게 되었습니다.

 

 


버퍼: 생물학에도 기계공학에도 버퍼가 있습니다. 무릎의 물렁뼈, 수도관의 고무패킹 등등
…… 버퍼는 서로 다른 두 가지의 어떤 것들의 사이를 완충하는 것입니다.

이미지 출처: http://198.144.2.125/MG42/Machinengewehr%2042%20-%20Pictures.htm

 

 

 

버퍼의 등장으로 하드디스크는 상당한 액세스 타임의 개선을 얻을 수 있었습니다. 찾는 데이터가 버퍼 속에 있다면 거의 대기시간 없이 작업을 진행할 수 있었습니다. 필요한 만큼 무한히 큰 버퍼를 사용하면 좋겠지만 일정 양 이상이면 버퍼 자체를 관리해야 하는 오버헤드가 있었고 데이터 동일성 같은 복잡한 문제를 일으킬 수 있습니다. (버퍼에 있는 내용을 실제로 하드디스크에 쓰기 전에 전기가 나가는 경우) 또한 버퍼로 사용되는 메모리가 상대적으로 고가라서 가격 대비 성능을 고려하여 적절한 크기가 선택되고 있습니다.

 

현재 시장에서는 대부분 8MB의 버퍼를 가진 하드디스크가 팔리고 있으며 고급 제품에 16MB 버퍼가 적용되고 있습니다. 초고가 제품과 초고용량 제품 정도에만 32MB의 버퍼를 갖추고 있지만 앞으로 그 이상의 버퍼도 장착되게 될 것입니다.

 

 

 

6. 캐시

 

아이비엠 연구소에서 80:20 법칙이 컴퓨터에도 일어나고 있음을 발견했습니다.  하드디스크에 저장된 데이터의 의 20%80%의 사용량을 보이며 한 번 읽은 데이터를 다시 부를 확률이 80% 이상임을 알게 된 것입니다. 이런 현상은 CPU와 메모리, 메모리와 하드디스크 모두에 해당되는 현상이었습니다.

 

 


CPU
의 캐시: 사진은 최신 CPU의 내부 사진입니다. 오른쪽의 연산 부분을 제외한 왼쪽 모두가 캐시입니다.

이미지 출처: http://www.linuxhardware.org/images/articles/conroe-082106/conroe-die.jpg

 

 

 

초고속으로 동작하는 CPU 연산 부분의 속도에 맞추어 데이터를 미리 준비해 놓기 위해서 CPU 회로의 대부분은 캐시로 덮여 있습니다. 점차 캐시의 유용성이 늘어나서 최근에는 L1(연산 장치와 외부 장치를 일차적으로 연결하는 Level 1 캐시)도 모자라 L2(L1으로 미처 대응하지 못하는 데이터 량을 충족하기 위해 또 다시 준비한 Level 2 캐시)에 이어 L3(L2로도 모자라 또다시 준비한 세 번째 캐시)까지 만들어졌습니다.

 

 


메인 메모리: 고속화된 DRAM이지만 CPU의 속도에 비해 많이 늦습니다. CPU 내부에 있는 캐시 덕분에 그나마 버티고 있는 상태입니다.

 

 

 

하드디스크에 쓰라고 전송된 데이터를 다시 사용하게 될 때의 상황을 볼 때

 

------------------

   캐시가 없을 때

 

1.       주 기억 장치에 있는 데이터를 하드디스크로 전송함

 

2.       하드디스크 버퍼에 담겨진 데이터를 헤더가 디스크에 기록함

 

3.       그 데이터가 다시 필요해져서 전송 요청을 하고 대기

 

4.       하드디스크는 다시 헤드를 옮겨서 데이터를 버퍼에 읽어 들이고 재전송함

 

5.       메인 메모리에 전송 완료 된 후에 작업을 다시 시작함

 

------------------

캐시가 있을 때

 

1.       데이터 쓰기 명령을 받자마자 쓰기를 끝냈다는 보고를 하고 버퍼에 저장

 

2.       그 데이터가 다시 필요하게 됨, 전송 요청

 

3.       메인 메모리 버퍼에 남아 있던 데이터를 즉시 넘겨 줌

 

4.       대기 시간 없이 바로 작업을 다시 시작함.

 

 

 

각각의 작업에 대한 시간 비교를 하지는 않았지만 이 정도의 비교만으로도 캐시가 있을 때의 효율성은 극명하게 드러납니다. 도스 시절 smartdrv를 사용하여 캐시 최적화에 관심을 가지지 않은 사람이 없을 정도로 하드디스크 캐시는 극적인 성능 향상을 얻을 수 있는 놀라운 방법이었습니다.

 

 

DRAM은 하드디스크에 비하면 거의 광속이라고 말할 수 있다. 때문에 오래 전부터 하드디스크는 캐시를 이용하여 성능을 높여서 써왔다.

 

 

캐싱을 하는 여러 가지 방법이 제시 되었으며 제품화 시도도 있었습니다. 그 각각에 대해서 나누어 설명합니다.

 

 

7. 캐시 - 메인 메모리 캐시

 


메모리 캐시: 2GB의 메인 메모리 중에서 캐시로 894MB가 캐시로 쓰이고 있습니다. 이 정도 메모리가 쓰이면 컴퓨터를 사용하고 나서 얼마 지나지 않아 거의 하드디스크를 쓰지 않게 됩니다.

 

 

문서 작업, 인터넷 웹 서핑, 동영상 플레이 정도에 필요한 데이터와 프로그램은 이제 메인 메모리에 캐싱된 것으로만 사용할 수 있습니다. 메인 메모리 512MB정도를 사용하다가 1GB로 업그레이드하면 곧바로 성능 향상을 경험할 수 있는 것이 바로 이 캐시 때문입니다. 요즘은 버퍼와 캐시 기능을 구별하기 힘들어 버퍼캐시라고 말하기도 합니다.

 

 

예전에는 사용자가 설정을 해야 했지만 이젠 운영체계에서 알아서 해줍니다. 리눅스의 경우 미리 쓸 수 있는 모든 메모리를 버퍼캐시로 잡고 응용 프로그램의 요청에 맞추어 그 크기를 조절합니다. 파일시스템의 디렉토리 구조를 미리 캐싱한 후부터 데이터 입출력에서 상당한 응답성 향상을 이룰 수 있었습니다.

 

물론 캐시가 많다고 성능이 계속 올라가는 것은 아닙니다. 캐싱이 필요한 데이터 이상이 되면 그 후부터는 아무리 캐시를 늘려도 성능이 별로 향상되지 않습니다. PC의 경우에 2G정도가 최적이며 그 이상은 크게 필요치 않습니다.

 

 

8. 캐시 - 롭슨

 

메인 메모리 캐시는 컴퓨터를 끄면 모두 사라지는 단점이 있습니다. 때문에 부팅할 때와 처음 프로그램을 불러 들일 때, 여전히 느린 하드디스크에서 한 번은 읽어 와야 하므로 PC 사용 초기에는 캐시가 전혀 도움이 되지 못합니다. 오히려 데이터를 캐시에 보존하기 위한 부가적인 작업이 성능을 더 떨어뜨릴 수 있습니다.

 

이 문제를 해결하는 방법 중에 하나로 제시된 것이 인텔의 롭슨 기술입니다. 마케팅적인 이유로 터보 메모리라는 이름으로도 불립니다.

 

 


인텔의 터보 메모리: 전원이 꺼져도 데이터가 보존되며, 빠른 응답 속도를 가지는 플래시 메모리를 하드디스크와 메인 메모리 사이에 두고 필요한 데이터를 여기에 저장해 놓으면 부팅할 때 하드디스크를 통하지 않고 플래시 메모리에서 바로 데이터를 읽어 들일 수 있습니다. 또한 이것을 임시 데이터 저장소로 활용하면 하드디스크를 사용할 필요가 거의 없어집니다. 롭슨은 인텔의 차세대 플랫폼의 옵션 사항으로 채택됨으로써 장미 빛 미래가 있는 듯 했습니다.

이미지 출처: http://www.sweclockers.com/imagebank/30fa1/fVuRWY.jpg

 

 

 

그러나 HP와 델에서 테스트해 본 결과 약속한 만큼의 성능을 얻을 수 없음이 밝혀 졌습니다. 비싼 터보 메모리 장착을 위한 비용을 감안한다면 차라리 그 돈으로 메인 메모리를 늘이는 것이 더 효율적이라는 것이 그들의 결론이었습니다.

 

플래시 메모리는 응답속도는 빠르지만 최대 전송량은 하드디스크에 비해 크게 떨어집니다.  그렇다고 롭슨을 위해 플래시를 병렬화하고 고속의 전용 컨트롤러를 장착하기에는 비용 부담이 너무 커집니다. 때문에 한 두 개 정도의 플래시에 별 기능이 없는 단순한 컨트롤러를 장착할 수 밖에 없습니다.

 

결국 2GB의 데이터를 읽어 오는 총 시간은 빠른 응답 속도와 적은 대역폭의 롭슨과 느린 응답 시간과 높은 대역폭을 가진 하드디스크를 비교했을 때 큰 차이가 없었습니다.

 

언제나 그렇듯 신 기술은 초기 진입에 이렇게 저항에 부딪히고 나면 그 기술 자체가 사장되고 맙니다. 롭슨은 앞으로 대단한 개선이 있기 전에는 크게 주목 받지 못할 것으로 생각됩니다.

 

 

9. 캐시 - 하이브리드 하드디스크

 

메인 메모리와 하드디스크 사이에 캐시를 두겠다는 발상은 하드디스크 내부에 대용량의 플래시를 추가하는 발명을 이끌어 냅니다.

 

하이브리드 하드디스크는 플래시 메모리를 하드디스크 내부에 장착하는 것입니다. 전원이 나가면 하드디스크 내부의 버퍼의 데이터는 사라지지만 플래시의 데이터는 그대로 보존됩니다. 현재 상용화된 제품들은 약 256MB 정도의 플래시를 내장하고 있습니다.

 

 

시게이트 모멘투스 5400 PSD: 하드디스크 모듈에 플래시 메모리를 캐시로 내장한 제품. 제품명에는 절전드라이브(Power Saving Drive) 만 있으며 저전력임을 강조하고 있습니다.

이미지 출처: http://www.seagate.com/images/branding/downloads/Momentus_5400_psd.jpg

 

 

터보 메모리가 어떤 하드디스크에도 캐시 기능을 해 줄 수 있다면 하이브리드 디스크는 어떤 컴퓨터에도 캐시 기능을 수행할 수 있다는 차이가 있습니다. 터보 메모리는 하드디스크에 대한 자유를, 하이브리드 디스크는 호스트에 대한 자유를 줍니다. 캠코더와 같은 부류에는 하이브리드 디스크가, 서버급 컴퓨터에는 터보 메모리가 더 적당하겠지요.

 

그러나 제품명에서 보듯이 하이브리드 하드디스크는 성능 향상 보다는 전력 절약에 초점이 맞추어져 있습니다. 대부분의 데이터가 캐시에 올라 온 다음에는 디스크가 회전할 필요가 없으니까 전기도 적게 먹고, 소음과 열도 줄어들고 디스크 헤드를 안전한 곳에 둘 수 있으니까 기계적 안정성도 증가합니다.

 

물론 캐시 되어 있지 않는 새로운 데이터를 읽거나 쓸 때는 기존 하드디스크와 아무런 차이가 없습니다. 느린 응답 속도는 전혀 개선되지 않았습니다. 오히려 캐시에 데이터를 올리기 위한 오버헤드가 성능을 더 떨어뜨릴 수 있지요. 안정성도 사라지고 전기도 더 먹게 됩니다.

 

비싼 캐시용 플래시 메모리 가격뿐만 아니라 플래시를 제어하기 위한 별도의 컨트롤러가 필요합니다. 이 모든 것들이 가격 상승 요인이 되는데 그로 인해 얻을 수 있는 이점은 별로 크지가 않습니다. 때문에 터보 메모리와 같이 임시 방편의 기술이 될 가능성이 높습니다.

 

당연한 이야기지만 기술 분야에서 미래를 예측하는 것은 헛된 일입니다. 쓸데없는 전망은 그렇게 말한 후부터 족쇄가 됩니다. 저는 위에서 말한 모든 기술들이 각자 장점을 가지고 있고 그 장점이 단점보다 더 중요하게 되는 순간에 지배적인 기술이 될 수 있다고 생각합니다. 그러므로 가능한 단정적인 발언은 하지 않을 것입니다. 기술은 대개 마케팅적인 요인이나 또 다른 이해할 수 없는 것들 때문에 왜곡될 수도 있습니다. 그러므로 저의 전망이 비관적이든 낙관적이든 상관없이 예언은 아니란 점을 분명히 해 둡니다.

 

 

A. 캐시 - 슈퍼패치

 

문서 작업할 때 많이 쓰는 파일들을 인덱싱하고 있다가 문서 작업이 시작되면 사용자가 요청하지 않더라도 미리 캐시에 읽어 놓으면 성능 향상을 꾀할 수 있습니다. 이런 기법이 XP에 적용되어 프리패치(PreFetch)라는 이름으로 사용되고 있었습니다. 이 기법은 비스타에서 슈퍼패치(SuperFetch)라는 이름으로 발전되었습니다. 슈퍼패치는 사용자의 규칙을 스스로 파악해서 작업 별, 프로그램 별, 사용 시간대 별로 캐시를 최적화 할 수 있다고 주장합니다.

 

 


프리패치 목록이 있는 디렉토리 : 그러나 어떤 기술에도 단점은 있는 법, 반복된 사용으로 인해 점점 더 캐싱해야 할 데이터 목록이 늘어나면서 어느 순간 이 목록을 유지하는 것이 병목이 되게 됩니다. 때문에 슈퍼패치는 가끔씩 완전히 지워버리고 새로 캐시를 하도록 해야 성능이 향상 됩니다.

 

디스크 조각 모음처럼 잘 쓰면 좋지만 어차피 쓰다 보면 그 자체에 들이는 시간이 늘어나 효과가 사라지는 애물단지 같은 기술입니다. 즉 인덱싱 목록을 잘 유지하느라고 신경써야 하는 시간이나 아무렇게나 관리해서 성능이 떨어져서 소비되는 시간이나 별 차이가 없다는 말입니다. 운영체계에 내장된 디폴트 기능이므로 더 언급은 하지 않습니다.

 

 

B. 캐시 - 레디부스트

 

파일을 인덱스 해 놓는 슈퍼패치에서 한 발 더 나아가서 부팅 할 때 필요한 파일들을 플래시 디스크에 모아 놓으면 부팅 시간을 획기적으로 줄일 수 있을 것입니다. 이 것이 바로 비스타에서 사용되고 있는 레디부스트 기능입니다.

 

레디부스트는 하이브리드 하드디스크나 터보 메모리 위에서 잘 동작하도록 되어 있지만 USB 메모리나 노트북의 외장 메모리에서도 동작 시킬 수 있습니다. 삼성의 하이브리드 하드디스크는 비스타 개발 당시에 운영체계에 최적화되어 제품화된다고 해서 화제가 되기도 했습니다.

 


외장 메모리 인터페이스에 삽입된 SD 메모리: 레디부스트는 고속의 터보 메모리나 하이브리드 디스크에 최적화되어 있습니다.

 

 

 

그러나 256MB에 불과한 하이브리드 디스크의 캐시량 때문에 문제가 있고, 터보 메모리의 성능 문제로 큰 이슈가 되지 못하고 있습니다. 더구나 외장 메모리 인터페이스의 낮은 성능은 외장 SD에 올린 레디부스트를 제대로 사용할 수 없을 정도로 만들고 맙니다. 역시 아직은 지켜봐야 할 기술입니다.

 

 

 

C. 램디스크 -   I-RAM

 

도스 시절부터 메인 메모리를 하드디스크처럼 사용 할 수 있는 기능이 있었습니다. 640KB 이상의 남는 영역을 램디스크로 잡고 사용했을 때 버퍼캐시 보다 체감적으로 더 뛰어난 성능 향상을 얻을 수 있었습니다.

 

그러나 램디스크의 치명적인 약점은 전원이 나가면 데이터가 모두 사라진다는데 있었습니다. 이 문제를 극복하기 위해서 컴퓨터를 종료할 때 램디스크의 데이터를 하드디스크에 저장할 수 있도록 해주는 프로그램도 있었지만 윈도우가 죽거나 정전이 되는 경우 데이터가 일시에 사라져버리기 때문에 안정성 면에서 믿을 수 없었습니다.

 

이 램디스크의 장점을 살린 제품이 만들어졌는데 그 것이 I-RAM 입니다. 컴퓨터의 확장 슬롯에 꼽아 쓰는데 윈도우에서 하드디스크처럼 사용할 수 있습니다. 메인 메모리로 쓰는 DRAM을 꼽아서 사용하기 때문에 속도는 여태까지 나온 보조 저장 장치 중에 가장 빠릅니다. 경이적인 액세스 속도는 그 어떤 것도 따라올 수 없습니다. 한 때 아이램은 얼리어답터들의 간절한 지름 대상이었습니다.

 

 


기가바이트의 아이램: 4개의 메모리 슬롯에 각각 1G짜리 DRAM을 꼽아 4G로 만들 수 있습니다. DRAM의 특성상 항상 전원이 연결되어 있어야 하는데 컴퓨터를 사용할 때는 본체에서 전원을 공급받아 동작하며 전원이 나가면 충전되고 있던 배터리가 데이터를 보존할 수 있게 해줍니다.

이미지 출처: http://techreport.com/reviews/2006q1/gigabyte-iram/index.x?pg=1

 

 

DRAM의 빠른 속도를 이용할 수 있는 저장 장치이며 전원을 끄더라도 데이터가 사라지지 않는 장점을 가지고 있지만 그보다 더 많은 단점들이 이 제품이 활성화되는데 걸림돌이 되었습니다. 전지가 나가도 데이터를 보존할 수 있다고 하지만 배터리로만 버틸 수 있는 시간이 24시간이 되지 않습니다. 주말에 정전되고 월요일에 출근하면 데이터가 다 날아가버린 후라는 뜻이지요. DRAM의 비싼 가격도 문제입니다. 한 회사에서만 만드는 제품이라 원하는 만큼 메모리를 확장할 수 있는 기능 추가 등이 쉽지 않다는 것도 문제입니다. 제품이 출시될 때 4G가 한계였는데 지금은 어떤지 모르지만 크게 늘지 않았을 것입니다. 제품 개발이 활성화되지 않아 구형 인터페이스에 느린 대역폭도 개선되지 않았습니다. 현재는 시장에서 보기 힘들며 그냥 오타쿠들이 가지고 놀기 좋은 특이한 제품으로 기억되고 있을 뿐입니다.

 

 

D. SSD - 궁극의 해결책

 

SSD는 하드디스크의 느린 액세스 타임을 해결하려는 여러 가지 다양한 시도들의 최종적인 결과물입니다.

 

하드디스크의 물리적 한계를 극복함으로써 느린 액세스 타임을 해결해줄 수 있고

 

버퍼캐시를 사용했을 때의 빠른 데이터 전송을 처음부터 가능하게 해주고

 

롭슨과 하이브리드 하드디스크가 제공하려는 레디부스트 기능을 한 단계 더 발전시켜 주며

 

I-RAM이 제공하는 경이적인 응답 속도와 높은 전송량이 가능하게 하면서도 안정성까지 제공해 줄 수 있습니다.

 

 


엠트론 노트북용 32G SSD 내부: SSD는 버퍼로만 채워져 있는 하드디스크이며, 디스크 없는 하이브리드 하드디스크입니다. 배터리를 제거한 i-RAM, 비 휘발성 램디스크이며 버퍼캐시 그 자체입니다. 과도기적인 제품도 아니고 임시 방편의 제품도 아니며 한계가 정해진 엽기적인 제품도 아닙니다. SSD는 하드디스크의 미래이며 PC에 존재하는 마지막 아날로그적 잔재를 청산하기 위한 최종 선택입니다.

 

 

 

CD가 출현했을 때 수 많은 논쟁이 있었습니다. 아날로그적 감성을 가진 LP의 장점이 거론되고, 예술적인 매체로 승화된 LP 자켓이 사라지는 것을 안타까워하는 미술계의 목소리도 있었으며 오리지날은 역시 LP라는 찬사와 천박한 디지털에 대한 경멸, 샘플링이라는 불완전한 기술에 대한 불신, 그리고 잡음마저도 음악의 일부분으로 인식하던 매니아들의 지나치게 깨끗한 CD음에 대한 거부까지……

 

그들이 옳았을 수 있습니다. 더 이상 좋아질 수 없는 진공관 앰프 곁에서 공학적으로 완성된 다이아몬드 카트리지로 듣는 절대 음을 지켜야 했을 수 있습니다. 그러나 그 모든 논란에도 불구하고 단 한 번만 CD를 듣고 사용해 본다면 그 모든 주장들이 부질없는 집착에 불과하다는 것을 알게 됩니다.

 

CD, MP3, LCD, DVD, HDTV, 핸드폰을, 그리고 SSD를 단 한 번만 사용해 본다면 결코 LP, 브라운관으로, 비디오 테이프로, 공중전화로, 그리고 하드디스크로 돌아갈 수 없습니다. 중독자들이 그토록 순결하고 깨끗했던 원래의 허파를 되찾고 싶어 하지만 한 번 니코틴을 흡수한 허파는 더 이상 원래대로 되돌이킬 수 없습니다.

 

주의하세요. SSD를 단 한 번만 경험한다면 당신은 다시는 하드디스크를 찾지 않게 될 것입니다. 어쩔 수 없이 하드디스크를 다시 써야 한다면 순간순간 마다 SSD가 없다는 상실의 고통을 겪어야 하고 느린 응답 속도 때문에 짜증이 몰려 오게 될 것입니다. 이런 고통에 빠지지 않으시려면 차라리 SSD를 가까이 하지 마시기를 바랍니다.

 

비싼 가격, 적은 용량, 신뢰할 수 없는 쓰기 횟수 제한, 아직 검증되지 않은 보조 저장 매체라는 논란에도 불구하고 왜 SSD가 부상할 수 밖에 없는지 이제 그 속을 들여다보고 성능을 조사해보기로 하겠습니다. 기대하셔도 좋습니다.

 

김인성.

신고
5 Comments
  • 프로필사진 지나가는 이 2009.12.03 00:35 신고 좋은 글 또 보고 갑니다 :) 방금전에도 답글 한개를 달았었는데 또 다네요 ^^; 원래 Solid-State-Disk, 즉 SSD라는 것은 전원을 내렸을 때 데이터를 잃지 않는 방식의 모든 스토리지 디바이스를 의미합니다. 그러면 당연히 플래시 메모리 아니냐 생각이 들수도 있지만, Ram-based SSD 라는 것도 있습니다. 대표적인 제품이 http://www.ramsan.com/products/ramsan-440.htm 입니다. 이것은 RAM을 사용해서 스토리지를 구축하고, 전원이 나갔을때 이를 안전하게 보관하는 제품인데... 본문 중에 SSD를 Flash-based SSD의 문맥에서 사용하신것 같은데, 사실 플래시 메모리는 일반 RAM 보다는 속도가 떨어집니다. 버퍼 캐쉬(즉, RAM)에서 Hit이 나는 것과, Flash에서 Hit이 나는 속도(말하자면 access time)을 비교하는 것은 비교할 수가 없지요. 플래쉬 기반 SSD가 디스크보다 백배 이상 빨라도, 응용 프로그램 수행 시간이 백배 차이가 나지 않는 것은, 버퍼 캐쉬로 인한 것이라고 보아야 할 듯 합니다. 본문중에 "버퍼로만 채워져 있는 하드디스크" 라는 표현이 있길래 답글을 적습니다 ^^; 사실 디스크는 DRAM을 사용하므로, 이 경우 Ram-based SSD이어야 그 표현이 맞지 않을까 싶어서요.
    또 하나, DMA의 경우 디스크랑 메모리가 알아서 데이터를 교환하는 것은 아니고, 메인보드에 CPU말고 다른 컨트롤러가 더 있습니다. CPU가 그 호스트 컨트롤러에 적당히 명령을 내려두고 딴짓을 하다가 인터럽트 받고서 post processing을 하는 구조입니다.
  • 프로필사진 Favicon of http://minix.tistory.com BlogIcon 미닉스 김인성 2009.12.03 13:46 신고 좋은 말씀 감사드립니다.

    일반인을 상대로 하다보니까 용어들이 문제가 있는 경우가 있군요.

    DMA도 그렇게 읽혀질 수도 있겠네요. "자세한 설명은 생략한다"식이어서요. 대충 설명되기도 하고 메인프레임 채널 얘기가 섞여있기도 하니까 전문가급분들은 또 알아서 이해하시면 되겠습니다.^^
  • 프로필사진 Favicon of http://f2ver.oranc.co.kr BlogIcon rlfka 2011.12.13 10:35 신고 superfetch 관련내용을 찾다가 게시하신 글을 정독하고 있습니다.
    재미있으면서 위트가 넘치는 글에서 눈을 뗄수가 없네요.
    좋은 글 잘읽고 갑니다.
  • 프로필사진 Favicon of http://minix.tistory.com BlogIcon 미닉스 김인성 2011.12.14 14:30 신고 감사합니다.^^
  • 프로필사진 go ding 2012.07.06 23:12 신고 ㅠㅠ 사진자료 엑박
댓글쓰기 폼