2009. 4. 7. 11:21

HDD 상식

1. HDD의 구조  

1) 컴퓨터에 조금이라도 관심이 있다면, 하드디스크 드라이브(HDD)라는 것을 들어 봤을 것이다.- 컴퓨터의 하드웨어를 전혀 모르는 사람들도, 워드나 한글같은 오피스용 프로그램 등을 쓸 때, (저장)이나 (다른 이름으로 저장) 등은 할 줄 안다.- 하드디스크는(보조 기억 장치)라고 하는데, 한 마디로 말하면, 컴퓨터를 껐을 때도 자료가 보존되는장치로서, 자료를 (저장)을 했을 때, 그 자료들이 저장되어 있는 공간이라도 보면 된다.

2) 컴퓨터를 조립하게 되면, 제일 먼저 운영체제(OS)를 깐다. 물론 컴퓨터를 사용 하다가 뭔가 문제가 생기면, (포맷)을 하게 되는데, 이때도 OS를 다시 깔게 된다.- 그 다음으로는 한글, 포토샵,3ds Max 등,  소위 Application이라고 하는 응용 프로그램들도 깔게 된다.- 이때 설치한다(깐다)는 것은 컴퓨터을 껐을 때도 지워지지 않고 계속 보존 되게 한다는 뜻인데, 그렇게 컴퓨터에 깐 것들은 모두 하드디스크(HDD)에 저장이 되는 것이다.- 즉, HDD라는 것이 없으면, 필요한 프로그램을 깔 수조차 없게 되는 것이다.

3) HDD의 내부 구조...

a) 플래터(Platter)- 그림에서 보는 바와같이, 플래터는 둥근 원판이다.- 비자성체인 알루미늄 또는 유리 등으로 만드는데, 그 표면은 자성체인 산화철로 막이 씌워져 있다.-HDD는 자성으로 데이터를 기록하는 장치인데, 그 산화철 표면에 자성이 있으면,(1)로, 없으면,(0)으로,기록되어서 data의 유무를 표시하게 되는 것이다.- HDD를 분류할 때, 3.5인치 HDD 또는, 2.5인치 HDD 등으로 그 크기를 말할 때가 있는데, 이때 그 크기의 기준은 바로 플래터의 크기가 된다(3.5인치 HDD의 플래터의 실제 크기는 3.74인치).

b) 스핀들(Spindle)- 플래터의 중심을 잡아주고, 그 내부의 (스핀들 모터)로 플래터를 등속 회전시켜주는 장치이다.- HDD를 분류할 때, 5400rpm, 7200rpm, 10000rpm 등으로 나누기도 하는데,  RPM이란 것은 (분당 회전 속도)로서, 바로 일분에 플래터가 몇 회전 하는지를 나타내는 것이다.- HDD는 플래터가 일정한 속도로 돌고 있다는 전제 하에서 헤드가 원하는 섹터를 찾아가는 것이므로, 스핀들 모터의 등속성은 중요하다.-그리고 전문가들이 아닌 일반 유저가 HDD의 성능을 파악할 때, 플래터의 분당 회전수인 RPM은 HDD의 가장 중요한 성능 판단 요소이기도 하다(빨리 돌수록 고성능 HDD가 된다).

c) 헤드(Head)- HDD는 (자성)으로 data를 저장하는 (자기 기록 장치)다.- 헤드는 바로 자성체를 (자화/소거)하는 방식으로 data를 (Writing/Deleting)해 주고, 저장된 자성(자화) data를 Reading하는 장치이므로, HDD의 핵심 장치라고 볼 수 있다.- 헤드를 만드는 기술은 시대에 따라, 회사에 따라 변해 왔는데, Giant Magnetic Resistance(거대 자기 저항) 방식의 GMR 헤드가 가장 많이 알려져 있고, (수직 기록 방식)으로 바뀐 요즘은 Tunnel Magnetic Resistanc 방식의 TMR 헤드도 쓰이고 있단다.- 플래터 한 장에는 앞 뒤 양면으로 2 개의 기록면이 있는데, 각각의 기록 면마다 하나의 헤드가 있으므로, 플래터가 2 장인 HDD라면 물리적인 헤드는 4 개가 되고, (헤드의 수)를 (기록면의 수) 대신으로 쓰는 게 보통이다.

