中国語パソコン1号機を実現した技術者魂、限られたメモリに数千の漢字を詰め込むためSinotype IIIの発明者は限界に挑む

次の記事

アップル共同創業者ウォズニアック氏が「修理する権利のおかげでアップルが創業できた」と明かす

中国は、今や世界で最も裕福なデジタル経済大国の1つとなった。ハードウェアのサプライチェーンは他の追随を許さず、Alibaba(アリババ)、Tencent(テンセント)、ByteDance(バイトダンス)など、莫大な利益を上げている超一流企業が世界で主導的な役割を果たしている。しかし、このような最先端のイノベーションは、40年前にさかのぼる「中国語ワープロの開発」という、コンピューティングの大きな課題に対するソリューションの上に成り立っている。

1980年代初頭、中国は米国や欧米からのコンピューターの購入を飛躍的に伸ばした。1980年には600台しかなかった外国製マイクロコンピューターの輸入が、1985年には13万台にまで増加した。当時、日米欧の企業は、この「爆買い」にあやかろうと躍起になったものだ。

しかし、中国のコンピューターユーザーにとっても、欧米のメーカーにとっても、大きな問題があった。それは、欧米のパソコン、プリンター、モニター、OS、プログラムなどが、漢字の入出力に対応していなかったことだ。1980年代前半から中盤にかけて「そのまま」では、まったく使えなかったのだ。大量生産されたパソコンは、大がかりな改造をしない限り、中国語での処理をしたいユーザーにとっては、事実上、役に立たなかった。

最も重要な理由の1つはメモリの問題、特に中国語フォントを格納するためのメモリ容量が不足していたのだ。アルファベット用のコンピューターが登場したとき、欧米のエンジニアやデザイナーは、英語のフォントは5×7のビットマップグリッドで表現できると判断し、記号1つにつき5バイトのメモリしか必要としなかった。このグリッドは、見た目には美しいとはいえないものの、コンピューターの端末や紙の印刷物にアルファベットの文字を読みやすく表示するのには十分な解像度を備えていた。米国のASCII規格の95文字を格納するのに必要なメモリは475バイトで、これは例えばApple II(アップル・ツー)の当時のマザーボード上のメモリ48KBに比べればごくわずかだ。

しかし、漢字を最低限読めるレベルで表現するには、5×7のグリッドでは小さすぎた。中国語のビットマップフォントをデザインするには、アルファベットのグリッドサイズである5×7ピクセルから16×16ピクセル(256ピクセル)以上に幾何学的に大きくする、つまり漢字1文字あたり32バイト(256ビット)以上のメモリを搭載する以外方法はなかった。漢字のビットマップだけでも(簡体字、繁体字のどちらの場合も。ただし両方同時ではなく、メタデータも含まず)最もよく使われる8000の中国語の文字を格納するには、合計約256KBのメモリが必要となり、これは1980年代初頭に一般に市販されていたパーソナルコンピューターの総メモリ容量の4倍にも及んだ。しかもこれは、オペレーティングシステムやアプリケーションソフトウェアに必要なメモリを考慮する前の話だ。

デジタル入力に向けて用意されたSinotype III用中国語フォントの手書きビットマップ(画像クレジット:Louis Rosenblum Papers、Stanford University Special Collections)

こういった背景から、現代のコンピューティングにおける偉大なエンジニアリングの歴史の1つが生まれた。ここでは、果敢な起業家魂とエンジニアリングの創意工夫がもたらしたデジタル革命の世界的発展をユニークな視点で描いていく。

この記事は、TechCrunchに掲載する2つの記事のうちの1つで、中国語の入出力が可能な最初のパーソナルコンピューターとなる実験機Sinotype III(サイノタイプ・スリー)について調査したものだ。サイノタイプIIIは、市販のアップルIIをベースに、独自に開発したワープロソフトウェアとOSを実装したもので、欧米製のコンピューターを中国語に「翻訳」することで、新しい巨大市場の開拓に向けた「概念実証」の役割を果たした。

