本発明は、添付図面によって、一例として例示されるものであって、これらによって限定されるものではない。図面では、同様な参照符号は、同様な構成要素を示す。
図面の構成要素は、簡単明瞭に示されており、必ずしも縮尺通りに描かれていないことを当業者は認識されよう。例えば、図面の構成要素の中には、本発明の実施形態の理解を改善する一助とするために、他の構成要素と比較して寸法を誇張したものがある。
本明細書で用いる用語「バス」は、データ、アドレス、制御、又はステータス等、1つ又は複数の様々なタイプの情報を伝達するために用い得る複数の信号又は配線を参照するために用いる。本明細書で記載される配線は、単一の配線、複数の配線、単方向の配線、又は双方向の配線を参照するものとして例示され、説明される。しかしながら、異なる実施形態では、配線の実装を変更してもよい。例えば、双方向の配線以外に別個の単方向の配線を用いてもよく、また、その逆であってもよい。更に、複数の配線は、直列にあるいは時分割多重方式で多数の信号を伝達する単一の配線で置き換えられ得る。同様に、多数の信号を搬送する単一の配線は、これらの信号の一部を搬送する様々な異なる配線に分離され得る。従って、信号を伝達するための多くの選択肢が存在する。
図1は、データ処理システム10の一実施形態を示す。データ処理システム10には、マスタ12(相互接続マスタ12とも称される)と、マスタ14(相互接続マスタ14とも称される)と、メモリ・アレイ・コントローラ36と、システム相互接続22と、I/O回路16と、周辺装置18と、他のスレーブ20と、メモリ・アレイ35と、が含まれる。マスタ12は、配線48を介してシステム相互接続22に双方向接続され、マスタ14は、配線50を介してシステム相互接続22に双方向接続され、I/O回路は、配線52を介してシステム相互接続22に双方向接続され、周辺装置18は、配線54を介してシステム相互接続22に双方向接続され、他のスレーブ20は、配線56を介してシステム相互接続22に双方向接続され、メモリ・アレイ・コントローラ36は、配線24を介してシステム相互接続22に双方向接続される。配線24には、マスタ識別子26、アドレス/データ27、R/W信号28、バースト信号30、命令/データ信号32、及び他の信号34を伝達するための配線が含まれる。メモリ・アレイ・コントローラ36には、制御レジスタ38、プリフェッチ回路40、及びバッファ群42が含まれ、また、配線33を介してメモリ・アレイ35に双方向接続される。制御レジスタ38は、プリフェッチ回路40に接続され、プリフェッチ回路40は、バッファ群42に接続される。バッファ群42には、バッファ44及びバッファ46が含まれる。図1には、1つの周辺装置18のみを示すが、データ処理システム10には、システム相互接続22に接続される任意の数の周辺装置を含めてもよい。同様に、任意の数のマスタ及びスレーブをシステム相互接続22に接続してよく、図1に示すものに制限されない。また、一実施形態において、データ処理システム10の全てを、単一の集積回路上に又は同じ装置内に配置し得ることに留意されたい。他の選択肢として、データ処理システム10には、互いに相互接続された任意の数の別個の集積回路又は別個の装置が含まれていてもよい。例えば、一実施形態において、メモリ及びメモリ・コントローラ(例えば、メモリ・アレイ35及びメモリ・アレイ・コントローラ36等)は、データ処理システム10の他の部分から分離して、1つ又は複数の集積回路上に配置されてもよい。
一実施形態において、バス・マスタ12及びバス・マスタ14は、マイクロプロセッサ、デジタル信号プロセッサ等の命令を実行可能なプロセッサであってよく、あるいは、直接メモリ・アクセス(DMA:Direct Memory Access)回路又はデバッグ回路等のいずれか他のタイプの相互接続マスタであってもよい。周辺装置18は、ユニバーサル非同期型送受信機(UART:Universal Asynchronous Receiver Transmitter )、リアル・タイム・クロック(RTC:Real Time Clock )、キーボード・コントローラ等の任意のタイプの周辺装置であってもよい。他のスレーブ20は、例えば、マスタ12及び14によってアクセス可能なメモリ等、任意のタイプの相互接続スレーブを含み得ること、また更に、周辺装置18と同じタイプの周辺装置等、システム・バス上に常駐する任意のタイプの周辺装置を含み得ることに留意されたい。I/O回路16は、データ処理システム10の外部の情報を受信又は提供する任意のタイプのI/O回路を含み得る。
例示した実施形態において、メモリ・アレイ・コントローラ36及びメモリ・アレイ35は、システム相互接続22に接続された他のスレーブに対応する。他の実施形態において、メモリ・アレイ35は、任意の数のアレイを含み得ることに留意されたい。また、他の実施形態において、メモリ・アレイ35は、システム相互接続22に接続された少なくとも2つのマスタ(例えば、マスタ12及び14等)によって共有される記憶装置であることから、共有記憶装置35と呼称され得ることに留意されたい。メモリ・アレイ35は、マスタ12及び14と同じ集積回路又は別個の集積回路に配置され得る。更に、メモリ・アレイ35は、例えば、読出し専用メモリ(ROM:Read Only Memory)、ランダム・アクセス・メモリ(RAM:Random Access Memory)、不揮発性メモリ(例えば、フラッシュ・メモリ)等の任意のタイプのメモリであってよい。また、メモリ・アレイ35は、メモリ、又は他の周辺装置又はスレーブ内に配置される他の記憶装置であってよい。
システム相互接続22は、マスタ12、マスタ14、I/O回路16、周辺装置18、他のスレーブ20、及びメモリ・アレイ・コントローラ36を相互接続する。一実施形態において、図1に示すように、システム相互接続22は、システム・バス・プロトコルにより動作するシステム・バスとして実装される。他の選択肢として、システム相互接続22は、例えば、様々な装置間において情報をルーティングするスイッチング回路等の相互接続回路を用いて実装され得る。
動作時、マスタ12及び14は、システム相互接続22のアクセスを要求して、他のスレーブ20に対して、周辺装置18に対して、あるいはメモリ・アレイ・コントローラ36を介してメモリ・アレイ35に対してアクセスを要求する。要求側マスタは、システム相互接続22を介して、メモリ・アレイ・コントローラ36にアクセス要求を提供し得る。アクセス要求は、例えば、データ又は命令のいずれかに対する読出し要求又は書込み要求であってもよい。メモリ・アレイ・コントローラ36は、読出しアクセス要求に応答して、要求された情報(データ又は命令)を、システム相互接続22を介して、要求側マスタに提供する。要求側マスタからの読出しアクセス要求は、要求時フェッチとも呼称されることに留意されたい。一実施形態において、アクセス要求に対して、マスタ識別子26がメモリ・アレイ・コントローラ36に提供され、これによって、どのマスタが現アクセスを要求しているかが識別される。また、R/W信号28は、メモリ・アレイ・コントローラ36に提供され、現アクセス要求が、読出しタイプのアクセスであるのか、あるいは書込みタイプのアクセスであるのかを示す。バースト信号30は、メモリ・アレイ・コントローラ36に提供され、現アクセス要求が、バースト・タイプのアクセスであるのか、あるいは非バースト・タイプのアクセスであるのかを示す。例えば、非バースト・タイプのアクセスは、単一ビート読出し又は書込みを含み得る。命令/データ信号32は、メモリ・アレイ・コントローラ36に提供され、現アクセス要求が命令用であるのか、あるいはデータ用であるのかを示す。また、メモリ・アレイ・コントローラ36は、現アクセス要求に対応するアドレス情報を受信し、アドレス/データ27を介して、要求された情報を提供する。メモリ・アレイ・コントローラ36との通信を行うために必要な他のあらゆる信号は、他の信号34によって提供され得る。
一実施形態において、メモリ・アレイ35とメモリ・アレイ・コントローラ36との間における配線33の幅は、システム相互接続22の幅より大きい。例えば、一実施形態において、システム相互接続22は、配線33の幅のわずか4分の1であり、このことは、単一のバースト・トランザクションの4つのデータ又は命令項目を、メモリ・アレイ35からの単一のアクセスで取得し得ることを意味する。例えば、システム相互接続22及びデータ又は命令項目は、わずかに64ビット幅であるが、配線33は、256ビット幅であってもよい。しかしながら、また、一般的に、メモリ・アレイ35から情報を取り出すためのアクセス時間は、システム相互接続22に接続された他の周辺装置、スレーブ、又はマスタと比較して、非常に長い(例えば、4〜5倍長い)ことに留意されたい。従って、アクセス時間を低減するために、メモリ・アレイ・コントローラ36は、メモリ・アレイ35から情報をプリフェッチし、その情報をバッファ群42内に記憶し得る。
例えば、一実施形態において、プリフェッチ回路40は、一例として、各々、256ビット幅であり得るバッファ44及びバッファ46等のバッファ群42へメモリ・アレイ35からの情報をプリフェッチし得る。従って、要求側マスタからのアクセス要求に応答して、メモリ・アレイ・コントローラ36は、一般的に、バッファ群42と比較してアクセス時間が長いメモリ・アレイ35から情報をフェッチしなければならないこと以外に(情報が既にプリフェッチされているならば)要求された情報をバッファ群42から提供することができる。一実施形態において、プリフェッチ回路には、バッファ44及び46の各々に対応するタグ部(図示せず)、及び現アクセス要求において要求されている情報が、バッファ44及び46のうちの1つに既に配置されているか否かを判断するための比較回路(図示せず)が含まれる。例えば、プリフェッチ回路は、アドレス/データ27を介した現アクセス要求に対応する着信アドレスとタグ部とを比較して、既に情報がプリフェッチされているか否かを判断することができる。プリフェッチされていない場合、メモリ・アレイ・コントローラ36は、要求された情報をメモリ・アレイ35から提供する。
例示した実施形態においては、2つのバッファが示されている(バッファ44及びバッファ46)。しかしながら、他の実施形態において、バッファ群42は、任意の数の(1つ又は複数の)バッファを含み得る。一実施形態において、プリフェッチ回路は、メモリ・アレイ35からバッファ44及び46のうちの一方に情報をプリフェッチし、その間、バッファ44及び46のうちの他方から要求側マスタに情報を提供し得る。即ち、複数のバッファを用いると、少なくとも部分的には、要求側マスタからのアクセス要求に対応すると同時に、メモリ・アレイ35へのプリフェッチを行い得る。また、一実施形態において、バッファは、配線33と同じ幅を有し得るが、他の実施形態において、その幅は、異なっていてもよいことに留意されたい。
メモリ・アレイ35にアクセスして要求側マスタからのアクセス要求に応答することに比べて、バッファ群42から情報提供すると、アクセス時間が低減されることから、その後要求される情報をメモリ・アレイ35からバッファ群42にプリフェッチすることが望ましい。しかしながら、プリフェッチ処理は、プリフェッチされた情報がマスタによって実際に要求されるか否かを断定できないという点において、不確かであることに留意されたい。プリフェッチされた情報が、その後要求されないならば、プリフェッチは、無駄なプリフェッチになり、余分な電力が消費され、性能が低下する。一実施形態において、プリフェッチ処理は、また、(マスタによって実際に要求されるものなどの、不確かでない)要求時フェッチを妨害し得る。例えば、プリフェッチの間、要求側マスタからの要求時フェッチは、それが対応されるまで、プリフェッチの完了を待たねばならず、従って、要求時フェッチの待ち時間が長くなり、平均アクセス待ち時間が長くなる。更に、そのプリフェッチが、無駄なプリフェッチになると、プリフェッチに用いられた時間が無用に浪費され、従って、更に、平均アクセス待ち時間が長くなる。従って、本発明の一実施形態は、平均アクセス待ち時間を低減するために、バッファ群42への不確かなデータのプリフェッチ処理を制御する。
引き続き図1において、プリフェッチ回路40は、制御レジスタ38に基づき、バッファ群42へのプリフェッチ処理を選択的に制御し得る。例えば、一実施形態において、プリフェッチ回路40は、制御レジスタ38に基づき、(マスタ12又は14等の)要求側マスタからのメモリ・アレイ35へのアクセス要求によってトリガされるプリフェッチ動作を決定する。従って、異なるタイプのプリフェッチ動作は、異なるタイプのアクセス属性によってトリガされ得るが、これら属性は、例えば、どのマスタがアクセスを要求しているか、アクセス要求が部分的にバースト・アクセスであるか否か、アクセス要求がデータ用であるか、あるいは命令用であるか、もしくは、それらの任意の組合せ、を含み得る。従って、現アクセス要求(即ち、現要求時フェッチ)に対応するマスタ識別子26、R/W信号38、バースト信号30、及び命令/データ信号32の値、及び制御レジスタ38に基づき、プリフェッチ回路40は、現アクセス要求によってトリガされるプリフェッチ動作を決定する。
図2は、各マスタ用の1つのデータ・プリフェッチ・イネーブル(DPEN:Data Prefetch Enable)フィールド及び1つの命令プリフェッチ・イネーブル(IPEN:Instruction Prefetch Enable )フィールドが含まれる制御レジスタ38の一実施形態を示す。例えば、図2に示すように、制御レジスタ38には、マスタ12DPENフィールド60、マスタ14DPENフィールド62、マスタ12IPENフィールド64、及びマスタ14IPENフィールド66が含まれる。従って、他の実施形態において、制御レジスタ38には、所望のプリフェッチ制御情報を記憶するために、必要に応じていくらかのフィールドを含み得る。また、制御レジスタ38は、システム相互接続22に接続されたマスタ12又は14等のマスタからの命令を介して、プログラムされ得ることに留意されたい。これらの値を、例えば、ユーザが提供したり、設計時、プログラム化したりしてもよい。
図3は、図2の制御レジスタ38におけるフィールド定義の一実施形態を示す。例えば、一実施形態において、各フィールド60,62,64,66は、2ビット・フィールドであり、ここで、各フィールドは、4つの値(00,01,10,11)を持つことが可能である。図3で説明するように、DPENフィールド60及び62は、どのマスタが、アクセスを要求したか、また、データ読出しアクセスよって起動されたプリフェッチ処理をイネーブルするか、あるいはディスエーブルするかに基づき、データ・プリフェッチ動作がトリガされるか否かを制御するために用いられる。(どのマスタがアクセスを要求したか決定するために用いられ得る)マスタ識別子は、例えば、図1のマスタ識別子26によって提供される。一実施形態において、マスタ12は0の識別子を有し、マスタ14は1の識別子を有し得る。従って、各マスタには、固有の識別子が割り当てられ得る。他の実施形態において、幾つかのマスタは、同じ識別子を共有し得る。また、他の実施形態において、どのマスタがアクセスを要求しているかは、マスタ識別子26等の信号を提供すること以外の様々な方法で決定され得ることに留意されたい。
図3の例において、各DPENフィールド60及び62は、2ビット・フィールドであり、ここで、00の値は、プリフェッチ処理が、対応するマスタからのデータ読出しアクセスによってトリガされていないことを示す。即ち、マスタ12DPENフィールド60が00に設定されているならば、プリフェッチ処理は、マスタ12からのデータ読出しアクセスによってトリガされていない。同様に、マスタ14DPENフィールド62が00に設定されているならば、プリフェッチ処理は、マスタ14からのデータ読出しアクセスによってトリガされていない。現アクセス要求が読出し要求であるのか、あるいは書込み要求であるのかは、R/W信号28によってプリフェッチ回路40に示され得ること、また、現アクセス要求がデータ用であるのか、あるいは命令用であるのかは、命令/データ信号32によってプリフェッチ回路に示され得ることに留意されたい。DPENフィールド60及び62の01の値は、プリフェッチ処理が、対応するマスタからのデータ・バースト読出しアクセスのみによってトリガされ得ることを示す。即ち、マスタ12DPENフィールド60が01に設定されているならば、プリフェッチ処理は、マスタ12からのデータ・バースト読出しアクセスのみによってトリガされ得る。現アクセスがバースト読出しアクセスであるか否かは、バースト信号30によって、プリフェッチ回路40に示され得る。DPENフィールド60及び62の11の値は、プリフェッチ処理が、対応するマスタからの任意のデータ読出しアクセスによってトリガされ得ることを示す。即ち、マスタ12DPENフィールド60が11に設定されているならば、プリフェッチ処理は、マスタ12からの任意のデータ読出しによってトリガされ得る。(本実施形態において、10の値は予備の値であり、プリフェッチ動作を設定するために用いられていないことに留意されたい。)従って、マスタ12からのデータ・アクセス要求によってトリガされたメモリ・アレイ35からのデータ・プリフェッチ動作は、DPENフィールド60に基づき、決定され制御され得る。また、本明細書に用いられるデータ・プリフェッチ動作は、プリフェッチを選択的に実施すること、あるいはプリフェッチを実施しないことを含み得ることに留意されたい。
図3の例において、各IPENフィールド64及び66は、2ビット・フィールドであり、ここで、00の値は、プリフェッチ処理が、対応するマスタからの命令読出しアクセスによって、トリガされていないことを示す。即ち、マスタ12IPENフィールド64が00に設定されるならば、プリフェッチ処理は、マスタ12からの命令読出しアクセスによってトリガされていない。再度、上述したように、R/W信号28及び命令/データ信号32は、現アクセスが読出しアクセスであるのか、あるいは書込みアクセスであるのか、現アクセスが命令を要求しているのか、あるいはデータを要求しているのかを、プリフェッチ回路40に示すために用いられ得る。IPENフィールド64及び66の01の値は、プリフェッチ処理が、対応するマスタからの命令バースト読出しアクセスのみによってトリガされ得ることを示す。即ち、マスタ12IPENフィールド64が01に設定されているならば、プリフェッチ処理は、マスタ12からの命令バースト読出しアクセスのみによってトリガされ得る。IPENフィールド64及び66の11の値は、プリフェッチ処理が、対応するマスタからの任意の命令読出しアクセスによってトリガされ得ることを示す。即ち、マスタ12DPENフィールド60が11に設定されているならば、プリフェッチ処理は、マスタ12からの命令読出しアクセスによってトリガされ得る。従って、マスタ12からの命令アクセス要求によってトリガされたメモリ・アレイ35からの命令プリフェッチ動作は、IPENフィールド64に基づき、決定され制御され得る。また、本明細書に用いられる命令プリフェッチ動作には、プリフェッチを選択的に実施すること、あるいはプリフェッチを実施しないことを含み得ることに留意されたい。
他の実施形態において、制御レジスタ38には、必要に応じて、いくらかのビットを有する各マスタ用のいくらかのフィールドを含み得ることに留意されたい。また、図3において説明した制御レジスタ38のフィールドの設定値は、例として提供されている。他の実施形態は、図3において提供されたものとは異なる属性、図3のものよりも多くの属性、又は図3におけるもののうちの一部に基づき、データ・アクセス要求、命令アクセス要求、又は双方のうちのいずれかによってトリガされるプリフェッチ動作を決定し得る。例えば、一実施形態において、プリフェッチは、現時点でアクセスを要求しているマスタの識別子のみに基づき、トリガされ得る。他の選択肢として、プリフェッチは、現在アクセスを要求しているマスタの識別子にかかわらず、アクセス要求がバースト・アクセスであるのか、あるいは非バースト・アクセスであるのかのみに基づき、トリガされ得る。また、他の実施形態において、現アクセス要求の特定の属性は、図1に示す信号28,30,32による方法以外の様々な方法で、プリフェッチ回路40に示され得ることに留意されたい。
図4は、本発明の一実施形態に基づくデータ処理システム10の動作をフロー図形式で示す。フロー70は、開始72で始まり、ブロック74に進み、ここで、マスタからのアクセス要求を受信する。このアクセス要求は、読出し要求、書込み要求、バースト要求、非バースト要求、データ要求、命令要求等の多くの異なるタイプの要求であってもよい。次いで、フローは、ブロック76に進み、ここで、要求側マスタの識別子を判断する。例えば、図1の実施形態において、このことは、マスタ識別子26を提供することによって行われる。次いで、フローは、ブロック78に進み、ここで、アクセス要求がデータ用であるのか、あるいは命令用であるのかを判断する(このことは、一実施形態において、命令/データ信号32を提供することによって行われる)。次いで、フローは、ブロック80に進み、ここで、アクセス要求が、バースト・アクセスであるのか、あるいは非バースト・アクセスであるのかを判断する(このことは、一実施形態において、バースト信号30を提供することによって行われる)。次いで、フローは、ブロック82に進み、ここで、ブロック76,78,80において決定されたアクセス属性に基づき、プリフェッチ処理動作を決定する。即ち、ブロック82において、プリフェッチ処理は、制御レジスタ38における要求側マスタに対応する少なくとも1つのフィールドに基づき、選択的に行われる。例えば、アクセス要求がマスタ12からであると判断され、かつ、アクセス要求が命令用であるのならば、そのアクセス要求によってトリガされるプリフェッチ動作は、マスタ12IPENフィールド64内の制御情報によって決定されるように実施される。次いで、フローは、終了84において終了する。
他の実施形態において、フロー70は、ブロック76,78,80のうちの1つ又は2つのブロックのみを含み得ることに留意されたい。例えば、プリフェッチ処理が、要求側マスタの識別子のみに基づくように、もしくは、アクセスがバースト・アクセスであるのか、あるいは非バースト・アクセスであるのかのみに基づくように、ブロック76,78,80のうちのブロック76のみ又はブロック80のみが存在し得る。他の選択肢として、選択的プリフェッチ処理が、ブロック76,78,80に対応するものよりも多くの属性に基づくように、フロー70は、より多くの決定を含み得る。
従って、性能を向上できるように、また、無駄なプリフェッチを最小限に抑えられるように、様々なタイプのアクセス属性に基づき、如何にしてプリフェッチ動作がトリガされるのかを理解されたであろう。本明細書に説明した実施形態を用いて、様々な異なる方法及び用途において、アクセス要求によってトリガされるプリフェッチ動作を制御し得る。例えば、一実施形態において、命令を実行するプロセッサによって(例えば、中央処理装置(CPU:Central Processing Unit )によって)なされる命令アクセス要求にプリフェッチトリガ動作を制限することは、有益であり得る。このことは、命令フェッチは、一般的に、順次的であるが、データ・フェッチは、ランダムに分散し得ることによる。従って、本例において、制御レジスタ38は、プロセッサからの命令アクセス要求のみがプリフェッチをトリガするように、設定され得るが、これは、命令が一般的に順次的であることから、このプリフェッチが無駄にならない可能性が高いからである。更に、多くの制御コード用途において(例えば、車両用途において)、分岐でさえ一般的に順次的に見えるが、これは、分岐は、一般的に、依然として(一実施形態において、256ビットである)バッファ・プリフェッチ・サイズに収まる短い前方分岐であるためである。従って、制御レジスタ38内のフィールドを用いて、この選択的プリフェッチ方式を実現し得る。
他の例において、直接メモリ・アクセス(DMA:Direct Memory Access)装置が要求側マスタである場合、データ・プリフェッチ処理は、通常、DMAが、順次的であるブロック・データの移動処理等のデータ伝達を実施しているため、有利なことがある。従って、制御レジスタ38内のフィールドは、DMAからのデータ・アクセス要求がメモリ・アレイ35へのプリフェッチをトリガするように、設定され得る。更に他の例において、デバッグ動作を実施可能なデバッグ回路が要求側マスタである場合(この場合、デバッグ回路は、システム相互接続22に接続されたマスタであっても、あるいは、システム相互接続22に接続されたマスタ内に常駐していてもよい)、他のマスタ又はシステム全般との干渉は一般的に望ましくないことから、プリフェッチ処理を全て抑制することが望ましい。即ち、デバッグの場合、システムに対する影響を最小限にすると、デバッグ処理の精度は、通常、向上する。更に、デバッグ動作の間の性能は、一般的に重要ではない。
更に他の例において、現読出しアクセスが単一ビート読出しであるのならば、バッファ群(バッファ44及び46等)がオペランド又はデータサイズより広い場合、最初の要求時フェッチによって、多数のデータ又は命令項目がフェッチされることから、プリフェッチ処理をディスエーブルすることが望ましい。即ち、例えば、一実施形態において、バッファは、256ビット幅であり、これによって、バッファにロードされた元の情報を保持するために用いられるバッファにおいて、順次的アクセス(例えば、順次的単一ビート読出し)がヒットするように、多数の命令又はデータ項目を保持する。この場合、プリフェッチは、恐らく次のプリフェッチ・ラインは必要とされないことから、無駄である。
本明細書において、具体的な実施形態を参照して、本発明について説明した。しかしながら、当業者が理解されるように、以下の請求項に記載した本発明の範囲から逸脱することなく、様々な修正及び変更が行われ得る。したがって、明細書及び図面は、限定的でなく例示的であると見なすものとし、また、そのような全ての修正は、本発明の範囲内に含まれるものとする。
恩恵、他の利点、及び問題の解決策について、具体的な実施形態を基に上述した。しかしながら、これらの恩恵、利点、問題の解決策、及び何らかの恩恵、利点、又は解決策を生じさせるか、あるいはより顕著にさせる如何なる構成要素も、全ての請求項の重要な、必要な、若しくは不可欠な特徴又は構成要素として解釈してはならない。本明細書に用いた用語「“a ”又は“an”(不定冠詞)」は、1つ又は1つ以上と定義する。本明細書に用いた用語「“including ”(含んでいる)」及び/又は「“having”(有している)」は、「“comprising”(備えている)」(即ち、オープン・ランゲージ)と定義する。本明細書に用いた用語「“comprises ”(備える)」、「“comprising”(備えている)」又はその派生語は、非排他的な包括を網羅するものであり、一連の構成要素を含むプロセス、方法、物、又は装置が、これらの構成要素だけでなく、明示的に列記されていない他の構成要素や、このようなプロセス、方法、物、又は装置に固有の他の構成要素も含み得る。