(57)【要約】【課題】ＬＳＩの中に組み込まれたバスや、バスを含まないＬＳＩに接続されて回路基板上に形成されたバスの制御を行う際に、ＬＳＩの消費電力を低減すると共に電源線やＧＮＤ線に与えるノイズの影響を低減することを行う。【解決手段】第１バス制御回路１００によって、バスマスタ２００から出力されるバスマスタアドレス２０１のうち、前後のアドレスの差分値（アドレス１５１）を求めてアドレスバス３００ａへ出力する。また、第２バス制御回路４００によって、アドレスバス３００ａを介して入力される差分値（アドレス１５１）を、バスマスタ２００から出力される元のアドレス２０１に戻してバススレーブ５００へ出力する。【選択図】　　　図１
2004021750.tif 000002
【特許請求の範囲】
【請求項１】
バスマスタから出力されるアドレスのうち前後のアドレスの差分値を求めてアドレスバスへ出力する第１の制御回路と、
前記アドレスバスを介して入力される前記差分値を前記バスマスタから出力される元のアドレスに戻してバススレーブへ出力する第２の制御回路と
を有することを特徴とするバス制御装置。
【請求項２】
前記第１の制御回路は、前記差分値を絶対値とし、この絶対値の符号がプラスかマイナスかを示すステータスをステータスバスへ出力し、
前記第２の制御回路は、前記ステータスバスを介して入力される前記ステータスがプラスの場合に、前記バススレーブへ出力されるアドレスと、前記アドレスバスを介して入力される前記絶対値とを加算し、前記ステータスがマイナスの場合に、前記バススレーブへ出力されるアドレスから前記アドレスバスを介して入力される前記絶対値を減算し、前記加算又は減算の値を前記バススレーブへ出力するアドレスとすることによって、前記元のアドレスに戻す処理を行う
ことを特徴とする請求項１記載のバス制御装置。
【請求項３】
前記第１の制御回路は、前記バスマスタが切り替わった最初のサイクルでは、前記差分値又はこの絶対値を出力せず、前記バスマスタから出力される元のアドレスをそのまま前記アドレスバスへ出力し、
前記第２の制御回路は、前記バスマスタが切り替わった最初のサイクルでは、前記アドレスバスを介して入力される前記元のアドレスをそのまま前記バススレーブへ出力する
ことを特徴とする請求項１又は２記載のバス制御装置。
【請求項４】
前記バスマスタが前記バススレーブの機能を備える場合に、前記第１の制御回路と前記第２の制御回路とを１つの回路に纏めて、前記バスマスタと前記アドレスバスとの間に接続する
ことを特徴とする請求項１乃至３のいずれか１に記載のバス制御装置。
【請求項５】
バスマスタから出力されるアドレスのうち前後のアドレスの差分値を求めてアドレスバスへ出力し、この出力された前記差分値を前記バスマスタから出力される元のアドレスに戻してバススレーブへ出力することを特徴とするバス制御方法。
【請求項６】
前記差分値を絶対値とし、この絶対値の符号がプラスかマイナスかを示すステータスをステータスバスへ出力し、この出力された前記ステータスがプラスの場合に、前記バススレーブへ出力されるアドレスと前記アドレスバスへ出力された前記絶対値とを加算し、前記ステータスがマイナスの場合に、前記バススレーブへ出力されるアドレスから前記アドレスバスへ出力された前記絶対値を減算し、前記加算又は減算の値を前記バススレーブへ出力するアドレスとすることによって、前記元のアドレスに戻す処理を行う
ことを特徴とする請求項５記載のバス制御方法。
【請求項７】
前記バスマスタが切り替わった最初のサイクルにおいて、前記差分値又はこの絶対値を出力せず、前記バスマスタから出力される元のアドレスをそのまま前記アドレスバスへ出力し、この出力された前記元のアドレスをそのまま前記バススレーブへ出力することを特徴とする請求項５又は６記載のバス制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、バス制御装置及びバス制御方法に係り、詳しくは、ＬＳＩ（ＬａｒｇｅＳｃａｌｅ　Ｉｎｔｅｇｒａｔｅｄ　Ｃｉｒｃｕｉｔ）の中に組み込まれたバスや、バスを含まないＬＳＩに接続されて回路基板上に形成されたバスの制御を、ＬＳＩの消費電力を低減すると共に、電源線やＧＮＤ線（接地線）に与える悪影響を低減しながら実行するバス制御装置及びバス制御方法に関する。
【０００２】
【従来の技術】
近年、マイクロプロセッサに代表されるＬＳＩは、高機能化、高速化が進み、その反動として、ＬＳＩの消費電力の著しい増加を伴っている。特に、アドレスバスやデータバス等におけるバス幅の増加や動作周波数の高速化により、消費電力の増大だけでなく、電源線やＧＮＤ線に与えるノイズの影響も大きくなっている。
【０００３】
従来、バス上のデータ変化に伴う消費電力に関しては、バスのビット数を減らす、あるいは信号の電圧振幅を小さくすることによって消費電力を下げる方法が採られてきた。また、特開平６−１６１６２０号公報や、これを基に発明されたＷＯ９７／１１４２０号公報においては、バス上のデータに対して極性反転するビット数を減少させることによって、消費電力の低減並びに電源線やＧＮＤ線に与えるノイズの影響を低減させる方法が開示されている。
【０００４】
【発明が解決しようとする課題】
ところで、上述した従来例のように、バスのビット数を減らすことは、一度に転送できるデータ量を著しく制限することになり、そもそも、ＬＳＩの高性能化に逆行するものである。また、信号の電圧振幅を小さくする方法は、ノイズに対して弱くなるという問題がある。
【０００５】
また、上述の各公報、特にＷＯ９７／１１４２０号公報の方法では、信号が変化するビット数を、確実にバス幅（１回の転送で同時に送れるデータの量）の半分以下にすることができるので、ランダムに変化するデータバスに対しては、消費電力の低減並びに電源線やＧＮＤ線に与えるノイズの影響を低減させることに有効である。しかし、一つのバスマスタがある記憶領域をアクセスし続けるようなアドレスバスの動きに対しては、信号が変化するビット数が限定されるので殆ど上記の低減効果がないという問題がある。
【０００６】
この発明は、上述の事情に鑑みてなされたもので、ＬＳＩの中に組み込まれたバスや、バスを含まないＬＳＩに接続されて回路基板上に形成されたバスの制御を行う際に、ＬＳＩの消費電力を低減すると共に電源線やＧＮＤ線に与えるノイズの影響を低減することができるバス制御装置及びバス制御方法を提供することを目的としている。
【０００７】
【課題を解決するための手段】
上記課題を解決するために、請求項１記載の発明に係るバス制御装置は、バスマスタから出力されるアドレスのうち前後のアドレスの差分値を求めてアドレスバスへ出力する第１の制御回路と、上記アドレスバスを介して入力される上記差分値を上記バスマスタから出力される元のアドレスに戻してバススレーブへ出力する第２の制御回路とを有することを特徴としている。
【０００８】
また、請求項２記載の発明は、請求項１記載のバス制御装置に係り、上記第１の制御回路は、上記差分値を絶対値とし、この絶対値の符号がプラスかマイナスかを示すステータスをステータスバスへ出力し、上記第２の制御回路は、上記ステータスバスを介して入力される上記ステータスがプラスの場合に、上記バススレーブへ出力されるアドレスと、上記アドレスバスを介して入力される上記絶対値とを加算し、上記ステータスがマイナスの場合に、上記バススレーブへ出力されるアドレスから上記アドレスバスを介して入力される上記絶対値を減算し、上記加算又は減算の値を上記バススレーブへ出力するアドレスとすることによって、上記元のアドレスに戻す処理を行うことを特徴としている。
【０００９】
また、請求項３記載の発明は、請求項１又は２記載のバス制御装置に係り、上記第１の制御回路は、上記バスマスタが切り替わった最初のサイクルでは、上記差分値又はこの絶対値を出力せず、上記バスマスタから出力される元のアドレスをそのまま上記アドレスバスへ出力し、上記第２の制御回路は、上記バスマスタが切り替わった最初のサイクルでは、上記アドレスバスを介して入力される上記元のアドレスをそのまま上記バススレーブへ出力することを特徴としている。
【００１０】
また、請求項４記載の発明は、請求項１乃至３のいずれか１に記載のバス制御装置に係り、上記バスマスタが上記バススレーブの機能を備える場合に、上記第１の制御回路と上記第２の制御回路とを１つの回路に纏めて、上記バスマスタと上記アドレスバスとの間に接続することを特徴としている。
【００１１】
また、請求項５記載の発明に係るバス制御方法は、バスマスタから出力されるアドレスのうち前後のアドレスの差分値を求めてアドレスバスへ出力し、この出力された上記差分値を上記バスマスタから出力される元のアドレスに戻してバススレーブへ出力することを特徴としている。
【００１２】
また、請求項６記載の発明は、請求項５記載のバス制御方法に係り、上記差分値を絶対値とし、この絶対値の符号がプラスかマイナスかを示すステータスをステータスバスへ出力し、この出力された上記ステータスがプラスの場合に、上記バススレーブへ出力されるアドレスと上記アドレスバスへ出力された上記絶対値とを加算し、上記ステータスがマイナスの場合に、上記バススレーブへ出力されるアドレスから上記アドレスバスへ出力された上記絶対値を減算し、上記加算又は減算の値を上記バススレーブへ出力するアドレスとすることによって、上記元のアドレスに戻す処理を行うことを特徴としている。
【００１３】
また、請求項７記載の発明は、請求項５又は６記載のバス制御方法に係り、上記バスマスタが切り替わった最初のサイクルにおいて、上記差分値又はこの絶対値を出力せず、上記バスマスタから出力される元のアドレスをそのまま上記アドレスバスへ出力し、この出力された上記元のアドレスをそのまま上記バススレーブへ出力することを特徴としている。
【００１４】
【発明の実施の形態】
以下、図面を参照して、この発明の実施の形態について説明する。説明は、実施例を用いて具体的に行う。
◇実施例
図１は、この発明の一実施例であるバス制御装置の構成を示すブロック図である。
同図に示すバス制御装置は、バスマスタ２００と、アドレスバス３００ａ並びにステータスバス３００ｂとの間に第１バス制御回路１００を接続し、また、その双方のバス３００ａ，３００ｂと、バススレーブ５００との間に第２バス制御回路４００を接続して構成したものである。上記のバスマスタ２００は、マイクロプロセッサやＤＭＡ（Ｄｉｒｅｃｔ　Ｍｅｍｏｒｙ　Ａｃｃｅｓｓ）コントローラ等である。バススレーブ５００は、メモリやＩ／Ｏ回路等である。
【００１５】
この構成のバス制御装置の特徴は、第１及び第２バス制御回路１００，４００の処理にある。この処理順を▲１▼〜▲５▼で説明する。
【００１６】
▲１▼、第１バス制御回路１００は、バスマスタ２００から出力されるバスマスタアドレス２０１について、常に現在のサイクルのアドレスと一つ前のサイクルのアドレスとを比較（言い換えれば、前後のサイクルのアドレスを比較）し、その差分値の絶対値をアドレス１５１としてアドレスバス３００ａへ出力する。
【００１７】
▲２▼、第１バス制御回路１００は、上記の差分値が絶対値であるので、その絶対値がプラス、マイナスの何れであるかを示す符号を、ステータス１５２としてステータスバス３００ｂへ出力する。
【００１８】
▲３▼、第１バス制御回路１００は、バスマスタ２００が切り替わった最初のサイクルでは差分値の絶対値を出力せず、元のアドレス２０１をそのままアドレスバス３００ａへ出力する。このように処理するのは、バスマスタ２００が切り替わった時は、バスマスタアドレス２０１がそれまでのものとは異なるので、前後の差分を取る意味が無くなるからであり、このため、切り替わり時には、その先頭のアドレス値（元のアドレス２０１）をそのままアドレスバス３００ａへ出力する。
【００１９】
▲４▼、第２バス制御回路４００は、アドレス１５１及びステータス１５２を受け、アドレス１５１を元のバスマスタアドレス２０１と同じアドレスに変換し、これをアドレス４４１としてバススレーブ５００へ出力する。ここで、同じアドレスに変換する場合は、ステータス１５２がプラスを示していればバススレーブ５００へ出力されるアドレス４４１と差分値の絶対値とを足し算し、マイナスを示していれば引き算し、これらの結果をアドレス４４１とする。
【００２０】
▲５▼、第２バス制御回路４００は、バスマスタ２００が切り替わった最初のサイクルでは、アドレスバス３００ａを介して送られてくる元のアドレス２０１をそのままバススレーブ５００へ出力する。
【００２１】
このような処理を行うようにしたのは次の理由による。通常、マイクロプロセッサ等のバスマスタは、メインメモリからコードを読み出すコードフェッチを行なうときは、メモリから連続してリード（バーストリード）を行なうため、アドレスの前後の差分値は一定値となり、信号の変化をなくすことが可能である。一方、データアクセスの場合は、ランダムにアクセスが起こる可能性があり、アドレスの差分値の変化を減らせる可能性は低くなるが、それでも通常、データはある記憶領域にまとまって置かれていることが多く、この方式により最小限の変化に留めることができる。また、ＤＭＡコントローラなどのバスマスタは順々にアドレスを発生するため、完全にアドレスの差分値の変化を無くすことができるからである。このことから、アドレスバス３００ａへ出力するアドレス１５１を差分アドレスとすることで、アドレスバス３００ａの信号の変化を減らすことができ、消費電力及びノイズを減少させることが可能となることに着目した。
【００２２】
次に、図２を参照して第１バス制御回路１００の構成を説明する。第１バス制御回路１００は、ラッチ１１０ａ，１１０ｂ、演算回路１２０、Ｆ／Ｆ（フリップフロップ）１３０、セレクタ１４０、出力バッファ１５０ａ，１５０ｂを備えて構成されている。但し、この例ではアドレスバス３００ａが３２ビットであるとする。
【００２３】
ラッチ１１０ａは、ラッチ制御信号１０２に応じてバスマスタアドレス２０１をラッチし、これをラッチアドレス１１１ａとして演算回路１２０へ出力する。演算回路１２０は、演算制御信号１０３に応じて次に発生されるバスマスタアドレス２０１からラッチアドレス１１１ａを引き算し、この演算結果の絶対値を演算アドレス１２１としてセレクタ１４０へ出力すると共に、演算結果がプラスであったかマイナスであったかを示す符号ステータス１２２を出力バッファ１５０ｂへ出力する。ここで、バスマスタアドレス２０１を一旦ラッチし、このラッチアドレス１１１ａ（前のアドレス）を次のバスマスタアドレス２０１（後のアドレス）から引き算する理由は、例えばアドレスが番地順に発生される場合、後のアドレスが前のアドレスよりも大きくなるので、後から前のアドレスを引き算した方が、その差分結果がプラスとなって処理しやすいからである。
【００２４】
ラッチ１１０ｂは、演算制御信号１０３に応じてバスマスタアドレス２０１をラッチし、これをラッチアドレス１１１ｂとしてセレクタ１４０へ出力する。Ｆ／Ｆ１３０は、バスマスタ２００が切り替わったことを示すバスマスタ切換信号１０１を、演算制御信号１０３でトリガすることにより演算制御信号１０３に同期させ、これをセレクト信号１３１としてセレクタ１４０へ出力する。
【００２５】
セレクタ１４０は、セレクト信号１３１がバスマスタ２００の切り替わりを示している場合はラッチアドレス１１１ｂを選択し、切り替わりを示していない場合は演算アドレス１２１を選択し、これを選択アドレス１４１として出力バッファ１５０ａへ出力する。
【００２６】
出力バッファ１５０ａは、出力バッファ制御信号１０４に応じて選択アドレス１４１をアドレス１５１としてアドレスバス３００ａへ出力する。出力バッファ１５０ｂは、出力バッファ制御信号１０４に応じて符号ステータス１２２をステータス１５２としてステータスバス３００ｂへ出力する。また、出力バッファ１５０ａ，１５０ｂは、出力オフ時に出力レベルをそのまま保持するバスホールド機能を持っている。
【００２７】
次に、図３を参照して第２バス制御回路４００の構成を説明する。第２バス制御回路４００は、ラッチ４１０ａ，４１０ｂ、演算回路４２０、Ｆ／Ｆ４３０、セレクタ４４０を備えて構成されている。
【００２８】
ラッチ４１０ａは、ラッチ制御信号１０２に応じて後述するアドレス４４１をラッチし、これをラッチアドレス４１１ａとして演算回路４２０へ出力する。演算回路４２０は、演算制御信号１０３に応じて演算を行うものであり、ステータス１５２がプラスを表しているときはラッチアドレス４１１ａとアドレス１５１を足し算し、ステータス１５２がマイナスを表しているときはラッチアドレス４１１ａからアドレス１５１を引き算し、これら演算結果を演算アドレス４２１としてセレクタ４４０へ出力する。
【００２９】
ラッチ４１０ｂは、演算制御信号１０３に応じてアドレス１５１をラッチし、これをラッチアドレス４１１ｂとしてセレクタ４４０へ出力する。Ｆ／Ｆ４３０は、バスマスタ２００が切り替わったことを示すバスマスタ切換信号１０１を、演算制御信号１０３でトリガすることにより演算制御信号１０３に同期させ、これをセレクト信号４３１としてセレクタ４４０へ出力する。
【００３０】
セレクタ４４０は、セレクト信号４３１がバスマスタ２００の切り替わりを示している場合はラッチアドレス４１１ｂを選択し、切り替わりを示していない場合は演算アドレス４２１を選択し、これをアドレス４４１としてバススレーブ５００及びラッチ４１０ａへ出力する。
【００３１】
次に、上述のバス制御装置の動作を、図４に示すタイミングチャートを参照して説明する。
【００３２】
但し、ラッチ制御信号１０２及び演算制御信号１０３は、図４に示すように、バスマスタ２００のバスサイクル（ここでは第一サイクル１〜第四サイクル４を表した）に同期して常に出力される信号で、従来の制御回路で生成されるものであり、ここではその制御回路については省略している。また、図４に示す破線より上が第１バス制御回路１００の動作を、破線より下が第２バス制御回路４００の動作を示している。
【００３３】
図４に示す状態は、バスマスタ２００が、バスマスタアドレス２０１を’００００２０００ｈ’、’００００２００４ｈ’、｀００００２００８ｈ’、’００００２００Ｃｈ’のように番地順に出力した場合で、ワード（４バイト）単位でバースト転送している状態である。また、第一サイクル１は、当該バスマスタ２００にバス使用権が切り換った最初のサイクルであり、バスマスタ切換信号１０１が’Ｈｉｇｈ’（電圧ハイレベル）となっている。
【００３４】
このような状態において、ラッチ１１０ａでは、バスマスタ２００から出力される上記アドレス値のバスマスタアドレス２０１がラッチ制御信号１０２の立ち上がりエッジで各サイクル毎にラッチされ、これがラッチアドレス１１１ａとして演算回路１２０へ出力される。即ち、図４に示すラッチアドレス１１１ａの’０００００１６０ｈ’、’００００２０００ｈ’、’００００２００４ｈ’、’００００２００８ｈ’、’００００２００Ｃｈ’が演算回路１２０へ出力される。
【００３５】
演算回路１２０では、演算制御信号１０３の立ち上がりエッジで、バスマスタアドレス２０１からラッチアドレス１１１ａが引き算され、この結果の絶対値が演算アドレス１２１としてセレクタ１４０へ出力される。即ち、第一サイクル１において、バスマスタアドレス２０１の値’００００２０００ｈ’からラッチアドレス１１１ａの値’０００００１６０ｈ’が引き算され、この差分結果の絶対値’００００１ＥＡ０ｈ’がセレクタ１４０へ出力される。同様に、第二サイクル２において、’００００２００４ｈ’から’００００２０００ｈ’が、第三サイクル３において、’００００２００８ｈ’から’００００２００４ｈ’が、第四サイクル４において、’００００２００Ｃｈ’から’００００２００８ｈ’が引き算され、これらの差分結果の絶対値’０００００００４ｈ’がセレクタ１４０へ出力される。ここで、演算アドレス１２１は、常にひとつ前のサイクルのアドレスとの差分を示しているが、バーストサイクル中の第二サイクル２〜第四サイクル４の間は’０００００００４ｈ’で一定となり変化がない。
【００３６】
また、演算回路１２０からは、上記の演算結果がプラスのときは’Ｌｏｗ’　（電圧ローレベル）、マイナスのときは’Ｈｉｇｈ’を示す符号ステータス１２２が出力バッファ１５０ｂへ出力される。ここでは、演算結果がプラスなので’Ｌｏｗ’の符号ステータス１２２が出力される。
【００３７】
他のラッチ１１０ｂでは、バスマスタアドレス２０１が演算制御信号１０３の立ち上がりエッジで各サイクル毎にラッチされ、これがラッチアドレス１１１ｂとしてセレクタ１４０へ出力される。即ち、演算制御信号１０３の立ち上がりエッジに同期した第一サイクル１〜第四サイクル４のラッチアドレス１１１ｂの’００００２０００ｈ’、’００００２００４ｈ’、｀００００２００８ｈ’、’００００２００Ｃｈ’がセレクタ１４０へ出力される。
【００３８】
このセレクタ１４０には、演算制御信号１０３に同期したセレクト信号１３１がＦ／Ｆ１３０から入力されるが、そのセレクト信号１３１となるバスマスタ切換信号１０１は、通常、バス権の調停を行う図示せぬバスアービタから出力される信号であり、バスマスタ２００での切り換えが起こった後、最初のサイクル（この例では第一サイクル１）で’Ｈｉｇｈ’になる。
【００３９】
Ｆ／Ｆ１３０では、そのバスマスタ切換信号１０１が演算制御信号１０３の立ち上がりエッジでトリガされることにより演算制御信号１０３に同期が取られ、これがセレクト信号１３１としてセレクタ１４０へ出力される。セレクタ１４０では、そのセレクト信号１３１が’Ｈｉｇｈ’のときラッチアドレス１１１ｂが選択され、’Ｌｏｗ’のとき演算アドレス１２１が選択され、これが選択アドレス１４１として出力バッファ１５０ａへ出力される。即ち、セレクト信号１３１が’Ｈｉｇｈ’のときラッチアドレス１１１ｂの’００００２０００ｈ’が選択され、’Ｌｏｗ’のとき演算アドレス１２１の’０００００００４ｈ’が選択され、出力バッファ１５０ａへ出力される。
【００４０】
各出力バッファ１５０ａ，１５０ｂに入力される出力バッファ制御信号１０４（図４には示さず）も、バスアービタから出力される信号であり、本バスマスタ２００がバスマスタとして動いているときアクティブとなる。出力バッファ１５０ａでは、その出力バッファ制御信号１０４がアクティブのとき、選択アドレス１４１がアドレス１５１としてアドレスバス３００ａへ出力される。即ち、最終的に、アドレスバス３００ａに出力されるアドレス１５１は、第一サイクル１が元々の’００００２０００ｈ’で、第二サイクル２〜第四サイクル４は’０００００００４ｈ’の固定値となるので、バス３００ａ上の信号の変化を最小限にすることができる。
【００４１】
また、出力バッファ１５０ｂでも同様に、出力バッファ制御信号１０４がアクティブのとき、符号ステータス１２２がステータス１５２（符号ステータス１２２と同じなので図４には示さず）としてステータスバス３００ｂへ出力される。出力バッファ制御信号１０４がインアクティブのときは、各出力バッファ１５０ａ，１５０ｂでは出力がオフとされるが、バスホールド機能によりレベルがそのままの値で保持される。
【００４２】
次に、第２バス制御回路４００において、第１バス制御回路１００で変換されたアドレス１５１が元に戻される動作を説明する。
【００４３】
ラッチ４１０ａでは、第２バス制御回路４００の最終段のセレクタ４４０から出力されるアドレス４４１が、ラッチ制御信号１０２の立ち下がりエッジで各サイクル毎にラッチされ、これがラッチアドレス４１１ａとして演算回路４２０へ出力される。ここでは、セレクタ４４０から元のバスマスタアドレス２０１と同じアドレス値がアドレス４４１としてラッチ４１０ａに出力され、ラッチ制御信号１０２でラッチされるので、ラッチアドレス４１１ａの値は、第１バス制御回路１００におけるラッチアドレス１１１ａと同タイミングで同値の’０００００１６０ｈ’、’００００２０００ｈ’、’００００２００４ｈ’、｀００００２００８ｈ’、’００００２００Ｃｈ’となる。
【００４４】
演算回路４２０では、演算制御信号１０３の立ち下がりエッジのタイミングにおいて、ステータス１５２（符号ステータス１２２参照）が’Ｌｏｗ’のときはラッチアドレス４１１ａとアドレス１５１とが足し算され、ステータス１５２が’Ｈｉｇｈ’のときはラッチアドレス４１１ａからアドレス１５１が引き算され、その結果が演算アドレス４２１としてセレクタ４４０へ出力される。但し、演算制御信号１０３はインバータ回路を通過するので、演算回路１２０には、実際には演算制御信号１０３の立ち上がりエッジが供給される。同様に、ラッチ４１０ｂ、Ｆ／Ｆ４３０にも演算制御信号１０３の立ち上がりエッジが供給される。
【００４５】
ここでは、ステータス１５２が’Ｌｏｗ’なので、ラッチアドレス４１１ａとアドレス１５１とが足し算される。即ち、第一サイクル１では’０００００１６０ｈ’と’００００２０００ｈ’とが足し算され、第二サイクル２では’００００２０００ｈ’と’０００００００４ｈ’とが、第三サイクル３では’００００２００４ｈ’と’０００００００４ｈ’とが、第四サイクル４では｀００００２００８ｈ’と’０００００００４ｈ’とが足し算され、これらの結果である演算アドレス４２１の’０００００１６０ｈ’、’００００２００４ｈ’、｀００００２００８ｈ’、’００００２００Ｃｈ’がセレクタ４４０へ出力される。
【００４６】
また、Ｆ／Ｆ４３０では、バスマスタ切換信号１０１が演算制御信号１０３の立ち下がりエッジのタイミングで同期を取り直され、これがセレクト信号４３１としてセレクタ４４０へ出力される。セレクタ４４０では、そのセレクト信号４３１が’Ｈｉｇｈ’のときラッチアドレス４１１ｂが、’Ｌｏｗ’のとき演算アドレス４２１が選択され、これがアドレス４４１としてバススレーブ５００及びラッチ４１０へ出力される。即ち、セレクト信号４３１が’Ｈｉｇｈ’のときラッチアドレス４１１ｂの’００００２０００ｈ’が選択され、’Ｌｏｗ’のとき演算アドレス４２１の’００００２００４ｈ’、｀００００２００８ｈ’、’００００２００Ｃｈ’が選択されるので、バススレーブ５００へ出力されるアドレス４４１は、元のバスマスタアドレス２０１と同じ、’００００２０００ｈ’、’００００２００４ｈ’、｀００００２００８ｈ’、’００００２００Ｃｈ’となる。
【００４７】
次に、バスマスタ２００が、あるアドレス領域でランダムにアクセスを行っている場合のバス制御装置の動作を、図５に示すタイミングチャートを参照して説明する。
【００４８】
図５に示すように、バスマスタ２００が、バスマスタアドレス２０１を’０８００４０００ｈ’、’０８００４６８０ｈ’、｀０８００４６５８ｈ’、’０８００４６ＣＣｈ’とランダムに出力したとする。
【００４９】
このような状態において、ラッチ１１０ａでは、バスマスタ２００から出力される上記アドレス値のバスマスタアドレス２０１がラッチ制御信号１０２の立ち上がりエッジで各サイクル毎にラッチされ、これがラッチアドレス１１１ａとして演算回路１２０へ出力される。即ち、図５に示すラッチアドレス１１１ａの’００Ａ０４ＦＥ０ｈ’、’０８００４０００ｈ’、’０８００４６８０ｈ’、’０８００４６５８ｈ’、’０８００４６ＣＣｈ’が演算回路１２０へ出力される。
【００５０】
演算回路１２０では、演算制御信号１０３の立ち上がりエッジで、バスマスタアドレス２０１からラッチアドレス１１１ａが引き算され、この結果の絶対値が演算アドレス１２１としてセレクタ１４０へ出力される。即ち、第一サイクル１において、バスマスタアドレス２０１の値’０８００４０００ｈ’からラッチアドレス１１１ａの値’００Ａ０４ＦＥ０ｈ’が引き算され、この差分結果の絶対値’０７５ＦＦ０２０ｈ’がセレクタ１４０へ出力される。同様に、第二サイクル２において、’０８００４６８０ｈ’から’０８００４０００ｈ’が、第三サイクル３において、’０８００４６５８ｈ’から’０８００４６８０ｈ’が、第四サイクル４において、’０８００４６ＣＣｈ’から’０８００４６５８ｈ’が引き算され、これらの差分結果の絶対値’０００００６８０ｈ’、’００００００２８ｈ’、’００００００７４ｈ’がセレクタ１４０へ出力される。
【００５１】
また、演算回路１２０からは、上記の演算結果がプラスのときは’Ｌｏｗ’　、マイナスのときは’Ｈｉｇｈ’を示す符号ステータス１２２が出力バッファ１５０ｂへ出力されるが、第三サイクル３では、前の第二サイクル２よりもバスマスタアドレス２０１の値が小さくなっているため、その部分のみ符号ステータス１２２が’Ｈｉｇｈ’となっている。
【００５２】
ラッチ１１０ｂでは、バスマスタアドレス２０１が演算制御信号１０３の立ち上がりエッジで各サイクル毎にラッチされ、これがラッチアドレス１１１ｂとしてセレクタ１４０へ出力される。即ち、演算制御信号１０３の立ち上がりエッジに同期した第一サイクル１〜第四サイクル４のラッチアドレス１１１ｂの’０８００４０００ｈ’、’０８００４６８０ｈ’、’０８００４６５８ｈ’、’０８００４６ＣＣｈ’がセレクタ１４０へ出力される。
【００５３】
このセレクタ１４０には、’Ｌｏｗ’のバスマスタ切換信号１０１がＦ／Ｆ４３０において演算制御信号１０３でトリガされて得られる’Ｌｏｗ’のセレクト信号１３１が入力されるので、第一サイクル１〜第四サイクル４において演算アドレス１２１の’０７５ＦＦ０２０ｈ’、’０００００６８０ｈ’、’００００００２８ｈ’、’００００００７４ｈ’が選択され、これが選択アドレス１４１として出力バッファ１５０ａへ出力される。
【００５４】
従って、最終的にアドレスバス３００ａに出力されるアドレス１５１は、その演算アドレス１２１の’０７５ＦＦ０２０ｈ’、’０００００６８０ｈ’、’００００００２８ｈ’、’００００００７４ｈ’となる。これらの値は、第一サイクル１を除く第二サイクル２〜第四サイクル４において、アドレス上位５桁のビットが全て’０００００’となっている。最初のバスマスタアドレス２０１の値よりも変化が大幅に少なくなっている。
【００５５】
つまり、ランダムアクセスといっても、ある領域内でのアクセスであれば、その領域の大きさに応じて、アドレス上位のビットを’０’とすることができるので、バス上の信号の変化を減少させることができる。
【００５６】
次に、第２バス制御回路４００において、第１バス制御回路１００で変換されたアドレス１５１が元に戻される場合、まず、セレクタ４４０から元のバスマスタアドレス２０１と同じアドレス値がアドレス４４１としてラッチ４１０ａに出力され、ラッチ制御信号１０２でラッチされる。つまり、ラッチアドレス４１１ａの値は、第１バス制御回路１００におけるラッチアドレス１１１ａと同タイミングで同値の’００Ａ０４ＦＥ０ｈ’、’０８００４０００ｈ’、’０８００４６８０ｈ’、’０８００４６５８ｈ’、’０８００４６ＣＣｈ’となる。
【００５７】
演算回路４２０では、演算制御信号１０３の立ち下がりエッジのタイミングにおいて、ステータス１５２（符号ステータス１２２参照）が’Ｌｏｗ’のときにラッチアドレス４１１ａとアドレス１５１とが足し算、’Ｈｉｇｈ’のときに引き算される。
【００５８】
ここでは、第三サイクル３のみにおいてステータス１５２が’Ｈｉｇｈ’なので、第三サイクル３のみで引き算が行われ、それ以外では足し算が行われる。即ち、第一サイクル１では’００Ａ０４ＦＥ０ｈ’と’０７５ＦＦ０２０ｈ’とが足し算され、第二サイクル２では’０８００４０００ｈ’と’０００００６８０ｈ’とが足し算され、第三サイクル３では’０８００４６８０ｈ’から’００００００２８ｈ’が引き算され、第四サイクル４では’０８００４６５８ｈ’と’００００００７４ｈ’とが足し算され、これらの結果である演算アドレス４２１の’０８００４０００ｈ’、’０８００４６８０ｈ’、’０８００４６５８ｈ’、’０８００４６ＣＣｈ’がセレクタ４４０へ出力される。
【００５９】
セレクタ４４０では、セレクト信号４３１が第一サイクル１〜第四サイクル４の全てにおいて’Ｌｏｗ’なので、演算アドレス４２１の’０８００４０００ｈ’、’０８００４６８０ｈ’、’０８００４６５８ｈ’、’０８００４６ＣＣｈ’が選択され、これがアドレス４４１としてバススレーブ５００及びラッチ４１０ａへ出力される。
【００６０】
このように、この例の構成によれば、第１バス制御回路１００によって、バスマスタ２００から出力されるバスマスタアドレス２０１のうち、前後のアドレスの差分値（アドレス１５１に該当）を求めてアドレスバス３００ａへ出力するようにしたので、アドレス２０１が番地順に出力される場合は、バス３００ａに出力される前後アドレスの差分値１５１が固定値となり、バス３００ａ上の信号の変化を最小限に抑制することができる。また、アドレス２０１がランダムに出力される場合でも、ある領域内でのアクセスであれば、その領域の大きさに応じて、アドレス上位のビットを’０’とすることができるので、バス３００ａ上の信号の変化を減少させることができる。従って、ＬＳＩの中に組み込まれたバスや、バスを含まないＬＳＩに接続されて回路基板上に形成されたバスの制御を行う際に、ＬＳＩの消費電力を低減すると共に電源線やＧＮＤ線に与えるノイズの影響を低減することができる。
【００６１】
また、差分値は、第２バス制御回路４００によって、アドレスバス３００ａを介して入力されるを、バスマスタ２００から出力される元のアドレス２０１に戻してバススレーブ５００へ出力するので、メモリなどの番地指定を通常通り可能とする。
【００６２】
また、この例の構成によれば、第１バス制御回路１００において、差分値を絶対値とし、この絶対値の符号がプラスかマイナスかを示すステータス１５２をステータスバス３００ｂへ出力し、第２バス制御回路４００において、そのステータスバス３００ｂを介して入力されるステータス１５２がプラスの場合に、バススレーブ５００へ出力されるアドレス４４１と、アドレスバス３００ａを介して入力される絶対値（アドレス１５１に該当）とを加算し、ステータス１５２がマイナスの場合に、アドレス４４１から絶対値を減算し、加算又は減算の値をアドレス４４１とすることによって、元のアドレス２０１に戻す処理を行うようにした。つまり、差分値をその絶対値で表現するので、差分値を容易に表現してアドレスバス３００ａへ出力することができる。
【００６３】
また、この例の構成によれば、第１バス制御回路１００において、バスマスタ２００が切り替わった最初のサイクルでは、差分値又はこの絶対値を出力せず、バスマスタ２００から出力される元のアドレス２０１をそのままアドレスバス３００ａへ出力し、第２バス制御回路４００においても、バスマスタ２００が切り替わった最初のサイクルでは、前アドレスバス３００ａを介して入力される元のアドレス２０１をそのままバススレーブ５００へ出力するようにした。バスマスタ２００が切り替わった時は、バスマスタアドレス２０１がそれまでのものとは異なるので、前後アドレスの差分を取る意味が無くなるが、この構成によって、切り替わり時には、その先頭のアドレス値（元のアドレス２０１）をそのままアドレスバス３００ａを介してバススレーブ５００へ出力することができる。
【００６４】
以上、この発明の実施例を図面を参照して詳述してきたが、具体的な構成はこの実施例に限られるものではなく、この発明の要旨を逸脱しない範囲の設計の変更等があってもこの発明に含まれる。
例えば、上述の実施例においては、この発明を第１バス制御回路１００と第２バス制御回路４００とに分けて構成したが、これに限定されず、この発明は、バスマスタ２００がバススレーブ５００の機能を備える場合に、第１バス制御回路１００と第２バス制御回路４００とを１つの回路に纏めて、バスマスタ２００とアドレスバス３００ａ並びにステータスバス３００ｂとの間に接続しても良い。
【００６５】
また、上述の実施例においては、アドレスバス３００ａを３２ビットとして説明したが、それ以外のビット数でもまったく同様に実現することができる。その場合、上述の実施例と略同様の効果が得られる。
【００６６】
この他、図６に示すような制御システムを構成してもよい。この制御システムは、データバス３００ｃに接続された複数のバスマスタ２００−１〜２００−ｎと、アドレスバス３００ａ並びにステータスバス３００ｂとの間に第１バス制御回路１００−１〜１００−ｎを接続し、また、その双方のバス３００ａ，３００ｂと、バススレーブであるメモリ５００−１やＩ／Ｏ回路５００−ｎとの間に、第２バス制御回路４００−１〜４００−ｎを接続して構成したものである。このような構成においても、上記同様に、各バスマスタ２００−１〜２００−ｎからのアドレスにおいて前後の差分値の絶対値が取られ、この絶対値がアドレスバス３００ａへ、ステータスがステータスバス３００ｂへ出力される。更に、第２バス制御回路４００−１〜４００−ｎにおいて、差分値がステータスに応じて元のアドレスに変換され、メモリ５００−１やＩ／Ｏ回路５００−ｎへ出力される。この構成はＬＳＩ内部に取り込んでもよいし、個々の回路やＬＳＩを組み合わせたシステムとして構成してもよい。
【００６７】
【発明の効果】
以上説明したように、この発明の構成によれば、第１の制御回路において、バスマスタから出力されるアドレスのうち前後のアドレスの差分値を求めてアドレスバスへ出力し、第２の制御回路において、アドレスバスを介して入力される差分値をバスマスタから出力される元のアドレスに戻してバススレーブへ出力するようにしたので、バスマスタからのアドレスが番地順に出力される場合は、アドレスバスに出力される前後アドレスの差分値が固定値となり、バス上の信号の変化を最小限に抑制することができる。また、アドレスがランダムに出力される場合でも、ある領域内でのアクセスであれば、その領域の大きさに応じて、アドレス上位のビットを’０’とすることができるので、バス上の信号の変化を減少させることができる。これにより、ＬＳＩの中に組み込まれたバスや、バスを含まないＬＳＩに接続されて回路基板上に形成されたバスの制御を行う際に、ＬＳＩの消費電力を低減すると共に電源線やＧＮＤ線に与えるノイズの影響を低減することができる。
【図面の簡単な説明】
【図１】この発明の一実施例であるバス制御装置の構成を示すブロック図である。
【図２】第１バス制御回路の構成の一例を示すブロック図である。
【図３】第２バス制御回路の構成の一例を示すブロック図である。
【図４】バス制御装置において、バスマスタからアドレスが番地順に出力される場合のバス制御の動作を説明するためのタイミングチャートである。
【図５】バス制御装置において、バスマスタからアドレスがランダムに出力される場合のバス制御の動作を説明するためのタイミングチャートである。
【図６】複数の第１バス制御回路と複数の第２バス制御回路とを適用した制御システムの構成を示すブロック図である。
【符号の説明】
１００　第１バス制御回路
１０１　バスマスタ切換信号
１０２　ラッチ制御信号
１０３　演算制御信号
１０４　出力バッファ制御信号
１１０ａ，１１０ｂ，４１０ａ，４１０ｂ　ラッチ
１１１ａ，１１１ｂ，４１１ａ，４１１ｂ　ラッチアドレス
１２０，４２０　演算回路
１２１，４２１　演算アドレス
１２２　符号ステータス
１３０，４３０　Ｆ／Ｆ（フリップフロップ）
１３１，４３１　セレクト信号
１４０，４４０　セレクタ
１４１　選択されたアドレス
１５０ａ，１５０ｂ　出力バッファ
１５１　アドレスバスへの出力アドレス
１５２　ステータスバスへの出力ステータス
２００　バスマスタ
２０１　バスマスタアドレス
３００ａ　アドレスバス
３００ｂ　ステータスバス
４００　第２バス制御回路
４４１　バススレーブへの出力アドレス
５００　バススレーブ
【図１】
2004021750.tif 000003
【図２】
2004021750.tif 000004
【図３】
2004021750.tif 000005
【図４】
2004021750.tif 000006
【図５】
2004021750.tif 000007
【図６】
2004021750.tif 000008