(57)【要約】【課題】ＦＰＧＡ等で構成するマイクロプロセッサのレジスタファイルを、単一アドレスポートのＲＡＭを使用して実現する。【解決手段】レジスタファイルは、単一アドレスポートの非同期式ＲＡＭ１１と、パイプラインのステージ毎に、ＲＡＭのリードアドレスとライトアドレスを切り替えるマルチプレクサ１２と、切り替えに同期してＲＡＭの出力データを一時ラッチするフリップフロップ回路１３とで構成する。  レジスタファイルを、単一アドレスポートの同期式ＲＡＭと、パイプラインのステージ毎にＲＡＭのリードアドレスとライトアドレスを切り替えるマルチプレクサとする構成も含む。【選択図】図１
2008065734.tif 000002
【特許請求の範囲】
【請求項１】
ＦＰＧＡやＡＳＩＣでマイクロプロセッサまたはマイクロコントローラを構成し、マイクロプロセッサまたはマイクロコントローラの演算部の演算データを一時記憶するためのレジスタファイルの書き込み／読み出し方式であって、
前記レジスタファイルは、
単一アドレスポートの非同期式ＲＡＭと、
パイプラインのステージ毎に、前記ＲＡＭのリードアドレスとライトアドレスを切り替えるマルチプレクサと、
前記切り替えに同期して、前記ＲＡＭの出力データを一時ラッチするフリップフロップ回路と、
を備えたことを特徴とするレジスタファイルの書き込み／読み出し方式。
【請求項２】
ＦＰＧＡやＡＳＩＣでマイクロプロセッサまたはマイクロコントローラを構成し、マイクロプロセッサまたはマイクロコントローラの演算部の演算データを一時記憶するためのレジスタファイルの書き込み／読み出し方式であって、
前記レジスタファイルは、
単一アドレスポートの同期式ＲＡＭと、
パイプラインのステージ毎に、前記ＲＡＭのリードアドレスとライトアドレスを切り替えるマルチプレクサと、
を備えたことを特徴とするレジスタファイルの書き込み／読み出し方式。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＦＰＧＡやＡＳＩＣで実現するマイクロプロセッサ（マイクロコントローラ）に係り、特に演算部の演算データを一時記憶するためのレジスタファイルの書き込み／読み出し方式に関する。
【背景技術】
【０００２】
ＦＰＧＡやＡＳＩＣで実現するマイクロプロセッサやマイクロコントローラは、その演算部で演算の結果を一時記憶するために、ＦＰＧＡ等にはレジスタファイルが構成される。このレジスタファイルは、図４にブロック構成で示すように、ＲＡＭ３１で構成され、演算部が演算に使うデータを読み出し、演算部の演算結果データを書き込むのに利用される。
【０００３】
図４のＲＡＭ３１は２ポートＲＡＭ構成とされ、Ｄが書き込みポート、Ｑが読み出しポート、ＷＡが書き込みアドレス、ＲＡが読み出しアドレスとなっている。読み出し、書き込み動作は互いにセパレートしたポートを有している（例えば、特許文献１参照）。
【０００４】
図５は、書き込み／読み出しのタイムチャートを示し、ステージ１は、アドレス１にデータＡＡを書き込むと共に、アドレス２の内容ＢＢを読み出している。ステージ２は、アドレス２にＣＣを書き込み、アドレス１の内容ＡＡを読み出している。このようにレジスタファイルはパイプライン動作を行う。
【特許文献１】特開２０００−２０７２７３号
【発明の開示】
【発明が解決しようとする課題】
【０００５】
マイクロプロセッサやマイクロコントローラをＡＳＩＣやＦＰＧＡで実現する場合、図４の構成はレジスタファイルにリード用とライト用の別々のアドレスポートを持つ２ポートＲＡＭ３１を用いているので、シンプルに構成できる。
【０００６】
反面、このタイプのＲＡＭは、単一アドレスポートのＲＡＭに比べ内部ゲートを多く必要とするため、チップのゲート規模や消費電力の面で不利になる。さらに、使用するＡＳＩＣやＦＰＧＡによっては、リード／ライト用の別々のアドレスポートを持つ２ポートＲＡＭが使えない場合もある。
【０００７】
本発明の目的は、上記の課題を解決したレジスタファイルの書き込み／読み出し方式を提供することにある。
【課題を解決するための手段】
【０００８】
本発明は、前記の課題を解決するため、単一アドレスポートのＲＡＭを使用し、パイプラインの各ステージでリードアドレスとライトアドレスをマルチプレクサで切り替えてデータ書き込み／読み出しを行うようにしたもので、以下の方式を特徴とする。
【０００９】
（１）ＦＰＧＡやＡＳＩＣでマイクロプロセッサまたはマイクロコントローラを構成し、マイクロプロセッサまたはマイクロコントローラの演算部の演算データを一時記憶するためのレジスタファイルの書き込み／読み出し方式であって、
前記レジスタファイルは、
単一アドレスポートの非同期式ＲＡＭと、
パイプラインのステージ毎に、前記ＲＡＭのリードアドレスとライトアドレスを切り替えるマルチプレクサと、
前記切り替えに同期して、前記ＲＡＭの出力データを一時ラッチするフリップフロップ回路と、
を備えたことを特徴とするレジスタファイルの書き込み／読み出し方式。
【００１０】
（２）ＦＰＧＡやＡＳＩＣでマイクロプロセッサまたはマイクロコントローラを構成し、マイクロプロセッサまたはマイクロコントローラの演算部の演算データを一時記憶するためのレジスタファイルの書き込み／読み出し方式であって、
前記レジスタファイルは、
単一アドレスポートの同期式ＲＡＭと、
パイプラインのステージ毎に、前記ＲＡＭのリードアドレスとライトアドレスを切り替えるマルチプレクサと、
を備えたことを特徴とするレジスタファイルの書き込み／読み出し方式。
【発明の効果】
【００１１】
以上のとおり、本発明によれば、リード／ライト用の別々のアドレスポートを持つ２ポートＲＡＭを使うことなく、レジスタファイルを実現するため、マイクロプロセッサ等の構成にＡＳＩＣ／ＦＰＧＡを選択する上での制限が緩和できる。
【００１２】
また、リード／ライト用の別々のアドレスポートを持つ２ポートＲＡＭの代わりに、単一アドレスポートのＲＡＭを用いてレジスタファイルを実現するので、ゲート数削減と低消費電力化できる。
【００１３】
また、ＡＳＩＣ／ＦＰＧＡが内蔵するＲＡＭは非同期式と同期式の両方が使用できる。
【発明を実施するための最良の形態】
【００１４】
図１は、本発明の実施形態を示すレジスタファイルの構成図であり、図２にデータ書き込み／読み出しのタイムチャートを示す。
【００１５】
本実施形態は、単一アドレスポートのＲＡＭ１１、リードアドレスＲＡとライトアドレスＷＡを切り替えるマルチプレクサ１２、ＲＡＭ１１の出力データを一時ラッチするフリップフロップ回路１３で構成する。なお、ＲＡＭ１１は非同期式のものを使用できる。
【００１６】
マルチプレクサ１２はＣＬＫ（クロック）が「Ｈ」のときリードアドレスＲＡを出力し、「Ｌ」のときライトアドレスＷＡを出力する。フリップフロップ回路１３はＣＬＫの立ち下がりエッジでラッチする。
【００１７】
この構成において、図２に示すように、１回のパイプラインステージで、前半は、ＲＡＭ１１にリードアドレスＲＡを与え、このアドレスに指し示されるデータをステージの中央になるＣＬＫの立ち下がりでラッチする。後半は、ＲＡＭ１１にライトアドレスＷＡを与え、このアドレスに指し示す番地に、データＤの内容をＣＬＫの立ち上がりで書き込む。
【００１８】
したがって、リード／ライト用の別々のアドレスポートを持つ２ポートＲＡＭの代わりに、単一アドレスポートのＲＡＭを用いてレジスタファイルを実現できる。
【００１９】
図３は、本発明の他の実施形態示すレジスタファイルの構成図であり、データ書き込み／読み出しのタイムチャートは図２と同様になる。
【００２０】
本実施形態は、単一アドレスポートのＲＡＭ２１、リードアドレスとライトアドレスを切り替えるマルチプレクサ２２で構成する。なお、ＲＡＭ２１は同期式のものとする。
【００２１】
マルチプレクサ２２はＣＬＫが「Ｈ」のときリードアドレスＲＡを出力し、「Ｌ」のときライトアドレスＷＡを出力する。ＲＡＭ２１はＣＬＫの立ち下がりエッジに同期して出力を変化させる。
【００２２】
この構成において、１回のパイプラインステージで、前半は、ＲＡＭ２１にリードアドレスＲＡを与え、このアドレスに指し示されるデータをステージの中央になるＣＬＫの立ち下がりでラッチする、後半は、ＲＡＭ２１にライトアドレスＷＡを与え、このアドレスに指し示す番地に、データＤの内容をＣＬＫの立ち上がりで書き込む。
【００２３】
したがって、リード／ライト用の別々のアドレスポートを持つ２ポートＲＡＭの代わりに、単一アドレスポートのＲＡＭを用いてレジスタファイルを実現できる。
【図面の簡単な説明】
【００２４】
【図１】本発明の実施形態を示すレジスタファイルの構成図。
【図２】本発明の他の実施形態を示すレジスタファイルの構成図。
【図３】実施形態におけるタイムチャート。
【図４】従来のレジスタファイルの構成図。
【図５】従来のタイムチャート。
【符号の説明】
【００２５】
１１  ＲＡＭ（非同期式）
１２  マルチプレクサ
１３  フリップフロップ
２１  ＲＡＭ（同期式）
２２  マルチプレクサ
【図１】
2008065734.tif 000003
【図２】
2008065734.tif 000004
【図３】
2008065734.tif 000005
【図４】
2008065734.tif 000006
【図５】
2008065734.tif 000007