d) 헤드 암(Head Arm)- 헤드는 플래터와 붙어 있는 듯 보이지만, 그것은 작동 안 할 때, Parking Zone이라고 하는 곳에 머물러 있을 때 뿐이다.-일단 HDD가 작동이 되면, 스핀들 모터의 회전에 의해서 (숨구멍)으로 공기가 들어오게 되는데, 적절한  공기압이 형성되면 헤드는 플래터 표면을 머리카락 굵기보다 작은 간격(약 0.1~0.5 미크론 정도 )으로 떠서 비행(Flying)을 하게 된다.- 이 비행 간격은 플래터의 (기록 밀도)와 밀접한 관계를 가진다. 그 간격이 좁으면 좁을수록 기록 밀도가 높아져서 고밀도의 플래터가 되는데, 헤드 암은 그런 간격을 유지시켜 주고, 보이스코일 모터의 작동으로 인해서 헤드를 원하는 섹터로 가져다 주는 역할도 하므로, 단순한 팔 이상의 기능을 한다고 볼 수 있다.

e) 보이스코일 모터(Voice Coil Motor)- 0과 1의 디지털 신호를 아날로그 전기 신호로 바꿔주는 장치에 의해서 제어 신호가 들어오면, 헤드 암은 헤드를 원하는 곳으로 이동시켜 준다고 했다.-그렇게 헤드를 구동시켜는 장치를 보이스코일 모터(스태핑 모터)라고 하는데 ,이 모터에는 수평으로 선 운동을 하는 선형 모터(linear motor)가 사용된다.- 위의 그림을 보면 알겠지만, 헤드 암의 중간 정도에 회전 기준 축이 있다. 보이스코일 모터는 헤드 암을 통해서 헤드와 연결이 되어 있는데, 보이스코일이 떨리면(움직이면) 그 축을 기준으로 해서 코일이 움직이는 방향의 반대 방향으로 헤드를 움직여 원하는 섹터를 찾아가게 한다.- 음향 기기의 스피커에 관심이 있는 님들은, 스피커의 콘을 음악 신호에 맞게 떨리게 해서 음파를 발생시는 데, 보이스 코일이 사용되는 것을 알 것인데, HDD의 보이스 코일은 마치 스피커의 콘을 떨리게 하듯이 헤드 암을 떨리게 하는 역할을 하는 것같다. - 그리고 보이스코일 모터는 헤드 암을 구동시키는 장치라는 뜻에서 엑츄에이터(Actuator=헤드 구동 장치)라고도 한다.

f) 기타- HDD의 내부를 한번이라도 들여다 본 사람은 알겠지만, 플레터, 스핀들,헤드(암), 엑추에이터 등의 조합체인 Cartridge(카트리지) 밑면쪽으로 반도체 칩 등이 붙어 있는 회로 기판(PCB)이 있는 것을 봤을 것이다.- 여기에는  DMA용 chip,  Bios , Buffer memory chip, Control chip 등  그 외의 많은 부품들이 있어서, HDD를 작동시키는 메커니즘을 완성시킨다. 

 

2. HDD의 기록 원리


1) 쓰기 원리-- 위의 그림은 HDD의 GMR 헤드를 개념적으로 만들어본 것이다.- 어릴 때, (전자석)을 만들어 봤을 것이다. 철심에 코일을 감고, 코일 양쪽 끝을 건전지(전원)에 연결하면 철심에 자력이 생겨서 전자석이 되는 것을 보고 신기해 했던 기억이 난다.- 위의 왼쪽 그림을 보면, 코어(철심)에 코일이 감겨 있다.- ① 0과 1로 되어 있는 디지털 신호가 아날로그의 전기 신호로 바뀌어서,'a'로 들어온다(GMR 헤드로 전기 신호가 들어왔단 뜻).- ② 그러면 전자석의 원리에 의해서, 'b'와 같이, 코어에 자력이 만들어진다. 보이스코일 모터(엑츄에이터)에 의해서 데이터를 기록할 플래터의 트랙 상의 어떤 섹터에 도착한 상태라고 가정을 해 보자.- ③ HDD의 플래터의 산화철 기록면은 자성을 가질 수 있다고 했으므로, 코어에 자력이 형성되는 순간에 해당 섹터 부분은 자성을 가지게 됨으로써, 그림 'c'와 같이, 데이터가 기록이 되는 것이다.

