https://www.youtube.com/watch?v=m2NfFJEvssY&list=PLVsNizTWUw7FCS83JhC1vflK8OcLRG0Hl&index=20
들어가며
다양한 보조기억장치(하드디스크) 먼저 읽기 !
플래시 메모리란?
플래시 메모리는 전기적으로 데이터를 읽고 쓰는 반도체 기반 저장장치이다.
SSD, SD카드, USB메모리가 전부 플래시 메모리 기반의 저장장치이다.
플래시 메모리를 보조기억장치 파트에서 소개하고는 있으나,
범용성이 매우 넓기에 보조기억장치에만 속한다고 보기는 어렵다.
실제로 주기억장치 중의 하나인 ROM 으로도 플래시메모리가 사용된다.
플래시메모리는 범용성이 넓은 저장장치인데 보조기억장치로도 많이 사용된다, 라고 이해할 것.
좌 : USB 메모리 앞면
우 : USB 메모리 뒷면 - 8GB 플래시 메모리
플래시 메모리의 종류
- NAND 플래시 메모리
NAND 연산을 수행하는 NAND 게이트를 기반으로 만들어진 플래시 메모리이다.
오늘날의 대용량 저장장치로 많이 사용되는 플래시 메모리이다.
- NOR 플래시 메모리
NOR 연산을 수행하는 NOR 게이트를 기반으로 만들어진 플래시 메모리이다.
플래시 메모리 - NAND 플래시 메모리
Cell 셀
: 플래시 메모리를 이루고 있는 단위
: 플래시 메모리에서 데이터를 저장하는 가장 작은 단위
: 셀이 모이고 모여 수 MB, GB, TB 저장장치가 된다
플래시 메모리의 성능, 가격, 수명을 결정하는 요소가 된다.
한 셀에 1비트를 저장할 수 있는 플래시 메모리 : SLC 타입 ( Single Level Cell )
한 셀에 2비트를 저장할 수 있는 플래시 메모리 : MLC 타입
한 셀에 3비트를 저장할 수 있는 플래시 메모리 : TLC 타입
한 셀에 4비트를 저장할 수 있는 플래시 메모리 : QLC 타입
SLC (한 집에 1명)
➡️ 플래시메모리 (USB, SSD, SD카드), 하드디스크에는 수명이 있다.
일정횟수 이상을 썻다 지웠다를 반복하면 보조기억장치로서 수명을 다하게 된다.
즉, 하드디스크에 백업했다해서 그게 영원히 저장되는 것은 아니다.
MLC (한 집에 2명)
TLC (한 집에 3명)
이런 SLC, MLC, TLC 등의 타입을 통해 알 수 있는 것은
같은 플래시 메모리라도 타입에 따라 수명과 가격, 성능이 다르다.
플래시 메모리의 단위
[ 플레시메모리의 단위 ]
셀들이 모여서 page 가 되고,
페이지들이 block이 되고
블록이 모여 plane(플레인)이 되고
플레인이 모여 die(다이)가 된다.
플래시 메모리는 읽기/쓰기의 단위와 삭제의 단위가 다르다.
읽기와 쓰기는 페이지 단위로 이뤄지며, 삭제는 블록단위로 이뤄진다.
◼︎ 읽기와 쓰기는 페이지 단위로 이뤄진다고 했는데, 이러한 페이지는 상태를 가질 수 있다.
- Free 상태
어떠한 데이터도 저장하고 있지 않아 새로운 데이터를 저장할 수 있는 상태
- Valid 상태
이미 유효한 데이터를 저장하고 있는 상태
- Invalid 상태
유효하지 않은 데이터(쓰레기 값)을 저장하고 있는 상태
플래시메모리는 하드디스크와 달리 덮어쓰기가 아예 불가하다.
대신 데이터가 이미 쓰여진 해당 섹터를 먼저 지우고(Erase) 그 후에 새로운 데이터를 쓸 수 있다.
그래서 데이터가 더이상 유효하지 않거나, 덮어쓰기가 필요할 때 해당 데이터를 Invalid 라고 표시한다.
이것은 더이상 해당 데이터가 유요하지 않으며, 나중에 지우기 연산 Erase를 통해 그 공간을 재사용할 수 있음을 의미한다.
예를 들어 블록 x가 있다고 했을 때, (블록의 네모들이 페이지)
블록 x에 한페이지를 차지하는 데이터 c를 저장한다고 한다면,
읽기 쓰기 단위는 페이지 단위로 이뤄지기에 위 사진과 같이 저장된다.
? 만약, 새롭게 저장된 C와 기존의 B는 그대로 둔 채
기존의 A만을 A' 로 수정하고 싶다면 어떻게 해야할까?
삭제는 블록단위로만 이뤄지기에 A 페이지만 삭제할 수가 없다.
이런경우, A를 Invalid 페이지로 만들어 준 뒤 새롭게 저장될 A' 값을 새롭게 새로운 페이지로 써주게 된다.
그런데 이렇게 되면, A라는 값은 실제로 쓰고 있는 값이 아닌데 용량을 차지 하고 있기에 용량 낭비로 이어진다. 이런 낭비를 방지하기 위해 가비지 컬렉션이라는 것이 있다. 가비지 컬렉션은 유효한 페이지들만을 새로운 블록으로 복사해주누 뒤, 기존의 블록을 삭제하는 동작을 통해 공간을 정리하는 기능이다.
'CS 공부 > [강의] 혼공 컴퓨터구조 + 운영체제' 카테고리의 다른 글
[11/1] 장치 컨트롤러와 장치 드라이버 (0) | 2023.11.01 |
---|---|
[10/31] RAID 의 정의와 종류 (0) | 2023.10.31 |
[9/30] 다양한 보조기억장치 (하드디스크) (0) | 2023.09.30 |
[9/21] 캐시 메모리 (0) | 2023.09.21 |
[9/10] 명령어 집합구조, CISC와 RISC (0) | 2023.09.11 |