(57)【要約】【課題】  任意のメモリアクセス要求に対して、効率的なデータ処理ができるメモリアクセス制御装置を提供する。【解決手段】  メモリアクセス制御装置においては、メモリアクセスの要求があった場合、ライトトランザクションであるか否かを判定する（Ｓ１１、Ｓ１２）。ライトトランザクションであれば、ライトトランザクションキューに予め定められた数に達するまで保持する（Ｓ１３〜１５）。予め定められた数に達すれば、ライトトランザクションをまとめて発行し、メモリアクセスを実行する（Ｓ１８、Ｓ１９）。【選択図】      図２
2006268734.tif 000002
【特許請求の範囲】
【請求項１】
外部に設けられたホストコンピュータからの要求に応じて、メモリに対して、指定されたメモリアドレスの位置のデータを読取るリードトランザクションまたは指定されたメモリアドレスの位置にデータを書込むライトトランザクションの発行を制御するメモリアクセス制御装置であって、
トランザクションが、前記ライトトランザクションであるか前記リードトランザクションであるかを判定するトランザクション判定手段と、
前記トランザクション判定手段の判定に応じて前記ライトトランザクションを保持するライトトランザクションキューと、
前記ライトトランザクションキューと別に設けられ、前記リードトランザクションを保持するリードトランザクションキューと、
前記ライトトランザクションキューに保持された前記ライトトランザクションの数が、予め定められた数に達したか否かを判断する判断手段と、
前記リードトランザクションは前記リードトランザクションキューに保持された順に、前記ライトトランザクションは前記判断手段が前記予め定められた数のライトトランザクションが保持されたと判断したとき、それらをまとめて、それぞれ前記メモリに発行する制御手段とを含む、メモリアクセス制御装置。
【請求項２】
前記ライトトランザクションキューは、書込みデータを保持するライトデータ領域を有する、請求項１に記載のメモリアクセス制御装置。
【請求項３】
前記メモリは、複数の行および列方向に配列されたメモリ素子を含み、
前記ライトトランザクションキューは、前記行ごとに設けられる、請求項１または２に記載のメモリアクセス制御装置。
【請求項４】
前記メモリは前記行を共通にする複数のバンクを含み、
前記ライトトランザクションキューは、前記行ごとに前記バンクの数だけ設けられる、請求項３に記載のメモリアクセス制御装置。
【請求項５】
前記ライトトランザクションキューの各々は、前記ライトトランザクションを複数保持する、請求項１〜４のいずれかに記載のメモリアクセス制御装置。
【請求項６】
前記判断手段は、前記行ごとに前記ライトトランザクションキューに保持された前記ライトトランザクションの数が予め定められた数に達したか否かを判断し、
前記制御手段は、前記判断手段が同一の行に保持されたライトトランザクションが予め定められた数に達したことを判断したとき、それらをまとめて前記メモリに発行する、請求項３〜５のいずれかに記載のメモリアクセス制御装置。
【請求項７】
前記制御手段は、前記リードトランザクションを前記ライトトランザクションに対して優先して発行する、請求項１〜６のいずれかに記載のメモリアクセス制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリアクセス制御装置に関し、特に効率的なデータ処理ができるメモリアクセス制御装置に関する。
【背景技術】
【０００２】
従来の情報処理装置においては、データ処理速度を向上させるため、バスシステムの最適化が図られている。
【０００３】
たとえば、複数のバスを効率的に利用し、データ処理速度の向上を図ったバスシステムが特開２００１−１４２１２号公報（特許文献１）に開示されている。特許文献１によると、階層構造をなしたバスシステムを、スプリットバスシステムとするバスシステムが記載されている。
【０００４】
ここで、特許文献１においては、ハードウェアであるバスシステムの構造を大幅に変更しなければならず、手間がかかる。
【０００５】
このような弊害を是正する手段として、メモリアクセス制御を最適化することによりデータ処理速度を向上させるメモリアクセス制御装置が、特開２００２−２７８９２３号公報（特許文献２）に記載されている。
【０００６】
特許文献２によると、メモリアクセスのトランザクションを格納するトランザクションキューを設けることにより、スループットを向上させ、データ処理速度の向上を図っている。
【特許文献１】特開２００１−１４２１２号公報（段落番号００２８〜００２９、図４）
【特許文献２】特開２００２−２７８９２３号公報（段落番号００４５〜００４９、図４〜７）
【発明の開示】
【発明が解決しようとする課題】
【０００７】
特許文献２によれば、すべてのメモリアクセスの処理要求に対し、トランザクションが登録された順に発行されメモリアクセスを行うため、データ処理速度が低下してしまう場合がある。たとえば、指定されたメモリアドレスの位置にデータを書込むライトトランザクションと、指定されたメモリアドレスの位置のデータを読取るリードトランザクションを交互に実行するような場合には、ライトトランザクションの実行とリードトランザクションの実行を切り替える必要があり、バス等のハードウェアの接続を切り替えるためのターンアラウンド時間を確保しなければならず、データ処理速度が遅延することとなる。
【０００８】
また、ライトトランザクションとリードトランザクションでは、データを書込む処理を要する分、ライトトランザクションの方が時間を要する。したがって、リードトランザクションの前にライトトランザクションが実行されていると、ライトトランザクションが終了するまで、その処理を待たなければならず、いわゆるリードレイテンシが発生することとなり、データ処理速度が遅延することとなる。
【０００９】
この発明は、任意のメモリアクセス要求に対して、効率的なデータ処理ができるメモリアクセス制御装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
この発明に係るメモリアクセス制御装置は、外部に設けられたホストコンピュータからの要求に応じて、メモリに対して、指定されたメモリアドレスの位置のデータを読取るリードトランザクションまたは指定されたメモリアドレスの位置にデータを書込むライトトランザクションの発行を制御するメモリアクセス制御装置であって、トランザクションが、ライトトランザクションであるかリードトランザクションであるかを判定するトランザクション判定手段と、トランザクション判定手段の判定に応じてライトトランザクションを保持するライトトランザクションキューと、ライトトランザクションキューと別に設けられ、リードトランザクションを保持するリードトランザクションキューと、ライトトランザクションキューに保持されたライトトランザクションの数が、予め定められた数に達したか否かを判断する判断手段と、リードトランザクションはリードトランザクションキューに保持された順に、ライトトランザクションは判断手段が予め定められた数のライトトランザクションが保持されたと判断したとき、それらをまとめて、それぞれメモリに発行する制御手段とを含む。
【００１１】
好ましくは、ライトトランザクションキューは、書込みデータを保持するライトデータ領域を有する。
【００１２】
より好ましくは、メモリは、複数の行および列方向に配列されたメモリ素子を含み、ライトトランザクションキューは、行ごとに設けられる。
【００１３】
より好ましくは、メモリは行を共通にする複数のバンクを含み、ライトトランザクションキューは、行ごとにバンクの数だけ設けられる。
【００１４】
より好ましくは、ライトトランザクションキューの各々は、ライトトランザクションを複数保持する。
【００１５】
より好ましくは、判断手段は、行ごとにライトトランザクションキューに保持されたライトトランザクションの数が予め定められた数に達したか否かを判断し、制御手段は、判断手段が同一の行に保持されたライトトランザクションが予め定められた数に達したことを判断したとき、それらをまとめてメモリに発行する。
【００１６】
より好ましくは、制御手段は、リードトランザクションをライトトランザクションに対して優先して発行する。
【発明の効果】
【００１７】
この発明によれば、ライトトランザクションキューとリードトランザクションキューとを別に設け、トランザクションがライトトランザクションであれば、ライトトランザクションキューに保持しておき、保持されたライトトランザクション数が予め定められた数に達すれば、ライトトランザクションをまとめて発行する。
【００１８】
これにより、処理の遅いライトトランザクションはまとめて処理することができ、ターンアラウンド時間を短縮することができる。また、処理の早いリードトランザクションは要求の都度処理されるため、処理の遅いライトトランザクションを待つことなく、リードレイテンシを軽減することができる。
【００１９】
その結果、任意のメモリアクセス要求に対して、効率的なデータ処理ができるメモリアクセス制御装置を提供することができる。
【発明を実施するための最良の形態】
【００２０】
以下、この発明の実施の形態を図面を参照して説明する。図１は、この発明の一実施形態に係るメモリアクセス制御装置１０の構成を示すブロック図である。図１を参照して、メモリアクセス制御装置１０は、ホストＩＦ部１１と、メモリアクセスを調停しながらトランザクションを判定するトランザクション判定部１２と、トランザクションキュー１３と、リードライト調停部１４と、コマンド部１５と、ストローブ部１６とを備える。トランザクションキュー１３は、リードトランザクションを保持するリードトランザクションキュー２１と、ライトトランザクションを保持するライトトランザクションキュー２２とを備え、共にトランザクションを発行する制御手段として作動する。ライトトランザクションキュー２２は、指定されたメモリアドレスの位置に書込むデータを保持するライトデータ領域２３を備える。
【００２１】
情報処理装置等の外部に設けられたホスト９から、ホストＩＦ部１１を介して、トランザクション判定部１２に対し、メモリアクセスの実行の対象となるＳＤＲＡＭ（Ｓｙｎｃｈｒｏｎｏｕｓ  Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１７にメモリアクセスの処理要求がなされる。トランザクション判定部１２は、メモリアクセスの処理要求に対し、メモリアクセスを調停しながら、対応するトランザクションを登録する。登録されたトランザクションをトランザクションキュー１３に保持し、リードライト調停部１４に発行する。その後、リードライト調停部１４は、コマンド部１５にトランザクションの実行を要求し、コマンド部１５はＳＤＲＡＭ１７に対し、メモリアクセスの処理を実行する。コマンド部１５は、メモリアクセス実行時に、トランザクションに対応するタグ情報等をストローブ部１６に送信し、ストローブ部１６は、受信したタグ情報等を使用して、ＳＤＲＡＭ１７とホスト９とのデータの送受信を行う。なお、ＳＤＲＡＭ１７は、後に説明するように、複数の行および列に配列された個々のメモリ素子を含む。
【００２２】
図２は、メモリアクセス制御装置１０から、メモリアクセスの処理を行う場合のフローチャートである。以下、図２を参照して、メモリアクセス制御装置１０の処理の流れについて説明する。ここで、ライトトランザクションキューに保持されるライトトランザクションの数が２となれば、ライトトランザクションを発行すると予め定められている。
【００２３】
まず、ホスト９から、データ書込みのメモリアクセスの処理要求（以下、「ライト要求」という。）がなされる（図２において、Ｓ１１、以下、ステップを省略する）。トランザクション判定部１２は、要求されたメモリアクセスの処理内容により、リードトランザクションを登録するか、またはライトトランザクションを登録するかを判定する（Ｓ１２）。ここで、トランザクション判定部１２はトランザクション判定手段として作動する。この場合、ライト要求がなされているため、ライトトランザクションを登録する（Ｓ１３）。その後、登録されたライトトランザクションは、ライトトランザクションキュー２２に保持される（Ｓ１４）。また、ライト要求によりＳＤＲＡＭ１７に書込むデータについても、ホスト９からホストＩＦ部１１を介して、ライトデータ領域２３に保持される。
【００２４】
ここで、ライトトランザクションキュー２２は判断手段として作動し、ライトトランザクションキュー２２に保持されたライトトランザクションの数が、２になったか否かを判断する（Ｓ１５）。この場合、ライトトランザクションキュー２２に保持されているライトトランザクションの数は１であるため、ライトトランザクションの数は２になっていないと判断される。したがって、ライトトランザクションを発行せず、Ｓ１１に戻る（Ｓ１５において、ＮＯ）。
【００２５】
次に、２回目のライト要求がなされる。この場合、上述と同様に、ライトトランザクションが登録され、ライトトランザクションキュー２２に保持される（Ｓ１３、Ｓ１４）。また、書込むデータについても、上述と同様に、ライトデータ領域２３に保持される。
【００２６】
ここで、保持されたライトトランザクションの数が２になったか否かを再び判断する（Ｓ１５）。この場合、ライトトランザクションキュー２２には保持されていたライトトランザクションの数は１であり、合計２となったため、ライトトランザクションの数が２になったと判断される（Ｓ１５において、ＹＥＳ）。したがって、保持されたライトトランザクションが発行され、メモリアクセスを実行する（Ｓ１８、Ｓ１９）。ここで、ライトデータ領域２３に保持された書込みデータを使用して、ＳＤＲＡＭ１７にデータが書込まれる。
【００２７】
この場合、２つのライトトランザクションをまとめて発行することとなるが、ＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ：先入れ先出し処理）における先行のライトトライザクションを実行する際に、書込み用のバス等のハードウェアを接続しているため、後のライトトランザクションを実行するにおいて、別途ハードウェアを接続するための時間を削減することができ、ターンアラウンド時間の短縮ができる。
【００２８】
なお、データ読取りのメモリアクセスの処理要求がなされると、トランザクション判定部１２は、メモリアクセスの処理の内容を判定し、リードトランザクションを登録する（Ｓ１２において、ＮＯ、Ｓ１６）
次に、登録されたリードトランザクションを、リードトランザクションキュー２１に保持する（Ｓ１７）。保持後、リードトランザクションキュー２１により、リードトランザクションは発行され、メモリアクセスを実行する（Ｓ１８、Ｓ１９）。
【００２９】
この場合、リードトランザクションについては、時間を要するライトトランザクションの終了を待つ必要はないため、リードレイテンシは軽減される。
【００３０】
なお、リードトランザクションとライトトランザクションが同時に要求されたときは、リードトランザクションをライトトランザクションに優先して発行させることとしてもよい。こうすることにより、より効率的なデータ処理をすることができる。
【００３１】
以上のように、ライトトランザクションキューとリードトランザクションキューとを別に設け、トランザクションがライトトランザクションであれば、ライトトランザクションキューに保持しておき、保持されたライトトランザクション数が予め定められた数に達すれば、ライトトランザクションをまとめて発行することとする。こうすることにより、連続してライト動作となるため、メモリバスの利用効率が高まり、ターンアラウンド時間を短縮することができる。また、処理の早いリードトランザクションは要求の都度発行するため、処理の遅いライトトランザクションを待つことなく処理することができる。
【００３２】
この結果、任意のメモリアクセス要求に対して、効率的なデータ処理ができるメモリアクセス制御装置を提供することができる。
【００３３】
次に、この発明の他の実施の形態について説明する。この実施の形態においては、ライトトランザクションキューをメモリ素子の行の数に分割し、それぞれの行ごとにライトトランザクションキューを設ける。
【００３４】
図３は、メモリに配列されたメモリ素子を行ごとに分割した概念図である。図３の中で、「○」印はメモリ素子、実線の矢印は行、一点鎖線の矢印は列を示す。メモリアクセス制御装置１０は、行列の交点に位置するメモリ素子に対して、メモリアクセスを実行する。ここで、指定されたメモリアクセスを実行する場合、行が同一であれば、同一の行アドレス信号を利用できるため、より効率的である。
【００３５】
図４は、図３にように構成されたメモリに対応するライトトランザクションキューの概念図であり、黒丸印はトランザクションが保持されている状態、「×」印はトランザクションが保持されていない状態を示している。
【００３６】
こうすることにより、メモリアドレスの位置を読み書きする際に、同一の行アドレス信号を利用し、列アドレス信号を変更するだけで、指定されたメモリアドレスの位置にメモリアクセスできるため、より高速に処理することができる。
【００３７】
この場合、同一の行に保持されたライトトランザクションの数が予め定められた数に達すれば、ライトトランザクションを発行する。ここで、各行ごとのライトトランザクションキューは、複数のライトトランザクションを保持する。たとえば、図４において、同一の行に保持されるライトトランザクションの数が２になれば、ライトトランザクションを発行すると予め定めた場合、行１や行４のライトトランザクションが発行される。こうすることにより、行ごとにライトトランザクションが発行されるため、より効率的に列アドレス信号を発することができる。
【００３８】
また、図５に示すように、行を共通にした複数のバンクを有するメモリに対応するトランザクションキュー２２としてもよい。こうすることにより、行アドレス信号を複数のバンクで共有することができ、より高速に処理が可能となる。上述と同様の条件に定めた場合、行１、行３のライトトランザクションが発行される。
【００３９】
次に、上述の実施の形態の効果を説明する。図６は、性能の異なるＳＤＲＡＭ１、２、３を使用し、リードトランザクションとライトトランザクションを要求された順に発行してメモリアクセスを実行した場合（比較例）と、リードトランザクションは保持された順に発行し、ライトトランザクションは予め定められた数に達すれば、ライトトランザクションを発行してメモリアクセスを実行した場合（実施例）との、メモリアクセス効率を示す表である。上記結果を得るための計算条件について、バンク数は１、ＳＤＲＡＭのバンク数は４、ＳＤＲＡＭの行アドレス本数は１３、ＳＤＲＡＭの列アドレス本数は１０としている。
【００４０】
図６を参照して、メモリアクセス効率を比較すると、ＳＤＲＡＭ１を使用した場合、実施例は７１．１％であるのに対し、比較例は６９．６％である。また、ＳＤＲＡＭ２を使用した場合、実施例は６６．２％であるのに対し、比較例は６１．１％である。さらに、ＳＤＲＡＭ３を使用した場合、実施例は６８．６％であるのに対し、比較例は６４．４％である。いずれのＳＤＲＡＭを使用した場合でも、比較例より実施例の方がメモリアクセス効率は優れている。
【００４１】
なお、上記の実施の形態においては、メモリアクセスの実行の対象としてＳＤＲＡＭを用いたが、これに限らず、たとえば、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）やＥＤＯＤＲＡＭ（Ｅｎｈａｎｃｅｄ  Ｄａｔａ  Ｏｕｔ  Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等を用いてもよい。
【００４２】
以上、図面を参照してこの発明の実施形態を説明したが、この発明は、図示した実施形態のものに限定されない。図示した実施形態に対して、この発明と同一の範囲内において、あるいは均等の範囲内において、種々の修正や変形を加えることが可能である。
【図面の簡単な説明】
【００４３】
【図１】この発明の一実施形態に係るメモリアクセス制御装置１０の構成を示すブロック図である。
【図２】メモリアクセス制御装置１０を用いて、メモリアクセスの処理を行う場合のフローチャートである。
【図３】メモリに配列されたメモリ素子を行ごとに分割した概念図である。
【図４】分割されたメモリに対応するライトトランザクションキューの概念図である。
【図５】行を共通にした複数のバンクを有するメモリに対応するトランザクションキューの概念図である。
【図６】性能の異なるＳＤＲＡＭ１、２、３を使用し、リードトランザクションとライトトランザクションを保持された順に発行してメモリアクセスを実行した場合と、リードトランザクションは優先して発行し、ライトトランザクションは予め定められた数に達すれば、ライトトランザクションを発行してメモリアクセスを実行した場合との、メモリアクセス効率を示す表である。
【符号の説明】
【００４４】
９  ホスト、１０  メモリアクセス制御装置、１１  ホストＩＦ部、１２  トランザクション判定部、１３  トランザクションキュー、１４  リードライト調停部、１５  コマンド部、１６  ストローブ部、１７  ＳＤＲＡＭ、２１  リードトランザクションキュー、２２  ライトトランザクションキュー、２３  ライトデータ領域、２５  行、２６  メモリ、２７  メモリ素子。
【図１】
2006268734.tif 000003
【図２】
2006268734.tif 000004
【図３】
2006268734.tif 000005
【図４】
2006268734.tif 000006
【図５】
2006268734.tif 000007
【図６】
2006268734.tif 000008