ハードウェア

SanDiskの高耐久microSDカードをリバースエンジニアリング


SanDisk(サンディスク)はドライブレコーダーやセキュリティカメラで使える最大4万時間の録画が可能なmicroSDカード「SanDisk High Endurance microSD Card」を販売しています。このmicroSDカードは書き込みや再書き込みの高い負荷に耐えられる高耐久性をウリとしているのですが、その秘密にエンジニアのJason Gin氏がリバースエンジニアリングで迫っています。

Reverse-engineering and analysis of SanDisk High Endurance microSDXC card | Rip It Apart – Jason's electronics blog-thingy
https://ripitapart.com/2020/07/16/reverse-engineering-and-analysis-of-sandisk-high-endurance-microsdxc-card/


ドライブレコーダーやセキュリティカメラなどは、常に映像を録画しているため、メディアの保存に使用するmicroSDカードは常にデータの書き込みおよび再書き込みを繰り返すこととなります。このような動作はSDカードにとって大きな負荷となるのですが、サンディスクの「SanDisk High Endurance microSD Card」は、そのような高負荷タスクにも耐えられることをウリとしています。

そんな「SanDisk High Endurance microSD Card」にGin氏は興味を持ったそうですが、サンディスクはSDカードの内部動作に関する詳細な仕様を公開していないため、リバースエンジニアリングで独自に調査を行うしか詳細を知るすべがなかったそうです。


Gin氏はサンディスクのサポートチームにメールを送り、高耐久性をウリとしているSDカードのラインナップで使用されているNAND型フラッシュメモリの種類やP/Eサイクル(データの書き込み(Program)/消去(Erase)サイクル)や合計書き込み容量(TBW)などの耐久性指標について尋ねたそうです。サンディスクのサポートチームは公開されている仕様書に記載されていない情報を提供することはできないと説明したそうですが、「すべてのカードでMLC(1つのセルに対して2ビットを保存できるフラッシュメモリ)が使用されている」という返答があった模様。

microSDカードは堅牢でモノリシックな技術のように思われますが、実際には複数の異なるチップで構成されており、それぞれが異なる役割を果たしているとGin氏は説明しています。基本的に、SDカードはNAND型フラッシュメモリを管理し、ホスト(PCやカメラなどのSDカードを挿入して使用するデバイス)と通信するためのコントローラーと、NAND型フラッシュメモリ自体で構成されています。


microSDカードには製造時にNAND型フラッシュメモリをプログラムおよびテストするためのテストパッドが含まれるケースがよくあります。テストパッドはデータ復旧の際に悪用される可能性があるものの、コントローラーやファームウェアに欠陥があるmicroSDカードをNAND型フラッシュメモリのRAWデータに変換して再利用する際に利用することも可能です。ただし、このテストパッドには標準規格が定められていません。

microSDカードはコントローラーとNAND型フラッシュメモリをひとつの分離不可能なパッケージに組み合わせたモノリシックなフラッシュデバイスというカテゴリに分類されます。多くのメーカーはフラッシュデバイスのデータバスを隠されたテストパッドに分割しているため、他のSDカードメーカーやUSBドライブメーカーは、故障した部品を流用することで安価なストレージデバイスを製造しているそうです。

サンディスクの場合、SDカードのテストパッドのピン配置に関する情報が非常に限られているものの、世代ごとに若干の違いはあるもののレイアウトはほぼ同じだそうです。「SanDisk High Endurance microSD Card」ではソルダーマスクで覆われていないテストパッドが搭載されており、代わりにシリアル番号がレーザーエッチングされています。


そのため、少し熱を加えてこすると、テストパッド上のコーティングを簡単に除去することができるそうです。コーティングを除去すると、以下のようにテストパッドのレイアウトが出現します。


各テストパッドにアクセスしやすいようにブレークアウト基板を構築。


Gin氏はUSBベースのロジックアナライザーであるDSLogic Plusを用い、データバスをスニッフィングすることでコントローラからNAND型フラッシュメモリに送信されるコマンドの詳細を分析しており、その結果をまとめたのが以下の図。テストパッドのピン配置は他のサンディスク製microSDカードと同様だったそうです。


Gin氏は「RESET(0xFF)とREAD ID(0x90)という2つのコマンドを探していました。コマンドシーケンスを探すときは、データラインと制御ラインがどのように、いつ変化するかを知ることが重要だからです」と説明しています。以下はRESETコマンドのロジックアナライザトレース。点線は書き込みとリセットが発生する場所を示しています。


以下はREAD IDコマンドのロジックアナライザートレース。点線は読み取り/書き込みが発生する場所を示しているそうです。


各NAND型フラッシュメモリは、製造元を識別するための一意のIDと製造元により定義されたその他の機能データを持っています。最初のバイトはフラッシュメモリのメーカーを表しており、残り(2~6バイト)はメーカー自身が設定したデバイスの特性を定義しているとのこと。ほとんどのNAND型フラッシュメモリベンダーはデータシートに関して口が堅く、サンディスクおよび東芝(Kioxia)は少し古い東芝のデータシートが漏洩している以外、非常に厳重な管理を維持しているそうです。

