안녕하세요. 옆집 컴공생입니다. 오늘은 챕터6 'External Memory' , 외장메모리 특히 하드디스크에 대해 배워보겠습니다. 저번 포스팅에서는 'Internal Memory' 에 대해 알아보았었습니다.
https://com24everyday.tistory.com/146
Magnetic Disk
▶고전적인 하드디스크로 자화가 잘되는 물질로(iron oxide) 과거에는 알루미늄, 현재는 유리 위에 코팅을 해서 이 자화가 잘 되는 물질에 데이터를 기억을 시키는 원리입니다.
-유리판을 쓰는 이유
유리를 쓰면 균일성(uniformity), 표면 결함(surface defects)를 줄일 수 있습니다.
그리고 외부변형에 대한 저항강도가 좋습니다.(Better stiffness)
또한 충격에 대한 저항성도 좋습니다. (damage resistence)
다음 사진은 하드디스크의 내부 사진입니다.
전형적인 IDE 타입의 하드디스크입니다. (요새는 Sata 타입을 씁니다. 더 나아가 Flash Memory를 사용하는 SSD를 사용합니다.)
Air filter : 밀폐된 공간이기 때문에 강한 공기를 주입시킴
Head arm , Head : 아주 작은 간격으로 돌아가는 원판 위에 떠서 자기 신호를 읽고 새로운 데이터를 씀
Spindle : 원판의 축
자기디스크의 Read/Write 원리
기본적으로 하드디스크의 Head를 통해 R/W 동작을 합니다.
-Write
coil을 통해서 흐르는 전류는 자기장(magnetic field)를 만들어냅니다. 그럼 이 자기장에 의해서 자화가 잘 되는 물질을 자회시킵니다. 자화가 어떤 방향으로 되느냐에 따라서 0,1 인 정보가 저장이 됩니다.
-Read
(전통적 방식)
자회가 되는 물질 위에 coil을 갖다댑니다. 움직이는 자석은 전류를 발생시키기 때문에 이게 어떤 방향으로 흐르냐에 따라 0 , 1인지를 읽을 수 있습니다.
(현재)
자기저항센서(magneto resistive(MR) sensor) 를 사용해서 해당되는 자화 방향로 데이터를 읽습니다.
다음은 자기저항센서의 그림입니다.
아래의 N S, 혹은 S N 으로 나타내져있는 부분이 하드디스크 표면에 자화 물질이 자화된 겁니다. (전류방향입니다.)
예로 'N S 가 0 이구나', 'S N는 1이구나 ' 를 정해서 사진을 보면 왼쪽에서부터 0 1 0 1 0 1 0 이렇게 읽을 수 있습니다.
사진 속 Write current 도 동일한 방식 입니다. 전류를 흘러보내주면 이에 의해서 전류의 방향이 결정이 됩니다.
데이터의 구성과 형식
- 동심원 링(Concentric rings) 과 트랙(tracks)으로 구성이 됩니다.
- 트랙 간에 Gap 을 줄이면 용량을 높일 수 있습니다.
- 트랙은 섹터(sectors)들로 구성되어있습니다.
- 512 bytes/sector
- 도는 디스크의 각 속도(angular velocity)가 동일하기 때문에 바깥쪽보다 안 쪽이 더 느리게 움직입니다.
- 안 쪽의 데이터 밀도는 조밀하고 바깥 쪽은 듬성듬성합니다. 그렇기 때문에 동일한 재료를 사용하는게 조금 비효율적이라고 볼 수 있습니다. 그래서 좀 다른 방법을 사용한 그림이 다음과 같습니다. 자원을 효율쪽으로 사용하지만 제어 면에서 복잡하다는 점이 있습니다. Multiple zoned recoding
Winchester Disk Format(outdated format) Seagate ST506
▶Format disk - Mark tracks and sectors (이게 어느 트랙이고 어느 섹터인지 결정)
앞에서 보았던 하드디스크 사진의 Disk Format 형태입니다.
physical sector 사이에 gap 을 존재합니다. 실제 데이터는 ID field 와 data field 로 구성됩니다. ( 이 사이에도 갭이 존재합니다.) ID field 를 자세히 살펴보겠습니다.
sync byte라는 특별한 패턴을 가지는 8비트 데이터로 시작이 됩니다. 이 트랙을 읽으면 '이제 ID 에 관련된 트랙정보가 오겠구나'라는 걸 알게 해줍니다.
CRC(Cycle Redundancy Check)라는 오류를 찾아내는 비트도 존재합니다.
이는 데이터 필드도 동일합니다.
Characteristics
- Head가 움직이는지 고정되어있는지, 대부분은 movable
- Removable of fixed disk (슬롯 형태로 늘리거나 줄일 수 있는지)
- Single or double side
- Platter 의 개수
- Head mechanism
flying, contact, Fixed gap
실린더는 다음과 같이 Platter의 같은 트랙 쪽에 원판 형식으로 보이는 부분입니다.
이런 식으로 같은 실린더입니다(그림을 너무 못 그렸네요..)
하드디스크 성능
▶Seek 는 Head가 해당 track 을 찾아가는데 걸리는 시간입니다.
▶Rotational Delay(=latency)는 이 track에서 해당 sector 로 빙글빙글 돌면서 찾는 시간입니다. (하드 디스크가 돌아가는 속도인 rpm과 직접적 연관이 있을거 같습니다.)
▶Data Transfer 는 실제 데이터가 전송되는 시간입니다.
▶ Access time = Seek + Latency
▶ 추가적인 딜레이 : I/O channels ,센서들을 위한 추가 시간입니다.
예를 들어서 한 번 이 시간들에 대한 감을 잡아보도록 하겠습니다.
▶Seek time이 평균적으로 10ms 가 걸립니다.
▶Rotation Delay 는 트랙을 찾고 해당 sector를 찾는데 걸리는 시간입니다.
만약 분당 rotation이 15,000 rpm 이라면 초당 250 r/sec (1초에 250바퀴를 돈다는 의미) 입니다.
그럼 한 바퀴를 도는데에는 1/250 = 0.004 sec = 4ms가 걸립니다.
평균적으로 해당 섹터를 찾기 위해 반 바퀴를 돈다고 생각하면 평균 Rotation Delay는 2ms 입니다.
▶Transfer time 는 데이터 전송 시간입니다.
이는 디스크의 회전 속도인 r 과 관계가 있습니다.
T = (b/N)*(1/r)
- b는 전체 바이트 수
- N 은 트랙당 바이트 수
그럼 b/N은 몇개의 트랙이냐를 의미합니다. 왜 transfer time이 디스크 회전 속도에 의존하는지 이해를 해야합니다.
▶Total average access time
-Ta = Ts + 1/2r + (b/N)*(1/r)
다음 하드디스크의 성능을 파악해보겠습니다.
- average seek time : 4ms
- rotation speed : 7,200rpm
- 512 B/sector
- 500 sector/track
- Read 2,500 sectors
▶평균 seek time 은 4ms 입니다.
rotation speed 는 7,200rpm 이니깐 초당 120 r/s 이고 그럼 한바퀴를 도는데 걸리는 시간은 다음과 같습니다.
1/120 = 0.008333 = 0.008 = 8ms
▶평균적으로 반 바퀴면 찾는다고 했을 때 rotation latency는 4ms 입니다.
▶transfer data 를 계산해보겠습니다.
여기서 디스크 정리 툴같은 걸 돌리면 해당 섹터들이 다 인접한 형태로 몰리게 됩니다.
이렇게 되면 2500 sector가 존재하기 때문에 track 은 5개 일겁니다. 트랙당 섹터 개수 500이었으니깐요.
★Best case
첫 트랙을 돌때
4ms + 4ms + 8ms(반바퀴도는데 4ms 니깐 한 바퀴면 8)
두번째 트랙을 돌때부터 seek time이 필요없다고 가정할 수 있습니다.
+ 4 x (4 + 8)
2500 sectors 을 읽는데 걸리는 최적의 시간은 다음과 같습니다.
▶4 + 4 + 8 + 4 x (4 + 8) = 64ms
☆Worst case
sector가 온갖 곳에 퍼져있는 상황, 매번 seek를 해주어야합니다.
한 트랙을 도는데에 걸리는 시간은 8ms 이었습니다. 섹터가 퍼져있기 때문에 트랙당 섹터 수를 나누어주겠습니다.
그럼 8/500 = 0.016(1 sector transfer)
전체 시간은
-2,500 x 8.016ms = 20.04 sec
Best case 와 Worst case 가 어마어마한 속도 차이가 난다는 걸 알 수 있습니다.
RAID
- Redundant Array of Independent(Inexpensive) Disks (독립적인 ,저가의 디스크를 배열형식으로 구성)
-1988년 Patterson 교수에 의해 만들어졌습니다.
이런 식으로 하드디스크가 여러개 있어서 성능을 높입니다. 오류가 났을때 복구를 해주기도 합니다.
▶RAID 0
- 중복되는 내용이 없습니다.
- 오류에 대한 백업 기능도 없습니다.
- 속도향상을 할 수 있고 데이터를 동시에 읽을 수 있습니다.
▶RAID 1
- 밀러링, 디스크에 똑같은 내용이 들어있습니다.
- 같은 데이터가 들어있기 때문에 한 쪽만 읽고 쓸때는 양쪽 다 써야합니다.
- 복원도 용이합니다.
- 비쌉니다.
▶RAID 2
- 오류가 났을때 복구를 할 수 있는 부분이 존재를 합니다.
- 매우 작은 부분으로 쪼개서 하드디스크에 분산이 되어있습니다.
- 여기선 디스크 1,2,3,0 에 데이터가 들어있고 디스크 4, 5, 6 에 parity , 즉 Hamming code 등을 저장하는 겁니다. correction 이 가능합니다.
-redudancy가 많아서 비싸고 잘 사용하지 않습니다.
▶RAID 3
- parity disk 가 단 하나만 존재합니다.
- RAID 2 유사
▶RAID 4
- RAID 3 과 생긴게 동일하지만 byte-level striping 대신에 block-level striping 입니다.
▶RAID 5
- Parity 가 각 디스크의 다른 공간에 분산되어 저장되어 있습니다.
▶RAID 6
- Parity 를 dual 로 두개의 하드디스크의 적절하게 배치를 함으로써 Correction 하는 능력을 향상시켰습니다.
실제 시스템에서 이러한 RAID 들을 조합해서 많이 사용합니다.
▶RAID 0 + 1
이런 식으로 많은 조합들이 존재합니다.
Optical Storage CD-ROM
요즘에는 많이 사용을 하지 않습니다. 워낙 Flash Memory, iCloud 를 많이 사용하기 때문입니다.
- 원래는 음원 판매용이었다고 합니다.
- Read Only Memory
- laser의 반사파를 가지고 읽습니다.
Land 와 Pit 의 반사파가 다르기 때문에 읽을 수 있습니다.
다음 그림은 CD-ROM 의 Data Format 입니다. 하드디스크 Data Format 과 크게 다르지 않습니다.
Random Access on CD-ROM
- Difficult , 데이터를 쭉 찾아가는 구조이기 때문에
CD-Recordable(CD-R)
-한 번 쓸 줄 있음
CD-RW
-Erasabe
DVD
-Digital Video(Versatile) Disk
-용량이 많고 층이 많음
다음은 실제 CD 와 DVD 를 비교 한 겁니다. 딱 봐도 간격 차이가 DVD 쪽이 훨씬 촘촘한 것을 알 수 있습니다.
이렇게 외부 메모리인 Hard Disk와 Hard Disk 의 Access time 그리고 RAID 에 대해 알아봤습니다. 수고하셨습니다.
관심있으셨다면 다음 포스팅도 꼭 봐주세요!
https://com24everyday.tistory.com/173
'공부 > 컴퓨터 구조' 카테고리의 다른 글
컴퓨터구조9 Computer Arithmetic (0) | 2020.06.23 |
---|---|
컴퓨터구조7 Input/Output (0) | 2020.06.22 |
컴퓨터구조5 Internal Memory (0) | 2020.06.12 |
컴퓨터구조4 Cache Memory (0) | 2020.06.05 |
컴퓨터구조3 CPU (0) | 2020.05.29 |