Parallel-computer-architecture-processor-systems

提供:Dev Guides
移動先:案内検索

並列システムのプロセッサ

80年代には、 Transputer と呼ばれるマルチコンピューターを作成するために特別な目的のプロセッサーが普及しました。 トランスピュータは、1つのコアプロセッサ、小さなSRAMメモリ、DRAMメインメモリインターフェイス、および4つの通信チャネルで構成され、すべて1つのチップ上にありました。 並列コンピュータ通信を行うために、チャネルが接続されてトランスピュータのネットワークが形成されました。 しかし、計算能力が不足しているため、並列アプリケーションの増加する需要に応えることができませんでした。 この問題はRISCプロセッサの開発によって解決され、安価でもありました。

最新の並列コンピューターは、命令レベルの並列処理やデータレベルの並列処理など、いくつかのレベルで並列処理を使用するマイクロプロセッサーを使用しています。

高性能プロセッサー

RISCおよびRISCyプロセッサは、今日の並列コンピューター市場を支配しています。

従来のRISCの特徴は次のとおりです-

  • アドレッシングモードがほとんどありません。
  • 命令の形式は固定で、通常は32ビットまたは64ビットです。
  • メモリからデータをロードして登録し、レジスタからメモリにデータを保存する専用のロード/ストア命令があります。
  • 算術演算は常にレジスタに対して実行されます。
  • パイプラインを使用します。

最近のマイクロプロセッサのほとんどはスーパースカラーです。 並列コンピューターでは、複数の命令パイプラインが使用されます。 したがって、スーパースカラープロセッサは、同時に複数の命令を実行できます。 スーパースカラープロセッサの有効性は、アプリケーションで使用可能な命令レベルの並列処理(ILP)の量に依存します。 パイプラインを埋めるために、ハードウェアレベルの命令はプログラムの順序とは異なる順序で実行されます。

最新のマイクロプロセッサの多くは、_super pipelining_アプローチを使用しています。 _super pipelining_では、クロック周波数を上げるために、パイプラインステージ内で行われる作業が削減され、パイプラインステージの数が増えます。

超大型命令語(VLIW)プロセッサー

これらは、水平マイクロプログラミングとスーパースカラー処理から派生しています。 VLIWプロセッサの命令は非常に大きいです。 単一の命令内の操作は並行して実行され、実行のために適切な機能ユニットに転送されます。 したがって、VLIW命令をフェッチした後、その操作はデコードされます。 次に、操作は、それらが並列に実行される機能ユニットにディスパッチされます。

ベクトルプロセッサ

ベクトルプロセッサは、汎用マイクロプロセッサに対するコプロセッサです。 ベクトルプロセッサは通常、レジスタ間またはメモリ間です。 ベクトル命令がフェッチおよびデコードされた後、オペランドベクトルの各要素に対して特定の操作が実行されますが、通常のプロセッサでは、ベクトル操作にはコード内のループ構造が必要です。 より効率的にするために、ベクトルプロセッサは複数のベクトル演算をチェーンします。つまり、1つのベクトル演算の結果がオペランドとして別のベクトル演算に転送されます。

キャッシング

キャッシュは、高性能マイクロプロセッサーの重要な要素です。 18か月ごとに、マイクロプロセッサの速度は2倍になりますが、メインメモリ用のDRAMチップはこの速度に対抗できません。 そのため、プロセッサとメモリ間の速度のギャップを埋めるためにキャッシュが導入されています。 キャッシュは、高速で小型のSRAMメモリです。 Translation Look-aside Buffers(TLB)キャッシュ、命令キャッシュ、データキャッシュなど、より多くのキャッシュが最新のプロセッサに適用されます。

直接マップされたキャッシュ

直接マップされたキャッシュでは、「モジュロ」関数を使用して、メインメモリ内のアドレスをキャッシュの場所に1対1でマッピングします。 同じキャッシュエントリに複数のメインメモリブロックをマップできるため、プロセッサは、キャッシュ内のデータブロックが実際に必要なデータブロックであるかどうかを判断できる必要があります。 この識別は、キャッシュブロックとともにタグを格納することによって行われます。

完全連想キャッシュ

完全連想マッピングにより、キャッシュ内の任意の場所にキャッシュブロックを配置できます。 いくつかの置換ポリシーを使用することにより、キャッシュはキャッシュブロックを格納するキャッシュエントリを決定します。 完全連想キャッシュには柔軟なマッピングがあり、キャッシュエントリの競合の数を最小限に抑えます。 完全連想の実装は高価なので、大規模に使用されることはありません。

セットアソシアティブキャッシュ

セット連想マッピングは、直接マッピングと完全連想マッピングの組み合わせです。 この場合、キャッシュエントリはキャッシュセットに分割されます。 直接マッピングと同様に、キャッシュ内のセットへのメモリブロックの固定マッピングがあります。 ただし、キャッシュセット内では、メモリブロックは完全に連想的にマッピングされます。

キャッシュ戦略

マッピングメカニズム以外に、キャッシュには、特定のイベントの場合に何をすべきかを指定する一連の戦略も必要です。 (セット)連想キャッシュの場合、キャッシュは、キャッシュに入る新しいブロックによって置き換えられるキャッシュブロックを決定する必要があります。

いくつかのよく知られている交換戦略は-

  • 先入れ先出し(FIFO)
  • 最長時間未使用(LRU)