サイズ
レジスタは通常、保持できるビット数で表され、例えば8ビットレジスタ、32ビットレジスタ、64ビットレジスタ、128ビットレジスタなどがあります。一部の命令セットでは、レジスタはさまざまなモードで動作し、記憶領域をより小さな部分(例えば32ビットを4つの8ビット領域)に分割して、複数のデータ(ベクトル、つまり1次元配列)を同時にロードして操作することができます。通常、これはメモリをより大きなレジスタにマッピングする追加のレジスタを追加することで実現されます。複数のデータに対して単一の命令を実行できるプロセッサは、SIMDプロセッサと呼ばれます。
種類
Intel 8086レジスタ| 1 9 | 1 8 | 1 7 | 1 6 | 1 5 | 1 4 | 1 3 | 1 2 | 1 1 | 1 0 | 0 9 | 0 8 | 0 7 | 0 6 | 0 5 | 0 4 | 0 3 | 0 2 | 0 1 | 0 0 | (ビット位置) | | 主要レジスター | | | ああ | アル | 斧 | | 0 0 0 0 | BH | BL | BX | | | CH | CL | CX | | | DH | DL | DX | | インデックスレジスタ | | 0 0 0 0 | SI | ソースインデックス | | 0 0 0 0 | DI | 目的地インデックス | | 0 0 0 0 | BP | ベースポインタ | | 0 0 0 0 | SP | スタックポインタ | | プログラムカウンター | | 0 0 0 0 | IP | 命令ポインタ | | セグメントレジスタ | | CS | 0 0 0 0 | コードセグメント | | DS | 0 0 0 0 | データセグメント | | ES | 0 0 0 0 | エクストラセグメント | | SS | 0 0 0 0 | スタックセグメント | | ステータスレジスタ | | | - | - | - | - | O | D | 私 | T | S | Z | - | A | - | P | - | C | 旗 |
|
プロセッサには通常、いくつかの種類のレジスタが含まれており、それらは格納できる値の種類や、それらを操作する命令の種類によって分類できます。
- ユーザーがアクセス可能なレジスタは、機械語命令によって読み書きできます。ユーザーがアクセス可能なレジスタの最も一般的な分類は、データレジスタとアドレスレジスタへの分類です。
- 内部レジスタは命令からはアクセスできず、プロセッサの内部動作に使用されます。
- 命令レジスタには、現在実行中の命令が格納されます。
- RAM( CPUとは別のチップ上に配置された記憶レジスタの集合) から情報を取得することに関連するレジスタ:
- 建築登録簿レジスタはソフトウェアからアクセス可能であり、アーキテクチャによって定義されます。基盤となるハードウェアによってレジスタ名の変更が行われている場合、これらのレジスタは物理的なハードウェアと一致しない可能性があります。
ハードウェアレジスタも同様の仕組みだが、CPUの外部に存在する。
SPARCやMIPSなどの一部のアーキテクチャでは、整数レジスタファイルの最初または最後のレジスタは擬似レジスタとして扱われます。これは、読み取り時に常にゼロを返すようにハードワイヤリングされているため(主にインデックスモードを簡素化するため)、上書きすることができません。Alphaでは、浮動小数点レジスタファイルについても同様のことが行われます。このため、レジスタファイルは、実際に使用可能なレジスタ数よりも1つ多いレジスタ数で表記されることがよくあります。例えば、上記のレジスタの定義に当てはまるのは31個だけなのに、32個のレジスタがあると表記されることがあります。
使用法
プロセッサ上で使用可能なレジスタの数と、それらのレジスタを使用して実行できる演算の種類は、最適化コンパイラによって生成されるコードの効率に大きな影響を与えます。式ツリーのシュトララー数は、その式ツリーを評価するために必要な最小レジスタ数を示します。
参考文献
- ↑ 「プロセッサレジスタとは何か?」。Educative: ソフトウェア開発者向けインタラクティブコース。2022年8月12日取得。
- ↑ 「CPUレジスタファイルの設計と管理のための技術の調査」。
- ↑ 「Cray-1 コンピュータ システム ハードウェア リファレンス マニュアル」(PDF)。Cray Research。1977年 11 月。2021年 11 月 7 日にオリジナルからアーカイブ(PDF) 。2022年 12 月 23 日に取得。
- ↑ 「MCS-4 マイクロコンピュータセット ユーザーマニュアル」(PDF)。インテル。1973年2月。2005年2月24日にオリジナルからアーカイブ(PDF) 。
- ↑ 「8008 8ビット並列中央処理装置ユーザーマニュアル」(PDF)。インテル。1973年11月。2007年10月4日にオリジナルからアーカイブ(PDF) 。 2014年1月23日取得。
- ↑ 「Intel 8080 マイクロコンピュータ システム ユーザー マニュアル」(PDF)。Intel。1975 年 9 月。2010年 12 月 6 日にオリジナルからアーカイブ(PDF) 。2014年1 月 23 日に取得。
- ↑ Z80ファミリーCPUユーザーマニュアル(PDF)。Zilog 。 2016年。3ページ。UM008011-0816 。2023年12月26日にオリジナルからアーカイブ(PDF) 。 2024年1月5日に取得。
- ↑ 「80286および80287プログラマーズ・リファレンス・マニュアル」(PDF)。インテル。1987年。2015年7月23日にオリジナルからアーカイブ(PDF) 。
- 1 2 「Intel 64 および IA-32 アーキテクチャ ソフトウェア開発者マニュアル」。Intel。2019 年 12 月 4 日。
- ↑ 「AMD64アーキテクチャプログラマーズマニュアル第1巻:アプリケーションプログラミング」(PDF)。AMD 。 2013年10月。
- ↑ 「Intelアーキテクチャ命令セット拡張および将来の機能プログラミングリファレンス」(PDF)。Intel 。 2018年1月。
- ↑ F8、マイクロプロセッサ入門ユーザーマニュアル(PDF)。フェアチャイルド。1975年1月。
- ↑ F8 プログラミングガイド(PDF)。フェアチャイルド MOS マイクロコンピュータ部門。1977 年。
- ↑ COP400マイクロコントローラファミリ COPSファミリユーザーガイド。ナショナルセミコンダクター。 2025年6月23日取得。
- ↑ 「Nios II Classic プロセッサ リファレンス ガイド」(PDF)。Altera。2015年 4 月 2 日。
- ↑ 「Nios II Gen2 プロセッサ リファレンス ガイド」(PDF)。Altera。2015年4月2日。
- ↑ 「M6800 プログラミング リファレンス マニュアル」(PDF)。モトローラ。1976 年 11 月。2011年 10 月 14 日にオリジナルからアーカイブ(PDF) 。2015年5 月 18 日に取得。
- ↑ 「Motorola M68000ファミリープログラマーリファレンスマニュアル」(PDF)。Motorola。1992年。 2024年11月10日取得。
- ↑ 「MSP430F552x、MSP430F551x ミックスドシグナルマイクロコントローラ」(PDF)。テキサス・インスツルメンツ。 2025年11月10日取得。
- ↑ 「CUDA C プログラミング ガイド」。Nvidia。2019年。 2020年1月9日取得。
- ↑賈、浙;マッジョーニ、マルコ。スタイガー、ベンジャミン。スカルパッツァ、ダニエレ P. (2018)。 「マイクロベンチマークによる NVIDIA Volta GPU アーキテクチャの分析」。arXiv : 1804.06826 [ cs.DC ]。
- ↑コントロールデータ6000シリーズコンピュータシステム、リファレンスマニュアル(PDF)。コントロールデータコーポレーション。1965年7月。
- ↑ IBM System/360 操作原理(PDF) . IBM.
- ↑ IBM System/370、動作原理(PDF)。IBM。1975年9月1日。
- ↑ z/アーキテクチャ、動作原理(PDF)(第7版)。IBM。2008年。
- ↑ 「IBM Enterprise Systems Architecture/370 および System/370 - ベクトル操作」(PDF) . IBM. SA22-7125-3 . 2020 年5 月 11 日取得.
- ↑ 「IBM S/390 G5 マイクロプロセッサ」(PDF)。
- ↑ 「MMIXホームページ」
- ↑ 「シリーズ32000データブック」(PDF)。ナショナルセミコンダクター。2017年11月25日にオリジナルからアーカイブ(PDF) 。
- ↑ Intel Itaniumアーキテクチャ、ソフトウェア開発者マニュアル、第3巻:Intel Itanium命令セットリファレンス(PDF)。Intel。2010年5月。
- ↑ Weaver, David L.; Germond, Tom (編). SPARCアーキテクチャマニュアル、バージョン9 (PDF) . カリフォルニア州サンタクララ: SPARC International, Inc.
- ↑ Power ISA バージョン 3.1B (PDF)。OpenPOWER Foundation。2021 年 9 月 14 日。
- ↑ Blackfinプロセッサ、プログラミングリファレンス、リビジョン2.2(PDF)。アナログ・デバイセズ。2013年2月。
- ↑ 「シナジスティック・プロセッサー・ユニット命令セット・アーキテクチャ バージョン 1.2」(PDF)。IBM。2007年1月27日。
- ↑レナード、ティモシー E. 編 (1987). VAX アーキテクチャ、リファレンス マニュアル(PDF) . DEC ブックス。
- ↑ Alphaアーキテクチャリファレンスマニュアル(PDF)(第4版)。コンパックコンピュータ株式会社。2002年1月。
- ↑ 「65816アセンブリ言語の学習」。スーパーファミコン開発Wiki 。 2019年11月14日取得。
- ↑ 「ARMアーキテクチャのプロシージャ呼び出し標準」(PDF) . ARM Holdings . 2013年11月30日. 2013年5月27日取得.
- ↑ 「2.6.2. サムステートレジスタセット」 . ARM7TDMIテクニカルリファレンスマニュアル. ARMホールディングス.
- ↑ Arm A64命令セットアーキテクチャ、Armv8、Armv8-Aアーキテクチャプロファイル(PDF)。Arm。2021年。
- ↑ MIPS64 プログラマ向けアーキテクチャ、第 2 巻: MIPS64 命令セット(PDF)。RISC-V Foundation。2001 年 3 月 12 日。2024年10 月 6 日取得。
- ↑ Waterman, Andrew; Asanovi, Krste 編 (2017 年 5 月). RISC-V 命令セット マニュアル、第 I 巻: ユーザー レベル ISA、ドキュメント バージョン 2.2 (PDF) . RISC-V Foundation.
- ↑ 「Epiphany Architecture Reference」(PDF)