■ 플래시 메모리 (Flash Memory)
플래시 메모리란, 전기적으로 데이터를 읽고 쓰는 반도체 기반의 저장 장치이다. 비휘발성 기억장치인 ROM에도 사용이 되고, DRAM/SRAM 등의 휘발성 장치에도 사용이 되어진다.
주로 사용되는 보조기억장치로는 HDD, SSD, USB 등이 있다. 이중에서 SSD, USB는 플래시 메모리에 속하는 저장장치이다.
▼ 출처 (PaxDisk)
플래시 메모리는 크게 NAND 메모리, NOR 메모리의 종류로 나뉜다. 이 중에서 대용량 저장장치로 주로 사용되어지는 것은, 비교적 저렴한 가격의 특징을 가진, NAND 플래시 메모리이다.
■ NAND 플래시 메모리 논리적 구조
플래시 메모리는 셀(Cell)을 가장 작은 단위로 사용하고 있다. 이 셀들이 모여 KB부터 TB 등의 용량을 저장하는 장치가 되는 것이다. 하나의 셀에 몇 비트를 저장할 수 있는 지에 따라 플래시 메모리의 종류가 또 나뉘게 된다.
(1) SLC (Single Level Cell)
한 셀에 1비트를 저장할 수 있는 플래시 메모리를 SLC 타입이라고 한다.
특징으로는 한 셀로 2개의 정보를 표현할 수 있다 (0, 1). 플래시 메모리는 수명이 있기 때문에, 한 셀에 1비트를 사용하는, SLC 타입의 메모리가 제일 수명이 길다.
(2) MLC (Multiple Level Cell)
한 셀에 2비트를 저장할 수 있는 플래시 메모리를 MLC 타입이라고 한다.
(3) TLC (Triple-Level Cell)
한 셀에 3비트를 저장할 수 있는 플래시 메모리를 TLC 타입이라고 한다.
(4) QLC (Quad-Level Cell)
한 셀에 3비트를 저장할 수 있는 플래시 메모리를 TLC 타입이라고 한다.
위 타입들을 표로 표현하자면 아래와 같다.
SLC | MLC | TLC | QLC | |
셀당 비트 | 1bit | 2bit | 3bit | 4bit |
수명 | 길다 | 보통 | 짧다 | 매우 짧다 |
읽기/쓰기 속도 | 빠르다 | 보통 | 느리다 | 매우 느리다 |
용량 대비 가격 | 높다 | 보통 | 낮다 | 매우 낮다 |
위와 같은 특징을 갖고 있지만, 요즈음 생산되는 TLC 및 QLC 제품은 충분한 성능과 수명을 제공하기 때문에 많이들 사용되어지고 있다. 기업 내 전문적인 사용 목적이 아니라면 TLC 제품을 많이 사용들 한다.
현재 필자도 Samsung 970 EVO Plus M.2 NVMe (2TB) 제품을 사용하고 있는데 TLC NAND 플래시 메모리이다.
셀(Cell)보다 더 큰 단위를 파악해보자면,
셀들이 모여진 단위를 페이지(Page), 페이지가 모여 블록(Block), 블록이 모인 단위를 플레인 (Plane), 플레인이 모여 다이(Die)가 된다.
■ 플래시 메모리 읽기/쓰기
플래시 메모리의 읽기 및 쓰기는 페이지(Page) 단위로 이루어진다. 하지만 삭제는 블록(Block) 단위로 이루어진다.
위 두 액션에 사용되어지는 단위가 다르다는 것이 플래시 메모리의 큰 특징 중 하나이다.
페이지는 총 세 개의 상태를 가질 수 있다.Free, Valid, Invalid 이다.
(1) Free : 어떠한 데이터도 저장되어 있지 않아서 새로운 데이터를 읽어들일 준비가 되어있음.
(2) Valid : 이미 유효한 데이터를 저장하고 있음.
(3) Invalid : 유효하지 않은 값 (쓰레기 값)이 저장되어 있는 상태를 의미함.
* 플래시 메모리는 HDD와 달리 덮어쓰기가 불가능하여 Valid 상태인 페에지는 새 데이터를 저장할 수 없다.
간단한 동작 예시는 아래와 같다.
블록1이 있으며 Valid 상태의 페이지가 총 두 개 (A, B)가 있다고 하자.
여기에 데이터 C를 저장하고 싶다면 아래와 같이 동작한다.
만약 여기서 기존의 데이터 B를 B'으로 수정하고 싶다면 아래와 같이 동작한다.
Free공간인 네번째 페이지에 새로운 데이터 B'을 저장한 뒤 B는 Invalid 상태가 되어 더 이상 값이 유효하지 않은 쓰레기 값이 되어버린다. 결과적으로 블록B의 Valid 페이지는 A, C, B'이 되는 것이다.
하지만 위와 같이 Invalid 페이지 메모리가 계속 잔여한다면 공간 낭비가 된다. 삭제는 Block 단위로 이루어지므로 두번째 페이지만 삭제할 수가 없는 상황이다.
이와 같이 쓰레기 값을 저장하고 있는 공간을 버리기 위해서 플래시 메모리는 가비지 컬렉션 (Garbage Collection) 기능을 수행한다.
가비지 컬렉션은 위와 같이 Block에서 유효한 Page들만 새로운 Block으로 복사한 뒤, 기존의 Block을 삭제하여 메모리 공간 확보 및 정리하는 기능이다.
'Computer Science > Computer Architecture' 카테고리의 다른 글
[컴퓨터 구조] 메모리 계층 구조, 캐시 메모리 (0) | 2024.12.01 |
---|---|
[컴퓨터 구조] 메모리 주소 (1) | 2024.12.01 |
[컴퓨터 구조] RAM (0) | 2024.12.01 |
[컴퓨터 구조] ISA, CISC, RISC (1) | 2024.10.06 |
[컴퓨터 구조] 명령어 병렬 처리기법 (ILP) (2) | 2024.10.06 |