(57)【要約】      （修正有）【課題】共有メモリへのデータ転送の際にバスブリッジにポステッド転送を行うマスターが、書き込み完了保証が必要なデータ転送を行う場合に、各マスター、バスブリッジが書き込み完了を保証する。更には、マスターが共有メモリにデータ転送するために複数のポステッド転送を行うバスブリッジを経由するなどバス構成が複雑になり、また書き込み完了保証が必要なマスターが増大しても、個々のマスター、バスブリッジで共有メモリへの書き込み完了を保証する。【解決手段】データ記憶手段とバスシステムの間に接続されるモジュールであって、書き込みアドレスと読出しアドレスを管理するアドレス領域と、管理しないアドレス領域を持つ。管理するアドレス領域は、書きこまれたアドレスと読出し要求のアドレスを比較し、読出し要求が書きこまれたアドレスでない場合には、モジュール内のバッファ５に読出し要求を保持する。【選択図】図１
2018124769.tif 000002
【特許請求の範囲】
【請求項１】
データ記憶手段と接続されるマスターインターフェースと、バスシステムに接続される第１のアドレス領域および第２のアドレス領域を有するスレーブインターフェースから構成される情報処理装置において、前記スレーブインターフェースは、前記第１のアドレス領域よりも狭いアドレス領域を有する、前記第２のアドレス領域へのアクセスは前記マスターインターフェースの別途設定される一部のアドレス領域に転送されるスレーブインターフェースであって、
前記マスターインターフェースと同じアドレス領域を有する、前記第１のアドレス領域へのアクセスを前記マスターインターフェースに転送し、前記第１のアドレス領域へのアクセス要求は受け取った要求をそのまま前記マスターインターフェースへ転送する転送手段と、
前記第２のアドレス領域へのアクセス要求は、書き込み要求で実行されるアドレスと読出し要求で実行されるアドレスとを判断し、前記読出し要求で要求されたアドレスへの書き込みが行われていないアドレスである場合には、そのアドレスへの書き込みが実行されるまで前記読出し要求を保存しておくバッファと、
を有する情報処理装置。
【請求項２】
前記第２のアドレス領域のアクセスを前記マスターインターフェースの任意の部分アドレス領域に設定可能な設定手段をさらに有することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記バッファに保存されている読出し要求で要求されたアドレスへの書き込みを受け取った場合に、前記書き込み要求をマスターインターフェースより転送した後、前記バッファに保存されている読出し要求をマスターインターフェースより転送することを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記バッファに保存されている読出し要求で要求されたアドレスへの書き込みを受け取った場合に、前記書き込み要求の書き込みデータを前記保存されている読出し要求の読出し応答として出力すると同時に、前記書き込み要求と前記バッファに保存されている読出し要求を前記マスターインターフェースより出力せずに破棄することを特徴とする請求項１に記載の情報処理装置。
【請求項５】
データ記憶手段と接続されるマスターインターフェースと、バスシステムに接続される第１のアドレス領域および第２のアドレス領域を有するスレーブインターフェースと、から構成される情報処理装置の制御方法であって、前記スレーブインターフェースは、前記第１のアドレス領域よりも狭いアドレス領域を有する、前記第２のアドレス領域へのアクセスは前記マスターインターフェースの別途設定される一部のアドレス領域に転送されるスレーブインターフェースであって、
前記マスターインターフェースと同じアドレス領域を有する、前記第１のアドレス領域へのアクセスを前記マスターインターフェースに転送し、前記第１のアドレス領域へのアクセス要求は受け取った要求をそのまま前記マスターインターフェースへ転送する転送工程と、
前記第２のアドレス領域へのアクセス要求は、書き込み要求で実行されるアドレスと読出し要求で実行されるアドレスとを判断し、前記読出し要求で要求されたアドレスへの書き込みが行われていないアドレスである場合には、そのアドレスへの書き込みが実行されるまで前記読出し要求をバッファに保存する工程と、
を有する情報処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のマスターが記憶部を共有して使用するバスシステムに関する技術である。
【背景技術】
【０００２】
従来、複数のバスにそれぞれ接続する複数のマスターが、主記憶ユニットを共有メモリとして使用している。このような場合には、第１のバスに接続する第１のマスターが共有メモリにデータを書き込み、そのデータを第２のバスに接続する第２のマスターが共有メモリから読み出すといったことが頻繁に行われている。第１のマスターが共有メモリに書き込んだデータを第２のマスターが共有メモリから読み出すためには、第２のマスターが読み出し動作を開始する前に、第１のマスターによる共有メモリへのデータの書き込みが完了していることを保証しなければならない。そのための技術の一例が特許文献１に提案されている。
【０００３】
この特許文献１によれば、第１のバスと第２のバスの間に接続するバスブリッジ内部のバッファに滞留する転送数のデータ転送が完了することを監視するモニタ回路を配置する。そして、第１マスターからのバスブリッジへの転送完了を通知するトリガ信号（第１マスタの割込み信号）をモニタ回路に入力する。モニタ回路は、トリガ信号を入力すると、バスブリッジ内部のバッファに滞留する転送数分のデータ転送完了をカウントし、カウントが完了すると完了信号を第２マスターに通知する。第２マスターは、モニタ回路からの完了信号（遅延した第１マスタの割込み信号）を受けてから共有メモリからのデータの読出しを行うことで、共有メモリに書き込みが完了したデータを読み出すことが保証されることが記載されている。
【０００４】
上述した従来例は、第１のマスターが所定のデータ量の転送を共有メモリに行った後に、第２のマスターに転送完了の通知を行う場合において、第１のマスターの書き込み完了を保証するためのものである。一方、別の従来例として、マスター間で割り込み信号などの書き込み完了通知を用いることなく、第１のマスターが共有メモリに書き込んだデータを即座に第２のマスターが読み出して処理を行う場合もある。その場合において、所定のデータ量の単位で第１のマスターの共有メモリへの書き込み完了を保証するための技術が特許文献２に提案されている。
【０００５】
この特許文献２によれば、第１のマスターと第２のマスターが共有キャッシュメモリに接続し、キャッシュメモリの機構を利用して第一のマスターが処理したデータを第２のマスターに受け渡すための監視対象領域を設定する。所定の単位のデータ量ごとに監視対象領域の書き込みデータの書き込み完了情報を管理し、監視対象領域のデータ読み出しを行う。対象のデータが書き込み完了していない場合、リード要求を待機させ、書き込み完了後にリードデータを返すことで、共有キャッシュメモリに書き込みが完了したデータを読み出すことが保証されることが記載されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１２−１１３６１５
【特許文献２】特開２０１２−４３０３１
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記の特許文献１では、共有メモリへのデータ転送の際にバスブリッジにポステッド転送を行うマスターが、書き込み完了保証が必要なデータ転送を行う場合、各マスター、バスブリッジが書き込み完了を保証する仕組みを設ける必要がある。更には、マスターが共有メモリにデータ転送するために複数のポステッド転送を行うバスブリッジを経由するなどバス構成が複雑になり、また書き込み完了保証が必要なマスターが増大してきている。すると、このような個々のマスター、バスブリッジで共有メモリへの書き込み完了を保証することが困難になる。
【０００８】
また、特許文献２では、データの受け渡しを行う複数のプロセッサが接続する共有キャッシュメモリを利用したものである。データの受け渡しに使用する領域に対して、書き込みを行うプロセッサが領域確保のコマンドを発行してからデータ書き込みを行う、読み出しを行うプロセッサが対象領域のデータ読み出し完了後に領域解放コマンドを発行する必要がある。データ転送にかかる処理が煩雑になり、一般的なＤＭＡコントローラが行う転送には不向きである。また、データ転送を行う所定の単位の領域ごとに、アドレス、書き込み完了状況、プロセッサＩＤ情報などの管理情報を持つ必要があり、回路規模が増大する。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、本発明の情報処理装置は以下のような構成を備える。
即ち、データ記憶手段と接続されるマスターインターフェースと、バスシステムに接続される第１のアドレス領域および第２のアドレス領域を有するスレーブインターフェースから構成される情報処理装置において、前記スレーブインターフェースは、前記第１のアドレス領域よりも狭いアドレス領域を有する、前記第２のアドレス領域へのアクセスは前記マスターインターフェースの別途設定される一部のアドレス領域に転送されるスレーブインターフェースであって、前記マスターインターフェースと同じアドレス領域を有する、前記第１のアドレス領域へのアクセスをマスターインターフェースに転送し、前記第１のアドレス領域へのアクセス要求は受け取った要求をそのままマスターインターフェースへ転送する転送手段と、前記第２のアドレス領域へのアクセス要求は書き込み要求で実行されるアドレスと、読出し要求で実行されるアドレスと、を判断し、読出し要求で要求されたアドレスへの書き込みが行われていないアドレスである場合には、そのアドレスへの書き込みが実行されるまで読出し要求を保存しておくバッファ。
【発明の効果】
【００１０】
本発明によれば、データ転送の書き込み完了を保証すべきマスターが複数存在する場合や、ポステッド転送を行うバスブリッジが複数存在する複雑なバスシステムになった場合でも、書き込み完了保証が必要なマスター、バスブリッジ側での個別の対応を行うことなく、データの一貫性を保証することが可能となる。
【図面の簡単な説明】
【００１１】
【図１】書き込み完了保証モジュールのブロック構成例
【図２】チップシステムのブロック構成例
【図３】モジュールのメモリマップ例
【図４】モジュールの動作を示すラダーチャート
【図５】実施例２のモジュールのブロック構成例
【図６】実施例２のモジュールの動作を説明するラダーチャート
【発明を実施するための形態】
【００１２】
以下、図面を参照しながら、説明する。
【００１３】
［実施例１］
図１は書き込み完了保証モジュール（以下、「情報処理装置」とも記載する。）の全体ブロック構成例を示す。
図１にて１は要求振り分け部。２は読出し、書き込み振り分け部。３は書き込みアドレス、ＩＤチェック部。４は読出しアドレス、ＩＤチェック部。５は読出し要求保存バッファ。６は要求調停部。７は設定部。８はメモリアクセススレーブインターフェース。９はレジスタ設定インターフェース。１０はメモリアクセスマスターインターフェースである。
【００１４】
図２は書き込み完了保証モジュールを含んだチップシステムのブロック図を示す。
図２にて２０は書き込み完了保証モジュール。２１は書き込みマスター。２２は読出しマスター。２３はバスシステム。２４はレジスタアクセスブリッジ。２５は図示されていない外部のメモリデバイスを制御するメモリコントローラである。
【００１５】
図３は本モジュールを用いる場合のスレーブおよびマスターインターフェースのメモリマップの一例を示す。
【００１６】
図１から３を用いて動作を説明する。
【００１７】
本モジュールはメモリスレーブインターフェース８のアクセス領域として図３に示す０ｘ２０００＿００００−０ｘ２ＦＦＦ＿ＦＦＦＦの領域と０ｘ８０００＿００００−０ｘＦＦＦＦ＿ＦＦＦＦの領域を受け付けるものとする。メモリスレーブインターフェース８はバスシステムに接続される。この時、０ｘ８０００＿００００−０ｘＦＦＦＦ＿ＦＦＦＦのアドレスを持つアクセスは要求振り分け部１により図１に示す上側の経路を経由し要求調停部６に伝達される。要求調停部６は上側の経路の要求と後述する下側の読出し、書き込み要求を調停し、メモリアクセスマスターインターフェース１０からメモリコントローラ２５に出力する。０ｘ４０００＿００００−０ｘ５ＦＦＦ−ＦＦＦＦのアドレスを持つアクセスは、アクセスは要求振り分け部１で振り分けられたのち、読出し、書き込み振り分け部２により読出し要求と書き込み要求で経路を分けられる。
【００１８】
読出し、書き込み振り分け部２により振り分けられた書き込み要求は書き込みアドレス、ＩＤチェック部３に入力される。入力された書き込み要求は、書き込み要求を発行したマスターの識別と要求のアドレスがチェックされ、あらかじめ設定されたアドレス領域であるか、また、マスターであるかのＩＤがチェックされる。チェックされた書き込み要求はアクセス要求のアドレスをあらかじめ設定されたマスターインターフェース領域に含まれる部分アドレス領域に変換された後、要求調停部６に伝達される。
【００１９】
読出し、書き込み振り分け部２により振り分けられた読出し要求は読出しアドレス、ＩＤチェック部４に入力される。入力された読出し要求は、読出しを発行したマスターの識別と要求のアドレスがチェックされ、あらかじめ設定されたアドレス領域であるか、また、マスターであるかのＩＤがチェックされる。チェックされた読出し要求は、発行可能な読出し要求であれば、アクセス要求のアドレスをあらかじめ設定されたマスターインターフェース領域に含まれる部分アドレス領域に変換された後、要求調停部６に伝達される。発行可能でない読出し要求であれば、読出し要求保存バッファ５に一時保存される。
【００２０】
書き込みアドレス、ＩＤチェック部３では以下の処理が行われる。
【００２１】
入力された書き込み要求は、先に述べたように、要求アドレスとＩＤのチェックが行われ、監視対象であるアドレス領域にあり、且つ監視対象のマスターＩＤである場合には保存されている書き込み要求のアドレスとの大小比較を実行する。保存されている書き込み要求アドレスとは、今回の書き込み要求以前に受信された監視対象であるアドレス領域にあり、且つ監視対象のマスターＩＤを持ったマスターインターフェースに転送済みの書き込み要求アドレスである。比較の結果、新たな書き込み要求のアドレスが大きい場合には今回のアドレスを実行済みアドレスとして更新保存する。新たな書き込み要求のアドレスが小さい場合には、監視対象アドレスの上限アドレスと保存されているアドレスおよび新たな要求アドレスとの関係から上限まで達して監視対象の下限に戻ったか、もしくは再度書き込みを行ったかを判断する。再度の書き込みが行われた場合には保存されているアドレスの更新は行われず、一方、再度の書き込みでないと判断された場合には保存されているアドレスの更新を行うと同時に、アドレスが下限に戻ったことを示すフラグを設定する。このフラグは監視対象の読出し要求が同様に下限に戻った場合にクリアされる。アドレスの保存ならびにフラグのセットは書き込み要求が調停部６で受け付けられたタイミングで実行されることが好ましい。保存されているアドレスおよびフラグは読出しアドレス、ＩＤチェック部４に供給され、書き込み完了保証の判断に用いられる。チェックが実行された書き込み要求は先に述べたようにアクセス要求のアドレスをあらかじめ設定されたマスターインターフェース領域に含まれる部分アドレス領域に変換された後、要求調停部６に伝達される。アドレス判断は実際に書き込みが行われたアドレス値について行われることが好ましい。
【００２２】
読出しアドレス、ＩＤチェック部４では以下の処理が行われる。
【００２３】
入力された読出し要求は、先に述べたように、要求アドレスとＩＤのチェックが行われ、監視対象であるアドレス領域にあり、且つ監視対象のマスターＩＤである場合に以下の２つの処理が行われる。
【００２４】
読出し要求のアドレスが書き込みアドレス、ＩＤチェック部３から提供される書き込み実行済みアドレスよりも大きいかどうかを判断する。小さい場合には読出し要求の要求範囲は既に書き込みが行われた領域であるので、書き込み同様に、アクセス要求のアドレスをあらかじめ設定されたマスターインターフェース領域に含まれる部分アドレス領域に変換された後、要求調停部６に伝達される。大きい場合には、書き込みアドレス、ＩＤチェック部３から提供されるフラグを合わせて確認し、フラグがセットされている場合には、監視範囲の上限まで書き込みが行われた状況を加味して判断が行われる。そのうえで、再度書き込み実行済みアドレスよりも大きいかどうかが判断され、読出し要求アドレスが小さいと判断された場合には、先と同様に調停部６へ出力される。それでも大きいと判断された場合には、要求された範囲は書き込みが完了していない領域であるので、読出し要求を実行するのに必要な情報を読出し情報保存バッファ５に保存する。
【００２５】
加えて、保存されている読出し要求のアドレスとの大小比較を実行する。保存されている読出し要求アドレスとは、今回の読出し要求以前に受信された監視対象であるアドレス領域にあり、且つ監視対象のマスターＩＤを持つマスターインターフェースに転送済みの読出し要求アドレスである。比較の結果、新たな読出し要求のアドレスが大きい場合には今回のアドレスを実行済みアドレスとして更新保存する。また、書き込みと同様に、新たな読出し要求のアドレスが小さい場合には、監視対象アドレスの上限アドレスと保存されているアドレスおよび新たな要求アドレスとの関係から上限まで達して監視対象の下限に戻ったか、もしくは再度読出しを行ったかを判断する。再度の読出しが行われた場合には保存されているアドレスの更新は行われない。一方、再度の読出しでないと判断された場合には保存されているアドレスの更新を行うと同時に、アドレスが下限に戻ったことを示す信号を書き込みアドレス、ＩＤチェック部３に提供する。この信号は書き込みアドレス、ＩＤチェック部３でフラグのクリアに用いることができる。
【００２６】
要求アドレスが上限まで達して下限に戻ったかどうかの判断方法の一例として以下の式による判断も可能である。
【００２７】
（保存されているアドレス−要求アドレス）＞（監視対象アドレス上限値−監視対象アドレス下限値）／２
また、再度の書き込みおよび読出しがない条件下においては単純に
保存されているアドレス＞要求アドレス
で判断することも可能である。
【００２８】
情報保存バッファ５は読出しアドレス、ＩＤチェック部４で保存を指示された読出し要求を保存する。保存された読出し要求はそのアドレスと要求元のマスターＩＤを書きこみアドレス、ＩＤチェック部から供給される実行済みアドレスとの比較を行い、保存条件を満たさなくなった時点で調停部６に読出し要求を行う。読出し要求によりデータ記憶手段より読み出された結果は読出し応答として読出し要求を行ったマスターに返送される。読出し要求が調停部６に受け付けられた時点で保存されていた要求は破棄される。
【００２９】
調停部６は以下の経路を経由した要求を調停し、メモリアクセスマスターインターフェースへ順に出力する。
【００３０】
・要求振り分け部１にて監視対象外とされたアドレスを持つ要求。
【００３１】
・書き込みアドレス、ＩＤチェック部３を経由した監視対象アドレス範囲内の書き込み要求。
【００３２】
・読出しアドレス、ＩＤチェック部４を経由し、読出し要求保存バッファ５への保存対象外と判断された読出し要求および一時読出し要求保存バッファ５で保存され、保存条件が解除された読出し要求。
【００３３】
動作例を図４のラダーチャートを用いて説明する。
【００３４】
図４では１つの書き込みマスターが書きこんだデータを１つの読出しマスターが読み出して処理をする例を示している。書きこみマスターは処理を開始しモジュールを経由しメモリへデータの書き込みを行う、その際、アドレス振り分け領域のアドレス範囲を用いて行う（図４の（１））。本モジュールは、先に説明を行ったように、書きこまれたアドレス書き込みが行われたアドレス領域を保存、更新するとともに、メモリインターフェースへはメモリ領域のアドレス内にアドレスを変換して出力する（図４では０ｘ８→０ｘＡへ変換）。ここで、書き込みマスターは何らかの事情により書き込みが一時的にできない状況が発生したとして図示されている。一方、読出しマスターは書き込みマスターの処理が開始されてことに連動して図示されていないＣＰＵ等により指示され、書きこまれたデータを読出し、処理を開始する（図４の（２））。読出しマスターは順に処理を行い、書き込みマスターが書き込みを行っていないアドレス領域（０ｘ４０００＿０３００）からの読出し要求を発行する（図４の（３））。読出しアドレス、ＩＤチェック部４で要求されたアドレスへの書き込みがなされていないことが検出されるため、この読出し要求は読出し要求保存バッファ５に保存され、図示されているように、メモリインターフェースへの出力は一時保留される。書きこみマスターの書き込みが再開され、読出しが保留されているアドレスへの書き込みが実行される（図４の（４））。保留されているアドレスへの書き込みが実行され、保存されている書き込みアドレスが更新されたのを受けて、保存されている読出し要求が再度チェックされる。保存条件を満たさなくなったことを受けてメモリインターフェースへ読出し要求が発行される（図４の（５））。
【００３５】
アドレス領域の変換は一例として、上記に示した上位４ビットアドレス値をあらかじめ決められた値に置き換える方法以外でもよい。あらかじめ設定されたアドレス領域、ＩＤ、変換後のアドレス値は固定値でもよいが、レジスタ設定インターフェース９経由で設定部８にてマスターインターフェースで出力可能なアドレス領域の任意の一部に別途設定可能であることが好ましい。
【００３６】
以上説明したように、共有メモリとなるデータ記憶手段の前側に書き込み完了保証機能を持つモジュールを配置することでバスのシステム構成、並びにマスターの位置に依存せずに書き込み完了を保証することが可能となる。
【００３７】
［実施例２］
図５に実施例２と図６にその動作を示すラダーチャートを示す。
【００３８】
図５は図１では書き込みアドレス、ＩＤチェック部３からの信号が一方通行であったのに対し、読出しアドレス、ＩＤチェック部４からの信号を判断に用いる点が異なっている。
【００３９】
図６のラダーチャートおいても書き込みが行われていないアドレス領域への読出しマスターからの読出し要求が発行されるところまでは図４と同じである。
【００４０】
図６では読出しが保留されているアドレスへの書き込みが実行されると（図６の（４））、書き込みアドレス、ＩＤチェック部３は読出しアドレス、ＩＤチェック部４からの保留されている要求に関する情報をチェックする。チェックした結果、保留されているアドレスへの読出し要求と一致したならば、書き込みアドレス、ＩＤチェック部３は受信した書き込み要求をメモリインターフェースへ出力しない。加えて、書きこまれたデータをそのまま保留されている読みだし要求の結果データとして読出しアドレス、ＩＤチェック部４経由で読出しマスターに出力する（図６の（４）および（５））。
【００４１】
書き込みマスターおよび読出しマスターが画像処理モジュールである場合、メモリに書きこまれたデータを複数回、読み出す例はまれである。従って、このような構成とすることでメモリインターフェース上のアクセスを減らすことができ、実施例１に比べてメモリインターフェースの効率化及び省電力化が実現できる。
【符号の説明】
【００４２】
１  要求振り分け部
２  読出し、書き込み振り分け部
３  書き込みアドレス、ＩＤチェック部
４  読出しアドレス、ＩＤチェック部
５  読出し要求保存バッファ
６  要求調停部
７  設定部
８  メモリアクセススレーブインターフェース
９  レジスタ設定インターフェース
１０  メモリアクセスマスターインターフェース
２０  書き込み完了保証モジュール
２１  書き込みマスター
２２  読出しマスター
２３  バスシステム
２４  レジスタアクセスブリッジ
２５  メモリコントローラ
【図１】
2018124769.tif 000003
【図２】
2018124769.tif 000004
【図３】
2018124769.tif 000005
【図４】
2018124769.tif 000006
【図５】
2018124769.tif 000007
【図６】
2018124769.tif 000008