티스토리 뷰

컴퓨터 관련

하드디스크의 비밀

진리와 가치를 고루고루 2007. 11. 23. 13:03

수 많은 정보들을 거의 오류없이 정확히 저장해주고

다시 재생시켜주는 컴퓨터의 하드디스크에 대해

평소에 궁금증이 많았다.

그 조그만한 공간에 어떻게 방대한 파일들을 저장하고

또 원할 때 쉽게 찾아주는가.

그 원리도 궁금하고,

또 하드디스크 원판이 분당 7200 회를 회전한다는데

과연 그것이 가능한 속도인가도 평소에 의문이 있었다.

우연히 웹사이트에서 이에 대한 정보를 접해

여기에 옮겨 놓는다.

=== 아래내용 퍼온 내용임 ======

[컴퓨터 하드디스크] 하드 디스크 집중탐구..

다양한 백과사전

2005/05/15 10:03

http://blog.naver.com/anyray/40013125272




[ HDD 의 구조 ]

컨트롤러

여기서 의미하는 컨트롤러는 하드디스크에 있는 것으로,메인보드의 IDE컨트롤러와는 다른 것이다. 컨트롤러에 의해 스테핑 모터와 헤드를 제어하고, IDE와 통신한다. 컨트롤러는 일반적으로 하드디스크의 뒷면에 붙어 있음. 컨트롤러에는 하드디스크를 마스터로 사용할 것인지 슬레이브로 사용할 것인지 변경할 수 있는 점퍼와 전원을 연결하는 전원 연결 커넥터, 인터페이스 케이블을 연결하는 케이블 커넥터 등이 달려 있음.

Platters(디스크)


플래터(platter)는 비자성체인 비금속(알루미늄) 원판(disk) 표면에 자성체인 산화금속 막을 양면에 도장(coating)한 것이다. 이 산화금속 막을 논리적으로 나누고(partitioning) 위치를 지정(formatting)하면 정보를 저장할 수 있게 된다. 'Hard Disk Drive'란 용어는 이 드라이브가 플로피(floppy, 나풀거리는) 디스크와 달리 금속판의 딱딱한(hard) disk를 사용하기 때문에 붙여진 이름이다. 플래터의 지름은 일반 PC용이 보통 3.5"(실제 지름은 3.75")이며 이보다 더 큰 것(5.25")과 작은 것(2")도 있다. 3.5" HDD의 경우, 플래터 표면의 실제로 정보를 저장하는 공간은 바깥쪽부터 1"(약 25 mm)까지이며 그 안쪽은 플래터를 스핀들에 고정하기 위하여 사용한다. 각 플래터의 중심부에는 여러 개의 구멍내어 스핀들과 연결한다.

Spindle(회전 축)

스핀들(spindle)이란 플래터가 회전할 수 있도록 모터와 직접 연결된 축이다. 스핀들은 4 개의 볼트와 1.25" 크기의 고정용 비금속판을 사용하여 플래터를 축에 단단히 고정한다. 스핀들에 여러 장의 플래터를 설치할 때는 플래터 사이에 지름 1.25" 두께 1/8"의 스페이서(spacer)를 넣어 함께 고정한다.

Spindle Motor(스핀들 모터)

모터는 플래터를 일정한 속도로 회전시키는 장치이다. HDD용 모터는 스핀들에 직접 연결되어 있기 때문에 '스핀들 모터'라고도 부른다. HDD를 포함한 대부분의 저장 장치들을 드라이브(drive)라고 부르는 것은 디스크를 모터로 구동(drive)하기 때문이다. 모터가 달린 장치의 이름 뒤에는 거의 다 '드라이브'란 명칭이 붙는다. 플로피 디스크 드라이브, CD-ROM 드라이브, Tape 백업 드라이브 모두 모터로 구동하는 장치들이다.HDD는 모델에 따라서 3600, 4500, 5400, 7200, 10,033 RPM(분 당 회전속도)의 속도로 회전한다.

Stepping Motor(스태핑 모터)

스핀들 모터가 항상 회전하고 있는데 반해, 스테핑 모터는 헤드를 이동시키기 위해서만 사용된다. 스테핑 모터는 신호가 들어올 때마다 일정한 각도로 회전하도록 설계되어 있기 때문에 신호의 개수를 세어 회전각을 정확하게 제어할 수 있다. 따라서 정확히 원하는 실린더로 이동하기 위해 필수적인 장치이다. 스테핑 모터는 하드디스크 외에 도트 매트릭스 프린터의 헤드, 플로터의 펜, 마이크로 로봇의 바퀴를 구동하기 위해 사용된다.

Head(헤드)

헤드는 플래터 표면에 코팅된 자성체를 자화/소거하여 정보를 저장/삭제(write/delete)하거나 저장된 정보를 읽는(read) 장치이다. 일반적으로 헤드의 수는 플래터 수의 두 배이다. 한 장의 플래터는 두 개의 면이 있으므로 각 면에 하나씩 2 개의 헤드가 필요한 것이다. 따라서 3 장의 플래터로 구성한 HDD에는 모두 6 개의 헤드가 있다.헤드의 면적이 작을수록 보다 많은 정보를 플래터에 저장할 수가 있다. 현재 가장 FDD의 헤드는 디스켓 표면에 직접 접촉하여 읽기나 쓰기를 하지만, HDD의 헤드는 플래터의 표면과 미세한 간극을 유지한 채 떠있는 상태로 읽기와 쓰기를 한다. HDD의 헤드가 플래터와 접촉하여 회전하면 마찰력이 발생하여 속도가 느려질 뿐 아니라 마찰열과 헤드 및 플래터의 물리적 마모 때문에 수명이 크게 단축된다. HDD를 3-5년 이상 계속 사용하여도 쉽게 고장이 나지 않는 이유가 여기에 있다. 그러나 헤드와 플래터의 간극이 워낙 좁아서 HDD 동작 중에 물리적인 충격을 주면 헤드가 디스크와 순간적으로 직접 마찰하여 플래터 표면에 상처(scratch)를 만들 수 있으며 상처가 난 부분을 사용할 수 없게 될 가능성이 있다. 그러므로 HDD를 이동시킬 때는 반드시 전원을 끄고 디스크가 완전히 정지하여 헤드가 자동적으로 안전 지역(landing zone)에 자리를 잡은 다음에 움직여야 한다. 또한 컴퓨터가 동작하고 있을 때 본체를 흔들거나 자리를 옮기는 일은 삼가는 것이 안전하다.

Actuator(헤드 구동 장치)

액츄에이터는 헤드를 움직이는 장치이다. HDD 회로 기판으로부터 제어 신호를 받으면 actuator용 구동장치는 헤드가 부착된 암(arm)을 지정한 위치까지 이동시킨다. 헤드를 움직이는 구동장치는 linear motor(리니어 모터, 선형 모터)를 사용하는데, 이 모터는 수평으로 선 운동을 한다. 헤드가 부착된 암과 그 반대편의 코일이 감긴 모터 부분은 서로 연결되어 있으며 그 중앙에는 축이 있어 각기 반대 방향으로 움직인다. 선형 모터가 왼쪽으로 움직이면 헤드는 오른쪽으로 이동한다.

Cartridge(카트리지)

카트리지는 플래터, 스핀들 모터, 헤드, 액츄에이터를 밀봉하는 알루미늄 주물(diecast) 케이스를 말한다. 카트리지는 내부의 정밀 부품(특히 헤드와 플래터)에 먼지나 기타 이물질이 들어가지 않도록 완전히 밀폐하며 위 판과 아래 판 사이에 고무줄을 넣어 진동을 방지한다. 카트리지 재질로 알루미늄을 사용하는 이유는 가공하기 쉽고 모터에서 발생한 열을 빠르게 전도하기 때문이다.

회로기판

HDD 하부에는 회로기판(PCB)이 달려있다. PCB에는 전원용 커넥터, 신호용 커넥터, 점퍼용 핀(IDE의 single/master/slave 선택 또는 SCSI의 ID 선택에 사용), BIOS, control chip, buffer memory, LED 등 많은 부품들이 부착되어 있다. 회로기판은 방열, 수리 따위의 목적으로 노출한 형태가 많아서 동작 중에 실수로 금속 물체를 떨어뜨리거나 물을 쏟으면 고장나기 쉽다.

Track, Sector (트랙, 섹터)

플로피 디스크와 하드디스크 기록 단위의 하나로서 자기 매체에 늘어선 동심원으로 구획된 하나하나를 트랙이라 부르고 그 트랙들은 다시 섹터로 나뉩니다.

Cyinder (실린더)

