この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方)
出典検索?: "演算装置"
演算装置(えんざんそうち)は、コンピュータ(プロセッサ)の構成要素のひとつで、論理演算や四則演算などの演算をおこなう装置である。
ALUALUを表す記号。AとBは入力(オペランド)でRが演算結果。Fは制御部からの入力で、Dは出力ステータス。
ALU(arithmetic logic unit、漢字をあてて算術論理演算装置とも)は代表的な演算装置で、論理演算と加算および減算をおこなう。
ALUの動作詳細は「74181」を参照
以下、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
表
話
編
歴
CPUテクノロジー
アーキテクチャ
ISA: CISC
EDGE
EPIC
MISC(英語版)
OISC
RISC
VLIW
ZISC(英語版)
ハーバード・アーキテクチャ
ノイマン型
4ビット
8ビット
12ビット
16ビット
18ビット
24ビット
31ビット
32ビット
36ビット
48ビット
60ビット
64ビット
128ビット
並列処理
パイプライン
命令パイプライン
イン・オーダー&アウト・オブ・オーダー
レジスタ・リネーミング
投機的実行
レベル
ビット
命令
スーパースカラー
データ
タスク
スレッド
マルチスレッディング
同時マルチスレッディング
ハイパースレッディング
スーパースレッディング(英語版)
コア
シングルコア
マルチコア
ホモジニアスマルチコア
ヘテロジニアスマルチコア
フリンの分類
SISD
SIMD
MISD
MIMD
タイプ
マイクロプロセッサ
DSP
マイクロコントローラ