teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

表現訂正

2018/01/13 05:43

投稿

KSwordOfHaste
KSwordOfHaste

スコア18404

answer CHANGED
@@ -28,7 +28,7 @@
28
28
  なるほどそちらの方ですか。
29
29
  汎用プロセッサの場合、おっしゃるように特定目的の演算(本例では離散フーリエ変換)を直接実装した回路を備えているわけではありません。一定のビット数の符号有り/無しの両方の整数の四則演算や論理演算(和・積・排他的論理和・否定)、浮動小数点数の四則演算(や多分初等関数のいくつかも?)などの演算ができるだけですが、計算機能に加えてとても重要な機能が付いています。それは「メモリーに格納されている**命令語**を順番に読み込みながらそれに従って任意の演算回路を駆動する能力」、またそれからの必然ですが「どこから命令を読むかを変更したりするメタな命令(分岐など)」、つまりプログラマブルな機構を備えています。このような仕組みの計算機のことを発明した人(?)にちなんでフォン・ノイマン型計算機などと呼ぶと思います。
30
30
 
31
- こういう構成の計算機は「直接実行できる演算は単純なもののみ」なのですがそれを「命令語」による指示によって任意に組み合わせていかなるル論理も達成できるようになっている点がミソです。プログラマーの多くはそういう低水準なレベルでの「命令語(=機械語)と、個々の演算を実行するハードウェアによる論理回路」を全て合わせて「プログラムの目的を達成するための論理」として考えることが殆どだと思います。ハードウェアの演算回路「汎用計算機に組み込まれている基本機能」として論理の一部とはあまり意識せずに、実行を駆動する中心になるのは命令語の列(=ソフトウェア)として捉えることが多いでしょう
31
+ こういう構成の計算機は「直接実行できる演算は単純なもののみ」なのですがそれを「命令語」による指示によって任意に組み合わせていかなるル論理も達成できるようになっている点がミソです。プログラマーの多くはそういう低水準なレベルでの「命令語(=機械語)と、個々の演算を実行するハードウェアによる論理回路」を全て合わせて「プログラムの目的を達成するための論理」として考えたり、それよりはむしろハードウェアの演算回路「汎用計算機に組み込まれている基本機能」と捉え論理の一部であるとはあまり意識せずに、実行を駆動する中心になる命令語の列(=ソフトウェア)を「計算論理」として捉えることが多いと思います
32
32
 
33
33
  こういうやや複雑な構成になっているのは「論理を組み上げたり設定するのがハード結線により回路を組み上げるよりはるかに容易・柔軟」なためです。離散フーリエ変換の計算をする論理回路を組むことはできますが、その回路を**離散フーリエ変換意外の目的にも使えるような論理にする**のは大変複雑で困難な仕事になると思います。そういうわけで「どんなふうにでも論理を自由に組めるように」フォン・ノイマン型計算機(プロセッサー)を使えるようにしたのが汎用計算機です。
34
34
 

1

追記

2018/01/13 05:43

投稿

KSwordOfHaste
KSwordOfHaste

スコア18404

answer CHANGED
@@ -19,4 +19,21 @@
19
19
 
20
20
  [https://ja.wikipedia.org/wiki/加算器](https://ja.wikipedia.org/wiki/%E5%8A%A0%E7%AE%97%E5%99%A8)
21
21
 
22
- のようなものでは回路の部品や結線の具合はデータというより「論理」と捉えた方がよいように思います。
22
+ のようなものでは回路の部品や結線の具合はデータというより「論理」と捉えた方がよいように思います。
23
+
24
+ ---
25
+ 追記:
26
+ > 離散フーリエ変換の計算をするためだけの論理回路ではないのに、どのように演算回路を工夫して使う事で離散フーリエ変換の計算と同じ答えを導いているのか
27
+
28
+ なるほどそちらの方ですか。
29
+ 汎用プロセッサの場合、おっしゃるように特定目的の演算(本例では離散フーリエ変換)を直接実装した回路を備えているわけではありません。一定のビット数の符号有り/無しの両方の整数の四則演算や論理演算(和・積・排他的論理和・否定)、浮動小数点数の四則演算(や多分初等関数のいくつかも?)などの演算ができるだけですが、計算機能に加えてとても重要な機能が付いています。それは「メモリーに格納されている**命令語**を順番に読み込みながらそれに従って任意の演算回路を駆動する能力」、またそれからの必然ですが「どこから命令を読むかを変更したりするメタな命令(分岐など)」、つまりプログラマブルな機構を備えています。このような仕組みの計算機のことを発明した人(?)にちなんでフォン・ノイマン型計算機などと呼ぶと思います。
30
+
31
+ こういう構成の計算機は「直接実行できる演算は単純なもののみ」なのですがそれを「命令語」による指示によって任意に組み合わせていかなるル論理も達成できるようになっている点がミソです。プログラマーの多くはそういう低水準なレベルでの「命令語(=機械語)と、個々の演算を実行するハードウェアによる論理回路」を全て合わせて「プログラムの目的を達成するための論理」として考えることが殆どだと思います。ハードウェアの演算回路は「汎用計算機に組み込まれている基本機能」として論理の一部とはあまり意識せずに、実行を駆動する中心になるのは命令語の列(=ソフトウェア)として捉えることが多いでしょう。
32
+
33
+ こういうやや複雑な構成になっているのは「論理を組み上げたり設定するのがハード結線により回路を組み上げるよりはるかに容易・柔軟」なためです。離散フーリエ変換の計算をする論理回路を組むことはできますが、その回路を**離散フーリエ変換意外の目的にも使えるような論理にする**のは大変複雑で困難な仕事になると思います。そういうわけで「どんなふうにでも論理を自由に組めるように」フォン・ノイマン型計算機(プロセッサー)を使えるようにしたのが汎用計算機です。
34
+
35
+ 最初の回答で「データというより論理と捉えた方が」とコメントしましたが、フォン・ノイマン型の計算機の低水準な仕組みに着目して話をする場合は「命令語、即ちデータによって論理を駆動する」というような理解の仕方もすると思います。そういうレベルで話をするのなら
36
+
37
+ > 離散フーリエ変換と同じ答えが演算回路から出るようなデータを使っている
38
+
39
+ これは「離散フーリエ変換と同じ答えが演算回路から出るような、命令語(プログラムコード=データ)を使っている」といって差し支えないと思います。