CS/컴퓨터 구조론

컴퓨터 구조론 6장 [보조저장장치-하드 디스크]

devrabbit22 2025. 4. 6. 04:47
  • 하드 디스크의 원래 명칭은 자기적 하드 디스크(magnetic hard disk)이며, 간단히 디스크로 부르기도 한다.
  • 디스크는 자화될 수 있는 물질(magnetizable material)로 코팅된 플라스틱이나 금속을 이용한 원형 평판(circular platter)으로 만들어 지는데, 그 평판 위에 헤드(head)라고 불리는 전도성 코일을 통하여 표면을 자화시킴으로써 데이터를 저장하게 된다.

디스크 표면과 헤드

  • 헤드는 디스크에 저장된 데이터를 읽을 때도 사용된다. 디스크의 표면에는 여러 개의 동심원들이 존재하는데, 이 원들을 트랙(track)이라고 부른다.
  • 데이터들은 트랙 위에 저장되며, 헤드가 그 트랙을 지나가는 동안에 데이터가 저장되거나 인출된다.
  • 트랙 상에 데이터를 저장하는 동작을 디스크 쓰기(disk write)라고 한다. 쓰기 동작은 헤드의 코일에 전류가 흐르면 자기장이 발생되는 전기적 성질을 이용한다.
  • 즉, 전기적 신호가 헤드로 보내지면, 전류의 방향(극성)에 따라 서로 다른 형태의 자성 패턴이 표면에 기록되는데, 여기서 2진수 '1'은 양(+)전류로, '0'은 음(-) 전류로 각각 변환되어 헤드로 보내진다.
  • 데이터를 디스크 표면으로 부터 감지하여 인출하는 동작을 디스크 읽기라고 한다.
  • 읽기 동작은 자기장이 존재하는 곳에 코일이 지나가면 코일에 전류가 유기되는 전기적인 성질을 이용한다.
  • 디스크 표면이 회전하는 동안에, 원하는데이터가 저장되어 있는 트랙 부분이 헤드 밑을 통과하면, 기록 때와 동일한 극성의 전류가 생성된다.
  • 헤드가 디스크 팔(disk arm)이라고 부르는 직선 모양의 금속체 끝에 장착되어 있다.
  • 디스크 표면 상의 모든 트랙들에 대한 액세스는 헤드를 통해서만 이루어질 수 있다. 따라서 디스크 팔을 움직여 헤드를 이동시킬 수 있어야 하며, 이 동작은 디스크 팔의 끝 부분에 설치된 구동장치(actuator)에 의해 이루어진다.

디스크의 구조

  • 동심원을 이루고 있는 트랙들은 헤드가 지나갈 수 있도록 연속적인 통로로 만들어져 있지만, 논리적으로는 여러 개의 섹터(sector)들로 분리되어 있다.

섹터(sector)

  • 트랙의 분할된 각 부분으로서, 데이터 전송 단위인 한 블록을 저장한다.
  • 디스크에 데이터를 저장하거나 읽는 동작은 블록(block) 단위로 이루어지는데, 각 섹터에 저장할 수 있는 데이터 용량이 그 블록 크기에 해당한다.
  • 즉, 섹터는 디스크에 한 번에 쓰거나 읽는 동작이 수행되는 최소의 물리적 단위이다. 이것을 섹터 간 갭(inter-sector gap)이라고 부른다.
  • 적은 수의 트랙들과 섹터들만 표시한 디스크 표면을 이용하여 그 세부적인 구조를 보여주고 있다. 이 그림에서는 트랙의 수가 네 개이고, 각 트랙은 8개의 섹터들로 나누어져 있다.
  • 초기의 디스크들에서는 표면 당 트랙의 수가 500~2000개 사이, 트랙 당 섹터 수는 32개 혹은ㅇ 64개 정도였다. 그러나 최근에 개발된 대용량 디스크들은 저장 밀도가 크게 높아졌기 떄문에 표면 당 트랙의 수가 2000개 이상으로 증가하였으며, 트랙 당 섹터의 수도 더 많아졌다.
  • 헤드가 잘못 정렬되거나 자기장의 간섭 때문에 발생하는 오류를 방지하기 위하여 트랙들 사이에도 약간의 간격을 두고 있다.
  • 이 간격을 트랙 간 갭(inter-track gap)이라고 부른다.
  • 트랙의 길이는 바깥쪽에 위치할수록 안쪽보다 더 길어진다. 그러나 읽기.쓰기 장치를 간단하게 설계하기 위하여 트랙당 저장되는 데이터 비트들의 수는 모두 같게 한다. 결과적으로 저장 밀도(단위 길이 당 비트 수)는 안쪽의 트랙이 바깥쪽 트랙보다 더 높아진다.
  • 이렇게 하면 디스크 평판이 등각속도(constant angular velocity : CAV), 즉 일정한 속도로 회전하는 상태에서도 데이터를 동일한 비율로 액세스 할 수 있게 된다.

