「演算装置」の版間の差分
Narmas-Tomo (会話 | 投稿記録) 簡素化。 タグ: 差し戻し済み ビジュアルエディター |
Mariobanana (会話 | 投稿記録) 口語的な編集、HTMLコメントの改ざんのため取り消し Narmas-Tomo (会話) による ID:91816715 の版を取り消し タグ: 取り消し |
||
1行目: | 1行目: | ||
{{出典の明記|date=2013年12月29日 (日) 10:54 (UTC)}} |
{{出典の明記|date=2013年12月29日 (日) 10:54 (UTC)}} |
||
'''演算装置'''(えんざんそうち)は、[[コンピュータ]]([[プロセッサ]])の構成要素の |
'''演算装置'''(えんざんそうち)は、[[コンピュータ]]([[プロセッサ]])の構成要素のひとつで、[[論理演算]]や[[四則演算]]などの演算をおこなう装置である。 |
||
== |
== ALU == |
||
[[Image:ALU symbol.svg|thumb|right|200px|ALUを表す記号。AとBは入力(オペランド)でRが演算結果。Fは[[制御装置|制御部]]からの入力で、Dは出力ステータス。]] |
[[Image:ALU symbol.svg|thumb|right|200px|ALUを表す記号。AとBは入力(オペランド)でRが演算結果。Fは[[制御装置|制御部]]からの入力で、Dは出力ステータス。]] |
||
''' |
'''ALU'''('''A'''rithmetic '''L'''ogic '''U'''nit、漢字をあてて算術論理演算装置とも)は代表的な演算装置で、[[論理演算]]と[[加算]]および[[減算]]をおこなう。 |
||
<!--↓これは加算器 |
<!--↓これは加算器の話、ないしコンピュータ全体の方式の話--><!-- |
||
現在のコンピュータのALUは[[2の補数]]表現を使 |
現在のコンピュータのALUは[[2の補数]]表現を使っている(初期のコンピュータには[[符号付数値表現|1の補数]]を使ったり[[符号付数値表現|符号-仮数部]]形式を使ったりした)。 |
||
--> |
--> |
||
=== ALUの動作 === |
=== ALUの動作 === |
||
以下、[[74181]]を例にALUの動作を説明する。 |
以下、[[74181]]を例にALUの動作を説明する。 |
||
コンピュータでは、コンピュータ |
コンピュータでは、コンピュータの利用目的としての計算以外にも、アドレスの計算などの目的で加算が多用されるため、高速な[[加算器]]が重要であり、桁上げ先読み加算器が使われる。この時、桁上げ先読みのためには入力の全桁のそれぞれについて論理和と論理積のゲートが必要であり、出力の全桁について排他的論理和が必要である。 |
||
そのため回路を工夫 |
そのため、回路を工夫することで、高速な加算器と任意の論理演算のための装置をうまくひとつにまとめることができる。それがALUである。 |
||
74181の場合、2個の4ビットの処理すべきデータ([[被演算子|オペランド]]と呼ぶ)とキャリー入力を受け取り、[[オペコード]]に基づく[[制御装置]]あるいは[[実行ユニット]]からの5ビットの入力に従って望む演算が |
74181の場合、2個の4ビットの処理すべきデータ([[被演算子|オペランド]]と呼ぶ)とキャリー入力を受け取り、[[オペコード]]に基づく[[制御装置]]あるいは[[実行ユニット]]からの5ビットの入力に従って望む演算が行われ、1個の4ビットの出力と、キャリー出力、高速桁上げのためのキャリー生成とキャリー伝播の出力が生成される(詳細は回路図があるデータシートを参照のこと)。加算器で減算もできることについては[[加算器]]の記事を参照。 |
||
一般に、キャリーの状態などは、専用のレジスタ([[ステータスレジスタ]])または汎用レジスタの特定のビットとして、演算装置に入出力されるプロセッサが多い。 |
一般に、キャリーの状態などは、専用のレジスタ([[ステータスレジスタ]])または汎用レジスタの特定のビットとして、演算装置に入出力されるプロセッサが多い。 |
2022年10月7日 (金) 03:19時点における版
演算装置(えんざんそうち)は、コンピュータ(プロセッサ)の構成要素のひとつで、論理演算や四則演算などの演算をおこなう装置である。
ALU
ALU(Arithmetic Logic Unit、漢字をあてて算術論理演算装置とも)は代表的な演算装置で、論理演算と加算および減算をおこなう。
ALUの動作
以下、74181を例にALUの動作を説明する。
コンピュータでは、コンピュータの利用目的としての計算以外にも、アドレスの計算などの目的で加算が多用されるため、高速な加算器が重要であり、桁上げ先読み加算器が使われる。この時、桁上げ先読みのためには入力の全桁のそれぞれについて論理和と論理積のゲートが必要であり、出力の全桁について排他的論理和が必要である。
そのため、回路を工夫することで、高速な加算器と任意の論理演算のための装置をうまくひとつにまとめることができる。それがALUである。
74181の場合、2個の4ビットの処理すべきデータ(オペランドと呼ぶ)とキャリー入力を受け取り、オペコードに基づく制御装置あるいは実行ユニットからの5ビットの入力に従って望む演算が行われ、1個の4ビットの出力と、キャリー出力、高速桁上げのためのキャリー生成とキャリー伝播の出力が生成される(詳細は回路図があるデータシートを参照のこと)。加算器で減算もできることについては加算器の記事を参照。
一般に、キャリーの状態などは、専用のレジスタ(ステータスレジスタ)または汎用レジスタの特定のビットとして、演算装置に入出力されるプロセッサが多い。
その他の演算装置
など
除算や浮動小数点数の演算など、複雑な処理の実装には、直接ハードウェアで実装するには資源が多く必要なので、以下のような代替手段が取られることがある。機械語命令のエミュレートといった形で実装されることもある。
歴史
いわゆるノイマン型とされる計算機の構成についてジョン・フォン・ノイマンが書いた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年)において生物のようなはたらきを機械で実現するものとしてフィードバックを扱ったように、またノイマンの死後出版された著書『自己増殖するオートマトンの理論』に見られるような、生物の働きは機械で模倣できるのではないか、といった気勢からのものである。