ハーバードアーキテクチャ
命令とデータを別々のメモリに置く方式。エイケンが主義で選んだのではなく、手元にあったのが紙テープだけだったための分離である。
Harvard Mark Iは命令を穿孔紙テープから読み、数値はカウンタホイールに保持した。両者は別々の器官に収まり、別々の経路でアクセスされた。思想ではなく、1944年にはほかに手段がなかったからだ。翌年のEDVAC報告書はプログラムとデータを同じ記憶に置くことを示し、それが主流になった。「ハーバードアーキテクチャ」という言葉は、ノイマン型ではないものに名前が必要になった1970年代になって初めて作られた。
分離の利点は二つある。命令語とデータ語を同じサイクルで取り出せること、そしてプログラムメモリを読み取り専用にでき、壊されにくいこと。代償は、プログラムが自分自身を書き換えられず、メモリの配分も変えられないことだ。フラッシュ32 KBとRAM 2 KBのチップなら、プログラムの都合にかかわらずその比率で生きるしかない。
マイクロコントローラがハーバード型なのはそのためで、AVR、PIC、ARM Cortex-Mはフラッシュ用とRAM用に別々の経路を持ち、信号処理プロセッサもそうだ。現代のほぼすべてのCPUは「修正ハーバード」で、コアに近い側では命令キャッシュとデータキャッシュを分け、その奥に統合されたメインメモリを置く。エイケンが避けられなかった分離は、速度が決まるまさにその場所で正解だったことになる。