マシン状態レジスタ(MSR )は、 PowerPCプロセッサアーキテクチャに存在する3つのプロセス制御レジスタのうちの1つです。
マシン状態レジスタの実装詳細は、モデルによって異なります。以下に、代表的な実装例として、32ビットのFreescale e200z3 PowerPCコアと64ビットのIBM PowerPCを示します。
この32ビットレジスタは、プロセッサのいくつかの重要な状態を制御したり、報告したりする役割を担っています。
レジスタの内容は、マシン状態レジスタからの移動(mfmsr)命令を使用して読み取ることができ、割り込みからの復帰(rfi、rfci、rfdi)、システムコール(sc)、およびマシン状態レジスタへの移動(mtmsr)命令を実行することによって変更できます。
この64ビットレジスタは、プロセッサのいくつかの重要な状態を制御したり、報告したりする役割を担っています。
マシン状態レジスタは、 mfmsr命令を使用して読み取ることができ、mtmsr[d]、rfid、hrfid命令を使用して変更できます。
PowerPCアーキテクチャのマシン状態レジスタと、IA-32およびx86-64アーキテクチャのモデル固有レジスタは、同様の機能を果たし、「MSR」という略語はどちらにも適用できますが、両者には重要な違いがあります。マシン状態レジスタは単一のレジスタであり、少数のマシン機能に対して粗粒度な制御を提供します。一方、最近のIA-32およびx86_64アーキテクチャには数十から数百のモデル固有レジスタが存在し、マシン状態の報告と制御の両方において、よりきめ細かな制御を提供します。「マシン状態レジスタ」という用語はIntelおよびAMDのドキュメントには登場せず、同様に「モデル固有レジスタ」という用語はIBMおよびFreescaleのドキュメントには登場しません。