説明

半導体装置

【課題】通信用のデータバッファに記憶容量の無駄を生じ難く、通信データのバストラフィックを低減可能とする。
【解決手段】、複数の通信チャネルを有する通信回路を内部バスにインタフェースするのに通信用ブリッジ回路を採用し、通信用ブリッジ回路には通信チャネルに一対一対応する通信チャネルバッファ領域が割り当てられるバッファメモリを採用し、バッファメモリは一方においてバスインタフェース回路を介して内部バスにインタフェースされ、他方において通信チャネルインタフェース回路を介して通信回路にインタフェースされる。通信チャネルインタフェース回路は、内部バス経由でレジスタ回路に設定された通信チャネルバッファ領域の定義情報に基づいて、通信チャネルバッファ領域から対応する通信チャネルに与える送信データを読み出し且つ通信チャネルから与えられる受信データを対応する通信チャネルバッファ領域に書き込む制御を行う。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数の通信チャネルを有する半導体装置における送受信データのバッファ制御技術に関し、例えば通信機能を有するマイクロコンピュータに適用して有効な技術に関する。
【背景技術】
【0002】
複数の通信チャネルを中央処理装置(CPU)の周辺機能として有するマイクロコンピュータにおいて、通信チャネルに対するCPUによる通信条件の設定、通信チャネルに対する送信データの書き込み、通信チャネルによる受信データの読み込みを行うとき、通信チャネルが共通接続される内部バスを経由してCPUが通信チャネルに対するアクセスを行い、或いはダイレクトメモリアクセスコントローラ(DMAC)が通信チャネルとデータメモリとの間のデータ転送を制御しなければならない。複数の通信チャネルを用いた通信を並列的に行う場合にはバス上においてデータ転送量が著しく増大する。特許文献1にはそのようなマイクロコンピュータの例としてオンチップデバッグエミュレータに適用されるものが示され、通信チャネルとして複数のシリアル通信回路を備え、個々のシリアル通信回路はそれぞれに専用の送信バッファと受信バッファを備える。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2008−226083号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明者は複数の通信チャネルにおける送受信データのバッファに対するCPUやDMACによるアクセスについて検討したところ以下の問題点を見出した。
【0005】
複数の通信チャネルが共通接続されるバスのデータトラフィックと通信チャネルのバッファ容量に関する点である。通信チャネルが個々に送受信データのバッファを持つ場合には回路規模が無駄に大きくならないように個々の記憶容量は比較的小さくされている。シリアルコミュニケーションインタフェース(SCIF)などの通信チャネルの受信データに対してCPUがコンペアや検索等の処理を行う場合には膨大な受信データをバスを介してCPUが逐次受けとって処理しなければならない。受信データを大容量のデータメモリに逐次蓄積する場合も、逐次的に通信チャネルのバッファからメモリにデータ転送されることになり、データ転送チャネル毎にDMA転送制御チャネルを設けても、その点については変わりない。個々の通信チャネルのバッファではバスのデータトラフィックを一時的にでも緩和するだけの記憶容量を持つことが出来ないからである。逆に個々の通信チャネルのデータバッファの容量を大きくすると使用されない記憶領域の無駄が大きくなる。
【0006】
受信データのステータス情報についても通信チャネル毎にバッファから読み出して管理しなければならないとすると、通信チャネルのバッファからデータを読み出す処理、読み出したデータの判別処理、及び判別処理結果を後続処理に反映される操作が必要になり、データ受信に関するCPU等による処理が煩雑になる。
【0007】
本発明の目的は、通信用のデータバッファに記憶容量の無駄を生じ難く、通信データのバストラフィックを低減することが可能な半導体装置を提供することにある。
【0008】
本発明の別の目的は、通信データに対する中央処理装置の処理負担を軽減することができる半導体装置を提供することにある。
【0009】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【0010】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【0011】
すなわち、複数の通信チャネルを有する通信回路を内部バスにインタフェースするのに通信用ブリッジ回路を採用する。内部バスにはCPUが接続されている。通信用ブリッジ回路には通信チャネルに一対一対応する通信チャネルバッファ領域が割り当てられるバッファメモリを採用し、バッファメモリは一方においてバスインタフェース回路を介して内部バスにインタフェースされ、他方において通信チャネルインタフェース回路を介して通信回路にインタフェースされる。通信チャネルインタフェース回路は、内部バス経由でレジスタ回路に設定された通信チャネルバッファ領域の定義情報に基づいて、前記通信チャネルバッファ領域から対応する通信チャネルに与える送信データを読み出し且つ通信チャネルから与えられる受信データを対応する通信チャネルバッファ領域に書き込む制御を行う。
【0012】
定義情報に従って通信チャネル毎に通信チャネルバッファ領域を定義することができるから、通信チャネル毎にバッファを専用化して持つ場合に比べて、記憶容量に無駄を生ずることなく通信量の多い通信チャネルには大きな容量のバッファ領域を使用させることができる。チャネルバッファ領域の大きさの設定に応じてバス上における通信データのバストラフィックを制御することが可能になる。例えばチャネルバッファ領域を大きく設定すれば、受信データの一次保持期間を長くすることが出来るので、その分だけバッファ領域からバスへのデータ出力間隔を長くすることができ、バストラフィックを低下させることが可能になる。このことは、処理速度という点で、通信データに対する中央処理装置の処理負担の軽減にもつながる。
【発明の効果】
【0013】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
【0014】
すなわち、通信用のデータバッファに記憶容量の無駄を生じ難く、通信データのバストラフィックを低減することが可能である。
【0015】
また、通信データに対する中央処理装置の処理負担を軽減することができる。
【図面の簡単な説明】
【0016】
【図1】図は本発明の一実施の形態に係るマイクロコンピュータのブロック図である。
【図2】図2は通信用ブリッジ回路の具体例を示すブロック図である。
【図3】図3は送信動作と受信動作の詳細を例示するタイミングチャートである。
【図4A】図4Aは一部同一のデータを繰り返し送信する送信処理動作における送信データの配列を例示する説明図である。
【図4B】図4Bは図4Aの配列データに対して容量可変のバッファメモリを用いることなくテンポラリ送信データバッファのようなバッファに逐次送信データをセットしてその都度送信を行う場合の動作タイミングの説明図である。
【図4C】図4Cは図4Aの配列データに対して容量可変のバッファメモリを用いた本実施の形態の場合における送信動作タイミングの説明図である。
【図5】図5は図4Cのように一部固定データを含む6バイトのデータを繰り返し送信するときのCPUによるバッファメモリへの通信データの書き込み動作手順を例示する動作説明図である。
【図6】図6は本発明の実施の形態2に係る通信用ブリッジ回路の具体例を示すブロック図である。
【図7】図7はバスインタフェース回路によるレジスタ設定に基づくコンペア動作を例示する説明図である。
【図8】図8は本発明の実施の形態3に係る通信用ブリッジ回路の具体例を示すブロック図である。
【図9】図9は拡張受信モードによる転送制御回路の動作を例示するフローチャートである。
【図10】図10は図9のシーケンスに基づくデータ受信動作のタイミングを例示するタイミングチャートである。
【発明を実施するための形態】
【0017】
1.実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【0018】
〔1〕<複数通信チャネルに対する容量可変の通信バッファをメモリにマッピング>
本発明の代表的な実施の形態に係る半導体装置(1)は、内部バス(28)と、前記内部バスに接続された中央処理装置(25)と、複数の通信チャネルを有する通信回路(11)と、前記通信回路を前記内部バスに接続する通信用ブリッジ回路(10)とを有する。前記通信用ブリッジ回路は、前記内部バスに接続されるバスインタフェース回路(31,31A,31B)と、前記バスインタフェース回路に接続され前記通信チャネルに一対一対応する通信チャネルバッファ領域が割り当てられるバッファメモリ(32)と、前記通信チャネルバッファ領域から対応する通信チャネルに与える送信データを読み出し且つ通信チャネルから与えられる受信データを対応する通信チャネルバッファ領域に書き込む制御を行う通信インタフェース回路(33,33B)と、前記バスインタフェース回路を介して前記通信チャネルバッファ領域の定義情報が設定され設定された定義情報を前記通信インタフェース回路に与えるレジスタ回路(30,30A,30B)とを有する。
【0019】
定義情報に従って通信チャネル毎に通信チャネルバッファ領域を定義することができるから、通信チャネル毎にバッファを専用化して持つ場合に比べて、記憶容量に無駄を生ずることなく通信量の多い通信チャネルには大きな容量のバッファ領域を使用させることができる。チャネルバッファ領域の大きさの設定に応じてバス上における通信データのバストラフィックを制御することが可能になる。チャネルバッファ領域を大きく設定すれば、受信データの一次保持期間を長くすることが出来るので、その分だけバッファ領域からバスへのデータ出力間隔を長くすることができ、バストラフィックを低下させることが可能になる。このことは、処理速度という点で、通信データに対する中央処理装置の処理負担の軽減にもつながる。
【0020】
〔2〕<レジスタ回路のアドレスレジスタ及び通信ステータスレジスタ>
項1の半導体装置において、前記通信インタフェース回路は、前記通信チャネルに一対一対応される通信チャネルインタフェース回路(CHIF0〜CHIF4)と、前記通信チャネルインタフェース回路と前記バッファメモリとの間のデータ転送を制御する転送制御回路(40,40B)とを有する。前記レジスタ回路は、前記通信チャネル毎に、対応する通信チャネルバッファ領域のスタートアドレスを定義するスタートアドレスレジスタ(BSAREG)及びエンドアドレスを定義するエンドアドレスレジスタ(BEAREG)と、対応する前記通信チャネルインタフェース回路によって通信状態のステータス情報がセットされ前記中央処理装置によって参照可能にされるステータスレジスタ(STREG)とを有する。
【0021】
中央処理装置は、通信チャネルバッファ領域の受信データをリードして通信状態を判別しなくてもステータスレジスタにセットされたステータス情報を直接参照することができるから、通信状態に応じて必要な受信データだけをリードして処理することが可能になる。この点においても、バストラフィックの低減と、中央処理装置の処理負担軽減に資することができる。
【0022】
〔3〕<割り込み要求ロジック>
項2の半導体装置において、前記レジスタ回路は更に、前記ステータスレジスタに保持されたステータス情報に応じて前記中央処理装置に対する割り込み要求を出力する割り込み要求ロジック(50,50A,50B)を有する。
【0023】
中央処理装置は割り込み要求の発生を待ってステータス情報を参照することができる。また、ステータス情報を参照することなく割り込み要求の要因に応じて受信データのリードなどの必要な処理を開始することが可能になる。
【0024】
〔4〕<DMA転送要求ロジック>
項2の半導体装置において、前記内部バスに接続されたダイレクトメモリアクセスコントローラを有し、
前記レジスタ回路は更に、前記ステータスレジスタに保持されたステータス情報に応じて前記ダイレクトメモリアクセスコントローラにデータ転送要求を出力するデータ転送要求ロジック(51,51A,51B)を有する。
【0025】
中央処理装置によるデータ転送処理を行わずにデータ転送要求を待ってダイレクトメモリアクセスが起動されることにより必要な受信データをデータメモリなどに転送する処理などを行うことができる。
【0026】
〔5〕<通信チャネルインタフェース回路に対する送信トリガ>
項2の半導体装置において、前記バスインタフェース回路は、前記バッファメモリに対する書き込みアドレスが前記レジスタ回路に設定されたスタートアドレスに一致するとき、一致したスタートアドレスに対応される通信チャネルインタフェース回路に対して送信開始トリガ信号(TRSTR)により送信開始を指示する。
【0027】
通信インタフェース回路に対する送信開始のトリガを簡単なロジックによって生成することができる。
【0028】
〔6〕<通信チャネルインタフェース回路による通信チャネルバッファアクセス>
項3の半導体装置において、前記通信チャネルインタフェース回路は、前記バッファメモリに対するアクセスアドレスを生成する受信用アドレスカウンタ(RACUNT)及び送信用アドレスカウンタ(TACUNT)と、前記受信用アドレスカウンタによるアドレスカウント値毎に通信データを保持するテンポラリ受信バッファ(RDBUF)と、前記送信用アドレスカウンタによるアドレスカウント値毎に送信データを保持するテンポラリ送信バッファ(TDBUF)とを有する。前記転送制御回路は、前記受信用アドレスカウンタの値に基づいて前記テンポラリ受信バッファから対応する前記通信チャネルバッファへのデータの書き込みと前記送信用アドレスカウンタの値に基づいて対応する前記通信チャネルバッファから前記テンポラリ送信バッファへのデータの読み出しとを制御する。前記受信用アドレスカウンタ及び送信用アドレスカウンタには前記レジスタ回路からスタートアドレスが初期設定され、前記テンポラリ受信バッファから対応する前記通信チャネルバッファへのデータの書き込み毎に前記受信用アドレスカウンタの値が更新され、前記通信チャネルバッファから前記テンポラリ送信バッファへのデータの読み出し毎に前記送信用アドレスカウンタの値が更新される。
【0029】
通信チャネルバッファ領域の割り当てに応じた通信チャネルインタフェース回路によるバッファメモリアクセスのためのアドレスポイント制御を容易に実現することができる。
【0030】
〔7〕<転送制御回路によるバッファメモリに対する時分割アクセスのタイミングスロット制御>
項6の半導体装置において、前記転送制御回路は、テンポラリ受信バッファからバッファメモリへのデータ書き込みのタイミングスロットを全ての通信チャネルに順次時分割で対応させて割り当てると共に、バッファメモリからテンポラリ送信バッファへのデータ読み出しのタイミングスロットを全ての通信チャネルに順次時分割で対応させて割り当てる制御を行うタイミング制御回路(60,60B)と、前記タイミング制御回路によって割り当てられた書き込みのタイミングスロットが到来したとき対応する通信チャネルインタフェース回路のテンポラリ受信バッファがデータ保持状態のとき当該テンポラリ受信バッファから入力した受信データを受け取ってバッファメモリに書き込み、また、前記タイミング制御回路によって割り当てられた読み出しのタイミングスロットが訪れたとき対応する通信チャネルインタフェース回路のテンポラリ送信バッファが空のときにバッファメモリから送信データを読み出して対応するテンポラリ送信バッファに転送する制御を行う転送プロトコルロジック回路(61,61B)とを有する。
【0031】
通信回路によるデータの送受信速度に比べて通信用ブリッジ回路の動作速度が格段に高速な場合に、通信回路からテンポラリ受信バッファに供給された受信データを対応する通信チャネルバッファ領域に書き込むタイミングを時分割された既定スロットにより簡単に制御することができ、同様に、通信回路に供給する送信データを対応する通信チャネルバッファ領域から対応するテンポラリ送信バッファに書き込むタイミングを時分割された既定スロットにより簡単に制御することができる。
【0032】
〔8〕<アドレスカウンタの順次アドレス更新動作>
項7の半導体装置において、前記通信チャネルインタフェース回路は、対応する通信チャネルバッファ領域からテンポラリ送信バッファへの送信データの読み出し毎に順次送信用アドレスカウンタの値を更新してスタートアドレスからエンドアドレスまで変化させ、テンポラリ受信バッファから対応する通信チャネルバッファ領域への受信データの書き込み毎に順次受信用アドレスカウンタの値を更新してスタートアドレスからエンドアドレスまで変化させる。
【0033】
送信データを通信チャネルバッファ領域から逐次テンポラリ送信バッファにリードし、また、受信データをテンポラリ受信バッファから逐次通信チャネルバッファにライトするためのバッファメモリアクセスのポイントアドレス生成論理を簡素化することができる。
【0034】
〔9〕<繰り返し送信における一部同一データに対する更新スキップ>
項8の半導体装置において、前記中央処理装置は、前記レジスタ回路により定義された通信チャネルバッファ領域のデータを繰り返し送信するとき、最初の送信では当該通信チャネルバッファ領域の全領域に送信データを書き込んで送信を指示し、後続の送信では当該通信チャネルバッファ領域の一部の領域の送信データだけを更新して送信を指示する。
【0035】
パケットのような単位で送信データを繰り返し送信するときそのパケットの先頭や末尾を示す固定コードを毎回付加するような場合に、中央処理装置が当該固定コードを毎回バッファメモリに書き込む手間を軽減することが出来る。
【0036】
〔10〕<受信データに対するコンペア機能を備えたバスインタフェース>
項1の半導体装置において、前記バスインタフェース回路(31A)は、前記バッファメモリに格納された受信データを比較対象データと比較し、比較結果を蓄積し、蓄積した比較結果を中央処理装置に参照可能にする。
【0037】
バッファメモリに格納された受信データの全てをCPUが参照しなくても、バスインタフェース回路によって蓄積された比較結果を参照して、必要な受信データだけをリードして処理することができ、中央処理装置の負担軽減、バストラフィックの低減、更には受信データに対するデータ処理効率の向上に資することができる。
【0038】
〔11〕<コンペアデータ、コンペアアドレス領域及び比較結果のレジスタ>
項10の半導体装置において、前記制御レジスタ回路(30A)は、前記比較対象データが設定されるコンペアデータレジスタ(CMPDREG)、前記比較対象データと比較される受信データのバッファメモリ上のアドレス領域が設定されるコンペアアドレス領域指定レジスタ(CMOSAREG,CMPEAREG)、及び前記比較結果が蓄積されるコンペアリザルトレジスタ(CMPRSLTREG)を有する。
【0039】
比較対象データと比較される受信データの範囲を容易に可変にすることができる。
【0040】
〔12〕<比較回数を保持するレジスタ>
項11の半導体装置において、前記制御レジスタ回路は更に、前記比較結果の比較一致回数を保持するコンペアカウントレジスタ(CMPCUNTREG)を有する。
【0041】
特定のコードが繰り返し出現する状態に着目したい場合などに容易に対応することができる。
【0042】
〔13〕<割り込み要求ロジック>
項12の半導体装置において、前記レジスタ回路は更に、前記コンペアカウントレジスタが保持する比較一致回数が所定回数に達したとき前記中央処理装置に割り込みを要求する割り込み要求ロジック(50A)を有する。
【0043】
中央処理装置は割り込み要求の発生を待ってコンペアリザルトレジスタなどを参照し、又は、コンペアカウントレジスタが保持する比較一致回数に応じた割り込み処理を開始することが可能になる。
【0044】
〔14〕<DMA転送要求ロジック>
項12の半導体装置において、前記内部バスに接続されたダイレクトメモリアクセスコントローラを有し、
前記レジスタ回路は更に、前記コンペアカウントレジスタが保持する比較一致回数が所定回数に達したとき前記ダイレクトメモリアクセスコントローラにデータ転送要求を出力するデータ転送要求ロジック(51A)を有する。
【0045】
中央処理装置によるデータ転送処理を行わずにデータ転送要求を待ってダイレクトメモリアクセスが起動されることにより必要な受信データをデータメモリに転送する処理などを行うことができる。
【0046】
〔15〕<受信データに対するコンペア機能を備えた通信チャネルインタフェース>
項1の半導体装置において、前記通信インタフェース回路(33B)は、前記通信チャネルに一対一対応される通信チャネルインタフェース回路(CHIF0〜CHIF4)と、前記通信チャネルインタフェース回路と前記バッファメモリとの間のデータ転送を制御する転送制御回路(40B)とを有する。前記通信チャネルインタフェース回路は、前記バッファメモリに対するアクセスアドレスを生成する受信用アドレスカウンタ(RACUNT)及び送信用アドレスカウンタ(TACUNT)と、前記受信用アドレスカウンタによるアドレスカウント値毎に通信データを保持するテンポラリ受信バッファ(RDBUF)と、前記送信用アドレスカウンタによるアドレスカウント値毎に送信データを保持するテンポラリ送信バッファ(TDBUF)とを有する。前記転送制御回路は、前記受信用アドレスカウンタの値に基づいて前記テンポラリ受信バッファから対応する前記通信チャネルバッファへのデータの書き込みと前記送信用アドレスカウンタの値に基づいて対応する前記通信チャネルバッファから前記テンポラリ送信バッファへのデータの読み出しとを制御する。前記転送制御回路はさらに、前記テンポラリ受信バッファに受信した受信データを比較対象データと比較し、比較結果に応じた受信データの通信チャネルバッファ領域への書き込み動作に遷移し、遷移された書き込み動作の結果をCPUに参照可能にする。
【0047】
テンポラリ受信バッファに入力された受信データを予め比較対象データと比較した結果に基づいて受信データを確認して、必要な受信データだけを通信チャネルバッファに転送することができ、テンポラリ受信バッファに入力された受信データの全てを対応する通信チャネルバッファに転送しなくてもよく、さらには、不必要な受信データを予め整理するという意味で、中央処理装置の負担軽減、バストラフィックの低減、更には受信データに対するデータ処理効率の向上に資することができる。
【0048】
〔16〕<受信データに対するコンペア機能を備えた通信チャネルインタフェース>
項15の半導体装置において、前記制御レジスタ回路(30B)は、受信データと比較される比較対象データが設定されるコンペアデータレジスタ(CMPRDREG)と、受信データと前記比較対象データとの比較結果に応じて受信データが書き込まれるメモリアドレスが設定されるコンペアポイントメモリアドレスレジスタ(CMPMAREG)と、前記比較結果に応じてテンポラリ受信バッファに受信した受信データに対する動作形態が設定される分岐条件設定レジスタ(DVGCNDREG)とを複数組有する。前記転送制御回路(40B)は、前記複数組のレジスタに設定された設定値に従って、受信データのうち所要の受信データを選択して前記バッファメモリに格納する拡張受信モードを有する。
【0049】
複数組のレジスタを通信チャネル毎に自由に使うことにより、テンポラリ受信バッファに入力した受信データに対する処理のシーケンスを可変に設定することが出来る。
【0050】
〔17〕<割り込み要求ロジック>
項16の半導体装置において、前記レジスタ回路は更に、前記転送制御回路が前記分岐条件設定レジスタの設定に従って所定のコンペアポイントメモリアドレスレジスタで設定されたアドレスに受信データの書き込みを完了したとき、前記中央処理装置に割り込みを要求する割り込み要求ロジック(50B)を有する。
【0051】
中央処理装置はバッファメモリに書き込まれた受信データを割り込み要求の発生を待って参照することができ、又は、その割り込み要求に対応する割り込み要因に応じた割り込み処理を開始することが可能になる。
【0052】
〔18〕<DMA転送要求ロジック>
項16の半導体装置において、前記内部バスに接続されたダイレクトメモリアクセスコントローラを有する。前記レジスタ回路は更に、前記転送制御回路が前記分岐条件設定レジスタの設定に従って所定のコンペアポイントメモリアドレスレジスタで設定されたアドレスに受信データの書き込みを完了したとき、前記ダイレクトメモリアクセスコントローラにデータ転送要求を出力するデータ転送要求ロジック(51B)を有する。
【0053】
中央処理装置によるデータ転送処理を行わずにデータ転送要求を待ってダイレクトメモリアクセスが起動されることにより必要な受信データをデータメモリに転送する処理などを行うことができる。
【0054】
2.実施の形態の詳細
実施の形態について更に詳述する。
【0055】
〔実施の形態1〕
図1には本発明の一実施の形態に係るマイクロコンピュータが例示される。同図に示されるマイクロコンピュータ1は、特に制限されないが、CMOS集積回路製造技術によって単結晶シリコンのような1個の半導体基板に形成される。
【0056】
マイクロコンピュータ1(MCU)は、内部バス28と、前記内部バス28に接続された中央処理装置(CPU)25と、複数の通信チャネルを有する通信回路11と、前記通信回路11を前記内部バス28に接続する通信用ブリッジ回路(COMBRDG)10とを有する。通信回路11には例えば外部デバイスとしての複数の通信デバイス(COMDEV)2,3が接続される。通信回路11は、特に制限されないが、通信チャネルとして複数個のシリアルコミュニケーションインタフェース(SCI)チャネル(CH0〜CHn)を有するシリアルコミュニケーションインタフェース回路で構成される。CPU25はプログラムに記述された命令を順次フェッチし、フェッチした命令を解読し、その解読結果に従ってアドレス演算やデータ演算などを行ってその命令を実行する。
【0057】
前記内部バス28にはその他に、ダイレクトメモリアクセスコントローラ(DMAC)20,22、データ転送コントローラ(DTC)22、割り込みコントローラ(INTC)21、タイマ(TMR)27、CPU25のワーク領域などに用いられるランダムアクセスメモリ(RAM)24、CPU25が実行するプログラムやデータなどを格納するリードオンリメモリ(ROM)26、外部バスインタフェース(EXIF)12、及びメモリコントローラ(MCNT)13を有する。
【0058】
DMAC20は、CPU25によって予めデータ転送制御のための制御データ(転送元アドレス、転送先アドレス、転送語数など)が設定され、例えば通信用ブリッジ回路10からDMA転送要求信号DREQが供給されることによって、転送制御データで指定された転送条件に従ってデータ転送を開始する。
【0059】
割り込みコントローラ21は、通信用ブリッジ回路10などから割り込み要求信号IRQが供給されると、割り込み優先レベルや割り込みマスクレベルに従った調停などを行って割り込み信号INTをCPU25に出力する。CPU25は割り込み信号INTが供給されると、命令実行を終了して、復帰のために内部状態を退避し、その割り込み要求の割り込み要因に応ずる処理にプログラムフローを分岐する。
【0060】
メモリコントローラ13には、特に制限されないが、大容量のシンクロナスダイナミックランダムアクセスメモリ(SDRAM)4が接続される。
【0061】
前記通信回路11が有するSCIチャネルCH0〜CHnはキャラクタ単位で同期をとる調歩同期方式でシリアルデータ通信を行う回路である。例えば1キャラクタは、先頭にスタートビット(ST)、末尾にストップビット(ST)、その間に8ビットのデータを有するビット構成にされる。
【0062】
通信用ブリッジ回路10は、前記内部バス28に接続されるバスインタフェース回路(BUSIF)31、前記バスインタフェース回路31に接続され前記通信チャネルCH0〜CHnに一対一対応する通信チャネルバッファ領域が割り当てられるバッファメモリ(MRY)32、前記通信チャネルバッファ領域から対応する通信チャネルに与える送信データを読み出し且つ通信チャネルから与えられる受信データを対応する通信チャネルバッファ領域に書き込む制御を行う通信インタフェース回路(COMIF)33、及び前記バスインタフェース回路31を介して前記通信チャネルバッファ領域の定義情報が設定され、設定された定義情報を前記通信インタフェース回路33に与えるレジスタ回路(CREG)30とを有する。バッファメモリ32はデュアルポートを持つRAMによって構成されるが、当該デュアルポートは並列アクセス可能なデュアルポート、又は時分割アクセス可能なデュアルポートのいずれであってもよい。
【0063】
図2には通信用ブリッジ回路10の具体例が示される。
【0064】
通信回路11のSCIチャネルCH0〜CHn(ここではn=4)は、特に制限されないが、通信インタフェース回路33からキャラクタ単位で送信データをパラレルに受け取ってシリアルクロックSCICLKに同期してシリアル出力端子SOUTにシリアル出力する送信レジスタ回路TREG、キャラクタ単位で受信データをシリアルクロックSCICLKに同期してシリアル入力端子SINから受け取って通信インタフェース33にパラレルに出力する受信レジスタ回路RREGを有する。
【0065】
通信インタフェース回路33は、通信チャネルCH0〜CH4に一対一対応される通信チャネルインタフェース回路CHIF0〜CHIF4と、前記通信チャネルインタフェース回路CHIF0〜CHIF4とバッファメモリ32との間のデータ転送を制御する転送制御回路(TRCNT)40とを有する。
【0066】
通信チャネルインタフェース回路CHIF0〜CHIF4のそれぞれは、バッファメモリ32に対するアクセスアドレスを生成する受信用アドレスカウンタRACUNT及び送信用アドレスカウンタTACUNTと、前記受信用アドレスカウンタRACUNTによるアドレスカウント値毎に通信データを保持するテンポラリ受信バッファRDBUFと、前記送信用アドレスカウンタTACUNTによるアドレスカウント値毎に送信データを保持するテンポラリ送信バッファTDBUFとを有する。通信チャネルインタフェース回路CHIF0〜CHIF4はシステムクロックSYSCLKに同期動作される。システムクロック信号SYSCLKはシリアルクロック信号SCICLKに対して数倍以上の高い周波数とされる。
【0067】
前記転送制御回路40は、前記受信用アドレスカウンタRACUNTの値に基づいて前記テンポラリ受信バッファRDBUFからバッファメモリ32上の対応する前記通信チャネルバッファへのデータの書き込み制御を行い、また、前記送信用アドレスカウンタTACUNTの値に基づいてバッファメモリ32上の対応する前記通信チャネルバッファからテンポラリ送信バッファTDBUFへのデータの読み出し制御を行う。前記受信用アドレスカウンタRACUNT及び送信用アドレスカウンタTACUNTにはレジスタ回路30からスタートアドレスが初期設定され、テンポラリ受信バッファRDBUFから対応する前記通信チャネルバッファへのデータの書き込み毎に前記受信用アドレスカウンタRACUNTの値が更新され、通信チャネルバッファから前記テンポラリ送信バッファTDBUFへのデータの読み出し毎に送信用アドレスカウンタTACUNTの値が更新される。
【0068】
レジスタ回路30は、前記通信チャネルCH0〜CH4のそれぞれに対応して、対応する通信チャネルバッファ領域のスタートアドレスを定義するスタートアドレスレジスタBSAREG、エンドアドレスを定義するエンドアドレスレジスタBEAREG、及び対応する前記通信チャネルインタフェース回路CHIF0〜CHIF4によって通信状態のステータス情報がセットされるステータスレジスタSTREGを、送信用と受信用に個別に備える。それらレジスタはCPU25のアドレス空間に配置され、バスインタフェース回路31を介してCPU25が任意にデータを設定できるようになっている。それらレジスタBSAREG、BEAREGの定義情報に従ってCPU25と通信インタフェース回路33が把握する通信チャネルバッファ領域は、図2に例示されるように、通信チャネル毎に送信用と受信用に分けて割り当てられる。例えば、CHBUF0_Rは通信チャネルCH0に割り当てられた受信データ用の通信チャネルバッファ、CHBUF0_Tは通信チャネルCH0に割り当てられた送信データ用の通信チャネルバッファである。CHBUF4_Rは通信チャネルCH4に割り当てられた受信データ用の通信チャネルバッファ、CHBUF4_Tは通信チャネルCH4に割り当てられた送信データ用の通信チャネルバッファである。受信用バッファ領域と送信用バッファ領域とのサイズは同一でなくてよいことは言うまでもない。
【0069】
レジスタ回路30は更に、ステータスレジスタSTREGに保持されたステータス情報に応じてCPU25に所定の割り込み処理を要求する割り込み要求信号IRQを出力する割り込み要求ロジック(IRQLGC)50と、ステータスレジスタSTREGに保持されたステータス情報に応じてDMAC20にデータ転送要求信号DREQを出力するデータ転送要求ロジック(DREQLGC)51を有する。
【0070】
例えば割り込み要求ロジック50はステータスレジスタSTREGに受信完了ステータスがセットされたとき割り込み要求信号をアサートし、受信完了による割り込み要因とその要因が発生した通信チャネル番号をCPU25によって参照可能にする。したがって、CPU25は割り込み要求の発生を待ってステータス情報を参照することができ、また、ステータス情報を参照することなく割り込み要求の要因に応じて通信チャネルバッファ領域から受信データをリードする処理などの必要な処理を開始することができる。また、データ転送要求ロジック51は、ステータスレジスタSTREGに受信完了ステータスがセットされたときデータ転送要求信号DREQをアサートし、DMAC20は予め設定されているデータ転送制御条件に従ったDMA転送を開始して、受信データをSDRAM4などに転送する。図には割り込み要求信号IRQとデータ転送要求信号DREQをそれぞれ1個づつ代表的に図示しているが、割り込みコントローラ21の許容範囲で複数の割り込み要求信号の出力機能を採用し、また、DMAC20が持つDMA転送チャネルの数に応じて複数のデータ転送要求信号の出力機能を採用することも可能である。
【0071】
尚、CPU25はポーリングなどによってステータスレジスタSTREGの内容を任意に参照することも可能である。
【0072】
バスインタフェース回路31は内部バス28を介してCPU25等にバッファメモリ32及びレジスタ回路30をリードアクセス及びライトアクセス可能にインタフェースする機能を備える。特に、この実施の形態では、内部バス28を介してバッファメモリ32に対する書き込みアドレスがレジスタ回路30のスタートアドレスレジスタBSAREGに予め設定されたスタートアドレスに一致するとき、一致したスタートアドレスに対応される通信チャネルインタフェース回路CHIF0〜CHIF4に対して送信開始トリガ信号TRSTRにより送信開始を指示する。例えばCPU25が通信チャネルCH0に対応する通信チャネルバッファ領域CHBUF_Tに送信データを順次書き込んで行き、最後に通信チャネルバッファ領域CHBUF_Tの先頭アドレスに対して送信データを書き込むと、そのアドレスが当該通信チャネルCH0に対応するバッファスタートアドレスレジスタBSAREGのアドレスと一致することにより、バスインタフェース回路31は送信開始トリガ信号TRSTRを活性化する。転送制御回路40はこれに応答して、通信チャネルインタフェース回路CHIF0の送信アドレスカウンタTACUNTの初期アドレスを先頭に通信チャネルバッファ領域CHBUF0_Tからキャラクタ単位で送信データをテンポラリ送信データバッファTDBUFに読み込んで、送信レジスタ回路TREGに与える。送信レジスタ回路TRREGは送信データをシリアルクロックSCICLKに同期して端子SOUTにシリアル出力する。転送制御回路40はこの操作を、送信アドレスカウンタTACUNTのアドレス値が、転送チャネルCH0に対応するバッファエンドアドレスレジスタBEAREGが保有するメモリアドレスに到達するまで繰り返す。送信開始トリガ信号TRSTRは通信チャネルインタフェース回路毎に設けられた信号として位置付けられる。これにより、転送制御回路40に対する送信処理動作開始のトリガを簡単なロジックによって生成することができる。
【0073】
これに対して受信動作の場合、例えば通信チャネルCH0の受信レジスタ回路RREGにキャラクタ単位で受信データが入力されると、1キャラクタ分の受信データが対応するチャネルインタフェース回路CHIF0のテンポラリ受信データバッファRDBUFに転送され、この状態が転送制御回路40に通知される。転送制御回路40は、このテンポラリ受信データバッファRDBUFに対応する受信アドレスカウンタRACUNTの保持値が転送チャネルCH0に対応する受信用のスタートアドレスレジスタが保持するアドレス値に一致するとき、これに応答して、通信チャネルインタフェース回路CHIF0の受信アドレスカウンタRACUNTの初期アドレスを先頭に当該テンポラリ受信データバッファRDBUFからキャラクタ単位で当該受信データを通信チャネルバッファ領域CHBUF0_Rに書き込む。転送制御回路40はこの操作を、受信アドレスカウンタRACUNTのアドレス値が、転送チャネルCH0に対応する受信用のバッファエンドアドレスレジスタBEAREGが保有するメモリアドレスに到達するまで繰り返す。これにより、転送制御回路40に対する受信処理動作開始のトリガを簡単なロジックによって生成することができる。
【0074】
図3には送信動作と受信動作の詳細なタイミングチャートが例示される。ここでは通信チャネルはCH0〜CH7(n=7)の8個設けられているものとし、バッファメモリ32に対する転送制御回路40による時分割アクセスにおいてタイミングスロット制御を行う場合について説明する。
【0075】
転送制御回路40は、図2に例示されるように、タイミングスロットの割り当てを行うタイミング制御回路(TMGC)60と、割り当てられたタイミングスロットでバッファメモリ32のアクセスを行うか否かの制御を行う転送プロトコルロジック回路(PRTCL)61とを有する。更に詳しくは、タイミング制御回路60は、テンポラリ受信バッファRDBUFからバッファメモリ32へのデータ書き込みのタイミングスロットを全ての通信チャネルCH0〜CH7に順次時分割で対応させて割り当てると共に、バッファメモリ32からテンポラリ送信バッファTDBUFへのデータ読み出しのタイミングスロットを全ての通信チャネルCH0〜CH7に順次時分割で対応させて割り当てる制御を行う。転送プロトコルロジック回路61は、タイミング制御回路60によって割り当てられた書き込みのタイミングスロットが到来したとき対応する通信チャネルインタフェース回路のテンポラリ受信バッファRDBUFがデータ保持状態のとき当該テンポラリ受信バッファRDBUFから入力した受信データを受け取ってバッファメモリ32に書き込み、また、前記タイミング制御回路60によって割り当てられた読み出しのタイミングスロットが訪れたとき対応する通信チャネルインタフェース回路のテンポラリ送信バッファTDBUFが空のときにバッファメモリ32から送信データを読み出して対応するテンポラリ送信バッファTDBUFに転送する制御を行う。
【0076】
上記タイミングスロット制御の前提は、通信回路11によるシリアル送受信速度に対して通信インタフェース回路33によるバッファメモリ32のアクセス速度が格段に速いことである。図3の例では、1キャラクタ分のシリアル受信動作及びシリアル送信動作の何れの期間においても、CH0〜CH7の全通信チャネルに対するCOMIF33からMRY32への書き込みタイミングスロットの期間とMRY32からCOMIF33への読み出しタイミングスロットの期間とを確保できるようにされる。具体的には、1キャラクタ分に1バイトデータの受信時お呼び送信時の何れのタイミングも16分割し、第1から第8分割までをバッファメモリ32への書き込みタイミングスロットに割り当て、第9から第16分割までをバッファメモリ32からの読み出しタイミングスロットに割り当てる。これにより、COMIF33は、夫々の通信チャネルによる1キャラクタ分のシリアル通信中に必ず1回バッファメモリ32に対する書き込み及び読み出しのためのアクセス権を獲得することができる。これを充足するには、システムクロック信号SYSCLKの周波数を送信動作を行う通信チャネルの数及び受信動作を行う通信チャネルの数の和で除した商がシリアルクロック信号SCICLKのクロック信号周波数よりも大きいことを満足すればよい。
【0077】
図4Aおよび図4Cには一部同一のデータを繰り返し送信する送信処理動作の例が示される。例えば図4Aに例示されるように、固定送信データAA、固定送信データBB、任意送信データdata0、任意送信データdata1、固定送信データCC、及び固定送信データDDを繰り返し送信する場合について説明する。このような一部同一のデータを繰り返し送信する送信処理であっても、本実施の形態のように容量可変のバッファメモリを用いることをしないでテンポラリ送信データバッファのようなバッファに逐次送信データをセットしてその都度送信を行う構成の場合には、図4Bに例示されるように、キャラクタ単位で前の送信の完了を確認して次の送信データをテンポラリ送信データバッファのようなバッファに書き込み処理を、固定データAA,BB,CC,DDを含めて6バイトの全データに対して毎回書き込まなければならない。これに対して本実施の形態の場合には、図4Cに例示されるように、最初の6バイトの送信ではバッファメモリ32の所要の通信チャネルバッファ領域の全領域に送信データを書き込んで送信を指示し、後続の送信では当該通信チャネルバッファ領域の一部の可変データdata0,data1の領域の送信データだけを更新して送信を指示すればよい。当該通信チャネルバッファ領域から通信インタフェース回路33を介してシリアル出力されるデータは、最初の6バイトデータも、次の6バイトデータもAA,BB,data0、data1、CC,DDになる。
【0078】
パケットのような単位で送信データを繰り返し送信するときそのパケットの送信元や送信先などを示す固定コードを毎回付加するような場合に、CPU25が当該固定コードを毎回バッファメモリ32に書き込む手間を軽減することが出来る。
【0079】
図5には図4Cのように一部固定データを含む6バイトのデータを繰り返し送信するときのCPU25によるバッファメモリ32の所要の通信チャネルバッファ領域への通信データの書き込み動作手順が例示される。送信用の通信チャネルバッファ領域CHBUS0_TのアドレスA0〜A5に6バイトのデータAA,BB,data0,data1CC,DDが格納されるものとする。この場合、CPU25による送信用の通信チャネルバッファ領域CHBUS0_TのアドレスA0〜A5に対するデータの書き込み順は、第1回目の転送用(第1パケット)については、アドレスA1,A2,A3,A4,A5,A0の順にデータBB,data0,data1,CC,DD,AAの書き込みとされる。最後に当該バッファ領域CHBUS0_Tの先頭アドレスA0(BSAREGの設定値に一致するアドレス)に対する書き込みが行われることによって送信開始トリガ信号TRSTRにより送信開始が指示され、転送チャネルインタフェース回路CHIF0の転送アドレスカウンタTACUNTの初期値A0から順次アドレスA5までのデータが順次バッファ領域CHBUS0_Tからテンポラリ送信バッファTDBUFに読み出されて、順次データAA,BB,data0,data1,CC,DDが外部に送信される。第2回目(第2パケット送信)については、アドレスA2,A3,A0の順に可変データdata0,data1だけの書き込みが行われる。最後に当該バッファ領域CHBUS0_Tの先頭アドレスA0(BSAREGの設定値に一致するアドレス)に対する書き込みが行われたときは第1回目と同様に、送信開始トリガ信号TRSTRにより送信開始が指示され、転送チャネルインタフェース回路CHIF0の転送アドレスカウンタTACUNTの初期値A0から順次アドレスA5までのデータが順次バッファ領域CHBUS0_Tからテンポラリ送信バッファTDBUFに読み出されて、順次データAA,BB,data0,data1,CC,DDが外部に送信される。第3回目(第3パケット送信)以降は第2回目と同様であり、必要に応じて可変データdata0,data1と送信トリガとされるアドレスA0への書き込みだけを繰り返せばよい。
【0080】
上記実施の形態1によれば以下の作用効果を得ることができる。即ち、レジスタ回路30に定義された情報に従って通信チャネルCH0〜CHn毎に通信チャネルバッファ領域(CHBUF0_T,CHBUF0_R…)を定義することができるから、通信チャネル毎にバッファを専用化して持つ場合に比べて、記憶容量に無駄を生ずることなく通信量の多い通信チャネルには大きな容量のバッファ領域を使用させることができる。チャネルバッファ領域の大きさの設定に応じてバス上における通信データのバストラフィックを制御することが可能になる。チャネルバッファ領域を大きく設定すれば、受信データの一次保持期間を長くすることが出来るので、その分だけバッファ領域からバスへのデータ出力間隔を長くすることができ、バストラフィックを低下させることが可能になる。このことは、処理速度という点で、通信データに対するCPU25の処理負担の軽減にもつながる。
【0081】
CPU25は、通信チャネルバッファ領域の受信データをリードして通信状態を判別しなくてもステータスレジスタSTREGにセットされたステータス情報を直接参照することができるから、通信状態に応じて必要な受信データだけをリードして処理することが可能になる。同様に、ステータスレジスタSTREGの値に応じて割り込み要求信号IRQやデータ転送要求信号DREQの出力機能を備えることによっても、通信状態に応じて必要な受信データだけをリードして処理することが可能になる。これらの点においても、バストラフィックの低減と、CPU25の処理負担軽減に資することができる。
【0082】
〔実施の形態2〕
図6には本発明の実施の形態2に係る通信用ブリッジ回路10Aの具体例が示される。図2に基づいて説明した通信用ブリッジ回路10に対してレジスタ回路30Aの構成とバスインタフェース回路31Aの機能が相違され、バッファメモリ32に格納された受信データに対してバスインタフェース回路31Aがレジスタ回路30Aの設定に基づいてコンペア機能を実現するものである。以下その相違点に係る構成について詳細を説明し、実施の形態1と同様の構成についてはその詳細な説明を省略する。
【0083】
制御レジスタ回路30Aは、バッファメモリに格納された受信データとの比較対象にされる比較対象データが設定されるコンペアデータレジスタCMPDREG、比較対象データと比較される受信データのバッファメモリ32上のアドレス領域の先頭を指定するコンペアスタートアドレスレジスタCMPSAREG、そのアドレス領域の末尾を指定するコンペアエンドアドレスレジスタCMPEAREG、前記比較結果が蓄積されるコンペアリザルトレジスタCMPRSLTREG、及び前記比較結果の比較一致回数を保持するコンペアカウントレジスタCMPCUNTREGを有する。それらレジスタは他のレジスタ同様にバスインタフェース回路31Aを介して内部バス28からアクセス可能にCPU25のアドレス空間に配置される。CPU25は目的とする通信チャネルからの受信データが対応する通俊チャネルバッファ領域に格納されてそのステータスレジスタが通信完了にセットされるのを参照して、若しくはそのステータスレジスタが通信完了にセットされることによって発生される割り込み要求信号IRQによる割り込み要求に応答して、前記レジスタCMPSAREG、CMPEAREG、CMPDREGに書き込みを行う。
【0084】
バスインタフェース回路31Aは、例えばレジスタレジスタCMPDREGに対するデータ書き込みの完了を検出して比較動作を開始し、レジスタCMPSAREGで指定されるメモリアドレスを起点にレジスタCMPEAREGで指定されるメモリアドレスまでの範囲の受信データをレジスタCMPDREGのデータと順次比較し、レジスタCMPRSLTREGにはその比較結果と共にその受信データのアドレスなどの比較条件などを格納し、レジスタCMPCUNTREGには比較一致回数を累積していく。
【0085】
これにより、バッファメモリ32に格納された受信データの全てをCPU25が参照しなくても、バスインタフェース回路31Aによって蓄積された比較結果をレジスタCMPRSLTREG,CMPCUNTREGから参照して、必要な受信データだけをリードして処理することができ、CPU25の負担軽減、バストラフィックの低減、更には受信データに対するデータ処理効率の向上に資することができる。レジスタCMPCUNTREGの計数値を参照することにより、特定のコードが繰り返し出現する状態に着目したい場合などに容易に対応することができる。
【0086】
特に、レジスタ回路30Aが保有する割り込み要求ロジック(IRQLGC)50Aは図2の割り込み要求ロジック50に比べ、コンペアカウントレジスタCMPCUNTREGが保持する比較一致回数が所定回数に達したときCPU25に割り込み要求信号IRQをアサートすると共にその割り込み要因を参照可能にする割り込み要求生成機能が追加されている。これによりCPU25は、割り込み要求の発生を待ってコンペアリザルトレジスタCMPRSLTREGなどを参照し、又は、コンペアカウントレジスタCMPCUNTREGが保持する比較一致回数に応じた割り込み処理を開始することが可能になる。
【0087】
更に、レジスタ回路30Aが保有するデータ転送要求ロジック(DREQLGC)51Aは図2のデータ転送要求ロジック51に比べ、コンペアカウントレジスタがCMPCUNTREG保持する比較一致回数が所定回数に達したときDMAC20にデータ転送要求信号DREQを出力するデータ転送要求機能が追加されている。これにより、CPU25によるデータ転送処理を行わずに要求信号DREQによるデータ転送要求を待ってダイレクトメモリアクセスが起動されることにより必要な受信データをSDRAM4に転送する処理などを行うことができる。
【0088】
図7にはバスインタフェース回路31Aによるレジスタ回路30Aの設定に基づくコンペア動作が例示される。ここでは通信チャネルCH4に対応する通信チャネルバッファ領域CHBUF4_Rに格納された受信データを比較処理の対象とする場合が例示される。通信チャネルバッファ領域CHBUF4_Rに割り当てられたアドレスは1000番地乃至1100番地である。レジスタCMPSAREGには1000番地、レジスタCMPEAREGには1100番地が設定され、レジスタCMPDREGにはH’AAAが設定されるものとする。レジスタCMPDREGにデータH’AAAが書き込まれると比較処理が開始され、通信チャネルバッファ領域CHBUF4_Rの1000番地から1100番地の間でデータH’AAAを参照したとき、比較結果とそのアドレスなどをコンペアリザルトレジスタCMPRSLTREGに逐次格納し、コンペアカウントレジスタCMPCUNTREGには一致回数が累積される。CPU25はコンペアリザルトレジスタCMPRSLTREGやコンペアカウントレジスタCMPCUNTREGを参照して通信チャネルバッファ領域CHBUF4_Rから必要な受信データをアクセスし、又は割り込み要求に応答してCPU25が通信チャネルバッファ領域CHBUF4_Rを参照し、或いはデータ転送要求に応答してDMAC20が通信チャネルバッファ領域CHBUF4_RのデータをSDRAM4に転送する処理などを行う。
【0089】
〔実施の形態3〕
図8には本発明の実施の形態3に係る通信用ブリッジ回路10Bの具体例が示される。
【0090】
図2に基づいて説明した通信用ブリッジ回路10に対してレジスタ回路30B、バスインタフェース回路31B、及び転送制御回路40Bの機能が相違され、テンポラリ受信バッファRDBUFに入力した受信データに対して転送制御回路40Bがレジスタ回路30Bの設定に基づいてコンペア機能を実現するものである。以下その相違点に係る構成について詳細を説明し、実施の形態1と同様の構成についてはその詳細な説明を省略する。
【0091】
前記制御レジスタ回路30Bには、受信データと比較される比較対象データが設定されるコンペアデータレジスタCMPRDREGと、受信データと前記比較対象データとの比較結果に応じて受信データが書き込まれるメモリアドレスが設定されるコンペアポイントメモリアドレスレジスタCMPPMAREGと、前記比較結果に応じてテンポラリ受信バッファに受信した受信データに対する動作形態が設定される分岐条件設定レジスタDVGCNDREGとを複数組、例えばレジスタブロックRBLK0とレジスタブロックRBLK1との2組が追加されている。
【0092】
転送制御回路40Bには、前記テンポラリ受信バッファに受信した受信データを比較対象データと比較し、比較結果に応じた受信データの通信チャネルバッファ領域への書き込み動作に遷移し、遷移された書き込み動作の結果をCPUに参照可能にする機能が追加され、例えば、前記複数組のレジスタブロックRBLK0,RBLK1に設定された設定値に従って、受信データのうち所要の受信データを選択して前記バッファメモリ32に格納する拡張受信モードが追加されている。
【0093】
図9には拡張受信モードによる転送制御回路40Bの動作が例示される。テンポラリ受信バッファRDBUFにデータが受信されると、その受信データがレジスタブロックRBLK0のコンペアデータレジスタCMPRDREG[RBLK0]のデータに一致するか否かが判別され(S1)、一致が判別されると、その受信データがレジスタブロックRBLK0のコンペアポイントメモリアドレスレジスタCMPPMAREG[RBLK0]で指定されるバッファメモリ32上のアドレスに書き込まれ、且つ、そのアドレスが受信アドレスカウンタRACUNTにプリセットされて+1インクリメントされる(S2)。この動作の次に、レジスタブロックRBLK0の分岐条件設定レジスタDVGCNDREG[RBLK0]が示す処理への遷移が指示される(S3)。
例えば、テンポラリ受信バッファRDBUFの受信データに対する判別処理対象がレジスタブロックRBLK1のコンペアポイントメモリアドレスレジスタCMPPMAREG[RBLK0]のアドレスに変更する指示とされる。その指示に従った受信アドレスカウンタRACUNTに対する一致判別が行われ(S4A)、一致するまで、テンポラリ受信バッファRDBUFの受信データをアドレスカウンタRACUNTのカウント値に従ってバッファメモリ32に格納し(S5)、一致が判別されると、たとえば、その受信データがレジスタブロックRBLK1のコンペアデータレジスタCMPRDREG[RBLK1]のデータに一致するか否かが判別され(S4B)、一致が判別されると、その受信データがレジスタブロックRBLK1のコンペアポイントメモリアドレスレジスタCMPPMAREG[RBLK1]で指定されるバッファメモリ32上のアドレスに書き込まれ(S6)、この動作の次に、レジスタブロックRBLK1の分岐条件設定レジスタDVGCNDREG[RBLK1]が示す処理への遷移が指示される(S7)。例えば、受信処理を終了する。
【0094】
ステップS2で初めて受信データをバッファメモリ32に書き込んだ後のステップS3における動作遷移指示では、所定のステータスレジスタSTREGに受信開始のステータス情報をセットさせ、これによって制御レジスタ回路30BにCPU25への受信開始の割り込みを要求させてもよい。同様に、ステップS6で目的の受信データをバッファメモリ32に書き込んだ後のステップS7における動作遷移指示では、所定のステータスレジスタSTREGに受信完了のステータス情報をセットさせ、これによって制御レジスタ回路30BにCPU25への受信開始の割り込みを要求させ、或いはDMAC20に受信データのデータ転送を要求させてもよい。
【0095】
図10には図9のシーケンスに基づくデータ受信動作のタイミングチャートが示される。
【0096】
レジスタブロックRBLK0のコンペアデータレジスタCMPRDREG[RBLK0]にはCCがセットされ、レジスタブロックRBLK0のコンペアポイントメモリアドレスレジスタCMPPMAREG[RBLK0]には100番地がセットされ、レジスタブロックRBLK01のコンペアデータレジスタCMPRDREG[RBLK1]にはDDがセットされ、レジスタブロックRBLK1のコンペアポイントメモリアドレスレジスタCMPPMAREG[RBLK1]には104番地がセットされる。レジスタブロックRBLK0の分岐条件設定レジスタDVGCNDREG[RBLK0]には図9のステップS4A,S4B,S5,S6およびS1の条件が設定される。レジスタブロックRBLK1の分岐条件設定レジスタDVGCNDREG[RBLK1]には受信処理終了の条件が設定される。これにより、図10の例では、受信データの一部である所要の受信データCC、data1、data2、data3、DDだけをバッファメモリ32の100番地〜104番地に格納して受信処理を終了することができる。
【0097】
これによれば、テンポラリ受信バッファRDBUFに入力された受信データを予め比較対象データと比較した結果に基づいて受信データを確認して、必要な受信データだけを通信チャネルバッファに転送することができ、テンポラリ受信バッファRDBUFに入力された受信データの全てをバッファメモリ32上の対応する通信チャネルバッファ領域に転送しなくてもよく、さらには、不必要な受信データを予め整理するという意味で、CPU25の負担軽減、バストラフィックの低減、更には受信データに対するデータ処理効率の向上に資することができる。レジスタブロックRBLK0,RBLK1に代表される複数組のレジスタを通信チャネル毎に自由に使うことにより、テンポラリ受信バッファRDBUFに入力した受信データに対する処理のシーケンスを可変に設定することができる。
【0098】
特に、制御レジスタ回路30Bが保有する割り込み要求ロジック(IRQLGC)50Bは図2の割り込み要求ロジック50に比べ、前記転送制御回路40Bが前記分岐条件設定レジスタDVGCNDREGの設定に従って所定のコンペアポイントメモリアドレスレジスタCMPPMAREGで設定されたアドレスに受信データの書き込みを完了したとき、CPU25に割り込みを要求する割り込み要求信号IRQとその割り込み要因を出力する機能が追加されている。これにより、CPU25はバッファメモリ32に書き込まれた受信データを割り込み要求の発生を待って参照することができ、又は、その割り込み要求に対応する割り込み要因に応じた割り込み処理を開始することが可能になる。
【0099】
更に、レジスタ回路30Bが保有するデータ転送要求ロジック(DREQLGC)51Bは図2のデータ転送要求ロジック51に比べ、前記転送制御回路51Bが前記分岐条件設定レジスタDVGCNDREGの設定に従って所定のコンペアポイントメモリアドレスレジスタCMPPMAREGで設定されたアドレスに受信データの書き込みを完了したとき、DMAC20にデータ転送要求信号DREQを出力する機能が追加されている。これにより、CPU25によるデータ転送処理を行わずに、データ転送要求を待ってDMA転送が起動されることにより必要な受信データをSDRAM4に転送する処理などを行うことができる。
【0100】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【0101】
例えば、実施の形態1から3を組み合わせて一つの半導体装置を実現することも可能である。
【0102】
通信チャネルインタフェース回路は送受信別々のダブルバッファに限定されない。通信チャネルバッファ領域も同様である。それらの場合には、送受信タイミングに応じてダイナミックに機能切換えを行えばよい。
【0103】
実施の形態2で説明した受信データに対するコンペア機能を備えたバスインタフェースのためのコンペアスタートメモリレジスタなどのレジスタは転送チャネル毎に設けてもよい。実施の形態3で説明したレジスタブロックRBLK0,RBLK1の数は2に限定されず、それ以上であってもよい。多いほど複雑な分岐条件の設定が可能になる。
【0104】
アドレス領域が設定されるアドレス領域指定レジスタはスタートアドレスとエンドアドレスで指定する構成に限定されず、スタートアドレス及び領域サイズで指定してもよい。
【0105】
通信回路はSCIに限定されず、その他のシリアル通信を行う回路、更にはパラレル通信を行う通信回路などに用いる回路であってよい。
【0106】
バスインタフェース回路のコンペア機能に用いるレジスタ(CMPASREG,CMPEAREG,CMPDREG,CMPRSLTREG,CMPCUNTREG)は通信チャネル毎に設けてもよい。
【符号の説明】
【0107】
1 マイクロコンピュータ(MCU)
28 内部バス
25 中央処理装置(CPU)
11 通信回路
10 通信用ブリッジ回路(COMBRDG)
20 ダイレクトメモリアクセスコントローラ(DMAC)
21 割り込みコントローラ(INTC)
31 バスインタフェース回路(BUSIF)
CH0〜CHn 通信チャネル
32 バッファメモリ(MRY)
33 通信インタフェース回路(COMIF)
30 レジスタ回路(CREG)
SCICLK シリアルクロック
TREG 送信レジスタ回路
RREG 受信レジスタ回路
40 転送制御回路(TRCNT)
RACUNT 受信用アドレスカウンタ
TACUNT 送信用アドレスカウンタ
TDBUF テンポラリ送信バッファ
CHIF0〜CHIF4 通信チャネルインタフェース回路
SYSCLK システムクロック
BSAREG スタートアドレスレジス
BEAREG エンドアドレスレジスタ
STREG ステータスレジスタ
CHBUF0_R 受信データ用の通信チャネルバッファ
CHBUF0_T 送信データ用の通信チャネルバッファ
IRQ 割り込み要求信号
50 割り込み要求ロジック(IRQLGC)
51 データ転送要求ロジック(DREQLGC)
60 タイミング制御回路(TMGC)
61 転送プロトコルロジック回路(PRTCL)
CMPDREG コンペアデータレジスタ
CMPSAREG コンペアスタートアドレスレジスタ
CMPEAREG コンペアエンドアドレスレジスタ
CMPRSLTREG コンペアリザルトレジスタ
CMPCUNTREG コンペアカウントレジスタ
CMPRDREG コンペアデータレジスタ
CMPPMAREG コンペアポイントメモリアドレスレジスタ
DVGCNDREG 分岐条件設定レジスタ
RBLK0、RBLK1 レジスタブロック