등각속도(CAV)

  • 중심부에 가까운 트랙을 액세스하든 멀리 위치한 트랙을 액세스하든 일정한 속도로 회전시키는 방식

CAV 방식을 사용하는 디스크 표면의 배치도(layout)

  • 동심원 형태의 트랙은 파이 모양의 섹터들로 분할된다. 각 섹터에 저장된다. 각 섹터에 저장된 데이터 블록은 트랙 번호와 섹터 번호에 의해 주소지정될 수 있다. 헤드를 현재의 위치에서 특정 주소로 이동시키기 위해서는 먼저 특정 트랙으로 헤드를 이동시킨 다음에, 원하는 섹트거 회전하여 헤드 아래에 도달할 때까지 잠시 기다리면 된다.
  • CAV 방식을 사용하면 회전 속도가 일정하기 때문에 구동장치가 간단하지만, 길이가 더 긴 바깥쪽 트랙에 저장될 수 있는 데이터 비트 수를 길이가 더 짧은 중심부의 트랙에 저장될 수 있는 데이터 비트 수를 길이가 더 짧은 중심부의 트랙에 저장될 수 있는 데이터 비트 수와 동일하게 해야 한다.
  • 이를 위해 바깥쪽 트랙의 저장 밀도를 낮추어야 하므로, 저장 공간이 낭비된다는 것이 CAV 방식의 단점이다.
  • 저장 공간의 낭비를 줄여 전체 용량을 증가시키기 위하여 다중 영역 기록(multiple zone recording:MZR)방식이라고 불리는 새로운 기술을 이용한다.
  • 이 방식에서는 디스크 표면이 여러 개의 동심원 영역들( concentric zones)로 나누어지며, 같은 영역에 속한 트랙들에는 같은 수의 비트들을 저장하도록 밀도가 조정된다.

다중 영역 기록(MZR)

  • 디스크 상의 트랙들을 몇 개의 영역들로 나눔으로써 저장 용량을 늘리는 방식
  • 디스크의 모든 트랙에서 저장 밀도가 거의 같아지도록 한다. 결과적으로, 바깥쪽 영역의 트랙들은 길이가 더 길기 때문에 중심부 근처 영역의 트랙들보다 더 많은 비트들을 저장할 수 있어서, 더 많은 수의 섹터들로 나누어질 수 있다.

  • 15개의 트랙들이 5개의 영역들로 조직된 경우 MZR 디스크 표면의 간략화된 예이다.
  • 가장 안쪽에 위치한 두 개의 영역은 각각 두 개씩의 트랙들을 포함하고 있으며, 각 트랙은 9개 혹은 11개의 섹터들로 나누어져 있다.
  • 그 다음 영역은 세 개 트랙들로 이루어져 있으며 각각의 섹터는 12개씩, 그리고 가장 바깥쪽의 두 영역들은 네 트랙씩  포함하고 각 트랙은 14개 혹은 16개의 섹터들로 나누어져 있다.
  • 이 방식을 사용하는 실제 디스크에서는 일반적으로 영역이 16개 정도로 분할되고, 각 영역에 포함되는 트랙들의 수는 수 천개씩이다.
  • MZR 방식을 이용하면 제어 회로가 약간 더 복잡해지지만 전체 용량을 증가시킬 수 있다.
  • 디스크 헤드가 한 영역에서 다른 영역에서 다른 영역으로 이동할 때 각 비트가 차지하는 트랙 상의 길이가 미세하지만 약간씩 다르기 때문에 읽기와 쓰기에 걸리는 시간도 차이가 나게 된다.
  • 헤드를 통하여 데이터를 쓰거나 읽을 때 각 트랙 상에서 섹터들을 구분하는 방법이 필요하다.
  • 트랙에는 시작점이 있어야 하고, 각 섹터의 시작과 끝을 구분하는 방법이 있어야 한다.
  • 그러한 정보들을 포함하는 제어 데이터는 디스크 형식화 작업(disk formatting) 과정에서 각 트랙 및 섹터의 특정 위치에 기록된다.

