CPUの選定から仕様決定まで● CPU 編:「さて,CPUですが,どれを使いましょ……」 筆:(間髪入れずに)「68000シリーズ!」 編:(すかさず速攻で)「却下!」 筆:「じゃ,PowerPC G4」 編:「お勉強用という側面もあるんですから,いきなりそんなハイパフォーマンスな石でなくて……」 筆:「じゃ,しょうがなくSH-4」 編:「SH-4,嫌いなんですか?(汗)」 筆:「64ビットデータバスをもっていて,安価で入手性がいいデバイス……となると,SH-4くらいなんですよねぇ〜」 編:「PowerPC系やMIPS系でも,かなり上のクラスでないと64ビットバスもってないですからね」 筆:「組み込み向けとなった時点で,最大バス幅が32ビットになってしまうのが多いんですよね.データバスで使うよりは周辺機能のためにI/Oピンを使いたいってことですかね」 編:「そうですね.今回はプロセッサ的に使うので,周辺機能が多いともったいない……」 筆:「そうそう.A-D/D-Aくらいならまだ許すけど,LCDコントローラとか,Ethrnetコントローラとかを内蔵されると,それを使わなかったらそのCPUを採用するが意味ない……という話も出てくるし」 編:「そう考えるとSH-4,とくにSH7750って,用途の決まった専用周辺コントローラが何にもないんですよね……シリアルコントローラだって,クロック同期と調歩同期の一般的なやつだし……」 筆:「データバス幅64ビットで使うとポート機能が使えないしね!」 編:「そうそう,タイマ/カウンタなんてホント,時間とクロックをカウントするしか芸がない(^^;)」 筆:「……なんだかSH-4の悪口ばっかり言ってますけど,私はSH-4は悪くないと思いますよ」(一応フォロー?) 編:「じゃメインCPUはSH7750で決まりぃ〜」 筆:「R版 注7がすぐ手に入ればいいけどねぇ〜」(写真2左) ● FPGA 編:「CPUローカルバスコントローラと,64ビットSDRAMコントローラ,あとPCIホストコントローラだと,ゲート数はどのくらい要りそうでしょうか?」 筆:「15万ゲートくらいあれば問題ないですよ.外部バスが100MHz程度なら,X社のスパII注8かな.安いし(笑)」(写真2右) 編:「パッケージやピン数は……」 筆:「……これ(ローカルバスとメモリとPCIホスト)を1チップにするんでしょ? 456FG注9でもピン数ギリギリじゃないのかな……」 ● メモリ 編:「メモリはSDRAMですね.DDR-SDRAMとかいきますか?」 筆:「まさか.それにクロックが100MHz程度なら,DDRよりただのSDRAMのほうがパフォーマンスがいいです.DDRは266とか333くらいのクロックでないと意味ないし……」 編:「で,メモリはモジュール使ってくださいよ.DIMMでもSO-DIMMでもいいですが……」 筆:「ここまで(CPUとメモリとPCIホスト)を1枚のハーフサイズのPCIボードに実装するなら,SOだな……」 編:「SDRAMコントローラはFPGAで設計してもらわないと,SDRAMの勉強になりませんからね」 筆:「それに,SDRAMコントローラとしてSH7750内蔵のを使ってしまったら,外部バスマスタがメインメモリにアクセスできなくなるんで,SH7750を使ってシステムを組むなら外付けのSDRAMコントローラは必須だね」 編:「Rバージョン使ってもSH-4は外部バスが120MHzまでなんで,PC133とはいいませんが,PC100は……」 筆:「理解しやすいようにHDLソースを書くんなら,相当高速なFPGAでないと…….スパIIでチューンしないでPC100はきついよ」 ● PCI 編:「システムの拡張性を考えれば,いずれかの業界標準バスは必須でしょう.で,現状で手ごろな標準拡張バスとなれば,PCIバスになるかと思うんですが.たしかにPC/AT互換機から誕生したバスですが,バス自体は汎用性があるし……」 筆:「割り込みまわりとか,ちょっと気に入らないけどねぇ〜 漢はやっぱり“ベクタ割り込み”でしょ!(笑)」 編:「たしかに,割り込みルーチンがステータスをチェックしながらバトンタッチして割り込みラインを共有するってのは,パフォーマンス的にいただけないですが…….まぁ〜ATアーキテクチャの上で拡張可能で,かつIRQ共有可能な割り込みシステムということで,いまのPCIバスの割り込み機構に落ちついたんでしょうけど」 筆:「あとね,性善説(?)に基づいたバスアービトレーションの思想も気に入らない.一人でバスを占有し続けるデバイスがいたら,問答無用でレッドカード渡すようなアービタでないと.VME万歳!(笑)」 編:「すいません.VMEバスは勉強不足で……」 筆:「まぁ〜何にせよ,32ビット/33MHzの一般的なPCIバスがいいんじゃないですか? クロックは66MHzまではいけると思いますが.バス幅は……ホストコントローラに使うFPGAのピン数しだいだな……」 編:「ローカルのメモリはCPUの近いところに置くべきですが,それ以外はすべてPCIバス上に配置して問題ないと思います」 筆:「ホントはグラフィックスくらいはローカルバス直下に置きたいんだけどねぇ〜」 編:「それはまぁ〜,今後の展開への課題ということで……」 ● グラフィックス 編:「で,そのグラフィックスですが……」 筆:「PCIバススロットに,そこらのAT用のVGAカードを差し込むのはダメなんでしょう?」 編:「そうですね.アーキテクチャのすっきりしたグラフィックスボードを設計しましょう」 筆:「まさかテキストプレーンとグラフィックプレーンの重ね合わせぇ〜とか,スプライトぉ〜だとか,はたまたポリゴンだのテクスチャマッピングだのいわないよね?」 編:「それのソースまで出していただけるなら嬉しいですが……」 筆:「勘弁してよぉ〜(涙)」 編:「いや,わかってます(汗).VGAとかXGAで,フルカラーモード固定でいいですよ.アクセラレーション機能もいりません.とりあえずプレーンなフレームバッファで」 ● キーボード&マウス 編:「画面出力ときたら,次は入力デバイスですね.やはりこれから設計するシステムなら,USBインターフェースを採用してUSBキーボードとUSBマウスなんですかね……」 筆:「あのさ,……キーボードパワーONとか,させたくない?」 編:(マニアックな機能だ^^;)「採用! ……となると,USBキーボードだと難しいですね.PS/2キーボードを常時動かしますか……」 筆:「キーボードコントローラが必要かなぁ」 編:「“AMIKEY”とか,AT用のコントローラ採用するのは却下ですよ!」 筆:「じゃぁ〜H8か何かマイコン使って,PS/2デバイスの汚い(?)ところを綺麗に整形して,PCIバス経由でホストに渡すアーキテクチャにしましょう」 ● ストレージ 編:「ストレージはもうIDEですね.……いまさらSCSIですか?」 筆:「ドライブの価格考えたら,IDEしかないっしょ.しっかし,100Gバイトが2万円でおつりがくるって,絶対どこかおかしいよな……」 編:「リムーバブルメディアとしては,CFカードを採用したいですね」 筆:「TrueIDEモード注10でIDEインターフェースにつなげばいいじゃん」 編:「いや,そうすると,活線挿抜非対応になるので…….FDDを採用しない分,活線挿抜可能なリムーバブル媒体として何か考えておかないと……」 筆:「『FD読みてぇ〜』って人には?」 編:「ATAPI接続のスーパーディスクドライブ 注11使ってください.あれ,2DDも2HDも読めますんで」 ● ネットワーク 編:「Ethernetは,物理層をFPGAで作るってわけにはいかないですよね……」 筆:「そこは外付けφチップ買ってくるしかないねぇ〜.MACアドレスの問題もあるし.だいたいさ,秋葉歩いてると,PCIの100Base-Tのカードが1,980円とかで売られてるんですよね……もう勝負にならないよ…….これは勘弁してぇ〜」 編:「お勉強用として,10Mで論理層以降でいいんで,いずれは解説記事載せたいですね」 筆:「……それ,誰が作んの?」 編:(ジーっと筆者を見る目……)(笑) ● その他 編:「キーボードパワーONがありなら,指定した時間になったら自動的に電源の入るタイマ起動も欲しいっすね!」 筆:「お,わかってきましたね!(笑)」 編:「バッテリバックアップ付きRTCで,タイマ一致出力付き……なんて都合のいい石はありませんか?」 筆:「そんなの見たことないなぁ〜.あっても高かったり,入手性悪そう……」 編:「であれば,普通のRTCを使って…….キーボード変換用のマイコンでタイマ時間をチェックさせて,それでATX電源を制御させましょう!」 筆:「ついでにキーボードでテレビコントロールやらなんやらもほしいんですが……」 編:「もしや,某パソコンをめざしているんじゃ……」 筆:「ますますマニアックな仕様になってきた!(笑)」 ● そして詳細仕様…… ……喧喧諤諤…… 筆:「……じゃ,システムクロックはPLL使って100MHzをそれぞれに分配しますか……」 編:「いや,SH-4のシステムクロックって,40MHzとか30MHzとかまでしか入力できないんですよ.なので,クロックはここからSH-4にぶちこんで,SHで逓倍したクロックをCKIOから出力させて,それに同期してFPGAを動かすしか……」 ……喧喧諤諤…… 編:「できればメモリは,SPD注12を読んでバンク数やCL値をプログラマブルにしたいですね……」 筆:「いやぁ〜そうすると,SDRAMコントローラの出力段がMPXのおばけになって,高クロックで動かなくなるよ……」 ……喧喧諤諤…… 筆:「456ピンBGAといっても,ユーザーI/Oピンは300本くらいですからね.それじゃ信号線足りませんよ……」 編:「そうか……,じゃあMPXモード時はアドレスバスは使わないんで,ここをこうして……」 筆:「うぅ〜わ,鬼ぃ〜.そこまでして詰め込みますか…….I/Oピン使用率100%だなんて……」 ……喧喧諤諤…… 注7:R版:SH7750R.従来のSH7750/7750Sと比較し,キャッシュ容量が倍になりキャッシュアルゴリズムが改良された,最高動作クロック240MHzのSH-4. 注8:スパII:ザイリンクス社のFPGA Spartan-II. 注9:456FG:Spartan-IIのパッケージを示す略号.456ピンファインピッチBGA. 注10:TrueIDEモード:CompactFlashカードをIDEとして使うモード. 注11:スーパーディスクドライブ:容量120M/240Mバイトの大容量フロッピーディスクドライブ.3.5インチ2HD/2DDのフロッピーディスクも読み込める. 注12:SPD:Serial Presence Detect.第2章参照のこと Copyright 2003 井倉将実 |