Reset vector とは

リセットベクトルは、リセット後に実行される最初の命令を見つけるために中央処理装置が行うデフォルトの位置である。リセットベクトルはポインタまたはアドレスであり、CPUは命令を実行できるようになるとすぐに開始する必要があります。アドレスは、CPUを含むシステムをブートするプロセスの第1ステップとして、CPUの動作を開始する命令を含むように初期化された不揮発性メモリのセクション内にある。
 8086プロセッサーのリセット・ベクトルは、物理アドレスFFFF0h(1 MB未満の16バイト)です。リセット時のCSレジスタの値はFFFFhであり、リセット時のIPレジスタの値は0000hであり、物理アドレスFFFF0hにマップされるセグメント化アドレスFFFFh:0000hを形成する。 80286プロセッサのリセットベクタは、物理アドレス00FFFF0h(1 MB未満の16バイト)です。リセット時のCSレジスタの値はF000hであり、リセット時のIPレジスタの値はFFFhhであり、リアルモードで物理アドレス00FFFF0hにマップされるセグメント化アドレスF000h:FFF0hを形成します。これは、CSレジスタを変更せずに保護モードに切り替えるために十分なスペースを確保できるように変更されました。 80386以降のx86プロセッサのリセットベクタは、物理アドレスFFFFFFF0h(4 GB未満の16バイト)です。リセット時のCSレジスタのセレクタ部の値はF000h、CSレジスタのベース部の値はFFFF0000h、リセット時のIPレジスタの値はFFF0hであり、セグメント化アドレスFFFF0000h:FFF0hを形成する実モードでは物理アドレスFFFFFFF0hに設定されます。 PowerPC / Power Architectureプロセッサのリセットベクタは、32ビットプロセッサでは0x00000100、64ビットプロセッサでは0x0000000000000100の実効アドレスになります。 m68kアーキテクチャプロセッサのリセットベクタは、初期割り込みスタックレジスタ(IISR;リセットベクタではなく、リセット後にスタックポインタを初期化するために使用されます)と0x4です。 SPARCバージョン8プロセッサのリセットベクタは0x00のアドレスにあります。 SPARCバージョン9プロセッサのリセットベクタは、パワーオンリセットの場合は0x20、ウォッチドッグリセットの場合は0x40、外部起動リセットの場合は0x60、ソフトウェア起動リセットの場合は0x80になります。 MIPS32プロセッサのリセットベクタは、仮想アドレス0xBFC00000にあり、KSEG1キャッシュ不可メモリ領域の最後の4Mバイトに配置されています。コアは、リセット時および例外が認識されたときの両方でカーネルモードに入り、仮想アドレスを物理アドレスにマップすることができます。 ARMファミリのプロセッサのリセットベクタは、アドレス0x0または0xFFFF0000です。通常の実行中に、元のROMベースのベクタテーブルと比較して、パフォーマンスを向上させるためにRAMがこの場所に再マップされます。

Degree of parallelism とは

並列度(DOP)は、コンピュータがどれだけ多くの操作を実行できるか、または同時に実行しているかを示すメトリックです。これは、特に、並列プログラムとマルチプロセッサシステムのパフォーマンスを記述するのに便利です。
並列コンピュータ上で動作するプログラムは、異なる時間に異なる数のプロセッサを利用することができる。各期間について、プログラムを実行するために使用されるプロセッサの数は、並列度として定義される。所与のプログラムの時間関数としてのDOPのプロットは、並列性プロファイルと呼ばれる。

Instruction window とは

コンピュータアーキテクチャにおける命令ウインドウは、投機的プロセッサにおいて不規則に実行することができる命令セットを指す。
特に、従来の設計では、命令ウィンドウは、再順序バッファ(ROB)内にあるすべての命令からなる。そのようなプロセッサでは、命令ウィンドウ内の任意の命令は、そのオペランドが準備完了状態で実行されることができる。アウト・オブ・オーダー・プロセッサーは、その名前が派生している可能性がある(若い命令のオペランドが古い命令のオペランドの前にある場合)ことがあるため、その名前が導出されます。
命令ウィンドウは有限のサイズを持ち、他の命令がウィンドウを離れるとき(通常はリタイアまたはコミットと呼ばれる)にのみ新しい命令がウィンドウに入ることができます(通常ディスパッチまたは割り付けと呼ばれます)。命令はプログラム命令で命令ウィンドウに入り、命令ウィンドウから離れることができ、命令はウィンドウ内で最も古い命令であり、完了したときにのみそのウィンドウを離れることができる。したがって、命令ウインドウは、命令が不規則になるスライディングウインドウとして見ることができる。ウィンドウ内のすべての実行は、割り込みのような非同期例外処理をサポートするために、コミットされるまで、投機的(すなわち、副作用はCPUの外部に適用されない)である。
このパラダイムは、制限されたデータフローとしても知られています。これは、ウィンドウ内の命令が必ずしもプログラムの順序ではなくデータフローの順序で実行されるためですが、これが発生するウィンドウは制限されています(有限のサイズ)。
命令ウィンドウは、パイプライン処理とは異なる。すなわち、インオーダパイプライン内の命令は、命令ウィンドウ内に従来理解されていた意味ではなく、互いに順不同で実行することができないからである。アウト・オブ・オーダー・プロセッサは、通常、パイプラインの周りに構築されるが、パイプライン・ステージの多く(例えば、フロントエンド命令フェッチおよびデコード・ステージ)は、命令ウィンドウの一部とはみなされない。