前編では、サイノタイプIIIの開発者らが直面したコンピューターのメモリ、フォント、OSなど、深刻な技術的課題と、それを克服するための斬新なソリューションを生み出した過程を見ていく。

「差し迫った仕事があるはずもない、ほやほやの新卒社員の図太さ」

このエピソードは、チャイニーズ・コンピューティングの原点ともいえるGraphic Arts Research Foundation(GARF、グラフィック・アーツ・リサーチ・ファウンデーション)から始まる。1950年代後半、MITの電気技師Samuel Hawks Caldwell(サミュエル・ホークス・コールドウェル)氏は、GARFの資金提供を受けて「Ideographic Composing Machine(イディアグラフィク・コンポージング・マシーン)」通称「Sinotype(サイノタイプ)」を発明した。1960年に同氏が若くして亡くなり、プロジェクトは暗礁に乗り上げたが、1960年代から70年代にかけて、Itek(アイテック)、RCA(アール・シー・エー)、そしてやはりGARFなど、いくつかの団体によってサイノタイププロジェクトは受け継がれた。

1950年代後半、サミュエル・コールドウェル氏が設計したSinotype Iのキーボード(画像クレジット:Louis Rosenblum Papers、Stanford University Special Collections)

サイノタイプの里帰りには、1人の男の存在が大きかった。Louis Rosenblum(ルイ・ローゼンブラム)氏だ。1921年にニューヨークで生まれた同氏もまたMITファミリーの1人で、1942年に応用数学の学士号を取得して卒業した。電気工学の教授として世界的に有名なHarold Edgerton(ハロルド・エジャートン氏、1930年代に有名な「ミルククラウン」の写真を撮影した人物)に師事したローゼンブラムは、卒業後すぐにPolaroid(ポラロイド)に就職し、Edwin Land(エドウィン・ランド)氏とともにインスタント写真の開発などさまざまなプロジェクトに携わった。1954年にはPhoton(フォトン)に転職し、非ラテン語系文字の写真植字に取り組んだ。ローゼンブラム氏は、故コールドウェル氏のサイノタイプの先駆的な取り組みに詳しかったため、このプロジェクトを効果的に採用し、1970年代半ばにGARFにコンサルタントとして参加した際に、このプロジェクトを復活させた。

Nova 1200(ノヴァ1200)のCPUで動作するSinotype IIシステムの構成図(画像クレジット:Louis Rosenblum Papers、Stanford University Special Collections)

GARFは、1980年代初頭においてもサイノタイプ・プロジェクトを継続しており、それまでに中国に精通した学者や著名な学者を顧問として迎えていた。ハーバード大学の言語学者であるSusumo Kuno(久野暲)氏や、1972年のRichard Nixon(リチャード・ニクソン)元米国大統領の訪中で重要な役割を果たしたことで知られ、当時RAND Corporation(ランド・コーポレーション)の社会科学部門の責任者だったRichard Solomon(リチャード・ソロモン)氏などが参加した。

しかし、この顧問団に劣らぬ輝きを放つ新星によって、サイノタイプ・プロジェクトは大躍進を遂げる。1979年にGARFでサイノタイプIIプロジェクトのデータ管理に2週間携わっただけの大学生の参加がきっかけとなり、サイノタイプは、ミニコンピューターベースのシステム(Sinotype II[サイノタイプ・ツー])からマイクロコンピューターベースのシステム(サイノタイプIII)へと大きく前進したのだ。その大学性は、ルイ・ローゼンブラム氏の息子、Bruce Rosenblum(ブルース・ローゼンブラム)氏だ。

サイノタイプIIIシステムを使用するブルース・ローゼンブラム氏(画像クレジット:Louis Rosenblum Papers、Stanford University Special Collections)

ペンシルバニア大学でフォトジャーナリストを目指していたブルース氏は、学業と、学生が運営する独立系新聞「Daily Pennsylvanian(デイリー・ペンシルバニアン)」のフォトエディターとしての役割を両立させていた。この新聞は、使用する機材や担当する学生の深い専門知識の面で、非常に先進的なものだった。

