JP2002501248A - 埋込みシステム - Google Patents

埋込みシステム

Info

Publication number
JP2002501248A
JP2002501248A JP2000528913A JP2000528913A JP2002501248A JP 2002501248 A JP2002501248 A JP 2002501248A JP 2000528913 A JP2000528913 A JP 2000528913A JP 2000528913 A JP2000528913 A JP 2000528913A JP 2002501248 A JP2002501248 A JP 2002501248A
Authority
JP
Japan
Prior art keywords
operating system
interrupt
mode
thread
idle
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
JP2000528913A
Other languages
English (en)
Inventor
ロンカ,リスト
サーリネン,ベサ
カントラ,ヤンネ
レスケラ,イルキ
レンピネン,キム
プルホネン,アヌ
Original Assignee
ノキア モービル フォーンズ リミティド
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 ノキア モービル フォーンズ リミティド filed Critical ノキア モービル フォーンズ リミティド
Publication of JP2002501248A publication Critical patent/JP2002501248A/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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Debugging And Monitoring (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Multi Processors (AREA)

Abstract

(57)【要約】 オペレーティングシステム(OS_A 、OS_B)を動作させるための少なくとも1つのプロセッサ(2)を備える埋込みシステム(1)。この埋込みシステム(1)は、前記プロセッサ(2)において少なくとも2つのオペレーティングシステム(OS _A 、OS_B)であって、第1オペレーティングシステム(OS _A)はスレッド(THA1、THA2、THA _IDLE) の第1グループを備え、第2オペレーティングシステム(OS _B)はスレッド(THB1、THB2、THB _IDLE) の第2グループを備えるオペレーティングシステム (OS_A 、OS_B)を動作させるための手段(17、401、412)と、前記プロセッサ(2)に割込みを作成するための手段(nFIQ、nIRO、SWI)と、プロセッサ(2)に来た割込み(FIQ 、IRQ 、SWI)がどのスレッド(THA1 、THA2、THB1、THB2、THA _IDLE、THB _IDLE) の実行に影響を及ぼすかを調べる(401、603 、617)ための手段と、プロセッサ(2)に受け取られた割込み(FIQ、IRQ 、SW1)に影響を及ぼすスレッド(THA1 、THA2、THB1、THB2、THA _IDLE、THB _IDLE) に関連する割込みデータを前記オペレーティングシステム(OS _A 、OS_B)に伝えるための手段(401、412 、603 、617)とを更に備える。

Description

【発明の詳細な説明】
【0001】 本発明は、付随する請求項1のおいて書き部分に記載のシステムに関する。本
発明は、更に、付随する請求項13のおいて書き部分に記載の方法と、請求項2
4のおいて書き部分に記載の通信装置とに関する。
【0002】 エレクトロニクス産業では、基本的機能コンポーネントとしてある種のマイク
ロプロセッサ又は対応するプロセッサを有する数々の装置が設計されている。こ
のプロセッサを例えばマイクロコントローラと関連させて置くことができ、それ
は同じマイクロチップ内に置かれた周辺装置を有する。これらの装置は埋込みシ
ステムとも称され、その例はセルラー・ネットワーク移動局CMT (Cellular Mobi
le Telephone:セルラー移動電話)等の移動局、PC (Personal Computer :パー
ソナルコンピュータ) 、PDA (Personal Digital Assistant :パーソナルディジ
タルアシスタント)等である。そのような装置を制御するために、システムのタ
イミングを整え、資源を制御し、メッセージを処理すると共にいろいろなプログ
ラム・ブロック間でメッセージを伝送するという基本タスクを有する、装置固有
のオペレーティングシステムがしばしば設計される。通常、その種のオペレーテ
ィングシステムはいわゆる実時間オペレーティングシステム(RTOS)である。その
ような実時間オペレーティングシステムの典型的特徴は、例えば、キーを押す動
作などの外部割込みについての応答時間あるいはタイミングを予測するためにそ
れを使用することができるという事実、メモリ資源の使用がなるべく少なくされ
ているという事実、及び、付加的に、実時間オペレーティングシステムはタスク
を制御するのに非常に効率が良いという事実である。更に、実時間オペレーティ
ングシステムでは、例えば携帯装置においてバッテリの動作時間を長くするため
に、容量を制御するための特性がしばしば設計される。そのような実時間オペレ
ーティングシステムのサイズは、プログラムコード及び情報メモリ(RAM、ラ
ンダムアクセスメモリ)については普通は10kBと100kBとの間である。
【0003】 非実時間オペレーティングシステムは、例えば、いろいろな動作をさせるとき
の応答時間が実時間オペレーティングシステムにおける応答時間より長いという
事実、また一方では、非実時間オペレーティングシステムでは応答時間を予測す
ることはできないという事実において、実時間オペレーティングシステムとは違
っている。マルチタスク方式の非実時間オペレーティングシステムでは、各実行
プロセスは、優先レベルが同じかあるいはより低い他のプロセスの動作を阻止し
、応答時間も長くなることがある。更に、非実時間オペレーティングシステムに
はオペレーティングシステムのカーネルで決定する応答時間は無く、そのことが
、そのようなオペレーティングシステムの実行速度の予測可能性を困難にする。
【0004】 移動局は、限られた容量のメモリと、他のシステム資源とを有する。更に、移
動局には、書込み可能な大容量記憶装置(ハードディスク)あるいはFLASH
メモリ等のメモリカード等の、周辺装置のためのシステム・サポートを持ってい
ないことがしばしばある。移動局には普通はプログラムを動的にシステムにロー
ドするための可能性が設けられていない、すなわち、移動局のソフトウェアは製
造段階でこの移動局にロードされるか、あるいは場合によっては例えば保守点検
との関係でプログラムを更新することができる。更に、移動局のソフトウェアは
通常は移動局メーカによって製造されて試験されるので、多くの移動局はメモリ
管理ユニット(MMU)を備えていない。このような背景から、装置固有の実時
間オペレーティングシステムは、上記の特性をサポートするものを備えていない
【0005】 パーソナルコンピュータ及びパーソナルディジタルアシスタントを製造してい
る会社は、上記特性のためのサポートを有するオペレーティングシステムを開発
しているけれども、それらのオペレーティングシステムは、そのままでは実時間
で動作しなくて、一定の動作をさせるために最大応答時間を予測するためにそれ
らを使用することはできない。そのようなオペレーティングシステムのサイズは
通常は200kBから数MBの範囲にあり、それらを移動局等の携帯可能な機器
に適合させることは必ずしも容易なことではない。
【0006】 実時間オペレーティングシステム、特にデータプロセッサ向けに開発されたオ
ペレーティングシステムには部分的に相反する必要条件があり、このオペレーテ
ィングシステム向けの同じプログラミング・インタフェースのあるオペレーティ
ングシステムを、小メモリ消費及び実時間特性等の全ての必要な特性と同時に達
成することは困難である。
【0007】 近時、データプロセッサと電気通信装置との両方を組み合わせた電子装置が開
発されている。そのような装置は本明細書では通信装置と称される。そのような
装置の1例はノキア9000コミュニケータであり、これはデータ処理の機能及
び移動局の機能の両方を持っている比較的に小型の装置である。しかし、この種
の複合装置の1つの目的は、前に開発された製品をなるべく多く利用することで
あり、その場合、1つの目的はそれらの種々の装置向けのソフトウェアをこの新
しい装置と両立し得るように保つことである。このことは、データ処理部分にそ
れ自身のプロセッサを設けると共にそれ自身のオペレーティングシステムをその
中に設けることによって達成されており、同様に、実現される移動局はそれ自身
のプロセッサとそれ自身のオペレーティングシステムとを有する。このようにし
て、前の製品開発の結果をなるべく効率よく利用すると共に装置の事業化を促進
することが可能となっている。しかし、別々のプロセッサは、普通は単一プロセ
ッサによる解決策で得ることができるよりも多くの容量を消費し、そのような携
帯装置は効率が更に良いバッテリを必要とするか、さもなければ、その実行時間
を別々の装置で可能であるよりも長くすることはできない。
【0008】 1つのプロセッサで2つのオペレーティングシステムを動作させることは、従
来技術の解決策では、どちらのオペレーティングシステムの特徴をも利用して該
オペレーティングシステムを実現することにより達成されている。この種の組み
合わせには問題があって、例えば、オペレーティングシステムが非常に異なった
種類の特性を持っている場合には組み合わされるべきオペレーティングシステム
の特性の全てを実施することは不可能である点である。このことに起因して、例
えば、それらのオペレーティングシステムのために開発されたアプリケーション
・プログラムの全てを利用することはできないか、あるいは利用するためには当
該アプリケーション・プログラムを変更することが必要である。更に、新しいア
プリケーションが開発されるとき、1つのオペレーティングシステムに基づいて
作られたアプリケーション・プログラムを他のオペレーティングシステムに従っ
て変更しなければならない。このことが所要の作業に加わると共に間違いの可能
性を加える。
【0009】 更に、特許US5、278、973号は、1つのプロセッサで数個のオペレー
ティングシステムを使用することのできるデータプロセッサを開示している。し
かし、それらのオペレーティングシステムのうち、1度に使えるのは1つだけで
ある。オペレーティングシステムを変更するには、使用中のオペレーティングシ
ステムの実行を止め、データプロセッサを再起動する必要がある。
【0010】 本発明の1つの目的は、1つのプロセッサ等によって少なくとも2つのオペレ
ーティングシステムの動作を実行することのできる埋込みシステムを達成するこ
とである。本発明は、各割込みがどのオペレーティングシステムのスレッドに作
用するかを調べるために少なくとも1つの、少なくとも部分的に共通の割込みハ
ンドラを形成し、割込みデータをそれぞれのオペレーティングシステムに伝える
というアイデアに基づいている。本発明の埋込みシステムは、付随の請求項1の
特徴部分に記載されているものを特徴とする。本発明の方法は、付随の請求項1
3の特徴部分に記載されているものを特徴とする。本発明の通信装置は、付随の
請求項24の特徴部分に記載されているものを特徴とする。
【0011】 本発明は、従来技術の解決策を越える顕著な利点を提供する。プロセッサによ
り消費される容量は、通常は、各オペレーティングシステムのために別々のプロ
セッサを使う場合よりも少ない。更に、メモリ等の共通コンポーネントをより多
く使えるので、必要なスペースが少なくなる。本発明の埋込みシステムは、開発
されたアプリケーション・プログラムを変更無しに使用することを可能にし、更
に、一方のオペレーティングシステムに基づいて他方のオペレーティングシステ
ムに従って開発されたアプリケーション・プログラムを始めに変更する必要無し
にどのオペレーティングシステムのためにも新しいアプリケーションを更に開発
することができる。本発明は、更に、2つのオペレーティングシステムが両方の
オペレーティングシステムの特徴を利用できるように組み合わされている解決策
や、各々のオペレーティングシステムが自由に使えるプロセッサを有する解決策
と比べたときに、作業量と、発生する可能性のある間違いとを減少させる。更に
、本発明の解決策は、例えば移動局機能の実施のための、一定のアプリケーショ
ンあるいはアプリケーション領域で更に最適化され得るオペレーティングシステ
ムのどの特徴をも緩めない。
【0012】 更に、携帯可能な装置では、電力消費量が少なくなっているので、1回のバッ
テリ充電で長い動作時間が得られる。
【0013】 次に、添付図面を参照して本発明を更に詳しく説明する。
【0014】 本発明をよりよく理解するために、始めに従来技術のプロセッサ及びオペレー
ティングシステムについて図1〜3を参照して説明をする。
【0015】 命令セットにより、プロセッサを2つのクラス、すなわち完全命令セット・コ
ンピュータ(CISC:complete instruction set computer )と簡略命令セッ
ト・コンピュータ(RISC:reduced instruction set computer)とに分ける
ことができる。簡略命令セット・コンピュータでは、あまりありふれていない命
令の一部分は取り除かれている、例えば、アドレス指定フォームの数は完全命令
セット・コンピュータのよりも少なくて良い。しかし、普通のアプリケーション
・プログラムでは、アプリケーション・プログラムを実現するために非常に少量
の命令が使用され、必要なアプリケーション・プログラムを簡略命令セット・コ
ンピュータにより実行することが普通は可能である。完全命令セットコンピュー
タと比べての簡略命令セットプロセッサの利点は、例えば、実行速度を高めるこ
とができ、また一方では、プログラム・コードが必要とするメモリ・スペースは
完全命令セットコンピュータが使われるときより小さいという事実である。特に
、プログラム・メモリの量が減少すると、装置のための容量の必要性も減少し、
また一方では、装置のサイズを減少させることができる。
【0016】 実用的な実施形態では、マイクロコントローラがしばしば使用され、それは、
実際のプロセッサと、それに接続される、例えばランダムアクセスメモリ(RA
M)、読出し専用メモリ(ROM)、入/出力装置(I/O)、タイマ、アナロ
グ−ディジタル変換器(A/D変換器)、ディジタル−アナログ変換器(D/A
変換器)などの補助コンポーネントとを含んでいる。これらのいろいろなユニッ
ト間のインタフェース・ラインをなるべく小さくすることができ、装置のサイズ
を更に減少させることができ、また一方では、これらのいろいろなユニット間で
の信号の伝送を加速することができる。マイクロコントローラ製造は、種類の異
なるマイクロコントローラを生産し、それらは同じプロセッサを持つことができ
るが、周辺コンポーネントの量及び種類はまちまちであって良くて、各アプリケ
ーションには、必要ならば、それに最適のマイクロコントローラを設けることが
できる。
【0017】 本明細書において前述したように、マイクロプロセッサ又は対応するプロセッ
サを利用するような装置のために、いわゆる基本ソフトウェアとして動作するオ
ペレーティングシステムが開発される。このオペレーティングシステムは装置の
いろいろなユニットの制御、データの読出しなどを担当し、そのような装置での
アプリケーション・プログラムの使用を可能にする。例えばパーソナルコンピュ
ータでは、該コンピュータがオンにされるとき、オペレーティングシステムがプ
ログラムメモリにロードされ、それは一定の初期設定動作を実行する。その後、
ユーザは希望するアプリケーション・プログラムを始動させることができ、その
時オペレーティングシステムはユーザにより与えられたコマンドを受け取り、当
該アプリケーション・プログラムを探索し、それをプログラムメモリにロードし
、アプリケーション・プログラムを始動させる。多重処理システムでは、表面上
は同時に数個のそのようなアプリケーション・プログラムを使用することが可能
であり、アプリケーション・プログラムは、これらのいろいろなアプリケーショ
ン・プログラム間で実行時間及びスケジューリングを与えることに対処する。更
に、オペレーティングシステムのタスクは、それらのいろいろなアプリケーショ
ン・プログラム間で信号を伝送し、必要ならばアプリケーション・プログラムと
周辺装置との間でのシグナリングを整えることである。
【0018】 オペレーティングシステムは、プロセスの実行をいわゆるスレッドとして制御
することができる。1つのスレッドは1つ又は数個のプロセスの実行に関連する
機能を備えることができ、その一方で1つのプロセスは1つまたはそれより多い
スレッドに分けられる。スレッドの実行は、オペレーティングシステムのスケジ
ューラにより制御される。換言すると、スレッドは、オペレーティングシステム
によりプロセスに与えられる一種のサポートである。
【0019】 知られているオペレーティングシステムでは、普通は次の特性を見いだすこと
ができる。ユーザにより与えられた、例えば当該コマンド中のアプリケーション
・プログラムの名前を読み出してユーザがこのアプリケーション・プログラムに
より伝送されるべく与えたパラメータを認識するなど、ユーザにより与えられた
コマンドを解釈するコマンド・インタープリタと、いろいろなプロセスへの資源
の割り当てを行うスケジューラと、割込みに反応してこの割込みにより要求され
ている例えば割込み要求のオペレーティングシステムへの伝送などの処置を実行
する割込み要求サービスと、である。更に、オペレーティングシステムは、例え
ばキーパッドを読む、ディスプレイに書込みをする、存在することのある外部イ
ンタフェースを制御する機能のためのものなど、機能ブロックを有する。資源は
、例えばメインメモリ、周辺装置、及びプロセッサ時間の使用を含む。オペレー
ティングシステムは、例えば、実行されるべき各プロセスのためのメモリ領域を
予約するが、プロセスはデータを書くことができ、プロセスはデータを読む。あ
るプロセスが該プロセスのために予約されているこのメモリ領域の外側に書こう
と試みた場合、メモリ制御ユニットは普通はその書込みを妨げて通常はそのよう
なプロセスの動作を停止させる。
【0020】 多くのプロセッサはユーザ・モード及び特権モード(管理モード及びカーネル
・モードなども)などの、種々の使用モードを依然として有する。ユーザにより
開始されるアプリケーション・プログラム及び他のプロセスは、普通はユーザ・
モードに従って動作するようにセットされる。対照的に、オペレーティングシス
テム、及びそれにより始動されるプロセスの一部分は通常は特権モードで動作す
る。ユーザ・モードは限られた動作だけが可能であって、例えばプロセスのコマ
ンドの一部は特権モードでだけ作用し、それをユーザ・モードで使用することは
できない。あるオペレーティングシステムでは、特権動作モードは数個の、例え
ば3個の、レベルを有する。動作モードのカーネルは、最大の権利を有する特権
モードの第1レベルで実行される。第2レベルは例えば制御ルーチン等を有する
(エグゼクティブ)。第3レベルは例えばコマンド・インタープリタを有する。
【0021】 プロセッサ2は一般に割込みを使用する可能性を含んでいる。プロセッサ2の
外部から割込み要求を1つ又は数個の割込みサービス・ラインnIRQ、nFIQ(図4
b)で伝送することができ、そのモードの変更、例えば論理モード1から論理モ
ード0への変更、はプロセッサ2に対する割込みの原因となる。プロセッサ2に
対する割込み要求は、実質的に遅延無しに、あるいはより高位の優先順位の割込
み要求が待機していないときに、それぞれの割込みサービス・ルーチンを動作さ
せるようにプロセッサ2を転換させる。割込みサービス・ルーチンでは、割込み
処理動作の少なくとも一部分が実行される。それらのハンドリング動作は、例え
ばそれぞれのアプリケーションと、割込みの原因とによる。割込みサービス・ル
ーチンの動作は、実行中のプロセス及びオペレーティングシステムの動作を遅く
するので、特に実時間オペレーティングシステムでは、割込みサービス・ルーチ
ンをなるべく短くかつ高速にしようとする試みがなされる。割込みサービス・ル
ーチンでは、オペレーティングシステムのために例えば割込みと、割込み処理処
置の一部分が実行しようと待機している情報の状態可変通知をセットすることが
可能であり、その場合オペレーティングシステムは例えばそのスケジューリング
処理手順に従ってそれらの動作の実行を制御する。割込みサービス・ルーチンへ
の伝送は、種々の割込みブロッキング及びマスキングの影響も受ける。割込みが
ディスエーブルにされると、割込み要求は普通は割込みブロッキングのキャンセ
ルを待つ状態とされ、その後に割込み要求はその優先順位に応じて有利に処理さ
れる。割込みは、ほとんどのプロセッサ2において選択的にも防止されることが
でき、そのバックアップには、割込みマスク・レジスタ等において各割込みにイ
ネーブル状態又はディスエーブル状態が与えられる。
【0022】 割込み要求は、例えば、シリアル・バスを通して受け取られた情報に起因する
シリアル・バス割込み要求、キーパッドのキーを押したことに起因する割込み要
求、タイマに起因する割込み要求、あるいは実行中のプロセスにより形成される
いわゆるプログラム割込み要求など、外部装置により与えられた信号に基づいて
作成される。割込みについて優先順位が決定され、相対的に低位の割込みサービ
ス・ルーチンの実行は相対的に高位の割込みによって中断させられることがある
。対照的に、相対的に高位の割込みサービス・ルーチンは普通は相対的に低位の
割込みサービス・ルーチンによって割り込まれない。オペレーティングシステム
のための基本タイミングを達成するために、普通はタイマが使用され、これは一
定の時間をおいてプロセッサに対する割込み要求を作成し、それは、タイマの割
込みサービス・ルーチンを実行するように変化する。その結果として、タイマの
割込みサービスに高い優先順位が与えられる。対照的に、例えばディスプレイの
更新には普通は低い優先順位が与えられる。
【0023】 特許US5,515,538は、データ・プロセッサの多重処理オペレーティ
ングシステムにおいて割込みを処理する1つの方法を開示している。その方法で
は、割込みハンドラが自分自身のスレッドを形成するように構成され、これに対
して割込み状態において実行が向けられる。しかし、この刊行物で紹介された方
法は、1オペレーティングシステムの装置にだけ関しており、それは、このオペ
レーティングシステムのプロセスを動作させるために同時に数個のプロセッサを
包含することができる。
【0024】 次に、1つの多重処理オペレーティングシステムの動作を簡略化した形で解説
する。オペレーティングシステムのスケジューラは、一定間隔で、どのアプリケ
ーション・プログラム、すなわちプロセス、をその時に実行するべきか調べる。
このスケジューラは、例えばタイマ割込みによって起動される。各アプリケーシ
ョン・プログラムは、更に、1つまたはいくつかのスレッドを含んでいることが
あり、各スレッドは、1つのプロセッサ・システムで異なる時に動作する。1つ
のスレッドは例えばキーパッド等の周辺インタフェースでのデータの読出しであ
り、第2のスレッドはデータの処理であり、第3のスレッドは例えば処理済みの
データのディスプレイ等の周辺装置への書込みであって良い。このアプリケーシ
ョン・プログラムが始動されるとき、スケジューラは一度に各スレッドについて
の実行時間とスレッドを、動作するための繰返し間隔とを定めている。スケジュ
ーラは、スレッドの実行を開始し、この実行時間が経過した後にスレッドを待機
へ移し、そして、もし必要ならば、このスレッドのデータをメモリ手段に記憶し
て、同じかあるいは異なるプロセスであって良い新しいスレッドの実行を開始す
る。スケジューラは、全てのスレッドを実行した後、新しい実行ラウンドを開始
するか、あるいはどのスレッドの実行間隔も満了していない場合には、いわゆる
アイドル・スレッドが実行される。しかし、上記スレッドの実行時間の間に、割
込み要求が発生する可能性があり、その場合にはそれらの割込み要求の優先順位
に基づいてオペレーティングシステムは割込みサービス・ルーチンを実行し始め
、あるいはスケジューラが割込みサービスを実行するのに適する時間を決めて、
割り込まれたスレッドを実行し続ける。例えばキーパッド・インタフェースによ
り達成された割込み状況において、キーパッド割込みプログラムは、押されたキ
ーのコードを読み取り、それを一時記憶場所に記憶する。その割込みサービス・
ルーチンが終了した後、オペレーティングシステムのスケジューラは、キー押し
の試験プログラムのための実行時間を決めて、キーパッド割込みについて決めら
れている優先順位が割り込まれたプログラム・スレッドの優先順位を越えなかっ
たならば割り込まれたプログラム・スレッドに戻る。
【0025】 添付の図1は1オペレーティングシステムの層構造の例を示している。オペレ
ーティングシステムの最低部はカーネルであり、その次のレベルはメモリ制御に
関連する部分から成り、第3レベルはファイル・システム部分である。これらの
3レベルより上には、例えばコマンド・インタープリタ、プロセス(図示せず)
、インタフェース・プログラム、スケジューラ機能、等々が位置している。
【0026】 次に、あるオペレーティングシステムのカーネルの構造を説明する。カーネル
の動作のための主要部分は、割込み処理、プロセスの制御、及び周辺装置の制御
である。割込み処理は、割り込まれたプログラムのデータの記憶と、正しい割込
みサービス・ルーチンの実行の制御とを含む。プロセスの制御は、例えばプロセ
スを作成すること、実行時間を決定すること(スケジューリング)、プロセスの
動作を終了させること、タイミング、等々を行う。周辺装置の制御機能は、例え
ばデータ伝送を開始させること、及び、各周辺装置に関連する1つ以上の割込み
の処理を含む。オペレーティングシステムの見地からは、プロセスは常に3つの
モード、すなわちレディ(READY)・モード、動作モード及び待機モード、
のうちの1つである。このモード分割が、付随する図2に示されている。実行モ
ードは、その時に実行されているプロセスを含んでおり、1プロセスを含むシス
テムはこのモードでは最大で1つのプロセスを有する。実行モードで実行される
べく待っているプロセスはレディ・モードとなっている。スケジューラのタスク
は、レディ・モードの1つのプロセスを実行モードで実行される1つのプロセス
として選択することである。待機モードは、キー押し、資源の再割り当てなど、
何らかの動作を待っているプロセスを備える。
【0027】 スケジューラは、最高優先順位のプロセスをレディ・モードから実行モードに
移す。実行モードにおいて、プロセスは、例えば、その実行が待機を含む何らか
のオペレーティングシステム・サービスを要求するなど、通常はそれ自身の要求
によって待機モードに移る。待機モードからレディ・モードへの移行は、前記待
機が終わろうとするときに行われる。スケジューラが例えば割込み処理を終了す
るなど、実行されるべき他のプロセスを変更するような場合にも、プロセスを実
行モードからレディ・モードに戻すことができる。
【0028】 カーネルの実現は、普通は、その要素がオペレーティングシステムの領域にあ
る空きメモリ空間から割り当てられる2方向チェーン・リストである多数の動的
情報構造を通常は伴う。例えば、各プロセスのデータはプロセス制御ブロック(
PCB)で有利に維持される。プロセス要素はプロセス・テーブルにまとめられ
ており、そのサイズは、システムにおけるプロセスの量に上限を設定する。付随
する図3に示されているこの例は、基本要素に例えば次の情報を含んでいる。 プロセスステータス:待機、実行可能又は実行、 プロセスの名称、 プロセスの優先順位、 割り込まれたプロセスの情報(環境)の記憶(スタック)についての状況、 割り当てられた資源についてのデータ:メモリ、装置、開放ファイルなど、 プロセス割り当てのトラッキングに関連するフィールド、 認可に関連するフィールド。
【0029】 これはプロセス要素の実現の例に過ぎなくて、実際の実施形態では、これらは
大幅に変化し、プロセス要素のデータは大幅にまちまちであって良いことに言及
しておく。
【0030】 プロセス記号は、例えばシーケンス番号などの、そのプロセスの名称である。
このプロセスの名称に基づいて、オペレーティングシステムはいろいろなプロセ
ス同士を分ける。プロセスが2つ以上のスレッドを含んでいる場合には、プロセ
ス記号、又はこのプロセス要素の他のフィールドはスレッドのこの番号について
の情報も含むことができる。プロセスのステータスを知らせるために、ステータ
スフィールドが使用される。オペレーティングシステムは、プロセスの状態が変
化するときにこのステータスフィールドの値を変更する。スケジューラはプロセ
スの実行シーケンスを決定するために優先順位フィールドの値を使用し、例えば
このフィールドに含まれている数値が大きいほど当該プロセスの優先順位は高い
。待機モードのプロセスの優先順位フィールドの値を比較することにより、スケ
ジューラは最高の優先順位値のプロセスを次に実行されるプロセスとして選択す
る。
【0031】 次に、新しいプロセスの作成について説明する。本例では、プロセスは、装置
のメモリ手段内のファイルに、例えば書込み可能な大容量記憶装置に、記憶され
る。このプログラムはファイル名に従って認識される。オペレーティングシステ
ムのカーネルは、プロセスを起動するためのサービス・ルーチンを備えており、
そのサービス・ルーチンにパラメータとして与えられる名称は、そのファイルの
名称であるのが有利である。この起動サービス・ルーチンは、そのプロセスのた
めにプロセス・テーブル上にプロセス要素を形成し、メインメモリの領域をプロ
セスに割り当てる。このプログラム・ファイルの内容は、それのために予約され
ているメモリ領域に読み込まれ、プロセス要素のフィールドが適当な値で初期化
され、その後にプロセスを立ち上げて実行待ちの状態とすることができる。この
プロセスのために使われる記号は、例えば、次の自由プロセス記号であって良い
。該プロセスのステータスは有利には、値レディにセットされる。オペレーティ
ングシステムのスケジューラは、そのスケジューリング処理手順に従って、これ
らのプロセスを実行に向けて制御する。
【0032】 プロセスがスレッドとして実行されるオペレーティングシステムでは、起動サ
ービス・ルーチンがプロセスから1つ又は数個のスレッドを形成すると共にプロ
セス・テーブル上にスレッドのためのプロセス要素を形成するように、上記のプ
ロセス作成をそれぞれ適合させることが可能である。
【0033】 更に、オペレーティングシステムは周辺装置を制御するために1つの重要な特
徴、いわゆるデバイス・ドライバ、を含んでいる。デバイス・ドライバは、ディ
スプレイ、キーパッド、コーデック等の周辺装置を制御するために必要なルーチ
ン及び情報構造を備える。必要なルーチンは、例えば、装置の動作を初期化する
こと、読み書き、端末の特性を設定する等の制御ルーチン、装置に関連する割込
みを処理するルーチンなどである。装置に関連する変数及び情報構造を例えばい
わゆる装置記述子に集めることができる。この種の情報は例えば次の通りである
。 装置に対して待ち合わせしている転送要求のパラメータ・ブロック同士が連鎖
形成されるワーク・キュー。同時値及び書込みが可能である場合、2つのワーク
・キューがある。当該パラメータ・ブロックは、例えばデータ・バッファの場所
に関連する情報など、転送要求のパラメータ、転送されるべきブロックの番号、
などを含む。 デバイス・ドライバ・ルーチンのアドレス、 転送制御に必要とされる装置の変数及びモード・データ、並びに 装置固有のパラメータ。
【0034】 あるシステムでは、デバイス・ドライバはオペレーティングシステムのプロセ
スである。このプロセスは永久ループで動作し、そこでプロセスは始めに転送要
求メッセージを待つ。そのようなメッセージを受信した後、デバイス・ドライバ
・プロセスは転送を起動し、割込みメッセージを待つ。オペレーティングシステ
ムの割込みハンドラは、割込みメッセージのデバイス・ドライバ・プロセスへの
伝送を担当する。実際の装置では、デバイス・ドライバ・プロセスは通常は高い
優先順位を有し、オペレーティングシステムのカーネルは実時間で動作する。
【0035】 書込み可能な大容量記憶装置から読み出すときには、その読出し動作は例えば
次のように動作する。装置テーブルから、それぞれの装置記述子のアドレスが始
めに探索される。その後、読出しルーチンのアドレスが装置記述子から取り出さ
れる。読出しルーチンは、転送要求のパラメータからパラメータ・ブロックを形
成する。転送が当該装置によって現在行われつつあるならば、すなわちこの装置
が他のプロセスにより使用されているならば、パラメータ・ブロックはワーク・
キューの中の最後のものとしてつながれ、待機が行われる。この装置が使用可能
で、ワーク・キューが空であるならば、パラメータ・ブロックはワーク・キュー
の第1ブロックとなるようにつながれる。その後、ブロックの番号はシート表面
、トラック及びセクタの番号に変更され、例えば装置レジスタを修正することに
よって転送が起動される。この後、転送終了を待つ。転送が終了した後、装置割
込みが行われる。オペレーティングシステムの割込み処理は装置番号に従って装
置テーブルから装置記述子のアドレスを捜し、それから更に割込み処理ルーチン
のアドレスを探し、割込みハンドラのプログラム・コードの実行に転換する。割
込みハンドラは、間違いが生じていないかどうか調べるのが有利である。転送を
成功させるという目的のために、パラメータ・ブロックはワーク・キューから切
り離され、転送を待っていたプロセスが呼び起こされる。待ち合わせ転送要求が
ワーク・キューに存在している場合には、次の転送動作は実質的に遅延無しで起
動される。
【0036】 周辺装置の種類により、動作は前述したものとはある程度異なることがあり得
る。ディスプレイ及びプリンタ等の文字印刷装置により、ワーク・キューは、印
刷されるべき文字を含むキューと単に置き換えられる。
【0037】 多くのオペレーティングシステムは使用されるメッセージ伝送メカニズムを有
し、これでプロセスはメッセージを互いに伝え合う。メッセージ・キューを使用
するときには、1つ又は数個のメッセージ・キューがプロセスと関連させられ、
それに、このプロセスに伝えられるべきメッセージを書き込むことができる。普
通はバッファリングがプロセス同士の通信に関連させられ、メッセージの送信側
は受信側がそのメッセージを受信するのを待っていなくても良い。従って、メッ
セージの書込み段階で、メッセージがプロセスを待っていることを知らせる情報
(状態変数)が確立され、当該プロセスは適当な段階でこのメッセージを読む。
【0038】 本発明の好適な実施形態の埋込みシステムでは、すなわち通信装置1(図4a
)では、2つのオペレーティングシステムが使用される。第1オペレーティング
システムは、本明細書では参照符号OS_A で指示され、主として移動局機能の実
現に使用され、第2オペレーティングシステムは、本明細書では参照符号OS_B
で指示され、主としてデータ処理機能を実現するために使われる。データ処理機
能とは、主としてパーソナルコンピュータ等から知られている機能を指しており
、例えばファイルの読込み、書込み可能な大容量記憶装置による書込み、データ
の印刷、いわゆる組織機能(ノートブック、接触データの整備等)などのアプリ
ケーション・プログラムの実行、などである。通信装置1との関連で1つのプロ
セッサ2を使用するのが有利であるので、異なる動作装置OS_A 、OS_B のこれ
らの機能を、両方のオペレーティングシステムOS_A 、OS_B の両方の特徴が同
時に維持されるように、結合させることができる。更に、1つの基準は、必要な
ときには、機能の実時間性である。次に、例を挙げて、これらの異なるオペレー
ティングシステムOS_A 、OS_B を同じプロセッサ2との関係でどのように結合
させ得るのか説明をする。
【0039】 図5は、第2オペレーティングシステムOS_B の構成の1例を示している。各
ブロックは、一定のプロセス、スレッド、接続インタフェース等を示している。
ブロックは、前記ブロックでユーザ・モードUSERが使われているか、それとも特
権モードSVC が使われているのかという情報に従って更に分けられる。それ自身
の更に分けられている部分は割込みモードであり、それは図6においてブロック
501で示されている。割込みモードは、高速割込みモードFIQ 、通常割込みモ
ードIRQ 又はソフトウェア割込みモードSWI を使用する。第2オペレーティング
システムOS_B のカーネル(ブロック502)は、特権モードSVC (管理モード
)で動作するようにセットされる。対照的に、第2オペレーティングシステムの
スケジューラSCH _B (ブロック503)、接続インタフェース(ブロック50
4)、ユーザのプロセスのスレッド(506、507及び508)、データプロ
セッサ等のカレンダー・アプリケーションなど、並びにデバイス・ドライバの接
続インタフェース(ブロック505)は、ユーザ・モードUSERで動作するように
セットされ、それらは例えばオペレーティングシステムのスタック(図示せず)
あるいは他の極めて重要なメモリ・ブロックへのアクセスを持っていない。特権
モードは更にデバイス・ドライバ(ブロック509)、アイドル・スレッド(ブ
ロック510)及びいわゆるポッシブル・スーパー・スレッド(ブロック511
)を含んでいる。アイドル・スレッド510は、他のプロセスが実行されていな
いときにオペレーティングシステムが実行するある種の待機プロセスである。ス
ーパー・スレッド511は、本明細書では、通常のスレッド506、507、5
08の応答時間と比べると非常に小さな応答時間を有するスレッドを指す。スー
パー・スレッド511の応答時間は例えばおおよそ数百マイクロ秒であり、これ
に対して通常のスレッド506、507、508の応答時間は例えば数十ミリ秒
である。本発明は、例えば、スーパー・スレッド511を持っていないようなオ
ペレーティングシステムとの関係でも応用され得るものである。
【0040】 オペレーティングシステムのカーネル502には最高の優先順位が与えられる
。上記の応答時間要件があるために、スーパー・スレッド511には、通常のス
レッド506、507、508のそれより高い優先順位が与えられる。応答時間
とは、ここでは、事件に起因する割込み要求の到着から、スレッドの動作が開始
されるときまでに経過する時間を指す。この応答時間は予想値であり、実際には
応答は通常の動作においてはこの予想値より短いか、あるいは最大でもこの予想
値に等しい。過負荷状態では、応答時間はときには予想値を上回ることがある。
応答時間は、割込みサービス・ルーチンを実行するために経過する時間も含んで
いる。実際には、割込みサービス・ルーチンはなるべく短くなり、高速に実行さ
れ得るように意図される。
【0041】 本発明の好適な実施形態の1埋込みシステムが通信装置1で添付の図4aに示
されている。それは、例えば、マイクロプロセッサ又はマイクロコントローラの
一部分であるプロセッサ2を含んでおり、図4aのブロック図の少なくとも一部
のブロックはマイクロコントローラの機能ブロックから形成され得る。プロセッ
サ2に加えて、制御機能の一部分は、この好適な実施形態ではいわゆるアプリケ
ーション特有の集積回路3(ASIC)により実現される。プロセッサ2と、そ
のアプリケーション特有の集積回路3との間には個別のデータ伝送バス4があっ
ても良く、その場合にはデータ伝送速度を高めることができ、また一方で、第2
データ伝送バス5には負荷はかからない。移動局機能を得るために、通信装置は
、送信機/受信機ユニット6、送信/受信アンテナANT、ディジタル信号処理
ユニット(DSP)、音響信号をコード化/デコード化するためのコーデック8
、移動局機能を使用するための第1キーパッド9、情報をユーザに表示するため
の第1ディスプレイ装置10を備えている。更に、通信装置1はオーディオ・ブ
ロック11を含んでおり、ここで、マイクロホン12により形成されるアナログ
信号のために必要なアナログ/ディジタル変換と、スピーカ13に向けられる信
号のためのディジタル/アナログ変換とが実行される。データ処理機能を達成す
るために、通信装置1は、第2キーパッド14、第2ディスプレイ15、及び、
例えば通信装置1と関連するプリンタを接続するための手段を有するインタフェ
ース・ブロック16を備えている。キーパッド9、14及びディスプレイ10、
15について一般に使われる呼称はユーザインタフェース(UI)であり、これ
によりユーザと通信装置1との通信が少なくとも部分的に実行され得る。あるア
プリケーションでは、ユーザインタフェースは、マイクロホン12及びスピーカ
13などの、オーディオ手段も包含する。図1の通信装置1は2つのユーザイン
タフェースUI1、UI2を示しており、第1ユーザインタフェースUI1は第
1キーパッド9と第1ディスプレイ10とを包含し、第2ユーザインタフェース
UI2は第2キーパッド14と第2ディスプレイ15とを包含している。第1ユ
ーザインタフェースUI1は主として移動局動作のために考慮され、他方のユー
ザインタフェースUI2は主としてデータ処理動作のために考慮されるが、必要
ならば両方のユーザインタフェースUI1、UI2を移動局動作との関係で使用
すると共にデータ処理動作との関係でも使用することができる。ユーザインタフ
ェースUI1、UI2は別々でなくても良く、例えば1つのディスプレイ及び/
又は1つのキーパッドを有する1つのユーザインタフェースとして実現されても
良い。
【0042】 ユーザインタフェースUI1、UI2のキーパッドは、いわゆるタッチスクリ
ーンを利用して実現されても良く、その場合には有利にはディスプレイの上に触
感手段が配置され、この手段は例えばユーザの指の接触に反応する。触感手段の
動作原理はそれ自体としては公知であり、例えばキャパシタンスの変化あるいは
抵抗の変化に基づいている。
【0043】 通信装置1は、更に、メモリ17を含んでおり、それは、例えば、ブート・コ
ードを蓄積するための読出し専用メモリROM、実行されるべきアプリケーショ
ン・プログラムをロードすると共に場合によっては書込み可能な大容量記憶装置
から使用中にデータを記憶しておくためのランダムアクセスメモリRAM、FL
ASHメモリ及び/又は不揮発性ランダムアクセスメモリNVRAMを有利に含
む。通信装置1の機能ブロックは第2データ伝送バス5によって接続されており
、それは例えばアドレス・バス、データ・バス及び制御バスを含む。しかし、明
快にするために、それは当業者に知られている従来技術であるので、それらのバ
スは別々に図示されてはいない。電源は電圧形成ブロック19に接続されている
バッテリ18から供給され、それは電圧調整器、電圧変換器等を含んでいて、必
要ならばいろいろな動作電圧Vcc1、Vcc2を形成することが可能である。
電圧形成ブロックは、更に、バッテリ18の充電を、通信装置1が動作を止める
ことができるような低レベルまで下げるための信号を形成することができる。そ
れゆえ、バッテリ18が再充電されなければならないか又は動作電圧がオフにな
らなければならない。実用的な実施形態では、充電状況のこの情報はプロセッサ
2に対する割込み要求を生じさせ、その場合、この割込みサービス・ルーチンと
関連してデータ記憶要求が確立されて、有利にはオペレーティングシステムOS_
A 、OS_B は累算器18を空にしてデータをメモリ17に記憶し始めるためのメ
ッセージをディスプレイ10、15に形成する。更に、動作電圧をオフにする制
御は自動的に実行されて良い。
【0044】 通信装置1は、例えばその周辺装置のいずれかに他のプロセッサを有しても良
いが、そのことは本発明にとっては重要ではなく、それらはオペレーティングシ
ステム機能を実行する目的以外の他の目的のためのものである。
【0045】 この例示実施形態で使われるプロセッサ2は、アドバンストRISCマシーン
ズ社によって製造されているARM7シリーズに属するプロセッサである。この
プロセッサはいわゆる簡略命令セット・プロセッサである。しかし、本発明は、
この種のプロセッサあるいは簡略命令セット・プロセッサだけに限定されるもの
ではなくて、本発明を他の種類のプロセッサとの関係で適応させることもできる
。付随の図4bは、ARM7シリーズの1つのプロセッサの簡略ブロック図を示
している。プロセッサ2の見地から、中央ブロックはコマンド・インタープリタ
及び制御ブロック401である。その目的は、例えば、プログラム・コマンドを
解釈して、それにより要求されている処置を制御し、高速割込みラインnFIQ及び
通常割込みラインnIRQを通して来る割込み要求に応答し、ソフトウェア割込み要
求に応答し、外部クロック信号(図示せず)からプロセッサの動作のためのタイ
ミング信号等を形成し、例えばメモリ17とプロセッサ2との間でデータを読み
出したりデータを書き込んだりするための制御信号を形成し、また、その時にア
ドレス・バス402のために必要なアドレス・データの形成を制御することであ
る。
【0046】 データ・バスの読出しレジスタ403は、データ・バス404から来るプログ
ラム・コマンドを該データ・バスの読出しレジスタ403の内部コマンド・キュ
ー(図示せず)へ配置すると共にこのデータをデータ・レジスタ(図示せず)へ
配置する。コマンド・インタープリタ及び制御ブロック401は、次に実行され
るべきプログラム・コマンドを内部コマンド・キューに読み出して、それを解釈
する。必要ならば、コマンド・インタープリタ及び制御ブロック401は、デー
タ・レジスタからデータを読み出し、それを第2内部データ・バス405(Bバ
ス)に転送し、ここから、それはバレル・シフタ406を介して演算論理ユニッ
ト(ALU)407へ転送されることができ、これには第1内部データ・バス4
09(Aバス)も向けられている。対応的に、コマンド・インタープリタ及び制
御ブロック401は、データ・バスの書込みレジスタ408へのデータの書込み
を制御し、ここからこのデータをデータ・バス404へ転送することができる。
【0047】 演算論理ユニット407において、それ自体としては公知の方法で足し算、引
き算及び論理演算が実行される。演算論理ユニット407から、アドレス・レジ
スタ411と、内部データ・レジスタ(レジスタ・バンク)を有するデータ・レ
ジスタ・ブロック412とへ第3内部データ・バス410(ALUバス)沿いに
データを転送することができる。データ・レジスタ・ブロック412は、データ
を記憶するためのレジスタと、ステータスレジスタと、例えばプログラムメモリ
領域から、例えば通信装置のメモリから、プログラム・コマンドを示すために使
われるプログラム・カウンタ(PC)とを備える。この目的のために、内部アド
レス・バス413がデータ・レジスタ・ブロック412からアドレス・レジスタ
411へ向けられている。
【0048】 アドレス・レジスタ411はアドレス・カウンタ・ブロック414に接続され
ており、該プログラム・カウンタの値は通常は1だけ加算され、プログラム・コ
ードにおいて次に実行されるべきプログラム・コマンドが普通は置かれているプ
ログラム・コードの次の場所を指す。ある状況では、サブプログラム要求又は割
込み要求など、実行されるプログラム・コマンドはプログラム・コード上の他の
場所への転送を生じさせ、コマンド・インタープリタ及び制御ブロックは、この
アドレスをプログラム・カウンタにセットして、それをアドレス・レジスタ41
1の値となるように移す。アドレス・カウンタ・ブロック414から、アドレス
変更バス415がアドレス・レジスタ411及びデータ・レジスタ・ブロック4
12へ向けられている。
【0049】 プロセッサ2は、掛け算及びわり算を実行するための掛け算ブロック416を
更に備える。掛け算ブロック416は第1内部データ・バス409及び第2内部
データ・バス405に接続されている。上記プロセッサ2は、上で紹介したもの
以外の他の接続ラインも備える。しかし、この文脈では、それらについてもっと
詳しく説明する必要はない。
【0050】 プロセッサ2のデータ・レジスタ・ブロック412のデータ・レジスタの一部
は、プロセッサの全ての動作モードで使用され得るものであり、更に種々の動作
モードのために他の動作モードにおいて妨げられているデータ・レジスタが予約
されている。この構成により、特に割込み状態と関連してデータを記憶する必要
を減少させることが可能である。更に、いろいろな動作モードのために特定のス
タックポインタが設けられており、各動作モードは、必要ならば、スタックのた
めに予約されているメモリ17の自分自身の自由に使えるメモリ領域を持つこと
ができる。
【0051】 プロセッサ2は少なくとも3つの動作モード、すなわち、資源の使用が区域に
分けられるユーザ・モード、プロセッサの全ての資源を使うことのできる特権モ
ード(管理モード)、あるいは、プロセッサ2がプログラム・コードの中に未確
認のコマンドを発見している状態で普通は使用される特権モードの特殊なモード
である未定義モード、にセットされ得るものである。この好適な実施形態では、
この未定義モードは、本明細書で後述する1つのモードとして意図的に使用され
る。このプロセッサ2では、未定義モードがこの目的に役立つ。必要ならば、他
の何らかの特権モードを、対応するモードとして使用することができる。更に、
プロセッサ2のために、3種類の割込み、すなわち、高速割込み(FIQ:Fast Int
errupt Request(高速割込み要求)) 、普通の割込み要求(IRQ:Interrupt Requ
est (割込み要求)) 、及びプログラミングされている割込み(SWI:Software I
nterrupt Request(ソフトウェア割込み要求))、を使用することができる。高
速割込みFIQ は普通の割込みIRQ より高い優先レベルを有し、それはプログラミ
ングされている割込みより高い優先レベルを有する。応答時間の見地から、高速
割込みFIQ を用いることによって重大な割込みが有利に整えられる。
【0052】 通信装置1を起動するとき、プロセッサ2の制御下で、好適には通信装置のメ
モリ17に、好適には読出し専用メモリ又は不揮発性ランダムアクセスメモリに
、記憶されている起動プログラム・コードは、例えばメモリ・チェックを実行す
るためのプログラム・コマンドは、起動プログラム・コードに形成される。起動
開始と関連して、ファイルの制御ルーチンがロードされ、オペレーティングシス
テムOS_A 、OS_B のプログラム・コードのメモリ17へのロードは、必要なら
ば、ファイルの制御ルーチンによって実行されることができる。これは、多くの
データ処理装置及びオペレーティングシステムの公知技術である。オペレーティ
ングシステムOS_A 、OS_B のプログラム・コードを読出し専用メモリROM 、不
揮発性メモリNVRAM 又は電気的に消去可能なプログラマブルROM EEPROMに記憶す
ることもできる。オペレーティングシステムOS_A 、OS_B を記憶場所から直接
使用することができる(XIP 技術、正しい場所での実行)。
【0053】 オペレーティングシステムOS_A 、OS_B は、ロードされた後、始動される。
そのとき、第1ステップは、例えば第2オペレーティングシステムOS_B の開始
プログラムを実行することであり、プロセス・テーブル、メモリ領域、割込みサ
ービス・ルーチン、メッセージ・キュー及びオペレーティングシステムの他の対
応する記述子がセットアップされ、デバイス・ドライバ及びデータ・タイプがロ
ードされ、割込みが許容される。次のステップにおいて、第1オペレーティング
システムOS_A の対応する開始動作の実行が開始される。第2オペレーティング
システムOS_B の開始動作が実行されるとき、第1オペレーティングシステムOS
_A の開始動作において、例えばオペレーティングシステムOS_A の割込み機能
、すなわち、割込みの開始及び割込みの終了は、割込みハンドラに動的に結びつ
けられる(例えば、機能の開始アドレスがメモリ17にセットされる)。更に、
第1オペレーティングシステムOS_A のスレッドのスケジューリングのためのイ
ンタフェースが割込みハンドラに形成される。
【0054】 デバイス・ドライバは、特に、周辺装置のモードの初期設定を実行する。メモ
リ領域が通常動作中に必要に応じて割り当てられる(動的割当て)という選択肢
と比べて充分な実行速度を確保するために、好適には一定の領域(静的割当て)
がオペレーティングシステムのデータ・メモリRAMのために予約される。
【0055】 開始動作後、例えばアイドル・スレッドの実行、並びに場合によっては何らか
のアプリケーション・プログラムのロード及び実行が開始される。例えば移動局
機能を開始することが可能であり、そのとき通信装置1はコール、メッセージ、
ファクシミリ等を受け取る準備が整っており、ユーザは、希望するならば、当該
機能が通信装置1でセットアップされているならば、コールを開始したり、メッ
セージ又はファクシミリを送ったりすることができる。
【0056】 本発明の通信装置1での割込みの場合、プロセッサ2は、割り込まれたスレッ
ドの状態を記憶する割込みインタープリタ又はディスパッチャを実行し始める。
その後、ディスパッチャは割込みサービス・ルーチンを開始する。どの割込みサ
ービス・ルーチンが開始されるかは、通常は、割込み要求の原因による。これを
、その内容がその原因を知らせる状態レジスタをプロセッサ2が有することとな
るように、終結させることができる。例えば、キーパッド割込みの結果として、
状態レジスタの対応するビットが他の論理状態に変更され(例えば論理0状態か
ら論理1状態へ)、プロセッサ2はこのレジスタのいろいろなビットを調べて、
対応する割込みサービス・ルーチンを開始する。数個の割込み要求が有効である
状態においては、始めに最高の優先順位を有する割込みサービス・ルーチンが開
始される。
【0057】 自由に使える割込みラインnFIQを数本有するプロセッサ2も知られており、そ
のプロセッサでは割込みラインnFIQの状態の変化は割込み要求をもたらす。各割
込みラインnFIQ、nIRQに特定の割込みサービス・ルーチンを定義することができ
る。更に、それらの割込みサービス・ルーチンのアドレスはテーブルの形をとっ
ていても良く、その場合にはプロセッサ2は割込みに応じてこのテーブルから割
込みサービス・ルーチンの開始アドレスを取りだして、それをそのプログラム・
カウンタの値としてセットし、次に実行されるコマンドはそのアドレスにある。
【0058】 本発明では、割込みFIQ 、IRQ 、SWL について定義されている一部あるいは全
ての割込みサービス・ルーチンを変更することも可能である。例えば、あるアプ
リケーション・プログラムは、割込みFIQ 、IRQ 、SWL との関係で使用されるべ
き新しい割込みサービス・ルーチンを定義することができる。そのアプリケーシ
ョン・プログラムが実行されるとき、プロセッサ2はメモリ17の割込みサービ
ス・ルーチンを修正する。本発明の有利な実施形態では、プロセッサ2は、他の
割込みサービス・ルーチンを使用するべき割込みの開始アドレスだけを修正する
ことが可能である。割込みサービス・ルーチンの実際のコードがメモリ17に記
憶される。このことは、割込みサービス・ルーチンの開始アドレスの何らかの種
類のアドレス・テーブルが存在することを意味する。割込みFIQ 、IRQ 、SWL の
ために、どの割込みサービス・ルーチンを使用するべきか定めるために、上記以
外の他の選択肢もあり得る。
【0059】 割込みサービス・ルーチンに必要とされる動作、例えばキーパッド・バッファ
を呼んだりデータをメモリに記憶したりする動作、が実行される。更に、割込み
サービス・ルーチンは、スレッド又はオペレーティングシステムに伝えられるべ
き信号を形成することができる。本発明の好適な実施形態の通信装置1の動作に
ついて、本明細書において後述する。
【0060】 割込みサービスの応答時間は、通常は、例えば約100マイクロ秒など、上記
スーパースレッド511の応答時間より短い。割込みサービスのこの応答時間に
影響を及ぼす要素は、例えば、プログラム・コードの何らかの部分で割込みがど
のくらいの長さにわたってディスエーブルにされていたかという事実を含む。割
込みキャンセルは、全ての割込み、又は指定されたレベルより低い優先レベルを
有する割込みに関連し、あるいは割込み等のマスクレジスタを通して割込みを一
時的にキャンセルすることができる。従って、割込み要求はメモリにとどまり、
割込みサービス・ルーチンは、この割込み要求について割込みのキャンセルが取
り除かれた段階で実行され、もっと優先レベルの高いスレッドは実行されない。
【0061】 第1オペレーティングシステムOS_A から第2オペレーティングシステムOS_
B への移行は、第1オペレーティングシステムOS_A のスレッドが実行されてい
ないときに行われる。このように、第1オペレーティングシステムOS_A の見地
から、実行はアイドル・スレッドで行われる。
【0062】 通信装置1の動作の間、異なるオペレーティングシステムOS_A 、OS_B で動
作しているアプリケーション同士の間で情報を伝えることが必要となることがあ
る。このことは、特に、両方のオペレーティングシステムOS_A 、OS_B が少な
くとも部分的に共通の資源を使用する状況において必要となる。例えば、キーパ
ッド9、14は共通のキーを含むことができ、あるいは別々のキーパッド9、1
4の代わりに共通のキーパッドを使用することができる。一方、自分自身の接続
インタフェースが異なるオペレーティングシステムOS_A 、OS_B から整えられ
ているような資源の制御を1つのデバイス・ドライバによって行うのが道理にか
なったことであることがしばしばある。これは、2つ以上のオペレーティングシ
ステムOS_A 、OS_B が同時に同じ資源を使おうと試みる状態の制御を容易にす
る。
【0063】 次に、種々のオペレーティングシステムOS_A 、OS_B を考慮して本発明の通
信装置の動作を説明する。本発明のこの好適な実施形態では、第1オペレーティ
ングシステムOS_A はいわゆる実時間オペレーティングシステムであり、そのた
めの一定の実行時間要件が定められている。第2オペレーティングシステムOS_
はその実行時間に関して厳しくはないが、特に使用快適性の見地から第2オペレ
ーティングシステムOS_B も、そのためにセットされている動作を程良い時間内
に実行しなければならない。
【0064】 第1オペレーティングシステムOS_A のスレッドは、例えば埋込みシステムの
設計段階でそれらのために決定された優先順位を有する。優先順位を利用するこ
とにより、重要なスレッドの例えば実行順序及び応答時間に影響を及ぼすことが
可能である。第1オペレーティングシステムのスケジューラSCH _A はそのとき
に最高の優先順位のスレッドを実行ラウンドで最初に動作するスレッドとする。
実用的なシステムでは、このことは、本発明の好適な実施形態の通信装置1が、
プロセッサ2のプログラム・コマンドにより実現されている、第1オペレーティ
ングシステムOS_A のスケジューリング機能を実行することを意味する。スレッ
ドを動作させるとき、プロセッサ2はスレッドにプログラミングされているプロ
グラム・コマンドに従う処置を実行する。
【0065】 第1オペレーティングシステムOS_A で動作しているプロセッサの全てのスレ
ッドTHA1、THA2を実行した後、プロセッサ2は、例えば遅延機能コールDSR (Del
ayed Service Routine)や、待機しているスレッドTHB1、THB2など、第2オペレ
ーティングシステムOS_B の動作の実行に移行する。第1オペレーティングシス
テムOS_A のスレッドTHA1、THA2は、割込み処理の間の短い中断を除いて、常に
動作することを認められる。このことについて、本明細書で後述する。本発明の
この好適な実施形態では、第2オペレーティングシステムOS_B の実行は、第1
オペレーティングシステムOS_A の見地からは、例えばアイドル・スレッドTHA
_IDLEあるいはスーパー・スレッドなど、第1オペレーティングシステムOS_A
の第1スレッドの実行に対応する。これを達成するために、第1オペレーティン
グシステムOS_はアイドル・スレッドTHA _IDLEを表す情報構造(図示せず)を
与えられるが、第1オペレーティングシステムOS_A は本実施形態の実現では適
切なアイドル・スレッドを含んでいない。
【0066】 第2オペレーティングシステムOS_B の実行に移った後、プロセッサ2は、第
2オペレーティングシステムOS_B の動作しているスレッドTHB1、THB2の優先順
位及びスケジューリングの実際に基づいて第2オペレーティングシステムOS_B
のスケジューリング機能を実行する。始めに、遅延サービス・ルーチンDSR のう
ちのあるものが待機している場合、当該遅延サービス・ルーチンDSR が実行され
、その後にスレッドTHB1、THB2の実行が好適には優先順位に従って開始される。
実行されるべきスレッドTHB1、THB2を実行した後、どのスレッドTHB1、THB2もラ
ン・モード下ではなくて、プロセッサ2は新しい実行ラウンドが必要となるまで
残っている第2オペレーティングシステムOS_B のアイドル・スレッドTHB _ID
LEへ移行する。
【0067】 第2オペレーティングシステムOS_B の実行中、第1オペレーティングシステ
ムOS_A への変更がほとんど何時でも行われ得る。これは、割込み要求に起因し
てプロセッサ2が割込みサービス・ルーチンの実行に移るように行われるのが有
利であり、第1オペレーティングシステムOS_A は後述するように起動される。
第2オペレーティングシステムOS_B への復帰は、第1オペレーティングシステ
ムOS_A での実行がアイドル・スレッドTHB1、THB2THA _IDLEへ進んだ段階で行
われる。第1オペレーティングシステムOS_A の実行は、第2オペレーティング
システムOS_B の見地から、割込みサービス・ルーチンを動作させる。
【0068】 本発明の目的は、種々のオペレーティングシステムOS_A 、OS_B のプログラ
ム・コードがなるべく小さく、かつ、オペレーティングシステムOS_A 、OS_B
の特性がアプリケーション開発者の見地から著しく変化しないように、オペレー
ティングシステムOS_A 、OS_B の接続を実現することである。本発明の好適な
実施形態の通信装置では、接続は割込みサービス・ルーチンのレベルでなされる
。装置割込みFIQ 、IRQ 又はプログラム割込みSWI が生じると、プロセッサ2は
割込みサービス・ルーチンの実行へ移行する。このプログラムは全ての割込みに
共通であっても良く、その場合にはレジスタ等を調べることによりプロセッサ2
のコマンド・インタープリタ及び制御ブロック401は、必要ならば割込みの原
因を推定することができ、あるいは、異なる装置割込みFIQ 、IRQ 又はプログラ
ム割込みSWI のために数個の異なる割込みサービス・ルーチンがあっても良い。
割込みサービス・ルーチンの始まりのときに、割込み開始ルーチンに加えてプロ
グラム・コール(機能コール)があり、オペレーティングシステムOS_A 、OS_
B の内部ステータスは変更され、オペレーティングシステムOS_A 、OS_B のデ
ータは、割込みサービスが動作していることを知らせる。割込みサービス・ルー
チンへの移転、サブプログラムの実行、状態データの調査、及び他の対応する動
作は、コマンド・インタープリタ及び制御ブロック401の制御下で行われるが
、それについては本明細書で前に説明してあって、当業者に知られている技術で
ある。
【0069】 その後、割込みハンドラの機能が実行されるが、それは、プロセッサ2に来て
いる割込みのために決定されているプログラム・コマンドをコマンド・インター
プリタ及び制御ブロック401が実行することを意味し、それらのプログラム・
コマンドは好適にはメモリ17に記憶される。割込みハンドラにおいて、例えば
、割込みを生じさせた原因が調べられて、割込み処理が第1オペレーティングシ
ステムOS_A 又は第2オペレーティングシステムOS_B の実行を必要とするか否
かが推定される。もしそれぞれの割込み処理が第1オペレーティングシステムOS
_A の実行を必要とするならば、割込みハンドラは、そのことについての情報を
第1オペレーティングシステムOS_A のスケジューラSCH _A にセットする。も
し割込み処理が第2オペレーティングシステムOS_B のスレッドの実行を必要と
するならば、割込みハンドラは第1オペレーティングシステムOS_A のスレッド
の実行後に実行されるべき遅延サービス・ルーチンDSR を形成する。その遅延サ
ービス・ルーチンDSR は、第1オペレーティングシステムOS_A の動作している
スレッドを通して形成されても良い。この遅延サービス・ルーチンDSR は、割込
み処理が第2オペレーティングシステムOS_B の一定のスレッドの実行を必要と
することを第2オペレーティングシステムOS_B のスケジューラSCH _B に知ら
せることができる。ある状況では、割込みハンドラが遅延サービス・ルーチンDS
R を使用せずに第2オペレーティングシステムのスケジューラSCH _B にこのデ
ータをセットすることも可能である。
【0070】 割込みサービス・ルーチンでは、データがアドレス指定されているアプリケー
ション・プログラムのスレッドが実行段階にある段階で、データが読まれるバッ
ファにデータを読み出すなどの他の動作を実行することも可能である。
【0071】 割込みプログラムの終わりに割込み終了機能要求が加えられており、それには
、例えば割込みサービス・ルーチンの実行が終わっているという情報がセットさ
れる。更に、この機能は、割込みサービスにおいて、第1オペレーティングシス
テムOS_A のスケジューラSCH _A からスレッドまでの実行時間を必要とする第
1オペレーティングシステムOS_A のいずれかのルーチンが実行されたか否かと
いう情報を報告する。割込みサービス・ルーチンの終了後、プロセッサ2のモー
ド及び第1オペレーティングシステムOS_A のステータスは変更される。割込み
処理が第1オペレーティングシステムOS_A のスレッドの実行を必要とする原因
となる場合には、実行される次のプログラムは第1オペレーティングシステムOS
_A のスケジューラ・プログラムであり、それでは、例えばバッファの情報を読
むなどの、割込みに起因する処置がなされるスレッドに新しいステータス(レデ
ィ) が与えられる。第1オペレーティングシステムOS_A のスケジューラSCH _
A は、実行のために、優先順位に従って、実行待ち(レディステータス)の第1
オペレーティングシステムOS_A のスレッドを制御する。
【0072】 第1オペレーティングシステムOS_A の割込みサービスにあるかあるいは動作
している第1オペレーティングシステムOS_A のスレッドにおいて、ある状態で
は遅延サービス・ルーチンDSR を形成することが可能であり、その場合、第2オ
ペレーティングシステムOS_B のスレッドのステータスは変更される。遅延サー
ビス・ルーチンDSR は、実行待ちだった第1オペレーティングシステムOS_A の
スレッドをプロセッサ2が全て実行した後に、処理される。遅延サービス・ルー
チンの処理後に、第2オペレーティングシステムOS_B の実行を有利には優先順
位に従って待っているスレッドを動作させるために、第2オペレーティングシス
テムOS_B のスケジューラ・ルーチンが更に実行される。
【0073】 上記処置の実行中、新しい割込みが発生する可能性があり、その場合には動作
は再び割込み処理に移行し、その後の動作は上記原理に従って行われる。
【0074】 動作は、そのときに最高の実効優先順位を有する動作が行われるように割込み
が継続された後に、行われる。これは、割込みの時点でプロセッサ2が動作して
いた段階により、またその割込みの原因により、左右される。付随する図6a〜
6iにいろいろな状態が示されており、次に、これについて詳しく説明する。埋
込みシステム1の例は、移動局機能及びデータ処理機能の両方が例えばパーソナ
ルディジタルアシスタントPDA の機能として実現されている通信装置である。通
信装置のプロセッサ2において、2つのオペレーティングシステムOS_A 、OS_
B が使用される。第1オペレーティングシステムOS_A は、主として移動局機能
の制御及び使用に関連する。第2オペレーティングシステムOS_B は、主として
データ処理機能の制御及び使用に関連する。
【0075】 図6a〜6hの例示状態では、状態はいわゆる通常割込みIRQ (割込み要求)
に関する。本発明の好適な実施形態のこの通信装置1では、いわゆる高速割込み
FIQ(Fast Interrupt Request) を使用することもでき、それは図6iの例に示さ
れている。高速割込みの優先順位は、有利には通常割込みIRQ のそれより高い。
更に、ソフトウェア割込みも利用することができ、これは通常割込みIRQ よりも
低い優先順位を有利には有する。付随する図6a〜6iに示されている高速割込
みFIQ 及びプログラム割込みSWI にも適合させられることができるので、本明細
書では主として通常割込みIRQ のみについて説明する。
【0076】 遅延サービス・ルーチンは第2オペレーティングシステムOS_B のものであり
、それを例えばいろいろなスレッド間で、また、必要ならば、いろいろなオペレ
ーティングシステムOS_A 、OS_B 間でのメッセージ転送に使用することができ
る。遅延サービス・ルーチンDSR は、第2オペレーティングシステムOS_B のス
レッドのステータスを実行待ち状態(レディ状態)に変更する。第2オペレーテ
ィングシステムOS_B の遅延サービス・ルーチンDSR の優先順位はスレッドのそ
れより高いので、それらは第2オペレーティングシステムOS_B のスレッドが動
作させられる前に処理される。
【0077】 プロセッサ2は、この例では、次のモード、 ユーザ・モードUSER、 特権モードSVC 、 未定義モードUND 、 高速割込みモードFIQ 、 通常割込みモードIRQ 、及び ソフトウェア割込みモードSWI を備える。
【0078】 未定義モードUND は、本発明のこの好適な実施形態では通常ラン・モードとし
て使用されるが、本例で使用されるプロセッサ2におけるそのデフォルト値アプ
リケーションは未定義モードである。
【0079】 図6aは、通常割込みと関連してプロセッサ2が第2オペレーティングシステ
ムOS_B (ブロック601)のもとでスレッドTHB1を実行する状態を示しており
、それは通信装置1のデータ処理機能において例えばユーザにより起動されるア
プリケーション・プログラムに関連するプロセスを備える。プロセス2はユーザ
・モードUSERになっている。通常割込みは、モードを通常割込みモードに変化さ
せ、プロセッサ2は通常割込み機能を開始させ(ブロック602)、その後に通
常割込みのサービス・プログラムを動作させる(ブロック603)。割込みは第
1オペレーティングシステムOS_A のスレッドを動作させる必要を生じさせなく
て、第1オペレーティングシステムのスケジューラSCH _A は割込み後に呼び出
されない。この割込みでは、遅延サービス要求DSR も形成されない。割込み処理
の終わりに、通常割込み機能の終わり(ブロック604)が呼び出され、割込み
が終了したという情報が設定される。通常割込みのサービス・プログラムが終了
した後、プロセッサ2のモードはユーザ・モードUSERに戻される。実行は、第2
オペレーティングシステムOS_B の割り込まれたスレッドTHB1(ブロック605
)から続けられる。
【0080】 割込みは、例えば、通信装置1の蓋(図示せず)の開放により引き起こされ、
このときこの蓋の位置を示すスイッチS1がそのステータスを変化させ、例えば
それは開き、プロセッサ2は、スイッチS1に接続されている識別ライン20の
論理状態(0/1)を読むことによってスイッチの位置を調べる。この場合、蓋
の開放は何らの即時動作も引き起こしていない。
【0081】 図6bは通常割込みと関連してプロセッサ2が第1オペレーティングシステム
OS_A の第1アイドル・スレッドTHA _IDLEを動作させている状態を示している
。この状態では、モードは未定義モードUND から通常割込みモードIRQ に変化し
、プロセッサ2は通常割込み機能の始まり(ブロック602)の動作に移行し、
その後に通常割込みのサービス・プログラムを動作させる。割込みは第1オペレ
ーティングシステムOS_A のスレッドを動作させる必要を何ら引き起こしていな
くて、第1オペレーティングシステムOS_A のスケジューラSCH _A は割込み後
に呼び出されない。該割込みでは、遅延サービス・ルーチンDSR も形成されてい
ない。割込みが終了した後、通常割込み機能の終わり(ブロック604)が要求
され、割込みが終了しているという情報が確立される。通常割込みのサービス・
プログラムが終了したとき、プロセッサ2のモードは未定義モードUND に戻され
る。実行は、アイドル・スレッドTHA _IDLEから続けられる(ブロック605)
【0082】 割込みIRQ は、例えば、ユーザが開放状態の通信装置1の蓋でデータ処理機能
のキーパッド14の1つのキーを押すことによって引き起こされる。割込みハン
ドラは、この状態でそれぞれのキーを押す動作が移動局機能の動作に何らかの影
響を及ぼすか否か調べて、否であることを確かめ、そのときこの割込みは移動局
機能における処置を引き起こしていない。
【0083】 図6cは、通常割込みの場合にプロセッサ2が第2オペレーティングシステム
OS_B のもとでスレッドTHB1を動作させる状態(ブロック601)を示しており
、そのスレッドは、例えば、データ処理機能の、ユーザによって起動されるアプ
リケーション・プログラムと関連するプロセスを備える。この状態は、図8の矢
印図によっても示されている。プロセッサ2はユーザ・モードUSERになっている
。モードは通常割込みモードIRQ に変化し、プロセスは通常割込み機能の始まり
の動作に移行し(ブロック602)、その後に通常割込みのサービス・プログラ
ムに移行する(図6cのブロック603、図8の矢印801及び802)。割込
みは第1オペレーティングシステムOS_A の少なくとも1つのスレッドを動作さ
せる必要を引き起こしているけれども、遅延サービス・ルーチンDSR はこの割込
みでは形成されていない。割込みが終了した後(矢印803)、通常割込み機能
の終わり(ブロック604)が呼び出され、割込みの終わりの情報がセットされ
る。通常割込みのサービス・プログラムが終了した後、プロセッサ2のモードは
未定義モードUND に変更され、同時に第1オペレーティングシステムのスケジュ
ーラSCH _A が呼び出され、このスケジューラは必要ならばスレッドについて与
えられたステータスをセットする(図6cのブロック608、図8の矢印804
)。その後、実行待ちをしている第1オペレーティングシステムOS_A のスレッ
ド(レディ・モード・スレッド)が動作させられる(矢印805〜808)。そ
の後、動作するべく待機しているスレッドが無いとき、プロセッサ2のモードは
ユーザ・モードUSERに戻され、実行は第2オペレーティングシステムOS_B の割
り込まれたスレッドTHB1から続けられる(図6cのブロック605、図8の矢印
809、810、及び811)。
【0084】 この状態を示す例では、無応答のコールが通信装置1により受信される。移動
局機能の表示装置10及びデータ処理機能の表示装置15は、例えば「1無応答
コール」等のテキストなど、受信され、応答されないコールについてのメッセー
ジを表示する。ユーザはデータ処理機能の入力キー(図示せず)を押し、通常割
込み IRQが形成される。割込み処理では、移動局機能の表示装置10から当該テ
キストを消すことのできる第1オペレーティングシステムOS_A のスレッドがラ
ン・モードを待つ状態にセットされる。割込みが終了した後、プロセッサ2は第
1オペレーティングシステムのスケジューラSCH _A の動作に移行し、第1オペ
レーティングシステムOS_A は、ラン・モードに到達した後、当該テキストを移
動局機能の表示装置10から消去することができる。
【0085】 図6dは、通常割込みが発生したときにプロセッサ2が第2オペレーティング
システムOS_B のもとでスレッドTHB1を動作させていて(ブロック601)、ユ
ーザ・モードUSERにセットされる状態を示している。モードは通常割込みモード
IRQ に変更され、プロセッサ2は通常割込み機能の始まり(ブロック602)の
動作に移行し、その後に通常割込みのサービス・プログラムに移行する(ブロッ
ク603)。この割込みは第1オペレーティングシステムOS_A の少なくとも1
つのスレッドを動作させる必要を生じさせている。更に、割込みでは、及び/又
は、割込み後に動作する第1オペレーティングシステムOS_A の何らかのスレッ
ドでは、遅延サービス・ルーチンDSR が形成されている。
【0086】 割込みが終了した後、通常割込み機能の終わり(ブロック604)が呼び出さ
れ、該割込みの終了の情報がセットされる。通常割込みのサービス・プログラム
が終了した後、プロセッサ2のモードは未定義モードUND にセットされ、第1オ
ペレーティングシステムのスケジューラSCH _A が呼び出され、これは、必要な
らば、スレッドに新しい状況をセットし、動作されるべく待機している第1オペ
レーティングシステムOS_A のスレッドをそのスケジューリング処理手順に従っ
て実行されるように指揮する(ブロック608)。実行待ちの状態にとどまって
いる第1オペレーティングシステムOS_A のスレッドが無かった後、第2オペレ
ーティングシステムOS_B の遅延サービス・ルーチンDSR が処理され、その後、
プロセッサ2のモードはユーザ・モードUSERに戻され、ステータスの遅延サービ
ス・ルーチンにより変更された第2オペレーティングシステムOS_B のスレッド
は第2オペレーティングシステムOS_B の割り込まれたスレッドTHB1より低い優
先順位を有するので、実行は第2オペレーティングシステムOS_B の割り込まれ
たスレッドTHB1から継続される(ブロック605)。
【0087】 言及できる1例は、ユーザがデータ処理機能のキーパッド14によりショート
メッセージ(SM)を書いた場合である。送信キー(図示せず)を押す動作は通
常割込みIRQ を生じさせる。割込み処理では、第1オペレーティングシステムOS
_A のスレッドはバッファから送信されるべきメッセージを読み出して送信する
ラン・モードを待つ状態にセットされ、データ処理機能の表示装置15にアイコ
ンが形成され、これにより、メッセージが送信されることがユーザに知らされる
。割込みが終了した後、プロセッサ2は第1オペレーティングシステムOS_A 、
OS_B のスケジューラSCH _A の動作に移行し、第1オペレーティングシステム
OS_A のスレッドはラン・モードでメッセージを送信し、その後に遅延サービス
・ルーチンDSR が形成されてアイコンを消す。その後、第2オペレーティングシ
ステムのスケジューラSCH _B はラン・モードに第2オペレーティングシステム
OS_B の割り込まれたスレッドTHB1をセットするが、その理由は、この実例とし
ての状態においては、その優先順位が第2オペレーティングシステムOS_B のア
イコン消去スレッドの優先順位より高いことである。後に、このスレッドは、ラ
ン・モードに達して当該テキストをデータ処理機能の表示装置15から消去する
【0088】 図6eは、通常割込みが来るときにプロセッサ2が第1オペレーティングシス
テムOS_A のアイドル・スレッドTHA _IDLE(ブロック606)を動作させてい
て未定義モードUND にセットされる状態を示している。従って、モードは通常割
込みモードIRQ に変更され、プロセッサ2は通常割込み機能の始まり(ブロック
602)を動作させ始め、その後に通常割込みのサービス・プログラムに移る(
ブロック603)。割込みは、第1オペレーティングシステムOS_A の少なくと
も1つのスレッドを動作させる必要を生じさせている。更に、割込み及び/又は
第1オペレーティングシステムOS_A のスレッドにおいて遅延サービス・ルーチ
ンDSR が形成され、それは更に第2オペレーティングシステムOS_B の1つまた
はそれより多いスレッドのステータスの実行待ち(レディ)への変更を引き起こ
させる。割込みが終了した後、通常割込み機能の終わり(ブロック604)が呼
び出され、それに割込みの終了についての情報がセットされる。通常割込みのサ
ービス・プログラムが終了した後、プロセッサ2のモードと第1オペレーティン
グシステムOS_A のステータスとが変更される。プロセッサ2のモードは未定義
モードUND に変更され、その後に第1オペレーティングシステムのスケジューラ
SCH _A (ブロック608)が要求され、それはスレッドをその順番のときにラ
ン・モードにセットする、すなわち、実行待ちをしている(レディ・モードで)
第1オペレーティングシステムOS_A のスレッドが動作させられる。実行待ちを
している第1オペレーティングシステムOS_A のスレッドが無くなった後、第2
オペレーティングシステムOS_B の遅延サービス・ルーチンDSR が処理され(ブ
ロック609)、その後に第2オペレーティングシステムOS_B のスケジューラ
SCH _B が呼び出され(ブロック610)、それは、第2オペレーティングシス
テムOS_B の動作順序で、好適には優先順位の順に、実行待ちをしている第1ス
レッドをラン・モードにセットする。その後に、プロセッサ2のモードはユーザ
・モードUSERに戻され、動作は、そのときに最高の優先順位を有する第2オペレ
ーティングシステムOS_B のスレッドTHB1(ブロック605)から継続する。第
2オペレーティングシステムのスケジューラSCH _B は、スレッドの動作をその
スケジューリング原理に従って制御する。
【0089】 例示状況において、通信装置1にショートメッセージが到着しており、それは
、移動局機能の表示装置10及びデータ処理機能の表示装置15上のアイコンに
より示される。ユーザは移動局機能のキーパッド9上の読出しキー(図示せず)
を押し、それは通常割込みIRQ を生じさせる。この割込み処理では、第1オペレ
ーティングシステムOS_A の1つ又は複数のスレッドは、移動局機能の表示装置
10からアイコンを消去するためと共に受信したメッセージを移動局機能の表示
装置10で表示するために、ラン・モードを待つ状態にセットされる。更に、こ
のアイコンをデータ処理装置の表示装置15から消去するために遅延サービス・
ルーチンDSR が形成される。プロセッサ2は、割込み後に、第1オペレーティン
グシステムOS_A のスケジューリング機能を動作させ、遅延サービス・ルーチン
DSR を処理し、第2オペレーティングシステムOS_B のスケジューリング機能を
動作させ始め、第2オペレーティングシステムのスレッドは、実行に至った後、
データ処理機能の表示装置15からアイコンを消去する。
【0090】 図6fは、通常割込みが来るとき、プロセッサ2が第2オペレーティングシス
テムOS_B のスレッドTHB1を実行し(ブロック601)、ユーザ・モードUSERに
セットされる状態を示している。モードは通常割込みモードIRQ に変化し、プロ
セッサ2は通常割込み機能の始まりを動作させ(ブロック602)、その後に通
常割込みのサービス・プログラムに移行する(ブロック603)。割込みは、第
1オペレーティングシステムOS_A の少なくとも1つのスレッドを動作させる必
要を生じさせる。更に、割込みにおいて、及び/又は、割込み後に動作している
第1オペレーティングシステムOS_A のスレッドにおいて、遅延サービス要求DS
R が形成され、それは、更に、第2オペレーティングシステムOS_B のスレッド
の実行時間のリセットを引き起こす。割込みが終了した後、通常割込み機能の終
わり(ブロック604)が呼び出され、それにこの割込みの終わりの情報がセッ
トされる。通常割込みのサービス・プログラムが終了した後、プロセッサ2のモ
ードと第1オペレーティングシステムOS_A のステータスとが変更される。プロ
セッサ2のモードは未定義モードUND に変更され、その後に第1オペレーティン
グシステムのスケジューラSCH _A が呼び出され、それは、必要ならば(ブロッ
ク608)、スレッドに新しい状況をセットする。その後、実行待ちをしている
第1オペレーティングシステムOS_A のスレッドが動作される(レディ・モード
のスレッド)。その後、動作されるべきスレッドが残っていなくなったとき、第
2オペレーティングシステムOS_B の遅延サービス・ルーチンDSR が処理され(
ブロック609)、その後に第2オペレーティングシステムOS_B のスケジュー
ラSCH-B が呼び出され(ブロック610)、それは、動作順序の第1位置で待機
している第2オペレーティングシステムOS_B のスレッドをラン・モードで実行
されるようにセットする。本例では、割込み処理に起因して、割込みされたスレ
ッドTHB1はラン・モードに移行するものには未だなっていなくて、そのステータ
スがラン待ちに変更されたこの第2動作モードOS_B の他のスレッドTHB2になっ
ている。プロセッサ2のモードはユーザ・モードUSERに戻され、その後にプロセ
ッサ2は、ラン・モードにセットされたスレッドTHB2を動作させ始める(ブロッ
ク611)。割込みされたスレッドTHB1はその番が来るとラン・モードにセット
される(ブロック605)。
【0091】 上記の実例は、ユーザがデータ処理機能のキーパッド14を使ってショートメ
ッセージを書いて充電装置(図示せず)を通信装置1に接続する状態である。そ
れは通常割込みIRQ を引き起こす。割込み処理において、第1オペレーティング
システムOS_A の、充電が実行されることを知らせるアイコンを移動局機能の表
示装置10上に形成するスレッドは、ラン・モードを待つ状態にセットされる。
更に、遅延サービス・ルーチンDSR によって、対応するアイコンがデータ処理機
能の表示装置15上に形成される。
【0092】 図6gは通常割込みが来るとき、プロセッサ2が第1オペレーティングシステ
ムOS_A のもとでスレッドTHA1を動作させている状態(ブロック612)を示し
ており、それは例えば通信装置1の移動局機能における接続確立アプリケーショ
ンである。プロセッサ2は未定義モードUND になっている。モードは通常割込み
モードIRQ に変化し、プロセッサ2は通常割込み機能の始まりを動作させ始め(
ブロック602)、その後に通常割込みのサービス・プログラムに移行する(ブ
ロック603)。この割込みは第1オペレーティングシステムOS_A のスレッド
を動作させる必要を生じさせてはいなくて、割込み後、第1オペレーティングシ
ステムのスケジューラSCH _A は呼び出されない。割込みが終了した後、通常割
込み機能の終わりが呼び出され(ブロック604)、それに割込みの終了につい
ての情報がセットされる。通常割込みの終了後、プロセッサ2のモードと第1オ
ペレーティングシステムOS_A のステータスとが変更される。プロセッサ2のモ
ードは未定義モードUND に戻され、動作は、割込みされたスレッドTHA1から続け
られる(ブロック613)。第2オペレーティングシステムOS_B の遅延サービ
ス・ルーチンDSR が割込みで形成されたが、それらは、第1オペレーティングシ
ステムOS_A の全ての動作しているスレッドが実行される前には処理に至らない
【0093】 ユーザは例えば電話番号をダイヤルし、その場合にキーを押す動作は通常割込
みIRQ を生じさせる。割込み処理において、キーを押す動作がメモリ17に読み
込まれて、移動局機能の表示装置10からプリントされ、次のキー押しを待つた
めにリターンがなされる。
【0094】 図6hは、通常割込みが到来し、プロセッサ2が第1オペレーティングシステ
ムOS_A 下でスレッドTHA1を動作させている状態を示しており(ブロック612
)、それは例えば通信装置の移動局機能の接続確立アプリケーションである。プ
ロセッサは未定義モードになっている。モードは通常割込みモードIRQ に変化し
、プロセッサ2は通常割込み機能の始まりを動作させ始め(ブロック602)、
その後に通常割込みのサービス・プログラムに移行する(ブロック603)。割
込みは、第1オペレーティングシステムOS_A の少なくとも1つのスレッドを動
作させる必要を生じさせている。割込みが終了した後、通常割込み機能の終わり
(ブロック604)が呼び出され、割込みの終了についての情報がセットされる
。通常割込みのサービス・プログラムの終了後に、プロセッサ2のモードと第1
オペレーティングシステムOS_A のステータスとが変更される。プロセッサ2の
モードは未定義モードUND に変更され、その後、第1オペレーティングシステム
のスケジューラSCH _A が要求され、それは、必要ならば、スレッドについて新
しい状況をセットする(ブロック608)。その後、実行待ちをしている(レデ
ィ・モードの)第1オペレーティングシステムOS_A のスレッドが優先順位に従
って動作される。この例では、割込みは第2スレッドTHA2を直ぐに実行へ移行さ
せ(ブロック614)、割込みされたスレッドTHA1は、場合によっては後で実行
される番になる(ブロック613)。第2オペレーティングシステムOS_B の遅
延サービス・ルーチンDSR が該割込みで形成されたが、それらは、第1オペレー
ティングシステムOS_A の全ての動作するスレッドが実行される前には動作させ
られない。
【0095】 ユーザは、例えば、電話番号をダイヤルし、通常割込みIRQ を生じさせるハン
ドセット・アップ・キー(図示せず)を押している。割込み処理後、第1オペレ
ーティングシステムのスケジューラSCH _A は接続確立スレッドを実行にセット
する。
【0096】 図6i は、通常割込みサービス・ルーチンが動作しているとき(ブロック61
5)、高速割込みFIQ が到来する状態を示している。プロセッサ2は通常割込み
モードIRQ になっていて、高速割込みモードFIQ に移行して高速割込み機能の始
まり(ブロック616)を動作させ、その後に高速割込みFIQ のサービス・プロ
グラムに移行する(ブロック617)。高速割込み処理が終了した後、高速割込
み機能の終わり(ブロック618)が呼び出され、それに高速割込みFIQ の終わ
りについての情報がセットされる。高速割込みのサービス・プログラムが終了し
た後、第1オペレーティングシステムOS_A のステータスとプロセッサ2のモー
ドとは通常割込み状態IRQ に戻され、その後に動作は割込みされた場所から続く
(ブロック619)。
【0097】 この状態の例を挙げると、プロセッサ2はキーパッド9、14の割込み処理を
動作させていて、そのとき通信装置に、例えばアプリケーション特有の集積回路
3に、設けられているタイマ(図示せず)が高速割込みFIQ を形成する。プロセ
ッサ2はこのタイマの値を読み取り、それをメモリ17に記憶する。その後、プ
ロセッサ2はキーパッド9、14の割込み処理に戻る。
【0098】 プロセッサ2の上記モード変更と関連して、プロセッサ2はいろいろなレジス
タの使用を有利に開始し、その場合、一時記憶場所へのデータの転送は必ずしも
常に必要とは限らない。しかし、ある割込み状態ではデータ転送が必要になるこ
とがあり、それは割込みの処理をある程度遅らせる。また、プロセッサ2として
使われるあるマイクロプロセッサは上記のモードの全部を持ってはいなくて、そ
のいろいろなモードをモード変数等によって表示することができる。
【0099】 ときには、第2オペレーティングシステムOS_B への応答時間を決定すること
が必要となる。第1オペレーティングシステムのスケジューラSCH _A は、第2
オペレーティングシステムOS_B のために残っている実行時間が応答時間が必要
とする時間より短くなるという状態においては第1オペレーティングシステムOS
_A のアイドル・スレッドTHA _IDLEの優先順位を高めることができる。第1オ
ペレーティングシステムOS_A のアイドル・スレッドTHA _IDLEは、他のあまり
重要でないスレッドの前に動作の順番となり、それは第2オペレーティングシス
テムOS_B の動作への移行を引き起こす。この優先レベルの上昇は、例えば、所
定時間後に割込みするようにセットされたタイマによって引き起こされる。タイ
マ割込みに至るときにプロセッサ2が第1オペレーティングシステムOS_A のア
イドル・スレッドTHA _IDLEに達していない場合には、第1オペレーティングシ
ステムのスケジューラSCH _A が呼び出され、それはアイドル・スレッドTHA _
IDLEの優先順位を高める。しかし、この文脈では、第1オペレーティングシステ
ムOS_A のあまり重要でないタスクにも定期的に実行時間が与えられるように、
アイドル・スレッドTHA _IDLEの優先順位をそのときに短い時間にわたって高め
ておくのが有利であることに注目されたい。第1オペレーティングシステムOS_
A の重要なスレッドが実行されなければならないので、アイドル・スレッドTHA
_IDLEの優先順位を余りに高いレベルまで高めることはできない。この種のスケ
ジューリングはインターリーブ・スケジューリングとも称され得る。
【0100】 付随する図9及び10は、上記のインターリーブ・スケジューリング・オプシ
ョンの例を示している。図9には実例としての状態のタイミング図が記述されて
おり、その状態では、第1オペレーティングシステムOS_A で操作しているプロ
セスの動作中のスレッドTHA1、THA2、THA3と、第2オペレーティングシステムOS
_B の動作中のスレッドTHB1、THB2、THB3とが実行される。図10には、インタ
ーリーブ・スケジューリングを更に明らかにするために第1オペレーティングシ
ステムOS_A のプロセス図が記述されている。
【0101】 この例示図では、第1オペレーティングシステムOS_A で動作するプロセスの
3つのスレッドTHA1、THA2、THA3と、第2オペレーティングシステムOS_B で動
作する3つのスレッドTHB1、THB2、THB3とが示されているが、オペレーティング
システムOS_A 、OS_B で動作するスレッドはもっと多くても良いし、もっと少
なくても良いことが理解できよう。
【0102】 第1オペレーティングシステムOS_A の第1スレッドTHA1は、例えば、電話ア
プリケーションであり、非常に高い優先順位を有する。第1オペレーティングシ
ステムOS_A の第3スレッドTHA3は、例えばユーザインタフェースのために設け
られる。第2スレッドTHA2の優先順位は第1スレッドTHA1の優先順位より低く、
第3スレッドTHA3の優先順位は第1オペレーティングシステムOS_A の第2スレ
ッドTHA2の優先順位より低い。
【0103】 第2オペレーティングシステムOS_B の第1スレッドTHB1は、例えば、インタ
フェース・ブロック16を介する通信のためのプログラムである。第2オペレー
ティングシステムOS_B の第2スレッドTHB2及び第3スレッドTHB3は、例えばノ
ートパッド・アプリケーション及びカレンダー・アプリケーションなどの、PD
Aアプリケーションである。この例では、第2オペレーティングシステムOS_B
の第1スレッドTHB1の優先順位は第2オペレーティングシステムOS_B の第2ス
レッドTHB2の優先順位より高く、第2オペレーティングシステムOS_B の第3ス
レッドTHB3の優先順位は、これら3つのスレッドのうちで最低であるということ
が仮定されている。
【0104】 図9では、スレッドの実行は太い線として示されている。例えば、時点t1に
おいて第1オペレーティングシステムOS_A の第2スレッドTHA2が動作する番と
なる。これは参照符号901で指示されている。後の時点t2において第1オペ
レーティングシステムOS_A の第3スレッドTHA3が動作する番902となる。こ
れは第1オペレーティングシステムOS_A のアイドル・スレッドTHA _IDLEの前
の最後のスレッドであるということも仮定されている。従って、しばらく後に、
インタフェース・ブロック16を介して通信する必要があるか否か調べるために
、第2オペレーティングシステムOS_B の第1スレッドTHB1が時点t3で動作す
る番903となる。後の時点t4で第2オペレーティングシステムOS_B の第2
スレッドTHB2が動作する番904となる。第2オペレーティングシステムOS_B
の第3スレッドTHB3のためのある程度の実行時間905が時点t5に残っている
。この例では、動作する番906に至る次のスレッドは時点t6で第2オペレー
ティングシステムOS_B の第1スレッドTHB1である。
【0105】 上記状態が、図10にも、時点t7から左に、示されている。スレッドTHA1、
THA2、THA3、スケジューラSCH _A 、割込みサービス・ルーチンISR 、割込みベ
クトル及びその他の第1オペレーティングシステムのサービスが図10にブロッ
クとして示されている。図10においてスレッドの優先順位は、最高のスレッド
が最高の優先順位を持つように配置されている。第1オペレーティングシステム
OS_A のアイドル・スレッドTHA _IDLEは最低の優先順位を有する。時点t7にお
いて第1オペレーティングシステムOS_A のスケジューラSCH _A は第1オペレ
ーティングシステムOS_A のアイドル・スレッドTHA _IDLEの優先順位をしばら
くの間変化させる。この状態は図10において時点t7から右に示されている。
時点t11で第1オペレーティングシステムOS_A のスケジューラSCH _A は第
1オペレーティングシステムOS_A のアイドル・スレッドTHA _IDLEの優先順位
を最低優先順位に戻す。第1オペレーティングシステムOS_A のアイドル・スレ
ッドTHA _IDLEの優先順位の変更を例えばタイマにより、何らかのイベント等に
より、配置することができる。
【0106】 ユーザは、例えば第2インタフェースU12 のどれかのキーを押す。従って、第
1オペレーティングシステムOS_A の第3スレッドTHA3は時点t8で再び動作す
る番907になる。スケジューラSCH _A は第1オペレーティングシステムOS_
A のアイドル・スレッドTHA _IDLEの優先順位を上げている。インタフェース・
ブロック16を介する伝送が必要である間、第1オペレーティングシステムOS_
A の第3スレッドTHA3が動作している。これに起因して割込みが生じ、アイドル
・スレッドTHA _IDLEの優先順位がこの時点t9においては第1オペレーティン
グシステムOS_A の第3スレッドTHA3の優先順位より高いので、第1オペレーテ
ィングシステムOS_A の第3スレッドTHA3の実行は割込みされ、第2オペレーテ
ィングシステムOS_B の第1スレッドTHB1が動作する番908となる。第2オペ
レーティングシステムOS_B の第1スレッドTHB1の実行後、第1オペレーティン
グシステムOS_A の第3スレッドTHA3の実行が時点T10から続く909。
【0107】 スケジューラSCH _A は、この例では時点t11で第1オペレーティングシス
テムOS_A のアイドル・スレッドTHA _IDLEの優先順位を最低レベルに落とす。
【0108】 第1オペレーティングシステムOS_A の第3スレッドTHA3の実行は、時点t1
2において、実行910されるように信号されている、より高位の優先順位スレ
ッドがあるので、再び割込みされる。このスレッドは例えば第1オペレーティン
グシステムOS_A の第2スレッドTHA2である。
【0109】 時点T13において、より高位の優先順位のスレッド、実行911されるべく
信号されている第1オペレーティングシステムOS_A の第1スレッドTHA1、があ
るので、第1オペレーティングシステムOS_A の第2スレッドTHA2の実行は割込
みされる。
【0110】 第1オペレーティングシステムOS_A の第1スレッドTHA1が時点T14で実行
され終わった後、第1オペレーティングシステムOS_A の第2スレッドTHA2の実
行が続く912。
【0111】 時点t15において第1オペレーティングシステムの第2スレッドTHA2の実行
が終了する。同じ時点t15において、第2オペレーティングシステムの第1ス
レッドTHB1が動作可能になる。しかし、時点t15から第1オペレーティングシ
ステムOS_A の第3スレッドTHA3の実行が続く913。これは、時点t9での先
の挙動とは反対である。
【0112】 第1オペレーティングシステムOS_A の第2スレッドTHA2が時点t15で実行
され終わった後に第1オペレーティングシステムOS_A の第3スレッドTHA3の実
行が続く913。
【0113】 第2オペレーティングシステムOS_B の第1スレッドTHB1が時点T16で動作
する番914になってインタフェース・ブロック16を介する伝送のために動作
する。
【0114】 表1は、割込みとの関係での1モードから他のモードへの移行を要約している
。縦のラインの第1列はモードが変化したときのプロセッサ2のモードを示して
おり、横のラインの第1行はプロセッサ2が移行する先のモードを示している。
表の他のボックスはそれぞれのモードの変化を引き起こす状態を示している。省
略形は本明細書で前に使われたいろいろなモード及び割込みに使われている省略
形を指している。
【表1】
【0115】 次の例は、異なるオペレーティングシステムOS_A 、OS_B で実行されるスレ
ッド間でのメッセージの伝送を説明する。図7a及び7bは、このメッセージ伝
送メカニズムを簡略図として示している。メッセージ・ドライバMDは、メッセー
ジ・キューMQ1 、MQ2 と同様に、オペレーティングシステムOS_A 、OS_B に共
通である。第2オペレーティングシステムOS_B の動作しているスレッドTHB1は
、メッセージ・ドライバMDを呼び出し、例えばテキスト・メッセージなどの有利
に伝送されるメッセージ、及びオブジェクトスレッドTHA1をパラメータとして送
信する(図7a、矢印701)。メッセージ・ドライバMDは、メッセージを第1
メッセージ・キューMQ1 に転送して(矢印702)ソフトウェア割込み(SWI )
を有利に形成し、この割込みは、割込みが通常割込み IRQの代わりにソフトウェ
ア割込みSWI により引き起こされたということを除いて、本明細書で前述した図
6cに実質的に従って割込み処理を起動する。割込みハンドラを放置しておくと
第1オペレーティングシステムのスケジューラSCH _A が起動し、優先順位によ
り決定される段階でオブジェクトスレッドが実行される(矢印703)。このオ
ブジェクトスレッドTHA1は、第1メッセージ・キューMQ1 の中のメッセージを読
み出して(矢印704)例えば無線経路へのメッセージの伝送を行わせる。
【0116】 第1オペレーティングシステムOS_A のアプリケーション・プログラムにおい
て、遅延サービス・ルーチンDSR を実行することができ、これにより、例えば、
次のようにしてメッセージを第2オペレーティングシステムOS_B のスレッドに
伝えることが可能である(図7b)。第2オペレーティングシステムOS_B にお
いて、動作するスレッドTHB2はメッセージ・キューを形成して、メッセージを待
つ状態にとどまる(矢印705)。メッセージ・キューはソフトウェア割込みSW
I を引き起こしており、割込みハンドラは、割込みの原因を調べて第2オペレー
ティングシステムOS_B のスレッドTHB2が第1オペレーティングシステムOS_A
のスレッドTHA2からのメッセージを待っていると結論を出す。割込み処理後、第
1オペレーティングシステムのスケジューラSCH _A (矢印706)が呼び出さ
れる。望まれたスレッドTHA2が動作する番になった後、それはメッセージを形成
して、それを第2メッセージ・キューMQ2 に加える(矢印707)。更に、スレ
ッドTHA2は遅延サービス・ルーチンDSR を形成する(矢印708)。第1オペレ
ーティングシステムOS_A のスレッドを動作させた後、この遅延サービス・ルー
チンDSR が処理され、スレッドTHA2によって加えられた遅延サービス・ルーチン
DSR は第2オペレーティングシステムOS_B のスレッドのステータスを実行待ち
に(レディ)変更する(矢印709)。第2オペレーティングシステムOS_B の
スケジューラSCH _B は、スレッドをそのスケジューリング原理に従って実行へ
制御する。送信要求を送ったスレッドTHB2が動作しているとき(矢印710)、
それは、メッセージ・ドライバMDの接続インタフェースを通して第2メッセージ
・キューMQ2 からのメッセージを読む(矢印711)。
【0117】 実用的な実施形態では、メッセージ・キューMQ1 、MQ2 を優先順位に従って好
適には配列することができる。このことは、高い優先順位の受信スレッドを伴う
メッセージがキュー内で優先順位の比較的に低いメッセージを通り越すことを意
味する。あるいは、この例で使われている第1MQ1 及び第2メッセージ・キュー
MQ2 より多数のメッセージ・キューが使われる。
【0118】 概要としては、本発明は2つ又はそれより多いオペレーティングシステムOS_
A 、OS_B の動作を1つのプロセッサのもとで使用することを可能にするもので
ある。目的は、共通部分をなるべく少なくすることであり、この通信装置1で従
来技術のアプリケーションを動作させることもできる。オペレーティングシステ
ムOS_A 、OS_B の共通部分は、主として、割込みハンドラからなっており、そ
れにオペレーティングシステムOS_A 、OS_B との接続部が形成される。上記の
例ではメッセージ・ドライバMDも共通である。
【0119】 実用的な埋込みシステム1では異なるオペレーティングシステムOS_A 、OS_
B のために多数の共通割込みハンドラ(割込みサービス・ルーチン)を配列する
ことがある。一度に1割込みあたりにこれらの割込みハンドラのうちの1つが、
すなわち、例えば高速割込みFIQ のために1つ、通常割込みIRQ のために1つ、
及びソフトウェア割込みSWI のために1つが、アクティブになることができる。
従って、当該割込みのために整備されている他の1つの割込みハンドラをアクテ
ィブな割込みハンドラとなるように変更することが可能である。
【0120】 第2オペレーティングシステムOS_B のスレッドTHB1、THB2、THB _IDLEのう
ちから、アイドル・スレッドTHA _IDLEあるいはスーパースレッドなどの、第1
オペレーティングシステムOS_A のスレッドが形成されるように、1プロセッサ
2のシステムでの2つのオペレーティングシステムOS_A 、OS_B の動作を実現
することもでき、その場合、第2オペレーティングシステムOS_B に関連する動
作するスレッドTHB1、THB2、THB _IDLEはこのスレッドで実行されるということ
に言及しておくべきである。対応的に、第1オペレーティングシステムOS_A の
スレッドTHA1、THA2、THA _IDLEのうちから、アイドル・スレッドTHB _IDLEあ
るいはスーパースレッド511などの、第2 オペレーティングシステムOS_B の
1つのスレッドを形成することが可能であり、その場合、第1オペレーティング
システムOS_A に関連する動作するスレッドTHA1、THA2、THA _IDLEはこのスレ
ッドで実行される。もう1つの選択肢は、第1オペレーティングシステムOS_A
の各スレッドTHA1、THA2、THA _IDLEを第2オペレーティングシステムOS_B と
は別のスーパー・スレッド511として形成することであり、その場合、第2オ
ペレーティングシステムOS_B は、それらを別々のスーパー・スレッド(図示せ
ず)として取り扱う。本明細書で前述したように、これらのスーパー・スレッド
の応答時間は通常は通常スレッドのそれより相当短い。最も厳しい応答時間要件
を有するタスクでも、それらのために例えばタイマの割込みハンドラと関連して
割込み処理を形成することによって動作させることができ、その場合、それらの
タスクの実行に取りかかるときにスケジューリング機能は必ずしも使用されない
【0121】 第1オペレーティングシステムOS_A の各スレッドTHA1、THA2、THA _IDLEが
第2オペレーティングシステムOS_B の別々のスーパー・スレッド511として
実現される場合には、もしそれが第1オペレーティングシステムOS_A のいろい
ろなスレッドTHA1、THA2、THA _IDLE間でのデータ伝送を望むならば、第2オペ
レーティングシステムOS_B に従う信号伝送が必要となる。対照的に、第1オペ
レーティングシステムOS_A のスレッドTHA1、THA2、THA _IDLE1つのスーパー
・スレッド511として実現されるときには、第1オペレーティングシステムOS
_A のメッセージ伝送方法を用いることによってデータ伝送をより簡単に実現す
ることができる。
【0122】 本発明は上記実施形態のみに限定されるものではなくて、付随する請求項の範
囲内で修正され得るものである。
【図面の簡単な説明】
【図1】 1つのオペレーティングシステムの層構造を示す図である。
【図2】 プロセッサの1状態モデルを示す図である。
【図3】 プロセス要素の例を示す図である。
【図4a】 本発明の有利な実施形態の埋込みシステムの簡略ブロック図である。
【図4b】 1つのプロセッサの簡略ブロック図である。
【図5】 本発明の埋込みシステムと関連して使用される1オペレーティングシステム・
アーキテクチャの簡略図である。
【図6a】 本発明の好適な実施形態の埋込みシステムで割込みを処理する種々の状態を示
す図である。
【図6b】 本発明の好適な実施形態の埋込みシステムで割込みを処理する種々の状態を示
す図である。
【図6c】 本発明の好適な実施形態の埋込みシステムで割込みを処理する種々の状態を示
す図である。
【図6d】 本発明の好適な実施形態の埋込みシステムで割込みを処理する種々の状態を示
す図である。
【図6e】 本発明の好適な実施形態の埋込みシステムで割込みを処理する種々の状態を示
す図である。
【図6f】 本発明の好適な実施形態の埋込みシステムで割込みを処理する種々の状態を示
す図である。
【図6g】 本発明の好適な実施形態の埋込みシステムで割込みを処理する種々の状態を示
す図である。
【図6h】 本発明の好適な実施形態の埋込みシステムで割込みを処理する種々の状態を示
す図である。
【図6i】 本発明の好適な実施形態の埋込みシステムで割込みを処理する種々の状態を示
す図である。
【図7a】 メッセージ伝送のメカニズムの簡略図である。
【図7b】 メッセージ伝送のメカニズムの簡略図である。
【図8】 本発明の好適な実施形態の埋込みシステムにおいて割込みを取り扱う1つの状
態の簡略矢印図である。
【図9】 本発明の好適な実施形態の埋込みシステムにおけるインターリーブされたスケ
ジューリング・オプションのタイミング図である。
【図10】 本発明の好適な実施形態の埋込みシステムにおけるインターリーブされたスケ
ジューリング・オプションの機能図である。
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE),OA(BF,BJ ,CF,CG,CI,CM,GA,GN,GW,ML, MR,NE,SN,TD,TG),AP(GH,GM,K E,LS,MW,SD,SZ,UG,ZW),EA(AM ,AZ,BY,KG,KZ,MD,RU,TJ,TM) ,AL,AM,AT,AU,AZ,BA,BB,BG, BR,BY,CA,CH,CN,CU,CZ,DE,D K,EE,ES,FI,GB,GD,GE,GH,GM ,HR,HU,ID,IL,IN,IS,JP,KE, KG,KP,KR,KZ,LC,LK,LR,LS,L T,LU,LV,MD,MG,MK,MN,MW,MX ,NO,NZ,PL,PT,RO,RU,SD,SE, SG,SI,SK,SL,TJ,TM,TR,TT,U A,UG,US,UZ,VN,YU,ZW (72)発明者 カントラ,ヤンネ フィンランド国,エフイーエン−33720 タンペレ,エレメンティンポルク 15 ア ー 6 (72)発明者 レスケラ,イルキ フィンランド国,エフイーエン−90580 オウル,ユオラベーナーティエ 1 セー 6 (72)発明者 レンピネン,キム フィンランド国,エフイーエン−90570 オウル,テレルボンティエ 5 セー 17 (72)発明者 プルホネン,アヌ フィンランド国,エフイーエン−90800 オウル,ムスタヘルカッティエ 9 エー Fターム(参考) 5B098 AA08 AA09 BA03 BA04 BA12 BA13 BA14 BA15 BB08 BB11 BB15 BB16 CC03 CC06 CC08 EE06 FF08 GA02 GA05 GA06 GA07 GA08 GA10 GC01 GC03 GD14 HH01 HH04 5K067 AA14 AA42 AA43 BB04 DD30 EE02 KK13 【要約の続き】 、OS_B)に伝えるための手段(401、412 、603 、617) とを更に備える。

