(57)【要約】  少なくとも２つのＣＰＵ（４２，４４）及び共有メモリ資源（４７）を含む移動体端末（１０）において、リアルタイムコードを実行しているＣＰＵは、非リアルタイムコードを実行しているＣＰＵに優先して、メモリ（４７）にアクセスできる。１実施形態において、リアルタイムコード及び非リアルタイムコードは、論理メモリの分離した領域に配置され、ＣＰＵ（４２，４４）と共有メモリ資源（４７）との間のメモリ管理部（４６）は、メモリアクセス要求のアドレスを部分的にデコードし、リアルタイムコードを実行するＣＰＵにより高い優先度でのアクセスを許可する。他の実施形態において、各々のＣＰＵ（４２，４４）は、共有メモリ資源（４７）へのアクセスを要求する際に優先度の信号（４９）を提供し、要求された優先度に従ってアクセスが許可される。
2007517307.tif 000002
【特許請求の範囲】
【請求項１】
移動体端末において、少なくとも２つのＣＰＵの間でメモリ資源へのアクセスを調停する方法であって、
共有メモリ資源（４７）と、少なくとも２つのＣＰＵ（４２，４４）とを含む移動体端末（１０）を提供するステップと、
前記ＣＰＵ（４２，４４）それぞれから、アクセス要求及び優先度の指示情報を受信するステップと、
アクセスを要求している全ＣＰＵの中で、最も優先度の高いアクセス要求を識別するステップと、
前記メモリ資源（４７）を利用可能である場合に、前記最も優先度の高いアクセス要求をしている前記ＣＰＵに前記メモリ資源（４７）へのアクセスを許可するステップと、
前記メモリ資源（４７）へのアクセスが、等しいか或いはより高い優先度を持つ他のＣＰＵに許可されている場合に、前記他のＣＰＵが前記メモリ資源（４７）へのアクセスを完了することを許可するステップと、
前記メモリ資源（４７）へのアクセスが、より低い優先度を持つ他のＣＰＵに許可されている場合に、前記他のＣＰＵによるアクセスを中断し、前記最も優先度の高いアクセス要求をしている前記ＣＰＵに前記メモリ資源（４７）へのアクセスを許可するステップと、
を備えることを特徴とする方法。
【請求項２】
前記優先度の指示情報は、１つのバイナリ信号を含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記バイナリ信号の状態は、関連するＣＰＵ上で動作しているリアルタイム又は非リアルタイムのプロセスを示すことを特徴とする請求項２に記載の方法。
【請求項４】
前記リアルタイムのプロセスは、前記非リアルタイムのプロセスよりも高い優先度を持つことを特徴とする請求項３に記載の方法。
【請求項５】
前記優先度の指示情報は、複数のバイナリ信号を含み、
対応する複数の優先度のレベルが、前記バイナリ信号の信号状態にエンコードされる
ことを特徴とする請求項２に記載の方法。
【請求項６】
前記優先度の指示情報は、前記アクセス要求に関連するアドレスを含むことを特徴とする請求項１に記載の方法。
【請求項７】
アクセスを要求している全ＣＰＵの中で、前記最も優先度の高いアクセス要求を識別する前記ステップは、
前記アドレスを部分的にデコードするステップと、
メモリマップにおいて前記アドレスを含むアドレス範囲（６０）を識別するステップと、
を備えることを特徴とする請求項６に記載の方法。
【請求項８】
前記メモリマップは、リアルタイムのアドレス範囲（６４，６８）と非リアルタイムのアドレス範囲（６２，６６）とを含むことを特徴とする請求項７に記載の方法。
【請求項９】
ソフトウェアのリンク処理の間に、リアルタイムコードを含むソフトウェアモジュールが前記リアルタイムのアドレス範囲（６４，６８）に配置され、非リアルタイムコードを含むソフトウェアモジュールが前記非リアルタイムのアドレス範囲（６２，６６）に配置されることを特徴とする請求項８に記載の方法。
【請求項１０】
前記リアルタイムのアドレス範囲（６４，６８）に位置するアドレスは、前記非リアルタイムのアドレス範囲（６２，６６）に位置するアドレスよりも高い優先度を持つことを特徴とする請求項７に記載の方法。
【請求項１１】
前記メモリ資源（４７）へのアクセスが、等しいか或いはより高い優先度を持つ他のＣＰＵに許可されている場合に、前記他のＣＰＵによるアクセスの完了に続いて、前記最も優先度の高いアクセス要求をしている前記ＣＰＵに前記メモリ資源（４７）へのアクセスを許可するステップをさらに備えることを特徴とする請求項１に記載の方法。
【請求項１２】
前記最も優先度の高いアクセス要求が、アクセスを要求している２以上のＣＰＵによって共有されている場合に、ラウンドロビンの原則に基づいて、前記最も優先度の高いアクセス要求をしている前記２以上のＣＰＵに前記メモリ資源（４７）へのアクセスを順次許可するステップをさらに備えることを特徴とする請求項１に記載の方法。
【請求項１３】
少なくとも２つのＣＰＵ及び共有メモリ資源を含む移動体端末であって、
移動体端末（１０）と、
それぞれがリアルタイム及び非リアルタイムのソフトウェアモジュールを実行するように機能する、前記移動体端末（１０）中の少なくとも２つのＣＰＵ（４２，４４）と、
前記移動体端末（１０）中の共有メモリ資源（４７）と、
前記少なくとも２つのＣＰＵ（４２，４４）の間で前記共有メモリ資源（４７）へのアクセスを調停するように機能する、前記移動体端末（１０）中のメモリ管理部（４６）と、
を備え、
リアルタイムのソフトウェアモジュールを実行しているＣＰＵは非リアルタイムのソフトウェアモジュールを実行しているＣＰＵよりも高いアクセスの優先度を持つ
ことを特徴とする移動体端末。
【請求項１４】
前記ＣＰＵ（４２，４４）は、前記メモリ管理部（４６）へ、前記共有メモリ資源（４７）へのアクセスの要求とアドレスとを送信することを特徴とする請求項１３に記載の移動体端末。
【請求項１５】
前記メモリ管理部（４６）は、アクセスを要求しているそれぞれのＣＰＵについて、当該ＣＰＵがリアルタイムのソフトウェアモジュールを実行しているか或いは非リアルタイムのソフトウェアモジュールを実行しているかを判断するために、前記アドレスを部分的にデコードすることを特徴とする請求項１４に記載の移動体端末。
【請求項１６】
前記メモリ管理部（４６）は、リアルタイムのアドレス範囲（６４，６８）及び非リアルタイムのアドレス範囲（６２，６６）を含むメモリマップを保持し、
前記アクセスを要求しているＣＰＵそれぞれは、前記部分的にデコードされたアドレスが含まれるアドレス範囲に基づいて、リアルタイム又は非リアルタイムのソフトウェアモジュールを実行していることが判断される
ことを特徴とする請求項１５に記載の移動体端末。
【請求項１７】
前記ＣＰＵ（４２，４４）は、前記メモリ管理部（４６）へ、前記共有メモリ資源（４７）へのアクセスの要求と優先度の信号（４９）とを送信することを特徴とする請求項１３に記載の移動体端末。
【請求項１８】
前記優先度の信号（４９）は、関連するＣＰＵがリアルタイムのソフトウェアモジュールを実行しているか或いは非リアルタイムのソフトウェアモジュールを実行しているかを示すことを特徴とする請求項１７に記載の移動体端末。
【請求項１９】
前記優先度の信号（４９）は、複数ビットの信号であり、
優先度のレベルは、前記優先度の信号（４９）のビットパターン中にエンコードされている
ことを特徴とする請求項１７に記載の移動体端末。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願］
本願は、３５Ｕ．Ｓ．Ｃ．セクション１１９（ｅ）に基づき、２００３年１２月３０日に出願された米国仮出願第６０／５３３，１５８号の優先権を主張する。この仮出願は、ここで参照により全体が本願に組み込まれる。
【０００２】
［背景技術］
本願は、概して、無線通信の分野に関し、特に、単一のメモリ資源へのアクセスを共有する複数のＣＰＵを備える移動体端末に関する。
【背景技術】
【０００３】
初期の無線通信システムにおいては、移動体端末は、アナログのエアインタフェース上で、音声の通信信号を送受信していた。デジタル無線通信システムの発展及び展開により、ＤＡＣ及びＡＤＣの機能、エラー訂正、畳み込み符号化などが追加された。より最近の業界標準により、速度（レート）制御、電源制御、モバイルアシステッドハードハンドオフ／モバイルアシステッドソフトハンドオフなどを含む、付加的な制御通信が移動体端末と１以上の基地局との間に追加された。これらの機能及び通信はすべて、リアルタイムソフトウェアによって多くの場合実現される、リアルタイム制御を必要とする。リアルタイムソフトウェアは、プログラム内蔵型マイクロプロセッサやデジタル信号プロセッサ（ここでは併せてＣＰＵ（中央処理装置）と呼ぶ）において動作する。リアルタイムソフトウェアは、（動作が、）タイムクリティカルであり、確定的であり、かつ、遅延（レイテンシ）に対して極めて敏感であるという特徴がある。
【０００４】
現在の無線通信システムは、エアインタフェース上での非音声デジタル通信の能力と移動体端末における増大した計算能力とによって可能にされた、多数のサービス及び機能を提供する。そのようなサービスは、リアルタイムの株価情報やスポーツのスコアなどの、購読ベースのデータブロードキャストサービスや、インターネットブラウジングや、共同コンピューティングや、ゲームや、Ｅメールや、データ／イメージ／ビデオファイルの転送及び表示を含む。移動体端末の機能は、例えばカレンダー、電卓、アドレス帳などの、個人用生産性ソフトウェアを含む。これらのサービス及び機能の多くは、本質的に対話式のものであり、主観的に十分な応答性能で動作するリアルタイムソフトウェアを必要とするという意味では、リアルタイムではない。これらのサービス及び機能は、移動体端末中のＣＰＵ上で動作する非リアルタイムソフトウェアによって実現可能である。非リアルタイムソフトウェアは、（動作が）、比較的柔軟な期限を持つという特徴があり、多くの場合非確定的であり、ある程度の遅延を許容する。
【０００５】
費用効率の良い方法で十分な計算能力を提供するために、移動体端末の設計者の多くは、同時に動作する２以上のＣＰＵを使用する。これら複数のＣＰＵは、多くの場合、コードの開発及び管理を簡略化し、動作の柔軟性をできるだけ大きくし、費用をできるだけ小さくするために、単一のメモリ資源を共有する。複数のＣＰＵが共有メモリにアクセスする度に、何らかの調停（アービトレーション）システムがデータの完全性を保証する必要がある。いくつかのそのような調停スキームが従来技術において知られている。
【０００６】
ロックステップ方式の調停は、複数の同一のＣＰＵで対称的な処理を行う場合に有用である。各々のＣＰＵは、並列計算又は冗長性を目的として、「ロックステップ方式（密集方式）」で同一の命令を実行する。
【０００７】
セマフォ又は「トークンビット」方式の調停は、複数の非同期処理を行うデバイスに有用である。典型的には、特定のメモリ位置が、セマフォの位置として設計される。第１のＣＰＵは、共有メモリ資源にアクセスすると、セマフォビットをセットする。他のＣＰＵによるメモリアクセスは、このセマフォビットの読み取り（リード）に制限され、セマフォビットがセットされている間は、他のＣＰＵはメモリへのアクセスを試みない。第１のＣＰＵによるメモリ操作が完了すると、第１のＣＰＵは、最後のメモリ操作として、セマフォビットをクリアする。続いてセマフォビットを読み取りそれがクリアされていることが分かると、第２のＣＰＵはメモリにアクセスすることができ、最初のメモリ操作として、メモリアクセスの間に他のＣＰＵを「締め出す（ロックアウトする）」ためにセマフォビットをセットする。この調停スキームは、個々のＣＰＵが命令及びデータをキャッシュすることができる場合、及び、共有メモリ資源へのアクセス要求が散発的である場合のうち、少なくとも一方の場合に、良く機能する。
【０００８】
ラウンドロビン方式の調停は、メモリへのアクセスを要求している各々のＣＰＵに順番にメモリ（アクセス）を許可することにより、全ＣＰＵの間で平等にメモリへのアクセスを共有する。いかなるＣＰＵにも、アクセスを要求している他のＣＰＵに優先的してメモリへのアクセスが与えられることはない。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
移動体端末中で１以上のＣＰＵがリアルタイムコードを実行している場合、非リアルタイムソフトウェアを実行しているあらゆるＣＰＵに優先してアクセスがリアルタイムのＣＰＵへ与えられなければならないという要求により、調停の作業は複雑になる。従来技術の調停スキームはいずれも、優先的なアクセスのためのこの要求に取り組んでいない。
【課題を解決するための手段】
【００１０】
本発明は、移動体端末において、少なくとも２つのＣＰＵの間でメモリ資源へのアクセスを調停する方法に関する。少なくとも２つのＣＰＵ及び共有メモリ資源を含む移動体端末において、前記方法は、前記ＣＰＵそれぞれから、アクセス要求及び優先度の指示情報を受信するステップと、アクセスを要求している全ＣＰＵの中で、最も優先度の高いアクセス要求を識別するステップとを備える。前記メモリ資源を利用可能である場合に、前記最も優先度の高いアクセス要求をしているＣＰＵに、前記メモリ資源へのアクセスが許可される。前記メモリ資源へのアクセスが、等しいか或いはより高い優先度を持つ他のＣＰＵに許可されている場合に、前記他のＣＰＵが前記メモリ資源へのアクセスを完了することを許可される。前記メモリ資源へのアクセスが、より低い優先度を持つ他のＣＰＵに許可されている場合に、前記他のＣＰＵによるアクセスが中断され、前記最も優先度の高いアクセス要求をしている前記ＣＰＵに前記メモリ資源へのアクセスが許可される。
【００１１】
前記優先度の指示情報は、単一ビットの信号でもよいし、複数ビットの信号でもよく、アクセスを要求している優先度がそこにエンコードされる。或いは、前記優先度の指示情報は、前記共有メモリへのアクセス要求と共に前記ＣＰＵによって提供されるアドレスでもよく、アクセスを要求しているＣＰＵの間の優先度は、メモリマップによって判断される。
【発明を実施するための最良の形態】
【００１２】
本発明は、移動体端末中の複数のプロセッサの間での、共有メモリ資源へのアクセス制御に関する。ここで使用されているように、「移動体端末」という用語は、以下に列挙するもののうち少なくともいずれかを含み得る。
・マルチラインディスプレイを備えるか或いは備えないセルラ無線電話
・データ処理機能、ファクシミリ機能、及び、データ通信機能を、セルラ無線電話に一体化し得る、パーソナルコミュニケーションシステム（ＰＣＳ）の端末
・無線電話、ポケットベル、インターネット／イントラネットアクセス、ウェブブラウザ、電子手帳、カレンダー、及び、全地球測位システム（ＧＰＳ）受信機のうち、少なくともいずれかを含み得る携帯情報端末（ＰＤＡ）
・従来のラップトップの受信機及びパームトップの受信機のうち少なくとも一方、或いは、無線電話の送受信機を含む他の機器
移動体端末はまた、「パーベイシブコンピューティング」デバイスとも呼ばれ得る。
【００１３】
図１は、典型的な移動体端末１０のブロック図であり、オペレータ（操作者）インタフェース１２と通信用電子装置３０とに関する１実施形態を示す。オペレータインタフェース１２は、移動体端末１０を使用して音声通信を行うユーザにとって必要なデバイス及び機能を備え、併せて、その機能を制御し、移動体端末１０のデータ通信機能を利用するユーザにとって必要な入力部及びディスプレイを備える。通信用電子装置３０は、デジタル又はアナログの音声と、データ通信信号とのうち、少なくとも一方を送受信可能である十分に機能的な無線送受信機を移動体端末１０が形成するのに必要な、回路及びデバイスを備える。具体的には、通信用電子装置３０は、アンテナ３２に接続され、メモリ７０、送信機８０、及び、受信機９０と併せて制御部４０を含み得る。
【００１４】
オペレータインタフェース１２は、ディスプレイ１４、キーパッド１６、インタフェース制御部１８、マイクロフォン２０、スピーカ２２、及び、スピーカ制御部２４を含む。ディスプレイ１４により、ユーザは、ダイヤルされた番号及び呼の状態に関する情報を見ることが可能になる。また、ディスプレイ１４は、ユーザがモード及び機能を選択するためのメニューを表示する。また、一般的に、テキスト、画像、グラフィックス、ビデオなどを含む、多種多様なコンテンツを表示することができる。入力部１６は、オペレータが番号をダイヤルするためのキーパッドを含む。さらに、オペレータがコマンドを入力したり、オプション（選択肢）を選択したり、或いは、移動体端末と対話（相互作用）したりするための、キー、ボタン、及び、１以上のジョイスティック又は１以上のタッチパッド又は１以上のスタイラス入力エリアを含み得る。入力部１６はさらに、ディスプレイ１４がタッチスクリーン機能を備える場合、ディスプレイ１４経由の入力部を備え得る。任意で、カメラ入力部１７は、画像又はビデオの入力部を提供してもよい。この入力部は、移動体端末と一体化して形成されるカメラによるものであってもよいし、外部のカメラを接続するコネクタであってもよい。マイクロフォン２０は、ユーザから音声信号を受信し、音声信号を、送信機８０へ渡されるアナログ信号に変換する。スピーカ２２は、受信機９０及びインタフェース制御部１８のうち少なくとも一方からのアナログ信号を、ユーザが聴くことのできる音声信号に変換する。インタフェース制御部１８は、ディスプレイ１４、入力部１６、マイクロフォン２０、及び、スピーカ２２を、制御部４０と接続する。当業者にとって容易に理解できるように、インタフェース制御部１８は、制御部４０によって実行されるソフトウェアモジュールとして実施可能である。
【００１５】
図１に見られるように、通信用電子回路３０を見ると、マイクロフォン２０からのアナログ信号は送信機８０へ入力される。送信機８０は、アナログ／デジタル変換器８２、デジタル信号プロセッサ８４、変調器８６、及び、増幅器８８を備える。アナログ／デジタル変換器８２は、マイクロフォン２０からのアナログ信号をデジタル信号に変換する。デジタル信号は、デジタル信号プロセッサ（ＤＳＰ）８４へ渡される。デジタル信号プロセッサ８４は、デジタル信号を圧縮し、エラー検出、エラー訂正、及び、シグナリングのための情報を挿入する。デジタル信号プロセッサ８４からの圧縮され符号化された信号は、変調器８６へ渡される。ＲＦ周波数発生器８７は、参照搬送周波数を生成し、変調器８６へ渡す。変調器８６は、デジタル信号を、ＲＦ搬送波上での送信に適した形式に変換する。そして、増幅器８８は、アンテナ３２を介した送信のために、変調器８６の出力を増幅する。
【００１６】
受信機９０は、低雑音増幅器９２、受信した信号用のプロセッサ９４、及び、デジタル／アナログ変換器９６を含む。受信された信号は、低雑音増幅器９２へ渡され、低雑音増幅器９２は、低レベルのＲＦデジタル信号を、デジタル信号プロセッサ９４への入力に適したレベルに増幅する。デジタル信号プロセッサ９４は、復調器及びチャネル復号器を含む。復調器は、受信した信号から、送信されたビット列を抽出する。チャネル復号器は、受信した信号中のチャネルエラーを検出して訂正する。チャネル復号器はまた、制御データ及びシグナリングデータを、音声データから分離する。デジタル信号プロセッサ９４はまた、送信された信号における位相と振幅との歪みを補償するためのイコライザも含み得る。制御データ及びシグナリングデータは、制御部４０へ渡される。音声データは、音声復号器によって処理され、デジタル／アナログ変換器９６へ渡される。デジタル／アナログ変換器９６は、ユーザが聴くことのできる可聴信号を生成するために、音声データを、スピーカ２２へ入力されるアナログ信号へ変換する。送信機８０及び受信機９０は、アンテナ３２に結合される。アンテナ３２は、送信及び受信両方のために使用される。
【００１７】
制御部４０は、送信機８０及び受信機９０の動作を調整するように機能する。これらの機能は、電源制御、チャネル選択、タイミング制御を含み、さらに、多数の他の機能を含む。制御部４０は、送信される信号にシグナリングメッセージを挿入し、受信した信号からシグナリングメッセージを抽出する。移動体端末１０において、制御部４０は、シグナリングメッセージに含まれるあらゆる基地局コマンドに応答し、これらのコマンドを実行する。キーパッドなどの入力部１６を介してユーザがコマンドを入力した場合、そのコマンドは実行のために制御部４０へ転送される。これらの作業は、一般的には、制御部４０内のプログラム内蔵型プロセッサ上で動作するリアルタイムソフトウェアによって実行される。
【００１８】
さらに、制御部４０は、例えば以下に列挙するような様々なデータ処理作業も実行する。
・画像データ、音声データ、及び、ビデオデータを圧縮及び解凍すること。
・例えばカレンダーやゲームなどのユーザプログラムを実行すること。
・ユーザがインターネットとやり取りするためのブラウザソフトウェアを実行すること。
・制御部４０内のプログラム内蔵型プロセッサ上で動作する非リアルタイムソフトウェアによって実行され得る、同様な演算作業。
【００１９】
上述のリアルタイムソフトウェア及び非リアルタイムソフトウェアは、多くの場合、同時に動作し、かつ、膨大な計算負荷を処理することを要求されるため、制御部４０は、図１、図２、及び、図４に図示され、以下さらに詳細に説明されるように、複数のプロセッサを含み得る。
【００２０】
制御部４０は、作用可能に、メモリ７０に接続される。メモリ７０は、本技術分野で知られているように、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭなどのあらゆる組み合わせを含み得る。メモリ７０は、プログラム化されている多様な特徴及び機能を格納するために使用され得るものであり、プログラム化されている多様な特徴及び機能は、ディスプレイ１４に表示されるメニュー及び入力部１６から受信された制御入力を介して、アクセス及び制御される。メモリ７０はまた、リアルタイムコード及び非リアルタイムコードの両方を格納可能であり、制御部４０においてそのようなコードを実行する際に動的に使用され得る。本発明によれば、メモリ７０は、アクセスを要求しているすべてのＣＰＵの間で優先順位を付けて調停を実行するメモリ管理部を介して、２以上のＣＰＵによってアクセスされる、共有資源である。
【００２１】
図２は、移動体端末のための、マルチＣＰＵの共有メモリ制御部４０の１実施形態を示す図である。制御部４０は、ＣＰＵ４２及び４４を含み、ＣＰＵ４２及び４４は共に、メモリ管理部（ＭＭＵ）４６を介して共有メモリ資源４７にアクセスする。メモリ資源４７はまた、データバス５６を介してＣＰＵ４２及び４４両方に接続する。
【００２２】
特に、ＣＰＵ４２及び４４はそれぞれ、アドレスバス４８と、ハンドシェイク信号であるＲＥＱＵＥＳＴ５０及びＷＡＩＴ５２とを介して、ＭＭＵ４６にアクセスする。ＣＰＵ４２又は４４がメモリ資源４７にアクセスすることを望む場合、アドレスバス４８にアドレスを配置し、ＲＥＱＵＥＳＴ信号５０をアサートする。ＭＭＵ４６は、適切なＷＡＩＴ信号５２をディアサートする(deasserting)ことにより、ＣＰＵ４２又は４４に対してアクセスを許可する。次いで、ＭＭＵ４６は、適切なアドレスバス４６からアドレスを取得し、状況に応じて(optionally)、アドレス空間の変換（例えば、仮想アドレスを物理アドレスに変換）を実行し、アドレスバス５４上にメモリ資源４７へのアドレスを出力する。例えば、メモリバンク又はチップの選択、リード／ライト信号、ロー（行）及びカラム（列）のリフレッシュ信号などの追加的な制御は、当業者によく知られており、本発明には直接は関係しないので、明確化のために省略する。
【００２３】
本発明によれば、リアルタイムコードを実行しているＣＰＵ４２及び４４は、メモリマッピングにより、ＭＭＵ４６によって、共有メモリ資源４７への優先的なアクセスを許可される。図３に示されるように、論理アドレス範囲のコード部分は、少なくとも２つの分離した範囲に分割される。アドレス範囲６０は、例えば、第１の非リアルタイムのアドレス範囲６２、第２のリアルタイムのアドレス範囲６４、第３の非リアルタイムのアドレス範囲６６、及び、第４のリアルタイムのアドレス範囲６８に分割され得る。ソフトウェアのリンク処理の間に、リアルタイムコードを含むソフトウェアモジュールは、リアルタイムのアドレス範囲６４及び６８の一方に配置される。非リアルタイムコードのみを含むソフトウェアモジュールは、非リアルタイムのアドレス範囲６２及び６６の一方に配置される。このことは、ＲＯＭ又はフラッシュメモリに配置する場合、スタティックリンカによって達成され得るものであり、ＲＡＭからコードを実行する場合、ダイナミックローダによって達成され得るものである。
【００２４】
ＣＰＵ４２又は４４からのＲＥＱＵＥＳＴ信号５０のアサーションを検出すると、ＭＭＵ４６は、アクセスを要求しているＣＰＵ４２又は４４のアドレスバス４８上のアドレスを部分的にデコードし、各々のアクセス要求が範囲６２、６４、６６、及び、６８のうちどの範囲に含まれるかを判断する。各々の範囲に割り当てられたリアルタイム又は非リアルタイムの特性（プロパティ）に基づいて、ＭＭＵ４６は、以下のルールに従って、アクセスを要求しているＣＰＵ４２及び４４の間でメモリアクセスの優先順位を決定する。ＣＰＵ４２及び４４のいずれかがメモリ４７へのアクセスを要求する場合を考える。
【００２５】
メモリ４７が、他方のＣＰＵ４２又は４４によって現在アクセスされていなければ、ＭＭＵ４６は、アクセスを要求しているＣＰＵ４２又は４４に関連するＷＡＩＴ信号５２をディアサートすることにより、アクセスを要求しているＣＰＵ４２又は４４によるアクセスを許可する。
【００２６】
他方のＣＰＵ４２又は４４が、リアルタイムのアドレス範囲６４又は６８内で現在メモリ４７にアクセスしている場合、ＭＭＵ４６は、アクセスを要求しているＣＰＵ４２又は４４に関連するＷＡＩＴ信号５２をアサートすることにより、要求されたアクセスを待たせる。
【００２７】
他方のＣＰＵ４２又は４４が、非リアルタイムのアドレス範囲６２又は６６内で現在メモリ４７にアクセスしている場合、ＭＭＵ４６は、現在アクセスしているＣＰＵ４２又は４４に関連するＷＡＩＴ信号５２をアサートすることにより、非リアルタイムのＣＰＵ４２又は４４を待ち状態にさせる。そして、ＭＭＵ４６は、アクセスを要求しているＣＰＵ４２又は４４に関連するＷＡＩＴ信号をディアサートすることにより、リアルタイムでアクセスを要求しているＣＰＵ４２又は４４によるアクセスを許可する。
【００２８】
他方のＣＰＵ４２又は４４が、リアルタイムのアドレス範囲６４又は６８内で現在メモリ４７にアクセスしており、要求されたアクセスがリアルタイムのアドレス範囲６４又は６８の範囲に含まれる場合、ＭＭＵ４６は、ラウンドロビンの原則に基づいて、アクセスを要求しているＣＰＵ４２又は４４にアクセスを許可する。
【００２９】
このようにして、リアルタイムソフトウェアを実行するＣＰＵ４２又は４４は、非リアルタイムソフトウェアを実行するＣＰＵ４２又は４４に優先して、共有メモリ資源４７へのアクセスを許可される。これにより、リアルタイムのＣＰＵ４２又は４４によるメモリ４７へのアクセスに関する遅延を減少させることができる。ＭＭＵ４６は、メモリ管理の基準でアクセスの優先順位を決定する。この方法は、システムの設計において自由度（柔軟性）を大幅に改善し、資源（リソース）の共有を通じてコストを削減し、ソフトウェアの複雑性を低減し、リアルタイムコードの確定的な実行を保証するという、潜在的な能力を有する。
【００３０】
図４は、本発明の他の実施形態に従う、共有メモリ資源へのアクセスを特徴とするシステムを示す図である。各々のＣＰＵ４２及び４４は、オペレーティングシステムソフトウェア７２と、複数のプロセス７４、７６、７８を実行する。各々のプロセス７４、７６、７８は、リアルタイムでもよいし、非リアルタイムでもよく、オペレーティングシステム７２によって割り当てられた多様な優先度で動作し得る。各々のＣＰＵ４２及び４４は、バスインタフェース７０を含み、上述したものと同じ、ＭＭＵ４６へのインタフェース信号に加えて、ＰＲＩＯＲＩＴＹ信号４９を含む。ＰＲＩＯＲＩＴＹ信号４９は、１つのビットを含み得るものであり、例えば、「１」によってリアルタイムコードを示し、「０」によって非リアルタイムコードを示し得る。或いは、ＰＲＩＯＲＩＴＹ信号４９は、複数のビットを含んでもよく、信号ビットの状態にエンコードされた優先度の範囲を伴ってもよい。
【００３１】
バスインタフェース７０は、個々のＣＰＵ４２又は４４上で動作しているプロセスの優先度Ｐ１、Ｐ２、Ｐ３を、ＰＲＩＯＲＩＴＹ信号４９に変換する。そして、必要であれば、プロセスの優先度を、ＰＲＩＯＲＩＴＹ信号４９にとって適切な範囲にスケーリングする。ＰＲＩＯＲＩＴＹ信号４９は、関連するＲＥＱＵＥＳＴ信号がアサートされるたびに、ＣＰＵ４２又は４４によるメモリアクセス要求の優先度を提示する。複数のＣＰＵ４２及び４４が同時に共有メモリ資源４７へのアクセスを要求した場合、個々のＰＲＩＯＲＩＴＹ信号５０上にエンコードされた最も高い優先度を持つＣＰＵ４２又は４４が、メモリ資源４７へのアクセスを許可される。２以上のＣＰＵ４２及び４４が同じ優先度（これは、アクセスを要求している他のあらゆるＣＰＵ４２，４４よりも高い優先度である）で同時にアクセスを要求した場合、高い優先度でアクセスを要求しているＣＰＵ４２及び４４は、ラウンドロビンの原則でアクセスを許可される。
【００３２】
ＰＲＩＯＲＩＴＹ信号４９を使用することにより、メモリマッピングによる調停スキームよりもさらに高い柔軟性が提供され得る。なぜなら、ＰＲＩＯＲＩＴＹ信号４９を使用すれば、ソフトウェアモジュール上にいかなるリンク条件（例えば、ソフトウェアモジュールを論理メモリにおけるリアルタイム又は非リアルタイムの専用領域に配置するという条件）も課されないからである。ソフトウェアプロセスがリアルタイム又は非リアルタイムのどちらで動作するかということから独立して、異なる優先レベルがソフトウェアプロセスに割り当てられ得るので、この調停システムはまた、さらなる柔軟性を提供する。さらに、ＭＭＵ４６のハードウェアは、異なるソフトウェア構成に対して再利用され得る。
【００３３】
ここでは、特定の特徴、状況、及び、その実施形態に関して本発明を説明してきたが、多数の変形例、修正例、及び、他の実施形態が、本発明の広い範囲において可能であることは明らかである。従って、すべての変形例、修正例、及び、実施形態は、本発明の範囲内にあるものと見なされるべきである。本実施形態はそれゆえ、説明としてのすべての状況において解釈されるべきものであり、限定的なものではなく、添付の請求の範囲における意味及び等価的な範囲内に生じるすべての変更は、ここに取り込まれることが意図される。
【図面の簡単な説明】
【００３４】
【図１】典型的な移動体端末の機能ブロック図である。
【図２】本発明の１実施形態に従う、マルチＣＰＵと共有メモリの制御部の機能ブロック図である。
【図３】典型的なメモリマップの図である。
【図４】本発明の第２の実施形態に従う、マルチＣＰＵと共有メモリの制御部の機能ブロック図である。
【図１】
2007517307.tif 000003
【図２】
2007517307.tif 000004
【図３】
2007517307.tif 000005
【図４】
2007517307.tif 000006
【手続補正書】
【提出日】平成17年8月31日(2005.8.31)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
移動体端末において、少なくとも２つのＣＰＵの間でメモリ資源へのアクセスを調停する方法であって、
共有メモリ資源（４７）と、それぞれがリアルタイム及び非リアルタイム両方のプロセスを実行するように機能する少なくとも２つのＣＰＵ（４２，４４）とを含む移動体端末（１０）を提供するステップと、
前記ＣＰＵ（４２，４４）それぞれから、アクセス要求及び優先度の指示情報を受信するステップと、
アクセスを要求している全ＣＰＵの中で、最も優先度の高いアクセス要求を識別するステップと、
前記メモリ資源（４７）を利用可能である場合に、前記最も優先度の高いアクセス要求をしている前記ＣＰＵに前記メモリ資源（４７）へのアクセスを許可するステップと、
前記メモリ資源（４７）へのアクセスが、等しいか或いはより高い優先度を持つ他のＣＰＵに許可されている場合に、前記他のＣＰＵが前記メモリ資源（４７）へのアクセスを完了することを許可するステップと、
前記メモリ資源（４７）へのアクセスが、より低い優先度を持つ他のＣＰＵに許可されている場合に、前記他のＣＰＵによるアクセスを中断し、前記最も優先度の高いアクセス要求をしている前記ＣＰＵに前記メモリ資源（４７）へのアクセスを許可するステップと、
を備え、
前記優先度の指示情報は、前記ＣＰＵ（４２，４４）それぞれがリアルタイムのプロセスを実行している場合に非リアルタイムのプロセスよりも高い優先度を示すことを特徴とする方法。
【請求項２】
前記優先度の指示情報は、１つのバイナリ信号を含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記優先度の指示情報は、複数のバイナリ信号を含み、
対応する複数の優先度のレベルが、前記バイナリ信号の信号状態にエンコードされる
ことを特徴とする請求項２に記載の方法。
【請求項４】
前記優先度の指示情報は、前記アクセス要求に関連するアドレスを含むことを特徴とする請求項１に記載の方法。
【請求項５】
アクセスを要求している全ＣＰＵの中で、前記最も優先度の高いアクセス要求を識別する前記ステップは、
前記アドレスを部分的にデコードするステップと、
メモリマップにおいて前記アドレスを含むアドレス範囲（６０）を識別するステップと、
を備えることを特徴とする請求項４に記載の方法。
【請求項６】
前記メモリマップは、リアルタイムのアドレス範囲（６４，６８）と非リアルタイムのアドレス範囲（６２，６６）とを含むことを特徴とする請求項５に記載の方法。
【請求項７】
ソフトウェアのリンク処理の間に、リアルタイムコードを含むソフトウェアモジュールが前記リアルタイムのアドレス範囲（６４，６８）に配置され、非リアルタイムコードを含むソフトウェアモジュールが前記非リアルタイムのアドレス範囲（６２，６６）に配置されることを特徴とする請求項６に記載の方法。
【請求項８】
前記リアルタイムのアドレス範囲（６４，６８）に位置するアドレスは、前記非リアルタイムのアドレス範囲（６２，６６）に位置するアドレスよりも高い優先度を持つことを特徴とする請求項５に記載の方法。
【請求項９】
前記メモリ資源（４７）へのアクセスが、等しいか或いはより高い優先度を持つ他のＣＰＵに許可されている場合に、前記他のＣＰＵによるアクセスの完了に続いて、前記最も優先度の高いアクセス要求をしている前記ＣＰＵに前記メモリ資源（４７）へのアクセスを許可するステップをさらに備えることを特徴とする請求項１に記載の方法。
【請求項１０】
前記最も優先度の高いアクセス要求が、アクセスを要求している２以上のＣＰＵによって共有されている場合に、ラウンドロビンの原則に基づいて、前記最も優先度の高いアクセス要求をしている前記２以上のＣＰＵに前記メモリ資源（４７）へのアクセスを順次許可するステップをさらに備えることを特徴とする請求項１に記載の方法。
【請求項１１】
少なくとも２つのＣＰＵ及び共有メモリ資源を含む移動体端末であって、
移動体端末（１０）と、
それぞれがリアルタイム及び非リアルタイムのソフトウェアモジュールを実行するように機能する、前記移動体端末（１０）中の少なくとも２つのＣＰＵ（４２，４４）と、
前記移動体端末（１０）中の共有メモリ資源（４７）と、
前記少なくとも２つのＣＰＵ（４２，４４）の間で前記共有メモリ資源（４７）へのアクセスを調停するように機能する、前記移動体端末（１０）中のメモリ管理部（４６）と、
を備え、
リアルタイムのソフトウェアモジュールを実行しているＣＰＵは非リアルタイムのソフトウェアモジュールを実行しているＣＰＵよりも高いアクセスの優先度を持つ
ことを特徴とする移動体端末。
【請求項１２】
前記ＣＰＵ（４２，４４）は、前記メモリ管理部（４６）へ、前記共有メモリ資源（４７）へのアクセスの要求とアドレスとを送信することを特徴とする請求項１１に記載の移動体端末。
【請求項１３】
前記メモリ管理部（４６）は、アクセスを要求しているそれぞれのＣＰＵについて、当該ＣＰＵがリアルタイムのソフトウェアモジュールを実行しているか或いは非リアルタイムのソフトウェアモジュールを実行しているかを判断するために、前記アドレスを部分的にデコードすることを特徴とする請求項１２に記載の移動体端末。
【請求項１４】
前記メモリ管理部（４６）は、リアルタイムのアドレス範囲（６４，６８）及び非リアルタイムのアドレス範囲（６２，６６）を含むメモリマップを保持し、
前記アクセスを要求しているＣＰＵそれぞれは、前記部分的にデコードされたアドレスが含まれるアドレス範囲に基づいて、リアルタイム又は非リアルタイムのソフトウェアモジュールを実行していることが判断される
ことを特徴とする請求項１３に記載の移動体端末。
【請求項１５】
前記ＣＰＵ（４２，４４）は、前記メモリ管理部（４６）へ、前記共有メモリ資源（４７）へのアクセスの要求と優先度の信号（４９）とを送信することを特徴とする請求項１１に記載の移動体端末。
【請求項１６】
前記優先度の信号（４９）は、関連するＣＰＵがリアルタイムのソフトウェアモジュールを実行しているか或いは非リアルタイムのソフトウェアモジュールを実行しているかを示すことを特徴とする請求項１５に記載の移動体端末。
【請求項１７】
前記優先度の信号（４９）は、複数ビットの信号であり、
優先度のレベルは、前記優先度の信号（４９）のビットパターン中にエンコードされている
ことを特徴とする請求項１５に記載の移動体端末。
【国際調査報告】
2007517307.tif 000007
2007517307.tif 000008