【特許請求の範囲】
【請求項1】
内部バスと、前記内部バスに接続された中央処理装置と、複数の通信チャネルを有する通信回路と、前記通信回路を前記内部バスに接続する通信用ブリッジ回路とを有し、
前記通信用ブリッジ回路は、前記内部バスに接続されるバスインタフェース回路と、前記バスインタフェース回路に接続され前記通信チャネルに一対一対応する通信チャネルバッファ領域が割り当てられるバッファメモリと、前記通信チャネルバッファ領域から対応する通信チャネルに与える送信データを読み出し且つ通信チャネルから与えられる受信データを対応する通信チャネルバッファ領域に書き込む制御を行う通信インタフェース回路と、前記バスインタフェース回路を介して前記通信チャネルバッファ領域の定義情報が設定され設定された定義情報を前記通信インタフェース回路に与えるレジスタ回路とを有する、半導体装置。
【請求項2】
前記通信インタフェース回路は、前記通信チャネルに一対一対応される通信チャネルインタフェース回路と、前記通信チャネルインタフェース回路と前記バッファメモリとの間のデータ転送を制御する転送制御回路とを有し、
前記レジスタ回路は、前記通信チャネル毎に、対応する通信チャネルバッファ領域のスタートアドレス及びエンドアドレスを定義するアドレスレジスタと、対応する前記通信チャネルインタフェース回路によって通信状態のステータス情報がセットされ前記中央処理装置によって参照可能にされるステータスレジスタとを有する、請求項1記載の半導体装置。
【請求項3】
前記レジスタ回路は更に、前記ステータスレジスタに保持されたステータス情報に応じて前記中央処理装置に対する割り込み要求を出力する割り込み要求ロジックを有する、請求項2記載の半導体装置。
【請求項4】
前記内部バスに接続されたダイレクトメモリアクセスコントローラを有し、
前記レジスタ回路は更に、前記ステータスレジスタに保持されたステータス情報に応じて前記ダイレクトメモリアクセスコントローラにデータ転送要求を出力するデータ転送要求ロジックを有する、請求項2記載の半導体装置。
【請求項5】
前記バスインタフェース回路は、前記バッファメモリに対する書き込みアドレスが前記レジスタ回路に設定されたスタートアドレスに一致するとき、一致したスタートアドレスに対応される通信チャネルインタフェース回路に対して送信開始トリガ信号により送信開始を指示する、請求項2記載の半導体装置。
【請求項6】
前記通信チャネルインタフェース回路は、前記バッファメモリに対するアクセスアドレスを生成する受信用アドレスカウンタ及び送信用アドレスカウンタと、前記受信用アドレスカウンタによるアドレスカウント値毎に通信データを保持するテンポラリ受信バッファと、前記送信用アドレスカウンタによるアドレスカウント値毎に送信データを保持するテンポラリ送信バッファとを有し、
前記転送制御回路は、前記受信用アドレスカウンタの値に基づいて前記テンポラリ受信バッファから対応する前記通信チャネルバッファへのデータの書き込みと前記送信用アドレスカウンタの値に基づいて対応する前記通信チャネルバッファから前記テンポラリ送信バッファへのデータの読み出しとを制御し、
前記受信用アドレスカウンタ及び送信用アドレスカウンタには前記レジスタ回路からスタートアドレスが初期設定され、前記テンポラリ受信バッファから対応する前記通信チャネルバッファへのデータの書き込み毎に前記受信用アドレスカウンタの値が更新され、前記通信チャネルバッファから前記テンポラリ送信バッファへのデータの読み出し毎に前記送信用アドレスカウンタの値が更新される、請求項3記載の半導体装置。
【請求項7】
前記転送制御回路は、テンポラリ受信バッファからバッファメモリへのデータ書き込みのタイミングスロットを全ての通信チャネルに順次時分割で対応させて割り当てると共に、バッファメモリからテンポラリ送信バッファへのデータ読み出しのタイミングスロットを全ての通信チャネルに順次時分割で対応させて割り当てる制御を行うタイミング制御回路と、
前記タイミング制御回路によって割り当てられた書き込みのタイミングスロットが訪れたとき対応する通信チャネルインタフェース回路のテンポラリ受信バッファがデータ保持状態のとき当該テンポラリ受信バッファから入力した受信データを受け取ってバッファメモリに書き込み、また、前記タイミング制御回路によって割り当てられた読み出しのタイミングスロットが到来したとき対応する通信チャネルインタフェース回路のテンポラリ送信バッファが空のときにバッファメモリから送信データを読み出して対応するテンポラリ送信バッファに転送する制御を行う転送プロトコルロジック回路と、を有する請求項6記載の半導体装置。
【請求項8】
前記通信チャネルインタフェース回路は、対応する通信チャネルバッファ領域からテンポラリ送信バッファへの送信データの読み出し毎に順次送信用アドレスカウンタの値を更新してスタートアドレスからエンドアドレスまで変化させ、テンポラリ受信バッファから対応する通信チャネルバッファ領域への受信データの書き込み毎に順次受信用アドレスカウンタの値を更新してスタートアドレスからエンドアドレスまで変化させる、請求項7記載の半導体装置。
【請求項9】
前記中央処理装置は、前記レジスタ回路により定義された通信チャネルバッファ領域のデータを繰り返し送信するとき、最初の送信では当該通信チャネルバッファ領域の全領域に送信データを書き込んで送信を指示し、後続の送信では当該通信チャネルバッファ領域の一部の領域の送信データだけを更新して送信を指示する、請求項8記載の半導体装置。
【請求項10】
前記バスインタフェース回路は、前記バッファメモリに格納された受信データを比較対象データと比較し、比較結果を蓄積し、蓄積した比較結果を中央処理装置に参照可能にする、請求項1記載の半導体装置。
【請求項11】
前記制御レジスタ回路は、前記比較対象データが設定されるコンペアデータレジスタ、前記比較対象データと比較される受信データのバッファメモリ上のアドレス領域が設定されるコンペアアドレス領域指定レジスタ、及び前記比較結果が蓄積されるコンペアリザルトレジスタを有する、請求項10記載の半導体装置。
【請求項12】
前記制御レジスタ回路は更に、前記比較結果の比較一致回数を保持するコンペアカウントレジスタを有する、請求項11記載の半導体装置。
【請求項13】
前記レジスタ回路は更に、前記コンペアカウントレジスタが保持する比較回数が所定回数に達したとき前記中央処理装置に割り込みを要求する割り込み要求ロジックを有する、請求項12記載の半導体装置。
【請求項14】
前記内部バスに接続されたダイレクトメモリアクセスコントローラを有し、
前記レジスタ回路は更に、前記コンペアカウントレジスタが保持する比較一致回数が所定回数に達したとき前記ダイレクトメモリアクセスコントローラにデータ転送要求を出力するデータ転送要求ロジックを有する、請求項12記載の半導体装置。
【請求項15】
前記通信インタフェース回路は、前記通信チャネルに一対一対応される通信チャネルインタフェース回路と、前記通信チャネルインタフェース回路と前記バッファメモリとの間のデータ転送を制御する転送制御回路とを有し、
前記通信チャネルインタフェース回路は、前記バッファメモリに対するアクセスアドレスを生成する受信用アドレスカウンタ及び送信用アドレスカウンタと、前記受信用アドレスカウンタによるアドレスカウント値毎に通信データを保持するテンポラリ受信バッファと、前記送信用アドレスカウンタによるアドレスカウント値毎に送信データを保持するテンポラリ送信バッファとを有し、
前記転送制御回路は、前記受信用アドレスカウンタの値に基づいて前記テンポラリ受信バッファから対応する前記通信チャネルバッファへのデータの書き込みと前記送信用アドレスカウンタの値に基づいて対応する前記通信チャネルバッファから前記テンポラリ送信バッファへのデータの読み出しとを制御すると共に、前記テンポラリ受信バッファに受信した受信データを比較対象データと比較し、比較結果に応じた受信データの通信チャネルバッファ領域への書き込み動作に遷移し、遷移された書き込み動作の結果をCPUに参照可能にする、請求項1記載の半導体装置。
【請求項16】
前記制御レジスタ回路は、受信データと比較される比較対象データが設定されるコンペアデータレジスタと、受信データと前記比較対象データとの比較結果に応じて受信データが書き込まれるメモリアドレスが設定されるコンペアポイントメモリアドレスレジスタと、前記比較結果に応じてテンポラリ受信バッファに受信した受信データに対する動作形態が設定される分岐条件設定レジスタとを複数組有し、
前記転送制御回路は、前記複数組のレジスタに設定された設定値に従って、受信データのうち所要の受信データを選択して前記バッファメモリに格納する拡張受信モードを有する、請求項15記載の半導体装置。
【請求項17】
前記レジスタ回路は更に、前記転送制御回路が前記分岐条件設定レジスタの設定に従って所定のコンペアポイントメモリアドレスレジスタで設定されたアドレスに受信データの書き込みを完了したとき、前記中央処理装置に割り込みを要求する割り込み要求ロジックを有する、請求項16記載の半導体装置。
【請求項18】
前記内部バスに接続されたダイレクトメモリアクセスコントローラを有し、
前記レジスタ回路は更に、前記転送制御回路が前記分岐条件設定レジスタの設定に従って所定のコンペアポイントメモリアドレスレジスタで設定されたアドレスに受信データの書き込みを完了したとき、前記ダイレクトメモリアクセスコントローラにデータ転送要求を出力するデータ転送要求ロジックを有する、請求項16記載の半導体装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4A】
image rotate

【図4B】
image rotate

【図4C】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate