SSD(솔리드 스테이트 드라이브)는 속도, 낮은 전력 소비, 내구성 및 가벼운 무게와 같은 이점을 제공합니다. SSD는 HDD(하드 디스크 드라이브)만큼 널리 사용되었습니다. HDD와 SSD의 차이점은 데이터를 관리하는 방식입니다. 이 작업은 HDD보다 SSD에서 더 복잡합니다. 적절한 관리를 통해 SSD는 빠르고 드라이브 수명 동안 긴 내구성을 가집니다.
NAND(NOT-AND Gate) 기본 동작
단일 NAND 플래시 셀을 개별적으로 읽거나 쓰는 것은 불가능합니다. 데이터는 매우 특정한 속성으로 그룹화되고 액세스되어야 합니다. 다음은 SSD의 읽기, 쓰기 및 지우기 속성입니다.
1. 페이지 1에 정렬된 읽기는 운영 체제에서 1바이트만 요청할 수 있지만 SSD에서 전체 페이지를 검색하므로 필요한 것보다 훨씬 더 많은 데이터를 읽게 됩니다.
2. 페이지에 정렬하여 씁니다. SSD에 데이터를 쓸 때 쓰기는 페이지 크기의 증가에 따라 발생합니다. 쓰기 작업이 1바이트에만 영향을 미치더라도 전체 페이지를 플래시에 써야 합니다.
페이지에 데이터를 쓰는 방법:
ㅏ. 파란색 데이터는 데이터 쓰기를 나타냅니다.
비. 노란색의 새 데이터가 블록에 추가됩니다. 파란색 데이터도 업데이트해야 합니다. 덮어쓸 수 없기 때문에 다시 써야 하며 원래 데이터는 유효하지 않은 것으로 표시됩니다.
씨. 이 프로세스는 파란색 데이터가 업데이트를 받을 때마다 반복됩니다.
3. 블록 크기에 따라 정렬을 지웁니다. 페이지는 읽기/쓰기를 수행하지만 개별 페이지를 지우는 것은 불가능합니다. 한 번에 전체 블록을 지우는 것만 가능합니다.
읽기 및 쓰기는 페이지 수준에서 발생할 수 있지만 지우기(삭제)는 블록 수준에서만 발생할 수 있습니다. 사용자는 블록에서 또는 블록으로 얼마든지 페이지를 읽거나 쓸 수 있지만 사용자가 해당 블록의 일부를 지우려면 드라이브에서 블록을 지워야 합니다.
SSD의 지우기 작업 속성
ㅏ. 모든 페이지가 비어 있습니다.
비. 데이터가 기록됨
씨. 블록이 가득 찼습니다.
디. 데이터가 유효하지 않은 것으로 표시됩니다. 삭제 표시되지 않은 유효한 데이터는 새 데이터와 결합됩니다. 새로 결합된 그룹이 "움직입니다." 여기서 유효하지 않은 것으로 표시되지 않은 "양호한 데이터"는 파란색 블록과 녹색 블록에서 사용 가능한 페이지가 있는 빈 블록으로 다시 쓰여집니다.
이자형. 유효한 데이터는 다른 블록에 씁니다. 블록의 모든 데이터는 유효하지 않은 것으로 표시될 수 있습니다.
에프. 블록의 모든 데이터가 지워졌으므로 재사용할 수 있습니다.
플래시 변환 계층(FTL)
SSD는 SATA(직렬 ATA) 인터페이스와 동일한 호스트 인터페이스를 사용합니다. NAND 플래시 메모리의 내부 특성을 숨기고 LBA(논리 블록 주소) 배열만 호스트에 노출하려면 추가 구성 요소가 필요합니다. 이 구성 요소는 FTL 이며 SSD 컨트롤러에 상주합니다. FTL은 중요하며 논리적 블록 매핑과 가비지 수집이라는 두 가지 주요 용도가 있습니다.
논리적 매핑
논리적 블록 매핑은 호스트 공간의 LBA를 물리적 NAND 플래시 메모리 공간의 PBA(물리적 블록 주소)로 변환합니다. 이 매핑은 모든 LBA에 해당하는 PBA를 제공하는 테이블 형식을 취합니다. 이 매핑 테이블은 빠른 액세스를 위해 SSD의 캐시에 저장됩니다. 정전 시 플래시 메모리에 저장됩니다.
쓰레기 수거
SSD 컨트롤러의 가비지 수집 프로세스는 "유효하지 않은" 페이지가 지워지고 "사용 가능한" 상태로 복원되도록 합니다. 이것은 페이지를 부분적으로 쓸 수 없기 때문에 들어오는 쓰기 명령을 위한 공간을 만듭니다. 페이지의 데이터를 업데이트해야 하는 경우 새 데이터가 비어 있는 페이지에 기록되고 이전 데이터가 포함된 페이지는 유효하지 않은 것으로 표시됩니다. 블록에 유효하지 않은 페이지가 포함된 경우 다시 쓰기 전에 지워야 합니다.
요약
SSD 작동은 NAND 플래시의 기능에 의해 제한됩니다.
1. 쓰기 작업은 페이지 단위로 이루어져야 하며 페이지의 원래 내용을 덮어쓸 수 없습니다.
2. 데이터 삭제는 물리적 한계로 인해 블록 수준에서 이루어져야 합니다.