Entry

コンピュータのことを知りたいなら作ればいいと言ったのだけれど

2011年02月27日

同僚に某氏がコンピュータに対する理解がないという相談をされたんだけれども,なんだか微妙な空気に……。なんでも,某氏が必要もないところで複数のプロセスをがしがし起動させたがるもんで,「プロセスの起動には高いコストがかかるんだよ」と忠告したところ,「大した問題じゃない」と一蹴されてしまったんだとか。

で,あたしゃ,こう答えたのでした。そしたら,一笑されてしまった。

コンピュータのことを知りたいなら,半田ごてをもって自分で作るのが一番手っ取り早いですよ。

「FF(フリップフロップ回路)から作るの?まさかー!」とか笑ってたんだけれども,いや,まさかじゃなくて……。ほんとのことなんだけどなー。

もちろん,自作の FF を自前の CPU に乗せるのは基板面積を確保するのが大変なので,トランジスタを使った FF はひとつだけ作って動作を確認するだけでいいと思う。実際に CPU を作るときは,IC(74171 とか)を使う。もちろん,プリント基板は使わないで,自分で配線します。また,論理ゲートについても,NAND ゲートだけで一通りの論理回路(NOT, OR, NOR, AND)を自作するといいと思います。

実際の作り方は,こちらが詳しいです。

CPUの創りかた
CPUの創りかた
posted with amazlet at 11.02.27
渡波 郁
毎日コミュニケーションズ
売り上げランキング: 5695

最近は FPGA や CPLD で CPU を作る書籍もあるけれど,コンピュータ上で構成した CPU よりも,自分で半田ごてを持って作った CPU の方が具体的に CPU の動作を理解できると思います。

CPU の動きを理解できたら,今度はもっと本格的な運用を考えたコンピュータを理解します。これには,MCU(マイコン)を使うのがとても良いと思う。個人的にお勧めなのが,AVR という 8bit マイコンです。日本では,PIC という多機能なマイコンも有名だけれども,メモリ構成が特殊なので(バンクを使ってメモリを切り替えないといけない),リニアなメモリ配置で取り扱いが簡単な AVR を勧めます。AVR については,このサイトでも少し取り扱いました(最近はいぢってないけど)。

もう少し余裕があるなら,8bit の AVR から,16bit の H8 や SH2 なんかのマイコンをいじってみてもいいと思います。

少しマイコンに慣れたら,ゲームボーイやゲームボーイアドバンスを分解していぢってもいい。前者は Z80(いわゆるゼッパチ),後者は ARM 系 MCU を使っていて,どちらも運用実績があるので,これらの MCU が実際にどのように使われているか,よく理解できると思います。

ここらへんまで来ると,CPU から OS へ橋渡しの準備ができたことになります。AVR なり H8 なりに OS を乗せてみましょう。自分で作るのが一番勉強になるけれども,面倒だったら uLinux を乗せて遊んでみるといいと思います。実際にプロセスがどのように生成されるのかもよく分かるし,プロセスを生成する上で,どのようなリソースと手続きが必要なのかも,具体的に分かるはずです。

某氏に限らず,ソフトウェアプログラマには,ハードウェアばかりでなく OS すらもブラックボックスとして扱っている向きがいたりします。プログラミング言語の処理系(例えば Ruby 処理系とか JVM 処理系とか)以上のことは知らなくてもいいとか豪語している人もいる。それはそれで構わないんだけれども,そゆ人のできることはせいぜい限られているし,たまにとんでもなことをして(プロセスを大量にゴリゴリ作るとか)たりもする。

笑う前に一度やってみればいいのに,とか思うんだけれども,会社の業務でそこまでさせるわけにもいかないし。ま,伸びるか否かは,その人の好奇心次第なんだよなー……とか。

Trackback
Trackback URL:
Ads
About
Search This Site
Ads
Categories
Recent Entries
Log Archive
Syndicate This Site
Info.
クリエイティブ・コモンズ・ライセンス
Movable Type 3.36
Valid XHTML 1.1!
Valid CSS!
ブログタイムズ

© 2003-2012 AIAN