1P by GN⁺ | ★ favorite | 댓글 1개
  • Crucial BX500의 QLC NAND를 MPTools로 pSLC 모드로 재구성해, 용량을 500GB에서 약 120GB로 줄이는 대신 내구성과 일부 성능을 크게 높인 실험임
  • 변환은 Silicon Motion SM2259XT2 컨트롤러와 Micron N48R NAND 조합에 맞춘 펌웨어·설정 작업이며, 실패하면 SSD 손상, 보증 무효, 데이터 삭제가 발생할 수 있음
  • 기본 QLC 상태의 계산상 TBW는 120TB였지만, pSLC 모드에서는 60,000 P/E 사이클·120GB 용량·WAF 1.8 기준 4,000TB TBW까지 늘어나는 것으로 계산됨
  • 짧은 순차 벤치마크에서는 차이가 작았지만, 랜덤 성능·지연시간·PCMark 10 생산성 테스트·장시간 쓰기에서는 pSLC 모드의 차이가 뚜렷함
  • 기본 상태는 약 45GB SLC 캐시 이후 평균 50MB/s 수준으로 떨어졌고, pSLC 변환 후에는 120GB 전체와 반복 쓰기에서도 약 498~500MB/s를 유지함

실험 대상과 위험 요소

  • 실험 대상은 여러 차례 테스트한 Crucial BX500 SSD임
  • 절차 자체는 오버클러킹보다 안전하더라도 펌웨어 플래싱을 포함하므로 주의가 필요함
  • 펌웨어를 플래싱하면 모든 데이터가 삭제되므로 백업이 필요함
  • 변환을 수행하면 SSD 보증이 무효화됨
  • 필요한 도구는 Jmicron JMS578 Bridge Chip 기반 SATA-USB 3.0 어댑터와, SSD PCB의 ROM/Safe Mode 단자를 쇼트하기 위한 클램프임

BX500 하드웨어 구성

  • 컨트롤러는 Silicon Motion SM2259XT2이며, SM2259XT의 변형 모델임
    • 단일 코어 컨트롤러
    • 32비트 ARC 아키텍처
    • 최대 550MHz 동작 가능
    • 이 SSD에서는 437.5MHz로 동작함
  • SM2259XT2는 최대 2개 채널과 채널당 최대 8개 Chip Enable을 지원하며, interleaving으로 최대 16개 die와 통신할 수 있음
  • 비교 대상인 SM2259XT는 4채널과 4개 C.E. 구성으로 최대 16개 die를 지원함
  • 이 SATA SSD는 DRAM-Less 구조이며 Host Memory Buffer도 지원하지 않음

NAND와 기본 동작 특성

  • 500GB 모델에는 “NY240”으로 표기된 NAND 플래시 2개가 탑재됨
  • 디코딩 결과 Micron MT29F2T08GELCEJ4-QU:C, N48R Media Grade NAND로 확인됨
    • die당 1Tb, 즉 128GiB
    • 176개 데이터 레이어와 총 195개 게이트
    • 어레이 효율 90.2%
  • NAND 플래시당 2개 die가 들어 있어 NAND당 256GB, 전체 약 500GB 구성이 됨
  • NAND는 컨트롤러와 262.5MHz, 즉 525MT/s로 통신함
  • N48R die는 800MHz, 즉 1600MT/s까지 동작 가능하지만 이 SSD에서는 훨씬 낮게 설정됨
  • 낮은 속도 설정은 전력·발열 절감, 고속 동작 품질 기준 미달, 낮은 내구성 가능성, 저가 NAND 공급 가능성 등과 관련될 수 있음

