ビットスライス
ビットスライスとは、CPUを小さなビット幅のモジュールを組み合わせて構築する技術。ビットスライスによるプロセッサ構築に使うICチップをビットスライスプロセッサと呼ぶ。ビットスライスプロセッサは各オペランドを所定のビット幅ぶん(スライス)だけ処理する。ビットスライスプロセッサを組み合わせて設計上の完全なワード長の処理を実現する。
また、音声や画像のデータをビットプレーン構造に格納する操作をビットスライスと呼ぶ。詳細はビットプレーン参照。
目次 |
概要 [編集]
ひとつのビットスライスプロセッサは、1/2/4/8ビット幅の演算装置 (ALU) と、通常CPU外部には出されないキャリーやオーバフローといった制御ラインから構成される。
例えば、2個の 4ビット・ビットスライスプロセッサの制御ラインを相互接続すると 8ビットのプロセッサ(正確にはALU)が構成される。ALUを制御するための制御装置や他のCPU内コンポーネントは別の回路として接続する必要がある。
ビットスライス式マイクロプロセッサの実例としては、TIの 74181 がある。他に Intel 3000 ファミリ、AMD Am2900ファミリ、ナショナル セミコンダクター IMP-16/IMP-8ファミリなどがある。これらは、ALU以外のCPU回路もチップとして提供しているため「ファミリ」と呼ばれている。
歴史 [編集]
かつて集積回路が使われるようになる以前、ビットスライスは一般的に使われた技術だった(ただし、そのように呼ばれていたわけではない)。世界初のビットスライス・マシンは1956年から1958年に開発されたケンブリッジ大学数学研究所の EDSAC 2 である。
集積回路の集積度が低く高価であった当時、コンピュータシステムのバス幅をどれだけにするのが適切かという議論があった。複数の単純な(かつ安価な)ALUを組み合わせて使用することは、費用を抑えつつ計算能力を高めるための効果的な方法であった。
当時16ビットのプロセッサが一般的だったが高価であり、黎明期のホームコンピュータ市場ではZ80などの8ビットのプロセッサが広く使われていた。
複数の標準的量産部品を組み合わせてビットスライス方式を使えば、より強力で複雑なコンピュータを安価に製作可能だった。ALUの複雑な部分は既に実装済みなので、新たなコンピュータアーキテクチャを作る際の複雑さやデバッグの手間も大幅に低減される。
60年代末から80年代中ごろにかけて、バイポーラトランジスタを使ったビットスライス方式のプロセッサは、NMOSやCMOSのプロセッサよりも高速動作するという利点があった。そのためクロック周波数を高くでき、高速性を要求される用途に便利だった。例えば、DSPや Xerox Alto では、高速性と柔軟性からビットスライス式でプロセッサを構成している。
現代的用途 [編集]
1998年、Matthew Kwan はビットスライシングという用語の新たな用法を提案[1]。汎用CPUを使ってSIMD命令を実行することで、複数の並列動作する単純な仮想機械として使用する技法を指すとした。この技法は一般に SWAR (SIMD Within A Register) と呼ばれる。
この技法の起源は、Eli Biham の1997年の論文 A Fast New DES Implementation in Software であり[2]、この技法を使ってDESの性能を大幅に向上させた。 This was initially in reference to 's 1997 paper , which achieved significant gains in performance of DES by using this method.
脚注 [編集]
- ^ Matthew Kwan (1998年). “Bitslice DES”. 2013年2月2日閲覧。
- ^ Eli Biham (1997). A Fast New DES Implementation in Software.
この記述は GNU Free Documentation License のもとに公開されているコンピュータ用語辞典『 Free On-line Dictionary of Computing (FOLDOC) 』に基づいています。