(57)【要約】【課題】バスマスタがレジスタ等の周辺モジュールをアクセスする際のレイテンシを有効に低減する情報処理装置及びインターフェイス回路を提供すること。【解決手段】第１クロック信号に同期して動作するバスマスタ（１１００）と、第２クロック信号に同期して動作する周辺モジュール（１２００）と、前記第１クロック信号に同期して前記バスマスタとの間でデータ転送するための第１アクセスポートと前記第２クロック信号に同期して前記周辺モジュールとの間でデータ転送するための第２アクセスポートとを有する記憶手段としてデュアルポートＲＡＭ（１２１０）を有し、該デュアルポートＲＡＭを介してバスマスタ（１１００）と周辺モジュール（１２００）との間のデータ転送を遂行する。【選択図】図２
2008097098.tif 000002
【特許請求の範囲】
【請求項１】
第１クロック信号に同期して動作するバスマスタと、
第２クロック信号に同期して動作する周辺モジュールと、
前記第１クロック信号に同期して前記バスマスタとの間でデータ転送するための第１アクセスポートと前記第２クロック信号に同期して前記周辺モジュールとの間でデータ転送するための第２アクセスポートとを有する記憶手段を有し、該記憶手段を介して前記バスマスタと前記周辺モジュールとの間のデータ転送を遂行するインターフェイス回路と
を備えた情報処理装置。
【請求項２】
前記インターフェイス回路は、
前記バスマスタからのアクセスに基づき前記第１アクセスポートに供給すべき第１制御信号を生成すると共に、前記バスマスタからのアクセスがライト動作である場合に該アクセスがあったこと示すフラグを発生する第１ステートマシンと、
前記フラグを格納するフラグレジスタと、
前記フラグレジスタに格納されたフラグを検索するフラグ検索回路と、
前記フラグ検索回路による検索結果に基づき前記第２アクセスポートに供給すべき第２制御信号を生成する第２ステートマシンと
を備えたことを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記周辺モジュールは、複数の第１レジスタから構成され、
前記フラグレジスタは、前記複数の第１レジスタに対応する複数の第２レジスタから構成され、
前記フラグ検索回路は、前記複数の第２レジスタのうち、前記フラグが格納された第１レジスタに対応するレジスタを指定するアドレス信号を出力するように構成されたことを特徴とする請求項２記載の情報処理装置。
【請求項４】
前記フラグ検索回路は、
前記複数の第２レジスタの各アドレスに対応するカウント値を巡回的に発生して前記周辺モジュール及び前記記憶手段に供給するカウンタと、
前記カウント値を前記第１クロック信号で同期化してフラグポインタとして前記フラグレジスタに供給すると共に、該フラグポインタで指定されるフラグレジスタに前記フラグが格納されていることを示すレジスタポインタを前記第２クロック信号に同期化する同期化回路と、
前記同期化回路で同期化された前記レジスタポインタと前記カウント値とを比較し、その比較結果を前記第２ステートマシンに供給する比較器と
を備えて構成され、
前記第２ステートマシンは、前記比較結果が前記レジスタポインタと前記カウント値との一致を示す場合に、前記第２制御信号としてリード動作に関する制御信号を生成して出力することを特徴とする請求項３記載の情報処理装置。
【請求項５】
前記複数の第２レジスタのそれぞれは、
前記バスマスタからのアクセスの種別を示すフラグを格納するレジスタと、
前記バスマスタからアクセスがあったことを示すフラグを格納するレジスタと
から構成されたことを特徴とする請求項１ないし４の何れか１項記載の情報処理装置。
【請求項６】
前記第１及び第２ステートマシンは、これら第１及び第２ステートマシンの一方が前記記憶手段をアクセスする際に、これら第１及び第２ステートマシンの他方をロックステートに状態遷移させることを特徴とする請求項１乃至５何れか１項記載の情報処理装置。
【請求項７】
前記記憶手段は、前記第２アクセスポートとして複数のアクセスポートを備えたマルチポートＲＡＭから構成され、
前記マルチポートＲＡＭの前記複数のアクセスポートには、前記周辺モジュールとして複数のモジュールがそれぞれ接続されたことを特徴とする請求項１ないし５の何れか１項記載の情報処理装置。
【請求項８】
第１クロック信号に同期して動作するバスマスタと第２クロック信号に同期して動作する周辺モジュールとの間のデータ転送を遂行するインターフェイス回路であって、
前記第１クロック信号に同期して前記バスマスタとの間でデータ転送するための第１アクセスポートと前記第２クロック信号に同期して前記周辺モジュールとの間でデータ転送するための第２アクセスポートとを有する記憶手段と、
前記バスマスタからのアクセスに基づき前記第１アクセスポートに供給すべき第１制御信号を生成すると共に、前記バスマスタからのアクセスがライト動作である場合に該アクセスがあったこと示すフラグを発生する第１ステートマシンと、
前記フラグを格納するフラグレジスタと、
前記フラグレジスタに格納されたフラグを検索するフラグ検索回路と、
前記フラグ検索回路による検索結果に基づき前記第２アクセスポートに供給すべき第２制御信号を生成する第２ステートマシンと
を備えたインターフェイス回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチポートＲＡＭを利用した情報処理装置およびインターフェイス回路に関する。
【背景技術】
【０００２】
従来、システムＬＳＩ等の情報処理装置において、ＣＰＵ等のバスマスタとレジスタ等の周辺モジュールとの間はバスで接続され、このバスを介してデータ転送が行われる。一般に、バスマスタの動作クロック周波数と周辺モジュールの動作クロック周波数とは異なるので、これらの間でデータ転送を行う際にはデータ信号を同期化する必要がある。
【０００３】
図８に、上述のデータ信号を同期化する機能を備えた情報処理装置の構成例を示す。同図に示すように、バスマスタ８１０と周辺モジュール８２０とはバス８３０を介して接続され、周辺モジュール８２０内のレジスタ部８２２は同期化回路８２１を介してバス８３０に接続される。
【０００４】
この情報処理装置によれば、バスマスタ８１０からバス８３０を介して周辺モジュール８２０に送出されたデータ信号は、周辺モジュール８２０内の同期化回路８２１によりレジスタ部８２２の動作クロック信号ＰＣＬＫに同期したデータ信号に加工されてレジスタ部８２２に供給される。このように同期化回路８２１を備えることにより、異なるクロック周波数で動作するバスマスタ８１０とレジスタ部８２２との間のデータ転送を可能としている。
【０００５】
図９ないし図１２を参照して更に詳細に説明する。
図９に、従来技術に係る情報処理装置の詳細構成を示す。図９に示すバスマスタ９１００および周辺モジュール９２００は、上述の図８に示すバスマスタ８１０および周辺モジュール８２０にそれぞれ対応し、図９に示す同期化回路９２１１，９２２１，９２４０，９２５０，９２６０は図８に示す同期化回路８２１に対応し、図９に示すレジスタ９２３０は図８に示すレジスタ８２２に対応している。
【０００６】
ここで、図９に示すステートマシン９２１０は、バスマスタ９１００に対するインターフェイスとして機能し、バスマスタ９１００の動作クロック信号ＳＣＬＫに同期して動作する。ステートマシン９２２０は、レジスタ９２３０に対するインターフェイスとして機能し、レジスタ９２３０の動作クロック信号ＰＣＬＫに同期して動作する。
【０００７】
これらステートマシン９２１０とステートマシン９２２０との間では、バスマスタ９１００からレジスタ９２３０に対するデータ転送の内容に応じた各種の制御信号がハンドシェークにより伝達される。この制御信号の伝達を可能とするために、一方のステートマシン９２１０は、ステートマシン９２２０から入力する信号を同期化するための同期化回路９２１１を備え、他方のステートマシン９２２０は、ステートマシン９２１０から入力する信号を同期化するための同期化回路９２２１を備えている。
【０００８】
次に、図１０ないし図１２を参照して、上述の従来技術に係る情報処理装置の動作を説明する。ここで、図１０は、ステートマシン９２１０及びステートマシン９２２０の状態遷移図であり、図１１および図１２は、それぞれ、バスマスタ９１００からレジスタ部９２３０に対するライト動作及びリード動作のタイミングチャートである。
なお、その動作説明において、各ステートマシンの状態遷移については図１０を参照され、各時刻での動作については図１１及び図１２を適宜参照されたい。
【０００９】
先ず、図１０及び図１１を参照してライト動作を説明する。
周辺モジュール９２００内のステートマシン９２１０は、プリセット信号が入力されると、バスマスタ９１００からのアクセスを待ち受けるアイドルステートＳＩＤＬＥに状態遷移する。
【００１０】
このアイドルステートＳＩＤＬＥから、バスマスタ９１００がライトトランザクションを開始し、時刻ｔ１においてライト信号ＷＲＮをローレベルにし、且つチップセレクト信号ＣＳＮをローレベルにすると、これを入力するステートマシン９２１０はライトトランザクションを検出してウェイトステートＳＷＷＡＩＴに状態遷移し（図１０；Ｂ）、時刻ｔ２においてウェイト信号ＷＡＩＴをハイレベルにアサートする（図１１；Ｂ）。これによりバスマスタ９１００にウェイトをかける。
【００１１】
他方、ステートマシン９２２０は、時刻ｔ３においてステートマシン９２１０がウェイトステートＳＷＷＡＩＴに状態遷移したことを検出すると、時刻ｔ３から２クロック後の時刻ｔ４においてライトステートＰＷＲＩＴＥに状態遷移し（図１０及び図１１；Ｃ）、それから１クロック後の時刻ｔ６において、同期化されたライトデータＷＤＡＴＡをレジスタ９２３０にライトしてウェイトステートＰＷＡＩＴに状態遷移する（図１１；Ｄ）。この動作により、アドレス信号ＡＤＤＲに対するライトデータＷＤＡＴＡのセットアップタイムｔＳＵが確保される。
【００１２】
一方、ステートマシン９２１０は、時刻ｔ５においてステートマシン９２２０がライトステートＰＷＲＩＴＥ（またはウェイトステートＰＷＡＩＴ）状態遷移したことを検出すると、ウェイトステートＳＷＷＡＩＴからライトステートＳＷＲＩＴＥに２クロックで状態遷移し（図１０及び図１１；Ｅ）、時刻ｔ７においてウェイト信号ＷＡＩＴをローレベルにネゲートする（図１１；Ｆ）。この動作によりアドレス信号ＡＤＤＲに対するライトデータＷＤＡＴＡのホールドタイムｔＨＤが確保される。
【００１３】
バスマスタ９１００は、ウェイト信号ＷＡＩＴがローレベルにネゲートされたことを検出すると、時刻ｔ８において、ライト信号ＷＲＮ及びチップセレクト信号ＣＳＮをハイレベルにネゲートし（図１１のＧ）、ライトトランザクションを終了する。
この後、ステートマシン９２２０は、時刻ｔ９において、ステートマシン９２１０がウェイトステートＳＷＷＡＩＴにないことを検出すると、２クロック後の時刻ｔ１０においてウェイトステートＰＷＡＩＴからアイドルステートＰＩＤＬＥに状態遷移し（図１０及び図１１；Ｈ）、次のトランザクションに備える。
【００１４】
次に、図１０及び図１２を参照してリード動作を説明する。
上述と同様に、初期状態において、周辺モジュール９２００内のステートマシン９２１０はアイドルステートＳＩＤＬＥにあるものとする。
【００１５】
この状態から、バスマスタ９１００がリードトランザクションを開始し、時刻ｔ１においてリード信号ＲＤＮ及びチップセレクト信号ＣＳＮをローレベルにアサートすると、ステートマシン９２１０は、時刻ｔ２において、リードトランザクションを検出してウェイトステートＳＲＷＡＩＴに状態遷移し（図１０及び図１２；ａ）、ウェイト信号ＷＡＩＴをハイレベルにアサートする（図１２；ｂ）。これにより周辺モジュール９２００に対してバスマスタ９１００がウェイト状態とされる。
【００１６】
他方、ステートマシン９２２０は、時刻ｔ３においてステートマシン９２１０がウェイトステートＳＷＷＡＩＴに状態遷移したことを検出すると、２クロック後の時刻ｔ４においてリードステートＰＲＥＡＤに状態遷移して（図１０及び図１２；ｃ）、リードデータＲＤＡＴＡをレジスタ９２３０からフリップフロップ９２８０にフェッチし、その後、ウエィトステートＰＷＡＩＴに状態遷移する（図１０；ｈ）。これまでの動作により、アドレス信号ＡＤＤＲのセットアップタイムｔＳＵＡが確保される。
【００１７】
一方、ステートマシン９２１０は、その後の時刻ｔ５においてステートマシン９２２０がウェイトステートＰＷＡＩＴに状態遷移したことを検出すると、その２クロック後の時刻ｔ７においてリードステートＳＲＥＡＤに状態遷移すると共に（図１０及び図１２；ｄ）、ウェイト信号ＷＡＩＴをローレベルにネゲートする（図１２；ｅ）。また、リードデータＲＤＡＴＡは、時刻ｔ６において、クロック信号ＳＣＬＫに同期化されて周辺モジュール９２００からバスに出力される。この動作によりリードデータＲＤＡＴＡのセットアップタイムｔＳＵＤが確保される。
【００１８】
バスマスタ９１００は、ウェイト信号ＷＡＩＴがローレベルにネゲートされたことを検出すると、時刻ｔ９において、リード信号ＲＤＮ及びチップセレクト信号ＣＳＮをハイレベルにネゲートし（図１２；ｆ）、リードトランザクションを終了する。
他方、ステートマシン９２２０は、時刻ｔ８において、ステートマシン９２１０がウェイトステートＳＲＷＡＩＴにないことを検出すると、２クロック後の時刻ｔ１０においてウェイトステートＰＷＡＩＴからアイドルステートＰＩＤＬＥに状態遷移し（図１２；ｇ）、次のトランザクションに備える。
【特許文献１】特開平９−０４４３９５号公報
【発明の開示】
【発明が解決しようとする課題】
【００１９】
ところで、一般に、高速なバスを介してバスマスタに周辺モジュールを接続したとしても、周辺モジュールが低速であれば、周辺モジュールに対する１回のデータ転送に多くのサイクルを費やす。このため、バスマスタが低速な周辺モジュールをアクセスする際に多くのレイテンシが発生するという問題があり、バスを高速化した意味がなくなる。
【００２０】
上述の従来技術に係る情報処理装置について言えば、上記レイテンシが増加する主な原因は二つある。一つは、バスの動作クロック信号ＳＣＬＫとは異なる非同期なクロック信号ＰＣＬＫが周辺モジュールの動作クロック信号として使用されることが挙げられる。もう一つは、バスの動作クロック周波数に比べ、周辺モジュールの動作クロック周波数が低いことが挙げられる。何れにおいても、バスマスタと周辺モジュールとの間でデータ転送する際のデータの同期化に要するディレイタイムと、データのセットアップ／ホールドタイムがレイテンシを増加させている。
【００２１】
このようにレイテンシが発生する結果、上述の図１１に示すライト動作では、時刻ｔ２から時刻ｔ６までの７サイクル分のウェイトサイクルを必要とし、図１２に示すリード動作では、時刻ｔ２から時刻ｔ６までの６サイクル分のウェイトサイクルを必要とし、その分、レイテンシが増加して次のトランザクションの開始が遅くなる。
【００２２】
なお、上述の従来技術のように、バスマスタが周辺モジュール内のレジスタをアクセスする場合に限れば、バスマスタ用のクロック信号でレジスタを動作させるように周辺モジュールを設計すれば、上述のレイテンシに関する問題を回避することができる。しかし、昨今、周辺モジュールは様々な製品に適用されることを前提として設計されるため、特定のシステムに特化して設計すると、周辺モジュールの汎用性が損なわれる。このため、レジスタであっても周辺モジュール用のクロック信号に同期するように設計されるのが通例となっており、従って上記の問題は依然として存在する。
【００２３】
本発明は、上記事情に鑑みてなされたものであり、バスマスタがレジスタ等を内蔵する周辺モジュールをアクセスする際のレイテンシを有効に低減することができる情報処理装置およびインターフェイス回路を提供することを目的とする。
【課題を解決するための手段】
【００２４】
本発明に係る情報処理装置は、第１クロック信号に同期して動作するバスマスタと、第２クロック信号に同期して動作する周辺モジュールと、前記第１クロック信号に同期して前記バスマスタとの間でデータ転送するための第１アクセスポートと前記第２クロック信号に同期して前記周辺モジュールとの間でデータ転送するための第２アクセスポートとを有する記憶手段を有し、該記憶手段を介して前記バスマスタと前記周辺モジュールとの間のデータ転送を遂行するインターフェイス回路とを備えた情報処理装置の構成を有する。
【００２５】
上記情報処理装置において、例えば、前記インターフェイス回路は、前記バスマスタからのアクセスに基づき前記第１アクセスポートに供給すべき第１制御信号を生成すると共に、前記バスマスタからのアクセスがライト動作である場合に該アクセスがあったこと示すフラグを発生する第１ステートマシンと、前記フラグを格納するフラグレジスタと、前記フラグレジスタに格納されたフラグを検索するフラグ検索回路と、前記フラグ検索回路による検索結果に基づき前記第２アクセスポートに供給すべき第２制御信号を生成する第２ステートマシンとを備えたことを特徴とする。
【００２６】
上記情報処理装置において、例えば、前記周辺モジュールは、複数の第１レジスタから構成され、前記フラグレジスタは、前記複数の第１レジスタに対応する複数の第２レジスタから構成され、前記フラグ検索回路は、前記複数の第２レジスタのうち、前記フラグが格納された第１レジスタに対応するレジスタを指定するアドレス信号を出力するように構成されたことを特徴とする。
【００２７】
上記情報処理装置において、例えば、前記フラグ検索回路は、前記複数の第２レジスタの各アドレスに対応するカウント値を巡回的に発生して前記周辺モジュール及び前記記憶手段に供給するカウンタと、前記カウント値を前記第１クロック信号で同期化してフラグポインタとして前記フラグレジスタに供給すると共に、該フラグポインタで指定されるフラグレジスタに前記フラグが格納されていることを示すレジスタポインタを前記第２クロック信号に同期化する同期化回路と、前記同期化回路で同期化された前記レジスタポインタと前記カウント値とを比較し、その比較結果を前記第２ステートマシンに供給する比較器とを備えて構成され、前記第２ステートマシンは、前記比較結果が前記レジスタポインタと前記カウント値との一致を示す場合に、前記第２制御信号としてリード動作に関する制御信号を生成して出力することを特徴とする。
【００２８】
上記情報処理装置において、例えば、前記複数の第２レジスタのそれぞれは、前記バスマスタからのアクセスの種別を示すフラグを格納するレジスタと、前記バスマスタからアクセスがあったことを示すフラグを格納するレジスタとから構成されたことを特徴とする請求項１ないし４の何れか１項記載の情報処理装置。
【００２９】
上記情報処理装置において、例えば、前記第１及び第２ステートマシンは、これら第１及び第２ステートマシンの一方が前記記憶手段をアクセスする際に、これら第１及び第２ステートマシンの他方をロックステートに状態遷移させることを特徴とする。
【００３０】
上記情報処理装置において、例えば、前記記憶手段は、前記第２アクセスポートとして複数のアクセスポートを備えたマルチポートＲＡＭから構成され、前記マルチポートＲＡＭの前記複数のアクセスポートには、前記周辺モジュールとして複数のモジュールがそれぞれ接続されたことを特徴とする。
【００３１】
本発明に係るインターフェイス回路は、第１クロック信号に同期して動作するバスマスタと第２クロック信号に同期して動作する周辺モジュールとの間のデータ転送を遂行するインターフェイス回路であって、前記第１クロック信号に同期して前記バスマスタとの間でデータ転送するための第１アクセスポートと前記第２クロック信号に同期して前記周辺モジュールとの間でデータ転送するための第２アクセスポートとを有する記憶手段と、前記バスマスタからのアクセスに基づき前記第１アクセスポートに供給すべき第１制御信号を生成すると共に、前記バスマスタからのアクセスがライト動作である場合に該アクセスがあったこと示すフラグを発生する第１ステートマシンと、前記フラグを格納するフラグレジスタと、前記フラグレジスタに格納されたフラグを検索するフラグ検索回路と、前記フラグ検索回路による検索結果に基づき前記第２アクセスポートに供給すべき第２制御信号を生成する第２ステートマシンとを備えたインターフェイス回路の構成を有する。
【発明の効果】
【００３２】
本発明によれば、バスマスタからのアクセスを受け付けるための第１アクセスポートと周辺モジュールからのアクセスを受け付けるための第２アクセスポートとを有する記憶手段を介してバスマスタと周辺モジュールとの間のデータ転送を遂行するようにしたので、バスマスタがレジスタ等の周辺モジュールをアクセスする際のレイテンシを有効に低減することができる。
【発明を実施するための最良の形態】
【００３３】
以下、図面を参照しながら、本発明の実施形態を説明する。
図１に、本発明の実施形態に係る情報処理装置の概略構成を示す。同図において、符号１１００は、バスクロック信号（第１クロック信号）ＳＣＬＫに同期して動作するＣＰＵ等のバスマスタを示し、符号１２００は、周辺クロック信号（第２クロック信号）ＰＣＬＫに同期して動作する周辺モジュールを示す。これらバスマスタ１１００と周辺モジュール１２００はバス１３００を介して相互に接続されている。
【００３４】
周辺モジュール１２００は、バスマスタ１１００に対してレジスタ機能を提供するものであり、マルチポートＲＡＭの一種であるデュアルポートＲＡＭ１２１０とレジスタ群１２２０とを含み、このレジスタ群１２２０は複数のレジスタＲＡ〜ＲＺから構成される。デュアルポートＲＡＭ１２１０は、上記複数のレジスタＲＡ〜ＲＺと一対一に対応するデータ記憶領域ＭＡ〜ＭＺを備え、このデータ記憶領域ＭＡ〜ＭＺにはレジスタＲＡ〜ＲＺの全ての値が格納される。即ち、デュアルポートＲＡＭ１２１０は、いわばレジスタＲＡ〜ＲＺのミラー値を格納するミラー回路として機能する。
【００３５】
また、デュアルポートＲＡＭ１２１０は、バスマスタ１１００とレジスタ群１２２０との間のインターフェイス回路としても機能し、以下に詳細に説明するように、このデュアルポートＲＡＭ１２１０を介してバスマスタ１１００とレジスタ群１２２０との間のデータ転送が遂行されるように構成されている。
【００３６】
図２に、上記周辺モジュール１２００の詳細構成を示す。同図において、上述の図１に示す要素と同一要素には同一符号を付す。
図２において、符号１２１１及び符号１２１２は、デュアルポートＲＡＭ１２１０が備える第１及び第２アクセスポートを示す。このうち、第１アクセスポート１２１１は、バスクロック信号ＳＣＬＫに同期してバスマスタ１１００との間でデータ転送するためのものであり、この第１アクセスポート１２１１には、後述の第１ステートマシン（ＳＦＳＭ）１２３０からアドレス信号ｍＡＤＤＲと各種の制御信号（ＣＳＮ，ＷＲＮ，ＲＤＮ）が供給される。
【００３７】
第２アクセスポート１２１２は、周辺クロック信号ＰＣＬＫに同期して周辺モジュール１２００との間でデータ転送するためのものであり、後述のフラグ検索回路１２６０からアドレス信号ｍａｄｄｒが供給されると共に、後述の第２ステートマシン（ＰＦＳＭ）１２４０から各種の制御信号（ｍｃｓｎ，ｍｗｒｎ，ｍｒｄｎ）が供給される。
【００３８】
符号１２３０は、第１アクセスポート１２１１を介してデュアルポートＲＡＭ１２１０をアクセスするための第１ステートマシン（ＳＦＳＭ）を示す。この第１ステートマシン１２３０には、バスマスタ１１００から、アドレス信号ＡＤＤＲ、チップセレクト信号ＣＳＮ、ライト信号ＷＲＮ、リード信号ＲＤＮが供給される。符号１２４０は、第２アクセスポート１２１２を介してデュアルポートＲＡＭ１２１０をアクセスするための第２ステートマシン（ＰＦＳＭ）を示す。
【００３９】
符号１２５０はフラグレジスタを示す。このフラグレジスタ１２５０は、第１ステートマシン１２３０が発生する後述のフラグを格納するためのものであり、複数のレジスタＳＡ〜ＳＺと複数のレジスタＦＡ〜ＦＺとの２種類のレジスタ群から構成される。ここで、レジスタＳＡ〜ＳＺは、バスマスタ１１００が発行するトランザクションの種別（ライトトランザクション／リードトランザクション等）を表すフラグを格納するためのものであり、レジスタＦＡ〜ＦＺは、上記トランザクションの有無を表すフラグを格納するためのものである。
【００４０】
これら二種類のレジスタＳＡ〜ＳＺ及びレジスタＦＡ〜ＦＺは、上述のレジスタ群１２２０のレジスタＲＡ〜ＲＺと一対一に対応していると共に、デュアルポートＲＡＭ１２１０のデータ記憶領域ＭＡ〜ＭＺにも一対一に対応している。例えば、フラグレジスタ１２５０内のレジスタＳＡとレジスタＦＡは、レジスタ群１２２０内のレジスタＲＡに対応すると共に、デュアルポートＲＡＭ１２１０のデータ記憶領域ＭＡに対応している。以下同様に、レジスタ群１２２０内の各レジスタに対して、フラグレジスタ１２５０内の二種類のレジスタ及びデュアルポートＲＡＭ１２１０内の各データ記憶領域が対応している。
【００４１】
ここで、第１ステートマシン１２３０は、バスマスタ１１００からデュアルポートＲＡＭ１２１０にデータが書き込まれると、このデータが書き込まれたデュアルポートＲＡＭ１２１０内のデータ記憶領域に対応するフラグレジスタ１２５０内のレジスタにフラグをセットする。また、第２ステートマシン１２４０は、そのデータがデュアルポートＲＡＭ１２１０から読み出されると、そのフラグをクリアする。このフラグは、第１ステートマシン１２３０に対しては、デュアルポートＲＡＭ１２１０に対するライト動作を禁止する意味を有し、第２ステートマシン１２４０に対してはデュアルポートＲＡＭ１２１０からのリード動作を許容する意味を有している。
【００４２】
例えば、後述するように、第１ステートマシン１２３０は、デュアルポートＲＡＭ１２１０にデータを書き込む際にフラグレジスタ１２５０を参照し、フラグがセットされていると、そのフラグに対応するデュアルポートＲＡＭ１２１０のデータ記憶領域に対するライト動作を中止する。これにより、デュアルポートＲＡＭ１２１０から読み出されていないデータ、即ちレジスタ群１２２０への転送が完了していないデータの更新（破壊）を防止する。
【００４３】
また、第２ステートマシン１２４０は、フラグレジスタ１２５０にフラグがセットされていると、そのフラグに対応するデュアルポートＲＡＭ１２１０のデータ記憶領域のリード動作を遂行すると共に、そのフラグをクリアする。このようにフラグをクリアすることにより、その後、このフラグが格納されていたレジスタに対応するデュアルポートＲＡＭ１２１０内のデータ記憶領域へのライト動作が許可されるようになる。
【００４４】
符号１２６０はフラグ検索回路を示す。このフラグ検索回路１２６０は、同期化回路１２６１、比較器１２６２、カウンタ１２６３から構成され、フラグレジスタ１２５０内のフラグを検索し、その検索結果として、検索されたフラグの位置（フラグが格納されているフラグレジスタ１２５０内のレジスタ）に対応するレジスタ群１２２０内のレジスタと、デュアルポートＲＡＭ１２１０内のデータ記憶領域とを指定するためのアドレス信号ｍａｄｄｒを生成するものである。
【００４５】
符号１２２１はデコーダを示す。このデコーダ１２２１は、上記アドレス信号ｍａｄｄｒに基づきレジスタ群１２２０内の一つのレジスタを選択的に特定するものである。レジスタ群１２２０内の各レジスタのデータ入力部は、リードデータｒｄａｔａ用のバスを介してデュアルポートＲＡＭ１２１０の第２アクセスポート１２１２と接続されている。
符号１２２２はマルチプレクサを示す。マルチプレクサ１２２２の入力部には、レジスタ群１２２０内の各レジスタの出力部が接続されると共に、このマルチプレクサ１２２２の出力部は、ライトデータｗｄａｔａ用のバスを介して上記第２アクセスポート１２１２に接続されている。
【００４６】
上述のデュアルポートＲＡＭ１２１０、第１ステートマシン１２３０、第２ステートマシン１２４０、フラグレジスタ１２５０、フラグ検索回路１２６０は、このデュアルポートＲＡＭ１２１０を介してバスマスタ１１００と周辺モジュール内のレジスタ群１２２０との間のデータ転送を遂行するインターフェイス回路として機能する。このインターフェイス回路は、周辺モジュール１２００に内蔵されている必要はなく、周辺モジュール１２００の外部に単体で備えられても良い。
【００４７】
次に、図３ないし図５を参照して、本実施形態の情報処理装置の動作を説明する。
図３は、本情報処理装置の第１ステートマシン１２３０及び第２ステートマシン１２４０の状態遷移図であり、図４および図５は、それぞれ、本情報処理装置のライト動作及びリード動作のタイミングチャートである。
なお、その動作説明において、各ステートマシンの状態遷移については図３を参照され、各時刻での動作については図４及び図５を適宜参照されたい。
【００４８】
先ず、図３の状態遷移図に示される各ステートの意味を説明しておく。
（１）第１ステートマシン１２３０のステート（ＳＣＬＫ同期）
ＳＩＤＬＥ；バスマスタ１１００によるライトトランザクション、リードトランザクションを待ち受けるアイドルステート。
ＳＷＡＩＴ；バスマスタ１１００に対しウェイトをかけるためのウェイトステート。現在アクセスしようとしているレジスタに対応するフラグレジスタ１２５０のレジスタフラグＲＥＧ＿ＦＬＧがフラグセットステートＦＬＧＳＥＴにある場合に状態遷移する。
ＳＷＲＩＴＥ；第１ステートマシン１２３０で認識するライトステート。次のサイクルでバスマスタ１１００はライトトランザクションを終了する。
ＳＲＥＡＤ；第１ステートマシン１２３０で認識するリードステート。次のサイクルでバスマスタ１１００はリードトランザクションを終了する。
【００４９】
（２）フラグレジスタ１２５０のステート（ＳＣＬＫ同期）
ＦＬＧＣＬＲ；フラグレジスタ１２５０のレジスタフラグＲＥＧ＿ＦＬＧがクリアされたステート。
ＦＬＧＳＥＴ；フラグレジスタ１２５０のレジスタフラグＲＥＧ＿ＦＬＧがセットされたステート。
【００５０】
（３）第２ステートマシン１２４０のステート（ＰＣＬＫ同期）
ＰＩＤＬＥ；第１ステートマシン１２３０によるライトトランザクション、リードトランザクションを待ち受けるアイドルステート。
ＰＲＥＡＤ；第２ステートマシン１２４０で認識するリードステート。
ＰＦＣＬＲ；第２ステートマシン１２４０で認識するライトステート。
以上で、各ステートの意味を説明した。
【００５１】
続いて、バスマスタ１１００からデュアルポートＲＡＭ１２１０へのライト動作（バスマスタ１１００からレジスタ群１２２０へのデータ転送）と、リード動作（レジスタ群１２２０からバスマスタ１１００へのデータ転送）を順に説明する。
（１）ライト動作
図３および図４を参照してデュアルポートＲＡＭ１２１０へのライト動作を説明する。
初期状態では、第１ステートマシン１２３０がバスマスタ１１００からのトランザクション（アクセス）を待ち受けるアイドルステートＳＩＤＬＥにあり、且つ、フラグレジスタ１２５０内の全レジスタがクリアされた状態にあるものとする。
【００５２】
この状態から、バスマスタ１１００がライトトランザクションを開始すると、時刻ｔ１において、第１ステートマシン１２３０に供給されるライト信号ＷＲＮがローレベルになり、チップセレクト信号ＣＳＮがローレベルになり、アドレス信号ＡＤＤＲが、レジスタＲＺに対応するデータ記憶領域ＭＺを指定する値に変化する。
【００５３】
第１ステートマシン１２３０は、これらの信号状態から、バスマスタ１１００によるライトトランザクションを検出すると、まず、フラグレジスタ１２５０を参照し、フラグがセットされているか否かを調べる。この場合は全てのフラグがクリアされている状態にあるため、デュアルポートＲＡＭ１２１０に対するライト動作は禁止されない。そこで、第１ステートマシン１２３０は、時刻ｔ２においてライトステートＳＷＲＩＴＥに状態遷移し、デュアルポートＲＡＭ１２１０のデータ記憶領域ＭＺにライトデータＷＤＡＴＡを書き込む（図４；Ａ）。
【００５４】
そして、時刻ｔ２から１サイクル後の時刻ｔ３において、第１ステートマシン１２３０は、ライトステートＳＷＲＩＴＥからアイドルステートＳＩＤＬＥに状態遷移してデータ記憶領域ＭＺに対するライトを完了する。このとき、第１ステートマシン１２３０は、レジスタＲＺに対応するフラグレジスタ１２５０内のレジスタＦＺにフラグをセットすると共に（図４；Ｂ）、且つ、レジスタＳＺには、ライトした旨を示すフラグをセットする。
【００５５】
また、時刻ｔ３においてアドレス信号ＡＤＤＲの値がデータ記憶領域ＭＡを指定する値に変化すると、第１ステートマシン１２３０は、同様に、フラグレジスタ１２５０を参照して時刻ｔ４においてライトステートＳＷＲＩＴＥに状態遷移し、データ記憶領域ＭＡにライトデータＷＤＡＴＡを書き込む（図４；Ｃ）。そして、時刻ｔ５において、ライトステートＳＷＲＩＴＥからアイドルステートＳＩＤＬＥに状態遷移してデータ記憶領域ＭＡに対するライトを完了し、ライトが完了したことを表すフラグを、レジスタＲＡに対応するフラグレジスタ１２５０内のレジスタＦＡにセットすると共に（図４；Ｄ）、レジスタＳＡには、トランザクションがライトアクセスである旨のフラグをセットする。
【００５６】
また、時刻ｔ５においてアドレス信号ＡＤＤＲの値がデータ記憶領域ＭＢを指定する値に変化すると、同様に、第１ステートマシン１２３０は、フラグレジスタ１２５０を参照して時刻ｔ６においてライトステートＳＷＲＩＴＥに状態遷移し、データ記憶領域ＭＢにライトデータＷＤＡＴＡを書き込む（図４；Ｅ）。そして、時刻ｔ７において、ライトステートＳＷＲＩＴＥからアイドルステートＳＩＤＬＥに状態遷移してデータ記憶領域ＭＢに対するライトを完了し、ライトが完了したことを表すフラグを、レジスタＲＢに対応するフラグレジスタ１２５０内のレジスタＦＢにセットすると共に（図４；Ｆ）、レジスタＳＢには、トランザクションがライトアクセスである旨のフラグをセットする。
【００５７】
更に、時刻ｔ７において、再び、アドレス信号ＡＤＤＲの値がデータ記憶領域ＭＺを指定する値に変化すると、第１ステートマシン１２３０は、再び、上述のレジスタＲＺに対するライトトランザクションを検出し、フラグレジスタ１２５０を参照して、レジスタＦＺ，ＳＺにフラグがセットされているか否かを調べる。この場合、これらのレジスタにはフラグが既にセットされているため、データ記憶領域ＭＺに対するライトが禁止される。そこで、時刻ｔ８において、第１ステートマシン１２３０は、アイドルステートＩＤＬＥからウェイトステートＳＷＡＩＴに状態遷移して、ウェイト信号ＷＡＩＴをアサートし、バスマスタ１１００に対してウェイトをかける（図４；Ｇ）。
【００５８】
その後の時刻ｔ９において、第２ステートマシン１２４０は、データ記憶領域ＭＺのデータが読み出されると、フラグレジスタ１２５０のレジスタＦＺ，ＳＺの各フラグをクリアする。第１ステートマシン１２３０は、レジスタＦＺ，ＳＺの各フラグがクリアされたことを検出すると、時刻ｔ１０において、ウェイトステートＳＷＡＩＴからライトステートＳＷＲＩＴＥに状態遷移し、ウェイト信号ＷＡＩＴをローレベルにネゲートする（図４；Ｈ）。これ以後、バスマスタ１１００は、データ記憶領域ＲＺに対するライト動作が再び可能となる。そこで、第１ステートマシン１２３０は、ライトステートに状態遷移して１サイクルでデータ記憶領域ＭＺに対するライトを終了し、レジスタＦＺ，ＳＺに各フラグをセットする（図４；Ｊ）。
【００５９】
このように、第１ステートマシン１２３０及び第２ステートマシン１２４０によるデュアルポートＲＡＭ１２１０に対するアクセスは、常にフラグレジスタ１２５０を参照して行われ、そのフラグの状態によって各ステートマシンのアクセスが許可／禁止される。
【００６０】
ここで、デュアルポートＲＡＭ１２１０からレジスタ群１２２０へのデータ転送を説明する。上述のように、バスマスタ１１００からデュアルポートＲＡＭ１２１０にデータがライトされると、フラグレジスタ１２５０内の該当するレジスタにフラグがセットされるが、このフラグレジスタ１２５０内のフラグは、常時、フラグ検索回路１２６０によって監視されている。
【００６１】
即ち、フラグ検索回路１２６０内のカウンタ１２６３は、レジスタ群１２２０内のレジスタＲＡ〜ＲＺの各アドレスに対応するカウント値を巡回的に発生する。このカウント値は、アドレス信号ｍａｄｄｒとしてデュアルポートＲＡＭ１２１０の第２アクセスポート１２１２とデコーダ１２２１に供給されると共に、フラグレジスタ１２５０内のレジスタを指定するためのフラグポインタｆｐとされる。
【００６２】
このフラグポインタｆｂは、同期化回路１２６１でバスクロック信号ＳＣＬＫに同期化された後にフラグポインタＦＰとしてフラグレジスタ１２５０に供給される。フラグレジスタ１２５０では、フラグポインタＦＰで指定されるレジスタにフラグがセットされていると、その格納されたフラグレジスタに対応するデュアルポートＲＡＭ１２１０内のデータ記憶領域のアドレスに相当するリードポインタＲＰを出力する。
【００６３】
リードポインタＲＰは同期化回路１２６１で周辺クロック信号ＰＣＬＫに同期化されて比較器１２６２に供給される。比較器１２６２は、同期化回路１２６１で同期化されたフラグポインタの値とカウンタ１２６３からのカウント値とを比較し、これらが一致した場合に一致検出信号ｍａｔをアサートする。この一致検出信号ｍａｔがアサートされたときにカウンタ１２６３から出力されているアドレス信号ｍａｄｄｒが、レジスタ群１２２０にライトすべきデータが存在するデュアルポートＲＡＭ１２１０内のデータ記憶領域のアドレスとなる。
【００６４】
そこで、第２ステートマシン１２４０は、一致検出信号ｍａｔがアサートされたときに、デュアルポートＲＡＭ１２１０の第２アクセスポート１２１２にリード信号ｍｒｄｎをアサートして、このときのアドレス信号ｍｒｄｎで指定されるデュアルポートＲＡＭ１２１０内のデータ記憶領域からリードデータｒｄａｔａを読み出す。このリードデータｒｄａｔａはレジスタ群１２２０のレジスタＲＡ〜ＲＺに向けて送出される。デコーダ１２２１は、カウンタ１２６３からのアドレス信号ｍａｄｄｒに基づき、レジスタＲＡ〜ＲＺの一つを選択し、そのレジスタに上記リードデータｒｄａｔａを格納させる。
【００６５】
以上により、デュアルポートＲＡＭ１２１０を介してバスマスタ１１００からレジスタ群１２２０にデータが転送される。このとき、バスマスタ１１００からみれば、デュアルポートＲＡＭ１２１０はバスマスタの動作クロック信号と同じバスクロック信号ＳＣＬＫで動作するので、レイテンシを要することなく、バスマスタ１１００からデュアルポートＲＡＭ１２１０に高速にデータが転送される。従って、バスマスタ１１００からレジスタ群１２２０への見かけ上のデータ転送速度を向上させることができる。
【００６６】
このライト動作では、周辺モジュールがデュアルポートＲＡＭ１２１０のデータ記憶領域からデータをリードしているときにバスマスタ１１００がこのデータ記憶領域にデータをライトしようとした場合に、デュアルポートＲＡＭ１２１０に対するアクセスが競合するので、このような場合にバスマスタ１１００にウェイトがかけられる。しかしながら、ＣＰＵが実行する処理において、実際上、レジスタ群１２２０内のレジスタＲＡ〜ＲＺに一旦設定した値を連続して書き換えるケースは極めて稀であるため、アクセスの競合を防止するための上記ウェイトに起因してデータ転送効率が低下することは事実上ないと言える。
【００６７】
（２）リード動作
次に、図３および図５を参照して、バスマスタ１１００によるデュアルポートＲＡＭ１２１０からのリード動作を説明する。
ここでは、上述のライト動作でデュアルポートＲＡＭ１２１０のデータ記憶領域ＭＺにデータを書き込んだ後、データ記憶領域ＭＡ，ＭＢ，ＭＺからデータを順次読み出す場合を説明する。
【００６８】
リードトランザクションに先だって、バスマスタ１１００がライトトランザクションを開始すると、時刻ｔ１において、第１ステートマシン１２３０に供給されるライト信号ＷＲＮ及びチップセレクト信号ＣＳＮがローレベルになり、アドレス信号ＡＤＤＲが、レジスタＲＺに対応するデータ記憶領域ＭＺを指定する値に変化する。
【００６９】
これらの信号状態から、第１ステートマシン１２３０はライトトランザクションを検出すると、上述と同様にフラグレジスタ１２５０を参照し、フラグがセットされているか否かを調べる。この場合、フラグレジスタ１２５０内のレジスタＦＺ，ＳＺのフラグはクリアされているため、第１ステートマシン１２３０は、時刻ｔ２においてライトステートＳＷＲＩＴＥに状態遷移し、データ記憶領域ＭＺにライトデータＷＤＡＴＡを書き込む（図５；Ａ）。そして１サイクル後の時刻ｔ３においてライトステートＳＷＲＩＴＥからアイドルステートＳＩＤＬＥに状態遷移し、データ記憶領域ＭＺに対するライトを完了する。このとき、第１ステートマシン１２３０は、レジスタＦＺ，ＳＺにフラグをセットする。（図５；Ｂ）
【００７０】
その後、時刻ｔ８において、バスマスタ１１００がリードトランザクションを開始すると、ライト信号ＷＲＮがハイレベルにネゲートされ、リード信号ＲＤＮがローレベルにアサートされ、アドレス信号ＡＤＤＲがデータ記憶領域ＭＺを指定する値に変化する。これらの信号状態から、第１ステートマシン１２３０はリードトランザクションを検出すると、上述と同様にフラグレジスタ１２５０を参照し、レジスタＦＡ，ＳＡにフラグがセットされているか否かを調べる。この場合、レジスタＦＺ，ＳＺにフラグがセットされた状態にあるため、第１ステートマシン１２３０は、ウェイトステートＳＷＡＩＴに状態遷移して、ウェイト信号ＷＡＩＴをハイレベルにアサートし、バスマスタ１１００にウェイトをかける（図５；Ｃ）。
【００７１】
また、図５において、例えば時刻ｔ１０において、第２ステートマシン１２４０によりレジスタＦＺ，ＳＡのフラグがクリアされ、第１ステートマシン１２３０がフラグＦＺのクリアを検出すると、時刻ｔ１１において、第１ステートマシン１２３０はウェイトステートＳＷＡＩＴからリードステートＳＲＥＡＤに状態遷移する（図５；Ｄ）。そして、第１ステートマシン１２３０は、リードステートＳＲＥＡＤでデュアルポートＲＡＭ１２１０からデータを読み出し、時刻ｔ１０から２サイクルでリードアクセスを終了する。
【００７２】
また、第１ステートマシン１２３０は、時刻ｔ３のサイクルでのアイドルステートＳＩＤＬＥにおいて、デュアルポートＲＡＭ１２１０内のデータ記憶領域ＭＡ（レジスタＲＡに対応する記憶領域）に対するアクセスを検出すると、フラグレジスタ１２５０内のレジスタＦＡを参照する。この場合、レジスタＦＡがクリアされた状態（アクセス許可の状態）にあるため、第１ステートマシン１２３０は、リードステートＳＲＥＡＤに状態遷移し（図５；Ｅ）、リードデータＲＤＡＴＡをデュアルポートＲＡＭ１２１０から読み出す。このバスマスタ１１００によるリード時には、フラグレジスタ１２５０にフラグをセットする必要はない（図５；Ｆ）。
【００７３】
このリード動作では、周辺モジュールがデュアルポートＲＡＭ１２１０のデータ記憶領域にデータをライトしているときにバスマスタ１１００がこのデータ記憶領域からデータ読み出そうとした場合にデュアルポートＲＡＭ１２１０に対するアクセスが競合するので、このような場合にバスマスタ１１００にウェイトがかけられる。
以上で、ライト動作とリード動作を説明した。
【００７４】
次に、図６の状態遷移図を参照して、バスマスタ１１００と周辺モジュール１２００の両方がデュアルポートＲＡＭ１２１０を同時に書き換えようとした場合のアクセス競合防止動作を説明する。概略的には、このアクセス競合防止動作では、第１ステートマシン１２３０及び第２ステートマシン１２４０は、これら第１及び第２ステートマシンの一方がデュアルポートＲＡＭ１２１０をアクセスする際に、これら第１及び第２ステートマシンの他方をロックステートに状態遷移させる。
【００７５】
先ず、図６の状態遷移図に示される各ステートの意味を説明しておく。
ＦＬＧＣＬＲ；フラグレジスタ１２５０のレジスタフラグＲＥＧ＿ＦＬＧがクリアされた状態のステート。
（１）第１ステートマシン１２３０のステート
ＳＩＤＬＥ；バスマスタ１１００によるライトトランザクション、リードトランザクションを待ち受けるステート。
ＳＷＡＩＴ；バスマスタ１１００に対しウェイトをかけるためのウェイトステート。現在アクセスしようとしているレジスタのレジスタフラグＲＥＧ＿ＦＬＧがフラグセットステートＦＬＧＳＥＴにある場合に状態遷移する。
ＳＷＲＩＴＥ；第１ステートマシン１２３０で認識するライトステート。次のサイクルでバスマスタ１１００はライトトランザクションを終了する。
ＳＲＥＡＤ；第１ステートマシン１２３０で認識するリードステート。次のサイクルでバスマスタ１１００はリードトランザクションを終了する。
【００７６】
（２）フラグレジスタ１２５０のステート
ＦＬＧＣＬＲ；レジスタフラグＲＥＧ＿ＦＬＧがクリアされたステート。
ＦＬＧＳＥＴ；レジスタフラグＲＥＧ＿ＦＬＧがセットされたステート。
ＦＬＧＬＯＣＫ；フラグクリアステートで第２ステートマシン１２４０からのロック要求を受信すると、本ステートに状態遷移する。本ステートでバスマスタ１１００からのリード／ライトトランザクションが開始されると、ウェイト信号を出力してバスマスタ１１００にウェイトをかける。この期間中、第２ステートマシン１２４０はデュアルポートＲＡＭ１２１０に割り込みフラグレジスタの値をライトする。
【００７７】
（３）第２ステートマシン１２４０のステート
ＰＩＤＬＥ；第１ステートマシン１２３０によるライトトランザクション、リードトランザクションを待ち受けるステート。
ＰＬＯＣＫＲＥＱ；割り込みフラグレジスタの値の更新を検出すると、本ステートに状態遷移し、レジスタフラグＲＥＧ＿ＦＬＧに対しロック要求を発行する。
ＰＷＲＩＴＥ；レジスタフラグＲＥＧ＿ＦＬＧをロックした状態で本ステートに状態遷移し、デュアルポートＲＡＭ１２１０に割り込みフラグレジスタの値をライトする。
ＰＵＮＬＯＣＫ；デュアルポートＲＡＭ１２１０に割り込みフラグレジスタの値をライトし終えると、本ステートに状態遷移し、レジスタフラグＲＥＧ＿ＦＬＧに対しアンロック要求を発行する。
ＰＲＥＡＤ；第２ステートマシン１２４０で認識するリードステート。
ＰＦＣＬＲ；第２ステートマシン１２４０で認識するライトステート。
【００７８】
上記各ステートに基づくアクセス競合防止方法を説明する。
図２に示す周辺モジュール１２００内の第２ステートマシン１２４０は、プリセット信号ＰＲＥＳＥＴに応答してアイドルステートＰＩＤＬＥに状態遷移し（図６；Ａ）、この状態で割り込みフラグレジスタの更新を検出すると、ロック要求ステートＰＬＯＣＫＲＥＱに状態遷移して、フラグレジスタ１２５０内のレジスタフラグＲＥＧ＿ＦＬＧに対してロック要求を発行する。
【００７９】
フラグレジスタ１２５０内のレジスタフラグＲＥＧ＿ＦＬＧは、フラグクリアステートＦＬＧＣＬＲにおいて第２ステートマシン１２４０から上記ロック要求を受信すると、フラグクリアステートＦＬＧＣＬＲからフラグロックステートＦＬＧＬＯＣＫに状態遷移する（図６；Ｂ）。第１ステートマシン１２３０は、フラグレジスタ１２５０がフラグロックステートＦＬＧＬＯＣＫに状態遷移したことを検出し、その状態でバスマスタ１１００からのライトトランザクションを検出すると、ウェイトステートＳＷＡＩＴに状態遷移して（図６；Ｃ）、バスマスタ１１００にウェイトをかける。
【００８０】
第２ステートマシン１２４０は、ロック要求ステートＰＬＯＣＫＲＥＱにおいて、レジスタフラグＲＥＧ＿ＦＬＧがフラグロックステートＦＬＧＬＯＣＫに遷移したことを検出すると、ライトステートＰＷＲＩＴＥに状態遷移し（図６；Ｄ）、デュアルポートＲＡＭ１２１０に対し、割り込みフラグレジスタの値をライトする。第２ステートマシン１２４０は、ライトステートＰＷＲＩＴＥにおいて、デュアルポートＲＡＭ１２１０に対する上記割り込みフラグのライトを終了すると、アンロックステートＰＵＮＬＯＣＫに状態遷移し（図６；Ｅ）、フラグレジスタ１２５０内のレジスタフラグＲＥＧ＿ＦＬＧに対しアンロック要求を発行する。
【００８１】
レジスタフラグＲＥＧ＿ＦＬＧは、第２ステートマシン１２４０から上記アンロック要求を受信すると、フラグロックステートＦＬＧＬＯＣＫからフラグクリアステートＦＬＧＣＬＲに状態遷移し（図６；Ｆ）、上記ロックを解除する。ロックが解除されると、第１ステートマシン１２３０はウェイトを解除し、バスマスタ１１００からのトランザクションを受け付けて実行する。
【００８２】
このように、フラグレジスタ１２５０のレジスタフラグＲＥＧ＿ＦＬＧに、バスマスタ１１００からのアクセスに対してロックをかけるフラグロックステートＦＬＧＬＯＣＫを持たせることにより、デュアルポートＲＡＭ１２１０に対するアクセスの競合を防止している。
【００８３】
上述の本実施形態に係る情報処理装置の特徴をまとめる。
本情報処理装置では、周辺モジュール１２００の本体をなすレジスタ群１２２０とバスマスタ１１００との間にデュアルポートＲＡＭ１２１０がいわばミラー回路として存在し、このミラー回路を介してデータ転送が遂行される。このデータ転送に関する制御は、バスクロック信号ＳＣＬＫに同期して動作する第１ステートマシン１２３０と周辺クロック信号ＰＣＬＫに同期して動作する第２ステートマシン１２４０とで遂行される。バスマスタ１１００が上記ミラー回路に対しレジスタライトを行うと、第１ステートマシン１２３０は、該当するフラグレジスタ１２５０内のレジスタにライトフラグをセットする。
【００８４】
ライトフラグがセットされると、第２ステートマシン１２４０がレジスタフラグのライトイベントを検出する。このイベントを検出すると、第２ステートマシン１２４０は、上記ミラー回路にライトされたデータを読み出し、該当するレジスタ群１２２０内のレジスタの値を更新する。このとき、該当するアドレスの割り出しは、フラグ検索回路１２６０により、フラグの立っているフラグレジスタ１２５０のアドレスを割り出すことにより行われ、第２ステートマシン１２４０は、この割り出されたアドレスで特定されるデュアルポートＲＡＭ１２１０のデータ記憶領域からデータを読み出す。フラグ検索回路１２６０によるアドレスの割り出しは、フラグ検索回路１２６０内のカウンタのカウント値とレジスタのアドレスを示すリードポインタＲＰとを比較することにより行われる。
【００８５】
第２ステートマシン１２４０は、レジスタ値の更新が完了すると、該当するレジスタのフラグをクリアする。同一アドレスへの同時アクセスを行うと、デュアルポートＲＡＭ１２１０内のデータが破壊されるおそれがある。しかしながら、本実施形態に係る情報処理装置によれば、同時にアクセスが発生した場合、フラグレジスタ１２５０を参照して、バスマスタ１１００にウェイトをかけるので、データの破壊を回避することができる。また、設定されたレジスタの値は頻繁に書き換えられることはないので、上記ウェイトによりデータ転送効率が犠牲になることは事実上ない。
【００８６】
このような本情報処理送致によれば、バスマスタ１１００によるデュアルポートＲＡＭ１２１０に対するリード／ライドアクセスは、バスクロック信号ＳＣＬＫを使用して行われるため、レイテンシを増加させる原因となる非同期データの同期化と、特別なデータのセットアップ／ホールドタイムを確保する必要がなくなる。従って、バスマスタ１１００から見たレジスタアクセス時のレイテンシを大幅に低減することが可能となる。これにより、バスを高速化すればする程、レジスタアクセスにおけるバスマスタの占有率を下げることが可能となり、システム全体のパフォーマンスを向上させることができる。
【００８７】
次に、図７を参照して本実施形態の変形例を説明する。
上述の実施形態では、周辺モジュール１２００にデュアルポートＲＡＭ１２１０を組み込んで、この周辺モジュール１２００とバスマスタ１１００との間で一対一のデータ転送を行う場合を説明したが、ここでは、デュアルポートＲＡＭ１２１０に代えて、マルチポートＲＡＭの一種である５ポートＲＡＭ７００を介して、ＣＰＵ等のバスマスタ７１０を含めた複数の周辺モジュール７２０，７３０，７４０，７５０の間でデータ転送を行う場合を説明する。
【００８８】
この変形例では、５ポートＲＡＭ７００は、周辺モジュール７２０〜７５０の全レジスタに対応するデータ記憶領域を備え、このデータ記憶領域には周辺モジュール７２０〜７５０の全レジスタの値が格納される。また、この５ポートＲＡＭ７００の各アクセスポートには、クロック信号ＣＬＫで動作するＣＰＵ等のバスマスタ７１０と、クロック信号ＣＬＫＡで動作する周辺モジュール７２０と、クロック信号ＣＬＫＢで動作する周辺モジュール７３０と、クロック信号ＣＬＫＣで動作する周辺モジュール７４０と、クロック信号ＣＬＫＤで動作する周辺モジュール７４０とが接続され、この５ポートＲＡＭ７００は、これらバスマスタ７１０及び周辺モジュール７２０〜７５０間のデータ転送を遂行するインターフェイス回路として機能する。
【００８９】
また、５ポートＲＡＭ７００は、上述の第１ステートマシン１２３０、第２ステートマシン１２４０、フラグレジスタ１２５０、フラグ検索回路１２６０にそれぞれ対応する構成を備え、５ポートＲＡＭ７００の各アクセスポートにステートマシンが設けられる。このうち、バスマスタ７１０が接続されるアクセスポートに設けられるステートマシンは上述の第１ステートマシン１２３０と同様の機能を有し、周辺モジュール７２０〜７５０が接続された他のアクセスポートに設けられるステートマシンは上述の第２ステートマシン１２４０と同様の機能を有している。また、フラグ検索回路１２６０に対応する構成は、フラグレジスタ１２５０に対応するフラグレジスタを検索してモジュール別に検索結果を通知する機能を有している。
【００９０】
このような変形例によれば、バスマスタ７１０は、仮に周辺モジュール７２０〜７５０で使用されるクロック信号がバスマスタ７１０で使用されるクロック信号と完全に非同期であり且つ低速であったとしても、バスマスタ７１０は、周辺モジュール７２０〜７５０の全レジスタに対してクロック信号ＳＣＬＫの２サイクル分の時間でアクセスを終了することが可能となる。このため、上述の本実施形態と同様に、バスマスタ７１０が各周辺モジュールをアクセスする際のレイテンシを有効に低減することが可能になり、システム全体のパフォーマンスを向上させることができる。
【図面の簡単な説明】
【００９１】
【図１】本発明の実施形態に係る情報処理装置の概略構成を示す図である。
【図２】本発明の実施形態に係る情報処理装置が備える周辺モジュールの詳細構成を示す図である。
【図３】本発明の実施形態に係る情報処理装置が備えるステートマシンの状態遷移図である。
【図４】本発明の実施形態に係る情報処理装置のライト動作を説明するためのタイミングチャートである。
【図５】本発明の実施形態に係る情報処理装置のリード動作を説明するためのタイミングチャートである。
【図６】本発明の実施形態に係るアクセス競合防止のための各ステートマシンの状態遷移図である。
【図７】本発明の実施形態に係る情報処理装置の変形例を説明するための図である。
【図８】従来技術の情報処理装置の概略構成を示す図である。
【図９】従来技術に係る情報処理装置を構成する周辺モジュールの詳細図である。
【図１０】従来技術の情報処理装置が備えるステートマシンの状態遷移図である。
【図１１】従来技術の情報処理装置のライト動作を説明するためのタイミングチャートである。
【図１２】従来技術の情報処理装置のリード動作を説明するためのタイミングチャートである。
【符号の説明】
【００９２】
１１００；バスマスタ、１２００；周辺モジュール、１２１０；デュアルポートＲＡＭ、１２１１；第１アクセスポート、１２１２；第２アクセスポート、１２３０；第１ステートマシン、１２４０；第２ステートマシン、１２５０；フラグレジスタ、１２６０；フラグ検索回路、１２２０；レジスタ群、１２２１；デコーダ、１２２２；マルチプレクサ、７００；５ポートＲＡＭ、７１０；バスマスタ（ＣＰＵ）、７２０〜７５０；周辺モジュール。
【図１】
2008097098.tif 000003
【図２】
2008097098.tif 000004
【図３】
2008097098.tif 000005
【図４】
2008097098.tif 000006
【図５】
2008097098.tif 000007
【図６】
2008097098.tif 000008
【図７】
2008097098.tif 000009
【図８】
2008097098.tif 000010
【図９】
2008097098.tif 000011
【図１０】
2008097098.tif 000012
【図１１】
2008097098.tif 000013
【図１２】
2008097098.tif 000014