機械語
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/03/19 08:08 UTC 版)
機械語は個々の命令から構成される。アーキテクチャにもよるが、命令は通常、以下のいずれか(あるいは複数)を指定する。 算術演算、アドレス指定、制御用途にレジスタを指定する。 メモリ位置やオフセットを指定する。 オペランドを解釈するためのアドレッシングモードを指定する。 このような単純な命令を組み合わせてより複雑な操作を構築し、(ノイマン型であれば)これを逐次的に実行したり、制御フロー命令で順序を変えたりする。 多くの命令セットに共通な操作として、以下のものがある。 移動(コピー) レジスタに固定の定数値を格納する。 あるメモリ位置からレジスタにデータを移動する(または逆方向)。そのデータに対して後から何らかの計算を行い、結果をメモリに格納する。 ハードウェア機器からデータを読み込んだり、逆にデータを書き込んだりする。 計算 加算、減算、乗算、除算。2つのレジスタの内容についてそれら演算を行い、結果をレジスタに格納する。 ビット演算。2つのレジスタのビット位置毎の論理和や論理積を計算したり、1つのレジスタのビット毎の否定を計算する。 2つのレジスタの値の比較(等しいかどうか、どちらが大きいかなど) 制御フローの変更 プログラム内の別の位置にジャンプし、そこの命令を実行する。 ある条件が成り立つときだけ別の位置にジャンプする。 別の位置にジャンプするが、その際にジャンプ元の次の命令の位置を記憶しておき、後でそこに戻る(サブルーチン) コンピュータによっては命令セット内に複雑な命令を持っている。通常ならいくつもの命令を使わなければならないような操作を1つの命令で実現している。一般にそのような命令は内部で複数のステップに分解され、複数の実行ユニットを使って実現される。さもなくば、プロセッサの回路規模が大きくなりすぎることになる。そのような複雑な命令として以下のようなものがある。 複数のレジスタを一度にスタック上にセーブする。(コンテキストスイッチ) メモリを大きなブロックで移動する。 複雑な浮動小数点演算(三角関数、平方根など) テスト・アンド・セット命令などの不可分操作を実行する。 ALUへの入力にレジスタではなく、メモリ位置を指定する命令。つまり、メモリからの移動と計算が1つの命令で行われる。 最近普通に実装されるようになった複雑な命令として、SIMD (Single-Instruction Stream Multiple-Data Stream) 命令またはベクター命令がある。これは、同じ演算操作を複数のデータに同時に行うものである。SIMD によって大きなベクトルや行列の操作を短時間で行うことが可能となる。また、音声、画像、動画などの並列化されたアルゴリズムを高速に実行できる。SIMD の実装には様々なマーケティング上の名称がつけられている(MMX、3DNow!、AltiVecなど)。 命令セットの設計は複雑な問題である。マイクロプロセッサの歴史は命令セットの設計で2つの段階に分けられる。当初、CISC すなわち複雑な命令セットが実装されていた。1970年代、IBMなどで研究が行われ、多くの命令が省略可能であることが判明した。その結果 RISC すなわち縮小された命令セットが登場した。命令セットが縮小されることで、クロックを高速化でき、プロセッサのサイズを小さくでき、電力消費を低減させることが可能となった。極端なRISCでなくとも、典型的な操作を最適化し、メモリやキャッシュの効率を向上させ、プログラミングを単純化させることができる。
※この「機械語」の解説は、「命令セット」の解説の一部です。
「機械語」を含む「命令セット」の記事については、「命令セット」の概要を参照ください。
機械語
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/01/15 15:17 UTC 版)
機械語において NOP は多くの命令セットで用意されている命令である。プロセッサはこの命令を読みとると文字通り「何もせず」にプログラムカウンタのインクリメントのみを行う。それ自身では何の意味も持たない命令ではあるが、 外部機器や他のプログラムとの同期のタイミングを取るための時間稼ぎ ジャンプ命令のジャンプ先の指標 後で命令を追加する予定の場所にダミーとして置くたとえば遅延スロットにとりあえず置く、あるいは置ける命令がない時に置く VLIWなどのようなアーキテクチャでは、より積極的にNOPが必要である NOPスレッドによる命令ポインタの制御 ワンチップマイコンのPROMでは、0x00か0xffのどちらか「上書き可能なほう」で潰すと NOP になるようにしておくと、再利用に便利 などの用途で使用される。 規則的に命令を決めた結果、何の意味も持たない命令(同一レジスタでの移動、次の番地へのジャンプ)が出来たのでそれをNOPとすることもあれば、専用の命令として用意されることもある。
※この「機械語」の解説は、「NOP」の解説の一部です。
「機械語」を含む「NOP」の記事については、「NOP」の概要を参照ください。
機械語と同じ種類の言葉
固有名詞の分類
Weblioに収録されているすべての辞書から機械語を検索する場合は、下記のリンクをクリックしてください。
全ての辞書から機械語を検索
- 機械語のページへのリンク