Skip to main content

開発ストーリー 第四話

Share:

第四話

雨降って地固まる、いよいよ設計に着手

SHマイコン開発物語の第4回目。開発グループはSHマイコンの「骨格」とも言えるアーキテクチャの設計に乗り出す。アーキテクチャの選定には,マイクロプロセサの性能評価が不可欠。一方で開発期間は限られている。ところが短期間での性能評価に必要な開発ツールがない。ここで救いの手を差し伸べたのが山崎尊永氏。愛用のパソコンを駆使して年末年始もいとわず働き続け,手弁当で開発ツールを作ってしまう。一方,アーキテクチャをまとめた開発グループはいよいよ命令セットの定義に取り掛かった。

マイクロコントローラを人にたとえるなら,アーキテクチャが「骨格」,命令セットが「顔」である。社内から巻き起こった逆風をはね返したSHマイコンの開発グループはいよいよ,SHマイコンの「骨格」の本格的な設計にとりかかった(図1)。1990年初秋のことである。河崎俊平氏がSHマイコンの開発リーダに任命されてから約半年が経っていた。

図1: 見えなかったSHマイコンの市場

図1: SHマイコン開発グループの面々
プロッタで出力したSHマイコンの回路図を前に思い出話に花を咲かせた。後列右から2人目が野口孝樹氏,左から3人目が山崎尊永氏,前列右端が塚元卓氏である。回路図を指差しているのが,河崎氏の直接の上司だった赤尾泰氏。このほか,コンパイラやアセンブラの開発,開発ツールの設計などに携わった技術者達が久しぶりに集まった。

ページトップに戻る

当時,SHマイコンのアーキテクチャとして,命令の処理手順を表すパイプラインの段数や制御方式が異なる,五つの方式が提案されていた(図2)。それぞれ一長一短がある。このうちどれか一つを選ぶのが,開発グループの目下の課題だった。
さまざまな提案からだれもが納得できる方法で,一つを選び出すには大変な労力を要する。日立製作所の以前のマイクロコントローラならば,「多数決」や「根回し」といった政治的なやり方でアーキテクチャを絞ったかもしれない。ところが,SHマイコンには通用しない。「すべての仕様に,定量的な裏付けがあることを不文律にしていた」(河崎氏)からだ。

図2: 五つのアーキテクチャを検討

図2: 五つのアーキテクチャを検討
1990年10月時点でSHマイコンのアーキテクチャは五つに絞られていた。最終的には右から二つ目の,「5段EX段PC決定,スコアボードなし方式」を選んだ。

ページトップに戻る

SHに捧げた年末年始

マイクロコントローラのアーキテクチャを決める際,もっとも重要な指標となるのは演算性能である。いくつかのプログラムを実行したときに,もっとも実行サイクル数が少ないアーキテクチャを選択すればよい。
しかし,どういったアーキテクチャならプログラムの実行サイクル数がどの程度少なくなるかを計算するのは容易ではない。手作業でやると途方もない時間がかかる。「定量的な裏付け」にこだわれば,開発期間はずるずると長引く。SHマイコンの開発グループは理想と現実のかい離に直面する。
しかし,ここに救世主が出現した。開発グループの古参メンバだった山崎尊永氏である。山崎氏の特技はパソコンのプログラミング。この特技を生かして,マイクロコントローラの*パイプライン・シミュレータを作ることを申し出たのだ。パイプライン・シミュレータさえあれば,SHマイコンの開発スピードは飛躍的に向上する。まさに「渡りに舟」の申し入れだった。
さっそく山崎氏は「shsim」(SuperH simulator)と名づけたパイプライン・シミュレータの開発を始めた。一度始めたらとことんのめりこんでしまうのが山崎氏の性分である。業務時間だけでは足りない。それではと,週末や休日も返上する。1990年末から1991年初めにかけては,正月休みまでも費やして,shsimの開発に没頭した。

いつのまにか「趣味」に

山崎氏の奮闘が実を結び,shsimは1991年春に完成した。早速SHマイコンの開発グループは,shsimを使って各アーキテクチャの性能評価を進める。ほどなくしてSHマイコンのアーキテクチャが固まった。開発グループは次に,マイクロコントローラの「顔」,命令セットの策定にとりかかった。こうして,開発メンバの多くは,しだいにshsimのことを忘れていった──。
実は,shsimについてはこんな後日談がある。ほとんどのメンバがshsimに関心をもたなくなっていったなかで,一人だけ例外がいた。ほかならぬ山崎氏である。他のメンバをしり目に,一人コツコツとshsimの改良を進めていたのだ注1)。「いつのまにかパイプライン・シミュレータの開発が趣味になってしまっていた」(山崎氏)。
もっとも当時パイプライン・シミュレータの開発は,山崎氏の業務として認められていなかった。SHマイコンの開発グループでの彼の仕事は,例外処理や割り込み処理に関する仕様のとりまとめだった。
いきおい,パイプライン・シミュレータの開発には休日を充てることになる。しかしパイプライン・シミュレータの開発がすでに「よろこび」と化していた山崎氏にとっては,なんの苦痛でもない。週末はおろか夏休みや年末年始など,使える休暇をすべて費やして開発を続けた。「妻の実家に行くときもパイプライン・シミュレータの開発のために,ノート・パソコンを抱えて行った」(山崎氏)。そんな生活がまる一年続いた。
アセンブラやデバガまでを備える,パイプライン・シミュレータがついに完成したのは,1992年の大晦日のことだった(図3)(*注1)。「完成度は売り物と同じぐらい高かった」(塚元卓氏)。

