▲T o p |
記者の目 |
ホット・ニュース
Nikkei MAC CD目次 |
AltiVec: PowerPC G4のMMX対抗ベクトル演算技術 マルチメディアや信号処理で30倍の処理速度 [Thursday, June 4, 1998 服部 雅幸=日経MAC] 米Motorola社が98年5月に発表したベクトル演算技術「AltiVec」(http://www.mot.com/SPS/PowerPC/AltiVec/)。99年にはこれを実装した次世代のPowerPC G4プロセッサー搭載のマックが登場する。 AltiVecは乱暴に言えば“出来の良いMMX”である。基本的なアイデアは米IntelのMMXと同じ。と言うより,似たような技術(Motorola社は「short vector parallel architecture」と呼んでいる)はMMX以前からAlphaなどのワークステーション用CPUで実現済みで,特に目新しくはない。なお,AltiVecという名称はMotorola社の商標で,開発は同社とApple,米IBM社の共同作業である。 複数のデータに同じ演算を同時に適用 クトル演算とは1つの演算命令を複数のデータに対して適用すること。SIMD (single instructions, multiple data)というコンセプトだ。AltiVecの場合,例えば128ビットのデータを8個の16ビット・データとみなし,8個まとめてVa+Vb=Vcといった演算を行う。図のように,16ビットのカラー・データを8個同時に合成できると思えばよいだろう。
ここで言うVa,Vbというのは「ベクトル・レジスター」だ。レジスターとはCPU内部の超高速作業用メモリーで,AltiVecでは長さが128ビットのベクトル・レジスターを32個装備する(数が多いと効率の良いプログラムが書きやすい)。1つひとつのベクトル・レジスターは,8ビット×16個,16ビット×8個,32ビット×4個のいずれかのベクトル(並列した複数のデータ)として取り扱える。1つのデータとしてではなく,分割して複数のデータとして扱うのがベクトル演算の神髄だ。ベクトル内の個々のデータは整数として扱うが,32ビットの場合は浮動小数点データとしても扱える。 ちなみにMMXのベクトル・レジスターは8個で,長さは64ビット。これを8ビット×8個,16ビット×4個,32ビット×2個のいずれかで扱い,浮動小数点はサポートしない。さらに言えば,MMXは浮動小数点演算用レジスターをベクトル・レジスターに転用するため,モードの切り替えが必要である。一方,AltiVecのベクトル演算ユニットは,整数や浮動小数点の演算ユニット(回路)とは完全に独立している。 図は「VaとVbの積にVcを足したものをVdに格納する」(Va×Vb+Vc=Vd)という演算で,AltiVecはこれを一発(1クロックという意味ではない)で行う命令を備えている。こうしたAltiVec専用命令の種類は162個あり,57個のMMX命令よりも高度なものも用意されている。特徴的なのがPermute(入れ替え)命令で,「VaとVbの個々のデータをVcを参照しながら合成/並べ換えてVdに格納する」といった複雑な処理が一発でできる。 半面,RISCのメリットを活かすため,回路が複雑になる除算命令などは省かれている。個々の命令の実行クロック数や,パイプライン(命令の並列処理)の実装方法などは,現時点では公表されてない。 画像処理や3D,信号処理で活躍 AltiVecが活きるのは「膨大に並んだ同じ形式のデータに対して,同じ演算処理を適用するようなプログラム」である。ベクトル演算の原理を考えれば当たり前で,活躍の場はMMXと同分野だ。画像処理や信号処理などで,Motorola社によれば,モデムや携帯電話(どちらも膨大なディジタル信号処理をともなう)をソフトウエアで実現できるという。ワープロやブラウザーなどには縁が薄いが,Photoshopの画像処理フィルターや3Dレンダリングなどは性能向上が期待できる。 WWDCではマルチメディア分野の処理速度が30倍と語られたが,ベクトル演算が目一杯活きる用途で目一杯最適化した場合の話である。最高でも8ビット×16個同時だから16倍と思いがちだが,これは単純な演算に限った話で,先のPermuteのような処理をAltiVecなしで行うと結構な行数のプログラムになる。AltiVecではメモリーとレジスター間のデータ転送単位が通常(最大32ビット)の4倍であるし,整数/浮動小数点/ベクトルの演算が複雑にミックスしたプログラムでは,独立した演算ユニットが効力を発揮するだろう。 消費電力やチップのサイズ,価格などは,日本モトローラによると,0.18マイクロメートル配線技術を使うためそう増えないと言う。AltiVecを実装するPowerPC G4が604eの系統か750かは不明で,PowerPC G4の発表と同時に明らかになる。 |
Copyright 1993-1998 Nikkei Business Publications, Inc. All Rights Reserved. This page was last updated on Sun, Jun 21, 1998 at 2:07:16 PM. Site Developed by Rei Watanabe |