트랙 및 섹터의 데이터 형식

  • SYCHN 바이트는 필드의 시작점을 구별하는 특수한 비트 패턴이다.
  • 트랙 번호는 같은 표면상의 트랙들을 구분하는 데 사용된다.
  • 디스크의 표면당 헤드가 한 개씩 있으므로, 헤드 번호로 표면을 구분한다.
  • 섹터 번호는 각 트랙의 섹터들을 구분해준다.
  • ID 필드와 데이터 필드는 각각 오류 검출을 위한 CRC(Cycle Redundancy Checking) 코드를 포함하고 있다.
  • 각 필드 밑에 표시된 숫자는 필드의 길이를 바이트 수로 나타낸 것 이다.

디스크 드라이브(disk drive)

  • 디스크 폄판, 디스크 팔, 회전 구동장치 및 데이터 전송회로를 모두 포함한 패키지

  • 대부분의 디스크들은 평판의 양쪽 면이 모두 자화 물질로 코팅되어 있으며, 이것을 양면 디스크라고 한다. 
  • 양면 디스크 드라이브에는 각 디스크 표면 당 한 개씩의 디스크 팔과 헤드가 존재한다.
  • 용량이 적고 가격이 저렴한 디스크 드라이브는 단면 디스크를 사용한다.

  • 대용량 디스크 드라이브는 여러 개의 평한들이 하나의 회전축에 적절한 간격을 두고 고정되어 있다.
  • 각 표면마다 한 개씩의 디스크 팔과 헤드가 장착되어 있다.
  • 각 표면의 트랙 수와 데이터 밀도 및 형식은 모두 동일하다.
  • 이러한 드라이브에서 디스크 팔들이 동시에 같이 움직이도록 한다면, 여러 표면의 같은 위치에 저장된 데이터들을 동시에 액세스 할 수 있을 것이다.
  • 이와 같이 서로 다른 표면에 있지만 같은 반경에 위치하고 있어서 팔을 움직이지 않고도 동시에 액세스 할 수 있는 트랙들의 집합을 실린더 라고 한다.

ex) 위의 그림을 보면 네 개의 양면 디스크 평판들이 장착된 디스크 드라이브에는 최대 20개까지의 디스크 평판들이 포함되기도 한다.

  • 일반적으로 디스크 액세스를 위하여 발생되는 주소는 디스크 드라이브 번호, 실린더 번호, 헤드(혹은 표면) 번호 및 섹터 번호로 이루어진다.
  • 헤드는 디스크 읽기와 쓰기를 수행하는 데 필요한 만큼의 충분한 자기장을 발생시키거나 감지할 수 있어야 한다.
  • 이 기능을 오류 없이 수행하기 위해서는 헤드가 평판에 가능한 가깝게 접근해야 한다.
  • 헤드가 가늘어질 수 있으며 트랙의 폭을 더 좁힐 수 있어서 디스크 상에 더 많은 트랙들을 둘 수 있기 때문에, 결과적으로 밀도가 높아져 저장 용량이 커진다.
  • 디스크 표면과 헤드가 가까워질수록 불순물이나 충돌 등에 의한 오류 발생의 위험이 더 커진다.

이러한 문제점을 해결하고 밀도를 더욱 높이기 위하여 윈체스터(Winchester disk)가 개발되었다. 윈체스터 헤드는 오염 물질이 들어갈 수 없도록 봉합된 드라이브 패키지 안에 들어있다.

  • 따라서 헤드가 디스크의 표면에 더 근접하여 동작할 수 있기 때문에 더 가늘어질 수 있고, 결과적으로 밀도가 더 높아진다.
  • 디스크가 움직이지 않을 때는 헤드가 디스크 표면에 가볍게 놓여지는 공기동력 박막(aerodynamic foil)의 형태로 있다.
  • 디스크가 급회전하면 공기 압력이 생성되고 그 압력에 의해 표면 위 박막이 들어올려진다.
  • 이러한 비접촉 시스템을 이용하면 일반 고정 디스크 헤드들보다 평판의 표면에 더 가깝게 동작할 수 있는 좁은 헤드들을 사용할 수 있게 된다.
  • 원래 윈체스터라는 용어는 IBM에서 3340 디스크 모델의 코드 이름으로 사용한 것이었지만, 현재는 봉인된 디스크 드라이브들을 통칭하는데 사용되고 있다.