Claims (34)

    【特許請求の範囲】
  1. 【請求項1】 オペレーティングシステム(OS_A 、OS_B )を動作させる
    ための少なくとも1つのプロセッサ(2)を備える埋込みシステム(1)であっ
    て、該埋込みシステム(1)は、 前記プロセッサ(2)において少なくとも2つのオペレーティングシステム(
    OS_A 、OS_B )を動作させるための手段(17、401、412)と、 スレッド(THA1、THA2、THA _IDLE)の第1グループを備える第1オペレーテ
    ィングシステム(OS_A )と、 スレッド(THB1、THB2、THB _IDLE)の第2グループを備える第2オペレーテ
    ィングシステム(OS_B )と、 前記プロセッサ(2)に対する割込み(FIQ 、IRQ 、SWI )を作るための手段
    (nFIQ、nIRQ、SWI )と、 前記プロセッサ(2)に来た割込み(FIQ 、IRQ 、SWI )がどのスレッド(TH
    A1、THA2、THB1、THB2、THA _IDLE、THB _IDLE)の実行に影響を及ぼすのか調
    べるための手段(401、603、617)と、 プロセッサ(2)により受信された割込み(FIQ 、IRQ 、SWI )に影響を及ぼ
    すスレッド(THA1、THA2、THB1、THB2、THA _IDLE、THB _IDLE)に関連する割
    込みデータを前記オペレーティングシステム(OS_A 、OS_B )に伝送するため
    の手段(401、412、603、609、617)とを更に備えることを特徴
    とする埋込みシステム。
  2. 【請求項2】 請求項1に記載の埋込みシステム(1)であって、前記調べ
    るための手段(401、603、617)は、前記少なくとも2つのオペレーテ
    ィングシステム(OS_A 、OS_B )のための少なくとも1つの、少なくとも部分
    的に共通の割込みハンドラ(603、617)を備えることを特徴とする埋込み
    システム。
  3. 【請求項3】 請求項1又は2に記載の埋込みシステム(1)であって、移
    動局機能とデータ処理機能とを備え、前記少なくとも2つのオペレーティングシ
    ステム(OS_A 、OS_B )のうちの、前記第1オペレーティングシステム(OS_
    A )は移動局機能の動作に関連し、前記第2オペレーティングシステム(OS_B
    )はデータ処理機能の動作に関連することを特徴とする埋込みシステム。
  4. 【請求項4】 請求項3に記載の埋込みシステム(1)であって、少なくと
    も部分的に移動局機能と関連する少なくとも1つのユーザインタフェース(UI1
    )と、少なくとも部分的にデータ処理機能と関連する少なくとも1つのユーザイ
    ンタフェース(IU2)とを備えることを特徴とする埋込みシステム。
  5. 【請求項5】 請求項4に記載の埋込みシステム(1)であって、前記移動
    局機能に関連するユーザインタフェース(UI1)と、前記データ処理機能に関連す
    るユーザインタフェース(UI2)とは、少なくとも部分的に共通の表示装置(10
    、15)を備えることを特徴とする埋込みシステム。
  6. 【請求項6】 請求項4又は5に記載の埋込みシステム(1)であって、前
    記移動局機能に関連するユーザインタフェース(UI1)と、前記データ処理機能に
    関連するユーザインタフェース(UI2)とは、データを供給するための少なくとも
    部分的に共通の手段(9、14)を備えることを特徴とする埋込みシステム。
  7. 【請求項7】 請求項1〜6のいずれか一項に記載の埋込みシステム(1)
    であって、前記第1オペレーティングシステム(OS_A )のどのスレッド(THA1
    、THA2、THA _IDLE)も動作していないとき、前記第1オペレーティングシステ
    ム(OS_A )の実行から前記第2オペレーティングシステム(OS_B )の実行へ
    移行するための手段(2、THA _IDLE)を備えることを特徴とする埋込みシステ
    ム。
  8. 【請求項8】 請求項1〜7のいずれか一項に記載の埋込みシステム(1)
    であって、前記プロセッサ(2)に対する割込み(FIQ 、IRQ 、SWI )が前記第
    1オペレーティングシステム(OS_A )のもとで少なくとも1つのスレッド(TH
    A1、THA2、THA _IDLE)の動作に影響を及ぼすとき、前記第2オペレーティング
    システム(OS_B )の実行から前記第1オペレーティングシステム(OS_A )の
    動作へ移行するための手段(2、SCH _A )を備えることを特徴とする埋込みシ
    ステム。
  9. 【請求項9】 請求項1〜8のいずれか一項に記載の埋込みシステム(1)
    であって、少なくとも前記第1オペレーティングシステム(OS_A )は実時間オ
    ペレーティングシステムであることを特徴とする埋込みシステム。
  10. 【請求項10】 請求項1〜9のいずれか一項に記載の埋込みシステム(1
    )であって、前記プロセッサ(2)は少なくとも次のモード、 ユーザ・モード(USERモード)、 特権モード(SVC モード)、 未定義モード(UND モード)、 1つ又はそれより多い割込みモード(FIQ モード、IRQ モード、SWI モード)
    、を有し、前記第1オペレーティングシステム(OS_A )は少なくとも部分的に
    前記未定義モード(UND モード)で動作するようになっており、前記第2オペレ
    ーティングシステム(OS_B )は少なくとも部分的に前記ユーザ・モード(USER
    モード)で動作するようになっており、前記割込みハンドラ(603、617)
    は何らかの割込みモード(FIQ モード、IRQ モード、SWI モード)で動作するよ
    うになっていることを特徴とする埋込みシステム。
  11. 【請求項11】 請求項1〜10のいずれか一項に記載の埋込みシステム(
    1)であって、スレッドの前記第1グループの1つのスレッド(THA1、THA2、TH
    A _IDLE)は前記第2オペレーティングシステム(OS_B )を備えることを特徴
    とする埋込みシステム。
  12. 【請求項12】 請求項2〜10のいずれか一項に記載の埋込みシステム(
    1)であって、少なくとも2つの割込み(FIQ 、IRQ 、SWI )のための少なくと
    も2つの割込みサービス・ルーチンと、前記少なくとも2つの割込みサービス・
    ルーチンから前記割込み(FIQ 、IRQ 、SWI )との関連で使用される1つの割込
    みサービス・ルーチンを選択するための手段(2)とを備えることを特徴とする
    埋込みシステム。
  13. 【請求項13】 埋込みシステム(1)のプロセッサ(2)でオペレーティ
    ングシステム(OS_A 、OS_B )を実行するための方法であって、該方法は、 少なくとも2つのオペレーティングシステム(OS_A 、OS_B )が前記プロセ
    ッサ(2)で実行され、 前記第1オペレーティングシステム(OS_A )に関連して、前記第1グループ
    のスレッド(THA1、THA2、THA _IDLE)が実行され、 前記第2オペレーティングシステム(OS_B )に関連して、前記第2グループ
    のスレッド(THB1、THB2、THB _IDLE)が実行され、 前記プロセッサ(2)に対する割込み(FIQ 、IRQ 、SWI )がもたらされ、 前記プロセッサ(2)に到達した割込みがどのスレッド(THA1、THA2、THB1、
    THB2、THA _IDLE、THB _IDLE)の実行に影響を及ぼすかが調べられ、 前記プロセッサ(2)に受け取られた割込みについての情報が、前記プロセッ
    サ(2)に受け取られた前記割込み(FIQ 、IRQ 、SWI )に影響を及ぼすスレッ
    ド(THA1、THA2、THB1、THB2、THA _IDLE、THB _IDLE)に関連する前記オペレ
    ーティングシステム(OS_A 、OS_B )に伝えられることを特徴とする、埋込み
    システム(1)のプロセッサ(2)でオペレーティングシステム(OS_A 、OS_
    B )を実行するための方法。
  14. 【請求項14】 請求項13に記載の方法であって、前記プロセッサ(2)
    に受け取られた割込み(FIQ 、IRQ 、SWI )を調べるとき、前記少なくとも2つ
    のオペレーティングシステム(OS_A 、OS_B )に少なくとも部分的に共通の少
    なくとも1つの割込みハンドラが使用されることを特徴とする方法。
  15. 【請求項15】 請求項13に記載の方法であって、前記埋込みシステム(
    1)で移動局機能とデータ処理機能とが実行され、前記少なくとも2つのオペレ
    ーティングシステム(OS_A 、OS_B )のうちの、前記第1オペレーティングシ
    ステム(OS_A )は前記移動局機能の実行に関連し、前記第2オペレーティング
    システム(OS_B )は前記データ処理機能に関連することを特徴とする方法。
  16. 【請求項16】 請求項15に記載の方法であって、前記移動局機能は前記
    第1ユーザインタフェース(UI1) により使用され、前記データ処理機能は前記第
    2ユーザインタフェース(UI2) により使用されることを特徴とする方法。
  17. 【請求項17】 請求項16に記載の方法であって、前記移動局機能と前記
    データ処理機能とは少なくとも部分的に共通の表示装置(10、15)で表示さ
    れることを特徴とする方法。
  18. 【請求項18】 請求項16又は17に記載の方法であって、前記移動局機
    能と前記データ処理機能とを使用するために、少なくとも部分的に共通の手段(
    9、14)によってデータが供給されることを特徴とする方法。
  19. 【請求項19】 請求項13〜18のいずれか一項に記載の方法であって、
    前記第1オペレーティングシステム(OS_A )のどのスレッド(THA1、THA2、TH
    A _IDLE)もラン・モードになっていない段階において、前記第1オペレーティ
    ングシステム(OS_A )の実行から前記第2オペレーティングシステム(OS_B
    )の実行への変換が行われることを特徴とする方法。
  20. 【請求項20】 請求項13〜19のいずれか一項に記載の方法であって、
    前記プロセッサ(2)により受け取られた割込み(FIQ 、IRQ 、SWI )が前記第
    1オペレーティングシステム(OS_A )のもとで少なくとも1つのスレッド(TH
    A1、THA2、THA _IDLE)の実行に影響を及ぼす段階において、前記第2オペレー
    ティングシステム(OS_B )の実行から前記第1オペレーティングシステム(OS
    _A )の実行への変換が行われることを特徴とする方法。
  21. 【請求項21】 請求項13〜20のいずれか一項に記載の方法であって、
    少なくとも前記第1オペレーティングシステム(OS_A )は実時間オペレーティ
    ングシステムであることを特徴とする方法。
  22. 【請求項22】 請求項13〜21のいずれか一項に記載の方法であって、
    前記第1グループのスレッドのうちの1つのスレッド(THA1、THA2、THA _IDLE
    )において前記第2オペレーティングシステム(OS_B )が実行されることを特
    徴とする方法。
  23. 【請求項23】 請求項22に記載の方法であって、スレッドの前記第1グ
    ループの各スレッド(THA1、THA2、THA _IDLE)について優先順位が決定され、
    前記第2オペレーティングシステム(OS_B )の実行時間を増やすために、前記
    第2オペレーティングシステム(OS_B )が実行されるスレッドの優先順位を高
    めることができることを特徴とする方法。
  24. 【請求項24】 オペレーティングシステム(OS_A 、OS_B )を実行する
    ための少なくとも1つのプロセッサ(2)を備える通信装置(1)であって、該
    通信装置(1)は、 前記プロセッサ(2)において少なくとも2つのオペレーティングシステム(
    OS_A 、OS_B )を動作させるための手段(17、401、402)と、 スレッド(THA1、THA2、THA _IDLE)の第1グループを含む第1オペレーティ
    ングシステム(OS_A )と、 スレッド(THB1、THB2、THB _IDLE)の第2グループを含む第2オペレーティ
    ングシステム(OS_B )と、 前記プロセッサ(2)に対して割込み(FIQ 、IRQ 、SWI )を作るための手段
    (nFIQ、nIRQ、SWI )と、 前記プロセッサ(2)に来た割込み(FIQ 、IRQ 、SWI )がどのスレッド(TH
    A1、THA2、THB1、THB2、THA _IDLE、THB _IDLE)の実行に影響を及ぼすか調べ
    るための手段(401、603、617)と、 前記プロセッサ(2)により受け取られた割込み(FIQ 、IRQ 、SWI )に影響
    を及ぼすスレッド(THA1、THA2、THB1、THB2、THA _IDLE、THB _IDLE)に関連
    する割込みデータを前記オペレーティングシステム(OS_A 、OS_B )に伝える
    ための手段(401、412、603、609、617)とを更に備えることを
    特徴とする通信装置。
  25. 【請求項25】 請求項24に記載の通信装置(1)であって、前記調べる
    ための手段(401、603、617)は前記少なくとも2つのオペレーティン
    グシステム(OS_A 、OS_B )のための、少なくとも1つの、少なくとも部分的
    に共通の割込みハンドラ(603、617)を備えることを特徴とする通信装置
  26. 【請求項26】 請求項24又は25に記載の通信装置(1)であって、移
    動局機能とデータ処理機能とを備え、前記少なくとも2つのオペレーティングシ
    ステム(OS_A 、OS_B )のうちの、前記第1オペレーティングシステム(OS_
    A )は前記移動局機能の動作に関連し、前記第2オペレーティングシステム(OS
    _B )は前記データ処理機能の動作に関連することを特徴とする通信装置。
  27. 【請求項27】 請求項26に記載の通信装置(1)であって、少なくとも
    部分的に移動局機能に関連する少なくとも1つのユーザインタフェース(UI)と
    、少なくとも部分的にデータ処理機能に関連する少なくとも1つのユーザインタ
    フェース(UI2 )とを備えることを特徴とする通信装置。
  28. 【請求項28】 請求項27に記載の通信装置(1)であって、前記移動局
    機能に関連する前記ユーザインタフェース(UI1)と、前記データ処理機能に関連
    する前記ユーザインタフェース(UI2)とは、少なくとも部分的に共通の表示装置
    (10、15)を備える含むことを特徴とする通信装置。
  29. 【請求項29】 請求項27又は28に記載の通信装置(1)であって、前
    記移動局機能に関連する前記ユーザインタフェース(UI1)と、前記データ処理機
    能に関連する前記ユーザインタフェース(UI2)とは、少なくとも部分的に共通の
    、データを供給するための手段(9、14)を備えることを特徴とする通信装置
  30. 【請求項30】 請求項24〜29のいずれか一項に記載の通信装置(1)
    であって、前記第1オペレーティングシステム(OS_A )のどのスレッド(THA1
    、THA2、THA _IDLE)も動作していないときに前記第1オペレーティングシステ
    ム(OS_A )の実行から前記第2オペレーティングシステム(OS_B )の実行へ
    移行するための手段(2、THA _IDLE)を備えることを特徴とする通信装置。
  31. 【請求項31】 請求項24〜30のいずれか一項に記載の通信装置(1)
    であって、前記プロセッサ(2)に対する割込み(FIQ 、IRQ 、SWI )が前記第
    1オペレーティングシステム(OS_A )のもとで少なくとも1つのスレッド(TH
    A1、THA2、THA _IDLE)の動作に影響を及ぼすときに前記第2オペレーティング
    システム(OS_B )の実行から前記第1オペレーティングシステム(OS_A )の
    動作へ移行するための手段(2、THA _SCH _A )を備えることを特徴とする通
    信装置。
  32. 【請求項32】 請求項24〜31のいずれか一項に記載の通信装置(1)
    であって、少なくとも前記第1オペレーティングシステム(OS_A )は実時間オ
    ペレーティングシステムであることを特徴とする通信装置。
  33. 【請求項33】 請求項24〜32のいずれか一項に記載の通信装置(1)
    であって、前記プロセッサ(2)は少なくとも次のモード、 ユーザ・モード(USERモード)、 特権モード(SVC モード)、 未定義モード(UND モード)、 1つ以上の割込みモード(FIQ モード、IRQ モード、SWI モード)、を有し、
    前記第1オペレーティングシステム(OS_A )は少なくとも部分的に前記未定義
    モード(UND モード)で動作するようになっており、前記第2オペレーティング
    システム(OS_B )は少なくとも部分的に前記ユーザ・モード(USERモード)で
    動作するようになっており、割込みハンドラは何らかの割込みモード(FIQ モー
    ド、IRQ モード、SWI モード)で動作するようになっていることを特徴とする通
    信装置。
  34. 【請求項34】 請求項24〜33のいずれか一項に記載の通信装置(1)
    であって、スレッドの前記第1グループの1つのスレッド(THA1、THA2、THA _
    IDLE)は前記第2オペレーティングシステム(OS_B )を備えることを特徴とす
    る通信装置。
