JPH11312152A - 移動電子装置および制御方法 - Google Patents

移動電子装置および制御方法

Info

Publication number
JPH11312152A
JPH11312152A JP10365666A JP36566698A JPH11312152A JP H11312152 A JPH11312152 A JP H11312152A JP 10365666 A JP10365666 A JP 10365666A JP 36566698 A JP36566698 A JP 36566698A JP H11312152 A JPH11312152 A JP H11312152A
Authority
JP
Japan
Prior art keywords
code
dsp
equation
task
host
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP10365666A
Other languages
English (en)
Inventor
Michael Mcmahon
マクマホン マイケル
Marion C Lineberry
シー.ラインバリイ マリオン
Matthews A Woolsey
エイ.ウールゼイ マシュー
Gerard Chauvel
ショベル ジエラール
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Texas Instruments Inc
Original Assignee
Texas Instruments Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Texas Instruments Inc filed Critical Texas Instruments Inc
Publication of JPH11312152A publication Critical patent/JPH11312152A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor
    • G06F9/3879Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication

Abstract

(57)【要約】 【課題】 多数のプロセッサおよびコプロセッサの使用
をグレードアップし最適化するデータ処理アーキテクチ
ュアを得る。 【解決手段】 複数個のプロセッサ12,16を含むワ
イヤレスデータプラットホーム10。タスクが実施され
る時に情報を通信できるようにプロセッサ間に通信チャ
ネルが開設される。1個のプロセッサで実施されるダイ
ナミッククロスコンパイラー80がコードを別のプロセ
ッサのためのネーティブ処理コードへコンパイルする。
ダイナミッククロスリンカー82が他のプロセッサのた
めにコンパイルされたコードをリンクする。ネーティブ
コードはそれを包むJAVA Bean90(もしくは
他の言語タイプ)を使用してプラットホームへダウンロ
ードすることもできる。JAVA Beanは暗号化し
セキュリティのためにデジタルサインすることができ
る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は一般的に移動電子装
置に関し、特に移動電子装置用ハードウェアおよびソフ
トウェアプラットホームに関する。
【0002】
【従来の技術】装置のパワー、したがって機能、が増強
されるにつれてハンドヘルド携帯装置の人気が高まって
きている。近年PDA(Personal Digit
alAssistant)が広く使用されており、セル
ラー電話機とPDAのいくつかの能力を組み合わせたス
マートホーン(Smart phones)が近未来の
通信に著しいインパクトを与えるものと考えられる。
【0003】現在ある装置には、音声認識等の、ある個
別の機能を提供する1個以上のDSP(デジタル信号処
理装置)もしくは他のコプロセッサ、および他のデータ
処理機能のための汎用プロセッサが内蔵されている。D
SP用コードおよび汎用プロセッサ用コードは一般的に
ROMその他の非揮発性メモリに格納され、それらは容
易に修正することができない。したがって、改善および
新しい機能を利用できるようになった時に、しばしば装
置の能力をグレードアップできないことがある。特に、
装置内に存在することがあるDSPや他のコプロセッサ
を最大限に使用することができない。
【0004】
【発明が解決しようとする課題】したがって、多数のプ
ロセッサおよびコプロセッサの使用をグレードアップし
最適化することができるデータ処理アーキテクチュアが
必要とされている。
【0005】
【課題を解決するための手段】本発明において、移動電
子装置はネィティブコードを実行するコプロセッサと、
ホストプロセッサシステムに対応するネィティブコード
およびプロセッサ独立コードを実行するように作動する
ホストプロセッサシステムとを含んでいる。ホストプロ
セッサシステムはデジタル信号コプロセッサにより実施
されるタスクをダイナミックに変えるように作動する。
通信回路によりホストプロセッサシステムとコプロセッ
サ間の通信が提供される。
【0006】本発明により従来技術を凌ぐ著しい利点が
提供される。それは、ホストプロセッサシステムが、デ
ジタル信号処理装置であっても良いコプロセッサにより
実施されるタスクをダイナミックに割り当ててコプロセ
ッサを完全に使用できるためである。ホストプロセッサ
システムは、各プロセッサの現在の能力等の、多様な要
因に応じて複数のコプロセッサの1つへ直接ルーチンす
ることができる。
【0007】
【発明の実施の形態】図1に例えばスマートホーンやP
DAを実施するのに使用できる一般的なワイヤレスデー
タプラットホームアーキテクチュアの好ましい実施例を
示す。ワイヤレスデータプラットホーム10は、データ
バス14a、アドレスバス14bおよびコントロールバ
ス14cを含むバス構造14に接続された汎用(ホス
ト)プロセッサ12を含んでいる。コアプロセッサ16
aおよび周辺インターフェイス16bを含む1個以上の
DSP(もしくは他のコプロセッサ)16がバス14お
よびDSPキャッシュメモリ18a、CPUキャッシュ
18b、およびMMU(メモリマネジメントユニット)
18cを含むメモリおよびトラフィックコントローラ1
8に接続されている。ハードウェアアクセラレータ回路
20(JAVA等のポータブル言語を加速する)および
ビデオおよびLCDコントローラ22もメモリおよびト
ラフィックコントローラ18に接続されている。ビデオ
およびLCDコントローラの出力はLCDもしくはビデ
オディスプレイ24に接続されている。
【0008】メモリおよびトラフィックコントローラ1
8はバス14および、SDRAM(同期ダイナミックラ
ンダムアクセスメモリ)として示す、主記憶装置26に
接続されている。バス14はI/Oコントローラ28、
インターフェイス30、およびRAM/ROM32にも
接続されている。複数の装置をスマートカード34、キ
ーボード36、マウス38等のワイヤレスデータプラッ
トホーム10もしくはUSB(ユニバーサルシリアルバ
ス)ポートもしくはRS232シリアルポート等の1つ
以上のシリアルポート40に接続することができる。イ
ンターフェイス30はフラッシュメモリカード42およ
び/もしくはDRAMカード44に接続することができ
る。周辺インターフェイス16bはDSP16をDAC
(デジタル/アナログコンバータ)46、ネットワーク
インターフェイス48もしくは他の装置に接続すること
ができる。
【0009】図1のワイヤレスデータプラットホーム1
0は汎用プロセッサ12およびDSP16を利用してい
る。DSP16が特定の固定機能専用とされている現在
の装置とは異なり、図1のDSP16は任意数の機能に
使用することができる。それにより、ユーザはDSP1
6の利益を完全に引き出すことができる。
【0010】DSP16を使用できる1つの主要なエリ
アはマン−マシンインターフェイス(MMI)に関連し
ている。重要なのは、音声認識、イメージおよびビデオ
圧伸、データ暗号化、テキスト−音声変換、等の機能を
DSP16を使用してより効率的に実施できることであ
る。本アーキテクチュアにより新しい機能や改善をワイ
ヤレスデータプラットホーム10へ容易に付加すること
ができる。
【0011】ワイヤレスデータプラットホーム10は一
般的なブロック図であり、さまざまに修正することがで
きる。例えば、図1には独立したDSPおよびプロセッ
サキャッシュ18a,18bが図示されている。当業者
にはお判りのように、ユニット型キャッシュも使用する
ことができる。さらに、ハードウェアアクセラレーショ
ン(acceleration)回路20はオプショナ
ルアイテムである。このような装置によりJAVA等の
言語の実行が加速されるが、この回路は装置の動作に必
要なものではない。さらに、1個のDSPしか図示され
ていないが、多数のDSP(もしくは他のコプロセッ
サ)をバスに接続することができる。
【0012】図2にワイヤレスデータプラットホーム1
0の機能的ソフトウェアアーキテクチュアを示す。この
ブロック図はJAVAを使用するものと想定しており、
JAVA以外の言語も使用することができる。機能的
に、ソフトウェアは2つのグループへ分割され、それは
ホストプロセッサソフトウェアおよびDSPソフトウェ
アである。ホストソフトウェアは1つ以上のアプレット
40を含んでいる。DSP APIクラス42はJAV
Aアプリケーション用JAVA APIパッケージ、す
なわちDSP API50およびホストDSPインター
フェイスレイヤ52の機能へアクセスするアプレットで
ある。JAVAバーチャルマシン(VM)44がアプレ
ットを解釈する。JAVAネイティブインターフェイス
46は、JAVA VMがホストプロセッサもしくは特
定プラットホームコードを実行する方法である。ネイテ
ィブタスク48はJAVAネイティブインターフェイス
を使用せずにホストプロセッサ12により実行すること
ができる非JAVAプログラムである。後述するDSP
API50は、DSP16の能力を使用するためにコ
ールするホスト12で使用されるAPI(アプリケーシ
ョンプログラムインターフェイス)である。ホスト−D
SPインターフェイスレイヤ52は他のタスク、あるい
はホスト−DSP通信プロトコルを介したチャネルを使
用して他のハードウェアと互いに通信するためのAPI
をホスト12およびDSP16に提供する。DSPデバ
イスドライバ54はDSP16と通信するためのホスト
RTOS56(リアルタイムオペレーティングシステ
ム)用ホストベースデバイスドライバである。ホストR
TOS56はアクセラレーテッドテクノロジー社のNU
CLEUS PLUS等のオペレーティングシステムで
ある。マイクロソフト社のWINDOWSCE等の非リ
アルタイムオペレーティングシステムを使用することも
できる。DSPライブラリ58にはDSP16で実行す
るために格納されたプログラムが含まれている。
【0013】DSP側で、DSP16により実行する1
つ以上のタスク60をメモリ内に格納することができ
る。後述するように、DSPの機能がスタティックでは
なくダイナミックとなるように、タスクを所望によりメ
モリから出し入れすることができる。DSP側のホスト
−DSPインターフェイスレイヤ62はホスト側のホス
ト−DSPインターフェイスレイヤ52と同じ機能を実
施する、すなわちホスト12およびDSP16は通信す
ることができる。DSP RTOS64はDSPプロセ
ッサ用オペレーティングシステムである。ホストデバイ
スドライバ66はホスト12と通信するDSP RTO
S64用DSPベースデバイスドライバである。ホスト
−DSPインターフェイス70はDSP16をホスト1
2に接続する。
【0014】動作において、図2に示すソフトウェアア
ーキテクチュアはDSP16を従来技術のように固定機
能装置ではなく、可変機能装置として使用する。したが
って、DSP機能は図2のアーキテクチュアを内蔵する
移動装置へダウンロードして、DSP16がホスト12
に対してさまざまな信号処理機能を実施できるようにす
ることができる。
【0015】DSP−API DSP−APIはホスト12からDSP16へのデバイ
ス独立インターフェイスを提供する。この機能により、
ホスト12にはDSP16にタスクをロードしてスケジ
ュールを行いかつこれらのタスクをコントロールして通
信する能力が与えられる。API機能には、DSPの利
用可能な資源を決定し、ホスト12およびDSPタスク
を生成かつコントロールし、ホスト12およびDSPタ
スク間のデータチャネルを生成かつコントロールし、タ
スクと通信するための呼出しが含まれる。これらの機能
については後述する。各機能はブール結果を戻し、それ
は成功したオペレーションに対するSUCCESS、も
しくはFAILUREである。結果がFAILUREで
あれば、errcodeをチェックしてどのエラーが発
生したかを確認しなければならない。
【0016】
【数1】 この関数はDSP上で利用できる現在のMIPSを戻
す。それはDSP16のMIPS能力マイナスベースM
IPS値(付加ダイナミックタスクの無いMIPS値、
すなわちカーネルプラスAPIコードプラスドライ
バ)、マイナスロードされた全てのダイナミックタスク
に対するMIPSレーティングの和である。errco
deパラメータは下記の考えられる結果を含む。
【数2】
【0017】
【数3】 この関数はプログラムメモリおよびデータメモリの両方
に対して利用できるメモリ量についてDevIDにより
指定されるDSP16に質問する。その結果得られる値
はprogmemおよびdatamemパラメータ内に
戻される。サイズはT DSP Words内に指定さ
れる。errcodeパラメータは下記の考えられる結
果を含む。
【数4】
【0018】
【数5】 この関数によりDSP16上に1ブロックのメモリが割
り当てられる。DevIDはどのデバイス上にメモリを
割り当てるかを指定する。mempageはプログラム
スペースに対しては0であり、データスペースに対して
は1である。sizeパラメータはT DSP Wor
ds内のメモリブロックサイズを指定する。戻されるm
emptrはDSP16上のメモリブロックへのポイン
ター、もしくは失敗時のNULLである。errcod
eパラメータは下記の考えられる結果を含む。
【数6】
【0019】
【数7】 この関数はDSP Alloc Mem関数を割り当てられたDSP上の1
ブロックのメモリを解放する。DevIDはどのデバイ
ス上にメモリが常駐するかを指定する。mempage
はプログラムスペースに対しては0であり、データスペ
ースに対しては1である。memptrパラメータはメ
モリブロックへのポインターである。errcodeパ
ラメータは下記の考えられる結果を含む。
【数8】
【0020】
【数9】 この関数はDSPライブラリテーブルへアクセスし、N
ameパラメータにより指定されるDSP関数コードの
コードヘッダーを戻す。戻されると、codehdrパ
ラメータにより指示される位置はコードヘッダー情報を
含む。errcodeパラメータは下記の考えられる結
果を含む。
【数10】
【0021】
【数11】 この関数はDevIDにより指定されるDSP上の指示
されたアドレスで走るようにDSP関数コードをリンク
する。codehdrパラメータは関数のコードヘッダ
ーを指示する。ダイナミッククロスリンカーはコードヘ
ッダー内およびコード(COFFファイル)内の情報に
基づいてコードをリンクする。ダイナミッククロスリン
カーは必要に応じてメモリを割り当て、DSP16にコ
ードをリンクしロードする。tcsパラメータはDSP
Create Task関数において必要なタスク生
成構造へのポインターである。DSP Link Co
deはタスクの生成に備えて構造のコードエントリーポ
イント、優先順位、およびクオンタム(quantu
m)フィールドを充填する。errcodeパラメータ
は下記の考えられる結果を含む。
【数12】
【0022】
【数13】 この関数は指定されたBLOB(Binary Lar
ge Object)をDSP16へコピーする。De
vIDはどのDSP16へオブジェクトをコピーするか
を指定する。srcaddrパラメータはホストメモリ
内のオブジェクトへのポインターである。destad
drはDSP16上のオブジェクトをコピーする位置へ
のポインターである。mempageはプログラムスペ
ースに対しては0であり、データスペースに対しては1
である。サイズパラメータはT DSP Words内の
オブジェクトのサイズを指定する。errcodeパラ
メータは下記の考えられる結果を含む。
【数14】
【0023】
【数15】 DSP Create Taskは、タスクパラメータおよびD
SPのプログラムスペース内のコード位置が与えられた
らタスクを生成するようDSP16に要求する。タスク
生成構造を表1に示す。
【0024】
【表1】
【0025】タスクが生成されると、Createエン
トリーポイントが呼び出され、任意の必要な予備初期化
を行う機会をタスクに与える。Create,Susp
end,Resume,およびStopエントリーポイ
ントはNULLとすることができる。その結果得られる
TaskIDはデバイスID(DevID)とDSPの
タスクIDの両方を含んでいる。TaskIDがNUL
Lであれば、生成は失敗である。errcodeパラメ
ータは下記の考えられる結果を含む。
【数16】
【0026】
【数17】 この関数はTaskIDにより指定されるDSPタスク
を開始する。タスクのStartエントリーポイントで
実行が開始する。errcodeパラメータは下記の考
えられる結果を含む。
【数18】
【0027】
【数19】 この関数はTaskIDにより指定されたDSPタスク
を保留する。保留される前に、任意の必要なハウスキー
ピングを実施する機会をタスクに与えるためにタスクの
Suspendエントリーポイントが呼び出される。e
rrcodeパラメータは下記の考えられる結果を含
む。
【数20】
【0028】
【数21】 この関数はDSP Suspend Taskにより保留されたDSPタス
クを再開する。再開される前に、任意の必要なハウスキ
ーピングを実施する機会をタスクに与えるためにタスク
のResumeエントリーポイントが呼び出される。e
rrcodeパラメータは下記の考えられる結果を含
む。
【数22】
【0029】
【数23】 この関数はTaskIDにより指定されたDSPタスク
を削除する。削除する前に、任意の必要なクリーンナッ
プを実施する機会をタスクに与えるためにタスクのSt
opエントリーポイントが呼び出される。それはタスク
により割り当てられた任意のメモリを解放し、タスクが
取得した任意の資源を戻すことを含まなければならな
い。errcodeパラメータは下記の考えられる結果
を含む。
【数24】
【0030】
【数25】 この関数はTaskIDにより指定されたDSPタスク
の優先順位を変える。優先順位はnewpriorit
yへ変えられる。newpriorityの考えられる
値はRTOS依存である。戻ると、oldpriori
tyパラメータはタスクの前の優先順位に設定される。
errcodeパラメータは下記の考えられる結果を含
む。
【数26】
【0031】
【数27】 この関数はTaskIDにより指定されたDSPタスク
の状態を戻す。statusは下記の値の1つを含む。
【数28】
【0032】priorityパラメータはタスクの優
先順位を含み、InputおよびOutputパラメー
タはタスクの、それぞれ、入力および出力IDを含む。
errcodeパラメータは下記の考えられる結果を含
む。
【数29】
【0033】
【数30】 この関数はDSP16上の名前を付けたオブジェクトの
IDを戻す。名前を付けたオブジェクトはチャネル、タ
スク、メモリブロック、もしくは任意他のサポートされ
た名前を付けたDSPオブジェクトとすることができ
る。errcodeパラメータは下記の考えられる結果
を含む。
【数31】
【0034】
【数32】 この関数はメモリの1ブロックを要求する。mempa
geはプログラムメモリ(0)もしくはデータメモリ
(1)を指定する。addrパラメータはメモリ開始ア
ドレスを指定し、countはどれだけ多くのT SD
Wordsを読み出すかを示す。bufパラメータ
はメモリをコピーしなければならないバッファーを提供
した呼び出し者へのポインターである。errcode
パラメータは下記の考えられる結果を含む。
【数33】
【0035】
【数34】 この関数はメモリの1ブロックを書き込む。mempa
geはプログラムメモリ(0)もしくはデータメモリ
(1)を指定する。addrパラメータはメモリ開始ア
ドレスを指定し、countはどれだけ多くのT SD
Wordsを書き込むかを示す。bufパラメータ
は書き込むメモリを含むバッファーへのポインターであ
る。errcodeパラメータは下記の考えられる結果
を含む。
【数35】
【0036】
【数36】 この関数はDSPレジスタを読み出しregvalue
内の値を戻す。RegIDパラメータはどのレジスタを
戻すべきかを指定する。RegIDが−1であれば、全
てのレジスタ値が戻される。バッファーを提供した発呼
者へのポインターであるregvalueパラメータ
は、全ての値を保持するのに十分な記憶装置を指示しな
ければならない。レジスタIDは特定DSP向けであり
特定のインプリメンテーションに依存する。errco
deパラメータは下記の考えられる結果を含む。
【数37】
【0037】
【数38】 この関数はDSPレジスタに書き込む。RegIDパラ
メータはどのレジスタを修正するかを指定する。reg
valueは書き込む新しい値を含んでいる。レジスタ
IDは特定DSP向けであり特定のインプリメンテーシ
ョンに依存する。errcodeパラメータは下記の考
えられる結果を含む。
【数39】
【0038】
【数40】 この関数は所与のコードアドレス(addr)における
ブレイクポイント(break point)を設定す
る。errcodeパラメータは下記の考えられる結果
を含む。
【数41】
【0039】
【数42】 この関数は所与のコードアドレス(addr)において
DSP Dbg Set Breakにより予め設定されたブレ
イクポイントをクリアする。errcodeパラメータ
は下記の考えられる結果を含む。
【数43】
【0040】DSPデバイスドライバ DSPデバイスドライバ54はホスト12からDSP1
6への通信を処理する。ドライバ関数はホスト−DSP
通信プロトコルに明記された通信要求を取り上げ、利用
可能なハードウェアインターフェイスを介した情報の伝
送を処理する。デバイスドライバはRTOS依存かつ通
信ハードウェア依存である。
【0041】DSPライブラリ DSPライブラリ58はDSP16へダウンロードして
実行することができるコードのブロックを含んでいる。
ダイナミッククロスリンカーが全てのアドレス参照(r
eference)を決定できるように、コードの各ブ
ロックは予め非リンク、すなわちライブラリとして再配
置可能にリンクされている。各コードブロックはDSP
MIPS(百万命令/秒)、優先順位、タイムスライ
スクオンタム、およびメモリに対するブロックの要求に
関する情報も含んでいる。コードブロックヘッダーのフ
ォーマットを表2に示す。プログラムメモリおよびデー
タメモリサイズは、DSPがタスクのメモリ要求をサポ
ートできるかどうかの迅速なチェックをホスト12に与
えるための近似値である。十分なスペースがあるようで
あれば、ダイナミッククロスリンカーはコードのリンク
およびロードを試みることができる。ページアライメン
ト(alignment)および連続性(contig
uity)の要求により、ダイナミッククロスリンカー
はそれでも目的を果たせないことがある。好ましい実施
例では、コードはバージョン2COFFファイルフォー
マットである。
【0042】
【表2】
【0043】ポータブルコードのリンクされたターゲッ
トコードへの変換 JAVAコード等のポータブル(プロセッサ独立)コー
ドをリンクされたターゲットコードへ変換する手順を図
3に示す。この手順は2つの機能、ダイナミッククロス
コンパイラー80およびダイナミッククロスリンカー8
2、を使用する。各機能はホストプロセッサ12上で実
現される。好ましい実施例では、ダイナミッククロスリ
ンカーはDSP−APIの一部である。クロスコンパイ
ラーはDSP APIの一部とすることもできる。
【0044】ダイナミッククロスコンパイラー80はポ
ータブルコードをリンクされない、実行可能なターゲッ
トプロセッサコードへ変換する。ダイナミッククロスリ
ンカー82は非リンク、実行可能なターゲットプロセッ
サコードをリンクされた、実行可能なターゲットプロセ
ッサコードへ変換する。そうするために、DSP16上
へローディングする前に、1ブロックのコード内のアド
レスを決定しなければならない。ダイナミッククロスリ
ンカー82は関数のコードセグメントおよびデータセグ
メントをリンクし、DSP16上のメモリを割り当て、
コードおよび一定のデータをDSP16へロードする。
コードを実行するターゲットプロセッサ(すなわち、D
SP16)とは異なるプロセッサ(すなわち、ホストプ
ロセッサ12)で関数(コンパイリングおよびリンキン
グ)が生じるため、この関数は“クロス”コンパイリン
グおよび“クロス”リンキングと言われる。
【0045】ダイナミッククロスコンパイラー80はユ
ーザもしくはユーザエージェント(ブラウザ等)がオン
デマンドでロードした予めリンクされていないコードを
受け取る。コードは(1)コードの“タグ”部を識別す
るか、もしくは(2)DSP16で実行する適性につい
て非タグコードセグメントを解析するために処理され
る。ソースコードのタグ部はその中に埋め込まれた“<
start DSP code>”および“<end
DSP code>”等の所定のマーカによりDSPへ
ターゲット可能なソースを描くことができる。タグ部が
直接もしくは解析により識別される場合には、DSP1
6の現在の処理状態に基づいてクロスコンパイルするか
どうかが判断される。コンパイルすると判断されれば、
コードのその部分は既知のコンパイリング方法を使用し
て非リンク、実行可能ターゲットプロセッサコードを出
力するソフトウェアをコンパイリングすることにより処
理される。コンパイルしないという判断は、例えば、D
SP16により他のタスクが実行されているため、DS
Pが利用できる容量(一般的に、利用可能MIPS−百
万命令/秒といわれる)が不十分であるか、利用可能な
メモリが不十分である場合になされる。コンパイルされ
たコードはダイナミッククロスリンカー82へ通してD
SP16において即座に使用するか、あるいはDSPラ
イブラリ58内に保存することができる。
【0046】ダイナミッククロスリンカー82は予め非
リンクコードを受け取り、それは(1)ホストプロセッ
サ12と関連してスタティックに格納されるか、(2)
ネットワークコネクション(インターネット等のグロー
バルネットワークを含む)を介してホストプロセッサ1
2へダイナミックにダウンロードされるか、あるいは
(3)ダイナミッククロスコンパイラー80によりダイ
ナミックに発生される。ダイナミッククロスリンカー8
2はランタイムに決定されるDSP16のメモリ開始ア
ドレスの入力コードをリンクする。メモリ開始アドレス
はホストプロセッサ12もしくはDSP16により格納
され管理されるメモリマップもしくはメモリテーブルか
ら決定することができる。ダイナミッククロスリンカー
82はコード内の基準メモリ位置をDSP内の実際のメ
モリ位置へ変換する。これらのメモリ位置は、例えば、
コード内の分岐アドレスもしくはコード内のデータ位置
参照(reference)を含むことができる。
【0047】実施例では、ポータブルコードはリンクさ
れているかどうかを含めたコードに関する全情報を含む
COFF(共通オブジェクトファイルフォーマット)内
にある。リンクされていなければ、コードをリンクする
のに変えなければならないアドレスをシンボルテーブル
が定義する。
【0048】前記した変換プロセスには従来技術に較べ
ていくつかの著しい利点がある。第1に、ダイナミック
クロスコンパイラー80はダウンロードされたポータブ
ルコードをどこで実行するかについてランタイム判断を
行うことができる。例えば、多数のターゲットプロセッ
サ(2台のDSP16等)を有するシステムでは、ダイ
ナミッククロスコンパイラー80は利用可能な資源もし
くは能力に基づいてポータブルコードを任意の1台のタ
ーゲットプロセッサへコンパイルすることができる。ダ
イナミッククロスリンカー82はリロケータブルコード
をサポートしないターゲットプロセッサでランするよう
コードをリンクする。コードはランタイムにリンクされ
るため、DSP16(もしくは、他のターゲットプロセ
ッサ)内のメモリ位置は保存する必要がなく、デバイス
内の全ての計算資源を最適効率で使用することができ
る。コンパイリングはプラットホーム10のアーキテク
チャの知識により達成されるため、一方もしくは両方の
プロセッサのインテクジェントキャッシュアーキテクチ
ュア等の特定プロセッサおよびプラットホーム向けの特
徴をコンパイリングに利用することができる。
【0049】したがって、DSP16はその処理能力を
完全に使用するようにダイナミックに変えられるさまざ
まな機能を有することができる。例えば、ユーザは音声
認識を含むユーザインターフェイスをロードしたいこと
がある。その時、ホストプロセッサはソフトウェアをダ
ウンロードしてDSP16で実行する音声認識ソフトウ
ェアをダイナミックにクロスコンパイルおよびクロスリ
ンクする。あるいは、DSP16の現在状態に基づいて
DSPライブラリ58内の予めコンパイルされたソフト
ウェアをダイナミックにクロスリンクして実行すること
ができる。
【0050】ホストデバイスドライバ ホストデバイスドライバはDSP16からホスト12へ
の通信を処理する。ドライバ機能はホスト−DSP通信
プロトコルに明記された通信要求を取り入れて利用可能
なハードウァエインターフェイスを介した情報の伝送を
処理する。デバイスドライバはRTOS依存かつ通信ハ
ードウェア依存である。
【0051】ホスト−DSP通信プロトコル(ホスト−
DSPインターフェイスレイヤ) ホスト−DSP通信プロトコルはホスト12とDSP1
6間のコマンドおよびデータの通信を支配する。通信は
いくつかのパス、メッセージ、データチャネル、および
ストリーム、からなる。メッセージは初期化パラメータ
およびコマンドをタスクへ送るのに使用される。データ
チャネルはタスク間およびDSP16とホスト12間で
大量のデータをデータフレームの形で運ぶ。ストリーム
はタスク間およびDSP16とホスト12間でストリー
ムとされたデータを通すのに使用される。
【0052】メッセージ 各タスクはメッセージを処理するメッセージハンドラー
へのエントリーポイントを有する。メッセージはユーザ
定義であり、タスク機能のための初期化パラメータおよ
びタスクをコントロールするコマンドを含む。タスクは
その生成時に指定されるコールバックを介してホスト1
2へメッセージを送る。タスクメッセージハンドラーの
プロトタイプおよびホストコールバックのプロトタイプ
をここに示す。
【数44】
【0053】replyrefパラメータは送信者への
返答を返送するのに使用されるインプルメンテーション
依存基準値である。各Send Messageコール
について、受信者はreplyrefパラメータを使用
してReply Messageを呼び出さなければな
らない。実際のメッセージは次のようである。
【数45】 マルチワードデータは最下位語が最初に送られる。
【0054】Send Message関数内の0のT
askIDはシステムレベルメッセージを示す。システ
ムレベルメッセージはDSP−API関数を実施するの
に使用される。
【0055】メッセージ関数を下記に示す。
【数46】 この関数はTaskIDにより指定されるタスクへユー
ザ定義メッセージを送る。MsgIDはメッセージを定
義し、msgbufは実際のメッセージデータを含んで
いる。メッセージサイズはcountT DSP Wo
rdsである。メッセージへの返答はreplybuf
パラメータ内に含まれ、それは呼び出し者により提供さ
れるサイズreplybufsizeのバッファーを指
示する。それは特定のメッセージに対する返答を処理す
るのに十分なサイズでなければならない。errcod
eパラメータは下記の考えられる結果を含む。
【数47】
【0056】
【数48】 この関数はメッセージへ返答するのに使用される。re
plyrefはオリジナルメッセージの送信者へ返答を
返送するのに使用される参照(reference)で
あり、特定インプルメンテーション向けである。返答は
bufパラメータ内に含まれそのサイズはT DSP
Wordsである。errcodeパラメータは下記の
考えられる結果を含む。
【数49】
【0057】チャネル チャネルの概念は1つのプロセッサから別のプロセッサ
へ、あるいは同じプロセッサ上のタスク間でフレームベ
ースデータを送信するのに使用される。生成されると、
チャネルはデータを含むように指定された数およびサイ
ズのフレームを割り当てる。最初に、チャネルは空フレ
ームのリストを含んでいる。データを生じるタスクはデ
ータを書き込む空フレームを要求し、書き込まれるとフ
レームはチャネルへ戻される。データを消費するタスク
はチャネルから完全なフレームを要求し、空になるとフ
レームはチャネルへ戻される。フレームバッファーのこ
の要求および戻しにより、最小限のコピーでデータを動
かすことができる。
【0058】各タスクは指定された入力および出力チャ
ネルを有する。チャネルが生成されると、それは1つの
タスクへの入力、およびもう1つのタスクへの出力とし
て指示される。チャネルのIDにはデバイスIDが含ま
れ、チャネルはプロセッサ間でデータを通すことができ
る。ホスト−DSPインターフェイスを横切るチャネル
データフローは下記のようである。
【数50】 チャネル関数を下記に示す。
【0059】
【数51】 この関数はデータフレーム−ベース通信チャネルを生成
する。それはカウントおよびサイズが、それぞれ、nu
mframesおよびframesize内に指定され
ている1組のフレームバッファーのコントロールを維持
するチャネルコントロール構造を生成する。生成される
と、チャネルはデータフレームを割り当てそれらをその
空フレームリストへ加える。ChannelIDは新し
いチャネルのIDを戻す。DevIDが呼出プロセッサ
のものでなければ、呼出プロセッサとDevIDプロセ
ッサの両方でチャネルコントロール構造が生成され、通
信インターフェイスを横切るデータフローがコントロー
ルされる。errcodeパラメータは下記の考えられ
る結果を含む。
【数52】
【0060】
【数53】 この関数はChannelIDにより指定される既存の
チャネルを削除する。errcodeパラメータは下記
の考えられる結果を含む。
【数54】
【0061】
【数55】 この関数は指定されたローカンチャネルIDから空フレ
ームを要求する。ChnがNULLであれば、タスクの
出力チャネルが使用される。戻る時に、bufptrは
フレームバッファーへのポインターを含んでいる。Wa
itFlagがTRUEであり、かつ利用可能なフレー
ムバッファーがなければ、呼出者はバッファーを利用で
きるようになるまで保留される。WaitFlagがF
ALSEであれば、機能はとにかく戻る。errcod
eパラメータは下記の考えられる結果を含む。
【数56】
【0062】
【数57】 一度タスクがフレームバッファーを満たすと、この関数
を使ってチャネルへ戻される。bufptrにより指示
されるバッファーは指定されたチャネルIDへ戻され
る。ChnがNULLであれば、タスクの出力チャネル
が使用される。errcodeパラメータは下記の考え
られる結果を含む。
【数58】
【0063】
【数59】 この関数は指定されたローカンチャネルIDからデータ
の全フレームを要求する。ChnがNULLであれば、
タスクの入力チャネルが使用される。戻る時に、buf
ptrパラメータはフレームバッファーへのポインター
を含んでいる。WaitFlagがTRUEであり、か
つ利用可能な完全なフレームバッファーがなければ、呼
び出し者はバッファーが利用できるようになるまで保留
される。WaitFlagがFALSEであれば、関数
はとにかく戻る。errcodeパラメータは下記の考
えられる結果を含む。
【数60】
【0064】
【数61】 タスクはフレームバッファーからのデータを使用した
ら、この関数を使用してバッファーをチャネルへ戻さな
ければならない。bufptrにより指示されるバッフ
ァーは指定されたチャネルIDへ戻される。ChnがN
ULLであれば、タスクの入力チャネルが使用される。
errcodeパラメータは下記の考えられる結果を含
む。
【数62】
【0065】
【数63】 この関数はタスクの入力チャネルを指定されたチャネル
IDに設定する。errcodeパラメータは下記の考
えられる結果を含む。
【数64】
【0066】
【数65】 この関数はタスクの出力チャネルを指定されたチャネル
IDに設定する。errcodeパラメータは下記の考
えられる結果を含む。
【数66】
【0067】ストリーム ストリームはフレームに押し入ることはできないが、タ
スクに対して連続的に流出入するデータのために使用さ
れる。ストリームはヘッドおよび流出入時にデータを追
跡するテールポインターを付随するサーキュラーバッフ
ァー(FIFO)からなっている。各タスクは指定され
た入力および出力ストリームを有することができる。ホ
スト−DSPインターフェイスを横切るストリームデー
タフローは次のようである。
【数67】 ストリーム関数を下記に示す。
【0068】
【数68】 この関数はFIFOベース通信ストリームを生成する。
それはサイズFIFOsizeのFIFOのコントロー
ルを維持するストリームコントロール構造を生成する。
生成されると、ストリームは空FIFOを割り当て、ス
トリームに流出入するデータフローを処理するようにヘ
ッドおよびテールポインターを初期化する。Strea
mIDは新しいストリームのIDを戻す。DevIDが
呼出プロセッサのものでなければ、呼出プロセッサおよ
びDevIDプロセッサの両方にストリームコントロー
ル構造が生成され、通信インターフェイスを横切って流
れるデータをコントロールする。errcodeパラメ
ータは下記の考えられる結果を含む。
【数69】
【0069】
【数70】 この関数はStreamIDにより指定される既存のス
トリームを削除する。errcodeパラメータは下記
の考えられる結果を含む。
【数71】
【0070】
【数72】 この関数は現在StrmIDにより指定されるストリー
ムFIFO内にあるT DSP Wordsのカウントを
要求する。countパラメータは戻った時に数を含ん
でいる。errcodeパラメータは下記の考えられる
結果を含む。
【数73】
【0071】
【数74】 この関数はStrmにより指定されたストリームへT
SP Wordsのcount数を書き込む。Strm
がNULLであれば、タスクの出力ストリームが使用さ
れる。データはbufptrパラメータにより指示され
る。戻った時に、counterwrittenは実際
に書き込まれるT DSP Words数を含んでい
る。errcodeパラメータは下記の考えられる結果
を含む。
【数75】
【0072】
【数76】 この関数はStrmにより指定されたストリームからデ
ータを読み出す。StrmがNULLであれば、タスク
の入力ストリームが使用される。データはbufptr
により指定されたバッファー内に格納される。maxc
ountまでT DSP Wordsがストリームから読
み出される。countereadパラメータは読み出
したデータの実際のカウントを含んでいる。errco
deパラメータは下記の考えられる結果を含む。
【数77】
【0073】
【数78】 この関数は指定されたストリームIDへタスクの入力ス
トリームを設定する。errcodeパラメータは下記
の考えられる結果を含む。
【数79】
【0074】
【数80】 この関数は指定されたストリームIDへタスクの出力ス
トリームを設定する。errcodeパラメータは下記
の考えられる結果を含む。
【数81】
【0075】
【表3】
【0076】システムメッセージ これらの表はデバイス間を通過するメッセージを定義す
る(すなわち、ホストからDSP16へ)。メッセージ
をデバイスへ実際にルーティングするのに使用されるた
め、対応する関数呼出し内にパラメータとして存在する
デバイスIDはメッセージには内蔵されない。同様に、
関数呼出しの上半部としてデバイスIDを含むタスクI
Dはメッセージ内にデバイスIDを含まず、DSPのロ
ードタスクID部しか含んでいない。
【0077】
【表4】
【0078】
【表5】
【0079】
【表6】
【0080】ダウンローディングネーティブコード 図4−図6はネーティブコードをターゲットプロセッサ
(すなわち、ホスト12もしくはDSP16)へ確実か
つ効率的にダウンローディングする実施例を示す。コー
ドをダウンローディングするこの実施例は、例えば、イ
ンターネット、もしくは他のグローバルネットワーク、
ローカルもしくはワイドエリアネットワーク、もしくは
PCカードやスマートカード等の周辺装置からコードを
ダウンローディングするのに使用できる。
【0081】図4にJAVA Bean90の実施例を
示し、Bean90はネーティブコード92のラッパー
(wrapper)として作用する。Beanはさらに
Code Type属性94a、Code Size属
性94bおよびMISP要求属性94cとして表記され
ているいくつかの属性94を含んでいる。Bean90
はLoad Codeアクション96a、Load P
arametersアクション96bおよびExwcu
te Parameter96cを含むいくつかのアク
ション96を有している。
【0082】動作において、Load Codeアクシ
ョン96aは外部ネーティブコード(ターゲットプロセ
ッサにとってネーティブ)をBean内へロードするの
に使用される。JAVA Beansはパーシステンス
(persistence)を有するため、Bean9
0はネーティブコード92および属性94を含むその内
部状態を格納することができる。Load Param
etersアクション96bはネーティブコード92か
ら(例えば、前記したCOFFファイルフォーマットを
使用して)パラメータを検索し属性94a−cとして格
納する。Executeアクション96cはDSP16
内にインストールされたタスクを実行する。
【0083】Bean90を使用してコードをターゲッ
トプロセッサへダウンロードする様子を図5に示す。こ
の例では、ターゲットプロセッサはDSP16(もしく
は、多数のDSP16の中の1つ)であるものとする
が、それはネーティブコードをホストプロセッサ12へ
ダウンロードするのにも使用できる。さらに、所望のB
ean90はLANサーバもしくはインターネットサー
バ等のネットワークサーバ内に常駐しているものとする
が、Beanはスマートカード等のプラットホーム10
と通信する任意のデバイス内に常駐することができる。
ワイヤレスデータプラットホーム10については、ネッ
トワークサーバ100への接続はしばしばワイヤレスで
ある。
【0084】図5において、プラットホーム10はネッ
トワークサーバ100に接続されている。図2に詳細に
示すホストプロセッサ12はJAVAバーチャルマシン
44を介して1つ以上のJAVAアプレット40を実行
することができる。新しいコードをダウンロードするた
めに、ホスト12はネットワークサーバ100からBe
an90を含むアプレットをロードするか、もしくはア
プレットを含まないBeanをサーバ100からダウン
ロードすることができる。ラッパーBean90が検索
されると、ネーティブコードのサイズ、コードタイプ
(コードはどのプロセッサ用か)および必要なMIPS
を質問することができる。所期のプロセッサがコード9
2を実行するのに十分な資源を有する場合には、コード
92は所期のプロセッサ、図5に示すアーキテクチュア
内のホストプロセッサ12もしくはDSP16、で実行
するようにインストールすることができる。典型的に
は、ネーティブコード92は非リンク、コンパイルされ
たコードである。したがって、DSP−API50のク
ロスリンカー82はコードを利用可能なメモリ位置へリ
ンクする。Beanは2進ネーティブコード92をダイ
ナミッククロスリンカー82へ通し、それがコードをイ
ンストールして実行する。
【0085】典型的に、ネーティブコードのダウンロー
ドが生じるのは、その中にDSP関数が所望されるアプ
レットをユーザが実行している場合である。最初に、ア
プレットは所望のコードがタスク60としてDSP内に
インストールされている、またはDSPライブラリ58
内で利用可能であるかをチェックする。もしそうならタ
スクはダウンロードなしで実行できる。
【0086】タスクがDSP16もしくはDSPライブ
ラリ58内に格納されていなければ、オブジェクト(こ
こでは、“DSPLoader”オブジェクトと言う)
を生成してBean90をロードすることができる。D
SPLoaderクラスがホスト12上でローカルであ
れば、JAVAはBeanもローカルに利用可能である
かをチェックする。最初の場合、ローカルに格納された
コードを有するBeanがあることがある。そうであれ
ば、BeanからのコードはDSP(もしくは、Cod
e Typeにより指定されるいずれかのプロセッサ)
へインストールされる。コードのないBeanがローカ
ルに格納される場合には、Beanは適切なサーバから
コードを検索することができる。
【0087】一方、DSPLoaderオブジェクトが
ローカルではなければ、JAVAはアプレットを書き込
んだサーバからBean90をロードする。次に、Be
anからのコードは前記したようにインストールされ
る。
【0088】JAVA Beanの使用に関連してネー
ティブコードのダウンローディングが説明されるが、A
ctiveXアプレット等の他の言語内にコードを包み
込んで達成することもできる。
【0089】JAVA Bean(もしくは、他のアプ
レット)をネーティブコードのラッパーとして使用する
ことは著しい利点がある。最初に、複数のプロセッサの
中の1つへコードをローディングするのに単純な標準的
方法でよい。Beanが生成され、コードがBeanへ
ロードされて適切なプロセッサとリンクされる。Bea
n内にコードをラッピングすることなく、プロセスは数
百のステップをとることができる。第2に、多数のネー
ティブコード片を1つのアプレットにより結合し、1つ
のアプレットを使用する多数の個別のルーチンから複雑
なアプリケーションを発生してルーチンを所望により結
合することができる。第3に、言語のセキュリティ機能
を利用することができ、Bean90内のJAVAコー
ドだけでなくネーティブコード92も保護される。Ac
tiveX等の他の言語もセキュリティ機能を有する。
【0090】セキュリティ 2つの最重要セキュリティ機能はデジタル署名および暗
号化である。JAVABeanもしくはActiveX
アプレットはコードソースにより署名することができ、
Beanもしくはアプレットがダウンロードされると、
署名は信頼できるソースのリストを有する受信アプリケ
ーションにより照合される。Beanもしくはアプレッ
トに信頼できるソースの署名があれば、標準技術を使用
して解読することができる。したがって、ネーティブコ
ードは伝送中にBeanもしくはアプレットのコードと
共に暗号化され、コードの非認可修正が防止される。ネ
ーティブコードは安全であり信頼できるソースから来る
ため、属性も正確であるものと信頼することができる。
【0091】図6はJAVA Beanを使用するプロ
セッサのネーティブコードダウンローディングプロセス
を説明するフロー図であり、ネーティブコードは同様な
技術を使用して異なる言語のアプレットで包むことがで
きることがお判りであろう。ステップ110において、
暗号化されたデジタル署名Bean90はJAVAバー
チャルマシンを動かすデバイスへダウンロードされる。
ステップ112において、署名が照合される。信頼でき
るソースとして表記されたソースからのものでなけれ
ば、ステップ114において例外処理がイネーブル(e
nable)される。Beanが信頼できるソースから
来るものである場合、ユーザがそのソースで不自由でな
ければ、例外処理関数はユーザにBeanを受け入れる
機会を与えることができる。署名が無効であれば、例外
処理はBean90を削除してユーザへ適切なエラーメ
ッセージを送ることができる。
【0092】署名が有効で信頼できるソースから来るも
のであれば、ステップ116においてBeanが解読さ
れる。このステップではJAVAコードとBean内の
ネーティブコードの両方が解読される。ステップ118
において、Bean90から属性が検索されステップ1
20において、アプレットは適切なプロセッサがコード
を実行するのに十分な資源を有するかどうかを確認す
る。十分な資源を有しない場合には、例外処理ステップ
114はネーティブコードのインストールを拒絶するこ
とができ、あるいは資源を解放するステップをとること
ができる。十分な資源がある場合には、ステップ122
においてコードはクロスリンカーを使用してリンクされ
所望のプロセッサにインストールされる。ステップ12
4において、ネーティブコードが実行される。
【0093】Bean90のサンプルJAVAスクリプ
トを下記に示す。
【表7】
【表8】
【表9】
【表10】
【0094】前記したスクリプトにおいて、Nativ
eBean()ルーチンはネーティブコードを保持する
Bean90を生成する。loadCode()ルーチ
ンはサーバからネーティブコードを得る。getFun
ctionalName()およびgetCodeBa
se()ルーチンは属性を検索する。installC
ode()ルーチンはクロスリンカーを呼び出してネー
ティブコードをDSPにリンクしリンクしたコードをロ
ードする。loadParameters()ルーチン
はネーティブコードを調べてその属性を確認するようB
eanを命令する。getCodesize()および
getCodetype()ルーチンは属性を要求する
アプレットへ転送する。
【0095】本発明の詳細説明はある代表的な実施例に
向けられたが、当業者ならば別の実施例だけでなくこれ
らの実施例のさまざまな修正が考えられるであろう。請
求の範囲に入る修正および別の実施例は全て本発明に含
まれるものとする。
【0096】以上の説明に関して更に以下の項を開示す
る。 (1)移動電子装置であって、ネィティブコードを実行
するコプロセッサと、ホストプロセッサシステムおよび
プロセッサ独立コードに対応するネィティブコードを実
行するように作動するホストプロセッサシステムであっ
て、デジタル信号コプロセッサにより実施されるタスク
をダイナミックに変化させるように作動するホストプロ
セッサシステムと、前記ホストプロセッサシステムと前
記コプロセッサ間の通信回路と、を含む移動電子装置。
【0097】(2)第1項記載の移動電子装置であっ
て、前記コプロセッサはデジタル信号処理装置である、
移動電子装置。
【0098】(3)前記いずれか1項記載の移動電子装
置であって、前記プロセッサ独立コードはJAVAを含
む、移動電子装置。
【0099】(4)前記いずれか1項記載の移動電子装
置であって、前記ホストプロセッサシステムは前記コプ
ロセッサのネーティブコードを発生することができる、
移動電子装置。
【0100】(5)前記いずれか1項記載の移動電子装
置であって、前記ホストプロセッサシステムはプロセッ
サ独立ソースコードをコンパイルすることにより前記コ
プロセッサのネーティブコードを発生することができ
る、移動電子装置。
【0101】(6)前記いずれか1項記載の移動電子装
置であって、前記ホストプロセッサシステムはソースコ
ードの識別されたブロックをコンパイルする、移動電子
装置。
【0102】(7)前記いずれか1項記載の移動電子装
置であって、前記ホストプロセッサシステムはコプロセ
ッサで実行できるソースコードのブロックを識別してコ
ードの前記ブロックをコンパイルする、移動電子装置。
【0103】(8)前記いずれか1項記載の移動電子装
置であって、さらに前記コプロセッサへダウンロードし
て実行することができるルーチンのライブラリを格納す
るメモリを含む、移動電子装置。
【0104】(9)前記いずれか1項記載の移動電子装
置であって、さらにハードウェア言語アクセラレータを
含む、移動電子装置。
【0105】(10)前記いずれか1項記載の移動電子
装置であって、前記ハードウェアアクセラレータはJA
VAアクセラレータを含む、移動電子装置。
【0106】(11)第1項記載の移動電子装置であっ
て、さらにネットワークからデータを受信するネットワ
ークインターフェイス回路を含む、移動電子装置。
【0107】(12)移動電子装置の制御方法であっ
て、コプロセッサにおいてネィティブコードを実行する
ステップと、ホストプロセッサシステムにおいてネィテ
ィブコードおよびプロセッサ独立コードを実行するステ
ップと、デジタル信号コプロセッサにより実施されるタ
スクを前記ホストプロセッサシステムによりダイナミッ
クに変えるステップと、前記ホストプロセッサシステム
と前記コプロセッサ間で通信を行うステップと、を含む
方法。
【0108】(13)第12項記載の方法であって、コ
プロセッサにおいてネィティブコードを実行する前記ス
テップは、デジタル信号処理装置においてネーティブコ
ードを実行するステップを含む、方法。
【0109】(14)第12項、第13項記載の方法で
あって、さらに前記一般的処理システムにおいて前記コ
プロセッサのネィティブコードを発生するステップを含
む、方法。
【0110】(15)第14項記載の方法であって、ネ
ィティブコードを発生する前記ステップはプロセッサ独
立ソースコードをコンパイリングしてネーティブコード
を発生するステップを含む、方法。
【0111】(16)第15項記載の方法であって、さ
らに前記ソースコードのブロックを識別して前記コプロ
セッサで実行するようコンパイルするステップを含む、
方法。
【0112】(17)第12項−第16項記載の方法で
あって、さらに前記ホストプロセッサシステムから前記
コプロセッサへダウンロードして実行するルーチンのラ
イブラリを格納するステップを含む、方法。
【0113】(18)移動電子装置であって、複数個の
コプロセッサと、ホストプロセッサシステムであって、
ソースコードを実行し、前記1個以上のコプロセッサで
実行されるソースコードの1つ以上のセクションを識別
し、ソースコードの識別した各セクションについて、対
応するコプロセッサを決定し、ソースコードの識別した
各セクションについて、コードの前記識別したセクショ
ンを前記対応するコプロセッサに関連するネーティブコ
ードへコンパイルして前記対応するコプロセッサへイン
ストールする、ように作動する前記ホストプロセッサシ
ステムと、前記ホストプロセッサシステムと前記コプロ
セッサ間の通信回路と、を含む、移動電子装置。
【0114】(19)移動電子装置の制御方法であっ
て、ホストプロセッサシステムでソースコードを実行す
るステップと、1個以上のコプロセッサで実行されるソ
ースコードの1つ以上のセクションを識別するステップ
と、ソースコードの識別した各セクションについて、対
応するコプロセッサを決定するステップと、ソースコー
ドの識別した各セクションについて、コードの前記識別
したセクションを前記対応するコプロセッサに関連する
ネーティブコードへコンパイリングして前記ネーティブ
コードを前記対応するコプロセッサへインストールする
ステップと、前記ホストプロセッサシステムと前記コプ
ロセッサ間の通信を行うステップと、を含む、方法。
【0115】(20)複数個のプロセッサ(12,1
6)を含むワイヤレスデータプラットホーム(10)。
タスクが実施される時に情報を通信できるようにプロセ
ッサ間に通信チャネルが開設される。1個のプロセッサ
で実施されるダイナミッククロスコンパイラー(80)
がコードを別のプロセッサのためのネーティブ処理コー
ドへコンパイルする。ダイナミッククロスリンカー(8
2)が他のプロセッサのためにコンパイルされたコード
をリンクする。ネーティブコードはそれを包むJAVA
Bean(90)(もしくは他の言語タイプ)を使用
してプラットホームへダウンロードすることもできる。
JAVA Beanはセキュリティのために暗号化しデ
ジタル署名することができる。
【0116】関連出願の相互参照 本出願は同じ日付で出願され本開示の一部としてここに
組み入れられている、ウースリー等の米国特許出願第0
8/995,600号“Mobile Communi
cation System with Cross
Compiler and Cross Linke
r”(アットニードケット第26453号)、ブリュー
ワーの米国特許出願第08/995,597号“Met
hod and Apparatus for Pro
viding Downloadable Funct
ionality to an Embedded C
oprocessor”(アットニードケット第264
40号)、およびブリューワーの米国特許出願第08/
995,603号“Method and Appar
atus for Extending Securi
ty Model to Native Code”
(アットニードケット第26439号)に関連してい
る。
【図面の簡単な説明】
【図1】一般的なワイヤレスデータ処理に特に適したプ
ラットホームアーキテクチュアのブロック図。
【図2】図1のプラットホームの機能ブロック図。
【図3】ダイナミッククロスコンパイリングおよびダイ
ナミッククロスリンキング機能の機能ブロック図。
【図4】デバイスへダウンロードするJAVA Bea
nラッパー内に包まれたプロセッサで実行するネーティ
ブコードの実施例。
【図5】遠隔サーバ上に配置されたJAVA Bean
からデバイス上のプロセッサへ包まれたネーティブコー
ドを転送する操作を示す図。
【図6】図5の操作に関連するセキュリティ機能を記述
するフロー図。
【符号の説明】
10 ワイヤレスデータプラットホーム 12 汎用ホストプロセッサ 14 バス構造 16 DPS(デジタル信号処理装置) 18 トラフィックコントローラ 20 ハードウェアアクセラレータ回路 22 ビデオおよびLCDコントローラ 24 LCDもしくはビデオディスプレイ 26 主記憶装置 28 I/Oコントローラ 30 インターフェイス 32 RAM/ROM 34 スマートカード 36 キーボード 38 マウス 40 シリアルポート 42 フラッシュメモリカード 44 DRAMカード 46 DAC(デジタル/アナログコンバータ) 48 ネットワークインターフェイス 50 DSP API(アプリケーションプログラムイ
ンターフェイス) 52 ホストDSPインターフェイスレイヤ 54 DSPデバイスドライバ 56 ホストRTOS(リアルタイムオペレーティング
システム) 58 DSPライブラリ 60 タスク 62 ホスト−DSPインターフェイスレイヤ 64 DRTOS 66 ホストデバイスドライバ 70 ホスト−DSPインターフェイス 80 ダイナミッククロスコンパイラー 82 ダイナミッククロスリンカー 90 JAVA Bean 92 ネーティブコード 94 属性 96 アクション 100 ネットワークサーバ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 マシュー エイ.ウールゼイ アメリカ合衆国 テキサス州プラノ,ミド ルコーブ 608 (72)発明者 ジエラール ショベル フランス国 アンティーブ,シュマン ド ラ シュケット,レ ベルジェル ド バル コンスタンス

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 移動電子装置であって、 ネィティブコードを実行するコプロセッサと、 ホストプロセッサシステムおよびプロセッサ独立コード
    に対応するネィティブコードを実行するように作動する
    ホストプロセッサシステムであって、デジタル信号コプ
    ロセッサにより実施されるタスクをダイナミックに変化
    させるように作動するホストプロセッサシステムと、 前記ホストプロセッサシステムと前記コプロセッサ間の
    通信回路と、 を含む移動電子装置。
  2. 【請求項2】 移動電子装置の制御方法であって、 コプロセッサにおいてネィティブコードを実行するステ
    ップと、 ホストプロセサシステムにおいてネィティブコードおよ
    びプロセッサ独立コードを実行するステップと、 デジタル信号コプロセッサにより実施されるタスクを前
    記ホストプロセサシステムによりダイナミックに変える
    ステップと、 前記ホストプロセッサシステムと前記コプロセッサ間で
    通信を行うステップと、 を含む方法。
