(57)【特許請求の範囲】
【請求項１】
マスタ装置とスレーブ装置とを含む３以上の装置の間がそれぞれ別々のバスで接続されて伝送方向が一方向に定められた環状の第１の伝送路における自局の上流側の前記バスからアドレスまたはデータを入力する第１の入力手段と、
前記３以上の装置の間がそれぞれ別々のバスで接続されて伝送方向が前記第１の伝送路と逆方向に定められた環状の第２の伝送路における自局の上流側の前記バスからアドレスまたはデータを入力する第２の入力手段と、
一定の周期で繰り返される第１の期間の先頭を検出する検出手段と、
前記検出手段が前記先頭を検出する度に、前記第１の入力手段及び前記第２の入力手段が入力したアドレスが自局のアドレスであるか否かを判定する第１の判定手段と、
前記第１の判定手段による判定の結果、前記第１の入力手段が入力したアドレスが自局のアドレスでない場合に、第１の正の整数を前記周期に乗じた第１の遅延期間だけ遅延させて当該アドレスと当該アドレスに対応するデータとを前記第１の伝送路における下流側の前記バスに出力する第１の遅延出力手段と、
前記第１の判定手段による判定の結果、前記第２の入力手段が入力したアドレスが自局のアドレスでない場合に、前記第１の遅延期間だけ遅延させて当該アドレスと当該アドレスに対応するデータとを前記第２の伝送路における下流側の前記バスに出力する第２の遅延出力手段と、
前記検出手段が前記先頭を検出するたびに、前記第１の遅延出力手段及び前記第２の遅延出力手段によるアドレスの出力の有無を判定する第２の判定手段と、
前記スレーブ装置に書き込みを要求する場合に、前記第１の伝送路と前記第２の伝送路のうち自局から当該スレーブ装置への伝送に要する時間が短い伝送路を選択する選択手段と、
前記選択手段により前記第１の伝送路が選択され、前記第２の判定手段による判定の結果、前記第１の遅延出力手段によるアドレスの出力がない場合に、前記第１の期間よりも短い第２の期間内に、前記スレーブ装置における書き込み先のアドレスを前記第１の伝送路における下流側の前記バスに出力する第１のアドレス出力手段と、
前記選択手段により前記第２の伝送路が選択され、前記第２の判定手段による判定の結果、前記第２の遅延出力手段によるアドレスの出力がない場合に、前記第２の期間内に、前記スレーブ装置における書き込み先のアドレスを前記第２の伝送路における下流側の前記バスに出力する第２のアドレス出力手段と、
前記第１のアドレス出力手段がアドレスを出力した後、第２の正の整数を前記周期に乗じた第２の遅延期間が経過したのに続いて、前記周期から前記第２の期間を差し引いた第３の期間内に、当該アドレスに対応するデータを前記第１の伝送路における下流側の前記バスに出力する第１のデータ出力手段と、
前記第２のアドレス出力手段がアドレスを出力した後、前記第２の遅延期間が経過したのに続いて、前記第３の期間内に、当該アドレスに対応するデータを前記第２の伝送路における下流側の前記バスに出力する第２のデータ出力手段と
を有することを特徴とするバスインターフェース回路。
【請求項２】
前記第１の判定手段による判定の結果、前記第１の入力手段及び前記第２の入力手段が入力したアドレスが自局のアドレスである場合に、当該アドレスが書き込み先のアドレスであるか否かを判定する第３の判定手段と、
前記第３の判定手段による判定の結果、前記第１の入力手段が入力したアドレスが書き込み先のアドレスである場合に、前記第２の遅延期間が経過したのに続いて、前記第３の期間内に、当該アドレスに対応するデータを前記第１の伝送路における上流側の前記バスから入力する第１のデータ入力手段と、
前記第３の判定手段による判定の結果、前記第２の入力手段が入力したアドレスが書き込み先のアドレスである場合に、前記第２の遅延期間が経過したのに続いて、前記第３の期間内に、当該アドレスに対応するデータを前記第２の伝送路における上流側の前記バスから入力する第２のデータ入力手段と
を有することを特徴とする請求項１に記載のバスインターフェース回路。
【請求項３】
請求項１に記載のバスインターフェース回路を備えた第１の装置と、
請求項２に記載のバスインターフェース回路を備えた第２の装置と
を有し、
前記第１の装置と前記第２の装置との総数が３以上であり、これらの装置の間がそれぞれ別々のバスで接続されて前記第１の伝送路及び前記第２の伝送路が形成されている
ことを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バスインターフェース回路および情報処理装置に関する。
【背景技術】
【０００２】
バスに複数の装置が接続されている電子機器では、ある装置（マスタ装置）がバスの動作速度よりも動作速度の遅い他の装置（スレーブ装置）からデータの読み出しを行う場合、スレーブ装置によるデータの準備に遅れが生じることがある。その場合、バスが使用されない期間が発生するので、バスの使用効率が低下してしまう。図１４は、信号の伝送の様子を表すタイミングチャートであり、読み出しの対象であるデータのアドレスが伝送されてからこのアドレスに対応するデータが伝送されるまでの間に信号が伝送されない無効サイクルが生じている様子を表している。
【０００３】
バスの使用効率を向上させるための技術として、例えば、特許文献１では、プロセッサに接続されたプロセッサバス、メモリに接続されたメモリバス、入出力装置に接続されたシステムバスの３つを接続する接続装置を備えた情報処理装置が開示されている。この技術によれば、プロセッサ、メモリ、入出力装置のいずれか２つが連動して動作している場合に残る１つが独立して動作できるので、バスの使用効率が向上するとされていが、バス毎の使用効率を向上させる技術は開示されていない。
【特許文献１】特許第２９１０３０３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明は、バスの使用効率を向上させることのできる技術の提供を目的とする。
【課題を解決するための手段】
【０００５】
請求項１に係る発明は、マスタ装置とスレーブ装置とを含む３以上の装置の間がそれぞれ別々のバスで接続されて伝送方向が一方向に定められた環状の第１の伝送路における自局の上流側の前記バスからアドレスまたはデータを入力する第１の入力手段と、前記３以上の装置の間がそれぞれ別々のバスで接続されて伝送方向が前記第１の伝送路と逆方向に定められた環状の第２の伝送路における自局の上流側の前記バスからアドレスまたはデータを入力する第２の入力手段と、一定の周期で繰り返される第１の期間の先頭を検出する検出手段と、前記検出手段が前記先頭を検出する度に、前記第１の入力手段及び前記第２の入力手段が入力したアドレスが自局のアドレスであるか否かを判定する第１の判定手段と、前記第１の判定手段による判定の結果、前記第１の入力手段が入力したアドレスが自局のアドレスでない場合に、第１の正の整数を前記周期に乗じた第１の遅延期間だけ遅延させて当該アドレスと当該アドレスに対応するデータとを前記第１の伝送路における下流側の前記バスに出力する第１の遅延出力手段と、前記第１の判定手段による判定の結果、前記第２の入力手段が入力したアドレスが自局のアドレスでない場合に、前記第１の遅延期間だけ遅延させて当該アドレスと当該アドレスに対応するデータとを前記第２の伝送路における下流側の前記バスに出力する第２の遅延出力手段と、前記検出手段が前記先頭を検出するたびに、前記第１の遅延出力手段及び前記第２の遅延出力手段によるアドレスの出力の有無を判定する第２の判定手段と、前記スレーブ装置に書き込みを要求する場合に、前記第１の伝送路と前記第２の伝送路のうち自局から当該スレーブ装置への伝送に要する時間が短い伝送路を選択する選択手段と、前記選択手段により前記第１の伝送路が選択され、前記第２の判定手段による判定の結果、前記第１の遅延出力手段によるアドレスの出力がない場合に、前記第１の期間よりも短い第２の期間内に、前記スレーブ装置における書き込み先のアドレスを前記第１の伝送路における下流側の前記バスに出力する第１のアドレス出力手段と、前記選択手段により前記第２の伝送路が選択され、前記第２の判定手段による判定の結果、前記第２の遅延出力手段によるアドレスの出力がない場合に、前記第２の期間内に、前記スレーブ装置における書き込み先のアドレスを前記第２の伝送路における下流側の前記バスに出力する第２のアドレス出力手段と、前記第１のアドレス出力手段がアドレスを出力した後、第２の正の整数を前記周期に乗じた第２の遅延期間が経過したのに続いて、前記周期から前記第２の期間を差し引いた第３の期間内に、当該アドレスに対応するデータを前記第１の伝送路における下流側の前記バスに出力する第１のデータ出力手段と、前記第２のアドレス出力手段がアドレスを出力した後、前記第２の遅延期間が経過したのに続いて、前記第３の期間内に、当該アドレスに対応するデータを前記第２の伝送路における下流側の前記バスに出力する第２のデータ出力手段とを有することを特徴とするバスインターフェース回路を提供する。
【０００９】
請求項２に係る発明は、請求項１に記載のバスインターフェース回路において、前記第１の判定手段による判定の結果、前記第１の入力手段及び前記第２の入力手段が入力したアドレスが自局のアドレスである場合に、当該アドレスが書き込み先のアドレスであるか否かを判定する第３の判定手段と、前記第３の判定手段による判定の結果、前記第１の入力手段が入力したアドレスが書き込み先のアドレスである場合に、前記第２の遅延期間が経過したのに続いて、前記第３の期間内に、当該アドレスに対応するデータを前記第１の伝送路における上流側の前記バスから入力する第１のデータ入力手段と、前記第３の判定手段による判定の結果、前記第２の入力手段が入力したアドレスが書き込み先のアドレスである場合に、前記第２の遅延期間が経過したのに続いて、前記第３の期間内に、当該アドレスに対応するデータを前記第２の伝送路における上流側の前記バスから入力する第２のデータ入力手段とを有することを特徴とする。
【００１４】
請求項３に係る発明は、請求項１に記載のバスインターフェース回路を備えた第１の装置と、請求項２に記載のバスインターフェース回路を備えた第２の装置とを有し、前記第１の装置と前記第２の装置との総数が３以上であり、これらの装置の間がそれぞれ別々のバスで接続されて前記第１の伝送路及び前記第２の伝送路が形成されていることを特徴とする情報処理装置を提供する。
【発明の効果】
【００１５】
本発明によれば、バスの使用効率を向上させることができる。
【発明を実施するための最良の形態】
【００１６】
以下、図面を参照して、本発明の実施形態について説明する。本実施形態は、本発明を情報処理装置に適用した例である。
図１は、本実施形態の全体構成を表す図である。
情報処理装置１は、ＣＰＵ（Central Processing Unit）３０１、ＲＯＭ（Read Only Memory）３０２、ＲＡＭ（Random Access Memory）３０３、ＨＤＤ（Hard Disk Drive）３０４、外部Ｉ／Ｆ（Interface）３０５およびＩ／Ｏ（Input/Output）装置３０６を備えている。
なお、以下の説明では、ＣＰＵ３０１、ＲＯＭ３０２、ＲＡＭ３０３、ＨＤＤ３０４、外部Ｉ／Ｆ３０５、Ｉ／Ｏ装置３０６を区別する必要のない場合には、これらを単に装置３００と呼ぶ。
【００１７】
バス１０１乃至１０６は、情報処理装置１に備えられた各装置３００間の信号の伝送を行う。ＣＰＵ３０１とＲＯＭ３０２とはバス１０１によって接続されている。また、ＲＯＭ３０２とＲＡＭ３０３とはバス１０２によって、ＲＡＭ３０３とＨＤＤ３０４とはバス１０３によって、ＨＤＤ３０４と外部Ｉ／Ｆ３０５とはバス１０４によって、外部Ｉ／Ｆ３０５とＩ／Ｏ装置３０６とはバス１０５によって、そして、Ｉ／Ｏ装置３０６とＣＰＵ３０１とはバス１０６によって、それぞれ接続されている。すなわち、ＣＰＵ３０１、ＲＯＭ３０２、ＲＡＭ３０３、ＨＤＤ３０４、外部Ｉ／Ｆ３０５、Ｉ／Ｏ装置３０６とバス１０１乃至１０６とが全体として環状の伝送路を形成している。
なお、以下の説明では、バス１０１乃至１０６を区別する必要のない場合には、これらを単にバス１００と呼ぶ。
【００１８】
バス１００は、アドレスを伝送するために用いられるアドレスバスと、読み出し／書き込みの対象であるデータを伝送するために用いられるデータバスとが同一の信号線を時分割多重して使用する、いわゆるマルチプレックスバス（Multiplex Bus）である（図示省略）。バス１００は複数の信号線からなり、信号線の数に応じたビット数の信号を同時に伝送することができる。なお、以下の説明では、アドレス、データ、各種制御信号を区別する必要のない場合にはこれらを単に信号と呼ぶ。
【００１９】
ＨＤＤ３０４には情報処理装置１の基本的な動作を制御するためのＯＳ（Operating System）等のプログラムや各種のアプリケーションプログラムが記憶されている。ＲＯＭ３０２にはＩＰＬ（Initial Program Loader）が記憶されており、情報処理装置１に電源が投入されるとＣＰＵ３０１がＩＰＬを実行し、これによってＯＳがＨＤＤ３０４からＲＡＭ３０３上に読み出される。そして、ＣＰＵ３０１がＯＳを実行することによって情報処理装置１の各部の制御を行う。また、ＯＳの実行中にアプリケーションプログラムの実行が指示された場合には、ＣＰＵ３０１はアプリケーションプログラムをＨＤＤ３０４からＲＡＭ３０３上に読み出して実行する。
【００２０】
外部Ｉ／Ｆ３０５は、ＬＡＮ（Local Area Network）等の通信ネットワーク（図示省略）に接続されており、情報処理装置１から通信ネットワークへの信号の出力、および通信ネットワークから情報処理装置１への信号の入力を仲介する。Ｉ／Ｏ装置３０６は、キーボード、マウス、表示装置等からなり、ユーザがキーボードおよびマウスを操作することによって、情報処理装置１に対して指示を入力することができる。
【００２１】
以下の説明では、他の装置３００に対してデータの読み出しまたは書き込みを要求する装置３００をマスタ装置、マスタ装置からの要求に応じてデータの読み出しまたは書き込みを行う装置３００をスレーブ装置と呼ぶ。例えば、ＣＰＵ３０１がＨＤＤ３０４に対してデータの読み出しまたは書き込みを要求する場合、ＣＰＵ３０１をマスタ装置、ＨＤＤ３０４をスレーブ装置と呼ぶ。ＣＰＵ３０１、ＲＯＭ３０２、ＲＡＭ３０３、ＨＤＤ３０４、外部Ｉ／Ｆ３０５、Ｉ／Ｏ装置３０６のいずれもがマスタ装置としての機能とスレーブ装置としての機能とを兼ね備えている。
【００２２】
発振器４００は、バス１００上の信号の伝送の動作周波数を定めるバスクロック信号ＢＣＬＫを各装置３００に供給する。
【００２３】
図２は、バスインターフェース回路３１０を表す図である。すべての装置３００にバスインターフェース回路３１０が設けられており、各装置３００はそれぞれバスインターフェース回路３１０を介してバス１００に接続されている。
内部処理モジュール３１１は、他の装置３００がバス１００に出力した信号を入力段ＦＩＦＯ（First-In First-Out）３２０を介してバス１００から入力し、入力した信号を用いて所定の処理を行う。また、内部処理モジュール３１１は、他の装置３００へ送信すべき信号を出力段ＦＩＦＯ３３０を介してバス１００に出力する。また、内部処理モジュール３１１は、バスクロック信号ＢＣＬＫをカウントするカウンタの機能を備えている。
【００２４】
有効アドレス生成器３１２は、スレーブ装置におけるデータの読み出し先のアドレス（以下、「読み出しアドレス」という）、または、スレーブ装置におけるデータの書き込み先のアドレス（以下、「書き込みアドレス」という）を生成する。
入力段ＦＩＦＯ３２０は、他の装置３００がバス１００に出力した信号をバス１００から遅延なく入力し、内部処理モジュール３１１にこの信号を転送する。
出力段ＦＩＦＯ３３０は、内部処理モジュール３１１から受け取った信号を格納し、ＣＰＵ１０１が信号の出力を指示した場合に、格納時期の最も古い信号をバス１００に出力する。
【００２５】
アドレスデコーダ３４０は、他の装置３０がバス１００に出力したアドレスをバス１００から入力し、入力したアドレスが自局のアドレスであるか否かを判定する。入力したアドレスが自局のアドレスである場合にはその旨を内部処理モジュール３１１に通知する。
バイパスＦＩＦＯ３５０は、アドレスデコーダ３４０に入力されたアドレスが自局のアドレスでない場合に、当該アドレスおよび当該アドレスに対応するデータを一時的に格納しておくための記憶領域である。バイパスＦＩＦＯ３５０は、格納された信号を、それぞれがアドレスデコーダ３４０または入力段ＦＩＦＯ３３０に入力されてから所定の期間（第１の遅延期間）だけ遅延させてバス１００に出力する。本実施形態では、バスクロック信号ＢＣＬＫの１５クロック分の期間を第１の遅延期間とする。
【００２６】
さて、情報処理装置１は、環状の伝送路上で信号を一方向に伝送するために以下のとおり構成されている。
まず、ＣＰＵ３０１に備えられたバスインターフェース回路３１０においては、入力段ＦＩＦＯ３２０の入力端子がバス１０６に接続され、出力段ＦＩＦＯ３３０とバイパスＦＩＦＯ３５０の出力端子がバス１０１に接続されている。従って、入力段ＦＩＦＯ３２０はバス１０６から信号を入力し、出力段ＦＩＦＯ３３０とバイパスＦＩＦＯ３５０はバス１０１へ信号を出力する。
また、ＲＯＭ３０２に備えられたバスインターフェース回路３１０においては、入力段ＦＩＦＯ３２０の入力端子がバス１０１に接続され、出力段ＦＩＦＯ３３０とバイパスＦＩＦＯ３５０の出力端子がバス１０２に接続されている。従って、入力段ＦＩＦＯ３２０はバス１０１から信号を入力し、出力段ＦＩＦＯ３３０とバイパスＦＩＦＯ３５０はバス１０２へ信号を出力する。
また、ＲＡＭ３０３に備えられたバスインターフェース回路３１０においては、入力段ＦＩＦＯ３２０の入力端子がバス１０２に接続され、出力段ＦＩＦＯ３３０とバイパスＦＩＦＯ３５０の出力端子がバス１０３に接続されている。従って、入力段ＦＩＦＯ３２０はバス１０２から信号を入力し、出力段ＦＩＦＯ３３０とバイパスＦＩＦＯ３５０はバス１０３へ信号を出力する。
【００２７】
また、ＨＤＤ３０４に備えられたバスインターフェース回路３１０においては、入力段ＦＩＦＯ３２０の入力端子がバス１０３に接続され、出力段ＦＩＦＯ３３０とバイパスＦＩＦＯ３５０の出力端子がバス１０４に接続されている。従って、入力段ＦＩＦＯ３２０はバス１０３から信号を入力し、出力段ＦＩＦＯ３３０とバイパスＦＩＦＯ３５０はバス１０４へ信号を出力する。
また、通信Ｉ／Ｆ３０５に備えられたバスインターフェース回路３１０においては、入力段ＦＩＦＯ３２０の入力端子がバス１０４に接続され、出力段ＦＩＦＯ３３０とバイパスＦＩＦＯ３５０の出力端子がバス１０５に接続されている。従って、入力段ＦＩＦＯ３２０はバス１０４から信号を入力し、出力段ＦＩＦＯ３３０とバイパスＦＩＦＯ３５０はバス１０５へ信号を出力する。
また、Ｉ／Ｏ装置３０６に備えられたバスインターフェース回路３１０においては、入力段ＦＩＦＯ３２０の入力端子がバス１０５に接続され、出力段ＦＩＦＯ３３０とバイパスＦＩＦＯ３５０の出力端子がバス１０６に接続されている。従って、入力段ＦＩＦＯ３２０はバス１０５から信号を入力し、出力段ＦＩＦＯ３３０とバイパスＦＩＦＯ３５０はバス１０６へ信号を出力する。
【００２８】
上記の構成により、情報処理装置１の内部では、図１に矢印で示されているとおり、環状の伝送路上を反時計回りに信号が伝送される。なお、以下の説明では、各装置３００において入力段ＦＩＦＯ３２０に接続されているバス１００を伝送方向上流側のバス１００と呼び、各装置３００において出力段ＦＩＦＯ３３０に接続されているバスを伝送方向下流側のバス１００と呼ぶ。例えば、Ｉ／Ｏ装置３０６においては、バス１０５が伝送方向上流側のバス１００であり、バス１０６が伝送方向下流側のバス１００である。
【００２９】
図３、図４、図５は、バス１００上で伝送されるフレームの構成を表す図である。
ます、アドレスサイクルにおけるフレームについて説明する。本実施形態ではアドレスバスのバス幅が64bit(=8Byte)であり、バスクロック信号ＢＣＬＫの１クロック分の期間内に64bitの信号を伝送することができる。本実施形態では、アドレスを伝送するためのアドレスサイクルとして１クロック分の期間を設け、この期間内にアドレスおよび当該アドレスに関連する情報を伝送する。１回のアドレスサイクルの期間内にアドレスバス上で伝送される64bitの信号は、アドレス(40bit)、Ｒ／Ｗフラグ(1bit)、サイズ情報(3bit)、拡張コード(4bit)、ＥＣＣ（Error Correcting Code）(16bit)からなる。
【００３０】
アドレスは、スレーブ装置における読み出しアドレス、または、スレーブ装置における書き込みアドレスである。
Ｒ／Ｗフラグは、当該アドレスサイクルに対応する処理が、データの書き込みと読み出しのどちらであるかを表すフラグである。本実施形態では、Ｒ／Ｗフラグ＝０の場合はWriteすなわちデータの書き込みを表し、この場合、伝送されるアドレスはスレーブ装置における書き込みアドレスである。一方、Ｒ／Ｗフラグ＝１の場合はReadすなわちデータの読み出しを表し、この場合、伝送されるアドレスはスレーブ装置における読み出しアドレスである。
サイズ情報は当該アドレスに対応するデータのデータ量を表す。
【００３１】
拡張コードは、当該アドレスサイクルに対応する処理の内容を表す。
拡張コード0hは、通常の処理を表す。通常の処理とは、読み出しアドレスで表される読み出し先からのデータの読み出し、または書き込みアドレスで表される書き込み先へのデータの書き込みである。拡張コード1hは、アドレスのみの伝送を表す。この場合、データの伝送は行われない。拡張コード2hは、キャッシュメモリの無効化を表す。拡張コード3hは、マスタキャンセルを表す。マスタキャンセルについては後述する。拡張コード4hはブロードキャスト、すなわち、特定のアドレスを指定せず、情報処理装置１内のすべての装置３００にデータを送信することを表す。拡張コード5h〜Chは予備である。拡張コードDhは、自己診断の指示を表す。拡張コードEhは、自己診断の応答、すなわち、拡張コードDhによって自己診断を指示されたスレーブ装置からの応答である。拡張コードFhは、バス１００上の信号の伝送に障害が発生した場合における各バスインターフェース回路３１０の再起動を表す。
【００３２】
ＥＣＣは誤り訂正符号である。本実施形態では、ＥＣＣを信号の誤り訂正を目的として用いるとともに、当該アドレスサイクルにおいてアドレスをバス１００に出力することが可能か否かを判断するためにも用いる。この判断の手順については後述する。
【００３３】
次に、データサイクルにおけるフレームについて説明する。本実施形態ではデータバスのバス幅が64bit(=8Byte)であり、バスクロック信号ＢＣＬＫの１クロック分の期間内に64bitの信号を伝送することができる。本実施形態では、データを伝送するためのデータサイクルとして各アドレスサイクルに続く４クロック分の期間を設け、１クロック毎に64bitずつ、データおよび当該データに関連する情報を伝送する。１回のデータサイクルの期間内にデータバス上で伝送される256bit(=32Byte)の信号は、ヘッダ4Byteとボディ28Byteに大別される。
【００３４】
ヘッダは、Readyフラグ(1bit)、フォーマットＩＤ(3bit)、コンテンツＩＤ(4bit)、予備(24bit)からなる。Readyフラグは、当該データサイクルで伝送されるデータが有効であるか否かを表す。Readyフラグ＝１ならばデータが有効であることを表し、Readyフラグ＝０ならばデータが無効であることを表す。データが無効である場合、当該データサイクルを無効データサイクルと呼ぶ。フォーマットＩＤは、データの形式を表す。フォーマットＩＤが0hの場合、データはrawすなわち生データであり、圧縮等の処理は加えられていない。フォーマットＩＤが1h乃至6hの場合、データは圧縮されており、順にJPEG(Joint Photographic Experts Group)、JBIG(Joint Bi-lebel Image experts Group)、MMR(Modified Modified Read)、MR(Modified Read)、MH(Modified Huffman)、RLE(Run Length Encoding)の各方式で圧縮されていることを表す。コンテンツＩＤは、データの内容を表す。コンテンツＩＤが0hの場合、データの内容は指定されていない。コンテンツＩＤが1h乃至5hの場合、データの内容が指定されており、順にプログラム、制御情報、静止画、動画、音声を表す。
一方、ボディは、データ (192bit =24Byte)、ＥＣＣ(32bit)からなる。データは、読み出しまたは書き込みの対象であるデータである。
【００３５】
次に、バスインターフェース回路３１０の動作について説明する。
ここで、情報処理装置１には電源が投入されており、ＣＰＵ３０１がＯＳ等のプログラムを実行中である。
【００３６】
（１）書き込み要求の場合
まず、マスタ装置がスレーブ装置にデータの書き込みを要求する場合のマスタ装置およびスレーブ装置におけるバスインターフェース回路３１０の動作について説明する。ここでは、ＣＰＵ３０１がマスタ装置、ＨＤＤ３０４がスレーブ装置である場合の例を用いて説明する。
【００３７】
図６は、マスタ装置におけるバスインターフェース回路３１０の動作のフローを表す図である。図１０、図１１は、各バス１００上における信号の伝送の様子を表すタイミングチャートである。図１０は、時刻t=t0からt46までの期間を表し、図１１は、時刻t=t45からt90までの期間を表す。
本実施形態では、バスクロック信号ＢＣＬＫの５クロック分の期間をスロット（第１の期間）と呼ぶ。つまり、５クロックを１周期としてスロットの先頭が繰り返し訪れる。また、各スロットの最初の１クロック分の期間をアドレスサイクル（第２の期間）と呼び、アドレスサイクルに続く４クロック分の期間をデータサイクル（第３の期間）と呼ぶ。
【００３８】
まず、マスタ装置としてのＣＰＵ３０１に備えられたバスインターフェース回路３１０の動作について説明する。
図６のステップＡ０１では、有効アドレス生成器３１２が、ＨＤＤ３０４における書き込みアドレスを生成し、内部処理モジュール３１１に出力する。内部処理モジュール３１１は、生成された書き込みアドレスに対応するＲ／Ｗフラグ、サイズ情報、拡張コードおよびＥＣＣを生成し、生成されたこれらの情報を用いて図３に示したアドレスサイクルのフレームを生成し、このフレームを出力段ＦＩＦＯ３３０に出力する。続いて、内部処理モジュール３１１は、当該書き込みアドレスに対応するデータと、このデータに対応するReadyフラグ、フォーマットＩＤ、コンテンツＩＤおよびＥＣＣを生成し、生成されたこれらの情報を用いて図３に示したデータサイクルのフレームを生成し、このフレームを出力段ＦＩＦＯ３３０に出力する。そして、内部処理モジュール３１１は、バスクロック信号ＢＣＬＫを監視し、スロットの先頭を検出する度に、当該スロットのアドレスサイクルが空いているか否かを判定する。
【００３９】
具体的には、内部処理モジュール３１１は、スロットの先頭を検出する度に、所定のアルゴリズムに従って演算を行う。本アルゴリズムは、有効アドレスが入力された場合に、そのフレームに含まれるＥＣＣを用いた演算結果が所定値に一致するように構成されている。演算結果が所定値に一致しない場合は、有効アドレスではないので、当該スロットのアドレスサイクルが空いていると判定される。
【００４０】
自局宛でないフレームが入力された場合、上述のとおり、内部処理モジュール３１１は、そのフレームをバイパスＦＩＦＯ３５０に格納し、第１の遅延期間だけ遅延させて伝送方向下流側のバス１００に出力する。つまり、当該フレームの入力から第１の遅延期間経過後のアドレスサイクルにおいては、伝送方向下流側のバス１００は自局宛でないフレームの伝送に使用されるから、他のフレームの伝送には使用することができない。そのため、内部処理モジュール３１１は、有効アドレス生成器３１２が生成した書き込みアドレスを含むフレームを送信するために、伝送方向下流側のバス１００が使用されていないアドレスサイクル、すなわち空いているアドレスサイクルが訪れるのを待つ必要がある。本実施形態では、ＥＣＣを用いた演算結果によって、アドレスサイクルが空いているか否かを判定するのである。
内部処理モジュール３１１は、当該アドレスサイクルが空いている場合（ステップＡ０１：ＹＥＳ）にはステップＡ０２の処理に進み、当該アドレスサイクルが空いていない場合（ステップＡ０１：ＮＯ）にはステップＡ０１の処理を繰り返す。
【００４１】
ステップＡ０２では、内部処理モジュール３１１は、フレームの出力を出力段ＦＩＦＯ３３０に指示する。すると、出力段ＦＩＦＯ３３０は、格納時期の最も古いフレーム、すなわち書き込みアドレスを含むフレームをバス１０１に出力する。その結果、図１０のバス１０１の線上に示されているとおり、書き込みアドレスを含むフレームがアドレスサイクルの期間内（t=t0〜t1）にバス１０１に出力される。また、内部処理モジュール３１１は、このフレームに含まれるＲ／Ｗフラグを記憶する。
ここで、図中に示されている文字列「Ｗ４」は、読み出し（Ｒ：Read）／書き込み（Ｗ：Write）の区別およびスレーブ装置の符号の下１桁を表す。この例では、スレーブ装置としてのＨＤＤ３０４に対して書き込みを要求していることを表している。
【００４２】
ステップＡ０３では、内部処理モジュール３１１は、ステップＡ０２で出力したフレームが読み出し要求と書き込み要求のどちらを表すかを判定する。この判定は、ステップＡ０２で記憶したＲ／Ｗフラグを用いて行われる。内部処理モジュール３１１は、出力したフレームが読み出し要求を表すフレーム（Ｒ／Ｗフラグ＝１）であるならば（ステップＡ０３：ＹＥＳ）ステップＡ０５の処理に進み、書き込み要求を表すフレーム（Ｒ／Ｗフラグ＝０）であるならば（ステップＡ０３：ＮＯ）ステップＡ０４の処理に進む。この例では、出力したフレームは書き込み要求を表すから、内部処理モジュール３１１はステップＡ０４の処理に進む。
【００４３】
ステップＡ０４では、内部処理モジュール３１１は、バスクロック信号ＢＣＬＫをカウントし、書き込みアドレスを含むフレームを出力したアドレスサイクルの終了後、所定の遅延クロック数に達したならば、データを含むフレームの出力を出力段ＦＩＦＯ３３０に指示する。本実施形態では、遅延クロック数をバスクロック信号ＢＣＬＫの１０クロック分（＝２スロット分）とし、この遅延クロック数に相当する期間を第２の遅延期間と呼ぶ。フレームの出力を指示されると、出力段ＦＩＦＯ３３０は、格納時期の最も古いフレーム、すなわちデータを含むフレームをバス１０１に出力する。その結果、図１０のバス１０１の線上に示されているとおり、書き込みアドレスを含むフレームを出力したアドレスサイクルが終了（t=t1）した後、第２の遅延期間だけ遅延されて、データを含むフレームの出力が開始される（t=t11）。このフレームは、データサイクルの期間内（t=t11〜t15）にバス１０１に出力される。ここで、図中に示されている文字列「１→４」はデータの送信元と送信先の装置の符号の下１桁を表す。この例では、このデータがＣＰＵ３０１からＨＤＤ３０４に送信されたデータであることを表している。
【００４４】
上記のようにしてバス１０１に出力されたフレームは、ＲＯＭ３０２に入力される。ＲＯＭ３０２に備えられたバスインターフェース回路３１０では、以下に示す処理が行われる。まず、アドレスデコーダ３４０はt=t0〜t1の期間内にバス１０１からフレームを入力する。このフレームに含まれる書き込みアドレスは自局のアドレスでないため、内部処理モジュール３１１はこのフレームをバイパスＦＩＦＯ３５０に格納し、このフレームの入力（t=t0〜t1）から第１の遅延期間（１５クロック＝３スロット）だけ遅延させてt=t15〜t16の期間内にこのフレームをバス１０２に出力する。
【００４５】
ＲＡＭ３０３においても同様の処理が行われる。すなわち、アドレスデコーダ３４０はt=t15〜t16の期間内にバス１０２からフレームを入力する。このフレームに含まれる書き込みアドレスは自局のアドレスでないため、内部処理モジュール３１１はこのフレームをバイパスＦＩＦＯ３５０に格納し、このフレームの入力（t=t15〜t16）から第１の遅延期間だけ遅延させてt=t30〜t31の期間内にこのフレームをバス１０３に出力する。
上記のようにしてバス１０３に出力されたフレームは、ＨＤＤ３０４に入力される。
【００４６】
次に、スレーブ装置としてのＨＤＤ３０４に備えられたバスインターフェース回路３１０の動作について説明する。図７は、スレーブ装置におけるバスインターフェース回路３１０の動作のフローを表す図である。
まず、ステップＢ０１では、アドレスデコーダ３４０がバスクロック信号ＢＣＬＫを監視し、スロットの先頭を検出する度にアドレスサイクルの期間内にバス１０３からアドレスを含むフレームを入力する。
ステップＢ０２では、アドレスデコーダ３０４は、入力されたアドレスが自局のアドレスであるか否かを判定する。自局のアドレスである場合（ステップＢ０２：ＹＥＳにはステップＢ０３の処理に進み、自局のアドレスでない場合（ステップＢ０２：ＮＯ）にはステップＢ０１の処理を繰り返す。ここではアドレスが自局、すなわちＨＤＤ３０４のアドレスであるから、ステップＢ０３の処理に進む。
【００４７】
ステップＢ０３では、内部処理モジュール３１１は、入力したフレームが読み出し要求と書き込み要求のどちらを表すかを判定する。内部処理モジュール３１１は、入力したフレームが読み出し要求を表すフレーム（Ｒ／Ｗフラグ＝１）であるならば（ステップＢ０３：ＮＯ）ステップＢ０５の処理に進み、書き込み要求を表すフレーム（Ｒ／Ｗフラグ＝０）であるならば（ステップＢ０３：ＹＥＳ）ステップＢ０４の処理に進む。ここでは当該フレームが書き込み要求を表すから、ステップＢ０４の処理に進む。
【００４８】
図８は、スレーブ装置におけるバスインターフェース回路３１０が行う書き込みの動作のフローを表す図である。なお、このフローは、図７のステップＢ０４の内容を詳細に表したものである。ここで、バスロック信号ＢＣＬＫをカウントするためのカウンタはリセットされている。
まず、ステップＣ０１では、内部処理モジュール３１１は、バスクロック信号ＢＣＬＫのカウント地を１だけ加算する。
ステップＣ０２では、内部処理モジュール３１１が、第２の遅延期間に相当する遅延クロック数、すなわち１０クロックに達したか否かを判定し、遅延クロック数に達していないならば（ステップＣ０２：ＮＯ）、ステップＣ０１に戻る。遅延クロック数に達したならば（ステップＣ０２：ＹＥＳ）、ステップＣ０３に進む。
【００４９】
ステップＣ０３では、入力段ＦＩＦＯ３３０が、バスクロック信号ＢＣＬＫに従った速度で、書き込み対象のデータをバス１００から入力する。そして、入力段ＦＩＦＯ３３０が、入力されたデータを内部処理モジュール３１１に転送する。
ステップＣ０４では、内部処理モジュール３１１が、入力されたデータが有効なデータであるか否かを判定する。ここで、「有効なデータ」とは、スレーブ装置が処理の対象とするデータであり、Readyフラグ＝１の場合である。取り込まれたデータが有効なデータである場合（ステップＣ０４：ＹＥＳ）には、処理を終了する。一方、有効なデータでない場合（ステップＣ０４：ＮＯ）には、ステップＣ０１以降の処理を繰り返す。
以上が、マスタ装置がスレーブ装置にデータの書き込みを要求する場合のバスインターフェース回路３１０の動作である。
【００５０】
（２）読み出し要求の場合
次に、マスタ装置がスレーブ装置にデータの読み出しを要求する場合のバスインターフェース回路３１０の動作について説明する。ここでは、ＨＤＤ３０４がマスタ装置、Ｉ／Ｏ装置３０６がスレーブ装置である場合の例を用いて説明する。
まず、マスタ装置としてのＨＤＤ３０４に備えられたバスインターフェース回路３１０の動作について説明する。
【００５１】
図６のステップＡ０１では、有効アドレス生成器３１２が、Ｉ／Ｏ装置３０６における読み出しアドレスを生成する。また、内部処理モジュール３１１は、生成された読み出しアドレスに対応するＲ／Ｗフラグ、サイズ情報、拡張コードおよびＥＣＣを生成し、これらの情報と読み出しアドレスとを用いて図３に示したフレームを生成し、このフレームを出力段ＦＩＦＯ３３０に出力する。そして、内部処理モジュール３１１は、バスクロック信号ＢＣＬＫを監視し、スロットの先頭を検出する度に、当該スロットのアドレスサイクルが空いているか否かを判定する。なお、ステップＡ０１にて内部処理モジュール３１１は、バスクロック信号ＢＣＬＫをカウントするためのカウンタをリセットする。
【００５２】
ステップＡ０２では、内部処理モジュール３１１は、フレームの出力を出力段ＦＩＦＯ３３０に指示する。すると、出力段ＦＩＦＯ３３０は、格納時期の最も古いフレーム、すなわち読み出しアドレスを含むフレームをバス１０４に出力する。その結果、図１０のバス１０４の線上に示されているとおり、読み出しアドレスを含むフレームがアドレスサイクルの期間中にバス１０４に出力される。ここで、図中に示されている文字列「Ｒ６」は、スレーブ装置としてのＩ／Ｏ装置３０６に対して書き込みを要求していることを表している。
【００５３】
ステップＡ０３では、当該処理は読み出し要求であるから、内部処理モジュール３１１はステップＡ０５の処理に進む。
ステップＡ０５では、内部処理モジュール３１１は、自局、すなわちＨＤＤ３０４が出力した読み出し要求が伝送路を一巡してきたか否かを判定する。具体的には以下のとおりである。内部処理モジュール３１１は、ステップＡ０２で自局がバス１０４に出力したフレーム（読み出しアドレスを含むフレーム）が一巡したか否か、すなわち、バス１０４から外部Ｉ／Ｆ３０５、バス１０５、Ｉ／Ｏ装置３０６、バス１０６、ＣＰＵ３０１、バス１０１、ＲＯＭ３０２、バス１０２、ＲＡＭ３０３およびバス１０３を経てＨＤＤ３０４に入力されたか否かを判定する。
【００５４】
ここで、ＨＤＤ３０４が出力した読み出し要求が伝送路を一巡してくるまでに他の装置３００で行われる処理について説明する。
バス１０４に出力されたフレームは、外部Ｉ／Ｆ３０５によって受信される。外部Ｉ／Ｆ３０５のバスインターフェース回路３１０においては、このフレームに含まれるアドレスが自局のアドレスでないため、バス１０４からフレームを入力した後、このフレームをバイパスＦＩＦＯ３０５に格納し、入力から第１の遅延期間だけ遅延させてバス１０５に出力する。その結果、図１０のバス１０５の線上に示すとおり、バス１０４このフレームが出力されてから第１の遅延期間だけ遅延されて、バス１０５にこのフレームが出力される。
バス１０５に出力されたフレームは、スレーブ装置としてのＩ／Ｏ装置３０６に入力される。
【００５５】
次に、スレーブ装置としてのＩ／Ｏ装置３０６に備えられたバスインターフェース回路３１０の動作について説明する。
まず、ステップＢ０１では、アドレスデコーダ３４０がバスクロック信号ＢＣＬＫを監視し、スロットの先頭を検出する度にアドレスサイクルの期間内にバス１０５からアドレスを含むフレームを入力する。
ステップＢ０２では、アドレスが自局、すなわちＩ／Ｏ装置３０６のアドレスであるから、ステップＢ０３の処理に進む。
【００５６】
ステップＢ０３では、当該要求が読み出し要求であるから、ステップＢ０５に進む。
ステップＢ０５では、内部処理モジュール３１１は、データの読み出しのための処理を行う。図９は、スレーブ装置におけるバスインターフェース回路３１０が行う読み出しの動作のフローを表す図である。なお、このフローは、図７のステップＢ０５の内容を詳細に表したものである。
【００５７】
まず、ステップＤ０１では、内部処理モジュール３１１が、読み出しを要求されたデータの出力の準備を開始する。例えば、図７のステップＢ０１で入力したアドレスに対応するデータをＩ／Ｏ装置３０６が備える記憶領域から読み出すための処理を開始する。ここで、内部処理モジュール３１１はカウンタをリセットする。
【００５８】
ステップＤ０２では、内部処理モジュール３１１が、マスタキャンセル信号が受信されたか否かを判定する。マスタキャンセル信号は、スレーブ装置におけるデータの読み出しが所定期間内に行われなかった場合にマスタ装置からスレーブ装置に送信される信号である。マスタキャンセル信号が受信されなかった場合（ステップＤ０２：ＮＯ）にはステップＤ０３に進み、マスタキャンセル信号が受信された場合（ステップＤ０２：ＹＥＳ）には、ステップＤ１０に進む。
【００５９】
ステップＤ０３では、内部処理モジュール３１１はバスクロック信号ＢＣＬＫのカウント値を１だけ加算する。
ステップＤ０４では、内部処理モジュール３１１が、第２の遅延期間に相当する遅延クロック数、すなわち１０クロックに達したか否かを判定し、遅延クロック数に達していないならば（ステップＤ０４：ＮＯ）、ステップＤ０２に戻る。遅延クロック数に達したならば（ステップＤ０４：ＹＥＳ）、ステップＤ０５に進む。
ステップＤ０５では、内部処理モジュール３１１は、要求されたデータの準備が完了しているか否かを判定する。データの準備が完了しているならば（ステップＤ０５：ＹＥＳ）、ステップＤ０６に進み、データの準備が完了していないならば（ステップＤ０５：ＮＯ）、ステップＤ０７に進む。
【００６０】
ステップＤ０６では、内部処理モジュール３１１が、準備されたデータを出力段ＦＩＦＯ３２０に出力し、バスクロック信号ＢＣＬＫに従った速度でバス１０６に出力する。その結果、図１０のバス１０６の線上に示されているとおり、アドレスを含むフレームがバス１０６に出力されてから第２の遅延期間だけ遅延されて、データを含むフレームがデータサイクルの期間中にバス１０６に出力される。ここで、図中に示されている文字列「６→４」は、Ｉ／Ｏ装置３０６からＨＤＤ３０４に送信されたデータであることを表している。バス１０６に出力されたフレームはＣＰＵ１０１のバイパスＦＩＦＯ３５０に格納された後、図１１に示すように、第２の遅延期間だけ遅延されてバス１０１に出力され、同様にＲＯＭ３０２、バス１０２、ＲＡＭ３０３、バス１０３を経て、ＨＤＤ３０４に受信される。
【００６１】
一方、ステップＤ０７では、内部処理モジュール３１１が、無効応答を表すフレームマスタ装置としてのＨＤＤ３０４に送信する。ここで、無効応答とは、読み出しを要求されたデータの準備が完了していないことを表す応答であり、図５に示したReadyフラグを「０」としたフレームをマスタ装置に送信することによって行われる。
【００６２】
ステップＤ０８では、内部処理モジュール３１１は、スロットの先頭を検出する度にアドレスサイクルの期間内にバス１０５からアドレスを含むフレームを取り込む。
そして、ステップＤ０９では、内部処理モジュール３１１は、当該フレームが前回と同一の読み出しアドレスに対する再読み出し要求であるか否かを判定する。再読み出し要求である場合（ステップＤ０９）には、内部処理モジュール３１１は、ステップＤ０２以降の処理を繰り返す。
【００６３】
次に、図６に戻り、ステップＡ０５以降の処理について説明する。
ステップＡ０５では、内部処理モジュール３１１は、自局が出力した読み出し要求が伝送路を一巡してきたか否かを判定する。図１０、１１から判るとおり、ＨＤＤ３０４がＩ／Ｏ装置３０６に送信した読み出し要求は、装置３００の総数から１を差し引いた数を第１の期間（スロット）に乗じた期間だけ遅延されてＨＤＤ３０４に戻って来る。従って、内部処理モジュール３１１は、読み出し要求を送信してからこの期間が経過した後にバス１０３から入力されたフレームが自局が送信したフレームであるか否かを判定する。
【００６４】
ステップＡ０６では、内部処理モジュール３１１は、バスクロック信号ＢＣＬＫのカウント値を１だけ加算する。
ステップＡ０７では、内部処理モジュール３１１は、第２の遅延期間に相当する遅延クロック数、すなわち１０クロックに達したか否かを判定し、遅延クロック数に達していないならば（ステップＡ０７：ＮＯ）、ステップＡ０６に戻る。遅延クロック数に達したならば（ステップＡ０７：ＹＥＳ）、ステップＡ０８に進む。
ステップＡ０８では、内部処理モジュール３１１はデータサイクルの期間内にバス１０３からフレームを取り込む。
【００６５】
ステップＡ０９では、内部処理モジュール３１１は、有効なデータが取り込まれたか否かを判定する。上述のとおり、所定の遅延クロック数に達するまでにデータの準備が完了しなかった場合、スレーブ装置は無効応答をマスタ装置に送信するので、内部処理モジュール３１１は、フレームに含まれるReadyフラグに基づいてデータの有効／無効を判定する。有効なデータが取り込まれた場合（ステップＡ０９：ＹＥＳ）には、処理を終了する。一方、有効なデータが取り込まれなかった場合（ステップＡ０９：ＮＯ）には、ステップＡ１０に進む。
【００６６】
ステップＡ１０では、内部処理モジュール３１１が、Ｉ／Ｏ装置３０６に読み出し要求を送信してからの経過時間が所定値に達したか否かを判定する。図９で示したとおり、スレーブ装置は、マスタ装置から要求されたデータの準備が所定の遅延クロック数に達するまでに完了しなかった場合、無効応答を発し、データの準備のための処理を無限に続けるようになっている。処理が無限に続くことを避けるために本実施形態では以下の処理を行う。すなわち、経過時間が所定値に達していない場合（ステップＡ１０：ＮＯ）には、内部処理モジュール３１１はステップＡ１３に進み、再度、Ｉ／Ｏ装置３０６の同一のアドレスに対する読み出し要求を送信し、ステップＡ０５以降の処理を繰り返す。
【００６７】
一方、経過時間が所定値に達している場合（ステップＡ１０：ＹＥＳ）には、内部処理モジュール３１１はステップＡ１１に進み、バスクロック信号ＢＣＬＫを監視し、スロットの先頭を検出する度に、当該スロットのアドレスサイクルが空いているか否かを判定する。アドレスサイクルが空いている場合には内部処理モジュール３１１はステップＡ１２に進み、マスタキャンセルを送信する。マスタキャンセルは、図４に示したとおり、拡張コードを3hとしたフレームによって表される。
マスタ装置が送信したマスタキャンセルをスレーブ装置が受信すると（図９のステップＤ０２：ＹＥＳ）、スレーブ装置の内部処理モジュール３１１がデータの読み出しのための処理を中止する（ステップＤ１０）。
以上が、マスタ装置がスレーブ装置にデータの読み出しを要求する場合のバスインターフェース回路３１０の動作である。
【００６８】
さて、上記の説明では各装置３００がマスタ装置、スレーブ装置のいずれかである場合を例として説明したが、本実施形態では、すべての装置３００がマスタ装置としての機能とスレーブ装置としての機能とを兼ね備えている。従って、伝送方向上流側のバス１００から入力したアドレスが自局に対応していない場合には、このアドレスに対応するフレームは第２の期間だけ遅延されて当該装置３００を通過する。
また、各バス１００は、それぞれに対して伝送方向上流側に接続されている装置３００によって別々に駆動される。従って、各バス１００はそれぞれが別々の信号を同時に伝送することができる。
一例として、６つの装置３００のすべてがマスタ装置として他の装置３００に対して読み出しまたは書き込みの要求を発した場合のタイミングチャートの例を図１２に示す
【００６９】
＜変形例＞
以上説明した形態に限らず、本発明は種々の形態で実施可能である。例えば、上述の実施形態を以下のように変形した形態でも実施可能である。
＜変形例１＞
上記の実施形態ではマスタキャンセルをアドレスサイクルにおける拡張コードで表し、無効応答をデータサイクルにおけるReadyフラグ（＝０）によって表す例を示したが、以下に示すように構成してもよい。すなわち、マスタキャンセルおよび無効応答を表すValid信号を送信するための専用の信号線を各バス１００に設ける。そして、図１３に示すように、Valid信号を通常はＬレベルとし、マスタキャンセルの場合はアドレスサイクルにおいてValid信号をＨレベルとする。また、無効応答の場合はデータサイクルの先頭のクロックにおいてValid信号をＨレベルとする。このように構成すれば、バスインターフェース回路３１０の構成を簡略化することができる。
【００７０】
＜変形例２＞
スロットのクロック数、アドレスサイクルのクロック数、データサイクルのクロック数、遅延クロック数を、扱うデータの種類、装置の構成等、諸条件に応じて適宜変更してもよい。
また、バスに接続する装置の数は３つ以上ならばいくつでもよい。
【００７１】
＜変形例３＞
上記の実施形態では伝送方向が一方向に定められた伝送路の例を示したが、この場合、例えば伝送方向と逆方向に隣接した装置３００に書き込みを要求すると（例えば、ＣＰＵ３０１からＩ／Ｏ装置３０６への書き込み要求）、隣接しているにも関わらず、ＲＯＭ３０２、ＲＡＭ３０３、ＨＤＤ３０４、外部Ｉ／Ｆ３０５を経て信号を伝送しなければならず、伝送に長時間を要するだけでなく、伝送路全体の伝送効率が低くなってしまう。この問題を解決するためには、互いに伝送方向を逆方向とした２つの伝送路を設ければよい。具体的には、図１５に示すように、双方向の伝送が可能なバスインターフェース回路６１０を各装置３００に設ける。図１６は、バスインターフェース回路６１０の構成を表す図である。内部処理モジュール６１１は、他の装置３００宛に書き込み要求を送信する場合に、伝送に要する時間の長さに応じて出力方向を決定する。例えば、ＣＰＵ３０１からＩ／Ｏ装置３０６に書き込み要求を送信する場合、図１５において時計回りに伝送した方が反時計回りに伝送するよりも短い時間で伝送を完了することができるので、ＣＰＵ３０１に設けられているバスインターフェース回路６１０の内部処理モジュール６１１は、時計回りの方向に書き込み要求を出力する。
【００７２】
同様に、ＣＰＵ３０１の内部処理モジュール６１１は、ＲＯＭ３０２またはＲＡＭ３０３に書き込みを要求する場合は反時計回りに、外部Ｉ／Ｆ３０５に書き込みを要求する場合は時計回りに書き込み要求を出力する。ＨＤＤ３０４に対してはどちらの伝送路でも伝送に要する時間は同じであるから、予め時計回り、反時計回りの一方に伝送方向を定めておく。
【００７３】
＜変形例４＞
図１７は、本発明を適用したＣＰＵブリッジ７００の例である。同図において、データスイッチ部７１０は図１に示した環状の伝送路である。バスコンバータ７２０は、別々の伝送路間での信号の伝送を仲介する。出力段ＦＩＦＯ７３０、入力段ＦＩＦＯ７４０は、ＣＰＵ７００とともに環状の伝送路を構成している次段の装置に接続されている。また、入力段ＦＩＦＯ７５０、出力段ＦＩＦＯ７６０は前段の装置に接続されている。
この構成によって、ＣＰＵ７０１、システムメモリ７０２、Ｉ／Ｏ装置７０３相互のデータ転送、およびＣＰＵブリッジ７００と環状の伝送路を構成する他の装置との間のデータ転送の効率を高めることができる。。
図１８は、ＣＰＵブリッジ７００を用いて構成された画像形成装置のコントローラの例である。この構成によって、画像形成装置内のデータ転送の効率を高めることができる。
【００７４】
＜変形例５＞
上記の実施形態では本発明を情報処理装置に適用した例を示したが、画像処理装置、画像形成装置、通信装置、表示装置、音響装置等、装置内部で複数の装置がバスを介してデータの遣り取りを行う装置であれば、本発明をいかなる電子機器に適用してもよい。
【図面の簡単な説明】
【００７５】
【図１】実施形態の全体構成を表す図である。
【図２】バスインターフェース回路３１０を表す図である。
【図３】バス１００上を伝送されるフレームの構成を表す図である。
【図４】フレームの内容を表す図である。
【図５】フレームの内容を表す図である。
【図６】マスタ装置におけるバスインターフェース回路３１０の動作のフローを表す図である。
【図７】スレーブ装置におけるバスインターフェース回路３１０の動作のフローを表す図である。
【図８】スレーブ装置におけるバスインターフェース回路３１０が行う書き込みの動作のフローを表す図である。
【図９】スレーブ装置におけるバスインターフェース回路３１０が行う読み出しの動作のフローを表す図である。
【図１０】信号の伝送の様子を表すタイミングチャートである。
【図１１】信号の伝送の様子を表すタイミングチャートである。
【図１２】信号の伝送の様子を表すタイミングチャートである。
【図１３】Valid信号の例を表す図である。
【図１４】信号の伝送の様子を表すタイミングチャートである。
【図１５】バスインターフェース回路６１０を各装置３００に設けた例である。
【図１６】バスインターフェース回路６１０の構成を表す図である。
【図１７】ＣＰＵブリッジ７００の例である。
【図１８】ＣＰＵブリッジ７００を用いて構成されたコントローラの例である。
【符号の説明】
【００７６】
１…情報処理装置、３０１…ＣＰＵ、３０２…ＲＯＭ、３０３…ＲＡＭ、３０４…ＨＤＤ、３０５…外部Ｉ／Ｆ、３０６…Ｉ／Ｏ装置、３００…装置、１００、１０１、１０２、１０３、１０４、１０５、１０６…バス、３１０…バスインターフェース回路、３１１…内部処理モジュール、３１２…有効アドレス生成器、３２０…入力段ＦＩＦＯ、３３０…出力段ＦＩＦＯ、３４０…アドレスデコーダ、３５０…バイパスＦＩＦＯ、４００…発振器
【図１】
0005082703.tif 000002
【図２】
0005082703.tif 000003
【図３】
0005082703.tif 000004
【図４】
0005082703.tif 000005
【図５】
0005082703.tif 000006
【図６】
0005082703.tif 000007
【図７】
0005082703.tif 000008
【図８】
0005082703.tif 000009
【図９】
0005082703.tif 000010
【図１０】
0005082703.tif 000011
【図１１】
0005082703.tif 000012
【図１２】
0005082703.tif 000013
【図１３】
0005082703.tif 000014
【図１４】
0005082703.tif 000015
【図１５】
0005082703.tif 000016
【図１６】
0005082703.tif 000017
【図１７】
0005082703.tif 000018
【図１８】
0005082703.tif 000019