(57)【特許請求の範囲】
【請求項１】
プロセッサと、
前記プロセッサに接続された、複数の周辺機器と、
各周辺機器に接続された、プログラマブル周辺機器相互接続器と、を備える周辺機器同士の通信システムであって、
前記周辺機器の少なくとも一つは、イベント信号を送ることによって前記プログラマブル周辺機器相互接続器にイベントを通知するように構成された、イベント生成周辺機器であり、
前記周辺機器の少なくとも一つは、タスクを実行することによって、前記プログラマブル周辺機器相互接続器からのタスク信号に応答するように構成された、タスク受信周辺機器であり、
前記タスク受信周辺機器は、前記プロセッサによってアドレス指定可能で前記タスクに付随したタスクレジスタを備え、前記タスクレジスタの内容の変化に応じて前記タスクを実行するように構成されており、
前記プログラマブル周辺機器相互接続器は、第一周辺機器のイベントと第二周辺機器のタスクとのマッピングが格納されるメモリにアクセスするように構成されており、前記マッピングは、（ｉ）前記第一周辺機器の前記イベントの識別子と、（ｉｉ）前記タスクに付随したタスクレジスタのアドレスと、を含むものであり、
前記プログラマブル周辺機器相互接続器は、第一周辺機器のイベントと第二周辺機器のタスクとのマッピングがメモリに格納されている場合に、前記第一周辺機器からの前記イベントの信号に応答して前記第二周辺機器にタスク信号を送信することによって、伝送路を提供するようになっている、
ことを特徴とする、周辺機器同士の通信システム。
【請求項２】
前記イベント生成周辺機器は、前記プロセッサによってアドレス指定可能で、前記イベントに付随したイベントレジスタを備え、前記マッピングは、イベントに付随したイベントレジスタのアドレスを含む
ことを特徴とする、請求項１に記載のシステム。
【請求項３】
前記プログラマブル周辺機器相互接続器は、各イベントおよびタスクごとにそれぞれの回線によって前記周辺機器に接続される
ことを特徴とする、請求項１または請求項２に記載のシステム。
【請求項４】
前記プログラマブル周辺機器相互接続器は、少なくとも一つのマルチプレクサと、少なくとも一つのデマルチプレクサと、を備え、前記メモリに格納されたマッピングに従って前記マルチプレクサおよび前記デマルチプレクサを制御するように構成される
ことを特徴とする、請求項１乃至請求項３のいずれか一項に記載のシステム。
【請求項５】
前記プログラマブル周辺機器相互接続器は、周辺機器上の、付随したイベントレジスタの内容の変化を検出することによって、前記周辺機器からイベント信号を受信するように構成される
ことを特徴とする、請求項１乃至請求項４のいずれか一項に記載のシステム。
【請求項６】
前記プログラマブル周辺機器相互接続器は、周辺機器上の、付随したタスクレジスタの内容を変更することによって、前記周辺機器へタスク信号を送信するように構成される
ことを特徴とする、請求項１乃至請求項５のいずれか一項に記載のシステム。
【請求項７】
前記イベント信号または前記タスク信号は、それぞれ電気的なパルスである
ことを特徴とする、請求項１乃至請求項４のいずれか一項に記載のシステム。
【請求項８】
マッピングが格納され得る前記メモリは、前記プロセッサによってアドレス指定可能な、一つ以上のレジスタを含む
ことを特徴とする、請求項１乃至請求項７のいずれか一項に記載のシステム。
【請求項９】
前記プログラマブル周辺機器相互接続器は、マッピングに含まれるレジスタアドレスに対応する回線またはポートを決定するために、検索表をアクセスするように構成される
ことを特徴とする、請求項１乃至請求項８のいずれか一項に記載のシステム。
【請求項１０】
前記プログラマブル周辺機器相互接続器は、伝送路を有効または無効にするメカニズムを備えている
ことを特徴とする、請求項１乃至請求項９のいずれか一項に記載のシステム。
【請求項１１】
前記プログラマブル周辺機器相互接続器は、一つ以上の伝送路のグループをまとめて有効および無効にするメカニズムを備えている
ことを特徴とする、請求項１乃至請求項１０のいずれか一項に記載のシステム。
【請求項１２】
前記プログラマブル周辺機器相互接続器は、各々が、それぞれの伝送路グループを規定する、複数の伝送路識別子を格納することが可能な、一つ以上のレジスタまたはメモリ領域を備えている
ことを特徴とする、請求項１１に記載のシステム。
【請求項１３】
前記プロセッサによる単一の命令または動作が、グループ内のすべての前記伝送路を前記プログラマブル周辺機器相互接続器によって有効または無効にすることができるように構成される
ことを特徴とする、請求項１１または請求項１２に記載のシステム。
【請求項１４】
前記プログラマブル周辺機器相互接続器は、伝送路グループごとに、それぞれのグループ一括有効タスク信号入力回線と、それぞれのグループ一括無効タスク信号入力回線と、を備える
ことを特徴とする、請求項１１乃至請求項１３のいずれか一項に記載のシステム。
【請求項１５】
前記プログラマブル周辺機器相互接続器は、前記プログラマブル周辺機器相互接続器が周辺機器からイベント信号を受信することに応答して、伝送路グループが有効または無効になるように、構成される
ことを特徴とする、請求項１１乃至請求項１４のいずれか一項に記載のシステム。
【請求項１６】
前記プログラマブル周辺機器相互接続器は、伝送路グループを有効または無効にするタスクに付随したタスクレジスタを備え、マッピングが、周辺機器のイベントの識別子と、前記タスクレジスタのアドレスと、を含んでメモリに格納されている場合、前記プログラマブル周辺機器相互接続器は、前記周辺機器からの前記イベントの信号に応答して前記伝送路グループを有効または無効にするように構成される
ことを特徴とする、請求項１１乃至請求項１５のいずれか一項に記載のシステム。
【請求項１７】
少なくとも一台の前記周辺機器については、前記周辺機器から送信されたイベント信号が、前記プログラマブル周辺機器相互接続器を通過せずに、同じ前記周辺機器によってタスク信号として受信されるように構成される
ことを特徴とする、請求項１乃至請求項１６のいずれか一項に記載のシステム。
【請求項１８】
複数の周辺機器のそれぞれに接続するように構成されたプログラマブル周辺機器相互接続器であって、
前記周辺機器の少なくとも一つは、イベント信号を送ることによって前記プログラマブル周辺機器相互接続器にイベントを通知するように構成された、イベント生成周辺機器であり、
前記周辺機器の少なくとも一つは、タスクを実行することによって、前記プログラマブル周辺機器相互接続器からのタスク信号に応答するように構成された、タスク受信周辺機器であり、
前記タスク受信周辺機器は、プロセッサによってアドレス指定可能で前記タスクに付随したタスクレジスタを備え、前記タスクレジスタの内容の変化に応じて前記タスクを実行するように構成されており、
前記プログラマブル周辺機器相互接続器は、第一周辺機器のイベントと第二周辺機器のタスクとのマッピングが格納されるメモリにアクセスするように構成されており、前記マッピングは、（ｉ）前記第一周辺機器の前記イベントの識別子と、（ｉｉ）前記タスクに付随したタスクレジスタのアドレスと、を含むものであり、  前記プログラマブル周辺機器相互接続器は、第一周辺機器のイベントと第二周辺機器のタスクとのマッピングがメモリに格納されている場合に、前記第一周辺機器からの前記イベントの信号に応答して前記第二周辺機器にタスク信号を送信することによって、伝送路を提供するようになっている、
ことを特徴とする、プログラマブル周辺機器相互接続器。
【請求項１９】
前記イベント生成周辺機器は、前記プロセッサによってアドレス指定可能で、前記イベントに付随したイベントレジスタを備え、前記マッピングは、イベントに付随したイベントレジスタのアドレスを含む
ことを特徴とする、請求項１８に記載の相互接続器。
【請求項２０】
前記プログラマブル周辺機器相互接続器は、各イベントおよびタスクごとにそれぞれのポートを備える
ことを特徴とする、請求項１８または請求項１９に記載の相互接続器。
【請求項２１】
少なくとも一つのマルチプレクサと、少なくとも一つのデマルチプレクサと、を備え、前記メモリに格納されたマッピングに従って前記マルチプレクサおよび前記デマルチプレクサを制御するように構成される
ことを特徴とする、請求項１８乃至請求項２０のいずれか一項に記載の相互接続器。
【請求項２２】
前記周辺機器へのタスク信号の送信は、前記プログラマブル周辺機器相互接続器が前記周辺機器上の付随したタスクレジスタの内容を変更することを含む
ことを特徴とする、請求項１８乃至請求項２１のいずれか一項に記載の相互接続器。
【請求項２３】
前記プログラマブル周辺機器相互接続器は、周辺機器上の、付随したタスクレジスタの内容を変更することによって、前記周辺機器へタスク信号を送信するように構成される
ことを特徴とする、請求項１８乃至請求項２２のいずれか一項に記載の相互接続器。
【請求項２４】
マッピングが格納され得る前記メモリは、一つ以上のレジスタを含む
ことを特徴とする、請求項１８乃至請求項２３のいずれか一項に記載の相互接続器。
【請求項２５】
マッピングに含まれるレジスタアドレスに対応する回線またはポートを決定するために、検索表をアクセスするように構成される
ことを特徴とする、請求項１８乃至請求項２４のいずれか一項に記載の相互接続器。
【請求項２６】
前記プログラマブル周辺機器相互接続器は、伝送路を有効または無効にするメカニズムを備えている
ことを特徴とする、請求項１８乃至請求項２５のいずれか一項に記載の相互接続器。
【請求項２７】
一つ以上の伝送路のグループをまとめて有効および無効にするメカニズムを備えている
ことを特徴とする、請求項１８乃至請求項２６のいずれか一項に記載の相互接続器。
【請求項２８】
各々が、それぞれの伝送路グループを規定する、複数の伝送路識別子を格納することが可能な、一つ以上のレジスタまたはメモリ領域を備えている
ことを特徴とする、請求項２７に記載の相互接続器。
【請求項２９】
プロセッサによる単一の命令または動作に応じて、グループ内のすべての前記伝送路を有効または無効にするように構成される
ことを特徴とする、請求項２７または請求項２８に記載の相互接続器。
【請求項３０】
伝送路グループごとに、それぞれのグループ一括有効タスク信号入力ポートと、それぞれのグループ一括無効タスク信号入力ポートと、を備える
ことを特徴とする、請求項２７乃至請求項２９のいずれか一項に記載の相互接続器。
【請求項３１】
周辺機器からイベント信号を受信することに応答して、伝送路グループが有効または無効になるように、前記相互接続器を構成するメカニズムを備えている
ことを特徴とする、請求項２７乃至請求項３０のいずれか一項に記載の相互接続器。
【請求項３２】
伝送路グループを有効または無効にするタスクに付随したタスクレジスタを備え、マッピングが、周辺機器のイベントの識別子と、前記タスクレジスタのアドレスと、を含んでメモリに格納されている場合、前記相互接続器は、前記周辺機器からの前記イベントの信号に応答して前記伝送路グループを有効または無効にするように構成される
ことを特徴とする、請求項２７乃至請求項３１のいずれか一項に記載の相互接続器。
【請求項３３】
請求項１乃至請求項１６のいずれか一項に係る、周辺機器同士の通信システムにおいて、第一周辺機器のイベントと第二周辺機器のタスクとのつながりを構成する方法であって、（ｉ）前記第一周辺機器の前記イベントの識別子と、（ｉｉ）前記第二周辺機器の前記タスクに付随したタスクレジスタのアドレスと、を含むマッピングをメモリに格納することを含む
ことを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセッサに接続された周辺機器同士の通信に関する。
【背景技術】
【０００２】
マイクロコントローラシステムは、典型的には、中央処理装置（ＣＰＵ）とは別個であるものの、一般的にバスでそれに接続されている、多くの周辺機器を備えている。これらの周辺機器は、（例えば、システムオンチップとして）プロセッサと同じ集積回路上に、または同一のマルチチップモジュールもしくはシステムインパッケージ内に配置してもよい。代わりに、周辺機器を、メインプロセッサの集積回路から離して、例えば、別のパッケージ内に配置してもよい。周辺機器の例としては、タイマーと、暗号化エンジンと、シリアルインタフェース（ＵＡＲＴ）と、組込み無線トランシーバと、が含まれる。
【０００３】
単純なアーキテクチャでは、プロセッサは、各周辺機器と直接通信する。ある周辺機器から別の周辺機器への通信は、プロセッサを介して、例えば、割り込みを利用して実現される。しかし、このメカニズムは、プロセッサが低消費電力（スリープ）状態から起動したり、メッセージを中継する前に既存の動作を完了したりする必要があるので、時間がかかったり、予測不可能なタイミングにつながったりすることがある。プロセッサがスリープ状態にある場合には、ある周辺機器から別の周辺機器への通信はまた、プロセッサを起動するのに多大なエネルギーを消費することにもつながりかねない。
【０００４】
ある周辺機器が別の周辺機器と直接通信できるようにすることによって、これらの欠点に対処しようとする試みがいくつか行なわれてきた。例えば、相互接続装置は、多くの伝送路に対応することが可能であり、各伝送路は、信号生成周辺機器から（例えば、マルチプレクサを用いて）信号を受信したり、選択された信号受信周辺機器に信号を直接送信したりするように、プロセッサによって構成される。
【０００５】
しかし、出願人は、そのような試みが改良できることに気が付いた。
【発明の概要】
【０００６】
こうして、第一の態様から、本発明は、
プロセッサと、
前記プロセッサに接続された、複数の周辺機器と、
各周辺機器に接続された、プログラマブル周辺機器相互接続器と、を備える周辺機器同士の通信システムを提供するものであって、
前記周辺機器の少なくとも一つは、イベント信号を送ることによって前記プログラマブル周辺機器相互接続器にイベントを通知するように構成された、イベント生成周辺機器であり、
前記周辺機器の少なくとも一つは、タスクを実行することによって、前記プログラマブル周辺機器相互接続器からのタスク信号に応答するように構成された、タスク受信周辺機器であり、
前記タスク受信周辺機器は、前記プロセッサによってアドレス指定可能で前記タスクに付随したタスクレジスタを備え、前記タスクレジスタの内容の変化に応じて前記タスクを実行するように構成されており、
前記プログラマブル周辺機器相互接続器は、第一周辺機器のイベントと第二周辺機器のタスクとのマッピングが格納されるメモリにアクセスするように構成されており、前記マッピングは、（ｉ）前記第一周辺機器の前記イベントの識別子と、（ｉｉ）前記タスクに付随したタスクレジスタのアドレスと、を含むものであり、
前記プログラマブル周辺機器相互接続器は、第一周辺機器のイベントと第二周辺機器のタスクとのマッピングがメモリに格納されている場合に、前記第一周辺機器からの前記イベントの信号に応答して前記第二周辺機器にタスク信号を送信することによって、伝送路を提供することになる。
【０００７】
第二の態様から、本発明は、複数の周辺機器のそれぞれに接続するように構成されたプログラマブル周辺機器相互接続器を提供するものであって、
前記周辺機器の少なくとも一つは、イベント信号を送ることによって前記プログラマブル周辺機器相互接続器にイベントを通知するように構成された、イベント生成周辺機器であり、
前記周辺機器の少なくとも一つは、タスクを実行することによって、前記プログラマブル周辺機器相互接続器からのタスク信号に応答するように構成された、タスク受信周辺機器であり、
前記タスク受信周辺機器は、プロセッサによってアドレス指定可能で前記タスクに付随したタスクレジスタを備えて、前記タスクレジスタの内容の変化に応じて前記タスクを実行するように構成されており、
前記プログラマブル周辺機器相互接続器は、第一周辺機器のイベントと第二周辺機器のタスクとのマッピングが格納されるメモリにアクセスするように構成されて、前記マッピングは（ｉ）前記第一周辺機器の前記イベントの識別子と、（ｉｉ）前記タスクに付随したタスクレジスタのアドレスと、を含むものであり、  前記プログラマブル周辺機器相互接続器は、第一周辺機器のイベントと第二周辺機器のタスクとのマッピングがメモリに格納されている場合に、前記第一周辺機器からの前記イベントの信号に応じて前記第二周辺機器にタスク信号を送信することによって、伝送路を提供することになる。
【０００８】
第三の態様から、本発明は、第一周辺機器のイベントと第二周辺機器のタスクとの関係を、上記に定めるように、周辺機器同士の通信システムに設定する方法を提供するものであって、（ｉ）前記第一周辺機器の前記イベントの識別子と、（ｉｉ）前記タスクに付随したタスクレジスタのアドレスと、を含むマッピングをメモリに格納するステップを含む。
【０００９】
本発明によれば、プログラマブル周辺機器相互接続器（ＰＰＩ）は、プロセッサを関与させる必要なしに、ある周辺機器からのイベント信号が別の周辺機器でタスクを起動させることができるということが、当業者に理解されるであろう。これによって、周辺機器同士が互いに直接通信する間にプロセッサはスリープ状態のままでいられるので、大幅な電力節約になる。また、周辺機器同士で迅速な通信を行なうことも可能になる。重要なのは、本発明を具現化するＰＰＩは、タスク受信周辺機器にあるレジスタのアドレスを使用して、その周辺機器への伝送路を定義するということである。従って、伝送路を設定するために、不明瞭な周辺機器識別子およびタスク識別子を制御信号として相互接続装置へ送信する必要が無く、本発明の実施形態では、プロセッサ上で実行中のファームウェアが、タスク受信周辺機器の使いやすいレジスタアドレスを用いて、容易かつ便利に伝送路を確立することができる。
【００１０】
このような構成は、プロセッサ用のファームウェアのプログラマにとってさらに大きな利便性を提供するものである。なぜなら、同じレジスタアドレスを使用して、プロセッサから（例えば、関連するタスクレジスタへの書き込みを介して）直接にタスク受信周辺機器にアクセスしたり、またタスクレジスタのアドレスをイベントにマッピングすることによってＰＰＩ内に伝送路を構成したりすることができるからである。これによって、プログラマが、同じタスクについて二つの異なるネーミングシステムを参照および使用する必要性を無くすことができる。
【００１１】
本発明を具現化する製品のメーカーは、一連の未使用アドレスから周辺機器に付随した一つ以上のレジスタにアドレスを割り当てるだけで、簡単にデザインを再設計して別の周辺機器を追加することができる。同様に、周辺機器は、異なる製品間の周辺機器索引システムの番号を振り直す必要性も無く、システムから容易に除去することができる。このように、システムに様々なバージョンがあってもＰＰＩに共通のアドレスを維持することによって、システムの異なるバージョン間でファームウェアが相互運用できる助けとなることができる。
【００１２】
イベント生成周辺機器は、プロセッサによってアドレス指定可能で、イベントに付随したイベントレジスタを備えていてもよい。イベントレジスタは、集積回路上で周辺機器に付随した論理回路のすぐ近くに配置してもよいが、これは必須ではなく、周辺機器の他の構成要素からいくらか離れた距離に位置してもよく、タスクレジスタについても同じことが言える。これらのレジスタは、任意の適切なメモリ構造を備えていてもよい。
【００１３】
イベントレジスタとイベントとの間の関連付けは、イベントレジスタの内容が変化すると、周辺機器がイベントを通知したかのように応答するようシステムが構成されていてもよい。このようなイベントレジスタは、例えば、周辺機器から発生するイベントをシミュレートするためにプロセッサによって書き込まれてもよい。周辺機器は、例えば、イベントを通知するときは常にイベントレジスタに二進数の「１」を書き込むことによって、イベントを通知するときにイベントレジスタ自体の内容を変更してもよい。
【００１４】
いくつかの好ましい実施形態では、マッピング内にある第一周辺機器のイベントの前述した識別子は、イベントに付随したイベントレジスタのアドレスである。このようにすれば、マッピング内でレジスタアドレスを使用することの利点は、イベントレジスタにも拡張され、伝送路は、単にメモリ内に二つのレジスタアドレスを記憶することによって構成することができる。プロセッサ上で実行されるファームウェアは、関数呼び出しを経由してこのことを行なってもよいし、マッピングが格納されているメモリに直接アドレスを書き込んでもよい。しかし、これは必須ではなく、第一周辺機器のイベントの識別子は、周辺機器の識別子と、イベントまたは信号回線の識別子とを含むが、存在することもあればしないこともある、なんらかの付随したイベントレジスタのアドレスとは無関係であってもよい。
【００１５】
周辺機器相互接続は、一つ以上のマッピングを使用して、周辺機器間の接続を定義するようにプログラムしたり構成したりすることができるという意味で、プログラマブルである。ＰＰＩは、そうしてもよいが、ソフトウェア命令を実行するための処理ユニットを必ずしも備える必要はない。
【００１６】
周辺機器は、いずれか特定のタイプに限定されるものではなく、タイマー、ＵＡＲＴ、電圧比較器、暗号化エンジン、アナログデジタル変換器（ＡＤＣ）、デジタルアナログ変換器（ＤＡＣ）、無線送信機、無線受信機、などのような周辺機器を含んでもよい。当業者によく知られているように、イベントは、なんらかの入力、状態の変更、ある基準に達したこと等に応じて、周辺機器から信号で知らされてもよい。タスクは、インタフェースを介してデータを送信するような、周辺機器によって行なわれる任意の機能または動作であってもよい。
【００１７】
ＰＰＩは、各イベントとタスクごとに、イベント信号とタスク信号を送信することができるそれぞれの回線で、すなわち、各イベントまたはタスクに一本の回線で、周辺機器に接続されてもよい。信号は、パルスまたは符号化された値であってもよい。入力回線は、ＰＰＩ内の一つ以上のマルチプレクサに、例えば、各伝送路に一つのマルチプレクサに接続してもよい。出力回線は、ＰＰＩ内の一つ以上のデマルチプレクサから、例えば各伝送路に一つのデマルチプレクサから出てもよい。ＰＰＩは、メモリに格納されたマッピングに従って伝送路のマルチプレクサおよびデマルチプレクサを設定したり、制御したりするように構成されてもよい。
【００１８】
いくつかの別の実施形態では、ＰＰＩは、周辺機器のタスクレジスタまたはイベントレジスタ、またはその両方を、バスを介して、例えば、メモリマップされた入出力（ＭＭＩＯ）を使用したアドレスバスを介して、アクセスしてもよい。 こうして、ＰＰＩは、付随したイベントレジスタの内容の変化を通してイベント信号を受信したり、および／または付随したタスクレジスタの内容を変更することによって、タスク信号を送信したりすることができる。ＰＰＩは、プロセッサもまた接続されているバス（例えば、アドレスバスと、データバスと、制御バスとを備えることができるシステムバス）に接続されてもよい。同じバスが、周辺機器をプロセッサに接続してもよい。ＰＰＩは、例えば、定期的にポーリングすることによって、一定間隔でイベントレジスタを読み取ることによって、またはイベント生成周辺機器から割り込みを受けることによって、イベントレジスタの内容の変化を検出してもよい。割り込みを受信すると、次に、ＰＰＩは、対応するイベントレジスタの内容を読み取ればよい。
【００１９】
イベントレジスタまたはタスクレジスタは、（すなわち、フラグまたは二進信号を通知するために）単一ビットで構成されてもよいし、または、例えば、８、１６、３２ビットの複数ビットを含んでいてもよい。
【００２０】
メモリマッピングは、任意の適切な形態であってもよい。いくつかの実施形態では、イベントレジスタのアドレスとタスクレジスタのアドレス、またはこれらのレジスタへのポインタは、関連項目として配列、表またはデータベース内に格納される。例えば、 ＰＰＩは、各々が異なる伝送路に対応する、多くの行と、一列目がイベントレジスタを識別し二列目がタスクレジスタを識別する、二つの列を有する表を維持してもよい。このような配列または表は、論理構築物であって、必ずしも、メモリ内でなんらかの特定の物理的なデータ位置に限定される必要はないと理解されるであろう。ＰＰＩは、タスクレジスタのアドレスを記憶するための第一組のレジスタと、イベントレジスタのアドレスを記憶するための第二組のレジスタを備えていてもよい。各組には、同じ数のレジスタがあればよい。第一組のレジスタは、第二組の対応するレジスタによって制御されるデマルチプレクサに接続されたマルチプレクサを制御し、それによって伝送路を規定してもよい。
【００２１】
メモリは、 ＰＰＩとは別個に、例えば、シリコン集積回路の別領域に、または異なる集積回路上にあってもよいが、アクセス時間を短縮することができるので、ＰＰＩの集積された構成要素の一つであることが好ましい。メモリは、揮発性であっても（例えば、ＲＡＭ）不揮発性であっても（例えば、ＥＥＰＲＯＭまたはフラッシュ）よい。マッピングは、プロセッサによってアドレス指定可能な、一つ以上のレジスタに格納されるのが好ましい。ＰＰＩによって提供される各伝送路は、周辺機器イベントレジスタのアドレスと周辺機器タスクレジスタのアドレスをそれぞれ格納するのに適した、一つの付随したイベント終点レジスタと一つの付随したタスク終点レジスタを有していてもよい。伝送路によっては、これらのレジスタを使用して、他の種類のイベントおよび／またはタスク識別子を格納してもよい。
【００２２】
マッピングまたは複数のマッピングは、ＰＰＩまたはプロセッサによって、またはその両方によって、メモリに書き込まれてもよい。プロセッサは、ＰＰＩに適切なマッピングを格納するよう指示することによって、間接的に周辺機器同士の伝送路を確立することになる。
【００２３】
ＰＰＩは、一つ以上の検索表（ルックアップ・テーブル）を備えるか、それにアクセスすることができるのが好ましく、ＰＰＩはそれを使用して、あるレジスタアドレスに対応する特定のイベント回線またはタスク回線（またはイベントポートまたはタスクポート）を決定するために、レジスタアドレスをマッピングから検索することができる。次いで、ＰＰＩは、（例えば、適切にマルチプレクサまたはデマルチプレクサを制御することによって）伝送路の入力または出力として回線またはポートを選択してもよい。検索表は、任意の適切な形であればよく、必ずしもメモリ内に物理的な表として実装される必要は無い。
【００２４】
ＰＰＩは、任意の数、例えば１、８、１６、３２、またはそれ以上の伝送路をサポートすることができる。伝送路は、ＰＰＩへのイベント入力ポートまたは回線とＰＰＩからのタスク出力ポートまたは回線との、任意の物理的な（例えば、電気的な）または論理な接続であってもよい。伝送路は、（例えば、論理ゲートを用いて、伝送経路に沿って枝分かれまたは分岐を規定することによって）一つ以上の入力を一つ以上の出力につなぐことができる。
【００２５】
ＰＰＩは、伝送路を有効および／または無効にすることができるメカニズムを備えているのが好ましい。ＰＰＩは、一ビットが各伝送路に付随したビットフィールドレジスタを備え、ビットフィールドレジスタの付随したビットが所定の値に設定されていると（例えば、二進数の１）、その伝送路が有効であるように構成してもよい。
【００２６】
いくつかの好ましい実施形態では、 ＰＰＩは、一つ以上の伝送路のグループをまとめて有効および無効にするメカニズムを備えている。ＰＰＩは、各々が、それぞれの伝送路グループを規定する、複数の伝送路識別子を格納することが可能な、一つ以上のレジスタまたはメモリ領域を備えていてもよい。このようなグループレジスタは、例えば、各ビット位置が、異なる一つの伝送路に対応するビットフィールドであってもよい、すなわち、ビット位置がバイナリ１であればその伝送路を組み入れ、バイナリ０であればその伝送路を除外してもよい（またはその逆）。例えば、ＰＰＩのグループ一括有効ビットフィールドレジスタの適切なグループに対応するビットを設定することで、プロセッサによる単一の命令または動作が、グループ内のすべての伝送路をＰＰＩによって有効または無効にすることができるようにシステムが構成されてもよい。
【００２７】
ＰＰＩは、プロセッサからタスク信号を受信し、それに応じて特定の伝送路グループを有効または無効にするように構成されてもよい。 ＰＰＩは、グループごとに、それぞれのグループ一括有効タスク信号入力回線と、それぞれのグループ一括無効タスク信号入力回線と、を備えてもよい。特に有利であるのは、ＰＰＩは、それが周辺機器からイベント信号を受信することに応答して、伝送路グループが有効または無効になるように、（例えば、プロセッサによって）構成されるかプログラムされるようにしてもよいことである。各グループ一括有効タスクとグループ一括無効タスクは、付随したレジスタアドレスを有して、周辺機器のタスクと同じように、ＰＰＩ内のマッピングを使用して構成可能であってもよい。
【００２８】
周辺機器のイベントに応じて伝送路または伝送路グループが有効または無効になるようにＰＰＩを構成することができる機能があると、非常に柔軟な構成が可能になる。この機能を使用して、タスク間の競合を回避することができる。例えば、ＰＰＩは、最初に、無線受信機を無効にする（例えば、一定期間後に無線をオフに切り換えることで電力を節約する）タスクにタイマーイベントをマッピングしてもよい。二番目に、ＰＰＩは、無線受信機から「無効」になったイベントを、無線を有効にする（例えば、無線データを受信し始めると自動的に無線をオンに切り換える）タスクにマッピングしてもよい。しかしながら、無線データをまだ受信している最中に、タイマーが無線をオフに切り換えてしまうという問題が起こり得る。さらに、無線受信機から「無効」になったイベントと、最初のマッピングを実行する伝送路を含むグループに対する、ＰＰＩにおけるグループ一括無効タスクとの三番目のマッピングを追加することによって、この競合を回避することができる。（もちろん、その伝送路グループは、後に適切な時点で、再び有効にする必要がある）。
【００２９】
周辺機器同士の通信システムは、通常は、プロセッサが制御タスクを実行する、より大きなシステムの一部であると想定される。例えば、本発明を具体化した周辺機器同士の通信システムは、無線オンチップのような無線トランシーバの一部を形成してもよい。
【００３０】
イベント生成周辺機器には、複数のイベントレジスタを有してもよい。同様に、タスク受信周辺機器は、複数のタスクレジスタを有してもよい。
【００３１】
ＰＰＩは、二つ以上のタスク信号を、おそらく別のタスク受信周辺機器に、送信することによって、イベント信号に応答するように構成してもよい。いくつかの実施形態においては、これは、各付随タスクレジスタを複数の付随イベントレジスタのうち異なるものにそれぞれマッピングするようにして、複数のマッピングを格納することによって実現してもよい。他の実施形態では、三つ以上の付随レジスタをまとめてマッピングする、単一のマッピングを格納することによって、例えば、メモリ内に三つ以上の列を持つ表を有することによって、実現してもよい。ＰＰＩは、複数のタスク信号を同時に（例えば、単一クロックサイクル内に）送ることができるのが好ましい。
【００３２】
同様に、ＰＰＩは、複数のイベントレジスタを単一のタスクレジスタにマッピングすることができてもよい。前と同じように、これは、複数のマッピングという手段によって、または三つ以上のレジスタと関わりを持つ単一のマッピングによってでもよい。
【００３３】
いくつかの実施形態では、ＰＰＩは、二つ以上のイベント信号と関わりを持つ基準が満たされたとき、例えば、次に両方のイベント信号が受信されたときに、またはそのときのみ、タスク信号を送信するロジックを備えていてもよい。
【００３４】
第一および第二周辺機器は、同一であってもよいが、通常は、異なる周辺機器であると想定される。ある周辺機器で生成されたイベントが、同じ周辺機器で実行されるようにシステムを構成するには、ＰＰＩは、付随イベントレジスタと、同じ周辺機器に属する付随タスクレジスタのマッピングを格納すればよい。しかし、本発明者らは、ＰＰＩを介してイベントを伝送するのは、プロセッサを関与させる場合よりも効率的ではあるが、ＰＰＩであってもイベント信号を伝送するのにある程度の時間を要することがわかった。従って、一組の実施形態では、少なくとも一台の周辺機器については、その周辺機器から送信されたイベント信号が、ＰＰＩを通過せずに、同じ周辺機器によってタスク信号として受信されるように、システムを構成してもよい。これは、例えば、その周辺機器から出たイベント回線を同じ周辺機器に向かうタスク回線に接続する物理的または論理的なスイッチによって、実装されてもよい。このスイッチは、レジスタ内の値、例えば、レジスタ内の単一ビット、に応じて閉じたり開いたりするようにしてもよい。このレジスタは、プロセッサによって、またはＰＰＩによって書き込まれてもよい。
【００３５】
このアイデアは、それ自体で新しく独創性があると考えられ、従って、さらなる態様から、本発明は、
プロセッサと、
前記プロセッサに接続された、複数の周辺機器と、
各周辺機器に接続された、プログラマブル周辺機器相互接続器と、を備える周辺機器同士の通信システムを提供するものであって、
前記周辺機器の少なくとも一つは、イベント生成を行なうものであって、前記プログラマブル周辺機器相互接続器にイベントの信号を送ることが可能であり、
前記周辺機器の少なくとも一つは、タスク受信を行なうものであって、前記プログラマブル周辺機器相互接続器からタスク信号を受信し、前記タスク信号を受信すると、タスクを実行することが可能であり、
前記プログラマブル周辺機器相互接続器は、イベント生成周辺機器からイベント信号を受信すると、タスク受信周辺機器にタスク信号を送信するように構成することが可能であり、
前記周辺機器の少なくとも一つは、イベント生成とタスク受信の両方を行ない、前記システムは、前記周辺機器によってイベントが生成されると、前記周辺機器が前記プロセッサまたは前記プログラマブル周辺機器相互接続器からタスク信号を受信することなく、前記周辺機器が直ちにタスクを実行するように構成することが可能である。
【００３６】
別の態様から、本発明は、
プロセッサと、
前記プロセッサに接続された、複数の周辺機器と、
各周辺機器に接続された、プログラマブル周辺機器相互接続器と、を備えるシステムにおいて使用するための周辺機器同士の通信方法を提供するものであって、前記方法は、 
前記周辺機器の一つが前記プログラマブル周辺機器相互接続器にイベントの信号を送ると、前記プログラマブル周辺機器相互接続器がそれに応答してタスク受信周辺機器にタスク信号を送信し、前記タスク受信周辺機器がタスク信号を受信しそれに応答してタスクを実行するステップと、 
前記周辺機器の一つがイベント信号を生成し、前記プロセッサまたは前記プログラマブル周辺機器相互接続器からタスク信号を受信することなく、前記イベント信号に直接応答してタスクを実行するステップと、を含む。
【００３７】
システムは、少なくとも一台の周辺機器に対して、周辺機器が自らのイベント信号に応答するように設定されているとき、ＰＰＩとの通信をバイパスすることができる、ショートカットメカニズムを提供することがわかるであろう。前述のように、周辺機器同士の伝送路を確立するようにＰＰＩを構成することは、プロセッサが行なえばよい。周辺機器が自らのイベント信号に直接応答するようにシステムを構成することは、ＰＰＩまたはプロセッサによって、例えば、プロセッサから出される一つ以上の命令によって、またはプロセッサによって実行される一つ以上のレジスタアクセスによって、実行されてもよい。同様にして、周辺機器が自らによって生成されたイベントに直接応答してタスクを実行することはもう行なわないように、構成を変更することも可能である。
【００３８】
システムは、周辺機器からＰＰＩに導くイベント経路または回線と、ＰＰＩから周辺機器に導くタスク経路または回線との間にショートカット経路を備えてもよい。このショートカット経路は、該経路を開閉するスイッチを備えた電線であってもよい。このスイッチは、任意の適切な方法で実装すればよい。このスイッチは、プロセッサによってアドレス指定可能な、レジスタ内のビット位置によって制御してもよい。信号がパルスである場合には、ショートカット経路とＰＰＩからのタスク経路は両方とも論理ＯＲゲートに入り、その出力は周辺機器の方に導いてもよい。ショートカット経路は、周辺機器の一部を形成してもよいし、システムとは別個の構成要素であってもよい。
【００３９】
本発明の他の態様または実施形態に関連して他のどこかに記載された特徴が、この態様でも同様にオプション的特徴であってもよい。
【００４０】
システムの一例では、周辺機器は、開始タスクを受信し、ゼロからカウントを開始することによって応答することが可能であり、また、そのカウンタがオーバーフローすると、オーバーフローイベントを通知することも可能な、タイマーである。プロセッサは、タイマーのカウンタがオーバーフローすると、単純にカウントを停止するのではなく、タイマーが自動的にゼロからカウントを再開するようにシステムを設定するよう、指示を受けてもよい。これを行なうために、システムは、プログラマブル周辺機器相互接続器にタイマーのオーバーフローイベントとその開始タスクとの伝送路を作成するよう、指示してもよい。ＰＰＩは、イベントとタスクが同一の周辺機器に属していることを認識すると、二台の異なる周辺機器同士であれば伝送路を作成するがその代わりに、ショートカット経路を有効にして、タイマーがオーバーフローイベントを生成するとそれに応答して開始タスクを実行するようにしてもよい。その代わりに、プロセッサは、自らショートカット経路を有効にしてもよい。いずれの場合も、タイマーの再開は、通信がＰＰＩまたはプロセッサを経由する場合よりも迅速に（すなわち、数クロックサイクル内で）起きるようになる。
【００４１】
このショートカットメカニズムは、以前に説明したレジスタを使用する通信システムと組み合わせて、または任意の適切な既知の装置内に使用してもよい。
【００４２】
周辺機器は、一つ以上の、事前定義された（つまり、配線接続された）ショートカット経路を有し、プロセッサ上のファームウェアで単純に有効および無効にされたりしてもよい。
【００４３】
その代わりに、ショートカットは、プログラマブルであってもよい。例えば、周辺機器は、マルチプレクサおよび／またはデマルチプレクサを備えてもよい。これは、周辺機器のイベントレジスタアドレスと、周辺機器のタスクレジスタアドレスとのマッピングを格納可能なメモリにアクセスするように構成されてもよい。このメモリは、周辺機器から別個であってもよいが、周辺機器によるマッピングへの読み取りアクセスを高速化するために、周辺機器の一部であるのが好ましい。マッピングまたは複数のマッピングは、上述したＰＰＩのマッピングと同様であるとし、同様に使用してもよい。
【００４４】
本明細書に記載した実施形態の一態様の好ましい、またはオプションの特徴は、いずれも、適切である限り、任意の他の態様または実施形態で使用してもよい。実施形態は、任意の適切な組み合わせで、好ましいまたはオプションの機能を含んでもよい。
【図面の簡単な説明】
【００４５】
次に、本発明の特定の好ましい実施形態について、添付図面を参照しながら、単なる例として、説明する。
【図１】本発明を具体化する第一システムの構成要素を示す概略図である。
【図２】周辺機器レジスタ同士のマッピングを格納するメモリ構造を示す表である。
【図３】本発明を具体化する第二システムにおいて、ＰＰＩに接続された、いくつかの周辺機器の概略図である。
【図４】ＰＰＩ内の特定伝送路に関係する構成要素の概略図である。
【図５】ＰＰＩ内の伝送路およびグループ一括の有効化と無効化メカニズムの概略図である。
【図６】周辺機器のイベントレジスタとタスクのレジスタ、および周辺機器のショートカットメカニズムを示す概略図である。
【発明を実施するための形態】
【００４６】
図１は、中央処理装置（ＣＰＵ）６と、メインメモリ８と、ロジック領域１２および内部メモリ１４を有するＰＰＩ１０と、を備える、マイクロコントローラ（ＭＣＵ）２（例えば、集積回路またはマルチチップモジュール）を示している。ＣＰＵ６とＰＰＩ１０は、両方ともバス１６に接続されている。
【００４７】
また、 バス１６には、五つの典型的な周辺機器、すなわち、タイマー１８、ＤＡＣ２０、ＵＡＲＴ２２、ハードウェア暗号化エンジン２４、および電圧比較器２６も接続されている。その代わりに、タスクとイベントを通知する専用バスは、ＣＰＵバスとは別個であってもよい、すなわち、バス１６は、 二つ以上の別個のバスで形成されてもよい。
【００４８】
タイマー１８は、出力イベントレジスタ２８、オーバーフローイベントレジスタ３０、および入力タスクレジスタ３２を有している。ＤＡＣ２０は、 二つの変換完了イベントレジスタ３６，３８、および二つのトリガータスクレジスタ４０、４２を有している。ＵＡＲＴ２２は、ＲＸ受信イベントレジスタ４４、ＴＸ完了イベントレジスタ４６、ＲＸトリガータスクレジスタ４８、およびＴＸトリガータスクレジスタ５０を有している。ハードウェア暗号化エンジン２４は、暗号化完了イベントレジスタ５２、およびトリガータスクレジスタ５４を有し、一方、電圧比較器２６は、単一の比較器出力イベントレジスタ５６を有している。いくつかのレジスタは単一ビットのレジスタであり、それ以外は複数ビットの値を保持することができる。もちろん、他の実施形態は、異なる周辺機器を有し、その周辺機器は、任意の数のイベントレジスタまたはタスクレジスタを有してもよい。
【００４９】
周辺機器のレジスタは、メモリにマッピングされた入出力を使用し、ＰＰＩロジック１２によって、そしてオプションとしてＣＰＵ６によって、アクセスできるように、メインメモリ８およびＰＰＩメモリ１４と、メモリアドレス空間を共有している。
【００５０】
ＵＡＲＴ周辺機器２２は、ショートカットと付随メモリ領域６０を実行するための論理回路５８を有している。
【００５１】
使用時には、ＣＰＵ６は、例えば、ＵＡＲＴ２２がＤＡＣ変換完了後にデータを送信するように、ＤＡＣ２０の変換完了イベントのうちの一つをＵＡＲＴ２２トリガータスクに接続する伝送路を生成するよう、ＰＰＩ１０に指示してもよい。この指示を受信すると、ＰＰＩ１０は、自らのメモリ１４に保持された表に新しいエントリを生成して、ＤＡＣ２０の変換完了レジスタ３６のアドレスＵＡＲＴ２２のトリガータスクレジスタ４８のアドレスをリンクさせる。
【００５２】
図２は、ＰＰＩのメモリ１４に格納することが可能な論理的データの構造を示している。多くの行を有し、それぞれ、マッピング番号、イベントレジスタアドレス、およびタスクレジスタアドレスを含んでいる。
【００５３】
ＰＰＩロジック１２は、表にリストされているすべてのイベントレジスタに定期的にポーリングして、レジスタの値が変更された場合を判断するように、構成されている。変更が検出されると、ＰＰＩロジック１２は、表内の特定のイベントレジスタにマッピングされるすべてのタスクレジスタに新しい値を書き込む。
【００５４】
ＰＰＩロジック１２は、オプションとして、イベントレジスタの新しい値に関して何らかの処理を実行し、（新しい値の）代わりにその処理の結果を一つ以上のタスクレジスタに書き込むように構成されてもよい。例えば、イベントレジスタがマルチビット値を含む場合、ＰＰＩロジック１２は、新しい値が前の値よりも大きいか否かを判断し、メモリ１４にあるマッピングに応じて、単一ビットのタスクレジスタに一ビットを書き込むように構成してもよい。ＰＰＩ１０は、ＣＰＵ６で（もしあれば）どのような処理を実行するのか指示を受けてもよい。処理の種類は、マッピング表の追加列として格納してもよい。
【００５５】
ＣＰＵ６が伝送路をシャットダウンしようとするとき、ＰＰＩのメモリ１４に格納された表の該当エントリが消去されるようにすることによって、直接的にこれを行なってもよい。（実施形態によっては、もちろん、こうすることもあるが）直接に周辺機器に指示する必要はない。
【００５６】
ＵＡＲＴ２２のイベントレジスタ４４，４６とタスクレジスタ４８、５０は、ＰＰＩのメモリ１４に格納されたマッピングに含めてもよい。しかし、ＵＡＲＴ２２は、自らの イベントレジスタ４４、４６とタスクレジスタ４８、５０の間に、ＰＰＩロジック１２を迂回し、従ってさらに速く動作することができる、ショートカット伝送路を実装する機能も有している。ＰＰＩ１０は、ＵＡＲＴ２２に対して、例えば、データを受信し終わるとすぐにデータの送信を開始するように、そのＲＸ受信イベントレジスタ４４とそのＴＸトリガレジスタ５０の間に伝送路を確立するよう指示してもよい。
【００５７】
ＵＡＲＴ２２のショートカットロジック５８（またはＰＰＩ１０自体）は、ＲＸ受信イベントレジスタ４４のアドレスとＴＸトリガレジスタ５０のアドレスをＵＡＲＴのメモリ６０内にマッピングされたペアとして書き込む。これは、ＰＰＩのメモリ１４（図２参照）内のマッピングと同じようにフォーマットしてもよい。次いで、ＵＡＲＴ２２のショートカットロジック５８は、自らのメモリ６０に格納されている自らのイベントレジスタ４４、４６のいずれかのアドレスにポーリングし、変化を検出すると、ＰＰＩ１０に対するのと同様の方法で、値をリンクされたタスクレジスタ４８、５０に書き込む。
【００５８】
図３〜図６は別の実施形態に関連するものであって、ＰＰＩコントローラは、図１のようにメモリマップされた入出力を使用するのではなく、各イベント信号とタスク信号用に個々の回線を使用して周辺機器に接続されている。それにもかかわらず、この第二実施形態は、多くの一般的な動作原理を第一実施形態と共有している。
【００５９】
図３は、ＰＰＩに接続されたｍ個の周辺機器を示している。ＰＰＩはｎ個の伝送路を備え、その各々が、付随したイベント終点レジスタ（ＥＥＰ）およびタスク終点レジスタ（ＴＥＰ）を有している。これらのレジスタは、各々が周辺機器のうちのいずれかのレジスタのアドレスを保持してもよい。
【００６０】
図４は、これらｎ個の伝送路のうちの一つに付随した構成要素をより詳細に示している。伝送路のＥＥＰは、イベント信号検索表につながっていて、この表は一組の周辺機器イベントレジスタアドレスと、ＰＰＩ内にあって伝送路に付随したマルチプレクサ（ＭＵＸ）への入力のうちの一つに関する内部イベント回線識別子との相互参照を行なう。ＰＰＩは、ＥＥＰに含まれるアドレスに付随した入力を選択するよう、ＭＵＸを設定するように構成されている。
【００６１】
同様に、伝送路のＴＥＰは、タスク信号検索表につながっていて、この表は一組の周辺機器タスクレジスタアドレスと、ＰＰＩ内にあって伝送路に付随したデマルチプレクサ（ＤＥＭＵＸ）からの出力のうちの一つに関する内部タスク回線識別子との相互参照を行なう。 ＰＰＩは、ＴＥＰに含まれるアドレスに付随した出力を選択するよう、ＤＥＭＵＸを設定するように構成されている。
【００６２】
二つの周辺機器Ａ，Ｂは、伝送路のＭＵＸに接続されている。周辺機器Ａは、二つのイベント信号ＡＥ０、ＡＥ１を提供することができ、それらは各々ＭＵＸへの固有回線を有している。周辺機器Ｂは、単一のイベント信号ＢＥ０を提供することができ、これもＭＵＸへの回線を有している。同様の回線は、他のｎ−１個の伝送路（図示せず）のマルチプレクサにも接続する。
【００６３】
伝送路のＤＥＭＵＸは、三本の出力回線に接続され、一本は周辺機器Ａのタスク入力ＡＴ０につながり、二本は周辺機器Ｂの別のタスク入力ＢＴ０、ＢＴ１につながる。
【００６４】
ＰＰＩ内で、ＭＵＸからの出力は、 スイッチを介してＤＥＭＵＸへの入力に接続されている。スイッチが閉じているときは、ＭＵＸによって選択された周辺機器のうちの一つからイベント信号（例えば、パルス）がＤＥＭＵＸへ、そしてそこから周辺機器のうちの一つの選択されたタスク入力に渡されるように、接続がなされる。スイッチの状態は、レジスタによって制御され、ＣＰＵ（図示せず）によって書き込み可能なる。
【００６５】
別のいくつかの構成では、一本の伝送路が複数のデマルチプレクサを有し、各々が伝送路のＭＵＸの出力に接続されていてもよい。このようにすると、単一のイベントが複数の周辺機器タスクを起動するように分岐させることができる。
【００６６】
図５は、ＰＰＩ内部で、個々の伝送路が有効および無効にされ、伝送路グループが有効および無効にされるメカニズムを図にしたものである。各伝送路ｉは，経路内にスイッチのある、ＥＥＰからＴＥＰへの経路（それぞれＣＨｉ＿ＥＥＰおよびＣＨｉ＿ＴＥＰと名付けられている）として表されている。各伝送路のスイッチは、図４でＭＵＸとＤＥＭＵＸとの間に位置するスイッチに相当する。
【００６７】
ビットフィールドレジスタＣＨＥＮは、各伝送路スイッチに一ビットが付随する。ＣＰＵ（またはシステムの他の構成要素）は、ＣＨＥＮレジスタに適切なビットを書き込むことによって、伝送路を有効または無効にすることができる。
【００６８】
それぞれのチャネルグループビットフィールドレジスタＣＨＧ０〜ＣＨＧｍ内で所望の伝送路に対応するビットを設定することによって、ｍ個の伝送路グループまで構成することができる。各グループは、付随した有効化タスクおよび付随した無効化タスクを有している。起動されると、これらのタスクは、そのグループに属している伝送路を有効または無効にする。これらの各タスクは、付随したタスクレジスタＣＨＧ０ＥＮ〜ＣＨＧｍＥＮ（有効化）およびＣＨＧ０ＤＩＳ〜ＣＨＧｍＤＩＳ（無効化）を有し、そのレジスタを使ってＣＰＵがそのレジスタに書き込みすることによって、タスクを起動することができる。また、これらのタスクレジスタのいずれかのアドレスをＰＰＩのタスク終点レジスタ（ＴＥＰ）に入力し、そのタスクレジスタと周辺機器からのイベント信号とのマッピングを生成してもよい。
【００６９】
図６は、特定の周辺機器に付随して、ＰＰＩにリンクするため、およびショートカット機能を実現するための接続を図で示したものである。ショートカットの構成要素は、周辺機器の内部にあるものとして説明するが、同じように周辺機器の外部に位置してもよい。
【００７０】
特定のタスクｎに対して、周辺機器は、タスク信号を送信することができる、ＰＰＩからの入力回線を受け入れる。周辺機器は、ＣＰＵ上で動作するファームウェアがタスクレジスタに二進数の１を書き込んだ場合に、タスクを起動する信号を送信するタスクに付随したタスクレジスタ（ＴＡＳＫｎ）も有する。タスクレジスタの内容は、ＰＰＩがタスク信号を送信した場合や、ショートカットメカニズムを介して信号が受信されたときにも更新されてもよい。ＰＰＩからの回線とタスクレジスタの出力は、論理ＯＲゲートで結合され、信号が受信されるとタスクを実行する周辺機器のコアに送られる。ＯＲゲートは、第三の信号源、すなわち、後述するショートカットスイッチからも信号を受信してもよい。
【００７１】
周辺機器のコアは、適切な状態にあるときに、イベント信号を出力してもよい。これは、イベントレジスタ（ＥＶＥＮＴｍ）に送られ、イベントが通知されたことを示すよう、レジスタの内容が変えられる。また、同じイベント信号は分割され、第二のＯＲゲートに送られて、ショートカットスイッチに、そしてまたＰＰＩのイベント入力回線につながる。このＯＲゲートは、また、ファームウェアがイベントレジスタに二進数の１を書き込んだ場合、イベントが発生したことをシミュレーションして信号を送信するイベント・レジスタから入力を受信する。
【００７２】
また、イベントレジスタの状態はスイッチを介して割り込みコントローラＩｎｔＣに送信してもよいが、その詳細は本発明には関係ない。
【００７３】
既に述べたように、第二のＯＲゲートからの出力は、スイッチを介して第一のＯＲゲートへの入力につながる。このスイッチは、周辺機器に付随したビットフィールドレジスタＳＨＯＲＴＳ内の付随したビットｋの値によって制御される。レジスタＳＨＯＲＴＳは、周辺機器の一部であってもよいし、またはシステムのどこか他の場所に配置してもよい。
【００７４】
ＣＰＵまたは（潜在的にＰＰＩを含む）他の装置は、このメカニズムを使用して、ＳＨＯＲＴＳ内の関係するショートカットの位置ｋに「１」を書き込むことによって、周辺機器のコアのタスク出力とコアへのイベント入力との間にショートカットを生成することができる。こうすれば、ＰＰＩを通して伝送路を作成しなくても、信号が周辺機器内で、つまり近くで直接に伝送され、それによってクロックサイクルを少なくし、応答性を改善することができる。また、イベント信号は、それにマッピングされた他のタスクが存在する場合であっても、依然としてＰＰＩに送られる。
【００７５】
要約すると、既知のシステムより優位に立つ、いままでにない周辺機器同士の通信システムが記載されている。
【図１】
0005786100.tif 000002
【図２】
0005786100.tif 000003
【図３】
0005786100.tif 000004
【図４】
0005786100.tif 000005
【図５】
0005786100.tif 000006
【図６】
0005786100.tif 000007