(57)【要約】【課題】バスの使用効率を向上させる。【解決手段】内部処理モジュール３１１は一定の周期で繰り返される第１の期間の先頭を検出する。内部処理モジュール３１１は、バス使用許可信号を受信してから最初に第１の期間の先頭が訪れた場合に、第１の期間よりも短い第２の期間内に、読み出しの対象であるデータのアドレスをバス１００に出力する。内部処理モジュール３１１は、第２の期間に続いて、予め定められた正の整数を周期に乗じた第３の期間が経過した場合に、第３の期間に続いて、周期から前記第２の期間を差し引いた第４の期間内に、当該アドレスに対応するデータであって、スレーブ装置がバス１００に出力したデータを入力する。【選択図】図２
2008186093.tif 000002
【特許請求の範囲】
【請求項１】
バスに接続された複数の装置による該バスの使用期間が重複しないように該バスの使用期間を各装置に割り当てるバスアービタに、該バスの使用の要求を表すバス使用要求信号を送信する要求信号送信手段と、
前記バスアービタが送信した前記バスの使用の許可を表すバス使用許可信号を受信する許可信号受信手段と、
一定の周期で繰り返される第１の期間の先頭を検出し、前記許可信号受信手段が前記バス使用許可信号を受信してから最初に前記先頭が訪れた場合に、前記第１の期間よりも短い第２の期間内に、読み出しの対象であるデータのアドレスを前記バスに出力するアドレス出力手段と、
前記第２の期間に続いて、予め定められた正の整数を前記周期に乗じた第３の期間が経過した場合に、前記第３の期間に続いて、前記周期から前記第２の期間を差し引いた第４の期間内に、前記アドレス出力手段が出力したアドレスに対応するデータであって、スレーブ装置が前記バスに出力したデータを入力するデータ入力手段と
を有することを特徴とするバスインターフェース回路。
【請求項２】
前記データ入力手段は、前記第３の期間に続いて、前記スレーブ装置が前記データの準備のための期間を前記第３の期間だけ延長することを要求した場合に、さらに前記第３の期間だけ待機した後、前記第４の期間内に前記データを入力することを特徴とする請求項１に記載のバスインターフェース回路。
【請求項３】
前記スレーブ装置が前記データの準備のための期間を前記第３の期間だけ延長することを要求し、且つ、前記アドレス出力手段がアドレスを出力してからの経過時間が所定値に達した場合に、前記スレーブ装置に処理の中止を指示する中止指示手段を有することを特徴とする請求項２に記載のバスインターフェース回路。
【請求項４】
前記アドレス出力手段は、前記許可信号受信手段が前記バス使用許可信号を受信してから最初に前記先頭が訪れた場合に、前記第２の期間内に、データの書き込み先のアドレスを前記バスに出力し、
前記アドレス出力手段がデータの書き込み先のアドレスを出力した前記第２の期間に続いて前記第３の期間が経過した場合に、該第３の期間に続いて、前記第４の期間内に、該アドレスに対応するデータを前記バスに出力するデータ出力手段を有する
ことを特徴とする請求項１乃至３のいずれかに記載のバスインターフェース回路。
【請求項５】
一定の周期で繰り返される第１の期間の先頭を検出し、前記第１の期間よりも短い第２の期間内に、マスタ装置がバスに出力したアドレスを入力するアドレス入力手段と、
前記アドレス入力手段がアドレスを入力した前記第２の期間に続いて、予め定められた正の整数を前記周期に乗じた第３の期間が経過した場合に、前記第３の期間に続いて、前記周期から前記第２の期間を差し引いた第４の期間内に、該アドレスに対応するデータを前記バスに出力するデータ出力手段と
を有することを特徴とするバスインターフェース回路。
【請求項６】
前記データ出力手段は、前記第３の期間内に前記アドレスに対応するデータの出力の準備が完了しなかった場合に、該データの準備のための期間を前記第３の期間だけ延長することを前記マスタ装置に要求するとともに、さらに前記第３の期間だけ該準備を実行することを特徴とする請求項５に記載のバスインターフェース回路。
【請求項７】
前記データ出力手段は、前記マスタ装置が処理の中止を指示した場合に、前記準備のための処理を中止することを特徴とする請求項６に記載のバスインターフェース回路。
【請求項８】
前記アドレス入力手段が入力したアドレスがデータの書き込み先のアドレスであるか否かを判別する判別手段と、
前記判別手段による判別の結果、前記アドレスがデータの書き込み先のアドレスである場合に、前記第４の期間内にマスタ装置が前記バスに出力したデータを入力するデータ入力手段を有する
ことを特徴とする請求項５乃至７のいずれかに記載のバスインターフェース回路。
【請求項９】
前記アドレス出力手段が、前記第２の期間の先頭から途中までの期間にアドレスの出力を行うことを特徴とする請求項１乃至４のいずれかに記載のバスインターフェース回路。
【請求項１０】
前記データ出力手段が、前記第３の期間の先頭から途中までの期間にデータの出力を行うことを特徴とする請求項４乃至８のいずれかに記載のバスインターフェース回路。
【請求項１１】
データを伝送するバスと、
前記バスに接続された複数の装置による前記バスの使用期間が重複しないように前記バスの使用期間を各装置に割り当てるバスアービタと、
請求項１に記載のバスインターフェース回路と、
請求項５に記載のバスインターフェース回路と
を有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バスインターフェース回路および情報処理装置に関する。
【背景技術】
【０００２】
バスに複数の装置が接続されている電子機器では、ある装置（マスタ装置）がバスの動作速度よりも動作速度の遅い他の装置（スレーブ装置）からデータの読み出しを行う場合、スレーブ装置によるデータの準備に遅れが生じることがある。その場合、バスが使用されない期間が発生するので、バスの使用効率が低下してしまう。図１３は、データ伝送のタイミングチャートの例であり、読み出しの対象であるデータのアドレスが伝送されてからこのアドレスに対応するデータが伝送されるまでの間に信号が伝送されない無効サイクルが生じている様子を表している。
【０００３】
バスの使用効率を向上させるための技術として、例えば、特許文献１では、プロセッサに接続されたプロセッサバス、メモリに接続されたメモリバス、入出力装置に接続されたシステムバスの３つを接続する接続装置を備えた情報処理装置が開示されている。この技術によれば、プロセッサ、メモリ、入出力装置のいずれか２つが連動して動作している場合に残る１つが独立して動作できるので、バスの使用効率が向上するとされていが、バス毎の使用効率を向上させる技術は開示されていない。
【特許文献１】特許２９１０３０３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明は、バスの使用効率を向上させることのできる技術の提供を目的とする。
【課題を解決するための手段】
【０００５】
上述の課題を解決するために、請求項１に記載の発明は、バスに接続された複数の装置による該バスの使用期間が重複しないように該バスの使用期間を各装置に割り当てるバスアービタに、該バスの使用の要求を表すバス使用要求信号を送信する要求信号送信手段と、前記バスアービタが送信した前記バスの使用の許可を表すバス使用許可信号を受信する許可信号受信手段と、一定の周期で繰り返される第１の期間の先頭を検出し、前記許可信号受信手段が前記バス使用許可信号を受信してから最初に前記先頭が訪れた場合に、前記第１の期間よりも短い第２の期間内に、読み出しの対象であるデータのアドレスを前記バスに出力するアドレス出力手段と、前記第２の期間に続いて、予め定められた正の整数を前記周期に乗じた第３の期間が経過した場合に、前記第３の期間に続いて、前記周期から前記第２の期間を差し引いた第４の期間内に、前記アドレス出力手段が出力したアドレスに対応するデータであって、スレーブ装置が前記バスに出力したデータを入力するデータ入力手段とを有することを特徴とするバスインターフェース回路を提供する。
【０００６】
請求項２に記載の発明は、請求項１に記載のバスインターフェース回路において、前記データ入力手段は、前記第３の期間に続いて、前記スレーブ装置が前記データの準備のための期間を前記第３の期間だけ延長することを要求した場合に、さらに前記第３の期間だけ待機した後、前記第４の期間内に前記データを入力することを特徴とする。
【０００７】
請求項３に記載の発明は、請求項２に記載のバスインターフェース回路において、前記スレーブ装置が前記データの準備のための期間を前記第３の期間だけ延長することを要求し、且つ、前記アドレス出力手段がアドレスを出力してからの経過時間が所定値に達した場合に、前記スレーブ装置に処理の中止を指示する中止指示手段を有することを特徴とする。
【０００８】
請求項４に記載の発明は、請求項１乃至３のいずれかに記載のバスインターフェース回路において、前記アドレス出力手段は、前記許可信号受信手段が前記バス使用許可信号を受信してから最初に前記先頭が訪れた場合に、前記第２の期間内に、データの書き込み先のアドレスを前記バスに出力し、前記アドレス出力手段がデータの書き込み先のアドレスを出力した前記第２の期間に続いて前記第３の期間が経過した場合に、該第３の期間に続いて、前記第４の期間内に、該アドレスに対応するデータを前記バスに出力するデータ出力手段を有することを特徴とする。
【０００９】
請求項５に記載の発明は、一定の周期で繰り返される第１の期間の先頭を検出し、前記第１の期間よりも短い第２の期間内に、マスタ装置がバスに出力したアドレスを入力するアドレス入力手段と、前記アドレス入力手段がアドレスを入力した前記第２の期間に続いて、予め定められた正の整数を前記周期に乗じた第３の期間が経過した場合に、前記第３の期間に続いて、前記周期から前記第２の期間を差し引いた第４の期間内に、該アドレスに対応するデータを前記バスに出力するデータ出力手段とを有することを特徴とするバスインターフェース回路を提供する。
【００１０】
請求項６に記載の発明は、請求項５に記載のバスインターフェース回路において、前記データ出力手段は、前記第３の期間内に前記アドレスに対応するデータの出力の準備が完了しなかった場合に、該データの準備のための期間を前記第３の期間だけ延長することを前記マスタ装置に要求するとともに、さらに前記第３の期間だけ該準備を実行することを特徴とする。
【００１１】
請求項７に記載の発明は、請求項６に記載のバスインターフェース回路において、前記データ出力手段は、前記マスタ装置が処理の中止を指示した場合に、前記準備のための処理を中止することを特徴とする。
【００１２】
請求項８に記載の発明は、請求項５乃至７のいずれかに記載のバスインターフェース回路において、前記アドレス入力手段が入力したアドレスがデータの書き込み先のアドレスであるか否かを判別する判別手段と、前記判別手段による判別の結果、前記アドレスがデータの書き込み先のアドレスである場合に、前記第４の期間内にマスタ装置が前記バスに出力したデータを入力するデータ入力手段を有することを特徴とする。
【００１３】
請求項９に記載の発明は、請求項１乃至４のいずれかに記載のバスインターフェース回路において、前記アドレス出力手段が、前記第２の期間の先頭から途中までの期間にアドレスの出力を行うことを特徴とする。
【００１４】
請求項１０に記載の発明は、請求項４乃至８のいずれかに記載のバスインターフェース回路において、前記データ出力手段が、前記第３の期間の先頭から途中までの期間にデータの出力を行うことを特徴とする。
【００１５】
請求項１１に記載の発明は、データを伝送するバスと、前記バスに接続された複数の装置による前記バスの使用期間が重複しないように前記バスの使用期間を各装置に割り当てるバスアービタと、請求項１に記載のバスインターフェース回路と、請求項５に記載のバスインターフェース回路とを有することを特徴とする情報処理装置を提供する。
【発明の効果】
【００１６】
本発明によれば、バスの使用効率を向上させることができる。
【発明を実施するための最良の形態】
【００１７】
以下、図面を参照して、本発明の実施形態について説明する。本実施形態は、本発明を情報処理装置に適用した例である。
図１は、本実施形態の全体構成を表す図である。
バス１００は、情報処理装置１を構成する各装置間でのデータの遣り取りを行うための伝送路である。バス１００は、アドレスを伝送するためのアドレスバスと、読み出し／書き込みの対象となるデータを伝送するためのデータバスと、各種制御信号を伝送するためのコントロールバスとからなる（図示省略）。アドレスバス、データバスおよびコントロールバスはそれぞれが複数の信号線からなり、信号線の数に応じたビット数のデータを同時に伝送することができる。
【００１８】
バス１００には、ＣＰＵ（Central Processing Unit）３０１、ＲＯＭ（Read Only Memory）３０２、ＲＡＭ（Random Access Memory）３０３、ＨＤＤ（Hard Disk Drive）３０４、外部Ｉ／Ｆ（Interface）３０５、Ｉ／Ｏ（Input/Output）装置３０６、バスアービタ２００および発振器４００が接続されている。
ＨＤＤ３０４にはＯＳ（Operating System）等のプログラムが記憶されている。ＲＯＭ３０２にはＩＰＬ（Initial Program Loader）が記憶されており、情報処理装置１に電源が投入されるとＣＰＵ３０１がＩＰＬを実行し、ＯＳがＨＤＤ３０４からＲＡＭ３０３上に読み出され、ＣＰＵ３０１がＯＳを実行することによって情報処理装置１の各部の制御を行う。また、ＨＤＤ３０４には、データ処理の手順を記述したプログラムが記憶されており、ＣＰＵ３０１がこのプログラムを実行することによって、データ処理が行われる。
【００１９】
外部Ｉ／Ｆ３０５は、ネットワークＮＷに接続されており、情報処理装置１とネットワークＮＷとの間のデータの授受を仲介する。Ｉ／Ｏ装置３０６は、キーボード、マウス、表示装置等からなり、ユーザがＩ／Ｏ装置３０６を操作することによって、情報処理装置１に対して指示を入力することができる。
【００２０】
以下の説明では、他の装置に対してデータの読み出しまたは書き込みを要求する装置をマスタ装置、マスタ装置からの要求に応じてデータの読み出しまたは書き込みを行う装置をスレーブ装置と呼ぶ。例えば、ＣＰＵ３０１がＨＤＤ３０４に対してデータの読み出しまたは書き込みを要求する場合、ＣＰＵ３０１をマスタ装置、ＨＤＤ３０４をスレーブ装置と呼ぶ。ＣＰＵ３０１、ＲＯＭ３０２、ＲＡＭ３０３、ＨＤＤ３０４、外部Ｉ／Ｆ３０５、Ｉ／Ｏ装置３０６のいずれもがマスタ装置またはスレーブ装置になり得る。
また、以下の説明では、ＣＰＵ３０１、ＲＯＭ３０２、ＲＡＭ３０３、ＨＤＤ３０４、外部Ｉ／Ｆ３０５、Ｉ／Ｏ装置３０６を区別する必要のない場合には、これらを単に装置３００と呼ぶ。
【００２１】
バスアービタ２００は、バス１００に接続された各マスタ装置にバス１００の使用期間を割り当てる機能を有する。具体的には、マスタ装置がスレーブ装置からのデータの読み出しまたはスレーブ装置へのデータの書き込みを行う場合、マスタ装置はバス１００の使用の要求を表すバス使用要求信号（ＢＲ信号）をコントロールバス経由でバスアービタ２００に送信する。すると、バスアービタ２００は、複数のマスタ装置によるバス１００の使用期間が重複しないように公知の方式によって調停を行い、各マスタ装置にバス１００の使用期間を割り当てる。そして、バスアービタ２００は、バス１００の使用の許可を表すバス使用許可信号（ＢＧ信号）を許可の対象であるマスタ装置にコントロールバス経由で送信する。マスタ装置は、ＢＧ信号を受け取った場合にバス１００にアドレスやデータを出力することができる。図６は、ＢＲ信号、ＢＧ信号の伝送の様子を表すタイミングチャートである。
【００２２】
発振器４００は、バス１００上のデータ伝送の動作周波数を定めるバスクロック信号ＢＣＬＫをバス１００を介して各装置３００およびバスアービタ２００に供給する。
なお、各装置３００の内部におけるデータ伝送は、バスクロック信号ＢＣＬＫよりも周波数の高い内部クロック信号ＣＬＫに従って行われる。
【００２３】
図２は、バスインターフェース回路３１０を表す図である。すべての装置３００にバスインターフェース回路３１０が設けられており、各装置３００はそれぞれバスインターフェース回路３１０を介してバス１００に接続されている。
内部処理モジュール３１１は、バス１００の使用の要求を表すバス使用要求信号（ＢＲ信号）をバスアービタ２００に送信する。また、内部処理モジュール３１１は、スレーブ装置が送信したデータを入力段ＦＩＦＯ（First-In First-Out）３３０を介してバス１００から入力し、入力したデータを用いて所定の処理を行う。また、内部処理モジュール３１１は、スレーブ装置に送信するデータを出力段ＦＩＦＯ３２０を介してバス１００に出力する。また、内部処理モジュール３１１は、バスクロック信号ＢＣＬＫをカウントするカウンタを備えている。
有効アドレス生成器３１２は、読み出しまたは書き込みの対象であるデータのスレーブ装置におけるアドレスを生成する。
【００２４】
出力段ＦＩＦＯ３２０は、内部処理モジュール３１１が出力したアドレス、データ等を格納し、内部処理モジュール３１１が出力を指示した場合に、格納時期の最も古いアドレス、データ等をバッファ３２１を介してバス１００に出力する。
入力段ＦＩＦＯ３３０は、内部処理モジュール３１１がデータの入力を指示した場合に、バス１００からバッファ３３１を介してデータを取り込み、内部処理モジュール３１１に転送する。
アドレスデコーダ３４０は、バス１００からアドレスを入力し、入力したアドレスが自局のアドレスに対応するか否かを判定し、自局のアドレスに対応する場合にはその旨を内部処理モジュール３１１に通知する。
【００２５】
図３は、バス１００上でアドレスを伝送する期間とそれに対応するデータを伝送する期間との関係を表す図である。図４は、バス１００上のデータ伝送のタイミングチャートである。本実施形態では、バスクロック信号ＢＣＬＫの７クロック分の期間をスロット（第１の期間）と呼び、７クロック周期でスロットの先頭が訪れる。また、各スロットの先頭から２クロック分の期間を第２の期間と呼び、第２の期間に続く２スロット分（＝１４クロック分）の期間を第３の期間と呼び、第３の期間に続く５クロック分の期間を第４の期間と呼ぶ。つまり、連続する３スロット分の期間は、順に第２の期間、第３の期間および第４の期間から構成されている。
【００２６】
本実施形態では、図３に示すとおり、あるデータのアドレスをマスタ装置からスレーブ装置に送信した場合、当該アドレスに対応するデータの伝送を当該アドレスが伝送されたスロット内では行わず、当該スロットから所定のオフセット値だけ後ろのスロット内で行う。本実施形態では、オフセット値ｎ＝２とする。すなわち、図３において、アドレスａに対応するデータａの伝送は、アドレスａが伝送されたスロットから２スロットだけ後ろのスロット内で行う。
【００２７】
さらに、本実施形態では、信号の衝突を防止するために、アドレスもデータも伝送しない期間を設けている。具体的には以下のとおりである。ある装置３００がバス１００に信号を出力した直後に他の装置３００がバスに信号を出力すると、バス１００の信号線を駆動する駆動素子がワイヤードＯＲである場合を除いて、図５の×印で示すようにバス１００上で２つの信号が衝突し、伝送に障害が生じることがある。このような事態を防ぐためには、図５の○印で示すように、アドレスを伝送する期間とデータを伝送する期間との間にアドレスもデータも伝送しない期間を設ければよい。本実施形態では、図４に示すとおり、第２の期間の最初の１クロック分の期間をアドレスを伝送するアドレスサイクルとし、それに続く１クロック分の期間をターンオフサイクルとする。ターンオフサイクルは、バス上で信号が衝突することを防ぐために信号の伝送を行わない期間である。また、第４の期間の最初の４クロック分の期間をデータを伝送するデータサイクルとし、それに続く１クロック分の期間をターンオフサイクルとする。
【００２８】
アドレスの伝送終了からそのアドレスに対応するデータの伝送開始までの遅延クロック数は次式によって求められる。
（アドレス伝送からデータ伝送までの遅延クロック数ｄ）
＝（スロットサイズｍ）×（オフセット値ｎ）＋（ターンオフサイクル）  式(1)
本実施形態では、ｍ＝７、ｎ＝２であるから、ｄ＝１５である。すなわち、アドレスの伝送終了から１５クロック経過後、当該アドレスに対応するデータの伝送を開始する。
【００２９】
図４は、ＣＰＵ３０１、ＲＯＭ３０２、ＲＡＭ３０３、ＨＤＤ３０４、外部Ｉ／Ｆ３０５、Ｉ／Ｏ装置３０６の各々がマスタ装置である場合のデータ伝送の様子を表している。ここで、各装置３００は、バスアービタ２００による調停に従ってアドレスを送信するから、同一スロット内で２つ以上の装置３００からアドレスが送信されることは起こらない。そして、各アドレスに対応するデータの伝送は対応するアドレスから常に所定の遅延クロック数だけ遅延されて開始されるから、同一スロット内で２つの装置３００からデータが送信されることは起こらない。従って、図４の３０１乃至３０６を重ね合わせると、ＡＬＬで示されるように、バス１００上ではアドレスの伝送とデータの伝送とが一定の周期で繰り返し行われるようになる。つまり、本実施形態では、アドレスの伝送から当該アドレスに対応するデータの伝送までに遅延クロック数ｄだけの遅延が発生するものの、バス１００のスループット、すなわち単位時間あたりのデータ伝送量の実効値は、本構成を有しない場合と比較して高く保たれるのである。
【００３０】
次に、バスインターフェース回路３１０の動作について説明する。
ここで、情報処理装置１には電源が投入されており、ＣＰＵ３０１がＯＳ等のプログラムを実行中である。
図８は、マスタ装置としての装置３００がスレーブ装置としての装置３００にデータの読み出しまたは書き込みを要求する場合のマスタ装置におけるバスインターフェース回路３１０の動作のフローを表す図である。マスタ装置は例えばＣＰＵ３０１、スレーブ装置は例えばＨＤＤ３０４である。
【００３１】
まず、ステップＳ０１では、内部処理モジュール３１１が、バス使用要求信号（ＢＲ信号）をバス１００を介してバスアービタ２００に送信する。また、有効アドレス生成器３１２が読み出しまたは書き込みの対象であるデータのスレーブ装置におけるアドレスを生成し、このアドレスを出力段ＦＩＦＯ３２０に出力する。また、内部処理モジュール３１１は、読み出し／書き込みの区別を表す識別信号を出力段ＦＩＦＯ３２０に出力する。
【００３２】
ＢＲ信号を受信したバスアービタ２００は、複数のマスタ装置によるバス１００の使用期間が重複しないように調停を行い、各マスタ装置にバス１００の使用期間を割り当てる。そして、バスアービタ２００は、バス使用許可信号（ＢＧ信号）を許可の対象であるマスタ装置に送信する。
【００３３】
ステップＳ０２では、内部処理モジュール３１１がバス使用許可信号（ＢＧ信号）を受信するまで待機する。ＢＧ信号を受信した場合（ステップＳ０２：ＹＥＳ）には、ステップＳ０３に進む。
ステップＳ０３では、内部処理モジュール３１１がカウンタをリセットし、バスクロック信号ＢＣＬＫのカウントを開始する。
ステップＳ０４では、内部処理モジュール３１１がスロットの先頭が訪れるまで待機する。スロットの先頭が訪れると（ステップＳ０４：ＹＥＳ）、ステップＳ０５に進む。
【００３４】
ステップＳ０５では、内部処理モジュール３１１が、アドレスと識別信号を出力するよう出力段ＦＩＦＯ３２０に命ずる。すると、出力段ＦＩＦＯ３２０は、アドレスと識別信号とをバッファ３２１を介してバス１００に出力する。
ステップＳ０６では、当該要求がデータの読み出しの要求である場合には、内部処理モジュール３１１がカウンタをリセットし、バスクロック信号ＢＣＬＫのカウントを開始する。一方、当該要求がデータの書き込みの要求である場合には、内部処理モジュール３１１が書き込み対象のデータを出力段ＦＩＦＯ３２０に出力し、カウンタをリセットし、バスクロック信号ＢＣＬＫのカウントを開始する。
ステップＳ０７では、所定の遅延クロック数に達するまで待機し、所定の遅延クロック数に達したならば（ステップＳ０７：ＹＥＳ）、ステップＳ０８に進む。
【００３５】
ステップＳ０８では、内部処理モジュール３１１が、スレーブ装置に対する要求が読み出し／書き込みのどちらであるかを判別する。読み出しの要求である場合（ステップＳ０８：ＹＥＳ）には、ステップＳ１０に進み、書き込みの要求である場合（ステップＳ０８：ＮＯ）には、ステップＳ０９に進む。
ステップＳ０９では、内部処理モジュール３１１は、書き込み対象のデータを出力するよう出力段ＦＩＦＯ３２０に命ずる。すると、出力段ＦＩＦＯ３２０は、書き込み対象のデータをバッファ３２１を介してバス１００に出力する。
一方、ステップＳ１０では、内部処理モジュール３１１は、読み出し対象のデータをバス１００からバッファ３３１を介して入力段ＦＩＦＯ３３０に取り込む。なお、ステップＳ１０では、読み出し対象のデータが取り込まれない場合がある。これについては、スレーブ装置における処理が関連するので、後述する。
【００３６】
ここで、スレーブ装置が行う処理について説明する。図９は、スレーブ装置におけるバスインターフェース回路３１０の動作のフローを表す図である。
ステップＢ０１では、アドレスデコーダ３４０が、図４に示したスロットの先頭が到来する度に、バス１００からアドレスと識別信号とを取り込む。
ステップＢ０２では、アドレスデコーダ３４０が、取り込んだアドレスが自局に対応するアドレスであるか否かを判定する。自局に対応するアドレスである場合（ステップＢ０２：ＹＥＳ）にはその旨を内部処理モジュール３１１に通知し、ステップＳ０３に進む。自局に対応するアドレスでない場合（ステップＢ０２：ＮＯ）、ステップＢ０１にもとる。
ステップＢ０３では、内部処理モジュール３１１が、マスタ装置からの要求が読み出し／書き込みのどちらであるかを識別信号によって判別する。書き込みの要求の場合（ステップＢ０３：ＹＥＳ）にはステップＢ０４に進み、読み出しの要求の場合（ステップＢ０３：ＮＯ）にはステップＢ０５に進む。
【００３７】
ステップＢ０４では、データの書き込みのための処理を行う。図１０は、図９のステップＢ０４における処理のフローを表す図である。
ステップＣ０１では、内部処理モジュール３１１が、カウンタをリセットしてバスクロック信号ＢＣＬＫのカウントを開始する。
ステップＣ０２では、内部処理モジュール３１１が、所定の遅延クロック数に達するまで待機する。この遅延クロック数は、マスタ装置の説明における遅延クロック数と同じである。所定の遅延クロック数に達したならば（ステップＣ０２：ＹＥＳ）、ステップＣ０３に進む。
【００３８】
ステップＣ０３では、内部処理モジュール３１１は、バスクロック信号ＢＣＬＫに従った速度で、書き込み対象のデータをバス１００からバッファ３３１を介して入力段ＦＩＦＯ３３０に取り込む。そして、入力段ＦＩＦＯ３３０が、取り込んだデータを内部クロック信号ＣＬＫに従った速度で内部処理モジュール３１１に転送する。
ステップＣ０４では、内部処理モジュール３１１が、取り込まれたデータが有効なデータであるか否かを判定する。ここで、「有効なデータ」とは、スレーブ装置が処理の対象とするデータである。取り込まれたデータが有効なデータである場合（ステップＣ０４：ＹＥＳ）には、処理を終了する。一方、有効なデータでない場合（ステップＣ０４：ＮＯ）には、ステップＣ０１以降の処理を繰り返す。
【００３９】
図９の説明に戻り、ステップＢ０５以降の処理について説明する。
ステップＢ０５では、内部処理モジュール３１１が、マスターキャンセル信号が受信されたか否かを判定する。マスターキャンセル信号は、スレーブ装置におけるデータの読み出しが所定期間内に行われなかった場合にマスタ装置からスレーブ装置に送信される信号である。詳しくは、後述する。ここでは、まず、マスターキャンセル信号が受信されなかった場合（ステップＢ０５：ＮＯ）、すなわちステップＢ０７の処理について説明する。
【００４０】
ステップＢ０７では、内部処理モジュール３１１は、データの読み出しのための処理を行う。図１１は、図９のステップＢ０７における処理のフローを表す図である。
ステップＤ０１では、内部処理モジュール３１１が、読み出しを要求されたデータの出力の準備を開始する。例えばスレーブ装置がＨＤＤ３０４である場合、図９のステップＢ０１で取り込んだアドレスに対応するデータを磁気ディスクの記録面から読み出すための処理を行う。
ステップＤ０２では、内部処理モジュール３１１が、カウンタをリセットしてバスクロック信号ＢＣＬＫのカウントを開始する。
【００４１】
ステップＤ０３では、内部処理モジュール３１１が、所定の遅延クロック数に達するまで待機する。この遅延クロック数は、マスタ装置の説明における遅延クロック数と同じである。所定の遅延クロック数に達したならば（ステップＤ０３：ＹＥＳ）、ステップＤ０４に進む。
ステップＤ０４では、要求されたデータの準備が完了しているか否かを判定する。データの準備が完了しているならば（ステップＤ０４：ＹＥＳ）、ステップＤ０５に進み、データの準備が完了していないならば（ステップＤ０４：ＮＯ）、ステップＤ０６に進む。
ステップＤ０５では、内部処理モジュール３１１が、準備されたデータを出力段ＦＩＦＯ３２０に出力し、バスクロック信号ＢＣＬＫに従った速度でバッファ３２１を介してバス１００に出力する。
【００４２】
一方、ステップＤ０６では、内部処理モジュール３１１が、Retry応答をマスタ装置に送信する。ここで、Retry応答とは、データの読み出しのための期間の延長をマスタ装置に要求するものである。具体的には、バス１００のコントロールバスには、通常Ｌ（Low）レベルのValid信号が流されている。Retry(1)応答の際には、図７のタイミングチャートに示すように、データサイクルの先頭の１クロック分の期間だけValid信号をＨ（High）レベルにする。当該データサイクルは、有効なデータが伝送されない無効データサイクルとなる。その後、内部処理モジュール３１１が、ステップＤ０２以降の処理を繰り返す。
【００４３】
次に、図８に戻り、ステップＳ１１以降の処理について説明する。
ステップＳ１１では、内部処理モジュール３１１が、バス１００から有効なデータが取り込まれたか否かを判定する。上述のとおり、所定の遅延クロック数に達するまでにデータの準備が完了しなかった場合、スレーブ装置はデータサイクルの先頭においてValid信号をＨレベルにする。内部処理モジュール３１１は、データサイクルの先頭においてValid信号がＨレベルである場合に、有効なデータが取り込まれなかったと判定する。有効なデータが取り込まれた場合（ステップＳ１１：ＹＥＳ）には、処理を終了する。一方、有効なデータが取り込まれなかった場合（ステップＳ１１：ＮＯ）には、ステップＳ１２に進む。
【００４４】
ステップＳ１２では、内部処理モジュール３１１が、スレーブ装置にアドレスを送信してからの経過時間が所定値に達したか否かを判定する。図１１で示したとおり、スレーブ装置は、マスタ装置から要求されたデータの準備が所定の遅延クロック数に達するまでに完了しなかった場合、Retry応答を発し、データの準備のための処理を無限に続けるようになっている。処理が無限に続くこと避けるために本実施形態では以下の処理を行う。すなわち、経過時間が所定値に達していない場合（ステップＳ１２：ＮＯ）には、ステップＳ０６以降の処理を繰り返し、経過時間が所定値に達している場合（ステップＳ１２：ＹＥＳには、ステップＳ１３に進む。
ステップＳ１３では、内部処理モジュール３１１が、ＢＲ信号を再度、バスアービタ２００に送信する。
【００４５】
ステップＳ１４では、内部処理モジュール３１１が、ＢＧ信号を受信するまで待機する。ＢＧ信号を受信したならば（ステップＳ１４：ＹＥＳ）、ステップＳ１５に進む。
ステップＳ１５では、内部処理モジュール３１１が、カウンタをリセットしてバスクロック信号ＢＣＬＫのカウントを開始する。
ステップＳ１６では、内部処理モジュール３１１が、スロットの先頭が到来するまで待機し、スロットの先頭が到来したならば（ステップＳ１６：ＹＥＳ）、ステップＳ１７に進む。
ステップＳ１７では、内部処理モジュール３１１が、マスターキャンセル信号をスレーブ装置に送信し、処理を終了する。マスターキャンセル信号は、図７のタイミングチャートに示すとおり、アドレスサイクルにおいてValid信号をＨレベルにすることによって送信される。
【００４６】
次に、マスタ装置が送信したマスターキャンセル信号をスレーブ装置が受信した場合について説明する。スレーブ装置のバスインターフェース回路３１０では、内部処理モジュール３１１が、アドレスサイクルにおいてValid信号がＨレベルである場合に、マスターキャンセル信号を受信したと判断し（図９、ステップＢ０５：ＹＥＳ）、ステップＢ０６に進む。ステップＢ０６では、内部処理モジュール３１１が、データの読み出しのための処理を中止する。
【００４７】
図１４は、本実施形態の構成において、バーストサイズ４／８／１６サイクルでスロットのオフセット値ｎを変化させた場合のバス使用効率（％）のシミュレーション結果である。この結果によると、バーストサイズ４／８サイクルではオフセット値が２の場合に、バーストサイズ１６サイクルではオフセット値が１の場合に遅延時間が最小で、スループットが最大になることが判る。
【００４８】
＜変形例＞
以上説明した形態に限らず、本発明は種々の形態で実施可能である。例えば、上述の実施形態を以下のように変形した形態でも実施可能である。
＜変形例１＞
上記の実施形態ではデータサイクルの先頭においてValid信号をＨレベルにすることによってRetry応答を表す例を示したが、データサイクルの直前に１クロック分の期間を設け、後続のデータサイクルで有効なデータが送信されるか否かを表す信号をスレーブ装置がこの期間に送信するようにしてもよい。図１２に示す例では、８クロック分の期間を１スロットとし、アドレスサイクル、ターンオフサイクルに続いて、ヘッダを送信するためのヘッダサイクルを設けている。そして、例えば、有効なデータを送信する場合にはヘッダの値を「０」とし、有効なデータを送信しない場合にはヘッダの値を「１」とする。マスタ装置は、ヘッダが「１」である場合に、Retry応答が送信されたと判断する。
この構成によれば、Valid信号専用の信号線を設ける必要がなくなるので、情報処理装置１の構成を簡素化することができる。
【００４９】
＜変形例２＞
また、アドレスサイクルに送信するアドレスのビット数がバス１００の信号線数よりも少ない場合（例えば、アドレス３０ビットに対して、信号線が３２本の場合等）は、余剰の信号線を用いてValid信号を送信するようにしてもよい。
例えば、処理を中止しない場合は「０」の値を、処理を中止する場合は「１」の値を送信する。スレーブ装置は当該Valid情報が「１」である場合に、マスタキャンセル信号が送信されたと判断する。
このようにすれば、Valid信号専用の信号線を設ける必要がなくなるので、情報処理装置１の構成を簡素化することができる。
【００５０】
＜変形例３＞
スロット、アドレスサイクル、データサイクル、ターンオフサイクルの長さを、扱うデータの種類、装置の構成等、諸条件に応じて適宜変更してもよい。
また、バス１００に接続する装置の数は２つ以上ならばいくつでもよい。
【００５１】
＜変形例４＞
上記の実施形態ではターンオフサイクルを設ける例を示したが、ターンオフサイクルを設けない構成としてもよい。また、アドレスサイクルの後、またはデータサイクルの後のいずれかにターンオフサイクルを設ける構成としてもよい。
【００５２】
＜変形例５＞
上記の実施形態ではバス１００に接続された各装置３００がマスタ装置とスレーブ装置の両方の機能を有する例を示したが、すべての装置３００がマスタ装置とスレーブ装置の両方の機能を有している必要はなく、ある装置３００がマスタ装置としての機能だけを有し、他の装置３００がスレーブ装置としての機能だけを有していてもよい。つまり、バス１００にマスタ装置とスレーブ装置がそれぞれ１つ以上接続されていればよい。
また、マスタ装置がスレーブ装置に対して書き込みの要求だけを行い、かつ、スレーブ装置がマスタ装置からの要求に応じた書き込みだけを行うようにしてもよい。この場合、マスタ装置による識別信号の出力、および、スレーブ装置が識別信号に基づいて読み出し／書き込みを判別する処理は行わなくてよい。
【００５３】
＜変形例６＞
上記の実施形態では読み出し／書き込みの区別を表す識別信号をマスタ装置がコントロールバス経由でスレーブ装置に送信する例を示したが、例えばアドレスサイクルの前または後に１クロック分の期間を設け、この期間に読み出し／書き込みの区別を表すデータを送信するようにしてもよい。
【００５４】
＜変形例７＞
上記の実施形態では本発明を情報処理装置に適用した例を示したが、画像処理装置、画像形成装置、通信装置、表示装置、音響装置等、装置内部で複数の装置がバスを介してデータの遣り取りを行う装置であれば、本発明をいかなる電子機器に適用してもよい。
【図面の簡単な説明】
【００５５】
【図１】実施形態の全体構成を表す図である。
【図２】バスインターフェース回路３１０を表す図である。
【図３】オフセット値ｎが２の場合のデータ伝送の様子を表す図である。
【図４】バス１００上のデータ伝送のタイミングチャートである。
【図５】ターンオフサイクルを表す図である。
【図６】ＢＲ信号、ＢＧ信号を表す図である。
【図７】Valid信号を表す図である。
【図８】マスタ装置におけるバスインターフェース回路３１０の動作のフローを表す図である。
【図９】スレーブ装置におけるバスインターフェース回路３１０の動作のフローを表す図である。
【図１０】図９のステップＢ０４における処理のフローを表す図である。
【図１１】図９のステップＢ０７における処理のフローを表す図である。
【図１２】ヘッダサイクルを表す図である。
【図１３】従来のデータ伝送のタイミングチャートである。
【図１４】バス使用効率のシミュレーション結果である。
【符号の説明】
【００５６】
１…情報処理装置、１００…バス、２００…バスアービタ、３００…装置、３０１…ＣＰＵ、３０２…ＲＯＭ、３０３…ＲＡＭ、３０４…ＨＤＤ、３０５…外部Ｉ／Ｆ、３０６…Ｉ／Ｏ装置、４００…発振器、３１０…バスインターフェース回路、３１１…内部処理モジュール、３１２…有効アドレス生成器、３２０…出力段ＦＩＦＯ、３２１…バッファ、３３０…入力段ＦＩＦＯ、３３１…バッファ、３４０…アドレスデコーダ。
【図１】
2008186093.tif 000003
【図２】
2008186093.tif 000004
【図３】
2008186093.tif 000005
【図４】
2008186093.tif 000006
【図５】
2008186093.tif 000007
【図６】
2008186093.tif 000008
【図７】
2008186093.tif 000009
【図８】
2008186093.tif 000010
【図９】
2008186093.tif 000011
【図１０】
2008186093.tif 000012
【図１１】
2008186093.tif 000013
【図１２】
2008186093.tif 000014
【図１３】
2008186093.tif 000015
【図１４】
2008186093.tif 000016