演算装置

演算装置（えんざんそうち）は、コンピュータ（プロセッサ）の構成要素のひとつで、論理演算や四則演算などの演算をおこなう装置である。

 ALU 
ALU(arithmetic logic unit、漢字をあてて算術論理演算装置とも)は代表的な演算装置で、論理演算と加算および減算をおこなう。

 ALUの動作 

以下、74181を例にALUの動作を説明する。

コンピュータでは、コンピュータの利用目的としての計算以外にも、アドレスの計算などの目的で加算が多用されるため、高速な加算器が重要であり、桁上げ先読み加算器が使われる。この時、桁上げ先読みのためには入力の全桁のそれぞれについて論理和と論理積のゲートが必要であり、出力の全桁について排他的論理和が必要である。

そのため、回路を工夫することで、高速な加算器と任意の論理演算のための装置をうまくひとつにまとめることができる。それがALUである。

74181の場合、2個の4ビットの処理すべきデータ（オペランドと呼ぶ）とキャリー入力を受け取り、オペコードに基づく制御装置あるいは実行ユニットからの5ビットの入力に従って望む演算が行われ、1個の4ビットの出力と、キャリー出力、高速桁上げのためのキャリー生成とキャリー伝播の出力が生成される（詳細は回路図があるデータシートを参照のこと）。加算器で減算もできることについては加算器の記事を参照。

一般に、キャリーの状態などは、専用のレジスタ（ステータスレジスタ）または汎用レジスタの特定のビットとして、演算装置に入出力されるプロセッサが多い。

 その他の演算装置 
 加算器
 乗算器
 バレルシフタ
 FPU
など

除算や浮動小数点数の演算など、複雑な処理の実装には、直接ハードウェアで実装するには資源が多く必要なので、以下のような代替手段が取られることがある。機械語命令のエミュレートといった形で実装されることもある。

 ソフトウェアによる実装(性能の追求のため機械語で実装したライブラリとして提供されることが多い。コンパイラのインライン展開などのテクニックも使われる)
 マイクロコードによる実装

 歴史 
いわゆるノイマン型とされる計算機の構成についてジョン・フォン・ノイマンが書いた1945年の報告書『EDVACに関する報告書の第一草稿』(First Draft of a Report on the EDVAC)で、システムの各部分について述べた2章の§2.2において、第一に（primarily）計算機械（computer）であるから、加減乗除をはじめとする演算（operation）に特化した器官（organs）が必要である、と述べられている。また、文献中には the arithmetical and the logical control procedures of the device といった表現も見られる。

ここで「器官（organ）」という言葉が使われていることについては、当時、マカロックとピッツによるニューロンの形式化（1943年）や、（まだ発表前であったが）ノーバート・ウィーナーが『サイバネティックス』（1948年）において生物のようなはたらきを機械で実現するものとしてフィードバックを扱ったように、またノイマンの死後出版された著書『自己増殖するオートマトンの理論』に見られるような、生物の働きは機械で模倣できるのではないか、といった気勢からのものである。

 関連項目 
 除算 (デジタル)
 汎用ロジックIC

Category:デジタル回路
Category:CPU
Category:コンピュータの算術
Category:数学に関する記事