본문 바로가기
책/혼공 컴퓨터구조+운영체제

컴퓨터 구조 - 하드 디스크(플래터, 스핀들, 헤드, 디스크 암) 플래시 메모리(SLC,MLC,TLC),가비지 컬렉션

by 코딩하는 돼징 2023. 12. 5.
반응형

하드 디스크(HHD:Hard Disk Drive)

자기적인 방식으로 데이터를 저장하는 보조기억장치이다. 자기 디스크(magentic disk)의 일종이다. 플래터라고 불리는 회전하는 디스크에 자기적인 방식으로 데이터를 기록하고 읽어오는 원리로 동작한다.

출처 :  https://centralvalleycomputerparts.com/articles/understanding-hard-disk-drives/

01 플래터(Platter)

회전하는 원형 디스크로 각각의 자기판에 데이터가 자기적으로 기록된다. 하드 디스크에서 실질적으로 데이터가 저장되는 곳이다. 하드 디스크는 자기적인 방식으로 데이터를 저장하므로 N극과 S극을 저장한다. N극과 S극은 0과 1의 역할을 수행한다.


02 스핀들(Spindle)

플래터를 회전시키는 원판으로 회적 속도는 HDD의 성능에 영향을 미친다. 빠르게 회전하는 스핀들은 데이터에 빠르게 액세스할 수 있도록 한다.


03 RPM(Revolution Per Minute)

스핀들이 플래터를 돌리는 속도는 분당 회전수를 나타내는 RPM이라는 단위로 표현된다. 가령 RPM이 15000인 하드 디스크는 1분에 15000바퀴를 회전하는 하드 디스크이다.


04 헤드(Head)

플래터를 대상으로 데이터를 읽고 쓰는 구성 요소이다. 플래터 위에서 미세하게 떠 있는 채로 데이터를 읽고 쓰는 마치 바늘 같이 생긴 부품이다.


05 디스크 암(Disk Arm)

헤드는 원하는 위치로 헤드를 이동시킨다.


플래터 구성요소

출처 : https://www.pctechguide.com/hard-disks/hard-disk-hard-drive-format-the-tracks-and-sectors-of-the-hard-disk

01 트랙(Track)

플래터를 여러 동심원으로 나누었을 때 그 중 하나의 원을 트랙이라고 한다.

디스크가 회전할 때 트랙은 데이터를 순화하며 읽거나 쓰는 작업을 수행한다.

02 섹터(Sector)

트랙은 여러 섹터로 나뉘는데 섹터는 하드 디스크에서 가장 작은 전송단위로서 데이터를 저장하는 단위이다.

일반적으로 512바이트의 크기를 가지지만 하드 디스크에 따라 크기가 다를 수 있다. 최근에는 4096바이트로 크기를 지정하는 경우도 있다.

03 실린더(Cylinder)

여러 겹의 플래터 상에서 같은 트랙이 위치를 한 곳을 모아 연결한 논리적 단위이다. 한 실린더에 속한 트랙들은 같은 실린더에 위치한 디스크 플래터들의 대응하는 트랙들로 구성된다.


연속된 정보는 보통 한 실린더에 기록된다. 

디스크 암은 데이터에 빠르게 접근하기 위해 디스크 플래터 위를 이동한다. 이동속도가 빠를 수록 데이터에 빠르게 액세스할 수 있지만 이동에는 시간이 소요된다. 따라서 한 번의 디스크 암 이동으로 최대한 많은 데이터를 읽거나 쓸 수 있으면 효율적이다. 따라서 연속된 정보를 한 실린더에 기록하게 되면 한 번의 이동으로 여러 플래터에 접근할 수 있게 된다.

 

예를 들어 두개의 플래터를 사용하는 하드 디스크에 네 개의 섹터에 연속된 데이터를 저장 할 때 각 플래터 윗면, 뒷면에 번갈아가면서 데이터를 저장한다. 이렇게 되면 디스크 암은 한 번의 이동으로 두 플래터를 모두 접근할 수 있게 된다. 


하드 디스크가 저장된 데이터에 접근하는 시간

01 탐색 시간(Seek Time)

접근 하려는 데이터가 저장된 트랙까지 헤드를 이동시키는 시간이다. 디스크 암이 움직여 디스크 플래터 상의 원하는 트랙으로 이동한다.


02 회전 지연(Rotational Latency)