JP2000528913A 1998-01-21 1999-01-21 埋込みシステム Pending JP2002501248A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FI980135A FI108478B (fi) 1998-01-21 1998-01-21 Sulautettu jõrjestelmõ
FI980135 1998-01-21
PCT/FI1999/000039 WO1999038073A1 (en) 1998-01-21 1999-01-21 Embedded system

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2007041050A Division JP2007164819A (ja) 1998-01-21 2007-02-21 埋込みシステム

Publications (1)

Publication Number Publication Date
JP2002501248A true JP2002501248A (ja) 2002-01-15

Family

ID=8550493

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2000528913A Pending JP2002501248A (ja) 1998-01-21 1999-01-21 埋込みシステム
JP2007041050A Pending JP2007164819A (ja) 1998-01-21 2007-02-21 埋込みシステム
JP2011171579A Withdrawn JP2011216132A (ja) 1998-01-21 2011-08-05 埋込みシステム

Family Applications After (2)

Application Number Title Priority Date Filing Date
JP2007041050A Pending JP2007164819A (ja) 1998-01-21 2007-02-21 埋込みシステム
JP2011171579A Withdrawn JP2011216132A (ja) 1998-01-21 2011-08-05 埋込みシステム

Country Status (9)

Country Link
US (2) US6631394B1 (ja)
EP (1) EP1047991A1 (ja)
JP (3) JP2002501248A (ja)
KR (1) KR100681875B1 (ja)
CN (1) CN1130630C (ja)
AU (1) AU2056499A (ja)
FI (1) FI108478B (ja)
HK (1) HK1035416A1 (ja)
WO (1) WO1999038073A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004515945A (ja) * 2000-12-05 2004-05-27 インフィネオン テクノロジーズ アクチエンゲゼルシャフト Gsm網におけるタスクの調整方法
JP2006506752A (ja) * 2002-11-18 2006-02-23 エイアールエム リミテッド 安全処理システムにおける例外タイプ
JP2008538043A (ja) * 2005-04-13 2008-10-02 クゥアルコム・インコーポレイテッド マルチスレッドシステムの中でイベントを設定するための技術
US7661104B2 (en) 2002-11-18 2010-02-09 Arm Limited Task following between multiple operating systems

