(57)【要約】【課題】  複数のバッファ付きポートを実装したメモリ制御装置において、メモリへのアクセス順序を保証するメモリ制御装置及びその制御方法を提供する。【解決手段】  複数のポートを持つメモリ制御装置１の各ポートにＦＩＦＯバッファを実装し、メモリへのアクセス時にその優先順位に応じてタグ情報を生成してアドレスとパックしてバッファ２１〜２４に格納し、バッファの出口でタグ情報を元に優先順位を再構築することで各ポートのアクセス順序をハードウェアで保証する。【選択図】        図１
2005092630.tif 000002
【特許請求の範囲】
【請求項１】
システム・バスに接続する複数のポートと、
前記ポートに接続し、入出力データを処理するポートインターフェースと、
前記ポートに入力されるメモリへのアクセス要求を登録するバッファと、
前記ポートのアクセス順序を管理し、アクセス順序に従ってタグ情報を生成するアクセス順序管理ブロック部と、
前記タグ情報を基に、前記アクセス要求の処理順番を再構築する調停回路と、
前記調停回路によって決められた処理順番に従って、メモリとのデータの読み込みと書き込みを行うメモリ・バスサイクル制御部とから構成する
メモリ制御装置。
【請求項２】
請求項１記載のメモリ制御装置において、
前記バッファは、前記アクセス順序管理ブロック部により生成されるタグ情報を登録するタグ情報ＦＩＦＯバッファと、メモリアクセス用のアドレスＦＩＦＯバッファと、データＦＩＦＯバッファとから構成する
メモリ制御装置。
【請求項３】
動作周波数の異なる複数のポートを、前記動作周波数の最も高速なクロックでサンプリングするステップと、
前記サンプリングにより検出したアクセス要求の到着順に従ってタグ情報を生成するステップと、
前記タグ情報をポート毎に設けたタグ情報ＦＩＦＯバッファへ登録するステップとを備えて、
前記タグ情報ＦＩＦＯバッファに登録されたタグ情報を基に、処理順番を再構築する処理により、前記ポートのアクセス順序を保証することを特徴とする
メモリ制御方法。
【請求項４】
請求項３記載のメモリ制御方法において、
前記タグ情報のタグのビット幅は、前記ポート数と前記アドレスＦＩＦＯバッファの深さに依存し、前記ポートに到着した順に従って、１ずつ加算することでタグを生成することを特徴とする
メモリ制御方法。
【請求項５】
請求項３記載のメモリ制御方法において、
前記タグ情報をタグ情報ＦＩＦＯバッファへ登録する際に、前記ポートに到着したアクセス要求に含まれるアドレスを前記タグ情報に付加して登録することを特徴とする
メモリ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリ制御装置及びその制御方法に関する。
【背景技術】
【０００２】
近年の大規模ＬＳＩ（大規模集積回路：Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）ではチップ上にＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、メモリ、Ｉ／Ｏ等の周辺回路、ハードウェア・エンジンが搭載され、所望のシステムを１チップで実現している。この様な大規模ＬＳＩをシステムオンチップ（以下ＳｏＣと称する）と呼称する。
【０００３】
図４に従来のＳｏＣの一部を示す構成図を示す。ＳｏＣではＣＰＵやＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）などの各種ハードウェア・エンジンが、バス・マスタ５１〜５４としてシステム・バス５５〜５８を介してメモリ制御装置６１のポート７１〜７４に接続し、共有メモリ６とのアクセスを行う。システム全体の性能向上を目的として、マスタ５１〜５４毎に複数のバス５５〜５８が存在し、それらのマスタが共有メモリ６に任意のタイミングでアクセスを行う。このようなメモリを共有するシステムでは、なんらかの手法でアクセス順序を制御することによりコヒーレンシを保証する必要がある。
【０００４】
図５に、従来のメモリ制御装置の構成図を示す。従来、メモリ制御装置６１側で複数ポートからのアクセス順序を保証するためには、内部に唯一のバッファ６２を実装し、各ポートに備えたポートインターフェース６６〜６９が接続する調停部６４において、調停回路６３が各ポートからのアクセス順序に従って優先順位を生成し、バッファ６２に優先順位に応じてアドレスパケットとデータパケットを保存することで、アクセス順序のハードウェア保証を行っていた。このような従来の構成では、優先順が下位のポートからのアクセスに関しては、より上位のアクセスが処理されるまでバスをウェイト状態にさせるために、同一バス上の他のマスタがメモリ以外のスレーブにアクセスする場合の性能を劣化させてしまうという問題があった。
【０００５】
また、上記問題を改善する従来のメモリ制御装置の構成図を図６に示す。上記問題を改善するために、メモリ制御装置６１の各ポートインターフェース６６〜６９に、それぞれバッファ６２１〜６２４を実装する。バッファ６２１〜６２４としては、例えばデータの入力順に出力を行うファーストインファーストアウト（ＦＩＦＯ）のメモリで構成する。以下ＦＩＦＯのメモリを単にＦＩＦＯと称する。この場合は、メモリ制御装置６１へのアクセス要求の到着順序に従って、各ポートインターフェースからのアクセス要求をキューに入れ管理する。例えば、ポートインターフェース６６に到着したアクセス要求は、到着順序に従い図６のＰに示す制御パスを通して調停回路６３へキュー登録する。一方、トランザクションを構成するアドレスパケットやデータパケットは、図６のＱに示すパスによりポートインターフェース６６からバッファ６２１へ登録する。調停回路６３は、登録されたキューに従ってアクセス要求の到着順序を評価し、それを基に図６のＲに示すパスによりバッファ出口に設けた調停部６４´にて各バッファからパケットを取り出し、メモリ・バスサイクル制御部６５へ受け渡す。
【０００６】
特許文献１には、ＦＩＦＯバッファを設けることにより、処理の効率化、高速化を可能としたコンピュータシステムについて提案されている。
【０００７】
【特許文献１】特開２００３−１９６０３３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
ところが、上記説明した従来のメモリ制御装置では、メモリ制御装置への到着順序は、トランザクションを構成するアドレス、データとは別系統の制御パスを介してバッファ出口の調停回路で評価されるため、ノイズなどによって制御論理がマイナーループに陥ると、その後の復帰は困難となる。
【０００９】
また、特許文献１に示されたコンピュータシステムでは、フレキシブルディスク制御装置などのメディア駆動装置に対してＦＩＦＯバッファを適用しているが、メモリ制御装置への適用に関しては、開示されていない。
【００１０】
一方、ＳｏＣの消費電力削減のためには、各バスが転送トラフィックに応じた最低周波数で動作することが効果的であるため、必然的にメモリ制御装置の各ポートは異なる周波数でのアクセス要求を処理しなければならない。さらにバスの転送効率を向上させるために各ポートにはライトバッファを実装するため、ライトアクセス時の性能向上をはかりつつクロック乗り換えを効率的に行う必要がある。
【００１１】
つまり、複数ポートを有するメモリ制御装置は、性能向上と低消費電力を目的として各ポートにバッファを実装しながらも、メモリ制御装置に対するアクセス順序を保証しなければならない。
【００１２】
本発明の目的は、複数のバッファ付きポートを実装したメモリ制御装置において、メモリへのアクセス順序を保証するメモリ制御装置及びその制御方法を提供することにある。
【課題を解決するための手段】
【００１３】
上記課題を解決するため、本発明は、複数のポートを持つメモリ制御装置の各ポートにＦＩＦＯバッファを実装し、メモリへのアクセス時にその優先順位に応じてタグ情報を生成し、アドレスとパックしてバッファに格納することで、バッファの出口でタグ情報を元に優先順位を再構築する。
【００１４】
これにより、各ポートのアクセス順序をハードウェアで保証することができる。また、アドレスとパックしてタグ情報もデータパスに流すため、簡易な制御で実装可能となり、且つノイズ耐性に優れた回路構成を実現できる。
【発明の効果】
【００１５】
本発明によると、ポート毎にＦＩＦＯバッファを実装することで、動作周波数の異なる複数のポートからのメモリアクセス要求に対して、アクセス順序を保証することが可能となる。
【００１６】
また、各ポートからのメモリアクセス時に、到着順序に応じたタグ情報を生成しアドレスとパックしてＦＩＦＯバッファに格納するため、バッファ出口で優先順位を再構築する際にノイズ等の影響を受けにくく、品質の高い装置を実現できる。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の一実施の形態を図１〜図３を参照して説明する。
【００１８】
図１は、本発明の一実施の形態による、メモリ制御装置の構成例を示すブロック図である。メモリ制御装置１には図示しない複数のポートがあり、そのポートはそれぞれバスに接続している。バス上のマスタから発行するアクセス要求は、バスを介してメモリ制御装置１のポートを通り、ポート毎に設けたポートインターフェース１１〜１４へ入力する。各ポートには、アドレスパケットを登録するアドレスＦＩＦＯ３１〜３４とデータパケットを登録するデータＦＩＦＯ４１〜４４を実装する。また、各ポートに到着するアクセス要求の順序を管理するアクセス順序管理ブロック部２を設け、そのアクセス順序管理ブロック部２が生成するタグ情報を登録するタグ情報ＦＩＦＯ２１〜２４をポート毎に実装する。アクセス順序に従い、各ポートからのアクセス要求を処理するために調停回路３を設け、調停回路３によって再構築された処理順番に従って、調停部４にてアドレスＦＩＦＯ３１〜３４やデータＦＩＦＯ４１〜４４から情報を読み出し、メモリ・バスサイクル制御部５へ渡す。メモリ制御装置１は以上のように構成する。
【００１９】
次に、以上説明した構成によるメモリ制御装置１の動作について説明する。
【００２０】
まず、異なる周波数で動作する各ポートからのアクセス要求をメモリ制御装置１側の周波数で処理するための、クロック乗り換え手段について説明する。各バスは、消費電力の低消費化のためにトラフィックに応じた動作周波数で動作するため、各ポートとメモリ制御装置間の周波数の差異を吸収する必要がある。そのため、各ポートにアドレスＦＩＦＯ３１〜３４とデータＦＩＦＯ４１〜４４を実装し、アクセス要求のパケットを受け付けると同時にＦＩＦＯへ書き込む。一方、調停回路３および調停部４では、メモリ制御装置１側の動作周波数に従って処理順番を再構築し、アドレスＦＩＦＯ３１〜３４やデータＦＩＦＯ４１〜４４から情報を読み出す。このようにＦＩＦＯバッファを設け、それを介して情報を受け渡すことにより、書き込み速度と読み出し速度の違いを吸収することができ、クロック乗り換えを行うことができる。
【００２１】
次に、ＦＩＦＯバッファを介する場合に、各ポートからのアクセス順番を保持する手段について説明する。上記説明したように、各ポートからのアクセス要求をＦＩＦＯバッファヘ書き込むが、その時点でアクセス順番に関する情報を失ってしまう。そこで、本例では、アクセス順序管理ブロック部２を設け、図１のＡに示すパスにより、メモリ制御装置１の各ポートをシステム・バスの最も高速なクロックでサンプリングし、各バス上のマスタがメモリ制御装置１に対してアドレスパケットを送出するのをモニタリングする。このアクセス順序管理ブロック２は、モニタリングした結果を基に各アドレスパケットに対して優先順位に応じたタグ情報を生成する。そして、各ポートインターフェース１１〜１４が、マスタから受け付けたアクセス要求のアドレスパケットの内容をアドレスＦＩＦＯ３１〜３４へ格納する際に、このタグ情報にアドレスを付加して、図１のＢに示すパスにより、ポート毎に設けたタグ情報ＦＩＦＯ２１〜２４へ書き込む。以上説明したように、アクセス順序管理ブロック部２によってタグ情報を生成し、ＦＩＦＯバッファへ格納することにより、アクセス順序に関する情報が保持できる。
【００２２】
次に、調停回路３において、各ポートからのアクセス要求をアクセス順序に従い処理する手段について説明する。調停回路３は図１のＣに示すパスにより、各ポートのタグ情報ＦＩＦＯ２１〜２４の出口部の情報を参照してアクセス順序を評価し、アクセス順序に従って処理順番を再構築する。調停回路３は、再構築した処理順番により、最も優先度の高いアクセス要求を持つポートのＦＩＦＯから情報を取り出すよう、図１のＤに示すパスにより調停部４に通知する。調停部４では、通知されたポートのアドレスＦＩＦＯからアドレスパケットを読み出し、更に当該アドレスに対応するデータパケットをデータＦＩＦＯから読み出して、その情報をメモリ・バスサイクル制御部５へ受け渡す。
【００２３】
以上説明したように構成することにより、メモリ制御装置の複数のポート間でのアクセス順序をハードウェアで保証することができる。
【００２４】
次に、本例のメモリ制御装置をパイプライン・バスに適用した場合について説明する。ＳｏＣのシステム・バスは、近年高速化傾向にあり、動作周波数を上げるためにアドレスとデータを時分割して転送するパイプライン・バスが主流になりつつある。このパイプライン・バスで実行するパイプライン処理の例について図３を参照して説明する。あるデータを転送する場合、Ｎサイクルでアドレスパケット（Ａｄｄｒ３）Ａ１１を送出し、（Ｎ＋１）サイクルでデータパケット（Ｄａｔａ３）Ｄ１１を送受信する。つまりNサイクルの時点では（Ｎ−１）サイクルで送出したアドレスパケット（Ａｄｄｒ２）Ａ１２のデータパケット（Ｄａｔａ２）Ｄ１２が転送されていることになる。このように、パイプライン制御では、各段階の処理機構を独立して動作させることにより、前のパケットの処理が終了する前に次のパケットの処理を実行することができる。また、バースト転送時には、先頭のアドレスパケットのフラグ（Ｂｕｒｓｔ４）Ｆ１１がバスに送出され、その後連続して複数のアドレスのデータ（Ａｄｄｒ１〜Ａｄｄｒ４）を転送する。
【００２５】
本例のメモリ制御装置をパイプライン・バスに適用する場合は、図１に示すメモリ制御装置１の各ポートのポートインターフェース１１〜１４を、上記のパイプライン・バスのインターフェースとして実装する。
【００２６】
次に、本実施の形態によるメモリ制御装置に対して、複数のパイプライン・バス上のマスタからアクセス要求を行った場合の制御手段について説明する。アクセス順序管理ブロック２が生成するタグのビット幅ｗは、ポート数とアドレスＦＩＦＯの深さに依存し、ポート数がn本で、アドレスＦＩＦＯの深さがmの場合には以下に示す式で算出される。
【数１】
2005092630.tif 000003
【００２７】
例えば、ポート数が4本で、アドレスＦＩＦＯの深さが８の場合には、タグのビット幅は５ビットとなり、到着順に応じて、５´ｂ０００００から５´ｂ１１１１１までカウントする。調停回路３は、現在アクセス中のタグに１加算したタグ情報を有するアクセス要求に処理許可を与え、メモリ・バスサイクル制御部５にそのパケット情報を伝達する。
【００２８】
図２は、３本のポートからアクセス要求が発生した場合に、アクセス順序管理ブロック部２がタグ情報を生成する例を示している。例えば、ポート１〜ポート３に到着したアクセス要求が図２に示す状態であった場合について説明する。なお、ポート１〜ポート３の動作周波数は異なっていて、例えばポート１とポート２はほぼ同じ周波数で、ポート３がそれよりも長い周波数で動作していたとする。このとき、メモリ制御装置１に到着したパケットの順序が、「ポート１のＡｄｄｒ１」Ａ１→「ポート１のＡｄｄｒ２」Ａ２→「ポート２のＡｄｄｒ１」Ａ３→「ポート３のＡｄｄｒ１」Ａ４→「ポート１のＡｄｄｒ３」Ａ５だったとする。アクセス順序管理ブロック部２は、上記到着順に従って、タグ情報を生成するため、「ポート１のＡｄｄｒ１」Ａ１に対しては「Ｔａｇ１」を生成し、アドレスの情報（Ａｄｄｒ１）を付加してタグ情報ＦＩＦＯに登録する（Ｔ１）。「ポート１のＡｄｄｒ２」に対してはＴａｇ１に１加算した「Ｔａｇ２」を生成し、アドレスの情報（Ａｄｄｒ２）を付加してタグ情報ＦＩＦＯに登録する（Ｔ２）。同様に、「ポート２のＡｄｄｒ１」に対してはＴａｇ２に１加算した「Ｔａｇ３」を生成する、というように順にカウントアップしながらタグ情報を生成し、その情報にアドレスを付加してタグ情報ＦＩＦＯ２１〜２４へ登録する。
【００２９】
一方、調停回路３は、タグ情報ＦＩＦＯ２１〜２４の情報を参照し、まず「Ｔａｇ１」が付加されている「ポート１のＡｄｄｒ１」のアクセス要求に処理許可を与え、調停部４が「ポート１のＤａｔａ１」Ｄ１をデータＦＩＦＯから取り出して、メモリ・バスサイクル処理部５に伝達する。次に、調停回路３はＴａｇ１に１加算した「Ｔａｇ２」が付加されている「ポート１のＡｄｄｒ２」Ｄ２のアクセス要求に処理許可を与え、調停部４が「ポート１のＤａｔａ２」をデータＦＩＦＯから取り出して、メモリ・バスサイクル処理部５に伝達する。このように、アクセス順序管理ブロック部２が生成したタグ情報を基に、調停回路３で処理順番を再構築することにより、複数ポート間でのアクセス順序をハードウェアで保証することができる。
【００３０】
なお、アクセス順序管理ブロック部２の生成するタグは、５´ｂ１１１１１までカウントした後は、再度５´ｂ０００００に戻ってカウントし、調停回路３でのタグ情報の評価時には、前のサイクルのタグ情報をすべて処理した後に新しいサイクルのタグ情報を評価するように制御する。
【００３１】
また、以上説明したデータＦＩＦＯ４１〜４４は、データの書き込み時と読み出し時で兼用することが可能である。バス上のマスタからデータをメモリへ書き込む要求の場合は、まず、マスタから送出された書き込みデータのアドレスを図１のＥに示すパスによりポートインターフェースからアドレスＦＩＦＯ３１〜３４へ、データの内容を図１のＦに示すパスによりポートインターフェースからデータＦＩＦＯ４１〜４４へ登録する。次に、調停部４が図１のＧに示すパスによりアドレスＦＩＦＯ３１〜３４からアドレスを、図１のＨに示すパスによりデータＦＩＦＯ４１〜４４からデータを読み出し、読み出したアドレスとデータを図１のＩとＪに示すパスにより、調停部４からメモリ・バスサイクル制御部５へ伝達してメモリの該当するアドレスへそのデータを書き込む。一方、データをメモリから読み出す要求の場合は、マスタから送出された読み出し対象のアドレスを図１のＥに示すパスによりポートインターフェースからアドレスＦＩＦＯ３１〜３４へ登録し、調停部４は読み出し対象のアドレスをアドレスＦＩＦＯ３１〜３４から取り出して図１のＩに示すパスによりメモリ・バスサイクル処理部５に伝達する。メモリ・バスサイクル処理部５はメモリから該当するアドレスのデータを読み出して、図１のＪに示すパスにより調停部４に伝達し、調停部４はその内容を図１のＨに示すパスによりデータＦＩＦＯ４１〜４４へ登録する。その後、そのデータは図１のＦに示すパスによりポートインターフェース１１〜１４へ伝達し、ポートインターフェースからバスを介して要求元マスタへ伝達する。このようにデータＦＩＦＯ４１〜４４を書き込み時と読み出し時で兼用することでコストを抑え、メモリアクセス時のバス効率を向上させることができる。
【図面の簡単な説明】
【００３２】
【図１】本発明の一実施の形態によるメモリ制御装置の構成例を示すブロック図である。
【図２】本発明の一実施の形態によるタグ情報生成例を示す説明例である。
【図３】パイプライン・バスで実行するパイプライン処理の例を示す説明図である。
【図４】従来のＳｏＣの一部を示す構成図である。
【図５】従来のメモリ制御装置の構成例を示すブロック図である。
【図６】従来のメモリ制御装置の他の構成例を示すブロック図である。
【符号の説明】
【００３３】
１…メモリ制御装置、２…アクセス順序管理ブロック部、３…調停回路、４…調停部、５…メモリ・バスサイクル制御部、６…メモリ、１１〜１４…ポートインターフェース、２１〜２４…タグ情報ＦＩＦＯ、３１〜３４…アドレスＦＩＦＯ、４１〜４４…データＦＩＦＯ、５１〜５４…マスタ、５５〜５８…バス、６１…メモリ制御装置、６２…バッファ、６３…調停回路、６４，６４´…調停部、６５…メモリ・バスサイクル制御部、６６〜６９…ポートインターフェース、６２１〜６２４…バッファ、７１〜７４…ポート、Ａ１〜Ａ５，Ａ１１，Ａ１２…アドレス、Ｄ１，Ｄ２，Ｄ１１，Ｄ１２…データ、Ｆ１１…フラグ、Ｔ１〜Ｔ５…タグ
【図１】
2005092630.tif 000004
【図２】
2005092630.tif 000005
【図３】
2005092630.tif 000006
【図４】
2005092630.tif 000007
【図５】
2005092630.tif 000008
【図６】
2005092630.tif 000009