헤드가 있는 곳으로 플래터를 회전시키는 시간이다.  디스크 플래터가 회전하여 원하는 섹터가 헤드 아래로 오도록 기다린다.


03 전송 시간(Transfer Time)

하드 디스크와 컴퓨터 간에 데이터를 전송하는 시간이다. 헤드가 원하는 데이터에 정확히 위치한 후 데이터를 읽거나 쓰는 작업이 이루어진다.


단일 하드 디스크(Single-Head Disk)

구조 : 플래터의 한 면당 헤드가 하나씩 달려 있는 하드 디스크 각 플래터에는 하나의 헤드만 존재한다.

동작 : 헤드는 트랙을 따라 이동하여 데이터를 읽거나 쓰는 역할을 한다. 따라서 탐색 시각이 발생하게 된다. 그러므로 이동 헤드 디스크(Movable-Head Disk)라고도 불린다.


다중 헤드 디스크(Multiple-Head Disk)

구조 : 헤드가 트랙별로 여러 개 달려 있는 하드 디스크이다. 즉 각 트랙마다 헤드가 여러개 존재한다.

동작 : 각 트랙에는 별도의 헤드가 할당되어 있기 때문에 특정 트랙에 이동 없이 여러 트랙에 동시에 액세스할 수 있다. 이로 인해 탐색 시간이 들지 않아 탐색 시간이 0에 가깝다. 그러므로 고정 헤드 디스크(Fixed-Head Disk)라고도 불린다.


플래시 메모리(Flash Memory)

전기적으로 데이터를 읽고 쓰는 반도체 기반 저장 장치이다. 범용성이 넓기에 보조기억장치에만 속한다는 보기는 어렵다. 대표적으로 USB 메모리, SD카드, SSD카드가 있다. 이들은 데이터를 비휘발성으로 저장하여 전원이 꺼져도 데이터를 보존할 수 있다.

 

크게 NAND 플래시 메모리, NOR 플래시 메모리 두 종류로 나뉜다.

 

NAND플래시 메모리

구조 : NAND 게이트를 사용하여 데이터를 저장하고 읽는 회로를 기반으로 한다.특징 : 높은 저장 밀도와 빠른 데이터 전송 속도를 제공한다. 주로 대용량 저장 장치(SSD,USB)로 사용되며 비용이 효율적이다. 

NOR플래시 메모리

구조 : NOR 게이트를 사용하여 데이터를 저장하고 읽는 회로를 기반으로 한다.

특징 : 낮은 저장 밀도를 가지며 읽기 속도가 상대적으로 빠르다.


구성 요소

1. 셀(Cell)

플래시 메모리에서 데이터를 저장하는 가장 작은 단위로, 이 셀이 모이고 모여 수 MB,GB,TB 저장 장치가 된다. 

이 때 하나의 셀에 몇 비트를 저장할 수 있느냐에 따라 플래시 메모리 종류가 나뉜다.

사람 한 명 == 1비트, 셀 == 집 이라 생각해보면

SLC == 한 집에 한 명

MLC == 한 집에 두 명

TLC == 한 집에 세명


01 한 셀에 1비트를 저장할 수 있는 플래시 메모리 SLC(Single Level Cell)

한 셀로 두개의 정보 표현, 홀로 거주한느 집에 제약 없이 출입이 가능 하듯 비트의 빠른 입출력, 긴 수명,혼자 살면 감당해야 할 주거 비용이 커지듯 용량 대비 고가격이다. 읽고 쓰기가 매우 반복되며 고성능의 빠른 저장 장치가 필요한 경우 SLC타입을 사용한다.

 


플래시 메모리도 수명이 있을까?

있다. 일정 홧수 이상으로 데이터를 쓰고 지우면 셀의 수명이 다하게 되어 더 이상 데이터를 저장할 수 없다. 이는 종이에 연필로 쓰고 지우는 것을 반복하다보면 찢어지는 것과 유사한 원리이다.


02 한 셀에 2비트를 저장할 수 있는 플래시 메모리 MLC(Multiple Level Cell)

한 셀로 네 개의 정보 표현(대용량화 유리)가능하다. SLC보다 느린 입출력, 짧은 수명, 저렴하다. 시중에서 많이 사용된다. 집의 개수가 같다면 한 집에 한 명씩 사는 것보다 한 집에 두 명씩 사는 것이 훨씬 더 많은 사람을 수용할 수 있는 것과 같은 이치이다. 두 명이 한 집에서 주거 비용을 나눠 내면 혼자 감당해야 하는 주거 비용보다 저렴해지듯 MLC 타입은 SLC타입 보다 용량 대비 가격이 저렴하다. 시중에서 사용되는 많은 플래시 메모리 저장 장치들이 MLC타입(혹은 TLC)타입으로 만들어진다.


