導入
算術論理演算装置( UAL 、英語ではALU、Arithmetic Logic Unit ) と略され、計算の実行を担当するコンピューターの器官です。ほとんどの場合、ALU は中央処理装置またはマイクロプロセッサに含まれています。
さまざまなタイプの UAL
UAL は特化している場合とそうでない場合があります。基本的な UAL は整数に基づいて計算し、一般的な操作を実行できます。これらの操作は次の 4 つのグループに分類できます。
- 算術演算:加算、減算、符号の変更など、
- 論理演算: 1 の補数、2 の補数、AND、OR、排他的 OR、NOT、NAND など、
- 比較: 同等性、優れている、劣っている、およびそれらの「または等しい」同等物のテスト、
- シフトやローテーションが行われる可能性があります(ただし、これらの作業が外部委託される場合もあります)。
一部の UAL は、単精度または倍精度 (浮動小数点ユニット(FPU) と呼びます) またはベクトル計算での浮動小数点数の操作に特化しています。通常、これらのユニットは次の操作を実行する方法を認識しています。
- 加算、減算、符号の変更、
- 掛け算、割り算、
- 比較、
- モジュール
特定の UAL (特にスーパーコンピューターの UAL など) は、ほとんどの場合 FPU クラスにあり、高度な機能を提供する可能性があります。
プロセッサは、少なくとも 2 つの複数の ALU を使用します。1 つはプログラム レジスタをインクリメントするために制御パスにあり (通常は 1、2、4、または 8 ずつ)、もう 1 つは情報を処理するためにデータパスにあります。パフォーマンスを向上させるために、ほとんどの場合パイプライン化されます。
例
4 ビット ALU 74181 (TTL)
たとえば、ここにあるのは、TTL 集積回路しか利用できなかった時代に広く使用されていた ALU、4 ビット AUAL の 74181 です。この回路は、他の回路とカスケード接続して 4 ビットより大きい整数を処理することを目的としています。これは、Alto UAL および多くのPDP-11モデル (16 ビット) の基礎です。
その真理値表は、M および S 入力の値に応じてどの操作が実行されるかを示します。
| 関数 | M = 1 | M = 0 | ||||
|---|---|---|---|---|---|---|
| S3 | S2 | S1 | S0 | 論理演算 | Cn = 0 | Cn = 1 |
| 0 | 0 | 0 | 0 | F = A なし | F = A | F = A + 1 |
| 0 | 0 | 0 | 1 | F = いいえ (A または B) | F = A または B | F = (A または B) + 1 |
| 0 | 0 | 1 | 0 | F = (A ではない) および B | F = A または (B ではない) | F = (A または (B ではない)) + 1 |
| 0 | 0 | 1 | 1 | F = 0 | F = – 1 | F = 0 |
| 0 | 1 | 0 | 0 | F = いいえ (A および B) | F = A + (A および (B ではない)) | F = A + (A および (B ではない)) + 1 |
| 0 | 1 | 0 | 1 | F = B なし | F = (A または B) + (A および (B ではない)) | F = (A または B) + (A および (B ではない)) + 1 |
| 0 | 1 | 1 | 0 | F = A x または B | F = A – B – 1 | F = A – B |
| 0 | 1 | 1 | 1 | F = A および (B ではない) | F = (A および (B ではない)) – 1 | F = A および (B ではない) |
| 1 | 0 | 0 | 0 | F = (A ではない) または B | F = A + (A および B) | F = (A + (A および B)) + 1 |
| 1 | 0 | 0 | 1 | F = いいえ (A xor B) | F = A + B | F = A + B + 1 |
| 1 | 0 | 1 | 0 | F=B | F = (A または (B ではない)) + (A および B) | F = A または (B ではない) + (A および B) + 1 |
| 1 | 0 | 1 | 1 | F = A および B | F = (A および B) – 1 | F = A および B |
| 1 | 1 | 0 | 0 | F = 1 | F = A + (A << 1) | F = A + A + 1 |
| 1 | 1 | 0 | 1 | F = A または (B ではない) | F = (A または B) + A | F = (A または B) + A + 1 |
| 1 | 1 | 1 | 0 | F = A または B | F = (A または (B ではない)) + A | F = A (B ではない) プラス A プラス 1 |
| 1 | 1 | 1 | 1 | F = A | F = A – 1 | F = A |
警告: この表にはエラーが含まれている可能性があります。
この回路図を以下に示します。

UAL などの 4 対 1 マルチプレクサの使用
この技術は、 IBM 7030「Stetch」(1961 年) の UAL で使用されています。この概念は、機能コード F の賢明な選択に基づいています。これは、目的の操作の結果にも対応します。たとえば、AND を実行するには、論理テーブルと真理値表の結果列に対応するコード F = 0001 を選択します。同様に、 or の場合は F = 0111、排他的な orの場合は F = 0110 などとなります。
| もっている | B | AとB |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
処理されるビットのペア( a i 、 b i )ごとに、4 つの信号を構築します。
以下の例は、そのような 2 ビット マルチプレクサを示しています。最初のマルチプレクサは、A と B の 2 つの最下位ビットを入力として受け取ります。これらは、F のラインの 1 つを選択するために使用されます。00 で最初のラインが選択され、01 で2 番目のラインが選択されます。 2 番目のマルチプレクサは、A と B の 2 つの最上位ビットに対して同様に動作します。
![]() 00 AND 00 = 00 | ![]() 00 AND 11 = 00 | ![]() 01 AND 01 = 01 | ![]() 10 AND 01 = 00 | ![]() 11 AND 01 = 01 | ![]() 11 AND 11 = 11 |
上の 4 対 1 マルチプレクサの図は、完全に標準的な TTL 集積回路を使用して構築されており、そのリファレンスが表示されています。これらは、NOT、AND、NOR-OR ゲートです。






