[ トップページ ]
数学・計算・情報学・プログラミング

IAP と VF ― その設計思想のちがい

日立のメインフレーム・コンピュータ関連製品として,かつて IAP (Integrated Array Processor, 内蔵型アレイプロセッサ) というものがありました. 何世代か IAP をつくりつづけているうちに,IBM がだしてきたのが VF (Vector Facility, ベクトル処理機構) です. これらはいずれもベクトル処理を高速化するための CPU 付加機構 (attached processor. コプロセッサともよばれる) ですが,その設計思想にはおおきなちがいがあります. このことについて一度書いてみたいとずっとおもっていましたが,ここでそれを実現しようというわけです.

IAP は,日立の M シリーズ (M-180, M-200H などの総称) というメインフレームにつける比較的小規模な付加機構です. IAP は配列計算を高速化するためのものです. 現在では Intel などの CPU に付加された MMX (MultiMedia eXtension) などの付加機構が有名ですが,IAP はこれにすこし似ています. ただし,MMX ではせいぜい 2~3 倍程度しかプログラム実行を高速化できないのに対して,IAP はうまくいくと 10 倍くらいの高速化が可能でした. これを実現させた中心人物は当時,日立中研にいた 梅谷 征雄 さん (その後,静岡大) でした. 梅谷さんは日立が開発した数値シミュレーション用高水準言語 DEQSOL の産みの親でもあり,企業研究者として非常にすばらしい仕事をしていたとおもいます.

梅谷さん自身のかんがえというわけではないとおもいますが,IAP はかぎられたコストでよりたかい効果をあげることをめざして開発されていました. ここで効果というのは高速性を意味します. ベンチマークにおいてよりたかい性能をだすことがもとめられました. そのため,よくつかわれる演算をえらんで実装し,同様の演算でもあまりつかわれない演算は実装されませんでした. より具体的にいうと,Fortran プログラムにおいてよくつかわれる浮動小数点演算を重視し,最初は整数演算は実装されませんでした. その後,比較的よくつかわれる整数演算まで実装されるようになりましたが,除算のように使用頻度がひくいものはとりのこされました. そのため,私もその開発にたずさわってきた Fortran コンパイラは,ベクトル化可否を判定するときに演算の種類まで判定する必要が生じて,つくりにくく,またベクトル化できない演算だけくくりだして他の部分をベクトル化する (ループ分割する) ため,複雑な論理を必要としました.

これに対して VF においては,最初から四則演算を平等にあつかい,浮動小数と整数も平等にあつかう (ただし,処理時間がひとしいという意味ではもちろん,ない) 方針がとられていました. このほうがアーキテクチャとしてはうつくしく,またコンパイラや実行させるためのプログラムもつくりやすい. しかし,ハードウェアの効率という点からは IAP よりおとるということになるでしょう.

IBM のメインフレームに VF が付加されるようになって,IBM 互換をウリにしてきた日立もそれをつくらざるをえなくなりました. その結果,独自技術でつくりつづけてきた IAP は VF にとってかわられることになりました. これは VF のほうが IAP よりすぐれていたということを意味するわけではありませんが,両者の設計思想のちがいは興味ぶかいものでした.

キーワード: CPU付加機構, コプロセッサ, ベクトル処理機構, 配列処理機構, 数値計算

トラックバック

このエントリーのトラックバックURL:
http://www.kanadas.com/mt/mt-tb.cgi/1150

コメントを投稿

Google でブログを検索:

メインページアーカイブページも見てください.
Creative Commons License
このブログはつぎのライセンスで保護されています. クリエイティブ・コモンズ・ライセンス.
Powered by
Movable Type