質問: ssd、sd、emmc、raw nand違いは何ですか? ssd、emmc、sd、usbフラッシュなどの基盤となるテクノロジは、nandフラッシュは正しいのでしょうか。それでは、それらすべての違いは、コントローラーの実装方法だけなのでしょうか。それとも、テクノロジはまったく異なるのでしょうか。私の知っていることから、ssdはデスクトップ用、emmcはモバイル機器用だと思いますが、これらすべてのストレージテクノロジには複雑な違いがありますか。
回答: nand - 生フラッシュメモリraw flashは独自のプロトコルを使用します。このプロトコルには、ページの読み取り、ページの書き込み、ブロックの消去が含まれます。それはディスクのようには動作しません - ディスクはブロックを読み書きすることができ、フラッシュはページを読み書きすることができます - そしてと呼ばれるページのセット ブロック 新しいデータを書き込む前に消去する必要があります。あなたはブロックが消耗する前に限られた回数しか消すことができず、もう完全に消すことはできません。sd - "セキュアデジタル"それはメモリカードのフォーマットです。 sdカードには、小型のマイクロコントローラとnandが含まれています。マイクロコントローラは、ディスクのようなブロックアクセスを受けて、それを意味のあるnand操作に変換するftl(flash translation layer)を実装し、さらにウェアレベリングとブロックスペアリングを実行します。 sdカードは "host"側でspiプロトコルを使用します。 usb sdカードリーダーは、usbマスストレージコマンドからspi sdコマンドに変換します。emmc - 組み込みmmcこれは基本的にマザーボードに内蔵されているsdカードと考えることができることを指します(sdとmmc規格は非常によく似ています - sdカードリーダーは通常mmcカードを読むことができます)そして取り外し不可能。通常、内部spiバスを介して残りのハードウェアに接続されています。携帯電話およびarmハードウェア、および他の組み込み型デバイス(すなわちルータ)はこれを持っているかもしれない。更新:いくつかの新しい値段付きのwindowsネットブックもこれらを持ってい始めています。 spiバスはsataバスほど高速ではないため、sdカードおよびemmcはssdより低速です。ssd - "ソリッドステートドライブ"ハードドライブケースにコントローラ+ nandの束を配置。コントローラはftl(flash translation layer)を実装しており、ディスクに似たブロックアクセスを行い、それを意味のあるnand操作に変換し、さらにウェアレベリングとブロックスペアリングを実行します。 "sandforce"などのいくつかのコントローラタイプはよく知られています。 ssdは、「ホスト」側のsataプロトコルとコネクタを使用します。guruplugのように生のnandを扱っている状況にある場合、あなたはウェアレベリングとブロックスペアリングを行う責任があります。 jffs2のようなlinuxファイルシステムはこれを行いますが、ftlがほとんどのsdカード、usbカードなどで動作する場合は必要ありません。