다수개의 플래터의 트랙을 수직적으로 관통하는 3차원적인 스택을 말합니다.
하드용량=(헤드수) * (실린더수) * (섹터수) * (섹터당 기록용량) 보통 섹터당 512KB 동심원을 동일한 각도록 나누어 데이터를 기록할 경우 내부 섹터와 외부 섹터의 실제 기록 밀도는 상당한 차이가 있다. 즉, 안 쪽 실린더에는 길이에 비해 기록 밀도가 매우 높다. 따라서 기록 밀도가 높은 곳은 그만큼 데이터 안정석에 문제가 있을수 있음. 이런 이유 때문에 모든 섹터가 같은 길이를 갖도록 데이터를 기록하는 방식을 사용하는 것이 일반적인 추세임. 이를 위해 하드디스크의 헤드 위치에 관한 정보를 읽을 수 있는 별도의 헤드를 하나 더 사용하게 됨.

Cluster (클러스터)

섹터의 그룹이며 도스에 의해 인식되는 최소 기억단위입니다. 보통 클러스터는 2의 누승개의 섹터를 갖고 있다. 작게는 16부터 많게는 64 혹은 128개 이상의 섹터를 하나의 클러스터로 사용합니다. 그렇다면 왜 섹터를 클러스터로 묶는가? 디스크에 512바이트의 섹터 단위로 기록해도 아무런 문제가 없다. 사실 섹터 단위로 기록하면 데이터를 촘촘히 기록할 수 있기 대문에 기록 밀도는 훨씬 높아진다. 그러나 1024실린더, 16헤드. 63섹터의 특성을 갖는 하드디스크를 생각해보자 섹터 단위로 기록을 한다면 자그마치 1,032,192개의 어드레스가 필요하다. 하드디스크에 기록되는 파일은 대부분 512바이트 보다 작지않다. 따라서 512바이트 단위를 초과할 때 마다 연결된 데이터가 위치한 포인터가 필요하게 된다. 이게 무슨 뜻인가 바로 하나의 파일을 읽기 위해 수십 혹은 수 천개의 포인터를 계산하여 읽어들여야 한다는 것이다. 정리하자면 16섹터/cluster 인 하드디스크에서는 데이터를 8KB로 기록을하고 그 이하인 파일도 8KB를 차지한다.
대표적으로 윈도우 95나 98에서 2GB하드디스크를 FAT16 파일 시스템으로 포맷하여 사용하면 클러스터 크기가 32KB이다(64개의 섹터를 묶는것이겠죠)


+5VDC, +12VDC 전원 공급 ( power 스위치 on )

하드디스크 자체에서 공급 전원이 이상이 없는가 확인한다.
규정치 보다 높거나 낮은 상태 아니면 불안정한 공급 상태 등을 확인하여 이상이
있을 경우 동작을 차단한다.

하드디스크 자체 진단
power 를 포함한 불안정한 상태가 없는가 확인. 확인 후 이상이 없으면 전체를
reset 시킨다.

spindle motor start 명령을 보낸다.

spindle motor가 회전을 시작하고 약 1,000 rpm 정도 도달하면 head가 flying을
시작한다.
수초 이내에 정상 rpm에 도달하며 head는 정상 flying height를 유지한다.

정상 speed를 확인한 spindle motor control회로에서 drive control 회로로
spindle ready신호를 보낸다.

head가 landing zone에서 disk의 out쪽으로 움직이며 position calibration 및
필요한 data( servo, u-Code, special disk info. ) 를 pick up 한다.

head를 track 0로 옮기고 head가 track 0에 있음을 control부에 알린다.

head가 움직이지 않고 seek이 완료 되었음 ( seek complete )을 control 부에
알린다.

모든것이 완료되어 정보를 저장하고 주고받을 수 있는 Ready 상태가 된다

위 순서로 동작을 하게 되며 최근 출시된 HDD의 경우 약 5-7초, full height 라도 10초 이내에 끝나는 동작이며, 이 동작을 손을 하드디스크에 대고 유심히 살펴보면 정상 동작 여부를 알 수 있다.

위와 같이 power on 절차를 마치고 준비가 된 상태에서 disk로부터 사용자가 data를 얻어내는 절차는 아래와 같이 동작한다.(이해를 돕기 위하여 실제 file 명 " ACCOUNTS.EXL " 을 가지고 설명한다)

1) User가 spread sheet 상의 " ACCOUNTS.EXL " 을 작업한다.
2) user가 더 많은 data를 보기 원하여 page down key를 누른다.
3) spread sheet는 RAM안에 data를 가지고 있지 않기 때문에 운영체제에
block #6 ACCOUNT.EXL 을 요구한다.
4) operating system이 요구한 data가 있는 address로 translate한다
5) operating system이 BIOS에 block #42913을 요구한다.
6) BIOS에서 controller를 확인하고 controller에 Block #42193을 요구한다.
7) Controller에서 Block #42193을 Cyl 171, Head 3, Sec 20 으로 변환한다.
8) controller는 현재의 head 위치가 Cyl 111에 있음을 기억한다
9) contoller는 step을 계산하여 Direction In임을 결정하고 60 step pulse를 drive로 보낸다.
10) drive는 step pulse를 count하고 seek을 시작한다.
11) drive가 seek을 끝내고 목표지점 ( Cyl 171 )에 자리 잡는다.
12) drive가 seek이 완료 되었음을 controller에 알린다.
13) controller가 drive가 Seek Complete 가 되었음을 확인하고 head를 선택한다.
14) controller가 drive에서 읽어낸 ID field가 찾고자 보낸 지점과 일치하는지를 확인한다.
15) controller에서 ID를 확인 한 후 drive에서 읽어낸 data를 buffer로 보낸다.
16) controller에서 error가 있는가 확인하고 ( ECC ) error가 있으면 error를 handling 한다.
17) data를 computer로 보낸다.
18) controller에서 BIOS로 요구한 data가 전송되었음을 알린다.
19) BIOS에서 operating system에 모든 임무가 완료 되었음을 알린다.
20) operating system이 spread sheet에 임무가 완료 되었음을 알린다.
21) spread sheet의 screen상에 data를 출력한다
22) user는 다음 일을 계속한다.

MFM(Modified Frequency Modulation) 방식

이 방식은 XT급 컴퓨터에 주로 장착되어 사용되던 방식으로 1970년경 씨게이트사에서 개발된 방식이다. 이 방식은 다른 말로 ST-506/412라고도 불린다. 또한 드라이브가 트랙당 17섹터, 각 섹터당 512Byte의 데이터를 저장한다. 이 방식은 특히 데이터가 기록될 때 1비트의 오류 비트(패리티 비트)를 함께 기록하므로 그 만큼 기록공간이 적어지며, Read/Write 시간이 길고 전송속도(Baud rate)가 떨어지는 단점이 있다. 이 방식을 사용한 하드디스크는 2개의 케이블로 연결되어 있다. 따라서 자신의 하드디스크가 2개의 케이블로 연결되어 있다면 MFM방식의 하드디스크로 보아야 할 것이며, 이제는 거의 사용되지 않는다.

ESDI(Enhanced Small Device Interface) 방식

이 방식은 MFM방식에서 조금 확장된 방식으로 Maxtor사가 주체가 되어 1980년 초기에 개발한 방식으로 초당 전송률은 10 ~ 15MB 정도이며, 국내에서는 별로 사용되지 않는 방식이다. 이 방식의 장점은 디지털과 아날로그 신호를 변환하는 회로가 하드디스크에 탑재되어 있으며, 하드디스크와 인터페이스 카드 사이의 모든 명령과 반송을 16bit의 데이터와 1bit의 패리티로 처리하고, 1:1의 인터리브가 지원되므로 그 만큼 전송 속도가 빠르다고 할 수 있다.

AT-BUS(IDE) 방식

이 방식은 다른 용어로 IDE방식(Intergrated Drive Electronnics)이라고 하며, 값이 싸고 성능도 뛰어나기 때문에 현재 가장 많이 사용되는 하드디스크의 인터페이스 방식이다. 이 방식은 하나의 컨트롤러에 드라이브의 기능이 집합되어 있으며, 입출력되는 버스라인의 비트수에 관계없이 처리하므로 하위 기종에서부터 고급기종까지 두루 사용할 수 있고 또한 가격이 저렴하다는 장점을 지니고 있다. 2대만을 장착하고 성능이 느린 것을 보안한 EIDE가 현재 주종이 되고 있는데 그리고 최근 Ultra ATA, DMA 를 이용한 33MB/sec , 66MB/sec를 이용한 전송 속도의 증대를 기대하고 있어서 각광받고 있는 SCSI방식의 인터페이스와 어느정도의 경쟁을 할 만하다고 보고 있다.

SCSI(Small Computer System Interface - 스카시) 방식

이 방식은 이름이 의미하듯 소형 컴퓨터가 주변 장치를 컨트롤 한다는 것이다. 종래의 인터페이스 방식과는 다르게 시스템의 모든 주변장치 제어를 하나의 컨트롤러에 최대 7개까지 컨트롤할 수 있다. 따라서 AT-BUS 방식등과 같이 하나의 인터페이스 카드가 하나의 드라이브를 컨트롤 하는 것과는 달리 한꺼번에 관리하므로 메인보드내의 슬롯을 그 만큼 풍족하게 사용할 수 있는 장점도 있다. IDE는 CPU가 데이터를 받는동안 다른 작업을 할 수 없으나, SCSI는 다른 작업을 할 수 있다. 물론 최근의 EIDE 컨트롤러에는 이런 기능, 즉 버스 마스터링 기능이 추가됐으나 SCSI 만큼 뛰어나지는 못하다.