ブルース氏が3年生の秋に、既存の植字機(Compugraphic[コンプグラフィック]製の植字機2台)が寿命を迎え、交換が必要になった。ブルース氏は同僚の学生3人と一緒に、代替機の調査を行い、最終的に2社と総額12万5000ドル(当時約2800万円)の契約を結んだ。カンザス州Wichita(ウィチタ)のMycro-Tek(マイクロ・テック)とマサチューセッツ州Wilmingto(ウィルミントン)のコンプグラフィックだ。

サイノタイプ・プロジェクトについては、ブルース氏は父親のおかげでよく知ってはいたものの、自身はまったく関与していなかった。しかし、1981年5月初旬、重要な転機が訪れる。期末試験を終えたばかりのブルース氏は、新聞社のオフィスを訪れた。そこには同僚のEric Jacobs(エリック・ジェイコブス)氏がいて、RadioShack(ラジオシャック)で買ったTRS-80 Model II(ティー・アール・エス・エイティ・モデル・ツー)というマイクロコンピューターと格闘していた。ジェイコブス氏は、このマイコンを新聞社の運営に利用する方法を考えており、ブルース氏は、その様子を30分ほど観察した後、自分の仕事に戻った。

しかし、この30分がブルース氏の心を掴んだ。「マイクロコンピューターを扱う人を見たのは初めてだった」とブルース氏は著者への電子メールで述べ「この30分に感化されてサイノタイプIIIのプロジェクトを開始し、最終的にコンピューターの世界に入ることになった」と語る。

その週末、ブルース氏は父親との電話でちょっとした思い付きを話した。ブルース氏は、サイノタイプIIの製作に使用していたData General(データ・ジェネラル)製のハードウェアに対してGARFが莫大な費用をかけていたことに触れ、マイクロコンピューターであれば同等以上のプログラムを作ることができるのではないかと勧めたのだ。当時、GARFが支出していた10万ドル(当時約2200万円)以上に対して、1万ドル(同約220万円)程度に抑えられることになる。

父親のルイ氏も強い関心を持ち、ブルース氏にそのような機械のプログラミングができるかどうか尋ねた。ブルース氏は、コンピューターサイエンスの正式なトレーニングは受けていなかったが、高校時代にコンピューターに親しみ、PDP-8(ピー・ディー・ピー・エイト)のアセンブリ言語とBASICを独学で学んでいた。「差し迫った仕事があるはずもない、ほやほやの新卒社員の図太さ」ゆえ、同氏は父親の問いに「もちろん」と答えた。

ブルース・ローゼンブラム氏は、世界旅行の間も、ニューデリーで入手したメモ用紙などを使って、サイノタイプIIIプロジェクトを進めた(画像クレジット:Louis Rosenblum Papers、Stanford University Special Collections)

1981年6月、ブルース氏はニューヨークでBill Garth(ビル・ガース)氏、Prescott Low(プレスコット・ロー)氏、そして父のルイ氏と正式な会合を持ち、サイノタイプIIIの提案を説明した。その時、ブルース氏は、スリーピースのスーツだった。ブルース氏の提案書には、ハードウェアの7500ドル(当時約165万円)に加え、プログラム料として5000ドル(同約110万円)の合計金額が記載されていた。アップルIIで動く中国語のワープロを、約4カ月で納品するというものだ。それが上手くいけば、中国語ワープロのコストは桁違いに安くなる。

ブルース氏はこの仕事を受注し、1981年6月から11月まで、フィラデルフィアの独立記念館で国立公園局のツアーガイドの仕事と両立させながら、サイノタイプIIIのプログラミングを行った。昼間の休憩時間には手書きでアセンブリコードを書き出し、夜にはそれを入力していた。1981年のレイバーデーにツアーガイドの仕事が終わり、ブルース氏はその後2カ月間ひたすらコーディングに専念し、サイノタイプIIIをGARFに納品した。

メモリハック

GARFとローゼンブラム両氏が最初に直面した問題は、コンピューターのメモリ容量の不足だった。初期の中国製パソコンの開発者たちは、システムからできるだけ多くのメモリを搾り取ろうと、あらゆる手段を講じていた。ここでは、単独で採用されることもあったが、主に同時に利用された2つの戦略を紹介する。「アダプティブメモリ」と「漢字カード」だ。