図3: 「sherry」の画面

図3: 「sherry」の画面
Macintoshを使って開発した。プログラミングにはC言語を用いた。

パイプライン・シミュレータはsherry(SuperH microcontroller for good yield program)と名づけられた。sherryはその後,SHマイコン向けプログラムを開発するユーザに性能評価用として配布され,おおいに重宝されることになる。

ページトップに戻る

塚元氏,涙ぐむ

話をSHマイコンの開発に戻そう。命令セットの策定作業が本格化したのは1991年の春である。
命令セットの定義は,河崎氏と塚元氏が中心になって進めた。命令セットの定義に直接かかわったのはたったこれだけ。数十人が命令セットの策定に参加したという,日立製作所のこれまでのマイクロコントローラの開発手法とは雲泥の差だ。「命令セットはできるだけ少人数でまとめたい」(1997年7月14日号の第1回を参照)という河崎氏のたっての願いは現実のものになった。
二人で命令セットを決める以上,責任は重大である。ユーザに使いにくい命令セットができても,他人のせいにはできない。河崎氏と,河崎氏に負けず劣らず命令セットにこだわりをもつ塚元氏は,意見を戦わせながら命令セットをまとめていった。
たとえば命令長である。SHマイコンの命令は16ビットの固定長ということでグループの間で,ほぼ合意がとれていた。ところが塚元氏は納得いかなかった。16ビット固定長のフォーマットでは,条件分岐や無条件分岐の際に命令中で記述できる*ディスプレースメントが短いなどといった短所があるためだ。そこで,塚元氏は32ビット長の命令を一部含む命令セットの提案をした。このために10ページ近いレポートを書いた。
しかしこの案は河崎氏によってあえなく却下された。塚元氏は振り返る。「河崎氏ほど自分の意見を変えない人も珍しい。他人の意見を聞くことは聞くが,いつでも「それはそうとして,こちらの方向で検討してみたい」と締めくくってしまう。自分の意見はほとんど通らない。くやし涙に明け暮れる日々だった」。

ページトップに戻る

くるくる回る風見鶏

河崎氏と塚元氏のし烈なぶつかり合いは,命令セットの仕様案が頻繁に変わるという事態を生んだ。「1日に1個ぐらいのペースで命令セットを作っていたころもあった」(塚元氏)。ある日,命令セットの仕様書をまとめていた塚元氏は,思いあまって仕様書の片隅に風見鶏の絵を入れた(図4)。

図4: 仕様書に風見鶏

図4: 仕様書に風見鶏
毎日のように命令セットの仕様が変わることに業を煮やした塚元氏が,書き込んだ。風見鶏が「日刊SH!」と叫んでいるバージョンもある。

毎日のように変わる命令セットに対する皮肉の意味を込めたものだ(*注2)。
こうした二人の対立に代表されるように,当時のSHマイコン開発グループの人間関係は決して好ましい状態ではなかったようだ。「お互い仕事のときには,ほとんど口をきかない。メールも控えた。戦争状態だった」(塚元氏)。
SHマイコン開発グループ崩壊の危機。そんなとき,火に油をそそぐような事実が発覚した。

ページトップに戻る

第五話へ続く

(枝 洋樹)

*パイプライン・シミュレータ:
命令を実行するパイプラインの動作を検証するためのソフトウエア・ツール。命令の種類や組み合わせによって変化するパイプラインの振る舞いを再現することで,プログラムの実行に必要なサイクル数を数えることが可能になる。

*ディスプレースメント:
条件分岐や無条件分岐の分岐先アドレスを示すための値。命令のなかで指定する。ディスプレースメントとプログラム・カウンタの和によって,分岐先アドレスを示す。

*注1:
たとえば,shsimは約30個の一般的な命令しか備えていなかった。SHマイコンのすべての命令に対応するための手直しが必要だった。

*注2:
塚元氏はいまでも,自らが定義にかかわったSHマイコンの命令セットについて「好きではない」と言い切る。「もっと気持ち良くプログラムを書ける命令セットにできたはず」(塚元氏)。

出典

日経エレクトロニクス 1997年9月1日号開発ストーリ「SHマイコン開発-第4回」P107-110

開発ストーリーTOPへ

ページトップに戻る


End of content

Back To Top