先進的な機能が満載された
内部構造
そのASCであるが、全体の構成は下の画像のようになっている。演算を行なうCP(Central Processor)とは別に周辺機器とのI/Oなどを管理するPP(Peripheral Processor)を用意するマルチプロセッサー構成とする、というアイディアはCDC 6600と同じだが、これは2つの理由から採用されたそうだ。
1つは、作業分担(CPを設計するチームとPPを設計するチームを分離できる)上のメリット、もう1つは試作されたTIAC 870あるいはその前モデルのTIAC 827というマシンに、ベクトル演算を行なうユニット(Vector boxes)を試しにつないで性能を測定したところ、大変に良い結果が出たとのことで、ASCでもすべての処理を1つのプロセッサーに行なわせるのでなく分離させるのが得策と判断された。
演算そのものは、PPとCM(Central Memory)に挟まれたCPで行なわれる。このCPだが、内部は下の画像のような構造となっている。
IPU4はInstruction Processing Unitで、4つのAUに対して命令を発行する処理を行なう。昨今のCPUで言えばAUがExecution Unitで、IPU4はFetch~Decode~Dispatchに相当すると思えばいい。
このIPU4はなかなか高機能で、ベクトル命令とスカラー命令の両方を扱え、全体では最大36命令をIn-flight状態における。また、複数のAUを連動させて実行することでベクトル処理を行なわせることもできた。
MBUはMemory Buffer Unitで、これはCMとの間でのやりとりをするキャッシュである。最近のCPUで言うならLoad/Store Unitに相当するものである。
そしてAU(Arithmetic Unit)が実際の演算を行なう部分だ。この中身をもう少し細かく説明したのが下の画像となる。よく見るとLevel 0~Level 12という番号が振られているのがわかるが、これがパイプラインのステージ数である。
Level 0というのはFetch、つまり命令やデータをメモリーから取り込むところで、Level 1はIPU4の中で命令を選択、Level 2~3でアドレス計算を行ない、Level 4でその結果をオペランドレジスターに代入する。
そのアドレス値を基にLevel 5~6でCMよりデータを取り込んでMBUに格納する。これが終わるとLevel 7で各々AUのオペランドレジスターに値をセット、これを基にLevel 8~12で演算を行ない、その結果が書き戻されるという仕組みだ。Fetchを除いて考えれば12段のパイプライン構成である。
サイクル時間は65ナノ秒(当初は16MHz駆動ということで62.5ナノ秒とされていたが、もう少し遅かったらしい)で15.3MHz駆動ほどになるが、1サイクルで最大4つの演算が可能であり、ピーク性能では61.5MFLOPSほどになる。これは時期を考えれば十分に高速であった。
ちなみにWord長は32bitであるが、16bit整数や64bitの浮動小数点演算もサポートしていた。おもしろいのは、32bitと64bitの浮動小数点演算フォーマットで指数部の桁が同じことだ。32bitは符号1bit、指数部7bit、仮数部24bitで、一方64bitでは符号1bit、指数部7bit、仮数部56bitとなっている。
浮動小数点の標準形式を定めたIEEE754が登場するのは1985年なので、この頃は各社が勝手にフォーマットを定めていたわけだが、ASCでは扱える値の範囲を変えずに有効桁数だけを増やす(32bitで8桁、64bitで16桁)形にしていたのは、弾性波探索という用途では桁数よりも精度が重視されたためかもしれない。
また目立たないところだが、先の画像の上の方をみるとRegister Fileが48も存在しているのがわかる。もちろんIPU4は4つのAUで共通なので、AU1個あたりで見ると使えるレジスターの数が12ということになるが、それでも汎用レジスターがこれだけあるのはおもしろい。
実際ASCではRISC命令風のレジスター間演算を多くサポートしており、このあたりも性能改善に効果があったと思われる。
CMもなかなか特徴的であった。CMはMCU(Memory Control Unit)と複数種類のメモリーモジュールから構成される。MCUは双方向の256bit幅のメモリーI/Fを構成しており、最大8つまでのプロセッサー(これにはCPだけでなくPPも含まれる)に対して同時にアクセスが可能な構成になっていた。
1つのプロセッサーあたり最大で80MWord/秒(=320MB/秒)の転送が可能で、8本で合計2.56GB/秒という、これも時期を考えるとおそろしく高い帯域である。
もっともこれはあくまで理論帯域であって、実際にはメモリーの速度に制限されることになる。MCUは複数種類のメモリーモジュールを組み合わせることが可能で、しかも速度が違っていても良かった。
実際メインには低速だが低コストなコアメモリーを使いつつ、8本のプロセッサー向けポートにはキャッシュ用として小容量ながら高速なDRAMを使うといった構成になっており、この際にMCUはDRAMをキャッシュとして扱うような処理も可能となっていた。
ちなみにASCはDRAMとしてインテルの1103(1Kbit DRAM)を採用した最初期の製品の1つである。アドレスは24bitで、最大16MWord=64MBの構成が可能となっていた。仮想記憶などは当然ないものの、メモリーマッピングの変更やプロテクトが可能という簡単なMMU(Memory Management Unit)の機能もMCUには搭載されていた。
(→次ページヘ続く 「ソフトウェア開発で苦戦」)
この連載の記事
-
第802回
PC
16年間に渡り不可欠な存在であったISA Bus 消え去ったI/F史 -
第801回
PC
光インターコネクトで信号伝送の高速化を狙うインテル Hot Chips 2024で注目を浴びたオモシロCPU -
第800回
PC
プロセッサーから直接イーサネット信号を出せるBroadcomのCPO Hot Chips 2024で注目を浴びたオモシロCPU -
第799回
PC
世界最速に躍り出たスパコンEl Capitanはどうやって性能を改善したのか? 周波数は変えずにあるものを落とす -
第798回
PC
日本が開発したAIプロセッサーMN-Core 2 Hot Chips 2024で注目を浴びたオモシロCPU -
第797回
PC
わずか2年で完成させた韓国FuriosaAIのAIアクセラレーターRNGD Hot Chips 2024で注目を浴びたオモシロCPU -
第796回
PC
Metaが自社開発したAI推論用アクセラレーターMTIA v2 Hot Chips 2024で注目を浴びたオモシロCPU -
第795回
デジタル
AI性能を引き上げるInstinct MI325XとPensando Salina 400/Pollara 400がサーバーにインパクトをもたらす AMD CPUロードマップ -
第794回
デジタル
第5世代EPYCはMRDIMMをサポートしている? AMD CPUロードマップ -
第793回
PC
5nmの限界に早くもたどり着いてしまったWSE-3 Hot Chips 2024で注目を浴びたオモシロCPU -
第792回
PC
大型言語モデルに全振りしたSambaNovaのAIプロセッサーSC40L Hot Chips 2024で注目を浴びたオモシロCPU - この連載の一覧へ