サイノタイプIIIのシステムは、5つのコンポーネントで構成されていた。Sanyo(三洋電機)の12インチモニターDM5012CM、Epson(エプソン)のプリンターMX-70、漢字のビットマップデータベースとそれに対応する「記述子コード」を格納するCorvus(コルバス)の10MB「Rigid Disk Storage(リジッド・ディスク・ストレージ)」「テキストファイル格納用」のApple Disk Drive(アップル・ディスク・ドライブ)、そしてアップルIIの本体だ。

標準のアップルIIには32KBのメモリが搭載されていたが、マザーボード上で48KBまで拡張することができた。ブルース・ローゼンブラム氏は「アップルIIが店から出る前に最大にした」と電子メールで語る。ブルース氏は、48KBのメモリではまだ足りなかったため、当時の「パワーユーザー」と呼ばれる人たちがよく行なっていた、16KBの増設メモリボードをスロット0に追加して64KBのメモリにするという、メーカー標準のアップグレードをおこなった。

しかし、それでもまだ足りなかった。「エンコーディングシステムのすべてを格納するためには、より多くのメモリが必要だった」と同氏はいい「頻繁に使われる漢字100種の16×16ビットマップを格納するためには、さらに多くのメモリが必要だった」と続ける。

そのため同氏は、それまで誰も試したことのないであろうアップルIIの「改造」を始めた。「なんとか、アップルIIのスロット2に16KBのボードをもう1枚入れて、合計80KBにすることができた。まったく仕様外だが、市販の部品を使うことができた」と同氏はいう。

しかし、この改造はマシンの限界を超えるものだった。アップルIIに搭載されている6502マイクロプロセッサーは、64KBのメモリにしか直接アクセスできなかった。つまり、ブルース氏がなんとか2枚目のメモリボードを組み入れ16KBのメモリを追加しても、アップルIIにはこの追加されたメモリアドレスに一度にアクセスする方法が組み込まれていなかったのだ。ブルース氏がアップルの技術者と何度も相談している中で、アップルの技術者にそのことを伝えたところ、その技術者は「そんなことをするなんて、聞いたことも考えたこともない」とショックを受けたほど「規格外」の改造だった。

ブルース氏は、アップルIIが64KBのメモリだけではなく80KBのメモリにアクセスできるようにするために、純正のOSは諦め、自分でアセンブリ言語を使ってプログラムを作った。そのカスタムプログラムの秘訣は「アドレスが重複する16KBのメモリバンクを個別に選択できる」ということだ。つまり、一度にアクセスできるメモリは64KB分しかないが、2枚の増設メモリボードを非常に速いタイミングで交互にアクセスすることにより、ユーザーから見ればコンピューターが両方のメモリにアクセスしているように動作させるというものだ。これにより、システムから25%の追加メモリをひねり出し、400字程度の漢字を増設メモリボードに格納することができた。

ブルース氏は、感謝祭の前の週にGARFに最終コードを納品し、その後、ヨーロッパとアジアを縦断するワールドバックパッカーズツアーに出発した。それ以降、サイノタイプIIIの開発は、ルイ・ローゼンブラム氏とGARFが中心となって進めていったが、ブルース氏もコンサルタントとして関わり続け、ヨーロッパ、中国、インドなど、どこにいても父親と頻繁に連絡を取り合っていた。

リアルタイムの中国語タイピングを目指した高速化

しかし、ブルース氏の巧妙な改造によっても、ルイ氏とブルース氏が試算したところでは、増設メモリボードに格納できる漢字の数は600~1000字程度だった。サイノタイプIIIのOS、アプリケーション、漢字に必要なメモリ容量を考えると、システム辞書に登録されている漢字の大部分は、フロッピーディスクや外付けハードディスクなど、他のハードウェアに保存する必要があった。

サイノタイプIIIコンピューターのモニター画面(画像クレジット:Louis Rosenblum Papers、Stanford University Special Collections)

