コンピュータアーキテクチャの話 第389回 Cray-1の計算セクション

マイナビニュース / 2018年7月13日 9時28分

写真

画像提供:マイナビニュース

○計算セクション

Cray-1の計算セクションの構成を図1.40に示す。Cray-1の高い演算性能を実現するのが、64要素の8本のベクトルレジスタとAdd、Logical、Shiftのベクトル演算ユニットと浮動小数点のAdd、Multiply、近似逆数生成ユニットからなるベクトル演算機構である。なお、Cray-1は割り算器は持っておらず、逆数生成ユニットを使って計算を行う方式であった。逆数生成の精度は30ビットで、ニュートン法で1回計算を行えばCray-1の浮動小数点数の47bitの精度が得られた。

この方法は面倒なようにも思うが、通常の割り算器の場合は、例えば14サイクルにわたって割り算器を占有してしまうのに対して、逆数生成器は、最初の待ち時間は14サイクルであるが、その後は毎サイクル逆数を生成してくれる。この逆数の初期値を使って3~4回の演算を行えば割り算ができるので、ベクトル演算の場合は、1回の割り算あたりの処理時間は、このやり方の方が高速に計算できる。
○計算セクションの構成要素

なお、Cray-1の浮動小数点加算は6段パイプ、浮動小数点乗算は7段パイプ、逆数近似は14段パイプで作られている。

これに8個のスカラレジスタとスカラ用の演算ユニットがある。なお、スカラユニットは、浮動小数点演算はベクトル演算器を利用している。また、スカラユニットは割り算器を持っておらず、除数を浮動小数点数に変換してから逆数近似を計算し、それを被除数に掛けるといいう計算を行う必要があった。

Cray-1は12.5nsのクロックであったので、40nsクロックのSTAR-100などと比べて、スカラ演算も3倍くらい速かった。

そして、8個のアドレスレジスタとアドレス計算用の演算器を持っていた。なお、アドレス計算は24bitで行われる。

そして、スカラ計算には、8個のSレジスタに加えて64エントリのTレジスタがある。Tレジスタは、Sレジスタ、あるいはメモリとデータをやり取りすることができるレジスタであり、Sレジスタが不足する場合のデータの退避、復元や、Sレジスタの値をメモリに格納するために使用される。

アドレス計算用にも64エントリのBレジスタがあり、BレジスタはAレジスタやメモリとデータをやり取りできるレジスタである。

そして、TレジスタとBレジスタへのメモリとのデータ転送はブロック転送を行うこともできるようになっている。

  • 前のページ
    • 1
    • 2
  • 次のページ
マイナビニュース

トピックスRSS

ランキング