(57)【要約】【課題】本発明は、受信側に特別な回路を組み込む必要なく、電位変動を小さくする半導体集積回路を提供することを目的とする。【解決手段】半導体集積回路は、データ供給元から供給される出力データを半導体集積回路外部に出力する出力Ｉ／Ｏバッファ（１１）と、第１のサイクルにおいて出力Ｉ／Ｏバッファから出力した第１の出力データを保持するレジスタ（１２）と、出力Ｉ／Ｏバッファから新たに出力すべき出力データとレジスタに保持される第１の出力データとが所定の基準以上異なっているか否かの判断に応じて、第１のサイクルに続く第２のサイクルにおいてデータ供給元から供給される第２の出力データ、第２のサイクル以前にデータ供給元から供給された第３の出力データ、及び第１の出力データの何れか一つを出力Ｉ／Ｏバッファから第２のサイクルにおいて出力するように制御する制御回路（１７）を含むことを特徴とする。【選択図】図１
2005020169.tif 000002
【特許請求の範囲】
【請求項１】
データ供給元から供給される出力データを半導体集積回路外部に出力する出力Ｉ／Ｏバッファと、
第１のサイクルにおいて該出力Ｉ／Ｏバッファから出力した第１の出力データを保持するレジスタと、
該出力Ｉ／Ｏバッファから新たに出力すべき出力データと該レジスタに保持される該第１の出力データとが所定の基準以上異なっているか否かの判断に応じて、該第１のサイクルに続く第２のサイクルにおいて該データ供給元から供給される第２の出力データ、該第２のサイクル以前に該データ供給元から供給された第３の出力データ、及び該第１の出力データの何れか一つを該出力Ｉ／Ｏバッファから該第２のサイクルにおいて出力するように制御する制御回路
を含むことを特徴とする半導体集積回路。
【請求項２】
該制御回路は、該第２の出力データと該第１の出力データとの差異が所定のビット数以下である旨の判断に応答して該出力Ｉ／Ｏバッファから該第２のサイクルにおいて該第２の出力データを出力し、
該差異が該所定のビット数以下でない場合に該第３の出力データと該第１の出力データとの差異が所定のビット数以下である旨の判断に応答して該出力Ｉ／Ｏバッファから該第２のサイクルにおいて該第３の出力データを出力し、
該第２又は第３の出力データを出力しない場合には該出力Ｉ／Ｏバッファから該第２のサイクルにおいて該第１の出力データを出力することを特徴とする請求項１記載の半導体集積回路。
【請求項３】
記憶回路を更に含み、該制御回路は該出力Ｉ／Ｏバッファから該第２のサイクルにおいて該第２の出力データを出力しない場合に該第２の出力データを該記憶回路に格納することを特徴とする請求項１記載の半導体集積回路。
【請求項４】
該第３の出力データは、該第２のサイクル以前のサイクルにおいて該データ供給元から供給され該制御回路によって該記憶回路に格納された出力データであることを特徴とする請求項３記載の半導体集積回路。
【請求項５】
該記憶回路から連続して読み出される複数の出力データを受け取り、該複数の出力データの間に挿入するダミーデータを生成し、該ダミーデータを挿入した該複数の出力データを該出力Ｉ／Ｏバッファに供給するデータ発生回路を更に含むことを特徴とする請求項１記載の半導体集積回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、一般に半導体集積回路に関し、詳しくは半導体集積回路からデータを出力するデータ出力回路を含む半導体集積回路に関する。
【従来の技術】
半導体集積回路の出力データが、前の信号レベルから新たな信号レベルに変化すると、その変化に応じて出力Ｉ／Ｏバッファにおいて電流が消費される。出力Ｉ／Ｏ数が増大すると、出力Ｉ／Ｏバッファの動作時に流れる電流が全体として大きくなる。また半導体集積回路の動作が高速になると、瞬間的に流れる電流値ｄｉ／ｄｔが大きくなる。これによりＩ／Ｏバッファの電源電位や接地電位が大きく変動すると、半導体集積回路が誤動作する可能性がある。特に半導体集積回路の集積度が増して微細な回路構造となると、電位の変動を受けやすくなるので、上記の誤動作の問題が顕在化してくる。
【０００２】
この電位変動は、半導体集積回路を実装するパッケージと半導体集積回路との間にある寄生インダクタンスの大きさに依存する。従って、この寄生インダクタンス値を小さくすることによって、電位変動のノイズは減少することができる。しかしながら、インダクタンスの小さいパッケージは一般的に高価になる傾向があり、コスト面から望ましい解決策ではない。
【０００３】
別の解決策として、データ出力タイミングをずらす方法がある。同期式の半導体集積回路では、クロックに同期してデータ出力するので、同一のタイミングで出力Ｉ／Ｏバッファも動作することになる。しかしながら、一般にＩ／Ｏの動作周波数は半導体集積回路内部の動作周波数と比較して低速であり、タイミングマージンも広くとられることが多い。従って、出力クロックサイクル時間の１０分の１程度の範囲で、出力Ｉ／Ｏバッファからの出力タイミングをずらせるように設計することが可能である。これにより、同時スイッチングすることによる電流のピーク値を低減することができる。しかしながら、設計時に各出力Ｉ／Ｏバッファのタイミングを調整するので、設計が複雑になるという問題がある。またＩ／Ｏバッファの数が増えるとタイミング調整だけでは対応しきれなくなる。
【０００４】
更に別の解決策として、出力データを符号化する方法がある（非特許文献１及び非特許文献２）。前回の出力データと新たな出力データとが同一であれば、出力Ｉ／Ｏバッファはスイッチングしないので電流は流れない。従って、出力データを適切に符号化して同時にスイッチングする出力Ｉ／Ｏバッファの数を少なくすれば、流れる電流量を小さくして電位変動ノイズを低減することができる。
【０００５】
【特許文献１】
特開平８−３１６８４０号公報
【０００６】
【特許文献２】
特開２０００−２９５０８８号公報
【０００７】
【特許文献３】
特開２００２−２５９９４０号公報
【０００８】
【非特許文献１】
エム・アール・スタン（Ｍ．Ｒ．  Ｓｔａｎ  ｅｔ  ａｌ．）他、「バス・インバーテッド  コーディング  フォー  ローパワー  アイオー（Ｂｕｓ−Ｉｎｖｅｒｔｅｄ  Ｃｏｄｉｎｇ  ｆｏｒ  Ｌｏｗ  Ｐｏｗｅｒ  Ｉ／Ｏ）」、（米国）、アイトリプルイートランザクション  オン  ベリーラージスケール  インテグレーションシステムズ（ＩＥＥＥ  Ｔｒａｎｓａｃｔｉｏｎ  ｏｎ  Ｖｅｒｙ  Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ  Ｓｙｓｔｅｍｓ）、１９９５年３月、第３巻（Ｖｏｌ．３）、第１号（Ｎｏ．  １）、ｐｐ４９−５８
【０００９】
【非特許文献２】
エス・コマツ他（Ｓ．  Ｋｏｍａｔｓｕ  ｅｔ  ａｌ．）、「バスデータ  エンコーディング  ウィズ  カップリング  ドリブン  アダプティブ  コードブックメソッド  フォー  ローパワー  データトランスミッション（Ｂｕｓ  Ｄａｔａ  Ｅｎｃｏｄｉｎｇ  ｗｉｔｈ  Ｃｏｕｐｌｉｎｇ−ｄｒｉｖｅｎ  Ａｄａｐｔｉｖｅ  Ｃｏｄｅ−ｂｏｏｋ  Ｍｅｔｈｏｄ  ｆｏｒ  Ｌｏｗ  Ｐｏｗｅｒ  Ｄａｔａ  Ｔｒａｎｓｍｉｓｓｉｏｎ）」、（オーストリア）、第２７回ヨーロッピアン  ソリッドステートサーキッツ  コンファレンス  プロシーディング（２７ｔｈ  Ｅｕｒｏｐｅａｎ  Ｓｏｌｉｄ−Ｓｔａｔｅ  Ｃｉｒｃｕｉｔｓ  Ｃｏｎｆｅｒｅｎｃｅ  Ｐｒｏｃｅｅｄｉｎｇ）、２００１年９月
【発明が解決しようとする課題】
出力データを符号化する手法では、符号化により出力データの値を変化させてしまうので、データを受信する半導体集積回路側においてデータを復号化する回路が必要になる。従って、相手側の構成に関らずに互いにデータをやり取りすることが可能なわけではなく、一般のシステムにおいて使用可能な汎用的な技術ではない。
【００１０】
以上を鑑みて、本発明は、受信側に特別な回路を組み込む必要なく、同時にスイッチングする出力Ｉ／Ｏバッファ数を所定数以下とすることで、電位変動を小さくする半導体集積回路を提供することを目的とする。
【課題を解決するための手段】
本発明による半導体集積回路は、データ供給元から供給される出力データを半導体集積回路外部に出力する出力Ｉ／Ｏバッファと、第１のサイクルにおいて該出力Ｉ／Ｏバッファから出力した第１の出力データを保持するレジスタと、該出力Ｉ／Ｏバッファから新たに出力すべき出力データと該レジスタに保持される該第１の出力データとが所定の基準以上異なっているか否かの判断に応じて、該第１のサイクルに続く第２のサイクルにおいて該データ供給元から供給される第２の出力データ、該第２のサイクル以前に該データ供給元から供給された第３の出力データ、及び該第１の出力データの何れか一つを該出力Ｉ／Ｏバッファから該第２のサイクルにおいて出力するように制御する制御回路を含むことを特徴とする。
【００１１】
上記半導体集積回路においては、出力Ｉ／Ｏバッファから新たに出力すべき出力データとレジスタに保持される第１の出力データとがどの程度異なるのかを判断し、判断結果に応じて、その新たに出力すべき出力データを実際に出力するか或いは出力データを無変化状態に保つかを制御する。現サイクルに供給された第２の出力データが前サイクルの出力データである第１の出力データとそれ程異ならないのであれば、第２の出力データを出力すればよい。この場合、同時にスイッチングする出力Ｉ／Ｏバッファの数は少ないので電流消費は小さい。同様に、以前のサイクルに供給された第３の出力データが前サイクルの出力データである第１の出力データとそれ程異ならないのであれば、第３の出力データを出力すればよい。この場合、同時にスイッチングする出力Ｉ／Ｏバッファの数は少ないので電流消費は小さい。また第２の出力データ及び第３の出力データが両方共に第１の出力データと大きく異なる場合には、前サイクルと同一の第１のデータを出力する。この場合には、出力無変化とすることで電流消費を無くすことができる。
【００１２】
以上により、本発明は、受信側に特別な回路を組み込む必要なく、同時にスイッチングする出力Ｉ／Ｏバッファ数を所定数以下とすることで、電位変動を小さくする半導体集積回路を提供することができる。
【発明の実施の形態】
以下に、本発明の実施例を添付の図面を用いて詳細に説明する。
【００１３】
ある出力サイクルにおいてスイッチングする出力Ｉ／Ｏバッファの数を少なくするためには、前サイクルの出力データと現サイクルの出力データ（新たに出力しようとするデータ）との間で、信号レベルが変化するＩ／Ｏピン数を小さくすればよい。変化するＩ／Ｏピンの数は、前サイクルのコードと現サイクルのコードとのハミング距離で表される。ハミング距離とは２つのコード間での異なるビット数であり、例えば４ビットのコードで（００１１）と（００００）とは最後の２ビットが異なるので、ハミング距離は２である。本発明においては、前サイクルの出力データと現サイクルの出力データとのハミング距離を算出し、算出した距離が所定の距離以上であるときは、現サイクルのデータを出力することなくダミーデータを出力する。出力されなかった現サイクルのデータは、メモリに格納し、後程適切な機会に出力する。
【００１４】
図１は、本発明による出力データ制御回路の構成を示す構成図である。
【００１５】
図１の出力データ制御回路１０は、出力Ｉ／Ｏバッファ１１、レジスタ１２、距離検出器１３、比較回路１４、セレクタ１５、ＲＡＭ１６、コントローラ１７、距離検出器１８、比較回路１９、Ｎサイクルモードデータ発生回路２０、及び有効指示信号出力バッファ２１を含む。図１の出力データ制御回路１０は、例えばＣＰＵからのデータ及びアドレスを内部出力データとして受け取り、これをＲＡＭに対して外部出力データとして供給するために用いられる。以下においては、ＣＰＵからのデータ出力を例として説明するが、本発明はこの例に限られることなく種々のデータ転送に対して適用することができる。
【００１６】
出力Ｉ／Ｏバッファ１１は、内部出力データとしてＣＰＵから供給されたデータ（例えばＲＡＭ等が対象の場合であればアドレス及びデータ）を、供給先の半導体集積回路に出力する。ここでは図示の便宜上、一つの出力Ｉ／Ｏバッファ１１のみが示されるが、出力データは複数のビットを含み、複数の出力Ｉ／Ｏバッファがそれぞれのビットを出力する構成となっている。有効指示信号出力バッファ２１は、出力Ｉ／Ｏバッファ１１からの出力データが有効か否かを示す有効指示信号を出力する。この有効指示信号が有効を示す場合に、受信側の半導体集積回路は出力データ制御回路１０からのデータを受信する。このような有効指示信号を使用することは、一般のシステムにおいて通常見られる通信制御の手法であり、本発明に特別なものではない。
【００１７】
レジスタ１２は、前サイクルにおいて送出されたデータを内部に格納して記憶する。このレジスタ１２に格納されたデータは、次のサイクルで距離検出器１３に送られる。距離検出器１３は、レジスタ１２に記憶されたデータとＣＰＵから新たに供給される内部出力データとのハミング距離を算出する。算出されたハミング距離は、距離検出器１３から比較回路１４の一方の入力に供給される。比較回路１４のもう一方の入力は、コントローラ１７に予め設定された所定の基準値を受け取る。この基準値は、１サイクル中に変化することが許されるＩ／Ｏデータのビット数であり、ユーザが予め設定することができる。比較回路１４は、算出されたハミング距離と基準値とを比較して、比較結果をコントローラ１７に供給する。
【００１８】
コントローラ１７は、比較回路１４からの比較結果に基づいて、セレクタ１５を制御する。具体的には、ハミング距離が基準値より小さい場合、即ち出力Ｉ／Ｏバッファ１１の同時スイッチングするビット数が基準値より小さい場合には、コントローラ１７がセレクタ１５を制御して、現サイクルの値をそのまま出力Ｉ／Ｏバッファ１１から出力させる。逆にハミング距離が基準値よりも大きい場合には、現サイクルのデータを出力すると大きな電位変動ノイズが生じるので、コントローラ１７がセレクタ１５を制御して、レジスタ１２からの前サイクルのデータを選択させて出力データを無変化とする。更に、出力されなかった現サイクルのデータをＲＡＭ１６に書き込むように、コントローラ１７は、ＲＡＭ１６に対してＲ／Ｗ制御信号と書き込みアドレスとを供給する。
【００１９】
ＲＡＭ１６は、出力が保留されたデータを一時的に保存しておくために設けられるものであり、異なるアドレスに対して読み出しと書き込みとを同時に実行可能な１Ｒ／１Ｗタイプのマルチポートメモリである。ＲＡＭ１６に以前保留されて格納されているデータがある場合、コントローラ１７は、現サイクルのデータをＲＡＭ１６に書き込むのと同時に、格納されているデータのうちの１つをＲＡＭ１６から読み出す。距離検出器１８は、ＲＡＭ１６から読み出した出力保留データと、レジスタ１２に格納されている前サイクルのデータとのハミング距離を計算する。比較回路１９は、距離検出器１８により計算された距離を予め設定した基準値と比較して、比較結果をコントローラ１７に供給する。
【００２０】
コントローラ１７は、比較回路１９の比較結果に基づいてセレクタ１５を制御する。これにより、ハミング距離が基準値よりも小さい場合には、ＲＡＭ１６から読み出されたデータがセレクタ１５により選択され、出力Ｉ／Ｏバッファ１１を介して外部に出力される。図１から分るように、このときの出力データは、Ｎサイクルモードデータ発生回路２０を通過することになる。即ちこの場合、Ｎサイクルモードデータ発生回路２０は、コントローラ１７からの制御に基づいて、入力側データをそのまま出力側に通過させる。ハミング距離が基準値よりも大きい場合には、セレクタ１５はレジスタ１２からの前サイクルのデータを選択するように制御され、出力Ｉ／Ｏバッファ１１は前回と同一データを出力する。従って、出力Ｉ／Ｏバッファ１１には電流が流れない。この場合はダミーサイクルとなり、出力されたデータは受信側の半導体集積回路で受信されることはない。
【００２１】
以上の動作が、各サイクルにおいて実行される。従って、場合によってはＲＡＭ１６に格納されるデータ数が増加し、ＲＡＭ１６の記憶容量を超えてしまう可能性がある。これに対処するために、出力保留されたデータがＲＡＭ１６の記憶容量のある一定割合以上の数だけ書き込まれた場合には、コントローラ１７が、前段の回路（この場合はＣＰＵ）に対して、これ以上の出力データ受け付けは不可能であることを示すＷＡＩＴ信号を出力する。その後、コントローラ１７はＲＡＭ１６に現在保存されているデータを出力する動作モードに入る。
【００２２】
この動作モードに入ると、コントローラ１７は、ＲＡＭ１６から出力保留データを順次読み出して、Ｎサイクルモードデータ発生回路２０、セレクタ１５、及び出力Ｉ／Ｏバッファ１１を介して外部に出力する。この際、ある出力データと次の出力データとの間で、出力Ｉ／Ｏバッファ１１の同時スイッチング数が所定数を越えないように、Ｎサイクルモードデータ発生回路２０がダミーデータを生成して出力データ間に挿入する。この際、一つの出力データを出力Ｉ／Ｏバッファ１１から出力させるために、Ｎサイクルモードデータ発生回路２０は２サイクル以上の所定のサイクル数を使用する。以下においては、簡単のため２サイクルかけて一つのデータを出力する場合を例として説明する。
【００２３】
図２は、Ｎサイクルモードデータ発生回路２０の動作の一例を説明するための図である。
【００２４】
図２は、前サイクルのデータと現サイクルのデータとの間に一つのダミーデータを入れて、２サイクル費やして現サイクルのデータを出力する場合を示す。図に示されるように、前サイクルのデータ（レジスタ１２に格納されるデータ）を、上位半分のデータ３０ａと下位半分のデータ３０ｂとに分けて考える。また現サイクルのデータは、上位半分のデータ３１ａと下位半分のデータ３１ｂとからなるとする。このときダミーデータとして、上位半分は現サイクルの上位半分のデータ３１ａとし、下位半分は前サイクルの下位半分のデータ３０ｂとしたデータを作成する。Ｎサイクルモードデータ発生回路２０は、前サイクルのデータを出力すると、その後このダミーデータを出力してから、現サイクルのデータを出力する。Ｎサイクルモードデータ発生回路２０がこのような動作をすることによって、データ長をｎビットとすれば、最大でｎ／２ビットしか変化しないようにデータを出力することができる。なお図の例では、前サイクルのデータから上位半分を変化させてダミーデータを作成しているが、代わりに下位半分を変化させてダミーデータを作成してもよい。
【００２５】
最大でｎ／３ビットしか同時に変化しないようにデータを出力するためには、３サイクルかけてｎ／３ビットずつ前サイクルのデータから現サイクルのデータへと変化するように、ダミーデータを２つ発生させればよい。同様に、４サイクル以上のサイクル数を使用して、データ出力するようにしてもよい。
【００２６】
図３は、Ｎサイクルモードデータ発生回路２０の動作の別の一例を説明するための図である。
【００２７】
図３においては、前サイクルと現サイクルのデータをビット毎に比較し、値が一致しているビットについてはそのビット値をダミーデータに使用する。値が異なるビットについては、上位ビット又は下位ビットから順番に、前サイクルの値及び現サイクルの値を交互に選択してダミーサイクルデータを構成する。この方法によっても、全体で最大ｎ／２ビットしかデータが変化しないようにダミーデータを生成することができる。なお交互に選択するのではなく、値が異なるビットの上半分及び下半分に分けて、前サイクルのデータと現サイクルのデータとをそれぞれ選択してもよい。
【００２８】
また値が異なるビットを１／３ずつ変化させて前サイクルのデータから現サイクルのデータへと３サイクルかけて変化させることで、３サイクルのデータ出力方法に拡張することができる。同様に、４サイクル以上のサイクル数を使用して、データ出力するようにしてもよい。
【００２９】
図４は、Ｎサイクルモードデータ発生回路２０の構成の一例を示す回路図である。
【００３０】
図４のＮサイクルモードデータ発生回路２０は、２サイクルかけて一つのデータを出力する場合の構成であり、セレクタ４１及び４２を含む。セレクタ４１及び４２は、コントローラ１７からの制御信号ＤＭＹＵ及びＤＭＹＬにより制御され、２入力のうちの一つを選択して出力する。現サイクルの出力データはＲＡＭ１６から供給される出力データであり、上位半分ＲＡＭＵと下位半分ＲＡＭＬとからなる。また前サイクルの出力データはレジスタ１２に格納されており、上位半分ＲＥＧＵと下位半分ＲＥＧＬとからなる。出力側はＯＵＴＵが上位ビット側、ＯＵＴＬが下位ビット側であり、双方共にセレクタ１５へ供給される。
【００３１】
Ｎサイクルモード以外の通常モードではＲＡＭ１６の出力がそのまま出力されるので、制御信号ＤＭＹＵ及びＤＭＹＬは１に設定され、ＯＵＴＵ＝ＲＡＭＵ及びＯＵＴＬ＝ＲＡＭＬとなる。Ｎサイクルモードに入った場合、１サイクル目で例えばＤＭＹＬ＝０及びＤＭＹＵ＝１とすることにより、ＯＵＴＵ＝ＲＡＭＵ及びＯＵＴＬ＝ＲＥＧＬであるダミーデータを出力する。２サイクル目にはＲＡＭ１６の出力をそのまま出力すればよいので、ＤＭＹＬ＝ＤＭＹＵ＝１とすればよい。１サイクル目に上位ビット側を現在のレジスタ値として下位ビット側をＲＡＭ１６の出力値とする場合には、上記とは逆にＤＭＹＬ＝１及びＤＭＹＵ＝０とすればよい。
【００３２】
図５は、Ｎサイクルモードデータ発生回路２０の構成の別の一例を示す回路図である。
【００３３】
図５のＮサイクルモードデータ発生回路２０は、３サイクルかけて一つのデータを出力する場合の構成であり、セレクタ５１及び５３を含む。セレクタ５１乃至５３は、それぞれコントローラ１７からの制御信号ＤＭＹＵ、ＤＭＹＭ、及びＤＭＹＬにより制御され、２つの入力のうちの一つを選択して出力する。動作原理は図４の場合と同様であるので説明を省略する。
【００３４】
図６は、Ｎサイクルモードデータ発生回路２０の構成の更に別の一例を示す回路図である。
【００３５】
図４の構成は、１サイクル目と２サイクル目との２つのサイクルにおいて、ＲＡＭ１６の同一アドレスから同一のデータが継続して読み出されることを前提としている。ＲＡＭ１６から１サイクル目だけデータが読み出される場合には、図６に示されるように、図４の構成に加えてセレクタ４３及び４４と、データを一時的に格納しておくためのフリップフロップ４５を設ける。
【００３６】
１サイクル目では、セレクタ制御信号ＦＦＵ及びＦＦＬを共に０として、ＲＡＭ１６から読み出したデータをフリップフロップ４５に格納する。また同時に、セレクタ制御信号ＤＭＹＵ及びＤＭＹＬをそれぞれ１及び０として、下位ビット側は現在レジスタ値ＲＥＧＬを出力し、上位ビット側はＲＡＭ読み出しデータＲＡＭＵを出力する。２サイクル目はＲＡＭ１６からのデータを出力するために、ＦＦＵ＝ＦＦＬ＝１としてセレクタ４３及び４４によりフリップフロップ４５からのデータを選択し、ＤＭＹＵ＝ＤＭＹＬ＝１としてフリップフロップ４５からのデータ（ＲＡＭＵ及びＲＡＭＬ）を出力する。
【００３７】
図７は、コントローラ１７によるＲＡＭ制御とセレクタ制御のアルゴリズムの一例を示すフローチャートである。
【００３８】
コントローラ１７は、ＣＰＵ側からデータ出力要求を受けた場合（ステップＳＴ１でＹｅｓ）、或いはＲＡＭ１６内に出力すべきデータが残っている場合（ステップＳＴ２でＹｅｓ）に起動される。データ出力要求を受けた場合（ステップＳＴ１でＹｅｓ）、比較回路１４による比較に基づいて、現サイクルの出力データと前サイクルの出力データとのハミング距離がある一定値以下であるか否かを判断する（ステップＳＴ４）。ハミング距離がある一定値以下である場合には（ステップＳＴ４でＹｅｓ）、内部出力データが外部に出力されるようにセレクタ１５を制御する（ステップＳＴ５）。このとき有効指示信号を有効にする。
【００３９】
比較回路１４による比較が、現サイクルの出力データと前サイクルの出力データとのハミング距離がある一定値以下でないことを示す場合は（ステップＳＴ４でＮｏ）、現データをＲＡＭ１６に書き込むと同時に書き込みポインタを１増加させる（ステップＳＴ６）。ここで、ＲＡＭ１６に対して読み出しポインタと書き込みポインタとが用意されており、２つのポインタで挟まれた範囲が有効なデータ範囲である。新しいデータがＲＡＭ１６に書き込まれると書き込みポインタを１増加させ、データが１つ出力されると読み出しポインタが１つ増加する。これにより、ＦＩＦＯ（Ｆｉｒｓｔ  ｉｎ  Ｆｉｒｓｔ  ｏｕｔ）バッファを実現している。
【００４０】
比較回路１９による比較に基づいて、ＲＡＭ１６から読み出したデータと前サイクルのデータとのハミング距離が設定値以下であると判断される場合は（ステップＳＴ７でＹｅｓ）、ＲＡＭ１６のデータが出力Ｉ／Ｏバッファ１１を介して外部に出力されるようにセレクタ１５を制御する。このとき有効指示信号を有効にする。また読み出しポインタを１つ増加することで、ＲＡＭ１６内で保留中のデータを１つ減らし、次に読み出すべきデータを指し示す。
【００４１】
比較回路１９による比較が設定値以上のハミング距離を示す場合には（ステップＳＴ７でＮｏ）、ＲＡＭ１６からのデータを出力できないので、前サイクルのデータを出力Ｉ／Ｏバッファ１１を介して外部に出力するようにセレクタ１５を制御する（ステップＳＴ９）。このとき有効指示信号を無効にする。この後ＲＡＭ１６がオーバーフローしているか否かをチェックし（ステップＳＴ１０）、オーバーフローしていれば、ＣＰＵにＷＡＩＴ信号を送出すると共にＮサイクルモードにはいる（ステップＳＴ１１）。なお出力保留中のデータを全て出力してＮサイクルモードが終了すると、コントローラ１７は出力成功信号をＣＰＵに送信する。
【００４２】
図７の例では、データ出力要求が無く（ステップＳＴ１でＮｏ）、且つＲＡＭ内にデータが残っている場合（ステップＳＴ２でＹｅｓ）においても、Ｎサイクルモードが起動されるアルゴリズムとなっている。これはＲＡＭ１６内に出力保留中のデータがいつまでも残らないようにするために必要な処理である。
【００４３】
またデータ出力要求が無く（ステップＳＴ１でＮｏ）且つＲＡＭ内にデータが残っていない場合（ステップＳＴ２でＮｏ）には、前サイクルのデータを出力Ｉ／Ｏバッファ１１を介して外部に出力するようにセレクタ１５を制御する（ステップＳＴ３）。このとき有効指示信号を無効にする。
【００４４】
図８は、本発明による出力データ制御回路１０をＣＰＵからＲＡＭへのアクセス動作部分に適用した場合の構成を示す図である。
【００４５】
図８において、出力データ制御回路１０は、ＣＰＵ５１からアドレス（ｎビット）、データ（ｍビット）、及び出力要求を受け取り、ＲＡＭ５３にアドレス＆データ及び有効指示信号を供給する。入力ユニット５２は、ＣＰＵ５１がＲＡＭ５３からデータ（ｍビット）を読み出す場合に使用される。ここで、ＣＰＵ５１、出力データ制御回路１０、及び入力ユニット５２が一つの半導体集積回路チップに搭載され、ＲＡＭ５３は別の半導体集積回路チップに搭載される。
【００４６】
Ｉ／Ｏバッファのスイッチングによる電流ノイズは、外部負荷を駆動する場合にのみ問題となり、入力回路のＩ／Ｏバッファのスイッチングでは問題とならない。従って、本発明によるデータ制御回路１０は出力回路側にのみ適用し、入力回路側（入力ユニット５２）には適用していない。
【００４７】
以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。
【００４８】
なお本発明は以下の内容を含むものである。
（付記１）データ供給元から供給される出力データを半導体集積回路外部に出力する出力Ｉ／Ｏバッファと、
第１のサイクルにおいて該出力Ｉ／Ｏバッファから出力した第１の出力データを保持するレジスタと、
該出力Ｉ／Ｏバッファから新たに出力すべき出力データと該レジスタに保持される該第１の出力データとが所定の基準以上異なっているか否かの判断に応じて、該第１のサイクルに続く第２のサイクルにおいて該データ供給元から供給される第２の出力データ、該第２のサイクル以前に該データ供給元から供給された第３の出力データ、及び該第１の出力データの何れか一つを該出力Ｉ／Ｏバッファから該第２のサイクルにおいて出力するように制御する制御回路
を含むことを特徴とする半導体集積回路。
（付記２）該制御回路は、該第２の出力データと該第１の出力データとの差異が所定のビット数以下である旨の判断に応答して該出力Ｉ／Ｏバッファから該第２のサイクルにおいて該第２の出力データを出力し、該差異が該所定のビット数以下でない場合に該第３の出力データと該第１の出力データとの差異が所定のビット数以下である旨の判断に応答して該出力Ｉ／Ｏバッファから該第２のサイクルにおいて該第３の出力データを出力し、該第２又は第３の出力データを出力しない場合には該出力Ｉ／Ｏバッファから該第２のサイクルにおいて該第１の出力データを出力することを特徴とする付記１記載の半導体集積回路。
（付記３）該新たに出力すべき出力データと該レジスタに保持される該第１の出力データとのハミング距離を算出する距離検出器と、
該距離検出器が算出した距離と所定の値とを比較する比較回路と、
該第１の出力データ、該第２の出力データ、及び該第３の出力データの何れか一つを選択して該出力Ｉ／Ｏバッファに供給するセレクタ
を更に含み、該比較回路の比較結果に基づいて該制御回路が該セレクタを制御することを特徴とする付記１記載の半導体集積回路。
（付記４）記憶回路を更に含み、該制御回路は該出力Ｉ／Ｏバッファから該第２のサイクルにおいて該第２の出力データを出力しない場合に該第２の出力データを該記憶回路に格納することを特徴とする付記１記載の半導体集積回路。
（付記５）該第３の出力データは、該第２のサイクル以前のサイクルにおいて該データ供給元から供給され該制御回路によって該記憶回路に格納された出力データであることを特徴とする付記４記載の半導体集積回路。
（付記６）該記憶回路から連続して読み出される複数の出力データを受け取り、該複数の出力データの間に挿入するダミーデータを生成し、該ダミーデータを挿入した該複数の出力データを該出力Ｉ／Ｏバッファに供給するデータ発生回路を更に含むことを特徴とする付記１記載の半導体集積回路。
（付記７）該データ発生回路は、該複数の出力データの連続する２つの出力データの一方と上位半分が同一で他方と下位半分が同一であるダミーデータを生成し、該２つの出力データの間に挿入することを特徴とする付記６記載の半導体集積回路。
（付記８）該データ発生回路は、該複数の出力データの連続する２つの出力データの間でビット値が同一のビットについてはそのまま含み、該２つの出力データの間でビット値が同一でないビットについては、半数が該２つの出力データの一方と同一で残りの半数が該２つの出力データの他方と同一であるダミーデータを生成し、該２つの出力データの間に挿入することを特徴とする付記６記載の半導体集積回路。
（付記９）該データ発生回路は、該複数の出力データの連続する２つの出力データの間に挿入する複数のダミーデータを生成し、該２つの出力データの一方から始まり該複数のダミーデータを経て該２つの出力データの他方に到る一連のデータは隣接する２つのデータ間の差異が所定の基準値以下であることを特徴とする付記６記載の半導体集積回路。
【発明の効果】
上記の半導体集積回路においては、出力Ｉ／Ｏバッファから新たに出力すべき出力データとレジスタに保持される前サイクルの出力データとがどの程度異なるのかを判断し、判断結果に応じて、その新たに出力すべき出力データを実際に出力するのか或いは出力データを無変化状態に保つのかを制御する。これにより、同時にスイッチングする出力Ｉ／Ｏバッファの数を少なくし、電流消費を削減することができる。このようにして本発明は、受信側に特別な回路を組み込む必要なく、同時にスイッチングする出力Ｉ／Ｏバッファ数を所定数以下とすることで、電位変動を小さくする半導体集積回路を提供することができる。
【図面の簡単な説明】
【図１】本発明による出力データ制御回路の構成を示す構成図である。
【図２】Ｎサイクルモードデータ発生回路の動作の一例を説明するための図である。
【図３】Ｎサイクルモードデータ発生回路の動作の別の一例を説明するための図である。
【図４】Ｎサイクルモードデータ発生回路の構成の一例を示す回路図である。
【図５】Ｎサイクルモードデータ発生回路の構成の別の一例を示す回路図である。
【図６】Ｎサイクルモードデータ発生回路の構成の更に別の一例を示す回路図である。
【図７】コントローラによるＲＡＭ制御とセレクタ制御のアルゴリズムの一例を示すフローチャートである。
【図８】本発明による出力データ制御回路をＣＰＵからＲＡＭへのアクセス動作部分に適用した場合の構成を示す図である。
【符号の説明】
１０  出力データ制御回路
１１  出力Ｉ／Ｏバッファ
１２  レジスタ
１３  距離検出器
１４  比較回路
１５  セレクタ
１６  ＲＡＭ
１７  コントローラ
１８  距離検出器
１９  比較回路
２０  Ｎサイクルモードデータ発生回路
２１  有効指示信号出力バッファ
【図１】
2005020169.tif 000003
【図２】
2005020169.tif 000004
【図３】
2005020169.tif 000005
【図４】
2005020169.tif 000006
【図５】
2005020169.tif 000007
【図６】
2005020169.tif 000008
【図７】
2005020169.tif 000009
【図８】
2005020169.tif 000010