「SanDisk High Endurance microSD Card」の128GBモデルの場合、NAND型フラッシュメモリのIDは「0x45 48 9A B3 7E 72 0D 0E」。「45」は「製造元がサンディスク」であることを示し、次の「48」は「I/O電圧とデバイス容量」を示すものと推定されています。「9A」は「NAND型フラッシュメモリの種類:TLC、/CEあたりのフラッシュダイ数:4」、「B3」は「ブロックサイズが12MiBで、ページサイズが予備領域を除いて1万6384バイト(16kiB)」、「7E」は「/CEあたりのプレーン数:8」、「72」は「インターフェースタイプ:非同期、プロセスジオメトリ:BiCS3 3D NAND」であることを示しているとのこと。ただし、残りの「0D」と「0E」の詳細はわからなかったそうです。

これらの情報から、「SanDisk High Endurance microSD Card」はBiCS3 3D TLCと呼ばれるNAND型フラッシュメモリを使用していることが明らかになっています。これは従来の平面NAND型フラッシュメモリと比較して耐久性が大幅に向上した3D NANDです。なお、コントローラーが書き込み操作にSLCキャッシュメカニズムを利用しているかどうかは不明でした。

NAND型フラッシュメモリから正しいIDを取得できていることを確認するため、Gin氏はTexas Instrumentsの開発ボードであるMSP-EXP430FR2433を使用して、必要なRESETおよびREAD IDコマンドを送信するための基本的なコードを記述し、その過程でチップ上では非表示となっているJEDECパラメーターページから余分なデータを抽出しました。


JEDECパラメーターページにはNAND型フラッシュメモリのIDにあるよりもはるかに詳細な特性情報が含まれていたそうです。JEDECパラメーターページは十分に標準化されているため、解析もはるかに簡単だった模様。しかし、サンディスクはJEDECパラメーターページの標準形式を無視し、独自の方法でパラメーターページを記述していたそうです。例えば、JEDECパラメーターページはASCII文字列の「JEDEC」で始まるのが通常ですが、「SanDisk High Endurance microSD Card」では「SNDK」というサンディスクを表す文字列が繰り返し登場する模様。

Gin氏は「ロジックキャプチャだけからIDを見つけようとした時、最初は戸惑いました。NAND型フラッシュメモリでのデータ復旧の経験があるという連絡先に話を聞いたところ、ベンダー独自のコマンドとデータ構造を多用するサンディスク製品では、このようなことが予想されるとのことでした。4番目のバイトを信じるなら、ブロックサイズは4MBと表示されています。これは、最新のフラッシュデバイスでは妥当だと思います。チップが東芝製であることを示す最初のバイト以外、残りの情報は私にはまったく意味をなさないものでした」と記しています。

さらに、「サンディスクが高耐久性カードにどのようなフラッシュを使用しているかという素朴な疑問を解消するために、ここまでのハードウェアリバースエンジニアリングをする必要はないでしょう。サンディスクが高い耐久性と信頼性のために3D NANDを使用していることを自慢するかと思いきや、そうではないというのは何とも不思議です」と記しました。

なお、「SanDisk High Endurance microSD Card」はAmazon.co.jpでも取り扱われており、容量32GBのモデルが税込1293円で販売されています。

Amazon.co.jp: 【 サンディスク 正規品 】 SanDisk microSD カード 32GB UHS-I U3 V30 Class10 ドライブレコーダー 監視カメラ 高耐久 High Endurance SDSQQNR-032G-GH3IA 簡易デザインパッケージ 2年間限定保証 : パソコン・周辺機器

この記事のタイトルとURLをコピーする

・関連記事
Western Digitalが世界初の容量4TBのSDカード「4TB SanDisk Extreme PRO SDUC UHS-Iメモリカード」を発表 - GIGAZINE

無料で間違って削除した写真・動画・ファイルを復元・復旧できる「RescuePRO DELUXE」レビュー、サンディスクのSDカードを買うと無料で付いてくるアレはちゃんと使えるのかを検証 - GIGAZINE

Western Digitalが「SanDiskブランドのポータブルSSDはデータを安全に保存できない」と訴えられる - GIGAZINE

超高速SDカードの性能を100%引き出せるカードリーダー「SanDisk Professional PRO-READER SD and microSD」の性能をノートPC内蔵カードリーダーと比べてみた - GIGAZINE

iPhoneやPCに挿せば最大64GBの容量を追加できるサンディスク「iXpand フラッシュドライブ」を実際に使ってみたよレビュー - GIGAZINE

in ハードウェア, Posted by logu_ii

You can read the machine translated English article Reverse Engineering SanDisk's High E….