MPTools 기반 변환 절차

  • Silicon Motion 컨트롤러용 양산 도구인 MPTools를 사용함
  • 사용한 도구는 “SMI SM2259XT2 MPTool FIMN48 V0304A FWV0303B0”이며, 컨트롤러와 NAND 플래시에 모두 맞아야 함
  • 먼저 SSD에서 기존 파라미터를 읽어 보존해야 함
    • Flash IO Driving과 하위 항목
    • Flash Control Driving
    • Flash DQS/Data Driving
    • Control ODT
    • Flash ODT
    • Schmitt Window Trigger
  • MPTools의 Scan으로 SSD를 찾고, “Ready (FW: M6CR061, MN48R)” 항목에서 공장 설정과 컨트롤러·NAND 속도를 확인함
  • 공정한 비교를 위해 컨트롤러와 NAND 주파수는 기존 값으로 유지함

pSLC 모드 활성화 설정

  • “Edit Config”에서 프로젝트 이름과 펌웨어 버전 태그를 설정함
    • 예시 모델명은 “SSD SLC Test”
    • 예시 펌웨어 버전은 “SSD-SLC”
  • Flash Control Driving과 Flash DQS/Data Driving은 기존 값인 66(hex) 을 유지함
  • CPU와 NAND 주파수도 기존 비교 조건에 맞추고, Output driving은 03H로 둠
  • MPTools의 Setting.set 파일을 수정해 pSLC 관련 옵션을 노출함
    • [Function]ENFWTAG=1ENFWTAG=0으로 변경
    • [Option]EnSLCMode=1 추가
  • 이후 MPTools에 Force SLC Mode 옵션이 나타남
  • 펌웨어 폴더 내 boot·초기화 파일을 특정 디렉터리로 복사해야 실제 변환이 가능함
  • 이 파일 절차는 SM2259XT2 + N48R NAND 조합에 맞춘 것이며, 다른 NAND는 폴더 이름과 파일 구성이 달라짐
  • 일부 NAND 모델은 100% 호환되지 않을 수 있고, 테스트된 NAND는 Intel과 Micron NAND임

내구성 계산

  • 내구성 계산에는 Write Amplification Factor, NAND Program/Erase Cycle, SSD 용량이 필요함
  • 더 정밀한 계산에는 JEDEC JESD218A 기준과 Wear-Leveling Efficiency 같은 추가 파라미터가 들어감
  • 기본 QLC 상태의 SSD는 TBW 120TB, N48R Media Grade NAND의 P/E 사이클 약 900으로 계산됨
  • 기본 상태의 WAF는 계산상 3.75였고, 실제 테스트에서는 약 3.8에 가까웠음
  • pSLC 상태에서는 NAND die가 데이터시트 기준 최대 60,000 P/E cycles를 견딜 수 있음
  • pSLC 변환 후 용량은 약 0.12TB, 즉 120GB로 줄어듦
  • WAF 1.8 기준 계산 결과 TBW는 4,000TB
  • TBW는 500GB QLC 상태의 120TB에서 120GB pSLC 상태의 4,000TB로 증가해, 증가율이 3333% 이상임

성능 테스트 환경

  • OS는 Windows 11 Pro 64-bit 23H2임
  • CPU는 Intel Core i7-13700K이며, 모든 코어 5.7GHz로 설정됨
  • RAM은 2×16GB DDR4-3200MHz CL16 Netac 구성임
  • 메인보드는 MSI Z790-P PRO WIFI D4, BIOS 버전은 7E06v18임
  • GPU는 RTX 4060 Galax 1-Click OC임
  • OS 드라이브는 Solidigm P44 Pro 2TB, 테스트 대상 SSD는 BX500 “SLC-Test”로 사용됨
  • Windows 인덱싱, 업데이트, 백그라운드 앱, 안티바이러스는 테스트 변동을 줄이기 위해 비활성화됨
  • 테스트 SSD는 보조 드라이브로 사용됐고, 0% 사용 상태와 50% 사용 상태 테스트가 포함됨
  • 전력 테스트는 Quarch PPM QTL1999로 idle, 1시간 쓰기 테스트, 평균 전력 소비를 측정함