ブルース氏は当初、PROM(プログラマブル・リード・オンリー・メモリ)チップの使用を考えたが、このアイデアはすぐに行き詰まってしまった。1981年から1982年当時、市場に出回っていた最大のPROMチップのメモリ容量は2KBで、漢字に換算すると28~51文字にしかならなかった。これでは、7000字の漢字を記憶させるためには、138~250個のPROMチップが必要になってしまう。「これは大変な量だ」と、ブルース氏は気づいた。

次に同氏は、フロッピーディスクに漢字を格納することを考えた。しかしこれも、実用的ではないことがわかった。多くのフロッピーディスクが必要なだけでなく、その遅いアクセススピードのため、フロッピーディスクに保存されている漢字のビットマップを取り出すのにも時間がかかるためだ。そこでGARFはサイノタイプIIIに、当時のマイクロコンピューターの周辺機器としてはほとんど例がなかった、外付けハードディスクを接続するという第3の方法をとった。深刻なメモリ不足の問題を解決するため、GARFは使用頻度の低い数千の漢字を外付けハードディスク(10MBのコルバス製「Rigid Disk Storage[リジッド・ディスク・ストレージ])つまりシステム本体とは別の「倉庫」に保存した。

しかし、これはサイノタイプIIIの動作が遅くなるという副作用をもたらした。コンピューターの内部では、ほとんどの処理がミリ秒単位の速さで行われるため、ハードディスクは厄介な代物だった。特に当時のハードディスクは「プラッター」と呼ばれる硬い磁気ディスクがレコードプレイヤーのように内部で回転しており、レコードの溝を針で読み取るように、各トラックの内容をヘッドで読み取るものだ。そして読み取り速度は、ヘッドの位置と、読み取り要求があった時点でのディスクの回転位置によって決まる。停留所に着いたらバスが出発していた、というのと似たようなもので、またバスが回ってくるまで待たなければならない。

実際、ハードディスクに保存されている漢字の読み取り速度は、メモリに保存されている漢字の読み取り速度に比べて10倍以上も遅かった。具体的には、メモリに保存された漢字の読み取り時間は、1文字あたり約100ミリ秒と、タイプする人にとって気になる遅延ではない。一方、外部ハードディスクに保存されている漢字の場合、1文字入力するたびにフォントの読み取りに1秒もの時間を要し、これは人間の感覚では無視できないレベルだ。

1980年代半ばのパーソナルコンピューターの世界では、英語圏のユーザーはリアルタイムタイピングに急速に慣れてきていたため、1文字の入力に1秒かかるというのは壊滅的な遅さだった。そして、1秒は100ミリ秒の10倍の長さであるため、一般のユーザーは使用頻度の低い漢字を入力するたびに、この大きな差を感じてしまうことになる。

この問題を軽減するために、ルイ・ローゼンブラム氏は「アダプティブ一時ストレージ」というアイデアを思いついた。サイノタイプIIIでは、ユーザーが直近に入力した文字に応じて、メモリに保存される文字セットを調整できるようにしたのだ。起動直後は、サイノタイプIIIの増設メモリには、あらかじめ決められた使用頻度の高い漢字だけが記憶されるようになっている。ハードドライブに格納されている頻度の低い文字の入力には、前述のように最大で1秒かかる。しかし「頻度の低い漢字をキーボードで入力すると、そのコードとドットマトリックスパターンがランダムアクセスメモリに記憶される」と、同氏は当時の手紙で説明している。つまり、そのような文字は一時的にハードドライブから増設ボードに割り当てたメモリキャッシュにコピーされ、その後の検索時間を短縮することができる。

サイノタイプIIIの文字データベースとメタデータが記載されたGARFの内部資料(画像クレジット:Louis Rosenblum Papers、Stanford University Special Collections)

チャイニーズ・オン・ア・チップ

