コンピュータの命令セットアーキテクチャ (ISA)において、実行命令は、データを機械命令として扱い、実行する 機械語命令です。
これは、通常の順次実行、分岐、割り込みに続く、命令シーケンスの第4のモードと考えることができる。[1]リピート命令と同様に他の命令に対して動作する命令であるため、メタ命令としても分類されている。[2]
コンピュータモデル
1950年代から1960年代にかけて発表された多くのコンピュータ・ファミリには実行命令が含まれている:IBM 709 [1]およびIBM 7090(オペコード・ニーモニック:XEC)、[3] IBM 7030 Stretch(EX、EXIC)、[4] [1] PDP -1 / -4 / -7 / -9 / -15(XCT)、[5] [6] UNIVAC 1100/2200(EXRI)、[7] CDC 924(XEC)、[8] PDP -6 / -10(XCT)、IBM System/360(EX)、[9] GE -600 / Honeywell 6000(XEC、XED)、[10] SDS -9xx(EXU)、[11] SDS 92(EXU)、[12]およびSDS Sigmaシリーズ(EXU)。[13]
1970年代の設計には実行命令を含むものが少なく、Nuclear Data 812ミニコンピュータ(1971年)(XCT ) [14]、HP 3000(1972年)(XEQ)[15]、Texas Instruments TI-990(1975年)[16]とそのマイクロプロセッサ版であるTMS9900(1976年)(X)[17]などである。Signetics 8X300(1976年)は、実行命令を備えた珍しいマイクロプロセッサ設計である。XECは、1〜255の命令のテーブルから1つの命令を実行する。ほとんどの命令は単一命令のサブルーチンとして動作するが、分岐を使用してジャンプテーブルを実装する。[18]実行命令は1970年にPDP-11用に提案されたが[19] 、その後継機であるVAXには実装されなかった[20]。[21]
現代の命令セットには、パイプライン、プリフェッチ、その他の最適化を妨げるため、実行命令は含まれていません。 [要出典]
セマンティクス
実行される命令、つまりターゲット命令は、レジスタ内にあるか、メモリからフェッチされます。アーキテクチャによっては、ターゲット命令自体を実行命令にできるものもありますが、できないものもあります。
ターゲット命令は、実行命令のメモリ位置にあるかのように実行されます。たとえば、サブルーチン呼び出し命令の場合、実行はサブルーチンに移され、戻り位置は実行命令の後の位置になります。ただし、一部のアーキテクチャでは、分岐を禁止する実行命令のバリアントを実装しています。 [1]
System/360は可変長ターゲット命令をサポートしています。また、ターゲット命令を実行する前に変更することもサポートしています。ターゲット命令は偶数バイトから始まる必要があります。[9]
GE-600シリーズは、ダブルワード境界に揃えられた2つの命令シーケンスの実行をサポートしています。[10]
一部のアーキテクチャでは、異なる保護およびアドレス再配置モードで動作する実行命令をサポートしています。たとえば、ITS PDP-10ページングデバイスは、メモリの読み取り、書き込み、またはその両方でユーザーモードページマッピングを使用できるようにする特権モードXCTR「再配置実行」命令をサポートしています。 [22]同様に、PDP-10のKL10バリアントは、特権命令PXCT「前のコンテキストXCT」をサポートしています。[23]
実行命令は、ある実行命令が別の実行命令を指している場合などに、いくつかの問題を引き起こす可能性があります。
- 実行命令が実行の途中で中断されない場合、プロセッサは複数のクロック サイクルにわたって中断できないことがあります。
- 同様に、一連の実行命令が循環的で中断できない場合、プロセッサは無限ループに陥る可能性があります。
- 実行命令が異なるスワップ ページにある場合、命令を完了するにはすべてのページをスワップインする必要があり、スラッシングが発生する可能性があります。
マルチレベル間接アドレッシングモードでも同様の問題が発生します。
アプリケーション
実行命令にはいくつかの用途がある: [1]
- 通常のサブルーチン呼び出しのオーバーヘッドなしで単一命令サブルーチンとして機能する。その命令は必要に応じて完全なサブルーチンを呼び出すことができる。[1]
- 遅延バインディング
- トレース、監視、エミュレーション
- これにより、擬似プログラムカウンタが維持され、通常のプログラムカウンタは変更されない可能性がある。[1]
- 特にメモリ保護によって実行可能コードが書き込み不可能な場合に、動的に生成されたコードを実行します。
- 自己書き換えコードをエミュレートする。特に再入可能または読み取り専用にする必要がある場合。[19]
- IBM System/360 では、実行命令はターゲット命令のビット 8 ~ 15 を変更できるため、固定引数 (長さフィールドなど) を持つ命令が可変引数を持つ命令に効果的に変換されます。
- KL10 のような特権モード実行命令は、オペレーティング システム カーネルによって、ユーザー プロセスの仮想空間内でのブロック コピーなどの操作を実行するために使用されます。
注記
- ^ abcdefgh Brooks, FP (1960 年 3 月). 「実行操作 - 命令シーケンスの第 4 モード」. Communications of the ACM . 3 (3): 168–170. doi : 10.1145/367149.367168 . S2CID 37725430.
- ^ Rossman, George E. (1975 年 12 月). 「コンピュータハードウェアアーキテクチャの研究コース」. IEEE Computer . 8 (12): 44–63. doi :10.1109/CM.1975.218835. S2CID 977792.、50ページ
- ^ リファレンスマニュアル、IBM 7090 データ処理システム( PDF)。IBM 。1962 年 3 月。36 ページ。
- ^ リファレンスマニュアル、7030 データ処理システム(PDF)。IBM 。1961年 8 月。p. 50。
- ^ プログラムデータプロセッサ-1マニュアル(PDF) . Digital Equipment Corporation . 1961. p. 14.
- ^ Supnik, Bob. 「DEC の 18b コンピュータのアーキテクチャの進化」(PDF)。p. 8 (ページ番号は示されていません)。
- ^ Univac 1107 中央コンピュータ(PDF) 1961 年 11 月、p. 12-1。
- ^ Control Data 924 コンピュータリファレンスマニュアル(PDF) 1962 年 10 月、p. 2-41。
- ^ ab IBM System/360 Principles of Operation (PDF) . IBM . 1964. p. 65. A22-6821-0.
- ^ ab GE-635 システムマニュアル(PDF)。ゼネラル・エレクトリック・コンピュータ部門。1964 年 7 月。p. A-5。
- ^ SDS 940 動作理論(PDF) . Scientific Data Systems . 1967 年 3 月. p. 2-12. SDS-98-01-26A.
- ^ SDS 92 コンピュータ。Scientific Data Systems。1965年 6 月。p. 2-6。
- ^ Xerox SIGMA 7 コンピュータ: リファレンスマニュアル(PDF) . 90 09 5J; XG46、ファイル番号: 1X03 (0 版)。Xerox Corporation。1973 年 10 月。pp. 70–71。
{{cite book}}: CS1 メンテナンス: その他 (リンク) - ^ ND812 コンピュータのプログラミングの原則(PDF) . Nuclear Data, Inc. 1971. p. 4-4.
- ^ HP 3000 コンピュータ システム: マシン命令セット リファレンス マニュアル(PDF) . Hewlett-Packard . 1980. p. 2-31.
- ^ 990 コンピュータ ファミリ システム ハンドブック(PDF) . Texas Instruments . p. 3-28.
- ^ TMS 9900 マイクロプロセッサ データ マニュアル(PDF) . Texas Instruments . 1976 年 12 月. p. 24.
- ^ 「SL8X305 マイクロコントローラ」(PDF) . Lansdale Semiconductor Inc . 2017 年6 月 20 日閲覧。
- ^ ab van de Goor, Ad (1970 年 9 月 21 日)。「実行命令」(PDF)。PDP-11/40 技術メモ 18。
- ^ ab PDP11 プロセッサ ハンドブック: PDP11/04/34a/44/60/60 (PDF) . Digital Equipment Corporation . 1979 年。
- ^ VAX MACRO および命令セットリファレンスマニュアル(PDF) . Compaq Computer Corporation . 2001 年 4 月 AA-PS6GD-TE.
- ^ Holloway, J. (1970 年 2 月 20 日)。「ハードウェア メモ 2 - PDP-10 ページング デバイス」(PDF)。MIT AI ラボ。p. 11。
- ^ DECsystem-10、DECSYSTEM-20 プロセッサリファレンスマニュアル(PDF)。Digital Equipment Corporation。1982 年 6 月。p. 2-63。AA-H391A-TK、AD-H391A-T1。
- ^ Gabriel, Richard P. (1985 年 8 月). LISP システムのパフォーマンスと評価(PDF) . MIT プレス. p. 32. ISBN 9780262070935。
- ^ Pitman, Kent M.「PURE」。改訂版 Maclisp マニュアル、日曜朝版。
- ^ Moon, David A. (1974 年 4 月). Maclisp リファレンス マニュアル(PDF) . リビジョン 0. p. 181.
