(57)【要約】  アドレスを複数回発行して１つのデータにアクセスするメモリを、複数の回路が共有している場合に、アクセスの高速化を図るメモリ空間割付方法と装置を提供する。複数の回路５０１が共有する外部メモリ５０５のメモリ空間の上位アドレスを、最大限一致させるように、メモリの割付を行う。メモリ制御回路は、上位アドレスが共通する場合は上位アドレスを転送しないことで、その転送回数を減らしてアクセスを高速化する。
2007069506.tif 000002
【特許請求の範囲】
【請求項１】
一又は複数のアクセス生成手段を備え、前記一又は複数のアクセス生成手段は、あわせて少なくとも２種類のアクセスを生成し、
前記アクセス生成手段からのアクセスを処理するアクセス手段と、
前記アクセス手段に接続され、１つのアドレスを指定するために、少なくとも２つ以上のアドレス指定情報を通信し、前記通信のうち、通信するアドレス指定情報が前回通信したアドレス指定情報と等しい情報の通信を省くことのできる記憶手段と、
前記アクセス生成手段と前記アクセス手段との間の通信路のアドレス幅とデータ幅と、前記記憶手段の前記アドレス指定情報の幅とデータ幅と、に基づき、前記記憶手段への平均アクセス回数を最小化するように、前記アクセス生成手段が用いる前記記憶手段における占有領域を決定する計算手段と、
を備えている、ことを特徴とする記憶領域割当システム。
【請求項２】
前記計算手段は、前記複数のアクセス生成手段の前記記憶手段における占有領域の配置の割当てのパターンを網羅的に列挙し、
前記列挙した各パターンにおいて、平均アクセス回数を求め、その中の最小の平均アクセス回数を持つ前記記憶手段における占有領域を決定する、ことを特徴とする請求項１記載の記憶領域割当システム。
【請求項３】
前記計算手段は、１ビットのライトイネーブルが影響する第２のデータ幅を入力し、
前記アクセス生成手段のデータ幅を、前記第２のデータ幅で除して得られた商を整数に切り上げ、さらに前記整数に前記第２のデータ幅を乗じた値を、前記アクセス生成手段のデータ幅として用いて、前記記憶手段における占有領域を決定する、ことを特徴とする請求項１又は２記載の記憶領域割当システム。
【請求項４】
前記計算手段は、前記アドレス指定情報のうち１つのアドレス指定情報と、前記第２のデータ幅とで、前記アクセス生成手段が占有するはずの占有領域を分割した領域を用いて、前記アクセス生成手段の前記記憶手段における占有領域を決定する、ことを特徴とする請求項３記載の記憶領域割当システム。
【請求項５】
請求項１又は２記載の記憶領域割当システムを備え、
前記アクセス生成手段と前記アクセス手段との間の通信路のアドレス幅とデータ幅と、前記記憶手段の前記アドレス指定情報の幅とデータ幅とを前記計算手段に伝える入力手段と、
前記計算手段が決定した占有領域の割当と、前記アクセス生成手段のアクセス状況とに基づき、平均アクセス回数が最小となるように、アクセス順序を決定するアクセス順序決定手段と、
を備え、
前記アクセス手段は、前記アクセス順序決定手段によって決定されたアクセス順序に従って前記記憶手段を制御する、ことを特徴とする制御装置。
【請求項６】
請求項３又は４記載の記憶領域割当システムを備え、
前記アクセス生成手段と前記アクセス手段との間の通信路のアドレス幅とデータ幅と、前記記憶手段の前記アドレス指定情報の幅とデータ幅と１ビットのライトイネーブルが影響するデータ幅とを前記計算手段に伝える入力手段と、
前記計算手段が決定した占有領域の割当と、前記アクセス生成手段のアクセス状況とに基づき、平均アクセス回数が最小となるように、アクセス順序を決定するアクセス順序決定手段と、
を備え、
前記アクセス手段は、前記アクセス順序決定手段によって決定されたアクセス順序に従って、前記記憶手段へのアクセスを制御する、ことを特徴とする制御装置。
【請求項７】
前記記憶手段は、クロック同期型のダイナミックランダムアクセスメモリであり、
前記アクセス順序決定手段は、同じ行アドレスに配置された前記アクセス生成手段が利用するメモリ空間へアクセスするとき、一回のアクティブ・コマンドと、複数回のリード・コマンド／ライト・コマンドと一回のプリチャージ・コマンドを順に発行して処理を行う、ことを特徴とする請求項５又は６記載の制御装置。
【請求項８】
前記アクセス順序決定手段は、同じ行アドレスに配置された前記アクセス生成手段が利用するメモリへアクセスするとき、ライト処理とリード処理のいずれか一方をまとめて先に処理し、次に、その残りの処理を行うように制御する、ことを特徴する請求項５又は６記載の制御装置。
【請求項９】
一又は複数のアクセス生成手段があわせて少なくとも２種類のアクセスを生成し、前記アクセス生成手段からのアクセスを処理するアクセス手段に接続され、１つのアドレスを指定するために少なくとも２つ以上のアドレス指定情報を通信し、かつ、前記通信のうち通信するアドレス指定情報が前回通信したアドレス指定情報と等しい情報の通信は省くことのできる記憶手段の占有領域の割当方法であって、
（ａ）前記アクセス生成手段と前記アクセス手段との間の通信路のアドレス幅とデータ幅を入力するステップと、
（ｂ）前記記憶手段の前記アドレス指定情報の幅とデータ幅を入力するステップと、
（ｃ）前記ステップ（ａ）とステップ（ｂ）で得られた情報から、平均アクセス回数を最小化するように、前記アクセス生成手段が用いる前記記憶手段における占有領域を決定するステップと、
を含む、ことを特徴とする記憶領域割当方法。
【請求項１０】
前記ステップ（ｃ）において、
（ｃ．１）前記アクセス生成手段が用いる前記記憶手段における占有領域の配置の割当に関して複数のパターンを列挙するステップと、
（ｃ．２）前記ステップ（ｃ．１）で得られた各パターンの平均アクセス回数を計算するステップと、
（ｃ．３）前記ステップ（ｃ．２）で得られた各パターンの平均アクセス回数の中から最小の平均アクセス回数を持つパターンを、前記アクセス生成手段が用いる前記記憶手段における占有領域として決定するステップと、
を有する、ことを特徴とする請求項９記載の記憶領域割当方法。
【請求項１１】
前記ステップ（ａ）において、
（ａ．１）前記記憶手段における１ビットのライトイネーブルが影響する第２のデータ幅を入力するステップと、
（ａ．２）前記アクセス生成手段のデータ幅を前記第２のデータ幅で割って、その値を整数に切り上げ、さらに前記整数に前記第２のデータ幅を乗じ、乗算結果を前記アクセス生成手段のデータ幅として、修正するステップと、
を有する、ことを特徴とする請求項９又は１０記載の記憶領域割当方法。
【請求項１２】
前記ステップ（ｃ．１）において、
（ｃ．１．１）前記アドレス指定情報のうち１つのアドレス指定情報と第２のデータ幅で、前記記憶手段を、前記各アクセス生成手段が占有する占有領域に分割するステップと、
（ｃ．１．２）前記ステップ（ｃ．１．１）で得られた分割された占有領域と前記各アクセス生成手段との割当ての組み合わせのパターンを列挙するステップと、
を有する、ことを特徴とする請求項１０記載の記憶領域割当方法。
【請求項１３】
前記ステップ（ｃ．１）において、
（ｃ．１．３）前記ステップ（ｃ．１．２）で列挙されたパターンのうちから、あきらかに同じ平均アクセス回数となるパターンを、事前に消去するステップを有し、
前記ステップ（ｃ．２）では、前記ステップ（ｃ．１．２）で列挙されたパターンのうちから、明らかに同じ平均アクセス回数となるパターンが消去された、残りの各パターンの平均アクセス回数を計算する、ことを特徴とする請求項１２記載の記憶領域割当方法。
【請求項１４】
請求項１０乃至１３のいずれか一に記載の記憶領域割当方法を用いて記憶手段へのアクセスを制御する制御方法であって、
（ｄ）前記ステップ（ｃ）で取得された、前記アクセス生成手段が用いる前記記憶手段における占有領域の配置情報と、前記各アクセス生成手段から前記記憶手段へのアクセス状況とに基づき、アクセス順序を決定するステップと、
（ｅ）前記アクセス手段が、前記ステップ（ｄ）で決定されたアクセス順序にしたがって、前記記憶手段へのアクセスを制御するステップと、
を有する、ことを特徴とする制御方法。
【請求項１５】
複数の回路から、共通のメモリへのアクセスを制御する制御装置であって、
前記複数の回路のそれぞれのアドレス幅及びデータ幅と、
前記メモリの上位アドレス幅及び下位アドレス幅とデータ幅に関する情報、又は、該情報と前記メモリの１ビットのライトイネーブルが影響するデータ幅に関する情報と、
を受け、前記回路のアクセスを処理するのに費やすサイクル数を少なくするように前記回路に対して割当てられるメモリ配置を決定する計算手段と、
前記複数の回路からのアクセス情報と、前記計算手段で決定されたメモリ配置とに基づき、前記メモリへのアクセス順序を決定するアクセス順序決定手段と、
前記アクセス順序決定手段が決定したアクセス順序にしたがって前記メモリへアクセスを行うアクセス手段と、
を備えている、ことを特徴とする制御装置。
【請求項１６】
前記回路は、前記メモリへのリード又はライトアクセスを行うにあたり、アドレス情報を複数回発行し、
前記メモリは、前記回路からの前記複数回のアドレス情報のうち、前回と同じアドレスにアクセスするときは、そのアドレス転送を省くことができるものである、ことを特徴とする請求項１５記載の制御装置。
【請求項１７】
前記計算手段は、前記回路からの前記メモリへのアクセス回数を最小とするように、前記回路に対するメモリ配置を計算する、ことを特徴とする請求項１５記載の制御装置。
【請求項１８】
複数の回路から、共通のメモリへのアクセスを制御する制御装置を構成するコンピュータに、
前記複数の回路のそれぞれのアドレス幅及びデータ幅と、
前記メモリの上位アドレス幅及び下位アドレス幅とデータ幅に関する情報、又は、該情報と前記メモリの１ビットのライトイネーブルが影響するデータ幅に関する情報と、
を受け、前記回路のアクセスを処理するのに費やすサイクル数を少なくするように前記回路に対して割当てられるメモリ配置を決定する計算処理と、
前記複数の回路からのアクセス情報と、前記計算処理で決定されたメモリ配置とに基づき、前記メモリへのアクセス順序を決定するアクセス順序決定処理と、
前記アクセス順序決定処理が決定したアクセス順序にしたがって前記メモリへのアクセスを行うアクセス処理と、
を実行させるプログラム。
【請求項１９】
請求項１８記載のプログラムにおいて、前記回路は、前記メモリへのリード又はライトアクセスを行うにあたり、アドレス情報を複数回発行し、
前記メモリは、前記回路からの前記複数回のアドレス情報のうち、前回と同じアドレスにアクセスするときは、そのアドレス転送を省くことができるものである、ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリの制御に関し、特に、一つのメモリを複数の回路で共有して利用するためのメモリ領域の割当てシステムと方法並びに制御装置並びにコンピュータ・プログラムに関する。
【背景技術】
【０００２】
近年のＬＳＩは、マルチメディアやオペレーティングシステムなどのように、処理に多くのメモリ（大容量メモリ）を必要とするものが増えてきている。しかしながら、ＬＳＩ上にオンチップで実装可能なメモリの容量は、必要とされているメモリ容量よりも少ない場合も多い。このような場合、ＬＳＩ外部に専用のメモリＬＳＩを接続することで、所望の処理等が行われる。かかる構成において、複数の回路から外付のメモリＬＳＩにアクセスが行われることがあり、例えばメモリ制御回路において、複数の回路からのアクセスを調停する制御が行われる。また、近時、クロック同期型のダイナミックランダムアクセスメモリ（シンクロナスＤＲＡＭ、「ＳＤＲＡＭ」と略記される）が多用される。【０００３】
図１は、ＳＤＲＡＭのリードアクセスを説明するためのタイミング図である。リードアクセスにおいて、はじめに、ＡＣＴＩＶＥコマンドが発行され、アクセス対象のデータの行（ＲＯＷ）アドレスが入力され、次にＲＥＡＤコマンドで、アクセス対象のデータの列（ＣＯＬＵＭＮ）アドレスが入力され、所定の遅延（レーテンシー）の後に、リードデータＤ１がデータ端子ＤＱから出力される。図１において、ＮＯＰコマンドは何もコマンドを発行していない状態を示し、ＰＲＥコマンドはビット線のプリチャージを指示するコマンドである。図１には、リードアクセスの動作タイミングが示されているが、ライトアクセスの場合も、ＡＣＴＩＶＥコマンドでＲＯＷアドレスを入力し、次に、ＷＲＩＴＥコマンドでＣＯＬＵＭＮアドレスを入力する。【０００４】
同一のクロックで動作している複数の回路からのアクセスを制御するメモリ制御回路において、複数のアクセスを処理する最も簡易な手法は、アクセスを時分割多重化するものである。【０００５】
以下では、図２のように、回路Ａ２０１と回路Ｂ２０２とが、メモリ制御回路２０３に接続され、ＳＤＲＡＭ２０４を共有している構成を例に、アクセスの時分割多重について説明する。【０００６】
図３は、同一時刻に、回路Ａ２０１と回路Ｂ２０２からのリードが発生した場合、メモリ制御回路２０３の処理の様子を説明するための図である。メモリ制御回路２０３は、はじめに、回路Ａ２０１からのリードアクセスを処理し（そのリードアクセスの動作タイミングは図１と同様）、次に、回路Ｂ２０２からのリードアクセスを処理する（そのリードアクセスの動作タイミングは図１と同様）。【０００７】
このように、アクセスの時分割多重は、極めて単純であるが、メモリ制御回路２０３に接続されている回路の個数分のアクセス時間を必要とする。【０００８】
複数の回路からのアクセスを処理する別の手法として、インターリーブ方式も用いられている。インターリーブ方式は、各バンクを独立に制御できる構造を前提としている。インターリーブ方式は、独立に制御できるバンク毎に、それぞれの回路が使用するメモリ空間を割当てる。具体的には、例えば、回路Ａ２０１が使用するメモリ空間をバンク１に、回路Ｂ２０２が使用するメモリ空間をバンク２にと割当てる。【０００９】
図４は、インターリーブ方式を用いたメモリ制御回路２０３のアクセスの様子を例示する図である。図４に示したように、インターリーブ方式は、それぞれのアクセスをオーバーラップさせることで、全体の処理を高速化している。図４では、回路ＡのリードアクセスにおけるＡＣＴＩＶＥ、ＮＯＰ、ＲＥＡＤコマンドにつづいて、回路ＢのリードアクセスにおけるＡＣＴＩＶＥ、ＮＯＰ、ＲＥＡＤコマンドが発行され、回路ＢのリードアクセスにおけるＮＯＰコマンドのサイクルに、回路ＡのリードアクセスのリードデータＤ１がＤＱ端子より出力され、これより２サイクル遅れて回路ＢのリードアクセスのリードデータＤ２がＤＱ端子より出力される。【００１０】
図３では、回路Ａ、Ｂからのリードアクセスについて、１４サイクル使用しているが、図４では、１０サイクルに短縮され、全体のアクセスは、１．４倍、高速になっていることが分かる。【００１１】
複数の回路からのアクセスを１つのメモリで管理する場合、各回路からアクセスされるメモリは、異なったアドレスに配置するようにした構成も多用されている。
【発明の開示】
【発明が解決しようとする課題】
【００１２】
従来のメモリシステムにおいては、メモリ管理を簡単にするため、異なった回路が使用するメモリ空間は別のアドレスに配置されており、各回路が使用するメモリを同じアドレスに配置した上での高速化が行われていない、ということである。【００１３】
また、すべてのアクセスに対して、ＡＣＴＩＶＥコマンド、ＲＥＡＤ／ＷＲＩＴＥコマンド、ＰＲＥＣＨＡＲＧＥコマンドを実行している。これは、数種類のデータがすべてのメモリ空間を占有していたため、このようにアクセスしなければ、つまり、ＡＣＴＩＶＥコマンドを使用しなければ、所望のデータにアクセスできないためである。【００１４】
したがって、本発明の目的は、複数の回路が使用するメモリを一つの外部メモリのメモリ空間に割当てるときに、必要なサイクル数を最小化し、上位アドレスを外部メモリに転送する量を抑制低減するように最適化して配置するシステム、装置及び方法を提供することにある。
【課題を解決するための手段】
【００１５】
本願で開示される発明は、前記課題を解決するため、概略以下の構成とされる。【００１６】
本発明の１つのアスペクト（側面）に係るシステムは、一又は複数のアクセス生成手段を備え、前記一又は複数のアクセス生成手段は、あわせて少なくとも２種類のアクセスを生成し、前記アクセス生成手段からのアクセスを処理するアクセス手段と、前記アクセス手段に接続され、１つのアドレスを指定するために、少なくとも２つ以上のアドレス指定情報を通信し、前記通信のうち、通信するアドレス指定情報が前回通信したアドレス指定情報と等しい情報の通信を省くことのできる記憶手段と、前記アクセス生成手段と前記アクセス手段との間の通信路のアドレス幅とデータ幅と、前記記憶手段の前記アドレス指定情報の幅とデータ幅と、から、平均アクセス回数を最小化するように、前記アクセス生成手段が用いる前記記憶手段における占有領域を決定する計算手段を備えている、ことを特徴とする。【００１７】
本発明において、前記計算手段は、前記複数のアクセス生成手段の前記記憶手段における配置の割当てのパターンを網羅的に列挙し、前記列挙した各パターンにおいて、平均アクセス回数を求め、その中の最小の平均アクセス回数を持つ前記記憶手段における占有領域を決定する、構成としてもよい。【００１８】
本発明において、前記計算手段は、１ビットのライトイネーブルが影響する第２のデータ幅を入力し、前記アクセス生成手段のデータ幅を前記第２のデータ幅で除して得られる商を整数に切り上げ、さらに前記整数に前記第２のデータ幅を乗じた値を、前記アクセス生成手段のデータ幅として用いて、前記記憶手段における占有領域を決定する、構成としてもよい。【００１９】
本発明において、前記計算手段は、前記アドレス指定情報のうち１つのアドレス指定情報と、前記第２のデータ幅で、前記アクセス生成手段が占有するはずの占有領域を分割したものを利用して、前記記憶手段における占有領域を決定する、構成としてもよい。【００２０】
本発明に係る制御装置は、前記アクセス生成手段と前記アクセス手段との間の通信路のアドレス幅とデータ幅と、前記記憶手段の前記アドレス指定情報の幅とデータ幅とを前記計算手段に伝える入力手段と、前記計算手段が決定した占有領域の割当と前記アクセス生成手段のアクセス状況から平均アクセス回数が最小となるようにアクセス順序を決定するアクセス順序決定手段と、を備え、前記アクセス手段は、前記アクセス順序決定手段によって決定されたアクセス順序に従って前記記憶手段を制御する、構成としてもよい。【００２１】
本発明に係る制御装置は、前記アクセス生成手段と前記アクセス手段との間の通信路のアドレス幅とデータ幅と、前記記憶手段の前記アドレス指定情報の幅とデータ幅と１ビットのライトイネーブルが影響するデータ幅とを前記計算手段に伝える入力手段と、前記計算手段が決定した占有領域の割当と前記アクセス生成手段のアクセス状況から平均アクセス回数が最小となるようにアクセス順序を決定するアクセス順序決定手段と、を備え、前記アクセス手段は、前記アクセス順序決定手段によって決定されたアクセス順序に従って前記記憶手段を制御する、構成としてもよい。【００２２】
本発明において、前記記憶手段は、クロック同期型のダイナミックランダムアクセスメモリであり、前記アクセス順序決定手段は、同じ行アドレスに配置された前記アクセス生成手段が利用するメモリ空間へアクセスするとき、一回のアクティブ・コマンドと、複数回のリード・コマンド／ライト・コマンドと一回のプリチャージ・コマンドを順に発行して処理を行う、構成としてもよい。【００２３】
本発明において、前記アクセス順序決定手段は、同じ行アドレスに配置された前記アクセス生成手段が利用するメモリへアクセスするとき、ライト処理とリード処理どちらか一方をまとめて先に処理し、次にその残りの処理を行う、構成としてもよい。【００２４】
本発明の別のアスペクトに係る方法は、一又は複数のアクセス生成手段があわせて少なくとも２種類のアクセスを生成し、前記アクセス生成手段からのアクセスを処理するアクセス手段に接続され、１つのアドレスを指定するために少なくとも２つ以上のアドレス指定情報を通信し、かつ、前記通信のうち通信するアドレス指定情報が前回通信したアドレス指定情報と等しい情報の通信は省くことのできる記憶手段の占有領域の割当方法であって、
（ａ）前記アクセス生成手段と前記アクセス手段との間の通信路のアドレス幅とデータ幅を入力するステップと、
（ｂ）前記記憶手段の前記アドレス指定情報の幅とデータ幅を入力するステップと、
（ｃ）前記ステップ（ａ）とステップ（ｂ）で得られた情報から、平均アクセス回数を最小化するように、前記アクセス生成手段が用いる前記記憶手段における占有領域を決定するステップと、
を含む。【００２５】
本発明に係る方法は、前記ステップ（ｃ）において、
（ｃ．１）前記アクセス生成手段が用いる前記記憶手段における占有領域の配置の割当に関して複数のパターンを列挙するステップと、
（ｃ．２）前記ステップ（ｃ．１）で得られた各パターンの平均アクセス回数を計算するステップと、
（ｃ．３）前記ステップ（ｃ．２）で得られた各パターンの平均アクセス回数の中から最小の平均アクセス回数を持つパターンを、前記アクセス生成手段が用いる前記記憶手段における占有領域として決定するステップと、
を有する、。【００２６】
本発明に係る方法は、前記ステップ（ａ）において、
（ａ．１）  前記記憶手段における１ビットのライトイネーブルが影響する第２のデータ幅を入力するステップと、
（ａ．２）  前記アクセス生成手段のデータ幅を前記第２のデータ幅で割って、その値を整数に切り上げ、さらに前記整数に前記第２のデータ幅を乗じ、乗算結果を前記アクセス生成手段のデータ幅として、修正するステップと、
を有する。【００２７】
本発明に係る方法は、前記ステップ（ｃ．１）において、
（ｃ．１．１）前記アドレス指定情報のうち１つのアドレス指定情報と第２のデータ幅で、前記記憶手段を、前記各アクセス生成手段が占有する占有領域に分割するステップと、
（ｃ．１．２）前記ステップ（ｃ．１．１）で得られた分割された占有領域と、前記各アクセス生成手段との割当ての組み合わせのパターンを列挙するステップと、
を有する。【００２８】
本発明に係る制御装置は、複数の回路から、共通のメモリへのアクセスを制御するものであり、前記複数の回路のそれぞれのアドレス幅及びデータ幅と、
前記メモリの上位アドレス幅及び下位アドレス幅とデータ幅に関する情報、又は、該情報と前記メモリの１ビットのライトイネーブルが影響するデータ幅に関する情報と、
を受け、前記回路のアクセスを処理するのに費やすサイクル数を少なくするように前記回路に対して割当てられるメモリ配置を決定する計算手段と、
前記複数の回路からのアクセス情報と、前記計算手段で決定されたメモリ配置とに基づき、前記メモリへのアクセス順序を決定するアクセス順序決定手段と、
前記アクセス順序決定手段が決定したアクセス順序にしたがって前記メモリへアクセスを行うアクセス手段と、
を備えている。本発明において、前記回路は、前記メモリに対して、アドレス情報を複数回発行して、データにアクセスし、前記メモリは、前記複数回のアドレス情報のうち、前回と同じアドレスにアクセスするときは、そのアドレス転送が省くことができるものである。本発明において、前記計算手段は、アクセス回数を最小とするようなメモリ配置を計算する。【００２９】
本発明のさらに他のアスペクトに係るコンピュータ・プログラムは、複数の回路から、共通のメモリへのアクセスを制御する制御装置を構成するコンピュータに、
前記複数の回路のそれぞれのアドレス幅及びデータ幅と、
前記メモリの上位アドレス幅及び下位アドレス幅とデータ幅に関する情報、又は、該情報と前記メモリの１ビットのライトイネーブルが影響するデータ幅に関する情報と、
を受け、前記回路のアクセスを処理するのに費やすサイクル数を少なくするように前記回路に対して割当てられるメモリ配置を決定する計算処理と、
前記複数の回路からのアクセス情報と、前記計算処理で決定されたメモリ配置とに基づき、前記メモリへのアクセス順序を決定するアクセス順序決定処理と、
前記アクセス順序決定処理が決定したアクセス順序にしたがって前記メモリへのアクセスを行うアクセス処理と、
を実行させるプログラムよりなる。
【発明の効果】
【００３０】
本発明によれば、同時に発生する複数の回路からのアクセスを高速化することができる。その理由は、本発明においては、必要なサイクル数を最小にするように計算手段が外部メモリの配置を決定し、さらに、アクセス順序決定手段が上位アドレスの転送を最小限にするように、アクセスの順序を決定する構成としたためである。【００３１】
例えばＳＤＲＡＭにおいては、各回路が利用するメモリ空間の配置を最適化することにより、ＡＣＴＩＶＥコマンドやＰＲＥＣＨＡＲＧＥコマンドを効率よく省略することができ、アクセスを高速化することができる。【００３２】
また、本発明によれば、計算手段は、上位アドレスを最大限共有できるようにアドレスを詰めて並び替えを行うため、外部メモリの使用率を上げることができる。
【図面の簡単な説明】
【００３３】
【図１】基本的なＳＤＲＡＭの動作を表す波形図である。
【図２】従来手法を説明するための構成図である。
【図３】最も単純な従来の時分割多重アクセス手法を示す波形図である。
【図４】インターリーブ方式を利用したメモリ制御回路のアクセスの様子を示す波形図である。
【図５】本発明の実施の形態の構成を示す図である。
【図６】本発明の実施の形態の全体の処理を説明するための流れ図である。
【図７】本発明の実施の形態の計算手段の処理を説明するための流れ図である。
【図８】本発明の実施の形態における計算手段によって列挙された全パターンを示す図である。
【図９】（Ａ）乃至（Ｃ）は、図８(ａ)乃至（ｘ）のパターンのうち消去されなかったパターン１乃至３である。
【図１０】図９のパターン１に従い各回路のメモリを配置した場合の波形の例を示す図である。
【図１１】図９のパターン２に従い各回路のメモリを配置し回路２の上位側にアクセスが来たときの波形の例を示す図である。
【図１２】図９のパターン２に従い各回路のメモリを配置し、回路２の下位側にアクセスが来たときの波形の例を示す図である。
【図１３】本発明の実施の形態のアクセス順序決定手段の処理を説明するための流れ図である。
【図１４】本発明の第２の実施の形態の構成を示す図である。
【図１５】本発明の第２の実施の形態のメモリ制御手段の構成を示す図である。
【図１６】本発明の一実施例の構成を示す図である。
【図１７】本発明の一実施例のアクセス手段における全アクセスパターンのサイクル数を示した図である。
【図１８】本発明の一実施例のアクセス手段における全アクセスパターンの波形を示す図である。
【符号の説明】
【００３４】
２０１、２０２  回路
２０３  メモリ制御回路
２０４  ＳＤＲＡＭ
５０１  回路
５０２  入力手段
５０３  計算手段（計算回路）
５０４  アクセス順序決定手段（アクセス順序決定回路）
５０５  外部メモリ（ＳＤＲＡＭモジュール）
５０６  アクセス手段（アクセス回路）
５０７  クロック信号Ａ
５０８  クロック信号Ｂ
１４０１  プログラム
１４０２  メモリ制御手段
【発明を実施するための最良の形態】
【００３５】
上記した本発明についてさらに詳細に説述すべく、添付図面を参照して説明する。図５を参照すると、本発明において、メモリ（外部メモリ）５０５は、複数回のアドレス発行によって一つのデータにアクセスできるものであり、さらに外部メモリ５０５のデータ幅が複数の回路のデータ幅よりも大きい場合に有効とされる。【００３６】
本発明は、メモリへアクセス（リード／ライトアクセス）を行う複数の回路５０１（本発明のアクセス生成手段に対応）が必要とするアドレス幅やデータ幅と、外部メモリ５０５の上位アドレス幅や下位アドレス幅やデータ幅や、１ビットのライトイネーブルが影響するデータ幅を計算手段５０３に伝えるための入力手段５０２と、入力手段５０２によって入力された各情報から、すべてのアクセスを処理するのに必要なサイクル数を最小にするようなメモリ配置を決定する計算手段５０３と、各回路５０１からのアクセス情報と、計算手段５０３が決定したメモリ配置とから最適なアクセス順序を決定するアクセス順序決定手段５０４と、アクセス順序決定手段５０４が決定したアクセス順序にしたがって外部メモリ５０５へのアクセスを行うアクセス手段５０６と、各回路５０１を動作させるクロック信号Ａ５０７と、アクセス順序決定手段５０４と外部メモリ５０５とアクセス手段５０６とを制御するクロック信号Ｂ５０８と、を備えている。本発明においては、例えば、複数の回路５０１が共通に使用する外部メモリ５０５のメモリ空間の上位アドレスを最大限一致させるように、メモリ配置の割付を行う。また上位アドレスが共通の場合には、同一の上位アドレスの転送せず、転送回数を削減しアクセスを高速化する制御を行う。【００３７】
入力手段５０２は、複数個（Ｎ個）の回路５０１の各アドレス幅やデータ幅と外部メモリ５０５の上位アドレス幅や下位アドレス幅やデータ幅や１ビットのライトイネーブルが影響するデータ幅を計算手段５０３に伝える。【００３８】
計算手段５０３は、入力手段５０２によって入力された各情報に基づき、Ｎ個すべての回路５０１のアクセスを処理するのに費やすサイクル数を少なくするようにメモリ配置を決定する。【００３９】
アクセス順序決定手段５０４は、Ｎ個の回路５０１からのアクセス情報と、計算手段５０３が決定したメモリ配置とに基づき、最適なアクセス順序を決定する。【００４０】
アクセス手段５０６は、アクセス順序決定手段５０４が決定したアクセス順序にしたがって外部メモリ５０５へアクセスを行う。【００４１】
クロック信号Ａ５０７は、Ｎ個の回路５０１を駆動する。【００４２】
クロック信号Ｂ５０８は、アクセス順序決定手段５０４と外部メモリ５０５とアクセス手段５０６を駆動する。なお、クロック信号Ａ５０７は、アクセス順序決定手段５０４に入力されているが、アクセス順序決定手段５０４は、これを各回路５０１からの入力が変化することを示す信号として用いている。【００４３】
図５に例示した構成において、Ｎ個の回路５０１とアクセス手段５０６の間の接続は一例であり、本発明は、かかる構成に限定されるものでないことは勿論である。例えばハンドシェークを使用した接続等も可能である。また、各回路５０１とアクセス手段５０６を任意の手法で接続する構成にも適用可能である。【００４４】
入力手段５０２は、上記した通り、各回路５０１のアドレス幅やデータ幅と外部メモリ５０５の上位アドレス幅や下位アドレス幅やデータ幅を計算手段に伝えるものであり、計算手段５０３がハードウェア回路であれば、計算手段５０３の端子としても実現できる。また、ＣＰＵなどのプロセッサから制御可能な記憶素子を用意し、それを通じて、各回路５０１のアドレス幅やデータ幅を計算手段５０３に伝えることも可能である。【００４５】
計算手段５０３は、上記した通り、入力手段５０２から得られた各回路５０１のアドレス幅やデータ幅と外部メモリ５０５のアドレス幅とデータ幅から、アクセス回数を最小とするようなメモリ配置を計算するものであり、受け取る情報として、例えば、
回路１は、アドレス幅１０ビット、データ幅３２ビット、
・・・、
回路Ｎは、アドレス幅１１ビット、データ幅１０ビット、
外部メモリ５０５は、上位アドレス幅１３ビット、下位アドレス１０ビット、データ幅６４ビット
等である。【００４６】
アクセス順序決定手段５０４は、計算手段５０３が計算した最適なメモリ配置とＮ個の各回路５０１がどのようなアクセスを行っているのかを入力として、アクセスする順序を決定し、アクセス手段５０６を制御する。【００４７】
アクセス順序決定手段５０４の出力は、例えば、
回路３、回路Ｎ−３、回路Ｎ−２、回路２、．．．、回路１
の順に処理を行うようにアクセス手段５０６を制御する。【００４８】
アクセス順序決定手段５０４は、アクセスのない、つまりイネーブル信号がアクティブでない回路に関しては、処理を行わない。【００４９】
アクセス手段５０６では、アクセス順序決定手段５０４が決定した順序に従って、実際に外部メモリ５０５にアクセスを行う。【００５０】
例えば、アクセス順序決定手段５０４が、
回路３、回路Ｎ−３、回路Ｎ−２、回路２、．．．、回路１
と出力した場合、アクセス手段５０６は、最初に回路３のアクセスを外部メモリ５０５に対して行う。次に、アクセス手段５０６は、回路Ｎ−３のアクセスを外部メモリ５０５に対して行う。そして、次に、アクセス手段５０６は、回路Ｎ−２のアクセス、次に回路２のアクセスと順次行い、最後に、回路１のアクセスを外部メモリ５０５に対して行う。【００５１】
次に、図６を参照して、本実施の形態の全体の動作について詳細に説明する。【００５２】
はじめに、計算手段５０３が動作する。計算手段５０３は、入力された各回路５０１のアドレス幅とデータ幅、外部メモリ５０５の上位アドレス幅と下位アドレス幅とデータ幅と１ビットのライトイネーブルが影響するデータ幅から最適なメモリ配置を決定する（図６のステップＳ１）。ただし、計算手段５０３は、このステップＳ１以外では動作せず、常に同じメモリ配置情報を出力し続ける。【００５３】
次に、アクセス順序決定手段５０４はクロック信号Ａ５０７のエッジを検出するまで待つ（図６のステップＳ２）。【００５４】
アクセス順序決定手段５０４は、クロック信号Ａ５０７のエッジを検出後、各回路５０１のアクセス状況を取得する（図６のステップＳ３）。【００５５】
例えば回路１はライトアクセス、回路２はリードアクセスといった情報を、各回路５０１のイネーブル信号とライトイネーブル信号から取得する。【００５６】
次に、アクセス順序決定手段５０４は、ステップＳ３で取得した各回路５０１のアクセス状況と、ステップＳ１で計算されたメモリ配置情報とに基づき、平均アクセス時間が最短になるようなアクセス順序を決定する（図６のステップＳ４）。【００５７】
次に、アクセス手段５０６は、ステップＳ４で計算されたアクセス順序にしたがって外部メモリ５０５にアクセスを行う（ステップＳ５）。【００５８】
次に上記した各ステップに関してより詳細な説明を行う。【００５９】
まず、図６のステップＳ１の計算手段５０３の処理について詳細に説明する。図７は、計算手段５０３の処理を説明する流れ図である。計算手段５０３は、アクセスに必要なサイクル数が最小となるメモリ配置を計算する。【００６０】
はじめに、各回路５０１のデータ幅を１ビットの外部メモリ５０５のライトイネーブルが影響するデータのビット幅の倍数となるように修正する（図７のステップＳ１１）。【００６１】
つまり、回路５０１のデータ幅をＸとし、１ビットの外部メモリ５０５のライトイネーブルが影響するデータのビット幅をＹとしたとき、次式（１）を計算する。【００６２】
2007069506.tif 000003
…(1)【００６３】
式（１）は、ＸをＹで除した値の整数部（ただし、小数部は切り上げを行う）にＹを乗じた値を求める。例えば、１ビットの外部メモリ５０５のライトイネーブルが８ビット（つまりＹ＝８）の場合、回路１のデータ幅が２６ビットの場合、２６を８で除した値は３．２５であり、切り上げて整数４とし、４×８＝３２ビットと修正され、回路２のデータ幅が１６ビットの時は、１６を８で除した値は２であり、２×８＝１６ビットとされる。このように修正するのは、それぞれのアクセスを個別に処理できるようにするためである。【００６４】
次に、修正されたデータ幅を使用して各回路５０１が外部メモリ５０５で使用するアドレス空間を決定する（図７のステップＳ１２）。【００６５】
以下、具体例に即して説明する。【００６６】
例えば２つの回路５０１、回路１と回路２が、１つの外部メモリ５０５を共有しているものとする。【００６７】
そして、
回路１は修正されたデータ幅が３２ビットで使用アドレス空間が０ｘ４００、
回路２は修正されたデータ幅が３２ビットで使用アドレス空間が０ｘ８００、
外部メモリのデータ幅は６４ビットで、１ビットの外部メモリ５０５のライトイネーブルが影響するデータのビット幅を３２ビット、上位アドレスが１ビット、下位アドレスが１０ビットとする。なお、０ｘ４００はヘキサデシマル表示である。【００６８】
このとき、図７のステップＳ１２では、すべての回路が使用するビット数の和を、下位アドレスで制御できるビット数で割ったものを整数に丸めたものを使用する上位アドレスとする。この場合では、使用する上位アドレス数は、次式（２）となる。【００６９】
2007069506.tif 000004
…(2)【００７０】
ただし、１０２４は、０ｘ４００の１０進表現であり、２０４８は、０ｘ８００の１０進表現である。【００７１】
次に、各回路が使用するメモリ空間のデータ幅を、１ビットの外部メモリ５０５のライトイネーブルが影響するデータのビット幅で分割し、さらに、アドレスを下位アドレスで分割する。【００７２】
例えば、回路２が使用するメモリ空間は、上位の空間と下位の空間に分割される（図７のステップＳ１３）。【００７３】
次に、起こり得るあらゆるメモリ配置のパターンを網羅的に列挙する（ステップＳ１４）。この例の場合、図８（ａ）乃至図８（ｘ）に示すような、２４パターンを列挙する。【００７４】
次に、列挙されたパターンの中から、明らかに同じ平均アクセス回数となるパターンを消去する（図７のステップＳ１５）。【００７５】
つまり、単純に横の並びを入れ替えたものや、上位アドレスを入れ替えたものは、同じ平均アクセス回数となるので、消去する。【００７６】
その結果、図９（Ａ）乃至（Ｃ）のパターン１、２、３が得られる。【００７７】
さらに、各回路のアクセス確率を同じとしたときに、明らかに同じものを消去する。【００７８】
この例の場合、図９（Ｂ）のパターン２と図９（Ｃ）のパターン３が同じ平均アクセス回数になるので、消去する（図７のステップＳ１５）。【００７９】
次に得られた各パターンの平均アクセス回数を計算し（図７のステップＳ１６）、全パターンの中で最小の平均アクセスサイクルのパターンを求める（図７のステップＳ１７）。【００８０】
平均アクセス回数は、アクセス順序決定手段５０４が上位アドレスが共通なものを先に処理し、さらにアドレスが上位のものから処理すると仮定したときのアクセス回数である。【００８１】
したがって、パターン１の場合で、回路１と２からのアクセスを処理するために必要なサイクル数は、図１０に示した波形から、１４サイクルと計算できる。【００８２】
同様に、パターン２の場合には、回路２の上位側にアクセスが起きるパターンでは、図１１に示す波形となる。回路２の下位側にアクセスが来るパターンでは、図１２に示す波形となる。それぞれ確率１／２で起きるため、平均アクセス数は１１となる。【００８３】
図１０乃至図１２の波形は、ＳＤＲＡＭの場合の波形を表しており、上位アドレスが共通のときは、最初のアクセス以外は、上位アドレスを転送する必要がない。つまり、ＡＣＴＩＶＥコマンドとＰＲＥＣＨＡＲＧＥコマンドを削減することができる。よって、アクセスを高速にすることできる。【００８４】
次に図６のステップＳ３、つまりアクセス順序決定手段５０４の動作についてより詳細に説明する。【００８５】
図１３は、アクセス順序決定手段５０４の処理動作を説明するための流れ図である。【００８６】
アクセス順序決定手段５０４ではクロック信号Ａ５０７のエッジ検出後、各回路５０１のイネーブルとライトイネーブルを見て、これらの回路がアクセスを行っているか否かを調べる（図１３のステップＳ２１）。このとき、全くアクセスがなければ、アクセス順序決定手段５０４は何も出力しないため、アクセス手段５０６は何も行わない。【００８７】
図１３のステップＳ２１において、未処理なアクセスがある場合、アクセスを行っているもののうち、上位アドレスが最も上のアドレスを選択する（図１３のステップＳ２２）。【００８８】
次に、図１３のステップＳ２３では、図１３のステップＳ２２で選択されたアクセスのうち、ライトアクセスを選択する。もし、ライトアクセスがある場合には、該ライトアクセスの中から適当に選択し、ライト処理を行う（ステップＳ２４）。ただし、ステップＳ２３で選択されたライトアクセスのうち、下位アドレスが同じ場合は、それも同時に処理する。【００８９】
図１３のステップＳ２３において、ライトアクセスがない場合には、リードアクセスのうち適当なものを選択する（ステップＳ２５）。ただし、ライトアクセスと同様、ステップＳ２５においても、アドレスが同じ場合には、それも同時に処理する。【００９０】
再びステップＳ２１に戻り、未処理のアクセスがあるか判定し、未処理のアクセスがある場合には、ステップＳ２２乃至Ｓ２５の処理を繰り返す。すなわち、すべてのアクセスがなくなるまでステップＳ２２乃至Ｓ２５の処理を行う。【００９１】
アクセス手段５０６では、アクセス順序決定手段５０４が計算した順序に従って、実際に外部メモリ５０５へアクセスを行う。【００９２】
次に、本実施の形態の作用効果について説明する。【００９３】
本実施の形態では、計算手段５０３とアクセス順序決定手段５０４が、平均アクセス回数を少なくするように、メモリ配置を行い、アクセス順序を決定しているため、アクセス時間を従来手法よりも短くすることができる。【００９４】
さらに、外部メモリ５０５を効率良く利用することができる。【００９５】
次に、本発明の第２の実施の形態について図面を参照して詳細に説明する。図１４は、本発明の第２の実施の形態の構成を示す図である。図１４を参照すると、本発明の第２の実施の形態は、ＣＰＵで実行されるプログラム１４０１により、メモリ制御手段１４０２を構成し、メモリ制御手段１４０２が外部メモリ５０５を制御する以外、前記実施の形態と変わりはない。【００９６】
図１５に示すように、生成されたメモリ制御手段１４０２は、前記実施の形態と同じく、アクセス順序決定手段５０４、アクセス手段５０６の処理機能を実現する。【００９７】
プログラム１４０１は、各回路のデータ幅とアドレス幅、外部メモリ５０５のデータ幅と上位アドレスの幅と下位アドレスの幅と１ビットのライトイネーブルが影響するデータ幅から、前記実施の形態で説明した計算手段５０３（図５参照）と同じ方法を、ソフトウェア（コンピュータプログラム）で実現しており、計算手段（図１５では不図示）は、最適なメモリ配置を決定する。そして、決定されたメモリ配置で最適化された、アクセス順序決定手段５０４とアクセス手段５０６を構成する。【００９８】
本発明の第２の形態の作用効果について説明する。【００９９】
本発明の第２の実施の形態では、ソフトウェアで最適なメモリ配置を決定するように、構成されているため、図５の計算手段５０３をハードウェアで実現する必要がなく、構成を単純化させることができる。以下、具体的な実施例を用いて説明する。
【実施例】
【０１００】
図１６を参照すると、本発明の実施の形態の各手段がすべて回路によって実現された場合を示している。本実施例では、入力手段５０２を、計算回路５０３の端子として実現している。すなわち、回路１のアドレス幅１０、回路１のデータ幅３２、ＳＤＲＡＭの上位アドレス幅、下位アドレス幅、データ幅１３、１０、６４、１ビットのライトイネーブルが影響するデータ幅の情報等が、入力信号として端子から計算回路５０３に直接入力される。外部メモリ５０５はＳＤＲＡＭモジュールから構成される。【０１０１】
なお、図１６に示した、アドレス幅、データ幅等の数値例は、単に、例として用いたものであり、詳しい計算例は省略する。以下、本実施例の動作を説明する。【０１０２】
計算回路５０３は、前記実施の形態で説明したように、図９の［パターン２］を最適なメモリ配置と判定する。【０１０３】
次に、アクセス順序決定回路５０４は、図１３に示した流れ図に従って、アクセス順序を決定する。【０１０４】
いま、回路１と回路２のアクセスパターンは、図１７に示したように、パターン（１）〜パターン（６）の６のパターンが存在する。【０１０５】
図１３によると、例えば、図１７のパターン（１）乃至（６）のアクセスの様子は、図１８の（Ｃ）乃至（Ｈ）に示すようなものとなる。ただし、パターン（１）はアクセス無である。【０１０６】
したがって、各パターンの発生確率が等しい場合、図９のパターン１のように配置した場合の平均サイクル回数は、９．３３であり、図９のパターン２のように配置した場合は８となる。【０１０７】
このように、計算回路５０３が各回路の使用するメモリ空間を最適にマッピングすることにより、平均サイクル回数を削減できていることがわかる。【０１０８】
本発明は、アドレスを複数回発行して一つのデータにアクセスすることができ、複数回のアドレスのうち前回と同じアドレスにアクセスするときは、そのアドレス転送を省くことのできるメモリを複数の回路が共有して用いている構成に適用することができる。【０１０９】
以上、本発明を上記実施例に即して説明したが、本発明は上記実施例の構成にのみに制限されるものでなく、本発明の範囲内で当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【図１】
2007069506.tif 000005
【図２】
2007069506.tif 000006
【図３】
2007069506.tif 000007
【図４】
2007069506.tif 000008
【図５】
2007069506.tif 000009
【図６】
2007069506.tif 000010
【図７】
2007069506.tif 000011
【図８】
2007069506.tif 000012
【図９】
2007069506.tif 000013
【図１０】
2007069506.tif 000014
【図１１】
2007069506.tif 000015
【図１２】
2007069506.tif 000016
【図１３】
2007069506.tif 000017
【図１４】
2007069506.tif 000018
【図１５】
2007069506.tif 000019
【図１６】
2007069506.tif 000020
【図１７】
2007069506.tif 000021
【図１８】
2007069506.tif 000022
【手続補正書】
【提出日】平成19年5月17日(2007.5.17)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
一又は複数のアクセス生成手段を備え、前記一又は複数のアクセス生成手段は、あわせて少なくとも２種類のアクセスを生成し、
前記アクセス生成手段からのアクセスを処理するアクセス手段と、
前記アクセス手段に接続され、１つのアドレスを指定するために、少なくとも２つ以上のアドレス指定情報を通信し、前記通信のうち、通信するアドレス指定情報が前回通信したアドレス指定情報と等しい情報の通信を省くことのできる記憶手段と、
前記アクセス生成手段と前記アクセス手段との間の通信路のアドレス幅とデータ幅と、前記記憶手段の前記アドレス指定情報の幅とデータ幅と、に基づき、前記記憶手段への平均アクセス回数を最小化するように、前記アクセス生成手段が用いる前記記憶手段における占有領域を決定する計算手段と、
を備えている、ことを特徴とする記憶領域割当システム。
【請求項２】
前記計算手段は、前記複数のアクセス生成手段の前記記憶手段における占有領域の配置の割当てのパターンを網羅的に列挙し、
前記列挙した各パターンにおいて、平均アクセス回数を求め、その中の最小の平均アクセス回数を持つ前記記憶手段における占有領域を決定する、ことを特徴とする請求項１記載の記憶領域割当システム。
【請求項３】
前記計算手段は、１ビットのライトイネーブルが影響する第２のデータ幅を入力し、
前記アクセス生成手段のデータ幅を、前記第２のデータ幅で除して得られた商を整数に切り上げ、さらに前記整数に前記第２のデータ幅を乗じた値を、前記アクセス生成手段のデータ幅として用いて、前記記憶手段における占有領域を決定する、ことを特徴とする請求項１又は２記載の記憶領域割当システム。
【請求項４】
前記計算手段は、前記アドレス指定情報のうち１つのアドレス指定情報と、前記第２のデータ幅とで、前記アクセス生成手段が占有するはずの占有領域を分割した領域を用いて、前記アクセス生成手段の前記記憶手段における占有領域を決定する、ことを特徴とする請求項３記載の記憶領域割当システム。
【請求項５】
請求項１又は２記載の記憶領域割当システムを備え、
前記アクセス生成手段と前記アクセス手段との間の通信路のアドレス幅とデータ幅と、前記記憶手段の前記アドレス指定情報の幅とデータ幅とを前記計算手段に伝える入力手段と、
前記計算手段が決定した占有領域の割当と、前記アクセス生成手段のアクセス状況とに基づき、平均アクセス回数が最小となるように、アクセス順序を決定するアクセス順序決定手段と、
を備え、
前記アクセス手段は、前記アクセス順序決定手段によって決定されたアクセス順序に従って前記記憶手段を制御する、ことを特徴とする制御装置。
【請求項６】
請求項３又は４記載の記憶領域割当システムを備え、
前記アクセス生成手段と前記アクセス手段との間の通信路のアドレス幅とデータ幅と、前記記憶手段の前記アドレス指定情報の幅とデータ幅と１ビットのライトイネーブルが影響するデータ幅とを前記計算手段に伝える入力手段と、
前記計算手段が決定した占有領域の割当と、前記アクセス生成手段のアクセス状況とに基づき、平均アクセス回数が最小となるように、アクセス順序を決定するアクセス順序決定手段と、
を備え、
前記アクセス手段は、前記アクセス順序決定手段によって決定されたアクセス順序に従って、前記記憶手段へのアクセスを制御する、ことを特徴とする制御装置。
【請求項７】
前記記憶手段は、クロック同期型のダイナミックランダムアクセスメモリであり、
前記アクセス順序決定手段は、同じ行アドレスに配置された前記アクセス生成手段が利用するメモリ空間へアクセスするとき、一回のアクティブ・コマンドと、複数回のリード・コマンド／ライト・コマンドと一回のプリチャージ・コマンドを順に発行して処理を行う、ことを特徴とする請求項５又は６記載の制御装置。
【請求項８】
前記アクセス順序決定手段は、同じ行アドレスに配置された前記アクセス生成手段が利用するメモリへアクセスするとき、ライト処理とリード処理のいずれか一方をまとめて先に処理し、次に、その残りの処理を行うように制御する、ことを特徴する請求項５又は６記載の制御装置。
【請求項９】
一又は複数のアクセス生成手段があわせて少なくとも２種類のアクセスを生成し、前記アクセス生成手段からのアクセスを処理するアクセス手段に接続され、１つのアドレスを指定するために少なくとも２つ以上のアドレス指定情報を通信し、かつ、前記通信のうち通信するアドレス指定情報が前回通信したアドレス指定情報と等しい情報の通信は省くことのできる記憶手段の占有領域の割当方法であって、
（ａ）前記アクセス生成手段と前記アクセス手段との間の通信路のアドレス幅とデータ幅を入力するステップと、
（ｂ）前記記憶手段の前記アドレス指定情報の幅とデータ幅を入力するステップと、
（ｃ）前記ステップ（ａ）とステップ（ｂ）で得られた情報から、平均アクセス回数を最小化するように、前記アクセス生成手段が用いる前記記憶手段における占有領域を決定するステップと、
を含む、ことを特徴とする記憶領域割当方法。
【請求項１０】
前記ステップ（ｃ）において、
（ｃ．１）前記アクセス生成手段が用いる前記記憶手段における占有領域の配置の割当に関して複数のパターンを列挙するステップと、
（ｃ．２）前記ステップ（ｃ．１）で得られた各パターンの平均アクセス回数を計算するステップと、
（ｃ．３）前記ステップ（ｃ．２）で得られた各パターンの平均アクセス回数の中から最小の平均アクセス回数を持つパターンを、前記アクセス生成手段が用いる前記記憶手段における占有領域として決定するステップと、
を有する、ことを特徴とする請求項９記載の記憶領域割当方法。
【請求項１１】
前記ステップ（ａ）において、
（ａ．１）前記記憶手段における１ビットのライトイネーブルが影響する第２のデータ幅を入力するステップと、
（ａ．２）前記アクセス生成手段のデータ幅を前記第２のデータ幅で割って、その値を整数に切り上げ、さらに前記整数に前記第２のデータ幅を乗じ、乗算結果を前記アクセス生成手段のデータ幅として、修正するステップと、
を有する、ことを特徴とする請求項９又は１０記載の記憶領域割当方法。
【請求項１２】
前記ステップ（ｃ．１）において、
（ｃ．１．１）前記アドレス指定情報のうち１つのアドレス指定情報と第２のデータ幅で、前記記憶手段を、前記各アクセス生成手段が占有する占有領域に分割するステップと、
（ｃ．１．２）前記ステップ（ｃ．１．１）で得られた分割された占有領域と前記各アクセス生成手段との割当ての組み合わせのパターンを列挙するステップと、
を有する、ことを特徴とする請求項１０記載の記憶領域割当方法。
【請求項１３】
前記ステップ（ｃ．１）において、
（ｃ．１．３）前記ステップ（ｃ．１．２）で列挙されたパターンのうちから、あきらかに同じ平均アクセス回数となるパターンを、事前に消去するステップを有し、
前記ステップ（ｃ．２）では、前記ステップ（ｃ．１．２）で列挙されたパターンのうちから、明らかに同じ平均アクセス回数となるパターンが消去された、残りの各パターンの平均アクセス回数を計算する、ことを特徴とする請求項１２記載の記憶領域割当方法。
【請求項１４】
請求項１０乃至１３のいずれか一に記載の記憶領域割当方法を用いて記憶手段へのアクセスを制御する制御方法であって、
（ｄ）前記ステップ（ｃ）で取得された、前記アクセス生成手段が用いる前記記憶手段における占有領域の配置情報と、前記各アクセス生成手段から前記記憶手段へのアクセス状況とに基づき、アクセス順序を決定するステップと、
（ｅ）前記アクセス手段が、前記ステップ（ｄ）で決定されたアクセス順序にしたがって、前記記憶手段へのアクセスを制御するステップと、
を有する、ことを特徴とする制御方法。
【請求項１５】
複数の回路から、共通のメモリへのアクセスを制御する制御装置であって、
前記複数の回路のそれぞれのアドレス幅及びデータ幅と、
前記メモリの上位アドレス幅及び下位アドレス幅とデータ幅に関する情報、又は、該情報と前記メモリの１ビットのライトイネーブルが影響するデータ幅に関する情報と、
を受け、前記回路のアクセスを処理するのに費やすサイクル数を少なくするように前記回路に対して割当てられるメモリ配置を決定する計算手段と、
前記複数の回路からのアクセス情報と、前記計算手段で決定されたメモリ配置とに基づき、前記メモリへのアクセス順序を決定するアクセス順序決定手段と、
前記アクセス順序決定手段が決定したアクセス順序にしたがって前記メモリへアクセスを行うアクセス手段と、
を備えている、ことを特徴とする制御装置。
【請求項１６】
前記回路は、前記メモリへのリード又はライトアクセスを行うにあたり、アドレス情報を複数回発行し、
前記メモリは、前記回路からの前記複数回のアドレス情報のうち、前回と同じアドレスにアクセスするときは、そのアドレス転送を省くことができるものである、ことを特徴とする請求項１５記載の制御装置。
【請求項１７】
前記計算手段は、前記回路からの前記メモリへのアクセス回数を最小とするように、前記回路に対するメモリ配置を計算する、ことを特徴とする請求項１５記載の制御装置。
【請求項１８】
複数の回路から、共通のメモリへのアクセスを制御する制御装置を構成するコンピュータに、
前記複数の回路のそれぞれのアドレス幅及びデータ幅と、
前記メモリの上位アドレス幅及び下位アドレス幅とデータ幅に関する情報、又は、該情報と前記メモリの１ビットのライトイネーブルが影響するデータ幅に関する情報と、
を受け、前記回路のアクセスを処理するのに費やすサイクル数を少なくするように前記回路に対して割当てられるメモリ配置を決定する計算処理と、
前記複数の回路からのアクセス情報と、前記計算処理で決定されたメモリ配置とに基づき、前記メモリへのアクセス順序を決定するアクセス順序決定処理と、
前記アクセス順序決定処理が決定したアクセス順序にしたがって前記メモリへのアクセスを行うアクセス処理と、
を実行させるプログラム。
【請求項１９】
請求項１８記載のプログラムにおいて、前記回路は、前記メモリへのリード又はライトアクセスを行うにあたり、アドレス情報を複数回発行し、
前記メモリは、前記回路からの前記複数回のアドレス情報のうち、前回と同じアドレスにアクセスするときは、そのアドレス転送を省くことができるものである、ことを特徴とするプログラム。
【請求項２０】
アクセス生成手段からのアクセスを処理するアクセス手段に接続され、１つのアドレスを指定するために少なくとも２つ以上のアドレス指定情報を通信し、かつ、前記通信において連続して指定される同一のアドレス指定情報は通信を省くことのできる記憶手段のための、前記アクセス生成手段のアクセス領域の配置を決定する記憶領域割当システムであって、
複数の異なるアクセス生成手段からのアクセスに従って前記アクセス生成手段が連続してアクセスする時に前記アドレス指定情報が省略可能な前記記憶手段の領域に、前記複数のアクセス生成手段がアクセスする領域を割り当てる、ことを特徴とする記憶領域割当システム。
【請求項２１】
アクセス生成手段からのアクセスを処理するアクセス手段に接続され、１つのアドレスを指定するために少なくとも２つ以上のアドレス指定情報を通信し、かつ、前記通信において連続して指定される同一のアドレス指定情報は通信を省くことのできる記憶装置であって、
複数の異なるアクセス生成手段からのアクセスに従って前記アクセス生成手段が連続してアクセスする時に前記アドレス指定情報が省略可能な前記記憶手段の領域に、該複数のアクセス生成手段のアクセスする領域が割り当てられている、ことを特徴とする記憶装置。
【請求項２２】
アクセス生成手段からのアクセスを処理するアクセス手段に接続され、１つのアドレスを指定するために少なくとも２つ以上のアドレス指定情報を通信し、かつ、前記通信において連続して指定される同一のアドレス指定情報は通信を省くことのできる記憶手段のための、前記アクセス生成手段のアクセス領域の配置を決定する記憶領域割当システムであって、
前記アクセス生成手段のアドレス幅とデータ幅と前記記憶手段のアドレス幅とデータ幅に基づいて、前記記憶手段への平均アクセス回数を最小化するように、前記アクセス生成手段が用いる前記記憶手段における占有領域を割り当てる、ことを特徴とする記憶領域割当システム。
【請求項２３】
アクセス生成手段からのアクセスを処理するアクセス手段に接続され、１つのアドレスを指定するために少なくとも２つ以上のアドレス指定情報を通信し、かつ、前記通信において連続して指定される同一のアドレス指定情報は通信を省くことのできる記憶装置であって、
前記アクセス生成手段のアドレス幅とデータ幅と前記記憶手段のアドレス幅とデータ幅に基づいて、前記記憶手段への平均アクセス回数を最小化するように、前記アクセス生成手段の前記記憶手段における占有領域が割り当てられている、ことを特徴とする記憶装置。
【請求項２４】
アクセス生成手段からのアクセスを処理するアクセス手段に接続され、１つのアドレスを指定するために少なくとも２つ以上のアドレス指定情報を通信し、かつ、前記通信において連続して指定される同一のアドレス指定情報は通信を省くことのできる記憶手段のための、前記アクセス生成手段のアクセス領域の配置を決定する記憶領域割当方法であって、
複数の異なるアクセス生成手段からのアクセスに従って前記アクセス生成手段が連続してアクセスする時に前記アドレス指定情報が省略可能な領域に、該複数のアクセス生成手段がアクセスする領域を割り当てる、ことを特徴とする記憶領域割当方法。
【請求項２５】
アクセス生成手段からのアクセスを処理するアクセス手段に接続され、１つのアドレスを指定するために少なくとも２つ以上のアドレス指定情報を通信し、かつ、前記通信において連続して指定される同一のアドレス指定情報は通信を省くことのできる記憶手段のための、前記アクセス生成手段のアクセス領域の配置を決定する記憶領域割当方法であって、
前記アクセス生成手段のアドレス幅とデータ幅と前記記憶手段のアドレス幅とデータ幅に基づいて、前記記憶手段への平均アクセス回数を最小化するように、前記アクセス生成手段が用いる前記記憶手段における占有領域を割り当てる、ことを特徴とする記憶領域割当方法。
【国際調査報告】
2007069506.tif 000023
2007069506.tif 000024
2007069506.tif 000025
2007069506.tif 000026