説明

半導体集積回路装置

【課題】システムのリアルタイム性能を向上させる。
【解決手段】CPU(103)と、上記CPUに結合されたバス(106)と、それぞれ上記バスを使用してデータ通信を行い得る複数の通信モジュール(108A,108B,108C)と、上記各通信モジュールからの要求に応じた処理を上記通信モジュール毎の優先度に従って実行する回路(104,105)とが設けられる。そして上記通信モジュール毎の通信待ち時間に応じて上記優先度を調整するための通信モニタ(111A)が設けられる。最も通信待ち時間が長い通信チャネルから順に処理を実行させることにより、システムのリアルタイム性能を向上させる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、半導体集積回路装置、特に複数の通信モジュールを含むマイクロコンピュータに適用して有効な技術に関する。
【背景技術】
【0002】
特許文献1には、各通信ポートに装備されたコミュニケーションプロセッサにより各々処理されたデータを次段のメインプロセッサに転送するための転送順番の調停を行い、メインプロセッサに対するデータ転送や複数の通信ポートの受信処理制御の効率をよくするための技術が記載されている。それによれば、作図データを解析処理するコミュニケーションプロセッサ、およびその動作プログラムを格納するローカルメモリと処理されたデータを格納するデータバッファ、さらに各コミュニケーションプロセッサからのデータ転送要求信号を調停してデータバッファの作図データをメインプロセッサに転送する順序を選択するポートアービタと、ポートアービタからの調停通知により次の作図処理を行うメインプロセッサが設けられる。
【0003】
特許文献2には、複数のホストコンピュータからの画像データを出力手段により印字出力する受信データ制御装置において、ホストコンピュータの開放を早くすると共に、オーバーフローを抑制して、処理効率の向上および経済性を向上させるための技術が記載されている。それによれば、複数のホストコンピュータと各々対応して設けられた受信インターフェイスと、受信インターフェイスで受信した画像データを格納するデータ受信バッファと、各々のデータ受信バッファの一定時間内における受信画像データ量を集計比較し、各々のデータ受信バッファの優先順位をその都度決定し、それに基づいてデータ受信バッファからの出力を選択して、出力装置に画像データを転送する受信データ制御部とが設けられる。
【0004】
特許文献3には、トランザクション層の送信バッファが介在している場合であっても、アービタの設定と実際のトラフィックのプライオリティの整合性を維持しつつ優先度の調停を行なうための技術が記載されている。それによれば、PCI Expressのアーキテクチャを構成するトランザクション層から出力されたパケットデータを統計情報生成手段でモニタした結果をリアルタイムに重み情報更新手段に対してフィードバック制御してアービトレーションテーブルに反映することで、シリアル通信路を実際に転送されたパケットデータの転送データ量に応じた優先度づけを可能とする。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開平6−278399号公報
【特許文献2】特開平8−54994号公報
【特許文献3】特開2007−249816号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
複数の通信モジュールを含むマイクロコンピュータなどの半導体集積回路装置においては、当該半導体集積回路装置内のバスが上記複数の通信モジュール間で共有されている。このため、上記複数の通信モジュールを介して、通信相手とされる別の半導体集積回路装置との間でデータ通信が行われるとき、バス使用要求、DMA転送要求、割り込み要求などの競合が発生する場合がある。このような競合は、予め設定された優先度に従って調停される。
【0007】
上記通信モジュールからの通信要求の優先度が固定されていると、使用状況に応じてバスを効率よく使用できない場合がある。また、特定の通信モジュールについての通信のレイテンシが不所望に増大する虞れがある。そこで、上記従来技術文献に記載されているように、通信モジュール内の送受信バッファの転送データ量に応じて内部バス調停の優先順位を変えることが考えられる。これについて本願発明者が検討したところ、通信モジュール内の送受信バッファの転送データ量に応じて内部バス調停の優先順位を変えた場合にシステムのリアルタイム性の低下を招く虞れがあることが見いだされた。例えば通信モジュール内の送受信バッファの転送データ量が他の通信モジュールに比べて少ない場合には、通信モジュールについての内部バス調停の優先順位が低くなってしまうことから、当該通信モジュールにおいては、何時になっても通信を開始することができなくなり、システムのリアルタイム性の低下を招くことになる。
【0008】
本発明の目的は、複数の通信モジュールを含む半導体集積回路装置において、システムのリアルタイム性の向上を図るための技術を提供する。
【0009】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【0010】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【0011】
すなわち、半導体集積回路装置は、CPUと、上記CPUに結合されたバスと、それぞれ上記バスを使用してデータ通信を行い得る複数の通信モジュールと、上記各通信モジュールからの要求に応じた処理を上記通信モジュール毎の優先度に従って実行する回路とを含む。そして、上記通信モジュール毎の通信待ち時間に応じて上記優先度を調整するための通信モニタが設けられる。
【発明の効果】
【0012】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
【0013】
すなわち、複数の通信モジュールを含む半導体集積回路装置において、システムのリアルタイム性の向上を図ることができる。また、エラー発生時には、その処理が迅速に行われるので、システムの信頼性の向上を図ることができる。
【図面の簡単な説明】
【0014】
【図1】本発明にかかる半導体集積回路装置の一例とされるマイクロコンピュータの構成例ブロック図である。
【図2】上記マイクロコンピュータに含まれる通信モニタにおけるタイマ部及び比較部の構成例ブロック図である。
【図3】図2における主要部の構成例回路図である。
【図4】上記比較器から出力されるレベルコードの説明図である。
【図5】上記通信モニタに含まれるプライオリティエンコーダの構成例説明図である。
【図6】上記通信モニタの別の構成例ブロック図である。
【図7】上記通信モニタの別の構成例ブロック図である。
【図8】図7に示される通信モニタを用いた場合の主要動作を示すフローチャートである。
【発明を実施するための形態】
【0015】
1.実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【0016】
〔1〕本発明の代表的な実施の形態に係る半導体集積回路装置(10)は、CPU(103)と、上記CPUに結合されたバス(106)と、それぞれ上記バスを使用してデータ通信を行い得る複数の通信モジュール(108A,108B,108C)と、上記各通信モジュールからの要求に応じた処理を上記通信モジュール毎の優先度に従って実行する回路(104,105)とを含む。そして、上記通信モジュール毎の通信待ち時間に応じて上記優先度を調整するための通信モニタ(111A)が設けられる。
【0017】
上記の構成によれば、通信モジュール毎の通信待ち時間に応じて、上記回路での処理の優先度調整が行われるため、最も通信待ち時間が長い通信チャネルから順に処理を実行することができるので、システムのリアルタイム性能を向上させることができる。
【0018】
〔2〕上記〔1〕において、上記通信モニタ(111A)は、上記通信モジュール毎の通信待ち時間を計測するためのタイマ部(121)と、通信待ち時間のレベルコード生成の基準となるレベルを設定可能なレベル設定レジスタ(122)とを含む。また、上記通信モニタ(111A)は、上記タイマにより計測された上記通信モジュール毎の通信待ち時間と、上記レベル設定レジスタの出力とを比較して上記通信モジュール毎の通信待ち時間のレベルコードを形成する比較部(123)と、上記比較部の出力をエンコードして、上記優先度を調整するための信号を形成するエンコーダ(124)とを含む。これにより、上記機能を有する通信モニタを容易に形成することができる。
【0019】
〔3〕本発明の別の実施の形態に係る半導体集積回路装置(10)は、CPU(103)と、上記CPUに結合されたバス(106)と、それぞれ上記バスを使用してデータ通信を行い得る複数の通信モジュール(108A,108B,108C)と、上記各通信モジュールからの要求に応じた処理を上記通信モジュール毎の優先度に従って実行する回路(104,105)とを含む。そして、上記通信モジュール毎の通信待ち時間、及び上記通信モジュール毎の転送データ量に応じて上記優先度を調整するための通信モニタ(111B)が設けられる。
【0020】
上記の構成によれば、上記通信モジュール毎の通信待ち時間、及び上記通信モジュール毎の転送データ量に応じて、上記回路での処理の優先度調整が行われるため、最も通信待ち時間が長い通信チャネルから順に処理を実行することができるので、システムのリアルタイム性能を向上させることができる。
【0021】
〔4〕上記〔3〕において、上記通信モニタ(111B)は、上記通信モジュール毎の通信待ち時間を計測するためのタイマ部(121)と、上記通信モジュール毎の通信待ち時間のレベルコード生成の基準となるレベルを設定可能な第1レジスタ(122)とを含む。また、上記通信モニタ(111B)は、上記タイマにより計測された上記通信モジュール毎の通信待ち時間と、上記第1レジスタの出力とを比較して上記通信モジュール毎の通信待ち時間のレベルコードを形成する第1比較部(123)と、上記第1比較部の出力をエンコードする第1エンコーダ(124)と、上記通信モジュール毎の転送データ量のレベルコード生成の基準となるレベルを設定可能な第2レジスタ(162)とを含む。さらに上記通信モニタ(111B)は、上記通信モジュール毎の転送データ量と、上記第2レジスタの出力とを比較して上記通信モジュール毎の転送データ量のレベルコードを形成する第2比較部(161)と、第2比較部の出力をエンコードする第2エンコーダ(164)と、上記第1エンコーダの出力と上記第2エンコーダの出力とを選択的に出力することにより、上記優先度を調整するための信号を形成するセレクタ(165)とを含む。これにより、上記機能を有する通信モニタを容易に形成することができる。
【0022】
〔5〕上記〔4〕において、上記セレクタ(165)は、上記通信モジュール毎の通信待ち時間のレベルコードが所定値を越えた場合に、上記第1エンコーダの出力を選択的に出力するように構成することができる。これにより、上記第1エンコーダの出力と上記第2エンコーダの出力との選択を円滑に行うことができる。
【0023】
〔6〕本発明の別の実施の形態に係る半導体集積回路装置(10)は、CPU(103)と、上記CPUに結合されたバス(106)と、それぞれ上記バスを使用してデータ通信を行い得る複数の通信モジュール(108A,108B,108C)と、上記各通信モジュールからの要求に応じた処理を上記通信モジュール毎の優先度に従って実行する回路(104,105)とを含む。そして、上記通信モジュール毎の通信待ち時間、上記通信モジュール毎の転送データ量、及び上記通信モジュール毎の通信エラーの有無に応じて上記優先度を調整するための通信モニタ(111C)が設けられる。
【0024】
上記の構成によれば、上記通信モジュール毎の通信待ち時間、上記通信モジュール毎の転送データ量、及び上記通信モジュール毎の通信エラーの有無に応じて、上記回路での処理の優先度調整が行われるため、最も通信待ち時間が長い通信チャネルから順に処理を実行することができるので、システムのリアルタイム性能を向上させることができる。また、上記通信モジュールでエラーが発生した場合には、エラー処理が優先されるため、システムの信頼性の向上を図ることができる。
【0025】
〔7〕上記〔6〕において、上記通信モニタ(111C)は、上記通信モジュール毎の通信待ち時間を計測するためのタイマ部(121)と、上記通信モジュール毎の通信待ち時間のレベルコード生成の基準となるレベルを設定可能な第1レジスタ(122)とを含む。また、上記通信モニタ(111C)は、上記タイマにより計測された上記通信モジュール毎の通信待ち時間と、上記第1レジスタの出力とを比較して上記通信モジュール毎の通信待ち時間のレベルコードを形成する第1比較部(123)と、上記第1比較部の出力をエンコードする第1エンコーダ(124)と、上記通信モジュール毎の転送データ量のレベルコードを生成するためのレベルを設定可能な第2レジスタ(162)とを含む。さらに上記通信モニタ(111C)は、上記通信モジュール毎の転送データ量と、上記第2レジスタの出力とを比較して上記通信モジュール毎の転送データ量のレベルコードを形成する第2比較部(161)と、第2比較部の出力をエンコードする第2エンコーダ(164)と、上記通信モジュール毎の通信エラーの有無を示す信号をエンコードする第3エンコーダ(174)とを含む。そして上記通信モニタ(111C)は、上記第1エンコーダの出力と上記第2エンコーダの出力と第3エンコーダの出力とを選択的に出力することにより、上記優先度を調整するための信号を形成するセレクタ(175)とを含む。これにより、上記機能を有する通信モニタを容易に形成することができる。
【0026】
〔8〕上記〔7〕において、上記セレクタ(175)は、上記通信モジュールでエラーが発生した場合には、上記第3エンコーダの出力を選択的に出力し、上記通信モジュールでエラーが発生されない状態で、上記通信モジュール毎の通信待ち時間のレベルコードが所定値を越えた場合には、上記第1エンコーダの出力を選択的に出力するように構成することができる。これにより、上記第1エンコーダの出力と上記第2エンコーダの出力と第3エンコーダの出力との選択を円滑に行うことができる。
【0027】
2.実施の形態の詳細
実施の形態について更に詳述する。
【0028】
《実施の形態1》
図1には、本発明にかかる半導体集積回路装置の一例とされるマイクロコンピュータが示される。図1に示されるマイクロコンピュータ10は、DMAコントローラ101、メモリ102、CPU(中央処理装置)103、バスアービタ104、割り込みコントローラ105、通信モジュール108A,108B,108C、通信モニタ111Aを含み、特に制限されないが、公知の半導体集積回路製造技術により、単結晶シリコン基板などの一つの半導体基板に形成される。また、DMAコントローラ101、メモリ102、CPU103、バスアービタ104、割り込みコントローラ105、通信モジュール108A,108B,108C、通信モニタ111Aは、内部バス106に結合され、この内部バス106を介して各種信号のやり取りが可能になっている。
【0029】
CPU103は、予め設定されたプログラムに従って所定の演算処理を実行する。メモリ102は、ROM(Read Only Memory)やRAM(Random Access Memory)が含まれる。ROMにはCPU103で実行されるプログラムが格納され、RAMはCPU103での演算処理の作業領域などに利用される。DMAコントローラ101は、メモリ102とその他のモジュール間で、CPU103を介さずにデータ転送を行うDMA転送における通信制御を行う。バスアービタ104は、DMAコントローラ101、CPU103、通信モジュール108A,108B,108Cからのバス使用要求が競合した場合にそれを調停する。この調停は、DMAコントローラ101、CPU103、通信モジュール108A,108B,108C毎の優先度に従って行われる。バスアービタ104は、どのモジュールからのバス使用要求を受け付けるかを決定したら、当該モジュールにバスマスターの権利を与えることを通知する。バスマスターとなったモジュールは、バスが使用中であることを示すための信号をアサートする。
【0030】
割り込みコントローラ105は、周辺回路とCPU103との間に配置され、周辺回路からの割り込み処理要求を受信してCPU103に対して割り込み信号をアサートする。本例では、周辺回路の一例とされる通信モジュール108A,108B,108Cからの割り込み要因毎に異なるハンドラに処理を移すことができるようになっている。割り込みコントローラ105における割り込み制御は、周辺回路毎の優先度に従って行われる。
【0031】
通信モジュール108A,108B,108Cは、それぞれ独立した通信チャネルA,B,Cを有し、通信相手とされる別の半導体集積回路装置等の外部モジュール等との間のデータ通信を行うために設けられる。特に制限されないが、通信モジュール108A,108B,108Cは、例えばSCI(Serial Communication Interface)とされ、特に制限されないが、4種類の割り込み要因例えばERI、RXI、TXI、TEIを有する。ERIは、受信時にエラーがおきてデータが正常に受信できていないことを示す。RXIは受信データが溜まっていることを示す。TXIは、ユーザプログラムから次の1バイトの送信データを書き込むことが可能であることを示す。TEIは、ユーザプログラムから指示された分の送信データはすべて送信手続きが完了したことを示す。このような割り込み要因は、割り込みコントローラ105に伝達される。
【0032】
通信モニタ111Aは、上記通信モジュール108A,108B,108C毎の通信待ち時間に応じて、バスアービタ104での調停処理における優先度、及び割り込みコントローラ105での割り込み制御処理における優先度を調整するための信号を形成する。この通信モニタ111Aは、タイマ部121、レイテンシレベル設定レジスタ122、比較部123、プライオリティエンコーダ124を含む。タイマ部121は、通信モジュール108A,108B,108Cからの送信又は受信の要求を示す信号(送受信要求信号)のアサート期間を計測する。送受信要求信号は、対応する通信モジュールにおいて送信又は受信が開始された時点でネゲートされるものとする。上記送受信要求信号のアサート期間をタイマ部121で計測することによって、通信モジュール108A,108B,108C毎の通信待ち時間を測定することができる。通信モジュール108A,108B,108Cでのデータ通信は、内部バス106を介して行われるため、通信モジュール108A,108B,108C毎の通信待ち時間は、内部バス106の使用待ち時間に対応する。レイテンシレベル設定レジスタ122は、上記通信待ち時間のレベルコードを生成するための基準となるレベル(レイテンシレベル)を設定することができる。このレイテンシレベル設定レジスタ122へのレイテンシレベルの設定は、内部バス106を介してCPU103によって行われる。比較部123は、タイマ部121によって計測された通信モジュール毎の通信待ち時間と、レイテンシレベル設定レジスタ122とを比較することによって、上記通信待ち時間のレベルコードを形成する。プライオリティエンコーダ124は、比較部123で形成された上記通信待ち時間のレベルコードをエンコードして優先度を調整するための信号を形成する。この信号は、バスアービタ104及び割り込みコントローラ105に伝達される。バスアービタ104では、プライオリティエンコーダ124からの信号に基づいて、調停処理における通信モジュール108A,108B,108C毎の優先度が調整される。また、割り込みコントローラ105では、プライオリティエンコーダ124からの信号に基づいて、割り込み制御処理における通信モジュール108A,108B,108C毎の優先度が調整される。上記優先度の調整は、特に限定するものではないが、例えば、通信待ち時間が長いほど高くなるように行われる。例えば通信モジュール108A,108B,108Cでの通信待ち時間が、それぞれ300μS、20μS、1mSの場合には、108B,108A,108Cの順に優先度が高くなるように調整される。つまり、通信待ち時間が最も長い通信モジュール108Cの優先度が最も高くされる。
【0033】
図2には、上記通信モニタ111Aにおけるタイマ部121及び比較部123の構成例が示される。
【0034】
タイマ部121は、通信モジュール108A,108B,108Cに対応して配置されたタイマ121A,121B,121Cを含む。タイマ121Aは、通信モジュール108Aからの送受信要求信号20Aのアサート期間を計測する。タイマ121Bは、通信モジュール108Bからの送受信要求信号20Bのアサート期間を計測する。タイマ121Cは、通信モジュール108Cからの送受信要求信号20Cのアサート期間を計測する。比較部123は、上記タイマ121A,121B,121Cに対応して配置された比較器123A,123B,123Cを含む。比較器123Aは、タイマ121Aの出力21Aとレイテンシレベル設定レジスタ122の出力22とを比較することによって、通信モジュール108Aにおける通信待ち時間のレベルコードを形成する。比較器123Bは、タイマ121Bの出力21Bとレイテンシレベル設定レジスタ122の出力22とを比較することによって、通信モジュール108Bにおける通信待ち時間のレベルコードを形成する。比較器123Cは、タイマ121Cの出力21Cとレイテンシレベル設定レジスタ122の出力22とを比較することによって、通信モジュール108Cにおける通信待ち時間のレベルコードを形成する。比較器123A,123B,123Cの出力23A,23B,23Cは、プライオリティエンコーダ124の入力端子inA,inB,inCに伝達される。
【0035】
図3には、上記比較器123Aの構成例が示される。
【0036】
比較器123Aは、コンパレータ31,32,33,34を含む。レイテンシレベル設定レジスタ122の出力22は、互いに値が異なるレイテンシレベルLevel0,Level1,Level2,Level3を含む。コンパレータ31は、タイマ121Aの出力21AとレイテンシレベルLevel0との比較を行う。コンパレータ32は、タイマ121Aの出力21AとレイテンシレベルLevel1との比較を行う。コンパレータ33は、タイマ121Aの出力21AとレイテンシレベルLevel2との比較を行う。コンパレータ34は、タイマ121Aの出力21AとレイテンシレベルLevel3との比較を行う。ここで、タイマ121Aの出力21Aは、通信モジュール108Aからの送受信要求信号20Aのアサート期間、すなわち通信待ち時間(WTM)を示している。上記コンパレータ31,32,33,34での比較において、レイテンシレベルがタイマ121Aの出力21A(WTM)よりも大きい場合には、論理値“1”が出力され、レイテンシレベルがタイマ121Aの出力21A(WTM)よりも大きくない場合には、論理値“0”が出力される。このようにして、タイマ121Aの出力21A(WTM)に応じたレベルコードがコンパレータ31,32,33,34から出力される。このレベルコードは、図4に示されるように、4ビットコード(“0001”“0011”“0111”“1111”)となる。本例では、通信待ち時間が長いほど、レベルコードの値が大きくなり、優先度が高くなる。
【0037】
他の比較器123B,123Cにおいても、上記比較器123Aと同様に構成される。
【0038】
次に、上記プライオリティエンコーダ124の構成例について説明する。
【0039】
プライオリティエンコーダ124は、例えば図5に示されるようなプライオリティエンコードテーブルによって構成される。このプライオリティエンコードテーブルの内容は、CPU103によって書き換えることができる。図5に示されるプライオリティエンコードテーブルによれば、プライオリティエンコーダ124への入力InA〔0〕〜InA〔3〕,InB〔0〕〜InB〔3〕,InC〔0〕〜InC〔3〕に対応して、最も優先度の高い通信モジュール108A〜108C(選択チャネルA〜C)が決定される。
【0040】
具体的には、先ず、プライオリティエンコーダ124への入力における3ビット目(InA〔3〕,InB〔3〕,InC〔3〕)の論理値が参照され、この3ビット目において論理値“1”となる箇所があれば、それに対応する通信モジュール(通信チャネル)が最も優先度の高い通信モジュール(通信チャネル)として選択される。
【0041】
プライオリティエンコーダ124への入力における3ビット目(InA〔3〕,InB〔3〕,InC〔3〕)において論理値“1”となる箇所がなければ、2ビット目(InA〔2〕,InB〔2〕,InC〔2〕)の論理値が参照され、この2ビット目において論理値“1”となる箇所があれば、それに対応する通信モジュール(通信チャネル)が最も優先度の高い通信モジュール(通信チャネル)として選択される。
【0042】
プライオリティエンコーダ124への入力における2ビット目(InA〔2〕,InB〔2〕,InC〔2〕)において論理値“1”となる箇所がなければ、1ビット目(InA〔1〕,InB〔1〕,InC〔1〕)の論理値が参照され、この1ビット目において論理値“1”となる箇所があれば、それに対応する通信モジュール(通信チャネル)が最も優先度の高い通信モジュール(通信チャネル)として選択される。
【0043】
プライオリティエンコーダ124への入力における1ビット目(InA〔1〕,InB〔1〕,InC〔1〕)において論理値“1”となる箇所がなければ、0ビット目(InA〔0〕,InB〔0〕,InC〔0〕)の論理値が参照され、この0ビット目において論理値“1”となる箇所があれば、それに対応する通信モジュール(通信チャネル)が最も優先度の高い通信モジュール(通信チャネル)として選択される。
【0044】
このように通信モジュール108A,108B,108C毎の通信待ち時間に応じて、バスアービタ104や割り込みコントローラ105での処理の優先度調整が行われるため、最も通信待ち時間が長い通信チャネルから順にバスアービタ104や割り込みコントローラ105での処理を実行することができるので、システムのリアルタイム性能を向上させることができる。
【0045】
《実施の形態2》
図6には、本発明にかかる半導体集積回路装置の一例とされるマイクロコンピュータにおける通信モニタの別の構成例が示される。
【0046】
図6に示される通信モニタ111Bが、図1に示されるのと大きく相違するのは、通信モジュール108A,108B,108C毎の通信待ち時間、及び転送データ量に応じて上記優先度調整を可能とするため、比較部161、データレベル設定レジスタ162、プライオリティエンコーダ164、及びセレクタ165が追加されている点である。
【0047】
データレベル設定レジスタ162には、通信モジュール108A,108B,108C毎の転送データ量のレベルコード生成の基準となるレベルを設定することができる。このレベル設定は、CPU103によって行うことができる。比較部161は、上記通信モジュール108A,108B,108C毎の転送データ量と、上記データレベル設定レジスタ162の出力とを比較して上記通信モジュール108A,108B,108C毎の転送データ量のレベルコード(データレベルコード)を形成する。プライオリティエンコーダ164は、比較部161からのデータレベルコードをエンコードすることにより、データ量優先選択チャネル情報を出力する。タイマ部121、レイテンシレベル設定レジスタ122、比較部123、及びプライオリティエンコーダ124は、図1において同一符号が付されているものと同一の機能を有し、プライオリティエンコーダ124からはレイテンシ優先選択チャネル情報が出力される。セレクタ175は、プライオリティエンコーダ164からのデータ量優先選択チャネル情報と、プライオリティエンコーダ124からのレイテンシ優先選択チャネル情報とを選択的に出力することにより、上記優先度調整のための信号(選択チャネル情報)を上記バスアービタ104や割り込みコントローラ105に出力する。ここで、上記セレクタ165は、上記通信モジュール108A,108B,108C毎の通信待ち時間のレベルコードが所定値を越えた場合に、プライオリティエンコーダ124の出力を選択的に出力するように構成される。具体的には、例えば、上記通信モジュール108A,108B,108C毎の通信待ち時間のレベルコードにおける最上位のビットが論理値“1”になった状態をレイテンシの警告レベルと判断して、その場合にプライオリティエンコーダ124の出力を選択的に出力するようにセレクタ165を構成することができる。
【0048】
尚、比較部161やプライオリティエンコーダ164には、それぞれ図1における比較部123やプライオリティエンコーダ124と同一構成のものを適用することができる。
【0049】
上記の構成によれば、上記通信モジュール108A,108B,108C毎の通信待ち時間のレベルコードにおける最上位のビットが論理値“0”の場合、セレクタ165によってプライオリティエンコーダ164からのデータ量優先度選択チャネル情報が選択的にバスアービタ104や割り込みコントローラ105に出力される。これにより、上記通信モジュール108A,108B,108C毎の転送データ量に応じてバスアービタ104や割り込みコントローラ105での優先度調整が行われる。つまり、転送すべきデータ量が多い通信モジュールの優先度が高くなるように調整される。これに対して、上記通信モジュール108A,108B,108C毎の通信待ち時間のレベルコードにおける最上位のビットが論理値“1”になった場合には、セレクタ165によってプライオリティエンコーダ124からのレイテンシ優先選択チャネル情報が選択的にバスアービタ104や割り込みコントローラ105に出力される。これにより、バスアービタ104や割り込みコントローラ105では、図1に示される通信モニタ111Aと同様に、通信モジュール108A,108B,108C毎の通信待ち時間に応じてバスアービタ104や割り込みコントローラ105での優先度調整が行われる。これにより、例えば通信モジュール内の送受信バッファの転送データ量が他の通信モジュールに比べて少ない場合においても、通信モジュール108A,108B,108C毎の通信待ち時間に応じてバスアービタ104や割り込みコントローラ105での優先度調整が行われることになるので、何時になっても通信を開始することができないという、不都合を回避できるので、システムのリアルタイム性の向上を図ることができる。
【0050】
《実施の形態3》
図7には、本発明にかかる半導体集積回路装置の一例とされるマイクロコンピュータにおける通信モニタの別の構成例が示される。
【0051】
図7に示される通信モニタ111Cが、図6に示されるのと大きく相違するのは、通信モジュール108A,108B,108C毎の通信待ち時間、転送データ量、及び通信エラーの有無に応じてバスアービタ104や割り込みコントローラ105での優先度調整を可能にするため、プライオリティエンコーダ174及びセレクタ175が追加されている点である。プライオリティエンコーダ174は、通信モジュール108A,108B,108C毎の通信エラーの有無を示す信号(エラー情報)をエンコードする。通信モジュール108A,108B,108C毎の通信エラーの有無を示す信号(エラー情報)には、通信モジュール108A,108B,108C毎の割り込み要因を利用することができる。プライオリティエンコーダ174は、通信モジュール108A,108B,108C毎の通信エラーの有無を示す信号をエンコードすることによって、エラーを生じた通信モジュールを特定するためのエラー優先選択チャネル情報を出力する。セレクタ175は、プライオリティエンコーダ164からのデータ量優先選択チャネル情報と、プライオリティエンコーダ124からのレイテンシ優先選択チャネル情報と、プライオリティエンコーダ174からのエラー優先選択チャネル情報とを選択的に出力することにより、上記優先度調整のための信号(選択チャネル情報)を上記バスアービタ104や割り込みコントローラ105に出力する。ここで、セレクタ175は、上記通信モジュール108A,108B,108Cでエラーが発生した場合には、上記プライオリティエンコーダ174の出力を選択的に出力し、上記通信モジュールでエラーが発生されない状態で、上記通信モジュール108A,108B,108C毎の通信待ち時間のレベルコードが所定値を越えた場合に、プライオリティエンコーダ124の出力を選択的に出力するように構成される。
【0052】
図8には、図7に示される通信モニタ111Bにおける主要動作の流れが示される。
【0053】
通信モニタ111Bにおける通信チャネル選択において、上記通信モジュール108A,108B,108Cでエラーが発生した場合には(801)、セレクタ175によって上記プライオリティエンコーダ174の出力が選択的に出力されることにより、エラー発生にかかる通信チャネルについてのエラー処理が優先される(804)。エラー処理は、割り込みコントローラ105からの割り込み信号に従ってCPU103で実行される。このエラー処理の例として、エラー発生状態の記録、通信再送要求の発行、エラー発生部の再初期化、エラー発生部の動作停止、自システムの終了、他システムへの警告発生等を挙げることができる。
【0054】
また、上記通信モジュール108A,108B,108Cでエラーが発生されない状態で、上記通信モジュール108A,108B,108C毎の通信待ち時間のレベルコードが所定値を越えない場合には、セレクタ175によってプライオリティエンコーダ164の出力が選択的に出力されることにより、転送データ量優先の優先度調整が行われる(803)。さらに上記通信モジュール108A,108B,108Cでエラーが発生されない状態で、上記通信モジュール108A,108B,108C毎の通信待ち時間のレベルコードが所定値を越えた場合には、セレクタ175によってプライオリティエンコーダ124の出力が選択的に出力されることにより、レイテンシ優先の優先度調整が行われる(805)。このように上記通信モジュール108A,108B,108Cでエラーが発生した場合には、エラー処理が優先されるため、図6に示される構成に比べて、システムの信頼性の向上を図ることができる。
【0055】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【0056】
例えば、上記の例では、通信モニタ111Cの出力信号によって、バスアービタ104や割り込みコントローラ105での優先度調整を行うようにしたが、他の機能モジュール例えばDMAコントローラ101に対するDMA要求の優先度を調整するようにしても良い。
【0057】
通信モジュール108A,108B,108Cは、イーサネット(登録商標)、又はCAN(Controller Area Network)等に対応する通信インターフェイスとすることができる。
【0058】
通信モジュール108A,108B,108Cの通信状態に応じた優先度調整が一時的に不要になった場合等においては、CPU103の制御により、当該優先度調整を行わないようにすることができる。例えばプライオリティエンコーダ124(164,174も同様)への入力信号の変化に対して、その出力(図5におけるOutに相当)が変わらないように、プライオリティエンコードテーブルの内容を書き換えることにより、通信モジュール108A,108B,108Cの状態に応じた優先度調整を行わないようにすることができる。
【符号の説明】
【0059】
10 マイクロコンピュータ
31,32,33,34 コンパレータ
101 DMAコントローラ
102 メモリ
103 CPU
104 バスアービタ
105 割り込みコントローラ
106 内部バス
108A,108B,108C 通信モジュール
111A,111B,111C 通信モニタ
121 タイマ部
122 レイテンシレベル設定レジスタ
123,161 比較部
124,164,174 プライオリティエンコーダ
121A〜121C タイマ
123A〜123C 比較器
162 データレベル設定レジスタ
165,175 セレクタ

