본문 바로가기
공부/컴퓨터 구조

컴퓨터구조6 External Memory

by 맑은청이 2020. 6. 13.
728x90
반응형

안녕하세요. 옆집 컴공생입니다. 오늘은 챕터6 'External Memory' , 외장메모리 특히 하드디스크에 대해 배워보겠습니다. 저번 포스팅에서는 'Internal Memory' 에 대해 알아보았었습니다.

 

https://com24everyday.tistory.com/146

 

컴퓨터구조 5 -Internal Memory

안녕하세요. 옆집 컴공생입니다. 오늘은 챕터5 - Internal Memory 에 대해 알아볼려고 해요. 내부 메모리로 SRAM, DRAM, Flash Memory 의 구조에 대해 살펴보도록 할게요. 기본 요소는 Memory cell 입니다. 이는..

com24everyday.tistory.com

 

 


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 형태입니다.

Winchester Disk
Hard Disk Data 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 

이런 식으로 하드디스크가 여러개 있어서 성능을 높입니다. 오류가 났을때 복구를 해주기도 합니다. 

 

▶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

-용량이 많고 층이 많음

 

Different Types of DVD

다음은 실제 CD 와 DVD 를 비교 한 겁니다. 딱 봐도 간격 차이가 DVD 쪽이 훨씬 촘촘한 것을 알 수 있습니다.


이렇게 외부 메모리인 Hard Disk와 Hard DiskAccess time 그리고 RAID 에 대해 알아봤습니다. 수고하셨습니다.

 

관심있으셨다면 다음 포스팅도 꼭 봐주세요!

https://com24everyday.tistory.com/173

 

컴퓨터구조7 Input/Output

안녕하세요. 옆집 컴공생입니다. 오늘은 I/O module(입출력모듈)에 대해서 살펴보겠습니다. 아래 포스팅은 저번 시간에 배웠던 External Memory 입니다. https://com24everyday.tistory.com/148?category=1125097..

com24everyday.tistory.com

 

728x90
반응형

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

컴퓨터구조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