クリスタルにマイクロカーネルを配置する方法の質問に答えるには、L4マイクロカーネルとは何であり、どのような機能を実行するかを想像する必要があります。 L4は次の3つの柱に支えられていると安全に言えます。
- タスク間の相互作用は、メッセージを含めて発生します。 ハードウェア割り込みと内部例外
- メッセージは同期的であり、同期のみです-両方のタスクがメッセージ転送に関与します
- ユニバーサル仮想メモリページは、従来の仮想ページを置き換えます。
その結果、レジスタ、アルゴリズム、および推奨事項のやや退屈な説明を含むドキュメントが生まれました。
ハードウェアL4マイクロカーネルの正式な説明(L4_Hard_20130119.pdf、1046Kb)
このドキュメントでは、L4リビジョンX2マイクロカーネルと互換性のある仕様のハードウェアサポートを実装するためのマイクロプロセッサ命令システムの拡張について説明しています。 このドキュメントは、次の契約に基づいています
- タスクは、アクチュエータによって処理される一連のコマンドです。
- 各タスクには独自の「タスクレジスタブロック」があり、一意に決定されて記述されます。
- プロセスは、同じページテーブルを共有する1つ以上のタスクです。
- スレッドは、プロセスのアドレス空間で実行されるタスクです。
- スケジューラ-コマンドシステムを拡張し、タスク間で同期メッセージを交換する機能を提供するマイクロプロセッサ機能ユニット。
このドキュメントでは、L4-X2と互換性のある機器スケジューラの実装について説明しています。 文書の提案バージョンは、いくつかの議論を考慮して修正されています。
ディスカッションダイジェスト「国内のマイクロプロセッサ(2)(パート2)」
ハードウェアマイクロカーネル。 最終討論
ディスカッションダイジェスト「国内のマイクロプロセッサ(2)(パート3)」
タスクレジスタを説明するサムネイル:
2つの部分に分割された大きなレジスタファイルを使用することをお勧めします。1つの部分には配列が含まれ、その各要素はタスクレジスタのブロックです。 大きなレジスタファイルの2番目の部分には、各要素がメッセージバッファである配列が含まれています。 いくつかのグローバルスケジューラレジスタも追加されています。 切り替えタスクは、アクチュエータでレジスタブロックを切り替えることで実行されます。 メッセージは、メッセージバッファをソースタスクからレシーバに切り替えることで送信されます。
このドキュメントが、尊敬されるコミュニティの関心を喚起することを願っています。 議論の結果として生じるアイデアは、ドキュメントの次のバージョンに含まれます。 素敵な読書を!