This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these messages)
|
| ミクロシム | |
|---|---|
MikroSim 2010のスクリーンショット | |
| 原作者 | 0/1-SimWareのマーティン・パーナー博士 |
| 初回リリース | 1992年、32~33年前 |
| 安定版リリース | 3.0.13 / 2012年6月20日 (2012-06-20) |
| 書かれた | ビジュアルベーシック |
| オペレーティング·システム | マイクロソフトウィンドウズ |
| 入手可能な | 英語、ドイツ語 |
| タイプ | コンピュータシミュレーション、コンピュータアーキテクチャ |
| ライセンス | フリーウェア、シェアウェア |
| Webサイト | www.mikrocodesimulator.de |
MikroSimは、 Microsoft Windowsオペレーティングシステム上で動作する仮想プロセッサの一般的な機能と動作を、ハードウェアに依存せずに解説する教育用コンピュータプログラムです。小型計算機、マイクロコントローラ、マイクロプロセッサ、コンピュータなどのデバイスは、マイクロ命令(マイクロコード)のシーケンスによって制御されるレジスタ転送レベルのカスタム開発命令コードによって説明できます。これに基づいて、仮想アプリケーションボードをより高い抽象度で制御するための命令セットを開発することが可能です。
一般的な
MikroSimは当初、教育分野で幅広く利用できるプロセッサシミュレーションソフトウェアとして開発されました。MikroSimの操作性は、仮想制御ユニットのマイクロ命令のシーケンス(マイクロコーディング)として定義されるマイクロコード開発に基づいているため、ソフトウェアの目的は、CPUシミュレーターや命令セットエミュレーターの機能を含む、さまざまな抽象化レベルを備えたマイクロコードシミュレーターにまず近づくことです。現在のソフトウェアリビジョンでは、マイクロコード制御の仮想アプリケーションが、独自にコード化された命令セットで動作することが可能になっています。MikroSimでは、コンピューターアーキテクチャーや命令セットアーキテクチャーなど、情報時代の初期から確立され、現在でも有効なコンピューターエンジニアリング分野の典型的でよく知られた概念を、特に指定せずに扱います。このようにして、シミュレーションソフトウェアは、過去および将来の特定の開発に制限されることなく、時代を超越した自由な教育的利点を獲得します。詳細なドキュメントとドイツ語と英語のバイリンガルアプリケーションのグラフィカルユーザーインターフェイス(GUI)、およびMicrosoftのオペレーティングシステムWindowsによってある程度提供されるソフトウェアの上位互換性は、1992年以来、教育用途でコンピュータエンジニアリングの分野で確立された価値のあるeラーニングツールである理由です。
開発の歴史
このソフトウェアは、 Turbo Pascalで書かれ、 MS-DOSオペレーティングシステム用にコンパイルされたバージョンに基づいています。このバージョンは、1992 年までフィリップス マールブルク大学 (ドイツ)でコンピュータエンジニアリングとコンピュータサイエンスの教育目的で使用されていました。このコンセプトは、1992 年夏、物理学の研究中 (1990 ~ 1995 年) だった Martin Perner によって取り上げられ、修正され、Microsoft Visual Basicでコンパイルされ、Windows 3.1xで実行される Windows アプリケーションに変換されました。その際に、マイクロコードの構成とその教育的影響の追跡可能性をサポートする MS Windows の GUI の新しい機能と利用を活用することで、概念が大幅に改善されたシミュレータがこの時点で誕生しました。Windows での e ラーニング ツールの機能強化は、1995 年末まで Heinz-Peter Gumm によってマールブルク大学の Fachbereich Mathematik/Informatik によってサポートおよび推進されました。
このシミュレータは、1994年11月にドイツのハイデルベルクで開催されたコンピュータサイエンス部門で、ヨーロッパ学術ソフトウェア賞1994を受賞しました。1995年3月には、ハノーバーで開催されたコンピュータ展示会CeBIT '95において、ヘッセン大学(Hessischen Hochschulen)の展示で発表されました。1995年から2000年にかけて、このシミュレータはMikrocodesimulator MikroSim 1.2としてリリースされましたが、大きな改良は行われませんでした。この時、このツールは1996年の欧州生涯学習年に合わせて、欧州連合(EU)から1000 ECUを授与されました。1997年には、LearnTec'97展示会に関連したMultimedia Transfer'97コンテストでこのソフトウェアが発表されました。[1]シミュレータは、最後から2番目の改訂版として、MS Windows 95の32ビット動作 に最適化され、Mikrocodesimulator MikroSim2000として公開されました。
2008年から2009年にかけて、シミュレータのコンセプトは改訂、再考、そして思慮深い拡張が行われました。そのため、コアのマイクロコード シミュレーション機能の成功した概念的な側面に触れることなく、広範囲にわたる改善と拡張が行われてきました。この目的のために、オペレーティング システムと基礎となる計算能力によって決まる今日のコンピューティング システムのパフォーマンスを利用して、MikroSim のシミュレーションの可能性を仮想アプリケーション ボードの段階にまで拡張しています。MikroSim は、無制限の互換性を確保し、32 ビット版としてMS Windows XPに可能な限り広く配布できるようにコンパイルおよび最適化されています。プログラムは、MS Windows VistaおよびMS Windows 7のすべての 32 ビットおよび 64 ビット オペレーティング システムで動作します。したがって、特別な XP 互換モードは必要ありません。2010年1月以降、シミュレータは 0/1-SimWare によってMikrocodesimulator MikroSim 2010として配布されています。
機能性
Windows アプリケーションでは、機能が事前に決定され、変更不可能な仮想アプリケーションを段階的に確立できます。
探索モードでは、1サイクル内の1つのマイクロコード命令が新たに追加されたコンポーネントの動作原理と制御に及ぼす影響を評価できます。MikroSimのマイクロコード命令の幅は49ビットです。1つのマイクロコード命令は、3相クロックの3つのフェーズで実行されます。これらのフェーズは「GET」、「CALCULATE」、「PUT」と呼ばれ、レジスタ値の取得、32ビット演算の実行、そして演算結果のCPU内部レジスタへの格納という一連の処理を伴います。
シミュレーションモードでは、シームレスに実行されるマイクロ命令が、後続のサイクルでシミュレータの中央処理装置を制御します。したがって、1つのマイクロ命令の固有の能力は、制御ストア内の次のマイクロ命令のアドレス指定に利用されます。マイクロ命令セット(一般に「マイクロコード」と呼ばれる)を保持する制御ストアは、それぞれ49ビット幅の1024個のマイクロ命令ワードで構成されています。
制御ストアの構造化機会を利用してマイクロコードのアドレス指定可能なスケジューリングを行い、周期的に動作するマシンコードインタープリタを実装することで(このインタープリタもマイクロコードでプログラムされており)、マシン命令と呼ばれる個別のマイクロオペレーションシーケンスを実装できます。マイクロコードはMikroSimのファームウェアとみなすことができ、変更したり、マイクロコードROMファイルに保存したり、そこから再ロードしたりできます。
マイクロ命令実行サイクル内で、CPUと入出力コントローラは、16KBの大容量外部ランダムアクセスメモリデバイス(RAM)に接続されます。入出力コントローラデバイスを介して、DMA ( Direct Memory Access Mode)、 I2C( Inter-Integrated Circuit Connection)、およびIRQ( Interrupt Request Function)によって仮想入出力デバイスとの通信がサポートされます。出力ポート、ディスプレイ、タイマー、イベントトリガー、デジタル/アナログコンバータ、キーボード、データ入出力チャネルが、外部デバイスとの通信を教育的に説明するための仮想ICデバイスとして提供されます。
マイクロコードシミュレータは、32ビット幅の8つの自由に利用可能なレジスタを32ビット算術論理ユニット(ALU)に接続して使用します。レジスタの内容は、符号付きまたは符号なし整数値、あるいは32ビット浮動小数点数として扱うことができます。レジスタの内容は、統合されたシステム数値エディタによって簡単に表示、解釈、およびビット単位で変更できます。
32ビットALUは、中央処理装置(CPU)の主要ユニットです。整数演算、割り込み制御、浮動小数点演算など、128種類の基本的な算術演算をサポートします。
浮動小数点演算への教育的アプローチは、1940年代初頭にコンラート・ツーゼによって既に同様の方法で導入されており、加算/減算および乗算/除算という主要な演算に関係する指数部と仮数部の基本的なサブレベル演算を用いることで導入されています。今日の数学コプロセッサで実現されているように、基本演算と基本的な解析機能のための仮数部と指数部の強力な32ビット浮動小数点演算コマンドセットが提供されています。ここで、MikroSimによるシミュレーションでは、サポートされている各ALU演算演算の実行には、実際に必要な回路の複雑さとは無関係に、明確な計算時間のみが必要であると理想的に想定されています。
マイクロ命令の実行は、異なる時間解像度を持つさまざまなシミュレーション レベルで実行できます。
- 最下位レベルのシミュレーションでは、シミュレータはGET、CALCULATE、PUTの各フェーズを段階的に実行できます。部分的なフェーズの処理は、調整可能な遅延で実行できるため、トレーサビリティが向上します。
- 次の上位レベルでは、現在のマイクロ命令が完全な3相クロックで遅延なく実行されます。複数の3相クロックサイクルの連続実行は、いわゆる「ロード・インクリメント・エグゼキュート」(LIE)サイクル内でサポートされます。マイクロコードで記述されたインタープリタとみなされるLIEサイクルは、バイト値としてコード化された機械命令を外部RAMからロードし、マイクロ命令シーケンスをオペコードで指定された参照マイクロコードサブルーチンに分岐させて実行させ、LIEサイクルに戻って次の機械命令を取得する機能を備えています。
- 1つ上の実行レベルでは、マシンコードシーケンス内に設定されたユーザー定義のブレークポイントに到達するまで、複数のマシン命令のシーケンスが実行されます。ブレークポイント間の実行時間を測定できるため、マシンレベルとマイクロコードレベルで実行パフォーマンスをベンチマークできます。
- 最上位のシミュレーションレベルでは、マイクロコードシミュレータはマイクロ命令を割り込みなしで連続的に実行します。このレベルでは、マシン命令がマシンごとにロードされるため、CPUと外部デバイスの相互作用に集中できます。
様々な追加オプションを使用することで、CPUの視覚的なアクティビティを抑制し、マシンプログラミングによるアプリケーション制御の際に処理速度を向上させることができます。シミュレータに付属するパフォーマンスインデックスモニターを使用すると、MikroSimの処理性能をベンチマークし、シミュレータのハードウェアの計算能力と関連付けて設定することができます。これらのパフォーマンスインデックスは、1秒あたりの浮動小数点演算数(FLOPS)と1秒あたりの命令数(IPS)で測定できます。
「MikroSim用基本アセンブラツール」MikroBATを使用すると、アセンブラプログラミング言語で簡単なプログラムを開発できます。アセンブラプログラミング言語でサポートされているすべてのニーモニックは、ユーザーが独自に作成したマシンのマイクロ命令レベルの命令セットによって決定されます。このアドオンツールは、アセンブリ言語プログラムをマシンコードとデータに変換し、バイナリコードを外部RAMに転送して後続のシミュレーションに使用できます。MikroBATと組み合わせることで、マイクロコードシミュレータMikroSimは、スイッチ制御の計算機からアセンブラでプログラム可能なアプリケーションに至るまで、技術情報科学の教育的側面を教育的に導入することをサポートします。
参照
- コンピュータアーキテクチャシミュレータ
- サイクルアキュレートシミュレータ
- 教育用プログラミング言語
- フルシステムシミュレータ
- 命令セットシミュレータ
- 計測(コンピュータプログラミング)
- フォン・ノイマン建築
文学
- ガム、HP; Sommer, M (2009)、「5.6」、Einführung in die Informatik (ドイツ語) (8 版)、ミュンヘン: オルデンブルク、pp. 470–85、ISBN 978-3-486-58724-1。
参考文献
- ^ Mikrocodesimulator – Awards and Honours、DE : MikroSim 、 2010年12月5日閲覧。