컨트롤러 타입

지원하는 장치수

지원하는 장치 타입

데이터 전송 속도

IDE

2개

하드디스크, CD-ROM드라이브

2~3MB/s
PIO0 모드 : 3.3MB/s

EIDE

4개

EIDE 방식 드라이브

PIO3 : 11MB/s
PIO4 : 16MB/s

SCSI-1

7개

하드디스크, CD-ROM드라이브,
스케너

5MB/s

SCSI-2

7~15개

하드디스크, CD-ROM드라이브,
스케너, 이동형 드라이브,
광학 드라이브

패스트 SCSI-2 : 10MB/s
패스트 와이드 SCSI-2 : 20MB/s

SCSI-3

7~15개

하드디스크, CD-ROM드라이브,
스케너, 이동형 드라이브,
광학 드라이브

40~80MB/s

CPU점유율이 낮은 SCSI

전송 속도와 함께 차이가 많이 나는 것이 CPU 점유율이다. 윈도우 98같은 멀티태스킹 운영체제에서는 CPU점유율이 상당히 중요하다. 즉 멀티태스킹을 할 수 있냐 없냐의 차이가 된다. CPU점유율이란 디스크를 읽거나 쓸 때 CPU의 부담이 어느 정도인가를 나타내는 것이다. CPU 점유율이 높으면 디스크를 사용하는 동안 다른 작업을 수행할 수 없고, 낮을 경우는 컴퓨터가 하드 디스크를 사용하는 동안에도 CPU는 다른 작업을 수행할 수 있는 것이다. EIDE의 경우 하드 디스크를 통해 자료를 읽거나 쓸 때 CPU에 의해 스거나 읽기가 진행된다. 그래서 CPU 점유율이 90% 정도로 매우 높아진다. 그러나 SCSI를 사용하면 대다수의 작업을 SCSI 호스트 어댑터의 또 다른 작은 컴퓨터가 자료의 읽기와 쓰기 일을 하기 때문에 CPU 점유율이 30%에 불과하다. 그만큼 다른 부가 작업을 원활하게 할 수 있다는 것이다. 이와 같은 현상은 윈도우를 사용할 때 큰 파일을 복사해 보면 금방 느낄 수 있다. SCSI를 사용할 경우 파일을 복사하는 중에 다른 작업을 수행하더라도 느린 것을 느끼지 못하지만, EIDE를 사용해 파일을 복사하면서 다른 작업을 수행하면 컴퓨터가 갑자기 느려지는 현상을 보게 된다.
이러한 차이는 바로 CPU 점유율 차이에서 비롯된 것이다. 그러나 이런 환상적인 SCSI도 가격에서는 힘을 쓸 수 없다. EIDE컨트롤러는 메인보드에 탑재해도 메인보드 가격이 차이가 나지 않을 만큼 저렴한데 비해, SCSI는 적어도 10~20만원의 추가금이 들어야 한다. 뿐만 아니라 여기에 장착해서 사용하는 SCSI장비도 EIDE장비에 비해 2배정도 비싸다. 그리고 하드 디스크도 SCSI가 2배이상 비싼편이다. 그러므로 많은 사람들은 SCSI대신 더 빠른 CPU를 생각하게 된다.


1. 하드디스크의 인식모드

IDE방식의 하드 디스크는 CHS(NOMAL), LARGE, LBA의 3가지 인식 모드를 사용하는데, 대용량 하드디스크에서는 LBA 모드로 설정해야 한다.

CHS (NORMAL)

하드디스크의 섹터와 실린더의 실제 주소위치에 대응해서 데이터를 찾는 방식이다. 단점으로는 제일 안쪽 실린더와 최외곽 실린더의 면적이 다른데도 불구하고 같은 수의 섹터를 가져야 한다. 이 모드는 하드디스크의 용량을 최대 518MB까지 인식할 수 있다. 현재는 이 방식으로 작동하는 하드디스크는 생산되고 있지 않다.

LARGE

CHS방식의 한계를 극복하기 위해 CHS의 값을 바이오스가 허용하는 최대값까지 늘려 사용하는 방식이다.
실린더의 수는 반으로 줄이고 헤드의 수를 두배로 증가시키는 방법을 사용한다. 단, 섹터수는 변하지 않는다.
이 방법은 하드디스크의 용량을 최대 8GB까지 인식시킬 수 있으나 LBA방식에 밀려 초기에 사용되다 지금은 사용 되지 않고 있다.

LBA

CHS방식의 제한인 528MB인식제한의 한계를 극복하기 위해 하드디스크의 주소 지정방식을 실제위치에 의한 방식이 아닌 가상으로 지정하는 방식을 사용하고 실제위치는 바이오스가 번역해서 운영체제나 소프트웨어가 인식할 수 있게 한 방식으로 이 방식은 바이오스가 정확히 지원해 주어야 제대로 사용 할 수 있다.
대용량 하드디스크를 인식하기 위한 방식으로, 둘이상의 실린더를 하나의 실린더로 인식하고, 실린더당 섹터수는 63으로 고정시키고, 헤드 수를 증가 시키는 방법을 사용한다.

하드디스크 인식 모드에 따른 인식 결과의 변화

용량

인식 모드

헤드 수

실린더

섹터 수

333MB

NORMAL

15

1011

44

LBA

32

330

63

LARGE

30

505

44

1.04MB

NORMAL

16

2112

63

LBA

64

528

63

LARGE

32

1056

63


2. 하드디스크의 인식제한


504MB or 528MB
바이오스에서 인식할 수 있는 하드디스크 파라미터의 최대값을 다음과 같이 정했다. (CHS)


Cylinder

Head

Sector

섹터한개의 용량

인식할 수 있는 최대 용량

1023

16

63

512B

504MB(1MB=1024KB)
528MB(1MB=1000KB)

CHS방식의 인식의 한계를 해결하기 위해 등장한 방식이 LBA, LARGE 방식이다.

2.1GB
과거의 일부 바이오스는 CMOS램안에 하드디스크의 실린더의 최대용량을 12비트밖에 기록할 수 없었다. 여기서 생긴 인식
제한으로서 이 값은 다음과 같다.


Cylinder

Head

Sector

섹터한개의 용량

인식할 수 있는 최대 용량

4095

16

63

512B

2.1GB

이러한 구형 메인보드에 2.1GB 보다 큰 하드디스크를 장착하면 부팅이 중단되거나 일부 메인보드에서 429MB로 인식하는
현상을 보인다.

3.2GB
PHOENIX 바이오스 버전 4.03과 4.04에서 발생했던 버그로서 시모스 셋업시에 3.277GB보다 큰 용량의 하드디스크를 인식시키면 시스템이 멈춰 버리는 현상을 보인다.

4.2GB
LARGE 방식의 하드디스크는 헤드 수를 배수로 증가시켜 인식제한을 해결하는 방법으로 사용되나 도스와 윈도우95는 헤드
수를 16으로만 인식하게 되어 있어서 생긴 인식제한.


Cylinder

Head

Sector

섹터한개의 용량

인식할 수 있는 최대 용량

8192

16

63

512B

4227858432 byte


7.9GB
LARGE방식에서 하드디스크 인식의 최대값을 다음과 같이 바이오스에게 인식시킨 메인보드에서 발생하는 인식제한.

Cylinder

Head

Sector

섹터한개의 용량

인식할 수 있는 최대 용량

1024

240

63

512B

7927234560 byte


8.4GB
CHS방식의 인식제한을 해결하기 위해 도입된 방식으로 하드디스크 인식의 최대값을 다음과 같이 사용하게 되었다.
(LBA방식)


Cylinder

Head

Sector

섹터한개의 용량

인식할 수 있는 최대 용량

1024

255

63

512B

8422686720 byte


33.8GB
하드디스크 인식의 최대값을 다음처럼 사용하는 메인보드에서의 하드디스크 인식제한.


Cylinder

Head

Sector

섹터한개의 용량

인식할 수 있는 최대 용량

65536

16

63

512B

33.8GB

64GB
윈도우95/98/98SE에서 하드디스크 용량이 64GB이거나 이보다 큰 경우 FDISK가 실행이 안된다. FDISK는 디스크의 용량을
계산할 때 내부적으로 16비트로 계산하는데 이때 비트 오버플로우가 발생하는 버그가 있다.
70GB의 하드디스크를 FDISK에서 6GB로 인식한다. 마이크로소프트에서 패치를 다운로드 해서 해결.

137GB
ATA 규격에 의해 발생하는 인식제한이다. ATA규격에 의한 하드디스크 인식의 최대값은 다음과 같다.


Cylinder

Head

Sector

섹터한개의 용량

인식할 수 있는 최대 용량

65536

