JP5494925B2 - 半導体集積回路、情報処理装置およびプロセッサ性能保証方法 - Google Patents

半導体集積回路、情報処理装置およびプロセッサ性能保証方法 Download PDF

Info

Publication number
JP5494925B2
JP5494925B2 JP2009167503A JP2009167503A JP5494925B2 JP 5494925 B2 JP5494925 B2 JP 5494925B2 JP 2009167503 A JP2009167503 A JP 2009167503A JP 2009167503 A JP2009167503 A JP 2009167503A JP 5494925 B2 JP5494925 B2 JP 5494925B2
Authority
JP
Japan
Prior art keywords
processor
memory
request
wait
cycle
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2009167503A
Other languages
English (en)
Other versions
JP2011022814A (ja
Inventor
浩明 井上
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2009167503A priority Critical patent/JP5494925B2/ja
Publication of JP2011022814A publication Critical patent/JP2011022814A/ja
Application granted granted Critical
Publication of JP5494925B2 publication Critical patent/JP5494925B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Bus Control (AREA)

Description

本発明は、アービタを有する半導体集積回路、情報処理装置およびプロセッサの性能を統一的に保証する方法に関する。
近年、リアルタイム制御が必要となる装置においても複数のプロセッサを有する半導体集積回路が用いられている。しかしながら、あるプロセッサで任意のソフトウェアを動作させ、一方、その他のプロセッサでは新規に追加したソフトウェアを動作させた場合、新規に追加したソフトウェアが既に動作中のソフトウェアによる処理に干渉してしまう場合がある。その結果、単独プロセッサでは劣化することのなかったリアルタイム性が、複数プロセッサ構成では満足させることができなくなってしまう、という課題があった。
図11は、関連する半導体集積回路を示す図である。図11に例示した半導体集積回路では、複数のプロセッサ10100P1〜Pnと、バス10300と、アービタ10200と、メモリI/F10400と、10500とから構成される。アービタ10200は、バス10300での、複数のプロセッサによる性能干渉を防ぐために、あるプロセッサのアクセスを優先的に認める(後記特許文献1)。また、メモリI/F10400は、ある優先度の高いプロセッサからのアクセスが来て、かつ、前記プロセッサよりは優先度の低いプロセッサからのアクセスが既にメモリ10500を参照している場合、優先度の低いアクセスを中断して、優先度の高いプロセッサのアクセスを先行させる(後記特許文献2と3)。これにより、メモリアクセスに関わる性能干渉を低減することが可能である。
特願2005−190437号公報 特願平09−179773号公報 特許3108080号公報
しかしながら、図11に示した方式は、以下の問題点を有している。
全種類のメモリにおいて、アクセスの中断・再開が可能であるわけではないので、もし可能でないメモリの場合には、メモリアクセス動作が保証できない。このような中断・再開が不能であるメモリの一例としては、DRAM、DDRSRAM、一部のSRAMなどが挙げられる。
即ち、全ての種類のメモリや全ての種類のメモリアクセスに対して、統一的に、プロセッサの性能保証を実現することは上記技術では不可能である。
本発明の目的は、上記課題を解決し、全ての種類のメモリや全ての種類のメモリアクセスに対して、アービタとメモリI/Fが協調することで、サイクル単位という、細粒度でのプロセッサ性能保証を統一的に実現する装置及び方法を提供することにある。
本発明の半導体集積回路は、複数のプロセッサとバスとアービタとメモリI/Fとを備え、前記複数のプロセッサは、プロセッサ間に固定された順序関係を有し、前記メモリI/Fは、メモリI/F内で発生した待ちサイクルに関する情報を待ちサイクル情報として前記アービタへと通知し、前記アービタは、前記メモリI/Fからの待ちサイクル情報に応じて、優先度の高いプロセッサの待ちサイクル数が閾値を超えた場合に、前記優先度の高いプロセッサよりも優先度の低いプロセッサからの要求を、前記優先度が高いプロセッサで動作するソフトウェアに応じて予めめた該プロセッサの待ちサイクルの周期が過ぎるまで受理しないことを特徴とする。
本発明のプロセッサ性能保証方法は、複数のプロセッサに、プロセッサ間に固定された順序関係を設定し、前記複数のプロセッサの夫々について、メモリI/F内で発生した待ちサイクルを計測し、計測した値に基づき、優先度の高いプロセッサの待ちサイクル数が閾値を超えた場合に該プロセッサよりも優先度の低いプロセッサからの要求を、前記優先度が高いプロセッサで動作するソフトウェアに応じて予めめた該プロセッサの待ちサイクルの周期が過ぎるまで受理しないように、アービタを用いて前記複数のプロセッサ毎のメモリへのアクセスを制御することを特徴とする。
本発明によれば、全ての種類のメモリや全ての種類のメモリアクセスに対して、サイクル単位という、非常にきめ細かい単位でのプロセッサ性能保証を実現する装置及び方法を提供できる。
尚、無論、中断・再開が可能なメモリに対しては、優先度の高いプロセッサの性能を上記技術と同等に保証することが可能である。
本発明の一実施例の装置の構成を示す図である。 本発明の一実施例のメモリI/Fの構成を示す図である。 本発明の一実施例のメモリI/Fの動作を説明する図である。 本発明の一実施例のメモリI/Fの動作を説明する図である。 本発明の一実施例のメモリI/Fの動作を説明する図である。 本発明の一実施例のメモリI/Fの動作を説明する図である。 本発明の一実施例のアービタの構成を示す図である。 本発明の一実施例のアービタの動作を説明する図である。 本発明の一実施例のアービタの動作を説明する図である。 本発明の別の実施例のアービタの構成を示す図である。 関連する技術を用いる半導体装置の構成を示す図である。
以下、本発明を実施の形態について説明する。
本発明は、その好ましい一実施の形態の半導体集積回路(半導体集積装置)によれば、複数のプロセッサと、バスと、アービタと、メモリI/Fとを備え、アービタとメモリI/Fとが接続されている。メモリI/Fには、優先度に基づいたメモリアクセスの中断と再開を行う回路が設けられている。また、半導体集積回路は、メモリI/Fに所望のメモリを接続し、情報処理装置として使用される。
半導体集積回路は、動作時に、メモリI/Fで発生した待ちサイクルに応じて、プロセッサのアクセス権を制御するアービタのポリシーを変更する。
上記のように半導体集積装置を構成および動作させることによって、サイクル単位での、きめ細かいプロセッサの性能保証を実現する。
以下、実施例に即して説明する。
図1は、本発明の一実施例の装置の構成を説明する図である。図1における装置は、複数のプロセッサ100P0〜Pn、アービタ200、バス300、メモリI/F400、メモリ500とを有する。
プロセッサ100は、ここではロジックで構成された演算装置として定義する。したがって、CPU、アクセラレータやFPGAなど演算装置であれば何でも構わない。このプロセッサには動作させるソフトウェア(プログラム)に応じて、優先度で順位付けられる。優先度を例示すれば、エンジン制御において、プロセッサ100P0が燃焼制御を担当し、かつ、プロセッサ100P1が燃費改善計算を行うとした場合、プロセッサ100P0はプロセッサ100P1よりも優先度が高いとされる。その結果、この装置では、プロセッサ100P0の性能をサイクル単位で保証する。以降では、P0,P1,P2の順で優先度が高いと仮定する。
バス300とメモリ500は、一般のバス及びメモリであれば何でも構わない。
メモリI/F400は、メモリ500へのアクセスを制御し、さらに、メモリアクセスの中断・再開機能を備える。
装置は、中断・再開に関し、例えば、読出しから書込みへの切替に1サイクル必要であるといった、待ちサイクルを仕様として必要とされるメモリを利用する場合がある。あるいは、ロックアクセスなど、アクセスによっては待ちが生じる可能性がある。
メモリI/F400は、このような待ちが発生する場合において、その待ちサイクルをプロセッサ毎にカウントする。そして、そのカウントがある閾値になると、アービタ200へその情報(待ちサイクル情報)を通知する。当該通知は、バスラインと異なるラインから情報として送っても良いし、プロセッサ毎に要求不受理信号のラインを設けて電圧のhigh又はLowを用いて通知するようにしてもよい。
ここで、この待ちサイクルは、ある時間間隔で測定される。無論、移動平均などの処理を行った値でもよい。いずれにしても待ちサイクルは最高優先度のプロセッサに性能影響を与えるパラメータとして定義される。例えば、リアルタイムシステムにおいては、プロセッサで実行されるタスク周期の最大公倍数として知られるハイパー周期を持つため、それぞれのカウンタは、ハイパー周期毎に待ちサイクルをカウントすることとしてもよい。
すなわち、ある繰り返し周期において、待ちサイクルをカウントすることで、その周期内における待ち情報をサイクル単位できめ細かく測定することができる。
その結果、性能保証を行いたいプロセッサをサイクル単位で制御することが可能となる。
また、上記周期がすぎれば、その待ちをゼロにリセットし、待ちサイクル情報(又は要求不受理信号)を用いて通知を行なっている場合にはアービタ200への通知も取り消す。その後、新たな周期における待ちサイクルの計測を同様に繰り返す。周期や閾値の設定、待ちのリセットは、一般のタイマー装置をそのまま利用することができる。なお、アービタ200への通知タイミングは、閾値を超えた場合について説明したものの、無論、それより早めたりするなど、システムに応じて、いかようにも変更可能である。
アービタ200は、プロセッサからのアクセス要求に応じて、どのプロセッサにバスを割り当てるかを決める機能に加え、図11に示したアービタと異なり、メモリI/F400からの指示によって、その要求選択ポリシーを変更する。具体的には、メモリI/F400から指示(通知)があった場合に、閾値を超えたカウンタに対応するプロセッサの持つ優先度より低いプロセッサからのアクセス要求を受理しないように、バス300を制御する。
すなわち、優先度の低いプロセッサについては、バスへの入り口でアクセスを拒否する機能を持つことが大きな特徴である。これにより、バス以降であるメモリI/F内に、優先度の低いプロセッサからのアクセスが存在しないこととなる。このため、どのようなメモリであっても、優先度の高いプロセッサのアクセスが、それより低いプロセッサからのアクセスによって干渉されることなく、あらかじめ指定された閾値以上での待ちが発生することはない。
図2は、発明の一実施例のメモリI/F400の構成を示すブロック図である。メモリI/F400は、個々のプロセッサ(CPU)に対して、リード応答バッファ410P0〜Pn、リード要求バッファ420P0〜Pn、ライト要求バッファ430P0〜Pn、ライト応答バッファ440P0〜Pnを備え、加えて、リード要求選択部450、リード中断バッファ451、ライト要求選択部460、ライト中断バッファ461、待ちサイクルカウンタ470を備える。
リード要求バッファ420P0〜Pn、ライト要求バッファ430P0〜Pnは、各プロセッサからのバスアクセスを保存する。一方、リード応答バッファ410P0〜Pn、ライト応答バッファ440P0〜Pnは、受理したバスアクセスに対する応答を保存する。とりわけリードアクセスに関しては、メモリ500から読み出した値も保存する。これらのバッファは、一般のメモリI/Fが備える通常のバッファと同様である。
リード要求選択部450は、リード要求バッファ420P0〜Pnからの要求を優先度に基づいて選択して、実際にメモリ500へリードアクセスを発行する。つまり、リード要求選択部450では、CPU0(プロセッサ100P0)の要求は、CPU1(プロセッサ100P1)やCPU2(プロセッサ100P2)の要求よりも優先的に選択される。このとき、もし仮にCPU1のアクセスが既にメモリへ発行されている場合、リード要求選択部450は、そのアクセスをリード中断バッファ451へと保存し、そして、CPU0のアクセス要求を発行する。CPU0のアクセス要求の発行が終わったら、リード中断バッファ451の中で最大の優先度を持つアクセス、すなわち、さきほど保存したCPU1のアクセスを再開する。ここで、もし中断するにあたって待ちサイクルが必要となった場合には、待ちサイクル数を、待ちサイクルカウント470へと通知する。なお、メモリ500から読み出されたデータは、リード応答バッファ410P0〜Pnに蓄えられて、全てのデータの読出し完了後に該当するプロセッサに応答される。
ライト要求選択部460は、ライト要求バッファ430P0〜Pnからの要求を優先度に基づいて選択して、実際にメモリ500へライトアクセスを発行する。つまり、ライト要求選択部460では、CPU0の要求は、CPU1やCPU2の要求よりも優先的に選択される。このとき、もし仮にCPU1のアクセスが既にメモリへ発行されている場合、ライト要求選択部460は、そのアクセスをライト中断バッファ461へと保存し、そして、CPU0のアクセス要求を発行する。CPU0のアクセス要求の発行が終わったら、ライト中断バッファ461の中で最大の優先度を持つアクセス、すなわち、さきほど保存したCPU1のアクセスを再開する。ここで、もし中断するにあたって待ちサイクルが必要となった場合には、待ちサイクル数を、待ちサイクルカウント470へと通知する。なお、リード要求とは異なり、ライト要求選択部460は、ライト要求を受理した段階で、ライト応答バッファ440P0〜Pnに応答を保存する。無論、ライト要求バッファ430P0〜Pnで要求を受理した段階で応答を返してもよいし、ライト要求が実際に完了した段階で応答を返しても良い。いずれにせよ、従来と同じタイミングでライト応答を返せばよい。
リード中断バッファ451は、読出しアクセスに関し、例えば、残りの読出し長、読み出しサイズ、どこまでの読出しを終えたかを示すアドレス等の情報をプロセッサ毎に記憶する。一方、ライト中断バッファ461は、書込みアクセスに関し、例えば、残りの書込み長、書込みサイズ、どこまでの書込みを終えたかを示すアドレス等の情報をプロセッサ毎に記憶する。
待ちサイクルカウンタ470は、どのプロセッサ(CPU)からのアクセスにどれだけの待ちサイクルが生じているかを、それぞれのプロセッサ毎にカウントする。もしそのカウントがある閾値を越えた場合には、アービタ200へその情報を通知する。なお、先に述べたように、このカウンタは、それぞれのプロセッサ独立のある周期(例:ハイパー周期)で、その待ちサイクルをカウントする。即ち、ある周期を経過したら、待ちサイクルはリセットされ、その結果、もしアービタ200へ低優先度のプロセッサの要求を受理しないように通知している場合には 何も通知されなくなる。また、リード要求バッファ420P0〜Pn、ライト要求バッファ430P0〜Pn、に既に該当するプロセッサの要求が入っている場合には、その閾値の前にアービタ200へ通知してもよい。いずれにしても、指定された閾値が保証できるように、閾値以下の値を維持できるようなタイミングで通知する。なお、この周期や閾値は、事前に装置側が決めても良いし、ユーザからの設定で決めても良い。
図3は、メモリI/F400の動作の例を示す図である。図3において、矢印脇のSと数字からなる符合は、ステップ番号を表している。この例では、CPUnからのリード要求を処理する場合について説明する。
ステップ1(S1):メモリI/F400は、バス300を介してCPUnからリード要求を受理し、リード要求バッファ420Pnへと保存する。
ステップ2(S2):リード要求バッファ420Pnは、リード要求選択部450へ当該要求を渡す。
ステップ3(S3):リード要求選択部450は、メモリ500へ当該リード要求を発行する。
ステップ4(S4):メモリ500からの読出データを、リード応答バッファ410Pnへと保存する。
ステップ5(S5):リード応答バッファ410Pnは、当該要求への応答を、バス300を介してCPUnへと返す。
図4は、メモリI/F400の動作の例を示す図である。図4において、矢印脇のSと数字からなる符合は、ステップ番号を表している。この例では、CPUnからのリード要求を処理している最中に、優先度の高いCPU0からの要求を受理した場合について説明する。
ステップ1(S1):メモリI/F400は、バス300を介してCPUnからリード要求を受理し、リード要求バッファ420Pnへと保存する。
ステップ2(S2):リード要求バッファ420Pnは、リード要求選択部450へ当該要求を渡す。
ステップ3(S3):リード要求選択部450は、CPUnのリード要求をメモリへ発行する。
ステップ4(S4):メモリI/F400は、CPU0からリード要求を受理し、そして、リード要求バッファ420P0へと保存する。
ステップ5(S5):リード要求バッファ420P0は、リード要求選択部450へ当該要求を渡す。
ステップ6(S6):リード要求選択部450は、受理したリード要求が、既に発行しているリード要求よりも優先度が高いことを識別する。リード要求選択部450は、識別結果に基づき、先に発行したリード要求(CPUnの要求)で完了したところまでの情報をリード中断バッファ451へと保存する。
ステップ7(S7):リード要求選択部450は、要求の中断にあたり、待ちサイクルを待ちサイクルカウンタ470へと通知する。このとき、待ちサイクルがなければ通知は省略できる。このタイミングで閾値を超えた場合には、サイクルカウンタ470は、閾値を超えたプロセッサについてアービタ200へ通知を行う。
ステップ8(S8):リード要求選択部450は、CPU0のリード要求をメモリへ発行する。
ステップ9(S9):メモリ500からの読出データを、リード応答バッファ410P0へと保存する。
ステップ10(S10):リード応答バッファ410P0は、当該要求への応答を、バス300を介してCPU0へと返す。
ステップ11(S11):リード要求選択部450は、リード中断バッファ451からさきほど保存したCPUnのリード要求情報を受理する。
ステップ12(S12):リード要求選択部450は、プロセッサ100Pnのリード要求をメモリへ発行する。
ステップ13(S13):メモリ500からの読出データを、リード応答バッファ410Pnへと保存する。
ステップ14(S14):リード応答バッファ410Pnは、当該要求への応答を、バス300を介してCPUnへと返す。
図5は、メモリI/F400の動作の例を示す図である。図5において、矢印脇のSと数字からなる符合は、ステップ番号を表している。この例では、CPUnからのライト要求を処理する場合について説明する。
ステップ1(S1):メモリI/F400は、バス300を介してCPUnからライト要求を受理し、ライト要求バッファ430Pnへと保存する。
ステップ2(S2):ライト要求バッファ430Pnは、ライト要求選択部460へ当該要求を渡す。
ステップ3(S3):ライト要求選択部460は、メモリ500へ当該ライト要求を発行する。
ステップ4(S4):ライト要求選択部460の受理に伴い、当該ライト要求への応答をライト応答バッファ440Pnへと保存する。
ステップ5(S5):ライト応答バッファ440Pnは、当該要求への応答を、バス300を介してCPUnへと返す。
図6は、メモリI/F400の動作の例を示す図である。図6において、矢印脇のSと数字からなる符合は、ステップ番号を表している。この例では、CPUnからのライト要求を処理している最中に、優先度の高いCPU0からの要求を受理した場合について説明する。また、その受理によって、CPU0の待ちサイクルが規定値を超えてしまう場合を想定する。
ステップ1(S1):メモリI/F400は、バス300を介してCPUnからライト要求を受理し、そして、ライト要求バッファ430Pnへと保存する。
ステップ2(S2):ライト要求バッファ430Pnは、ライト要求選択部460へ当該要求を渡す。
ステップ3(S3):ライト要求選択部460は、CPUnのライト要求をメモリへ発行する。
ステップ4(S4):ライト要求選択部460の受理に伴い、当該ライト要求への応答をライト応答バッファ440Pnへと保存する。
ステップ5(S5):ライト応答バッファ440Pnは、当該要求への応答を、バス300を介して、CPUnへと返す。
ステップ6(S6):メモリI/F400は、CPU0からライト要求を受理し、そして、ライト要求バッファ430P0へと保存する。
ステップ7(S7):ライト要求バッファ430P0は、ライト要求選択部460へ当該要求を渡す。
ステップ8(S8):ライト要求選択部460は、受理したライト要求が、既に発行しているライト要求よりも優先度が高いことを識別する。ライト要求選択部460は、識別結果に基づき、先に発行したライト要求(CPUnの要求)で完了したところまでの情報をライト中断バッファ461へと保存する。
ステップ9(S9):ライト要求選択部460は、要求の中断にあたり、待ちサイクルを待ちサイクルカウンタ470へと通知する。このとき、待ちサイクルがなければ通知は省略できる。
ステップ10(S10):待ちサイクルカウント470は、ここでCPU0の待ちサイクルが規定の閾値以上になったことを検知してアービタ200へ通知する。無論、規定した値以下であれば、このステップは必要ない。
ステップ11(S11):ライト要求選択部460は、CPU0のライト要求をメモリ500へ発行する。
ステップ12(S12):ライト要求選択部460の受理に伴い、当該ライト要求への応答をライト応答バッファ440P0へと保存する。
ステップ13(S13):ライト応答バッファ440P0は、当該要求への応答を、バス300を介してCPU0へと返す。
ステップ14(S14):ライト要求選択部460は、ライト中断バッファ461からさきほど保存したCPUnのライト要求情報を受理する。
ステップ15(S15):ライト要求選択部460は、CPUnのライト要求をメモリ500へ発行する。
図7は、発明の一実施例のアービタ200の構成を示す図である。図7を参照すると、アービタ200は、要求受理部210と、選択部220とから構成される。
要求受理部210は、バス300を介して、プロセッサからのアクセス要求を受理して、選択部220によって定められるポリシーに応じて、バスの使用権を認めるプロセッサを決める。また、要求受理部210は、使用権を設定するプロセッサへその認可を通知する。
選択部220は、メモリI/F400からの通知を受理することに特徴を有する。即ち、選択部220は、図10に示した選択部と、メモリI/Fからの通知を受理するか否かに違いがある。
通常動作時、選択部220は、優先度の高いプロセッサを選択的に選ぶように要求受理部210へと通知する。一方、メモリI/F400から通知を受けると、選択部220は、該当する優先度未満のプロセッサからの要求は常時拒否するよう、要求受理部210へと通知する。したがって、要求受理部210が通知を受けた以降、該当する優先度未満のプロセッサは、バスに対する使用権の発行を受けられない。これにより、低優先度のプロセッサによって、高優先度のプロセッサのメモリI/Fでの待ちサイクルの発生を防ぐことができる。なお、この選択部220に、ラウンドロビンのような公平型の選択ポリシーを導入して、最高優先度のプロセッサが動的に切り替えてもよい。
図8は、アービタ200の動作の例を示す図である。図8において、矢印脇のSと数字からなる符合は、ステップ番号を表している。この例では、メモリI/F400(待ちサイクルカウンタ470)から通知がない場合の動作について説明する。
ステップ1(S1):アービタ200は、バス300を介してプロセッサ群からアクセス要求を受理する。
ステップ2(S2):選択部220は、アクセス要求の中で最高優先度を持つプロセッサへバスの使用権を許可するように、要求受理部210へと通知する。
ステップ3(S3):要求受理部210は、そのアクセス要求の中で最高優先度を持つプロセッサへバスの使用権を許可する。
図9は、アービタ200の動作の例を示す図である。図9において、矢印脇のSと数字(英字)からなる符合は、ステップ番号を表している。この例では、メモリI/F400(待ちサイクルカウンタ470)から通知があった場合の動作について説明する。
ステップin(S in):選択部220は、メモリI/F400から待ちサイクルが規定値を超えたとき通知を受理する。
ステップ1(S1):アービタ200は、バス300を介してプロセッサ群からアクセス要求を受理する。
ステップ2(S2):選択部220は、アクセス要求の中で最高優先度を持つプロセッサで、かつ、待ちサイクルの閾値を超えたプロセッサの持つ優先度以上であるプロセッサであれば、バスの使用権を許可するように、要求受理部210へと通知する。
ステップ3(S3):要求受理部210は、前記選択部220のポリシーに従って、プロセッサへバスの使用権を許可する。
具体例を説明すれば、アービタ200は、CPU1の待ちサイクルが閾値を超えてメモリI/F400から通知を受けた場合、CPU2からしかアクセス要求(S1)がない場合でも、CPU1の待ちサイクルの閾値を超えているため、CPU2からの要求を受理しない(S3)。他方、CPU0からのアクセス要求であれば、CPU0の優先度はCPU1よりも高いため、その要求は受理される。
以上に述べた実施例において、バス300の優先度制御によりバス300の出力結果を絞り、かつ、メモリI/F400での中断・再開機能により、万一メモリ500へと抜け出たアクセスも対処することができる。さらに、そのアクセスの中断・再開にオーバヘッドが発生する場合でも、アービタ200を制御することで、そもそもバス300の入り口でアクセスを絞ることが可能となる。即ち、サイクル単位での制御が可能である。
尚、上記実施例では、メモリI/F400内で、複数のプロセッサの夫々について、発生した待ちサイクルを計測し、アービタ200に待ちサイクル情報を通知することとしたが、図10に示すように計測をアービタ200内で行なってもよい。この場合は、メモリI/Fから待ちサイクルの有無を示す待ちサイクル情報がアービタ200に通知されるようにメモリI/Fを構成する。このように、アービタでプロセッサ毎に待ちサイクルを計測すれば、例えば、複数のプロセッサが接続された複数のメモリI/Fに対する統一的な優先度制御を実現できる。
以上説明したように、本発明によれば、全ての種類のメモリや全ての種類のメモリアクセスに対して、サイクル単位という、非常にきめ細かい単位でのプロセッサ性能保証を実現する装置及び方法を提供できる。
具体的には、中断・再開が不可能なメモリに対しても、優先度の高いプロセッサの性能を保証できる。また、中断・再開が可能なメモリに対しては、優先度の高いプロセッサの性能を劣化させることなく性能を保証できる。
なお、前記各実施例では、サイクル単位で、きめ細かい性能保証を統一的に行う装置及び方法を例に説明したが、本発明は、かかる装置および方法に限定されるものではなく、任意の装置および方法に適用可能である。
また、本発明を上記実施例に即して説明したが、本発明は、上記実施例の構成や動作にのみ限定されるものではなく、本発明の範囲内で当業者であればなしうることが可能な各種変形、修正を含むことはもちろんである。
本発明は、産業機器、車載システム、飛行機など、リアルタイム性が必要になる装置のマイコンに利用できる。また、MPUにも適用できる。
100P0,100P1,100Pn プロセッサ
200 アービタ
210 要求受理部
220 選択部
300 バス
400 メモリI/F
410P0,410Pn リード応答バッファ
420P0,420Pn リード要求バッファ
430P0,430Pn ライト要求バッファ
440P0,440Pn ライト応答バッファ
450 リード要求選択部
451 リード中断バッファ
460 ライト要求選択部
461 ライト中断バッファ
470 待ちサイクルカウンタ
500 メモリ
10100P0,10100P1,10100Pn プロセッサ
10200 アービタ
10300 バス
10400 メモリI/F
10500 メモリ

Claims (14)

  1. 複数のプロセッサとバスとアービタとメモリI/Fとを備え、
    前記複数のプロセッサは、プロセッサ間に固定された順序関係を有し、
    前記メモリI/Fは、メモリI/F内で発生した待ちサイクルに関する情報を待ちサイクル情報として前記アービタへと通知し、
    前記アービタは、前記メモリI/Fからの待ちサイクル情報に応じて、優先度の高いプロセッサの待ちサイクル数が閾値を超えた場合に、前記優先度の高いプロセッサよりも優先度の低いプロセッサからの要求を、前記優先度が高いプロセッサで動作するソフトウェアに応じて予めめた該プロセッサの待ちサイクルの周期が過ぎるまで受理しない
    ことを特徴とする半導体集積回路。
  2. 前記メモリI/Fは、前記複数のプロセッサの優先度に基づいたメモリアクセスの中断と再開を行う手段を有することを特徴とした請求項1に記載の半導体集積回路。
  3. プロセッサ間に固定された順序関係を有する複数のプロセッサと、
    メモリへのアクセスの中断および再開する手段を有し、更に、前記メモリへのアクセス、中断、および再開に関して生ずる待ちサイクルをプロセッサ毎にカウントして、閾値を超えたプロセッサの通知に用いる待ちサイクル情報を送出するメモリI/Fと、
    前記メモリI/Fからの待ちサイクル情報に基づき、通知された待ちサイクル数が閾値を超えた所定優先度のプロセッサよりも優先度の低いプロセッサからの要求を、前記所定優先度のプロセッサで動作するソフトウェアに応じて予めめた該プロセッサの待ちサイクルの周期が過ぎるまで受理しないようにアクセス権を制御するアービタと、
    前記複数のプロセッサと前記メモリI/Fと前記アービタとを接続するバスとを備え、
    前記メモリI/Fに、中断および再開が不能なメモリを接続していることを特徴とする情報処理装置。
  4. 前記メモリI/Fは、個々のプロセッサ毎に、夫々のプロセッサで動作するタスクの動作周期の最大公倍数の周期に準じて、前記メモリとの通信で生ずる待ちサイクルを計測し、各々の計測結果が所定の閾値を越えた場合に待ちサイクル情報を前記アービタに送出すると共に、前記夫々のプロセッサで動作するタスクの動作周期の最大公倍数の周期期間経過毎に、各々積算中の待ちサイクルをリセット処理する
    ことを特徴とする請求項3記載の情報処理装置。
  5. 前記メモリI/Fは、所定のプロセッサから受理したリード要求が、前記所定のプロセッサと異なるプロセッサからの既に発行しているリード要求よりも優先度が高いことを識別した場合に、先に発行したリード要求で完了したところまでの情報を中断バッファへ保存すると共に、要求の中断にあたり生ずる待ちサイクルを計測する待ちサイクルカウンタ回路を有する
    ことを特徴とする請求項3又は4記載の情報処理装置。
  6. 前記メモリI/Fは、所定のプロセッサから受理したライト要求が、前記所定のプロセッサと異なるプロセッサからの既に発行しているライト要求よりも優先度が高いことを識別した場合に、先に発行したライト要求で完了したところまでの情報を中断バッファへ保存すると共に、要求の中断にあたり生ずる待ちサイクルを計測する待ちサイクルカウンタ回路を有する
    ことを特徴とする請求項3又は4記載の情報処理装置。
  7. 前記メモリI/Fに、DRAM又はDDRSRAMを接続したことを特徴とする請求項3ないし6の何れか一項に記載の情報処理装置。
  8. 複数のプロセッサに、プロセッサ間に固定された順序関係を設定し、
    前記複数のプロセッサの夫々について、メモリI/F内で発生した待ちサイクルを計測し、
    計測した値に基づき、優先度の高いプロセッサの待ちサイクル数が閾値を超えた場合に該プロセッサよりも優先度の低いプロセッサからの要求を、前記優先度が高いプロセッサで動作するソフトウェアに応じて予めめた該プロセッサの待ちサイクルの周期が過ぎるまで受理しないように、アービタを用いて前記複数のプロセッサ毎のメモリへのアクセスを制御する
    ことを特徴とするプロセッサ性能保証方法。
  9. 前記メモリI/Fは、前記複数のプロセッサの優先度に基づいたメモリへのアクセスの中断および再開を行い、中断および再開に伴う待ちサイクルを計測する
    ことを特徴とした請求項8に記載のプロセッサ性能保証方法。
  10. 複数のプロセッサに、プロセッサ間に固定された順序関係を設定し、
    メモリI/Fに、メモリへのアクセスの中断および再開する手段と、前記メモリへのアクセス、中断、および再開に関して生ずる待ちサイクルをプロセッサ毎にカウントして、閾値を超えたプロセッサを示す情報を待ちサイクル情報として送出する回路を付与し、
    アービタに、前記メモリI/Fからの待ちサイクル情報に基づき、通知された待ちサイクル数が閾値を超えた所定優先度のプロセッサよりも優先度の低いプロセッサからの要求を、前記所定優先度のプロセッサで動作するソフトウェアに応じて予めめた該プロセッサの待ちサイクルの周期が過ぎるまで受理しないようにバスへのアクセス権を制御する回路を付与し、
    前記メモリI/Fに、メモリを接続する
    ことを特徴とするプロセッサ性能保証方法。
  11. 前記メモリI/Fは、個々のプロセッサ毎に、夫々のプロセッサで動作するタスクの動作周期の最大公倍数の周期に準じて、前記メモリとの通信で生ずる待ちサイクルを計測し、各々の計測結果が所定の閾値を越えた場合に待ちサイクル情報を前記アービタに送出すると共に、前記夫々のプロセッサで動作するタスクの動作周期の最大公倍数の周期期間経過毎に、各々積算中の待ちサイクルをリセット処理する
    ことを特徴とする請求項10記載のプロセッサ性能保証方法。
  12. 前記メモリI/Fは、所定のプロセッサから受理したリード要求が、前記所定のプロセッサと異なるプロセッサからの既に発行しているリード要求よりも優先度が高いことを識別した場合に、先に発行したリード要求で完了したところまでの情報を中断バッファへ保存すると共に、要求の中断にあたり生ずる待ちサイクルを計測する
    ことを特徴とする請求項10又は11記載のプロセッサ性能保証方法。
  13. 前記メモリI/Fは、所定のプロセッサから受理したライト要求が、前記所定のプロセッサと異なるプロセッサからの既に発行しているライト要求よりも優先度が高いことを識別した場合に、先に発行したライト要求で完了したところまでの情報を中断バッファへ保存すると共に、要求の中断にあたり生ずる待ちサイクルを計測する
    ことを特徴とする請求項10又は11記載のプロセッサ性能保証方法。
  14. 前記メモリとして、DRAM又はDDRSRAMを接続されることを特徴とする請求項8ないし13の何れか一項に記載のプロセッサ性能保証方法。
JP2009167503A 2009-07-16 2009-07-16 半導体集積回路、情報処理装置およびプロセッサ性能保証方法 Active JP5494925B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009167503A JP5494925B2 (ja) 2009-07-16 2009-07-16 半導体集積回路、情報処理装置およびプロセッサ性能保証方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009167503A JP5494925B2 (ja) 2009-07-16 2009-07-16 半導体集積回路、情報処理装置およびプロセッサ性能保証方法

Publications (2)

Publication Number Publication Date
JP2011022814A JP2011022814A (ja) 2011-02-03
JP5494925B2 true JP5494925B2 (ja) 2014-05-21

Family

ID=43632833

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009167503A Active JP5494925B2 (ja) 2009-07-16 2009-07-16 半導体集積回路、情報処理装置およびプロセッサ性能保証方法

Country Status (1)

Country Link
JP (1) JP5494925B2 (ja)

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60140148U (ja) * 1984-02-23 1985-09-17 株式会社明電舎 バスの優先制御装置
JPS63245551A (ja) * 1987-03-31 1988-10-12 Toshiba Corp マルチプロセツサシステムのメモリアクセス方式
JPH02110560A (ja) * 1988-10-20 1990-04-23 Konica Corp 印刷材料
JPH02166549A (ja) * 1988-12-21 1990-06-27 Mitsubishi Electric Corp 共有メモリ制御装置
JPH031263A (ja) * 1989-05-30 1991-01-07 Canon Inc 調停回路
JP2626510B2 (ja) * 1993-10-28 1997-07-02 日本電気株式会社 調停装置
JP2000132505A (ja) * 1998-10-27 2000-05-12 Matsushita Electric Ind Co Ltd バスアクセス方法および装置とその利用装置およびシステム
JP2002091903A (ja) * 2000-09-11 2002-03-29 Hitachi Ltd バスシステム
JP2007304908A (ja) * 2006-05-12 2007-11-22 Sharp Corp データ転送処理装置

Also Published As

Publication number Publication date
JP2011022814A (ja) 2011-02-03

Similar Documents

Publication Publication Date Title
JP3699833B2 (ja) メモリアーキテクチャーのための優先符号化及び復号化
CN102567109B (zh) 中断分配方案
EP3238080B1 (en) Guaranteed quality of service in system-on-a-chip uncore fabric
EP2558944B1 (en) Methods of bus arbitration for low power memory access
JP4457168B2 (ja) 資源要求調停装置、資源要求調停方法、及び、コンピュータプログラム
US7213084B2 (en) System and method for allocating memory allocation bandwidth by assigning fixed priority of access to DMA machines and programmable priority to processing unit
US10133670B2 (en) Low overhead hierarchical connectivity of cache coherent agents to a coherent fabric
US7500038B2 (en) Resource management
US6393505B1 (en) Methods and apparatus for data bus arbitration
US20160239442A1 (en) Scheduling volatile memory maintenance events in a multi-processor system
US7035277B1 (en) Priority-based arbitration system for context switching applications
EP3770759A1 (en) Wake-up and scheduling of functions with context hints
CN109933549B (zh) 一种适用于risc-v处理器的中断控制器
JP4659008B2 (ja) ホスト負荷調整機能付周辺回路
US11662948B2 (en) Norflash sharing
US8140728B1 (en) Data packet arbitration system
EP3256952B1 (en) Systems and methods for providing kernel scheduling of volatile memory maintenance events
US7099972B2 (en) Preemptive round robin arbiter
JP5494925B2 (ja) 半導体集積回路、情報処理装置およびプロセッサ性能保証方法
US6105082A (en) Data processor used in a data transfer system which includes a detection circuit for detecting whether processor uses bus in a forthcoming cycle
JP4151362B2 (ja) バス調停方式、データ転送装置、及びバス調停方法
EP3238085B1 (en) Virtual legacy wire
JP2016151949A (ja) Dmaコントローラ
JP2004005589A (ja) 資源要求調停装置、資源要求調停方法、及び、コンピュータプログラム
US7747806B2 (en) Resource use management device, resource use management system, and control method for a resource use management device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120604

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130201

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130306

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130424

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130710

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130905

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140205

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140218

R150 Certificate of patent (=grant) or registration of utility model

Ref document number: 5494925

Free format text: JAPANESE INTERMEDIATE CODE: R150

Country of ref document: JP