メモリセクション

Cray-1のメモリは1Kbitのバイポーラメモリを使い、256K語、512K語あるいは1M語という構成がとれる。どの容量の場合もメモリのバンク数は16で、サイクルタイムは50ns(4クロック)で、アクセスタイムは137.5ns(11クロック)である。

1M語のメモリでは、1枚のメモリモジュールに64個のメモリチップを搭載している。メインメモリは、SEC-DED(Single bit Error Correct Double bit Error Detect)となっており、64データビットと8チェックビットをもっている。全体ではこのモジュールを1152個使っている。しかし、メモリ容量に拘わらず16バンクであるので、 モジュールの数は同じで、256K語のメモリの場合は1モジュールに16メモリチップ,512K語メモリの場合は1モジュールに32メモリチップということになる。

通常の使用では16バンクであるが、メモリに故障が生じた場合には、8バンクに縮退して運転する機能を備えていた。この機能を使えば、メモリとしては8バンクを使用して、他方の8バンクのメモリは切り離して修理を行うことができる。ただし、8バンク構成とすると、ベクトルアクセスの場合のバンクコンフリクトが増加するので、性能は低下する。

Cray-1のメモリは、キャッシュに使う高速のバイポーラメモリをメインメモリとして使う贅沢な作りで、11クロックというアクセス時間は2次キャッシュ並みのアクセス時間である。

とは言え、今では8MBのキャッシュは驚くほど大きなものではなく、80MHzのCPUクロックではカタツムリのように遅いと感じられてしまうのであるから、半導体技術の進歩は凄いものである。

Input/Outputセクション

Cray-1の入出力は、12本の入力チャネルと12本の出力チャネルをもち、それぞれ6チャネルごとのグループに分けられている。

入力チャネルは16ビットのデータと3bitのコントロールビットを持ち、64ビットのアセンブリレジスタ、カレントアドレスレジスタとリミットレジスタを持っている。カレントアドレスがリミットレジスタの値になった場合、あるいは、入力デバイスから切断信号が送られてきた場合にはCPUに割り込みを上げる。

出力チャネルも16ビットデータと3ビットのコントロールビットを持ち、64ビットのアセンブリレジスタ、カレントアドレスレジスタとリミットレジスタを持っている。そして、カレントアドレスがリミットレジスタの値になった場合にはCPUに割り込みを上げる。そして、最後の語が受信されたら、出力デバイスに切断信号を送る。

Input/Outputセクションは、図1.41のようになっている。

  • Cray-1のInput/Outputセクションの構造

    図1.41 Input/Outputセクションの構造。上がデータチャネルで、中央が制御構造、下がメモリアドレスの供給部である。チャネルのグループごとにメモリアクセスの要求をタイムスライスで受け付けるようになっている

(次回は8月10日の掲載予定です)