シャープ電子手帳アーキテクチャ分類

2005/08/28 15:27
知り合い等から聞いた話をもとに、推論や解析を加えてまとめたものです。 よって必ずしも正しいとは限りません。 ここに書かれた内容における、 シャープなどメーカーへの直接の問い合わせは遠慮してください。

CPUについて

PA/PI系で使われている ESR-H/L は、どちらも SHARP オリジナルの CPU です。 かつて SHARP のポケコンに使われ、 隠し機能としてマシン語プログラミングができたことから、 マニアの間で広く人気を呼びました。 80/68 等の、メジャーな CPU とは全く異なる命令体系で、 徹底した省電力と BCD 演算を得意としているあたり、 どちらも組み込みの関数電卓への用途を想定して作られているように感じます。 これらの CPU が、のちに高速化されたバージョンとはいえ、 日本語変換を含めた電子手帳に使われたことを知った時はかなり驚いたものです。

一転して MI系で使われている SH3 は汎用的な RISC 32bit CPU です。 SHARPオリジナルの CPU とは違い、CPU仕様など資料も手に入りやすくオープンで、 採用機種も SH 用開発ツールも数多く存在します。 例えばCPUマニュアルはメーカーのホームページから誰でもダウンロードできます。 ESR-H/Lとは処理速度において文字通り桁が違います。

機種別の詳細解説

SC電子手帳他
◎ ESR-H (SC61860)

漢字が使えて 2/4行の電子手帳や、似たような機能で液晶画面が 96x64dot のタイプがおそらくこれです。

CPU 自体に LCD コントローラも内蔵し、 リチウム電池で100時間近く使えるなど、小型化に向いています。 しかしながらCPUアーキテクチャは8bitかつ非力で、 メモリ空間も制限されています。 日本語変換辞書から内蔵された辞書機能、辞書 IC カードなど、 搭載機能の量からして バンク切り替えがどれだけ行われているのかもはや想像もつきません。

かつて SHARP の PC-12/13/14系ポケコンに使われていたものよりは、 高速化してあるそうです。
◇ユーザーによるプログラミング: カードが使えるタイプなら可能性はある。 実際企業向けだが BASIC カードが存在する。 ただし本体ではプログラムは組めず、一般売りはしていない。

DB-Z/PV-F1
◎メイン ESR-L (SC62015) / サブ ESR-H (SC61860)

実際には ESR-L/H ともに 1チップに集積されており、 ESR-H は 2/4行ICカードを動かす互換性のためだけに搭載されているそうです。 メインは ESR-L であり、同じ CPU のポケコン PC-E500系 より高速になっています。 逆に ESR-H 部は、SC電子手帳より遅いという話を聞いたことがあります。
◇ユーザーによるプログラミング: 一般向けにも BASIC カード(ハイパー関数BASICカード)を販売していたために、 本体だけでプログラミングも可能。 隠しコマンドによる機械語プログラミング(ESR-L) ※1 も可能。

PI系 ZAURUS
◎メイン ESR-L (SC62015) / サブ Z80互換

実際には、DB-Z/PV-F1 同様、メインサブの CPU が1チップに集積されているそうです。 あくまでメインは ESR-L で、 Z80 はタッチパネル制御と手書き文字認識のみ行います。 それ以外の場合は Z80 は寝ていて何もしておらず、電力消費を徹底して減らしています。 メインの画面描画が遅くても、手書き文字の反応がいいのは、 並列して動くサブの Z80 のおかげでしょう。 ESR-L は、ポケコン PC-E500 系より実測でおよそ 3倍速いものが使われています。 DB-Z/PV-F1 と違い ESR-H が無いために、2/4行カードが使えません。
◇ユーザーによるプログラミング: PI-7000 以外は DB-Z 用 BASIC カードが使えるほか、 PI-5000 以降は Addin BASIC でプログラムも書ける。 Addin プログラムは通常は本体のみでは作れないが、 ZauSH を使えばそれも可能で、機械語(ESR-L) ※1 も扱える。

WiZ/wiz
◎ ESR-L (SC62015)

PI系 ZAURUS との一番の違いは、ESR-L 一つで手書き認識を含めた全処理を行っていることだそうです。 そのため手書き認識のレスポンスが若干悪くなっています。
◇ユーザーによるプログラミング: 不可能

MI系 Zaurus
◎ SH3 32bit RISC

SH3 は、これまでの関数電卓向け SHARP オリジナル CPU とは一転し、 HITACHI 製の CPU です。 WindowsCE 機種をはじめ、 デジタルカメラなど組み込み用途でも広く使われています。

一世代前の SH2 は、SEGA SATURN に メイン CPU として 2つ搭載されていることも有名です。 (SH2 の 28MHz×2) また同様に SATURN には SH1 も CD 制御用として載っているそうです。 (Super32X にも SH2 が 2個のってます)

さらに最新型 SH4 は、命令アーキテクチャは完全互換ながら PentiumII のような 2wayスーパースカラになり、 200MHz 駆動で 360Mips/1.4GFlops の処理速度を持ちます。 メモリアクセスも 64bit で FPU内部に 128bit 並列演算のマトリクス演算ユニットを持つなど、 機能も処理速度も大幅に強化されました。 SH4SEGA の最新ゲーム機 Dreamcast が採用しています。 Dreamcast には WindowsCE が OS として使われているそうなので、 今後おそらく、このクラスの CPU も PDA に使われる時代がくるのでしょう。

