This is a good article. Click here for more information.

쓰기 증폭

Write amplification
SSD는 가비지 수집 및 마모 레벨링의 결과로 쓰기 증폭을 경험하여 드라이브의 쓰기를 늘리고 수명을 단축시킨다.[1]

WA(Write Amplification)는 플래시 메모리 및 SSD(Solid State Drive)와 관련된 바람직하지 않은 현상으로, 스토리지 미디어에 물리적으로 쓰여진 정보의 양이 쓰기 위한 논리적 양의 배인 것이다.

플래시 메모리는 다시 쓰기 전에 지워야 하기 때문에 쓰기 작업과 비교할 때 지우기 작업의 훨씬 더 세밀한 세분화로 이러한 작업을 수행하는 과정에서 사용자 데이터와 메타데이터를 두 번 이상 이동(또는 재작성)하게 된다.[a]따라서 일부 데이터를 다시 쓰려면 이미 사용된 플래시 포션을 읽고, 업데이트하고, 새로운 위치에 쓸 수 있어야 하며, 이전에 새 위치를 사용한 경우 초기에 지워야 한다.플래시의 작동 방식 때문에, 플래시의 훨씬 더 많은 부분을 새 데이터의 양에 실제로 필요한 것보다 지우고 다시 작성해야 한다.이 곱하기 효과는 SSD의 수명 동안 필요한 쓰기 횟수를 증가시켜 신뢰성 있게 작동할 수 있는 시간을 단축시킨다.쓰기가 증가하면 플래시 메모리에 대한 대역폭도 소비되므로 SSD에 대한 랜덤 쓰기 성능이 저하된다.[1][3]많은 요인이 SSD의 WA에 영향을 미칠 것이다. 어떤 요인은 사용자가 제어할 수 있으며, 어떤 요인은 SSD에 쓰여진 데이터와 사용의 직접적인 결과물이다.

인텔실리콘시스템스(2009년 웨스턴디지털이 인수)는 이르면 2008년 논문과 출판물에 쓰기 증폭이라는 용어를 사용했다.[4]WA는 일반적으로 플래시 메모리에 커밋된 쓰기 대 호스트 시스템에서 발생하는 쓰기의 비율로 측정된다.압축이 없으면 WA는 1 아래로 떨어질 수 없다.SandForce는 압축을 사용하여 SF-2281 컨트롤러에서 최저 0.14까지 쓰기 [5]증폭을 달성했다고 주장했다.[6]

기본 SSD 작동

낸드플래시 메모리는 4KiB페이지에서 데이터를 쓰고 256KiB블록에서 데이터를 지운다.[2]

플래시 메모리의 작동 특성 때문에 하드 디스크 드라이브에서처럼 데이터를 직접 덮어쓸 수 없다.데이터를 SSD에 처음 쓸 때 은 모두 지워진 상태에서 시작하므로 한 번에 페이지(대개 4~8KB)를 사용하여 데이터를 직접 쓸 수 있다.플래시 메모리와 호스트 시스템과의 인터페이스를 관리하는 SSD의 SSD 컨트롤러FTL(Flash Translation Layer)의 일부인 LBA(논리 블록 어드레싱)라고 하는 논리적 대 물리적 매핑 시스템을 사용한다.[7]이미 작성된 이전 데이터를 대체하는 데 새 데이터가 들어오면 SSD 컨트롤러는 새 데이터를 새 위치에 쓰고 새 물리적 위치를 가리키도록 논리적 매핑을 업데이트한다.이전 위치의 데이터는 더 이상 유효하지 않으므로 해당 위치를 다시 쓰기 전에 지워야 한다.[1][8]

플래시 메모리는 제한된 횟수만 프로그래밍하고 지울 수 있다.이를 플래시 메모리의 수명 동안 유지할 수 있는 최대 프로그램/삭제 주기(P/E 사이클)라고 한다.고성능과 긴 내구성을 위해 설계된 싱글 레벨 (SLC) 플래시는 일반적으로 50,000에서 10만 사이클 사이에서 작동할 수 있다.2011년 현재, 멀티 레벨 셀(MLC) 플래시는 저비용 애플리케이션을 위해 설계되었으며 일반적으로 3,000에서 5,000 사이의 사이클 수를 크게 줄였다.2013년부터 트리플 레벨 셀(TLC)(3D NAND) 플래시를 사용할 수 있게 되었으며, 사이클 카운트가 1,000개의 프로그램 삭제(P/E) 사이클로 감소하였다.쓰기 증폭은 플래시 메모리의 P/E 사이클 수를 줄여 SSD 수명을 늘리는 것과 같기 때문에 더 낮은 쓰기 증폭이 바람직하다.[1]

값 계산

용어 정의 전에는 항상 SSD에 쓰기 증폭 기능이 존재했지만, 인텔과[4][9] 실리콘 시스템즈 모두 논문과 출판물에 이 용어를 사용하기 시작한 것은 2008년이었다.[10]모든 SSD는 쓰기 증폭 값을 가지며, 현재 작성 중인 것과 이전에 SSD에 기록한 것을 모두 기반으로 한다.특정 SSD의 값을 정확하게 측정하려면 드라이브가 안정적인 상태에 도달했는지 확인하기 위해 선택한 테스트를 충분한 시간 동안 실행해야 한다.[3]

