自分戦略研究所 | 自分戦略研究室 | キャリア実現研究室 | スキル創造研究室 | コミュニティ活動支援室 | エンジニアライフ | ITトレメ | 転職サーチ | 派遣Plus |

パソコン創世記
第2部 第6章 魂の兄弟、日電版アルト開発計画に集う
1983 PC-100の早すぎた誕生と死

PC-100と、新規開発すべきASICたち

富田倫生
2010/7/13

前回「ハードウェアの中核はASICに凝縮せよ」へ

本連載を初めて読む人へ:先行き不透明な時代をITエンジニアとして生き抜くためには、何が必要なのでしょうか。それを学ぶ1つの手段として、わたしたちはIT業界で活躍してきた人々の偉業を知ることが有効だと考えます。本連載では、日本のパソコン業界黎明期に活躍したさまざまなヒーローを取り上げています。普段は触れる機会の少ない日本のIT業界の歴史を知り、より誇りを持って仕事に取り組む一助としていただければ幸いです。(編集部)

本連載は『パソコン創世記』の著者である富田倫生氏の許可を得て公開しています。「青空文庫」版のテキストファイル(2003年1月16日最終更新)が底本です。「青空文庫収録ファイルの取り扱い規準」に則り、表記の一部を@ITの校正ルールに沿って直しています。例)全角英数字⇒半角英数字、コンピューター⇒コンピュータ など

 西からの提案を受け入れて京都セラミツクとアスキーとの共同開発、京都セラミツクによる製造という枠組みで臨むことを了承した渡辺の部隊は、アルトの子供を作るという前提には提案側と共通の認識を持っていた。

エンジニアライフ
コラムニスト募集中!
あなたも@ITでコラムを書いてみないか

自分のスキル・キャリアの棚卸し、勉強会のレポート、 プロとしてのアドバイス……書くことは無限にある!

