(57)【要約】第１及び第２のプロセッサ（１２０，１４０）、複数のモジュール（１３０，１５０）及びメモリを有する無線セルラ電話処理システム（１００）における仮想ＤＭＡのための方法及び装置である。該装置は、優先順位付けされた仮想ＤＭＡチャネルを設け且つ仮想ＤＭＡチャネルの同期化を与える割り込みを仮想ＤＭＡチャネル手段からプロセッサへ与える仮想ＤＭＡチャネル手段（１１０）と、割り込みにより呼び出されて割り込みサービス・ルーチンを提供して同期化された仮想ＤＭＡアクセスを実行するよう構成されたコールバック機能手段（４００）とを備える。これは、有利に、イベントを受け取ると達成されるべき「活動」又は処理を機能に分離する技術と、どの活動−機能がそのようなイベントを受け取ると呼ばれるべきかをシステムに知らせる方法と、システムが動作中である間に活動−機能を変える方法と、コールバック機能取り付け／取り外しプロセス（４３０／４４０）が大部分の既存の例外ハードウエア設計に適用することができるのでハードウエアから独立である技術と、イベントについてのアプリケーションの活動に達するため時間の利得が増すのでアプリケーション・レベルでの同期化スキームを再び採り上げる方法とを提供する。
2005519393.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも第１のプロセッサ、複数のモジュール及びメモリを有するシステムにおいて仮想直接メモリ・アクセス（ＤＭＡ）をするための方法であって、
優先順位付けされた仮想ＤＭＡチャネルを有する仮想ＤＭＡチャネル手段を設けるステップと、
前記仮想ＤＭＡチャネルの同期化を与える割り込みを前記仮想ＤＭＡチャネル手段から前記プロセッサへ与えるステップと、
前記割り込みにより呼び出されて割り込みサービス・ルーチンを提供して仮想ＤＭＡアクセスを実行するコールバック機能手段を設けるステップと
を備える方法。
【請求項２】
コールバック機能を前記コールバック機能手段に取り付ける手段を設けるステップと、
コールバック機能を前記コールバック機能手段から取り外す手段を設けるステップと
を更に備える請求項１記載の方法。
【請求項３】
コールバック機能を取り付ける前記手段、及びコールバック機能を取り外す前記手段が、前記システムの使用中に動作するよう構成され、それにより、前記コールバック機能手段の機能が前記システムの使用中に変えられ得る請求項２記載の方法。
【請求項４】
前記割り込みが自動ベクトル化される請求項１から３のいずれか一項に記載の方法。
【請求項５】
前記割り込みがベクトル化される請求項１から３のいずれか一項に記載の方法。
【請求項６】
前記仮想ＤＭＡチャネルが直接プロセッサ割り込みラインに接続される請求項１から３のいずれか一項に記載の方法。
【請求項７】
前記システムが更に第２のプロセッサを備え、
前記第１のプロセッサが、ソフトウエアの信号処理クラスを処理するよう構成されているディジタル信号プロセッサであり、
前記第２のプロセッサが、ソフトウエアの制御及びプロトコル・クラスを処理するよう構成されているマイクロコントローラ装置である
請求項１から６のいずれか一項に記載の方法。
【請求項８】
前記システムが無線セルラ電話処理システムである請求項７記載の方法。
【請求項９】
少なくとも第１のプロセッサ、複数のモジュール及びメモリを有するシステムにおいて仮想直接メモリ・アクセス（ＤＭＡ）をするための装置であって、
優先順位付けされた仮想ＤＭＡチャネルを設け、且つ前記仮想ＤＭＡチャネルの同期化を与える割り込みを前記仮想ＤＭＡチャネル手段から前記プロセッサへ与える仮想ＤＭＡチャネル手段と、
前記割り込みにより呼び出されて割り込みサービス・ルーチンを提供して仮想ＤＭＡアクセスを実行するよう構成されたコールバック機能手段と
を備える装置。
【請求項１０】
コールバック機能を前記コールバック機能手段に取り付ける手段と、
コールバック機能を前記コールバック機能手段から取り外す手段と
を更に備える請求項９記載の装置。
【請求項１１】
コールバック機能を取り付ける前記手段、及びコールバック機能を取り外す前記手段が、前記システムの使用中に動作するよう構成され、それにより、前記コールバック機能手段の機能が前記システムの使用中に変えられ得る請求項１０記載の装置。
【請求項１２】
前記割り込みが自動ベクトル化される請求項９から１１のいずれか一項に記載の装置。
【請求項１３】
前記割り込みがベクトル化される請求項９から１１のいずれか一項に記載の装置。
【請求項１４】
前記仮想ＤＭＡチャネルが直接プロセッサ割り込みラインに接続される請求項９から１１のいずれか一項に記載の装置。
【請求項１５】
前記システムが更に第２のプロセッサを備え、
前記第１のプロセッサが、ソフトウエアの信号処理クラスを処理するよう構成されているディジタル信号プロセッサであり、
前記第２のプロセッサが、ソフトウエアの制御及びプロトコル・クラスを処理するよう構成されているマイクロコントローラ装置である
請求項９から１１のいずれか一項に記載の装置。
【請求項１６】
前記システムが無線セルラ電話処理システムである請求項１５記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
［発明の分野］
本発明は、直接メモリ・アクセス（ＤＭＡ）に関し、より詳細にはソフトウエアで実行され得るＤＭＡに関する。
【０００２】
［発明の背景］
この発明の分野においては、プロセッサ及び分散されたモジュールを有するシステムにおいて、ＤＭＡは、通常ハードウエアで、割り込み駆動された方法を用いて、１又はそれより多いＤＭＡチャネルを介して実行されて、プロセッサの介在の必要性無しにモジュールによりシステム・メモリに直接アクセスするのを可能にすることが既知である。
【０００３】
また、特に或る一定の応用においては、ＤＭＡで、割り込み待ち時間を最小にすることが望ましいことが既知である。例えば、米国特許Ｎｏ．５，６４４，７８４から、全ての割り込みサービス要求に関するベース・アドレスに、受け取られた割り込みの優先順位から導出されるオフセットを加えたものを用いることにより、ハードウエア及びソフトウエア装置の場合割り込み待ち時間を最小する方法が既知である。これが達成された後で、この特許は、割り込みサービス・ルーチン（Ｉｎｔｅｒｒｕｐｔ  Ｓｅｒｖｉｃｅ  Ｒｏｕｔｅｉｎｅ）（ＩＳＲ）を保持するため、割り込み優先順位番号を用いて、可変の予約されたメモリ・スペースを使用可能にすることを提案している。しかしながら、これは、優先順位レベルを制限する欠点を有し、そして「割り込みサービス・ポイント」レジスタのサイズにより条件付けされる。
【０００４】
また、ＤＭＡを用いるシステムにおいて、ＤＭＡアクセスを実行するときＤＭＡチャネルにより発生された同期化イベントの満足な処理を保証する面倒を見る必要がある。
従って、上記の欠点を改善し得る仮想直接メモリ・アクセス（ＤＭＡ）のための装置及び方法に対する必要性が存在する。
【０００５】
［発明の概要］
本発明の第１の局面に従って、請求項１に記載の仮想直接メモリ・アクセス（ＤＭＡ）するための方法が提供される。
【０００６】
本発明の第２の局面に従って、請求項９に記載の仮想直接メモリ・アクセス（ＤＭＡ）するための装置が提供される。
この方法及び装置は、コールバック機能を取り付ける手段及びコールバック機能を取り外す手段を含み、当該手段が、前記システムの使用中に動作するよう構成され、それにより、前記コールバック機能手段が前記システムの使用中に変えられ得ることが好ましい。
【０００７】
こうして、アプリケーションを「ホスト」プロセッサ上で実行させながら、起動された仮想ＤＭＡイベントに対する応答時間の効率を最大にするソフトウエア・アルゴリズム及び方法が提供される。
【０００８】
これは、次のことを有利に提供する。即ち、
・イベントの受け取りの際に達成されるべき「活動（ａｃｔｉｏｎ）」又は処理を機能に分けるための技術、
・どの活動−機能がそのようなイベントの受け取りの際に呼び出されるかをシステムに知らせる方法、
・システムが動作中に活動−機能を変える方法、
・コールバック機能の取り付け／取り外しプロセスを大部分の既存の例外ハードウエア設計に適用することができるのでハードウエア独立である技術、及び
・イベントについてのアプリケーションの活動に達するため時間の利得が増すので、同期化スキームをアプリケーション・レベルで再び採り上げる方法。
本発明を組み込む直接メモリ・アクセス（ＤＭＡ）チャネル同期化のための１つの装置及び方法が、ここで例示としてのみ、添付図面を参照して説明される。
【０００９】
［好適な実施形態の説明］
最近のディジタル移動電話機においては、エアー・インターフェースを介して送信され又は受信されるデータは、ヨーロッパにおける移動通信用グローバル・システム（Ｇｌｏｂａｌ  Ｓｙｓｔｅｍ  ｆｏｒ  Ｍｏｂｉｌｅ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ）（ＧＳＭ）のためのヨーロッパ電気通信標準協会（Ｅｕｒｏｐｅａｎ  Ｔｅｌｅｃｏｍｍｎｉｃａｔｉｏｎ  Ｓｔａｎｄａｒｄｓ  Ｉｎｓｔｉｔｕｔｅ）（ＥＴＳＩ）のような標準委員会により規定された専用アルゴリズムに従った複雑な処理を必要とする。
【００１０】
このディジタル信号処理のステップは、典型的には、ベースバンド・プロセッサ集積回路（ＩＣ）により処理される。このプロセッサは、２つの主要クラスのプログラム、即ち、一方の「制御及びプロトコル」クラスと他方の「ディジタル信号処理」クラスとに分割することができるコードを実行する。
【００１１】
両方のクラスは異なる特性を有する。「制御及びプロトコル」コードは頻繁に実行するものではなく、即ち、それはプロセッサ時間の高度な利用に寄与するものではないが、しかし著しい量のメモリ（即ち、プログラム・メモリ・サイズに著しく寄与する）を占有する。他方のディジタル信号処理クラスは、プロセッサの大部分の時間を利用するが、しかしコードが多くの場合非常に小さいループの中に最適化されることができるので利用可能なメモリ空間のうちの非常に少ない部分しか占有しない。
【００１２】
セルラ装置の内部において、ベースバンドＩＣは、両方のクラスのプログラムを実行することを担っているマイクロプロセッサを含む。新生の第３世代のセルラ装置は、直接通信に関連しないが、エアー・インターフェースを介した通信に依拠するサービス（即ち、インターネット、予約サービス等）に関連したプログラムのようなより複雑なアプリケーション・プログラムを扱うことが予想される。これらのアプリケーションは、通信ソフトウエア層と共存する必要がある。
【００１３】
ベースバンド・アーキテクチャの最近の発展は、信号処理クラスのソフトウエアを扱うためのディジタル信号プロセッサ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）（ＤＳＰ）と、制御及びプロトコル・クラスのソフトウエアのためのマイクロコントローラ・ユニット（Ｍｉｃｒｏ−Ｃｏｎｔｒｏｌｌｅｒ  Ｕｎｉｔ）（ＭＣＵ）とを用いることは、これらの２つのプロセッサ間の通信及びそれらの同期化がデバッグ及びアーカイブするため困難で且つ冗長なタスクであったにも拘わらず、セルラ・システムを設計する非常に効率的な方法である可能性があることを実証した。
【００１４】
図１は、本発明を用いる第３世代無線システムのためのベースバンド・アーキテクチャ１００を示す。それは、ＤＳＰコア１２０及びその関連のＤＳＰ周辺装置１３０、及びＭＣＵコア１４０及びその関連のＭＣＵ周辺装置１５０のようなシステムの異なる構成要素又はモジュール間の仮想ＤＭＡチャネルを扱うため専用化されたＲＩＳＣプロセッサ・アーキテクチャを提供するプロセッサ間通信モジュール（Ｉｎｔｅｒ−Ｐｒｏｃｅｓｓｏｒ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｍｏｄｕｌｅ）（ＩＰＣＭ）１１０を導入する。
【００１５】
以下でより詳細に説明されるように、本発明（本明細書で考慮された好適な実施形態において）は、仮想ＤＭＡチャネルを介した仮想（即ち、ソフトウエアにおいて実行される）ＤＭＡ同期化を解決するため開発されたソフトウエア・アルゴリズムに基づいている。当該ソフトウエア・アルゴリズムは、アプリケーション・ソフトウエアがＭＣＵコア及び／又はＤＳＰ上で実行して、ＩＰＣＭ仮想ＤＭＡチャネルのうちの１つにより最小時間（最小のサイクル数）で発生されたイベントに対処するのを可能にする。
【００１６】
ここでまた図２及び図３を参照すると、ソフトウエア・アルゴリズムは、コールバック機能を利用して、仮想ＤＭＡチャネルにより起動された例外を処理する。
ソフトウエア・アルゴリズムは、これらの３つの構成要素を組み合わせた結果と考えられ得る。
【００１７】
１．優先順位付けされた仮想ＤＭＡチャネルを持つ能力を有する仮想ＤＭＡチャネル・エンジン（この例においてはＩＰＣＭ１１０であるが、しかし代替の仮想ＤＭＡチャネル・エンジンを用い得る。）
２．仮想ＤＭＡチャネルの割り込み同期化、即ち、同期化手段としての仮想ＤＭＡエンジンから割り込みを受け取るＭＣＵ側及びＤＳＰ側の能力（これは、ＭＣＵ側及びＤＳＰ側での不均一性の割り込み処理方法をもたらす。）
３．使用することにより直前に説明した不均一性の割り込み処理方法を解決する、ＩＳＲメカニズムとして用いられるコールバック機能メカニズム。
【００１８】
以下の説明は、アルゴリズムを構成するこれら３つの構成要素のそれぞれを詳述するであろう。
コールバック機能メカニズムは、多くの場合、グラフィック環境（例えば、オープン・ソースの「Ｘウインドウズ」において人間との対話を扱うためグラフィック・インターフェース（ＧＵＩ）において用いられる。コールバック機能は、初期化時間にイベントに取り付け（ａｔｔａｃｈ）られる機能ポインタであり、イベントが生起したとき、イベント・ハンドラが当該機能、従って名前「コールバック機能」を呼び出す。
【００１９】
図２に示されるように、本例においては、コールバック機能メカニズム２００は、（ｉ）初期化コードを実行すること（ステップ２１０）、それに続く（ｉｉ）コールバック機能をテーブルに登録すること（ステップ２２０）、及び（ｉｉｉ）イベントを使用可能にすること（ステップ２３０）を含む設定フェーズにより実行される。次いで、アプリケーションの主機能ループ（ステップ２４０）に入る。イベントが起動されると、その起動されたイベントが受け取られ、そしてコールバック機能は、上記のステップ（ｉｉ）の下で設定されたテーブルで参照される（ステップ２５０）。次いで、コールバック機能が実行され（ステップ２６０）、そして次いで上記メカニズムが、更なるイベントの起動を待つ。
【００２０】
直接メモリ・アクセス（ＤＭＡ）装置を利用するとき、ＤＭＡ装置は、その制御プロセッサに割り込みを送ることによりイベントが生起されたことを当該制御プロセッサに知らせる。プロセッサは、所与の割り込みの優先順位付け及び分類化を実行する（これは多くの場合ハードウエアで行われる。）割り込みハンドラを呼び出すことにより上記のイベントの受け取りに対処する。次いで、ハンドラは、割り込みサービス・ルーチン（ＩＳＲ）を呼び出す。なお、その割り込みサービス・ルーチン（ＩＳＲ）は、その特定の割り込みイベントを受け取ると活動することを担当しているルーチンである。
【００２１】
図１のＤＭＡスキームは、割り込みサービス・ルーチン（ＩＳＲ）をコールバック機能メカニズムを用いて実行し、その結果それらを事実上コールバック割り込みサービス・ルーチン（コールバックＩＳＲ）にする。
【００２２】
仮想ＤＭＡイベントに対する活動は、次のように実行される。図３に示されるように、例外（参照番号１６０及び１７０として示される）が、仮想ＤＭＡ装置ＩＰＣＭ１１０からＤＳＰコア１２０及び／又はＭＣＵコア１４０に向けて発生される。
【００２３】
次いで、各コアの例外ハンドラは、当該例外を処理するため呼び出される。次いで、コアの例外ハンドラは、コールバック機能のアドレスにジャンプする。そのような例外について実行されるべき活動又は処理は、コールバック機能の内部に含まれる。
【００２４】
ここで図４を参照すると、コールバック機能テーブル４００の初期化は、仮想ＤＭＡ装置と関連した例外を使用可能にする前にコアの「ブートストラップ」段階で生じる。初期化ブートストラップはまさに、どの機能が特定の割り込みイベントを受け取ると呼び出されることになるかを規定する機能ポインタのテーブル４２０を充填する。テーブル４００の充填が完了すると、ブートストラップが終了し、そして制御はアプリケーション・プログラムに与えられる。アプリケーション・プログラムは最終的には割り込まれ、その割り込みイベントは、コールバック割り込みサービス・ルーチン・メカニズムを呼び出すであろう例外ハードウエア（図示せず）により処理されるであろう。
【００２５】
活動を初期化し、又は変え、あるいは除去するための活動は、次のように実行される。割り込みイベントを受け取ると呼び出されるべき機能のアドレスをシステムのため定義する初期化コードの動作（ａｃｔ）は、コールバックＩＳＲの取り付け（ＡＴＴＡＣＨＭＥＮＴ）と呼ばれる。取り付け（ＡＴＴＡＣＨ）手順は、システムをサポートするライブラリ（図示せず）により提供されるべきアトミック・アクション（ａｔｏｍｉｃ  ａｃｔｉｏｎ）（４３０）と考えられる。
【００２６】
同じようにして、取り外し（ＤＥＴＡＣＨ）アトミック・アクションは、コールバック機能のアドレスをシステム・コールバックＩＳＲテーブルから登録取り消しを行う動作である。取り付け（ＡＴＴＡＣＨ）アトミック・アクションに類似して、取り外し（ＤＥＴＡＣＨ）アトミック・アクション（４４０）はまた、上記のシステム・サポート・ライブラリの一部である。
【００２７】
取り付け（ＡＴＴＡＣＨ）機能及び取り外し（ＤＥＴＡＣＨ）機能の同時サポートは、システムがまたアップ（ｕｐ）及び実行しながらコールバックＩＳＲを変更する（ＣＨＡＮＧＥ）ことを可能にする。取り付け／取り外し（ＡＴＴＡＣＨ／ＤＥＴＡＣＨ）のシステム・サポートは、テーブル４００のコールバックＩＳＲアドレスの変化中に割り込みイベントを使用可能／使用不能にすることを含む。
【００２８】
システムの保全性を維持するため、コールバックＩＳＲが与えられない時間に、又はアプリケーションが既存のコールバックＩＳＲを変えるのを望む時間中に責任を負うデフォルト割り込みサービス・ルーチンを設けなければならない。このデフォルトＩＳＲはまた、ユーザにより設けられるコールバックＩＳＲであることができる。
【００２９】
本発明は多くのハードウエア形態で適用可能であることが理解されるであろう。最新の第３世代無線セルラ電話アーキテクチャは、複数の異なるプロセッサ・コアを組み込み、当該複数の異なるプロセッサ・コアのそれぞれは、割り込み、又はより一般的には例外を処理する様々な方法を持ち得る。従って、仮想ＤＭＡ装置１１０は、それぞれのコアが割り込みを考慮するための異なる方法を有する例えば参照番号１２０及び１４０のような２つのコアに対して「トーク（ｔａｌｋ）」することができる。割り込み優先順位決定スキームがコア・アーキテクチャに設けられ（高速又は通常の割り込み）、そして割り込みコントローラにより与えられるサービスは、第１レベル・ハンドラが割り込み番号を決定するのを可能にする。アルゴリズムは、純粋にソフトウエアで実行され、割り込みコントローラにより与えられる情報に依拠し、そしてハードウエアが優先順位を確立して例外ベクトル・テーブルを通してジャンプすることができる程迅速に対処する。
【００３０】
図５は、アーキテクチャ１００のハードウエア／ソフトウエア相互作用を示す。ハードウエアでサポートされる機能とソフトウエアでサポートされる機能との境界は、５００Ａ又は５００Ｂに位置決めされることができる破線により示されるように、変わることができる。ハードウエア・コア優先順位スキーム５１０の出力は、例外ベクトル・テーブル５２０に印加されており、例外ベクトル・テーブル５２０の出力は、ユーザＩＳＲに対する第１制御部に印加されている。割り込み番号の読み出し５４０は、割り込みコントローラ５５０の制御下で実行される。必要ならば、割り込みクラスのケースが切り替えられる（５６０）。仮想ＤＭＡチャネル割り込みケース５７０が、割り込み番号に対するコールバックＩＳＲテーブルにおける指標５８０として用いられる。分かることができるように、機能５１０、５２０及び５５０はハードウエアで実行され、機能５７０及び５８０はソフトウエアで実行され、機能５３０、５４０及び５６０はハードウエア又はソフトウエアのいずれかで実行され得る。従って、本発明は、様々な方法を利用することができ、基礎をなすハードウエアが割り込みソースに対して迅速に構成する。破線５００Ａ／５００Ｂは、２つのレベルのハードウエア・サポート間の相違を示す。
【００３１】
図６、図７及び図８は、異なるレベルのハードウエア・サポートを有するアーキテクチャ１００の形態を詳しく示す。図６は、自動ベクトル化（ａｕｔｏｖｅｃｔｏｒ）された割り込みを用いた使用を示し、その場合仮想ＤＭＡ装置からの割り込みは他の装置と混合され、そして全ての仮想ＤＭＡチャネル割り込みイベントは一緒にＯＲ処理（論理和演算）される。図７は、ベクトル化（ｖｅｃｔｏｒ）された割り込みを用いた使用を示し、それは、割り込みソースの装置を決定する決定段の除去を強調する。図８は、全ての仮想ＤＭＡチャネルが直接プロセッサの割り込みラインに接続されているケースを示す。
【００３２】
ここで図６を参照すると、複数の装置ソース及びＯＲ処理されたチャネルによる自動ベクトル化された割り込みを用いた使用のため後に続くステップは、次のとおりである。
・処理コア（ＭＣＵ又はＤＳＰ）上で実行するアプリケーションが開始する（ステップ６１０）。
【００３３】
・割り込みイベントが、ＩＰＣＭにより起動され、そして処理コアにより受け取られる（ステップ６２０）。
・割り込みハンドラが、呼び出され、そして実行を開始する（ステップ６３０）。
【００３４】
・割り込み優先順位付けアルゴリズム（ステップ６４０）は、それが、同じ割り込みラインに接続されている全ての装置の間で処理される必要がある仮想ＤＭＡ例外ケース（ステップ６５０）であることを決定する。
【００３５】
・割り込みイベントが生じた仮想ＤＭＡチャネル番号に対応する割り込み番号を獲得するため、ＩＰＣＭの割り込みレジスタにアクセスする（ステップ６６０）。
・呼び出されるべきコールバック機能のアドレスを獲得するため、割り込みイベント番号を用いて、コールバック機能のテーブルをインデックス（ｉｎｄｅｘ）する（ステップ６７０）。なお、チャネル番号をシステムのコールバックＩＳＲテーブルの指標として用いることにより、一層早くジャンプに達するを可能にする。
【００３６】
・コールバック機能のアドレスへのジャンプは、制御をコールバック割り込みサービス・ルーチンへ与えて実行される（ステップ６８０）。
・ＩＳＲ実行（ステップ６９０）の後で、制御は、アプリケーションに戻される（ステップ６９５）。
【００３７】
ここで図７を参照すると、ハードウエアがベクトル化された割り込みのサポートを有する場合、ソース装置決定（図６のステップ６４０及び６５０）はもはや必要でない。この場合、図６におけるようなステップ６３０の代わりに、割り込みハンドラは、直接適切な仮想ＤＭＡケースにジャンプするためベクトル化される（ステップ７００）。
【００３８】
取り付け／取り外し（ＡＴＴＡＣＨ／ＤＥＴＡＣＨ）ルーチンは、図６に示されるケースにおけるようにコールバックＩＳＲ機能テーブルを維持する。
ここで図８を参照すると、全ての仮想ＤＭＡイベントがそれらのそれぞれのプライベート割り込みラインへ有線で結ばれることができる場合で且つコアがベクトル化された割り込みをサポートする場合、仮想ＤＭＡ装置の割り込みレジスタへの読み出しアクセス（図７のステップ６６０及び６７０）もまた取り外すことができる。このイベントにおいては、図７のステップ７００の代わりに、割り込みハンドラは、適切な仮想ＤＭＡケースを識別するためベクトル化される（ステップ８００）。
【００３９】
この時点での取り付け（ＡＴＴＡＣＨ）ルーチンは、コールバックＩＳＲ機能のアドレスを割り込みベクトル・テーブルに書き込むことのみが必要である。このアーキテクチャを選択すれば最も高速であるが、しかしまたそれは、各仮想ＤＭＡチャネルがそれ自身の割り込みラインを要求するにつれ、多すぎる割り込みラインを必要とする場合がある。
【００４０】
前述の仮想ＤＭＡスキームにおいて、コールバック機能をイベントに取り付けることができるので、同期化メカニズムがアプリケーション・レベルで設けられ、そこで、割り込みが呼び出されると直ぐに、アプリケーションが活動機能（ａｃｔｉｏｎ  ｆｕｎｃｔｉｏｎ）を実効的に呼び出すことが認められるであろう。
【００４１】
複雑なアプリケーションは、それらの内部状態を表す状態機械を有する。仮想ＤＭＡイベントのようなイベントは内部状態変化を作るが、しかし活動はまだ取られて無く、それはスケジュールされ、ＩＳＲは単にイベントが発生したことを記録するだけである。前述の仮想ＤＭＡスキームは、さもなければ必要とされる同期化を排除することができ、状態機械の状態又は遷移を更新する必要が無く、コールバックＩＳＲは活動自体であり（即ち、ＵＡＲＴバッファを読み出し、そしてそれについて作用する）、そしてその活動を開始するためのリード・タイムが低減されるので、その活動を取るための時間は、アプリケーションのデッドラインに適合するのに十分な程に短くすることができる。
【００４２】
前述の仮想ＤＭＡスキームが従来技術を越えた多くの利点を提供することが理解されるであろう。上記の仮想ＤＭＡスキームを他のあり得る技術と対比するため、一般的ポーリング・メカニズムのケースを以下で詳細に考える。このケースの研究は、上記の仮想ＤＭＡスキームが起動されたイベントについて正しいＩＳＲを開始するに要する時間を改善する範囲を強調する。ハードウエア・サポートも変わることができ、従って、それは、開発されたアルゴリズムに影響を与えることができる。
【００４３】
図９に提示されるフローにおいて、割り込みサービス・ルーチン（ＩＳＲ）で費やされる時間を最小に保つため、ＩＳＲが仮想ＤＭＡチャネルのどの割り込みが送られたかを記録するのみであることが選定された。これは、次の３つの鍵となるポイントを同期化することがアプリケーションの責任であることを意味する。
【００４４】
１  割り込みの検出又は「受け取り」
２  この割り込みイベントを処理する又はそれについて対処すること
３  送信装置に、割り込みが検出され且つ「理解」されたことを通知すること。
【００４５】
この同期化は、様々な方法で扱うことができ、そして図９のフロー図において、アプリケーションが特定のイベントについて待つことを望む場合を表すループ（上のループ）、又はアプリケーションはどの割り込みが受け取られたか及びどの活動（ＩＳＲ）がその割り込みのため呼び出されるべきかを決定しなければならないことを当該アプリケーションが知る場合を表すループとの２つのループにより表される。
【００４６】
この技術は、ある点でアプリケーションが変数（ｖａｒｉａｂｌｅ）及び／又はレジスタにアクセスして割り込みが既に到着していることを決定し、それが変数をポーリングするのでポーリングと呼ばれる。
【００４７】
図９に示されるように、ステップは以下のように詳述される。
・処理コア（ＭＣＵ又はＤＳＰ）上で実行するアプリケーションを開始する（ステップ９１０）。
【００４８】
・アプリケーションは、イベントを受け取ると活動を実行する必要がある（ステップ９２０）。
・割り込みイベントは、ＩＰＣＭにより起動され、そして処理コアにより受け取られる（ステップ９３０）。
【００４９】
・割り込みハンドラが、呼び出され、そして実行を開始する（ステップ９４０）。
・割り込み優先順位付けアルゴリズムは、それが処理される必要がある仮想ＤＭＡ例外ケースであることを決定する（ステップ９４０及び９５０）。
【００５０】
・割り込み番号を獲得するため、ＩＰＣＭの割り込みレジスタにアクセスされる（なお、その割り込み番号は、割り込みイベントが発生した仮想ＤＭＡチャネル番号に対応する。−ステップ９７０）。
・コピーが、プログラムの他のパーツによりアクセス可能である統計的に割り当てられたグローバル状態変数の中に作られる（ステップ９８０）。
【００５１】
次いで、制御はアプリケーションに戻される。同期化アルゴリズムに依存して、この時点に、アプリケーションが最初にイベントが発生したことを検出し、そして適正な割り込みサービス・ルーチン（ＩＳＰ）のアドレスへジャンプする決定を取ることができる。用語「アプリケーション」は、本明細書では、その範囲に今日の最新システムにおけるユーザのオペレーティング・システム・プログラムを含むことができることに注目されたい。
【００５２】
図示されたポーリング・スキームは、制御を取り戻し且つ例外を受け取るまで待つことが低レベル制御ループ、通常オペレーティング・システム（ＯＳ）ループの責任であり（ステップ９９０）、ＩＳＲは、この割り込みイベントを受け取ると取るべき活動を実行し（ステップ９９２）、そして制御が、アプリケーションに戻され、そのアプリケーションは、多分クリーンアップを実行する（ステップ９９５）ことを強調している。
【００５３】
これは決してポーリング・メカニズムの汎用例ではないが、それは、プログラムが変数又はレジスタに表示するため状態ビットを待つことであるポーリング・メカニズムの下での基礎をなす概念を示す。検出、処理（対処すること）、通知を考慮するため同期化ステップがあることが重要である。この例がどの時点に割り込みの通知が置かれるべきであるかを説明しないことに注目されたい。即ち、
・グローバル変数へのコピー後にか、しかし一方では活動が決して実行されないであろうし、又は
・ＩＳＲの終わりにか、しかし一方では待ち時間は、割り込みイベントの送信手段、即ちＩＰＣＭにとって非常に大きい。
【００５４】
上記のポーリングの例は、ＩＳＲのため割り込み駆動されたコールバック機能メカニズムの利点を強調するのを可能にする。
・実行されるべき活動（ＩＳＲ）が、イベントに初期化時間に取り付けられ、即ち、イベントが処理されるべきか又はいつそうすべきかを決定するためアプリケーションの実行中に当該アプリケーションにより浪費される時間が無い（検出オーバヘッドが無い）。これは、オペレーティング・システムがイベントについて待つ時間を浪費しないこと、及び様々にアーキテクチャされたタスク・セットを持たないことを可能にする。
【００５５】
・イベントの送信手段への通知は、対処を行いつつあること及び割り込みイベントが落ちてしまわなかったことを知った場合ＩＳＲ内の最小オーバヘッドで実行されることができる。
【００５６】
・割り込み優先順位付け以外の判定アルゴリズムが関係しないので、制御は、最小オーバヘッドでもってアプリケーションに戻される（そこへジャンプしそしてそれから戻る）。ＩＳＲは、アプリケーションがより高いレベルで実行することに関して意味を有する対処を行い（又は処理する）ことのみに減らされる。
【００５７】
前述の仮想ＤＭＡスキームの性能及びコストの改善は次のように考えることができることが理解されるであろう。前述の仮想ＤＭＡスキームが例外処理のためのソフトウエア・アルゴリズムであるので、それを性能及びコストの視点から見ることができる。性能は、制御が受け取られたイベントについての活動になる前にシステムが消費する必要があるサイクル数により評価される。前述の仮想ＤＭＡスキームは、ジャンプ先の機能のアドレス、即ちコールバックＩＳＲがコールバック・テーブルにコア初期化時間に記録されるので、この点に達するための非常に効率的な方法を提案する。アプリケーションの実行時間中に、時間は、ハードウエアが実行する必要がある最小ジャンプ命令の時間である。
【００５８】
従って、コストを、達成される最良の性能の結果として評価することができる。コストは、図１のアーキテクチャのようなアーキテクチャ、即ち、リアルタイム・ディジタル信号処理指向のタスクについて実行するアプリケーションの種類に関連する。例外処理で消費されるサイクル数の改善は、イベントに対処する全体システムの能力を増強する。これは、ソフトウエア・アーキテクチャがそのタスクを一層良くスケジュールし且つそれを分割するのを可能にし、その結果システム・レベルでのサイクルの改善をもたらす。このサイクルの改善は、全体クロック速度を低減し及び／又はパワー節約モードに一層迅速に行くことができることをもたらし、その結果、バッテリ寿命を節約する。従って、消費者に見える製品性能特性を増大し得る。
【００５９】
従って、要約すると、前述の仮想ＤＭＡのための方法は、イベントからの迅速な応答時間を提供し、そして２又はそれより多くのプロセッサ間の同期化を提供することが理解されるであろう。
【図面の簡単な説明】
【００６０】
【図１】図１は、「仮想」ＤＭＡスキームを図示する概略的ブロック図を示す。
【図２】図２は、図１のＤＭＡスキームに用いられる一般的コールバック機能メカニズムを図示する概略的ブロック図を示す。
【図３】図３は、図１のスキームにおける仮想ＤＭＡ割り込みの使用を図示する概略的ブロック図を示す。
【図４】図４は、図１のＤＭＡスキームに用いられるコールバック機能割り込みサービス・ルーチンのための「取り付け」及び「取り外し」機能を図示する概略図を示す。
【図５】図５は、図１のスキームにおけるハードウエア−ソフトウエア相互作用を図示する概略的ブロック図を示す。
【図６】図６は、図１のＤＭＡスキームに用い得る多重デバイス源（ｍｕｌｔｉｐｌｅ  ｄｅｖｉｃｅ  ｓｏｕｒｃｅｓ）及びＯＲ処理されたＤＭＡチャネルを用いた「自動ベクトル化」を図示する概略的ブロック図を示す。
【図７】図７は、図１のＤＭＡスキームに用い得るＯＲ処理されたＤＭＡチャネルを用いた「ベクトル化」を図示する概略的ブロック図を示す。
【図８】図８は、図１のＤＭＡスキームに用い得る仮想ＤＭＡチャネル及びプライベート割り込みラインを用いた「ベクトル化」を図示する概略図を示す。
【図９】図９は、ポーリングの文脈の中での図１のＤＭＡスキームの性能利点を図示する概略図を示す。
【図１】
2005519393.tif 000003
【図２】
2005519393.tif 000004
【図３】
2005519393.tif 000005
【図４】
2005519393.tif 000006
【図５】
2005519393.tif 000007
【図６】
2005519393.tif 000008
【図７】
2005519393.tif 000009
【図８】
2005519393.tif 000010
【図９】
2005519393.tif 000011
【国際調査報告】
2005519393.tif 000012
2005519393.tif 000013
2005519393.tif 000014