情報処理装置およびインターフェイス回路
【課題】バスマスタがレジスタ等の周辺モジュールをアクセスする際のレイテンシを有効に低減する情報処理装置及びインターフェイス回路を提供すること。
【解決手段】第1クロック信号に同期して動作するバスマスタ(1100)と、第2クロック信号に同期して動作する周辺モジュール(1200)と、前記第1クロック信号に同期して前記バスマスタとの間でデータ転送するための第1アクセスポートと前記第2クロック信号に同期して前記周辺モジュールとの間でデータ転送するための第2アクセスポートとを有する記憶手段としてデュアルポートRAM(1210)を有し、該デュアルポートRAMを介してバスマスタ(1100)と周辺モジュール(1200)との間のデータ転送を遂行する。
【解決手段】第1クロック信号に同期して動作するバスマスタ(1100)と、第2クロック信号に同期して動作する周辺モジュール(1200)と、前記第1クロック信号に同期して前記バスマスタとの間でデータ転送するための第1アクセスポートと前記第2クロック信号に同期して前記周辺モジュールとの間でデータ転送するための第2アクセスポートとを有する記憶手段としてデュアルポートRAM(1210)を有し、該デュアルポートRAMを介してバスマスタ(1100)と周辺モジュール(1200)との間のデータ転送を遂行する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、マルチポートRAMを利用した情報処理装置およびインターフェイス回路に関する。
【背景技術】
【0002】
従来、システムLSI等の情報処理装置において、CPU等のバスマスタとレジスタ等の周辺モジュールとの間はバスで接続され、このバスを介してデータ転送が行われる。一般に、バスマスタの動作クロック周波数と周辺モジュールの動作クロック周波数とは異なるので、これらの間でデータ転送を行う際にはデータ信号を同期化する必要がある。
【0003】
図8に、上述のデータ信号を同期化する機能を備えた情報処理装置の構成例を示す。同図に示すように、バスマスタ810と周辺モジュール820とはバス830を介して接続され、周辺モジュール820内のレジスタ部822は同期化回路821を介してバス830に接続される。
【0004】
この情報処理装置によれば、バスマスタ810からバス830を介して周辺モジュール820に送出されたデータ信号は、周辺モジュール820内の同期化回路821によりレジスタ部822の動作クロック信号PCLKに同期したデータ信号に加工されてレジスタ部822に供給される。このように同期化回路821を備えることにより、異なるクロック周波数で動作するバスマスタ810とレジスタ部822との間のデータ転送を可能としている。
【0005】
図9ないし図12を参照して更に詳細に説明する。
図9に、従来技術に係る情報処理装置の詳細構成を示す。図9に示すバスマスタ9100および周辺モジュール9200は、上述の図8に示すバスマスタ810および周辺モジュール820にそれぞれ対応し、図9に示す同期化回路9211,9221,9240,9250,9260は図8に示す同期化回路821に対応し、図9に示すレジスタ9230は図8に示すレジスタ822に対応している。
【0006】
ここで、図9に示すステートマシン9210は、バスマスタ9100に対するインターフェイスとして機能し、バスマスタ9100の動作クロック信号SCLKに同期して動作する。ステートマシン9220は、レジスタ9230に対するインターフェイスとして機能し、レジスタ9230の動作クロック信号PCLKに同期して動作する。
【0007】
これらステートマシン9210とステートマシン9220との間では、バスマスタ9100からレジスタ9230に対するデータ転送の内容に応じた各種の制御信号がハンドシェークにより伝達される。この制御信号の伝達を可能とするために、一方のステートマシン9210は、ステートマシン9220から入力する信号を同期化するための同期化回路9211を備え、他方のステートマシン9220は、ステートマシン9210から入力する信号を同期化するための同期化回路9221を備えている。
【0008】
次に、図10ないし図12を参照して、上述の従来技術に係る情報処理装置の動作を説明する。ここで、図10は、ステートマシン9210及びステートマシン9220の状態遷移図であり、図11および図12は、それぞれ、バスマスタ9100からレジスタ部9230に対するライト動作及びリード動作のタイミングチャートである。
なお、その動作説明において、各ステートマシンの状態遷移については図10を参照され、各時刻での動作については図11及び図12を適宜参照されたい。
【0009】
先ず、図10及び図11を参照してライト動作を説明する。
周辺モジュール9200内のステートマシン9210は、プリセット信号が入力されると、バスマスタ9100からのアクセスを待ち受けるアイドルステートSIDLEに状態遷移する。
【0010】
このアイドルステートSIDLEから、バスマスタ9100がライトトランザクションを開始し、時刻t1においてライト信号WRNをローレベルにし、且つチップセレクト信号CSNをローレベルにすると、これを入力するステートマシン9210はライトトランザクションを検出してウェイトステートSWWAITに状態遷移し(図10;B)、時刻t2においてウェイト信号WAITをハイレベルにアサートする(図11;B)。これによりバスマスタ9100にウェイトをかける。
【0011】
他方、ステートマシン9220は、時刻t3においてステートマシン9210がウェイトステートSWWAITに状態遷移したことを検出すると、時刻t3から2クロック後の時刻t4においてライトステートPWRITEに状態遷移し(図10及び図11;C)、それから1クロック後の時刻t6において、同期化されたライトデータWDATAをレジスタ9230にライトしてウェイトステートPWAITに状態遷移する(図11;D)。この動作により、アドレス信号ADDRに対するライトデータWDATAのセットアップタイムtSUが確保される。
【0012】
一方、ステートマシン9210は、時刻t5においてステートマシン9220がライトステートPWRITE(またはウェイトステートPWAIT)状態遷移したことを検出すると、ウェイトステートSWWAITからライトステートSWRITEに2クロックで状態遷移し(図10及び図11;E)、時刻t7においてウェイト信号WAITをローレベルにネゲートする(図11;F)。この動作によりアドレス信号ADDRに対するライトデータWDATAのホールドタイムtHDが確保される。
【0013】
バスマスタ9100は、ウェイト信号WAITがローレベルにネゲートされたことを検出すると、時刻t8において、ライト信号WRN及びチップセレクト信号CSNをハイレベルにネゲートし(図11のG)、ライトトランザクションを終了する。
この後、ステートマシン9220は、時刻t9において、ステートマシン9210がウェイトステートSWWAITにないことを検出すると、2クロック後の時刻t10においてウェイトステートPWAITからアイドルステートPIDLEに状態遷移し(図10及び図11;H)、次のトランザクションに備える。
【0014】
次に、図10及び図12を参照してリード動作を説明する。
上述と同様に、初期状態において、周辺モジュール9200内のステートマシン9210はアイドルステートSIDLEにあるものとする。
【0015】
この状態から、バスマスタ9100がリードトランザクションを開始し、時刻t1においてリード信号RDN及びチップセレクト信号CSNをローレベルにアサートすると、ステートマシン9210は、時刻t2において、リードトランザクションを検出してウェイトステートSRWAITに状態遷移し(図10及び図12;a)、ウェイト信号WAITをハイレベルにアサートする(図12;b)。これにより周辺モジュール9200に対してバスマスタ9100がウェイト状態とされる。
【0016】
他方、ステートマシン9220は、時刻t3においてステートマシン9210がウェイトステートSWWAITに状態遷移したことを検出すると、2クロック後の時刻t4においてリードステートPREADに状態遷移して(図10及び図12;c)、リードデータRDATAをレジスタ9230からフリップフロップ9280にフェッチし、その後、ウエィトステートPWAITに状態遷移する(図10;h)。これまでの動作により、アドレス信号ADDRのセットアップタイムtSUAが確保される。
【0017】
一方、ステートマシン9210は、その後の時刻t5においてステートマシン9220がウェイトステートPWAITに状態遷移したことを検出すると、その2クロック後の時刻t7においてリードステートSREADに状態遷移すると共に(図10及び図12;d)、ウェイト信号WAITをローレベルにネゲートする(図12;e)。また、リードデータRDATAは、時刻t6において、クロック信号SCLKに同期化されて周辺モジュール9200からバスに出力される。この動作によりリードデータRDATAのセットアップタイムtSUDが確保される。
【0018】
バスマスタ9100は、ウェイト信号WAITがローレベルにネゲートされたことを検出すると、時刻t9において、リード信号RDN及びチップセレクト信号CSNをハイレベルにネゲートし(図12;f)、リードトランザクションを終了する。
他方、ステートマシン9220は、時刻t8において、ステートマシン9210がウェイトステートSRWAITにないことを検出すると、2クロック後の時刻t10においてウェイトステートPWAITからアイドルステートPIDLEに状態遷移し(図12;g)、次のトランザクションに備える。
【特許文献1】特開平9−044395号公報
【発明の開示】
【発明が解決しようとする課題】
【0019】
ところで、一般に、高速なバスを介してバスマスタに周辺モジュールを接続したとしても、周辺モジュールが低速であれば、周辺モジュールに対する1回のデータ転送に多くのサイクルを費やす。このため、バスマスタが低速な周辺モジュールをアクセスする際に多くのレイテンシが発生するという問題があり、バスを高速化した意味がなくなる。
【0020】
上述の従来技術に係る情報処理装置について言えば、上記レイテンシが増加する主な原因は二つある。一つは、バスの動作クロック信号SCLKとは異なる非同期なクロック信号PCLKが周辺モジュールの動作クロック信号として使用されることが挙げられる。もう一つは、バスの動作クロック周波数に比べ、周辺モジュールの動作クロック周波数が低いことが挙げられる。何れにおいても、バスマスタと周辺モジュールとの間でデータ転送する際のデータの同期化に要するディレイタイムと、データのセットアップ/ホールドタイムがレイテンシを増加させている。
【0021】
このようにレイテンシが発生する結果、上述の図11に示すライト動作では、時刻t2から時刻t6までの7サイクル分のウェイトサイクルを必要とし、図12に示すリード動作では、時刻t2から時刻t6までの6サイクル分のウェイトサイクルを必要とし、その分、レイテンシが増加して次のトランザクションの開始が遅くなる。
【0022】
なお、上述の従来技術のように、バスマスタが周辺モジュール内のレジスタをアクセスする場合に限れば、バスマスタ用のクロック信号でレジスタを動作させるように周辺モジュールを設計すれば、上述のレイテンシに関する問題を回避することができる。しかし、昨今、周辺モジュールは様々な製品に適用されることを前提として設計されるため、特定のシステムに特化して設計すると、周辺モジュールの汎用性が損なわれる。このため、レジスタであっても周辺モジュール用のクロック信号に同期するように設計されるのが通例となっており、従って上記の問題は依然として存在する。
【0023】
本発明は、上記事情に鑑みてなされたものであり、バスマスタがレジスタ等を内蔵する周辺モジュールをアクセスする際のレイテンシを有効に低減することができる情報処理装置およびインターフェイス回路を提供することを目的とする。
【課題を解決するための手段】
【0024】
本発明に係る情報処理装置は、第1クロック信号に同期して動作するバスマスタと、第2クロック信号に同期して動作する周辺モジュールと、前記第1クロック信号に同期して前記バスマスタとの間でデータ転送するための第1アクセスポートと前記第2クロック信号に同期して前記周辺モジュールとの間でデータ転送するための第2アクセスポートとを有する記憶手段を有し、該記憶手段を介して前記バスマスタと前記周辺モジュールとの間のデータ転送を遂行するインターフェイス回路とを備えた情報処理装置の構成を有する。
【0025】
上記情報処理装置において、例えば、前記インターフェイス回路は、前記バスマスタからのアクセスに基づき前記第1アクセスポートに供給すべき第1制御信号を生成すると共に、前記バスマスタからのアクセスがライト動作である場合に該アクセスがあったこと示すフラグを発生する第1ステートマシンと、前記フラグを格納するフラグレジスタと、前記フラグレジスタに格納されたフラグを検索するフラグ検索回路と、前記フラグ検索回路による検索結果に基づき前記第2アクセスポートに供給すべき第2制御信号を生成する第2ステートマシンとを備えたことを特徴とする。
【0026】
上記情報処理装置において、例えば、前記周辺モジュールは、複数の第1レジスタから構成され、前記フラグレジスタは、前記複数の第1レジスタに対応する複数の第2レジスタから構成され、前記フラグ検索回路は、前記複数の第2レジスタのうち、前記フラグが格納された第1レジスタに対応するレジスタを指定するアドレス信号を出力するように構成されたことを特徴とする。
【0027】
上記情報処理装置において、例えば、前記フラグ検索回路は、前記複数の第2レジスタの各アドレスに対応するカウント値を巡回的に発生して前記周辺モジュール及び前記記憶手段に供給するカウンタと、前記カウント値を前記第1クロック信号で同期化してフラグポインタとして前記フラグレジスタに供給すると共に、該フラグポインタで指定されるフラグレジスタに前記フラグが格納されていることを示すレジスタポインタを前記第2クロック信号に同期化する同期化回路と、前記同期化回路で同期化された前記レジスタポインタと前記カウント値とを比較し、その比較結果を前記第2ステートマシンに供給する比較器とを備えて構成され、前記第2ステートマシンは、前記比較結果が前記レジスタポインタと前記カウント値との一致を示す場合に、前記第2制御信号としてリード動作に関する制御信号を生成して出力することを特徴とする。
【0028】
上記情報処理装置において、例えば、前記複数の第2レジスタのそれぞれは、前記バスマスタからのアクセスの種別を示すフラグを格納するレジスタと、前記バスマスタからアクセスがあったことを示すフラグを格納するレジスタとから構成されたことを特徴とする請求項1ないし4の何れか1項記載の情報処理装置。
【0029】
上記情報処理装置において、例えば、前記第1及び第2ステートマシンは、これら第1及び第2ステートマシンの一方が前記記憶手段をアクセスする際に、これら第1及び第2ステートマシンの他方をロックステートに状態遷移させることを特徴とする。
【0030】
上記情報処理装置において、例えば、前記記憶手段は、前記第2アクセスポートとして複数のアクセスポートを備えたマルチポートRAMから構成され、前記マルチポートRAMの前記複数のアクセスポートには、前記周辺モジュールとして複数のモジュールがそれぞれ接続されたことを特徴とする。
【0031】
本発明に係るインターフェイス回路は、第1クロック信号に同期して動作するバスマスタと第2クロック信号に同期して動作する周辺モジュールとの間のデータ転送を遂行するインターフェイス回路であって、前記第1クロック信号に同期して前記バスマスタとの間でデータ転送するための第1アクセスポートと前記第2クロック信号に同期して前記周辺モジュールとの間でデータ転送するための第2アクセスポートとを有する記憶手段と、前記バスマスタからのアクセスに基づき前記第1アクセスポートに供給すべき第1制御信号を生成すると共に、前記バスマスタからのアクセスがライト動作である場合に該アクセスがあったこと示すフラグを発生する第1ステートマシンと、前記フラグを格納するフラグレジスタと、前記フラグレジスタに格納されたフラグを検索するフラグ検索回路と、前記フラグ検索回路による検索結果に基づき前記第2アクセスポートに供給すべき第2制御信号を生成する第2ステートマシンとを備えたインターフェイス回路の構成を有する。
【発明の効果】
【0032】
本発明によれば、バスマスタからのアクセスを受け付けるための第1アクセスポートと周辺モジュールからのアクセスを受け付けるための第2アクセスポートとを有する記憶手段を介してバスマスタと周辺モジュールとの間のデータ転送を遂行するようにしたので、バスマスタがレジスタ等の周辺モジュールをアクセスする際のレイテンシを有効に低減することができる。
【発明を実施するための最良の形態】
【0033】
以下、図面を参照しながら、本発明の実施形態を説明する。
図1に、本発明の実施形態に係る情報処理装置の概略構成を示す。同図において、符号1100は、バスクロック信号(第1クロック信号)SCLKに同期して動作するCPU等のバスマスタを示し、符号1200は、周辺クロック信号(第2クロック信号)PCLKに同期して動作する周辺モジュールを示す。これらバスマスタ1100と周辺モジュール1200はバス1300を介して相互に接続されている。
【0034】
周辺モジュール1200は、バスマスタ1100に対してレジスタ機能を提供するものであり、マルチポートRAMの一種であるデュアルポートRAM1210とレジスタ群1220とを含み、このレジスタ群1220は複数のレジスタRA〜RZから構成される。デュアルポートRAM1210は、上記複数のレジスタRA〜RZと一対一に対応するデータ記憶領域MA〜MZを備え、このデータ記憶領域MA〜MZにはレジスタRA〜RZの全ての値が格納される。即ち、デュアルポートRAM1210は、いわばレジスタRA〜RZのミラー値を格納するミラー回路として機能する。
【0035】
また、デュアルポートRAM1210は、バスマスタ1100とレジスタ群1220との間のインターフェイス回路としても機能し、以下に詳細に説明するように、このデュアルポートRAM1210を介してバスマスタ1100とレジスタ群1220との間のデータ転送が遂行されるように構成されている。
【0036】
図2に、上記周辺モジュール1200の詳細構成を示す。同図において、上述の図1に示す要素と同一要素には同一符号を付す。
図2において、符号1211及び符号1212は、デュアルポートRAM1210が備える第1及び第2アクセスポートを示す。このうち、第1アクセスポート1211は、バスクロック信号SCLKに同期してバスマスタ1100との間でデータ転送するためのものであり、この第1アクセスポート1211には、後述の第1ステートマシン(SFSM)1230からアドレス信号mADDRと各種の制御信号(CSN,WRN,RDN)が供給される。
【0037】
第2アクセスポート1212は、周辺クロック信号PCLKに同期して周辺モジュール1200との間でデータ転送するためのものであり、後述のフラグ検索回路1260からアドレス信号maddrが供給されると共に、後述の第2ステートマシン(PFSM)1240から各種の制御信号(mcsn,mwrn,mrdn)が供給される。
【0038】
符号1230は、第1アクセスポート1211を介してデュアルポートRAM1210をアクセスするための第1ステートマシン(SFSM)を示す。この第1ステートマシン1230には、バスマスタ1100から、アドレス信号ADDR、チップセレクト信号CSN、ライト信号WRN、リード信号RDNが供給される。符号1240は、第2アクセスポート1212を介してデュアルポートRAM1210をアクセスするための第2ステートマシン(PFSM)を示す。
【0039】
符号1250はフラグレジスタを示す。このフラグレジスタ1250は、第1ステートマシン1230が発生する後述のフラグを格納するためのものであり、複数のレジスタSA〜SZと複数のレジスタFA〜FZとの2種類のレジスタ群から構成される。ここで、レジスタSA〜SZは、バスマスタ1100が発行するトランザクションの種別(ライトトランザクション/リードトランザクション等)を表すフラグを格納するためのものであり、レジスタFA〜FZは、上記トランザクションの有無を表すフラグを格納するためのものである。
【0040】
これら二種類のレジスタSA〜SZ及びレジスタFA〜FZは、上述のレジスタ群1220のレジスタRA〜RZと一対一に対応していると共に、デュアルポートRAM1210のデータ記憶領域MA〜MZにも一対一に対応している。例えば、フラグレジスタ1250内のレジスタSAとレジスタFAは、レジスタ群1220内のレジスタRAに対応すると共に、デュアルポートRAM1210のデータ記憶領域MAに対応している。以下同様に、レジスタ群1220内の各レジスタに対して、フラグレジスタ1250内の二種類のレジスタ及びデュアルポートRAM1210内の各データ記憶領域が対応している。
【0041】
ここで、第1ステートマシン1230は、バスマスタ1100からデュアルポートRAM1210にデータが書き込まれると、このデータが書き込まれたデュアルポートRAM1210内のデータ記憶領域に対応するフラグレジスタ1250内のレジスタにフラグをセットする。また、第2ステートマシン1240は、そのデータがデュアルポートRAM1210から読み出されると、そのフラグをクリアする。このフラグは、第1ステートマシン1230に対しては、デュアルポートRAM1210に対するライト動作を禁止する意味を有し、第2ステートマシン1240に対してはデュアルポートRAM1210からのリード動作を許容する意味を有している。
【0042】
例えば、後述するように、第1ステートマシン1230は、デュアルポートRAM1210にデータを書き込む際にフラグレジスタ1250を参照し、フラグがセットされていると、そのフラグに対応するデュアルポートRAM1210のデータ記憶領域に対するライト動作を中止する。これにより、デュアルポートRAM1210から読み出されていないデータ、即ちレジスタ群1220への転送が完了していないデータの更新(破壊)を防止する。
【0043】
また、第2ステートマシン1240は、フラグレジスタ1250にフラグがセットされていると、そのフラグに対応するデュアルポートRAM1210のデータ記憶領域のリード動作を遂行すると共に、そのフラグをクリアする。このようにフラグをクリアすることにより、その後、このフラグが格納されていたレジスタに対応するデュアルポートRAM1210内のデータ記憶領域へのライト動作が許可されるようになる。
【0044】
符号1260はフラグ検索回路を示す。このフラグ検索回路1260は、同期化回路1261、比較器1262、カウンタ1263から構成され、フラグレジスタ1250内のフラグを検索し、その検索結果として、検索されたフラグの位置(フラグが格納されているフラグレジスタ1250内のレジスタ)に対応するレジスタ群1220内のレジスタと、デュアルポートRAM1210内のデータ記憶領域とを指定するためのアドレス信号maddrを生成するものである。
【0045】
符号1221はデコーダを示す。このデコーダ1221は、上記アドレス信号maddrに基づきレジスタ群1220内の一つのレジスタを選択的に特定するものである。レジスタ群1220内の各レジスタのデータ入力部は、リードデータrdata用のバスを介してデュアルポートRAM1210の第2アクセスポート1212と接続されている。
符号1222はマルチプレクサを示す。マルチプレクサ1222の入力部には、レジスタ群1220内の各レジスタの出力部が接続されると共に、このマルチプレクサ1222の出力部は、ライトデータwdata用のバスを介して上記第2アクセスポート1212に接続されている。
【0046】
上述のデュアルポートRAM1210、第1ステートマシン1230、第2ステートマシン1240、フラグレジスタ1250、フラグ検索回路1260は、このデュアルポートRAM1210を介してバスマスタ1100と周辺モジュール内のレジスタ群1220との間のデータ転送を遂行するインターフェイス回路として機能する。このインターフェイス回路は、周辺モジュール1200に内蔵されている必要はなく、周辺モジュール1200の外部に単体で備えられても良い。
【0047】
次に、図3ないし図5を参照して、本実施形態の情報処理装置の動作を説明する。
図3は、本情報処理装置の第1ステートマシン1230及び第2ステートマシン1240の状態遷移図であり、図4および図5は、それぞれ、本情報処理装置のライト動作及びリード動作のタイミングチャートである。
なお、その動作説明において、各ステートマシンの状態遷移については図3を参照され、各時刻での動作については図4及び図5を適宜参照されたい。
【0048】
先ず、図3の状態遷移図に示される各ステートの意味を説明しておく。
(1)第1ステートマシン1230のステート(SCLK同期)
SIDLE;バスマスタ1100によるライトトランザクション、リードトランザクションを待ち受けるアイドルステート。
SWAIT;バスマスタ1100に対しウェイトをかけるためのウェイトステート。現在アクセスしようとしているレジスタに対応するフラグレジスタ1250のレジスタフラグREG_FLGがフラグセットステートFLGSETにある場合に状態遷移する。
SWRITE;第1ステートマシン1230で認識するライトステート。次のサイクルでバスマスタ1100はライトトランザクションを終了する。
SREAD;第1ステートマシン1230で認識するリードステート。次のサイクルでバスマスタ1100はリードトランザクションを終了する。
【0049】
(2)フラグレジスタ1250のステート(SCLK同期)
FLGCLR;フラグレジスタ1250のレジスタフラグREG_FLGがクリアされたステート。
FLGSET;フラグレジスタ1250のレジスタフラグREG_FLGがセットされたステート。
【0050】
(3)第2ステートマシン1240のステート(PCLK同期)
PIDLE;第1ステートマシン1230によるライトトランザクション、リードトランザクションを待ち受けるアイドルステート。
PREAD;第2ステートマシン1240で認識するリードステート。
PFCLR;第2ステートマシン1240で認識するライトステート。
以上で、各ステートの意味を説明した。
【0051】
続いて、バスマスタ1100からデュアルポートRAM1210へのライト動作(バスマスタ1100からレジスタ群1220へのデータ転送)と、リード動作(レジスタ群1220からバスマスタ1100へのデータ転送)を順に説明する。
(1)ライト動作
図3および図4を参照してデュアルポートRAM1210へのライト動作を説明する。
初期状態では、第1ステートマシン1230がバスマスタ1100からのトランザクション(アクセス)を待ち受けるアイドルステートSIDLEにあり、且つ、フラグレジスタ1250内の全レジスタがクリアされた状態にあるものとする。
【0052】
この状態から、バスマスタ1100がライトトランザクションを開始すると、時刻t1において、第1ステートマシン1230に供給されるライト信号WRNがローレベルになり、チップセレクト信号CSNがローレベルになり、アドレス信号ADDRが、レジスタRZに対応するデータ記憶領域MZを指定する値に変化する。
【0053】
第1ステートマシン1230は、これらの信号状態から、バスマスタ1100によるライトトランザクションを検出すると、まず、フラグレジスタ1250を参照し、フラグがセットされているか否かを調べる。この場合は全てのフラグがクリアされている状態にあるため、デュアルポートRAM1210に対するライト動作は禁止されない。そこで、第1ステートマシン1230は、時刻t2においてライトステートSWRITEに状態遷移し、デュアルポートRAM1210のデータ記憶領域MZにライトデータWDATAを書き込む(図4;A)。
【0054】
そして、時刻t2から1サイクル後の時刻t3において、第1ステートマシン1230は、ライトステートSWRITEからアイドルステートSIDLEに状態遷移してデータ記憶領域MZに対するライトを完了する。このとき、第1ステートマシン1230は、レジスタRZに対応するフラグレジスタ1250内のレジスタFZにフラグをセットすると共に(図4;B)、且つ、レジスタSZには、ライトした旨を示すフラグをセットする。
【0055】
また、時刻t3においてアドレス信号ADDRの値がデータ記憶領域MAを指定する値に変化すると、第1ステートマシン1230は、同様に、フラグレジスタ1250を参照して時刻t4においてライトステートSWRITEに状態遷移し、データ記憶領域MAにライトデータWDATAを書き込む(図4;C)。そして、時刻t5において、ライトステートSWRITEからアイドルステートSIDLEに状態遷移してデータ記憶領域MAに対するライトを完了し、ライトが完了したことを表すフラグを、レジスタRAに対応するフラグレジスタ1250内のレジスタFAにセットすると共に(図4;D)、レジスタSAには、トランザクションがライトアクセスである旨のフラグをセットする。
【0056】
また、時刻t5においてアドレス信号ADDRの値がデータ記憶領域MBを指定する値に変化すると、同様に、第1ステートマシン1230は、フラグレジスタ1250を参照して時刻t6においてライトステートSWRITEに状態遷移し、データ記憶領域MBにライトデータWDATAを書き込む(図4;E)。そして、時刻t7において、ライトステートSWRITEからアイドルステートSIDLEに状態遷移してデータ記憶領域MBに対するライトを完了し、ライトが完了したことを表すフラグを、レジスタRBに対応するフラグレジスタ1250内のレジスタFBにセットすると共に(図4;F)、レジスタSBには、トランザクションがライトアクセスである旨のフラグをセットする。
【0057】
更に、時刻t7において、再び、アドレス信号ADDRの値がデータ記憶領域MZを指定する値に変化すると、第1ステートマシン1230は、再び、上述のレジスタRZに対するライトトランザクションを検出し、フラグレジスタ1250を参照して、レジスタFZ,SZにフラグがセットされているか否かを調べる。この場合、これらのレジスタにはフラグが既にセットされているため、データ記憶領域MZに対するライトが禁止される。そこで、時刻t8において、第1ステートマシン1230は、アイドルステートIDLEからウェイトステートSWAITに状態遷移して、ウェイト信号WAITをアサートし、バスマスタ1100に対してウェイトをかける(図4;G)。
【0058】
その後の時刻t9において、第2ステートマシン1240は、データ記憶領域MZのデータが読み出されると、フラグレジスタ1250のレジスタFZ,SZの各フラグをクリアする。第1ステートマシン1230は、レジスタFZ,SZの各フラグがクリアされたことを検出すると、時刻t10において、ウェイトステートSWAITからライトステートSWRITEに状態遷移し、ウェイト信号WAITをローレベルにネゲートする(図4;H)。これ以後、バスマスタ1100は、データ記憶領域RZに対するライト動作が再び可能となる。そこで、第1ステートマシン1230は、ライトステートに状態遷移して1サイクルでデータ記憶領域MZに対するライトを終了し、レジスタFZ,SZに各フラグをセットする(図4;J)。
【0059】
このように、第1ステートマシン1230及び第2ステートマシン1240によるデュアルポートRAM1210に対するアクセスは、常にフラグレジスタ1250を参照して行われ、そのフラグの状態によって各ステートマシンのアクセスが許可/禁止される。
【0060】
ここで、デュアルポートRAM1210からレジスタ群1220へのデータ転送を説明する。上述のように、バスマスタ1100からデュアルポートRAM1210にデータがライトされると、フラグレジスタ1250内の該当するレジスタにフラグがセットされるが、このフラグレジスタ1250内のフラグは、常時、フラグ検索回路1260によって監視されている。
【0061】
即ち、フラグ検索回路1260内のカウンタ1263は、レジスタ群1220内のレジスタRA〜RZの各アドレスに対応するカウント値を巡回的に発生する。このカウント値は、アドレス信号maddrとしてデュアルポートRAM1210の第2アクセスポート1212とデコーダ1221に供給されると共に、フラグレジスタ1250内のレジスタを指定するためのフラグポインタfpとされる。
【0062】
このフラグポインタfbは、同期化回路1261でバスクロック信号SCLKに同期化された後にフラグポインタFPとしてフラグレジスタ1250に供給される。フラグレジスタ1250では、フラグポインタFPで指定されるレジスタにフラグがセットされていると、その格納されたフラグレジスタに対応するデュアルポートRAM1210内のデータ記憶領域のアドレスに相当するリードポインタRPを出力する。
【0063】
リードポインタRPは同期化回路1261で周辺クロック信号PCLKに同期化されて比較器1262に供給される。比較器1262は、同期化回路1261で同期化されたフラグポインタの値とカウンタ1263からのカウント値とを比較し、これらが一致した場合に一致検出信号matをアサートする。この一致検出信号matがアサートされたときにカウンタ1263から出力されているアドレス信号maddrが、レジスタ群1220にライトすべきデータが存在するデュアルポートRAM1210内のデータ記憶領域のアドレスとなる。
【0064】
そこで、第2ステートマシン1240は、一致検出信号matがアサートされたときに、デュアルポートRAM1210の第2アクセスポート1212にリード信号mrdnをアサートして、このときのアドレス信号mrdnで指定されるデュアルポートRAM1210内のデータ記憶領域からリードデータrdataを読み出す。このリードデータrdataはレジスタ群1220のレジスタRA〜RZに向けて送出される。デコーダ1221は、カウンタ1263からのアドレス信号maddrに基づき、レジスタRA〜RZの一つを選択し、そのレジスタに上記リードデータrdataを格納させる。
【0065】
以上により、デュアルポートRAM1210を介してバスマスタ1100からレジスタ群1220にデータが転送される。このとき、バスマスタ1100からみれば、デュアルポートRAM1210はバスマスタの動作クロック信号と同じバスクロック信号SCLKで動作するので、レイテンシを要することなく、バスマスタ1100からデュアルポートRAM1210に高速にデータが転送される。従って、バスマスタ1100からレジスタ群1220への見かけ上のデータ転送速度を向上させることができる。
【0066】
このライト動作では、周辺モジュールがデュアルポートRAM1210のデータ記憶領域からデータをリードしているときにバスマスタ1100がこのデータ記憶領域にデータをライトしようとした場合に、デュアルポートRAM1210に対するアクセスが競合するので、このような場合にバスマスタ1100にウェイトがかけられる。しかしながら、CPUが実行する処理において、実際上、レジスタ群1220内のレジスタRA〜RZに一旦設定した値を連続して書き換えるケースは極めて稀であるため、アクセスの競合を防止するための上記ウェイトに起因してデータ転送効率が低下することは事実上ないと言える。
【0067】
(2)リード動作
次に、図3および図5を参照して、バスマスタ1100によるデュアルポートRAM1210からのリード動作を説明する。
ここでは、上述のライト動作でデュアルポートRAM1210のデータ記憶領域MZにデータを書き込んだ後、データ記憶領域MA,MB,MZからデータを順次読み出す場合を説明する。
【0068】
リードトランザクションに先だって、バスマスタ1100がライトトランザクションを開始すると、時刻t1において、第1ステートマシン1230に供給されるライト信号WRN及びチップセレクト信号CSNがローレベルになり、アドレス信号ADDRが、レジスタRZに対応するデータ記憶領域MZを指定する値に変化する。
【0069】
これらの信号状態から、第1ステートマシン1230はライトトランザクションを検出すると、上述と同様にフラグレジスタ1250を参照し、フラグがセットされているか否かを調べる。この場合、フラグレジスタ1250内のレジスタFZ,SZのフラグはクリアされているため、第1ステートマシン1230は、時刻t2においてライトステートSWRITEに状態遷移し、データ記憶領域MZにライトデータWDATAを書き込む(図5;A)。そして1サイクル後の時刻t3においてライトステートSWRITEからアイドルステートSIDLEに状態遷移し、データ記憶領域MZに対するライトを完了する。このとき、第1ステートマシン1230は、レジスタFZ,SZにフラグをセットする。(図5;B)
【0070】
その後、時刻t8において、バスマスタ1100がリードトランザクションを開始すると、ライト信号WRNがハイレベルにネゲートされ、リード信号RDNがローレベルにアサートされ、アドレス信号ADDRがデータ記憶領域MZを指定する値に変化する。これらの信号状態から、第1ステートマシン1230はリードトランザクションを検出すると、上述と同様にフラグレジスタ1250を参照し、レジスタFA,SAにフラグがセットされているか否かを調べる。この場合、レジスタFZ,SZにフラグがセットされた状態にあるため、第1ステートマシン1230は、ウェイトステートSWAITに状態遷移して、ウェイト信号WAITをハイレベルにアサートし、バスマスタ1100にウェイトをかける(図5;C)。
【0071】
また、図5において、例えば時刻t10において、第2ステートマシン1240によりレジスタFZ,SAのフラグがクリアされ、第1ステートマシン1230がフラグFZのクリアを検出すると、時刻t11において、第1ステートマシン1230はウェイトステートSWAITからリードステートSREADに状態遷移する(図5;D)。そして、第1ステートマシン1230は、リードステートSREADでデュアルポートRAM1210からデータを読み出し、時刻t10から2サイクルでリードアクセスを終了する。
【0072】
また、第1ステートマシン1230は、時刻t3のサイクルでのアイドルステートSIDLEにおいて、デュアルポートRAM1210内のデータ記憶領域MA(レジスタRAに対応する記憶領域)に対するアクセスを検出すると、フラグレジスタ1250内のレジスタFAを参照する。この場合、レジスタFAがクリアされた状態(アクセス許可の状態)にあるため、第1ステートマシン1230は、リードステートSREADに状態遷移し(図5;E)、リードデータRDATAをデュアルポートRAM1210から読み出す。このバスマスタ1100によるリード時には、フラグレジスタ1250にフラグをセットする必要はない(図5;F)。
【0073】
このリード動作では、周辺モジュールがデュアルポートRAM1210のデータ記憶領域にデータをライトしているときにバスマスタ1100がこのデータ記憶領域からデータ読み出そうとした場合にデュアルポートRAM1210に対するアクセスが競合するので、このような場合にバスマスタ1100にウェイトがかけられる。
以上で、ライト動作とリード動作を説明した。
【0074】
次に、図6の状態遷移図を参照して、バスマスタ1100と周辺モジュール1200の両方がデュアルポートRAM1210を同時に書き換えようとした場合のアクセス競合防止動作を説明する。概略的には、このアクセス競合防止動作では、第1ステートマシン1230及び第2ステートマシン1240は、これら第1及び第2ステートマシンの一方がデュアルポートRAM1210をアクセスする際に、これら第1及び第2ステートマシンの他方をロックステートに状態遷移させる。
【0075】
先ず、図6の状態遷移図に示される各ステートの意味を説明しておく。
FLGCLR;フラグレジスタ1250のレジスタフラグREG_FLGがクリアされた状態のステート。
(1)第1ステートマシン1230のステート
SIDLE;バスマスタ1100によるライトトランザクション、リードトランザクションを待ち受けるステート。
SWAIT;バスマスタ1100に対しウェイトをかけるためのウェイトステート。現在アクセスしようとしているレジスタのレジスタフラグREG_FLGがフラグセットステートFLGSETにある場合に状態遷移する。
SWRITE;第1ステートマシン1230で認識するライトステート。次のサイクルでバスマスタ1100はライトトランザクションを終了する。
SREAD;第1ステートマシン1230で認識するリードステート。次のサイクルでバスマスタ1100はリードトランザクションを終了する。
【0076】
(2)フラグレジスタ1250のステート
FLGCLR;レジスタフラグREG_FLGがクリアされたステート。
FLGSET;レジスタフラグREG_FLGがセットされたステート。
FLGLOCK;フラグクリアステートで第2ステートマシン1240からのロック要求を受信すると、本ステートに状態遷移する。本ステートでバスマスタ1100からのリード/ライトトランザクションが開始されると、ウェイト信号を出力してバスマスタ1100にウェイトをかける。この期間中、第2ステートマシン1240はデュアルポートRAM1210に割り込みフラグレジスタの値をライトする。
【0077】
(3)第2ステートマシン1240のステート
PIDLE;第1ステートマシン1230によるライトトランザクション、リードトランザクションを待ち受けるステート。
PLOCKREQ;割り込みフラグレジスタの値の更新を検出すると、本ステートに状態遷移し、レジスタフラグREG_FLGに対しロック要求を発行する。
PWRITE;レジスタフラグREG_FLGをロックした状態で本ステートに状態遷移し、デュアルポートRAM1210に割り込みフラグレジスタの値をライトする。
PUNLOCK;デュアルポートRAM1210に割り込みフラグレジスタの値をライトし終えると、本ステートに状態遷移し、レジスタフラグREG_FLGに対しアンロック要求を発行する。
PREAD;第2ステートマシン1240で認識するリードステート。
PFCLR;第2ステートマシン1240で認識するライトステート。
【0078】
上記各ステートに基づくアクセス競合防止方法を説明する。
図2に示す周辺モジュール1200内の第2ステートマシン1240は、プリセット信号PRESETに応答してアイドルステートPIDLEに状態遷移し(図6;A)、この状態で割り込みフラグレジスタの更新を検出すると、ロック要求ステートPLOCKREQに状態遷移して、フラグレジスタ1250内のレジスタフラグREG_FLGに対してロック要求を発行する。
【0079】
フラグレジスタ1250内のレジスタフラグREG_FLGは、フラグクリアステートFLGCLRにおいて第2ステートマシン1240から上記ロック要求を受信すると、フラグクリアステートFLGCLRからフラグロックステートFLGLOCKに状態遷移する(図6;B)。第1ステートマシン1230は、フラグレジスタ1250がフラグロックステートFLGLOCKに状態遷移したことを検出し、その状態でバスマスタ1100からのライトトランザクションを検出すると、ウェイトステートSWAITに状態遷移して(図6;C)、バスマスタ1100にウェイトをかける。
【0080】
第2ステートマシン1240は、ロック要求ステートPLOCKREQにおいて、レジスタフラグREG_FLGがフラグロックステートFLGLOCKに遷移したことを検出すると、ライトステートPWRITEに状態遷移し(図6;D)、デュアルポートRAM1210に対し、割り込みフラグレジスタの値をライトする。第2ステートマシン1240は、ライトステートPWRITEにおいて、デュアルポートRAM1210に対する上記割り込みフラグのライトを終了すると、アンロックステートPUNLOCKに状態遷移し(図6;E)、フラグレジスタ1250内のレジスタフラグREG_FLGに対しアンロック要求を発行する。
【0081】
レジスタフラグREG_FLGは、第2ステートマシン1240から上記アンロック要求を受信すると、フラグロックステートFLGLOCKからフラグクリアステートFLGCLRに状態遷移し(図6;F)、上記ロックを解除する。ロックが解除されると、第1ステートマシン1230はウェイトを解除し、バスマスタ1100からのトランザクションを受け付けて実行する。
【0082】
このように、フラグレジスタ1250のレジスタフラグREG_FLGに、バスマスタ1100からのアクセスに対してロックをかけるフラグロックステートFLGLOCKを持たせることにより、デュアルポートRAM1210に対するアクセスの競合を防止している。
【0083】
上述の本実施形態に係る情報処理装置の特徴をまとめる。
本情報処理装置では、周辺モジュール1200の本体をなすレジスタ群1220とバスマスタ1100との間にデュアルポートRAM1210がいわばミラー回路として存在し、このミラー回路を介してデータ転送が遂行される。このデータ転送に関する制御は、バスクロック信号SCLKに同期して動作する第1ステートマシン1230と周辺クロック信号PCLKに同期して動作する第2ステートマシン1240とで遂行される。バスマスタ1100が上記ミラー回路に対しレジスタライトを行うと、第1ステートマシン1230は、該当するフラグレジスタ1250内のレジスタにライトフラグをセットする。
【0084】
ライトフラグがセットされると、第2ステートマシン1240がレジスタフラグのライトイベントを検出する。このイベントを検出すると、第2ステートマシン1240は、上記ミラー回路にライトされたデータを読み出し、該当するレジスタ群1220内のレジスタの値を更新する。このとき、該当するアドレスの割り出しは、フラグ検索回路1260により、フラグの立っているフラグレジスタ1250のアドレスを割り出すことにより行われ、第2ステートマシン1240は、この割り出されたアドレスで特定されるデュアルポートRAM1210のデータ記憶領域からデータを読み出す。フラグ検索回路1260によるアドレスの割り出しは、フラグ検索回路1260内のカウンタのカウント値とレジスタのアドレスを示すリードポインタRPとを比較することにより行われる。
【0085】
第2ステートマシン1240は、レジスタ値の更新が完了すると、該当するレジスタのフラグをクリアする。同一アドレスへの同時アクセスを行うと、デュアルポートRAM1210内のデータが破壊されるおそれがある。しかしながら、本実施形態に係る情報処理装置によれば、同時にアクセスが発生した場合、フラグレジスタ1250を参照して、バスマスタ1100にウェイトをかけるので、データの破壊を回避することができる。また、設定されたレジスタの値は頻繁に書き換えられることはないので、上記ウェイトによりデータ転送効率が犠牲になることは事実上ない。
【0086】
このような本情報処理送致によれば、バスマスタ1100によるデュアルポートRAM1210に対するリード/ライドアクセスは、バスクロック信号SCLKを使用して行われるため、レイテンシを増加させる原因となる非同期データの同期化と、特別なデータのセットアップ/ホールドタイムを確保する必要がなくなる。従って、バスマスタ1100から見たレジスタアクセス時のレイテンシを大幅に低減することが可能となる。これにより、バスを高速化すればする程、レジスタアクセスにおけるバスマスタの占有率を下げることが可能となり、システム全体のパフォーマンスを向上させることができる。
【0087】
次に、図7を参照して本実施形態の変形例を説明する。
上述の実施形態では、周辺モジュール1200にデュアルポートRAM1210を組み込んで、この周辺モジュール1200とバスマスタ1100との間で一対一のデータ転送を行う場合を説明したが、ここでは、デュアルポートRAM1210に代えて、マルチポートRAMの一種である5ポートRAM700を介して、CPU等のバスマスタ710を含めた複数の周辺モジュール720,730,740,750の間でデータ転送を行う場合を説明する。
【0088】
この変形例では、5ポートRAM700は、周辺モジュール720〜750の全レジスタに対応するデータ記憶領域を備え、このデータ記憶領域には周辺モジュール720〜750の全レジスタの値が格納される。また、この5ポートRAM700の各アクセスポートには、クロック信号CLKで動作するCPU等のバスマスタ710と、クロック信号CLKAで動作する周辺モジュール720と、クロック信号CLKBで動作する周辺モジュール730と、クロック信号CLKCで動作する周辺モジュール740と、クロック信号CLKDで動作する周辺モジュール740とが接続され、この5ポートRAM700は、これらバスマスタ710及び周辺モジュール720〜750間のデータ転送を遂行するインターフェイス回路として機能する。
【0089】
また、5ポートRAM700は、上述の第1ステートマシン1230、第2ステートマシン1240、フラグレジスタ1250、フラグ検索回路1260にそれぞれ対応する構成を備え、5ポートRAM700の各アクセスポートにステートマシンが設けられる。このうち、バスマスタ710が接続されるアクセスポートに設けられるステートマシンは上述の第1ステートマシン1230と同様の機能を有し、周辺モジュール720〜750が接続された他のアクセスポートに設けられるステートマシンは上述の第2ステートマシン1240と同様の機能を有している。また、フラグ検索回路1260に対応する構成は、フラグレジスタ1250に対応するフラグレジスタを検索してモジュール別に検索結果を通知する機能を有している。
【0090】
このような変形例によれば、バスマスタ710は、仮に周辺モジュール720〜750で使用されるクロック信号がバスマスタ710で使用されるクロック信号と完全に非同期であり且つ低速であったとしても、バスマスタ710は、周辺モジュール720〜750の全レジスタに対してクロック信号SCLKの2サイクル分の時間でアクセスを終了することが可能となる。このため、上述の本実施形態と同様に、バスマスタ710が各周辺モジュールをアクセスする際のレイテンシを有効に低減することが可能になり、システム全体のパフォーマンスを向上させることができる。
【図面の簡単な説明】
【0091】
【図1】本発明の実施形態に係る情報処理装置の概略構成を示す図である。
【図2】本発明の実施形態に係る情報処理装置が備える周辺モジュールの詳細構成を示す図である。
【図3】本発明の実施形態に係る情報処理装置が備えるステートマシンの状態遷移図である。
【図4】本発明の実施形態に係る情報処理装置のライト動作を説明するためのタイミングチャートである。
【図5】本発明の実施形態に係る情報処理装置のリード動作を説明するためのタイミングチャートである。
【図6】本発明の実施形態に係るアクセス競合防止のための各ステートマシンの状態遷移図である。
【図7】本発明の実施形態に係る情報処理装置の変形例を説明するための図である。
【図8】従来技術の情報処理装置の概略構成を示す図である。
【図9】従来技術に係る情報処理装置を構成する周辺モジュールの詳細図である。
【図10】従来技術の情報処理装置が備えるステートマシンの状態遷移図である。
【図11】従来技術の情報処理装置のライト動作を説明するためのタイミングチャートである。
【図12】従来技術の情報処理装置のリード動作を説明するためのタイミングチャートである。
【符号の説明】
【0092】
1100;バスマスタ、1200;周辺モジュール、1210;デュアルポートRAM、1211;第1アクセスポート、1212;第2アクセスポート、1230;第1ステートマシン、1240;第2ステートマシン、1250;フラグレジスタ、1260;フラグ検索回路、1220;レジスタ群、1221;デコーダ、1222;マルチプレクサ、700;5ポートRAM、710;バスマスタ(CPU)、720〜750;周辺モジュール。
【技術分野】
【0001】
本発明は、マルチポートRAMを利用した情報処理装置およびインターフェイス回路に関する。
【背景技術】
【0002】
従来、システムLSI等の情報処理装置において、CPU等のバスマスタとレジスタ等の周辺モジュールとの間はバスで接続され、このバスを介してデータ転送が行われる。一般に、バスマスタの動作クロック周波数と周辺モジュールの動作クロック周波数とは異なるので、これらの間でデータ転送を行う際にはデータ信号を同期化する必要がある。
【0003】
図8に、上述のデータ信号を同期化する機能を備えた情報処理装置の構成例を示す。同図に示すように、バスマスタ810と周辺モジュール820とはバス830を介して接続され、周辺モジュール820内のレジスタ部822は同期化回路821を介してバス830に接続される。
【0004】
この情報処理装置によれば、バスマスタ810からバス830を介して周辺モジュール820に送出されたデータ信号は、周辺モジュール820内の同期化回路821によりレジスタ部822の動作クロック信号PCLKに同期したデータ信号に加工されてレジスタ部822に供給される。このように同期化回路821を備えることにより、異なるクロック周波数で動作するバスマスタ810とレジスタ部822との間のデータ転送を可能としている。
【0005】
図9ないし図12を参照して更に詳細に説明する。
図9に、従来技術に係る情報処理装置の詳細構成を示す。図9に示すバスマスタ9100および周辺モジュール9200は、上述の図8に示すバスマスタ810および周辺モジュール820にそれぞれ対応し、図9に示す同期化回路9211,9221,9240,9250,9260は図8に示す同期化回路821に対応し、図9に示すレジスタ9230は図8に示すレジスタ822に対応している。
【0006】
ここで、図9に示すステートマシン9210は、バスマスタ9100に対するインターフェイスとして機能し、バスマスタ9100の動作クロック信号SCLKに同期して動作する。ステートマシン9220は、レジスタ9230に対するインターフェイスとして機能し、レジスタ9230の動作クロック信号PCLKに同期して動作する。
【0007】
これらステートマシン9210とステートマシン9220との間では、バスマスタ9100からレジスタ9230に対するデータ転送の内容に応じた各種の制御信号がハンドシェークにより伝達される。この制御信号の伝達を可能とするために、一方のステートマシン9210は、ステートマシン9220から入力する信号を同期化するための同期化回路9211を備え、他方のステートマシン9220は、ステートマシン9210から入力する信号を同期化するための同期化回路9221を備えている。
【0008】
次に、図10ないし図12を参照して、上述の従来技術に係る情報処理装置の動作を説明する。ここで、図10は、ステートマシン9210及びステートマシン9220の状態遷移図であり、図11および図12は、それぞれ、バスマスタ9100からレジスタ部9230に対するライト動作及びリード動作のタイミングチャートである。
なお、その動作説明において、各ステートマシンの状態遷移については図10を参照され、各時刻での動作については図11及び図12を適宜参照されたい。
【0009】
先ず、図10及び図11を参照してライト動作を説明する。
周辺モジュール9200内のステートマシン9210は、プリセット信号が入力されると、バスマスタ9100からのアクセスを待ち受けるアイドルステートSIDLEに状態遷移する。
【0010】
このアイドルステートSIDLEから、バスマスタ9100がライトトランザクションを開始し、時刻t1においてライト信号WRNをローレベルにし、且つチップセレクト信号CSNをローレベルにすると、これを入力するステートマシン9210はライトトランザクションを検出してウェイトステートSWWAITに状態遷移し(図10;B)、時刻t2においてウェイト信号WAITをハイレベルにアサートする(図11;B)。これによりバスマスタ9100にウェイトをかける。
【0011】
他方、ステートマシン9220は、時刻t3においてステートマシン9210がウェイトステートSWWAITに状態遷移したことを検出すると、時刻t3から2クロック後の時刻t4においてライトステートPWRITEに状態遷移し(図10及び図11;C)、それから1クロック後の時刻t6において、同期化されたライトデータWDATAをレジスタ9230にライトしてウェイトステートPWAITに状態遷移する(図11;D)。この動作により、アドレス信号ADDRに対するライトデータWDATAのセットアップタイムtSUが確保される。
【0012】
一方、ステートマシン9210は、時刻t5においてステートマシン9220がライトステートPWRITE(またはウェイトステートPWAIT)状態遷移したことを検出すると、ウェイトステートSWWAITからライトステートSWRITEに2クロックで状態遷移し(図10及び図11;E)、時刻t7においてウェイト信号WAITをローレベルにネゲートする(図11;F)。この動作によりアドレス信号ADDRに対するライトデータWDATAのホールドタイムtHDが確保される。
【0013】
バスマスタ9100は、ウェイト信号WAITがローレベルにネゲートされたことを検出すると、時刻t8において、ライト信号WRN及びチップセレクト信号CSNをハイレベルにネゲートし(図11のG)、ライトトランザクションを終了する。
この後、ステートマシン9220は、時刻t9において、ステートマシン9210がウェイトステートSWWAITにないことを検出すると、2クロック後の時刻t10においてウェイトステートPWAITからアイドルステートPIDLEに状態遷移し(図10及び図11;H)、次のトランザクションに備える。
【0014】
次に、図10及び図12を参照してリード動作を説明する。
上述と同様に、初期状態において、周辺モジュール9200内のステートマシン9210はアイドルステートSIDLEにあるものとする。
【0015】
この状態から、バスマスタ9100がリードトランザクションを開始し、時刻t1においてリード信号RDN及びチップセレクト信号CSNをローレベルにアサートすると、ステートマシン9210は、時刻t2において、リードトランザクションを検出してウェイトステートSRWAITに状態遷移し(図10及び図12;a)、ウェイト信号WAITをハイレベルにアサートする(図12;b)。これにより周辺モジュール9200に対してバスマスタ9100がウェイト状態とされる。
【0016】
他方、ステートマシン9220は、時刻t3においてステートマシン9210がウェイトステートSWWAITに状態遷移したことを検出すると、2クロック後の時刻t4においてリードステートPREADに状態遷移して(図10及び図12;c)、リードデータRDATAをレジスタ9230からフリップフロップ9280にフェッチし、その後、ウエィトステートPWAITに状態遷移する(図10;h)。これまでの動作により、アドレス信号ADDRのセットアップタイムtSUAが確保される。
【0017】
一方、ステートマシン9210は、その後の時刻t5においてステートマシン9220がウェイトステートPWAITに状態遷移したことを検出すると、その2クロック後の時刻t7においてリードステートSREADに状態遷移すると共に(図10及び図12;d)、ウェイト信号WAITをローレベルにネゲートする(図12;e)。また、リードデータRDATAは、時刻t6において、クロック信号SCLKに同期化されて周辺モジュール9200からバスに出力される。この動作によりリードデータRDATAのセットアップタイムtSUDが確保される。
【0018】
バスマスタ9100は、ウェイト信号WAITがローレベルにネゲートされたことを検出すると、時刻t9において、リード信号RDN及びチップセレクト信号CSNをハイレベルにネゲートし(図12;f)、リードトランザクションを終了する。
他方、ステートマシン9220は、時刻t8において、ステートマシン9210がウェイトステートSRWAITにないことを検出すると、2クロック後の時刻t10においてウェイトステートPWAITからアイドルステートPIDLEに状態遷移し(図12;g)、次のトランザクションに備える。
【特許文献1】特開平9−044395号公報
【発明の開示】
【発明が解決しようとする課題】
【0019】
ところで、一般に、高速なバスを介してバスマスタに周辺モジュールを接続したとしても、周辺モジュールが低速であれば、周辺モジュールに対する1回のデータ転送に多くのサイクルを費やす。このため、バスマスタが低速な周辺モジュールをアクセスする際に多くのレイテンシが発生するという問題があり、バスを高速化した意味がなくなる。
【0020】
上述の従来技術に係る情報処理装置について言えば、上記レイテンシが増加する主な原因は二つある。一つは、バスの動作クロック信号SCLKとは異なる非同期なクロック信号PCLKが周辺モジュールの動作クロック信号として使用されることが挙げられる。もう一つは、バスの動作クロック周波数に比べ、周辺モジュールの動作クロック周波数が低いことが挙げられる。何れにおいても、バスマスタと周辺モジュールとの間でデータ転送する際のデータの同期化に要するディレイタイムと、データのセットアップ/ホールドタイムがレイテンシを増加させている。
【0021】
このようにレイテンシが発生する結果、上述の図11に示すライト動作では、時刻t2から時刻t6までの7サイクル分のウェイトサイクルを必要とし、図12に示すリード動作では、時刻t2から時刻t6までの6サイクル分のウェイトサイクルを必要とし、その分、レイテンシが増加して次のトランザクションの開始が遅くなる。
【0022】
なお、上述の従来技術のように、バスマスタが周辺モジュール内のレジスタをアクセスする場合に限れば、バスマスタ用のクロック信号でレジスタを動作させるように周辺モジュールを設計すれば、上述のレイテンシに関する問題を回避することができる。しかし、昨今、周辺モジュールは様々な製品に適用されることを前提として設計されるため、特定のシステムに特化して設計すると、周辺モジュールの汎用性が損なわれる。このため、レジスタであっても周辺モジュール用のクロック信号に同期するように設計されるのが通例となっており、従って上記の問題は依然として存在する。
【0023】
本発明は、上記事情に鑑みてなされたものであり、バスマスタがレジスタ等を内蔵する周辺モジュールをアクセスする際のレイテンシを有効に低減することができる情報処理装置およびインターフェイス回路を提供することを目的とする。
【課題を解決するための手段】
【0024】
本発明に係る情報処理装置は、第1クロック信号に同期して動作するバスマスタと、第2クロック信号に同期して動作する周辺モジュールと、前記第1クロック信号に同期して前記バスマスタとの間でデータ転送するための第1アクセスポートと前記第2クロック信号に同期して前記周辺モジュールとの間でデータ転送するための第2アクセスポートとを有する記憶手段を有し、該記憶手段を介して前記バスマスタと前記周辺モジュールとの間のデータ転送を遂行するインターフェイス回路とを備えた情報処理装置の構成を有する。
【0025】
上記情報処理装置において、例えば、前記インターフェイス回路は、前記バスマスタからのアクセスに基づき前記第1アクセスポートに供給すべき第1制御信号を生成すると共に、前記バスマスタからのアクセスがライト動作である場合に該アクセスがあったこと示すフラグを発生する第1ステートマシンと、前記フラグを格納するフラグレジスタと、前記フラグレジスタに格納されたフラグを検索するフラグ検索回路と、前記フラグ検索回路による検索結果に基づき前記第2アクセスポートに供給すべき第2制御信号を生成する第2ステートマシンとを備えたことを特徴とする。
【0026】
上記情報処理装置において、例えば、前記周辺モジュールは、複数の第1レジスタから構成され、前記フラグレジスタは、前記複数の第1レジスタに対応する複数の第2レジスタから構成され、前記フラグ検索回路は、前記複数の第2レジスタのうち、前記フラグが格納された第1レジスタに対応するレジスタを指定するアドレス信号を出力するように構成されたことを特徴とする。
【0027】
上記情報処理装置において、例えば、前記フラグ検索回路は、前記複数の第2レジスタの各アドレスに対応するカウント値を巡回的に発生して前記周辺モジュール及び前記記憶手段に供給するカウンタと、前記カウント値を前記第1クロック信号で同期化してフラグポインタとして前記フラグレジスタに供給すると共に、該フラグポインタで指定されるフラグレジスタに前記フラグが格納されていることを示すレジスタポインタを前記第2クロック信号に同期化する同期化回路と、前記同期化回路で同期化された前記レジスタポインタと前記カウント値とを比較し、その比較結果を前記第2ステートマシンに供給する比較器とを備えて構成され、前記第2ステートマシンは、前記比較結果が前記レジスタポインタと前記カウント値との一致を示す場合に、前記第2制御信号としてリード動作に関する制御信号を生成して出力することを特徴とする。
【0028】
上記情報処理装置において、例えば、前記複数の第2レジスタのそれぞれは、前記バスマスタからのアクセスの種別を示すフラグを格納するレジスタと、前記バスマスタからアクセスがあったことを示すフラグを格納するレジスタとから構成されたことを特徴とする請求項1ないし4の何れか1項記載の情報処理装置。
【0029】
上記情報処理装置において、例えば、前記第1及び第2ステートマシンは、これら第1及び第2ステートマシンの一方が前記記憶手段をアクセスする際に、これら第1及び第2ステートマシンの他方をロックステートに状態遷移させることを特徴とする。
【0030】
上記情報処理装置において、例えば、前記記憶手段は、前記第2アクセスポートとして複数のアクセスポートを備えたマルチポートRAMから構成され、前記マルチポートRAMの前記複数のアクセスポートには、前記周辺モジュールとして複数のモジュールがそれぞれ接続されたことを特徴とする。
【0031】
本発明に係るインターフェイス回路は、第1クロック信号に同期して動作するバスマスタと第2クロック信号に同期して動作する周辺モジュールとの間のデータ転送を遂行するインターフェイス回路であって、前記第1クロック信号に同期して前記バスマスタとの間でデータ転送するための第1アクセスポートと前記第2クロック信号に同期して前記周辺モジュールとの間でデータ転送するための第2アクセスポートとを有する記憶手段と、前記バスマスタからのアクセスに基づき前記第1アクセスポートに供給すべき第1制御信号を生成すると共に、前記バスマスタからのアクセスがライト動作である場合に該アクセスがあったこと示すフラグを発生する第1ステートマシンと、前記フラグを格納するフラグレジスタと、前記フラグレジスタに格納されたフラグを検索するフラグ検索回路と、前記フラグ検索回路による検索結果に基づき前記第2アクセスポートに供給すべき第2制御信号を生成する第2ステートマシンとを備えたインターフェイス回路の構成を有する。
【発明の効果】
【0032】
本発明によれば、バスマスタからのアクセスを受け付けるための第1アクセスポートと周辺モジュールからのアクセスを受け付けるための第2アクセスポートとを有する記憶手段を介してバスマスタと周辺モジュールとの間のデータ転送を遂行するようにしたので、バスマスタがレジスタ等の周辺モジュールをアクセスする際のレイテンシを有効に低減することができる。
【発明を実施するための最良の形態】
【0033】
以下、図面を参照しながら、本発明の実施形態を説明する。
図1に、本発明の実施形態に係る情報処理装置の概略構成を示す。同図において、符号1100は、バスクロック信号(第1クロック信号)SCLKに同期して動作するCPU等のバスマスタを示し、符号1200は、周辺クロック信号(第2クロック信号)PCLKに同期して動作する周辺モジュールを示す。これらバスマスタ1100と周辺モジュール1200はバス1300を介して相互に接続されている。
【0034】
周辺モジュール1200は、バスマスタ1100に対してレジスタ機能を提供するものであり、マルチポートRAMの一種であるデュアルポートRAM1210とレジスタ群1220とを含み、このレジスタ群1220は複数のレジスタRA〜RZから構成される。デュアルポートRAM1210は、上記複数のレジスタRA〜RZと一対一に対応するデータ記憶領域MA〜MZを備え、このデータ記憶領域MA〜MZにはレジスタRA〜RZの全ての値が格納される。即ち、デュアルポートRAM1210は、いわばレジスタRA〜RZのミラー値を格納するミラー回路として機能する。
【0035】
また、デュアルポートRAM1210は、バスマスタ1100とレジスタ群1220との間のインターフェイス回路としても機能し、以下に詳細に説明するように、このデュアルポートRAM1210を介してバスマスタ1100とレジスタ群1220との間のデータ転送が遂行されるように構成されている。
【0036】
図2に、上記周辺モジュール1200の詳細構成を示す。同図において、上述の図1に示す要素と同一要素には同一符号を付す。
図2において、符号1211及び符号1212は、デュアルポートRAM1210が備える第1及び第2アクセスポートを示す。このうち、第1アクセスポート1211は、バスクロック信号SCLKに同期してバスマスタ1100との間でデータ転送するためのものであり、この第1アクセスポート1211には、後述の第1ステートマシン(SFSM)1230からアドレス信号mADDRと各種の制御信号(CSN,WRN,RDN)が供給される。
【0037】
第2アクセスポート1212は、周辺クロック信号PCLKに同期して周辺モジュール1200との間でデータ転送するためのものであり、後述のフラグ検索回路1260からアドレス信号maddrが供給されると共に、後述の第2ステートマシン(PFSM)1240から各種の制御信号(mcsn,mwrn,mrdn)が供給される。
【0038】
符号1230は、第1アクセスポート1211を介してデュアルポートRAM1210をアクセスするための第1ステートマシン(SFSM)を示す。この第1ステートマシン1230には、バスマスタ1100から、アドレス信号ADDR、チップセレクト信号CSN、ライト信号WRN、リード信号RDNが供給される。符号1240は、第2アクセスポート1212を介してデュアルポートRAM1210をアクセスするための第2ステートマシン(PFSM)を示す。
【0039】
符号1250はフラグレジスタを示す。このフラグレジスタ1250は、第1ステートマシン1230が発生する後述のフラグを格納するためのものであり、複数のレジスタSA〜SZと複数のレジスタFA〜FZとの2種類のレジスタ群から構成される。ここで、レジスタSA〜SZは、バスマスタ1100が発行するトランザクションの種別(ライトトランザクション/リードトランザクション等)を表すフラグを格納するためのものであり、レジスタFA〜FZは、上記トランザクションの有無を表すフラグを格納するためのものである。
【0040】
これら二種類のレジスタSA〜SZ及びレジスタFA〜FZは、上述のレジスタ群1220のレジスタRA〜RZと一対一に対応していると共に、デュアルポートRAM1210のデータ記憶領域MA〜MZにも一対一に対応している。例えば、フラグレジスタ1250内のレジスタSAとレジスタFAは、レジスタ群1220内のレジスタRAに対応すると共に、デュアルポートRAM1210のデータ記憶領域MAに対応している。以下同様に、レジスタ群1220内の各レジスタに対して、フラグレジスタ1250内の二種類のレジスタ及びデュアルポートRAM1210内の各データ記憶領域が対応している。
【0041】
ここで、第1ステートマシン1230は、バスマスタ1100からデュアルポートRAM1210にデータが書き込まれると、このデータが書き込まれたデュアルポートRAM1210内のデータ記憶領域に対応するフラグレジスタ1250内のレジスタにフラグをセットする。また、第2ステートマシン1240は、そのデータがデュアルポートRAM1210から読み出されると、そのフラグをクリアする。このフラグは、第1ステートマシン1230に対しては、デュアルポートRAM1210に対するライト動作を禁止する意味を有し、第2ステートマシン1240に対してはデュアルポートRAM1210からのリード動作を許容する意味を有している。
【0042】
例えば、後述するように、第1ステートマシン1230は、デュアルポートRAM1210にデータを書き込む際にフラグレジスタ1250を参照し、フラグがセットされていると、そのフラグに対応するデュアルポートRAM1210のデータ記憶領域に対するライト動作を中止する。これにより、デュアルポートRAM1210から読み出されていないデータ、即ちレジスタ群1220への転送が完了していないデータの更新(破壊)を防止する。
【0043】
また、第2ステートマシン1240は、フラグレジスタ1250にフラグがセットされていると、そのフラグに対応するデュアルポートRAM1210のデータ記憶領域のリード動作を遂行すると共に、そのフラグをクリアする。このようにフラグをクリアすることにより、その後、このフラグが格納されていたレジスタに対応するデュアルポートRAM1210内のデータ記憶領域へのライト動作が許可されるようになる。
【0044】
符号1260はフラグ検索回路を示す。このフラグ検索回路1260は、同期化回路1261、比較器1262、カウンタ1263から構成され、フラグレジスタ1250内のフラグを検索し、その検索結果として、検索されたフラグの位置(フラグが格納されているフラグレジスタ1250内のレジスタ)に対応するレジスタ群1220内のレジスタと、デュアルポートRAM1210内のデータ記憶領域とを指定するためのアドレス信号maddrを生成するものである。
【0045】
符号1221はデコーダを示す。このデコーダ1221は、上記アドレス信号maddrに基づきレジスタ群1220内の一つのレジスタを選択的に特定するものである。レジスタ群1220内の各レジスタのデータ入力部は、リードデータrdata用のバスを介してデュアルポートRAM1210の第2アクセスポート1212と接続されている。
符号1222はマルチプレクサを示す。マルチプレクサ1222の入力部には、レジスタ群1220内の各レジスタの出力部が接続されると共に、このマルチプレクサ1222の出力部は、ライトデータwdata用のバスを介して上記第2アクセスポート1212に接続されている。
【0046】
上述のデュアルポートRAM1210、第1ステートマシン1230、第2ステートマシン1240、フラグレジスタ1250、フラグ検索回路1260は、このデュアルポートRAM1210を介してバスマスタ1100と周辺モジュール内のレジスタ群1220との間のデータ転送を遂行するインターフェイス回路として機能する。このインターフェイス回路は、周辺モジュール1200に内蔵されている必要はなく、周辺モジュール1200の外部に単体で備えられても良い。
【0047】
次に、図3ないし図5を参照して、本実施形態の情報処理装置の動作を説明する。
図3は、本情報処理装置の第1ステートマシン1230及び第2ステートマシン1240の状態遷移図であり、図4および図5は、それぞれ、本情報処理装置のライト動作及びリード動作のタイミングチャートである。
なお、その動作説明において、各ステートマシンの状態遷移については図3を参照され、各時刻での動作については図4及び図5を適宜参照されたい。
【0048】
先ず、図3の状態遷移図に示される各ステートの意味を説明しておく。
(1)第1ステートマシン1230のステート(SCLK同期)
SIDLE;バスマスタ1100によるライトトランザクション、リードトランザクションを待ち受けるアイドルステート。
SWAIT;バスマスタ1100に対しウェイトをかけるためのウェイトステート。現在アクセスしようとしているレジスタに対応するフラグレジスタ1250のレジスタフラグREG_FLGがフラグセットステートFLGSETにある場合に状態遷移する。
SWRITE;第1ステートマシン1230で認識するライトステート。次のサイクルでバスマスタ1100はライトトランザクションを終了する。
SREAD;第1ステートマシン1230で認識するリードステート。次のサイクルでバスマスタ1100はリードトランザクションを終了する。
【0049】
(2)フラグレジスタ1250のステート(SCLK同期)
FLGCLR;フラグレジスタ1250のレジスタフラグREG_FLGがクリアされたステート。
FLGSET;フラグレジスタ1250のレジスタフラグREG_FLGがセットされたステート。
【0050】
(3)第2ステートマシン1240のステート(PCLK同期)
PIDLE;第1ステートマシン1230によるライトトランザクション、リードトランザクションを待ち受けるアイドルステート。
PREAD;第2ステートマシン1240で認識するリードステート。
PFCLR;第2ステートマシン1240で認識するライトステート。
以上で、各ステートの意味を説明した。
【0051】
続いて、バスマスタ1100からデュアルポートRAM1210へのライト動作(バスマスタ1100からレジスタ群1220へのデータ転送)と、リード動作(レジスタ群1220からバスマスタ1100へのデータ転送)を順に説明する。
(1)ライト動作
図3および図4を参照してデュアルポートRAM1210へのライト動作を説明する。
初期状態では、第1ステートマシン1230がバスマスタ1100からのトランザクション(アクセス)を待ち受けるアイドルステートSIDLEにあり、且つ、フラグレジスタ1250内の全レジスタがクリアされた状態にあるものとする。
【0052】
この状態から、バスマスタ1100がライトトランザクションを開始すると、時刻t1において、第1ステートマシン1230に供給されるライト信号WRNがローレベルになり、チップセレクト信号CSNがローレベルになり、アドレス信号ADDRが、レジスタRZに対応するデータ記憶領域MZを指定する値に変化する。
【0053】
第1ステートマシン1230は、これらの信号状態から、バスマスタ1100によるライトトランザクションを検出すると、まず、フラグレジスタ1250を参照し、フラグがセットされているか否かを調べる。この場合は全てのフラグがクリアされている状態にあるため、デュアルポートRAM1210に対するライト動作は禁止されない。そこで、第1ステートマシン1230は、時刻t2においてライトステートSWRITEに状態遷移し、デュアルポートRAM1210のデータ記憶領域MZにライトデータWDATAを書き込む(図4;A)。
【0054】
そして、時刻t2から1サイクル後の時刻t3において、第1ステートマシン1230は、ライトステートSWRITEからアイドルステートSIDLEに状態遷移してデータ記憶領域MZに対するライトを完了する。このとき、第1ステートマシン1230は、レジスタRZに対応するフラグレジスタ1250内のレジスタFZにフラグをセットすると共に(図4;B)、且つ、レジスタSZには、ライトした旨を示すフラグをセットする。
【0055】
また、時刻t3においてアドレス信号ADDRの値がデータ記憶領域MAを指定する値に変化すると、第1ステートマシン1230は、同様に、フラグレジスタ1250を参照して時刻t4においてライトステートSWRITEに状態遷移し、データ記憶領域MAにライトデータWDATAを書き込む(図4;C)。そして、時刻t5において、ライトステートSWRITEからアイドルステートSIDLEに状態遷移してデータ記憶領域MAに対するライトを完了し、ライトが完了したことを表すフラグを、レジスタRAに対応するフラグレジスタ1250内のレジスタFAにセットすると共に(図4;D)、レジスタSAには、トランザクションがライトアクセスである旨のフラグをセットする。
【0056】
また、時刻t5においてアドレス信号ADDRの値がデータ記憶領域MBを指定する値に変化すると、同様に、第1ステートマシン1230は、フラグレジスタ1250を参照して時刻t6においてライトステートSWRITEに状態遷移し、データ記憶領域MBにライトデータWDATAを書き込む(図4;E)。そして、時刻t7において、ライトステートSWRITEからアイドルステートSIDLEに状態遷移してデータ記憶領域MBに対するライトを完了し、ライトが完了したことを表すフラグを、レジスタRBに対応するフラグレジスタ1250内のレジスタFBにセットすると共に(図4;F)、レジスタSBには、トランザクションがライトアクセスである旨のフラグをセットする。
【0057】
更に、時刻t7において、再び、アドレス信号ADDRの値がデータ記憶領域MZを指定する値に変化すると、第1ステートマシン1230は、再び、上述のレジスタRZに対するライトトランザクションを検出し、フラグレジスタ1250を参照して、レジスタFZ,SZにフラグがセットされているか否かを調べる。この場合、これらのレジスタにはフラグが既にセットされているため、データ記憶領域MZに対するライトが禁止される。そこで、時刻t8において、第1ステートマシン1230は、アイドルステートIDLEからウェイトステートSWAITに状態遷移して、ウェイト信号WAITをアサートし、バスマスタ1100に対してウェイトをかける(図4;G)。
【0058】
その後の時刻t9において、第2ステートマシン1240は、データ記憶領域MZのデータが読み出されると、フラグレジスタ1250のレジスタFZ,SZの各フラグをクリアする。第1ステートマシン1230は、レジスタFZ,SZの各フラグがクリアされたことを検出すると、時刻t10において、ウェイトステートSWAITからライトステートSWRITEに状態遷移し、ウェイト信号WAITをローレベルにネゲートする(図4;H)。これ以後、バスマスタ1100は、データ記憶領域RZに対するライト動作が再び可能となる。そこで、第1ステートマシン1230は、ライトステートに状態遷移して1サイクルでデータ記憶領域MZに対するライトを終了し、レジスタFZ,SZに各フラグをセットする(図4;J)。
【0059】
このように、第1ステートマシン1230及び第2ステートマシン1240によるデュアルポートRAM1210に対するアクセスは、常にフラグレジスタ1250を参照して行われ、そのフラグの状態によって各ステートマシンのアクセスが許可/禁止される。
【0060】
ここで、デュアルポートRAM1210からレジスタ群1220へのデータ転送を説明する。上述のように、バスマスタ1100からデュアルポートRAM1210にデータがライトされると、フラグレジスタ1250内の該当するレジスタにフラグがセットされるが、このフラグレジスタ1250内のフラグは、常時、フラグ検索回路1260によって監視されている。
【0061】
即ち、フラグ検索回路1260内のカウンタ1263は、レジスタ群1220内のレジスタRA〜RZの各アドレスに対応するカウント値を巡回的に発生する。このカウント値は、アドレス信号maddrとしてデュアルポートRAM1210の第2アクセスポート1212とデコーダ1221に供給されると共に、フラグレジスタ1250内のレジスタを指定するためのフラグポインタfpとされる。
【0062】
このフラグポインタfbは、同期化回路1261でバスクロック信号SCLKに同期化された後にフラグポインタFPとしてフラグレジスタ1250に供給される。フラグレジスタ1250では、フラグポインタFPで指定されるレジスタにフラグがセットされていると、その格納されたフラグレジスタに対応するデュアルポートRAM1210内のデータ記憶領域のアドレスに相当するリードポインタRPを出力する。
【0063】
リードポインタRPは同期化回路1261で周辺クロック信号PCLKに同期化されて比較器1262に供給される。比較器1262は、同期化回路1261で同期化されたフラグポインタの値とカウンタ1263からのカウント値とを比較し、これらが一致した場合に一致検出信号matをアサートする。この一致検出信号matがアサートされたときにカウンタ1263から出力されているアドレス信号maddrが、レジスタ群1220にライトすべきデータが存在するデュアルポートRAM1210内のデータ記憶領域のアドレスとなる。
【0064】
そこで、第2ステートマシン1240は、一致検出信号matがアサートされたときに、デュアルポートRAM1210の第2アクセスポート1212にリード信号mrdnをアサートして、このときのアドレス信号mrdnで指定されるデュアルポートRAM1210内のデータ記憶領域からリードデータrdataを読み出す。このリードデータrdataはレジスタ群1220のレジスタRA〜RZに向けて送出される。デコーダ1221は、カウンタ1263からのアドレス信号maddrに基づき、レジスタRA〜RZの一つを選択し、そのレジスタに上記リードデータrdataを格納させる。
【0065】
以上により、デュアルポートRAM1210を介してバスマスタ1100からレジスタ群1220にデータが転送される。このとき、バスマスタ1100からみれば、デュアルポートRAM1210はバスマスタの動作クロック信号と同じバスクロック信号SCLKで動作するので、レイテンシを要することなく、バスマスタ1100からデュアルポートRAM1210に高速にデータが転送される。従って、バスマスタ1100からレジスタ群1220への見かけ上のデータ転送速度を向上させることができる。
【0066】
このライト動作では、周辺モジュールがデュアルポートRAM1210のデータ記憶領域からデータをリードしているときにバスマスタ1100がこのデータ記憶領域にデータをライトしようとした場合に、デュアルポートRAM1210に対するアクセスが競合するので、このような場合にバスマスタ1100にウェイトがかけられる。しかしながら、CPUが実行する処理において、実際上、レジスタ群1220内のレジスタRA〜RZに一旦設定した値を連続して書き換えるケースは極めて稀であるため、アクセスの競合を防止するための上記ウェイトに起因してデータ転送効率が低下することは事実上ないと言える。
【0067】
(2)リード動作
次に、図3および図5を参照して、バスマスタ1100によるデュアルポートRAM1210からのリード動作を説明する。
ここでは、上述のライト動作でデュアルポートRAM1210のデータ記憶領域MZにデータを書き込んだ後、データ記憶領域MA,MB,MZからデータを順次読み出す場合を説明する。
【0068】
リードトランザクションに先だって、バスマスタ1100がライトトランザクションを開始すると、時刻t1において、第1ステートマシン1230に供給されるライト信号WRN及びチップセレクト信号CSNがローレベルになり、アドレス信号ADDRが、レジスタRZに対応するデータ記憶領域MZを指定する値に変化する。
【0069】
これらの信号状態から、第1ステートマシン1230はライトトランザクションを検出すると、上述と同様にフラグレジスタ1250を参照し、フラグがセットされているか否かを調べる。この場合、フラグレジスタ1250内のレジスタFZ,SZのフラグはクリアされているため、第1ステートマシン1230は、時刻t2においてライトステートSWRITEに状態遷移し、データ記憶領域MZにライトデータWDATAを書き込む(図5;A)。そして1サイクル後の時刻t3においてライトステートSWRITEからアイドルステートSIDLEに状態遷移し、データ記憶領域MZに対するライトを完了する。このとき、第1ステートマシン1230は、レジスタFZ,SZにフラグをセットする。(図5;B)
【0070】
その後、時刻t8において、バスマスタ1100がリードトランザクションを開始すると、ライト信号WRNがハイレベルにネゲートされ、リード信号RDNがローレベルにアサートされ、アドレス信号ADDRがデータ記憶領域MZを指定する値に変化する。これらの信号状態から、第1ステートマシン1230はリードトランザクションを検出すると、上述と同様にフラグレジスタ1250を参照し、レジスタFA,SAにフラグがセットされているか否かを調べる。この場合、レジスタFZ,SZにフラグがセットされた状態にあるため、第1ステートマシン1230は、ウェイトステートSWAITに状態遷移して、ウェイト信号WAITをハイレベルにアサートし、バスマスタ1100にウェイトをかける(図5;C)。
【0071】
また、図5において、例えば時刻t10において、第2ステートマシン1240によりレジスタFZ,SAのフラグがクリアされ、第1ステートマシン1230がフラグFZのクリアを検出すると、時刻t11において、第1ステートマシン1230はウェイトステートSWAITからリードステートSREADに状態遷移する(図5;D)。そして、第1ステートマシン1230は、リードステートSREADでデュアルポートRAM1210からデータを読み出し、時刻t10から2サイクルでリードアクセスを終了する。
【0072】
また、第1ステートマシン1230は、時刻t3のサイクルでのアイドルステートSIDLEにおいて、デュアルポートRAM1210内のデータ記憶領域MA(レジスタRAに対応する記憶領域)に対するアクセスを検出すると、フラグレジスタ1250内のレジスタFAを参照する。この場合、レジスタFAがクリアされた状態(アクセス許可の状態)にあるため、第1ステートマシン1230は、リードステートSREADに状態遷移し(図5;E)、リードデータRDATAをデュアルポートRAM1210から読み出す。このバスマスタ1100によるリード時には、フラグレジスタ1250にフラグをセットする必要はない(図5;F)。
【0073】
このリード動作では、周辺モジュールがデュアルポートRAM1210のデータ記憶領域にデータをライトしているときにバスマスタ1100がこのデータ記憶領域からデータ読み出そうとした場合にデュアルポートRAM1210に対するアクセスが競合するので、このような場合にバスマスタ1100にウェイトがかけられる。
以上で、ライト動作とリード動作を説明した。
【0074】
次に、図6の状態遷移図を参照して、バスマスタ1100と周辺モジュール1200の両方がデュアルポートRAM1210を同時に書き換えようとした場合のアクセス競合防止動作を説明する。概略的には、このアクセス競合防止動作では、第1ステートマシン1230及び第2ステートマシン1240は、これら第1及び第2ステートマシンの一方がデュアルポートRAM1210をアクセスする際に、これら第1及び第2ステートマシンの他方をロックステートに状態遷移させる。
【0075】
先ず、図6の状態遷移図に示される各ステートの意味を説明しておく。
FLGCLR;フラグレジスタ1250のレジスタフラグREG_FLGがクリアされた状態のステート。
(1)第1ステートマシン1230のステート
SIDLE;バスマスタ1100によるライトトランザクション、リードトランザクションを待ち受けるステート。
SWAIT;バスマスタ1100に対しウェイトをかけるためのウェイトステート。現在アクセスしようとしているレジスタのレジスタフラグREG_FLGがフラグセットステートFLGSETにある場合に状態遷移する。
SWRITE;第1ステートマシン1230で認識するライトステート。次のサイクルでバスマスタ1100はライトトランザクションを終了する。
SREAD;第1ステートマシン1230で認識するリードステート。次のサイクルでバスマスタ1100はリードトランザクションを終了する。
【0076】
(2)フラグレジスタ1250のステート
FLGCLR;レジスタフラグREG_FLGがクリアされたステート。
FLGSET;レジスタフラグREG_FLGがセットされたステート。
FLGLOCK;フラグクリアステートで第2ステートマシン1240からのロック要求を受信すると、本ステートに状態遷移する。本ステートでバスマスタ1100からのリード/ライトトランザクションが開始されると、ウェイト信号を出力してバスマスタ1100にウェイトをかける。この期間中、第2ステートマシン1240はデュアルポートRAM1210に割り込みフラグレジスタの値をライトする。
【0077】
(3)第2ステートマシン1240のステート
PIDLE;第1ステートマシン1230によるライトトランザクション、リードトランザクションを待ち受けるステート。
PLOCKREQ;割り込みフラグレジスタの値の更新を検出すると、本ステートに状態遷移し、レジスタフラグREG_FLGに対しロック要求を発行する。
PWRITE;レジスタフラグREG_FLGをロックした状態で本ステートに状態遷移し、デュアルポートRAM1210に割り込みフラグレジスタの値をライトする。
PUNLOCK;デュアルポートRAM1210に割り込みフラグレジスタの値をライトし終えると、本ステートに状態遷移し、レジスタフラグREG_FLGに対しアンロック要求を発行する。
PREAD;第2ステートマシン1240で認識するリードステート。
PFCLR;第2ステートマシン1240で認識するライトステート。
【0078】
上記各ステートに基づくアクセス競合防止方法を説明する。
図2に示す周辺モジュール1200内の第2ステートマシン1240は、プリセット信号PRESETに応答してアイドルステートPIDLEに状態遷移し(図6;A)、この状態で割り込みフラグレジスタの更新を検出すると、ロック要求ステートPLOCKREQに状態遷移して、フラグレジスタ1250内のレジスタフラグREG_FLGに対してロック要求を発行する。
【0079】
フラグレジスタ1250内のレジスタフラグREG_FLGは、フラグクリアステートFLGCLRにおいて第2ステートマシン1240から上記ロック要求を受信すると、フラグクリアステートFLGCLRからフラグロックステートFLGLOCKに状態遷移する(図6;B)。第1ステートマシン1230は、フラグレジスタ1250がフラグロックステートFLGLOCKに状態遷移したことを検出し、その状態でバスマスタ1100からのライトトランザクションを検出すると、ウェイトステートSWAITに状態遷移して(図6;C)、バスマスタ1100にウェイトをかける。
【0080】
第2ステートマシン1240は、ロック要求ステートPLOCKREQにおいて、レジスタフラグREG_FLGがフラグロックステートFLGLOCKに遷移したことを検出すると、ライトステートPWRITEに状態遷移し(図6;D)、デュアルポートRAM1210に対し、割り込みフラグレジスタの値をライトする。第2ステートマシン1240は、ライトステートPWRITEにおいて、デュアルポートRAM1210に対する上記割り込みフラグのライトを終了すると、アンロックステートPUNLOCKに状態遷移し(図6;E)、フラグレジスタ1250内のレジスタフラグREG_FLGに対しアンロック要求を発行する。
【0081】
レジスタフラグREG_FLGは、第2ステートマシン1240から上記アンロック要求を受信すると、フラグロックステートFLGLOCKからフラグクリアステートFLGCLRに状態遷移し(図6;F)、上記ロックを解除する。ロックが解除されると、第1ステートマシン1230はウェイトを解除し、バスマスタ1100からのトランザクションを受け付けて実行する。
【0082】
このように、フラグレジスタ1250のレジスタフラグREG_FLGに、バスマスタ1100からのアクセスに対してロックをかけるフラグロックステートFLGLOCKを持たせることにより、デュアルポートRAM1210に対するアクセスの競合を防止している。
【0083】
上述の本実施形態に係る情報処理装置の特徴をまとめる。
本情報処理装置では、周辺モジュール1200の本体をなすレジスタ群1220とバスマスタ1100との間にデュアルポートRAM1210がいわばミラー回路として存在し、このミラー回路を介してデータ転送が遂行される。このデータ転送に関する制御は、バスクロック信号SCLKに同期して動作する第1ステートマシン1230と周辺クロック信号PCLKに同期して動作する第2ステートマシン1240とで遂行される。バスマスタ1100が上記ミラー回路に対しレジスタライトを行うと、第1ステートマシン1230は、該当するフラグレジスタ1250内のレジスタにライトフラグをセットする。
【0084】
ライトフラグがセットされると、第2ステートマシン1240がレジスタフラグのライトイベントを検出する。このイベントを検出すると、第2ステートマシン1240は、上記ミラー回路にライトされたデータを読み出し、該当するレジスタ群1220内のレジスタの値を更新する。このとき、該当するアドレスの割り出しは、フラグ検索回路1260により、フラグの立っているフラグレジスタ1250のアドレスを割り出すことにより行われ、第2ステートマシン1240は、この割り出されたアドレスで特定されるデュアルポートRAM1210のデータ記憶領域からデータを読み出す。フラグ検索回路1260によるアドレスの割り出しは、フラグ検索回路1260内のカウンタのカウント値とレジスタのアドレスを示すリードポインタRPとを比較することにより行われる。
【0085】
第2ステートマシン1240は、レジスタ値の更新が完了すると、該当するレジスタのフラグをクリアする。同一アドレスへの同時アクセスを行うと、デュアルポートRAM1210内のデータが破壊されるおそれがある。しかしながら、本実施形態に係る情報処理装置によれば、同時にアクセスが発生した場合、フラグレジスタ1250を参照して、バスマスタ1100にウェイトをかけるので、データの破壊を回避することができる。また、設定されたレジスタの値は頻繁に書き換えられることはないので、上記ウェイトによりデータ転送効率が犠牲になることは事実上ない。
【0086】
このような本情報処理送致によれば、バスマスタ1100によるデュアルポートRAM1210に対するリード/ライドアクセスは、バスクロック信号SCLKを使用して行われるため、レイテンシを増加させる原因となる非同期データの同期化と、特別なデータのセットアップ/ホールドタイムを確保する必要がなくなる。従って、バスマスタ1100から見たレジスタアクセス時のレイテンシを大幅に低減することが可能となる。これにより、バスを高速化すればする程、レジスタアクセスにおけるバスマスタの占有率を下げることが可能となり、システム全体のパフォーマンスを向上させることができる。
【0087】
次に、図7を参照して本実施形態の変形例を説明する。
上述の実施形態では、周辺モジュール1200にデュアルポートRAM1210を組み込んで、この周辺モジュール1200とバスマスタ1100との間で一対一のデータ転送を行う場合を説明したが、ここでは、デュアルポートRAM1210に代えて、マルチポートRAMの一種である5ポートRAM700を介して、CPU等のバスマスタ710を含めた複数の周辺モジュール720,730,740,750の間でデータ転送を行う場合を説明する。
【0088】
この変形例では、5ポートRAM700は、周辺モジュール720〜750の全レジスタに対応するデータ記憶領域を備え、このデータ記憶領域には周辺モジュール720〜750の全レジスタの値が格納される。また、この5ポートRAM700の各アクセスポートには、クロック信号CLKで動作するCPU等のバスマスタ710と、クロック信号CLKAで動作する周辺モジュール720と、クロック信号CLKBで動作する周辺モジュール730と、クロック信号CLKCで動作する周辺モジュール740と、クロック信号CLKDで動作する周辺モジュール740とが接続され、この5ポートRAM700は、これらバスマスタ710及び周辺モジュール720〜750間のデータ転送を遂行するインターフェイス回路として機能する。
【0089】
また、5ポートRAM700は、上述の第1ステートマシン1230、第2ステートマシン1240、フラグレジスタ1250、フラグ検索回路1260にそれぞれ対応する構成を備え、5ポートRAM700の各アクセスポートにステートマシンが設けられる。このうち、バスマスタ710が接続されるアクセスポートに設けられるステートマシンは上述の第1ステートマシン1230と同様の機能を有し、周辺モジュール720〜750が接続された他のアクセスポートに設けられるステートマシンは上述の第2ステートマシン1240と同様の機能を有している。また、フラグ検索回路1260に対応する構成は、フラグレジスタ1250に対応するフラグレジスタを検索してモジュール別に検索結果を通知する機能を有している。
【0090】
このような変形例によれば、バスマスタ710は、仮に周辺モジュール720〜750で使用されるクロック信号がバスマスタ710で使用されるクロック信号と完全に非同期であり且つ低速であったとしても、バスマスタ710は、周辺モジュール720〜750の全レジスタに対してクロック信号SCLKの2サイクル分の時間でアクセスを終了することが可能となる。このため、上述の本実施形態と同様に、バスマスタ710が各周辺モジュールをアクセスする際のレイテンシを有効に低減することが可能になり、システム全体のパフォーマンスを向上させることができる。
【図面の簡単な説明】
【0091】
【図1】本発明の実施形態に係る情報処理装置の概略構成を示す図である。
【図2】本発明の実施形態に係る情報処理装置が備える周辺モジュールの詳細構成を示す図である。
【図3】本発明の実施形態に係る情報処理装置が備えるステートマシンの状態遷移図である。
【図4】本発明の実施形態に係る情報処理装置のライト動作を説明するためのタイミングチャートである。
【図5】本発明の実施形態に係る情報処理装置のリード動作を説明するためのタイミングチャートである。
【図6】本発明の実施形態に係るアクセス競合防止のための各ステートマシンの状態遷移図である。
【図7】本発明の実施形態に係る情報処理装置の変形例を説明するための図である。
【図8】従来技術の情報処理装置の概略構成を示す図である。
【図9】従来技術に係る情報処理装置を構成する周辺モジュールの詳細図である。
【図10】従来技術の情報処理装置が備えるステートマシンの状態遷移図である。
【図11】従来技術の情報処理装置のライト動作を説明するためのタイミングチャートである。
【図12】従来技術の情報処理装置のリード動作を説明するためのタイミングチャートである。
【符号の説明】
【0092】
1100;バスマスタ、1200;周辺モジュール、1210;デュアルポートRAM、1211;第1アクセスポート、1212;第2アクセスポート、1230;第1ステートマシン、1240;第2ステートマシン、1250;フラグレジスタ、1260;フラグ検索回路、1220;レジスタ群、1221;デコーダ、1222;マルチプレクサ、700;5ポートRAM、710;バスマスタ(CPU)、720〜750;周辺モジュール。
【特許請求の範囲】
【請求項1】
第1クロック信号に同期して動作するバスマスタと、
第2クロック信号に同期して動作する周辺モジュールと、
前記第1クロック信号に同期して前記バスマスタとの間でデータ転送するための第1アクセスポートと前記第2クロック信号に同期して前記周辺モジュールとの間でデータ転送するための第2アクセスポートとを有する記憶手段を有し、該記憶手段を介して前記バスマスタと前記周辺モジュールとの間のデータ転送を遂行するインターフェイス回路と
を備えた情報処理装置。
【請求項2】
前記インターフェイス回路は、
前記バスマスタからのアクセスに基づき前記第1アクセスポートに供給すべき第1制御信号を生成すると共に、前記バスマスタからのアクセスがライト動作である場合に該アクセスがあったこと示すフラグを発生する第1ステートマシンと、
前記フラグを格納するフラグレジスタと、
前記フラグレジスタに格納されたフラグを検索するフラグ検索回路と、
前記フラグ検索回路による検索結果に基づき前記第2アクセスポートに供給すべき第2制御信号を生成する第2ステートマシンと
を備えたことを特徴とする請求項1記載の情報処理装置。
【請求項3】
前記周辺モジュールは、複数の第1レジスタから構成され、
前記フラグレジスタは、前記複数の第1レジスタに対応する複数の第2レジスタから構成され、
前記フラグ検索回路は、前記複数の第2レジスタのうち、前記フラグが格納された第1レジスタに対応するレジスタを指定するアドレス信号を出力するように構成されたことを特徴とする請求項2記載の情報処理装置。
【請求項4】
前記フラグ検索回路は、
前記複数の第2レジスタの各アドレスに対応するカウント値を巡回的に発生して前記周辺モジュール及び前記記憶手段に供給するカウンタと、
前記カウント値を前記第1クロック信号で同期化してフラグポインタとして前記フラグレジスタに供給すると共に、該フラグポインタで指定されるフラグレジスタに前記フラグが格納されていることを示すレジスタポインタを前記第2クロック信号に同期化する同期化回路と、
前記同期化回路で同期化された前記レジスタポインタと前記カウント値とを比較し、その比較結果を前記第2ステートマシンに供給する比較器と
を備えて構成され、
前記第2ステートマシンは、前記比較結果が前記レジスタポインタと前記カウント値との一致を示す場合に、前記第2制御信号としてリード動作に関する制御信号を生成して出力することを特徴とする請求項3記載の情報処理装置。
【請求項5】
前記複数の第2レジスタのそれぞれは、
前記バスマスタからのアクセスの種別を示すフラグを格納するレジスタと、
前記バスマスタからアクセスがあったことを示すフラグを格納するレジスタと
から構成されたことを特徴とする請求項1ないし4の何れか1項記載の情報処理装置。
【請求項6】
前記第1及び第2ステートマシンは、これら第1及び第2ステートマシンの一方が前記記憶手段をアクセスする際に、これら第1及び第2ステートマシンの他方をロックステートに状態遷移させることを特徴とする請求項1乃至5何れか1項記載の情報処理装置。
【請求項7】
前記記憶手段は、前記第2アクセスポートとして複数のアクセスポートを備えたマルチポートRAMから構成され、
前記マルチポートRAMの前記複数のアクセスポートには、前記周辺モジュールとして複数のモジュールがそれぞれ接続されたことを特徴とする請求項1ないし5の何れか1項記載の情報処理装置。
【請求項8】
第1クロック信号に同期して動作するバスマスタと第2クロック信号に同期して動作する周辺モジュールとの間のデータ転送を遂行するインターフェイス回路であって、
前記第1クロック信号に同期して前記バスマスタとの間でデータ転送するための第1アクセスポートと前記第2クロック信号に同期して前記周辺モジュールとの間でデータ転送するための第2アクセスポートとを有する記憶手段と、
前記バスマスタからのアクセスに基づき前記第1アクセスポートに供給すべき第1制御信号を生成すると共に、前記バスマスタからのアクセスがライト動作である場合に該アクセスがあったこと示すフラグを発生する第1ステートマシンと、
前記フラグを格納するフラグレジスタと、
前記フラグレジスタに格納されたフラグを検索するフラグ検索回路と、
前記フラグ検索回路による検索結果に基づき前記第2アクセスポートに供給すべき第2制御信号を生成する第2ステートマシンと
を備えたインターフェイス回路。
【請求項1】
第1クロック信号に同期して動作するバスマスタと、
第2クロック信号に同期して動作する周辺モジュールと、
前記第1クロック信号に同期して前記バスマスタとの間でデータ転送するための第1アクセスポートと前記第2クロック信号に同期して前記周辺モジュールとの間でデータ転送するための第2アクセスポートとを有する記憶手段を有し、該記憶手段を介して前記バスマスタと前記周辺モジュールとの間のデータ転送を遂行するインターフェイス回路と
を備えた情報処理装置。
【請求項2】
前記インターフェイス回路は、
前記バスマスタからのアクセスに基づき前記第1アクセスポートに供給すべき第1制御信号を生成すると共に、前記バスマスタからのアクセスがライト動作である場合に該アクセスがあったこと示すフラグを発生する第1ステートマシンと、
前記フラグを格納するフラグレジスタと、
前記フラグレジスタに格納されたフラグを検索するフラグ検索回路と、
前記フラグ検索回路による検索結果に基づき前記第2アクセスポートに供給すべき第2制御信号を生成する第2ステートマシンと
を備えたことを特徴とする請求項1記載の情報処理装置。
【請求項3】
前記周辺モジュールは、複数の第1レジスタから構成され、
前記フラグレジスタは、前記複数の第1レジスタに対応する複数の第2レジスタから構成され、
前記フラグ検索回路は、前記複数の第2レジスタのうち、前記フラグが格納された第1レジスタに対応するレジスタを指定するアドレス信号を出力するように構成されたことを特徴とする請求項2記載の情報処理装置。
【請求項4】
前記フラグ検索回路は、
前記複数の第2レジスタの各アドレスに対応するカウント値を巡回的に発生して前記周辺モジュール及び前記記憶手段に供給するカウンタと、
前記カウント値を前記第1クロック信号で同期化してフラグポインタとして前記フラグレジスタに供給すると共に、該フラグポインタで指定されるフラグレジスタに前記フラグが格納されていることを示すレジスタポインタを前記第2クロック信号に同期化する同期化回路と、
前記同期化回路で同期化された前記レジスタポインタと前記カウント値とを比較し、その比較結果を前記第2ステートマシンに供給する比較器と
を備えて構成され、
前記第2ステートマシンは、前記比較結果が前記レジスタポインタと前記カウント値との一致を示す場合に、前記第2制御信号としてリード動作に関する制御信号を生成して出力することを特徴とする請求項3記載の情報処理装置。
【請求項5】
前記複数の第2レジスタのそれぞれは、
前記バスマスタからのアクセスの種別を示すフラグを格納するレジスタと、
前記バスマスタからアクセスがあったことを示すフラグを格納するレジスタと
から構成されたことを特徴とする請求項1ないし4の何れか1項記載の情報処理装置。
【請求項6】
前記第1及び第2ステートマシンは、これら第1及び第2ステートマシンの一方が前記記憶手段をアクセスする際に、これら第1及び第2ステートマシンの他方をロックステートに状態遷移させることを特徴とする請求項1乃至5何れか1項記載の情報処理装置。
【請求項7】
前記記憶手段は、前記第2アクセスポートとして複数のアクセスポートを備えたマルチポートRAMから構成され、
前記マルチポートRAMの前記複数のアクセスポートには、前記周辺モジュールとして複数のモジュールがそれぞれ接続されたことを特徴とする請求項1ないし5の何れか1項記載の情報処理装置。
【請求項8】
第1クロック信号に同期して動作するバスマスタと第2クロック信号に同期して動作する周辺モジュールとの間のデータ転送を遂行するインターフェイス回路であって、
前記第1クロック信号に同期して前記バスマスタとの間でデータ転送するための第1アクセスポートと前記第2クロック信号に同期して前記周辺モジュールとの間でデータ転送するための第2アクセスポートとを有する記憶手段と、
前記バスマスタからのアクセスに基づき前記第1アクセスポートに供給すべき第1制御信号を生成すると共に、前記バスマスタからのアクセスがライト動作である場合に該アクセスがあったこと示すフラグを発生する第1ステートマシンと、
前記フラグを格納するフラグレジスタと、
前記フラグレジスタに格納されたフラグを検索するフラグ検索回路と、
前記フラグ検索回路による検索結果に基づき前記第2アクセスポートに供給すべき第2制御信号を生成する第2ステートマシンと
を備えたインターフェイス回路。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公開番号】特開2008−97098(P2008−97098A)
【公開日】平成20年4月24日(2008.4.24)
【国際特許分類】
【出願番号】特願2006−275047(P2006−275047)
【出願日】平成18年10月6日(2006.10.6)
【出願人】(000004075)ヤマハ株式会社 (5,930)
【Fターム(参考)】
【公開日】平成20年4月24日(2008.4.24)
【国際特許分類】
【出願日】平成18年10月6日(2006.10.6)
【出願人】(000004075)ヤマハ株式会社 (5,930)
【Fターム(参考)】
[ Back to top ]