JP10365666A 1997-12-22 1998-12-22 移動電子装置および制御方法 Pending JPH11312152A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US995606 1997-12-22
US08/995,606 US8489860B1 (en) 1997-12-22 1997-12-22 Mobile electronic device having a host processor system capable of dynamically canging tasks performed by a coprocessor in the device

Publications (1)

Publication Number Publication Date
JPH11312152A true JPH11312152A (ja) 1999-11-09

Family

ID=25541998

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10365666A Pending JPH11312152A (ja) 1997-12-22 1998-12-22 移動電子装置および制御方法

Country Status (5)

Country Link
US (1) US8489860B1 (ja)
EP (1) EP0930793B1 (ja)
JP (1) JPH11312152A (ja)
CN (1) CN1249643A (ja)
DE (1) DE69839798D1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6820252B2 (en) 2000-12-04 2004-11-16 Renesas Technology Corp. Selective conversion to native code using hardware translator, software translator, and software interpreter
JP2009037599A (ja) * 2002-08-09 2009-02-19 Marvell World Trade Ltd アライメントまたはブロードキャスト命令を含むマルチメディア・コプロセッサの制御メカニズム
JP4581316B2 (ja) * 1999-11-17 2010-11-17 ソニー株式会社 ディジタルテレビジョン受信機およびディジタルテレビジョン受信機における拡張機能提供方法
US7844991B1 (en) 1999-11-17 2010-11-30 Sony Corporation Method and apparatus for digital signal processing

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6418310B1 (en) * 1999-08-05 2002-07-09 Ericsson Inc. Wireless subscriber terminal using java control code
GB2353918B (en) * 1999-09-03 2003-12-31 Ericsson Telefon Ab L M Access rights in a mobile communications system
EP2306260B1 (en) * 2000-09-21 2014-02-26 BlackBerry Limited Software code signing system and method
US6976217B1 (en) 2000-10-13 2005-12-13 Palmsource, Inc. Method and apparatus for integrating phone and PDA user interface on a single processor
JP2002185579A (ja) * 2000-12-08 2002-06-28 Nec Corp 携帯電話端末のアプリケーションバックアップ方法
US8340289B2 (en) 2005-09-29 2012-12-25 Research In Motion Limited System and method for providing an indication of randomness quality of random number data generated by a random data service
US7797545B2 (en) 2005-09-29 2010-09-14 Research In Motion Limited System and method for registering entities for code signing services
KR100803290B1 (ko) 2006-03-23 2008-02-13 한국과학기술원 무선 센서 네트워크 환경에서 프로그램을 변경하기 위한확장 가능한 가상 머신 및 이를 이용한 리프로그래밍 방법
US9503428B2 (en) 2014-10-10 2016-11-22 Zanguli Llc Secure device and proxy for secure operation of a host data processing system
US10983842B2 (en) * 2019-07-08 2021-04-20 Microsoft Technology Licensing, Llc Digital signal processing plug-in implementation
WO2021051418A1 (en) * 2019-09-21 2021-03-25 Huawei Technologies Co., Ltd. Methods and network nodes for reliability measurement

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4727545A (en) * 1986-09-02 1988-02-23 Digital Equipment Corporation Method and apparatus for isolating faults in a digital logic circuit
US5329471A (en) * 1987-06-02 1994-07-12 Texas Instruments Incorporated Emulation devices, systems and methods utilizing state machines
US4862407A (en) * 1987-10-05 1989-08-29 Motorola, Inc. Digital signal processing apparatus
US5287515A (en) * 1988-10-24 1994-02-15 Kabushiki Kaisha Toshiba Cross-software development/maintenance system
US4878002A (en) * 1988-10-27 1989-10-31 Advanced Engineering Systems, Operations & Products, Inc. Multi-axis DSP-based parallel processing servo controller for machine tools and robots
JP2834837B2 (ja) * 1990-03-30 1998-12-14 松下電工株式会社 プログラマブルコントローラ
US5613098A (en) * 1991-03-07 1997-03-18 Digital Equipment Corporation Testing and debugging new Y architecture code on existing X architecture system by using an environment manager to switch between direct X code execution and simulated Y code execution
US5339422A (en) * 1991-03-07 1994-08-16 Digital Equipment Corporation System and method for jacketing cross-domain calls in a multi-code execution and debugging system within a multi-architecture environment
JPH07504054A (ja) * 1992-02-18 1995-04-27 アプル・コンピュータ・インコーポレーテッド コンピュータシステムにおけるコプロセッサのプログラミングモデル
US5930295A (en) * 1996-02-23 1999-07-27 Isley, Jr.; William C. Mobile terminal apparatus including net radio service in a mobile satellite service communication system
TW243568B (en) * 1993-11-16 1995-03-21 At & T Corp Digital signal processor with an embedded viterbi co-processor
US5471612A (en) * 1994-03-03 1995-11-28 Borland International, Inc. Electronic spreadsheet system and methods for compiling a formula stored in a spreadsheet into native machine code for execution by a floating-point unit upon spreadsheet recalculation
US5559548A (en) * 1994-05-20 1996-09-24 Davis; Bruce System and method for generating an information display schedule for an electronic program guide
US6009507A (en) * 1995-06-14 1999-12-28 Avid Technology, Inc. System and method for distributing processing among one or more processors
US5826039A (en) * 1995-12-29 1998-10-20 Lucent Technologies Inc. Universal connection point for resources and communication unrelated to a physical endpoint
US5732074A (en) * 1996-01-16 1998-03-24 Cellport Labs, Inc. Mobile portable wireless communication system
US6075863A (en) * 1996-02-28 2000-06-13 Encanto Networks Intelligent communication device
US5768593A (en) * 1996-03-22 1998-06-16 Connectix Corporation Dynamic cross-compilation system and method
US5953741A (en) * 1996-11-27 1999-09-14 Vlsi Technology, Inc. Stack cache for stack-based processor and method thereof
US5771275A (en) * 1996-12-17 1998-06-23 Telefonaktiebolaget Lm Ericsson Use of ISDN to provide wireless office environment connection to the public land mobile network
FR2760918B1 (fr) * 1997-03-12 1999-05-07 Sagem Terminal de radiocommunication pour le traitement de donnees, de serveurs internet et de messagerie electronique notamment
DE19713965A1 (de) * 1997-04-04 1998-10-08 Deutsche Telekom Ag Netzsteuerbares GSM-Mobilfunkgerät
US6003065A (en) * 1997-04-24 1999-12-14 Sun Microsystems, Inc. Method and system for distributed processing of applications on host and peripheral devices
US6330659B1 (en) * 1997-11-06 2001-12-11 Iready Corporation Hardware accelerator for an object-oriented programming language
US5961586A (en) * 1997-05-14 1999-10-05 Citrix Systems, Inc. System and method for remotely executing an interpretive language application
US5892966A (en) * 1997-06-27 1999-04-06 Sun Microsystems, Inc. Processor complex for executing multimedia functions
US6173438B1 (en) * 1997-08-18 2001-01-09 National Instruments Corporation Embedded graphical programming system
US6078736A (en) * 1997-08-28 2000-06-20 Xilinx, Inc. Method of designing FPGAs for dynamically reconfigurable computing
US5923892A (en) * 1997-10-27 1999-07-13 Levy; Paul S. Host processor and coprocessor arrangement for processing platform-independent code
US6029000A (en) * 1997-12-22 2000-02-22 Texas Instruments Incorporated Mobile communication system with cross compiler and cross linker

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4581316B2 (ja) * 1999-11-17 2010-11-17 ソニー株式会社 ディジタルテレビジョン受信機およびディジタルテレビジョン受信機における拡張機能提供方法
US7844991B1 (en) 1999-11-17 2010-11-30 Sony Corporation Method and apparatus for digital signal processing
US6820252B2 (en) 2000-12-04 2004-11-16 Renesas Technology Corp. Selective conversion to native code using hardware translator, software translator, and software interpreter
JP2009037599A (ja) * 2002-08-09 2009-02-19 Marvell World Trade Ltd アライメントまたはブロードキャスト命令を含むマルチメディア・コプロセッサの制御メカニズム

