(57)【要約】【課題】  複数のバスにおいてバスマスタとは異なるバスに接続されているバススレーブが、データをデータリードごとに変更するデバイスについてのデバイスコントローラである場合であっても、デバイスからのデータを正確に読み出しつつ、バスマスタ側で、データライト要求に対するデータライトの完了を確実に検出する。【解決手段】  バスマスタ１２がバス１側に設けられ、ＩＯデバイス２３に対してデータライトおよびデータリードを実行するＩＯデバイスコントローラ２２が第２バス側に設けられ、ブリッジ１１，２１がバス１とバス２とを接続している。そして、書き込み完了通知器１３は、バス１側に設けられ、ＩＯデバイスコントローラ２２へのデータライト要求の後に、意図的にエラー発生させるための不良データリード要求をＩＯデバイスコントローラ２２へ発行する。【選択図】  図１
2011008727.tif 000002
【特許請求の範囲】
【請求項１】
第１バスと、
第２バスと、
前記第１バス側に設けられたバスマスタと、
前記第２バス側に設けられ、データをデータリードごとに変更するデバイスに対してデータライトおよびデータリードを実行するバススレーブと、
前記第１バスと前記第２バスとを接続し、前記第１バスから前記第２バスへデータライト要求およびデータリード要求を転送するブリッジと、
前記第１バス側に設けられ、前記バススレーブへのデータライト要求の後に、前記バススレーブにおいてエラーを発生させる不良データリード要求を前記バススレーブへ発行する不良データリード要求発行手段と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記バススレーブは、前記不良データリード要求を受け付けると、前記不良データリード要求により指定されたデータリードを実行せずに、前記バスマスタまたは前記第１バス側の他の装置に、エラー発生を通知することを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記不良データリード要求は、前記デバイスから読み出し可能なデータサイズとは異なるデータサイズでデータリードを実行させるための要求であることを特徴とする請求項１記載の情報処理装置。
【請求項４】
前記不良データリード要求は、前記デバイスに対して割り当てられているアドレスのうち、使用されていないアドレスについてデータリードを実行させるための要求であることを特徴とする請求項１記載の情報処理装置。
【請求項５】
前記不良データリード要求は、単位データの途中を指すアドレスについてデータリードを実行させるための要求であることを特徴とする請求項１記載の情報処理装置。
【請求項６】
前記デバイスは、データの送受を行う通信デバイスであることを特徴とする請求項１から請求項５のうちのいずれか１項記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置に関するものである。
【背景技術】
【０００２】
所定の処理を行う装置と処理を要求する装置とをバスで接続したバスシステムが、コンピュータなどの様々な機器で使用されている。処理を要求する装置はバスマスタと呼ばれ、処理を行う装置はバススレーブと呼ばれる。バスマスタには、例えばＣＰＵ（Central Processing Unit）やＤＭＡＣ（Direct Memory Access Controller）等がある。バスマスタとバススレーブとの通信は、バスマスタにより開始される。
【０００３】
一般的に、メモリコントローラなどのバススレーブは、バスマスタからデータライト要求があったときは、その要求を受け付けたことをバスを介してバスマスタに通知するが、データライトの処理が完了したことは通知しない。しかしながら、通常、１つのバス内では、同一のバスマスタからの同一アドレスに対するライト要求およびリード要求は、要求の発行順に処理されるため、バスマスタがあるアドレスへのデータのライト要求を発行した後、そのアドレスからのデータのリード要求を発行した場合、ライト要求によって書き込まれたデータが読み出される。
【０００４】
バスシステムには、複数のバスをブリッジにより接続したものがある。複数のバスのうちの１つにバスマスタが接続されており、複数のバスのうちの別の１つにバススレーブが接続されている場合、バスマスタ側のバス内においては、ライト要求およびリード要求の処理順序は発行順となるように保証されるが、同一アドレスに対するデータライト要求およびデータリード要求をバスマスタ側のバスからバススレーブ側のバスへブリッジ転送した場合、バススレーブ側のバスにおいては、データライトの完了後にデータリードが実行されることが保証されない。
【０００５】
このため、バスマスタ側のバスにおいて、バススレーブ側のバスでのデータライトおよびデータリードの順序を保証する必要がある。本出願人は、特許文献１において、このような問題を解消することができる技術を提案している。
【０００６】
特許文献１の技術では、バススレーブ側においてデータライトが完了したことをバスマスタ側で検出するために、最終のデータライト要求の発行後に、最終のデータライト要求と同一のアドレスに対して無意味なデータリード要求（つまり、本来のデータリードのために使用される要求ではなくデータライト完了検知のために使用されるデータリード要求）を発行し、そのデータリード要求に対する返信があった時点で、最終のデータライト要求によるデータライトが完了したものとする。このため、バスマスタ側のバスにおいて、そのデータリード要求に対する返信はあった時点まで、データリード要求に対するデータリード処理が完了していないと認識されているため、最終のデータライト要求後に、同一アドレスに対するデータリード要求が発生しても、データライト完了後に、データリードが実行されることが保証される。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００６−９２０７７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
バススレーブが、メモリコントローラのように、メモリに対するデータのリード／ライトを行う場合には、特許文献１の技術で上述の問題を解消することができる。
【０００９】
しかしながら、バススレーブが、データをデータリードごとに変更するようなデバイス（例えば、シリアル通信デバイス）に対してデータのリード／ライトを行う場合、上述の最終のデータライト要求の発行後の無意味なデータリード要求により、デバイスからデータが読み出されてしまうため、デバイスからのデータの一部が抜け落ちたり、最終のデータライト完了後に、同一アドレスに対するデータリード要求が発生したときに、本来読み出すべきデータとは異なるデータが読み出されてしまう可能性がある。
【００１０】
本発明は、上記の問題に鑑みてなされたものであり、複数のバスにおいてバスマスタとは異なるバスに接続されているバススレーブが、データをデータリードごとに変更するデバイスについてのデバイスコントローラである場合であっても、デバイスからのデータを正確に読み出しつつ、バスマスタ側で、データライト要求に対するデータライトの完了を確実に検出することができる情報処理装置を得ることを目的とする。
【課題を解決するための手段】
【００１１】
上記の課題を解決するために、本発明では以下のようにした。
【００１２】
本発明に係る情報処理装置は、第１バスと、第２バスと、第１バス側に設けられたバスマスタと、第２バス側に設けられ、データをデータリードごとに変更するデバイスに対してデータライトおよびデータリードを実行するバススレーブと、第１バスと第２バスとを接続し、第１バスから第２バスへデータライト要求およびデータリード要求を転送するブリッジと、第１バス側に設けられ、バススレーブへのデータライト要求の後に、バススレーブにおいてエラーを発生させる不良データリード要求をバススレーブへ発行する不良データリード要求発行手段とを備える。
【００１３】
これにより、データライト要求後に発行されるデータライト完了検知用データリード要求が不良データリード要求とされるため、バススレーブは、デバイスからデータをリードせずにエラー通知を行う。このため、このエラー通知を検出することで、データライトの完了を検知することができる。また、不良データリード要求はエラーに終わるため、デバイスからはデータが読み出されない。したがって、複数のバスにおいてバスマスタとは異なるバスに接続されているバススレーブが、データをデータリードごとに変更するデバイスについてのデバイスコントローラである場合であっても、デバイスからのデータを正確に読み出しつつ、バスマスタ側で、データライト要求に対するデータライトの完了を確実に検出することができる。
【００１４】
また、本発明に係る情報処理装置は、上記の情報処理装置に加え、次のようにしてもよい。この場合、バススレーブは、不良データリード要求を受け付けると、不良データリード要求により指定されたデータリードを実行せずに、バスマスタまたは第１バス側の他の装置に、エラー発生を通知する。
【００１５】
これにより、第１バス側で、バスマスタまたは第１バス側の他の装置が、このエラー通知を検出することで、データライトの完了を検知することができる。
【００１６】
また、本発明に係る情報処理装置は、上記の情報処理装置のいずれかに加え、次のようにしてもよい。この場合、不良データリード要求は、デバイスから読み出し可能なデータサイズとは異なるデータサイズでデータリードを実行させるための要求である。
【００１７】
これにより、不良データリード要求により発生するエラーが、通常の処理では起こり得ないエラーとなるため、通常の処理で起こり得るエラーとは区別され、エラー通知の示すエラー種別から適切に、データライト完了を検知することができる。
【００１８】
また、本発明に係る情報処理装置は、上記の情報処理装置のいずれかに加え、次のようにしてもよい。この場合、不良データリード要求は、デバイスに対して割り当てられているアドレスのうち、使用されていないアドレスについてデータリードを実行させるための要求である。
【００１９】
これにより、不良データリード要求により発生するエラーが、通常の処理では起こり得ないエラーとなるため、通常の処理で起こり得るエラーとは区別され、エラー通知の示すエラー種別から適切に、データライト完了を検知することができる。
【００２０】
また、本発明に係る情報処理装置は、上記の情報処理装置のいずれかに加え、次のようにしてもよい。この場合、不良データリード要求は、単位データの途中を指すアドレスについてデータリードを実行させるための要求である。
【００２１】
これにより、不良データリード要求により発生するエラーが、通常の処理では起こり得ないエラーとなるため、通常の処理で起こり得るエラーとは区別され、エラー通知の示すエラー種別から適切に、データライト完了を検知することができる。
【００２２】
また、本発明に係る情報処理装置は、上記の情報処理装置のいずれかに加え、次のようにしてもよい。この場合、デバイスは、データの送受を行う通信デバイスである。
【発明の効果】
【００２３】
本発明によれば、複数のバスにおいてバスマスタとは異なるバスに接続されているバススレーブが、データをデータリードごとに変更するデバイスについてのデバイスコントローラである場合であっても、デバイスからのデータを正確に読み出しつつ、バスマスタ側で、データライト要求に対するデータライトの完了を確実に検出することができる。
【図面の簡単な説明】
【００２４】
【図１】図１は、本発明の実施の形態に係る情報処理装置の構成を示すブロック図である。
【図２】図２は、図１に示す情報処理装置において、ＩＯデバイスコントローラがデータライト完了後に同一アドレスに対するデータリードを実行する場合の処理シーケンスを示す図である。
【発明を実施するための形態】
【００２５】
以下、図に基づいて本発明の実施の形態を説明する。
【００２６】
図１は、本発明の実施の形態に係る情報処理装置の構成を示すブロック図である。
【００２７】
図１に示す情報処理装置は、少なくとも２本のバス１，２を有する。バス１，２は、それぞれアドレスバス、データバスおよびコントロールバスを含む。
【００２８】
バス１とバス２は、ブリッジ１１，２１により接続されており、バス１側にバスマスタ１２が設けられ、バス２側にバススレーブとしてのＩＯデバイスコントローラ２２が設けられている。
【００２９】
まず、バス１側について説明する。
【００３０】
バスマスタ１２は、書き込み完了通知器１３を介してバス１に接続されている。バスマスタ１２は、ＣＰＵやＤＭＡＣなどである。
【００３１】
書き込み完了通知器１３は、バス１とバスマスタ１２との間に設けられ、バスマスタ１２からのデータライト要求およびデータリード要求をバス１に送出するとともに、バスマスタ１２宛ての通知やリードデータをバス１から取得しバスマスタ１２へ供給する回路である。
【００３２】
書き込み完了通知器１３は、バスマスタ１２により発行されたデータライト要求においてデータライト完了の検知が指示されている場合には、バス２に接続されているバススレーブ（ここでは、ＩＯデバイスコントローラ２２）へのデータライト要求の後に、そのバススレーブにおいてエラーを発生させる不良データリード要求をそのバススレーブへ発行する。
【００３３】
この実施の形態では、不良データリード要求は、（ａ）ＩＯデバイス２３から読み出し可能なデータサイズとは異なるデータサイズでデータリードを実行させるための要求、（ｂ）ＩＯデバイス２３に対して割り当てられているアドレスのうち、使用されていないアドレスについてデータリードを実行させるための要求、および（ｃ）単位データ）の途中を指すアドレス（例えばリードの単位データサイズが２バイトである場合の先頭から１バイトの位置のアドレス）についてデータリードを実行させるための要求、のいずれかである。
【００３４】
次に、バス２側について説明する。
【００３５】
ＩＯデバイスコントローラ２２は、バス２に接続されているバススレーブであり、ＩＯデバイス２３のデータバッファに対してデータライトおよびデータリードを行う回路である。
【００３６】
ＩＯデバイス２３は、データをデータリードごとに変更するデバイスであって、内蔵のデータバッファ（例えばＦＩＦＯ（First-In First-Out））に外部からの入力データを順番に蓄積し、また、データバッファに要求された出力データを順番に出力するデバイスである。ＩＯデバイス２３は、例えば、シリアル通信デバイスである。これらの入力データおよび出力データは、ＩＯデバイスコントローラ２２により読み書きされる。
【００３７】
次に、上記装置の動作について説明する。図２は、図１に示す情報処理装置において、ＩＯデバイスコントローラ２２がデータライト完了後に同一アドレスに対するデータリードを実行する場合の処理シーケンスを示す図である。
【００３８】
バスマスタ１２は、書き込み完了通知器１３を介してバス１に、ＩＯデバイスコントローラ２２宛てのデータライト要求およびデータリード要求を送出する。そのデータライト要求およびデータリード要求は、バスマスタ１２による発行順でブリッジ１１およびブリッジ２１を介してバス２に送出され、ＩＯデバイスコントローラ２２に到達する。
【００３９】
バスマスタ１２がＩＯデバイスコントローラ２２宛てのデータライト要求を発行し書き込み完了通知器１３に供給すると（ステップＳ１，Ｓ２）、書き込み完了通知器１３は、そのデータライト要求において、データライト完了の検知が指示されている場合、そのデータライト要求をバス１に送出し（ステップＳ３）、その後に、不良データリード要求をそのＩＯデバイスコントローラ２２へ発行しバス１に送出する（ステップＳ４）。そのデータライト要求および不良データリード要求は、順番に、ブリッジ１１，２１によりバス２へ転送され、ＩＯデバイスコントローラ２２に到達する。
【００４０】
ＩＯデバイスコントローラ２２は、そのデータライト要求を受け付けると、そのデータライト要求により指定されたデータを書き込む（ステップＳ５）。そして、そのデータライトが完了すると、ＩＯデバイスコントローラ２２は、その不良データリード要求に従ってデータリードを試みるが、データリードを正常に行えずにエラーが発生する（ステップＳ６）。このエラーが発生すると、ＩＯデバイスコントローラ２２は、書き込み完了通知器１３を介してあるいは直接にバスマスタ１２に、エラー通知を行う（ステップＳ７）。バスマスタ１２がＣＰＵである場合には、ＩＯデバイスコントローラ２２は割り込みを発生させて、そのエラー通知を行う。あるいは、このエラーが発生すると、ＩＯデバイスコントローラ２２が、書き込み完了通知器１３に、データリード要求の返信としてＮＡＫ（negative acknowledgement）を送信し、書き込み完了通知器１３がそのＮＡＫを受け付けると、バスマスタ１２へエラー通知を行うようにしてもよい。
【００４１】
バスマスタ１２は、このエラー通知が到達すると、データライト要求に対するデータライトが完了したと認識し、そのデータライト要求によりデータが書き込まれたアドレスと同一のアドレスについてのデータリード要求の発行を許可する。
【００４２】
その後、バスマスタ１２がそのようなデータリード要求を発行すると（ステップＳ９）、そのデータリード要求は、書き込み完了通知器１３、バス１、ブリッジ１１，２１およびバス２を介してＩＯデバイスコントローラ２２に到達する（ステップＳ９，Ｓ１０）。そして、ＩＯデバイスコントローラ２２は、そのデータリード要求に従ってデバイスからデータを読み出し（ステップＳ１１）、バスマスタ１２に宛てて送信する。そのデータは、バス２、ブリッジ２１，１１、バス１および書き込み完了通知器１３を介してバスマスタ１２に到達する（ステップＳ１２，Ｓ１３）。
【００４３】
このように、バス２において、データライト（ステップＳ５）が完了してからリードエラーが発生するため（ステップＳ６）、ステップＳ５におけるデータライト完了後にステップＳ１１におけるデータリードが実行されることが保証される。
【００４４】
以上のように、上記実施の形態によれば、バスマスタ１２がバス１側に設けられ、ＩＯデバイス２３に対してデータライトおよびデータリードを実行するＩＯデバイスコントローラ２２が第２バス側に設けられ、ブリッジ１１，２１がバス１とバス２とを接続している。そして、バス１側に設けられた書き込み完了通知器１３は、ＩＯデバイスコントローラ２２へのデータライト要求の後に、意図的にエラー発生させるための不良データリード要求をＩＯデバイスコントローラ２２へ発行する。
【００４５】
これにより、データライト要求後に発行されるデータライト完了検知用データリード要求が不良データリード要求とされるため、ＩＯデバイスコントローラ２２は、ＩＯデバイス２３からデータをリードせずにエラー通知を行う。このため、バスマスタ１２側においてこのエラー通知を検出することで、データライトの完了を検知することができる。
【００４６】
また、上記実施の形態によれば、不良データリード要求は、（ａ）ＩＯデバイス２３から読み出し可能なデータサイズとは異なるデータサイズでデータリードを実行させるための要求、（ｂ）ＩＯデバイス２３に対して割り当てられているアドレスのうち、使用されていないアドレスについてデータリードを実行させるための要求、および（ｃ）単位データ）の途中を指すアドレスについてデータリードを実行させるための要求、のいずれかとされる。
【００４７】
これにより、不良データリード要求により発生するエラーが、通常の処理では起こり得ないエラーとなるため、通常の処理で起こり得るエラーとは区別され、エラー通知の示すエラー種別から適切に、データライト完了を検知することができる。
【００４８】
なお、上述の実施の形態は、本発明の好適な例であるが、本発明は、これらに限定されるものではなく、本発明の要旨を逸脱しない範囲において、種々の変形、変更が可能である。
【００４９】
例えば、上記実施の形態において、バスマスタ１２により複数のデータライト要求が連続して発行された場合、書き込み完了通知器１３は、最終のデータライト要求の後にのみ不良データリード要求を発行するようにしてもよい。
【００５０】
また、上記実施の形態において、バスマスタ１２とは別のバスマスタ（ＣＰＵなど）がバス１に接続されており、バスマスタ１２は、その別のバスマスタからの指令に従ってデータライト要求およびデータリード要求を発行し、ＩＯデバイスコントローラ２２は、その別のバスマスタに対して上述のエラー通知を行うようにしてもよい。
【００５１】
また、上記実施の形態において、書き込み完了通知器１３をバスマスタ１２内に設けるようにしてもよい。
【産業上の利用可能性】
【００５２】
本発明は、例えば、複数のバスを有する電子機器に適用可能である。
【符号の説明】
【００５３】
１  バス（第１バスの一例）
２  バス（第２バスの一例）
１１，２１  ブリッジ
１２  バスマスタ
１３  書き込み完了通知器（不良データリード要求発行手段の一例）
２２  ＩＯデバイスコントローラ（バススレーブの一例）
２３  ＩＯデバイス（デバイスの一例）
【図１】
2011008727.tif 000003
【図２】
2011008727.tif 000004