|
Tech Note 29: NS Basic/Palmがネイティブに!December 22, 2003© NSB Corporation. All rights reserved. |
Palm OSは元々Motorola 68000(68Kとよく呼ぶ)プロセッサー用に書かれましたが、Palm OS 5に移る時、いくつものメーカーが製造するStrongArmプロセッサーに移行しました。この新しいプロセッサーは、数多くの機能を持ち、それが68Kプロセッサーと比べ、かなり処理速度がましています。
Palm OS用の大量のソフトウエアと互換性を持たせるため、PalmSourceはPACE ("Palm Application Compatibility Environment") と呼ばれるStrongArmプロセッサー上で動作する68Kのエミュレータを作りました。これによって、68K用に書かれたアプリケーションは、変更を加えずに新しいデバイスでも動作します。新しいプロセッサーの処理速度が速いため、仮に68Kのエミュレータが使われている状態でも、ソフトウエア(NS Basic/Palmプログラムも含む)の実行速度は増します。
68Kのエミュレータを取り除けるとすると、さらに飛躍的な速度の向上が期待できます。NS Basic/Palm 4.1は完全な「Arm Native」です。すなわちNS Basicで開発されたプログラムは、PACE内で動作するのではなく、StrongArmのネイティブコードの中で動作します。
この速度向上はめざましく、最高で25倍速くなります。これからNSBasicを使えば、いままでは遅過ぎたものも含め、どの種類のアプリケーション開発でも実用的です。
また改善されたのは速度だけではなく、それに連携してバッテリー消費を抑えていますので、よりNSBasicを効果的にしています。
68Kモードで動作するどのNS Basic/Palmプログラムも、コードに変更を加えることなく、Arm Nativeモードで動作します。だた1つの違いは、どのバージョンのRuntimeを使うかです。Arm Nativeモードで動作させるには、NS Basic/Palm 4.0でコンパイルしなければなりません。古いバージョンでコンパイルしたプログラムは、68Kモードでしか動作しません。
どのRuntimeを使うかは、適切なバージョンを選んでデバイスにインストールするか、NS Basic/Palm IDE上で「ツール... オプション... コンパイル/ダウンロード」と選び、プログラムを「Fatアプリ」に指定して下さい。
Arm Nativeコードは68Kコードより大きくなります。インストラクションは16ビットではなく32ビットで、アライメントは4バイトの境になくてはなりません。結果としてArm Native Runtimeはかなり大きくなっています。NS Basicプログラム自体は同じ大きさのままです。
Runtimeは以下の2つの中から選べます:
様々なテストを行って68K RuntimeとArm Native Runtimeを比べました。最後にある注記を読んで、結果を良く理解して下さい。
Device | Bench1 | Bench2 | Bench3 | FormBench |
Palm IIIx | 453 | 492 | 112 | 268 |
Tungsten T | 137 | 153 | 458 | 41 |
Zire 71 | 125 | 132 | 539 | 38 |
Zire 21 | 141 | 150 | 454 | 33 |
Sony NX70 | 82 | 88 | 867 | 21 |
Zodiac2 | 66 | 70 | 1065 | 32 |
Tungsten T3 | 41 | 154 | 1731 | 15 |
Device | Bench1 | Bench2 | Bench3 | FormBench |
Palm IIIx | 488 | 533 | 102 | 270 |
Tungsten T | 5 | 24 | 5040 | 31 |
Zire 71 | 5 | 23 | 5574 | 29 |
Zire 21 | 6 | 27 | 5821 | 22 |
Sony NX70 | 5 | 18 | 9876 | 17 |
Zodiac2 | 4 | 13 | 14099 | 29 |
Tungsten T3 | 2 | 8 | 23138 | 13 |