Micro-operation とは

コンピュータ中央処理装置では、マイクロオペレーション(マイクロオペレーションまたはμopsとも呼ばれる)は、複雑な機械命令(この文脈ではマクロ命令と呼ばれることもある)を実装するためにいくつかの設計で使用される詳細な低レベル命令である。
通常、マイクロオペレーションは、レジスタ間または中央処理装置(CPU)のレジスタと外部バスとの間でデータを転送し、レジスタに対して算術演算または論理演算を実行することを含む、1つまたは複数のレジスタに格納されたデータの基本演算を実行する。典型的なフェッチ – デコード – 実行サイクルでは、マクロ命令の各ステップは実行中に分解されるので、CPUは一連のマイクロ動作を決定し、ステップする。マイクロオペレーションの実行は、CPUの制御ユニットの制御下で実行され、CPUの制御ユニットは、並べ替え、融合およびキャッシングなどの様々な最適化を実行しながらその実行を決定する。

Zero instruction set computer とは

コンピュータ科学では、ゼロ命令セットコンピュータ(ZISC)は、パターンマッチングと古典的意味における(マイクロ)命令の欠如のみに基づくコンピュータアーキテクチャを指す。これらのチップは、「シナプス」および「ニューロン」の数について市販されているニューラルネットワークに匹敵すると考えられていることで知られている。
略語ZISCは、縮小命令セットコンピュータ(RISC)を暗示する。

Address generation unit とは

アドレス計算ユニット(ACU)とも呼ばれるアドレス生成ユニット(AGU)は、中央処理装置(CPU)内の実行ユニットであり、CPUがメインメモリにアクセスするために使用するアドレスを計算します。 CPUの残りの部分と並列に動作する別個の回路によってアドレス計算を処理することにより、様々な機械命令を実行するのに必要なCPUサイクル数を減らすことができ、性能が改善される。
CPUは、さまざまな操作を実行しながら、メモリからデータを取得するために必要なメモリアドレスを計算する必要があります。例えば、配列要素のインメモリ位置は、CPUが実際のメモリ位置からデータをフェッチする前に計算されなければならない。これらのアドレス生成計算には、加算、減算、モジュロ演算、またはビットシフトなどの異なる整数算術演算が含まれます。多くの場合、メモリアドレスの計算には、必ずしもデコードして迅速に実行する必要のない複数の汎用マシン命令が関係します。 AGUを使用して特殊な命令を導入するとともに、AGUをCPU設計に組み込むことで、さまざまなアドレス生成計算を他のCPUからオフロードすることができ、しばしば単一のCPUサイクルで迅速に実行できます。
AGUの機能は、特定のCPUとそのアーキテクチャに依存します。したがって、いくつかのAGUは、より多くのアドレス計算オペレーションを実装し、公開する一方で、いくつかは、一度に複数のオペランドで動作できるより高度な特殊命令も含む。さらに、いくつかのCPUアーキテクチャには複数のAGUが含まれているため、複数のアドレス計算オペレーションを同時に実行することができ、高度なCPUデザインのスーパースカラの性質を利用してパフォーマンスをさらに向上させることができます。例えば、Intelは複数のAGUをSandy BridgeとHaswellのマイクロアーキテクチャに組み込み、複数のメモリアクセス命令を並行して実行できるようにしてCPUメモリサブシステムの帯域幅を広げます。

Transport triggered architecture とは