CrystalDiskMark 결과

  • 순차 테스트는 2×1GiB, 1MiB 블록, 8 queues, 1 thread 구성임
  • 랜덤 테스트는 2×1GiB, 4KiB 블록, 1 queue, 1/2/4/8/16 threads 구성임
  • 순차 테스트에서는 차이가 거의 없었음
    • 기본 pSLC 캐시만으로도 SATA SSD의 최대 대역폭과 제조사 순차 속도에 도달했기 때문임
    • 더 길고 무거운 벤치마크에서는 차이가 나타남
  • 지연시간은 상당히 감소함
    • 기본 상태에서는 idle 이후 NAND가 QLC native mode에서 읽기·쓰기를 시작하고, SLC로 재프로그램되기 전까지 지연이 있음
    • pSLC 모드에서는 항상 pSLC 상태이므로 지연시간이 더 낮음
  • 랜덤 속도는 순차 속도보다 차이가 더 컸음
  • QD1에서는 읽기 속도가 16% 이상, 쓰기 속도가 30% 이상 증가함

ATTO, 3DMark, PCMark 10 결과

  • ATTO Disk Benchmark는 512B부터 8MiB까지 블록 크기와 256MB 파일 크기, Queue Depth 1·4로 테스트됨
  • ATTO에서는 pSLC 모드 SSD가 모든 블록 크기에서 기본 상태 SSD보다 앞섬
  • QD1에서도 같은 패턴이 반복됐지만, 일부 블록 크기에서는 QD4보다 차이가 작았음
  • 3DMark Storage Benchmark는 게임 로딩, OBS 1080p 60FPS 녹화·스트리밍, 게임 설치, 게임 폴더 파일 전송 등을 포함함
  • 3DMark처럼 가벼운 실제 환경에서도 성능 차이와 지연시간 차이가 있었지만, 일상 사용에서 완전히 체감될 수준은 아닐 수 있음
  • PCMark 10 Full System Drive Benchmark는 생산성 중심이며 쓰기 비중이 3DMark보다 큼
  • PCMark 10에서는 실사용 차이가 뚜렷했고, 성능 차이는 거의 두 배에 가까웠음

Premiere Pro, 부팅, 게임 로딩

  • Adobe Premiere Pro 2021 테스트는 약 16.5GB, 4K 해상도, 120Mbps 비트레이트, 효과가 많은 프로젝트를 편집 가능 상태까지 여는 시간을 측정함
  • Premiere Pro 프로젝트 로딩은 주로 순차 읽기 시나리오라 차이가 거의 없었고, 실행 간 변동 수준에 가까웠음
  • Final Fantasy XIV 벤치마크로 게임 로딩 시간을 비교함
  • 게임 로딩은 DirectStorage와 다른 API 제한 때문에 큰 차이를 느끼기 어려움
  • Windows 부팅도 새 시스템 기준이지만, SSD에 적용한 기능을 활용하지 못해 큰 차이가 나지 않음

SLC 캐시와 장시간 쓰기

  • 현재 많은 SSD는 저장 공간 일부를 SLC Caching으로 사용함
    • MLC, TLC, QLC NAND 일부를 셀당 1비트 저장 영역으로 쓰기·읽기 버퍼처럼 사용함
    • 버퍼가 소진되면 컨트롤러가 native NAND 영역에 기록함
  • IOmeter 테스트 결과 이 SSD의 기본 pSLC 캐시는 동적이며 약 45GB로 보임
  • 기본 상태에서는 캐시가 끝날 때까지 평균 약 493MB/s를 유지함
  • 45GB 기록 이후에는 folding 과정에 들어가며, QLC SSD의 약점이 드러남
  • 캐시 이후 지속 쓰기 속도는 평균 약 50MB/s로 낮아짐
  • pSLC 변환 후에는 120GB 전체 용량을 평균 498MB/s로 기록함
  • 500GB까지 써서 용량을 4회 이상 반복 기록해도 거의 500MB/s를 유지함
  • pSLC 캐시, folding, native 영역을 합산한 평균 쓰기 속도 차이는 거의 10배 수준임