디스크 액세스 시간

가장 보편적으로 사용되고 있는 단일-헤드 디스크시스템에서 어떤 데이터 블록을 읽거나 쓰는 과정은 다음과 같다.

  1. 헤드를 해당 트랙이로 이동시킨다.
  2. 원하는 데이터가 저장된 섹터가 헤드 아래로 회전되어 올 때까지 기다린다.
  3. 데이터를 전송한다.
  • 위의 과정에 걸리는 전체 시간을 디스크 액세스 시간이라고 한다.
  • 1번에 걸리는 시간을 탐색 시간이라고 한다. 
  • 2번에 걸리는 시간을 회전 지연시간이라고 한다.
  • 3번은 데이터 전송 시간이라고 하는데, 여기에는 디스크 제어기에서 소요되는 전자 회로의 동작 시간도 포함된다.
  • 결과적으로 디스크에 저장된 하나의 데이터 블록을 액세스하는 데 걸리는 시간은 다음과 같다.
  • 디스크 액세스 시간 = 탐색시간 + 회전 지연시간 + 데이터 전송 시간
  • 탐색 시간은 헤드의 현재 위치에서 원하는 트랙까지의 거리에 따라 달리진다.
  • 기계적인 이동이므로 시동 시간이 필요하며, 여러 트랙들을 지나가게 되면 적어도 수 ms가 걸리고, 거리가 먼 경우에는 그 이상까지도 걸린다. 
  • 액세스할 데이터들의 지역성이 높은 경우에는 헤드의 이동거리들이 짧아지기 때문에 평균 탐색 시간을 크게 단축시킬 수 있다.

회전 지연시간

  • 디스크의 회전 속도에 달려있다.
  • 회전축의 속도가 7200rpm인 디스크의 경우 초당 120바퀴를 회전하므로, 한 바퀴 회전하는데 약 1/120초(8.33ms)가 걸린다.
  • 헤드가 해당 트랙에 도착한 순간에 원하는 섹터가 헤드 아래에 즉각 도달한 경우 회전 지연시간이 0이 된다.
  • 만약 원하는 섹터가 그 전에 지나갔다면, 한 바퀴를 돌아올 때까지 최대 8.33ms 동안 기다려야 한다.
  • 따라서 평균 회전 지연시간은 해당 섹터가 반 바퀴 회전한 후에 헤드 아래에 도달하는 데 걸리는 시간인 4.17ms라고 할 수 있다.
  • 최근 고속 대용량 디스크들에서는 주로 5400 및 7200rpm의 회전 속도가 사용되고 잇으며, 10,000rpm 이상의 구동 장치는 높은 발열량에 따른 냉각의 어려움 때문에 사용이 제한되고 있다.

데이터 전송 시간

  • 헤드가 해당 섹터의 시작 부분에 위치한 순간부터 데이터 비트들을 전송하는 데 걸리는 시간을 의미한다.
  • 읽기 동작의 경우에는 디스크 표면으로부터 일혀진 데이터들이 디스크 제어기로 전송되며, 스기 동작의 경우에는 디스크 제어기로부터 데이터가 전송되어 디스크 표면에 저장된다.
  • 이 시간은 블록의 크기, 회전 속도, 트랙의 저장 밀도, 버스 전송률 및 제어기 내부 전자 회로 등에 따라 결정된다.
  • 버스 전송률은 기존에 사용되던 Ultra SCSI 버스를 기준으로 100[]MByte/s] ~ 400[MByte/s] 정도였지만, 최근 SATA 버스와 같은 고속의 인터펭이스들이 사용되면서 600[MByte/s] 수준으로 높아졌다.
  • 디스크 제어기 및 버스 제어기에서 소요되는 시간에는 전자회로의 지연 시간 ㅇ외에, 디스크 경합으로 인한 디스크 큐에서의 대기 시간도 포함되므로 사실상 가변적이다.

Reference

컴퓨터 구조론 개정 5판

https://velog.io/@chocaprio/06%EC%9E%A5-%EB%B3%B4%EC%A1%B0%EC%A0%80%EC%9E%A5%EC%9E%A5%EC%B9%98

 

06장 보조저장장치

6.1 하드 디스크 하드디스크 : 자화될 수 있는 물질로 코팅된 플라스틱이나 금속을 이용한 원형 평판으로 만들어지는데, 그 평판 위에 헤드라고 불리는 전도성 코일을 통하여 표면을 자화시킴으

velog.io