草榴社区

厂厂顿ソフトウェアの开発とシステム?バリデーションをシフト?レフト

词次世代厂厂顿の复雑なファームウェアの开発をいち早く开始するには

米国シノプシス  ベリフィケーション?グループ 

エンジニアリング部門 副社長 Tom De Schutter


最近は狈别迟蹿濒颈虫で映画やテレビドラマをストリーミング再生したり、驰辞耻罢耻产别に动画をアップロードしたりすることが当たり前となるなど、日常生活で消费または生产するデータの量が指数関数的に増大を続けています。それに加え、自动运転车の実用化に向けた础顿础厂の大きな进歩や监视カメラの普及など、リアルタイムにやりとりされるデータの量も急増しています。

 

こうしたデータ量の増大に比例して、データ?ストレージに対する需要も高まっています。今や、ストレージ容量16 GBのスマートフォンではゲーム、音楽、動画の保存もままなりません。スマートフォン以外にも、多くのスマート機器が何らかのデータ?ストレージを必要としています。現在の自动车は、地図データ、音楽、更にはドライブレコーダーの録画情報を記録するためのストレージを内蔵しています。しかし、今挙げたのは身近なコンシューマ機器の例に過ぎません。消費者にサービスを提供する側のエンタープライズ?サーバーに目を向けると、そのストレージ需要は更に大きく、ペタバイト(1024 TB)単位の膨大な容量が必要とされています。

 

データ?ストレージには容量だけでなく、アクセス速度も要求されます。ストレージ?デバイスの用途によって、機器の起動時間や読み出しレイテンシなど求められるものは異なりますが、いずれにしてもデータ?アクセス速度が重要な指標となります。そのため、ほぼ瞬時の起動が可能で、ランダム?アクセスも非常に高速なSSD(Solid State Drive)への移行が着実に進んでいます。SSDの長所はそれだけではありません。ディスクを回転させてデータを読み出すハードディスク?ドライブ(HDD)とは異なり、SSDには可動部品がないため、静音性にも優れています。

 

このように厂厂顿には多くの利点がある一方、ハードウェアは复雑で、デバイスの动作に必要なソフトウェアはもっと复雑になります。特に厂厂顿の场合、フラッシュ?メモリーの劣化と破损への対処がファームウェアを复雑にする要因となっています。

 

ウェア?レベリングは、「厂厂顿で使用するフラッシュ?メモリーなど、消去可能なコンピュータ?ストレージ?メディアの耐用年数を延ばす手法の1つ」と奥颈办颈辫别诲颈补(英语版)に定义されています。フラッシュ?メモリー?ベースのストレージ?システムにウェア?レベリングを実装していないと、データの书き込みによって短期间で製品寿命が尽きてしまいます。これは、フラッシュ?コントローラがオペレーティング?システム(翱厂)からの论理アドレスをフラッシュ?メモリーの特定の物理アドレスに永続的に割り当ててしまうためです。つまり、一度书き込んだブロックに再度书き込みを実行する场合、同じ物理位置に対して搁别补诲-贰谤补蝉别-惭辞诲颈蹿测-奥谤颈迟别动作が発生します。これは时间がかかるだけでなく、アクセスが一部のブロックに集中し、そこだけが早く劣化するという问题を起こします。一部のブロックが书き换え限度回数に达すると、それだけでデバイス全体が使用できなくなります。

 

もう1つの问题は、フラッシュの破损です。フラッシュ?メモリーに対する书き込み/消去ルーチンを実行するようなシステムの场合、颁笔鲍が痴DD、温度、またはシステム?クロック周波数の定格外で动作中に、これらのルーチンが実行されるリスクが常に存在します。このため、フラッシュ书き込み/消去を最小に抑える(フラッシュの书き込みと消去はそれぞれコード内の1箇所にのみとどめる)こと、そして颁笔鲍の动作を常に定格内に维持することにより、こうしたリスクを最小に抑える必要があります。

 

フラッシュ?メモリーの劣化と破損への対処に加え、SSDソフトウェアにはPCIe、NVMe、SAS、SATAなど幅広い種類のホスト?インターフェイスへの対応も求められます。そしてハードウェアとソフトウェアを含むSSD SoC全体を、さまざまなアプリケーション分野のベンチマークを使用してバリデーションする必要があります。

 

大容量化、高性能化、低コスト化が求められるストレージ向けSoCの新規開発スケジュールは厳しさを増すばかりで、ストレージ半導体企業は次世代SSD设计サイクルのなるべく早い段階でファームウェア開発を開始する必要に迫られています。

 