16

255

512B

137GB

단일 하드디스크의 용량으로는 비교적 최근에 이정도 용량에 가까운 하드디스크가 판매되기 시작되고 있고 가까운 장래에
이 용량의 인식제한이 일반화 될 전망이다.

3. 일반적인 해결방법

1. 많은 인식제한이 바이오스에서 정확하게 인식하지 못해 생긴 제한사항이므로 이 경우 바이오스 업그레이드로 해결이 가능하다.

2. 해당 하드디스크 제조회사에서 제공하는 하드디스크 인식프로그램을 사용해서도 인식이 안되는 문제를 해결 할 수 있다.
이 경우 하드디스크를 포맷하면 인식프로그램을 다시 설치해야 하는 경우도 있다.

3. 메인보드 제조회사의 패치를 이용해 해결해야 하는 경우도 있다

파일시스템

파일 시스템을 하드디스크나 플로피디스크 등의 기록 매체에 파일을 기록하는 방법으로 운영체제와 매체에 따라 달라진다. 운영체제에 관계없이 CD-ROM은 CD파일시스템(CDFS)을 사용하고, 플로피디스크는 FAT파일 시스템을 사용한다.

FAT(file allocation table)파일 시스템은 파일 할당표에 파일에 대한 인덱스가 기록되어 있는 방식으로 FAT12, FAT16, FAT32파일 시스템이 있다. FAT 다음에 붙어 있는 숫자는 파일에 대한 정보를 기록하는 단위를 의미하는 것으로 각각 12비트, 16비트, 32비트를 의미한다. FAT16 파일시스템을 보통 FAT파일 시스템이라 한다. FAT32파일 시스템을 사용하면 최대 2TB볼륨을 만들수 있고 8GB이하의 볼륨에서는 4KB단위의 클러스터를 사용하기 때문에 FAT16에 비해 하드디스크를 훨씬 더 효율적으로 사용할 수 있다.

하드디스크 볼륨 크기별 클러스터 크기 비교표

하드디스크용량

클러스터크기

FAT16

FAT32

디스켓

0.5KB

사용불가

17~128MB

2KB

사용불가

129~256MB

4KB

사용불가

257~512MB

8KB

사용불가

513MB~1GB

16KB

4KB

1~2GB

32KB

4KB

2~8GB

사용불가

4KB

8~16GB

사용불가

8KB

16~32GB

사용불가

16KB

32~2048GB

사용불가

32KB

하드 디스크 셋팅

새 하드디스크는 이전의 시스템에 있는 하드디스크에 교체될 수 도 있고 추가될 수도 있다. PC의 핵심인 드라이브 인터페이스는 요즘은 거의 대부분 E-IDE(Enhanced Intergrated Drive Electronics)나 이전의 IDE(Intergrated Drive Electronics )를 사용한다. SCSI 콘트롤러는 속도가 빠르나 가격이 비싸며, 호환성이 떨어진다.

IDE콘트롤러는 한번에 두개의 드라이브를 조정할 수 있다. (E-IDE는 4개의 드라이브를 설치할 수 있다.)
두개 이상의 드라이브가 설치될때는 '마스터'(master)와 '슬레이브'(slave)로써 설정되어져야 한다.
슬레이브 드라이브는 자체의 비활동의 콘트롤러를 가지고 있으며 마스터 드라이브 위에 있는 콘트롤러에 의해 조정된다. (마스터 >슬레이브) 가장 빠른 드라이브를 마스터 드라이브로 하는것이 좋다.

E-IDE를 사용하는 신형의 마더보드로 두개 대신 4개의 드라이브를 운영할 수 있게되었다. 마스터와 슬래이브의 두가지 세트로 된 다른 두개의 IDE "채널" 이 생기게되는 것이다. 마더보드에 두개의 IDE 커넥터를 가지고 있다면, 최대4개의 IDE드라이브(또는 그 이상, IDE 디바이스, 시디-롬 포함)를 설치할 수 있다.
드라이브의 설정은 점퍼를 이용한다. 점퍼는 전기적 결합을 만든다. 만일 하드드라이브 매뉴얼을 갖고 있다면 혹은 하드디스크 자체에 점퍼 코드가 있다면 - 대부분의 하드가 표시되었다. - 드라이브의 점퍼를 설정하여 두개의 하드디스크를 설치할 수 있다. 만약 이 두가지가 없다면 제조회사 A/S팀에 문의를 하면 알 수 있다.


ATA 방식의 인터페이스

ATA는 PC 환경에 있어서 가격 대비 성능을 주도하는 인터페이스로 가장 널리 쓰이고 있다. ATA 분야는 초창기 IDE가 등장한 이후 많은 변화를 보여왔다. 이러한 변화를 주도한 것이 EIDE이다.( EIDE는 W/D사의 마케팅 프로그램으로 개발된 것이다.) ATA는 ATA-2, ATAPI, Fast-ATA 순서로 표준이 만들어졌으며, 이 가운데 Fast-ATA는 W/D의 EIDE와 유사한 것으로 시게이트와 퀀텀에서 만들었다.

ATA

ATA는 AT-BUS 또는 IDE라고 하며 일반적으로 AT방식이라고 말한다. 하지만 이들 명칭 가운데 ANSI 표준 규약에 따른 정확한 명칭은 ATA(AT Attachment)이며, IDE(Integrated Drive Electronics)는 ATA 방식을 고안한 회사명이다. ATA가 고안되던 시기까지 사용되던 인터페이스는 ST-506이었으며, 이 인터페이스 드라이브들은 별도의 외부 컨트롤러를 써야 했으므로 가격이 높았고, 신호 전송 시 노이즈가 생기는 문제를 안고 있었다. 반면 ATA는 디스크 컨트롤러를 드라이브 내에 내장시켜 인터페이스를 간단하게 만들었으므로 상대적으로 저렴한 가격으로 인터페이스를 만들 수 있었다. 이처럼 컨트롤러와 드라이브가 통합되면 전체 부품 수가 줄어들기 때문에 신호 전달 체계 역시 짧아진다. 이것은 상대적으로 긴 신호 전달 체계에서 발생하는 노이즈 문제를 해결해주기 때문에 전체 데이터의 신뢰성도 증가시킬 수 있었다. 또, 칩을 통합했기 때문에 펌웨어를 개발하기가 쉬워졌다.
ATA 인터페이스는 이처럼 개발이 용이하고 데이터 신뢰성이 높으며 가격이 저렴하다는 장점을 가졌기 때문에 1980년대 후반에 가장 많이 쓰이는 인터페이스가 되었다.

ATA-2

1990년대에 들어서 각종 소프트웨어가 차지하는 크기, 데이터를 저장하는데 필요한 공간이 증가함에 따라 기존의 ATA 인터페이스로는 한계에 부딪히기 시작했다. 이런 문제는 하드디스크의 성능 개선과 함께 인터페이스의 확장 또는 새로운 인터페이스의 개발을 요구하게 되었다. 그 결과 ANSI 산하의 SFF(Small Form Factor Committee)에서 ATA의 확장 규격인 ATA-2를 제정했다.
ATA-2는 기존의 ATA가 가지는 느린 전송 속도를 개선한 ATA 호환 확장 규격으로 데이터 전송을 빠르게 하기 위해 Fast PIO(PIO mode 3, 4) 지원과 DMA 사용을 담고 있다. 여기에 Drive Indentification Command 개선과 함께 PnP 지원을 위한 하드디스크 자동 인식 기능이 포함되었다. 이때부터 이러한 기능이 BIOS에 추가되기 시작했으며, 새로운 섹터 지정 방법인 LBA를 지원하게 되었다

ATA-3

ATA-2의 수정 표준안인 ATA-3는 Security와 더 빠른 전송 기능을 가지는 호환 확장 규격으로 데이터 신뢰성(Integrity)과 PIO mode 4 지원, 더욱 정교해진 전원 관리, SMART 기능 등이 추가되었다. DMA mode 3 방식을 이용할 경우 20∼30MB/s의 전송 속도를 가진다.

ATAPI(ATA Packet Interface)

ATA가 가지는 단점 가운데 하나는 이 인터페이스가 단지 하드디스크만을 위해 만들어졌다는 것이다. PC가 단지 FDD와 저용량 하드디스크만 장착하고 있다면 문제가 없겠지만, 1990년대에 들어오면서 자리잡기 시작해 지금은 필수 저장장치가 되어버린 CD-ROM 드라이브를 비롯해 다양한 보조 저장장치의 필요성이 대두됨에 따라 ATA가 가지는 단점은 한계에 달했다.
ATAPI는 기존의 ATA가 가지는 단지 하드디스크만을 위한 인터페이스라는 단점을 보완한 것으로 ATA 인터페이스를 가지는 하드디스크 이외의 가지는 장치를 지원한다. 이 규격에 따르는 장치를 사용할 경우 장치의 인터페이스가 ATA 인터페이스가 가지는 장점을 모두 가질 수 있으므로 저렴한 가격에 거의 모든 PC에서 사용할 수 있다.