【特許請求の範囲】
【請求項1】
CPUと、
上記CPUに結合されたバスと、
それぞれ上記バスを使用してデータ通信を行い得る複数の通信モジュールと、
上記各通信モジュールからの要求に応じた処理を上記通信モジュール毎の優先度に従って実行する回路と、を含む半導体集積回路装置であって、
上記通信モジュール毎の通信待ち時間に応じて上記優先度を調整するための通信モニタを含むことを特徴とする半導体集積回路装置。
【請求項2】
上記通信モニタは、上記通信モジュール毎の通信待ち時間を計測するためのタイマ部と、
通信待ち時間のレベルコード生成の基準となるレベルを設定可能なレベル設定レジスタと、
上記タイマにより計測された上記通信モジュール毎の通信待ち時間と、上記レベル設定レジスタの出力とを比較して上記通信モジュール毎の通信待ち時間のレベルコードを形成する比較部と、
上記比較部の出力をエンコードして、上記優先度を調整するための信号を形成するエンコーダと、を含んで成る請求項1記載の半導体集積回路装置。
【請求項3】
CPUと、
上記CPUに結合されたバスと、
それぞれ上記バスを使用してデータ通信を行い得る複数の通信モジュールと、
上記各通信モジュールからの要求に応じた処理を上記通信モジュール毎の優先度に従って実行する回路と、を含む半導体集積回路装置であって、
上記通信モジュール毎の通信待ち時間、及び上記通信モジュール毎の転送データ量に応じて上記優先度を調整するための通信モニタを含むことを特徴とする半導体集積回路装置。
【請求項4】
上記通信モニタは、上記通信モジュール毎の通信待ち時間を計測するためのタイマ部と、
上記通信モジュール毎の通信待ち時間のレベルコード生成の基準となるレベルを設定可能な第1レジスタと、
上記タイマにより計測された上記通信モジュール毎の通信待ち時間と、上記第1レジスタの出力とを比較して上記通信モジュール毎の通信待ち時間のレベルコードを形成する第1比較部と、
上記第1比較部の出力をエンコードする第1エンコーダと、
上記通信モジュール毎の転送データ量のレベルコード生成の基準となるレベルを設定可能な第2レジスタと、
上記通信モジュール毎の転送データ量と、上記第2レジスタの出力とを比較して上記通信モジュール毎の転送データ量のレベルコードを形成する第2比較部と、
第2比較部の出力をエンコードする第2エンコーダと、
上記第1エンコーダの出力と上記第2エンコーダの出力と選択的に出力することにより、上記優先度を調整するための信号を形成するセレクタと、を含んで成る請求項3記載の半導体集積回路装置。
【請求項5】
上記セレクタは、上記通信モジュール毎の通信待ち時間のレベルコードが所定値を越えた場合に、上記第1エンコーダの出力を選択的に出力する請求項4記載の半導体集積回路装置。
【請求項6】
CPUと、
上記CPUに結合されたバスと、
それぞれ上記バスを使用してデータ通信を行い得る複数の通信モジュールと、
上記各通信モジュールからの要求に応じた処理を上記通信モジュール毎の優先度に従って実行する回路と、を含む半導体集積回路装置であって、
上記通信モジュール毎の通信待ち時間、上記通信モジュール毎の転送データ量、及び上記通信モジュール毎の通信エラーの有無に応じて上記優先度を調整するための通信モニタを含むことを特徴とする半導体集積回路装置。
【請求項7】
上記通信モニタは、上記通信モジュール毎の通信待ち時間を計測するためのタイマ部と、
上記通信モジュール毎の通信待ち時間のレベルコード生成の基準となるレベルを設定可能な第1レジスタと、
上記タイマにより計測された上記通信モジュール毎の通信待ち時間と、上記第1レジスタの出力とを比較して上記通信モジュール毎の通信待ち時間のレベルコードを形成する第1比較部と、
上記第1比較部の出力をエンコードする第1エンコーダと、
上記通信モジュール毎の転送データ量のレベルコードを生成するためのレベルを設定可能な第2レジスタと、
上記通信モジュール毎の転送データ量と、上記第2レジスタの出力とを比較して上記通信モジュール毎の転送データ量のレベルコードを形成する第2比較部と、
第2比較部の出力をエンコードする第2エンコーダと、
上記通信モジュール毎の通信エラーの有無を示す信号をエンコードする第3エンコーダと、
上記第1エンコーダの出力と上記第2エンコーダの出力と第3エンコーダの出力とを選択的に出力することにより、上記優先度を調整するための信号を形成するセレクタと、を含んで成る請求項6記載の半導体集積回路装置。
【請求項8】
上記セレクタは、上記通信モジュールでエラーが発生した場合には、上記第3エンコーダの出力を選択的に出力し、上記通信モジュールでエラーが発生されない状態で、上記通信モジュール毎の通信待ち時間のレベルコードが所定値を越えた場合には、上記第1エンコーダの出力を選択的に出力する請求項7記載の半導体集積回路装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2011−221943(P2011−221943A)
【公開日】平成23年11月4日(2011.11.4)
【国際特許分類】
【出願番号】特願2010−93026(P2010−93026)
【出願日】平成22年4月14日(2010.4.14)
【出願人】(302062931)ルネサスエレクトロニクス株式会社 (8,021)
【Fターム(参考)】