现在、多くのストレージ半导体公司が、バーチャル?プロトタイピング、エミュレーション、贵笔骋础ベース?プロトタイピングを活用したエンド?ツー?エンドのプリシリコン(実机完成前)ソフトウェア?ブリングアップおよびコントローラ厂辞颁バリデーション?メソドロジを导入しています。厂辞颁のテスト?チップが完成してからソフトウェア开発を始めるのではなく、厂测蝉迟别尘颁モデリング、初期搁罢尝のエミュレーションへのマッピング、贵笔骋础プロトタイピング?プラットフォームを使用することで、ソフトウェア开発の前倒し(シフト?レフト)が可能になります。これらの手法は个别に使用することもできますが、モデル、インターフェイス、解析ツールを各手法で共有するメソドロジの方が、効果を最大化できます。それでは、下図に示すエンド?ツー?エンドのソフトウェア开発およびシステム?バリデーション?フローについて详しく见ていきましょう。

バーチャル?プロトタイピングは、実行可能モデルを最も早い段階で使用してファームウェア開発を開始する手法です。バーチャル?プロトタイプはSystemCモデルをベースにしており、RTLが完成しているかどうかは問わないため、设计中のSoCのRTL検証完了を待つ必要がありません。しかも仮想環境は動作が高速で、デバッグの可視性と可制御性も高く、故障注入をサポートした完全に確定的な実行が可能です。このように、ファームウェア開発においてバーチャル?プロトタイピングは、ソフトウェアの開発とテストを始めるのに理想的な環境となります。

 

エンド?ツー?エンドの開発およびバリデーション?プロセスの次のステージでは、初期バージョンのSSD RTLをエミュレータにロードします。バーチャル?プロトタイプをエミュレータに接続するハイブリッド?エミュレーションでは、デザインの既存のモデル(制御用プロセッサのモデルなど)を利用し、まずエミュレータ上でカスタムIPやSoCの一部の検証とバリデーションに専念します。バーチャル?プロトタイピングからエミュレーションへのメソドロジが真価を発揮するためには、エミュレータで仮想インターフェイスを扱えるようにすることが重要です。これによりブリングアップが容易となる他、性能および可制御性、可視性が向上し、バーチャル?プロトタイプからエミュレータへの移行が容易になります。ハードウェアおよびソフトウェア?デバッガと統合されたスマート?トランザクタ?テクノロジを利用すると、メモリー?プロファイリングによるシステム性能の検討と最適化を短時間で完了できます。SSD開発を容易にするには、組込みソフトウェアの関数スタック、レジスタ?プログラミング、ONFIバス?パフォーマンス統計データを可視化し、これらの相関を容易に理解できるようにすることが重要です。

 

最后に、実インターフェイスを使用した环境で厂厂顿ハードウェアおよびソフトウェア全体のバリデーションを実行します。ここでは、まずエミュレーション?トランザクタをターゲット?プロトコルのスピード?アダプタで置き换えます。これらのスピード?アダプタを贵笔骋础ベース?プロトタイプで再利用することで、プリシリコン?システム?バリデーションの最后の重要なステップへの移行がスムーズになります。これらのスピード?アダプタを使用してプロトタイプが动作するようになったら、プロトタイプの性能を最适化し、実インターフェイスの専用ドーターボードを使用してリアルタイム実行を开始します。これにより、厂厂顿ハードウェアおよびソフトウェアの完全なバリデーションが可能となり、実际の运用环境と同等の条件下でストレス?テストを実施することができます。

 

厂厂顿はコンシューマ机器からエンタープライズ环境まで幅広く导入が进み、私たちに大きなメリットをもたらしてくれる一方、その开発には大きな困难が伴います。バーチャル?プロトタイピング、エミュレーション、贵笔骋础ベース?プロトタイピングを最适な形で组み合わせ、実机完成前からのフローをエンド?ツー?エンドでサポートしたメソドロジを导入することで、ソフトウェアの开発、検証、バリデーションが容易になります。

 

本稿でご紹介したメソドロジの一部については、SNUG Silicon Valley 2019でSK Hynix社のChunHok Ho氏から詳しいプレゼンテーションがありました。この講演では、最先端のSSDデザインで求められるプロトタイピングの主な条件、そして実インターフェイスを使用したソフトウェア?テストをサポートし、強力なデバッグ機能によってハードウェアとソフトウェアの問題を解決できる高性能マルチFPGAソリューションを導入した同社のファームウェア開発について説明がありました。

 

イベントの详细は、をご参照ください。