Families Citing this family (94)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4072271B2 (ja) * 1999-02-19 2008-04-09 株式会社日立製作所 複数のオペレーティングシステムを実行する計算機
KR20010104716A (ko) * 1999-12-30 2001-11-26 요트.게.아. 롤페즈 멀티-태스킹 소프트웨어 구조
JP2001256067A (ja) * 2000-03-08 2001-09-21 Mitsubishi Electric Corp プロセッサ省電力制御方法、記憶媒体、およびプロセッサ省電力制御装置
AU2001257567A1 (en) * 2000-05-08 2001-11-20 Transilica, Inc. Distributed applications in a portable thread environment
US6715016B1 (en) * 2000-06-01 2004-03-30 Hitachi, Ltd. Multiple operating system control method
EP1162536A1 (en) * 2000-06-09 2001-12-12 Hitachi, Ltd. Multiple operating system control method
US7330877B2 (en) * 2000-09-18 2008-02-12 Sharp Laboratories Of America Devices, softwares and methods for rescheduling multi-party sessions upon premature termination of session
US6694428B2 (en) * 2000-11-29 2004-02-17 Palm One, Inc. System for indentifying a peripheral device by sending an inquiry thereto after receiving an interrupt notification message if the interrupt and communication port meet predetermined conditions
US6813766B2 (en) * 2001-02-05 2004-11-02 Interland, Inc. Method and apparatus for scheduling processes based upon virtual server identifiers
JP2002251326A (ja) * 2001-02-22 2002-09-06 Hitachi Ltd 耐タンパ計算機システム
US6928648B2 (en) * 2001-04-20 2005-08-09 Sun Microsystems, Inc. Method and apparatus for a mobile multimedia java framework
EP1448997B1 (en) * 2001-07-20 2006-03-08 Satyanarayana Manchanahally Venkataramasastry Energy consumption control unit
CN100367238C (zh) * 2001-08-22 2008-02-06 深圳市索普卡软件开发有限公司 一种x86系列兼容机及其操作***的生成方法
FI114663B (fi) * 2001-12-20 2004-11-30 Nokia Corp Menetelmä ja järjestelmä käyttöjärjestelmätoimintojen suorittamiseksi sekä elektroniikkalaite
KR100408047B1 (ko) * 2001-12-24 2003-12-01 엘지전자 주식회사 이동통신 시스템의 프로세서 보드 이중화 장치 및 방법
DE10206865C1 (de) * 2002-02-18 2003-05-15 Daimler Chrysler Ag Reaktionszeit-Beschränkung eines Software-Prozesses
US7137121B2 (en) * 2002-04-19 2006-11-14 Equator Technologies, Inc. Data-processing circuit and method for switching between application programs without an operating system
US8032891B2 (en) * 2002-05-20 2011-10-04 Texas Instruments Incorporated Energy-aware scheduling of application execution
JP3938343B2 (ja) * 2002-08-09 2007-06-27 インターナショナル・ビジネス・マシーンズ・コーポレーション タスク管理システム、プログラム、及び制御方法
US6782424B2 (en) * 2002-08-23 2004-08-24 Finite State Machine Labs, Inc. System, method and computer program product for monitoring and controlling network connections from a supervisory operating system
TWI336848B (en) * 2002-08-26 2011-02-01 Interdigital Tech Corp Wireless transmit/receive unit and method for providing a communication path between a plurality of operating systems in a wireless device
US7805725B2 (en) * 2002-09-26 2010-09-28 Siemens Industry, Inc. System and method for synchronizing system modules
GB2395583B (en) 2002-11-18 2005-11-30 Advanced Risc Mach Ltd Diagnostic data capture control for multi-domain processors
JP4220476B2 (ja) 2002-11-18 2009-02-04 エイアールエム リミテッド 安全ドメインおよび非安全ドメインを有するシステム内での仮想−物理メモリアドレスマッピング
AU2003278342A1 (en) 2002-11-18 2004-06-15 Arm Limited Security mode switching via an exception vector
GB2411254B (en) 2002-11-18 2006-06-28 Advanced Risc Mach Ltd Monitoring control for multi-domain processors
US7383587B2 (en) 2002-11-18 2008-06-03 Arm Limited Exception handling control in a secure processing system
US7117284B2 (en) 2002-11-18 2006-10-03 Arm Limited Vectored interrupt control within a system having a secure domain and a non-secure domain
US7231476B2 (en) 2002-11-18 2007-06-12 Arm Limited Function control for a processor
GB2396451B (en) * 2002-11-18 2005-12-07 Advanced Risc Mach Ltd Delivering data processing requests to a suspended operating system
GB2395313B (en) * 2002-11-18 2005-11-23 Advanced Risc Mach Ltd Task following between multiple operating systems
US6928502B2 (en) * 2003-01-31 2005-08-09 Via Telecom Co., Ltd. Method and apparatus for processing interrupts at dynamically selectable prioritization levels
US9002565B2 (en) 2003-03-20 2015-04-07 Agjunction Llc GNSS and optical guidance and machine control
US8686900B2 (en) 2003-03-20 2014-04-01 Hemisphere GNSS, Inc. Multi-antenna GNSS positioning method and system
US8634993B2 (en) 2003-03-20 2014-01-21 Agjunction Llc GNSS based control for dispensing material from vehicle
US8190337B2 (en) 2003-03-20 2012-05-29 Hemisphere GPS, LLC Satellite based vehicle guidance control in straight and contour modes
US8140223B2 (en) 2003-03-20 2012-03-20 Hemisphere Gps Llc Multiple-antenna GNSS control system and method
US8271194B2 (en) * 2004-03-19 2012-09-18 Hemisphere Gps Llc Method and system using GNSS phase measurements for relative positioning
US8612992B2 (en) * 2003-04-09 2013-12-17 Jaluna Sa Operating systems
ES2315469T3 (es) * 2003-04-09 2009-04-01 Virtuallogix Sa Sistemas operativos.
WO2004090719A2 (en) * 2003-04-09 2004-10-21 Jaluna Sa Operating systems
US20040226016A1 (en) * 2003-05-08 2004-11-11 Samsung Electronics Co., Ltd. Apparatus and method for sharing resources in a real-time processing system
JP3822577B2 (ja) * 2003-05-22 2006-09-20 株式会社エヌ・ティ・ティ・ドコモ コンピュータ及びプログラム
US7543306B2 (en) * 2003-07-02 2009-06-02 Intel Corporation Method, system, and program for handling device interrupts in a multi-processor environment
EP1503286B1 (en) * 2003-07-30 2014-09-03 Jaluna SA Multiple operating system networking
JP3953449B2 (ja) * 2003-08-26 2007-08-08 富士通株式会社 タスク管理プログラムおよびタスク制御装置
US8024742B2 (en) * 2003-09-30 2011-09-20 Jaluna S.A. Common program for switching between operation systems is executed in context of the high priority operating system when invoked by the high priority OS
US8028292B2 (en) * 2004-02-20 2011-09-27 Sony Computer Entertainment Inc. Processor task migration over a network in a multi-processor system
US7565653B2 (en) * 2004-02-20 2009-07-21 Sony Computer Entertainment Inc. Methods and apparatus for processor task migration in a multi-processor system
US7614053B2 (en) * 2004-02-20 2009-11-03 Sony Computer Entertainment Inc. Methods and apparatus for task management in a multi-processor system
US7584476B2 (en) * 2004-03-04 2009-09-01 International Business Machines Corporation Mechanism for reducing remote memory accesses to shared data in a multi-nodal computer system
US8583315B2 (en) 2004-03-19 2013-11-12 Agjunction Llc Multi-antenna GNSS control system and method
JP4028853B2 (ja) * 2004-03-30 2007-12-26 株式会社日立製作所 情報サービス通信ネットワークシステムおよびセッション管理サーバ
US8707317B2 (en) * 2004-04-30 2014-04-22 Microsoft Corporation Reserving a fixed amount of hardware resources of a multimedia console for system application and controlling the unreserved resources by the multimedia application
US20060010446A1 (en) * 2004-07-06 2006-01-12 Desai Rajiv S Method and system for concurrent execution of multiple kernels
WO2006018307A2 (en) * 2004-08-18 2006-02-23 Jaluna Sa Operating systems
US20060070069A1 (en) * 2004-09-30 2006-03-30 International Business Machines Corporation System and method for sharing resources between real-time and virtualizing operating systems
US7290112B2 (en) * 2004-09-30 2007-10-30 International Business Machines Corporation System and method for virtualization of processor resources
US20070033596A1 (en) * 2005-04-14 2007-02-08 Kridner Jason D Reconfigurable State Structure Based System Design for Embedded Multimedia System
US7627705B2 (en) * 2005-12-30 2009-12-01 Stmicroelectronics Pvt. Ltd. Method and apparatus for handling interrupts in embedded systems
US20070201270A1 (en) * 2005-12-30 2007-08-30 Stmicroelectronics Pvt. Ltd. Read only memory device with bitline leakage reduction
US8718629B2 (en) * 2006-07-18 2014-05-06 Nec Corporation Information communication processing device, information communication terminal, information communication system, function switching method and function switching program
US7870372B2 (en) * 2006-08-14 2011-01-11 Marvell World Trade Ltd. Interrupt handling
US8424013B1 (en) * 2006-09-29 2013-04-16 Emc Corporation Methods and systems for handling interrupts across software instances and context switching between instances having interrupt service routine registered to handle the interrupt
US7698540B2 (en) * 2006-10-31 2010-04-13 Hewlett-Packard Development Company, L.P. Dynamic hardware multithreading and partitioned hardware multithreading
US8311696B2 (en) 2009-07-17 2012-11-13 Hemisphere Gps Llc Optical tracking vehicle control system and method
USRE48527E1 (en) 2007-01-05 2021-04-20 Agjunction Llc Optical tracking vehicle control system and method
US8046570B2 (en) * 2007-02-06 2011-10-25 Microsoft Corporation Supporting multiple operating systems in media devices
US7904703B1 (en) * 2007-04-10 2011-03-08 Marvell International Ltd. Method and apparatus for idling and waking threads by a multithread processor
US7912623B2 (en) * 2007-09-25 2011-03-22 Denso Corporation Engine control system designed to manage schedule of engine control tasks
US7808428B2 (en) 2007-10-08 2010-10-05 Hemisphere Gps Llc GNSS receiver and external storage device system and GNSS data processing method
EP2083525A1 (en) * 2008-01-28 2009-07-29 Merging Technologies S.A. System to process a plurality of audio sources
US7657683B2 (en) * 2008-02-01 2010-02-02 Redpine Signals, Inc. Cross-thread interrupt controller for a multi-thread processor
WO2009100463A1 (en) 2008-02-10 2009-08-13 Hemisphere Gps Llc Visual, gnss and gyro autosteering control
US8156320B2 (en) * 2008-08-27 2012-04-10 Wireless Silicon Group, Llc Method and apparatus for fast booting a portable computing device allowing for immediate operation
US8281169B2 (en) 2008-08-27 2012-10-02 Wireless Silicon Group, Inc. Method and system for power management for a handheld mobile electronic device executing-in-place an application kernel from execute-in-place non-volatile memory (XIP NVM)
US8217833B2 (en) 2008-12-11 2012-07-10 Hemisphere Gps Llc GNSS superband ASIC with simultaneous multi-frequency down conversion
US8260876B2 (en) * 2009-04-03 2012-09-04 Google Inc. System and method for reducing startup cost of a software application
US8401704B2 (en) 2009-07-22 2013-03-19 Hemisphere GPS, LLC GNSS control system and method for irrigation and related applications
US8135894B1 (en) 2009-07-31 2012-03-13 Altera Corporation Methods and systems for reducing interrupt latency by using a dedicated bit
US8334804B2 (en) 2009-09-04 2012-12-18 Hemisphere Gps Llc Multi-frequency GNSS receiver baseband DSP
US20110224873A1 (en) * 2009-09-17 2011-09-15 Reeve David R Vehicle assembly controller with automaton framework and control method
CN102043662A (zh) * 2009-10-23 2011-05-04 伟视科技股份有限公司 多操作***的数据修改方法
US8473662B2 (en) * 2009-12-18 2013-06-25 Electronics And Telecommunications Research Institute Interrupt-handling-mode determining method of embedded operating system kernel
WO2011086473A2 (en) * 2010-01-13 2011-07-21 Marvell Israel (Misl) Ltd. Hardware virtualization for media processing
US8782258B2 (en) * 2011-01-04 2014-07-15 Motorola Mobility Llc Transferring web data between operating system environments
GB2487575B (en) 2011-01-28 2017-04-12 Advanced Risc Mach Ltd Controlling generation of debug exceptions
US8725923B1 (en) * 2011-03-31 2014-05-13 Emc Corporation BMC-based communication system
CN104216777B (zh) * 2014-08-29 2017-09-08 宇龙计算机通信科技(深圳)有限公司 双***电子装置及终端
US9710313B2 (en) * 2014-12-30 2017-07-18 Ge Aviation Systems Llc Method and system for ensuring integrity of critical data
US9733987B2 (en) * 2015-02-20 2017-08-15 Intel Corporation Techniques to dynamically allocate resources of configurable computing resources
FR3048529B1 (fr) * 2016-03-01 2018-03-23 Ingenico Group Procede de modulation d'acces a une ressource, dispositif et programme correspondant
US20200104193A1 (en) * 2018-09-28 2020-04-02 Apple Inc. Port Groups
CN111538580B (zh) * 2020-04-23 2024-01-05 苏州大学 一种嵌入式实时操作***的线程信号操作方法与***

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE360135C (de) * 1915-06-08 1922-09-29 Enrico Feroldi Vergaser fuer Verbrennungskraftmaschinen
GB1457295A (en) 1974-01-28 1976-12-01 Hovermarine Transport Ltd Flexible skirt members for gas-cushion vehicles
DE3802366A1 (de) 1988-01-27 1989-08-10 Boehringer Mannheim Gmbh Traegervlies fuer abloesbar impraegnierte reagenzien
US4993017A (en) 1988-03-15 1991-02-12 Siemens Aktiengesellschaft Modularly structured ISDN communication system
DE3831048A1 (de) 1988-09-12 1990-03-15 Nixdorf Computer Ag Betriebsprogramm fuer eine datenverarbeitungsanlage
US5278973A (en) 1989-03-27 1994-01-11 Unisys Corporation Dual operating system computer
US5392282A (en) 1989-05-17 1995-02-21 Nokia Mobile Phones, Ltd. Circuit arrangement in a mobile phone for a digital mobile telephone system
FI87033C (fi) 1990-10-05 1992-11-10 Nokia Mobile Phones Ltd Foerfarande foer att arrangera styrningar av kopplingstyp i en radiotelefon
US5301277A (en) * 1991-04-10 1994-04-05 Seiko Epson Corporation Method and apparatus for communicating peripheral data to/from minor operating systems running as subprocesses on a main operating system
JPH04367037A (ja) * 1991-06-13 1992-12-18 Mitsubishi Electric Corp 計算機システム
FI89223C (fi) 1991-10-03 1993-08-25 Nokia Mobile Phones Ltd Digitalt audiointerface i gsm-anordning
FI98183C (fi) 1992-02-14 1997-04-25 Nokia Mobile Phones Ltd Järjestely data-adapterin kytkemiseksi GSM-solukkopuhelimeen
US5515538A (en) * 1992-05-29 1996-05-07 Sun Microsystems, Inc. Apparatus and method for interrupt handling in a multi-threaded operating system kernel
TW278291B (ja) * 1992-06-30 1996-06-11 Motorola Inc
US5596755A (en) * 1992-11-03 1997-01-21 Microsoft Corporation Mechanism for using common code to handle hardware interrupts in multiple processor modes
US5657371A (en) 1993-02-01 1997-08-12 Nokia Mobile Phones Limited Connector assembly for a radio telephone and a computer
US5414848A (en) * 1993-04-01 1995-05-09 Intel Corporation Method and apparatus for sharing a common routine stored in a single virtual machine with other virtual machines operating in a preemptive muli-tasking computer system
JP2813728B2 (ja) * 1993-11-01 1998-10-22 インターナショナル・ビジネス・マシーンズ・コーポレイション ズーム/パン機能付パーソナル通信機
GB2298109B (en) 1995-02-14 1999-09-01 Nokia Mobile Phones Ltd Data interface
US6260075B1 (en) * 1995-06-19 2001-07-10 International Business Machines Corporation System and method for providing shared global offset table for common shared library in a computer system
WO1997010549A1 (fr) * 1995-09-13 1997-03-20 Hitachi, Ltd. Systeme de calcul electronique
FI111309B (fi) 1996-01-03 2003-06-30 Nokia Corp Tietoliikenneverkkoon radioteitse liitettävä päätelaite
US5835705A (en) * 1997-03-11 1998-11-10 International Business Machines Corporation Method and system for performance per-thread monitoring in a multithreaded processor
US5974439A (en) * 1997-11-21 1999-10-26 International Business Machines Corporation Resource sharing between real-time and general purpose programs

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004515945A (ja) * 2000-12-05 2004-05-27 インフィネオン テクノロジーズ アクチエンゲゼルシャフト Gsm網におけるタスクの調整方法
US7292847B2 (en) 2000-12-05 2007-11-06 Infineon Technologies Ag Method for coordinating tasks in a GSM network
JP2006506752A (ja) * 2002-11-18 2006-02-23 エイアールエム リミテッド 安全処理システムにおける例外タイプ
US7661104B2 (en) 2002-11-18 2010-02-09 Arm Limited Task following between multiple operating systems
US7661105B2 (en) 2002-11-18 2010-02-09 Arm Limited Exception types within a secure processing system
US7949866B2 (en) 2002-11-18 2011-05-24 Arm Limited Exception types within a secure processing system
JP2008538043A (ja) * 2005-04-13 2008-10-02 クゥアルコム・インコーポレイテッド マルチスレッドシステムの中でイベントを設定するための技術

