CS/컴퓨터구조

External Memory

young_3060 2022. 4. 21. 23:19
728x90

Magnetic Disk

자성의 물질로 만든 disk로 예전에는 알루미늄을 이용했으나 현대에는 유리를 이용하고 있다.

-> 신뢰성을 높임, read/write에러를 줄여줌, 짧은 간극이 생김, 더 단단하고 충격/데미지에 내구성이 있음

 

왼쪽 사진에서처럼 여러층의 disk가 층층이 존재하고 ARM(초록색 원)이 회전하면서 disk를 읽/쓰고 끝에 head가 달려있다.

쓰는 방법은 자성에 차이를 주면서 쓰게 된다.

 

여러층의 disk의 사이사이에는 gap이 존재하는데 이 gap은 눈으로는 볼 수 없을만큼 아주 미세하다. (미세먼지 보다 작다)

이 gap의 존재 이유는 disk 간에 간극을 주어 track간의 정보 간섭이 없도록 하기 위함이다.

원판 모양의 disk 모습이다. 한 줄을 track이라고 하며 track을 CAV, constant angle velocity를 이용해 n개의 sector로 나눈 형태이다. CAV와 CLV얘기를 잠깐 하자면, 

CAV(Constant Angular Velocity)는 안쪽과 바깥쪽의 각속도를 일정하게 하기 위해 회전하는 방법으로 HDD와 Floppy disk가 이 방식을 쓰고 있다. 단위 각당 또같은 데이터를 읽어오기 때문에 바깥쪽으로 갈수록 데이터가 조밀하게 저장되지 못해 낭비되는 단점이 있다. 대신 임의 접근이 편하다.

CLV(Constant Linear Velocity)는 회전속도는 일정하나 track당 데이터 양이 달라 안쪽 바깥쪽 전송률이 다르다. 읽는 속도는 일정하여 시간당 전송률은 CAV와 같다. 이 방식은 순차접근 방식에 편리하다.

 

다시 돌아오면,

맨 오른쪽의 arm이 왔다갔다하면서 disk를 읽는다. disk는 양면으로 읽을 수 있어서 표면(surface)당 하나의 head가(위아래로) 존재한다. 아까 말했듯이 disk는 겹겹이 층으로 쌓여있으므로 한 구간을 읽으면 동일한 구간을 높이만 다르게 읽게 된다. 이는 투명한 원통형 모양을 띄게 되어서 이것을 cylinder이라고 한다.

원의 특성상 당연히 바깥쪽 sector가 더 크고 안쪽으로 갈수록 작아진다. 이에 대한 대책으로 모든 track을 똑같은 크기의 sector로 나눈 Multiple zone recording이 있는데, 이는 바깥쪽에 sector가 더 많아지므로 저장크기도 같이 커진다.

 

Disk Formatting

흔히들 디스크 포맷하면 모두 지워버리는 느낌이 강하게 드는데, 사실 disk formatting은 하드디스크에 데이터 저장공간을 확보하는 과정으로 sector의 위치를 기록하기 위함이다.

Disk Formatting의 3가지 구성요소

  1. low-level formatting : 빈 HDD에 cylinder & track을 구획하고 track을 sector로 나누는 과정으로, physical formatting에 해당된다. 디스크에 데이터가 있는 상태로 low-level formatting을 한다면 존재하는 모든 정보가 날라갈 것이다. HDD에 damage도 가져올 뿐만 아니라 수명에도 좋지 않으므로 user에겐 권고되지 않는다.
  2. partitioning : disk를 하나 이상의 region으로 나누는 것으로 user에 의해 시행될 수 있으며 disk성능에 영향을 준다.
  3. high-level formatting : disk partition이나 PC의 logical volume의 file system data를 지우는 것으로 주로 user가 시행하며 HDD에도 damage를 입히지 않는다.

cf) ST506 format (옛날 버전)

 

Fixed head / Movable head

Fixed head(옛날) : 트랙당 read,write

Movable head(요즘) : side당 read, write

 

Removable disk / Nonremovable disk