コンピュータアーキテクチャにおいて、トランスポートトリガアーキテクチャ(TTA)は、プログラムがプロセッサの内部トランスポートバスを直接制御する一種のプロセッサ設計である。計算は、データ転送の副作用として起こる。機能ユニットのトリガポートにデータを書き込むことによって、機能ユニットが計算を開始する。これはシストリックアレイで起こることに似ています。モジュラー構造のため、TTAは、カスタマイズされたデータパスを備えたアプリケーション固有の命令セットプロセッサ(ASIP)用の理想的なプロセッサテンプレートですが、固定機能ハードウェアアクセラレータの柔軟性と設計コストはありません。
典型的には、トランスポート・トリガ・プロセッサは、複数のトランスポート・バスと、バスに接続された複数の機能ユニットとを有し、命令レベルの並列性の機会を提供する。並列性は、プログラマによって静的に定義されます。この点(明らかに大きな命令ワード幅に起因する)において、TTAアーキテクチャは非常に長い命令語(VLIW)アーキテクチャに似ている。 TTA命令語は、複数のスロット、バスごとに1つのスロットから構成され、各スロットは、対応するバス上で行われるデータ転送を決定する。きめ細かな制御により、従来のプロセッサでは不可能ないくつかの最適化が可能になります。たとえば、ソフトウェアはレジスタを使用せずに機能ユニット間で直接データを転送できます。
トランスポートトリガは、通常プログラマから隠されているいくつかのマイクロアーキテクチャの詳細を公開します。これは、実行時に通常行われる多くの決定がコンパイル時に固定されるため、プロセッサの制御ロジックを大幅に簡略化します。ただし、1つのTTAプロセッサ用にコンパイルされたバイナリは、アーキテクチャ間の違いがわずかであっても、再コンパイルなしで別のTTAプロセッサで実行されません。バイナリ非互換性の問題は、フルコンテキストスイッチの実装の複雑さに加えて、TTAを汎用コンピューティングよりも組み込みシステムに適しています。
すべての1命令セットのコンピュータアーキテクチャのうち、TTAアーキテクチャは、それをベースにしたプロセッサを持つ数少ないものの1つで、それをベースにしたプロセッサを持つ唯一のものは商業的に販売されています。

Minimal instruction set computer とは

(HLH OrionやOROCHI VLIWプロセッサなど、MISCとも呼ばれる複数の命令セットコンピュータと混同しないでください)。
 
最小命令セットコンピュータ(MISC)は、非常に少数の基本操作と対応するオペコードを持つプロセッサアーキテクチャです。このような命令セットは、一般に、レジスタベースではなくスタックベースであり、オペランド指定子のサイズを縮小する。
このようなスタックマシンアーキテクチャは、すべての命令が最上位のスタックエントリ上で動作するので、本質的に簡単である。
スタックアーキテクチャの結果として、全体的により小さい命令セットであるため、より小さくより速い命令デコードユニットが、個々の命令の全体的な高速動作を可能にする。
MISCアーキテクチャのスタック定義とは別に、MISCアーキテクチャはサポートされている命令数に関して定義されています。
 典型的には、最小命令セットコンピュータは32個以下の命令を有すると見なされ、NOP、RESETおよびCPUIDタイプの命令は、その基本的性質のためにコンセンサスによって一般にカウントされない。 32命令は、MISCの最大許容命令数と見なされます。これは、16または8命令が「最小命令」の意味に近いためです。 MISC CPUはゼロ命令セットのコンピュータであるため、ゼロ命令を持つことはできません。 MISC CPUは1命令セットのコンピュータであるため、1命令を持つことはできません。実装されたCPU命令は、デフォルトでは幅広い入力をサポートしていないはずです。したがって、これは通常8ビットまたは16ビットのCPUを意味します。 CPUにNXビットがある場合、CISCまたはRISCと見なされる可能性が高くなります。 MISCチップは、典型的には、アプリケーションに特有の理由がない限り、いかなる種類のハードウェアメモリ保護も有していない。 CPUにマイクロコード・サブシステムがある場合、それはMISCシステムから除外されます。 MISC CPUが受け入れることができると考えられる唯一のアドレッシングモードは、RISC CPUと同じロード/ストアです。 MISC CPUは通常64KBから4GBのアクセス可能なアドレス可能なメモリを持つことができますが、ほとんどのMISCデザインは1メガバイト未満です。
また、原則としてMISCの命令パイプラインは非常に単純な傾向があります。命令パイプライン、分岐予測、アウト・オブ・オーダー実行、レジスタの名前変更および投機的実行は、CPUをMISCアーキテクチャ・システムとして分類することを広く排除する。

MIL-STD-1750A とは

MIL-STD-1750Aまたは1750Aは、軍用標準文書MIL-STD-1750A(1980)で記述されているように、必須コンポーネントとオプションコンポーネントの両方を含む16ビットコンピュータ命令セットアーキテクチャ(ISA)の正式な定義です。
コアISAに加えて、FPUやMMUなどのオプションの命令が定義されています。重要な点として、この規格では1750Aプロセッサの実装の詳細は定義されていません。