コトの始まり…

● わかっていないヤツが多いゾ!

 某日某所,某居酒屋にて―――

筆者(以下“筆”):「いやぁ〜昨日の客先には参ったよ……」

編集者(以下“編”):「何かあったんですか?」

筆:「某社の組み込みCPUを採用したボードなんだけど,メモリテストで落ちるからハードが悪いのじゃないか!って言われて,現場行ってみたら,相手のソフト屋が『なんか治ったみたいです』だって」

編:「手間がかからなくてよかったじゃないですか」

筆:「それはいいんだけどさぁ〜,原因とか聞いたら,SDRAMコントローラの設定パラメータなんだけど,設定値を2から3にしたらメモリチェックプログラムが落ちなくなったので,それで使っています……だって.そのパラメータの変更が,何を意味するのがちゃんと理解してんのか? おまえ本当にわかってんのか!と小一時間問い詰めたい……」

編:「最近の組み込みCPUのバスコントローラは使いやすくなってるから,よくわからなくても使えちゃうってことですか.デバイスメーカーのアプリケーションマニュアルのとおりにCPUとメモリを接続して,バスコントローラのレジスタを適当にセットすると,PC100注1のSDRAMでもなんとなく動いちゃう.けど,SDRAMを本当に理解して使ってるかどうかは,はなはだ怪しい……」

筆:「たしかに,開発期間がどんどん短くなっているので,できあいの設計リソースを使う必要性は認めますよ.でも技術者として,ホントにそれでいいのかなと常々思います」

編:「現状ではなかなか難しいかもしれませんが,技術をきちんと理解して使ってほしいですね」

筆:「難しくないよぉ〜.PCIなんて簡単だよ.SDRAMくらい扱えなくてどうする.できない技術者は看板たたんでファミレスでバイトでもしていろって!」

編:「それはファミレスのバイトの方に失礼な.せめて大学戻って出直して来いとか……」

筆:「今の大学って,SDRAMとかちゃんと教えているのかな?」

● より実践的なコンピュータシステム学習教材

編:「SDRAMではないですが,以前Interface誌でCPUの設計記事を連載で掲載したのですが,そのときの先生が『米国の学生はCPUも設計してるぞ!』と,学生にハッパをかけられたのを思い出しますね」

筆:「理系離れが叫ばれている今,日本でCPUを設計できる学生が何人いるかな?」

編:「そうなんですよ.せめてあのぶ厚い“ヘネパタ本”注2くらいは読んでほしいけど,はたして読むか?」(写真1

〔写真1〕ヘネシー&パターソン コンピュータ・アーキテクチャ
(富田眞治/村上和彰/新實治男訳,日経BP社)

筆:「寝てしまうな……」

編:「なので,アカデミックでハイソ(?)な話は大御所におまかせして,こっちは実践しながらもっと楽しんで学べるような,書籍とか教材とかキットを実現したいなぁ〜と思ってるんですよ」

筆:「キットねぇ〜」

編:「本当のところをいえばCPUから設計したいんですが……」

筆:「いきなりそれやりますか……」

編:「いや以前,DWM(デザインウェーブマガジン)でCPU設計の特集をやりましたが,いざ使おうとすると,やっぱりソフトウェア開発ツールが問題になると思うんですよ.C++対応とまでいわないまでも,Cコンパイラは欲しい.そしてデバッガも.そこまで用意するのは相当たいへんだと思うんですよ」

筆:「でも,いずれはCPUも設計したいね……」

編:「自分でFPGA注3で作ったCPU,キャッシュ,メインメモリコントローラ,PCIバスコントローラでシステムが起動したら,感動ものだと思うんですよぉ〜」

● 要素技術は書いてきたので……

編:「で,ひとまずCPUはおいといて……足まわりといえば,今までいろんな記事を書いていただきましたねぇ〜」

筆:「いっぱい書かされた……」

編:〔されたって……(汗)〕「PCIターゲットから始まって,PowerPCにSDRAMつないだり,PCIバス上にDIMMを接続して大容量RAMカードを作ったり……」

筆:「SH-4のPCIブリッジやIDEインターフェース,PCカードインターフェースも作ったなぁ〜」

編:「グラフィックスカードは,ハードそのものの解説記事はまだ載せてなかったですね」

筆:「そうね,まだ書いてないねぇ〜」

編:「……ふと思ったんですが,いままでのノウハウを集大成して,キーボードまで付けたら,パソコン作れますよね……」

筆:(“キラ〜ン”と目が光る!)「作る? でも,その昔によく載ってた,74TTL注4とせいぜいGAL注5を並べたくらいの,マイコンに毛が生えた程度のシステムじゃないんでしょ?」

編:「もちろん.今のパソコンと比較しても遜色ない,現役でも使われているバスやインターフェースをそのまま採用したいんですよ!」

筆:「SDRAMとかPCIとか?」

編:「そうです.ローカルバスはクロック100MHz以上でバス幅64ビット,PCIバス上に各種インターフェース,ストレージはIDE,ハイレゾ 注6も映る画面にキーボードとマウス!」

筆:「それはたしかにパソコンだな……」

● 使える部品は使ってしまえ

編:「ただし現実問題,たとえばHDDを一から作るか…というとそれは無理なんで,HDDとかキーボードとか,そういうのは入手性の良い市販品/標準品を採用すればいいと思うんですよ」

筆:「つまり秋葉で棄てるほど売られている,メモリモジュールとかHDDとかCD-ROMドライブとかキーボードとか筐体とか,使える部品はそのまま使って,マザーボード部分を作るってこと?」

編:「そうです! で,やるならATアーキテクチャみたいな酷い(!?)ものはダメですよ.となると必然的にSuperI/Oチップセットとかは使用禁止!」

筆:「じゃ,チップセットをFPGAで作るの?」

編:「そうです! チップセットはすべてFPGAで実現! HDLソースは全公開,Linuxがオープンソースなら,こっちはオープンハード!」

筆:「HDLソース公開っすか…….また商売にならない話を……(涙)」

編:「いや,ですから,勉強用に理解しやすいように,もっとも基本的なモードとかタイミングにだけ対応した,簡単なやつでいいんですよ.パフォーマンスが悪くてもOK! パフォーマンスを追求した高性能設計は,御社の商品として……」

筆:「なんかいいように丸め込まれている気がするナ……」


注1:PC100:SDRAMモジュール(DIMM)の規格名称で,クロック100MHz動作対応のもの.
注2:ヘネパタ本:「ヘネシー&パターソン コンピュータ・アーキテクチャ」の俗称.
注3:FPGA:Field Programmable Gate Array.
注4:74TTL:74LS00や74HC245などのロジックIC.
注5:GAL:Generic Array Logic.
注6:ハイレゾ:ハイレゾリューションの略.ここではXGA(1024×768ドット)程度の解像度を示す.

Copyright 2003 井倉将実