(57)【要約】      （修正有）【課題】アウトオブオーダ方式を用いたバスシステムにおいてＣＰＵからメモリに対するアクセスを保証する。【解決手段】マスタデバイスにデータの書き込みを指示するとともに、メモリに書き込まれたデータにアクセスする制御装置と、メモリ、マスタデバイス、及び制御装置と接続され、当該マスタデバイスから送られたデータを入力する入力部と、入力部の入力回数をカウントする入力カウンタと、入力部に入力されたデータをメモリに出力する出力部と、出力部の出力回数をカウントする出力カウンタと、を有するバスと、マスタデバイス及び制御装置に接続され、入力カウンタの値と出力カウンタの値を比較する比較部と、比較部の比較結果が等しい場合に制御装置に同期通知を通知する同期通知部と、を有する同期装置と、を備え、制御装置は、同期通知が通知された場合に、メモリに書き込まれたデータにアクセスするバスシステム。【選択図】図１
2008226139.tif 000002
【特許請求の範囲】
【請求項１】
メモリにデータを書き込むマスタデバイスと、
前記マスタデバイスにデータの書き込みを指示するとともに、前記メモリに書き込まれたデータにアクセスする制御装置と、
前記メモリ、前記マスタデバイス、及び前記制御装置と接続され、当該マスタデバイスから送られたデータを入力する入力部と、当該入力部の入力回数をカウントする入力カウンタと、当該入力部に入力されたデータを前記メモリに出力する出力部と、当該出力部の出力回数をカウントする出力カウンタと、を有するバスと、
前記マスタデバイス及び前記制御装置に接続され、前記入力カウンタの値と前記出力カウンタの値を比較する比較部と、当該比較部の比較結果が等しい場合に前記制御装置に同期通知を通知する同期通知部と、を有する同期装置と、を備え、
前記制御装置は、前記同期通知が通知された場合に、前記メモリに書き込まれたデータにアクセスするバスシステム。
【請求項２】
前記同期通知は、前記マスタデバイスによって発行される割込通知であって、
前記同期装置は、前記マスタデバイスによって前記割込通知が発行された場合に前記入力カウンタの値と前記出力カウンタの値を比較し、比較結果が等しい場合に前記割込通知を前記制御装置に通知する請求項１に記載のバスシステム。
【請求項３】
前記同期通知は、前記マスタデバイスによって発行される割込要因通知であって、
前記制御装置は、前記割込通知が発行された場合に、当該割込要因の読込通知を前記同期装置に発行し、
前記同期装置は、前記制御装置から前記読込通知が発行された場合に前記入力カウンタの値と前記出力カウンタの値を比較し、比較結果が等しい場合に前記マスタデバイスによって発行された割込要因を前記制御装置に送る請求項１に記載のバスシステム。
【請求項４】
メモリにデータを書き込むマスタデバイスと、前記マスタデバイスによって割込通知が発行された場合に前記メモリに記憶されたデータにアクセスする制御装置と、前記メモリ、前記マスタデバイス、及び前記制御装置と接続されたバスと、を備えたバスシステムの同期方法であって、
前記マスタデバイスから前記バスへのデータの入力回数をカウントし、
前記バスから前記メモリへのデータの出力回数をカウントし、
前記マスタデバイスによって前記割込通知が発行された場合に、前記入力回数と前記出力回数を比較し、当該比較結果が等しい場合に当該割込通知を前記制御装置に通知するバスシステムの同期方法。
【請求項５】
メモリにデータを書き込むマスタデバイスと、前記マスタデバイスによって割込要因が発行された場合に前記メモリに記憶されたデータにアクセスする制御装置と、前記メモリ、前記マスタデバイス、及び前記制御装置と接続されたバスと、を備えたバスシステムの同期方法であって、
前記マスタデバイスから前記バスへのデータの入力回数をカウントし、
前記バスから前記メモリへのデータの出力回数をカウントし、
前記制御装置によって前記割込要因に読込通知が発行された場合に、前記入力回数と前記出力回数を比較し、当該比較結果が等しい場合に前記マスタデバイスによって発行された割込要因を前記制御装置に通知するバスシステムの同期方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バスシステム及びバスシステムの同期方法の関し、特に、アウトオブオーダ方式で実行可能なバスシステム及び当該バスシステムの同期方法に関する。
【背景技術】
【０００２】
ＣＰＵ、メモリ、及びデバイスがバスを介して接続されている従来のバスシステムにおけるデータ処理は、デバイスからメモリへデータを書き込み、デバイスからＣＰＵへ書込が完了したことを示す割込通知を発行し、ＣＰＵからメモリへデータの読込要求を行っていた。従来のバスシステムでは、このような実行手順が遵守されていたので、ＣＰＵからメモリに対するデータの読込要求においてエラーが発生することはなかった。
【０００３】
一方、ＣＰＵの処理速度の高速化のための技術として、特許文献１に示された技術（いわゆる、アウトオブオーダ方式）が知られている。アウトオブオーダ方式とは、互いに依存関係がない複数の命令について、与えられたプログラムコードに示された実行順序より効率的な実行順序が存在する場合に、実行順序を置換して処理を行う技術である。
【０００４】
しかし、アウトオブオーダ方式では、デバイスからメモリへデータを書き込む命令を実行する前にＣＰＵからメモリへデータの読込要求を行う命令を実行する場合に、ＣＰＵからメモリに対するアクセスにおいてエラーが発生する可能性があった。従って、アウトオブオーダ方式のバスシステムにおいてＣＰＵからメモリに対するアクセスを保証するために、エラー回避手段をＣＰＵに実装する必要があった。このようなエラー回避手段を実装した場合には、ＣＰＵの負荷が増加し、処理速度が低下するという問題があった。
【特許文献１】特開平９−５５０８１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明の目的は、ＣＰＵにエラー回避手段を実装することなく、アウトオブオーダ方式を用いたバスシステムにおいてＣＰＵからメモリに対するアクセスを保証することである。
【課題を解決するための手段】
【０００６】
本発明の第１態様によれば、メモリにデータを書き込むマスタデバイスと、前記マスタデバイスにデータの書き込みを指示するとともに、前記メモリに書き込まれたデータにアクセスする制御装置と、前記メモリ、前記マスタデバイス、及び前記制御装置と接続され、当該マスタデバイスから送られたデータを入力する入力部と、当該入力部の入力回数をカウントする入力カウンタと、当該入力部に入力されたデータを前記メモリに出力する出力部と、当該出力部の出力回数をカウントする出力カウンタと、を有するバスと、前記マスタデバイス及び前記制御装置に接続され、前記入力カウンタの値と前記出力カウンタの値を比較する比較部と、当該比較部の比較結果が等しい場合に前記制御装置に同期通知を通知する同期通知部と、を有する同期装置と、を備え、前記制御装置は、前記同期通知が通知された場合に、前記メモリに書き込まれたデータにアクセスするバスシステムが提供される。
【０００７】
本発明の第２態様によれば、メモリにデータを書き込むマスタデバイスと、前記マスタデバイスによって割込通知が発行された場合に前記メモリに記憶されたデータにアクセスする制御装置と、前記メモリ、前記マスタデバイス、及び前記制御装置と接続されたバスと、を備えたバスシステムの同期方法であって、前記マスタデバイスから前記バスへのデータの入力回数をカウントし、前記バスから前記メモリへのデータの出力回数をカウントし、前記マスタデバイスによって前記割込通知が発行された場合に、前記入力回数と前記出力回数を比較し、当該比較結果が等しい場合に当該割込通知を前記制御装置に通知するバスシステムの同期方法が提供される。
【発明の効果】
【０００８】
本発明によれば、ＣＰＵにエラー回避手段を実装することなく、アウトオブオーダ方式を用いたバスシステムにおいてＣＰＵからメモリに対するアクセスを保証することができ、ひいてはＣＰＵの処理速度を高速化することができる。
【発明を実施するための最良の形態】
【０００９】
以下、図面を参照して本発明の実施例について説明する。以下の実施例は、本発明の実施の一態様であって、本発明の範囲を限定するものではない。
【００１０】
図１は、本発明の実施例に係るバスシステム１の構成を示すブロック図である。本発明の実施例に係るバスシステム１は、制御装置（ＣＰＵ）１００、メモリ２００、マスタデバイス３００、バス４００、及び同期装置５００を備えている。なお、バス４００及び同期装置５００の詳細については後述する。
【００１１】
制御装置（ＣＰＵ）１００は、バス４００を介してメモリ２００及びマスタデバイス３００と接続されている。制御装置（ＣＰＵ）１００は、メモリ２００に記憶された制御プログラム２０２を起動することによって動作し、マスタデバイス３００にデータ２０１の書込要求を出力するとともに、メモリ２００からデータ２０１を読み出す。また、制御装置（ＣＰＵ）１００は、同期装置５００と接続され、同期装置５００から後述する割込通知を入力するとともに、同期装置５００に後述する割込要因発行要求を出力する。
【００１２】
メモリ２００は、マスタデバイス３００から書き込まれたデータ２０１及び制御装置（ＣＵ）１００のための制御プログラム２０２を記憶している。また、メモリ２００は、制御装置（ＣＰＵ）１００からのデータ読出要求に応じてデータ２０１を制御装置（ＣＰＵ）１００に出力する。メモリ２００は、例えば、ＲＡＭ等のコンピュータ読取可能な記憶媒体である。
【００１３】
マスタデバイス３００は、制御装置（ＣＰＵ）１００に従って所定の機能を提供するハードウェアであって、バス４００を介して制御装置（ＣＰＵ）１００及びメモリ２００と接続され、制御装置（ＣＰＵ）１００から出力された要求に応じてメモリ２００にデータ２０１を書き込む。また、マスタデバイス３００は、同期装置５００と接続され、同期装置５００に後述する割込通知や割込要因を出力する。
【００１４】
図２は、本発明の実施例に係るバス４００の構成を示すブロック図である。本発明の実施例に係るバス４００は、第１入力部４０１、第１出力部４０３、入力カウンタ４０６を有する第２入力部４０５、バッファ４０７、及び出力カウンタ４１０を有する第２出力部４０９を備えている。
【００１５】
第１入力部４０１は、制御装置（ＣＰＵ）１００から出力された要求を入力し、データ書込要求を第１出力部４０３へ出力し、データ読出要求を第２出力部４０９へ出力する。第１出力部４０３は、第１入力部４０１から出力されたデータ書込要求をマスタデバイス３００へ出力する。
【００１６】
第２入力部４０５は、マスタデバイス３００から出力されたメモリ２００に書き込むためのデータを入力し、バッファ４０７へ蓄積する。入力カウンタ４０６は、第２入力部４０５がデータをバッファ４０７へ蓄積した回数（入力カウンタ値）をカウントするとともに、入力カウンタ値を同期装置５００に出力する。
【００１７】
第２出力部４０９は、第１入力部４０１から出力された制御装置（ＣＰＵ）１００からのデータ読出要求をメモリ２００に出力するとともに、バッファ４０７へ蓄積された書込データを読み出してメモリ２００に書き込む。出力カウンタ４１０は、第２出力部４０９が書込データをメモリ２００に書き込んだ回数（出力カウンタ値）をカウントするとともに、出力カウンタ値を同期装置５００に出力する。
【実施例１】
【００１８】
次に、実施例１について説明する。図３は、本発明の実施例１に係る同期装置５００の構成を示すブロック図である。本発明の実施例１に係る同期装置５００は、入力部５１１、比較部５１３、同期通知部５１５、及び出力部５１７を備えている。
【００１９】
比較部５１３は、マスタデバイス３００から出力された割込通知（マスタデバイス３００からメモリ２００に対するデータの書込が完了したことを示す通知）が入力部５１１に入力された場合に、バス４００の入力カウンタ値と出力カウンタ値を読み出し、両者を比較する。
【００２０】
同期通知部５１５は、割込通知発行部として機能し、比較部５１３の比較結果が等しい場合に、入力部５１１に入力された割込通知を出力部５１７を介して制御装置（ＣＰＵ）１００に出力する。
【００２１】
図４は、本発明の実施例１に係る同期処理におけるバスシステム１の処理手順を示すフローチャートである。
【００２２】
はじめに、制御装置（ＣＰＵ）１００は、バス４００を介してマスタデバイス３００に対するデータ書込要求を行う（Ｓ４０１）。続いて、マスタデバイス３００は、Ｓ４０１のデータ書込要求に応じて、バス４００を介してメモリ２００に対するデータ書込を行う（Ｓ４０２）。
【００２３】
続いて、バス４００は、Ｓ４０２のデータ書込が完了した場合に、マスタデバイス３００に対する書込完了通知を発行する（Ｓ４０３）。続いて、マスタデバイス３００は、Ｓ４０３の書込完了通知に応じて、同期装置５００に対して制御装置（ＣＰＵ）１００への割込通知を発行する（Ｓ４０４）。
【００２４】
続いて、同期装置５００は、Ｓ４０４の割込通知に応じて、入力カウンタ４０６の入力カウンタ値と出力カウンタ４１０の出力カウンタ値を参照し、両者を比較する（Ｓ４０５）。入力カウンタ値と出力カウンタ値が等しくない（すなわち、入力カウンタ値が出力カウンタ値より大きい）場合には、Ｓ４０５へ戻る（Ｓ４０６−Ｎｏ）。一方、入力カウンタ値と出力カウンタ値が等しい場合には（Ｓ４０６−Ｙｅｓ）、同期装置５００は、制御装置（ＣＰＵ）１００に対して割込通知を発行する（Ｓ４０７）。
【００２５】
続いて、制御装置（ＣＰＵ）１００は、Ｓ４０７の割込通知に応じて、バス４００を介してメモリ２００にアクセスし、Ｓ４０２において書き込まれたデータを読み出し、本発明の実施例１に係る同期処理を終了する（Ｓ４０８）。
【００２６】
本発明の実施例１によれば、入力カウンタ値と出力カウンタ値を比較し、比較結果が等しい場合に制御装置（ＣＰＵ）１００に対する割込通知を発行するので、制御装置（ＣＰＵ）１００が割込通知を受け取った時点において、マスタデバイス３００からメモリ２００に対するデータ書込が完了していることを保証することができる。
【実施例２】
【００２７】
次に、本発明の実施例２について説明する。本発明の実施例１では、マスタデバイス３００からの割込通知に応じて同期させる例について説明したが、本発明の実施例２では、制御装置（ＣＰＵ）１００からの割込要因発行要求に応じて同期させる例について説明する。なお、本発明の実施例１と同様の内容についての説明は省略する。
【００２８】
図５は、本発明の実施例２に係る同期装置５００の構成を示すブロック図である。本発明の実施例２に係る同期装置５００は、本発明の実施例１と同様の構成を備えている。
【００２９】
比較部５２３は、制御装置（ＣＰＵ）１００から出力された割込要因発行要求（マスタデバイス３００から制御装置（ＣＰＵ）１００に出力された割込通知についての詳細情報の発行要求）が入力部５２１に入力された場合に、バス４００の入力カウンタ値と出力カウンタ値を読み出し、両者を比較する。
【００３０】
同期通知部５２５は、割込要因発行要求部として機能し、比較部５２３の比較結果が等しい場合に、入力部５２１に入力された割込要因発行要求を出力部５２７を介してマスタデバイス３００に出力する。
【００３１】
図６は、本発明の実施例２に係る同期処理におけるバスシステム１の処理手順を示すフローチャートである。
【００３２】
はじめに、図４のＳ４０１〜Ｓ４０３と同様の処理を行う（Ｓ６０１）。続いて、マスタデバイス３００は、図４のＳ４０３の書込完了通知に応じて、バス４００を介して制御装置（ＣＰＵ）１００に対して割込通知を発行する（Ｓ６０２）。
【００３３】
続いて、制御装置（ＣＰＵ）１００は、Ｓ６０２の割込通知に応じて、同期装置５００に対してマスタデバイス３００への割込要因発行要求を行う（Ｓ６０３）。続いて、同期装置５００は、Ｓ６０３の割込要因発行要求に応じて、入力カウンタ４０６の入力カウンタ値と出力カウンタ４１０の出力カウンタ値を参照し、両者を比較する（Ｓ６０４）。入力カウンタ値と出力カウンタ値が等しくない（すなわち、入力カウンタ値が出力カウンタ値より大きい）場合には、Ｓ６０４へ戻る（Ｓ６０５−Ｎｏ）。一方、入力カウンタ値と出力カウンタ値が等しい場合には（Ｓ６０５−Ｙｅｓ）、同期装置５００は、マスタデバイス３００に対して割込要因発行要求を行う（Ｓ６０６）。
【００３４】
続いて、マスタデバイス３００は、Ｓ６０６の割込要因発行要求に応じて、バス４００を介して制御装置１００へ割込要因を発行する（Ｓ６０７）。続いて、図４のＳ４０８と同様の処理を行い、本発明の実施例２に係る同期処理を終了する（Ｓ６０８）。
【００３５】
本発明の実施例２によれば、入力カウンタ値と出力カウンタ値を比較し、比較結果が等しい場合にマスタデバイス３００に対する割込要因発行要求を行うので、制御装置（ＣＰＵ）１００がマスタデバイス３００から割込要因を受け取った時点において、マスタデバイス３００からメモリ２００に対するデータ書込が完了していることを保証することができる。
【実施例３】
【００３６】
次に、本発明の実施例３について説明する。本発明の実施例１及び２では、割込通知や割込要因発行要求に応じて同期装置５００が同期させる例について説明したが、本発明の実施例３では、制御装置（ＣＰＵ）１００が同期させる例について説明する。
【００３７】
図７は、本発明の実施例３に係る同期処理における制御装置（ＣＰＵ）１００の処理手順を示すフローチャートである。本発明の実施例３に係る同期処理は、制御装置（ＣＰＵ）１００がメモリ２００の制御プログラム２０２を起動した場合に行われる処理である。
【００３８】
はじめに、マスタデバイス３００にメモリ２００へのデータ書込要求を行う（Ｓ７０１）。続いて、マスタデバイス３００から割込通知が発行されるまで待機する（Ｓ７０２）。
【００３９】
続いて、割込通知に応じて同期を取る場合には（Ｓ７０２−Ｙｅｓ、Ｓ７０３−Ｙｅｓ）、入力カウンタ値と出力カウンタ値を比較する（Ｓ７０４）。続いて、Ｓ７０４の比較結果が等しくなった後に（Ｓ７０５−Ｙｅｓ）、メモリ２００にデータ読出要求を行って、本発明の実施例３に係る同期処理を終了する（Ｓ７０６）。
【００４０】
一方、割込要因に応じて同期を取る場合には（Ｓ７０２−Ｙｅｓ、Ｓ７０３−Ｎｏ）、マスタデバイス３００に割込要因発行要求を行う（Ｓ７０７）。続いて、マスタデバイス３００から割込要因が発行されるまで待機する（Ｓ７０８）。マスタデバイス３００から割込要因が発行された後は（Ｓ７０８−Ｙｅｓ）、Ｓ７０４へ進む。
【００４１】
本発明の実施例３によれば、制御装置（ＣＰＵ）が同期処理を行うので、図１の同期装置５００を設けることなく、本発明の実施例１及び２と同様の効果を達成することができる。
【図面の簡単な説明】
【００４２】
【図１】本発明の実施例に係るバスシステム１の構成を示すブロック図である。
【図２】本発明の実施例に係るバス４００の構成を示すブロック図である。
【図３】本発明の実施例１に係る同期装置５００の構成を示すブロック図である。
【図４】本発明の実施例１に係る同期処理におけるバスシステム１の処理手順を示すフローチャートである。
【図５】本発明の実施例２に係る同期装置５００の構成を示すブロック図である。
【図６】本発明の実施例２に係る同期処理におけるバスシステム１の処理手順を示すフローチャートである。
【図７】本発明の実施例３に係る同期処理における制御装置（ＣＰＵ）１００の処理手順を示すフローチャートである。
【符号の説明】
【００４３】
１  バスシステム
１００  制御装置（ＣＰＵ）
２００  メモリ
３００  マスタデバイス
４００  バス
５００  同期装置
【図１】
2008226139.tif 000003
【図２】
2008226139.tif 000004
【図３】
2008226139.tif 000005
【図４】
2008226139.tif 000006
【図５】
2008226139.tif 000007
【図６】
2008226139.tif 000008
【図７】
2008226139.tif 000009