SSD의 쓰기 증폭을 계산하는 간단한 공식은 다음과 같다.[1][11][12]

가치에 영향을 미치는 요인

많은 요인들이 SSD의 쓰기 증폭에 영향을 미친다.아래 표에는 주요 요인과 이러한 요인들이 쓰기 증폭에 어떤 영향을 미치는지 나열되어 있다.변수가 있는 요인의 경우 표에는 직접 관계가 있는지 또는 관계가 있는지 여부가 나와 있다.예를 들어, 초과 프로비저닝의 양이 증가함에 따라 쓰기 증폭은 감소한다(상호 관계).인자가 토글(활성화 또는 비활성화) 함수인 경우 인자는 양 또는 의 관계를 갖는다.[1][7][13]

쓰기 증폭 계수
요인 설명 유형 관계*
쓰레기 수거 삭제 및 재작성할 차선 블록을 선택하는 데 사용되는 알고리즘의 효율성 변수 역(양)
초과 프로비저닝 SSD 컨트롤러에 할당된 물리적 용량의 백분율 변수 역(양)
SATA용 TRIME 명령 또는 SCSI용 UNMAP 이러한 명령은 스토리지 장치에 잘못된 데이터가 포함된 페이지를 알려주는 운영 체제(OS)에 의해 전송되어야 한다.이러한 명령을 수신하는 SSD는 페이지를 정리하기 위해 유효하지 않은 데이터를 복사하는 대신 지울 때 이러한 페이지가 포함된 블록을 사용 가능한 공간으로 회수할 수 있다. 토글 양수(양수(양수(양호)
사용 가능한 사용자 공간 실제 사용자 데이터가 없는 사용자 용량의 백분율. TRIM이 필요한 경우 SSD가 사용 가능한 사용자 용량의 혜택을 받지 못함 변수 역(양)
보안 삭제 SSD를 초기 Out-of-Box 성능으로 재설정하는 모든 사용자 데이터 및 관련 메타데이터 삭제(가비지 수집이 재개될 때까지) 토글 양수(양수(양수(양호)
웨어 레벨링 모든 블록을 가능한 모든 다른 블록에 균등하게 기록하도록 보장하는 알고리즘의 효율성 변수 직접(나쁨)
정적 데이터와 동적 데이터 분리 변경 빈도를 기준으로 데이터 그룹화 토글 양수(양수(양수(양호)
순차 쓰기 이론적으로 순차적 쓰기는 쓰기 증폭은 1이지만, 다른 요소들은 여전히 가치에 영향을 미칠 것이다. 토글 양수(양수(양수(양호)
랜덤 쓰기 비순차 LBA에 대한 쓰기는 쓰기 증폭에 가장 큰 영향을 미칠 것이다. 토글 음수(나쁨)
데이터 중복 제거를 포함하는 데이터 압축 데이터 압축 및 중복제거로 중복 데이터가 제거되면 쓰기 증폭은 줄어들고 SSD 속도는 향상된다. 변수 역(양)
SLC 모드에서 MLC NAND 사용 이것은 읽기 및 쓰기의 속도를 높이기 위해 설계된 셀당 비트 수(보통 셀당 2비트) 대신 셀당 1비트 속도로 데이터를 쓴다.SLC 모드의 NAND 용량 한계에 근접하면 SSD는 SLC 모드에서 작성된 가장 오래된 데이터를 MLC 또는 TLC 모드로 다시 작성해 SLC 모드 NAND의 공간이 더 많은 데이터를 수용할 수 있도록 삭제해야 한다.그러나 MLC 또는 TLC 모드에서 쓰기는 SLC 모드에서 쓰기보다 플래시에 더 많은 손상을 입히기 때문에 MLC 또는 TLC 모드에서 이러한 변경을 프로그래밍하지 않도록 SLC 모드로 자주 변경되는 페이지를 유지함으로써 마모를 줄일 수 있다.[citation needed]따라서, 이 접근방식은 쓰기 증폭을 촉진하지만, 자주 쓰는 페이지를 대상으로 하는 쓰기 패턴의 경우 마모를 줄일 수 있다.그러나 순차적, 무작위적 쓰기 패턴은 SLC 영역에 포함될 수 있는 자주 쓰여진 페이지가 없거나 적기 때문에 손상을 악화시킬 것이며, 오래된 데이터는 SLC 영역에서 MLC 또는 TLC로 지속적으로 다시 작성될 필요가 있다. 토글 음수(나쁨)
*관계 정의
유형 관계수정 설명
변수 직접 요인이 증가할수록 WA는 증가한다.
반비례 요인이 증가할수록 WA는 감소한다.
토글 긍정적인 인자가 있으면 WA가 감소한다.
네거티브 인자가 있으면 WA가 증가한다.

가비지 수집

페이지는 가득 찰 때까지 블록으로 쓰여진다.그런 다음 현재 데이터가 있는 페이지는 새 블록으로 이동하고 이전 블록은 지워진다.[2]

데이터는 페이지라고 불리는 단위로 플래시 메모리에 기록된다.그러나 이 메모리는 블록(여러 페이지로 구성)이라고 하는 더 큰 단위로만 지울 수 있다.[2]블록의 일부 페이지에 있는 데이터가 더 이상 필요하지 않으면(오래된 페이지라고도 함) 해당 블록에 좋은 데이터가 있는 페이지만 읽고 이전에 지워진 다른 빈 블록으로 다시 작성된다.[3]그런 다음 오래된 데이터를 이동하지 않음으로써 남은 자유 페이지를 새 데이터에 사용할 수 있다.이는 GC(가비지 수집)라고 불리는 과정이다.[1][11] 모든 SSD는 어느 정도 수준의 가비지 수집을 포함하지만, 언제, 얼마나 빨리 이 과정을 수행하느냐에 따라 다를 수 있다.[11]가비지 수집은 SSD 쓰기 증폭의 큰 부분이다.[1][11]

읽기는 플래시 메모리를 지울 필요가 없으므로 일반적으로 쓰기 증폭과 관련이 없다.읽기 방해 오류가 발생할 가능성이 제한적인 경우, 해당 블록의 데이터를 읽고 다시 쓰지만, 이는 드라이브의 쓰기 증폭에 어떠한 물질적 영향도 미치지 않는다.[14]

백그라운드 가비지 수집

가비지 수집 과정은 플래시 메모리에 데이터를 읽고 다시 쓰는 것을 포함한다.이것은 호스트로부터의 새로운 쓰기는 먼저 전체 블록의 읽기, 여전히 유효한 데이터를 포함하는 블록의 부분의 쓰기, 그리고 그 다음에 새로운 데이터의 쓰기가 요구된다는 것을 의미한다.이것은 시스템의 성능을 현저하게 떨어뜨릴 수 있다.[15]일부 SSD 컨트롤러는 유휴 가비지 수집 또는 유휴 시간 가비지 수집(ITGC)이라고도 하는 백그라운드 가비지 수집(BGC)을 구현하며, 여기서 컨트롤러는 유휴 시간을 사용하여 호스트가 새 데이터를 쓰기 전에 플래시 메모리 블록을 통합한다.이를 통해 기기 성능이 높은 상태를 유지할 수 있다.[16]

컨트롤러가 절대적으로 필요하기 전에 모든 예비 블록을 백그라운드 가비지 수집해야 하는 경우, 사전에 데이터를 이동할 필요 없이 호스트에서 작성된 새 데이터를 쓸 수 있으므로 성능이 최고 속도로 작동하도록 할 수 있다.트레이드오프는 그러한 데이터 블록 중 일부는 실제로 호스트에 의해 필요하지 않고 결국 삭제될 것이지만 OS는 (TRIM이 도입될 때까지) 컨트롤러에게 이 정보를 알려주지 않았다는 것이다.그 결과 곧 삭제될 데이터는 플래시 메모리의 다른 위치에 다시 쓰여 쓰기 증폭을 증가시킨다.OCZ의 일부 SSD에서는 백그라운드 가비지 수집이 소수의 블록만 삭제한 후 중지되므로 과도한 쓰기 작업이 제한된다.[11]또 다른 해결책은 호스트 쓰기와 병행하여 필요한 이동을 수행할 수 있는 효율적인 가비지 수집 시스템을 갖추는 것이다.이 솔루션은 SSD가 거의 유휴 상태가 아닌 높은 쓰기 환경에서 더욱 효과적이다.[17]SandForce SSD 컨트롤러와[15] Violin Memory의 시스템은 이러한 기능을 가지고 있다.[13]

파일 시스템 인식 가비지 수집

2010년 일부 제조업체(명칭 삼성)는 SSD에 사용되는 파일 시스템을 분석하기 위해 BGC 개념을 확장한 SSD 컨트롤러를 도입해 최근에 삭제된 파일과 분할되지 않은 공간을 식별했다.삼성은 이를 통해 TRIM을 지원하지 않는 시스템(운영 체제와 SATA 컨트롤러 하드웨어)도 유사한 성능을 얻을 수 있다고 주장했다.삼성 구현의 운영은 NTFS 파일 시스템을 가정하고 필요로 하는 것처럼 보였다.[18]이 기능이 현재 이들 제조업체로부터 SSD를 출하할 때 여전히 사용 가능한지는 확실하지 않다.MBR 및 NTFS를 사용하여 올바르게 포맷되지 않은 경우 이러한 드라이브에 대한 시스템 데이터 손상이 보고되었다.[citation needed]

트림

TRIM은 파일 삭제 또는 볼륨 포맷으로 인해 이전에 저장한 데이터의 블록이 더 이상 필요하지 않은 SSD를 운영 체제가 알려줄 수 있는 SATA 명령이다.파일 덮어쓰기와 마찬가지로 LBA가 OS로 대체될 때 SSD는 원래 LBA가 오래된 것으로 표시되거나 유효하지 않은 것으로 표시될 수 있으며 가비지 수집 중에 이러한 블록을 저장하지 않는다는 것을 알고 있다.사용자나 운영체제가 파일을 지우는 경우(파일을 일부만 지우는 것이 아니라) 파일은 일반적으로 삭제 표시되지만, 디스크의 실제 내용은 실제로 지워지지 않는다.이 때문에 SSD는 이전에 파일이 사용한 LBA를 지울 수 있다는 사실을 알지 못하기 때문에 SSD는 이러한 LBA를 가비지 수집에 계속 포함시킬 것이다.[19][20][21]

TRIM 명령의 도입으로 Windows 7, [20]Mac OS(Snow Leopard, Lion, Mountain Lion의 최신 릴리즈, 경우에 따라 패치 적용),[22] FreeB와 같이 이를 지원하는 운영 체제에서 이 문제가 해결되었다.SD는 버전 8.1 이후,[23] LinuxLinux 커널 메인라인 버전 2.6.33 이후.[24]파일이 영구적으로 삭제되거나 드라이브가 포맷되면 OS는 더 이상 유효한 데이터를 포함하지 않는 LBA와 함께 TRIM 명령을 전송한다.이는 SSD에 사용 중인 LBA를 지우고 재사용할 수 있음을 알려준다.이는 가비지 수집 중에 이동해야 하는 LBA를 감소시킨다.결과적으로 SSD는 쓰기 증폭을 낮추고 성능을 높일 수 있는 여유 공간을 더 갖게 될 것이다.[19][20][21]

한계 및 종속성

TRIM 명령에는 SSD의 지원도 필요하다.SSD의 펌웨어가 TRIM 명령을 지원하지 않는 경우, TRIM 명령과 함께 수신된 LBA는 유효하지 않은 것으로 표시되지 않고 드라이브가 여전히 유효하다고 가정하여 데이터를 가비지 수집을 계속한다.OS가 새로운 데이터를 이러한 LBA에 저장할 때에만 SSD는 원래의 LBA를 유효하지 않은 것으로 표시해야 한다.[21]원래 드라이브에 TRIM 지원을 구축하지 않은 SSD 제조업체는 사용자에게 펌웨어 업그레이드를 제공하거나 OS에서 잘못된 데이터에 대한 정보를 추출하고 SSD를 별도로 TRIM하는 별도의 유틸리티를 제공할 수 있다.효익은 사용자가 해당 효용을 매번 실행한 후에만 실현될 것이다.사용자는 백그라운드에서 주기적으로 실행되도록 유틸리티를 자동 스케줄링된 작업으로 설정할 수 있다.[15]

SSD가 TRIM 명령을 지원한다고 해서 반드시 TRIM 명령 직후 최고 속도로 성능을 발휘할 수 있는 것은 아니다.TRIM 명령 후 확보되는 공간은 SSD 전체에 걸쳐 임의의 위치에 있을 수 있다.개선된 성능을 보여주기 위해 데이터 쓰기 및 쓰레기 수거를 통합하기 전에 여러 번의 통과가 필요할 것이다.[21]

OS와 SSD가 TRIM 명령을 지원하도록 구성된 후에도 다른 조건은 TRIM의 혜택을 막을 수 있다. 2010년 초 현재 데이터베이스와 RAID 시스템은 TRIM을 인식하지 못하기 때문에 SSD에 정보를 전달하는 방법을 알지 못한다.이 경우 OS가 새로운 쓰기에 LBA를 사용할 때까지 SSD는 계속해서 이러한 블록을 저장하고 가비지를 수집할 것이다.[21]

TRIM 명령의 실제 이점은 SSD의 사용 가능한 사용자 공간에 따라 달라진다.SSD의 사용자 용량이 100GB이고 사용자가 실제로 95GB의 데이터를 드라이브에 저장한 경우 TRIM 작동은 가비지 수집 및 마모 평준화를 위해 5GB 이상의 여유 공간을 추가하지 않는다.이러한 상황에서 초과 프로비저닝 양을 5GB 늘리면 OS에서 TRIM 명령이 나올 때까지 기다릴 필요 없이 항상 5GB의 추가 사용 가능한 공간이 추가되기 때문에 SSD의 성능이 보다 일관될 수 있다.[21]

초과 프로비저닝

SSD에서[15][25] 발견된 초과 프로비저닝의 세 가지 소스(수준)

초과 프로비저닝(OP, 초과 프로비저닝 또는 초과 프로비저닝이라고도 함)은 플래시 메모리의 물리적 용량과 사용자가 사용할 수 있는 운영 체제(OS)를 통해 제공되는 논리적 용량의 차이점이다.SSD의 가비지 수집, 마모 레벨링 및 불량 블록 매핑 작업 중에 오버 프로비저닝을 통한 추가 공간은 컨트롤러가 플래시 메모리에 쓸 때 쓰기 증폭을 낮추는 데 도움이 된다.[4][25][26]초과 프로비저닝은 사용자가 사용할 수 있는 용량에 대한 추가 용량의 백분율로 표시된다.[27]

초과 프로비저닝은 일반적으로 다음 세 가지 소스에서 발생한다.

  1. 기비바이트(GiB) 대신 기가바이트(GB)의 용량 및 사용량 계산.HDD와 SSD 공급업체 모두 GB라는 용어를 십진수 GB 또는 1,000,000,000(= 109)바이트를 나타내기 위해 사용한다.대부분의 다른 전자 스토리지와 마찬가지로 플래시 메모리는 2의 힘으로 조립되므로 SSD의 물리적 용량은 이진 GB 또는 GiB당 1073,741,824(= 2)에30 기초한다.이 두 값 사이의 차이는 7.37% (= (2309 - 10) / 109 × 100%이다.따라서 추가 초과 프로비저닝이 0%인 128GB SSD는 사용자에게 128,000,000,000바이트(총 137,438,953,472개 중)를 제공할 것이다.이 초기 7.37%는 일반적으로 총 초과 프로비저닝 수에서 계산되지 않으며, 컨트롤러가 블록 상태 플래그와 같은 비 운영 체제 데이터를 추적하기 위해 일부 스토리지 공간이 필요하기 때문에 실제 사용 가능한 양은 대개 적다.[25][27]제조업자들binary/decimal 단위 발산 1000는 1024와 2048GB(소수 관해서 1TB=1,000,000,000,000 바이트지만, 1,099,511,627,776는 2진법으로)대신 1또는 2TB드라이브와 2000년 GB용량(931년과 1862년 GiB), 각각 제공할 추가학년을 이용하는 것은 그 7.37%수치 9.95%로 테라 바이트 범위에서 확장할 수 있다.[표창 필요한]
  2. 제조업체의 결정.이는 일반적으로 물리적 용량의 10진수 기가바이트와 사용자가 사용할 수 있는 공간의 10진수 기가바이트의 차이를 기준으로 0%, 7% 또는 28%에서 이루어진다.예를 들어, 제조업체는 128GB의 가능한 용량을 기준으로 100GB, 120GB 또는 128GB의 SSD 사양을 발표할 수 있다.이 차이는 각각 28%, 7% 및 0%이며, 제조사가 자사 드라이브에 28%의 초과 프로비저닝이 있다고 주장하는 근거가 된다.이는 소수점과 2진수 기가바이트의 차이에서 사용 가능한 용량의 7.37%를 더 계산하지 않는다.[25][27]
  3. 드라이브에서 사용되지 않는 부분을 보고하거나 현재 또는 미래의 용량을 희생하여 내구성과 성능을 얻는 것으로 알려진 드라이브 내 사용 가능 공간.이 여유 공간은 운영 체제에서 TRIM 명령을 사용하여 식별할 수 있다.또는 일부 SSD는 최종 사용자가 추가 초과 프로비저닝을 선택할 수 있는 유틸리티를 제공한다.또한 사용 가능한 공간의 100%보다 작은 전체 파티셔닝 레이아웃으로 SSD를 설정하는 경우, 분할되지 않은 공간은 SSD에 의해 초과 프로비저닝으로도 자동으로 사용된다.[27]그러나 초과 프로비저닝의 또 다른 원천은 운영 체제의 최소 여유 공간 제한이다. 일부 운영 체제는 특히 부팅 드라이브나 메인 드라이브에서 드라이브당 최소 여유 공간을 일정하게 유지한다.이러한 추가 공간을 SSD로 식별할 수 있다면, 아마도 TRIM 명령을 지속적으로 사용함으로써 반영구적인 초과 프로비저닝으로 작용할 것이다.초과 프로비저닝은 일시적이든 영구적이든 사용자 용량을 빼앗기는 경우가 많지만, 쓰기 증폭 감소, 내구성 향상, 성능 향상을 다시 제공한다.[17][26][28][29][30]

사용 가능한 사용자 공간

SSD 컨트롤러는 가비지 수집 및 마모 평준화를 위해 SSD의 자유 블록을 사용한다.사용자 데이터가 없는 사용자 용량 부분(이미 TRIMED 또는 처음부터 작성된 적이 없음)은 초과 프로비저닝 공간(사용자가 SSD에 새 데이터를 저장할 때까지)과 동일하게 보인다.사용자가 드라이브의 전체 사용자 용량의 절반만 소비하여 데이터를 저장하는 경우, 사용자 용량의 나머지 절반은 추가적인 초과 프로비저닝처럼 보일 것이다(시스템에서 TRIM 명령이 지원되는 한).[21][31]

보안 삭제

ATA Secure Erase 명령은 드라이브에서 모든 사용자 데이터를 제거하도록 설계되어 있다.통합 암호화가 없는 SSD의 경우, 이 명령은 드라이브를 원래의 기본 상태로 되돌린다.이렇게 하면 초기에는 성능을 가능한 가장 높은 수준과 최고의 쓰기 증폭(가장 낮은 수)으로 복원하지만 드라이브가 다시 가비지 수집을 시작하는 즉시 성능과 쓰기 증폭은 이전 수준으로 돌아가기 시작할 것이다.[32][33]많은 도구는 ATA Secure Erase 명령을 사용하여 드라이브를 재설정하고 사용자 인터페이스도 제공한다.업계에서 흔히 언급되는 한 가지 무료 도구를 HDDerase라고 한다.[33][34]GPartedUbuntu 라이브 CD는 보안 삭제를 포함한 부팅 가능한 디스크 유틸리티의 Linux 시스템을 제공한다.[35]

즉석에서 모든 쓰기를 암호화하는 드라이브는 다른 방법으로 ATA Secure Erase를 구현할 수 있다.보안 삭제 작업이 완료될 때마다 새 임의 암호화 키를 0으로 설정하고 생성하기만 하면 된다.이런 식으로 이전 데이터는 해독할 수 없기 때문에 더 이상 읽을 수 없다.[36]통합 암호화가 적용된 일부 드라이브는 그 이후의 모든 블록을 물리적으로 지워버리는 반면, 다른 드라이브는 드라이브를 원래의 Out-of-Box 상태로 되돌리기 위해 드라이브에 TRIM 명령을 전송해야 할 수 있다(그렇지 않으면 성능이 극대화되지 않을 수 있음).[37]

ATA Secure Erase – 데이터 지우기

일부 드라이브는 ATA Secure Erase로 데이터를 완전히 또는 부분적으로 삭제하지 못할 수 있으며, 데이터는 해당 드라이브에서 복구할 수 있는 상태로 유지된다.[38][39][40]

웨어 레벨링

특정 블록을 다른 블록에 기록하지 않고 반복적으로 프로그래밍하고 지우면 해당 블록이 다른 블록보다 먼저 마모되어 SSD의 수명이 조기에 종료된다.이러한 이유로 SSD 컨트롤러는 마모 레벨링이라는 기술을 사용하여 쓰기를 SSD의 모든 플래시 블록에 가능한 한 균등하게 분산시킨다.

완벽한 시나리오에서, 이것은 모든 블록이 최대 수명까지 쓰일 수 있도록 할 것이고, 따라서 그들은 동시에 실패하게 될 것이다.불행하게도 쓰기를 균등하게 분배하는 과정에서는 이전에 쓰여진 데이터와 변경되지 않는 데이터(콜드 데이터)를 이동해야 하기 때문에 더 자주 변화하는 데이터(핫 데이터)를 그 블록에 쓸 수 있다.호스트 시스템에 의해 변경되지 않고 데이터를 재배치할 때마다 쓰기 증폭을 증가시켜 플래시 메모리의 수명을 단축시킨다.핵심은 둘 다 극대화하는 최적의 알고리즘을 찾는 것이다.[41]

정적 데이터와 동적 데이터 분리

쓰기 증폭을 줄이기 위한 정적(콜드) 데이터와 동적(핫) 데이터의 분리는 SSD 컨트롤러의 단순한 프로세스가 아니다.이 프로세스를 수행하려면 SSD 컨트롤러가 지속적으로 변경되고 거의 변경되지 않고(정적 데이터) 다시 쓰기가 필요 없는 데이터(정적 데이터)로 LBA를 분리해야 한다.오늘날의 거의 모든 시스템과 마찬가지로 데이터가 동일한 블록에 혼합된 경우, 모든 재작성은 SSD 컨트롤러가 동적 데이터(처음 다시 쓰기를 야기함)와 정적 데이터(다시 쓰기를 요구하지 않은 데이터)를 모두 가비지로 수집해야 한다.달리 이동할 필요가 없는 데이터의 가비지 수집은 쓰기 증폭을 증가시킬 것이다.따라서 데이터를 분리하면 정적 데이터가 정지 상태를 유지할 수 있으며, 데이터를 다시 작성하지 않을 경우 해당 데이터에 대한 쓰기 증폭률이 가장 낮을 것이다.이 프로세스의 단점은 변경되지 않는 블록은 최대 P/E 사이클에 기록될 기회를 얻지 못하기 때문에 SSD 컨트롤러가 여전히 고정 데이터를 마모시킬 방법을 찾아야 한다는 것이다.[1]

성능 영향

순차 쓰기

SSD가 대량의 데이터를 순차적으로 작성할 때 쓰기 증폭은 쓰기 증폭이 없음을 의미하는 하나와 같다.그 이유는 데이터가 작성되면서 블록 전체가 순차적으로 같은 파일과 관련된 데이터로 채워지기 때문이다.OS가 파일을 교체하거나 삭제하기로 결정하면 전체 블록을 무효로 표시할 수 있으며, 가비지 수집 및 다른 블록으로 다시 쓰기 위해 일부를 읽을 필요가 없다.그것은 단지 지우면 되는데, 이것은 가비지 수집을 통해 무작위로 작성된 데이터에 필요한 읽기-지우기-수정-쓰기 과정보다 훨씬 쉽고 빠르다.[7]

랜덤 쓰기

SSD의 최대 랜덤 쓰기 성능은 SSD가 완전히 가비지 수집, 보안 삭제, 100% TRIME 또는 새로 설치된 후 많은 자유 블록에 의해 구동된다.최대 속도는 SSD 컨트롤러에 연결된 병렬 플래시 채널의 수, 펌웨어의 효율성 및 페이지에 쓰는 플래시 메모리의 속도에 따라 달라진다.이 단계 동안 쓰기 증폭은 무작위 쓰기에 있어 최고가 될 것이며 그 중 하나에 가까워질 것이다.블록이 모두 한 번 작성되면, 쓰레기 수거가 시작되고 그 공정의 속도와 효율에 의해 성능이 게이트될 것이다.이 단계에서 쓰기 증폭은 드라이브가 경험할 수 있는 최고 수준으로 증가한다.[7]

성능에 미치는 영향

SSD의 전반적인 성능은 쓰기 증폭을 포함한 여러 요인에 따라 결정된다.플래시 메모리 장치에 쓰는 것은 그것으로부터 읽는 것보다 더 오래 걸린다.[16]SSD는 일반적으로 성능을 높이기 위해 병렬로 연결된 여러 플래시 메모리 구성요소를 채널로 사용한다.SSD의 쓰기 증폭도가 높을 경우 컨트롤러는 플래시 메모리에 더 많은 횟수를 기록해야 한다.이렇게 하려면 호스트에서 데이터를 쓰는 데 훨씬 더 많은 시간이 필요하다.쓰기 증폭도가 낮은 SSD는 데이터를 많이 쓸 필요가 없으므로 쓰기 증폭도가 높은 드라이브보다 쓰기를 더 빨리 끝낼 수 있다.[1][8]

제품명세서

2008년 9월 인텔은 보고된 WA가 1.1인 X25-M SATA SSD를 발표했다.[5][42]2009년 4월, SandForce는 보고된 WA 0.5의 SF-1000 SSD Processor 제품군을 발표했는데, 이는 어떤 형태의 데이터 압축에서 나온 것으로 보인다.[5][43]이 발표 전에는 쓰기 증폭 1.0이 SSD로 달성할 수 있는 최저치로 간주되었다.[16]

참고 항목

메모들

  1. ^ 데이터는 페이지라고 불리는 단위로 플래시 메모리에 쓰여지는데, 이 단위는 여러 개의 셀로 구성되어 있다.그러나 메모리는 여러 페이지로 구성된 블록이라는 큰 단위로만 지울 수 있다.[2]

참조

  1. ^ a b c d e f g h i j Hu, X.-Y.; E. Eleftheriou; R. Haas; I. Iliadis; R. Pletka (2009). "Write Amplification Analysis in Flash-Based Solid State Drives". IBM. CiteSeerX 10.1.1.154.8668. {{cite journal}}:Cite 저널은 필요로 한다. journal=(도움말)
  2. ^ a b c d Thatcher, Jonathan (2009-08-18). "NAND Flash Solid State Storage Performance and Capability – an In-depth Look" (PDF). SNIA. Retrieved 2012-08-28.
  3. ^ a b c Smith, Kent (2009-08-17). "Benchmarking SSDs: The Devil is in the Preconditioning Details" (PDF). SandForce. Retrieved 2016-11-10.
  4. ^ a b c Lucchesi, Ray (September 2008). "SSD Flash drives enter the enterprise" (PDF). Silverton Consulting. Retrieved 2010-06-18.
  5. ^ a b c Shimpi, Anand Lal (2009-12-31). "OCZ's Vertex 2 Pro Preview: The Fastest MLC SSD We've Ever Tested". AnandTech. Retrieved 2011-06-16.
  6. ^ Ku, Andrew (6 February 2012). "Intel SSD 520 Review: SandForce's Technology: Very Low Write Amplification". TomsHardware. Retrieved 10 February 2012.
  7. ^ a b c d Hu, X.-Y. & R. Haas (2010-03-31). "The Fundamental Limit of Flash Random Write Performance: Understanding, Analysis and Performance Modelling" (PDF). IBM Research, Zurich. Retrieved 2010-06-19.
  8. ^ a b Agrawal, N., V. Prabhakaran, T. Wobber, J. D. Davis, M. Manasse, R. Panigrahy (June 2008). "Design Tradeoffs for SSD Performance". Microsoft. CiteSeerX 10.1.1.141.1709. {{cite journal}}:Cite 저널은 필요로 한다. journal=(도움말)CS1 maint: 여러 이름: 작성자 목록(링크)
  9. ^ Case, Loyd (2008-09-08). "Intel X25 80GB Solid-State Drive Review". Retrieved 2011-07-28.
  10. ^ Kerekes, Zsolt. "Western Digital Solid State Storage – formerly SiliconSystems". ACSL. Retrieved 2010-06-19.
  11. ^ a b c d e "SSDs – Write Amplification, TRIM and GC" (PDF). OCZ Technology. Archived from the original (PDF) on 2012-10-31. Retrieved 2012-11-13.
  12. ^ "Intel Solid State Drives". Intel. Retrieved 2010-05-31.
  13. ^ a b Kerekes, Zsolt. "Flash SSD Jargon Explained". ACSL. Retrieved 2010-05-31.
  14. ^ "TN-29-17: NAND Flash Design and Use Considerations" (PDF). Micron. 2006. Retrieved 2010-06-02.
  15. ^ a b c d Mehling, Herman (2009-12-01). "Solid State Drives Take Out the Garbage". Enterprise Storage Forum. Retrieved 2010-06-18.
  16. ^ a b c Conley, Kevin (2010-05-27). "Corsair Force Series SSDs: Putting a Damper on Write Amplification". Corsair.com. Retrieved 2010-06-18.
  17. ^ a b Layton, Jeffrey B. (2009-10-27). "Anatomy of SSDs". Linux Magazine. Retrieved 2010-06-19.
  18. ^ Bell, Graeme B. (2010). "Solid State Drives: The Beginning of the End for Current Practice in Digital Forensic Recovery?" (PDF). Journal of Digital Forensics, Security and Law. Archived from the original (PDF) on 2014-07-05. Retrieved 2012-04-02.
  19. ^ a b Christiansen, Neal (2009-09-14). "ATA Trim/Delete Notification Support in Windows 7" (PDF). Storage Developer Conference, 2009. Archived from the original (PDF) on 2010-03-26. Retrieved 2010-06-20.
  20. ^ a b c Shimpi, Anand Lal (2009-11-17). "The SSD Improv: Intel & Indilinx get TRIM, Kingston Brings Intel Down to $115". AnandTech.com. Retrieved 2010-06-20.
  21. ^ a b c d e f g Mehling, Herman (2010-01-27). "Solid State Drives Get Faster with TRIM". Enterprise Storage Forum. Retrieved 2010-06-20.
  22. ^ "Enable TRIM for All SSD's [sic] in Mac OS X Lion". osxdaily.com. 2012-01-03. Retrieved 2012-08-14.
  23. ^ "FreeBSD 8.1-RELEASE Release Notes". FreeBSD.org.
  24. ^ "Linux 2.6.33 Features". KernelNewbies.org. 2010-02-04. Retrieved 2010-07-23.
  25. ^ a b c d Bagley, Jim (2009-07-01). "Managing data migration, Tier 1 to SSD Tier 0: Over-provisioning: a winning strategy or a retreat?" (PDF). plianttechnology.com. p. 2. Archived from the original (PDF) on 2009-09-02. Retrieved 2016-06-21.
  26. ^ a b Drossel, Gary (2009-09-14). "Methodologies for Calculating SSD Useable Life" (PDF). Storage Developer Conference, 2009. Retrieved 2010-06-20.
  27. ^ a b c d Smith, Kent (2011-08-01). "Understanding SSD Over-provisioning" (PDF). FlashMemorySummit.com. p. 14. Retrieved 2012-12-03.
  28. ^ Shimpi, Anand Lal (2010-05-03). "The Impact of Spare Area on SandForce, More Capacity At No Performance Loss?". AnandTech.com. p. 2. Retrieved 2010-06-19.
  29. ^ OBrien, Kevin (2012-02-06). "Intel SSD 520 Enterprise Review". Storage Review. Retrieved 2012-11-29. 20% over-provisioning adds substantial performance in all profiles with write activity
  30. ^ "White Paper: Over-Provisioning an Intel SSD" (PDF). Intel. 2010. Archived from the original (PDF) on November 25, 2011. Retrieved 2012-11-29. Alt URL
  31. ^ Shimpi, Anand Lal (2009-03-18). "The SSD Anthology: Understanding SSDs and New Drives from OCZ". AnandTech.com. p. 9. Retrieved 2010-06-20.
  32. ^ Shimpi, Anand Lal (2009-03-18). "The SSD Anthology: Understanding SSDs and New Drives from OCZ". AnandTech.com. p. 11. Retrieved 2010-06-20.
  33. ^ a b Malventano, Allyn (2009-02-13). "Long-term performance analysis of Intel Mainstream SSDs". PC Perspective. Archived from the original on 2010-02-21. Retrieved 2010-06-20.
  34. ^ "CMRR – Secure Erase". CMRR. Archived from the original on 2012-07-02. Retrieved 2010-06-21.
  35. ^ OCZ Technology (2011-09-07). "How to Secure Erase Your OCZ SSD Using a Bootable Linux CD". Archived from the original on 2012-01-07. Retrieved 2014-12-13.
  36. ^ "The Intel SSD 320 Review: 25nm G3 is Finally Here". anandtech. Retrieved 2011-06-29.
  37. ^ "SSD Secure Erase – Ziele eines Secure Erase" [Secure Erase – Goals of the Secure Erase] (in German). Thomas-Krenn.AG. 2017-03-17. Retrieved 2018-01-08.
  38. ^ "ATA Secure Erase (SE) and hdparm". 2016-11-06. Retrieved 2018-01-08.
  39. ^ "Beware – When SECURE ERASE doesn't erase at all". The HDD Oracle. 2015-11-15. Retrieved 2018-01-08.
  40. ^ Wei, Michael; Grupp, Laura M.; Spada, Frederick E.; Swanson, Steven (February 15–17, 2011). Reliably Erasing Data From Flash-Based Solid State Drives (PDF). 9th USENIX Conference on File and Storage Technologies (FAST'11). San Jose, California. Retrieved 2018-01-08.
  41. ^ Chang, Li-Pin (2007-03-11). "On Efficient Wear Leveling for Large Scale Flash Memory Storage Systems". National ChiaoTung University, HsinChu, Taiwan. CiteSeerX 10.1.1.103.4903. {{cite journal}}:Cite 저널은 필요로 한다. journal=(도움말)
  42. ^ "Intel Introduces Solid-State Drives for Notebook and Desktop Computers". Intel. 2008-09-08. Retrieved 2010-05-31.
  43. ^ "SandForce SSD Processors Transform Mainstream Data Storage" (PDF). SandForce. 2008-09-08. Retrieved 2010-05-31.

외부 링크