Fast-ATA

Fast-ATA는 시게이트와 퀀텀에서 제안한 것으로 ATA가 가지고 있던 제약 가운데 데이터 전송률과 528MB라는 용량 제한을 개선한 것이다. 하지만 이 규격 역시 ATA의 연장선상에 있으므로 단지 하드디스크만 사용할 수 있다는 제약이 있어 현재는 사용하지 않는다.
Fast-ATA는 ATA 표준 규격의 연장이라는 점에서 장점을 가지며, 기존의 ATA 전송 속도의 2배가 넘는 13.3MB/s의 전송 속도를 가진다. 이 방식에 의한 하드디스크는 자체적으로 제어가 가능하여 싼 가격에 인터페이스를 만들 수 있으며 펌웨어를 개발하기가 편리한 장점이 있다.

Ultra-ATA

Ultra ATA/DMA33

ATA 인터페이스는 오늘날 사용하는 90%이상의 PC에서 데이터를 디스크 드라이브 버퍼와 메모리로 옮기는 인터페이스로 사용하고 있다. ATA-2 규격의 인터페이스는 16.7 MB/s의 전송률을 가진다. 시스템 부팅이나 큰 프로그램을 로딩할 때 순차적인 데이터 전송으로 인하여 발생하는 병목현상을 피하기 위해서는 전송속도의 비율에 맞추어서 내부데이터 전송률의 개선도 함께 이루어질 필요가 있었다. 디스크 내부 데이터는 플래터의 선밀도와 회전속도에 의존하기 때문에 회전속도의 증가는 내부데이터의 속도를 증가를 가져올 수 있었다. 특히 멀티미디어 프로그램에서 파일 크기의 증가와 디스크 최적화시의 순차 쓰기 기능은 큰 파일 전송률에 큰 영향을 미치게 된다 .
Fsat ATA에서 내부 데이터 전송률의 증가는 디스크 드라이브의 버퍼가 빠르게 채워진다는 것을 의미한다. Fast ATA에서는 데이터를 읽는 동안 디스크가 지연시간을 가지지만, Ultra ATA 는 데이터 지연시간을 제거함으로서 타이밍 간격을 개선했다. 하지만 I/O가 전체 시스템의 병목현상을 만들기 때문에 CPU 대역폭 증가에 하드의 전송률을 맞추기 위해 새로운 형태의 규약이 필요하게 되었다.
ATA-2에서 스트로브가 올라갈 때만 데이터를 전송할 수 있는 것은 프로세서가 디스크 컨트롤러에 명령을 보내 처리하는 시간이 필요하기 때문이다. 하드디스크는 인터페이스의 컨트롤러인 호스트가 보내는 스트로브(STROBE) 신호를 기다려야 한다. 다시 말하면 데이터를 버스에 보낸 뒤에 버스에서 이용해도 좋다는 허락이 떨어질때까지 기다려야 한다.
그러나 울트라 ATA는 응답을 요청하는 쪽에서 지금 버스가 놀고 있는지 확인한 후에"버스가 놀고 있으니 내가 사용할께"하고 프로세서의 허락이 떨어지기 전에 데이터 전송을 시작한다.
즉 호스트에서 보내는 스트로브(STROBE)를 기다리는 시간(전송지연,Propagation delay)과 버스에 데이터를 실어 보내기 전에 걸리는 시간(데이터 희귀시간 지연)을 모두 없애 버스 전송속도를 늘린 것이다.
물론 디자인 구조를 거의 바꾸지 않았기 때문에 기존 하드디스크나 메인보드와 호환되며 따로 케이블을 바꿀 필요가 없으므로 추가 비용도 들지 않는다.
또한 타이밍 간격의 개선과 CRC(Cyclical Redundancy Check)라는 새로운 에러 보정 방식을 이용하여 데이터 보존력을 높였다. 또한 울트라 DMA 프로토콜은 현재 사용하는 ATA 하드디스크와도 호환성을 가진다. 즉 울트라 ATA는 버스마스터링의 발전된 형태로 퀀텀에서 제안한 스팩이다.ATA-3과 ATA-5 표준 사이의 다리 역할을 한다는 점에서 Ultra SCSI와 유사한 면을 가지며 ATA의 확장된 전송 규약으로 DMA 모드2의 2배에 달하는 33MB/s의 대역폭을 가진다.

Ultra ATA/DMA66

울트라 DMA33이 나온지 2년 정도 지났지만 내부적인 속도 개선을 쉽지 않았기 때문에 지금의 하드디스크 기술은 프로토콜의 제한속에서 최적화하는 방법을 택했다. 그 결과로 만들어진 것이 울트라 DMA66이다. 울트라 DMA66의 목적은 시스템 성능에 병목 현상을 일으키는 디스크 읽기 채널의 전송률을 높임과 동시에 CRC(에러 검증 및 정정)을 통해서 데이터의 신뢰성을 높이는데 있다. 또한 프로토콜의 하위 호환성을 위해서 케이블만 바꾸는 최소의 장비 교체로 가능하도록 설계되었다.
케이블 역시 40핀은 그대로 사용하지만 라인이 두배로 늘어서 모두 80개의 선을 사용한다. 더해진 40개의 라인은 모두 그라운드 기능을 하며, 이 선으로 신호가 전송되는 것은 아니다. 울트라 DMA66은 울트라 DMA33의 전송 사이클을 두 배로 늘려, 데이터 신호중에서 셋업과 홀드 시간을 없애면서 신호 보존 능력을 높이게 된다. 그러나 이것은 버스트 모드에서만 적용되며, 반드시 케이블은 80핀이어야하고 전체길이는 18인치, 드라이브 사이는 6인치가 넘으면 안되는 제한이 있다 .당연히 케이블이 길어진다면 데이터를 읽을 때 에러가 발생할 소지가 높아진다.

ATA INTERFACE의 발전과정

- PIO(Progrmmed Input Output) Timing


PIO

Mode 0

Mode 1

Mode 2

Mode 3

Mode 4

CYCLE TIME(MIN)

600 ns

383 ns

240 ns

180 ns

120 ns

- Multiword DMA (Direct Memory Access) Timing

Multiword

Mode 0

Mode 1

Mode 2

Cycle Time(min)

480 ns

150 ns

120 ns


EIDE

인텔 프로세서의 고속화와 함께 내부 인터페이스가 ISA에서 PCI로 발전함에 따라 하드디스크와 그 인터페이스인 ATA의 한계가 나타나기 시작했다. 이러한 한계는 ATA가 근본적으로 가지는 몇 가지 제한사항에서 비롯된 것이며, 그 제한사항은 다음과 같다.

▶ 528MB 이상의 용량을 PC에서 인식하지 못한다.
▶ 2대 이상의 하드디스크를 연결할 수 없다.
▶ 하드디스크 이외의 장치를 쓸 수 없다.
▶ 최대 전송속도가 3.3MB/s(PIO mode 0) 이하이다.

이와 같은 한계점은 고속화되어 가는 내부 전송속도와의 성능 격차를 심화시키게 되었으며, 이를 극복하기 위한 새로운 인터페이스가 절실히 필요하게 되었다. 여기에서 등장한 것이 EIDE 방식이다.

IDE

EIDE

용량제한

528MB

PIIX2 이전 : 8GB
PIIX3 이후 : 제한 없음

연결 가능 장치 수

2

4

PIO Mode

0,1,2

3,4

EIDE의 특징 (1)

528MB 용량 한계 극복 - ROM BIOS의 TABLE 변형

기존의 ATA 인터페이스가 528MB 이상의 하드디스크를 인식할 수 없었던 것을 ROM BIOS와 하드디스크에서 어드레스 지정 방식을 변경하여(LBA) 최대 8.4GB까지의 용량을 사용할 수 있게 되었다.

BIOS와 ATA 규격은 다음이 최대 사양이다.

▶실린더 : BIOS 1024, ATA 65536
▶헤드 : BIOS 255, ATA 16
▶섹터 : BIOS 63, ATA 255