Also Published As

Publication number Publication date
DE69839798D1 (de) 2008-09-11
EP0930793B1 (en) 2008-07-30
CN1249643A (zh) 2000-04-05
US8489860B1 (en) 2013-07-16
EP0930793A1 (en) 1999-07-21

Similar Documents

Publication Publication Date Title
US6029000A (en) Mobile communication system with cross compiler and cross linker
EP0924611B1 (en) Method and apparatus for a coprocessor
US6219787B1 (en) Method and apparatus for extending security model to native code
US20230024083A1 (en) Method and System for Executing Applications Using Native Code Modules
US6802006B1 (en) System and method of verifying the authenticity of dynamically connectable executable images
KR102332209B1 (ko) 2개의 명령어 세트 아키텍처들에 따라 컴파일링된 애플리케이션 코드의 실행을 위한 시스템 및 방법
US5577250A (en) Programming model for a coprocessor on a computer system
US7203941B2 (en) Associating a native resource with an application
JPH11312152A (ja) 移動電子装置および制御方法
US8505029B1 (en) Virtual machine communication
US7707631B2 (en) Device and method for processing a program code
US20210173665A1 (en) Bootstrapping Profile-Guided Compilation and Verification
JP2000347871A (ja) スタブ/アダプタ自動生成器
US7650504B2 (en) System and method of verifying the authenticity of dynamically connectable executable images
US8214815B2 (en) Reducing the run-time cost of invoking a server page
KR20060047998A (ko) 문서에 문맥 정보를 삽입하는 방법 및 시스템
CA2416304C (en) System and method of verifying the authenticity of dynamically connectable executable images
US7350193B2 (en) Procedure invocation in an integrated computing environment having both compiled and interpreted code segments
CN111984263B (zh) 在第一系统运行第二系统应用的方法、装置、设备及介质
JP2003216434A (ja) 小型情報機器において、ユーザプロファイルデータの活用により、ダウンロードプログラムの最適化を図る方法およびシステム。
JPH11327906A (ja) 動的リンキング及び動的ロ―ディングの存在下において動的にディスパッチされたコ―ルの静的結合
KR20000017262A (ko) 프로세싱 태스크 간의 애플리케이션 제어 데이터 플로우
CN114816569A (zh) 动态加载方法及装置
CN117573277A (zh) 微信小程序页面动态化方法、系统、设备及储存介质
CN112445550A (zh) 一种预处理函数的无服务器计算方法及其系统

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051222

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070118

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070130

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070501

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070508

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070530

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070604

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070702

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070705

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20071002