Harvard アーキテクチャ
まず最初に、 アーキテクチャ について話しておこう。計算科学の歴史な話になるが、今お見せしているのは、Harvardにあるオリジナルのマシン(MARK I)だが、これは Harvardアーキテクチャ を定義した。このマシンが有名になったのは、これこそが世界初のコンピュータバグだったからだ。
図. 米国で最初のプログラマブルコンピュータであるMARK I
世界初のコンピュータバグは文字通りバグ(昆虫)だった(笑) 装置は正しく動作しなかった。昆虫が闖入し、あるページにそいつを記録してしまったんだ。そして、これが正しく動作しなかった理由だ。 だから、もしも君たちがコンピュータバグがあるっていうときは、それは文字通り昆虫から来ている言葉なんだ。 Von Neumann アーキテクチャ Harvardアーキテクチャについて触れたが、お次は Von Neumann アーキテクチャだ。 Harvardアーキテクチャでは、プログラムとメモリは分離されていた。それに対して、Von Neumannアーキテクチャでは一体になっている。このことによって、プログラムはそれ自身を付け加えることが可能となった。
図. First Draft of a Report on EDVAC (John von Neumann)
でも、そのことによって予想通りに実行することが難しくなった。だから、僕たちはマイクロコントローラではHarvardアーキテクチャを用いるんだ。何故ならば、それはVon Neumannアーキテクチャより確実に命令を実行することができるからだ。まあ、これは雑な言い方だけれどもね。
RISCとCISC さて、CISCは複雑な命令のセットだ。君たちの持っているデスクトップコンピュータみたいな感じのものだ。 僕たちはRISCプロセッサを用いる事になる。これは、より少ない命令のセットを持つ。これはまた、全ての命令を非常に高速に処理することができる。
マイクロコントローラとマイクロプロセッサ 僕たちはマイクロコントローラを使う。マイクロプロセッサは君たちの持っているデスクトップコンピュータに搭載されているようなコンピュータチップみたいなものだ。そして、作動するにはメモリが必要だ。その他色んなチップも必要だ。 僕たちはマイクロコントローラを使おうとしている。マイクロコントローラは簡素なプロセッサだ。しかし、それでもより多くのことを行うことができる。マイクロコントローラは部品の一部としてあらゆる周辺機器を有している。
図. マイクロコントローラの例
僕たちがカバーしようとしているものについて、僕は少しばかり語ろうと思う。プログラム可能なロジックについて。それは、ソフトウェアではなく、ハードウェアをプログラミングすることのできるチップだ。 そして、これは僕が研究について著した論文(Aligning the representation and reality of computation with asynchronous logic automata)だ。僕たちは、未来のハードウェアとソフトウェアを製作するのためのアーキテクチャが同じような見た目になるようにしようとしている。 今回の講義では、僕たちはHarvardアーキテクチャを用いる。そしてマイクロコントローラに設定された厳選された命令のセットを用いる。 (つづく) 講義の目次は 【和訳版】FabAcademy 2016 からご覧ください。 ※この記事は FabAcademy 2016 におけるニール・ガーシェンフェルド教授(MIT)による講義動画をもとに作成しました。正確な訳ではないので間違っていたら指摘いただけるとありがたいです。