따라서 실제로 양쪽에 모두 만족하는 실린더수 1024, 헤드수 16, 섹터수 63인 하드디스크가 ATA 하드디스크에서는 최대 용량(528MB)이다.
528MB 이상을 사용하기 위한 방법으로는 OS 자체가 BIOS의 하드 변수 테이블을 거치지 않고서 직접 ATA 하드디스크를 액세스하는 방법 , 시스템의 BIOS에서 ATA 하드디스크의 변수를 BIOS 안에 들어가도록 변환(translation)하는 방법(LBA) , Ontrack사의 디스크 매니저를 사용해 소프트웨어적으로 변환하도록 하는 방법 등이 있다. 이러한 방법은 PIO mode 1∼3에서 사용한 방법이다.
ROM BIOS와 하드디스크 사이에는 LBA를 이용하여 528MB의 벽을 허물었다고 해도 DOS나 Windows에서는 LBA를 알지 못하고 여전히 실린더 수는 1024 이상을 넘지 못했기 때문에 528MB의 한계를 완전히 극복했다고 하지는 못한다. DOS에서는 약간의 편법을 이용하여 이를 알려주는데, 이는 하드디스크상의 제약으로 ROM BIOS가 반밖에 이용하고 있지 못하는 헤드의 나머지 4개 비트를 이용하는 것이다.
528MB라는 용량 한계를 극복하기 위해서 몇몇 업체에서는 사용자가 하드디스크 자동 환경설정을 했을 경우 하드디스크로부터 변수를 캡쳐하여 실린더수가 ROM BIOS가 지원하는 1024보다 클 경우 이를 헤드값으로 보상하여 주는 방법을 사용한다.
예를 들어 하드디스크가 자신의 기본 실린더 수를 1086, 헤드를 16, 섹터를 63으로 보고하였을 경우 ROM BIOS는 이를 다시 실린더 543(1086/2), 헤드 32(16×2), 섹터 63으로 변경하여 저장한다.
도스가 인터럽트 13의 펑션 8번 Read 변수를 부르게 하면(Call) ROM BIOS는 변형된 값을 넘겨주어 도스로 하여금 최대 8GB까지의 공간을 관리해줄 수 있게 한다. 이 경우 ROM BIOS가 가지고 있는 헤드값 32는 하드디스크의 상한선을 넘어서기 때문에 ROM BIOS는 드라이브 변수를 위와 같이 유지시키면서 하드디스크 억세스시 어드레스를 다시 하드디스크가 받아들일 수 있는 값으로 변환하여 하드디스크를 억세스하게 된다. 이때 변환하는 방법에 따라 LBA나 CHS로 하드디스크를 억세스할 수 있게 되는데 LBA를 지원하지 않는 하드디스크도 있음을 염두에 두어야 한다.

EIDE의 특징 (2)

Dual ATA 채널

W/D에서는 기존의 ATA가 단지 2개의 장치만을 장착할 수 있는 한계를 극복하기 위해 EIDE 규격에 다음과 같은 것을 확장하기로 제안하였다. 원래 IBM AT PC는 다음과 같이 두 개의 하드디스크 컨트롤러 카드를 사용할 수 있게 설계되었다.

Controller

I/O Address

Hardware Interrupt(IRQ)

Primary

1f0h-1f7h, 3f6h-3f7h

14

Secondary

170h-177h, 376h-377h

15

ATA 인터페이스는 2개의 장치만을 사용할 수 있었지만, EIDE에서는 초기의 ATA 규격에서 사용하던 I/O Port의 Secondary 채널을 위해서 준비되어 있는 특정 어드레스를 사용하여 4개의 주변장치를 연결할 수 있게 하였다.
이것은 지금의 Master, Slave 구조를 감안하지 않고, 단지 Primary에는 첫 번째 하드디스크를, Secondary에는 두 번째 하드디스크를 연결한다는 생각으로 설계되었다. 하지만 하드디스크는 하나의 어드레스를 두 개의 장치가 공동으로 각기 다른 시간에 이용하는 방법인 Master, Slave 방식으로 고정되어왔다. 따라서 이전까지의 BIOS, 하드디스크, 컨트롤러 카드는 모두 Primary 영역만을 지원할 수 있도록 설계되어 있어서 사실상 Secondary는 쓰지 않는 영역이 되었다. 이 영역을 활용하는 것은 하드웨어적인 측면에서도 매우 간단해서 Primary 영역의 어드레스를 디코딩하는 회로 및 40핀 커넥터만 있으면 되었기 때문에 나중에 발표된 고급 PC나 수퍼 I/O 카드의 경우 하드디스크를 연결하는 40핀 커넥터가 하나가 아닌 두 개인 경우도 있다. 이러한 환경에서는 하드디스크를 4개까지 물려 사용할 수 있음은 물론 이 인터페이스를 지원하는 CD-ROM을 비롯한 기타 장치도 쓸 수 있다.
또, 하나의 채널만 있을 경우 하드디스크를 두 개 물려 사용한다고 해도 한 번에 단 하나의 명령만 적용될 수 있기 때문에 두 개의 하드디스크가 동시에 동작할 수 없다. 반면 두 개의 채널을 각각 따로 하드디스크를 물려 사용하는 경우라면 동시에 두 채널로 명령이 적용될 수 있기 때문에 두 개의 하드디스크가 동시에 동작할 수 있다. 이 경우 다른 하드디스크가 데이터를 읽고 쓰는 시간에 대기할 필요가 없으므로 전체 작업 속도가 빨라지게 된다.
따라서 하드디스크와 저속 ATA 장치를 동시에 사용할 경우에는 저속 ATA 장치로 인해 하드디스크가 기다리지 않도록 각각 다른 채널에 물려 사용하는 것이 속도상으로 유리하다.

E-IDE의 특징 (3)

ATA 인터페이스 이용 보조 저장 장치

W/D에서는 ATA를 확장한 ATAPI를 제안하였다. 이것은 BIOS 수정을 필요로 하며 초기 부팅시(Post 동작시) ATAPI Identify Device라는 명령으로 장치를 확인할 수 있도록 한다. 즉, 2개의 하드디스크와 하나의 CD-ROM 드라이브를 비롯한ATA 방식 저장 장치를 하드디스크에 연결하여 사용할 수 있어 별도의 인터페이스 없이 보조 저장 장치를 이용할 수 있다.

E-IDE의 특징 (4)

데이터 전송률의 고속화

ATA에서 데이터를 전송하는 데에는 PIO와 DMA를 통하는 두 가지 방법이 있다. 이전의 IBM AT의 경우 자체에 내장된 DMA 컨트롤러가 가지는 최대 전송속도가 2MB/s인 관계로 PIO쪽이 속도가 더 빨라 PIO를 사용하는 방법이 쓰였다. 그러나 새로운 버스에서 Type B DMA와 PCI에서 지원되는 Type F DMA를 사용하면 최대 전송속도가 각각 4MB/s(Type B)와 8MB/s(Type F)로 높아진다. 단, Type B와 F의 DMA를 지원하기 위해서는 별도의 드라이버를 띄우거나 BIOS 변경이 필요하다.
그리고 PCI에서는 EISA나 MCA에서와 같이 scatter/gather라는 새로운 DMA 전송이 지원된다. 이것은 가상메모리 기법(Chat를 드라이버로 만드는 것)을 사용하는 OS에서 하드디스크의 여러 군데에 쓰여질 내용을 한 번에 4개씩 묶어서 전송하는 것으로 성능 향상을 가져올 수 있다.
VL(VESA Local) 버스에서는 BPIO라는 방법이 사용되었는데, 이것은 여러 개의 블록을 하나로 묶어서 한 번에 전송하는 것으로 전송속도가 6.67MB/s에서 최대 10MB/s(내부 캐시가 적중해서 버스트 전송이 가능할 경우 - 하드디스크에 쓰고자 하는 내용이 내부 캐시에 있는 경우)까지 가능하다. 이것은 PIO mode 2, 3에서 사용되었던 방식으로 최대 전송속도가 10MB/s이며, 이것을 다시 개선해 만든 PIO mode 4에서는 20MB/s이다.


:::▒ EIDE와 Fast-ATA의 차이점 ▒:::


EIDE와 Fast-ATA의 기본은 PIO mode 3, 4나 멀티워드 DMA mode 1, 2 등의 파일 전송 모드에서 시작된다. 이러한 용어들은 하드디스크 제조사에서 마케팅 차원으로 개발된 것이다. EIDE(Enhanced IDE)는 W/D의 등록상표이고, Fast-ATA는 시게이트에서 만들어서 시게이트와 퀀텀에서 규정한 것이다.
EIDE는 W/D의 504MB라는 용량 한계를 극복하기 위한 소프트웨어 차원의 확장 BIOS 규격과 하드디스크와 기타 저장장치인 테잎 및 CD-ROM 드라이브를 위한 하드웨어 차원의 전략이다.
Fast-ATA는 528MB라는 용량 한계와 기존의 ATA 인터페이스가 가지는 전송 속도의 한계를 극복한다는 점에서 EIDE와 유사하지만 ATA의 연장선상에서 단지 하드디스크만을 위한 인터페이스라는 한계를 가지고 있다.
EIDE는 PIO mode 3, 4와 멀티워드 DMA mode 1, 2를 지원하고, LBA 모드를 사용하며, 4개의 장치를 쓸 수 있는 기반을 기본적으로 갖추고 있다. 또, W/D의 Enhanced BIOS를 사용하여 도스에서 504MB라는 용량 한계를 극복했으며, ATAPI를 이용하여 하드디스크 이외의 ATA 인터페이스 장치를 쓸 수 있다는 특징을 가진다. Fast-ATA는 Fast-ATA와 Fast-ATA2로 나눌 수 있으며, 이 두 가지의 차이는 PIO mode 및 멀티워드 DMA mode 지원레벨이다. Fast-ATA에서는 PIO mode 3와 멀티워드 DMA mode 1을, Fast-ATA2에서는 PIO mode 4와 멀티워드 DMA mode 2를 지원하며, EIDE와 마찬가지로 LBA 모드를 사용한다. 이것은 블록 모드와 같이 다양한 읽기/쓰기 명령어를 지원하며, 데이터 전송률 향상과 함께 528MB라는 ATA 규격이 가지는 용량 한계를 극복했다.