コードもコラムも書けるエンジニアになりたい挑戦者からの応募、絶賛受付中

 西からプランの提示を受ける前、後藤は社内で大内淳義や渡辺和也などの上司を相手に、今後ますます増大するマイクロコンピュータの処理能力を、使いやすさの向上のために大きく割り振ったマシンがありうるとのプレゼンテーションを行っていた。

 マッキントッシュはおろか、リサも発表されていなかったこの時期、後藤はウィンドウの機能やマウスの役割を、手書きのボードを使って説明するしか手がなかった。

 16ビットのビジネス用マシンという当然の次の一手を情報処理事業グループに押さえられた渡辺和也は、パーソナルコンピュータの専門組織として独立した自らの部隊の未来を、後藤と西がイメージを共有するまったく新しいマシンに賭けようと考えた。

 だが渡辺は、自分自身がパーソナルコンピュータの本質と考える要素に関しては、TRONでも妥協する気持ちは持っていなかった。

 浜田俊三がとりまとめ役となって始められたビジネス用16ビット機の検討プロジェクトにおいて、渡辺はちょうど1年前、新しいマシンが備えるべきポイントを4つ、情報処理側に提示した。

 〈第1に、マイクロソフトのベーシックを使うこと。第2に、オフィスコンピュータに見られたような一体型の構成はとらず、コンポーネント形式をとって本体価格を抑え、従来のマシンの周辺機器を使えるようにすること。第3に、カセットテープレコーダーのインターフェイスを付けること。そして第4に、拡張スロットの仕様を公開してサードパーティーによる増設ボードの開発を促すこと〉

 西の提案によれば、TRONはMS-DOSを使うことを大前提とし、そこにアルト型のインターフェイスを構成するソフトウェアを追加するとされていた。

 ベーシックに関しては、従来のROMに収めた形はとらず、マイクロソフトが16ビットの標準としようと考えているGWベーシックを、フロッピーディスクから読み込んでMS-DOSの上で使う形をとる。PC-8801用のベーシックとは互換性に問題が生じるが、従来の8ビット機用に作ったソフトウェアをできるだけ簡単に新しいマシンで利用できるよう、変換のためのユーティリティーソフトを用意する方針が示された。

 ただし一体型という提案には、渡辺は乗ろうとは思わなかった。まったく新しいイメージを打ち出したマシンとはいえ、価格はより低く抑えられればそれに越したことはなかった。従来機で使ってきた周辺機器も、使える形を残したかった。増設ボードや周辺機器にサードパーティーが参入する余地を残すことは、パーソナルコンピュータにとって不可欠の条件と思えた。フロッピーディスクを標準で持たせる以上、カセットインターフェイスは不必要としても、オープンアーキテクチャの遵守に関しては、渡辺は一歩も譲る気はなかった。

 8月に入って週1回のペースで進められた仕様の詰めの作業で、日本電気からは一体型ではなく、コンポーネント形式をとるという方針が示された。OMNIネットをベースとしたネットワークの機能を標準で持たせるという点は最後まで検討課題として残されたが、最終的には価格を抑さえるために削る決定が下された。

 一体型のプランは却下されたが、処理速度と信頼性を高め、小型化を徹底するという狙いからASICを積極的に活用するという松本の提案は生き残った。8月に入って仕様検討と並行してシステム設計に着手していた松本たち、マイクロハードの開発チームは、新規に開発すべきASICを洗い出していった★。

 ★PC-100には、以下のような設計上の特長が盛り込まれることになった。

 インテルは1982年3月に、8086と周辺LSIとを一体化した80186を発表したばかりだった。だがこの新製品の機能自体は従来の8086と変わりがなかったことから、PC-100には日本電気がセカンドソースとして供給している、8Mヘルツにクロック周波数を高めた8086-2が採用された。

 安い代わりに動作速度の遅いメモリを使おうとする際には、CPUにウェイトと呼ばれる待ちの状態を意図的にはさんでタイミングを合わせる手法が使われることがある。当時としては高速の8086-2を使おうとすれば、使用できるメモリとのバランスをとるためにウェイトをかける手が常識的には考えられたが、クロック周波数を7Mヘルツに抑える代わりに、ウェイトのかからない構造が工夫された。外部とのやり取りを8ビットで行う8088の4.77Mヘルツ版を使っていたIBMのPCに対し、新しいマシンは2倍以上強力なエンジンを前提として出発していたが、GUIを駆動するためにはこれでも力不足は否めなかった。中でも際だって処理の遅さが目立つと予測できたのは、画面上の文字を左右に微妙に移動させる動作だった。

 キャラクタジェネレータを組み込んでシステムを構成すれば、素早い文字の表示、移動が可能になった。ただしキャラクタジェネレータを使う限り、そのマシンで使えるフォントは現実的にはROMに収められたものに限られてしまい、文字の拡大や縮小、変形などもごく限られた形でしか行えなくなった。さまざまなフォントを駆使し、自由自在に文字をアレンジしながらイメージ通りの文書を作れるようにしようとすれば、1つ1つの文字をビットマップ上のグラフィックスとして扱う形をとらざるをえなかった。さらにアルファベットをバランスよく並べることを考えれば、字間を少しずつ変化させてやる必要もあった。だがこうした動作は、マイクロコンピュータの処理能力に大きな負担をかけると予想できた。厄介なことは考えずにあっさりキャラクタジェネレータを使ってしまったマシンと並べられると、表現力という〈うまみ〉を認めてもらう前に、「遅い」の一言で切って捨てられる恐れがあった。

 この点を可能な限り改善するために、松本たちはフォントのパターンを1文字分ずつ高速に移動させる機能を持った、バレルシフターと呼ばれるASICを起こした。

 新規に起こすASICの2つ目は、ディスプレイへの表示を制御するCRTコントローラだった。電子ビームがブラウン管を走査していくタイミングに合わせて、ビデオメモリの中身を表示させる基本的な機能を持ったCRTコントローラは、出来合いの部品の中にもあった。IBM PCではその後の技術発展の成果を古いマシンでも生かせるようにとの狙いから、CRTコントローラを中心に構成されるビデオ回路を増設ボード扱いとして、容易にスロットに抜き差しできる形をとっていた。

 初代のPCに採用されたCGA(Color Graphics Adapter)には、モトローラ製の6845が使われていた。だがスクロールやウィンドウの管理などを高速化するために、新しいマシンでは大幅に機能強化した専用のCRTコントローラを起こすこととした。

 メモリ内の情報の転送速度を上げるために利用されるDMA(Direct Memory Access)コントローラにも出来合いの部品はあったが、3つ目のASICとして新規に開発する道を選んだ。メモリ間で情報を動かそうとする際、CPUを介して行うとマイクロコンピュータの処理能力がその作業のために食われることになる。DMAコントローラは、転送の際にいったんCPUをバスから切り離し、メモリ間で単純な読み書きだけを素早く行うために使われる。

 IBM PCはこのDMAコントローラに、インテルが用意した8237Aを使っていた。だがもともと8ビットの8080用に開発された8237Aは、16ビット化によってマイクロコンピュータが取り扱えるようになった、大量のメモリに対応しうる製品ではなかった。8080の64Kバイトに対して、8088では1Mバイトのアドレスが可能となっていた。当初標準では、8ビット機並みの16KバイトのRAMしか積まなかったPCの開発者たちは、このマシンで大きなメモリが使われるとは想定しなかったのかもしれない。しかし8ビットの枠を超える量のメモリを積んだ段階では、PCはコントローラの制限によって、本来は一度ですむはずのDMAの動作を2度に分けて行わなければならなくなった。いかに8ビットの尾を引きずった8088を採用し、比較的小さなメモリしか積まなかったとはいえ、PCが8237Aを使ったことは、松本たちにとって大きな疑問だった。大量の情報転送や、リアルタイムの処理を行ううえでは、8237Aは回路の隘路(あいろ)となることが予想できた。16ビットのアーキテクチャの中に8ビットの構造を紛れ込ませたことのつけは、マシンの高速化が進めば進むほど大きくなっていく恐れがあった。

 テキストベースのマシンならともかく、ビットマップの処理を高速で繰り返す必要の生じるアルト型のマシンでは、DMAコントローラへの負担はとりわけ大きくなることが予想できた。インテルは8086用に16ビット対応のDMAコントローラを作っていたが、松本はあらたに機能強化したものをASICで起こすことで、ここでも処理速度を稼ごうと考えた。

 さらに松本は、これまでDMAコントローラに負わされていた役割を専用の回路を起こして移し替えることでもスピードアップが図れると考えた。

 パーソナルコンピュータのメモリに広く使われているダイナミックRAMは、構造が簡単で集積度を高めやすく、安く作れるという特長をもっている。その一方で、時間とともに記憶した情報が薄れるために、ダイナミックRAMでは繰り返し書き直しを行う必要がある。リフレッシュと呼ばれるこの書き直しの動作は、PCではDMAコントローラによって行われていた。その結果、DMAコントローラは一定期間ごとにリフレッシュのための動作をはさまざるをえず、高速で連続して情報を転送できる時間がごく短く限られる結果となっていた。そこでPC-100では専用のリフレッシュ回路を起こしてこれをASIC化し、DMAコントローラが大量のデータを連続して転送できるように図った。4つ目のASICとして起こしたこの回路では、通常はCPUを止めて行っているリフレッシュをCPUの動作の空き時間をついて行うように工夫することで、さらに処理速度を稼ぐことを考えた。

 コンピュータの動作のタイミングを決める時計の役割を果たしているクロックジェネレータも、ASIC化の対象とされた。

 ハンドヘルドマシンの開発にも一部関与した松本は、ここで回路間の干渉の問題に直面させられた。コンピュータの回路には、意識しなければアンテナとして機能して電磁波を出してしまう部分がいくつもあった。従来のパーソナルコンピュータでは、電磁波の影響による誤動作や周囲のラジオやテレビに雑音を生じさせてしまうといったことは、ほとんど意識されてこなかった。アルテアはそれゆえ、ソートの音楽を奏でることができた。だがパーソナルコンピュータが広く普及しはじめる中で、アメリカの連邦通信委員会(FCC)はいち早く厳しい規制方針を打ち出していた。マシンを小さく仕上げるために部品を従来より近づけて配置しようとすると、これまでは無視できた電磁波による誤動作の可能性が現実のものとなってきた。従来の電子部品を組み合わせて作ると、クロックジェネレータはアンテナとして機能した。1983年の3月になってTRSモデル100としてタンディから発売が開始されてからも、ハンドヘルド機はなおこの問題によるトラブルに悩まされ続けた。このマシンで小型化による電磁波の影響に直面させられていた松本は、クロックジェネレータを5つ目のASICの中に閉じ込めてしまうことで、トラブルを回避しようと考えた。

 処理速度の向上に大きくかかわる以上5つのASICの設計には、松本をはじめとするマイクロハードの4人のスタッフがあたった。

 さらに新しいマシン用には、入出力関係のコントローラをひとまとめにしてASIC化することとなり、この作業は日本電気のスタッフが担当した。IBM PCは、フロッピーディスクドライブのコントローラやマウス、プリンター、RS-232Cの接続端子を、増設ボード扱いとしてスロットに組み込む形をとっていた。だがアルト型の環境を実現するうえでは、高い機能を持ったビデオ回路はもちろん、フロッピーディスクドライブもマウスも不可欠の存在であることから、これらのコントローラは一括してASIC化され、メインの基板上に置かれた。

前回「ハードウェアの中核はASICに凝縮せよ」へ

» @IT自分戦略研究所 トップページへ

自分戦略研究所、フォーラム化のお知らせ

@IT自分戦略研究所は2014年2月、@ITのフォーラムになりました。

現在ご覧いただいている記事は、既掲載記事をアーカイブ化したものです。新着記事は、 新しくなったトップページよりご覧ください。

これからも、@IT自分戦略研究所をよろしくお願いいたします。