2022年01月14日に初出の投稿

Last modified: 2022-01-15

プログラミングの素養として、従来からアルゴリズムの理解を助けるために離散数学を学ぶのが良いと書いているが、もちろん別の脈絡で基礎になる素養もある。それが、たとえば電子回路の電磁気的な仕組みだとか、あるいは CPU の論理回路としての仕組みを理解することだ。前者であれば、それこそ、中学の電気の勉強から電磁気学や電子工学といった分野を経てから、半導体やプロセッサの理論を学ぶ。パソコン関連の文書で、「RISC アーキテクチャ」などと書かれていても、この分野の知識がなければ何のことか殆ど意味が通じないはずである。対して後者は、VHDL や Verilog といったハードウェア記述言語の習得とか、ソフトウェアによるシミュレータとか FPGA 対応基盤などを使った実験を通じて、プロセッサの論理的な挙動を習得する。こうした柔軟性のある設計ができているという事情を理解しない限り、Google や Microsoft が自社のデータ・センターで何をしているのか理解できないだろう(昔なら自作マニアのレベルと言ってよい工作のような自社サーバを組んでいただけだが、いまはそんなレベルのことはしていない)。

電気的・電磁的な知識は、もちろんあったほうがいいのは確かだが、あまりにもシステム開発とはかけ離れているし、この点で何らかの重大な進展があったからといって、システム開発の手順や規範や目的が大きく変わるわけではない。したがって、システム開発に携わる者としては、まずプロセッサの論理的な仕組みを理解したい。すると、VHDL や Verilog や SystemC といった記述言語(プログラミング言語に似ているが、両者は異なる)を習得するのが望ましく、これらのシミュレータを導入することも推奨されている。実際、実験用の安価な基盤をセットにした解説書も発売されているし、シミュレータも幾つか公開ないし販売されている。僕は個人としては IEEE という組織が大嫌いなので、規格書を手に入れたり読む気はない。その代わりに、それなりのレベルの解説書を集めて読み、自宅なら Raspberry Pi Zero W で動くシミュレータがあれば使ってみたい。あるいは Raspberry Pi と接続できる FPGA の評価ボードを手に入れるという方法もあるが、こういうことをマニア的にどんどん投資していくのは本意ではないので、そういうことはお金に余裕がある人がやればよろしい。

ただ、そうは言っても DHL の勉強が効果的かと言えば、疑問はある。なぜなら、多くの DHL(ハードウェア記述言語)は既存のプログラミング言語に近い表記法やシンタクスとなっているため、そもそもプログラミング言語の処理について正確かつ原理的なところを学ぼうとする意図からすれば、たとえば C 言語の処理系について学びたいという人が DHL の一つである SystemC を学んでしまうと、C を理解するために C の勉強をするようなものだからだ。これでは、はっきり言って DHL の処理系がブラックボックスになってしまい、素養を学ぶという目的からすると、端的に言えば無意味である。SystemC で仕事をするならともかく、プログラマが素養として学ぶのであれば、これは時間の浪費でしかない。一般的な記号論理学の教科書でも読んだ方がマシというものだ。

  1. もっと新しいノート <<
  2. >> もっと古いノート

冒頭に戻る


※ 以下の SNS 共有ボタンは JavaScript を使っておらず、ボタンを押すまでは SNS サイトと全く通信しません。

Twitter Facebook