ATTEMPT-1 モニタ
ATTEMPT-1 モニタとはどんなテーマなの?
現在、ATTEMPTグループでは可変構
造並列計算機テストベッドATTEMPT-1の実装を行っています。プロトタイプの
プロセッサボード既に実装されており、単体で動作可能な状態になっています。
ただ、計算機はハードウェアだけでは動作しません。ハードウェアとソフトウェ
アがそろって初めて計算機として動作するようになります。現在のATTEMPT-1
にはまだソフトウェアがが実装されていないのです。
そのソフトウェアの中でも最もハードウェアに近い部分となるのがモニタです。
モニタは計算機の電源投入直後から動作を開始し、プロセッサの初期化、メモ
リのチェック、デバイスの初期化や動作テストなどを行います。一通りの初期
化が終わると、プログラムのロードなどを行います。
ATTEMPT-1の実装と並行し、SEDグループではATTEMPT-1モニタの実装を行って
います。このモニタはATTEMPT-1の持つデバイスを直接操作するプログラム部
分を担当しているため、それぞれのデバイスに対する操作方法を熟知した上で
実装しなければなりません。また、起動時に動作する部分などは``生''の状態
の計算機を使うことになるため、モニタの一部はアセンブラで記述する必要が
あります。
現在の状況は?
ATTEMPT-1上でプログラムを実行できる環境として、ATTEMPT-1上に
ATTEMPT-1モニタシステム、ワークステーション上に汎用並列計算機モニタシ
ステムPotを開発しました。この環境により、ワークステーション上からネッ
トワーク経由でアプリケーションプログラムをATTEMPT-1上で実行することが
できるようになっています。しかし、アプリケーションプログラムの開発には、ロー
カルメモリと共有メモリ、使用するプロセッサ数を意識しなければならなりません。こ
れはATTEMPT-1に特有の概念であって、一般的であるとは言えずプログラムの開発
環境として十分であるとはいえません。マルチスレッドプログラミング等、機種
依存がなくユーザアプリケーションが開発可能な環境が望まれています。また、単一科学技術計算の高速実行を目的とする
ATTEMPT-1はオペレーティングシステムにより、ユーザアプリケーションの性能
の低下を抑えるために、マイクロカーネルによる並列オペレーティングシステム
が必要になります。
そこでSEDグループではマルチスレッドプログラミングをサポートするカーネル実装の
足掛かりとしてATTEMPT-1単一ボード上で標準入出力を行なうCのプログラムをユー
ザプロセスで動作させることを目標して、それを達成するために、システムコー
ルによるファイル入出力、カーネルモードとユーザモードの切り替え機構、ユー
ザメモリ空間管理機構の実装を行ないました。
今後の課題は?
- 本格的なメモリ管理機能
- プロセス管理
- マルチスレッドのプログラミングをサポートする
- マイクロカーネル化
- 複数ボードによる並列OS化
- etc