すでに50年以上前のエラー修正コードの「魔法」がフラッシュメモリを高速化する方法

エラー修正コードまたはECCが送信信号に追加され、送信エラーを識別できるだけでなく、必要に応じて(名前から明らかなように)送信者からデータを再要求することなく修正できます。 このような操作アルゴリズムにより、一定の速度でデータを送信できます。これは多くの場合重要です。 たとえば、デジタルテレビを視聴する場合、繰り返されるデータ要求が繰り返されるのを待っている間、静止画像を見るのは非常に面白くないでしょう。







1948年、クロードシャノンは、情報の伝送に関する有名な研究を発表しました。これは、とりわけ、干渉チャネルを介した情報の伝送に関する定理を定式化したものです。 公開後、送信データ量の増加を使用して多くのエラー修正アルゴリズムが開発されましたが、最も一般的なアルゴリズムファミリの1つは低密度パリティチェックコード(LDPCコード)に基づくアルゴリズムです。低密度コード)、実装の容易さのために現在広く使用されています。







クロード・シャノン



LDPCは、優れた通信スペシャリストであるRobert Gray GallagerによってMITで初めて世界に紹介されました。 それは1960年に起こり、LDPCは時代を先取りしました。 当時一般的な真空ランプコンピューターは、LDPCで効果的に動作するのに十分な電力を持っていませんでした。 それらの年にリアルタイムでそのようなデータを処理できるコンピュータは、ほぼ200平方メートルの領域を占有し、これにより自動的にLDPCに基づくすべてのアルゴリズムが経済的に不利になりました。 したがって、ほぼ40年間、より単純なコードが使用されており、LDPCはかなりエレガントな理論的構成のままです。







ロバート・ギャラガー



90年代半ばに、衛星ベースのデジタルテレビ伝送アルゴリズムに取り組んでいるエンジニアはLDPCから「ほこりを振り払って」使用し始めました。当時のコンピューターはより強力かつ小型になったためです。 2000年代の初めには、LDPCが普及してきました。これは、高ノイズ条件(たとえば、強い電磁干渉)での高速データ伝送のためにエラーを高効率で修正できるためです。 WiFiテクノロジー、ハードドライブ、 SCSIコントローラーなどで使用されるチップ上の特殊なシステムの出現も普及に貢献しました。このようなSoCはタスク用に最適化されており、LDPCに関連する計算はまったく問題になりません。 2003年、LDPCコードはターボコードテクノロジーに取って代わり、デジタルテレビの衛星データ送信用のDVB-S2標準の一部になりました。 同様の置換が、デジタル「地上波」テレビのDVB-T2標準でも発生しました。



LDPCに基づいて非常に異なるソリューションが構築され、「唯一の」参照実装が存在しないことは言うに値します。 多くの場合、LDPCベースのソリューションは互いに互換性がなく、たとえば衛星テレビ用に開発されたコードは、ハードドライブに移植して使用することはできません。 ほとんどの場合、さまざまな分野のエンジニアの努力を組み合わせることで多くの利点が得られます。LDPCは「一般に」特許を取得していない技術であり、企業の利益とともにさまざまなノウハウや独自技術が邪魔されます。 ほとんどの場合、そのような協力は同じ会社内でのみ可能です。 その一例がTrueStore®と呼ばれるLSI HDDリーディングチャネルソリューションで、同社は現在3年間提供しています。 SandForceの買収後、LSIエンジニアはSSDコントローラーのSHIELD™エラー修正アルゴリズム(LDPCベース)に取り組み始めました。SSDを扱うためのアルゴリズムポートはありませんでしたが、HDDソリューションに取り組んでいるエンジニアリングチームの知識は新しいアルゴリズムの開発に大いに役立ちました。



もちろん、ここで、ほとんどの読者は疑問を抱くでしょう。アルゴリズムは各LDPCアルゴリズムとどう違うのですか? ほとんどのLDPCソリューションは硬判定デコーダーとして始まります。つまり、このようなデコーダーは厳密に制限されたデータセット(ほとんどの場合0と1)で動作し、標準からの最小偏差にエラー修正コードを使用します。 もちろん、このソリューションを使用すると、送信されたデータのエラーを効果的に検出して修正できますが、SSDで作業しているときに発生することがある高レベルのエラーの場合、そのようなアルゴリズムは対処できなくなります。 前回の記事でおわかりのように、フラッシュメモリは動作中にエラーの数が増える可能性があります。 SSDドライブのエラー修正アルゴリズムを開発するときは、この避けられないプロセスを考慮する必要があります。 エラーの数が増えた場合の対処方法



ここでは、本質的に「よりアナログ」なソフトソリューションを備えたLDPCが登場します。 このようなアルゴリズムは、「ハード」なアルゴリズムよりも「深く」見え、幅広い機能を備えています。 そのような最も簡単な解決策の例は、会話者にフレーズをより大声で繰り返すようにしばしば要求するように、異なる電圧を使用してデータを再度読み取る試みです。 人々のコミュニケーションで比phorを続けると、より複雑な修正アルゴリズムの例を挙げることができます。 強いアクセントで話す人と英語で話していると想像してください。 この場合、強い強調が障害として機能します。 あなたの対談者は、あなたが理解しなかった長いフレーズを言った。 この場合、ソフトソリューションでのLDPCの役割は、最初は理解できなかったフレーズの要点を尋ねて明確にすることができるいくつかの短い先導的な質問になります。 このようなソフトソリューションでは、多くの場合、高度な統計アルゴリズムを使用して誤検知を排除します。 一般に、すでに理解しているように、このようなソリューションは実装が著しく困難ですが、ほとんどの場合、zhestkieに比べてはるかに優れた結果を示します。



2013年、カリフォルニア州サンタクララで開催されたフラッシュサミットで、LSIはSHIELDの高度なエラー修正技術を導入しました。 DSP SHIELDは、アプローチをソフトでタフなソリューションと組み合わせることで、将来のFlashテクノロジー向けに独自の最適化を多数提供します。 たとえば、適応コードレートテクノロジーを使用すると、ECCに割り当てられる量を変更して、最初はできるだけ小さなスペースを占有し、SSDの典型的なエラー数が必然的に増加するにつれて動的に増加することができます。







ご覧のとおり、さまざまなLDPCソリューションの動作は非常に異なり、さまざまな機能や機能を提供しますが、最終製品の品質は多くの点で依存します。



All Articles