(57)【要約】  データ処理装置（ＢＢＰ）は、システムホストプロセッサ（ＳＨＰ）と、システムゲストプロセッサ（ＳＧＰ１）とを備える。システムホストプロセッサ（ＳＨＰ）には、オペレーティングシステム（ＯＳ）と、サービスリクエストに対応するオペレーティングシステム関連メッセージを受信するとともに、サービスレスポンスに対応するオペレーティングシステム関連メッセージを送信するオペレーティングシステム・メッセージトランシーバ（ＩＳ）とが設けられている。システムゲストプロセッサ（ＳＧＰ１）には、オペレーティングシステム・シミュレータ（ＳＯ１）が設けられている。オペレーティングシステム・シミュレータ（ＳＯ１）は、システムゲストプロセッサ（ＳＧＰ）が行うタスク（Ａ、Ｂ）からのサービスリクエストに応じて、システムホストプロセッサ（ＳＨＰ）に、オペレーティングシステム関連メッセージを送信する。オペレーティングシステム・シミュレータ（ＳＯ１）は、システムホストプロセッサ（ＳＨＰ）からのオペレーティングシステム関連メッセージに応じて、タスク（Ａ、Ｂ）にサービスレスポンスを提供する。
2008527487.tif 000002
【特許請求の範囲】
【請求項１】
オペレーティングシステムとオペレーティングシステム・メッセージトランシーバとが設けられており、サービスリクエストに対応するオペレーティングシステム関連メッセージを受信するとともに、サービスレスポンスに対応するオペレーティングシステム関連メッセージを送信する、システムホストプロセッサと、
オペレーティングシステム・シミュレータが設けられており、システムゲストプロセッサが行うタスクからのサービスリクエストに応じて、前記システムホストプロセッサに、オペレーティングシステム関連メッセージを送信するとともに、前記システムホストプロセッサからのオペレーティングシステム関連メッセージに応じて、前記タスクにサービスレスポンスを提供するように構成された、システムゲストプロセッサと、
を備えることを特徴とするデータ処理装置。
【請求項２】
前記データ処理装置が、複数のシステムゲストプロセッサを備え、前記オペレーティングシステムが、前記複数のシステムゲストプロセッサで行うようにプログラムされた様々なタスク間で、プロセス間同期を提供するように構成されている、ことを特徴とする請求項１に記載のデータ処理装置。
【請求項３】
前記オペレーティングシステムが、セマフォに基づいてプロセス間同期を提供するように構成されており、前記それぞれのオペレーティングシステム・シミュレータが、それぞれ待機機能サービスリクエストと信号機能サービスリクエストとに応じて、前記オペレーティングシステムに、待機機能と信号機能とを行わせるように構成されている、ことを特徴とする請求項２に記載のデータ処理装置。
【請求項４】
前記オペレーティングシステム・シミュレータが、前記システムホストプロセッサからの前記オペレーティングシステム関連メッセージに応じて、前記システムゲストプロセッサをもう１つのタスクに切り替えさせるように構成されている、ことを特徴とする請求項１に記載のデータ処理装置。
【請求項５】
前記システムホストプロセッサが、集積回路デバイスの形態であるとともに、前記システムゲストプロセッサが、もう１つの集積回路デバイスの形態である、ことを特徴とする請求項１に記載のデータ処理装置。
【請求項６】
システムホストプロセッサとシステムゲストプロセッサとを備えるデータ処理装置を動作させる方法であって、
前記システムゲストプロセッサが、前記システムゲストプロセッサで行うタスクからのサービスリクエストに応じて、前記システムホストプロセッサに、オペレーティングシステム関連メッセージを送信する、オペレーティングシステム・シミュレーションステップと、
前記システムホストプロセッサが、前記システムゲストプロセッサからの前記オペレーティングシステム関連メッセージに応じて、前記オペレーティングシステムに、サービスを提供させる、オペレーティングシステム・メッセージ受信ステップと、
を備えることを特徴とする方法。
【請求項７】
前記サービスが、前記システムゲストプロセッサに対するサービスレスポンスを備え、前記方法が、
前記システムホストプロセッサが、サービスレスポンスに対応するオペレーティングシステム関連メッセージを、前記システムゲストプロセッサに送信する、オペレーティングシステム・メッセージ送信ステップと、
前記システムゲストプロセッサが、前記システムホストプロセッサから受信した前記オペレーティングシステム関連メッセージに応じて、前記サービスレスポンスに従って動作する、相補的オペレーティングシステム・シミュレーションステップと、
を備えることを特徴とする請求項６に記載の方法。
【請求項８】
システムホストプロセッサとシステムゲストプロセッサとを備えるデータ処理装置のためのコンピュータプログラムプロダクトであって、前記コンピュータプログラムプロダクトが、一組の命令形態のオペレーティングシステム・シミュレータを備え、前記オペレーティングシステム・シミュレータは、前記システムゲストプロセッサにロードされた場合、前記システムゲストプロセッサに、
前記システムゲストプロセッサが、前記システムゲストプロセッサで行うタスクからのサービスリクエストに応じて、前記システムホストプロセッサに、オペレーティングシステム関連メッセージを送信し、前記オペレーティングシステム関連メッセージが、前記システムホストプロセッサ上のオペレーティングシステムに、前記システムゲストプロセッサで行う前記タスクに対してサービスを提供させる、オペレーティングシステム・シミュレーションステップを行わせる、
ことを特徴とするコンピュータプログラムプロダクト。
【請求項９】
前記オペレーティングシステム・シミュレータが、前記システムゲストプロセッサに、
前記システムゲストプロセッサが、前記システムホストプロセッサから受信したオペレーティングシステム関連メッセージに応じて、サービスレスポンスに従って動作する、相補的オペレーティングシステム・シミュレーションステップをさらに行わせる、
ことを特徴とする請求項８に記載のコンピュータプログラムプロダクト。
【請求項１０】
システムホストプロセッサとシステムゲストプロセッサとを備えるデータ処理装置のためのコンピュータプログラムプロダクトであって、前記コンピュータプログラムプロダクトが、一組の命令形態のオペレーティングシステム・メッセージトランシーバを備え、前記オペレーティングシステム・メッセージトランシーバは、前記システムホストプロセッサにロードされた場合、前記システムホストプロセッサに、
前記システムホストプロセッサが、前記システムゲストプロセッサからのオペレーティングシステム関連メッセージに応じて、前記システムホストプロセッサ上のオペレーティングシステムに、サービスを提供させる、オペレーティングシステム・メッセージ受信ステップを行わせる、
ことを特徴とするコンピュータプログラムプロダクト。
【請求項１１】
前記オペレーティングシステム・メッセージトランシーバが、前記システムホストプロセッサに、
前記システムホストプロセッサが、サービスレスポンスに対応するオペレーティングシステム関連メッセージを、前記システムゲストプロセッサに送信する、オペレーティングシステム・メッセージ送信ステップをさらに実行させる、
ことを特徴とする請求項１０に記載のコンピュータプログラムプロダクト。
【請求項１２】
請求項１に記載のデータ処理装置と、前記データ処理装置に機能的に結合されたヒューマン・インターフェースデバイスと、を備える、ことを特徴とする通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の態様は、オペレーティングシステムを備えるデータ処理装置に関連する。データ処理装置は、例えば携帯電話用のベースバンドプロセッサでもよい。オペレーティングシステムは、例えば、プロセス間同期を提供する、いわゆるリアルタイムオペレーティングシステム（ＲＴＯＳ）でもよい。本発明の他の態様は、データ処理装置を動作させる方法、コンピュータプログラムプロダクト、および通信装置に関する。
【背景技術】
【０００２】
ＷＯ／０３４８９６５の番号で公開されている国際特許出願は、移動無線システム用のベースバンドチップを記載している。ベースバンドチップは、コントローラと、デジタルプロセッサとを含む。コントローラは、カーネルを有するリアルタイムオペレーティングシステムを用いる。カーネルに割り当てられた機能性の少なくとも一部は、不揮発メモリまたはハードウェア状態自動デバイスにより、ベースバンドチップ上で恒久的に実現される。
【発明の概要】
【０００３】
本発明の態様によれば、データ処理装置は、システムホストプロセッサと、システムゲストプロセッサとを備える。システムホストプロセッサには、オペレーティングシステムと、サービスリクエストに対応するオペレーティングシステム関連メッセージを受信するとともに、サービスレスポンスに対応するオペレーティングシステム関連メッセージを送信するオペレーティングシステム・メッセージトランシーバとが設けられている。システムゲストプロセッサには、システムゲストプロセッサが行うタスクからのサービスリクエストに応じて、システムホストプロセッサに、オペレーティングシステム関連メッセージを送信するとともに、システムホストプロセッサからのオペレーティングシステム関連メッセージに応じて、タスクにサービスレスポンスを提供するように構成されたオペレーティングシステム・シミュレータが設けられている。
【０００４】
本発明は、以下の態様を考慮に入れている。データ処理装置は、様々な異なるタスクを行うことが必要であり得る。データ処理装置は、単一のオペレーティングシステムの制御下で様々な異なるタスクを行う単一プロセッサのみを備え得る。オペレーティングシステムは、例えば様々な異なるタスクの同期に関するサービスを提供し得る。上記の従来技術は、この手法の一例である。
【０００５】
単一のプロセッサ手法は、柔軟性に欠けている。１つのプロセッサには、最大処理能力がある。これは、データ処理装置が、様々なタスクの所与の平均複雑性に対して行うことができるタスクの数に限度を設ける。データ処理装置により高出力な単一プロセッサを設けることが可能である。しかしこのようなプロセッサは、比較的高価である場合があるか、または市販されていない場合もある。後者の場合、新たな、より高出力なプロセッサを特別に設計する必要がある。これは時間がかかるとともにコストが高い。
【０００６】
もう１つの手法は、データ処理装置に様々なプロセッサを設けることである。各プロセッサは、通例オペレーティングシステムを必要とする。データ処理装置は、各プロセッサが、同じオペレーティングシステムを用いる場合には、および比較的多くのプログラムが、そのオペレーティングシステムに利用可能である場合には、通常必要とする設計労力は比較的少ない。しかし単一のオペレーティングシステムはプロセッサの選択肢を限定する。単一のオペレーティングシステムは、魅力的な特徴を有する特定のプロセッサを除外し得るが、それはこれらのプロセッサが、該当オペレーティングシステムをサポートしないからである。単一のオペレーティングシステムをこれらのプロセッサに移植することは、実用的な選択肢ではないが、それはこれが、時間がかかるとともにコストがかかる作業だからである。
【０００７】
データ処理装置は、１つのプロセッサが、１つのオペレーティングシステムで動作するとともに、もう１つのプロセッサが、もう１つのオペレーティングシステムで動作するように構成されていてもよい。その場合、プロセッサ選択は膨大である。しかしそのようなデータ処理装置は、比較的多くの設計労力を必要とすることになる。異なるオペレーティングシステムで動作するプロセッサを、適当な態様で一緒に作動させることは困難である。プロセス間同期を達成するために、通常複雑なスキームが必要になる。デバッグすることは困難になる。さらにソフトウェアは、交換可能でない場合があり、つまり１つまたは複数のタスクを規定する、１つのプロセッサのためのプログラムコードは、他のプロセッサに、またはその反対に用いることができない。
【０００８】
本発明の上記の態様によれば、システムホストプロセッサに、オペレーティングシステムとオペレーティングシステム・メッセージトランシーバとが設けられているとともに、システムゲストプロセッサに、オペレーティングシステム・シミュレータが設けられている。オペレーティングシステム・シミュレータは、オペレーティングシステム・メッセージトランシーバを介して通過するオペレーティングシステム関連メッセージにより、オペレーティングシステムと通信する。
【０００９】
したがってオペレーティングシステム・シミュレータは、オペレーティングシステム・サービスを、システムゲストプロセッサが行うタスクに提供することができるが、システムゲストプロセッサは、リアル・オペレーティングシステムを有していない。その結果、システムゲストプロセッサ上のソフトウェアは、システムホストプロセッサ上にあるオペレーティングシステムの制御下で、オペレーティングシステムがシステムゲストプロセッサ上に存在しているかのように、動作する。前述したように時間がかかるとともにコストがかかる作業である、オペレーティングシステムをシステムゲストプロセッサ上に移植する必要はない。システムゲストプロセッサに、オペレーティングシステム・シミュレータを設けることで十分であり、これは通常わずか設計労力しか必要としない。したがって、発明は、これが比較的多くの設計労力を必要とせずに、異なるプロセッサの膨大な選択肢を可能にする。それらの理由のため、本発明は、比較的大きな柔軟性、およびその結果、新しい特徴に対する要求が生じた場合、比較的短い製品化に要する時間を可能にする。
【００１０】
本発明のもう１つの利点は、以下の態様に関する。システムホストプロセッサのオペレーティングシステムに適合するソフトウェアを、任意のシステムゲストプロセッサ上で用いることができる。プログラムコードの形態のソフトウェアは、容易に交換できるが、それはオペレーティングシステム・シミュレータが、システムゲストプロセッサ間のいかなる動作差にも対応するからである。その結果ソフトウェアは容易に開発され得るとともに、再利用され得る。さらにまたデバッグが比較的単純である。それらの理由のため、本発明は費用効果を可能にする。
【００１１】
本発明のこれらのおよび他の態様を、図面を参照して以下により詳細に説明する。
【発明を実施するための形態】
【００１２】
図１は、携帯電話ＣＰＨを図示する。携帯電話ＣＰＨは、送受信回路ＴＸＣと、ベースバンドプロセッサＢＢＰと、ヒューマン・インターフェースデバイスＨＩＤとを備える。ヒューマン・インターフェースデバイスＨＩＤは、例えば小型ラウドスピーカと、小型マイクロフォンと、ディスプレイデバイスと、番号をダイアルする数字キーボードとを備え得る。
【００１３】
受信モードでは、送受信回路ＴＸＣは、受信無線周波数信号ＲＦＲに応じて、受信ベースバンド信号ＢＲを供給する。ベースバンドプロセッサＢＢＰは、受信ベースバンド信号ＢＲを処理し、ベースバンド信号ＢＲは、発呼者からのデータ、もしくは基地局またはもう１つの携帯電話ネットワークエンティティからのデータ、もしくはそのようなデータの任意の組み合わせを備え得る。受信ベースバンド信号ＢＲの処理は、ヒューマン・インターフェース入力信号ＨＩを生じる。例えばベースバンドプロセッサＢＢＰは、受信ベースバンド信号ＢＲから、小型ラウドスピーカ用の音声信号を得ることもできる。
【００１４】
送信モードでは、反対の信号フローがあり、信号フローはヒューマン・インターフェース出力信号ＨＯから開始する。例えばベースバンドプロセッサＢＢＰは、小型マイクロフォンが、発話された言葉に応じて供給する音声信号を処理する。処理は、送信ベースバンド信号ＢＴを生じ、ベースバンドプロセッサＢＢＰが、送信ベースバンド信号を送受信回路ＴＸＣに印加する。これに応じて送受信回路は、送信ベースバンド信号ＢＴを備える送信無線周波数信号ＲＦＴを送出する。
【００１５】
図２はベースバンドプロセッサＢＢＰを図示する。ベースバンドプロセッサＢＢＰは、システムホストプロセッサＳＨＰと、４つのシステムゲストプロセッサＳＧＰ１〜ＳＧＰ４と、共有メモリＭＥＳと、２つのローカルメモリＭＥＬ１、ＭＥＬ２と、ベースバンド信号ＢＲ、ＢＴおよびヒューマン・インターフェース信号ＨＩ、ＨＯの送受信用の入出力回路ＩＯとを備える。ベースバンドプロセッサＢＢＰは、４つの通信チャネルＣＣ１〜ＣＣ４をさらに備え、４つの通信チャネルＣＣ１〜ＣＣ４を介して上記のプロセッサが互いに通信し得る。
【００１６】
システムホストプロセッサＳＨＰおよび４つのシステムゲストプロセッサＳＧＰ１〜ＳＧＰ４は各々、他のプロセッサとは異なっていてもよい。各プロセッサは、例えばデジタル・シグナル・プロセッサまたは他のタイプの専用プロセッサ、もしくは汎用プロセッサなどの個々の集積回路の形態であってもよい。図２に図示されたベースバンドプロセッサＢＢＰは、このよう密接に協働する必要がある多様なタイプの市販のプロセッサを有するプリント回路基板として実施され得る。またベースバンドプロセッサＢＢＰは、様々なプロセッサに対する現存の集積回路設計に基づいた、いわゆるシステム・オン・チップとして実施してもよい。これらの現存の集積回路設計の構成が作製されている。これは比較的高速設計を可能にするが、それはさらに必要とされる回路が比較的少ないからである。
【００１７】
システムホストプロセッサＳＨＰは、オペレーティングシステムＯＳと、オペレーティングシステム・メッセージトランシーバＩＳとを備える。各システムゲストプロセッサＳＧＰは、プログラムコードＰＣと、オペレーティングシステム・シミュレータＳＯとを備える。プログラムコードＰＣ１は、システムゲストプロセッサＳＧＰ１が行う２つのタスク、つまりタスクＡおよびタスクＢを規定する。プログラムコードＰＣ２は、システムゲストプロセッサＳＧＰ２が行うタスクＤを規定する。プログラムコードＰＣ３は、システムゲストプロセッサＳＧＰ３が行うタスクＣを規定する。プログラムコードＰＣ４は、システムゲストプロセッサＳＧＰ４が行う２つのタスク、つまりタスクＥおよびタスクＦを規定する。
【００１８】
オペレーティングシステムＯＳは、他のソフトウェアプログラムにサービスを提供する一般的ソフトウェアである。プログラムコードＰＣ１〜ＰＣ４は、オペレーティングシステムＯＳが、それぞれオペレーティングシステム・シミュレータＳＯ１〜ＳＯ４とオペレーティングシステム・メッセージトランシーバＩＳとにより提供するサービスを用いることができる。プログラムコードＰＣ１は、オペレーティングシステムＯＳが、プログラムコードＰＣ１があるとともに実行されるシステムゲストプロセッサＳＧＰ１上で動作しているかのように、書き込まれ得る。同じことがプログラムコードＰＣ２、ＰＣ３、およびＰＣ４、ならびにシステムゲストプロセッサＳＧＰ２、ＳＧＰ３、およびＳＧＰ４にそれぞれ当てはまる。
【００１９】
各プログラムコードＰＣは、オペレーティングシステムＯＳに対するサービスリクエストを生成することができるとともに、オペレーティングシステムＯＳからのサービスレスポンスに対処することができる。サービスリクエストは、ベースバンドプロセッサＢＢＰ内の現存のデータオブジェクトに、または以前に開始され、実行されているかまたは一時停止状態であるプログラムに関し得る。しかしサービスリクエストは、作成する必要があるデータオブジェクト、または開始する必要があるプログラムにも関連し得る。このようなサービスリクエストは、以後適当であれば、初期サービスリクエストと称する。
【００２０】
図３はオペレーティングシステム・シミュレータＳＯ１を図示する。オペレーティングシステム・シミュレータは、様々な機能、つまりホストへのメッセージ送信機能ＳＮＤＨと、ホストからのメッセージ受信機能ＲＥＣＨと、スイッチコンテクスト機能ＳＷＣと、サービス透明機能ＳＥＲＶとを提供する。他のオペレーティングシステム・シミュレータＳＯ２、ＳＯ２およびＳＯ４は、同様な機能を提供するとともに同様な対応で動作する。
【００２１】
図３は、システムゲストプロセッサＳＧＰ１にあるオペレーティングシステム・シミュレータＳＯ１が、メッセージＭＳＧを、システムホストプロセッサＳＨＰにあるオペレーティングシステム・メッセージトランシーバＩＳに送信することができる、ということを図示する。オペレーティングシステム・シミュレータＳＯ１は、オペレーティングシステム・メッセージトランシーバＩＳからメッセージＭＳＧを受信することもできる。これらのメッセージをオペレーティングシステム・シミュレータＳＯ１からオペレーティングシステム・メッセージトランシーバＩＳに、またはその反対に送信するために用いることができる多数の異なるメカニズムがある。インタラプト、共有変数を有する制御レジスタ、メールボックス、およびメモリ共有がいくつかの例である。
【００２２】
サービス透明機能ＳＥＲＶは、オペレーティングシステムＯＳを対象とするサービスリクエストに応じてメッセージを提供する。ホストへのメッセージ送信機能ＳＮＤＨは、サービスリクエストに対応するこのメッセージを、システムホストプロセッサＳＨＰに送信する。逆にホストからのメッセージ受信機能ＲＥＣＨは、システムゲストプロセッサＳＧＰ１が、システムホストプロセッサＳＨＰから受信したメッセージを読み取る。サービス透明機能ＳＥＲＶは、オペレーティングシステムＯＳからのサービスレスポンスに関わるこのメッセージを復号する。したがってサービス透明機能ＳＥＲＶは、オペレーティングシステムＯＳが、システムゲストプロセッサＳＧＰ１上で動作しているかのように、サービスレスポンスを提供する。サービスレスポンスは、例えば１つのタスクからもう１つのタスクへ切り替えるための命令であり得る。
【００２３】
スイッチコンテクスト機能ＳＷＣは、１つのタスクからもう１つのタスクへ適当に切り替えるために必要な様々なオペレーションを行う。システムゲストプロセッサＳＧＰ１が、タスクＡからタスクＢへ切り替える必要があると仮定しよう。タスクスイッチが、開始する必要がある時点で、システムゲストプロセッサＳＧＰ１内のレジスタは、あるデータを含んでいる。様々なパラメータと中間処理結果とを含み得るこのデータは、タスクＡのコンテクストを形成している。スイッチコンテクスト機能ＳＷＣは、例えば専用スタック領域内にタスクＡのコンテクストを形成するデータを保存している。これは、システムゲストプロセッサＳＧＰ１が、後段でタスクＡを再開することを可能にする。
【００２４】
タスクＢが以前に停止されているとともに、そのコンテクストがタスクＡに対して前述したように保存されていると仮定しよう。スイッチコンテクスト機能ＳＷＣは、タスクＢのコンテクストを形成するデータを、専用スタック領域から検索するとともに、このデータを関連するレジスタ内にロードする。その後スイッチコンテクスト機能ＳＷＣは、システムゲストプロセッサＳＧＰ１が、タスクＢの実行を再開することを可能にする。
【００２５】
図４はオペレーティングシステム・メッセージトランシーバＩＳを図示する。オペレーティングシステム・メッセージトランシーバＩＳは、様々な機能、つまりゲストからのメッセージ受信機能ＲＥＣＧと、ゲストへのメッセージ送信機能ＳＮＤＧと、制御機能ＣＴＲＬと、取扱リクエスト機能ＴＲＥＱと、取扱初期リクエスト機能ＴＩＲＥＱとを提供する。制御機能ＣＴＲＬは、ベースバンドプロセッサＢＢＰ上で動作している各タスク用の制御副機能を備える。図４は、図３と同様な対応で、システムホストプロセッサＳＨＰにあるオペレーティングシステム・メッセージトランシーバＩＳが、メッセージＭＳＧを、それぞれのシステムゲストプロセッサＳＧＰｊ内のそれぞれのオペレーティングシステム・シミュレータＳＯｊとやりとりすることができるということを図示しており、「ｊ」は１、２、３、または４である。
【００２６】
ゲストからのメッセージ受信機能ＲＥＣＧは、システムゲストプロセッサからのメッセージを待って、１つが着信するとそのメッセージを複号する。したがってメッセージを送信したシステムゲストプロセッサからのサービスリクエストが得られる。
【００２７】
サービスリクエストが、通常のサービスリクエストであって、初期サービスリクエストではないと仮定しよう。その場合、ゲストからのメッセージ受信機能ＲＥＣＧは、サービスリクエストを、制御機能ＣＴＲＬの関連の制御副機能へ渡す。制御副機能は、取扱リクエスト機能ＴＲＥＱを呼び出し、取扱リクエスト機能ＴＲＥＱは、オペレーティングシステムＯＳにサービスリクエストに従って動作させる、すなわちサービスレスポンスを提供させる。制御副機能は、その後ゲストへのメッセージ送信機能ＳＮＤＧを呼び出すために十分な優先度を有するまで待つ。ゲストへのメッセージ送信機能ＳＮＤＧは、サービスレスポンスに基づいてメッセージを提供するとともに、そのメッセージをサービスリクエストが発生したシステムゲストプロセッサに送信する。
【００２８】
サービスリクエストが初期サービスリクエストであると仮定しよう。その場合、ゲストからのメッセージ受信機能ＲＥＣＧは、取扱初期リクエスト機能ＴＩＲＲＥＱを呼び出す。それに応じて取扱初期リクエスト機能ＴＩＲＥＱは、オペレーティングシステムＯＳにサービスリクエストに従って動作させる。オペレーティングシステムＯＳは、例えばデータオブジェクトを生成、または新たなプログラムを開始、またはタスクを生成し得る。
【００２９】
図５は、オペレーティングシステム・メッセージトランシーバＩＳが提供する、様々な機能に対する優先度設定を図示する。図５は左列と右列とを有する表である。左列は、値による優先順位を示す。値が低いほど優先度が高く、０が最高優先度である。タスク数パラメータＮＢＴおよび最大タスク数パラメータＴＭＸが、左側列に見える。タスク数パラメータＮＢＴは、４つのシステムゲストプロセッサＳＧＰ１〜ＳＧＰ４上で動作しているタスク数と同等の値を有する。最大タスク数パラメータＴＭＸは、システムホストプロセッサＳＨＰが管理し得る最大タスク数と同等の値を有する。
【００３０】
オペレーティングシステム・メッセージトランシーバＩＳが提供する様々な機能が、右側列に見える。制御機能ＣＴＲＬは、ゲストへのメッセージ送信機能ＳＮＤＧより高い優先度を有し、ゲストへのメッセージ送信機能ＳＮＤＧは、ゲストからのメッセージ受信機能ＲＥＣＧより高い優先度を有する。すべての他の機能ＯＴＨＲは、より低い優先度を有する。このような機能は、例えばシステムホストプロセッサＳＨＰ上で動作する独自タスクを含み得る。
【００３１】
オペレーティングシステムＯＳが提供するサービスには、セマフォによるプロセス間同期がある。セマフォは、例えば共有メモリＭＥＳなどのベースバンドプロセッサＢＢＰ内の特定のリソースと関連するデータオブジェクトである。セマフォは、関連するリソースへのアクセスに対処する。セマフォは、通例整数値を有する変数を備える。整数値は、ロックされ得るまたは利用可能なリソースの状態を示す。整数値が、１つまたは複数の他のリクエスタがすでにアクセスが認められているために、リソースがロックされているということを示す場合には、リクエスタは、アクセスを有することができない。図２に図示されたタスクＡ〜Ｆのいずれかが、セマフォにより保護されたリソースへのアクセスを望むリクエストエスタであり得る。
【００３２】
図６は、セマフォによるプロセス間同期に対する２つのサービスリクエストを図示する。図６は待機機能サービスリクエストＰＳＱ［Ｓｉ］と、信号機能サービスリクエストＶＳＱ［Ｓｉ］とを図示する。上記のサービスリクエストは、特定のセマフォＳｉに関連しており、「ｉ」は該当セマフォを示すインデックスである。図６は、２つのセマフォＳ１、Ｓ２を図示する下部を有し、ｉ＝１またはｉ＝２が適用できることを意味する。
【００３３】
図６は、待機機能サービスリクエストＰＳＱ［Ｓｉ］および信号機能サービスリクエストＶＳＱ［Ｓｉ］が、図２に図示したようなプログラムコードＰＣ１内で規定されるタスクＡから生じている場合を図示する。しかし図２に図示された各プログラムコードＰＣが、待機機能サービスリクエストおよび信号機能サービスリクエストを規定し得る。その結果、図２に図示されたタスクのいずれかが、特定の瞬間に、待機機能サービスリクエストＰＳＱ［Ｓｉ］または信号機能サービスリクエストＶＳＱ［Ｓｉ］を有し得る。これらのリクエストは、タスクＡに対して以後説明するものと同様な対応で処理される。
【００３４】
オペレーティングシステム・シミュレータＳＯ１は、タスクＡからの待機機能サービスリクエストＰＳＱ［Ｓｉ］に応じて、メッセージをシステムホストプロセッサＳＨＰに送信する。このメッセージに対処するオペレーティングシステム・メッセージトランシーバＩＳは、待機機能サービスリクエストＰＳＱ［Ｓｉ］をオペレーティングシステムＯＳに提示する。それに応じて、オペレーティングシステムＯＳは、該当セマフォに対して待機機能Ｐを行う。同じメカニズムが、信号機能サービスリクエストＶＳＱ［Ｓｉ］に当てはまり、その場合オペレーティングシステムＯＳは、該当セマフォに対して信号機能Ｖを行う。
【００３５】
図６は、オペレーティングシステムＯＳが、タスクＡからの待機機能サービスリクエストＰＳＱ［Ｓｉ］に応じて行う待機機能Ｐを図示する。オペレーティングシステムＯＳは、該当セマフォの状態を検証する（ＶＥＲ［Ｓｉ］）。セマフォが関連するリソースは、利用可能またはロックされている場合がある。いずれの場合も、オペレーティングシステムＯＳは、セマフォの状態に対応する待機機能サービスレスポンスＰＳＲを提供する。オペレーティングシステム・メッセージトランシーバＩＳは、メッセージを、タスクを行っていたシステムゲストプロセッサＳＧＰ１に送信する。システムゲストプロセッサＳＧＰ１上のオペレーティングシステム・シミュレータＳＯ１は、待機機能サービスレスポンスＰＳＲに対応するこのメッセージを受信する。オペレーティングシステム・シミュレータＳＯ１は、したがって、オペレーティングシステム・シミュレータＳＯ１が、システムゲストプロセッサＳＧＰ１上で局所的に動作する真のオペレーティングシステムであるかのように動作する。
【００３６】
該当セマフォが、リソースが利用可能である（ＡＶ？＝Ｙ）ということを示すと仮定しよう。その場合オペレーティングシステムＯＳは、セマフォの整数値を１単位減少させる（Ｓｉ↓）。これは、セマフォに以後、リソースがロックされているということを示させる。オペレーティングシステム・シミュレータＳＯ１は、タスクＡを、継続させる（ＰＳＲ：ＯＫ）ことができる。
【００３７】
セマフォが、リソースがロックされているということを示すと仮定しよう。タスクＡは、リソースにアクセスすることができない。オペレーティングシステムＯＳは、タスクＡが、該当セマフォでいわばブロックされることを登録する。オペレーティングシステム・ゲストプロセッサＳＧＰ１上のオペレーティングシステム・シミュレータＳＯ１は、タスクＡが、継続しないようにする（ＰＳＲ：ＢＬ［Ａ］）。オペレーティングシステム・シミュレータＳＯ１は、システムゲストプロセッサＳＧＰ１にタスクＢに切り替えさせ得る。
【００３８】
また図６は、オペレーティングシステムＯＳが、信号機能サービスリクエストＶＳＱ［Ｓｉ］に応じて行う信号機能Ｖを図示する。オペレーティングシステムＯＳは、該当セマフォ上でブロックされた何らかのタスクがあるか否かを確認する（Ｔ＝ＢＬ？）。それであれば（Ｙ）、オペレーティングシステムＯＳは、ブロックされたタスクをブロック解除する（ＰＳＲ＝ＵＢＬ［Ｔ］）。この目的のため、オペレーティングシステム・メッセージトランシーバＩＳは、メッセージを、該当タスクを以前に行っていたシステムゲストプロセッサに送信する。該当システムゲストプロセッサ上のオペレーティングシステム・シミュレータが、このメッセージを受信する。オペレーティングシステム・シミュレータは、したがって、オペレーティングシステム・シミュレータが、該当システムゲストプロセッサ上で局所的に動作する真のオペレーティングシステムであるかのように動作する。例えばオペレーティングシステム・シミュレータは、現在のタスクからブロック解除されたタスクへ瞬時に切り替わり得る。これは、動作のプリエンプティブモードである。またオペレーティングシステム・シミュレータは、現在のタスクを継続させるとともに、このタスクが終了するまで待った後ブロック解除されたタスクを再開し得る。これは、動作の非プリエンプティブモードである。
【００３９】
オペレーティングシステムＯＳは、セマフォ上でブロックされたタスクがない（Ｔ＝ＢＬ？＝Ｎ）場合には、セマフォの整数値を１単位増加させる（Ｓｉ↑）。これは、セマフォに以後、リソースが利用可能であることを示させ得る。
【００４０】
図７は、図２に図示したベースバンドプロセッサＢＢＰ内のプロセス間同期を図示する。図７は、時間を表す水平軸を有するグラフである。システムホストプロセッサＳＨＰおよび４つのシステムゲストプロセッサＳＧＰ１〜ＳＧＰ４が、垂直軸上に現れる。図７は、プロセッサ毎にバーを備える。バーは、関連するプロセッサが行うタスクまたは機能を示す。図７において、参照番号は、サービスリクエストとサービスレスポンスとを示す。奇数値を有する参照番号は、サービスリクエストを示す。偶数値を有する参照番号は、サービスレスポンスを示す。図６に図示された２つのセマフォＳ１、Ｓ２の各々が、当初、関連するリソースが利用可能ではないということを示していると仮定する。さらに各システムゲストプロセッサＳＧＰが、非プリエンプティブモードで動作すると仮定する。
【００４１】
システムゲストプロセッサＳＧＰ１は、当初タスクＡを行う。タスクＡは、セマフォＳ１が扱うリソースにアクセスする必要がある。その結果、タスクＡは、待機機能サービスリクエスト１を、システムゲストプロセッサＳＧＰ１のオペレーティングシステム・シミュレータＳＯ１に提示する。オペレーティングシステム・シミュレータＳＯ１は、タスクＡを一時停止するとともに、待機機能サービスリクエスト１をシステムホストプロセッサＳＨＰ上のオペレーティングシステムＯＳに出現させる。オペレーティングシステムＯＳは、セマフォＳ１に対して待機機能Ｐを行う。その後オペレーティングシステムＯＳは、オペレーティングシステム・シミュレータＳＯ１に、待機機能サービスレスポンス２を行わせる。セマフォＳ１が扱うリソースが利用可能ではないため、オペレーティングシステム・シミュレータＳＯ１は、システムゲストプロセッサＳＧＰ１に、タスクＡからタスクＢに切り替えさせる。タスクＡはここでセマフォＳ１上でブロックされる。
【００４２】
システムゲストプロセッサＳＧＰ２は、当初タスクＤを行う。タスクＤは、セマフォＳ２が扱うリソースにアクセスする必要がある。その結果タスクＤは、待機機能サービスリクエスト３を、システムゲストプロセッサＳＧＰ１のオペレーティングシステム・シミュレータＳＯ２に提示する。オペレーティングシステム・シミュレータＳＯ２は、タスクＤを一時停止するとともに、待機機能サービスリクエスト３を、システムホストプロセッサＳＨＰ上のオペレーティングシステムＯＳに出現させる。オペレーティングシステムＯＳは、セマフォＳ２に対して待機機能Ｐを行う。その後オペレーティングシステムＯＳは、オペレーティングシステム・シミュレータＳＯ２に、待機機能サービスレスポンス４を行わせる。セマフォＳ２が扱うリソースが利用可能ではないため、オペレーティングシステム・シミュレータＳＯ２は、システムゲストプロセッサＳＧＰ２にタスクＤを継続させない。タスクＤは、セマフォＳ２上でブロックされる。
【００４３】
システムゲストプロセッサＳＧＰ３は、当初タスクＣを行う。タスクＣは、セマフォＳ１が扱うリソースにアクセスしていたが、もはやそのリソースを必要としない。その結果、タスクＣは、信号機能サービスリクエスト５を、システムゲストプロセッサＳＧＰ３のオペレーティングシステム・シミュレータＳＯ３に提示する。オペレーティングシステム・シミュレータＳＯ３は、信号機能サービスリクエストの場合、タスクＣを一時停止しない。オペレーティングシステム・シミュレータＳＯ３は、信号機能サービスリクエスト５を、システムホストプロセッサＳＨＰ上のオペレーティングシステムＯＳに出現させる。オペレーティングシステムＯＳは、セマフォＳ１に対して信号機能Ｖを行う。オペレーティングシステムＯＳは、タスクＡがセマフォＳ１上でブロックされているということを確証するとともに、システムゲストプロセッサＳＧＰ１が、以前に行っていたタスクＡをブロック解除することを決定する。その結果、オペレーティングシステムＯＳは、システムゲストプロセッサＳＧＰ１上のオペレーティングシステム・シミュレータＳＯ１に、信号機能サービスレスポンス６を行わせる。オペレーティングシステム・シミュレータＳＯ１は、タスクＢからタスクＡに瞬時に切り替えない。これは、システムゲストプロセッサＳＧＰ１が、非プリエンプティブモードで動作するからである。オペレーティングシステム・シミュレータＳＯ１は、タスクＢが終了した場合、システムゲストプロセッサＳＧＰ１に、セマフォＳ１で以前ブロックされていたタスクＡを再開させることができる。
【００４４】
システムゲストプロセッサＳＧＰ２は、当初タスクＥを行う。タスクＥは、セマフォＳ２が扱うリソースにアクセスする必要がある。その結果タスクＥは、待機機能サービスリクエスト７を、システムゲストプロセッサＳＧＰ４のオペレーティングシステム・シミュレータＳＯ４に提示する。オペレーティングシステム・シミュレータＳＯ４は、タスクＥを一時停止するとともに、待機機能サービスリクエスト７を、システムホストプロセッサＳＨＰ上のオペレーティングシステムＯＳに出現させる。オペレーティングシステムＯＳは、セマフォＳ２に対して待機機能Ｐを行う。その後オペレーティングシステムＯＳは、オペレーティングシステム・シミュレータＳＯ４に、待機機能サービスレスポンス８を実行させる。セマフォＳ２が扱うリソースが利用可能ではないため、オペレーティングシステム・シミュレータＳＯ４は、システムゲストプロセッサＳＧＰ４にタスクＥからタスクＦに切り替えさせる。タスクＥは、ここでセマフォＳ２上でブロックされる。
【００４５】
タスクＢは、タスクＢが終了した場合、セマフォＳ２に対して信号機能サービスリクエスト９を提示する。タスクＢはもはや、セマフォＳ２が扱うリソースを必要としない。オペレーティングシステム・シミュレータＳＯ１は、信号機能サービスリクエスト９を、システムホストプロセッサＳＨＰ上のオペレーティングシステムＯＳに出現させる。オペレーティングシステムＯＳは、セマフォＳ２に対して信号機能Ｖを行う。オペレーティングシステムＯＳは、タスクＤがセマフォＳ１上でブロックされているということを確証するとともに、システムゲストプロセッサＳＧＰ２が、以前に行っていたタスクＤをブロック解除することを決定する。その結果、オペレーティングシステムＯＳは、システムゲストプロセッサＳＧＰ２上のオペレーティングシステム・シミュレータＳＯ２に、信号機能サービスレスポンス１０を行わせる。オペレーティングシステム・シミュレータＳＯ２は、システムゲストプロセッサＳＧＰ２に、セマフォＳ２上で以前ブロックされていたタスクＤを再開させることができる。
【００４６】
タスクＦは、タスクＦの実行中、セマフォＳ２に対して信号機能サービスリクエスト１１を提示する。オペレーティングシステム・シミュレータＳＯ４は、信号機能サービスリクエスト１１を、システムホストプロセッサＳＨＰ上のオペレーティングシステムＯＳに出現させる。オペレーティングシステムＯＳは、セマフォＳ２に対して信号機能Ｖを行う。オペレーティングシステムＯＳは、タスクＥがセマフォＳ２上でブロックされているということを確証するとともに、同じシステムゲストプロセッサＳＧＰ４が、以前行っていたタスクＥをブロック解除することを決定する。その結果、オペレーティングシステムＯＳは、オペレーティングシステム・シミュレータＳＯ４に、信号機能サービスレスポンス１２を行わせる。オペレーティングシステム・シミュレータＳＯ１は、タスクＦからタスクＥに瞬時に切り替えて戻さないが、それは、システムゲストプロセッサＳＧＰ４が、非プリエンプティブモードで動作するからである。オペレーティングシステム・シミュレータＳＯ４は、タスクＦが終了した場合、システムゲストプロセッサＳＧＰ１に、セマフォＳ２で以前ブロックされていたタスクＥを再開させることができる。
【００４７】
結論
図面を参照した以上の詳細な説明は、請求項１に記載された以下の特徴を説明している。データ処理装置（ＢＢＰ）は、システムホストプロセッサ（ＳＨＰ）と、システムゲストプロセッサ（ＳＧＰ１）とを備える。システムホストプロセッサには、オペレーティングシステム（ＯＳ）と、サービスリクエストに対応するオペレーティングシステム関連メッセージ（ＭＳＧ）を受信するとともに、サービスレスポンスに対応するオペレーティングシステム関連メッセージを送信するオペレーティングシステム・メッセージトランシーバ（ＳＩ）とが設けられている。システムゲストプロセッサには、オペレーティングシステム・シミュレータ（ＳＯ１）が設けられている。オペレーティングシステム・シミュレータは、システムゲストプロセッサが行うタスク（Ａ、Ｂ）からのサービスリクエスト（ＰＳＱ、ＶＳＱ）に応じて、システムホストプロセッサに、オペレーティングシステム関連メッセージを送信する。オペレーティングシステム・シミュレータは、システムホストプロセッサからのオペレーティングシステム関連メッセージに応じて、タスクにサービスレスポンス（ＰＳＲ）を提供する。
【００４８】
上記の詳細な説明は、請求項２に記載された以下の随意の特徴をさらに説明している。データ処理装置は、複数のシステムゲストプロセッサ（ＳＧＰ１、ＳＧＰ２、ＳＧＰ３、ＳＧＰ４）を備える。オペレーティングシステム（ＯＳ）は、複数のシステムゲストプロセッサが行うようにプログラムされた様々なタスク（Ａ〜Ｆ）間で、プロセス間同期（１〜１２）を提供する。これらの特徴は、効率的なプロセス間同期を可能にする。
【００４９】
上記の詳細な説明は、請求項３に記載された以下の随意の特徴をさらに説明している。オペレーティングシステム（ＯＳ）は、セマフォ（Ｓ１、Ｓ２）に基づいてプロセス間同期を提供する。それぞれのオペレーティングシステム・シミュレータ（ＳＯ１、ＳＯ２、ＳＯ３、ＳＯ４）は、それぞれ待機機能サービスリクエスト（ＰＳＱ）と信号機能サービスリクエスト（ＶＳＱ）とに応じて、オペレーティングシステムに待機機能（Ｐ）と信号機能（Ｖ）とを行わせる。これらの特徴は効率的なプロセス間同期にさらに寄与する。
【００５０】
上記の詳細な説明は、請求項４に記載された以下の随意の特徴をさらに説明している。オペレーティングシステム・シミュレータ（ＳＯ１）は、システムホストプロセッサ（ＳＨＰ）からのオペレーティングシステム関連メッセージ（ＭＳＧ）に応じて、システムゲストプロセッサ（ＳＧＰ１）をもう１つのタスク（ＡからＢへ、またはその反対）に切り替えさせる（ＳＷＣ）。これらの特徴は効率的なプロセス間同期にさらに寄与する。
【００５１】
上記の特徴は多数の異なる対応で実施され得る。これを説明するために、いくつかの代替例が簡単に示されている。
【００５２】
オペレーティングシステム・シミュレータは、オペレーティングシステムが、通例提供する任意のサービスを提供し得る。サービスは、必ずしもプロセス間同期を含む必要はない。例えばあるオペレーティングシステムは、ファイル管理サービスを提供する。システムホストプロセッサに、このようなオペレーティングシステムが設けられていると仮定しよう。その場合、システムゲストプロセッサ上のプログラムコードは、システムゲストプロセッサにあるオペレーティングシステム・シミュレータによるファイル管理サービスと、ホストプロセッサ上にあるオペレーティングシステム関連メッセージトランシーバとを用いることができる。このようなファイル管理サービスは、システムゲストプロセッサに、例えばネットワークファイルシステム内に含まれ得る、ローカルハードディスクまたは他のデータ記憶媒体にアクセスさせることができ得る。
【００５３】
セマフォに基づくプロセス間同期サービスは有利であるが、他のプロセス間同期技術も適用され得る。例えばプロセス間同期サービスは、モニタ概念またはメッセージ・パッシング概念に基づき得る。
【００５４】
システムホストプロセッサは、複数のプロセッサを備えるサブシステムにより形成されていてもよい。このような実施において、オペレーティングシステムは、例えば、オペレーティングシステムタスクが、様々なプロセッサ間に分散される、いわゆる分散型オペレーティングシステムであってもよい。またシステムゲストプロセッサは、複数のプロセッサを備えるサブシステムにより形成されていてもよい。このようなサブシステムにおいて、これらのプロセッサがやりとりする、オペレーティングシステム関連メッセージにより、システムホストプロセッサからサービスを直接受信する、１つのサブシステム・ホストプロセッサがあり得る。このサブシステム・ホストプロセッサは、オペレーティングシステムが、そのプロセッサ上で動作しているかのように振舞う。サブシステム・ゲストプロセッサである、サブシステムの他のプロセッサは、サブシステム・ホストプロセッサからサービスを受信し、今度はそのサブシステム・ホストプロセッサが、システムホストプロセッサからそれらのサービスを受信する。このような実施において、そのため異なるシステムの階層がある。各階層レベルは、図２に示したようなシステムに関連し得る。
【００５５】
システムホストプロセッサは、オペレーティングシステム・サービスの提供することに加えて、タスクを行い得る。例えば図２に図示されたベースバンドプロセッサＢＢＰにおいて、４つのシステムゲストプロセッサＳＧＰ１、ＳＧＰ２、ＳＧＰ３、ＳＧＰ４が、映像および音声処理タスクを行うと仮定しよう。これらのタスクは、タイムクリティカルである。同時にシステムホストプロセッサＳＨＰは、携帯電話ＣＨＰともう１つの装置との間の無線赤外線通信に関連する１つまたは複数のタスクを行い得る。これらのタスクはさほどタイムクリティカルではない。
【００５６】
システムホストプロセッサは、ソフトウェアベースではなくハードウェアベースであってもよい。例えばシステムホストプロセッサは、リアルタイムハードウェアユニット（ＲＴＵ）と、適当な通信インターフェースとを備える専用集積回路（ＡＳＩＣ）の形態であり得る。ハードウェアベースの実施は、通常、ソフトウェアベースの実施より高い処理速度を有するが柔軟度が低い。同様にシステムゲストプロセッサは、同等にソフトウェアベースではなくハードウェアベースであってもよい。
【００５７】
本発明に対して多数の異なる用途がある。携帯電話はほんの一例に過ぎない。本発明は例えば、基地局内または航空分野で適用し得る。本発明は、システム内の様々なリソースのリアルタイム管理を必要とする用途に特に適している。
【００５８】
ハードウェアまたはソフトウェア、もしくはその両方の品目による、機能を実施する多数の方法がある。この点で、図面は非常に図式的であり、各々本発明の１つの可能な実施形態を表しているに過ぎない。したがって図面は異なる機能を異なるブロックとして示しているが、これは、ハードウェアまたはソフトウェアの単一の品目が、いくつかの機能を行うことを除外するものではないまた。ハードウェアまたはソフトウェア、もしくは両方の品目のアセンブリが１つの機能を行うことを除外するものではない。
【００５９】
先に本明細書に作成した結論は、図面に対した専用の説明が、本発明を限定するのではなく図示することを明示するものである。添付の特許請求の範囲内にある多数の代替例がある。特許請求の範囲内のいかなる参照符号も、特許請求の範囲を限定するものとして解釈すべきではない。単語「備える」は、特許請求の範囲に列挙されたもの以外の要素またはステップの存在を除外しない。要素またはステップの前の単語「１つの（ａ）」または「１つの（ａｎ）」は、複数のそのような要素またはステップの存在を除外するものではない。
【図面の簡単な説明】
【００６０】
【図１】図１は、携帯電話を図示するブロック図である。
【図２】図２は、携帯電話のベースバンドプロセッサを図示するブロック図である。
【図３】図３は、ベースバンドプロセッサ内のオペレーティングシステム・シミュレータを図示する概念図である。
【図４】図４は、ベースバンドプロセッサ内のオペレーティングシステム・メッセージトランシーバを図示する概念図である。
【図５】図５は、オペレーティングシステム・メッセージトランシーバ内の優先度を図示する表である。
【図６】図６は、セマフォによるプロセス間同期のための２つのサービスリクエストを図示する概念図である。
【図７】図７は、ベースバンドプロセッサ内のプロセス間同期を図示する。
【図１】
2008527487.tif 000003
【図２】
2008527487.tif 000004
【図３】
2008527487.tif 000005
【図４】
2008527487.tif 000006
【図５】
2008527487.tif 000007
【図６】
2008527487.tif 000008
【図７】
2008527487.tif 000009
【国際調査報告】
2008527487.tif 000010
2008527487.tif 000011