2) 읽기 원리-- (유도전류)라는 말을 들어본 님이 계실 것이다. (페러데이)라는 과학자가 완성한 이론인데, 폐회로 형태의 코일 안에 자석을 넣다 뺐다 하면, 그 코일에 전류가 발생하는 원리이다.- 위의 오른쪽 그림을 보면, 역시 코어에 코일이 감겨 있는 것은 동일하다.- ① 어떤 data를 읽으라는 명령을 받으면, 보이스코일 모터는 GMR 헤드를 읽어올 데이터가 있는 섹터로 이동시킬 것이다. 현재 그림 'a'에서 보는 바와 같이, 산화철 기록면에는 데이터(자성)이 있는 상태이다.- ② GMR 헤드에는 코일이 감겨 있으므로, 'b'와 같이, 그 자력을 만나는 순간 마치 자석을 코일 내부로 넣다 빼는 효과가 생길 것이다.- ③ 결국 'c'와 같이 코일에는 유도 전류가 발생할 것이고, 이것이 디지털 신호로 바뀌어서 전달이 됨으로써, 어떤 data를 읽은 것이 된다.

- 여기서 말한 (쓰기), (읽기) 원리는 개념적으로 설명한 것이므로, 실제와는 다를 수도 있다.

그 기본 원리는 비슷할 것으로 생각되지만, 만일 설명이 잘못되었다면, 지적을 해 주세요^^.

3) (저장)을 했을 때 파일을 쓰는 과정--① (한글) 프로그램에서 문서를 만들고 (저장)을 한다.- ② (한글)은 Windows XP 등의 윈도우즈(OS)에게 이 명령을 전달한다.-③ 윈도우즈는 그 명령을 다시 HDD Controller에게 보낸다. 현재의 컴퓨터 시스템에서는 (한글)과 같은 응용 프로그램(Application)이 직접 하드웨어(HDD)에 접근하지 못하고 이렇게 OS의 중개를 받는다. -④ 컨트롤러는 데이터(문서)를 저장하기 위해서 HDD의 FAT(파일 할당 테이블)을 검사하는데, FAT에서 데이터를 저장할 빈 공간을 찾았으면, 컨트롤러는 그 곳을 윈도우즈에게 알려 준다.

-⑤ 저장할 공간의 주소를 전달받은 윈도우즈는 그 주소를 바이오스에게 전한다.- ⑥ 그러면 바이오스는 HDD에게 문서(데이터)를 그 주소에 담으라고 명령한다. 여기에서 HDD가 문서를 해당 주소의 공간에 쓰는 과정이 바로 위의 (1)의 쓰기 원리)에서 말한 과정이 될 것이다.- ⑦ 이런 쓰기 과정이 끝나면, 컨트롤러는 그 문서가 저장된 주소를 FAT에 기록해 두고 관리함 으로써, 똑같은 공간에 다른 데이터가 쓰여지는 일 등을 막을 수 있게 된다.


3. HDD의 기록 방식


1) 수평 기록 방식-- HDD 플래터의 산화철 기록면에 데이터를 저장할 때, (↔) 방향으로 저장하는 방식이다.- 이 기록 방식은 만들기는 쉽지만 공간의 낭비가 심한 단점이 있다. 위의 그림을 보면 알 수 있겠지만, 수평 기록 방식은 자력이 (좌우 방향)으로 기록 되므로, 그 공간을 많이 차지할 수밖에 없는 것이다.-기술의 발달로 그 기록 밀도를 계속 높혀 올 수는 있었지만, HDD 하나의 용량이 1TB을 넘어가고 있는 요즘 그 한계에 이르러 뭔가 새로운 방식이 필요했던 것이다.- 그리고 수평 기록 방식은 위에서 보는 바와같이, 기록한 후 10 년 정도 지나면, 인접한 자력 간에 간섭에 의하여 기록된 자화력이 약해짐으로써, 데이터가 지워지는 문제도 생긴다.

2) 수직 기록 방식 - 이 방식은 1976 년 일본 동북 대학교 교수인 이와사키에 의해서 이미 제창이 되었었는데, 그 기술 구현의 어려움과 실용성 등으로 인해서 오랫동안 큰 주목을 받지 못했었다. 그러나 하드디스크가 점차 대용량화되어가는 추세 속에서 수평 기록 방식이 한계에 다다르자, 수직 기록 방식이 다시 주목을 받게 된 것이다.- 위 그림을 보면, 수직 기록 방식은 (↕) 방향으로 데이터를 기록해서, 그 공간을 획기적으로 줄여줌으로써, 기록 밀도를 높히기가 쉽고, 따라서 대용량으로 만들기 용이한 것이다.- 그리고 수평 기록 방식은 데이터를 세밀하게 기록할수록 인접한 데이터 사이에 간섭이 심해지는 반면, 수직 기록 방식은 이런 간섭 문제도 쉽게 해결함으로써 데이터의 신뢰성을 높히고, 데이터의 무결성에 보다 근접할 수 있게 됐다.

 

