(57)【要約】【課題】複数のプロセッサを備えた計算機システムにおいて、バスのクロックゲーティング技術を導入した場合、どのバスマスタからも、共通バスがアクセスされてない状態は少なく、クロックゲーティングの効果が薄いこと。【解決手段】計算機システム１０１において、送受信回路２０４と、バッファ回路２０３と、ルーティング回路２０２と、アドレス情報テーブル２１０と、クロック入力回路２０５と、外部出力バス２１１と、Ｎビット幅のデータ入出力バス２０６、２０７、２０８、２０９とを有するバスシステム２０１を、ＣＰＵ１０２と、専用プロセッサプロセッサ１０３と、メモリ１０４との間に複数個配置し、データが通るバスシステムのみにクロックを供給することで、低消費電力を実現する。【選択図】図２
2008305215.tif 000002
【特許請求の範囲】
【請求項１】
データの入力および出力を行う複数のデータ入出力手段と、
前記データ入出力バスで接続された、隣接する１つ以上のバスシステムのアドレスを管理するアドレス情報記憶手段と、
前記データ入出力バスから受け取った入力データを一時的に保存するバッファ手段と、
前記バッファ手段に保存されている入力データを、出力する先である次の隣接バスシステムに対応する前記データ入出力手段に出力する送受信手段と、
動作クロックを入力するクロック入力手段と、
前記次の隣接バスシステムへのリクエスト信号を出力する外部出力手段とを有し、
前記データ入出力手段から入力データを受け取り、前記次の隣接バスシステムへのリクエスト信号を出力している間に、前記入力データの転送をすることを特徴とするバスシステム。
【請求項２】
前記アドレス情報記憶手段を用いて、入力したデータを出力する先である次の隣接バスシステムを決定するルーティング手段を備え、
前記データ入出力手段は、Ｎビット幅のデータの入力及び出力を行い、前記バスシステムは、４つの前記データ入出力手段を有し、
前記送受信手段は、前記ルーティング手段が決定した次の隣接バスシステムに対応する前記データ入出力手段に入力データを出力し、前記外部出力手段は、前記ルーティング手段が次の隣接バスシステムを決定した時に、前記リクエスト信号の出力を開始し、前記バッファ手段に保存されている入力データの出力が完了したと時に、前記リクエスト信号の出力を停止することを特徴とする請求項１記載のバスシステム。
【請求項３】
前記データ入出力手段は、Ｎビット幅のデータ入力及び出力を行い、前記バスシステムは、２つの前記データ入出力手段を有し、
前記送受信手段は、前記バッファ手段に保存されている入力データを受け取った前記入出力手段でない他の前記入出力手段に、入力データを出力することを特徴とする請求項１記載のバスシステム。
【請求項４】
２Ｎビット幅のデータ入力及び出力を行う第２データ入出力手段と、
２Ｎビットのデータを２つのＮビットのデータに分割する分割手段と、
２つのＮビットのデータを２Ｎビットのデータに結合する結合手段とを備え、
前記データ入出力手段は、Ｎビット幅のデータ入力及び出力を行い、前記バスシステムは２つの前記データ入出力手段と２つの前記外部出力手段を有し、
前記第２データ入出力手段から入力データを受け取り、前記分割手段で、２つのＮビットのデータに分割し、２つの前記外部出力手段からリクエスト信号を出力している間に、前記送受信手段が、２つの前記データ入出力手段に、前記分割した２つのＮビット幅のデータを転送することを特徴とする請求項１記載のバスシステム。
【請求項５】
２つの前記データ入出力手段から入力データを受け取り、前記結合手段で、２Ｎビット幅のデータに結合し、前記外部出力手段からリクエスト信号を出力している間に、前記送受信手段が、前記第２データ入出力手段に、前記結合した２Ｎビット幅のデータを転送することを特徴とする請求項４記載のバスシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算機システムのバスシステムに関するものであり、特にバスのクロックゲーティングに関するものである。
【背景技術】
【０００２】
近年の計算機システムは、複数のプロセッサや複数の外部入出力システムを有し、動作クロックやバス幅の異なるバスが多数存在する。また、複数のプロセッサと接続される共通バスが存在し、複数のプロセッサとの間で競合するバスアクセスを調停するメモリコントローラも存在するなど回路が複雑化している。また、バッテリ駆動などで動作する計算機システムにおいては消費電力を低くする為に、各プロセッサやバスに対してクロックゲーティング機構が導入される場合がある。クロックゲーティングとは、一時的に未使用の回路ブロックが存在する場合、任意のサイクルだけその回路ブロックへのクロック信号の供給を停止することにより、計算機システム全体の消費電力を低減する技術である。
【０００３】
従来のクロックゲーティングを用いたバスシステムとしては、外部からの非同期信号を入力するような回路ブロックにおいて、計算機システム内部の動作の同期を取るためのクロック信号の入力オンオフを制御し、計算機システム内部の消費電力を低下することのできるクロック入力制御回路を提供するものがあった（例えば、特許文献１参照）。
【特許文献１】特開平１１−８５３０４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、複数のプロセッサと接続される共通バスに対し、クロックゲーティング技術を導入した時、複数のプロセッサが動作する場合だけでなく、プロセッサが一つだけ動作する場合でも、共通バス全体に対し電力がかかる。組み込み機器において、待機時を除いて、どのバスマスタからも、共通バスがアクセスされてない状態を作り出すことは難しく、クロックゲーティングの効果は薄いという課題を有していた。
【０００５】
本発明は、前記従来の課題を解決するもので、従来のバスに代わり、計算機システムの低消費電力を実現するバスシステムを提供することである。
【課題を解決するための手段】
【０００６】
前記従来の課題を解決するために、本発明のバスシステムは、データの入力および出力を行う複数のデータ入出力手段と、前記データ入出力バスで接続された、隣接する１つ以上のバスシステムのアドレスを管理するアドレス情報記憶手段と、前記データ入出力バスから受け取った入力データを一時的に保存するバッファ手段と、前記バッファ手段に保存されている入力データを、出力する先である次の隣接バスシステムに対応する前記データ入出力手段に出力する送受信手段と、動作クロックを入力するクロック入力手段と、前記次の隣接バスシステムへのリクエスト信号を出力する外部出力手段とを有し、前記データ入出力手段から入力データを受け取り、前記次の隣接バスシステムへのリクエスト信号を出力している間に、前記入力データの転送をすることを特徴とする。
【０００７】
本構成によって、複数のバスシステムを接続して一つのバスを構成することが可能となり、複数のプロセッサや、複数のペリフェラルを有する計算機システムに対し、バスマスタからアクセスされてない状態を作りやすくし、クロックゲーティング技術を導入して、消費電力を低くすることができる。
【発明の効果】
【０００８】
本発明のバスシステムによれば、複数のバスシステムを接続して一つのバスを構成することが可能となり、複数のプロセッサや、複数のペリフェラルを有する計算機システムに対し、バスマスタからアクセスされてない状態を作りやすくし、クロックゲーティング技術を導入して、消費電力を低くすることができる。
【発明を実施するための最良の形態】
【０００９】
以下本発明の実施の形態について、図面を参照しながら説明する。
【００１０】
（実施の形態１）
図１は、本発明の実施の形態１におけるバスシステムを備えた計算機システムの構成例を示す図である。
【００１１】
図１において、１０１は計算機システムであり、ＣＰＵ１０２、専用プロセッサ１０３、メモリ１０４、ＡＮＤ回路１０５、ＯＲ回路１０６と、これらを接続するバスシステム２０１とを備えている。
【００１２】
１０２はＣＰＵであり、メモリ１０４に格納された命令およびデータを参照して、計算機システムで必要な処理を実行する。１０３は専用プロセッサであり、メモリ１０４に格納されたデータを参照して、ＣＰＵ１０２から指示された特定の処理を実行する。具体的には、画像（ＪＰＥＧ、ＧＩＦなど）や映像（ＭＰＥＧなど）のエンコーダーやデコーダーがある。また、処理を実行した結果、変換されたデータをメモリ１０４に格納する場合がある。１０４はメモリであり、データや命令を格納する。１０５はＡＮＤ回路であり、論理回路の一つで、複数の入力と１本の出力を持ち、全ての入力端子から１が入力された時のみ、１を出力する。１０６はＯＲ回路であり、論理回路の一つで、複数の複数の入力と１本の出力を持ち、好くなとも１つの入力端子から１が入力された時、１を出力する。
【００１３】
２０１はバスシステムであり、ＣＰＵ１０２や専用プロセッサ１０３がメモリ１０４から命令やデータを参照する際、または、メモリ１０４にデータを書き込む際に、データを転送する働きをし、他のバスシステム２０１と縦横に最大４本、データ入出力バスで接続することができる。また、２１１は外部出力バスであり、バスシステム２０１から外部にリクエスト信号を出力する。リクエスト信号とクロックをＡＮＤ回路１０５に入力し、クロックゲーティング回路を実現し、データを転送してない時のクロックをオフにすることができる。ＯＲ回路１０６は二つのバスシステム２０１の外部出力バス２１１より出力されたリクエスト信号のうち、どちらか一本が入力されれば、出力信号をＡＮＤ回路１０５に入力する。ＣＰＵ１０２からメモリ１０４にデータを書き込む時、ＣＰＵ１０２とメモリ１０４に間にある複数のバスシステム２０１を順に通って、データが転送される。また、専用プロセッサ１０３からメモリ１０４にデータを書き込む際も、専用プロセッサ１０３とメモリ１０４に間にある複数のバスシステム２０１を順に通って、テータが転送される。データが通らなかったバスシステム２０１にはクロックは入らず、消費電力が削減できる。
【００１４】
図２は、本発明の実施の形態１におけるバスシステムの構成を示す図である。
【００１５】
図２において、２０１はバスシステムであり、Ｎビット幅の４本の入出力バス２０６、２０７、２０８、２０９と、ルーティング回路２０２と、バッファ回路２０３と、クロック入力回路２０５と、送受信回路２０４と、外部出力バス２１１とを備えている。
【００１６】
入出力バス２０６、２０７、２０８、２０９のうち、一本のバスよりパケットデータ３０１を受信し、別の入出力バスよりパケットデータ３０１を出力する。パケットデータ３０１は、バスシステム２０１間を流れるデータであり、詳細は後述する。
【００１７】
送受信回路２０４は、入出力バス２０６、２０７、２０８、２０９と、バッファ回路２０３と、ルーティング回路２０２とに接続されており、内部にアドレス情報テーブル２１０を持つ構成である。送受信回路２０４は、入出力バス２０６、２０７、２０８、２０９のうち、一本のバスからパケットデータを受信すると、バッファ回路２０３にパケットデータを格納し、ルーティング回路２０２にパケットデータのヘッダ部を渡す。送受信回路２０４は、ルーティング回路２０２から、次のアドレスをもらい、外部出力バス２１１を介して、次のアドレスのバスシステム２０１にリクエスト信号を出力し、入出力バス２０６、２０７、２０８、２０９のうち一本のバスを介して、リクエスト信号を出力したバスシステム２０１にパケットデータを転送する。リクエスト信号を出力する期間は後述する。
【００１８】
アドレス情報テーブル２１０は、自身のバスシステム２０１のアドレス情報と、隣接するバスシステム２０１のアドレスである隣接アドレス情報と、隣接するバスシステム２０１の状態を表す隣接バスシステム情報とを管理していて、送受信回路２０４やルーティング回路２０２より呼び出される。ここでは、隣接バスシステム情報として、対象のバスシステム２０１のバッファ回路２０３に容量の空きがあるか否か（空／ＢＵＳＹ）の状態を管理しているものとする。
【００１９】
ルーティング回路２０２は、送受信回路２０４と接続されていて、送受信回路２０４より呼び出され、パケットデータ３０１の転送先である次のバスシステム２０１のアドレスを決定する。
【００２０】
バッファ回路２０３は、ＦＩＦＯ構造のバッファ領域で構成され、送受信回路２０４と接続され、パケットデータ３０１を一時的に保存し、バッファ領域が一杯になると、送受信回路２０４に通知をする。通知を受け取った送受信回路２０４は隣接するバスシステム２０１に対し、データ入出力バス２０６、２０７、２０８、２０９を通して、データが一杯である事を通知する。通知されたバスシステム２０１の送受信回路２０４は、アドレス情報テーブル２１０の隣接バスシステム情報をＢＵＳＹの状態に更新する。また、バッファ回路２０３はバッファ領域が空くと、同様に送受信回路２０４に信号を出力し、送受信回路２０４は、隣接するバスシステム２０１に、バッファ領域が空いている事を通知する。通知されたバスシステム２０１の送受信回路２０４は、アドレス情報テーブル２１０の隣接バスシステム情報を空の状態に更新する。
【００２１】
クロック入力回路２０５は、バスシステム２０１の動作クロックを入力するバスであり、動作クロックが入力されている間、バスシステム２０１に電力が供給され、バスシステム２０１は動作する。
【００２２】
図３は、本発明の実施の形態１における複数のバスシステム２０１のデータ入出力バス２０６、２０７、２０８，２０９を流れるパケットデータ３０１の構成を示す図である。
【００２３】
図３において、３０１はパケットデータであり、バスシステム２０１間を流れるデータである。パケットデータ３０１は、ヘッダ部３０２とデータ部３０３に分かれている。データ部３０３は、送受信対象のデータを格納する。また、ヘッダ部３０２は、種別部３０４、Ｒ／Ｗ部３０５、サイズ部３０６、アドレス部３０７、予備部３０８に分かれている。
【００２４】
種別部３０４は、２ビットの長さを持ち、パケットデータの種類を表す。００の場合は、データ部にＮビットのデータが格納されていることを表し、０１の場合は、隣接アドレスのバスシステム２０１のバッファ回路２０３の容量に空きがある空の状態であり、パケットデータ３０１を受信可能である事を表す。１０の場合は隣接アドレスのバスシステム２０１のバッファ回路２０３の要領に空きがないＢＵＳＹの状態であり、パケットデータ３０１を受信不可能である事を表す。１１の場合は、実施の形態３で説明する。
【００２５】
Ｒ／Ｗ部３０５は、パケットデータの処理内容を表していて、００の場合は、Ｗｒｉｔｅ（書き込み）を表していて、ＣＰＵ１０１や専用プロセッサ１０２がメモリ１０３に対し、データの書き込みを表す。１０の場合は、ＲｅａｄＲｅｑｕｅｓｔで、前述したリクエスト信号を意味し、ＣＰＵ１０１や専用プロセッサ１０２がメモリ１０３の命令やデータを参照する際に、ＣＰＵ１０２や専用プロセッサ１０３とメモリ１０４間に接続されているバスシステム２０１にクロックを入れるための要求をあらわす。１１の場合は、Ｒｅａｄ（読み込み）を表し、ＣＰＵ１０２、または専用プロセッサ１０３がメモリ１０４から参照する命令またはデータを表す。
【００２６】
サイズ部３０６は、４ビットの長さを持ち、種別部３０４が００の場合、データ部の長さを、データ入出力バス２０６、２０７、２０８、２０９のバス幅であるＮビットを単位として、表す。サイズ部３０６の値が、００００の場合、１×Ｎビットのデータがデータ部に格納されていることを表し、最大１６×Ｎビットのデータを１パケットデータで管理することができる。Ｎが３２の場合、１パケットデータで５１２ビットのデータを管理する事ができる。また、サイズ部３０６は、種別部３０４が０１または１０の場合、サイズ部は使用されず、値は００００である。
【００２７】
アドレス部３０７は、８ビットの長さを持ち、アドレスは、縦アドレス４ビット、横アドレス４ビットで表現する。最大、１６×１６のバスシステムを接続することができる。種別部３０４が００の場合、宛先アドレスが格納される。宛先アドレスは、データを運ぶ目的地のアドレスである。たとえば、ＣＰＵ１０２がメモリ１０４よりデータを読み出す場合、ＣＰＵ１０２のアドレスが宛先アドレスとして、アドレス部３０７に格納される。また、種別部３０４が０１または１０の場合、隣接するバスシステム２０１が自身のアドレスをアドレス部３０７に格納する。
【００２８】
予約部３０５は、ヘッダ部３０２をＮビットにあわせるための補完領域である。種別部、サイズ部、アドレス部は計１６ビットで表せるため、（Ｎ−１６）ビットがこの領域に割り当てられる。
【００２９】
また、外部出力バス２１１からリクエスト信号が出力される期間は、Ｗｒｉｔｅの場合、アドレス確定後から、バッファ回路２０３のバッファ領域が空になるまでの期間であり、Ｒｅａｄの場合、Ｒ／Ｗ部３０５に１０が入ったパケットデータ３０１を受信してから、Ｒ／Ｗ部３０５に１１が入ったパケットデータ３０１を受信して、バッファ回路２０３のバッファ領域が空になるまでの期間である。
【００３０】
図４は、本発明の実施の形態１におけるバスシステム２０１がパケットデータ３０１を受信した際の動作を表したフローチャート図である。送受信回路２０４がパケットデータ３０１を受信することで処理を開始する。
【００３１】
送受信回路２０４は、受信したパケットデータ３０１を、バッファ回路２０３に一時保存を行う（ステップＳ４０１）。
【００３２】
送受信回路２０４は、ルーティング回路２０２に処理対象のパケットデータ３０１のヘッダ部３０２を通知する（ステップＳ４０２）。
【００３３】
ルーティング回路２０２は、通知されたヘッダ部３０２のアドレス部３０７から、アドレスを抽出し、抽出したアドレスと、自身のバスシステム２０１のアドレスとを比較する（ステップＳ４０３）。
【００３４】
アドレスが一致した場合（ステップＳ４０３がＮ）、そのバスシステム２０１がパケットデータ３０１の宛先であることを意味しているため、ルーティング回路２０２は、パケットデータ３０１に誤りがあると判断し、送受信回路２０４にエラーを返す。送受信回路２０４は、ルーティング回路２０２からエラーを受け取り、エラー処理を行う（ステップＳ４０４）。エラー処理とは、例えば、エラーログを管理している場合、エラーログの更新を行う。また、パケットデータ３０１に、送信元アドレス部を追加し、送信元のＣＰＵ１０２や専用プロセッサ１０３に対し、エラーが発生したことを通知してもよい。最後に、送受信回路２０４は、バッファ回路２０３に一時保存されている処理対象のパケットデータ３０１を削除し（ステップＳ４１３）、処理を終了する。
【００３５】
アドレスが一致しなかった場合（ステップＳ４０３がＹ）、ルーティング回路２０２は、通知されたヘッダ部３０２の種別部３０４から、種別を抽出し、種別を判定する（ステップＳ４０３）。
【００３６】
種別が「０１」または「１０」の場合（ステップＳ４０５がＹ）、ルーティング回路２０２は、状態を通知するパケットデータであると判断し、送受信回路２０４に抽出した状態通知を返す。送受信回路２０４は、アドレス情報テーブル２１０の隣接バスシステム情報を更新する（ステップＳ４０６）。なお、ヘッダ部３０２のアドレス部３０７の隣接アドレスを用いて、更新対象を決定することができる。次に、送受信回路２０４は、バッファ回路２０３に一時保存されている処理対象のパケットデータ３０１を削除し（ステップＳ４１４）、バッファ回路２０３に一時保存されている他のパケットデータの有無を確認する（ステップＳ４１５）。他のパケットデータが無い場合（ステップＳ４１５が無）、処理を終了する。一方、他のパケットデータが有る場合（ステップＳ４１５が有）、一時保存されているパケットデータを処理対象のパケットデータとし、ステップＳ４０２に遷移して、処理を繰り返す。
【００３７】
種別が「０１」または「１０」でない場合（ステップＳ４０５がＮ）、ルーティング回路２０２は、アドレス情報テーブル２１０内の隣接アドレス群と宛先アドレス（ヘッダ部３０２のアドレス部３０７の宛先アドレス）を上位４ビットより比較し、距離が遠い隣接アドレスを排除し、最も差が小さい隣接アドレスを選択する（ステップＳ４０７）。ルーティング回路２０２は、選択したアドレスが一つに絞れたか判断する（ステップＳ４０８）。選択した隣接アドレスが複数ある場合（ステップＳ４０８がＮ）、ステップＳ４０７に戻り、ルーティング回路２０２は、次の桁を比較し、最も差が小さい隣接アドレスを選択する。隣接アドレスが一つに確定すると（ステップＳ４０８がＹ）、ルーティング回路２０２は、送受信回路２０４に確定したアドレスを返す（ステップＳ４０９）。
【００３８】
送受信回路２０４は、ルーティング回路２０２から受け取ったアドレスが示すバスシステム２０１の状態を判定する（ステップＳ４１０）。具体的には、送受信回路２０４は、アドレス情報テーブル２１０の隣接システムバス情報を判定する。隣接バスシステム情報が「ＢＵＳＹ」の場合（ステップＳ４１０がＢＵＳＹ）、処理を終了する。一方、隣接バスシステム情報が「空」の場合（ステップＳ４１０が空）、ステップＳ４１１に遷移し、送受信回路２０４は、受け取ったアドレスが示すバスシステム２０１に接続された入出力バスを介して、処理対象のパケットデータ３０１を送信する（ステップＳ４１１）。最後に、送受信回路２０４は、バッファ回路２０３に一時保存されている処理対象のパケットデータ３０１を削除し（ステップＳ４１２）、処理を終了する。なお、ステップＳ４１１で処理対象のパケットデータ３０１を送信している間、外部出力バス２１１を介してリクエスト信号を出力しており、これにより、次のバスシステム２０１にクロックが供給されることになる。
【００３９】
図５は、本発明の実施の形態１におけるバスシステム２０１を備えた計算機システムのルーティング例を示す図である。
【００４０】
図５において、５０１はＣＰＵであり、５０２は専用プロセッサであり、５０３、５０４はメモリであり、バスシステム２０１を９つ接続した構成を持つ。９つのバスシステム２０１は列行の順にアドレス１１、１２、１３、２１、２２、２３、３１、３２、３３のアドレス情報をアドレス情報テーブル２１０にて保持する。ＣＰＵ５０１は、アドレス１０、専用プロセッサ５０２はアドレス３０、メモリ５０３はアドレス１４、メモリ５０４はアドレス３４とするが、ＣＰＵ５０１、専用プロセッサ５０２、メモリ５０３、５０４は自身でアドレス情報を持たず、隣接するバスシステム２０１のアドレス情報テーブル２１０内に隣接アドレスとして、情報を保持する。例として、アドレス３３のバスシステム２０１のアドレス情報テーブル２１０には、隣接アドレス３４を情報として保持する。
【００４１】
ＣＰＵ５０１よりメモリ５０４へデータ書き込みを行うルーティングの一例を説明する。アドレス１１のバスシステム２０１が、ＣＰＵ５０１より、宛先アドレス３４のパケットデータ３０１を受信する。アドレス１１のバスシステム２０１は、アドレス情報テーブル２１０内に隣接アドレス１２、２１を持つ。隣接アドレスと宛先アドレスの上位４ビット（列アドレス）と比較する。宛先アドレスは３４、隣接アドレス１２、２１の上位４ビット（列アドレス）を比較すると、宛先アドレスは３、隣接アドレスは１と２となるので、上位４ビット（列アドレス）が２を持つ隣接アドレス２１が近いこととなる。よって、隣接アドレス２１が次の進行方向となる。アドレス２１のバスシステム２０１では、宛先アドレスは３４と、隣接アドレス２２、３１を上位４ビット（列アドレス）より比較すると、隣接アドレス３１が選択され、次のアドレスとなる。同様に、アドレス３１のバスシステム２０１より、アドレス３２のバスシステム２０１が選択され、アドレス３２のバスシステムよりアドレス３３のバスシステム２０１が選択される。アドレス３３のバスシステム２０１で、隣接アドレス３４が選択され、メモリ５０４にアクセスされる。この場合、選択されたアドレス１１、２１、３１、３２、３３のバスシステム２０１のみにクロック信号２１１が供給され、その他のバスシステム２０１にはクロック信号２１１が供給されないことから、データが経由するバスシステムのみに電源が供給されることになり、消費電力を低減することが可能となる。
【００４２】
また、２番目の例として、ＣＰＵ５０１がメモリ５０４へアクセスする際、アドレス２１のバスシステム２０１がパケットデータ３０１を受信した際、バスシステム３１が満の状態である時を説明する。アドレス２１のバスシステム２０１において、アドレス情報テーブル２１０ではアドレス３１が満の状態であると記録されている。アドレス３１が満の状態である為、空の状態である隣接アドレス２２が選択され、次のアドレスとなる。アドレス２２のバスシステムのアドレス情報テーブル２１０には、隣接アドレス１２、２３、３２が空の状態であると記載されている。宛先アドレス３４に最も近いアドレス３２のバスシステム２０１が選択される。アドレス３２のバスシステム２０１にパケットデータ３０１が到着する前に、アドレス３１のバスシステム２０１は空の状態になったとする。アドレス３２のバスシステム２０１のアドレス情報テーブル２１０には、空の状態である隣接アドレスは３１、３３である。隣接アドレスは３１、３３の上位４ビット（列アドレス）を比較すると、宛先アドレスは３、隣接アドレスは３と３になるので、次の４ビット（行アドレス）を比較する。アドレス３１のバスシステム２０１は１、アドレス３３のバスシステム２０１は３、宛先アドレス３４は４である為、宛先アドレス３４に最も近い隣接アドレス３３が選択され、次のアドレスとなる。アドレス３３のバスシステム２０１からアドレス３４のメモリ５０４にアクセスされる。この場合、選択されたアドレス１１、２１、２２、３２、３３のバスシステム２０１のみにクロック信号２１１が供給され、その他のバスシステム２０１にはクロック信号２１１が供給されないことから、データが経由するバスシステムのみに電源が供給されることになり、消費電力を低減することが可能となる。
【００４３】
これにより、混雑しているバスシステム２０１の情報を管理するアドレス情報テーブル２１０とバッファ回路２０３とを有することで、バスの調停を行うことを可能とする。また、リクエスト信号２１１により、クロックゲーティングを実現し、データが通るバスシステムのみにクロックを供給でき、低消費電力の効果がある。
【００４４】
以上により、複数のバスシステムを接続して一つのバスを構成することができ、細かなクロックゲーティングを可能とし、データが通るバスシステムのみにクロックを供給することで、消費電力を低減することができる。特に、バッテリ駆動の計算機システムのデータバスとして有用である。また、調停機能も有しているので、計算機システムのメモリコントローラとしても効果がある。
【００４５】
（実施の形態２）
図６は、本発明の実施の形態２におけるバスシステムの構成を示す図である。図６において、図２と同じ構成要素については同じ符号を用い、説明を省略する。
【００４６】
図６において、６０１はバスシステムであり、Ｎビット幅のデータ入出力バス６０２、６０３と、バッファ回路２０３と、クロック入力回路２０５と、送受信回路５０４と、外部出力バス２１１とを備えている。
【００４７】
クロック入力回路２０５よりクロックが入力されている時、パケットデータ３０１をデータ入出力バス６０２より受信し、データ入出力バス６０３よりデータを送信する、または、パケットデータ３０１をデータ入出力バス６０３より受信し、データ入出力バス６０２より送信する。図２と異なるのは、データ入出力バス６０２、６０３が２本である事と、ルーティング回路２０２がない事である。送受信回路６０４は内部にアドレス情報テーブル２１０を内部に持つ。送受信回路６０４はデータ入出力バス６０２、または６０３よりパケットデータ３０１を受信すると、外部出力バス２１１よりリクエスト信号を出力する。受け取ったパケットデータ３０１は、バッファ回路２０３で一時的に保存され、データ入出力バス６０３、または６０２よりデータが送信される。バスシステム６０１は、接続先が１対１である場合において、有効であり、バスシステム２０１より回路が簡単であり、回路規模が小さい特徴を持つ。
【００４８】
図７は、本発明の実施の形態２におけるバスシステム６０１を備えた計算機システムの構成例を示す図である。
【００４９】
図７において、７０１はＣＰＵであり、７０２はメモリである。ＣＰＵ７０１とメモリ７０２の間に縦列に３個接続したバスシステム６０１を配置し、ＣＰＵ７０１から、バスアクセスの為のリクエスト信号とクロックをＡＮＤ回路７０３に入れて、その出力信号をクロック入力回路２０５に入力し、クロックゲーティング回路を実現している。また、バスシステム６０１の外部出力バス２１１より出力されるリクエスト信号とクロックをＡＮＤ回路７０４の入力信号とし、その出力信号をアドレス１２のバスシステム７０１のクロック入力回路２０５に入力し、クロックゲーティング回路を実現している。同様に、アドレス１３のバスシステム６０１もクロックゲーティングにより動作する。ＣＰＵ７０１よりメモリアクセスが発生した際、アドレス１１のバスシステム７０１にクロックが入り、動作を開始し、アドレス１２、アドレス１３のバスシステム７０１に順にクロックが入る。また、アクセスの最後には、アドレス１１よりクロックが順に切れる動作をする。
【００５０】
以上により、ＣＰＵ７０１からメモリ７０２へＷｒｉｔｅが行われる時、クロックゲーティング回路と組み合わせる事により、バスシステム７０１はデータが流れる時のみ、クロック信号が供給されることになり、消費電力を削減することができる。また、Ｒｅａｄ時においても、ＲｅａｄＲｅｑｕｅｓｔを表すパケットデータ３０１をバスシステム６０１が受信してから、Ｒｅａｄの為のデータが流れる時までの間のみ、クロック信号が供給されることになり、消費電力を削減することができる。
【００５１】
（実施の形態３）
図８は、本発明の実施の形態３におけるバスシステムの構成を示す図である。図８において、図２、図６と同じ構成要素については同じ符号を用い、説明を省略する。
【００５２】
図８において、８０１はバスシステムであり、２Ｎビット幅のデータ入出力バス８０２とＮビット幅のデータ入出力バス８０３、８０４と、送受信回路８０５と、バッファ回路２０３と、ＡＮＤ回路８０６とシフト回路８０７と、クロック入力回路２０５と外部出力バス８０８、８０９とを備えている。
【００５３】
外部入出力バス８０２より受信した２Ｎビットのパケットデータ３０１を分割して、２本のＮビットのパケットデータ３０１に変換し、送信する。また、外部入出力バス８０３、８０４より受信した２本のＮビットのパケットデータ３０１を結合して、２Ｎビットのパケットデータ３０１に変換し、送信する。パケットデータ３０１の種別部３０４は、１１で、２Ｎビットのデータであることを表し、分割された２つのＮビットのパケットデータ３０１の種別部３０４も１１で、２Ｎビットのデータが分割されたことを表す。また、送受信回路８０５は、データ入出力バス８０２より、２Ｎビットのデータを受信した場合、ＡＮＤ回路入力バス８１０に上位Ｎビットを１、下位Ｎビットを０のデータを送信し、ＡＮＤ回路入力バス８１１に、データ入出力バス８０２より受信した２Ｎビットのパケットデータ３０１のデータ部３０３を送信し、ＡＮＤ回路８０６にて、下位ビットをマスクしたデータをＡＮＤ回路出力バス８１２より受信し、シフト回路バス８１３を通って、シフト回路８０７にて、Ｎビット右シフトして、上位Ｎビットデータを生成する。また、ＡＮＤ回路入力バス８１０に上位Ｎビットを０、下位Ｎビットを１のデータを送信し、ＡＮＤ回路入力バス８１１に、データ入出力バス８０２より受信したパケットデータ３０１のデータ部３０３を送信し、ＡＮＤ回路８０６にて、上位ビットをマスクし、下位Ｎビットデータを生成する。生成された2本のパケットデータ３０１のヘッダ部は、宛先アドレス、サイズ、種別、Ｒ／Ｗなど、全て同じ値が入る。上位Ｎビット側のパケットデータ３０１のデータが０でない場合、外部出力バス８０８、８０９よりリクエスト信号を出力、データ入出力バス８０２、８０３よりパケットデータを送信する。上位Ｎビット側のパケットデータ３０１のデータが０の場合、パケットデータ３０１の種別部３０４は００が入り、Ｎビットのパケットデータ３０１として扱われる。バスシステム８０１は、種別部３０４が００のパケットデータの場合、外部出力バス８０９のみ、信号を出力し、データ入出力バス８０４から、下位Ｎビットのパケットデータ３０１を送信する。また、送受信回路８０４は、データ入出力バス８０３、８０４よりパケットデータ３０１を受信した場合、ＡＮＤ回路８０６、シフト回路８０７を使用し、二つのＮビットのパケットデータ３０１を２Ｎビットのパケットデータに結合し、外部出力バス８０８、８０９より信号を出力し、データ入出力バス８０２より２Ｎビットのパケットデータ３０１を送信する。
【００５４】
図９は、本発明の実施の形態３におけるバスシステム８０１と実施の形態２におけるバスシステム６０１を備えた計算機システムの構成を示す図である。
【００５５】
図９において、９０１はＣＰＵであり、９０２はメモリである。ＣＰＵ９０１とメモリ９０２の間に、バスシステム８０１を２つ、バスシステム６０１を４つ接続した構成をする。ＣＰＵ９０１とアドレス２１のバスシステム８０１のデータ入出力バス８０２を２Ｎビット幅で接続し、ＣＰＵ９０１からのリクエスト信号とクロックをＡＮＤ回路９０３に接続し、ＡＮＤ回路９０３の出力信号をバスシステム８０１のクロック入力回路２０５に接続する。また、メモリ９０２とアドレス２４バスシステム８０１をそれぞれ２Ｎビット幅で接続する。アドレス２１のバスシステム８０１は、アドレス１２、２２のバスシステムとＮビット幅で接続し、外部出力バス８０８から出力されるリクエスト信号とクロックをＡＮＤ回路９０４に入力し、その出力信号をアドレス１２のバスシステム６０１のクロック入力回路２０５と接続する。また、アドレス２１のバスシステム８０１の外部出力バス８０９から出力されるリクエスト信号とクロックをＡＮＤ回路９０６に入力し、その出力信号をアドレス２２のバスシステム６０１のクロック入力回路２０５と接続する。
【００５６】
アドレス１２のバスシステム６０１とアドレス１３のバスシステム６０１をＮビット幅で接続し、アドレス２２のバスシステム６０１はアドレス２３のバスシステム６０１とＮビット幅で接続する。また、アドレス１２のバスシステム６０１の外部出力バス２１１から出力されるリクエスト信号とクロックをＡＮＤ回路９０５に入力し、その出力信号をアドレス１３のバスシステム６０１のクロック入力回路２０５と接続し、アドレス２２のバスシステム６０１の外部出力バス２１１から出力されるリクエスト信号とクロックをＡＮＤ回路９０７に入力し、その出力信号をアドレス２３のバスシステム６０１のクロック入力回路２０５と接続する。アドレス１３、アドレス２３のバスシステムはアドレス２４のバスシステム８０１とＮビット幅で接続し、アドレス２３のバスシステム６０１の外部出力バス２１１から出力されるリクエスト信号とクロックをＡＮＤ回路９０８に入力し、その出力信号をアドレス２４のバスシステム８０１のクロック入力回路２０５と接続する。アドレス１３のバスシステム６０１の外部出力バス２１１は何も接続しない。バスシステム８０１の列アドレスは、必ず下位側に合わせるようにする。ＣＰＵ９０１よりメモリ９０２へデータアクセスする際の流れを見る。２Ｎビットのパケットデータ３０１がアドレス２１のバスシステム８０１へ転送される。アドレス２１のバスシステム８０１で、２Ｎビットのパケットデータ３０１のデータ部３０３は、上位Ｎビットと下位Ｎビットのデータに分割される。分割されたデータを含む、Ｎビットのパケットデータ３０１は、アドレス１２、２２のバスシステム６０１へと転送される。同様にアドレス１３、２３のバスシステム６０１へ転送され、アドレス２４のバスシステム８０１で上位Ｎビットと下位Ｎビットのデータが結合され、メモリ９０２へとアクセスされる。この時、ＣＰＵ９０１から出力された２Ｎビットのデータの上位Ｎビットが０である場合、アドレス２１のバスシステム８０１の外部出力バス８０８からリクエスト信号は発せず、アドレス１２、１３のバスシステム６０１にはクロックが入力されない。その為、２つのバスシステム６０１が使用されず、消費電力を削減することができる。
【００５７】
図１０は、本発明の実施の形態３におけるバスシステム８０１と実施の形態２におけるバスシステム６０１と実施の形態１におけるバスシステム２０１とを備えた計算機システムの構成を示す図である。
【００５８】
図１０において、１００１は計算機システムであり、１００２はＡＮＤ回路であり、１００３はＯＲ回路であり、論理回路の一つで、複数の複数の入力と１本の出力を持ち、好くなとも１つの入力端子から１が入力された時、１を出力する。
【００５９】
図９との相違点は、専用プロセッサ１０３とアドレス３３のバスシステム６０１をＮビット幅のデータ入出力バスで接続し、専用プロセッサ１０３のリクエスト信号とクロックをＡＮＤ回路１００２の入力とし、その出力をアドレス３３のバスシステム６０１のクロック入力回路２０５と接続している点と、アドレス２３にバスシステム２０１を配置し、アドレス３３のバスシステム６０１とアドレス２１のバスシステム６０１とアドレス２４のバスシステム８０１とそれざれＮビット幅のデータ入出力バスで接続する点と、アドレス３３のバスシステム６０１の外部出力バス２１１とアドレス２２のバスシステム６０１の外部出力バス２１１をＯＲ回路１００３の入力とし、ＯＲ回路１００３の出力をＡＮＤ回路９０７の入力としている点である。専用プロセッサ１０３からメモリ９０２へアクセスする際、専用プロセッサ１０３からリクエスト信号とクロックがＡＮＤ回路１００２へ入力され、その出力信号がアドレス３３のバスシステム６０１のクロック入力回路２０５に入力され、アドレス３３のバスシステム６０１が動作を開始する。専用プロセッサから送信されたＮビット幅のパケットデータ３０１がアドレス３３のバスシステム６０１に送信され、アドレス３３のバスシステム６０１の外部出力信号２１１からＯＲ回路１００３にリクエスト信号が送信され、その出力信号がＡＮＤ回路９０７に入力される。ＡＮＤ回路９０７の出力信号がアドレス２３のバスシステム２０１のクロック入力回路２０５に入力され、アドレス２３のバスシステム２０１が動作を開始する。アドレス３３のバスシステム６０１が、Ｎビット幅のパケットデータ３０１をアドレス２３のバスシステム２０１に送信し、アドレス２３のバスシステム２０１の外部出力信号２１１のリクエスト信号とクロックをＡＮＤ回路９０８へ入力し、その出力信号がアドレス２４のバスシステム８０１のクロック入力信号２０５へ入力されて、アドレス２４のバスシステム８０１が動作を開始する。アドレス２３のバスシステムからＮビットのパケットデータをアドレス２４のバスシステム８０１へ送信され、アドレス２４のバスシステム８０１から、メモリ９０２へアクセスされる。
【００６０】
以上により、複数のバスシステムを接続して一つのバスを構成することが可能となり、データが通るバスシステムのみにクロックを供給することで、消費電力を低減することができる。
【産業上の利用可能性】
【００６１】
本発明にかかるバスシステムは、複数のバスシステムを接続して一つのバスを構成することにより、細かなクロックゲーティングを可能とし、バッテリ駆動の計算機システムのデータバスとして有用である。また、調停機能も有しているので、計算機システムのメモリコントローラの用途にも応用できる。
【図面の簡単な説明】
【００６２】
【図１】本発明の実施の形態１におけるバスシステムを備えた計算機システムの構成例を示す図
【図２】本発明の実施の形態１におけるバスシステムの構成を示す図
【図３】本発明の実施の形態１におけるバスシステム２０１間を流れるパケットデータ３０１の構成を示す図
【図４】本発明の実施の形態１におけるバスシステムの動作を表したフローチャート
【図５】本発明の実施の形態１におけるバスシステム２０１を備えた計算機システムのルーティング例を表した図
【図６】本発明の実施の形態２におけるバスシステムの構成を示す図
【図７】本発明の実施の形態２におけるバスシステムを備えた計算機システムの構成を示す図
【図８】本発明の実施の形態３におけるバスシステムの構成を示す図
【図９】本発明の実施の形態３におけるバスシステムを備えた計算機システムの構成を示す図
【図１０】本発明の実施の形態３におけるバスシステムを備えた計算機システムの構成を示す図
【符号の説明】
【００６３】
１０１    計算機システム
１０２，５０１    ＣＰＵ
１０３，５０２    専用プロセッサ
１０４，５０３，５０４    メモリ
１０５    ＡＮＤ回路
１０６    ＯＲ回路
２０１    バスシステム
２０２    ルーティング回路
２０３    バッファ回路
２０４    送受信回路
２０５    クロック入力回路
２０６，２０７，２０８，２０９    データ入出力バス
２１０    アドレス情報テーブル
２１１    外部出力バス
５０１    ＣＰＵ
５０２    専用プロセッサ
５０３，５０４    メモリ
６０１    バスシステム
６０２，６０３    データ入出力バス
６０４    送受信回路
７０１    ＣＰＵ
７０２    メモリ
７０３，７０４，７０５    ＡＮＤ回路
８０１    バスシステム
８０２，８０３，８０４    データ入出力バス
８０５    送受信回路
８０６    ＡＮＤ回路
８０７    シフト回路
８０８，８０９    外部出力バス
８１０，８１１，８１２    ＡＮＤ回路入力バス
８１３    シフト回路バス
９０１    ＣＰＵ
９０２    メモリ
９０３，９０４，９０５，９０６，９０７，９０８    ＡＮＤ回路
９０１    ＣＰＵ
１００１    計算機システム
１００２    ＡＮＤ回路
１００３    ＯＲ回路
【図１】
2008305215.tif 000003
【図２】
2008305215.tif 000004
【図３】
2008305215.tif 000005
【図４】
2008305215.tif 000006
【図５】
2008305215.tif 000007
【図６】
2008305215.tif 000008
【図７】
2008305215.tif 000009
【図８】
2008305215.tif 000010
【図９】
2008305215.tif 000011
【図１０】
2008305215.tif 000012