バックナンバーはこちら

today&tomorrow

What's New in DesignWare IP?

2017 Aug Summer vol.107

次世代SSDに適したコンフィギュレーション/拡張可能な32ビットRISCプロセッサ

シノプシス シニア・プロダクト・マーケティング・マネージャー Mike Thompson

シノプシス CAE Martyn Bronziet

コンピュータ、タブレット、ゲーム機、サーバのマス・ストレージにはこれまでハードディスク・ドライブ(HDD)が使われていましたが、最近ではより利点の多いソリッドステート・ドライブ(SSD)への移行が進んでいます。HDDとSSDでは必要な機能が異なるため、内蔵コントローラの設計にも異なるアプローチが求められます。一般に、HDDコントローラの実装には汎用プロセッサ(GPP)、ハードワイヤード・ソリューション、デジタル・シグナル・プロセッサ(DSP)のいずれかを使用します。これに対し、SSDコントローラの実装には信号処理をサポートし、目的のコントローラ機能に合わせて柔軟にカスタマイズできるコンフィギュレーション可能なRISCプロセッサが適しています。

SSDコントローラに求められる機能

マス・ストレージといえばこれまで30年以上にわたってHDDが主流でしたが、ここにきてコンシューマおよびエンタープライズ・アプリケーションでSSDの普及が加速しています。これは、フラッシュ・メモリーをベースにしたSSDの方が速度、耐久性、静音性、省電力性、省スペース性の面で有利なためです。

しかしSSDにはHDDに比べ不利な面もあります。まず挙げられるのはストレージ容量のGB単価ですが、これは量産が進むにつれて解消されつつあります。それ以外の点では、NANDフラッシュ・メモリーにはブロック書き込み/消去回数に上限があり、HDDに比べ耐用年数が短いことが挙げられます。このため、SSDには読み出しと書き込みをフラッシュ・デバイスの記憶素子全体に分散させるウェア・レベリングを実装する必要があります。SSDでは、あるセグメントを上書きする場合は同じセグメントに新しいデータを書き込むのではなく、別のセグメントに書き込んでインデックスを更新するのが一般的です。通常、ウェア・レベリングの実装には赤黒木のようなデータ構造を使用します。SSDのもう1つの問題は、フラッシュ・メモリーの方がHDDよりも複雑な誤り検出訂正(ECC)が必要になることです。SSDの微細化と多値化が進むとビット・エラー率が上昇するため、SSDのエラー耐性を最大限に高めるにはECCアルゴリズムが欠かせません。ウェア・レベリングとECCはSSDコントローラにおいて特に重要な機能であり、SSDを製品寿命の最後まで正しく動作させるには、これらの機能を実装することが必要です。

柔軟性と性能のトレードオフ

SSDコントローラで必要とされるウェア・レベリングとECCの機能を実装するには、インプリメンテーションの柔軟性が高く、アプリケーションに応じたカスタマイズによって消費電力を最小限に抑えながら性能を最大化できるRISCプロセッサが適しています。HDDコントローラで使用される汎用プロセッサ(GPP)には専用データパスがなく、SSDで使用される主要なアルゴリズムを効率よく処理できるだけの柔軟性もないため、カスタマイズができません。GPPにもある程度の柔軟性はありますが、高度な数学処理には向きません。

一部のHDDで使用されるハードワイヤード・ソリューションは柔軟性に欠けるため、幅広いプラットフォームで使用されるSSDへの適用は現実的でありません。幅広い製品をワンチップでサポートし、市場ニーズの急激な変化に対応するのは、ハードワイヤード・ソリューションでは困難です。

HDDで使用されるDSPソリューションはSSDにも使用できる可能性がありますが、信号処理に関する要件がHDDとSSDでは異なります。DSPは柔軟性が高く数学計算には対応できますが、組込み制御の効率はそれほど高くありません。

こうした弱点を補うため、柔軟なRISCプロセッサとDSPを組み合わせてコントローラを実装する方法もありますが、このアプローチは消費電力とコストが大きく、設計期間も長くなります。2種類のプロセッサを使用するには2種類の開発ツール・フローが必要となる上、2つのプロセッサのタスクをユーザー・ソフトウェアで同期させる必要も出てくるため、複雑さが増してしまいます。消費電力、コスト、設計期間のバランスを考えるなら、信号処理機能を備えた柔軟でカスタマイズ可能な高性能RISCプロセッサがSSDには最適です。

カテゴリートップ