【課題を解決するための手段】
【0005】
第一の態様からみると、本発明は、
プロセッサと、
複数の周辺機器と、
プログラマブル周辺機器相互接続器と、
イベント発生装置と、
ソフトウェアを格納するメモリと、を備えたマイクロコントローラを提供するものであって、
前記イベント発生装置は、前記プロセッサによってアドレス可能なイベント発生レジスタを備え、
前記イベント発生装置は、前記プログラマブル周辺機器相互接続器に接続され、
前記イベント発生装置は、前記イベント発生レジスタの内容に対する所定の変更を検出することができて、このような所定の変更を検出すると前記プログラマブル周辺機器相互接続器にイベントを伝えるように設定され、
前記周辺機器の各々は、前記プログラマブル周辺機器相互接続器に接続され、
前記周辺機器の各々は、それぞれのタスクを実行することによって前記プログラマブル周辺機器相互接続器からのタスク信号に対処するように構成され、
前記プログラマブル周辺機器相互接続器は、各々が前記イベント発生装置のイベントを前記周辺機器の一つに属するタスクにマッピングさせる複数のマッピング関係を格納できるマッピングメモリにアクセスするように構成され、
前記プログラマブル周辺機器相互接続器は、前記イベント発生装置のイベントから前記周辺機器の一つに属するタスクへのマッピング関係が前記マッピングメモリに格納されているとき、前記プログラマブル周辺機器相互接続器がタスク信号を前記周辺機器に送信することによって前記イベント発生装置からのイベントの信号に対処するように構成され、
前記プログラマブル周辺機器相互接続器は、前記マッピングメモリが前記イベント発生装置の一つのイベントから二つ以上の異なるタスクへのマッピング関係を格納しているとき、前記イベントの信号を受信してから所定の最大時間内に前記二つ以上のタスクの信号をそれぞれ送信するように構成され、
前記ソフトウェアは、(i)前記イベント発生装置の一つのイベントから少なくとも二つの異なる周辺機器タスクへのマッピング関係を前記マッピングメモリに格納し、(ii)前記イベント発生レジスタの前記内容に対する前記所定の変更を行うための、前記プロセッサによって実行可能な命令を含む。
【0006】
したがって、本発明によれば、前記ソフトウェアが実行されると、二つ以上の周辺機器タスクがアトミックに、かつ、所定の最大時間枠内にトリガされることが当業者であれば理解されるであろう。単一のプロセッサ書き込み命令のみを使用して前記周辺機器タスクを起動するので、二つの前記周辺機器タスクをトリガすることがプロセッサ割り込みによって中断されるリスクは存在しない。
【0007】
前記所定の最大時間は、任意の値を有することができるが、10マイクロ秒以下であるのが好ましく、より好ましくは1マイクロ秒以下であって、最も好ましくは0.1マイクロ秒以下である。前記所定の最大時間は、二つ以上のタスクが実用上同時にトリガされるものとみなすことができるように、十分に小さいことが好ましい。前記所定の最大時間は、100プロセッサクロックサイクル未満であってもよく、より好ましくは10または5クロックサイクル未満であってもよい。いくつかの実施形態においては、1プロセッサクロックサイクル未満であってもよい。前記所定の最大時間は、すべてのマッピング関係に対して一定であることが好ましい。前記プログラマブル周辺機器相互接続器は、それぞれの前記二つ以上のタスク信号を同時(例えば、前記プログラマブル周辺機器相互接続器または前記プロセッサに供給されるクロック信号の1サイクル内)に送信するように設定されることが好ましい。この場合は、起こり得るすべてのマッピング関係について、前記プログラマブル周辺機器相互接続器がイベントの信号を受信してから当該イベントにマッピングされた二つ以上のタスク信号を送信するまでに一定の時間遅延が存在することが好ましい。
【0008】
前記プログラマブル周辺機器相互接続器は、例えば、本出願人による国際公開WO2013/088121号に記載されているように、既に公知である。いくつかの好ましい実施形態において、前記プログラマブル周辺機器相互接続器は、その内容全体が参照により本明細書に組み込まれた国際公開WO2013/088121号に記載されているプログラマブル周辺機器相互接続器と、必須ではないが、実質的に同一である。
【0009】
前記プログラマブル周辺機器相互接続器は、周辺機器間チャンネルのプログラミングもサポートすることが好ましい。いくつかの実施形態において、前記マイクロコントローラは、イベントを前記プログラマブル周辺機器相互接続器(PPI)に伝えるように構成された、イベント発生が可能な一つ以上の周辺機器も備える。前記プログラマブル周辺機器相互接続器は、第一周辺機器のイベントと第二周辺機器のタスクとの間のマッピング関係を格納することができ、第一周辺機器のイベントと第二周辺機器のタスクとの間のマッピング関係がメモリに格納されていると、相互接続が第一周辺機器からのイベントの信号に対処して第二周辺機器にタスク信号を送信することによってチャンネルを形成できるように設定されることが好ましい。このようにして、前記プログラマブル周辺機器相互接続器は、イベント発生周辺機器とインターフェースをとるのと同じように、前記イベント発生装置と適宜インターフェースをとってもよい。いくつかの実施形態において、前記イベント発生装置は、一種のイベント発生周辺機器とみなしてもよい。
【0010】
前記周辺機器は、何らか特定のタイプのものに限定されず、例えば、タイマ、UART、電圧比較器、暗号エンジン、アナログデジタル変換器(ADC)、デジタルアナログ変換器(DAC)、無線送信機、無線受信機などの周辺機器を含んでもよい。当業者によく知られているように、何らかの入力、状態変化、基準を満たすなどが発生すると、例えば、タイマが目標値に到達すると、周辺機器からイベントが知らされてもよい。前記タスクは、インターフェースを介してデータを送信するなど、前記周辺機器によって実行できる何らかの機能または動作であってもよい。
【0011】
前記イベント発生装置は、単一タイプのイベントのみを伝えるように設けてもよいが、複数の異なるイベントを伝えられるのが好ましい。これらのイベントは、それぞれ異なるイベント回線を介するかそれぞれ異なるイベントレジスタを使用して知らされてもよい。前記イベント発生装置は、前記プロセッサによってアドレス可能な複数のイベント発生レジスタを有してもよい。各イベント発生レジスタは、それぞれ異なるイベントと関係付けられてもよい。前記異なるイベントは、例えば、前記イベント発生レジスタのアドレスを識別子として使用したり何か別な所定の一連の識別子を使用したりすることによって、格納されたマッピング関係の中で一意的に識別され得ることが好ましい。
【0012】
従来の周辺機器のようにイベントが当該周辺機器における何らかの状態変化(例えば、何らかの動作の完了)を表すのとは違って、前記イベント発生装置からのイベントは、固有の意味を有さない代わりに、前記プロセッサ(または他の構成要素)が当該イベントを前記イベント発生レジスタに書き込むことによって意味が付与されることが理解されるであろう。
【0013】
前記PPIは、イベント信号およびタスク信号を送信できる、イベントおよびタスクごとのそれぞれの回線、すなわち、各イベントまたはタスクごとに一つの回線、によって前記周辺機器および/または前記イベント発生装置に接続してもよい。前記イベント信号およびタスク信号は、パルスまたは符号化された値であってもよい。入力回線は、前記PPI内部の一つ以上のマルチプレクサに、例えば、チャンネルごとに一つのマルチプレクサに、接続されてもよい。出力回線は、前記PPI内部の一つ以上のデマルチプレクサから、例えば、チャンネルごとに一つのデマルチプレクサから、出されてもよい。前記PPIは、メモリに格納されたマッピング関係に従ってチャンネルのマルチプレクサおよびデマルチプレクサを設定したり制御したりするように構成してもよい。
【0014】
いくつかの実施形態において、前記PPIは、例えば、メモリマップドI/O(MMIO)を使用するアドレスバスを介するなど、バスを介して、前記周辺機器および/または前記イベント発生装置のタスクレジスタか、前記イベントレジスタか、または両者にアクセスしてもよい。したがって、前記PPIは、関係付けられた前記イベントレジスタの内容変更を通じてイベント信号を受信してもよいし、および/または、関係付けられた前記タスクレジスタの内容を変更することによってタスク信号を送信してもよい。前記PPIは、前記プロセッサも接続されるバス(例えば、アドレスバス、データバス、および制御バスから成るシステムバス)に接続してもよい。同じバスで、前記周辺機器および/または前記イベント発生装置を前記プロセッサに接続してもよい。前記PPIは、例えば、定期的にポーリングするなど周期的に前記イベントレジスタを読み出したり、前記イベント発生周辺機器または前記イベント発生装置からの割り込みを受信したりして、イベントレジスタの内容変更を検出してもよい。前記PPIは、割り込みを受信すると、対応するイベントレジスタの内容を読み出してもよい。
【0015】
イベントレジスタまたはタスクレジスタは、単一ビット(つまり、フラグまたはバイナリ信号を伝えるために)を含んでもよいし、例えば8、16または32ビットなど複数のビットを含んでもよい。
【0016】
前記イベント発生装置は、イベント信号回線を介して前記プログラマブル周辺機器相互接続器(PPI)にイベントを伝えてもよい。あるいは、レジスタに対する変更を通じて前記イベントを伝えてもよく、この場合に前記PPIは前記変更を検出するため、周期的に前記レジスタをポーリングするように構成されてもよい。このレジスタは、前記イベント発生レジスタそれ自体であってもよいし、前記イベント発生装置用の別個のイベントレジスタであってもよい。
【0017】
いくつかの実施形態において、マッピング関係内のタスク識別情報は、国際公開WO2013/088121号に記載されているように、前記タスクと関係付けられた、タスクレジスタのアドレスである。しかしながら、これは必須ではなく、タスク受信側周辺機器のタスク識別情報は、例えば、(i)周辺機器識別子と、(ii)(前記周辺機器に存在するか否か分からない)関係付けられたタスクレジスタのアドレスとは無関係な、タスク識別子または信号回線識別子と、を含んでもよい。
【0018】
タスク受信側周辺機器は、前記プロセッサによってアドレス可能でタスクと関係付けられたタスクレジスタを備え、前記タスクレジスタの内容変更が発生すると当該タスクを実行するように構成されてもよい。したがって、第一周辺機器のイベントと第二周辺機器のタスクとの間のマッピング関係は、(i)前記第一周辺機器の前記イベントの識別情報と、(ii)前記タスクと関係付けられたタスクレジスタのアドレスと、を含んでもよい。前記PPIは、第一周辺機器のイベントと第二周辺機器のタスクとの間のマッピング関係がメモリに格納されていれば、前記第一周辺機器から前記イベント信号を受信すると前記第二周辺機器にタスク信号を送信することによってチャンネルを形成するように構成されてもよい。
【0019】
イベント発生側周辺機器は、前記プロセッサによってアドレス可能でイベントと関係付けられたイベントレジスタを備えてもよい。前記イベントレジスタは、前記周辺機器と関係付けられて集積回路上で直接隣接した論理回路に配置されてもよいが、これは必須ではなく、前記周辺機器の他の構成要素からある程度離れて据え付けられてもよい。これはタスクレジスタにもあてはまる。前記した両レジスタは、任意の適切なメモリ構造を備えていてもよい。前記周辺機器は、イベントを伝えるとき、例えば、イベントを伝えるときは常に前記イベントレジスタにバイナリ「1」を書き込むことによって、前記イベントレジスタの内容を変更してもよい。
【0020】
いくつかの実施形態において、マッピング関係にある第一周辺機器のイベント識別情報は、前記イベントと関係付けられたイベントレジスタのアドレスである。このようにすれば、二つのレジスタアドレス、すなわち、イベントレジスタアドレスおよびタスクレジスタアドレスをメモリに格納するだけで、チャンネルを構成することができる。前記プロセッサで実行されるソフトウェアは、機能呼出しを介してこの格納処理を実行するかもしれないし、当該マッピング関係が格納されている前記メモリにアドレスを直接に書き込むかもしれない。必須ではないが、前記第一周辺機器の前記イベント識別情報は、存在するか否か分からない、関係付けられたイベントレジスタのアドレスとは無関係な、周辺機器識別子およびイベント、または信号回線識別子を含むことができる。
【0021】
前記イベント発生装置は、前記プロセッサによってアドレス可能で前記イベント発生装置のイベントと関係付けられた少なくとも一つのイベントレジスタを備えることが好ましい。いくつかの実施形態において、前記イベント発生レジスタは、前記イベントレジスタである。他の実施形態において、前記イベントレジスタは、前記イベント発生レジスタとは別個である(すなわち、異なるアドレスを有する)。前記イベント発生装置は、前記イベント発生レジスタに対して所定の変更が行われると前記イベントレジスタに対して所定の変更をもたらすことができるように構成してもよい。いくつかの実施形態において、前記イベント発生レジスタは、前記イベント発生装置用のタスクレジスタであってもよい。前記イベント発生装置は、複数のイベント発生レジスタおよび複数のイベントレジスタを備えてもよい。各イベント発生レジスタは、前記イベント発生レジスタの一つに対して変更が行われると前記イベントレジスタのうち関係付けられた一つに対して変更をもたらすように、前記イベントレジスタのそれぞれと関係付けられてもよい。
【0022】
前記イベント発生装置は、例えば、特定のイベントを伝える前に、おそらく所定の順番で、二つの異なるイベント発生レジスタ内の所定の変更を必要とするような、二つ以上のイベント発生レジスタを一つのイベントと関係付ける論理回路を含んでもよい。換言すれば、前記イベント発生装置は、二つ以上のイベント発生レジスタに関する基準が満たされると、またはその場合のみ、イベント信号を送信する論理回路を含んでもよい。このような論理回路は、固定(すなわち、配線接続)されてもよいし、プログラマブルであってもよい。
【0023】
いくつかの実施形態において、前記イベント発生装置は、前記プログラマブル周辺機器相互接続器からタスク信号を(例えば、タスク回線を介して、または前記イベント発生レジスタの内容に対して変更を行うことによって)受信し、前記プログラマブル周辺機器相互接続器にイベントを伝えることによって対処することができる。こうすれば、より詳細を以下に説明するように、前記イベント発生装置が、イベントを伝えるときに割り込みも前記プロセッサに送信するように構成される場合に、有用であり得る。
【0024】
前記イベント発生装置のイベントは、前記イベント発生周辺機器のイベントが識別されるのと同じように、例えば、関係付けられたイベントレジスタのアドレスによって、または前記イベントに特有の何か他の識別子によって、マッピング関係内で識別してもよい。
【0025】
前記PPIは、一つ以上のマッピング関係を使用して周辺機器間の接続を規定するようにプログラムされるか構成されるという意味においてプログラマブルである。前記PPIは、ソフトウェア命令を実行するために自らの処理装置を備えてもよいが、必ずしもそうする必要はない。
【0026】
前記マッピングメモリにあるマッピング関係は、任意の適切な書式で記載されてもよい。いくつかの実施形態において、イベントレジスタのアドレスおよびタスクレジスタのアドレス、またはこれらのレジスタへのポインタが、配列や表やデータベース内の関連項目として格納されてもよい。例えば、前記PPIは、各々が異なるチャンネルに対応する多くの行と、イベントレジスタを識別する第一列およびタスクレジスタを識別する第二列からなる二つの列を有する表を保持してもよい。このような配列や表は論理的構築物であってもよく、メモリ内のデータの何らかの特定の物理的な位置に必ずしも限定される必要はないことが理解されるであろう。前記PPIは、タスクレジスタのアドレスを格納するための第一レジスタ群およびイベントレジスタのアドレスを格納するための第二レジスタ群を備えてもよい。各群には等しい数のレジスタが存在してもよい。第一レジスタ群のレジスタは、第二レジスタ群の対応するレジスタによって管理されるデマルチプレクサに接続されるマルチプレクサを管理することによって、チャンネルを規定してもよい。
【0027】
前記メモリは、例えば、シリコンチップの別個の領域または異なるチップ上にあるなど、前記PPIから独立していてもよいが、アクセス時間を短縮できる、前記PPIと一体化された構成要素であることが好ましい。前記メモリは、揮発性(例えば、RAM)であっても、不揮発性(例えば、 EEPROMまたはフラッシュ)であってもよい。前記マッピング関係は、前記プロセッサによってアドレス可能なことが好ましい一つ以上のレジスタに格納されることが好ましい。前記PPIによって形成される各チャンネルは、相互に関係付けられた一つのイベントエンドポイントレジスタおよび一つのタスクエンドポイントレジスタを有してもよく、これらは、それぞれ、イベントレジスタのアドレスおよびタスクレジスタのアドレスを格納するのに適切である。一部の前記チャンネルは、これらのレジスタを使用して他のタイプのイベント識別子および/またはタスク識別子を格納してもよい。
【0028】
一つ以上の前記マッピング関係が、前記PPIによって、前記プロセッサによって、またはこれらの両方によって前記メモリに書き込まれてもよい。前記プロセッサは、前記PPIに適切な前記マッピング関係を格納するよう命令することによって、周辺機器間のチャンネルを間接的に確立してもよい。
【0029】
前記PPIは、一つ以上の検索表を含むかアクセスできることが好ましく、この検索表を用いてマッピング関係からレジスタアドレスを検索して、このレジスタアドレスに対応する特定のイベント回線かタスク回線(またはイベントポートかタスクポート)を決定することができる。次に、前記PPIは、(例えば、マルチプレクサまたはデマルチプレクサを適宜管理することによって)チャンネルの入力または出力として当該の回線またはポートを選択してもよい。前記検索表は、任意の適切な書式であればよく、必ずしもメモリ内の物理的な表として実装する必要はない。
【0030】
前記PPIは、例えば、1、8、16、32またはそれ以上の任意の数のチャンネルをサポートしてもよい。チャンネルは、前記PPIへのイベント入力ポート(回線)と前記PPIからのタスク出力ポート(回線)との間の何らかの物理的な(例えば、電気的な)接続または論理的な接続であってもよい。チャンネルは、(例えば、複数の論理ゲートを用いてチャンネル経路に沿って枝分かれやフォーク状分岐を規定するなど)一つ以上の入力と一つ以上の出力につなげることができる。
【0031】
前記PPIは、チャンネルを有効および/または無効にできる機構を備えることが好ましい。前記PPIは、一つのビットが各チャンネルと関係付けられるビットフィールドレジスタを備え、前記ビットフィールドレジスタ内の関係付けられたビットが所定の値(例えば、バイナリ1)に設定された場合にチャンネルを有効にするように構成されてもよい。
【0032】
イベント発生周辺機器は、二つ以上のイベントレジスタを有してもよい。同様に、タスク受信側周辺機器は、二つ以上のタスクレジスタを有してもよい。
【0033】
既に説明したように、前記PPIは、おそらく別々のタスク受信側周辺機器に、二つ以上のタスク信号を送信することによって一つのイベント信号に対処するように構成可能である。いくつかの実施形態では、これを、各々が(例えば、イベントレジスタアドレスによって特定される)イベントを(例えば、それぞれのタスクレジスタアドレスによって特定される)それぞれ別のタスクにマッピングする、複数のマッピング関係を前記マッピングメモリに格納することによって達成してもよい。他の実施形態では、これを、一つのイベントを二つ以上のタスクに直接にマッピングする単一のマッピング関係を格納することによって、例えば、一つの列が前記イベント用であり二つ以上の別の列がそれぞれのタスク用である三つ以上の列を含む表を前記マッピングメモリに格納することによって、達成してもよい。
【0034】
前記イベント発生装置は、前記PPIへの一つ以上のイベント回線、前記プロセッサへのゼロ個以上の割り込み回線、およびゼロ個以上のレジスタ以外の出力は全く有さないことが好ましい。当該装置は、クロック入力、一つ以上のレジスタ、およびゼロ個以上のタスク回線以外の入力は全く有さないことが好ましい。当該装置は、通常、従来の周辺機器よりも遥かに単純である。当該装置は、構成要素の数またはゲートの数という観点で、前記マイクロコントローラにある任意の他の周辺機器よりも小さいことが好ましい。当該装置は、(タイマ周辺機器とは異なり)タイミング機構は全く有しないことが好ましい。当該装置は、(例えば、任意のデータを受信し送信するための、他の構成要素やデバイスへの接続を有する、シリアルインターフェースやデジタルアナログ変換器とは異なり)ゼロ個以上のイベントレジスタ、タスクレジスタ、および構成レジスタ以外のデータ入力機構は全く有しないことが好ましい。
【0035】
前記イベント発生装置は、イベントを伝えるときに割り込みを前記プロセッサに送信するための回路を備えてもよい。前記割り込みは、マスク可能割り込みであってもマスク不可能割り込みであってもよい。当該割り込みは、特定のイベントを伝えるときに前記プロセッサへの割り込みの送信を有効および/または無効にするための入力を有してもよい。前記イベント発生装置は、前記イベント発生レジスタの内容に対する変更を検出すると割り込みを前記プロセッサに送信するよう前記イベント発生装置を構成するための一つ以上の構成レジスタを備えてもよい。当該装置は、マスク可能割り込みおよびマスク不可能割り込みをそれぞれ構成するための別個の構成レジスタを備えてもよい。
【0036】
割り込みを前記プロセッサに送信する能力は、前記イベント発生装置が前記プログラマブル周辺機器相互接続器からタスク信号を受信するための入力端子を備えるときに特に有用である。この結果、周辺機器にイベントが発生すると前記イベント発生装置が割り込みを前記プロセッサに送信することができるように、前記プログラマブル周辺機器相互接続器をプログラムすることができる。これは、前記周辺機器が割り込み自体を送信できない場合、または前記周辺機器には限られた数の割り込み(例えば、一つの割り込み)しか割り当てられなかった場合、つまり、前記周辺機器からのすべての割り込みは限られた数の割り込みサービスルーティン(例えば、一つの割り込みサービスルーティン)で処理する必要がある場合に、有用であり得る。前記周辺機器は、自分の代わりに前記PPIおよび前記イベント発生装置を用いて割り込みを前記プロセッサに送信することによって、前記プロセッサに送信することが可能な(例えば、異なる割り込み番号をもつ)異なる割り込みの数を効果的に増やすことができる。こうすれば、割り込みサービスルーティンのプログラミングを簡単にすることができる。また、異なる優先レベルでの割り込みをサポートするプロセッサに対して、前記イベント発生装置を使用することなく前記周辺機器が利用可能であった割り込みレベルの数よりも多い複数の異なる割り込みレベルで周辺機器が当該プロセッサへの割り込みを行うことを可能にすることもできる。
【0037】
例えば、ある周辺機器が、100マイクロ秒ごとに発生する「NEWVALUE」と呼ばれる一つのイベントおよび何か誤りがあるときのみに伝える「ERROR」と呼ばれる別のイベントを有しているとする。しかしながら、当該周辺機器は、一本しか前記プロセッサへの割り込み回線を有さないので、「ERROR」イベントが発生してもより高い優先順位で割り込むことはできない。しかしながら、当該周辺機器からの「ERROR」イベントの信号によって前記PPIが前記イベント発生装置のタスク回線を有効にするように当該周辺機器と前記イベント発生装置との間のPPIチャンネルを構成し、そのタスク回線を介して信号を受信すると高優先順位の割り込みを前記プロセッサに送信するように前記イベント発生装置を設定することによって、当該周辺機器には、「ERROR」割り込みを高優先順位で前記プロセッサに送信する能力を付与することができる。こうすれば、前記プロセッサは、前記「ERROR」イベントに迅速に対処することができる。
【0038】
いくつかの実施形態において、前記マイクロコントローラは、各々が割り込み回線群によって前記プロセッサに接続された複数のイベント発生装置を備え、各割り込み回線群がそれぞれ異なる割り込み優先レベルを有していてもよい。あるいは、一つのイベント発生装置は、第一優先レベルで割り込みを送信するのに使用できる一つ以上のタスク(またはイベント)と、第二優先レベルで割り込みを送信するのに使用できる一つ以上の他のタスク(またはイベント)と、を有してもよい。前記タスク(またはイベント)と前記割り込み優先レベルとの間の関連性は、固定してもよいし、(例えば、前記イベント発生装置の一つ以上のレジスタ値に従って)設定可能であってもよい。
【0039】
前記プログラマブル周辺機器相互接続器に接続された装置を使用してプロセッサ割り込みを発生するこの着想は、それ自体の権利として新規的かつ進歩的であり、したがって、別の態様からみると、本発明は、
プロセッサと、
複数の周辺機器と、
プログラマブル周辺機器相互接続器と、
割り込み発生装置と、を備えたマイクロコントローラを提供するものであって、
前記周辺機器のうちのイベント発生周辺機器は、前記プログラマブル周辺機器相互接続器にイベントを伝えるように構成され、
前記割り込み発生装置は、前記プログラマブル周辺機器相互接続器からタスク信号を受信すると、前記プロセッサに割り込みを送信するように設定され、
前記プログラマブル周辺機器相互接続器は、(i)第一周辺機器のイベントと(ii)前記割り込み発生装置すなわち第二周辺機器のタスクとの間のマッピング関係を格納できるメモリにアクセスするように構成され、
前記プログラマブル周辺機器相互接続器は、第一周辺機器のイベントと前記割り込み発生装置のタスクとの間のマッピング関係がメモリに格納されていると、前記タスク宛のタスク信号を前記割り込み発生装置に送信することによって前記第一周辺機器からの前記イベントの信号に対処するように構成される。
【0040】
先行する態様および実施形態のいずれかの任意の特徴は、この態様の特徴であってもよい。特に、前記割り込み発生装置は、イベント発生装置であってもよい。したがって、イベント発生レジスタの内容に対する所定の変更を検出するように設定され、当該の所定の変更を検出すると、前記プログラマブル周辺機器相互接続器にイベントを伝えてもよい。これは、前述したようなイベント発生装置であってもよい。前記割り込み発生装置は、本明細書に記載された前記イベント発生装置の特徴のいずれかを有してもよい。前記プログラマブル周辺機器相互接続器(PPI)は、前述した前記PPIの特徴のいずれかを有してもよい。
【0041】
前記割り込み発生装置は、タスク回線によって前記プログラマブル周辺機器相互接続器に接続され、前記タスク回線を介して前記タスク信号を送信してもよい。その代わりに、
前記割り込み発生装置は、前記プログラマブル周辺機器相互接続器によって監視されるタスクレジスタに書き込んでもよい。
【0042】
前記イベント発生周辺機器は、イベント回線を介して前記プログラマブル周辺機器相互接続器にイベントを伝えるように構成してもよい。その代わりに、前記イベント発生周辺機器は、前記プログラマブル周辺機器相互接続器によって監視されるイベントレジスタに書き込んでもよい。
【0043】
前記割り込み発生装置は、タスク信号を受信するとすぐに、できれば前記タスク信号を受信してから所定の最大時間内か、タスク信号の受信後に一定時間遅延してから前記割り込みを送信するように設定されることが好ましい。
【0044】
前記マイクロコントローラは、前記プロセッサによって実行可能であって、前記イベント発生周辺機器のイベントから前記割り込み発生装置のタスクへのマッピング関係を前記マッピングメモリに格納する命令を含むソフトウェアを格納するメモリを備えてもよい。
【0045】
前記した態様のいずれかにおいて、前記イベント発生レジスタ(単数または複数)は前記イベント発生装置の一部であるが、前記マイクロコントローラでの物理的な位置を限定するものではないことが理解されるであろう。前記イベント発生レジスタは、例えば、バスを介して前記プロセッサからアドレス可能であることが好ましい。当該レジスタは、前記プロセッサによって書き込んだり読み出したりできることが好ましい。各イベント発生レジスタは、メモリの連続領域を占有してもよいし、複数の位置にわたって分散してもよい。本明細書で参照するレジスタは、(おそらく、より大きなビットフィールド内の)単一ビット長のみであってもよいし、複数のビット(例えば、32ビットワード)を含んでもよい。
【0046】
前記マイクロコントローラは、RAMおよび/またはフラッシュメモリなどの、揮発性および/または不揮発性メモリから成ることが好ましい。前記メモリの一部は、プログラムコードを格納してもよい。
【0047】
前記プロセッサは、任意の適切なプロセッサであればよい。いくつかの実施形態においては、 ARM(登録商標)のCortex(登録商標)シリーズのプロセッサなど、ARM(登録商標)からのプロセッサである。前記マイクロコントローラは、プロセッサバスおよび周辺機器用バスなど、複数のバスを備えてもよい。前記イベント発生装置は、一つ以上のバスに接続されることが好ましい。
【0048】
前記マイクロコントローラは、動作するためには、当然ながら、例えば水晶発振機、コンデンサなど、いくつかのオフチップ構成要素を必要としてもよいが、集積デバイスであることが好ましい。これらの構成要素は、前記マイクロコントローラの一部とみなすこともできるし、前記マイクロコントローラと区別できるものとみなすこともできる。
【0049】
前記割り込み発生装置や前記イベント発生装置は、前記マイクロコントローラ内で、前記プロセッサと区別できる、別個のハードウェアモジュールであることが好ましい。前記割り込み発生装置や前記イベント発生装置は、本明細書に記載された機能を提供するように設定され、トランジスタ、抵抗、コンデンサなどを含むアナログおよび/またはデジタル構成要素を備えてもよい。前記マイクロコントローラは、当然ながら、タスク回線やイベント回線によって前記プログラマブル周辺機器相互接続器に接続されない他の周辺機器を有してもよい。
【0050】
いくつかの実施形態において、前記マイクロコントローラは、無線送受信機を備える。これは、ラジオオンチップデバイスであってもよい。
【0051】
ここで、ほんの一例として、以下の添付図面を参照しながら、本発明の特定の好ましい実施形態を記載することにする。