メモリバンク切り替えやアダプティブメモリを駆使しても、そういった工夫だけでは手に負えない何千もの文字が残されていた。実際の漢字入力では、使用頻度の高い漢字が全体の大きな割合を占めているが、技術的な内容や専門的な内容の文章を作成する場合には、ユーザーは必ず「倉庫」の漢字リポジトリに繰り返しアクセスすることになる。中国語のコンピューターを英語のコンピューターと同じように、快適なスピードで使えるようにするためには、これらの「低頻度文字」をより多く「現場」に運び入れておく必要があった。

1970年代後半から1980年代前半にかけて、エンジニアたちは別のハードウェアソリューションを模索し始めた。「Chinese Character Cards(Hanka)[漢字カード]」「Chinese Cards(Zhongwenka)[中国語カード]」「Chinese Character Generators」(漢字生成機)「Chinese Font Generator(Hanzi zimo fashengqi)[漢字フォント生成機]」、そしてある記事では「Chinese-on-a-Chip(チャイニーズ・オン・ア・チップ)」などと呼ばれていた。こういった「漢字カード」類は、メモリーボードやグラフィックボードのように、マザーボードの拡張スロットに直接実装するように設計され、何千もの中国語のビットマップとキー入力をビットマップに対応させるエンコーダーが論理回路として組まれていた。実際、漢字カードは、外付けのハードディスクと同じ役割を果たすと同時に、より高速で安定した性能を発揮した。

しかし「チャイニーズ・オン・ア・チップ」カードは、GARFの研究対象ではなかった。というのも、漢字カードは、パーソナルコンピューターが普及する前の中国語システムの専用機向けに開発されたものだったからだ。そういったシステムは、Chan Yeh(チャン・イェー)氏のIdeographix IPX(イディアグラフィク・アイ・ピー・エックス)やOlympia 1011(オリンピア・テン・イレブン)などが挙げられ、漢字ビットマップの生成と入力記述子の保存のみを目的としたマイクロプロセッサーを搭載していた。中国語ワープロ「オリンピア1011」は、電動の中国語タイプライターであるが、3個のIntel 8085(インテル・エイティ・エイティファイブ)プロセッサーの内1個が漢字生成専用であったという。

1980年代初頭には、この漢字生成機がコモディティ化し、市販品として単体で販売されるようになった。そのため、漢字生成機の恩恵を受けるためにオリンピア1011のような本格的なワープロを買う必要はなくなり、代わりに「漢字カード」を購入して、それを自分のパソコンにインストールするだけでよくなった。

最も早くから漢字カードに取り組んでいた中国コンピューティングの中心の1つである清華大学では、約6000種類の中国語ビットマップパターンを32×32ドットマトリックス形式で格納できる先駆的なカードを開発した。そして、1980年代半ばから後半にかけては、日本、中国、台湾、香港、米国などの企業によって製造・販売された数十種類の「Hanka(漢字カード)」類似製品が市場に出回ることになった。

また同時に「チャイニーズ・オン・ア・チップ」のアプローチは非常に重要かつ一般的なものとなり、特に中国語や日本語に対応したコンピューターでは、何らかの文字生成カードが搭載されるようになっていた。

このように、1950年代のコールドウェル氏のサイノタイプから、1980年代のローゼンブラム親子とGARFのサイノタイプIIIに至るまで、漢字に関わるメモリ問題を解決することは、コンピューティングにおける中国市場の幕開けの重要な基盤となった。コンピューターの改造によるメモリの拡張、文字の優先度に適応するメモリ管理アルゴリズムの考案、問題の解決のための専用ハードウェアの構築、それらすべてが中国におけるコンピューター革命の引き金となったのだ。

しかし次のステップは、コンピューター本体だけではなく、コンピューターに接続されるすべての機器に、漢字対応をどのように拡大していくかということだった。TechCrunchでまもなく公開されるこのシリーズのパート2では、中国語のテキスト出力に対応した初期のコンピューターモニター、プリンター、その他の周辺機器で見られた、設計とプログラミングにおける課題について深く掘り下げていく。

カテゴリー:ハードウェア
タグ:中国コンピューター中国語コラム

画像クレジット:Louis Rosenblum Papers, Stanford University Special Collections

原文へ

(文:Tom Mullaney、翻訳:Dragonfly)