SH3 は 32bit RISC ながら命令は 16bit 固定長で、32bit データはメモリ上へ配置し、 そのインデックス情報として扱います。 レジスタは 32bit が 16本。 このあたりは、68K 系の a/d レジスタの区別を無くしたといわれる、Hシリーズの CPU を受け継いだものと思われます。 TV CM でやっていたように SH は SuperH の略らしいので、 おそらく H系の RISC 版という意味なのでしょう。

ちなみに Hシリーズの H はもちろん「Hitachi」のことです。 Z80 の Z がザイログであるように、i386 の i がインテル を指すように、CPU 前にメーカー名がつくケースは少なくありません。 つまり SH は、SuperHitachi となるわけです。

OS は、 アックス というところが開発した XTAL (クリスタル) という マルチタスク OS が元になっているようです。 この OS を作ったメーカーのインタビューが、 ソフトバンクの UNIX USER 1996年9月号に掲載されていています。

CPUクロックは次の通り。 1999/05 現在での最速 Zaurus はやはり MI-EX1 のようです。
MI-500系/100系SH3 30MHz
MI-600系最大 SH3 60MHz(省電力設定による)
MI-310SH3 66MHz
MI-EX1SH3 120MHz
◇ユーザーによるプログラミング: MOREソフトとして本格的な追加アプリケーションの開発が可能。 開発キット SZAB CE-KT7 は SHARP より発売。

その他、MOREソフトで作られた開発環境もいくつか存在し、 Squeak/Zaurus(ざうちゅう) では、GUIと統合されたSmalltalk言語処理系として Squeak が公開されています。

PowerZaurus の場合 表計算機能を使えば、 ちょっとした関数計算や簡単なプログラミングが 「かなり遅いけど」一応出来ます。

その他
海外ザウルスや企業向けザウルスなどは、 中身も仕様も全く異なっているそうですが、 データが無いのでここでは扱いません。

※1: 機械語(アセンブラ)プログラミングは、 すべてユーザーが独自に解析した結果可能になったものです。 ツール類もすべてユーザーが独自に作成したもので、 SHARP はこれらの資料や情報、ツールを一切公開していません。

SHARP オリジナル CPU 補足

ESR-H (SC61860)
SC61860 は昔 SHARP の 8bit ポケコンに使われた CPU です。 (正確には ESR-H という名前で、SC61860 は液晶コントローラを含めた ポケコンに使われたときのただのチップの名称だそうです) 初登場はおそらく PC-1250/51 で、それ以前の PC-1210系は 4bit CPU でした。 この 8bit 機からユーザーレベルで機械語が扱えました。 メモリ空間は 64Kbyte で、そのうち最初の 2K byte を CPU 内部に ROM として持っています。 64K を超える膨大なメモリはほとんどが バンク切り替えでアクセスされるようです。 ちなみに初期の PC-1250 は RAM が 2Kbyte、PC-1251 は 4Kbyte しか ありませんでした。

レジスタは 8bit が基本です。16bit 演算もありますが、かなり制限が多く 16bit 操作は得意ではありません。 その代わり CPU 内部に 96byte の RAM を持ち、 連続した内部RAM をレジスタと見立てた多バイト長の BDC 10進数演算が可能です。 スタック、I/O、レジスタの多くはこの RAM 上に配置されています。 外部に RAM が無くても動作可能な 典型的な組み込み用 CPU の構成となってます。

シリアルI/Oはなく、通信ポート制御は CPU がソフトウエアで処理しています。(4pin等) 1bit 1bit CPU で I/Oを制御しているのです。 ちなみに CPU 割り込みもありません。 徹底した省電力が特徴で、かつ最小限のI/O制御しか持たないという、 SHARP ならではの 電卓向け CPU といえます。

ESR-L (SC62015)
SC62015 は、SHARP のポケコン PC-E500 シリーズの登場とともに知られるようになりました。 SC61860 との互換性は一切ありません。 命令から仕様まですべて異なっています。 レジスタは 8bit, 16bit, 20bit をそれぞれ持ち、 その他に SC61860 同様 CPU 内部に BCD 演算でも使用する 256byte の RAM を持っています。 アドレスポインタが 20bit なので、 8bit CPU ながら 1M byte ものメモリ空間を連続して アクセスすることができます。 それ以外にも、割り込み機能やシリアル I/O 等を持ち、 SC61860 に比べてかなり汎用 CPU らしい作りです。

SC61860/SC62015 を扱う数々のソフトウエア群を このホームページ (フルパワー全開) では公開しています。 CPU エミュレータからクロスアセンブラ、 クロスコンパイラまで。 さらには PI ザウルス本体で動くアセンブラとエディタ等も揃っています。
[戻る]
[メニューに戻る] [ZAURUS総合] [DirectX] [Ko-Window] [Win32] [WinCE] [携帯電話] [その他]
フルパワー全開 Hyperでんち

Hiroyuki Ogasawara <ho>