4. 플래터의 구조와 HDD의 용량

1) 플래터의 구조-- 위의 그림은 플래터가 2 장인 하드디스크의 플래터와 헤드(암)을 개념적으로 만들어 본 것이다.- 하드디스크의 용량 등을 계산해 보려면, 트랙, 실린더, 섹터, 헤드(플래터의 한쪽 면) 등의 개념을 알아야 하므로, 아래에서 간단하게 설명해 보겠다.

a) 트랙(Track)- 그림에서 보는 바와같이, 플래터를 동심원으로 자른 부분이다.- 트랙은 물리적인 구조라기보다는, Low-Level Format을 해야 비로소 만들어지는 논리적인 구조이다. -제일 바깥쪽이 첫번째 트랙(0번)인데, 자료를 쓰거나 찾을 때, 몇 번째 플래터 표면의 몇번째 트랙(실린더)의 몇 번째 섹터라는 순서로 찾아가므로, 그 개념을 알아둘 필요가 있다.

b) 실린더(Cylinder)- 플래터가 여러 개 있을 때, 같은 수직선 상에 있는 트랙들을 하나로 묶은 뭉치이다. 물론 플래터 하나의 양쪽면이 모두 기록면이 되는 게 보통이므로, 플래터가 하나라고 해도, 그 앞뒤쪽의 두 면의 같은 수직선 상의 트랙을 묶으면 역시 실린더가 된다.- 이렇게 트랙을 실린더로 묶어서 관리하는 것은 Head  Assembly와 관련이 있는 것 같다. 즉 헤드가 여러 개일 때, 그 헤드들은 하나로 묶어서 동시에 움직이는데(움직이는 것은 동시에 함께 움직여도 일은 각각 할 것이다), 저장하는 파일이 커서 하나의 트랙에 모두 저장할 수 없는 상태라면, 같은 플래터의 다른 트랙에 나눠서 저장하는 게 아니라, 다른 플래터에 있는 같은 수직선상의 트랙에 저장을 함으로써, 헤드를 더 움직이지 않고, 일할 수 있는 것이다.

c) 섹터(Sector)- 각각의 트랙들을 부채꼴 모양으로 다시 나눈 부분이다.- 섹터 하나는 512 Byte 크기를 가지는데, HDD의 플래터를 구분하는 최소 단위가 된다.- CMOS Bios 상 으로는 섹터 하나가 512B로 관리되지만, Windows같은 OS는 그것들을 다시 몇 개 묶어서 클러스터(Cluster)로 관리한다는 것도 알아두자(윈도우즈 버전에 따라 클러스터 크기 변화). - HDD가 작동될 때, 충격이 가해지면, 헤드에 의해서 섹터가 손상될 수도  있다. 이렇게 손상된 섹터를 (Bad Sector)라고 하는데, 베드 섹터가 발생하면, HDD에 치명적인 하자가 생길 수도 있으므로, 평소에 컴퓨터나 HDD에 충격이 가해지지 않게 조심해야 한다.

d) 헤드(Head)- 헤드에 대해서는 위의 HDD 구조에서 설명했다.- 그런데, 보통 플래터의 기록면 마다 헤드가 하나씩 있으므로 (플래터의 기록면)은 (헤드)라고 봐도 되겠다. 만일 플래터가 2 장이라면, 보통 각각의 플래터의 앞뒤면이 모두 기록면이 되므로, 그런 경우엔 기록면이 총 4 면이 되고, 따라서 헤드의 수도 4 개가 된다.- 하지만 CMOS Bios는 설계의 한계를 지니고 있어서, 트랙을 1024 개까지만 인식한단다.이래서는 요즘의 대용량 HDD를 제대로 인식할 수없다. 이런 문제를 극복하기 위해서 Head의 수를 가상으로 늘리는 기술을 사용하는데, 시스템의 정보를 알려주는  EVEREST같은 프로그램에서 알아보면, 헤드 수가 실제의 플래터의 면 수(헤드 수)와 다르게 보통 16 개로 잡히는 것은 그래서이다.

2) MBR과 부트 섹터 이야기...

