ビットスライシングとは、ワード長を長くするために、より小さなビット幅のプロセッサモジュールからプロセッサを構築する技術であり、理論的には任意のnビットの中央処理装置(CPU)を作成することができます。これらの各コンポーネントモジュールは、オペランドの1ビットフィールドまたはスライスを処理します。グループ化された処理コンポーネントは、特定のソフトウェア設計で選択された完全なワード長を処理する能力を持つことになります。
ビットスライシングは、マイクロプロセッサの集積度が高まったことにより、ほぼ廃れてしまった。最近では、量子コンピュータの算術論理演算ユニット(ALU)や、 x86 CPUの暗号化などのソフトウェア技術として使用されている。[ 1 ]
ビットスライスプロセッサ(BSP)は通常、1ビット、2ビット、4ビット、8ビット、または16ビットの算術論理演算ユニット(ALU)と制御線(ビットスライスではないCPU設計ではプロセッサ内部にあるキャリー信号やオーバーフロー信号を含む)を備えています。
例えば、2つの4ビットALUチップを制御線で区切って並べて配置することで、8ビットALUを構成できます。組み合わせは自由自在です。3つの1ビットユニットで3ビットALUを構成できます[ 2 ]。さらにユニットを増やせばnビットALUを構成できます。4つの4ビットALUチップで16ビットALUを構築したり、8つのチップで32ビットワードALUを構築したりできます。設計者は、より長いワード長を操作するために必要な数のスライスを追加できます。
マイクロシーケンサまたは制御ROMは、ロジックを実行してデータと制御信号を提供し、構成要素であるALUの機能を制御するために使用されます。
既知のビットスライス型マイクロプロセッサ:

ビットスライシングは、当時はそのように呼ばれていなかったものの、大規模集積回路(LSI、今日のVLSI、すなわち超大規模集積回路の前身)が登場する以前のコンピュータでも使用されていた。
最初のビットスライス方式のマシンは、1946年から1951年にかけて製造されたWhirlwind I [ 16 ]でした。そのフロアプランには、CPUレジスタと算術回路が配置されたA列のように、密接に関連し、高度に相互接続された回路のグループごとに「リレーラック」(略して「ラック」)の列がありました。1列内では、16ビットワード内の各ビット位置の回路は、A列のラックA0~A15のように、個別のラックに配置されていました。
ラック内には、特定の機能の回路を収容するパネルが配置されていた。A列のラックには、上から順に、命令レジスタ(「プログラムレジスタ」とAレジスタ)、プログラムカウンタ、BレジスタとI/Oレジスタ、アキュムレータ(演算が行われる場所)、チェックレジスタ、比較レジスタのパネルが配置されていた。これにより、A0~A15の各ラックは同一構成となり、各ラック内の対応するパネルも同一構成となった。
ビットスライス方式を採用した第一世代のコンピュータとしては、1952年から1953年にかけてMITでWhirlwind研究の一環として構築されたMemory Test Computerや、1956年から1958年にかけてケンブリッジ大学数学研究所で構築されたEDSAC 2などが挙げられる。
第2世代(ディスクリートトランジスタ)マシンでは、ビットスライシングを使用して回路を同一のプラグインモジュールの列に分割し、各モジュールが複数のレジスタの1ビットずつを保持しました。1つの例[ 17 ]は、18ビットのメモリ アドレスを持つ36ビット マシンであるPDP-6で、9ビットのシフト カウントおよび浮動小数点指数レジスタを9個のタイプ6203モジュールが保持し、複数の36ビット算術レジスタを36個のタイプ6205モジュールが保持し、複数の18ビットのメモリ アドレス関連レジスタを18個のタイプ6206モジュールが保持していました。
1970年代半ばから1980年代後半にかけては、コンピュータシステムを正常に動作させるために必要なバス幅について議論が交わされていました。当時のシリコンチップ技術や部品は現在よりもはるかに高価でした。よりシンプルで安価なALUを複数使用することで、費用対効果の高い方法で演算能力を向上させると考えられていました。当時、32ビットマイクロプロセッサは議論されていましたが、実際に生産されていたものはほとんどありませんでした。
UNIVAC 1100互換シリーズのメインフレーム(1962年に登場した最も古いシリーズの1つ)は36ビットアーキテクチャを採用しており、1979年に導入された1100/60は、最新の集積回路を使用しながら必要なワード幅を実現するために、9個のMotorola MC10800 4ビットALU [ 12 ]チップを使用していた。[ 18 ]
当時、16ビットプロセッサは一般的だったものの高価であり、Z80などの8ビットプロセッサは黎明期の家庭用コンピュータ市場で広く使用されていた。
コンポーネントを組み合わせてビットスライス製品を生成することで、エンジニアや学生は、市販のコンポーネントをカスタマイズして使用することで、より高性能で複雑なコンピュータをよりリーズナブルなコストで構築できるようになった。ALUの詳細が既に仕様化され(そしてデバッグ済みであったため)、新しいコンピュータアーキテクチャの構築に伴う複雑さは大幅に軽減された。
最大の利点は、ビットスライシングによって、当時NMOSやCMOSトランジスタよりもはるかに高速にスイッチングするバイポーラトランジスタを、より小型のプロセッサでも経済的に使用できるようになった点です。これにより、DSP機能や行列変換など、速度が求められる場面で、はるかに高いクロック周波数を実現することが可能になりました。また、Xerox Altoのように、シングルチップCPUが実現する以前に、柔軟性と速度を両立させることもできました。
近年では、ビットスライシングという用語は、汎用CPUを使用して、汎用ロジック命令で単一命令複数データ(SIMD )演算を実行する複数の並列単純仮想マシンを実装する技術を指すために、 Matthew Kwan [ 19 ] によって再利用されました。この技術は、レジスタ内SIMD (SWAR)としても知られています。
これは当初、 Eli Bihamの 1997 年の論文「ソフトウェアによる高速な新しい DES 実装」[ 20 ]を参照したもので、この方法を使用することでDESのパフォーマンスが大幅に向上しました。
超伝導デジタルプロセッサ( MIPS32命令セットを実行するように提案されている)の回路構造を簡素化し、ハードウェアコストを削減するために、 50GHz超伝導「32ビット高速単一磁束量子マイクロプロセッサ用の4ビットビットスライス算術論理演算ユニット(ALU)」が実証された。[ 21 ]
[…] 3つの1ビットALUを組み合わせて3ビットALUを作成する方法は次のとおりです […]
[…] 32ビット高速シングルフラックス量子マイクロプロセッサ用の4ビットビットスライス算術論理ユニット(ALU)が実証されました。提案されたALUは、MIPS32命令セットのすべてのALU演算を網羅しています。[…]
面積3.09
×
1.66
mm²の3481個の
ジョセフソン接合で構成されています。設計した
DCバイアス
電圧2.5
mV
で、32ビット演算において
目標周波数50
GHz、レイテンシ524 psを達成しました
。[…] 目標処理周波数30 GHzの別の8ビット並列ALUが設計・製造されました。
[…] 2~3 GHzで動作するCMOS並列マイクロプロセッサと同等の性能を実現するには
、4ビットのビットスライス処理を数十ギガヘルツのクロック周波数で実行する必要があります。50 GHzを超える高速クロックで動作するいくつかのビットシリアル演算回路が実証されています。
[…]