PIO

PIO는 모든 데이터가 프로세서를 반드시 통과해야하는 컴퓨터 내의 장치들간에 데이터를 주고받는 방법이다. ATA/IDE 표준은 세 가지 PIO 데이터 전송속도를 지정하는데, 3.3 MBps의 속도인 모드 0, 5.2 MBps인 모드 1, 그리고 8.3 MBps인 모드 2이다. 더 새로운 ATA-2 표준에는 두 개의 고속모드가 추가되었는데, 11.1 MBps의 모드 3과 16.6 MBps인 모드 4가 그것이다. PIO의 새로운 대안이 DMA이다. 머지 않은 장래에 PIO는 DMA와 UltraDMA로 완전히 교체되어, 산업계의 표준에서 완전히 사라질 것으로 예상된다.

PIO Mode

Maximum Transfer
Rate (MB/s)

Standard

Mode 0

3.3

All

Mode 1

5.2

All

Mode 2

8.3

All

Mode 3

11.1

ATA-2, Fast ATA, Fast ATA-2, ATA-3, ATAPI, Ultra ATA, EIDE

Mode 4

16.6

ATA-2, Fast ATA-2, ATA-3, ATAPI, Ultra ATA, EIDE

DMA

Ultra DMA 66 방식 하드디스크

하드디스크는 인터페이스 방식이나 회전속도에 따라 갖가지 상품들이 선보이고 있다. 그 가운데 최근 가장 큰 관심을 모으고 있는 것은 회전속도가 7천200rpm이고 데이터 전송 방식이 Ultra DMA-66인 제품이다.
기존 하드디스크 제품들은 패스트(Fast) ATA와 Ultra DMA-33을 쓴다. 패스트 ATA는 데이터를 처리하기 위한 신호인 기준 클럭이 올라갈 때만 데이터를 보낸다. 하지만 Ultra DMA-33은 기준 클럭이 올라갈 때와내려갈 때 모두 데이터를 전송해 2배나 많이 보낼 수 있다. 이 때문에 1초에 처리하는 자료가 16.6MB에서 33.3MB로 늘어나게 되었다.





Ultra DMA-66은 "Ultra DMA 모드 4" 또는 "Ultra ATA 66" 이라고도 한다. 이것은 하드디스크의 버퍼 메모리와 시스템 메모리 사이의 데이터 전송 규약이다. 이것은 Ultra DMA-33보다 기준 클럭을 2배나 빨리 만들기 때문에 66MB/초의 속도를 낸다. Ultra DMA-66의 강점은 빠른 속도에 그치지 않는다. 이전 Ultra DMA-33 제품들과 값 차이가 크지 않고 Ultra 와이드 SCSI 방식 하드디스크의 전송속도가 40MB/초 정도인 것을 감안하면, 같은 용량이라면 SCSI 방식보다 싸다. 지금까지 선보인 Ultra DMA-66 방식의 하드디스크들은 회전 속도가 5천400rpm인 것들이 대부분이었고, Ultra DMA-33에 7천200rpm 속도를 지닌 제품보다 느렸다. 아무리 빠른 전송 수단을 갖췄다 하더라도 내부적인 처리속도가 느렸기 때문이다.
하지만 이제는 Ultra DMA-66 하드디스크들도 회전속도가 7천200rpm으로 올라갔기 때문에 내부적으로도 빠르게 데이터를 처리하고, 그것을 2배의 속도로 메모리에 전송할 수 있게 되었다. 그러나 Ultra DMA-66 제품의 하드디스크를 사용하려면 메인보드에서 지원을 해주어야 한다. 최근에는 Ultra DMA-66 커넥터를 내장한 제품이 출시되고 있다. 이럴 경우 총 8개의 IDE 장치를 사용할 수 있다.

DMA의 세 가지 전송모드

1. 블록전송

주변장치는 버스를 이용해 메모리와 데이터를 주고받는다.
CPU는 전송이 완료될 때까지 버스에 접근하지 않는다. 이기간 동안 CPU는 주변 장치가 관계하지 않는 지역 버스나 내부 캐시를 이용하여 작업을 진행한다.(PC에서 사용하는 가장 일반적인 방법)

2. 사이클 스틸링

메모리와 주변창지 간에 워드단위의 사이클 스틸링 방식으로 전송되는 경우이다.
CPU가 아예 버스를 놓는 것이 아니고 자기 작업을 병행하면서 잠깐 잠깐 주변 장치에게 버스를 사용할 수 있는 시간을 주는 것이다. 마치 주변 장치는 CPU의 버스 사이클을 훔치듯이 데이터를 전송한다.
주변장치의 데이터 전송은 블록 전송에 비해 상당한 시간 후에 완료된다.

3. 인터리브드 DMA

주변 장치가 CPU가 버스를 사용하지 않을 때를 파악하여 시스템 버스를 취한다. 예를 들어CPU가 내부 연산을 할 때는 버스를 쓰지 않는데, DMA 컨트롤러는 이처럼 비어 있는 버스 사이클을 발견할 때마다 데이터를 전송한다. 이 경우는 CPUDNL주로 구성된 형태이며 CPU의 작업에 전혀 영향을 미치지 않지만 데이터 전송은 상당 시간 후에 완료된다. 이러한 환경에서 CPU는 가급적 시스템 버스에 대한 이용률을 낮추도록 설계되어야 한다.

<참고>

LBA

LBA는 실린더, 헤드, 섹터(CHS)의 3차원적인 방법으로 하드디스크를 억세스하는 것이 아니라 하드디스크의 한 섹터를 억세스의 블록 단위로 하고, 첫 번째 섹터를 0번으로 하여 일련번호를 부여하고, 그 번호를 주소로 삼아 하드디스크를 1차원적인 방법으로 지정하는 것이다. 물론 하드디스크 내부의 펌웨어에서는 이를 다시 물리적인 실린더, 헤드, 섹터의 3차원적인 주소로 바꾸어 주소를 지정한다.