a) MBR-Windows에서는 보통 하드디스크를 (MBR→ Boot Sector→ VFAT→ Root Folder → Data Area) 영역으로 구별해서 관리한다.- 여기서 MBR이라고 하는 것은 Master Boot Record의 약자로, 이것은 하드디스크의 첫번 째 위치인 0번 실린더, 0번 헤드, 1번 섹터에 존재한다.-이 위치는 고정적으로 주어지는데, 만일 파티션을 여러 개로 나눴다면, MBR의 (파티션 테이블)이라는 것에 그 정보가 기록되고, 운영체제(OS)를 여러 개 설치해서 Multi - Booting으로 쓰고 있다면, 각 OS들이 부팅되는 순서도 MBR에 기록되게 된다.

b) 부트 섹터(Boot Sector)- MBR은 파티션 보다 앞쪽에 있기 때문에 파티션 작업이나 포맷 등에서 취급되는 영역이 아니다. 파디션 작업을 하거나, 운영체제를 새로 설치하면, MBR의 정보가 바뀌기는 하지만, 그 안의 정보를 보거나 변경할 수 없다.- 그래서 첫번 째 섹터라고 하면, 부트 섹터를 말하는 것이 보통이다.- 이 부트 섹터에는 시스템이 부팅하는 데 필요한 시스템 파일들이 기록되므로, 이것이 베드 섹터가 되면 부팅이 어려워진다.


3) 용량 계산 예...

a) 현재 이 글을 쓰고 있는 내 시스탬에는 3 개의 HDD(80GB/ 200GB/ 320GB)가 설치되어 있어서 총 600GB의 용량을 쓰고 있다.- HDD 3 개에 600GB 용량이라는 소리를 들으면, 많다고 느끼는 님들도 있겠지만, 쓰는 사람은 늘 부족하다고 느끼고 있다.  500GB 짜리 HDD가 보통이고, 심지어는 1TB 짜리 HDD도 흔해진 세상이다.- 그럼 이런 HDD의 용량은 어떻게 계산되는 것일까?

b) (HDD 용량 계산)이라는 말로 인터넷 검색을 해 보면, (실린더 수x 헤드 수x 트랙당 섹터 수 x 섹터 하나의 크기(512Byte))라고 검색이 된다.- 위의 그림은 (EVEREST)라는 프로그램으로 내 시스템의 하드디스크 부분을 본 그림이다.- 3 개의 HDD 중에서 (시게이트) 사에서 만든 200GB 짜리 HDD의 정보를 보면, (실린더 수)는 (387621), (헤드 수)는 (16), (트랙 당 섹터 수)는 (63), (섹터 하나의 크기)는 (512Byte)라고 나오는데, 이걸 모두 곱한 다음에, 10의 9 승인 GB 단위로 환산해 주기 위해서 1000,000,000으로 나누면, 정확하게 200GB가 계산된다.- 그런데, 그림 f와 g를 보면, (디스크=플래터)는 2 장이고, (기록 표면=헤드)는 4 개라고 나오는데, 계산에 쓰인 b를 보면 (헤드)가 (16 개)로 잡히고 있다.- 이것은 위에서도 잠깐 말했지만, 대용량의 HDD를 인식 시키기 위해서 헤드를 가상으로 늘려줬기 때문이다(소위 LBA 모드라는 것과 관련이 있다).

c) 윈도우즈에서 HDD 용량이 조금 작게 잡히는 이유--(200GB짜리 HDD를 샀는데 186GB로만 잡혀요)라는 질문을 하는 님들이 가끔 있다. 14GB를 도둑 맞은 느낌일테니, 기분이 찜찜 한 것은 당연하다.- 이런 문제가 생기는 이유는 하드디스크 회사에서는 용량을 표시할 때, 10 진수 단위를 써서 GB로 환산할 때, 1000x1000x1000으로 나누어 줌으로써 200GB라는 용량이 계산되지만, 윈도우즈에서는 그것을 2 진수 단위로 환산하기 때문이다.- 즉 1000이라는 단위수를 2의 10승인 1024로 바꿔 써서, 200,000,000,000Byte/1024x1024x1024=약 186 Giga Byte가 되는 것이다. 즉, 좀 억울하겠지만, 윈도우즈에서160GB→149GB로, 200GB→186GB로 인식되는 건 정상이다.


 

 

'IT Story' 카테고리의 다른 글

IE8 속도, 라이브러리만 추가해도 빨라져  (0) 2009.04.10
SSD 상식  (0) 2009.04.07
각종 확장자 파일 모음  (0) 2009.03.30
해커와 크래커의 차이점  (0) 2009.03.19
윈도우 xp 블루스크린 에러코드 모음  (1) 2009.03.10