파일 복사, 온도, 전력

  • 파일 복사 테스트는 RAM Disk에서 SSD로 Windows 10 21H1 ISO 6.25GB와 CSGO 설치 폴더 25.2GB를 복사함
  • 두 테스트 파일 모두 기본 SSD의 SLC 캐시 45GB보다 작아, 현실적인 복사 테스트에서는 차이가 없었음
  • 더 큰 파일을 테스트하지 않은 이유는 RAM Disk에 사용할 수 있는 메모리가 32GB로 제한됐기 때문임
  • 온도 테스트에서는 SSD가 크게 뜨거워지지 않았고, 센서는 NAND Flash 센서로 추정됨
  • 전력 테스트에서는 pSLC 변환 후 효율이 크게 증가함
    • 기본 QLC 상태는 45GB 캐시를 크게 초과하는 테스트에서 55MB/s 미만으로 오래 동작해 효율이 낮았음
    • pSLC 모드는 자기 용량의 두 배를 쓰는 동안 대역폭이 떨어지지 않았고, 전력 소비도 더 낮았음
  • pSLC 모드에서 전력 소비가 줄어든 이유는 SLC NAND가 2개의 논리 레벨만 사용해 필요한 threshold voltage가 낮기 때문임
  • QLC NAND는 16개 논리 레벨을 사용하므로 더 높은 threshold voltage가 필요함
  • idle 상태에서도 pSLC 모드의 소비 전력이 더 낮았음

결론

  • 절차가 올바르게 수행되지 않으면 SSD가 손상될 수 있어 신중해야 함
  • pSLC 변환의 성능 차이는 시나리오에 따라 달라짐
    • 짧은 순차 벤치마크, 작은 파일 복사, 게임 로딩, Windows 부팅에서는 차이가 작음
    • 랜덤 성능, 지연시간, 생산성 테스트, 장시간 쓰기에서는 차이가 큼
  • 가장 큰 변화는 내구성이며, 계산상 TBW가 120TB에서 4,000TB로 증가함
  • 대신 사용 가능한 용량은 500GB에서 약 120GB로 줄어듦

댓글과 토론

