スタックマシン

読み:スタック・マシン
外語:stack machine 英語
品詞:名詞

計算機やマイクロプロセッサーの設計モデルの一つで、メモリースタック構造になっているもの。

目次

記憶装置そのものがスタック構造であるものや、またはレジスターがスタック構造であるものなどをいう。

レジスターがスタック構造の場合、命令は暗黙のうちにスタックトップから必要数の値を取得して処理するため、オペランドを指定する必要がないことが多く、このため「0オペランド命令」などを作りやすい。

このためスタックマシンは命令が短くできるが、代わりにスタック操作の命令が必要になるため、処理に要する命令数は多くなる傾向にある。

x87

x86の場合、CPUはレジスターマシンであるのに対して、コプロセッサーとして提供されたFPUの8087は、スタックマシンとして設計された。レジスターは8レベルのスタック式であり、このため演算を逆ポーランド記法で記述できる利点があった。

またi486DX以降はCPUに内蔵されるようになったが、仕様は従来と変わらずスタックマシンのままである。

ただ、FPUがスタックマシンであることは人気が無かったらしく、あまり使われていなかったFPUレジスターを活用するために設計されたMMXのMMX用レジスターは、FPUレジスターを流用するものの命令体系はレジスターマシンとなっている。

新しいレジスターを追加したSSEも、やはりレジスターマシンとして設計された。

Java

Javaの仮想計算機(仮想マシン)は、命令体系が8ビットのスタックマシンとなっている。

一方で、Java言語を用いるAndroidの仮想計算機Dalvikは、16ビットのレジスターマシンとなった。

コメントなどを投稿するフォームは、日本語対応時のみ表示されます


KisoDic通信用語の基礎知識検索システム WDIC Explorer Version 7.04a (27-May-2022)
Search System : Copyright © Mirai corporation
Dictionary : Copyright © WDIC Creators club