LBA={(실린더수)×(헤드수)}+[(헤드수×{(섹터수)/(트랙)}]+(섹터수)-1

이렇게 하였을 때 528MB의 용량 한계를 극복하는 것이 가능한 이유는 다음과 같다.
LBA에서는 ROM BIOS 및 하드디스크 내의 섹터, 헤드, 실린더에 할당된 메모리를 다음과 같이 일렬로 묶어 마치 하나의 LBA용 메모리인 것처럼 사용한다.


MSB

LSB

헤드

실린더(HIGH)

실린더(LOW)

섹터

이 경우 ROM BIOS는 자신의 1차원적인 LBA 주소를 하드디스크 내부 메모리에 I/O Port를 이용해 각각의 영역에 맞게 잘라 넣어 줌으로써 이를 실현하게 하는데, 이 경우 ROM BIOS에 할당된 전 bit가 이용 가능하게 되어 하드 디스크를 억세스할 수 있는 용량은 다음과 같이 8GB로 늘어나게 된다.

{10bit(실린더)+8bit(헤드)+6bit(섹터)}=24bit
2^24 ×512(섹터/Bytes)=8,589,934,592 Byte

이 방법을 사용하기 위해서는 ROM BIOS와 하드디스크에 모두 LBA를 지원하는 기능이 추가되어야 한다.


:::▒ ATA 인터페이스와 용량 지원(인식) 한계 ▒:::


ATA 인터페이스의 저장매체 용량 한계는 초기에 504 MB였으나 HDD를 포함한 저장장치들의 고용량화 추세에 맞추어 8 GB로 늘었고 이는 다시 32 GB로 확대하였다. 1999년 말, 현재의 메인보드와 ATA 컨트롤러들의 용량 인식 한계는 대부분 32 GB이다. 그러나 HDD 기술 개발 속도가 빨라지면서 헤드의 소형화 및 디스크 집적도 개선으로 32 GB를 넘어서는 HDD가 출시되었다. 현재의 ATA 인터페이스는 TB(Tera Bytes) 용량까지 지원하므로 메인보드의 BIOS update 만으로 간단히 32 GB 이상의 저장매체를 인식/사용할 수가 있다.

:::▒ ATA 인터페이스와 용량 지원(인식) 한계 ▒:::

ATA 인터페이스의 저장매체 용량 한계는 초기에 504 MB였으나 HDD를 포함한 저장장치들의 고용량화 추세에 맞추어 8 GB로 늘었고 이는 다시 32 GB로 확대하였다. 1999년 말, 현재의 메인보드와 ATA 컨트롤러들의 용량 인식 한계는 대부분 32 GB이다. 그러나 HDD 기술 개발 속도가 빨라지면서 헤드의 소형화 및 디스크 집적도 개선으로 32 GB를 넘어서는 HDD가 출시되었다. 현재의 ATA 인터페이스는 TB(Tera Bytes) 용량까지 지원하므로 메인보드의 BIOS update 만으로 간단히 32 GB 이상의 저장매체를 인식/사용할 수가 있다.


HDD 헤드 제작 기술

HDD는 구조적으로 초기 모델과 차이가 없을 만큼 혁신적인 기술 개발을 이루지 못하였으나 헤드 개발 기술은 꾸준히 발전하여 상당한 변화를 보이고 있다. HDD에서 헤드의 역할은 매우 중요하다. 동일한 크기의 플래터에 더 많은 정보를 저장하려면 헤드 표면적이 작아야 하고 좁은 공간에 정보를 빠르게 쓰고 읽으려면 헤드의 감도가 높아야 한다. HDD의 용량, 전송 속도, 전력 소비, 수명, 신뢰도 등이 헤드 제작 기술과 밀접한 관련이 있다. HDD 변천사는 디스크 전송 기술과 헤드 기술에 의하여 이루어진 셈이다.
헤드를 보다 작고 민감하게 만들어 면적 밀도(areal density)를 높이는 효과는 상당하다. 같은 용량의 HDD를 제작하더라도 면적 밀도를 높이면 처리 속도가 더 빨라지고 플래터의 수를 줄일 수 있다. 플래터의 수가 줄면 제품 수명이 길어지고 생산 원가가 낮아지며 공급가격이 저렴해 진다.

헤드의 동작

하드디스크는 헤드가 플래터 표면을 자화시켜 정보를 저장하고 자화된 상태를 해독하여 정보를 읽는다. 헤드는 철심(iron core)에 코일(구리선)을 감아 만들며 코일에 전류를 흘리면 철심이 자석처럼 변하여 극성을 띈다. 플래터 표면이 N(North, 북)극이 될지 S(South, 남)극이 될지는 코일에 흐르는 전류의 방향에 따라 결정된다.

쓰기(write)

헤드가 쓰기를 할 때는 헤드를 원하는 위치에 보내고 코일에 전류를 흘려 철심을 자석으로 만든다. 자석이 된 철심의 자력이 플래터 표면을 자화하여 극성을 띄게 만든다.

읽기(read)

Ferrite 및 TF 헤드가 정보를 읽을 때는 쓰기와 반대로 플래터 표면의 극성에 의하여 철심이 자화되고 자화된 철심이 코일에 전류를 발생시키며 이 전류에 따라서 정보를 해독한다. MR 및 GMR 헤드가 정보를 읽을 때는 자기를 저항 값으로 변환시켜 저항 값의 변화에 따라서 정보를 해독한다

하드디스크의 정보 저장과 해독

컴퓨터 내의 모든 정보는 디지털(digital) 형태의 '0'과 '1'로 구성되어 있다. 그러나 하드디스크는 정보를 자기파형(magnetic pulses form)으로 저장한다. 따라서 하드디스크에 정보를 저장하려면 디지털 정보를 자기파형으로 변환해야 하며 읽을 때 역시 반대의 과정을 거쳐야 한다. HDD 회로 기판에는 이 작업을 처리하는 encoder/decoder 회로가 포함되어 있다.

HDD의 회전 속도

HDD의 회전속도는 RPM (Rotation Per Minuet, 1분 당 회전수)으로 표기한다.
회전속도는 HDD의 성능에 가장 큰 영향을 준다. 인터페이스 방식 및 buffer의 영향도 무시할 수는 없으나 RPM이 더 큰 영향을 미친다. 동일한 인터페이스에서 5,400 RPM과 7,200 RPM 속도로 회전하는 HDD 두 종류의 성능을 비교해 보면 7,200 RPM 제품이 20% 이상 더 빠른 속도로 동작하는 것을 알 수 있다. HDD의 회전속도는 초기에 3,600 RPM이었으나 그후 4,500 RPM으로 개선되었고 98-99년에는 5,400 RPM이 주종을 이룬다. 99년 4/4분기부터 고급 사용자를 중심으로 7,200 RPM 제품의 보급률이 늘고 있다. 아직은 일반 사용자들이 구입하기에는 너무 비싸지만 SCSI 방식의 HDD 중에는 10,000 RPM이 넘는 제품도 있다.

:::▒RPM의 기술적 한계 ▒:::


20세기의 기계/재료공학 기술로 7,000 RPM 이상의 회전 장치를 만드는 일은 어려움이 있다고 한다. 비어링 등의 금속을 사용한 회전축은 7,000 RPM을 넘어서면서 마찰열이 급증하여 마모 속도가 빨라지므로 만들더라도 회전체의 수명이 단축된다. 결국, 현재의 HDD 회전수를 더 빠르게 하려면 뭔가 새로운 기술이 필요한 것이다


Seek time (탐색 시간)

평균 검색시간을 일컫는 말로 하드디스크 헤드가 지정된 곳을 빨리 찾는 시간을 말합니다. 보통 ms(밀리세컨드)로 표시하며 빠를 수록(수치가 작을 수록) 고성능의 하드디스크입니다 3-4GB급의 하드디스크는 9-12ms정도의 Seek Time을 갖습니다.

Latency Time (잠복 시간, 회전대기 시간)

트랙내에서 파일이나 데이터의 올바른 위치를 알아내는 시간을 의미합니다.

Average Access Time (평균 접근 시간)

Seek time에 Latency Time을 합한 것입니다.

MTBF (Mean Time Between Falilure)

하드디스크 평균 무고장 시간을 나타내며, 평균적으로 약 500,000시간입니다. 이 수치는 어디까지나 평균적인 것이며 500,000시간 이상쓴다고 해서 고장난다는 것은 아닙니다.

RPM (Revolution Per Minute)

플래터의 분당 회전수를 말하며, 빠를수록 그만큼 Access Time이 짧아집니다. 그러나 이 RPM이 높다고 좋은 하드디스크라 말할 수는 없습니다. 고속이다 보니 읽고 쓰는 것은 빨라지지만 제일 중요한 데이터의 안정성은 떨어집니다. 3-4GB급의 하드디스크는 통상 5200RPM이며 4GB급이상의 고급형 하드디스크는 7200RPM, 스커지용 하드디스크중 고가의 몇몇 하드디스크는 10,000RPM이 넘습니다.

하드디스크 인터리브란

하드디스크 헤드는 플레터의 고속회전으로 인해 저장된 정보를 한 번에 읽어 들일 수가 없습니다. 예를 들어 1,2,3,4,5라는 데이터가 연속적으로 플레터에 기록되어 있다면, 1을 읽은 후엔 어느새 4라는 데이터 위에 옮겨가게 됩니다. 따라서 2라는 데이터를 읽기 위해서 플레터는 한번 더 회전해야 합니다. 또 디스크 헤드는 연속된 데이터를 섹터 단위로 읽어오는데 이 섹터 정보를 CPU에 보내는 시간이 소요되기 때문에 다음 몇 섹터를 읽지 못합니다. 이렇게 건너뛰는 섹터수에 대한 읽은 섹터의 비율을 인터리브 값이라 합니다. 예를 들어 섹터를 읽은후 2개를 건너뛰면 인터리브 값은 2:1, 3개를 건너뛰면 인터리브 값은 3:1이 됩니다. 이 비율이 작을수록 하드디스크 속도가 빨라지지 만 섹터를 건너뛰지 않고 연속해서 읽어오기 때문에 이는 실제로는 불가능하기 때문에 대부분의 하드디스크들은 인터리브값이 제대로 설정되지 않은 경우가 있습니다. 이때는 노턴 유틸리티의 CALIBRAT.EXE를 이용해 값을 조정할 수 있습니다. 최근 공급되는 시스템은 바이오스 차원에서 하드디스크 인터리브를 자동 계산해 주므로 편리합니다.

PIO 모드, UDMA모드

PIO모드는 EIDE 방식의 하드디스크에서 사용되기 시작한 것으로, CPU가 제어하는 상태에서 하드디스크의 전송 능력을 알려주는 지표이다. 0에서 5까지의 6단계가 있으며 PIO모드 4의 하드 디스크에서 현재는 UDMA 모드의 하드디스크가 각광받고 있다.
PIO4 모드 이상을 만들기 어려운 이우는 레이저를 픽업 장치로 이용하는 CD-ROM과는 달리 자기 헤드를 이용한 하드디스크의 구조상 디스크의 고속 회전에 따른 발열 및 진동 문제와 헤드의 소형화에 한계가 있기 때문이다.
UDMA는 CPU에 부하를 주지 않고 직접 주변 장치에서 데이터를 읽고 쓸수 있는 DMA기술을 하드디스크에 적용한 것이다. UATA라고도 하는 데 하드디스크와 메인보드, 운영체제에서 UDMA를 지원하는 경우에만 사용할 수 있다.

[원본: 사람의향기]


<출처 : dooly-king 님의 블로그 방 >

댓글