Hacker News 의견들
  • 저가형 DRAM 없는 SSD를 pSLC 모드로 쓰려고 그렇게까지 고생할 필요는 없음
    그냥 전체 용량의 25~33%만 쓰도록 언더 프로비저닝하면 됨
    대부분의 저가 DRAM 없는 컨트롤러는 전체 디스크 캐싱 모드로 동작해서, 먼저 모든 쓰기를 pSLC로 하고 셀이 다 찬 뒤에야 일부 셀을 TLC/QLC로 다시 묶어 공간을 확보함
    TLC라면 디스크의 1/3, QLC라면 1/4 크기 파티션만 만들고 나머지 빈 공간이 TRIM된 채로 절대 쓰이지 않게 하면 항상 pSLC로 쓰게 됨
    관심 있는 SSD가 이런 방식인지 확인하려면 해당 모델의 "HD Tune" 전체 디스크 쓰기 벤치마크를 찾아보면 됨. 처음 1/3~1/4 구간은 빠르다가 나머지 구간에서 처참하게 느려지면 전체 디스크 캐싱 모드라고 봐도 됨

    • 이 상태가 계속 유지되는지 어떻게 확인할 수 있을지 궁금함
      디스크 일부만 파티션으로 잡는 방식은 160GB SCSI 시절의 “바깥쪽 섹터만 쓰자” 같은 느낌이 듦
    • LBA의 일부만 접근한다면 이상적인 FTL은 실제로 그렇게 동작할 것임
      다만 말한 것처럼 제조사가 펌웨어를 다르게 맞출 수 있고, 이 개조는 전체 공간이 SLC로 쓰이도록 사실상 보장해 줌
    • 원문 끝부분의 “SLC CACHING” 섹션을 보면 됨
      이 접근은 실제 SLC 캐시가 120GB라도 45GB까지만 잘 동작할 텐데, SLC가 완전히 소모되기 전에 페이징을 위해 프로세스가 시작되기 때문임
      드라이브 SLC 용량의 66%가 필요 없다면 작은 파티션 방식이 더 쉽고 안전하긴 함
    • 빈 공간이 TRIM됐는지는 어떻게 보장할 수 있나? 디스크의 일부 구간만 TRIM할 수 있는지 궁금함
  • 이 해킹은 480GB SSD를 120GB SSD로 바꾸는 셈임
    대신 쓰기 내구성, 즉 고장을 예상하기 전까지 쓸 수 있는 데이터량이 120TB에서 4000TB로 늘어나니 로그 저장용 디스크 같은 데는 아주 유용한 절충일 수 있음
    제조사가 이런 옵션을 제공하는 걸 본 적은 없는데, 왜 안 하는지 궁금함

    • 산업용으로 SLC SSD를 파는 회사들은 있음
      예를 들면 Swissbit처럼 TLC나 QLC 플래시를 쓰되 그 모드로 쓰지 않는 제품을 산업용으로 판매함
    • 저자가 쓰기 증폭 계수를 3.8에서 2.0으로 낮췄다고 하면서 내구성이 30배 늘었다고 계산하는 과정이 이해가 안 됨
      그 정도면 2배쯤이 예상됨
      보기에는 초기값에는 OEM 보증 수치인 120TBW를 쓰고, 최종값에는 NAND의 P/E 사이클 사양을 쓰는 것 같아서 수상함
      놓친 게 있다면 pSLC 모드가 셀 프로그래밍 전압을 크게 낮춰 P/E 사이클을 극적으로 늘리는 경우일 텐데, 그건 쓰기 증폭 계수에 포함돼야 할 것 같음
    • ZFS나 Synology의 캐시 디스크로 쓰면 유용할지 궁금함. 추가 손질은 필요하겠지만
    • 제조사들은 이미 TLC 드라이브 형태로 이런 걸 제공함
      이 해킹은 데이터 손실을 일으킬 수 있고 지원도 안 되지만, TLC 드라이브는 지원됨
      이 방식은 120GB에 4000TB 쓰기 내구성을 주지만, 200달러면 4TB TLC 드라이브에 3000TB 쓰기 내구성을 살 수 있음
    • 데이터 보존성은 펌웨어 구현에 달려 있는데, 사용자는 그 안을 전혀 볼 수 없음
      대부분의 소비자용 드라이브는 보존성을 낮출 가능성이 큼
  • 글에서 두드러지게 말하지 않은 부분은 내구성과 데이터 보존성이 매우 밀접하다는 점임
    플래시 셀은 사이클을 거칠수록 누설이 커지는 방식으로 마모되고, 그래서 사이클이 많을수록 전하를 더 빨리 잃음
    SLC는 QLC처럼 16개 상태를 구분하는 대신 2개 상태만 구분하면 되므로, 같은 사이클 수라면 SLC 모드에서 데이터가 훨씬 오래 유지됨
    즉 이 개조는 극단적인 내구성뿐 아니라 보존성도 얻는다는 뜻임
    제조사는 보통 “M 사이클 이후 N년” 식으로 이를 표기하는데, 초기 SLC는 100K 사이클 후 10년으로 평가됐고, 이 QLC는 QLC 모드에서는 900사이클 후 1년, SLC 모드에서는 60K 사이클 후 1년일 수 있음
    블록을 실제로 그렇게 많이 순환시키지 않는다면 보존성은 훨씬 높아질 것임
    펌웨어가 SLC 모드 블록에도 QLC에 필요한 더 강한 오류 정정 코드를 그대로 쓰는지는 모르겠지만, 그렇다면 신뢰성도 더 올라감

  • 약 10년 전에 벤치마크용으로 마지막 생산분에 가까운 FusionIO SLC 카드 몇 장을 손에 넣은 적이 있음
    소프트웨어는 고객이 용량을 늘려 쓰고 싶어 하던 인메모리 데이터베이스였고, 말 그대로 Fusion 카드를 스왑으로만 썼음
    데이터를 몇 분 로드하고 나니 커널이 안정됐고 정말 잘 동작했음
    500달러짜리 컴퓨터에서 수십억 레코드에 초당 수백만 트랜잭션이 나왔고, 카드는 내 차보다 비쌌음
    요즘이라면 절대 그렇게 안 하겠지만, 굉장히 인상적인 장비였음

    • 예전에 일하던 곳에서는 FusionIO가 회사를 살렸다고 말할 수 있음
      앱의 상당 부분을 단일 Postgres 데이터베이스가 떠받치고 있었고, 수평 확장 프로젝트를 시작하려 했지만 별 성과가 없었음. 복잡하고 오래된 코드베이스에서 파티셔닝은 어렵다는 걸 알게 됨
      어쩌다 FusionIO 카드가 들어왔고, 가장 싼 2TB 카드로 pgbench에서 읽기 QPS가 5,000 정도에서 300k로 뛰었음
      그 뒤로 수직 확장이 생각보다 훨씬 실현 가능하다고 보게 됨. 하드웨어는 우리가 생각하는 것보다 훨씬 많은 일을 해낼 수 있음
    • 초기 Intel SSD가 나오던 시절, 메일 서버에 10K 디스크 8개짜리 RAID-10 배열을 쓰던 ISP와 일한 적이 있음
      작은 무작위 입출력이 많아서 부하를 감당할 수 있을지 계속 아슬아슬했음
      실험으로 노트북 드라이브 폼팩터의 600GB Intel SSD를 보냈고, 보조 노드를 내린 뒤 SSD를 설치하고 다시 올렸음
      DRBD로 배열을 동기화한 뒤 기본 노드를 SSD 노드로 장애 조치했고, SSD를 논리 볼륨에 추가한 다음 pvmove로 8개 디스크 배열의 블록을 SSD로 옮겼음
      몇 시간 동안 부하가 꾸준히 내려가 결국 거의 사라졌음
      손바닥에 편히 들어가는 물건 하나로 3.5인치 10K 디스크 8개를 대체하는 게 재미있었음
    • 90년대에는 더 높은 확장이 절실한 데이터베이스의 WAL 데이터용으로 새 차보다 비싼 배터리 백업 RAM을 쓰기도 했음
  • 임베디드 기기에서 eMMC를 쓴다면 이것도 추천함
    Linux 시스템에서는 mmc-utilsmmc 명령으로 기기를 pSLC 모드로 설정할 수 있음
    U-Boot에서도 가능하지만 명령이 좀 더 난해함. 한 번만 프로그래밍할 수 있어서 설정하면 되돌릴 수 없음
    대량 생산 수량이라면 프로그래밍 업체가 이 설정과 다른 eMMC 설정을 미리 구성해 줄 수 있음

  • 이런 식의 버스 전송률까지 파고드는 분석이 더 흔했으면 좋겠음
    모든 SSD에 대해 중요한 IC 모델명, 동작 클록 주파수, IC 사이의 버스 폭과 동작 속도를 적은 블록 다이어그램이 있으면 좋겠음

  • 일부 Kingston SSD는 제조사가 제공하는 소프트웨어 도구로 오버 프로비저닝을 관리할 수 있음
    즉 용량과 내구성의 절충점을 직접 고를 수 있음

    • 그래도 셀당 저장되는 비트 수가 바뀌지는 않을 것 같음
      예를 들어 오버 프로비저닝을 80%로 잡으면 QLC 용량의 80%를 예비 공간으로 두고, 남은 20%도 여전히 QLC 모드로 쓸 것임
      SLC의 20%를 오버 프로비저닝한 SLC처럼 쓸 수 있다고 인식하지는 않을 듯함
  • 제조사가 드라이버 설정 같은 방식으로 SSD를 SLC로 낮춰 쓰는 방법을 제공하면 좋겠음

    • SSD 자체는 그렇지 않더라도 모든 플래시 칩은 가능함
      직접 SSD를 만들거나 SoC의 여분 핀에 플래시를 직접 연결한다면 그런 식으로 프로그래밍할 수 있음
      수요가 충분하다면 NVMe에 이를 제공하도록 확장하는 것도 가능해 보임
    • 디스크의 좋은 점은 애초에 드라이버가 필요 없다는 것임
      그런 기능이 생긴다 해도 Windows용 드라이버 설정 앱이 오픈소스로 공개되지는 않을 것임
    • 그래야 제조사가 돈을 더 벌 방법이 없지 않나
  • 이게 하드웨어 수준의 차이라고 생각했는데 놀라움

    • 특정 NAND 칩이 셀당 몇 비트를 저장할 수 있는지는 하드웨어 수준일 것임
      그래도 TLC나 QLC를 지원하더라도 모두에서 SLC를 구현하는 건 가능하다고 봄
      지금 내 컴퓨터에 있는 Silicon Power NVMe SSD도 쓰기에는 SLC를 쓰고, 나중에 유휴 시간에 그 데이터를 TLC로 옮기는 것으로 보임
      NAND를 SLC 모드로 돌리는 건 이런 드라이브의 기능이고, “SLC 캐싱”이라고 부름
    • TLC SSD의 셀에 0은 000, 1은 111로 쓰면 사실상 SLC SSD로 만드는 건 당연히 간단함
      하지만 그것만으로 TLC보다 읽기와 쓰기가 왜 훨씬 빠른지는 설명되지 않음
      예를 들어 DRAM처럼 축전기에 전하로 데이터를 저장한다면 R-2R 래더 DAC로 값을 쓰고 플래시 ADC로 값을 읽는 상상을 할 수 있음. 그런 경우라면 잡음 등을 무시할 때 셀당 유효 레벨 수에 따른 속도 차이가 없을 것임
      pSLC 모드가 더 빠른 이유는 플래시가 프로그래밍되고 읽히는 방식, 그리고 플래시 메모리의 아날로그적 특성에 있는 것으로 보임
      DRAM처럼 값을 저장하는 데 전하를 쓰지만, 단순한 축전기가 아니라 이중 MOSFET 게이트에 저장됨
      전하량은 트랜지스터의 유효 문턱 전압을 바꾸고, 읽을 때는 트랜지스터가 언제 도통하기 시작하는지 보려고 여러 전압을 걸어야 함
      셀을 프로그래밍할 때는 원하는 비트 패턴에 해당하는 문턱 전압이 되도록 일정량의 전하를 주입해야 함. 전하는 주입만 가능하므로 과하게 넣지 않도록 짧은 펄스를 여러 번 주고, 필요한 수준에 도달했는지 읽기 사이클로 확인하는 과정을 반복함
      그래서 셀당 레벨이 많을수록 더 짧은 펄스와 더 많은 읽기 사이클이 필요함
      다중 레벨 셀을 단일 레벨 모드로 프로그래밍하면 더 큰 전하 주입 한 번으로도 충분하고, 읽을 때도 단일 기준에서 도통 여부만 보면 됨
      요약하면 pSLC는 다중 레벨 셀 자체를 바꿀 필요는 없지만, 그 셀을 프로그래밍하고 읽는 방식은 바꿔야 함. 따라서 관련 회로가 어느 정도 달라져야 할 가능성이 크고, 순수 펌웨어만으로 구현할 수는 없을 것임
      https://en.wikipedia.org/wiki/Flash_memory#Floating-gate_MOS...
      https://dr.ntu.edu.sg/bitstream/10356/80559/1/Read%20and%20w...
      https://people.engr.tamu.edu/ajiang/CellProgram.pdf
      http://nyx.skku.ac.kr/publications/papers/ComboFTL.pdf
  • 이미 닳은 SSD의 수명을 늘리는 데도 쓸 수 있을까 궁금함
    중국 어딘가에서 그런 SSD를 가져다 다시 플래싱해서 “새 제품”으로 파는 사업이 있을지도 모르겠음