Removable disk : 다른 drive로 옮길수있다 (원래는 제거 시 수명을 잃음)

Nonremovable disk : 영구적으로 dirve에 올려져있다

 

Average Access Time

= Seek time (track 찾기) : 보통 10ms이하

+ Average rotational Delay (sector 찾기) : 1/2 * rotational delay (== rps의 역수)

+ Transfer time (data transfer) : b / rN (b : tranfer할 bytes, N : track의 bytes)

+ Track-to-track seek time

 

[example]

average seek time : 4ms

rotation speed : 7200 rpm

track-to-track seek time : 1ms

sector당 512B

track당 500sector

2500 sector을 읽을때,

 

7200/60 = 120rps이므로 rotational delay는 1/120 = 8.33333ms

average rotational delay = 4ms

 

<best case>

= 4ms(seek) + 4ms(average rotation delay) + 8ms(transfer time : 트랙이 최적화 되었으므로 b/N == 1) + 1ms + 4*(4ms+8ms : 두번째 바튀부터는 seek하지 않아도 되므로 average rotation delay + transfer time)

= 65 ms

 

<worst case> : 모든 sector가 randomly하게 흩어져 있는 상태, sector개수만큼 읽는다 (2500개)

= 2500*(4ms+4ms+(8ms/500): rotation delay/track당 sector 수+1ms)

= 22.540 sec

 

 

 

RAID

: 여러 disk drive를 사용하고 여러 drive의 데이터에 동시에 접근할 수 있는 방식으로 데이터를 분산하여 I/O 성능을 개선하고 용량을 더 쉽게 늘릴 수 있는 전략이다.

[ 6 levels - not hierarchy ]

level 0 - RAID가 아님 : non-redundant, 1번 다쓰면 2번, 3번, 이 방식이 아니고 4개의 data를 동시에 쓰므로 disk 1개 쓰는 것보다 속도가 4배 빠르다. 하지만 disk가 하나라도 망가지면 복원이 불가능하다.

level 1 : mirrored disk, 각각의 disk의 copy본이 존재하므로 복원이 쉽지만 disk 2개에 용량은 반으로 줄어서 비싸다. 신뢰성측면에서만 좋음. 쓸때는 두개 동시에 쓰고 읽는건 하나만 읽는다.

[parallel access]

level 2 : synchronized, 아주 작은 조각(byte단위)로 나눈다. hamming code error correction을 multiple하게 동등한 disk에 저장한다. ( 즉, 4개의 original disk가 있다면 분산된 조각을 error correction하고 3개의 redundant disk에 저장하는 것으로 4+3 bit hamming code가 저장된다. )

분산도가 높아서 신뢰도가 높지만 비싸고 이 방법은 현실적으로는 불가능하다.

level 3 : level 2와 유사하지만 1개의 redundant disk만을 가진다. 아주 높은 transfer rate를 가진다.

실제로 쓰이지않는다.

[independent access]

level 4 : redundancy error에 대한 parity disk 하나 둔다. -> parity disk error나면 망함. 4개의 disk에 대한 parity disk는 하나이기 때문에 혼자 4배의 일을 한다. => bottleneck !! 

disk가 4배라서 system 성능이 4배가 아닌 parity disk에 국한되므로 성능의 장점을 갖지 못한다.

level 5 : level 4의 bottle neck 해결하기 위해 그럼 parity disk를 각 disk에 분산하자. 이로써 level 4의 신뢰성은 가져가면서 성능도 4배 향상되는 효과를 가질 수 있다.

level 6 : level 5와 유사한 구조이나 parity disk를 두배로 둬서 level 5보다 신뢰도를 더 높인다.

 

[참고]

https://www.partitionwizard.com/help/what-is-disk-formatting.html

https://64bitos.tistory.com/9

 

 

 

728x90

'CS > 컴퓨터구조' 카테고리의 다른 글

Control Unit Operation  (0) 2022.06.02
Internal Memory  (0) 2022.04.22
Chapter 1 ) Basic Concepts and Computer Evolution  (0) 2022.03.23