Also Published As

Publication number Publication date
FI980135A0 (fi) 1998-01-21
KR20010034232A (ko) 2001-04-25
FI108478B (fi) 2002-01-31
AU2056499A (en) 1999-08-09
JP2011216132A (ja) 2011-10-27
FI980135A (fi) 1999-07-22
JP2007164819A (ja) 2007-06-28
WO1999038073A1 (en) 1999-07-29
CN1130630C (zh) 2003-12-10
CN1294706A (zh) 2001-05-09
HK1035416A1 (en) 2001-11-23
EP1047991A1 (en) 2000-11-02
US6631394B1 (en) 2003-10-07
KR100681875B1 (ko) 2007-02-12
US20040088710A1 (en) 2004-05-06
US7062766B2 (en) 2006-06-13

Similar Documents

Publication Publication Date Title
JP2002501248A (ja) 埋込みシステム
JP3790743B2 (ja) コンピュータ・システム
US5742825A (en) Operating system for office machines
US7743384B2 (en) Method and system for implementing an interrupt handler
KR20040068600A (ko) 운영 시스템 기능 실행 방법 및 시스템, 전자 기기
US6367074B1 (en) Operation of a system
JP6009529B2 (ja) マルチスレッドシステムの中でイベントを設定するための技術
KR100746797B1 (ko) 프로세서 및 정보처리 방법
CA2548509C (en) System for executing code during operating system initialization
EP1686474A2 (en) Processor and information processing method
KR100954661B1 (ko) Sm버스에 대한 aml 액세스를 용이하게 하는 시스템과, sm버스 이벤트 핸들링 시스템, 방법 및 컴퓨터 판독가능 매체
EP1892625B1 (en) Finer grained operating system scheduling
WO2005064463A1 (en) Task scheduling apparatus, method, program, storage medium and transmission medium for prioritized signal handler scheduling
CN113495787A (zh) 资源分配方法、装置、存储介质及电子设备
WO2004088481A2 (en) Mechanism for simultaneously operating multiple applications on a personal digital assistant implementing a palm operating system
Wang et al. A survey of embedded operating system
KR20050063304A (ko) 이동통신 단말기에서 다중 가상머신 구동용 실행 환경구조 및 그 실행방법
JPH11316691A (ja) オペレーティングシステムの実行方法及び、これを用いた情報処理装置
KR20060066465A (ko) 유저 쓰레드 관리 장치 및 그 방법

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050613

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050726

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20051025

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20051025

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20051101

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060125

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060328

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20060612

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20060619

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060927

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20061024