03 한 셀에 3비트를 저장할 수 있는 플래시 메모리 TLC(Triple Level Cell)

한 셀로 여덟개의 정보 표현(대용량화 유리)한다. MLC 보다 느린 입출력, 짧은 수명, 저렴하다.


04 정리

같은 용량의 프래시 메모리 저장 장치라고 할지라도 셀의 타입에 따라 수명, 가격,성능이 달라진다.


2. cell보다 큰 단위들

출처 :https://www.inflearn.com/course/%ED%98%BC%EC%9E%90-%EA%B3%B5%EB%B6%80%ED%95%98%EB%8A%94-%EC%BB%B4%ED%93%A8%ED%84%B0%EA%B5%AC%EC%A1%B0-%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C/dashboard

01 Page

여러 개의 셀이 모여 페이지를 형성한다. 페이지는 플레시 메모리에서 데이터를 읽거나 쓰는 최소 단위이며 읽기와 쓰기는 페이지 단위로 이루어진다.

02 Block

페이지들이 모여 블록을 형성한다. 블록은 삭제의 최소 단위이며 페이지보다 큰 단위로 데이터를 삭제한다. 즉 블록 내의 모든 페이지가 삭제된다.

03 Plane

여러 개의 블록이 모여 플레인을 형성한다. 플레인은 물리적인 구조로 다수의 블록을 포함한다.

04 Die

여러 개의 플레인이 모여 다이를 형성한다. 다이는 플래시 메모리 칩의 물리적인 단위로 각 다이는 독립적으로 동작할 수 있다. 


페이지의 세개의 상태

01 Free

어떠한 데이터도 저장하고 있지 않아 새로운 데이터를 저장할 수 있는 상태

02 Valid

이미 유효한 데이터를 저장하고 있는 상태 의미

03 InValid

플래시 메모리는 하드디스크와 달리 덮어쓰기가 불가능하여 Valid상태인 페이제이는 새 데이터를 저장할 수 없다. 쓰레기 값이라 부르는 유효하지 않은 데이터를 저장하고 있는 상태이다.


동작 예시

01 새로운 데이터 C저장

블록 X에는 두 개의 페이지가 있고, 각 페이지에는 A와 B라는 데이터가 저장되어 있다. 새로운 데이터 C를 저장하려면 빈 페이지에 쓰기 작업을 수행한다.
블록 X의 유효한 페이지 중 하나에는 데이터 C가 저장되고 나머지 페이지는 그대로 유지다.


02 A만 A'로 수정하는 경우

플래시 메모리에서 덮어쓰기가 불가능하므로 기존에 저장된 A는 더 이상 유효하지 않은 상태로 InValid가 되고 새로운 A' 데이터가 다른 유효한 페이지에 저정다.

A와 같이 쓰레기값을 저장하고 있는 공간은 사용하지 않을 공간인데도 불구하고 용량을 파지하고 있다. 이는 용량 낭비이다. 그렇다고 A만 지울수도 없다. 플래시 메모리에서 삭제는 블록 단위로 수행되기 때문이다. 


03 가비지 컬렉션

쓰레기 값이 된 페이지를 정리하는 기능이다. 이 과정에서 유효한 페이지들만을 새로운 블록으로 복사하고 기존의 블록은 삭제한다. 

블록 X의 모든 유효한 페이지를 새로운 블록 Y로 옮기고 블록 X를 삭제하는 것이다.

 

플래시 메모리에서는 삭제 작업이 블록 단위로 이루어지기 때문에 유효한 페이지와 쓰레기 값이 혼재된 블록을 효율적으로 정리해주는 가비지 컬렉션의 기능은 주용하다. 이를 통해 플래시 메모리의 성능과 수명을 유지할 수 있다.

 

 

 

 

참고 :  본 내용은개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제강의를 수강하여 작성하였습니다. https://www.inflearn.com/course/%ED%98%BC%EC%9E%90-%EA%B3%B5%EB%B6%80%ED%95%98%EB%8A%94-%EC%BB%B4%ED%93%A8%ED%84%B0%EA%B5%AC%EC%A1%B0-%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C/dashboard

 

 

 

반응형

댓글