(57)【特許請求の範囲】
【請求項１】
第１のバスと第２のバスとの間のデータ通信を制御するバス間通信インタフェース装置において、
前記第１のバスに接続された第１の装置から送られた通信データを格納する複数のバッファ領域を備え、前記各バッファ領域を交互に前記通信データの格納対象とするバッファと、
前記バッファが前記通信データの格納を完了すると、前記第１の装置から送られた前記通信データの終端を示す通信制御情報を格納するレジスタと、
前記各バッファ領域のうち、前記通信データを格納したバッファ領域を前記第２のバスに接続された第２の装置に通知するための第１のフラグと、前記レジスタに前記通信制御情報が格納されているか否かを前記第２の装置に通知するための第２のフラグと、を格納するステータスレジスタと、
前記バッファが前記通信データの格納を完了すると前記ステータスレジスタに前記通信データが格納された前記バッファ領域を示す前記第１のフラグを設定し、前記レジスタに前記通信制御情報が格納されると前記第２のフラグを設定し、前記通信データの格納対象のバッファ領域が前記通信データで満たされたことを検知した場合、および、前記レジスタに前記通信制御情報が格納されたことを検知した場合に、前記ステータスレジスタの設定内容により前記バッファに格納された前記通信データおよび前記レジスタに格納された前記通信制御情報を読み取る前記第２の装置に前記ステータスレジスタの読み取りを促す割り込み信号を出力する制御回路と、
を有することを特徴とするバス間通信インタフェース装置。
【請求項２】
前記バッファは、先に格納したデータを先に出力する方式のバッファであることを特徴とする請求項１記載のバス間通信インタフェース装置。
【請求項３】
第１のバスと第２のバスとの間のデータ通信を制御するバス間通信インタフェース装置において、
前記第１のバスに接続された第１の装置から送られた通信データを格納する複数のバッファ領域を備え、前記各バッファ領域を交互に前記通信データの格納対象とするバッファと、
前記バッファが前記通信データの格納を完了すると、前記第１の装置から送られた前記通信データの終端を示す通信制御情報を格納するレジスタと、
前記各バッファ領域のうち、前記通信データを格納したバッファ領域を前記第２のバスに接続された第２の装置に通知するための第１のフラグと、前記レジスタに前記通信制御情報が格納されているか否かを前記第２の装置に通知するための第２のフラグと、を格納するステータスレジスタと、
前記バッファが前記通信データの格納を完了すると前記ステータスレジスタに前記通信データが格納された前記バッファ領域を示す前記第１のフラグを設定し、前記レジスタに前記通信制御情報が格納されると前記第２のフラグを設定し、前記通信データの格納対象のバッファ領域が前記通信データで満たされたことを検知した場合、および、前記レジスタに前記通信制御情報が格納されたことを検知した場合に、前記ステータスレジスタの設定内容の読み取り後前記ステータスレジスタが前記バッファがフルであることを示す場合には前記バッファに格納された前記通信データを読み取り、前記ステータスレジスタが前記レジスタに所定データが設定されたことを示す場合には前記レジスタに格納された前記通信制御情報を読み取る前記第２の装置に、前記ステータスレジスタの読み取りを促す割り込み信号を出力する制御回路と、
を有することを特徴とするバス間通信インタフェース装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は複数のバス間のデータの送受信を行うバス間通信インタフェース装置に関し、特にバッファを介したデータ転送を行うバス間通信インタフェース装置に関する。
【０００２】
【従来の技術】
ビデオカメラ等の各種電子機器では、全体を制御するＣＰＵ(Central Processing Unit)以外に、所定の処理を実行するための情報処理ユニットを有していることがある。たとえば、電子機器をＬＡＮ(Local Area Network)接続する場合、ＣＰＵが内蔵されたＬＡＮインタフェースを実装し、通信データの暗号化等の高度な処理を行うことが可能である。
【０００３】
ＣＰＵ（以下、内部ＣＰＵと呼ぶ）を内蔵する情報処理ユニットと電子機器全体を制御する外部ホスト装置（以下、外部ホストと呼ぶ）との間では、適宜データ通信が行われる。なお、外部ホストにもＣＰＵが内蔵されており、このような外部機器とのデータ通信を必要とする様々な装置のインタフェースでは、一般的に転送効率を確保するためにＦＩＦＯ(First-In First-Out)と呼ばれるバッファを利用している。ＦＩＦＯは、先に格納したデータを先に出力する方式のバッファである。外部ホストと内部ＣＰＵとの間で送受信されるデータは一旦ＦＩＦＯに書き込まれ、その後、送信相手がＦＩＦＯからデータを読み出す。
【０００４】
図１４は、内部ＣＰＵにおける外部ホストからのデータの受信方法を示す概念図である。図１４に示すように、外部ホスト９１０と内部ＣＰＵ９３０との間にデータ受信用のＦＩＦＯ９２０が設けられている。なお、図１４の例では、ＦＩＦＯ９２０内に、データを蓄えるバッファ領域と、そのバッファ領域がデータで満たされたときに割り込み信号をアサートする割り込み発生回路とを含むものとする。
【０００５】
外部ホスト９１０は、通信データをＦＩＦＯ９２０に書き込む（ステップＳ１０１）。すると、ＦＩＦＯ９２０において割り込み信号がアサートされる（ステップＳ１０２）。その割り込み信号を検知した内部ＣＰＵ９３０は、ＦＩＦＯ９２０から通信データを読み込む（ステップＳ１０３）。
【０００６】
図１５は、内部ＣＰＵにおける外部ホストからのデータの受信手順を示すフローチャートである。以下、図１５に示す処理をステップ番号に沿って説明する。
［ステップＳ１１１］外部ホスト９１０は、ＦＩＦＯ９２０へデータを書き込む。なお、外部ホスト９１０は、転送すべきデータの最終端には、データ終了情報を付加する。データ終了情報を付加した後、ＦＩＦＯ９２０に空き領域が有る場合、その空き領域に無効なデータ（例えば、全ての０のデータ）を書き込み、ＦＩＦＯ９２０内をデータで満たす。
【０００７】
［ステップＳ１１２］ＦＩＦＯ９２０は、ＦＩＦＯ９２０内のバッファ領域がデータで満たされたか否かを判定し、満たされていない場合(not full)には、ステップＳ１１１の処理を繰り返す。
【０００８】
［ステップＳ１１３］ＦＩＦＯ９２０は、ＦＩＦＯ９２０内のバッファ領域がデータで満たされたか否かを判定し、満たされている場合(full)には、ステップＳ１１４に処理が進められる。
【０００９】
［ステップＳ１１４］ＦＩＦＯ９２０は、割り込み信号をアサートする。
［ステップＳ１１５］内部ＣＰＵ９３０は、割り込み信号のアサートを検知すると、ＦＩＦＯ９２０内のデータを読み出す。
【００１０】
［ステップＳ１１６］内部ＣＰＵ９３０は、ＦＩＦＯ９２０のステータスが空(Empty)になると読み込みを終了し、処理をステップＳ１１１に進める。その後、外部ホスト９１０により、後続のデータがＦＩＦＯ９２０に書き込まれる。
【００１１】
［ステップＳ１１７］また、内部ＣＰＵ９３０は、ＦＩＦＯ９２０からデータを読み出す毎に、読み出したデータの内容が受信データ終了情報か否かを随時チェックする。そして、受信データ終了情報を検出すると、内部ＣＰＵ９３０は、データ受信処理を終了させる。
【００１２】
図１６は、内部ＣＰＵにおける外部ホストへのデータの送信方法を示す概念図である。図１６に示すように、外部ホスト９１０と内部ＣＰＵ９３０との間にデータ送信用のＦＩＦＯ９４０が設けられている。なお、ＦＩＦＯ９４０には、データを蓄えるバッファ領域と、そのバッファ領域がデータで満たされたときにデータ送信要求信号をアサートする回路とを含む。
【００１３】
内部ＣＰＵ９３０は、通信データをＦＩＦＯ９４０に書き込む（ステップＳ１２１）。すると、ＦＩＦＯ９４０においてデータ送信要求信号がアサートされる（ステップＳ１２２）。そのデータ送信要求信号を検知した外部ホスト９１０は、ＦＩＦＯ９４０から通信データを読み込む（ステップＳ１２３）。
【００１４】
図１７は、内部ＣＰＵにおける外部ホストへのデータの送信手順を示すフローチャートである。以下、図１７に示す処理をステップ番号に沿って説明する。
［ステップＳ１３１］内部ＣＰＵ９３０は、ＦＩＦＯ９４０へデータを書き込む。
【００１５】
［ステップＳ１３２］ＦＩＦＯ９４０は、データ送信要求信号をアサートする。
［ステップＳ１３３］外部ホスト９１０は、ＦＩＦＯ９４０内のバッファ領域からデータをリードする。
【００１６】
［ステップＳ１３４］外部ホスト９１０は、ＦＩＦＯ９４０のステータスが空でない(not Empty)場合には、ステップＳ１３３のデータリードを継続する。
［ステップＳ１３５］外部ホスト９１０は、ＦＩＦＯ９４０のステータスが空(Empty)になるとデータリードを終了する。
【００１７】
このようにして、ＦＩＦＯを経由したデータの送受信が行われる。
なお、上記の例では、外部ホスト９１０から内部ＣＰＵ９３０へのデータ転送において、割り込み信号のアサートによりＦＩＦＯ９２０へのデータ書き込み完了が通知されるが、他の方法で通知することもできる。たとえば、読み込み要求伝達用の要求回路を設け、その回路を介して読み込み要求を伝達することもできる（特許文献１参照）。
【００１８】
【特許文献１】
特開平１１−１８１２２号公報（第１図、第２図）
【００１９】
【発明が解決しようとする課題】
しかし、従来の技術では、外部ホスト９１０から内部ＣＰＵ９３０に転送されるデータの終端検出のために、内部ＣＰＵ９３０が逐次データの内容を解析する必要がある。そのため、内部ＣＰＵへの負荷が過大となっていた。しかも、通信に必要なデータは、全てＦＩＦＯ９２０，９４０を通じてやりとりされる。そのため、データ送受信途中に通信の制御情報を交換することは出来ない。
【００２０】
また、ＦＩＦＯ９２０，９４０からの内部ＣＰＵ９３０による読み込みは割り込み信号を契機に行われるが、割り込み制御ではＦＩＦＯ９２０，９４０内のデータがフルとならない場合、全てのデータを読み出すことが出来ない。そのため、外部ホスト９１０側において、固定のデータ量となるようにデータの最後に無効なデータを付加する必要がある。その結果、外部ホスト９１０においてソフトウェアでＦＩＦＯへ書き込むデータを処理することとなり、実行時間が長くなることの問題が発生し、高速通信では障害となってきている。
【００２１】
なお、特許文献１における要求回路は、単に読み込み要求を伝達しているだけであり、データ通信に関する任意の制御情報の伝達に利用することはできない。すなわち、図１４に示す割り込み信号アサート（ステップＳ１０２）の処理が、要求回路への読み込み要求の設定に置き換えられただけである。しかも、要求回路への読み込み要求の設定を契機として、通信相手においてデータの読み込みが行われるため、要求回路に読み込み要求以外の情報を書き込むと、正常なデータ通信が行えなくなってしまう。
【００２２】
本発明はこのような点に鑑みてなされたものであり、異なるバスに接続された複数の装置間のデータの受け渡しを効率よく行うことができるバス間通信インタフェース装置を提供することを目的とする。
【００２３】
【課題を解決するための手段】
本発明では上記課題を解決するために、図１に示すようなバス間通信インタフェース装置が提供される。本発明に係るバス間通信インタフェース装置１は、第１のバス４と第２のバス５との間のデータ通信を制御するものである。バス間通信インタフェース装置１は、以下の要素を有している。
【００２４】
バッファ１ａは、第１のバス４に接続された第１の装置２から送られた通信データ６を格納する。レジスタ１ｂは、通信データ６の通信制御情報７を格納する。制御回路１ｃは、バッファ１ａに格納された通信データ６を第２のバス５に接続された第２の装置３に渡すと共に、レジスタ１ｂに格納された通信制御情報７を第２の装置３に渡す。
【００２５】
このようなバス間通信インタフェース装置１によれば、通信データ６はバッファを介して第１の装置２から第２の装置３へ転送され、通信制御情報７は、レジスタ１ｂを介して第１の装置２から第２の装置３へ転送される。
【００２６】
また、本発明では上記課題を解決するために、第１のバスと第２のバスとの間のデータ通信を制御するバス間通信インタフェース装置において、前記第１のバスに接続された第１の装置から送られた通信データを格納する複数のバッファ領域を備え、前記各バッファ領域を交互に前記通信データの格納対象とするバッファと、前記バッファが前記通信データの格納を完了すると、前記第１の装置から送られた前記通信データの終端を示す通信制御情報を格納するレジスタと、前記各バッファ領域のうち、前記通信データを格納したバッファ領域を前記第２のバスに接続された第２の装置に通知するための第１のフラグと、前記レジスタに前記通信制御情報が格納されているか否かを前記第２の装置に通知するための第２のフラグと、を格納するステータスレジスタと、前記バッファが前記通信データの格納を完了すると前記ステータスレジスタに前記通信データが格納された前記バッファ領域を示す前記第１のフラグを設定し、前記レジスタに前記通信制御情報が格納されると前記第２のフラグを設定し、前記通信データの格納対象のバッファ領域が前記通信データで満たされたことを検知した場合、および、前記レジスタに前記通信制御情報が格納されたことを検知した場合に、前記ステータスレジスタの設定内容により前記バッファに格納された前記通信データおよび前記レジスタに格納された前記通信制御情報を読み取る前記第２の装置に前記ステータスレジスタの読み取りを促す割り込み信号を出力する制御回路と、を有することを特徴とするバス間通信インタフェース装置が提供される。
【００２７】
また、本発明では上記課題を解決するために、第１のバスと第２のバスとの間のデータ通信を制御するバス間通信インタフェース装置において、前記第１のバスに接続された第１の装置から送られた通信データを格納する複数のバッファ領域を備え、前記各バッファ領域を交互に前記通信データの格納対象とするバッファと、前記バッファが前記通信データの格納を完了すると、前記第１の装置から送られた前記通信データの終端を示す通信制御情報を格納するレジスタと、前記各バッファ領域のうち、前記通信データを格納したバッファ領域を前記第２のバスに接続された第２の装置に通知するための第１のフラグと、前記レジスタに前記通信制御情報が格納されているか否かを前記第２の装置に通知するための第２のフラグと、を格納するステータスレジスタと、前記バッファが前記通信データの格納を完了すると前記ステータスレジスタに前記通信データが格納された前記バッファ領域を示す前記第１のフラグを設定し、前記レジスタに前記通信制御情報が格納されると前記第２のフラグを設定し、前記通信データの格納対象のバッファ領域が前記通信データで満たされたことを検知した場合、および、前記レジスタに前記通信制御情報が格納されたことを検知した場合に、前記ステータスレジスタの設定内容の読み取り後前記ステータスレジスタが前記バッファがフルであることを示す場合には前記バッファに格納された前記通信データを読み取り、前記ステータスレジスタが前記レジスタに所定データが設定されたことを示す場合には前記レジスタに格納された前記通信制御情報を読み取る前記第２の装置に、前記ステータスレジスタの読み取りを促す割り込み信号を出力する制御回路と、を有することを特徴とするバス間通信インタフェース装置が提供される。
【００２９】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照して説明する。
まず、実施の形態に適用される発明の概要について説明し、その後、実施の形態の具体的な内容を説明する。
【００３０】
図１は、実施の形態に適用される発明の概念図である。バス間通信インタフェース装置１は、第１のバス４と第２のバス５との間のデータ通信を制御するものである。第１のバス４には第１の装置２が接続されており、第２のバス５には第２の装置３が接続されている。バス間通信インタフェース装置１は、バッファ１ａ、レジスタ１ｂ、および制御回路１ｃを有している。バッファ１ａは、第１のバスに接続された第１の装置２から送られた通信データ６を格納する。レジスタ１ｂは、通信データ６の通信制御情報７を格納する。制御回路１ｃは、バッファ１ａに格納された通信データ６を第２のバス５に接続された第２の装置３に渡すと共に、レジスタ１ｂに格納された通信制御情報７を第２の装置３に渡す。
【００３１】
このような装置において、第１の装置２は、通信データ６を送信する際には、バッファ１ａに対して書き込みを行い、通信制御情報７を送信する際には、レジスタ１ｂに対して書き込みを行う。たとえば、ストリーミングの通信データ６がある場合、第１の装置２は、その通信データ６を順次バッファ１ａに書き込む。そして、通信データ６の書き込みが終了すると、通信データ６の終了を示すデータ終了情報を通信制御情報７としてレジスタ１ｂに書き込む。すると、通信データ６はバッファを介して第１の装置２から第２の装置３へ転送され、通信制御情報７は、レジスタ１ｂを介して第１の装置２から第２の装置３へ転送される。
【００３２】
このように、通信データ６を格納するバッファ１ａと別のレジスタ１ｂを介して通信制御情報７を転送するようにしたことで、第２の装置３において通信データ６と通信制御情報７とを判別する処理が簡略化される。すなわち、第２の装置３は、バッファ１ａから読み込んだデータは通信データ６であり、レジスタ１ｂから読み込んだデータは通信制御情報７であると認識できる。そのため、バス間のデータ通信を効率的に行うことができる。具体的には、データ終了情報をレジスタ１ｂを介して転送することで、第２の装置３において通信データ６の内容を解析することなく通信データ６の終了を認識できる。その結果、第２の装置３の処理負荷が軽減される。
【００３３】
なお、図１には、第１の装置２から第２の装置３へのデータ通信の構成のみを示しているが、逆方向のデータ通信も同様の構成で行うことができる。以下、本発明を適用した通信を双方向に行うことができるバス間通信インタフェース装置が組み込まれた情報処理ユニットを例に採り、本発明の実施の形態を具体的に説明する。
【００３４】
図２は、本発明の実施の形態に係る装置のハードウェア構成を示す図である。図２に示すように、情報処理ユニット１００は、外部接続バス１０を介して外部ホスト２００に接続されている。
【００３５】
情報処理ユニット１００は、内部ＣＰＵ１１０、外部接続インタフェース１２０、周辺回路１３０，１４０を有しており、これらの各要素が内部バス１５０で接続されている。
【００３６】
内部ＣＰＵ１１０は、情報処理ユニット１００全体を制御する。外部接続インタフェース１２０は、外部接続バス１０を介して外部ホスト２００に接続されており、外部ホスト２００と内部ＣＰＵ１１０との間のデータ通信を中継する。周辺回路１３０，１４０は、所定のデータ処理を実行するための回路である。たとえば、周辺回路１３０，１４０は、暗号化／復号回路やＬＡＮ通信回路などである。
【００３７】
このような回路構成を有する装置では、外部ホスト２００と情報処理ユニット１００内の内部ＣＰＵ１１０との間で、外部接続インタフェース１２０を介してデータ通信が行われる。以下、外部接続インタフェース１２０の詳細な構成について説明する。
【００３８】
図３は、外部接続インタフェースの内部構成例を示す図である。外部接続バス１０は、データバス１１、制御信号入力バス１２、および制御信号出力バス１３とで構成される。データバス１１は、外部ホスト２００と情報処理ユニット１００との間で通信するデータを双方向に転送するためのバスである。
【００３９】
制御信号入力バス１２は、外部ホスト２００から外部接続インタフェース１２０へ制御信号を入力するためのバスである。制御信号入力バス１２には、チップセレクト信号(EX＿CSX)、アドレス信号(EX＿A)、リードストローブ信号(EX＿RDX)、ライトストローブ信号（EX＿WRX）の信号線が含まれる。チップセレクト信号(EX＿CSX)は、アクセスするメモリ回路（ＦＩＦＯや各種レジスタを含む）を指定する信号である。アドレス信号(EX＿A)は、アクセスするメモリ回路内のアクセス対象とする記憶領域を示す信号である。リードストローブ信号(EX＿RDX)は、読み出しのアクセスであることを示す信号である。ライトストローブ信号(EX＿WRX)は、書き込みのアクセスであることを示す信号である。
【００４０】
制御信号出力バス１３は、外部接続インタフェース１２０から外部ホスト２００へ制御信号を出力するためのバスである。制御信号出力バス１３には、受信データ要求信号(RX＿DRQX)と送信データ要求信号(TX＿DRQX)の信号線が含まれる。受信データ要求信号(RX＿DRQX)は、外部ホスト２００に対して、データ受信が可能であることを通知する信号である。送信データ要求信号(TX＿DRQX)は、外部ホスト２００に対して、送信すべきデータがあることを通知する信号である。
【００４１】
外部接続インタフェース１２０は、受信用ＦＩＦＯ(RX＿FIFO)１２１ａ，１２１ｂ、送信用ＦＩＦＯ(TX＿FIFO)１２２、受信用レジスタ(RX＿REG)１２３、送信用レジスタ(TX＿REG)１２４、バスインタフェース(BUS IF)１２５、ステータスレジスタ(ST＿REG)１２６、およびコントロールブロック１２７を有している。
【００４２】
受信用ＦＩＦＯ１２１ａ，１２１ｂは、外部ホスト２００からの受信データを記憶するためのデータ記憶領域である。受信用ＦＩＦＯ１２１ａ，１２１ｂは、外部接続バス１０内のデータバス１１を介して、外部ホスト２００に接続されている。また、受信用ＦＩＦＯ１２１ａ，１２１ｂは、バスインタフェース１２５に接続されている。受信用ＦＩＦＯ１２１ａ，１２１ｂは、１ポートのバッファをダブルバッファ構造にしたものであり、一方の受信用ＦＩＦＯにデータを格納している間に、他方の受信用ＦＩＦＯからデータを読み出すことができる。本実施の形態では、受信用ＦＩＦＯ１２１ａをＡ面とし、受信用ＦＩＦＯ１２１ｂをＢ面とする。データの格納や読み出しが完了すると、格納対象の受信用ＦＩＦＯと読み出し対象の受信用ＦＩＦＯとが切り替えられ、データの格納および読み出しが続行される。
【００４３】
送信用ＦＩＦＯ１２２は、外部ホスト２００への送信データを記憶するためのデータ記憶領域である。送信用ＦＩＦＯ１２２は、外部接続バス１０内のデータバス１１を介して、外部ホスト２００に接続されている。また、受信用ＦＩＦＯ１２１ａ，１２１ｂは、バスインタフェース１２５に接続されている。本実施の形態では送信用ＦＩＦＯ１２２にデュアルポートバッファが用いられ、データの書き込みと同時に、読み出しを行うことができる。
【００４４】
受信用レジスタ１２３は、受信データのデータ終了情報等の通信制御情報を格納するための記憶領域である。受信用レジスタ１２３は、外部接続バス１０のデータバス１１とバスインタフェース１２５との間に、受信用ＦＩＦＯ１２１ａ，１２１ｂと並列に接続されている。
【００４５】
送信用レジスタ１２４は、送信データのデータ終了情報等の通信制御情報を格納するための記憶領域である。送信用レジスタ１２４は、外部接続バス１０のデータバス１１とバスインタフェース１２５との間に、送信用ＦＩＦＯ１２２と並列に接続されている。
【００４６】
バスインタフェース１２５は、内部バス１５０を介して内部ＣＰＵ１１０と通信するためのインタフェースである。バスインタフェース１２５は、内部バス１５０を介して、受信用ＦＩＦＯ１２１ａ，１２１ｂ内のデータを内部ＣＰＵ１１０に送信したり、内部ＣＰＵ１１０から送られるデータを送信用ＦＩＦＯ１２２に格納したりする。また、バスインタフェース１２５は、コントロールブロック１２７の制御に従って、内部ＣＰＵ１１０に対して受信割り込み信号やＤＭＡ転送要求信号等を通知する。受信割り込み信号は、受信用ＦＩＦＯ１２１ａ，１２１ｂがデータで満たされたときや、受信用レジスタ１２３にデータ終了情報が格納されたときにアサートされる。ＤＭＡ転送要求信号は、ＤＭＡ転送を行うときにアサートされる信号である。
【００４７】
ステータスレジスタ１２６は、各ＦＩＦＯやレジスタの状態を表すレジスタである。ステータスレジスタ１２６に登録される情報の詳細は、後述する（図４、図５参照）。
【００４８】
コントロールブロック１２７は、外部接続インタフェース１２０を制御するためのコントローラである。図３では、省略しているが、コントロールブロック１２７は、他の各構成要素に接続されている。また、コントロールブロック１２７は、外部接続バス１０内の制御信号入力バス１２と制御信号出力バス１３とに接続されている。
【００４９】
次に、図４、図５を参照して、ステータスレジスタ１２６のデータ構造について説明する。
図４は、ステータスレジスタのデータ構造例を示す第１の図である。図５は、ステータスレジスタのデータ構造例を示す第２の図である。ステータスレジスタ１２６は３２ビットのレジスタであり、図４には第３１ビットから第２ビットに設定される情報が示されており、図５には第１ビットと第０ビットに設定される情報が示されている。図４、図５では、各ビットに関し、ビット名、初期値、内部ＣＰＵ１１０からのアクセス制限（リード（Ｒ）／ライト（Ｗ）の可否）、機能が示されている。
【００５０】
図４に示すように、第３１ビットから第１０ビットは、現在使用されておらず、将来の使用のために予約されたビットである。初期値は「０」である。
第７ビットと第６ビットとは、ビット名「TX＿FIFO」、初期値「００」、アクセス制限はリード（Ｒ）のみ可能である。この２ビットにより、送信用ＦＩＦＯ１２２のステータス状況が示される。値が「００」の場合、送信用ＦＩＦＯ１２２にデータが無いか、若しくはクリアされたことを示す。値が「０１」の場合、送信用ＦＩＦＯ１２２にデータがあることを示す。値が「１０」の場合、送信用ＦＩＦＯ１２２がデータフルになったことを示す。「１１」の値は、将来の使用のために予約された値である。
【００５１】
第５ビットと第４ビットは、ビット名「RX＿FIFO＿B」、初期値「００」、アクセス制限はリード（Ｒ）のみ可能である。この２ビットにより、Ｂ面の受信用ＦＩＦＯ１２１ｂのステータス状況が示される。値が「００」の場合、Ｂ面の受信用ＦＩＦＯ１２１ｂにデータが無いか、若しくはクリアされたことを示す。値が「０１」の場合、Ｂ面の受信用ＦＩＦＯ１２１ｂにデータがあることを示す。値が「１０」の場合、Ｂ面の受信用ＦＩＦＯ１２１ｂがデータフルになったことを示す。「１１」の値は、将来の使用のために予約された値である。
【００５２】
第３ビットと第２ビットは、ビット名「RX＿FIFO＿A」、初期値「００」、アクセス制限はリード（Ｒ）のみ可能である。この２ビットにより、Ａ面の受信用ＦＩＦＯ１２１ａのステータス状況が示される。値が「００」の場合、Ａ面の受信用ＦＩＦＯ１２１ａにデータが無いか、若しくはクリアされたことを示す。値が「０１」の場合、Ａ面の受信用ＦＩＦＯ１２１ａにデータがあることを示す。値が「１０」の場合、Ａ面の受信用ＦＩＦＯ１２１ａがデータフルになったことを示す。「１１」の値は、将来の使用のために予約された値である。
【００５３】
第１ビットは、ビット名「TX＿REG＿OUT」、初期値「０」、アクセス制限はリード（Ｒ）のみ可能である。このビットにより、送信用レジスタ１２４のステータス状況が示される。なお、このビットの値は、読み出されると同時にクリアされる（リードクリア）。値が「０」の場合、送信用レジスタ１２４にデータの出力が無いか、若しくはクリアされたことを示す。値が「１」の場合、送信用レジスタ１２４にデータの出力があったことを示す。
【００５４】
第０ビットは、ビット名「RX＿REG＿IN」、初期値「０」、アクセス制限はリード（Ｒ）のみ可能である。このビットにより、受信用レジスタ１２３のステータス状況が示される。なお、このビットの値は、読み出されると同時にクリアされる（リードクリア）。値が「０」の場合、受信用レジスタ１２３にデータが無いか、若しくはクリアされたことを示す。値が「１」の場合、受信用レジスタ１２３にデータがあることを示す。
【００５５】
以上のような構成において、以下のような処理が行われる。
まず、外部ホスト２００からのデータを受信する処理について説明する。
図６は、データ受信時の処理手順を示すフローチャートである。以下、図６に示す処理をステップ番号に沿って説明する。
【００５６】
［ステップＳ１１］外部ホスト２００は、受信用ＦＩＦＯ１２１ａ，１２１ｂの一方へデータを書き込む。なお、受信用ＦＩＦＯ１２１ａ，１２１ｂにデータの書き込みが開始されると、コントロールブロック１２７により、書き込み対象となる受信用ＦＩＦＯに有効なデータが有ることを示す情報がステータスレジスタ１２６に設定される。具体的には、Ａ面の受信用ＦＩＦＯ１２１ａにデータの書き込みが行われた場合、ステータスレジスタ１２６の第３ビットと第２ビットとに「０１」が設定される。また、Ｂ面の受信用ＦＩＦＯ１２１ｂにデータが書き込まれた場合、ステータスレジスタ１２６の第５ビットと第４ビットとに「０１」が設定される。
【００５７】
［ステップＳ１２］外部接続インタフェース１２０のコントロールブロック１２７は、書き込みが行われている受信用ＦＩＦＯがデータフルになると、そのことを検知し、処理をステップＳ１４に進める。
【００５８】
このとき、コントロールブロック１２７は、ステータスレジスタ１２６に、受信用ＦＩＦＯがデータフルになったことを示す値を設定する。具体的には、Ａ面の受信用ＦＩＦＯ１２１ａがデータフルになったのであれば、ステータスレジスタ１２６の第３ビットと第２ビットとに、「１０」が設定される。また、Ｂ面の受信用ＦＩＦＯ１２１ｂがデータフルになったのであれば、ステータスレジスタ１２６の第５ビットと第４ビットとに、「１０」が設定される。
【００５９】
また、コントロールブロック１２７は、書き込み対象とする受信用ＦＩＦＯの切り替えを行う。すなわち、Ａ面の受信用ＦＩＦＯ１２１ａがデータフルになった場合、外部ホスト２００からの書き込み対象がＢ面の受信用ＦＩＦＯ１２１ｂに切り替えられる。逆に、Ｂ面の受信用ＦＩＦＯ１２１ｂがデータフルになった場合、外部ホスト２００からの書き込み対象がＡ面の受信用ＦＩＦＯ１２１ａに切り替えられる。書き込み対象切り替え後は、ステップＳ１４〜ステップＳ１６の処理と並行して、新たに書き込み対象とされた受信用ＦＩＦＯに、外部ホスト２００から送られたデータが書き込まれる。
【００６０】
［ステップＳ１３］また、外部ホスト２００は、転送すべきデータの書き込みが終了した場合などの通信制御情報の送信タイミングになると、データ終了情報等の通信制御情報を受信用レジスタ１２３に書き込む。このとき、コントロールブロック１２７は、ステータスレジスタ１２６に、受信用レジスタ１２３にデータ終了情報等の通信制御情報が設定されたことを示す値を設定する。具体的には、ステータスレジスタ１２６の第０ビットに「１」が設定される。
【００６１】
［ステップＳ１４］コントロールブロック１２７は、受信用ＦＩＦＯがデータフルになった場合、または受信用レジスタ１２３にデータ終了情報等の通信制御情報が書き込まれた場合、バスインタフェース１２５を制御して、内部ＣＰＵ１１０に対する割り込み信号をアサートする。
【００６２】
［ステップＳ１５］内部ＣＰＵ１１０は、割り込み信号のアサートに応答して、外部接続インタフェース１２０内のステータスレジスタ１２６のデータを読み取る（ステータスリード）。そして、内部ＣＰＵ１１０は、ステータスレジスタ１２６の内容を解析する。受信用ＦＩＦＯがデータフルであることが示されていれば処理がステップＳ１６に進められ、受信用レジスタ１２３にデータ終了情報等のデータが設定されたことが示されていれば処理がステップＳ１７に進められる。
【００６３】
［ステップＳ１６］内部ＣＰＵ１１０は、受信用ＦＩＦＯに書き込まれたデータを読み取る。具体的には、ステータスレジスタ１２６の第３ビットと第２ビットとに「１０」が設定されていた場合、内部ＣＰＵ１１０はＡ面の受信用ＦＩＦＯ１２１ａからデータを取得する。ステータスレジスタ１２６の第５ビットと第４ビットとに「１０」が設定されていた場合、内部ＣＰＵ１１０はＢ面の受信用ＦＩＦＯ１２１ｂからデータを取得する。
【００６４】
なお、受信用ＦＩＦＯ内のデータが内部ＣＰＵ１１０で読み取られると、コントロールブロック１２７により、その受信用ＦＩＦＯがデータ無しであることを示す値が、ステータスレジスタ１２６に設定される。具体的には、Ａ面の受信用ＦＩＦＯ１２１ａからデータが読み取られた場合、ステータスレジスタ１２６の第３ビットと第２ビットとに、「００」の値が設定される。また、Ｂ面の受信用ＦＩＦＯ１２１ｂからデータが読み取られた場合、ステータスレジスタ１２６の第５ビットと第４ビットとに、「００」の値が設定される。
【００６５】
その後、処理はステップＳ１１に進められ、外部ホスト２００から受信用ＦＩＦＯへの書き込みが続行される。
［ステップＳ１７］内部ＣＰＵ１１０は、受信用レジスタ１２３の内容を読み取る。受信用レジスタ１２３に書き込まれた内容が、データ終了情報であれば処理がステップＳ１８に進められる。データ終了情報以外の通信制御情報が受信用レジスタ１２３に書き込まれていれば、処理がステップＳ１１に進められ、外部ホスト２００から受信用ＦＩＦＯへの書き込みが続行される。
【００６６】
［ステップＳ１８］内部ＣＰＵ１１０は、受信データのデータ終了情報を取得した場合、データの有る受信用ＦＩＦＯからデータを読み取る。２つの受信用ＦＩＦＯ１２１ａ，１２１ｂのどちらに有効なデータが格納されているのかは、ステータスレジスタ１２６の設定値に基づいて判断することができる。具体的には、ステータスレジスタ１２６の第３ビットと第２ビットとに「０１」が設定されていれば、Ａ面の受信用ＦＩＦＯ１２１ａに有効なデータが格納されている。また、ステータスレジスタ１２６の第５ビットと第４ビットとに「０１」が設定されていれば、Ｂ面の受信用ＦＩＦＯ１２１ｂに有効なデータが格納されている。
【００６７】
このように受信用レジスタ１２３を介して通信制御情報の受け渡しを行うことにより、受信用ＦＩＦＯ１２１ａ，１２１ｂに格納されたデータ内容を逐一解析する必要が無くなる。その結果、外部ホスト２００からのデータ受信を効率よく行うことができる。
【００６８】
図７は、データ送信時の処理手順を示すフローチャートである。以下、図７に示す処理をステップ番号に沿って説明する。
［ステップＳ２１］外部接続インタフェース１２０の内部ＣＰＵ１１０は、送信用ＦＩＦＯ１２２にデータを書き込む。外部ホスト２００に対して送信すべき他の通信制御情報があれば、処理がステップＳ２２に進められる。通信制御情報がなければ処理がステップＳ２３に進められる。
【００６９】
なお、送信用ＦＩＦＯ１２２にデータの書き込みが開始されると、コントロールブロック１２７により、送信用ＦＩＦＯ１２２に有効なデータが有ることを示す情報がステータスレジスタ１２６に設定される。具体的には、ステータスレジスタ１２６の第７ビットと第６ビットとに「０１」が設定される。
【００７０】
［ステップＳ２２］内部ＣＰＵ１１０は、送信用レジスタ１２４に通信制御情報を書き込む。このとき、コントロールブロック１２７は、ステータスレジスタ１２６に、送信用レジスタ１２４にデータ終了情報等の通信制御情報が設定されたことを示す値を設定する。具体的には、ステータスレジスタ１２６の第１ビットに「１」が設定される。
【００７１】
［ステップＳ２３］コントロールブロック１２７は、データ送信要求信号をアサートする。
［ステップＳ２４］外部ホスト２００は、データ送信要求信号がアサートされると、送信用ＦＩＦＯ１２２内のデータをリードする。データリード後、送信用ＦＩＦＯ１２２内にデータが無くなれば（Empty)、データ送信処理が終了する。送信用ＦＩＦＯ１２２内にデータがあれば（not Empty)、処理がステップＳ２３に進められデータ送信処理が実行される。
【００７２】
［ステップＳ２５］外部ホスト２００は、データ送信要求信号がアサートされている間、定期的に送信用レジスタ１２４の内容をリードする。そして、外部ホスト２００は、送信用レジスタ１２４内に管理情報が格納されていれば、その管理情報に応じた処理を行う。その後、送信用ＦＩＦＯ１２２内にデータが無くなれば（Empty)、データ送信処理が終了する。送信用ＦＩＦＯ１２２内にデータがあれば（not Empty)、処理がステップＳ２３に進められデータ送信処理が実行される。
【００７３】
図８は、内部バスの信号の構成例を示す図である。内部バス１５０には、９種類の信号線が設けられている。
端子名が「MCLK0」の信号線で通信される信号の名称は「クロック信号」であり、外部接続インタフェース１２０への入力信号である。この信号線は、同期用のクロック信号の入力に使用される。
【００７４】
端子名が「RSTXI」の信号線で通信される信号の名称は「リセット信号」であり、外部接続インタフェース１２０への入力信号である。この信号線は、リセット信号の入力に使用される。
【００７５】
端子名が「A0[3:0]」の信号線で通信される信号の名称は「アドレスバス」であり、外部接続インタフェース１２０への入力信号である。この信号線は、アドレス信号の入力に使用される。
【００７６】
端子名が「DO[31:0]」の信号線で通信される信号の名称は「ライトデータバス」であり、外部接続インタフェース１２０への入力信号である。この信号線は、ライトデータの入力に使用される。
【００７７】
端子名が「DI[31:0]」の信号線で通信される信号の名称は「リードデータバス」であり、外部接続インタフェース１２０からの出力信号である。この信号線は、リードデータの出力に使用される。
【００７８】
端子名が「RDX0」の信号線で通信される信号の名称は「リードストローブ信号」であり、外部接続インタフェース１２０への入力信号である。この信号線は、リードストローブ信号の入力に使用される。なお、リードストローブ信号は、Lowアクティブの信号である。
【００７９】
端子名が「WRX0[3:0]」の信号線で通信される信号の名称は「ライトストローブ信号」であり、外部接続インタフェース１２０への入力信号である。この信号線は、ライトストローブ信号の入力に使用される。なお、ライトストローブ信号は、Lowアクティブの信号である。
【００８０】
端子名が「CSX」の信号線で通信される信号の名称は「チップセレクト信号」であり、外部接続インタフェース１２０への入力信号である。この信号線は、チップセレクト信号の入力に使用される。なお、チップセレクト信号は、Lowアクティブの信号である。
【００８１】
端子名が「INT」の信号線で通信される信号の名称は「割り込み信号」であり、外部接続インタフェース１２０からの出力信号である。この信号線は、割り込み信号の出力に使用される。なお、割り込み信号は、highアクティブの信号である。
【００８２】
図９は、外部接続バスの信号構成例を示す図である。外部接続バス１０には、９種類の信号線が設けられている。
端子名が「EX＿DI[15:0]」の信号線で通信される信号の名称は「入力データバス」であり、外部接続インタフェース１２０への入力信号である。この信号線は、外部ホスト２００からのデータ入力に使用される。
【００８３】
端子名が「EX＿DO[15:0]」の信号線で通信される信号の名称は「出力データバス」であり、外部接続インタフェース１２０からの出力信号である。この信号線は、外部ホスト２００へのデータ出力に使用される。
【００８４】
端子名が「EX＿DOE」の信号線で通信される信号の名称は「データバス方向切り替え信号」であり、外部接続インタフェース１２０からの出力信号である。この信号線は、データバス方向切り替え信号の出力に使用される。
【００８５】
端子名が「EX＿CSX」の信号線で通信される信号の名称は「チップセレクト信号」であり、外部接続インタフェース１２０への入力信号である。この信号線は、チップセレクト信号の入力に使用される。なお、チップセレクト信号は、Lowアクティブの信号である。
【００８６】
端子名が「EX＿A」の信号線で通信される信号の名称は「アドレス信号」であり、外部接続インタフェース１２０への入力信号である。この信号線は、アドレス信号の入力に使用される。なお、アドレス信号は、値が「０」のときレジスタ選択を示し、値が「１」のときＦＩＦＯ選択を示す。
【００８７】
端子名が「EX＿RDX」の信号線で通信される信号の名称は「リードストローブ信号」であり、外部接続インタフェース１２０への入力信号である。この信号線は、リードストローブ信号の入力に使用される。なお、リードストローブ信号は、Lowアクティブの信号である。
【００８８】
端子名が「EX＿WRX」の信号線で通信される信号の名称は「ライトストローブ信号」であり、外部接続インタフェース１２０への入力信号である。この信号線は、ライトストローブ信号の入力に使用される。なお、ライトストローブ信号は、Lowアクティブの信号である。
【００８９】
端子名が「RX＿DRQX」の信号線で通信される信号の名称は「受信データ要求信号」であり、外部接続インタフェース１２０からの出力信号である。この信号線は、受信データ要求信号の出力に使用される。なお、受信データ要求信号は、Lowアクティブの信号である。受信データ要求信号は、何れかの受信用ＦＩＦＯ１２１ａ，１２１ｂがデータフルになるまで”Low”レベルにアサートされる。
【００９０】
端子名が「TX＿DRQX」の信号線で通信される信号の名称は「送信データ要求信号」であり、外部接続インタフェース１２０からの出力信号である。この信号線は、送信データ要求信号の出力に使用される。なお、送信データ要求信号は、Lowアクティブの信号である。送信データ要求信号は、送信用レジスタ１２４および送信用の内蔵ＲＡＭに読み出し可能なデータが有る場合、送信用ＦＩＦＯ１２２がデータフルになるまで”Low”レベルにアサートされる。
【００９１】
このような信号を用いて、外部ホスト２００と内部ＣＰＵ１１０との間のデータ通信が行われる。以下に、外部ホスト２００からのデータを受信する場合と、外部ホスト２００に対してデータを送信する場合とについて、タイミングチャートを参照して説明する。
【００９２】
図１０は、データ受信の際のタイミングチャートである。図１０では、内部バス１５０で供給されるクロック信号(MCLKO)の下に外部接続バス１０の信号が示されており、その下に内部バス１５０の信号が示されている。
【００９３】
外部接続バス１０の信号としては、受信データ要求信号(RX＿DRQX)、アドレス信号(EX＿A)、チップセレクト信号(EX＿CSX)、ライトストローブ信号(EX＿WRX)、リードストローブ信号(EX＿RDX)、データバス１１が示されている。内部バス１５０の信号としては、割り込み信号(INT)、アドレスバス(AO[3:0])、チップセレクト信号(CSX)、リードストローブ信号(RDXO)、リードデータバス(DI[31:0])が示されている。また、情報処理ユニット１００内部の状態として、受信用レジスタ入力ステータス(RX＿REG＿IN)と受信用レジスタ１２３の値とが示されている。
【００９４】
なお、図１０において、割り込み信号はハイアクティブであり、他の信号はローアクティブである。また、外部側のアドレス信号（EX＿A）はLowの時レジスタを選択し、Highの時ＦＩＦＯを選択している。受信用レジスタ入力ステータス(RX＿REG＿IN)とは、ステータスレジスタ１２６の第０ビットの値である。
【００９５】
また、受信用ＦＩＦＯ１２１ａ，１２１ｂがフルとなったとき、割り込み信号が発生する。その時、内部ＣＰＵ１１０は、ステータスレジスタ１２６の内容を読み取ることによりＦＩＦＯがデータフルであることを認識し、受信用ＦＩＦＯ１２１ａ，１２１ｂの読み取りを開始する。受信データ要求信号は、受信用ＦＩＦＯ１２１ａ，１２１ｂにデータが書き込める場合（フルでない場合）、常にアサートし続けられる。
【００９６】
以下に、図１０に示す信号の遷移を時系列で説明する。
まず、時刻ｔ１に、外部ホスト２００において内部ＣＰＵ１１０に渡すべきデータが発生し、外部接続バス１０にアドレス信号(EX＿A)で受信用レジスタ１２３が指定される。
【００９７】
時刻ｔ２（時刻ｔ１の１周期後）に、チップセレクト信号(EX＿CSX)とライトストローブ信号(EX＿WRX)とがアサートされると共に、外部ホスト２００からデータバス１１へ通信制御情報が出力される。
【００９８】
時刻ｔ３（時刻ｔ２の１周期後）に、内部バス１５０の割り込み信号(INT)がアサートされる。このとき、ステータスレジスタ１２６の受信用レジスタ入力ステータス(RX＿REG＿IN)が、「０」（受信用レジスタ１２３に未読データ無し）から「１」（受信用レジスタ１２３に未読データ有り）に変更される。同時に、受信用レジスタ１２３に通信制御情報が格納される。
【００９９】
時刻ｔ４（時刻ｔ３の１周期後）に、チップセレクト信号(EX＿CSX)とライトストローブ信号(EX＿WRX)とがネゲートされる。このとき、外部ホスト２００からの通信データの出力は停止する。
【０１００】
時刻ｔ５（時刻ｔ４の１周期後）に、内部ＣＰＵ１１０は、内部バス１５０のアドレスバス(AO[3:0])に、ステータスレジスタ１２６のアドレスを出力する。
時刻ｔ６（時刻ｔ５の１周期後）に、内部ＣＰＵ１１０により、チップセレクト信号(CSX)とリードストローブ信号(RDXO)とがアサートされる。
【０１０１】
時刻ｔ７（時刻ｔ６の１周期後）に、ステータスレジスタ１２６の内容がリードデータバス(DI[31:0])に出力される。このとき、ステータスレジスタ１２６内の受信用レジスタ入力ステータス(RX＿REG＿IN)は「１」に設定されている。ステータスレジスタ１２６の内容のリードが行われたことにより、割り込み信号(INT)はネゲートされる。
【０１０２】
時刻ｔ８（時刻ｔ７の１周期後）に、チップセレクト信号(CSX)とリードストローブ信号(RDXO)とがネゲートされる。
時刻ｔ９（時刻ｔ８の１周期後）に、内部ＣＰＵ１１０は、受信用レジスタ１２３内に未読データが存在していることを認識し、アドレスバス(AO[3:0])に、受信用レジスタ１２３のアドレスを出力する。このとき、リードデータバス(DI[31:0])へのステータスレジスタ１２６の内容の出力が停止され、ステータスレジスタ１２６の受信用レジスタ入力ステータス(RX＿REG＿IN)に「０」が設定される。
【０１０３】
時刻ｔ１０（時刻ｔ９の１周期後）に、チップセレクト信号(CSX)とリードストローブ信号(RDXO)とがアサートされる。
時刻ｔ１１（時刻ｔ１０の１周期後）に、受信用レジスタ１２３の内容がリードデータバス(DI[31:0])に出力される。これにより、受信用レジスタ１２３に格納された通信データが内部ＣＰＵ１１０に渡される。
【０１０４】
時刻ｔ１２（時刻ｔ１１の１周期後）に、チップセレクト信号(CSX)とリードストローブ信号(RDXO)とがネゲートされる。
時刻ｔ１３（時刻ｔ１２の１周期後）に、内部ＣＰＵ１１０によるアドレスバス(AO[3:0])への受信用レジスタ１２３のアドレス出力が停止すると共に、外部接続インタフェース１２０によるリードデータバス(DI[31:0])への受信用レジスタ１２３の内容の出力が停止する。
【０１０５】
次に、データ送信時の処理について説明する。
図１１は、データ送信の際のタイミングチャートである。図１１では、内部バス１５０で供給されるクロック信号(MCLKO)の下に外部接続バス１０の信号が示されており、その下に内部バス１５０の信号が示されている。
【０１０６】
外部接続バス１０の信号としては、送信データ要求信号(TX＿DRQX)、アドレス信号(EX＿A)、チップセレクト信号(EX＿CSX)、ライトストローブ信号(EX＿WRX)、リードストローブ信号(EX＿RDX)、データバス１１が示されている。内部バス１５０の信号としては、アドレスバス(AO[3:0])、チップセレクト信号(CSX)、ライトストローブ信号(WRXO[3:0])、リートストローブ信号(RDXO)、ライトデータバス(DO[31:0])、リードデータバス(DI[31:0])、割り込み信号(INT)が示されている。また、情報処理ユニット１００内部の状態として、送信用レジスタ１２４の値と送信用レジスタ出力ステータス(TX＿REG＿OUT)の値が示されている。
【０１０７】
なお、図１１において、割り込み信号(INT)はハイアクティブ（１の時有効）であり、他の信号は全てローアクティブ（０の時有効）である。外部接続バス１０のアドレス信号（EX＿A）はLowの時レジスタを選択し、Highの時送信用ＦＩＦＯ１２２を選択している。送信用レジスタステータスとは、ステータスレジスタ１２６の第１ビットの値である。送信データ要求信号(TX＿DRQX)は、送信用レジスタ１２４に未送信のデータがある時と、送信用ＦＩＦＯ１２２に送信可能なデータが存在する場合にアサートされる。ステータスレジスタ１２６の内容が読み出されることにより、送信用レジスタ出力ステータス(TX＿REG＿OUT)の値はクリアされる。送信用レジスタ１２４は、データがリードされると内部のデータを０クリアする。外部ホスト２００は、送信用レジスタ１２４のリード時に、レジスタ内部のデータが０でなければ新規送信データとして認識する。
【０１０８】
以下に、図１１に示す信号の遷移を時系列で説明する。
まず、時刻ｔ２１に、内部ＣＰＵ１１０により、アドレスバス(AO[3:0])に送信用レジスタ１２４のアドレスが出力されると共に、データバス(DO[31:0])に通信データが出力される。このとき、送信用レジスタ１２４の値は「０」である。また、送信用レジスタ出力ステータス(TX＿REG＿OUT)の値も「０」である。
【０１０９】
時刻ｔ２２（時刻ｔ２１の１周期後）に、チップセレクト信号(CSX)とライトストローブ信号(WRXO[3:0])とがアサートされる。
時刻ｔ２３（時刻ｔ２２の１周期後）に、送信用レジスタ１２４に通信データが書き込まれる。すなわち、チップセレクト信号(CSX)とライトストローブ信号(WRXO[3:0])とがアサートされたことにより、アドレスバス(AO[3:0])で指定されたアドレス（送信用レジスタ１２４のアドレス）への通信データの書き込みが行われる。このとき、外部接続バス１０の送信データ要求信号(TX＿DRQX)がアサートされる。
【０１１０】
時刻ｔ２４（時刻ｔ２３の１周期後）に、チップセレクト信号(CSX)とライトストローブ信号(WRXO[3:0])とがネゲートされる。
時刻ｔ２５（時刻ｔ２４の１周期後）に、アドレスバス(AO[3:0])への送信用レジスタ１２４のアドレスの出力が停止されると共に、ライトデータバス(DO[31:0])への通信データの出力が停止される。
【０１１１】
時刻ｔ２６（時刻ｔ２５の１周期後）に、外部接続バス１０のチップセレクト信号(EX＿CSX)とリードストローブ信号(EX＿RDX)とがアサートされる。
時刻ｔ２７（時刻ｔ２６の１周期後）に、データバス１１に対して、送信用レジスタ１２４に格納されていた通信データが出力され、送信データ要求信号(TX＿DRQX)がネゲートされる。
【０１１２】
時刻ｔ２８（時刻ｔ２７の１周期後）に、外部接続バス１０のチップセレクト信号(EX＿CSX)とリードストローブ信号(EX＿RDX)とがネゲートされる。また、データバス１１に通信データが出力されたことにより、内部ＣＰＵ１１０に対して割り込み信号(INT)がアサートされる。
【０１１３】
時刻ｔ２９（時刻ｔ２８の１周期後）に、送信用レジスタ１２４が０クリアされ、送信用レジスタ出力ステータス(TX＿REG＿OUT)に１が設定される。このとき、外部接続バス１０のデータバス１１への通信データの出力が停止される。
【０１１４】
時刻ｔ３０（時刻ｔ２９の２周期後）に、内部ＣＰＵ１１０により、アドレスバス(AO[3:0])にステータスレジスタ１２６のアドレスが出力される。
時刻ｔ３１（時刻ｔ３０の１周期後）に、チップセレクト信号(CSX)とリードストローブ信号(RDXO)とがアサートされる。
【０１１５】
時刻ｔ３２（時刻ｔ３１の１周期後）に、リードデータバス(DI[31:0])にステータスレジスタ１２６のデータが出力される。これにより、内部ＣＰＵ１１０において、ステータスレジスタ１２６の値が読み込まれる。このとき、割り込み信号(INT)がネゲートされる。
【０１１６】
時刻ｔ３３（時刻ｔ３２の１周期後）に、チップセレクト信号(CSX)とリードストローブ信号(RDXO)とがネゲートされる。
時刻ｔ３４（時刻ｔ３３の１周期後）に、アドレスバス(AO[3:0])へのステータスレジスタ１２６のアドレス出力、およびリードデータバス(DI[31:0])へのデータ出力が停止される。このとき、ステータスレジスタ１２６の値が内部ＣＰＵ１１０で読み込まれたことにより、送信用レジスタ出力ステータス(TX＿REG＿OUT)が０にクリアされる。
【０１１７】
以上のようにして、外部接続インタフェース１２０を介して外部ホスト２００と内部ＣＰＵ１１０との間でデータ通信が行われる。このとき、ＦＩＦＯ以外に、受信用レジスタ１２３や送信用レジスタ１２４が設けられ、これらのレジスタを介して管理情報（データ終了情報等）の受け渡しができる。これにより、ＦＩＦＯを介して通信されるデータの内容を逐次解析する必要が無くなり、内部ＣＰＵ１１０等にかかる処理付加が軽減される。内部ＣＰＵ１１０は、処理負荷が軽減した分の処理能力を、暗号化／復号等の他の処理に振り当てることができる。
【０１１８】
なお、本実施の形態を実現するためには、外部ホスト２００がデータの送受信を行う際のアドレス指定を、ＦＩＦＯとレジスタとの間で適宜切り替える必要がある。以下に、外部ホスト２００がデータ通信を行う際の処理手順について説明する。
【０１１９】
図１２は、外部ホストにおけるデータ受信手順を示すフローチャートである。以下、図１２に示す処理をステップ番号に沿って説明する。
［ステップＳ３１］外部ホスト２００は、送信データ要求信号(TX＿DRQX)がアサートされているか否かを判断する。アサートされていれば処理がステップＳ３２に進められる。アサートされていなければステップＳ３１の処理が繰り返される。
【０１２０】
［ステップＳ３２］外部ホスト２００は、送信用レジスタ１２４のアドレスと送信用ＦＩＦＯ１２２のアドレスとの何れかを選択する。どちらのアドレスを選択するのかは、予め設定された規則に従って決定する。たとえば、送信用レジスタ１２４のデータを参照する周期が決定されており、その周期毎に送信用レジスタ１２４のアドレスを選択し、それ以外のタイミングでは送信用ＦＩＦＯ１２２のアドレスを選択する。
【０１２１】
［ステップＳ３３］外部ホスト２００は、選択されたアドレスのデータを受信する。送信用レジスタ１２４のアドレスが選択されたのであれば、送信用レジスタ１２４内のデータを受信し、送信用ＦＩＦＯ１２２のアドレスが選択されたのであれば、送信用ＦＩＦＯ１２２のデータを受信する。その後、処理がステップＳ３１に進められる。
【０１２２】
以上のようにして、外部ホスト２００は、送信データ要求信号(TX＿DRQX)がアサートされている間、外部ホスト２００は、定期的に送信用レジスタ１２４をリードする。なお、情報処理ユニット１００から外部ホスト２００へ送信するデータが無くなれば、送信データ要求信号(TX＿DRQX)がネゲートされ、外部ホスト２００から送信用レジスタ１２４や送信用ＦＩＦＯ１２２への読み取りアクセスは中断する。
【０１２３】
図１３は、外部ホストにおけるデータ送信手順を示すフローチャートである。以下、図１３に示す処理をステップ番号に沿って説明する。
［ステップＳ４１］外部ホスト２００は、受信データ要求信号(RX＿DRQX)がアサートされているか否かを判断する。受信データ要求信号がアサートされていれば、処理がステップＳ４２に進められる。受信データ要求信号がアサートされていなければ、ステップＳ４１の処理が繰り返される。
【０１２４】
［ステップＳ４２］外部ホスト２００は、受信用レジスタ１２３のアドレスと受信用ＦＩＦＯ１２１ａ，１２１ｂのアドレスとの何れかを選択する。どちらのアドレスを選択するのかは、送信すべきデータの内容に応じて決定する。たとえば、内部ＣＰＵ１１０に渡すべき実データを送信する場合、受信用ＦＩＦＯ１２１ａ，１２１ｂのアドレスを選択する。そして、実データの送信が終了し、データ終了情報を送信する場合、受信用レジスタ１２３のアドレスを選択する。
【０１２５】
［ステップＳ４３］外部ホスト２００は、選択されたアドレス宛にデータを送信する。受信用レジスタ１２３のアドレスが選択されたのであれば、受信用レジスタ１２３へデータを送信し、受信用ＦＩＦＯ１２１ａ，１２１ｂのアドレスが選択されたのであれば、受信用ＦＩＦＯ１２１ａ，１２１ｂへデータを送信する。その後、処理がステップＳ４１に進められる。
【０１２６】
以上のようにして、外部ホスト２００は、受信データ要求信号(RX＿DRQX)がアサートされている場合、受信用ＦＩＦＯ１２１ａ，１２１ｂや受信用レジスタ１２３にデータを格納することができる。たとえば、一連のデータをリードする。なお、情報処理ユニット１００から外部ホスト２００へ送信するデータが無くなれば、送信データ要求信号(TX＿DRQX)がネゲートされ、外部ホスト２００から送信用レジスタ１２４や送信用ＦＩＦＯ１２２への読み取りアクセスは中断する。
【０１２７】
なお、外部ホスト２００における図１２、図１３に示した処理機能は、予め用意されたプログラムを外部ホスト２００内のＣＰＵが実行することで実現することができる。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ(Digital Versatile Disc)、ＤＶＤ−ＲＡＭ(Random Access Memory)、ＣＤ−ＲＯＭ(Compact Disc Read Only Memory)、ＣＤ−Ｒ(Recordable)／ＲＷ(ReWritable)などがある。光磁気記録媒体には、ＭＯ(Magneto-Optical disc)などがある。
【０１２８】
プログラムを流通させる場合には、たとえば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１２９】
プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０１３０】
以上説明したように、本発明の実施の形態では、外部インタフェース部分に送信用ＦＩＦＯ（TX＿FIFO）、受信用ＦＩＦＯ（RX＿FIFO）と共に送信用レジスタ（TX＿REG）、受信用レジスタ（RX＿FIFO）を設けることにより外部との通信を可能にしている。外部ホスト２００から受信用レジスタ１２３に通信制御情報が書き込まれると、割り込み信号がアサートされることで、内部ＣＰＵ１１０は受信用レジスタ１２３への書き込みを認識できる。また、送信用レジスタ１２４への書き込み時は、書き込まれることで外部へのデータ送信要求信号をアサートすることにより、外部ホスト２００は送信用レジスタ１２４にデータが書き込まれたことを認識できる。送信用レジスタ１２４のデータが既に読み込まれたものであるかどうかは、送信用レジスタ１２４内のデータをリードクリアすることで判別可能となる。
【０１３１】
このように、データ送受信の終了などの通信に必要となる情報を、レジスタでやりとりすることで、ＦＩＦＯ内部のデータを解析する必要がなく、内部ＣＰＵ１１０の負荷が軽減される。すなわち、通信の状況に応じて、外部ホスト２００もしくは内部ＣＰＵ１１０は、通信する内容等の情報を相手に伝える必要がある。この時、データ送信側がアドレス信号（EX＿A or AO）でレジスタを選択し、データを書き込むことにより、通信制御情報をＦＩＦＯを介さず相手に送ることが出来る。このことにより、内部ＣＰＵ１１０はレジスタからのデータを通信制御情報であると認識すればよく、ＦＩＦＯのデータが通信制御情報かデータかを解析する必要はなくなる。従って内部ＣＰＵ１１０の負荷は軽減され、より良いパフォーマンスが期待できる。
【０１３２】
また、データ送受信中にレジスタを通じて任意の情報を交換することが出来る。すなわち、従来の外部接続インタフェースでは、ＦＩＦＯのデータ内に通信制御情報が格納されるので、データを読み込んでからでないと情報のやりとりが出来ない構造となっていた。一方、本実施の形態ではレジスタに通信制御情報が格納されると内部ＣＰＵ１１０に対して割り込みが発生するため、遅延無く、通信制御情報が内部ＣＰＵ１１０に渡される。その結果、データ送受信の途中でも外部ホスト２００と内部ＣＰＵ１１０間の迅速な情報の送受信が可能である。
【０１３３】
このような、ＦＩＦＯとは別に設けられたレジスタにより通信制御情報を送受信することで、通信データの転送効率を下げずに、他の情報を受け渡すことが可能となる。したがって、ネットワーク等のデータがストリームとして流れている場合に特に効果が大きくなる。たとえば、動画像データのストリーム配信を行いながら、そのストリームの転送効率を低下させずに、通信制御情報の受け渡しが可能である。
【０１３４】
また、レジスタにデータ終了情報を格納することで、ＦＩＦＯのデータをリードしなくても、送受信の終了が判定できる。そのため、例えば１ポートＲＡＭを使用したＦＩＦＯの場合、データがフルとならなくてもＦＩＦＯへのデータ書き込みを止め、データを読み出す判断が可能となる。すなわち、従来技術では、１ポートＲＡＭを用いたＦＩＦＯでは、データがフルとなってからでないと割り込み信号もしくはデータ送受信要求信号がアサートされない。そのためデータの受信側ではＦＩＦＯがデータフルになるまでリードすることができない。一方、本実施の形態では、データ送受信終了となり、ＦＩＦＯフルとなっていない状況でもレジスタにデータ終了情報を書き込むことにより、最後のデータが格納されたことが内部ＣＰＵ１１０に通知される。その結果、ＦＩＦＯがデータフルにならなくても、ＦＩＦＯからのデータの読み込みを開始することが可能となる。
【０１３５】
なお、送信用レジスタ１２４をフリーのレジスタとして使用することもできる。送信用レジスタ１２４を用いて、例えば受信用ＦＩＦＯ１２１ａ，１２１ｂ内の書き込み可能バイト数などの自由なデータを外部ホスト２００へと送ることができる。これにより、外部接続インタフェース１２０の利用範囲が広がると共に、円滑なデータ通信を行うことが可能となる。
【０１３６】
同様に、受信用レジスタ１２３をフリーのレジスタとして使用することができる。受信用レジスタ１２３を用いて、例えば外部ホスト２００側からの送信データサイズなどの自由なデータを送ることができる。これにより、外部接続インタフェース１２０の利用範囲が広がると共に、円滑なデータ通信を行うことが可能となる。
【０１３７】
（付記１）  第１のバスと第２のバスとの間のデータ通信を制御するバス間通信インタフェース装置において、
前記第１のバスに接続された第１の装置から送られた通信データを格納するバッファと、
前記通信データに関する通信制御情報を格納するレジスタと、
前記バッファに格納された前記通信データを前記第２のバスに接続された第２の装置に渡すと共に、前記レジスタに格納された前記通信制御情報を前記第２の装置に渡す制御回路と、
を有することを特徴とするバス間通信インタフェース装置。
【０１３８】
（付記２）  前記バッファは、先に格納したデータを先に出力する方式のバッファであることを特徴とする付記１記載のバス間通信インタフェース装置。
（付記３）  前記バッファは、複数のバッファ領域を有しており、それぞれのバッファ領域を交互に前記通信データの格納対象とすることを特徴とする付記１記載のバス間通信インタフェース装置。
【０１３９】
（付記４）  前記制御回路は、前記レジスタに前記通信制御情報が格納されると、前記第２の装置に対して割り込み信号を出力することを特徴とする付記１記載のバス間通信インタフェース装置。
【０１４０】
（付記５）  前記レジスタ内の未送信データの有無を示す情報を格納するステータスレジスタを更に有し、
前記制御回路は、前記レジスタに新たなデータが格納されたとき、および前記第２の装置により前記バッファのデータが読み出されたとき、前記ステータスレジスタの情報を更新することを特徴とする付記１記載のバス間通信インタフェース装置。
【０１４１】
（付記６）  第１のバスと第２のバスとの間のデータ通信を制御するバス間通信インタフェース装置において、
前記第１のバスに接続された第１の装置から送られた第１の通信データを格納する第１のバッファと、
前記第１の通信データに関する第１の通信制御情報を格納する第１のレジスタと、
前記第２のバスに接続された第２の装置から送られた第２の通信データを格納する第２のバッファと、
前記第２の通信データに関する第２の通信制御情報を格納する第２のレジスタと、
前記第１のバッファに格納された前記第１の通信データを前記第２の装置に渡すと共に、前記第１のレジスタに格納された前記第１の通信制御情報を前記第２の装置に渡し、更に前記第２のバッファに格納された前記第２の通信データを前記第１の装置に渡すと共に、前記第２のレジスタに格納された前記第２の通信制御情報を前記第１の装置に渡す制御回路と、
を有することを特徴とするバス間通信インタフェース装置。
【０１４２】
（付記７）  外部接続バスを介して接続された外部ホスト装置と連携した情報処理を行う情報処理ユニットにおいて、
内部ＣＰＵと、
前記外部ホスト装置から送られた受信データを格納する受信用バッファと、
前記受信データに関する受信用通信制御情報を格納する受信用レジスタと、
内部バスを介して前記内部ＣＰＵから送られた送信データを格納する送信用バッファと、
前記送信データに関する送信用通信制御情報を格納する送信用レジスタと、
前記受信用バッファに格納された前記受信データを前記内部ＣＰＵに渡すと共に、前記受信用レジスタに格納された前記受信用通信制御情報を前記内部ＣＰＵに渡し、更に前記送信用バッファに格納された前記送信データを前記外部ホスト装置に渡すと共に、前記送信用レジスタに格納された前記送信用通信制御情報を前記外部ホスト装置に渡す制御回路と、
を有することを特徴とする情報処理ユニット。
【０１４３】
（付記８）  前記制御回路は、前記受信用バッファが前記受信データで満たされたとき、および前記受信用レジスタに前記受信用通信制御情報が格納されたとき、前記内部ＣＰＵに対して割り込み信号を出力することを特徴とする付記７記載の情報処理ユニット。
【０１４４】
（付記９）  前記受信用レジスタ内の未送信データの有無を示す情報を格納するステータスレジスタを更に有し、
前記制御回路は、前記レジスタに新たなデータが格納されたとき、および前記第２の装置により前記バッファのデータが読み出されたとき、前記ステータスレジスタの情報を更新し、
前記内部ＣＰＵは、前記割り込み信号を受け取ると前記ステータスレジスタの内容を参照することを特徴とする付記８記載の情報処理ユニット。
【０１４５】
（付記１０）  前記制御回路は、前記受信用バッファまたは前記受信用レジスタにデータが格納されたとき、前記外部ホスト装置に対して、送信データの受取を要求する送信データ要求信号を出力することを特徴とする付記７記載の情報処理ユニット。
【０１４６】
（付記１１）  特定の情報処理を実行する情報処理ユニットと連携した処理を実行する外部ホスト装置において、
前記情報処理ユニットから送信データの受取を要求する送信データ要求信号が出力されている場合、前記情報処理ユニット内の送信バッファのアドレスを指定して送信データの読み込みを行うと共に、前記情報処理ユニット内の送信用レジスタのアドレスを指定して送信用通信制御情報の読み込みを行うデータ読み込み手段と、
前記情報処理ユニットからデータの受信可能を示す受信データ要求信号が出力されている場合、前記情報処理ユニット内の受信バッファのアドレスを指定して受信データの書き込みを行うと共に、前記情報処理ユニット内の受信用レジスタのアドレスを指定して受信用通信制御情報の書き込みを行うデータ書き込み手段と、
を有することを特徴とする外部ホスト装置。
【０１４７】
（付記１２）  前記データ書き込み手段は、前記受信データの書き込みが完了したとき、前記受信用通信制御情報として、前記受信データの書き込みが終了したことを通知するデータ終了情報の書き込みを行うことを特徴とする付記１１記載の外部ホスト装置。
【０１４８】
（付記１３）  第１のバスに接続された第１の装置と第２のバスに接続された第２の装置との間のデータ通信を、バス間通信インタフェース装置を介して行うためのバス間通信制御方法において、
前記第１の装置が、前記第２の装置に渡すべき通信データを、前記バス間通信インタフェース装置内のバッファに格納し、
前記第１の装置が、前記通信データに関する通信制御情報を、前記バス間通信インタフェース装置内のレジスタに格納し、
前記バス間通信インタフェース装置が、前記バッファに前記通信データが満たされたとき、および前記レジスタに前記通信制御情報が格納されたときに、前記第２の装置に対して割り込み信号を出力し、
前記第２の装置が、前記割り込み信号に応答して前記バッファ内の前記通信データまたは、前記レジスタ内の前記通信制御情報を読み込む、
ことを特徴とするバス間通信制御方法。
【０１４９】
（付記１４）  前記第１の装置は、前記通信制御情報として、前記通信データの書き込みが終了したことを通知するデータ終了情報を書き込み、
前記第２の装置は、前記データ終了情報を読み込むことで、前記通信データの終了を認識することを特徴とするバス間通信制御方法。
【０１５０】
【発明の効果】
以上説明したように本発明では、通信データをバッファを介して転送し、通信制御情報をレジスタを介して転送するようにしたため、通信データの内容を解析することなく通信制御情報の受け渡しが可能となり、通信データの送受信を効率よく行うことができる。
【図面の簡単な説明】
【図１】  実施の形態に適用される発明の概念図である。
【図２】  本発明の実施の形態に係る装置のハードウェア構成を示す図である。
【図３】  外部接続インタフェースの内部構成例を示す図である。
【図４】  ステータスレジスタのデータ構造例を示す第１の図である。
【図５】  ステータスレジスタのデータ構造例を示す第２の図である。
【図６】  データ受信時の処理手順を示すフローチャートである。
【図７】  データ送信時の処理手順を示すフローチャートである。
【図８】  内部バスの信号の構成例を示す図である。
【図９】  外部接続バスの信号構成例を示す図である。
【図１０】  データ受信の際のタイミングチャートである。
【図１１】  データ送信の際のタイミングチャートである。
【図１２】  外部ホストにおけるデータ受信手順を示すフローチャートである。
【図１３】  外部ホストにおけるデータ送信手順を示すフローチャートである。
【図１４】  内部ＣＰＵにおける外部ホストからのデータの受信方法を示す概念図である。
【図１５】  内部ＣＰＵにおける外部ホストからのデータの受信手順を示すフローチャートである。
【図１６】  内部ＣＰＵにおける外部ホストへのデータの送信方法を示す概念図である。
【図１７】  内部ＣＰＵにおける外部ホストへのデータの送信手順を示すフローチャートである。
【符号の説明】
１  バス間通信インタフェース装置
１ａ  バッファ
１ｂ  レジスタ
１ｃ  制御回路
２  第１の装置
３  第２の装置
４  第１のバス
５  第２のバス
１０  外部接続バス
１００  情報処理ユニット
１１０  内部ＣＰＵ
１２０  外部接続インタフェース
１３０，１４０  周辺回路
２００  外部ホスト
【図１】
0004514411.tif 000002
【図２】
0004514411.tif 000003
【図３】
0004514411.tif 000004
【図４】
0004514411.tif 000005
【図５】
0004514411.tif 000006
【図６】
0004514411.tif 000007
【図７】
0004514411.tif 000008
【図８】
0004514411.tif 000009
【図９】
0004514411.tif 000010
【図１０】
0004514411.tif 000011
【図１１】
0004514411.tif 000012
【図１２】
0004514411.tif 000013
【図１３】
0004514411.tif 000014
【図１４】
0004514411.tif 000015
【図１５】
0004514411.tif 000016
【図１６】
0004514411.tif 000017
【図１７】
0004514411.tif 000018