.
.
H氏からの手紙
January 1998 MACお宝鑑定団 
counter

Type Error 11

この内容はあるショップNewsペーパーで掲載されたのを本人の転載許可を得て公開しています。また内容に関する保証はいたしませんし、質問も受けられません。
こころ良く転載許諾をしていただいたH氏に感謝します。


●新機種マックに於ける「タイプ11エラー」の怪
事の発端は相当昔にさかのぼります。アップルがモトローラー68000系のCPUを採用し、Macintoshを開発した際に、68000系命令に追加して例外処理命令群をROMの中に埋め込みました。俗に言われる「ToolBoxルーチン」です。

この例外処理命令群は16進数でAから始まるため、「Aライン・トラップ」と呼ばれA800からとA000からを分けて、前者をOS、後者をツールボックスルーチンとして、ほんの数年前まで重宝されてましたが、本来、例外処理は例外処理でしかなにので、アップルはツールボックスとシステム以外のトラップルーチンを使用する事は認めていませんでした。

しかしながら、あとから命令を好きに追加出来るこの機構を創世期のソフトウエアー・ベンダーが見過ごす訳もなく、各メーカーがどんどん使用し、アップルの正規仕様書である「インサイド・マッキントッシュ」の第1巻では項目になかったものの、2巻では仕様の1つになるに至りました。

そして時は流れ、68000系CPUからPowerPCへの移行期、アップルは何としてもRISCチップを手に入れるため、汎用機用のPC601チップに手を出しました。この601チップは68000系の命令セットは殆ど保持しておらず、アップルはシステムを1から書き直すこととなり、過去との互換性に大きな問題を抱え、一時はMacのウインドシステムをUNIXのMotifに変更しようかとまで悩んでいましたが、結局、システム7のGUIを踏襲する事となり、68040のエミュレートを行う事となりました。結局、動作オーバーヘッドの高いトラップ機構は廃止され、CPU命令群はトラップ・ルーチンがすべてダイレクト・サブルーチンコールへと変更を受けました。この時点で、それ以前のソフトウエアーのすべてが動作不能となり68000系のプログラミング手法はここに終焉を迎えます。

アップルユーザーの悲劇はここから始まります。アップルはシステムそのものをネイティブ化することを目指しましたが、外部ベンダーへのネイティブ化のガイドラインの徹底や資料配布が完全でなかったことと、非常に優秀なエミュレーター(LC040エミュレーター)を開発搭載したため、68000系の命令の大半は新システム上で動作するという失敗?を犯してしまいました。エミュレートされた命令は的確にCPUをコントロールしましたが、アプリケーションが動作する上でエミュレートとネイティブが頻繁にスイッチする、いわゆる「Mixed Mode Switch」が発生し、(これは途轍もなく大きなオーバーヘッドを発生する)本来のスピードの10倍近く遅い動作を引き起こしました。

アップルはこの動作スピードの遅さをCPUスピードで補おうとしましたが、601チップは汎用機用であるため、トランジスタの数も多く、消費電力が高いため、高クロック動作が出来ない状態であったため、急遽CPUを新しく採用、スパーカラーチップのPowerPC604や603の使用に踏み切りましたが、このチップは汎用アーキテクチャーの601とは完全互換ではなく、CPU命令サブセット4つのうちの1つを完全に廃絶するというPowerPCアーキテクチャー(601はPowerアーキテクチャー)で動作するため、アップルはPowerPC601エミュレーターを作らざるを得ない状態に追い込まれました。

ここまで読まれておわかりだと思いますが、現状の604/603のCPU上では、専用にコンパイルされたプログラムしかネイティブモードで動作しません。従って、従来の68000系のトラップルーチンを使用すると40系エミュレーターと601エミュレーターの2処理を経てCPUをコールします。68000時代のプログラムは例の例外処理を多用してますから、アップルのエミュレーターが理解できない命令はすなわち「タイプ11エラー」となって返ってきます。これを回避するには、素直な命令でのみで作られたプログラムを使用し、最新のパッチで整合性を取る必要性がありますが、エンドユーザーには酷な状態であると言えます。願わくば、今後のシステム7.6からOS8にかけてシステムのバグとネイティブ化率があって欲しいと.....

注)システムエラーの原因がエミュレーターの出来いかんや、システムのネイティブ化率だけに起因する訳ではありません。原因の一番は、各ソフトウエアーベンダーが、ガイドラインに沿ったプログラミングをしていないことが多いのです。

.
.
Copyright (C) 1998 Mac Treasure Tracing Club. All rights reserved.
Site design by BRESTO, Inc.