特許第5786100号(P5786100)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ノルディック セミコンダクタ アーエスアーの特許一覧

<>
  • 特許5786100-周辺機器同士の通信 図000002
  • 特許5786100-周辺機器同士の通信 図000003
  • 特許5786100-周辺機器同士の通信 図000004
  • 特許5786100-周辺機器同士の通信 図000005
  • 特許5786100-周辺機器同士の通信 図000006
  • 特許5786100-周辺機器同士の通信 図000007
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5786100
(24)【登録日】2015年7月31日
(45)【発行日】2015年9月30日
(54)【発明の名称】周辺機器同士の通信
(51)【国際特許分類】
   G06F 13/38 20060101AFI20150910BHJP
   G06F 13/14 20060101ALI20150910BHJP
【FI】
   G06F13/38 340E
   G06F13/14 330F
【請求項の数】33
【全頁数】19
(21)【出願番号】特願2014-545347(P2014-545347)
(86)(22)【出願日】2012年12月6日
(65)【公表番号】特表2015-503164(P2015-503164A)
(43)【公表日】2015年1月29日
(86)【国際出願番号】GB2012053025
(87)【国際公開番号】WO2013088121
(87)【国際公開日】20130620
【審査請求日】2014年6月5日
(31)【優先権主張番号】1121292.5
(32)【優先日】2011年12月12日
(33)【優先権主張国】GB
【早期審査対象出願】
(73)【特許権者】
【識別番号】513183153
【氏名又は名称】ノルディック セミコンダクタ アーエスアー
【氏名又は名称原語表記】Nordic Semiconductor ASA
(74)【代理人】
【識別番号】110001807
【氏名又は名称】特許業務法人磯野国際特許商標事務所
(72)【発明者】
【氏名】エーラホイ、ユナイド
(72)【発明者】
【氏名】ルステン、ヨール オライ
(72)【発明者】
【氏名】オルセン、ラッセ
(72)【発明者】
【氏名】スンデル、ラーシュ
【審査官】 坂東 博司
(56)【参考文献】
【文献】 特開平05−307617(JP,A)
【文献】 特開平09−016542(JP,A)
【文献】 特表2004−503855(JP,A)
【文献】 米国特許第05579531(US,A)
【文献】 欧州特許出願公開第00738978(EP,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 13/38
G06F 13/14
(57)【特許請求の範囲】
【請求項1】
プロセッサと、
前記プロセッサに接続された、複数の周辺機器と、
各周辺機器に接続された、プログラマブル周辺機器相互接続器と、を備える周辺機器同士の通信システムであって、
前記周辺機器の少なくとも一つは、イベント信号を送ることによって前記プログラマブル周辺機器相互接続器にイベントを通知するように構成された、イベント生成周辺機器であり、
前記周辺機器の少なくとも一つは、タスクを実行することによって、前記プログラマブル周辺機器相互接続器からのタスク信号に応答するように構成された、タスク受信周辺機器であり、
前記タスク受信周辺機器は、前記プロセッサによってアドレス指定可能で前記タスクに付随したタスクレジスタを備え、前記タスクレジスタの内容の変化に応じて前記タスクを実行するように構成されており、
前記プログラマブル周辺機器相互接続器は、第一周辺機器のイベントと第二周辺機器のタスクとのマッピングが格納されるメモリにアクセスするように構成されており、前記マッピングは、(i)前記第一周辺機器の前記イベントの識別子と、(ii)前記タスクに付随したタスクレジスタのアドレスと、を含むものであり、
前記プログラマブル周辺機器相互接続器は、第一周辺機器のイベントと第二周辺機器のタスクとのマッピングがメモリに格納されている場合に、前記第一周辺機器からの前記イベントの信号に応答して前記第二周辺機器にタスク信号を送信することによって、伝送路を提供するようになっている、
ことを特徴とする、周辺機器同士の通信システム。
【請求項2】
前記イベント生成周辺機器は、前記プロセッサによってアドレス指定可能で、前記イベントに付随したイベントレジスタを備え、前記マッピングは、イベントに付随したイベントレジスタのアドレスを含む
ことを特徴とする、請求項1に記載のシステム。
【請求項3】
前記プログラマブル周辺機器相互接続器は、各イベントおよびタスクごとにそれぞれの回線によって前記周辺機器に接続される
ことを特徴とする、請求項1または請求項2に記載のシステム。
【請求項4】
前記プログラマブル周辺機器相互接続器は、少なくとも一つのマルチプレクサと、少なくとも一つのデマルチプレクサと、を備え、前記メモリに格納されたマッピングに従って前記マルチプレクサおよび前記デマルチプレクサを制御するように構成される
ことを特徴とする、請求項1乃至請求項3のいずれか一項に記載のシステム。
【請求項5】
前記プログラマブル周辺機器相互接続器は、周辺機器上の、付随したイベントレジスタの内容の変化を検出することによって、前記周辺機器からイベント信号を受信するように構成される
ことを特徴とする、請求項1乃至請求項4のいずれか一項に記載のシステム。
【請求項6】
前記プログラマブル周辺機器相互接続器は、周辺機器上の、付随したタスクレジスタの内容を変更することによって、前記周辺機器へタスク信号を送信するように構成される
ことを特徴とする、請求項1乃至請求項5のいずれか一項に記載のシステム。
【請求項7】
前記イベント信号または前記タスク信号は、それぞれ電気的なパルスである
ことを特徴とする、請求項1乃至請求項4のいずれか一項に記載のシステム。
【請求項8】
マッピングが格納され得る前記メモリは、前記プロセッサによってアドレス指定可能な、一つ以上のレジスタを含む
ことを特徴とする、請求項1乃至請求項7のいずれか一項に記載のシステム。
【請求項9】
前記プログラマブル周辺機器相互接続器は、マッピングに含まれるレジスタアドレスに対応する回線またはポートを決定するために、検索表をアクセスするように構成される
ことを特徴とする、請求項1乃至請求項8のいずれか一項に記載のシステム。
【請求項10】
前記プログラマブル周辺機器相互接続器は、伝送路を有効または無効にするメカニズムを備えている
ことを特徴とする、請求項1乃至請求項9のいずれか一項に記載のシステム。
【請求項11】
前記プログラマブル周辺機器相互接続器は、一つ以上の伝送路のグループをまとめて有効および無効にするメカニズムを備えている
ことを特徴とする、請求項1乃至請求項10のいずれか一項に記載のシステム。
【請求項12】
前記プログラマブル周辺機器相互接続器は、各々が、それぞれの伝送路グループを規定する、複数の伝送路識別子を格納することが可能な、一つ以上のレジスタまたはメモリ領域を備えている
ことを特徴とする、請求項11に記載のシステム。
【請求項13】
前記プロセッサによる単一の命令または動作が、グループ内のすべての前記伝送路を前記プログラマブル周辺機器相互接続器によって有効または無効にすることができるように構成される
ことを特徴とする、請求項11または請求項12に記載のシステム。
【請求項14】
前記プログラマブル周辺機器相互接続器は、伝送路グループごとに、それぞれのグループ一括有効タスク信号入力回線と、それぞれのグループ一括無効タスク信号入力回線と、を備える
ことを特徴とする、請求項11乃至請求項13のいずれか一項に記載のシステム。
【請求項15】
前記プログラマブル周辺機器相互接続器は、前記プログラマブル周辺機器相互接続器が周辺機器からイベント信号を受信することに応答して、伝送路グループが有効または無効になるように、構成される
ことを特徴とする、請求項11乃至請求項14のいずれか一項に記載のシステム。
【請求項16】
前記プログラマブル周辺機器相互接続器は、伝送路グループを有効または無効にするタスクに付随したタスクレジスタを備え、マッピングが、周辺機器のイベントの識別子と、前記タスクレジスタのアドレスと、を含んでメモリに格納されている場合、前記プログラマブル周辺機器相互接続器は、前記周辺機器からの前記イベントの信号に応答して前記伝送路グループを有効または無効にするように構成される
ことを特徴とする、請求項11乃至請求項15のいずれか一項に記載のシステム。
【請求項17】
少なくとも一台の前記周辺機器については、前記周辺機器から送信されたイベント信号が、前記プログラマブル周辺機器相互接続器を通過せずに、同じ前記周辺機器によってタスク信号として受信されるように構成される
ことを特徴とする、請求項1乃至請求項16のいずれか一項に記載のシステム。
【請求項18】
複数の周辺機器のそれぞれに接続するように構成されたプログラマブル周辺機器相互接続器であって、
前記周辺機器の少なくとも一つは、イベント信号を送ることによって前記プログラマブル周辺機器相互接続器にイベントを通知するように構成された、イベント生成周辺機器であり、
前記周辺機器の少なくとも一つは、タスクを実行することによって、前記プログラマブル周辺機器相互接続器からのタスク信号に応答するように構成された、タスク受信周辺機器であり、
前記タスク受信周辺機器は、プロセッサによってアドレス指定可能で前記タスクに付随したタスクレジスタを備え、前記タスクレジスタの内容の変化に応じて前記タスクを実行するように構成されており、
前記プログラマブル周辺機器相互接続器は、第一周辺機器のイベントと第二周辺機器のタスクとのマッピングが格納されるメモリにアクセスするように構成されており、前記マッピングは、(i)前記第一周辺機器の前記イベントの識別子と、(ii)前記タスクに付随したタスクレジスタのアドレスと、を含むものであり、 前記プログラマブル周辺機器相互接続器は、第一周辺機器のイベントと第二周辺機器のタスクとのマッピングがメモリに格納されている場合に、前記第一周辺機器からの前記イベントの信号に応答して前記第二周辺機器にタスク信号を送信することによって、伝送路を提供するようになっている、
ことを特徴とする、プログラマブル周辺機器相互接続器。
【請求項19】
前記イベント生成周辺機器は、前記プロセッサによってアドレス指定可能で、前記イベントに付随したイベントレジスタを備え、前記マッピングは、イベントに付随したイベントレジスタのアドレスを含む
ことを特徴とする、請求項18に記載の相互接続器。
【請求項20】
前記プログラマブル周辺機器相互接続器は、各イベントおよびタスクごとにそれぞれのポートを備える
ことを特徴とする、請求項18または請求項19に記載の相互接続器。
【請求項21】
少なくとも一つのマルチプレクサと、少なくとも一つのデマルチプレクサと、を備え、前記メモリに格納されたマッピングに従って前記マルチプレクサおよび前記デマルチプレクサを制御するように構成される
ことを特徴とする、請求項18乃至請求項20のいずれか一項に記載の相互接続器。
【請求項22】
前記周辺機器へのタスク信号の送信は、前記プログラマブル周辺機器相互接続器が前記周辺機器上の付随したタスクレジスタの内容を変更することを含む
ことを特徴とする、請求項18乃至請求項21のいずれか一項に記載の相互接続器。
【請求項23】
前記プログラマブル周辺機器相互接続器は、周辺機器上の、付随したタスクレジスタの内容を変更することによって、前記周辺機器へタスク信号を送信するように構成される
ことを特徴とする、請求項18乃至請求項22のいずれか一項に記載の相互接続器。
【請求項24】
マッピングが格納され得る前記メモリは、一つ以上のレジスタを含む
ことを特徴とする、請求項18乃至請求項23のいずれか一項に記載の相互接続器。
【請求項25】
マッピングに含まれるレジスタアドレスに対応する回線またはポートを決定するために、検索表をアクセスするように構成される
ことを特徴とする、請求項18乃至請求項24のいずれか一項に記載の相互接続器。
【請求項26】
前記プログラマブル周辺機器相互接続器は、伝送路を有効または無効にするメカニズムを備えている
ことを特徴とする、請求項18乃至請求項25のいずれか一項に記載の相互接続器。
【請求項27】
一つ以上の伝送路のグループをまとめて有効および無効にするメカニズムを備えている
ことを特徴とする、請求項18乃至請求項26のいずれか一項に記載の相互接続器。
【請求項28】
各々が、それぞれの伝送路グループを規定する、複数の伝送路識別子を格納することが可能な、一つ以上のレジスタまたはメモリ領域を備えている
ことを特徴とする、請求項27に記載の相互接続器。
【請求項29】
プロセッサによる単一の命令または動作に応じて、グループ内のすべての前記伝送路を有効または無効にするように構成される
ことを特徴とする、請求項27または請求項28に記載の相互接続器。
【請求項30】
伝送路グループごとに、それぞれのグループ一括有効タスク信号入力ポートと、それぞれのグループ一括無効タスク信号入力ポートと、を備える
ことを特徴とする、請求項27乃至請求項29のいずれか一項に記載の相互接続器。
【請求項31】
周辺機器からイベント信号を受信することに応答して、伝送路グループが有効または無効になるように、前記相互接続器を構成するメカニズムを備えている
ことを特徴とする、請求項27乃至請求項30のいずれか一項に記載の相互接続器。
【請求項32】
伝送路グループを有効または無効にするタスクに付随したタスクレジスタを備え、マッピングが、周辺機器のイベントの識別子と、前記タスクレジスタのアドレスと、を含んでメモリに格納されている場合、前記相互接続器は、前記周辺機器からの前記イベントの信号に応答して前記伝送路グループを有効または無効にするように構成される
ことを特徴とする、請求項27乃至請求項31のいずれか一項に記載の相互接続器。
【請求項33】
請求項1乃至請求項16のいずれか一項に係る、周辺機器同士の通信システムにおいて、第一周辺機器のイベントと第二周辺機器のタスクとのつながりを構成する方法であって、(i)前記第一周辺機器の前記イベントの識別子と、(ii)前記第二周辺機器の前記タスクに付随したタスクレジスタのアドレスと、を含むマッピングをメモリに格納することを含む
ことを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プロセッサに接続された周辺機器同士の通信に関する。
【背景技術】
【0002】
マイクロコントローラシステムは、典型的には、中央処理装置(CPU)とは別個であるものの、一般的にバスでそれに接続されている、多くの周辺機器を備えている。これらの周辺機器は、(例えば、システムオンチップとして)プロセッサと同じ集積回路上に、または同一のマルチチップモジュールもしくはシステムインパッケージ内に配置してもよい。代わりに、周辺機器を、メインプロセッサの集積回路から離して、例えば、別のパッケージ内に配置してもよい。周辺機器の例としては、タイマーと、暗号化エンジンと、シリアルインタフェース(UART)と、組込み無線トランシーバと、が含まれる。
【0003】
単純なアーキテクチャでは、プロセッサは、各周辺機器と直接通信する。ある周辺機器から別の周辺機器への通信は、プロセッサを介して、例えば、割り込みを利用して実現される。しかし、このメカニズムは、プロセッサが低消費電力(スリープ)状態から起動したり、メッセージを中継する前に既存の動作を完了したりする必要があるので、時間がかかったり、予測不可能なタイミングにつながったりすることがある。プロセッサがスリープ状態にある場合には、ある周辺機器から別の周辺機器への通信はまた、プロセッサを起動するのに多大なエネルギーを消費することにもつながりかねない。
【0004】
ある周辺機器が別の周辺機器と直接通信できるようにすることによって、これらの欠点に対処しようとする試みがいくつか行なわれてきた。例えば、相互接続装置は、多くの伝送路に対応することが可能であり、各伝送路は、信号生成周辺機器から(例えば、マルチプレクサを用いて)信号を受信したり、選択された信号受信周辺機器に信号を直接送信したりするように、プロセッサによって構成される。
【0005】
しかし、出願人は、そのような試みが改良できることに気が付いた。
【発明の概要】
【0006】
こうして、第一の態様から、本発明は、
プロセッサと、
前記プロセッサに接続された、複数の周辺機器と、
各周辺機器に接続された、プログラマブル周辺機器相互接続器と、を備える周辺機器同士の通信システムを提供するものであって、
前記周辺機器の少なくとも一つは、イベント信号を送ることによって前記プログラマブル周辺機器相互接続器にイベントを通知するように構成された、イベント生成周辺機器であり、
前記周辺機器の少なくとも一つは、タスクを実行することによって、前記プログラマブル周辺機器相互接続器からのタスク信号に応答するように構成された、タスク受信周辺機器であり、
前記タスク受信周辺機器は、前記プロセッサによってアドレス指定可能で前記タスクに付随したタスクレジスタを備え、前記タスクレジスタの内容の変化に応じて前記タスクを実行するように構成されており、
前記プログラマブル周辺機器相互接続器は、第一周辺機器のイベントと第二周辺機器のタスクとのマッピングが格納されるメモリにアクセスするように構成されており、前記マッピングは、(i)前記第一周辺機器の前記イベントの識別子と、(ii)前記タスクに付随したタスクレジスタのアドレスと、を含むものであり、
前記プログラマブル周辺機器相互接続器は、第一周辺機器のイベントと第二周辺機器のタスクとのマッピングがメモリに格納されている場合に、前記第一周辺機器からの前記イベントの信号に応答して前記第二周辺機器にタスク信号を送信することによって、伝送路を提供することになる。
【0007】
第二の態様から、本発明は、複数の周辺機器のそれぞれに接続するように構成されたプログラマブル周辺機器相互接続器を提供するものであって、
前記周辺機器の少なくとも一つは、イベント信号を送ることによって前記プログラマブル周辺機器相互接続器にイベントを通知するように構成された、イベント生成周辺機器であり、
前記周辺機器の少なくとも一つは、タスクを実行することによって、前記プログラマブル周辺機器相互接続器からのタスク信号に応答するように構成された、タスク受信周辺機器であり、
前記タスク受信周辺機器は、プロセッサによってアドレス指定可能で前記タスクに付随したタスクレジスタを備えて、前記タスクレジスタの内容の変化に応じて前記タスクを実行するように構成されており、
前記プログラマブル周辺機器相互接続器は、第一周辺機器のイベントと第二周辺機器のタスクとのマッピングが格納されるメモリにアクセスするように構成されて、前記マッピングは(i)前記第一周辺機器の前記イベントの識別子と、(ii)前記タスクに付随したタスクレジスタのアドレスと、を含むものであり、 前記プログラマブル周辺機器相互接続器は、第一周辺機器のイベントと第二周辺機器のタスクとのマッピングがメモリに格納されている場合に、前記第一周辺機器からの前記イベントの信号に応じて前記第二周辺機器にタスク信号を送信することによって、伝送路を提供することになる。
【0008】
第三の態様から、本発明は、第一周辺機器のイベントと第二周辺機器のタスクとの関係を、上記に定めるように、周辺機器同士の通信システムに設定する方法を提供するものであって、(i)前記第一周辺機器の前記イベントの識別子と、(ii)前記タスクに付随したタスクレジスタのアドレスと、を含むマッピングをメモリに格納するステップを含む。
【0009】
本発明によれば、プログラマブル周辺機器相互接続器(PPI)は、プロセッサを関与させる必要なしに、ある周辺機器からのイベント信号が別の周辺機器でタスクを起動させることができるということが、当業者に理解されるであろう。これによって、周辺機器同士が互いに直接通信する間にプロセッサはスリープ状態のままでいられるので、大幅な電力節約になる。また、周辺機器同士で迅速な通信を行なうことも可能になる。重要なのは、本発明を具現化するPPIは、タスク受信周辺機器にあるレジスタのアドレスを使用して、その周辺機器への伝送路を定義するということである。従って、伝送路を設定するために、不明瞭な周辺機器識別子およびタスク識別子を制御信号として相互接続装置へ送信する必要が無く、本発明の実施形態では、プロセッサ上で実行中のファームウェアが、タスク受信周辺機器の使いやすいレジスタアドレスを用いて、容易かつ便利に伝送路を確立することができる。
【0010】
このような構成は、プロセッサ用のファームウェアのプログラマにとってさらに大きな利便性を提供するものである。なぜなら、同じレジスタアドレスを使用して、プロセッサから(例えば、関連するタスクレジスタへの書き込みを介して)直接にタスク受信周辺機器にアクセスしたり、またタスクレジスタのアドレスをイベントにマッピングすることによってPPI内に伝送路を構成したりすることができるからである。これによって、プログラマが、同じタスクについて二つの異なるネーミングシステムを参照および使用する必要性を無くすことができる。
【0011】
本発明を具現化する製品のメーカーは、一連の未使用アドレスから周辺機器に付随した一つ以上のレジスタにアドレスを割り当てるだけで、簡単にデザインを再設計して別の周辺機器を追加することができる。同様に、周辺機器は、異なる製品間の周辺機器索引システムの番号を振り直す必要性も無く、システムから容易に除去することができる。このように、システムに様々なバージョンがあってもPPIに共通のアドレスを維持することによって、システムの異なるバージョン間でファームウェアが相互運用できる助けとなることができる。
【0012】
イベント生成周辺機器は、プロセッサによってアドレス指定可能で、イベントに付随したイベントレジスタを備えていてもよい。イベントレジスタは、集積回路上で周辺機器に付随した論理回路のすぐ近くに配置してもよいが、これは必須ではなく、周辺機器の他の構成要素からいくらか離れた距離に位置してもよく、タスクレジスタについても同じことが言える。これらのレジスタは、任意の適切なメモリ構造を備えていてもよい。
【0013】
イベントレジスタとイベントとの間の関連付けは、イベントレジスタの内容が変化すると、周辺機器がイベントを通知したかのように応答するようシステムが構成されていてもよい。このようなイベントレジスタは、例えば、周辺機器から発生するイベントをシミュレートするためにプロセッサによって書き込まれてもよい。周辺機器は、例えば、イベントを通知するときは常にイベントレジスタに二進数の「1」を書き込むことによって、イベントを通知するときにイベントレジスタ自体の内容を変更してもよい。
【0014】
いくつかの好ましい実施形態では、マッピング内にある第一周辺機器のイベントの前述した識別子は、イベントに付随したイベントレジスタのアドレスである。このようにすれば、マッピング内でレジスタアドレスを使用することの利点は、イベントレジスタにも拡張され、伝送路は、単にメモリ内に二つのレジスタアドレスを記憶することによって構成することができる。プロセッサ上で実行されるファームウェアは、関数呼び出しを経由してこのことを行なってもよいし、マッピングが格納されているメモリに直接アドレスを書き込んでもよい。しかし、これは必須ではなく、第一周辺機器のイベントの識別子は、周辺機器の識別子と、イベントまたは信号回線の識別子とを含むが、存在することもあればしないこともある、なんらかの付随したイベントレジスタのアドレスとは無関係であってもよい。
【0015】
周辺機器相互接続は、一つ以上のマッピングを使用して、周辺機器間の接続を定義するようにプログラムしたり構成したりすることができるという意味で、プログラマブルである。PPIは、そうしてもよいが、ソフトウェア命令を実行するための処理ユニットを必ずしも備える必要はない。
【0016】
周辺機器は、いずれか特定のタイプに限定されるものではなく、タイマー、UART、電圧比較器、暗号化エンジン、アナログデジタル変換器(ADC)、デジタルアナログ変換器(DAC)、無線送信機、無線受信機、などのような周辺機器を含んでもよい。当業者によく知られているように、イベントは、なんらかの入力、状態の変更、ある基準に達したこと等に応じて、周辺機器から信号で知らされてもよい。タスクは、インタフェースを介してデータを送信するような、周辺機器によって行なわれる任意の機能または動作であってもよい。
【0017】
PPIは、各イベントとタスクごとに、イベント信号とタスク信号を送信することができるそれぞれの回線で、すなわち、各イベントまたはタスクに一本の回線で、周辺機器に接続されてもよい。信号は、パルスまたは符号化された値であってもよい。入力回線は、PPI内の一つ以上のマルチプレクサに、例えば、各伝送路に一つのマルチプレクサに接続してもよい。出力回線は、PPI内の一つ以上のデマルチプレクサから、例えば各伝送路に一つのデマルチプレクサから出てもよい。PPIは、メモリに格納されたマッピングに従って伝送路のマルチプレクサおよびデマルチプレクサを設定したり、制御したりするように構成されてもよい。
【0018】
いくつかの別の実施形態では、PPIは、周辺機器のタスクレジスタまたはイベントレジスタ、またはその両方を、バスを介して、例えば、メモリマップされた入出力(MMIO)を使用したアドレスバスを介して、アクセスしてもよい。 こうして、PPIは、付随したイベントレジスタの内容の変化を通してイベント信号を受信したり、および/または付随したタスクレジスタの内容を変更することによって、タスク信号を送信したりすることができる。PPIは、プロセッサもまた接続されているバス(例えば、アドレスバスと、データバスと、制御バスとを備えることができるシステムバス)に接続されてもよい。同じバスが、周辺機器をプロセッサに接続してもよい。PPIは、例えば、定期的にポーリングすることによって、一定間隔でイベントレジスタを読み取ることによって、またはイベント生成周辺機器から割り込みを受けることによって、イベントレジスタの内容の変化を検出してもよい。割り込みを受信すると、次に、PPIは、対応するイベントレジスタの内容を読み取ればよい。
【0019】
イベントレジスタまたはタスクレジスタは、(すなわち、フラグまたは二進信号を通知するために)単一ビットで構成されてもよいし、または、例えば、8、16、32ビットの複数ビットを含んでいてもよい。
【0020】
メモリマッピングは、任意の適切な形態であってもよい。いくつかの実施形態では、イベントレジスタのアドレスとタスクレジスタのアドレス、またはこれらのレジスタへのポインタは、関連項目として配列、表またはデータベース内に格納される。例えば、 PPIは、各々が異なる伝送路に対応する、多くの行と、一列目がイベントレジスタを識別し二列目がタスクレジスタを識別する、二つの列を有する表を維持してもよい。このような配列または表は、論理構築物であって、必ずしも、メモリ内でなんらかの特定の物理的なデータ位置に限定される必要はないと理解されるであろう。PPIは、タスクレジスタのアドレスを記憶するための第一組のレジスタと、イベントレジスタのアドレスを記憶するための第二組のレジスタを備えていてもよい。各組には、同じ数のレジスタがあればよい。第一組のレジスタは、第二組の対応するレジスタによって制御されるデマルチプレクサに接続されたマルチプレクサを制御し、それによって伝送路を規定してもよい。
【0021】
メモリは、 PPIとは別個に、例えば、シリコン集積回路の別領域に、または異なる集積回路上にあってもよいが、アクセス時間を短縮することができるので、PPIの集積された構成要素の一つであることが好ましい。メモリは、揮発性であっても(例えば、RAM)不揮発性であっても(例えば、EEPROMまたはフラッシュ)よい。マッピングは、プロセッサによってアドレス指定可能な、一つ以上のレジスタに格納されるのが好ましい。PPIによって提供される各伝送路は、周辺機器イベントレジスタのアドレスと周辺機器タスクレジスタのアドレスをそれぞれ格納するのに適した、一つの付随したイベント終点レジスタと一つの付随したタスク終点レジスタを有していてもよい。伝送路によっては、これらのレジスタを使用して、他の種類のイベントおよび/またはタスク識別子を格納してもよい。
【0022】
マッピングまたは複数のマッピングは、PPIまたはプロセッサによって、またはその両方によって、メモリに書き込まれてもよい。プロセッサは、PPIに適切なマッピングを格納するよう指示することによって、間接的に周辺機器同士の伝送路を確立することになる。
【0023】
PPIは、一つ以上の検索表(ルックアップ・テーブル)を備えるか、それにアクセスすることができるのが好ましく、PPIはそれを使用して、あるレジスタアドレスに対応する特定のイベント回線またはタスク回線(またはイベントポートまたはタスクポート)を決定するために、レジスタアドレスをマッピングから検索することができる。次いで、PPIは、(例えば、適切にマルチプレクサまたはデマルチプレクサを制御することによって)伝送路の入力または出力として回線またはポートを選択してもよい。検索表は、任意の適切な形であればよく、必ずしもメモリ内に物理的な表として実装される必要は無い。
【0024】
PPIは、任意の数、例えば1、8、16、32、またはそれ以上の伝送路をサポートすることができる。伝送路は、PPIへのイベント入力ポートまたは回線とPPIからのタスク出力ポートまたは回線との、任意の物理的な(例えば、電気的な)または論理な接続であってもよい。伝送路は、(例えば、論理ゲートを用いて、伝送経路に沿って枝分かれまたは分岐を規定することによって)一つ以上の入力を一つ以上の出力につなぐことができる。
【0025】
PPIは、伝送路を有効および/または無効にすることができるメカニズムを備えているのが好ましい。PPIは、一ビットが各伝送路に付随したビットフィールドレジスタを備え、ビットフィールドレジスタの付随したビットが所定の値に設定されていると(例えば、二進数の1)、その伝送路が有効であるように構成してもよい。
【0026】
いくつかの好ましい実施形態では、 PPIは、一つ以上の伝送路のグループをまとめて有効および無効にするメカニズムを備えている。PPIは、各々が、それぞれの伝送路グループを規定する、複数の伝送路識別子を格納することが可能な、一つ以上のレジスタまたはメモリ領域を備えていてもよい。このようなグループレジスタは、例えば、各ビット位置が、異なる一つの伝送路に対応するビットフィールドであってもよい、すなわち、ビット位置がバイナリ1であればその伝送路を組み入れ、バイナリ0であればその伝送路を除外してもよい(またはその逆)。例えば、PPIのグループ一括有効ビットフィールドレジスタの適切なグループに対応するビットを設定することで、プロセッサによる単一の命令または動作が、グループ内のすべての伝送路をPPIによって有効または無効にすることができるようにシステムが構成されてもよい。
【0027】
PPIは、プロセッサからタスク信号を受信し、それに応じて特定の伝送路グループを有効または無効にするように構成されてもよい。 PPIは、グループごとに、それぞれのグループ一括有効タスク信号入力回線と、それぞれのグループ一括無効タスク信号入力回線と、を備えてもよい。特に有利であるのは、PPIは、それが周辺機器からイベント信号を受信することに応答して、伝送路グループが有効または無効になるように、(例えば、プロセッサによって)構成されるかプログラムされるようにしてもよいことである。各グループ一括有効タスクとグループ一括無効タスクは、付随したレジスタアドレスを有して、周辺機器のタスクと同じように、PPI内のマッピングを使用して構成可能であってもよい。
【0028】
周辺機器のイベントに応じて伝送路または伝送路グループが有効または無効になるようにPPIを構成することができる機能があると、非常に柔軟な構成が可能になる。この機能を使用して、タスク間の競合を回避することができる。例えば、PPIは、最初に、無線受信機を無効にする(例えば、一定期間後に無線をオフに切り換えることで電力を節約する)タスクにタイマーイベントをマッピングしてもよい。二番目に、PPIは、無線受信機から「無効」になったイベントを、無線を有効にする(例えば、無線データを受信し始めると自動的に無線をオンに切り換える)タスクにマッピングしてもよい。しかしながら、無線データをまだ受信している最中に、タイマーが無線をオフに切り換えてしまうという問題が起こり得る。さらに、無線受信機から「無効」になったイベントと、最初のマッピングを実行する伝送路を含むグループに対する、PPIにおけるグループ一括無効タスクとの三番目のマッピングを追加することによって、この競合を回避することができる。(もちろん、その伝送路グループは、後に適切な時点で、再び有効にする必要がある)。
【0029】
周辺機器同士の通信システムは、通常は、プロセッサが制御タスクを実行する、より大きなシステムの一部であると想定される。例えば、本発明を具体化した周辺機器同士の通信システムは、無線オンチップのような無線トランシーバの一部を形成してもよい。
【0030】
イベント生成周辺機器には、複数のイベントレジスタを有してもよい。同様に、タスク受信周辺機器は、複数のタスクレジスタを有してもよい。
【0031】
PPIは、二つ以上のタスク信号を、おそらく別のタスク受信周辺機器に、送信することによって、イベント信号に応答するように構成してもよい。いくつかの実施形態においては、これは、各付随タスクレジスタを複数の付随イベントレジスタのうち異なるものにそれぞれマッピングするようにして、複数のマッピングを格納することによって実現してもよい。他の実施形態では、三つ以上の付随レジスタをまとめてマッピングする、単一のマッピングを格納することによって、例えば、メモリ内に三つ以上の列を持つ表を有することによって、実現してもよい。PPIは、複数のタスク信号を同時に(例えば、単一クロックサイクル内に)送ることができるのが好ましい。
【0032】
同様に、PPIは、複数のイベントレジスタを単一のタスクレジスタにマッピングすることができてもよい。前と同じように、これは、複数のマッピングという手段によって、または三つ以上のレジスタと関わりを持つ単一のマッピングによってでもよい。
【0033】
いくつかの実施形態では、PPIは、二つ以上のイベント信号と関わりを持つ基準が満たされたとき、例えば、次に両方のイベント信号が受信されたときに、またはそのときのみ、タスク信号を送信するロジックを備えていてもよい。
【0034】
第一および第二周辺機器は、同一であってもよいが、通常は、異なる周辺機器であると想定される。ある周辺機器で生成されたイベントが、同じ周辺機器で実行されるようにシステムを構成するには、PPIは、付随イベントレジスタと、同じ周辺機器に属する付随タスクレジスタのマッピングを格納すればよい。しかし、本発明者らは、PPIを介してイベントを伝送するのは、プロセッサを関与させる場合よりも効率的ではあるが、PPIであってもイベント信号を伝送するのにある程度の時間を要することがわかった。従って、一組の実施形態では、少なくとも一台の周辺機器については、その周辺機器から送信されたイベント信号が、PPIを通過せずに、同じ周辺機器によってタスク信号として受信されるように、システムを構成してもよい。これは、例えば、その周辺機器から出たイベント回線を同じ周辺機器に向かうタスク回線に接続する物理的または論理的なスイッチによって、実装されてもよい。このスイッチは、レジスタ内の値、例えば、レジスタ内の単一ビット、に応じて閉じたり開いたりするようにしてもよい。このレジスタは、プロセッサによって、またはPPIによって書き込まれてもよい。
【0035】
このアイデアは、それ自体で新しく独創性があると考えられ、従って、さらなる態様から、本発明は、
プロセッサと、
前記プロセッサに接続された、複数の周辺機器と、
各周辺機器に接続された、プログラマブル周辺機器相互接続器と、を備える周辺機器同士の通信システムを提供するものであって、
前記周辺機器の少なくとも一つは、イベント生成を行なうものであって、前記プログラマブル周辺機器相互接続器にイベントの信号を送ることが可能であり、
前記周辺機器の少なくとも一つは、タスク受信を行なうものであって、前記プログラマブル周辺機器相互接続器からタスク信号を受信し、前記タスク信号を受信すると、タスクを実行することが可能であり、
前記プログラマブル周辺機器相互接続器は、イベント生成周辺機器からイベント信号を受信すると、タスク受信周辺機器にタスク信号を送信するように構成することが可能であり、
前記周辺機器の少なくとも一つは、イベント生成とタスク受信の両方を行ない、前記システムは、前記周辺機器によってイベントが生成されると、前記周辺機器が前記プロセッサまたは前記プログラマブル周辺機器相互接続器からタスク信号を受信することなく、前記周辺機器が直ちにタスクを実行するように構成することが可能である。
【0036】
別の態様から、本発明は、
プロセッサと、
前記プロセッサに接続された、複数の周辺機器と、
各周辺機器に接続された、プログラマブル周辺機器相互接続器と、を備えるシステムにおいて使用するための周辺機器同士の通信方法を提供するものであって、前記方法は、
前記周辺機器の一つが前記プログラマブル周辺機器相互接続器にイベントの信号を送ると、前記プログラマブル周辺機器相互接続器がそれに応答してタスク受信周辺機器にタスク信号を送信し、前記タスク受信周辺機器がタスク信号を受信しそれに応答してタスクを実行するステップと、
前記周辺機器の一つがイベント信号を生成し、前記プロセッサまたは前記プログラマブル周辺機器相互接続器からタスク信号を受信することなく、前記イベント信号に直接応答してタスクを実行するステップと、を含む。
【0037】
システムは、少なくとも一台の周辺機器に対して、周辺機器が自らのイベント信号に応答するように設定されているとき、PPIとの通信をバイパスすることができる、ショートカットメカニズムを提供することがわかるであろう。前述のように、周辺機器同士の伝送路を確立するようにPPIを構成することは、プロセッサが行なえばよい。周辺機器が自らのイベント信号に直接応答するようにシステムを構成することは、PPIまたはプロセッサによって、例えば、プロセッサから出される一つ以上の命令によって、またはプロセッサによって実行される一つ以上のレジスタアクセスによって、実行されてもよい。同様にして、周辺機器が自らによって生成されたイベントに直接応答してタスクを実行することはもう行なわないように、構成を変更することも可能である。
【0038】
システムは、周辺機器からPPIに導くイベント経路または回線と、PPIから周辺機器に導くタスク経路または回線との間にショートカット経路を備えてもよい。このショートカット経路は、該経路を開閉するスイッチを備えた電線であってもよい。このスイッチは、任意の適切な方法で実装すればよい。このスイッチは、プロセッサによってアドレス指定可能な、レジスタ内のビット位置によって制御してもよい。信号がパルスである場合には、ショートカット経路とPPIからのタスク経路は両方とも論理ORゲートに入り、その出力は周辺機器の方に導いてもよい。ショートカット経路は、周辺機器の一部を形成してもよいし、システムとは別個の構成要素であってもよい。
【0039】
本発明の他の態様または実施形態に関連して他のどこかに記載された特徴が、この態様でも同様にオプション的特徴であってもよい。
【0040】
システムの一例では、周辺機器は、開始タスクを受信し、ゼロからカウントを開始することによって応答することが可能であり、また、そのカウンタがオーバーフローすると、オーバーフローイベントを通知することも可能な、タイマーである。プロセッサは、タイマーのカウンタがオーバーフローすると、単純にカウントを停止するのではなく、タイマーが自動的にゼロからカウントを再開するようにシステムを設定するよう、指示を受けてもよい。これを行なうために、システムは、プログラマブル周辺機器相互接続器にタイマーのオーバーフローイベントとその開始タスクとの伝送路を作成するよう、指示してもよい。PPIは、イベントとタスクが同一の周辺機器に属していることを認識すると、二台の異なる周辺機器同士であれば伝送路を作成するがその代わりに、ショートカット経路を有効にして、タイマーがオーバーフローイベントを生成するとそれに応答して開始タスクを実行するようにしてもよい。その代わりに、プロセッサは、自らショートカット経路を有効にしてもよい。いずれの場合も、タイマーの再開は、通信がPPIまたはプロセッサを経由する場合よりも迅速に(すなわち、数クロックサイクル内で)起きるようになる。
【0041】
このショートカットメカニズムは、以前に説明したレジスタを使用する通信システムと組み合わせて、または任意の適切な既知の装置内に使用してもよい。
【0042】
周辺機器は、一つ以上の、事前定義された(つまり、配線接続された)ショートカット経路を有し、プロセッサ上のファームウェアで単純に有効および無効にされたりしてもよい。
【0043】
その代わりに、ショートカットは、プログラマブルであってもよい。例えば、周辺機器は、マルチプレクサおよび/またはデマルチプレクサを備えてもよい。これは、周辺機器のイベントレジスタアドレスと、周辺機器のタスクレジスタアドレスとのマッピングを格納可能なメモリにアクセスするように構成されてもよい。このメモリは、周辺機器から別個であってもよいが、周辺機器によるマッピングへの読み取りアクセスを高速化するために、周辺機器の一部であるのが好ましい。マッピングまたは複数のマッピングは、上述したPPIのマッピングと同様であるとし、同様に使用してもよい。
【0044】
本明細書に記載した実施形態の一態様の好ましい、またはオプションの特徴は、いずれも、適切である限り、任意の他の態様または実施形態で使用してもよい。実施形態は、任意の適切な組み合わせで、好ましいまたはオプションの機能を含んでもよい。
【図面の簡単な説明】
【0045】
次に、本発明の特定の好ましい実施形態について、添付図面を参照しながら、単なる例として、説明する。
図1】本発明を具体化する第一システムの構成要素を示す概略図である。
図2】周辺機器レジスタ同士のマッピングを格納するメモリ構造を示す表である。
図3】本発明を具体化する第二システムにおいて、PPIに接続された、いくつかの周辺機器の概略図である。
図4】PPI内の特定伝送路に関係する構成要素の概略図である。
図5】PPI内の伝送路およびグループ一括の有効化と無効化メカニズムの概略図である。
図6】周辺機器のイベントレジスタとタスクのレジスタ、および周辺機器のショートカットメカニズムを示す概略図である。
【発明を実施するための形態】
【0046】
図1は、中央処理装置(CPU)6と、メインメモリ8と、ロジック領域12および内部メモリ14を有するPPI10と、を備える、マイクロコントローラ(MCU)2(例えば、集積回路またはマルチチップモジュール)を示している。CPU6とPPI10は、両方ともバス16に接続されている。
【0047】
また、 バス16には、五つの典型的な周辺機器、すなわち、タイマー18、DAC20、UART22、ハードウェア暗号化エンジン24、および電圧比較器26も接続されている。その代わりに、タスクとイベントを通知する専用バスは、CPUバスとは別個であってもよい、すなわち、バス16は、 二つ以上の別個のバスで形成されてもよい。
【0048】
タイマー18は、出力イベントレジスタ28、オーバーフローイベントレジスタ30、および入力タスクレジスタ32を有している。DAC20は、 二つの変換完了イベントレジスタ36,38、および二つのトリガータスクレジスタ40、42を有している。UART22は、RX受信イベントレジスタ44、TX完了イベントレジスタ46、RXトリガータスクレジスタ48、およびTXトリガータスクレジスタ50を有している。ハードウェア暗号化エンジン24は、暗号化完了イベントレジスタ52、およびトリガータスクレジスタ54を有し、一方、電圧比較器26は、単一の比較器出力イベントレジスタ56を有している。いくつかのレジスタは単一ビットのレジスタであり、それ以外は複数ビットの値を保持することができる。もちろん、他の実施形態は、異なる周辺機器を有し、その周辺機器は、任意の数のイベントレジスタまたはタスクレジスタを有してもよい。
【0049】
周辺機器のレジスタは、メモリにマッピングされた入出力を使用し、PPIロジック12によって、そしてオプションとしてCPU6によって、アクセスできるように、メインメモリ8およびPPIメモリ14と、メモリアドレス空間を共有している。
【0050】
UART周辺機器22は、ショートカットと付随メモリ領域60を実行するための論理回路58を有している。
【0051】
使用時には、CPU6は、例えば、UART22がDAC変換完了後にデータを送信するように、DAC20の変換完了イベントのうちの一つをUART22トリガータスクに接続する伝送路を生成するよう、PPI10に指示してもよい。この指示を受信すると、PPI10は、自らのメモリ14に保持された表に新しいエントリを生成して、DAC20の変換完了レジスタ36のアドレスUART22のトリガータスクレジスタ48のアドレスをリンクさせる。
【0052】
図2は、PPIのメモリ14に格納することが可能な論理的データの構造を示している。多くの行を有し、それぞれ、マッピング番号、イベントレジスタアドレス、およびタスクレジスタアドレスを含んでいる。
【0053】
PPIロジック12は、表にリストされているすべてのイベントレジスタに定期的にポーリングして、レジスタの値が変更された場合を判断するように、構成されている。変更が検出されると、PPIロジック12は、表内の特定のイベントレジスタにマッピングされるすべてのタスクレジスタに新しい値を書き込む。
【0054】
PPIロジック12は、オプションとして、イベントレジスタの新しい値に関して何らかの処理を実行し、(新しい値の)代わりにその処理の結果を一つ以上のタスクレジスタに書き込むように構成されてもよい。例えば、イベントレジスタがマルチビット値を含む場合、PPIロジック12は、新しい値が前の値よりも大きいか否かを判断し、メモリ14にあるマッピングに応じて、単一ビットのタスクレジスタに一ビットを書き込むように構成してもよい。PPI10は、CPU6で(もしあれば)どのような処理を実行するのか指示を受けてもよい。処理の種類は、マッピング表の追加列として格納してもよい。
【0055】
CPU6が伝送路をシャットダウンしようとするとき、PPIのメモリ14に格納された表の該当エントリが消去されるようにすることによって、直接的にこれを行なってもよい。(実施形態によっては、もちろん、こうすることもあるが)直接に周辺機器に指示する必要はない。
【0056】
UART22のイベントレジスタ44,46とタスクレジスタ48、50は、PPIのメモリ14に格納されたマッピングに含めてもよい。しかし、UART22は、自らの イベントレジスタ44、46とタスクレジスタ48、50の間に、PPIロジック12を迂回し、従ってさらに速く動作することができる、ショートカット伝送路を実装する機能も有している。PPI10は、UART22に対して、例えば、データを受信し終わるとすぐにデータの送信を開始するように、そのRX受信イベントレジスタ44とそのTXトリガレジスタ50の間に伝送路を確立するよう指示してもよい。
【0057】
UART22のショートカットロジック58(またはPPI10自体)は、RX受信イベントレジスタ44のアドレスとTXトリガレジスタ50のアドレスをUARTのメモリ60内にマッピングされたペアとして書き込む。これは、PPIのメモリ14(図2参照)内のマッピングと同じようにフォーマットしてもよい。次いで、UART22のショートカットロジック58は、自らのメモリ60に格納されている自らのイベントレジスタ44、46のいずれかのアドレスにポーリングし、変化を検出すると、PPI10に対するのと同様の方法で、値をリンクされたタスクレジスタ48、50に書き込む。
【0058】
図3図6は別の実施形態に関連するものであって、PPIコントローラは、図1のようにメモリマップされた入出力を使用するのではなく、各イベント信号とタスク信号用に個々の回線を使用して周辺機器に接続されている。それにもかかわらず、この第二実施形態は、多くの一般的な動作原理を第一実施形態と共有している。
【0059】
図3は、PPIに接続されたm個の周辺機器を示している。PPIはn個の伝送路を備え、その各々が、付随したイベント終点レジスタ(EEP)およびタスク終点レジスタ(TEP)を有している。これらのレジスタは、各々が周辺機器のうちのいずれかのレジスタのアドレスを保持してもよい。
【0060】
図4は、これらn個の伝送路のうちの一つに付随した構成要素をより詳細に示している。伝送路のEEPは、イベント信号検索表につながっていて、この表は一組の周辺機器イベントレジスタアドレスと、PPI内にあって伝送路に付随したマルチプレクサ(MUX)への入力のうちの一つに関する内部イベント回線識別子との相互参照を行なう。PPIは、EEPに含まれるアドレスに付随した入力を選択するよう、MUXを設定するように構成されている。
【0061】
同様に、伝送路のTEPは、タスク信号検索表につながっていて、この表は一組の周辺機器タスクレジスタアドレスと、PPI内にあって伝送路に付随したデマルチプレクサ(DEMUX)からの出力のうちの一つに関する内部タスク回線識別子との相互参照を行なう。 PPIは、TEPに含まれるアドレスに付随した出力を選択するよう、DEMUXを設定するように構成されている。
【0062】
二つの周辺機器A,Bは、伝送路のMUXに接続されている。周辺機器Aは、二つのイベント信号AE0、AE1を提供することができ、それらは各々MUXへの固有回線を有している。周辺機器Bは、単一のイベント信号BE0を提供することができ、これもMUXへの回線を有している。同様の回線は、他のn−1個の伝送路(図示せず)のマルチプレクサにも接続する。
【0063】
伝送路のDEMUXは、三本の出力回線に接続され、一本は周辺機器Aのタスク入力AT0につながり、二本は周辺機器Bの別のタスク入力BT0、BT1につながる。
【0064】
PPI内で、MUXからの出力は、 スイッチを介してDEMUXへの入力に接続されている。スイッチが閉じているときは、MUXによって選択された周辺機器のうちの一つからイベント信号(例えば、パルス)がDEMUXへ、そしてそこから周辺機器のうちの一つの選択されたタスク入力に渡されるように、接続がなされる。スイッチの状態は、レジスタによって制御され、CPU(図示せず)によって書き込み可能なる。
【0065】
別のいくつかの構成では、一本の伝送路が複数のデマルチプレクサを有し、各々が伝送路のMUXの出力に接続されていてもよい。このようにすると、単一のイベントが複数の周辺機器タスクを起動するように分岐させることができる。
【0066】
図5は、PPI内部で、個々の伝送路が有効および無効にされ、伝送路グループが有効および無効にされるメカニズムを図にしたものである。各伝送路iは,経路内にスイッチのある、EEPからTEPへの経路(それぞれCHi_EEPおよびCHi_TEPと名付けられている)として表されている。各伝送路のスイッチは、図4でMUXとDEMUXとの間に位置するスイッチに相当する。
【0067】
ビットフィールドレジスタCHENは、各伝送路スイッチに一ビットが付随する。CPU(またはシステムの他の構成要素)は、CHENレジスタに適切なビットを書き込むことによって、伝送路を有効または無効にすることができる。
【0068】
それぞれのチャネルグループビットフィールドレジスタCHG0〜CHGm内で所望の伝送路に対応するビットを設定することによって、m個の伝送路グループまで構成することができる。各グループは、付随した有効化タスクおよび付随した無効化タスクを有している。起動されると、これらのタスクは、そのグループに属している伝送路を有効または無効にする。これらの各タスクは、付随したタスクレジスタCHG0EN〜CHGmEN(有効化)およびCHG0DIS〜CHGmDIS(無効化)を有し、そのレジスタを使ってCPUがそのレジスタに書き込みすることによって、タスクを起動することができる。また、これらのタスクレジスタのいずれかのアドレスをPPIのタスク終点レジスタ(TEP)に入力し、そのタスクレジスタと周辺機器からのイベント信号とのマッピングを生成してもよい。
【0069】
図6は、特定の周辺機器に付随して、PPIにリンクするため、およびショートカット機能を実現するための接続を図で示したものである。ショートカットの構成要素は、周辺機器の内部にあるものとして説明するが、同じように周辺機器の外部に位置してもよい。
【0070】
特定のタスクnに対して、周辺機器は、タスク信号を送信することができる、PPIからの入力回線を受け入れる。周辺機器は、CPU上で動作するファームウェアがタスクレジスタに二進数の1を書き込んだ場合に、タスクを起動する信号を送信するタスクに付随したタスクレジスタ(TASKn)も有する。タスクレジスタの内容は、PPIがタスク信号を送信した場合や、ショートカットメカニズムを介して信号が受信されたときにも更新されてもよい。PPIからの回線とタスクレジスタの出力は、論理ORゲートで結合され、信号が受信されるとタスクを実行する周辺機器のコアに送られる。ORゲートは、第三の信号源、すなわち、後述するショートカットスイッチからも信号を受信してもよい。
【0071】
周辺機器のコアは、適切な状態にあるときに、イベント信号を出力してもよい。これは、イベントレジスタ(EVENTm)に送られ、イベントが通知されたことを示すよう、レジスタの内容が変えられる。また、同じイベント信号は分割され、第二のORゲートに送られて、ショートカットスイッチに、そしてまたPPIのイベント入力回線につながる。このORゲートは、また、ファームウェアがイベントレジスタに二進数の1を書き込んだ場合、イベントが発生したことをシミュレーションして信号を送信するイベント・レジスタから入力を受信する。
【0072】
また、イベントレジスタの状態はスイッチを介して割り込みコントローラIntCに送信してもよいが、その詳細は本発明には関係ない。
【0073】
既に述べたように、第二のORゲートからの出力は、スイッチを介して第一のORゲートへの入力につながる。このスイッチは、周辺機器に付随したビットフィールドレジスタSHORTS内の付随したビットkの値によって制御される。レジスタSHORTSは、周辺機器の一部であってもよいし、またはシステムのどこか他の場所に配置してもよい。
【0074】
CPUまたは(潜在的にPPIを含む)他の装置は、このメカニズムを使用して、SHORTS内の関係するショートカットの位置kに「1」を書き込むことによって、周辺機器のコアのタスク出力とコアへのイベント入力との間にショートカットを生成することができる。こうすれば、PPIを通して伝送路を作成しなくても、信号が周辺機器内で、つまり近くで直接に伝送され、それによってクロックサイクルを少なくし、応答性を改善することができる。また、イベント信号は、それにマッピングされた他のタスクが存在する場合であっても、依然としてPPIに送られる。
【0075】
要約すると、既知のシステムより優位に立つ、いままでにない周辺機器同士の通信システムが記載されている。
図1
図2
図3
図4
図5
図6