2010年12月08日
川俣晶の縁側ソフトウェア技術雑記 total 5123 count

ビデオ表示用専用LSIの歴史

Written By: 川俣 晶連絡先

「トーノZEROさんがμPD7220 GDCとか書き飛ばすので、いい加減な記憶を元にいい加減に書き飛ばすぞ」

「なにを?」

「ビデオ表示用専用LSIの歴史についてだ」

「今流行ってるやつだね。凄い電力を食うけど計算量も大きいGPUだ」

「ははは。じゃあ、歴史はどこまで遡ると思う?」

「そうだな。ここ数年ぐらいかな」

「とんでもない。軽く30年以上戻るぞ」

「えっー!?」

原点 §

「LSI化されるまで、ビデオ表示を行うビデオRAM回路は細かいパーツを集めて作っていたわけだ。74シリーズのTTLとかでね。7493とかカウンタICでタイミングを取ってね」

「うん」

「しかし、それじゃ無駄が多いので、LSI化されていくことになる」

「それが30年以上前の原点?」

「そうだ。代表的なのが日立のHD46505だろう。インテルにもそういう表示チップがあった。でも、インテルのはDMA転送が前提で使い勝手が悪かった。HD46505と互換チップが市場を席巻していくことになる」

「ええっ? 日立のチップが?」

「そうだ。初期のIBM-PCのビデオカードに載っているモトローラの6845という石は日立のセカンドソース品だ」

「ちょっとまて。日立はモトローラの6800のセカンドソースを生産したのだろう?」

「そうだ。でも、CRTCに関しては日立の方が先なんだ」

「ええっ?」

「というわけで、現在我々がごく普通にパソコンとして扱っているIBM互換機のビデオチップ、いわゆるVGAだね。それには過去のビデオカードとの下位互換を取るために実は46505そっくりのコマンドが含まれている場合がある」

「頭がクラクラしてきた」

「一方で、DMAの利用が前提で回路が複雑になりがちだったインテルのチップの系譜だが、実はこれも日本で作られている」

「ええっ!?」

「NECのμPC3301というチップで、極初期のパソコン製品であるPC-8001に使用されている」

「回路が複雑になりがちなんでしょ?」

「日本のパソコンは半導体部門の赤字を助けるために部品をいっぱい使ったというので、それは関係ないね」

「ははは」

「結果として、日立はパソコン勝負では負けたが46505の普及という意味では成功した。NECはパソコン勝負は勝ったがチップを世界に広めることはできなかった。どっちが幸せだったのかはヨクワカラン」

アクセラレーション §

「ここまでの話には、一切アクセラレーションの話がない。単にタイミングを取って出力する回路を簡素化するだけの話だ」

「つまりCPUより処理が速くなるインテリジェンスはないってことだね」

「そうだ。では、それを行う最初期のチップとは何だろう」

「Windowsブームの頃に出たのかな」

「いやいや。ずっと古い」

「えーっ?」

「確か、NECのLSIとトムソンのLSIがあった。直線の描画とかを加速する機能を持っていた。NECの方が機能は上だったかも知れない」

「トムソンのLSI?」

「うろ覚えだが、ヤマハのYISという6502 CPUのパソコンに搭載されていたような気がする」

「ぜんぜん分からないよ」

「ほとんど売れてないみたいだからな」

「で、NECの方は?」

「PC-9801シリーズに搭載されて、売り上げを伸ばす原動力になっていた」

「なるほど」

「この時代までは、ビデオに関しては日本企業が圧倒的な先行という感じがある。アメリカ企業は、ソフトでできることはソフトにやらせた方が安上がりと考えるが、日本の技術者はハードに凝りすぎた」

「そんなに差があるの?」

「たとえば、PC-9801初期型のメインボードと、Macintosh初期型(128K)のメインボードを見比べてごらんよ。98は膨大なICが並んでいるのに、Macは超スカスカ。これでMacの方が高いなんて信じられる?」

「まあソフトの代金なんだろう」

「ろくなアプリ実行できるメモリも乗ってないのに? 128Kってビデオメモリ込みだよ。しかも増設不能」

「えーと」

Windowsの世界へ §

「Windowsブーム初期の時代、人気があったのはET4000と言うビデオチップだが、これにはさほど強力なアクセラレーション機能は無い。単にアクセスが高速にできるというだけだ」

「それは退化なのかい?」

「さあね、それは知らない」

「でも、すぐにWindowsのアクセラレーターブームが起きただろう?」

「そうだ。ビデオカードを直接叩くDOS文化から、直接叩かないWindows文化に移行したことで、常識が変わった」

「どう変わったの?」

「より上位のレベルで機能を肩代わりしてもアプリの互換性が失われないようになったのだ」

「へぇ」

「先頭を走っていたのはS3という会社だったが、実はメジャーになる前のS3の人と会ったこともある。その時点では、ブームなど予測できないからずいぶん大胆なことをすると思ったものだよ」

「そうか」

「でも不可能じゃなかった。WindowsにはDDIというドライバ用のインターフェースがあってね、それを満たすドライバさえ書けば加速する余地があったから」

「結果として、大当たりだね」

「これが今も続くGPU競争の原点だ。しかし、もう戦場はワールドワイドだ。日本でどうこうという余地はもう無い。日本人や日本企業も多数関わってはいるが、もう日本だけで物事をやっていける時代ではないのだろう。たぶん」

感想 §

「それで君の感想は?」

「思えば遠くに来たもんだ」

「というと?」

「LSIを使わないディスクリートのビデオ回路を何回も見たことがあるし、実際の製品も何回も見たことがある。というか、実際に自分で回路を引いたこともある。46505のコマンドのセットも知ったし(もう忘れた)、μPD3301もPC-8001の使いこなしに必須だからいろいろ情報を仕入れたしね。out 81,0とか。まあ、当初はμPD3301の仕様が非公開だったので、仕様が分かるDMACの方に停止のコマンドを送ってたけど」

「現状をどう思う?」

「クラウドで、GPUを計算能力として使う展示とかを見るともう頭がクラクラするね。既にビデオは関係ないんだ。計算力だけ使う」

「そうか」

「あと、最先端のビデオカードの情報を見たとき、互換のために46505みたいなコマンドセットを見ると今はいつなのか焦っちゃうよね。しかも、アメリカの英語の資料で」

「で、なんで46505なんて番号を知ってるの?」

「日立H68/TRが最初に自分のものになったマイコンだったからだ。順当に拡張していたらH68/TVというビデオ拡張ボードを入れることになって、それに46505が乗っていたのだ。実際は、H68/TVまでは手を出さなかったけど」

「へぇ」

「実際は本体の3Kのメモリと蛍光表示管にこだわって、何ができるか悩んでいる間に時代は進行してしまった」