(57)【特許請求の範囲】
【請求項１】
外部から発行されるコマンドに基づいて第１のメモリと第２のメモリを制御するメモリアクセス装置であって、
前記第１のメモリから読み出した値を一時的に格納する第１のバッファと、
前記第２のメモリから読み出した値を一時的に格納する第２のバッファと、
前記第１のメモリのみを参照する第１の論理アドレス空間と、
前記第１のメモリと前記第２のメモリとを参照し、前記第１のメモリの論理アドレスと前記第２のメモリの論理アドレスとが交互に配置される第２の論理アドレス空間とを有し、
前記第２のメモリはアドレスが入力されてからデータが出力されるまでの遅延を有し、
前記第２の論理アドレス空間をアクセスする第１のコマンドが発行されると、
前記第１のメモリからデータを読み出して前記第１のバッファに格納する第１の読み出しと並行して、
前記第２のメモリからデータを読み出して前記第２のバッファに格納する第２の読み出しを行う
ことを特徴とするメモリアクセス装置。
【請求項２】
外部から発行されるコマンドに基づいて第１のメモリと第２のメモリを制御するメモリアクセス装置であって、
前記第１のメモリから読み出した値を転送する第１のバスと、
前記第２のメモリから読み出した値を転送する第２のバスと、
前記第１のメモリのみを参照する第１の論理アドレス空間と、
前記第１のメモリと前記第２のメモリとを参照し、前記第１のメモリの論理アドレスと前記第２のメモリの論理アドレスとが交互に配置される第２の論理アドレス空間とを有し、
前記第２のメモリはアドレスが入力されてからデータが出力されるまでの遅延を有し、
前記第２の論理アドレス空間をアクセスする第１のコマンドが発行されると、
前記第１のメモリからデータを読み出して前記第１のバスに出力する第１の読み出しと並行して、
前記第２のメモリからデータを読み出して前記第２のバスに出力する第２の読み出しを行う
ことを特徴とするメモリアクセス装置。
【請求項３】
外部から発行されるコマンドに基づいて第１のメモリと第２のメモリを制御するメモリアクセス装置であって、
前記第１のメモリからデータを読み出す制御を行う第１の制御信号と、
前記第２のメモリからデータを読み出す制御を行う第２の制御信号と、
前記第１のメモリのみを参照する第１の論理アドレス空間と、
前記第１のメモリと前記第２のメモリとを参照し、前記第１のメモリの論理アドレスと前記第２のメモリの論理アドレスとが交互に配置される第２の論理アドレス空間とを有し、
前記第２のメモリはアドレスが入力されてからデータが出力されるまでの遅延を有し、
前記第２の論理アドレス空間をアクセスする第１のコマンドが発行されると、
前記第１のメモリから第１の制御信号によってデータを読み出す第１の読み出しと並行して、
前記第２のメモリから第２の制御信号によってデータを読み出す第２の読み出しを行う
ことを特徴とするメモリアクセス装置。
【請求項４】
前記第１のコマンドに続き前記第１の論理アドレス空間にアクセスする第２のコマンドが発行されると、
前記第２の読み出しの完了に関わらず、
前記第１の読み出しに続いて前記第１のメモリからデータを読み出す第３の読み出しを行う
ことを特徴とする請求項１から３のいずれか１項に記載のメモリアクセス装置。
【請求項５】
前記第１のコマンドに続き前記第２の論理アドレス空間にアクセスする第２のコマンドが発行され、
さらに前記第２のコマンドに続き前記第１の論理アドレス空間にアクセスする第３のコマンドが発行されると、
前記第１の読み出しに続いて前記第１のメモリからデータを読み出す第３の読み出しを行い、
前記第３の読み出しに続いて前記第１のメモリからデータを読み出す第４の読み出しを行う
ことを特徴とする請求項１から３のいずれか１項に記載のメモリアクセス装置。
【請求項６】
前記第２の論理アドレス空間には画像データが配置され、
前記第１のコマンドは矩形領域をアクセスするコマンドである
ことを特徴とする請求項１から３のいずれか１項に記載のメモリアクセス装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセッサ、画像処理装置などのようなマスタデバイスデバイスとメモリデバイスとの間のインターフェースを担うメモリアクセス装置に関する。
【背景技術】
【０００２】
近年、半導体集積装置に内蔵されるプロセッサや画像処理装置が扱う対象が著しく広がり、ＭＰＥＧやＨ．２６４等のＨＤ（HighDensity）画像、ゲームやデジタル録画機等に代表される高画質・３Ｄグラフィックス等に及んでいる。そして、これに伴い、メモリ装置に対して、大容量化、高速化が要求されてきている。具体的には、データ転送の高速化、転送効率などのために、アクセスオーバーヘッドを軽減することが要求されている。
【０００３】
一般的に、データ転送の高速化を実現する方法として、（１）データの転送速度を上げる方法、（２）メモリのバス幅を広くとる方法、またはこれらの方法（１），（２）を併用する方法などが知られている。
【０００４】
これら以外にも、半導体装置の進歩により、画像の数フレーム分容量のメモリを半導体装置に内蔵し、半導体装置に外付けされたメモリ（以下、外付けメモリと呼称する。）と、内蔵されたメモリ（以下、内蔵メモリと呼称する。）とを併用する方法が知られている（例えば、特許文献１、または特許文献２参照。）。この方法によれば、内蔵メモリには、アクセス頻度の高いデータ（例えば、画像に関するデータなど。）が記憶され、外付けメモリには、アクセス頻度の低いデータが記憶されて、通常の画像処理において、メモリインタフェース回路により内蔵メモリが頻繁にアクセスされ、必要に応じて外付けメモリがアクセスされる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−１３２３４７号公報
【特許文献２】特開平１０−２２２４５９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記に記した従来の技術において、（１）データの転送速度を上げる方法には、高速なメモリを採用する必要があるため、消費電力のアップと、基板設計などの難易度が高くなるなどという課題を有し、また一般的に高いクロック周波数のメモリは高価になりシステムコストが上昇するという課題も同時に有する。
【０００７】
例えば、近年のデジタルＴＶ放送などで用いられるＭＰＥＧ２ＭＰ＠ＨＬ規格、Ｈ．２６４−ＨＤ規格等に基づくエンコードやデコード、ＰＯＳＴフィルタ処理や出画処理、高画質グラフィックス処理、ＩＰ変換処理、プロセッサなどといった処理を同一の半導体装置に内蔵し共有化メモリで処理しようとすると、メモリに要求される性能は数Ｇ［Ｂｙｔｅ／ｓ］にもなる。この性能に対応するためにクロック周波数が高く、バースト転送に向いたＳＤＲＡＭ、ＤＤＲ−ＳＤＲＡＭ、ＤＤＲ２−ＳＤＲＡＭ、ＲａｍＢｕｓ社のＸＤＲなどの高速なメモリを採用する必要がある。
【０００８】
このため、（２）メモリのバス幅を広くとる方法を用いると、半導体装置の端子数が増大し、ＬＳＩの製造コストを押し上げ、また複数のメモリを使用するためにシステムコストが増大してしまうという別の課題を有することとなる。
【０００９】
また、外付けメモリと内蔵メモリとを併用する方法（特許文献１、特許文献２）においては、グラフィックなどの特定処理に要するアクセス頻度の高いデータを内蔵メモリに記憶する必要があるため、データ転送量が極めて大きく、必要とするメモリ容量も大きい処理、例えば、ＭＰＥＧのエンコード処理やデコード処理、高画質化処理、ＩＰ変換処理などが同時に重なる場合には、内蔵メモリの大容量化、周波数、バス幅などの拡大を招き、結果、チップ面積が増大し、半導体装置の製造コストが上がり、設計難易度が上がるという課題を有する。
【００１０】
そこで、本発明は、前記課題に鑑みてなされたものであり、要求されるデータ転送レートと容量を確保しつつ、コストの削減が可能なメモリアクセス装置を提供することを目的とする。
【課題を解決するための手段】
【００１１】
前記目的を達成するために、本発明のある局面に係るメモリアクセス装置は、外部から発行されるコマンドに基づいて第１のメモリと第２のメモリを制御するメモリアクセス装置であって、前記第１のメモリから読み出した値を一時的に格納する第１のバッファと、前記第２のメモリから読み出した値を一時的に格納する第２のバッファと、前記第１のメモリのみを参照する第１の論理アドレス空間と、前記第１のメモリと前記第２のメモリとを参照し、前記第１のメモリの論理アドレスと前記第２のメモリの論理アドレスとが交互に配置される第２の論理アドレス空間とを有し、前記第２のメモリはアドレスが入力されてからデータが出力されるまでの遅延を有し、前記第２の論理アドレス空間をアクセスする第１のコマンドが発行されると、前記第１のメモリからデータを読み出して前記第１のバッファに格納する第１の読み出しと並行して前記第２のメモリからデータを読み出して前記第２のバッファに格納する第２の読み出しを行うことを特徴とする。
【００１２】
本発明の他の局面に係るメモリアクセス装置は、外部から発行されるコマンドに基づいて第１のメモリと第２のメモリを制御するメモリアクセス装置であって、前記第１のメモリから読み出した値を転送する第１のバスと、前記第２のメモリから読み出した値を転送する第２のバスと、前記第１のメモリのみを参照する第１の論理アドレス空間と、前記第１のメモリと前記第２のメモリとを参照し、前記第１のメモリの論理アドレスと前記第２のメモリの論理アドレスとが交互に配置される第２の論理アドレス空間とを有し、前記第２のメモリはアドレスが入力されてからデータが出力されるまでの遅延を有し、前記第２の論理アドレス空間をアクセスする第１のコマンドが発行されると、前記第１のメモリからデータを読み出して前記第１のバスに出力する第１の読み出しと並行して前記第２のメモリからデータを読み出して前記第２のバスに出力する第２の読み出しを行うことを特徴とする。
【００１３】
本発明のさらに他の局面に係るメモリアクセス装置は、外部から発行されるコマンドに基づいて第１のメモリと第２のメモリを制御するメモリアクセス装置であって、前記第１のメモリからデータを読み出す制御を行う第１の制御信号と、前記第２のメモリからデータを読み出す制御を行う第２の制御信号と、前記第１のメモリのみを参照する第１の論理アドレス空間と、前記第１のメモリと前記第２のメモリとを参照し、前記第１のメモリの論理アドレスと前記第２のメモリの論理アドレスとが交互に配置される第２の論理アドレス空間とを有し、前記第２のメモリはアドレスが入力されてからデータが出力されるまでの遅延を有し、前記第２の論理アドレス空間をアクセスする第１のコマンドが発行されると、前記第１のメモリから第１の制御信号によってデータを読み出す第１の読み出しと並行して前記第２のメモリから第２の制御信号によってデータを読み出す第２の読み出しを行うことを特徴とする。
【発明の効果】
【００１４】
本発明に係るメモリアクセス装置によれば、要求されるデータ転送レートと容量を確保しつつ、コストの削減ができる。
【図面の簡単な説明】
【００１５】
【図１】本発明に係る実施の形態１におけるメモリアクセス装置の構成を示す図である。
【図２】本発明に係る実施の形態１におけるメモリデバイス制御部で管理されている論理アドレス空間と各メモリデバイスのアドレス空間との対応関係を示す図である。
【図３】本発明に係る実施の形態１におけるメモリデバイスが、（ａ）は、単バンクの場合、（ｂ）は、多バンクの場合におけるアドレス空間の構成を示す図である。
【図４】本発明に係る実施の形態１におけるメモリアクセス装置によって、（ａ）は、単独でアクセスした場合、（ｂ）は、並列でアクセスした場合におけるレイテンシを示す図である。
【図５】本発明に係る実施の形態２におけるメモリアクセス装置の構成を示す図である。
【図６】本発明に係る実施の形態２におけるメモリデバイス制御部で管理されている論理アドレス空間と各メモリデバイスのアドレス空間との対応関係を示す図である。
【図７】本発明に係る実施の形態２におけるメモリデバイス制御部で管理されている論理アドレス空間に格納される画像フレームデータを示す図である。
【図８】本発明に係る実施の形態２におけるメモリアクセス装置によって、並列でアクセスした場合におけるレイテンシを示す図である。
【図９】本発明に係る実施の形態１におけるメモリアクセス装置によって、メモリデバイスのクロック周波数を上げてアクセスした場合におけるレイテンシを示す図である。
【発明を実施するための形態】
【００１６】
（実施の形態１）
以下、本発明に係る実施の形態１について、図面を参照しながら説明する。
【００１７】
本実施の形態におけるメモリアクセス装置は、（ａ）第１のアドレス空間が割り当てられた第１のメモリデバイスと、（ｂ）アクセスに要するレイテンシが第１のメモリデバイスよりも短く、第２のアドレス空間が割り当てられた第２のメモリデバイスと、（ｃ）第１のアドレス空間が複数の第１の部分アドレス空間に分かれ、第２のアドレス空間が複数の第２の部分アドレス空間に分かれ、各第１の部分アドレス空間と各第２の部分アドレス空間とが交互に配置されて論理的に連続する論理アドレス空間を第１の論理アドレス空間とした場合において、（ｄ）第１の論理アドレス空間に対するアクセスを指示する第１のコマンドに応じて、第１のアドレス空間および第２のアドレス空間に対するアクセスを制御するメモリデバイス制御部とを備えることを特徴とする。
【００１８】
以上の点を踏まえて、本実施の形態におけるメモリアクセス装置について説明する。
【００１９】
まず、本実施の形態におけるメモリアクセス装置の構成について説明する。
【００２０】
図１に示されるように、メモリアクセス装置１０は、例えば、プロセッサ、画像圧縮エンジン、グラフィックスエンジンなどのようなマスタデバイス（不図示）から論理アドレス空間に対するアクセス要求を受け、受けたアクセス要求に応じて、制御下にある各メモリデバイスにアクセスする装置である。
【００２１】
「論理アドレス空間」とは、論理アドレスによって、制御下にある各メモリデバイスのアドレス空間と対応づけられて管理されているアドレス空間である。
【００２２】
なお、マスタデバイスは、メモリアクセス装置１０と共に実装されているとしてもよいし、メモリアクセス装置１０とは別に実装されているとしてもよい。
【００２３】
ここでは、一例として、メモリアクセス装置１０は、メモリデバイス１０１、メモリデバイス１０２、内部バスＩＦ１４０、内部バスＩＦ１４１、アービタ１４２、メモリデバイス制御部１４３、バッファ１４４、およびバッファ１４５などを備える。また、メモリデバイス１０１は、コントローラ１００に外付けされている。メモリデバイス１０２、内部バスＩＦ１４０、内部バスＩＦ１４１、アービタ１４２、メモリデバイス制御部１４３、バッファ１４４、およびバッファ１４５は、コントローラ１００に内蔵されている。
【００２４】
メモリデバイス１０１は、バースト的にアクセスし連続した高速大容量のデータ転送が可能なメモリデバイスである。例えば、ＤＲＡＭなどのように、バーストモードを利用したデータ転送が可能で高速にアクセス可能なメモリデバイスである。ここでは、一例として、ＤＲＡＭとする。なお、ＤＲＡＭとして、ＳＤＲＡＭ、ＤＤＲ−ＳＤＲＡＭ、ＤＤＲ２−ＳＤＲＡＭ、ＲａｍＢｕｓ社のＸＤＲなどがある。
【００２５】
メモリデバイス１０２は、高速レイテンシ、ランダムアクセス、かつ設計時にバス幅を拡張・縮小可能なメモリデバイスである。例えば、ＳＲＡＭのように、レイテンシが短く高速なランダムアクセスが可能なメモリデバイスである。ここでは、一例として、ＳＲＡＭとする。なお、メモリデバイス１０２の種別は、ＳＲＡＭに限らず、内蔵されるＤＲＡＭやフラッシュ、ＦｅＲＡＭなどでもよい。また、メモリデバイス１０２は、内蔵、外付けのどちらでもよい。
【００２６】
内部バスＩＦ１４０、および内部バスＩＦ１４１のそれぞれは、マスタデバイスから論理アドレス空間に対するアクセス要求を受け、受けたアクセス要求に応じたコマンドをアービタ１４２に発行する。
【００２７】
アービタ１４２は、内部バスＩＦ１４０、または内部バスＩＦ１４１から発行されたコマンドを受け取り、受け取ったコマンドに対して、アクセス優先順位、データレート保障などに基づいて、アクセス調停を行い、そのコマンドをメモリデバイス制御部１４３に転送する。
【００２８】
メモリデバイス制御部１４３は、アービタ１４２から転送されたコマンドを受け取り、受け取ったコマンドに基づいて、タイミングを制御しながら、制御下にある各メモリデバイスにアクセスするのに必要な制御信号群を各メモリデバイスに並列供給する。具体的には、メモリデバイス制御部１４３は、受け取ったコマンドに応じて、メモリデバイス１０１にアクセスする場合には、信号線１４６を介して、メモリデバイス１０１に対するアクセスが示される第１種制御信号群（ＤＲＡＭの制御信号、アドレス信号など。）を供給する。メモリデバイス１０２にアクセスする場合には、信号線１４７を介して、メモリデバイス１０２に対するアクセスが示される第２種制御信号群（ＳＲＡＭの制御信号、アドレス信号など。）を供給する。
【００２９】
バッファ１４４は、内部バスＩＦ１４０または内部バスＩＦ１４１から、メモリデバイス１０１またはメモリデバイス１０２に転送されるデータが一時的に格納される緩衝記憶領域である。
【００３０】
ここで、メモリデバイス１０１は、メモリデバイス制御部１４３から読出し用の第１種制御信号群が供給されると、供給された読出し用の第１種制御信号群によって特定されるデータをバッファ１４４へ書込む。同様に、メモリデバイス１０２は、メモリデバイス制御部１４３から読出し用の第２種制御信号群が供給されると、供給された読出し用の第２種制御信号群によって特定されるデータをバッファ１４４へ書込む。
【００３１】
バッファ１４５は、メモリデバイス１０１またはメモリデバイス１０２から、内部バスＩＦ１４０または内部バスＩＦ１４１に転送されるデータが一時的に格納される緩衝記憶領域である。
【００３２】
ここで、メモリデバイス１０１は、メモリデバイス制御部１４３から書込み用の第１種制御信号群が供給されると、供給された書込み用の第１種制御信号群によって特定されるデータをバッファ１４５から読出しメモリデバイス１０１へ格納する。同様に、メモリデバイス１０２は、メモリデバイス制御部１４３から書込み用の第２種制御信号群が供給されると、供給された書込み用の第２種制御信号群によって特定されるデータをバッファ１４５から読出しメモリデバイス１０２へ格納する。
【００３３】
続いて、本実施の形態におけるメモリデバイス制御部１４３で管理される論理アドレス空間について説明する。
【００３４】
図２に示されるように、メモリデバイス制御部１４３は、論理アドレス空間１１０に応じて、メモリデバイス１０１のアドレス空間と、メモリデバイス１０２のアドレス空間とのそれぞれに対するアクセスを制御する。
【００３５】
論理アドレス空間１１０には、論理アドレス空間１０３（サイズＸ）、論理アドレス空間１０４（サイズＺ）、および論理アドレス空間１０５（サイズＹ）が含まれる。ここでは、少なくとも３つのアクセス形態をもつ論理アドレス空間が含まれる。
【００３６】
論理アドレス空間１０３（サイズＸ）は、メモリデバイス１０２のアドレス空間（サイズＸ）と対応づけられた論理アドレス空間である。すなわち、メモリデバイス１０２を連続空間としてアクセス可能な記憶領域である。そして、高速レイテンシ、ランダムアクセスが可能な論理アドレス空間でもある。
【００３７】
論理アドレス空間１０４（サイズＺ）は、アドレス空間１０６（サイズＬ）とは別にメモリデバイス１０１に割り当てられたアドレス空間（サイズＺ）と対応づけられた論理アドレス空間である。すなわち、メモリデバイス１０１のメモリマップでアクセス可能な記憶領域である。そして、バースト的にアクセスし、連続した高速大容量のデータ転送が可能な論理アドレス空間でもある。
【００３８】
論理アドレス空間１０５（サイズＹ）は、アドレス空間１０６（サイズＬ）が複数の第１の部分アドレス空間に分かれ、アドレス空間１０７（サイズＫ）が複数の第２の部分アドレス空間に分かれ、各第１の部分アドレス空間と各第２の部分アドレス空間とが交互に配置されて論理的に連続する論理アドレス空間である。すなわち、メモリデバイス１０１に割り当てられたアドレス空間１０６（サイズＬ）およびメモリデバイス１０２に割り当てられたアドレス空間１０７（サイズＫ）を複合した論理アドレス空間である。また、メモリデバイス１０１およびメモリデバイス１０２の共有メモリマップでアクセス可能な記憶領域である。そして、高速レイテンシ、かつ高速大容量のデータ転送が可能な論理アドレス空間である。
【００３９】
ここで、論理アドレス空間１０５のサイズＹは、メモリデバイス１０１から割り当てられたアドレス空間１０６のサイズＬ（０≦Ｌ≦メモリデバイス１０１の最大サイズ）およびメモリデバイス１０２から割り当てられたアドレス空間１０７のサイズＫ（０≦Ｋ≦メモリデバイス１０２の最大サイズ）を加算したサイズである。すなわち、論理アドレス空間１０５（サイズＹ）は、メモリデバイス１０１およびメモリデバイス１０２に跨がっている論理アドレス空間（サイズＹ＝Ｌ＋Ｋ）である。
【００４０】
続いて、メモリデバイス制御部１４３で管理されている論理アドレス空間１０５について説明する。ここでは、論理的に連続するデータ列を、論理アドレスマップに従って論理アドレス空間１０５に格納する場合を例に説明する。なお、一例として、メモリデバイス１０１をデータ入出力幅が４［Ｂｙｔｅ］のＤＲＡＭとし、メモリデバイス１０２をデータ入出力幅が１６［Ｂｙｔｅ］のＳＲＡＭとし、Ｍ＝Ｎ＝１６［Ｂｙｔｅ］とする。
【００４１】
図３（ａ）に示されるように、メモリデバイス制御部１４３は、論理的に連続するデータ列（以下、一連のデータと呼称する。）を論理アドレス空間１０５に格納する場合には、先頭から１６［Ｂｙｔｅ］のデータ（第１のデータ列）が第１の部分アドレス空間１１１（サイズＭ）に格納され、続く１６［Ｂｙｔｅ］のデータ（第２のデータ列）が第２の部分アドレス空間１１２（サイズＮ）に格納されるように、第１種制御信号群および第２種制御信号群を供給する。
【００４２】
ここで、第１の部分アドレス空間１１１は、メモリデバイス１０１において開始アドレス”Ｅ”から終了アドレス”Ｅ＋１５”までのアドレス空間であり、論理アドレス空間１０５に属する論理アドレス空間でもある。また、第２の部分アドレス空間１１２は、メモリデバイス１０２において開始アドレス”Ｆ”から終了アドレス”Ｆ＋１５”までのアドレス空間であり、論理アドレス空間１０５に属する論理アドレス空間でもある。
【００４３】
さらに、メモリデバイス制御部１４３は、続く１６［Ｂｙｔｅ］のデータ（第１のデータ列）が第１の部分アドレス空間１１３（サイズＭ）に格納され、続く１６［Ｂｙｔｅ］のデータ（第２のデータ列）が第２の部分アドレス空間１１４（サイズＮ）に格納されるように、第１種制御信号群および第２種制御信号群を供給する。
【００４４】
ここで、第１の部分アドレス空間１１３は、メモリデバイス１０１において開始アドレス”Ｅ＋１６”から終了アドレス”Ｅ＋３１”までのアドレス空間であり、論理アドレス空間１０５に属する論理アドレス空間でもある。また、第２の部分アドレス空間１１４は、メモリデバイス１０２において開始アドレス”Ｆ＋１６”から終了アドレス”Ｆ＋３１”までのアドレス空間であり、論理アドレス空間１０５に属する論理アドレス空間でもある。
【００４５】
すなわち、メモリデバイス制御部１４３は、論理的に連続するデータ列を、第１のデータ列（サイズＭ）および第２のデータ列（サイズＮ）に交互に分け、各第１のデータ列が各第１の部分アドレス空間に格納され、各第１のデータ列に隣接する第２のデータ列が第２の部分アドレス空間に格納されるように、第１種制御信号群および第２種制御信号群を供給する。
【００４６】
これに伴い、一連のデータのうち、ｍ＝２ｎ−１番目（ｎは自然数。）の第１のデータ列（サイズＭ）が、メモリデバイス１０１において開始アドレス”Ｅ＋１６×（ｎ−１）”から終了アドレス”Ｅ＋１６×ｎ−１”までのアドレス空間に格納され、ｍ＝２ｎ番目の第２のデータ列（サイズＮ）が、メモリデバイス１０２において開始アドレス”Ｆ＋１６×（ｎ−１）”から終了アドレス”Ｆ＋１６×ｎ−１”までのアドレス空間に格納される。
【００４７】
このとき、メモリデバイス制御部１４３は、アービタ１４２から受け取ったコマンドに基づいて、メモリデバイス１０１（外部のＤＲＡＭ）に対してサイズＭ（Ｍは自然数。）単位でデータ転送を行うことが示される第１種制御信号群を供給し、メモリデバイス１０２（内蔵のメモリ）に対してサイズＮ（Ｎは自然数。）単位でデータ転送を行うことが示される第２種制御信号群を供給する。
【００４８】
なお、アドレス空間１０５（サイズＹ）に一連のデータを格納する場合には、内部バスＩＦ１４０または内部バスＩＦ１４１から転送された一連のデータをバッファ１４４に一度格納してから、バッファ１４４に格納した一連のデータをメモリデバイス１０１およびメモリデバイス１０２に交互に分け、メモリデバイス１０１およびメモリデバイス１０２に並行して書込む。同様に、読出す場合についても、メモリデバイス１０１およびメモリデバイスの各アドレス空間から並行して読出し、メモリデバイス１０１およびメモリデバイス１０２に交互に分かれたものを、バッファ１４５に一連のデータ構成に合わせて、内部バス１４０または内部バスＩＦ１４１を経由して各マスターに転送する。
【００４９】
続いて、メモリデバイス１０１を多バンク構成のＤＲＡＭに置き換えた場合について説明する。
【００５０】
図３（ｂ）に示されるように、メモリデバイス１０１を多バンク構成のＤＲＡＭに置き換えた場合には、メモリデバイス制御部１４３は、一連のデータのうち、メモリデバイス１０１に格納されるデータが、アドレス空間１２１（ｍ＝１番目の場合）、アドレス空間１２３（ｍ＝３番目の場合）、アドレス空間１２５（ｍ＝５番目の場合）、アドレス空間１２７（ｍ＝７番目の場合）の順に格納されるように、第１種制御信号群を供給する。
【００５１】
ここで、アドレス空間１２１は、メモリデバイス１０１の第１のバンクにおいて開始アドレス”Ｅ１”から終了アドレス”Ｅ１＋１５”までのアドレス空間であり、論理アドレス空間１０５に属するアドレス空間でもある。また、アドレス空間１２３は、メモリデバイス１０１の第１のバンクにおいて開始アドレス”Ｅ１＋１６”から終了アドレス”Ｅ１＋３１”までのアドレス空間であり、論理アドレス空間１０５に属するアドレス空間でもある。
【００５２】
さらに、アドレス空間１２５は、メモリデバイス１０１の第２のバンクにおいて開始アドレス”Ｅ２”から終了アドレス”Ｅ２＋１５”までのアドレス空間であり、論理アドレス空間１０５に属するアドレス空間でもある。また、アドレス空間１２７は、メモリデバイス１０１の第２のバンクにおいて開始アドレス”Ｅ２＋１６”から終了アドレス”Ｅ２＋３１”までのアドレス空間であり、論理アドレス空間１０５に属するアドレス空間でもある。
【００５３】
すなわち、メモリデバイス制御部１４３は、第１の部分アドレス空間および第２の部分アドレス空間の組をｉ（ｉは自然数。）組単位で、メモリデバイス１０１のバンクを交互に切り替えてアドレス空間１０６にアクセスする。
【００５４】
これに伴い、例えば、１バンクあたりｉ個の第１の部分アドレス空間が割り当てられると、一連のデータのうち、ｍ＝２ｎ−１番目（ｎ＝（ｊ−１）ｉ＋ｋ：ｉ，ｊは自然数。ｋは１≦ｋ≦ｉを満たす自然数。）の第１のデータ列が、メモリデバイス１０１の第ｊのバンクにおいて開始アドレス”Ｅｊ＋１６×（ｋ−１）”から終了アドレス”Ｅｊ＋１６×ｋ−１”までの第１の部分アドレス空間に格納される。
【００５５】
続いて、論理アドレス空間１０５に格納されているデータの読出しアクセスする動作について説明する。ここでは、内部バスＩＦ１４０が、論理アドレス空間１０４に対するアクセス要求を２回受けた場合と、論理アドレス空間１０５に対するアクセス要求を２回受けた場合とを例に説明する。
【００５６】
図４（ａ）に示されるように、メモリデバイス制御部１４３は、内部バスＩＦ１４０からタイミング１５０で発行されたコマンドを、アービタ１４２を介して受けると、受けたコマンドに応じて、第１種制御信号群をメモリデバイス１０１に供給する（占有時間１５２）。これに伴い、メモリデバイス１０１は、メモリデバイス制御部１４３から供給された第１種制御信号群によって特定されるデータをバッファ１４５に出力する（占有時間１５４）。
【００５７】
また、メモリデバイス制御部１４３は、内部バスＩＦ１４０からタイミング１５１で発行されたコマンドを、アービタ１４２を介して受けると、受けたコマンドに応じて、第１種制御信号群をメモリデバイス１０１に供給する（占有時間１５３）。これに伴い、メモリデバイス１０１は、メモリデバイス制御部１４３から供給された第１種制御信号群によって特定されるデータをバッファ１４５に出力する（占有時間１５５）。そして、内部バスＩＦ１４０は、メモリデバイス制御部１４３から供給された第１種制御信号群によって特定されたデータによって再構成されたデータをバッファ１４５から読出し、読出したデータを、論理アドレス空間１０４に対してアクセス要求を出したマスタデバイスに出力する。
【００５８】
ここで、一例として、下記（１）〜（３）の条件において論理アドレス空間１０４にアクセスする場合について説明する。
【００５９】
（１）メモリデバイス１０１（外部のＤＲＡＭ）の入出力データ幅を４［Ｂｙｔｅ］とする。
【００６０】
（２）論理アドレス空間１０４に１６［Ｂｙｔｅ］のデータ刻みでデータが格納されているとする。
【００６１】
（３）１６［Ｂｙｔｅ］のデータ刻みのうち１２［Ｂｙｔｅ］目から１６［Ｂｙｔｅ］のアクセスデータ長でアクセスするとする。
【００６２】
この場合においては、１６［Ｂｙｔｅ］のデータ全てについて、メモリデバイス１０１（外部のＤＲＡＭ）にアクセスする。ただし、メモリデバイス１０１の第１のバンクおよび第２のバンクに跨ってアクセスする。具体的には、１２［Ｂｙｔｅ］目から１５［Ｂｙｔｅ］目までのデータ列（４［Ｂｙｔｅ］）について、メモリデバイス１０１（外部のＤＲＡＭ）の第１のバンクにアクセスする。１６［Ｂｙｔｅ］目から２７［Ｂｙｔｅ］目までのデータ列（１２［Ｂｙｔｅ］）について、メモリデバイス１０１（外部のＤＲＡＭ）の第２のバンクにアクセスする。
【００６３】
これにより、メモリデバイス１０１（外部のＤＲＡＭ）のアクセスに対するレイテンシは、４サイクル（＝１６［Ｂｙｔｅ］／４［Ｂｙｔｅ］）となる。さらに、メモリデバイス１０１（外部のＤＲＡＭ）の第１のバンクおよび第２のバンクを跨ってアクセスするため、アクセスデータ長が短い場合には、メモリデバイス１０１（外部のＤＲＡＭ）のアクセススペックであるコマンド（activait, precharge, read, write）の制約によるオーバーヘッド（α）が加算される。結果、この場合においては、４サイクル＋αを要する。
【００６４】
一方、図４（ｂ）に示されるように、メモリデバイス制御部１４３は、内部バスＩＦ１４０からタイミング１６０で発行されたコマンドを、アービタ１４２を介して受けると、受けたコマンドに応じて、並行して、第１種制御信号群をメモリデバイス１０１に供給し、第２種制御信号群をメモリデバイス１０２に供給する（占有時間１６２）。これに伴い、メモリデバイス１０１は、メモリデバイス制御部１４３から供給された第１種制御信号群によって特定されるデータをバッファ１４５に出力する（占有時間１６４）。また、メモリデバイス１０２は、メモリデバイス制御部１４３から供給された第２種制御信号群によって特定されるデータをバッファ１４５に出力する（占有時間１６５）。そして、内部バスＩＦ１４０は、メモリデバイス制御部１４３から供給された第１種制御信号群および第２種制御信号群によってそれぞれ特定されたデータによって再構成されたデータをバッファ１４５から読出し、読出したデータを、論理アドレス空間１０５に対してアクセス要求を出したマスタデバイスに出力する。
【００６５】
また、メモリデバイス制御部１４３は、内部バスＩＦ１４０からタイミング１６１で発行されたコマンドを、アービタ１４２を介して受けると、受けたコマンドに応じて、並行して、第１種制御信号群をメモリデバイス１０１に供給し、第２種制御信号群をメモリデバイス１０２に供給する（占有時間１６３）。これに伴い、メモリデバイス１０１は、メモリデバイス制御部１４３から供給された第１種制御信号群によって特定されるデータをバッファ１４５に出力する（占有時間１６６）。また、メモリデバイス１０２は、メモリデバイス制御部１４３から供給された第２種制御信号群によって特定されるデータをバッファ１４５に出力する（占有時間１６７）。結果、図４（ａ）と比べて、データ転送処理に要するレイテンシがかなり改善される（時間１５８、時間１６８）。
【００６６】
ここで、一例として、下記（１）〜（４）の条件において論理アドレス空間１０５にアクセスする場合について説明する。
【００６７】
（１）メモリデバイス１０１（外部のＤＲＡＭ）の入出力データ幅を４［Ｂｙｔｅ］とする。
【００６８】
（２）メモリデバイス１０２（内蔵のメモリ）の入出力データ幅を１６［Ｂｙｔｅ］とする。
【００６９】
（３）論理アドレス空間１０５に１６［Ｂｙｔｅ］のデータ刻みでデータが格納されているとする。
【００７０】
（４）１６［Ｂｙｔｅ］のデータ刻みのうち１２［Ｂｙｔｅ］目から１６［Ｂｙｔｅ］のアクセスデータ長でアクセスするとする。
【００７１】
この場合においては、１６［Ｂｙｔｅ］のデータについて、メモリデバイス１０１およびメモリデバイス１０２に跨ってアクセスする。具体的には、１２［Ｂｙｔｅ］目から１５［Ｂｙｔｅ］目までのデータ列（４［Ｂｙｔｅ］）について、メモリデバイス１０１（外部のＤＲＡＭ）の第１のバンクにアクセスする。１６［Ｂｙｔｅ］目から２７［Ｂｙｔｅ］目までのデータ列（１２［Ｂｙｔｅ］）について、メモリデバイス１０２（内部のＳＲＡＭ）にアクセスする。
【００７２】
これにより、メモリデバイス１０１（外部のＤＲＡＭ）のアクセスに対するレイテンシは、１サイクル（＝４［Ｂｙｔｅ］／４［Ｂｙｔｅ］）となる。また、メモリデバイス１０２（内蔵のメモリ）のアクセスに対するレイテンシは、１サイクル（＝１２［Ｂｙｔｅ］／１６［Ｂｙｔｅ］：１以下は１に丸める。）となる。これらから、計２サイクルとなる。さらに、メモリデバイス１０１（外部のＤＲＡＭ）のアクセスとメモリデバイス１０２（内蔵のメモリ）のアクセスとのタイミングを合わせ、メモリデバイス制御部１４３から第１種制御信号群および第２種制御信号群を並列供給すると、並行にアクセスが進捗し、理想的には１サイクル、オーバーヘッドを考慮しても、この場合においては、１サイクル＋αを要する。
【００７３】
すなわち、論理アドレス空間１０４に対するアクセス要求を受けた場合においては（図４（ａ）参照。）、従来のようにメモリデバイス１０１の第１のバンクおよび第２のバンクに跨ってアクセスするため、４サイクル＋αを要する。一方、論理アドレス空間１０５に対するアクセス要求を受けた場合においては（図４（ｂ）参照。）、メモリデバイス１０１およびメモリデバイス１０２に跨ってアクセスするため、１サイクル＋αを要する。結果、論理アドレス空間１０５にアクセスすることで、３サイクルのレイテンシを改善することが可能となる。
【００７４】
以上説明したように、本実施の形態に係るメモリアクセス装置１０によれば、メモリデバイス１０１とメモリデバイス１０２とに並行してアクセスするため、メモリデバイス１０１に占める１コマンド当たりの占有時間を短くすることができ、メモリデバイス１０１のレートを削減できる。結果的に、周波数を低減でき、安価なメモリデバイスを使用することができる。さらに、周波数を低減することによって、設計の容易性が向上し、また、消費電力を低減することができる。
【００７５】
さらに、レートが高くアクセス頻度が多いデータを全てメモリデバイス１０２（内蔵のメモリ）に格納する場合と比べ、メモリデバイス１０１およびメモリデバイス１０２を併用することで、ほぼ同等のレイテンシで、かつメモリデバイス１０２に必要とする容量を半減することが可能となる。
【００７６】
（実施の形態２）
次に、本発明に係る実施の形態２について、図面を参照しながら説明する。
【００７７】
本実施の形態におけるメモリアクセス装置は、アドレス空間１０７に対するアクセスが終了してからアドレス空間１０６に対する次のアクセスが開始するまでの時間内に、メモリデバイス１０２のアドレス空間と対応づけられた論理アドレス空間１０３に対するアクセスを指示するコマンドを受けると、論理アドレス空間１０３に対するアクセスが示される第２種制御信号群をメモリデバイス１０２に供給するアービタを備えることを特徴とする。
【００７８】
以上の点を踏まえて、本実施の形態におけるメモリアクセス装置について説明する。なお、実施の形態１におけるメモリアクセス装置１００と同一の構成要素については、同一の参照符号を付して説明を省略する。
【００７９】
まず、本実施の形態におけるメモリアクセス装置の構成について説明する。
【００８０】
図５に示されるように、メモリアクセス装置２０は、メモリアクセス装置１０と比べて、メモリデバイス１０１とメモリデバイス１０２とが同期して動作している以外で、メモリデバイス１０２にアクセス可能なときに、メモリデバイス１０２にアクセスする点が異なる。
【００８１】
ここでは、一例として、メモリアクセス装置２０は、メモリデバイス１０１、メモリデバイス１０２、内部バスＩＦ２４０、内部バスＩＦ２４１、コマンドアービタ２４２、メモリデバイス制御部２４３、バッファ２４４、バッファ２４５、セレクタ２４６、バッファ２４７、バッファ２４８、セレクタ２４９、アービタ２５０、セレクタ２５１などを備える。また、メモリデバイス１０１は、コントローラ１００に外付けされている。メモリデバイス１０２、内部バスＩＦ２４０、内部バスＩＦ２４１、コマンドアービタ２４２、メモリデバイス制御部２４３、バッファ２４４、バッファ２４５、セレクタ２４６、バッファ２４７、バッファ２４８、セレクタ２４９、アービタ２５０、およびセレクタ２５１は、コントローラ２００に内蔵されている。
【００８２】
メモリデバイス１０１は、バースト的にアクセスし連続した高速大容量のデータ転送が可能なメモリデバイスである。例えば、ＤＲＡＭなどのように、バーストモードを利用したデータ転送が可能で高速にアクセス可能なメモリデバイスである。ここでは、一例として、ＤＲＡＭとする。なお、ＤＲＡＭとして、ＳＤＲＡＭ、ＤＤＲ−ＳＤＲＡＭ、ＤＤＲ２−ＳＤＲＡＭ、ＲａｍＢｕｓ社のＸＤＲなどがある。
【００８３】
メモリデバイス１０２は、高速レイテンシ、ランダムアクセス、かつ設計時にバス幅を拡張・縮小可能なメモリデバイスである。例えば、ＳＲＡＭのように、レイテンシが短く高速なランダムアクセスが可能なメモリデバイスである。ここでは、一例として、ＳＲＡＭとする。なお、メモリデバイス１０２の種別は、ＳＲＡＭに限らず、内蔵されるＤＲＡＭやフラッシュ、ＦｅＲＡＭなどでもよい。また、メモリデバイス１０２は、内蔵、外付けのどちらでもよい。
【００８４】
内部バスＩＦ２４０、および内部バスＩＦ２４１のそれぞれは、マスタデバイスから論理アドレス空間１０５に対するアクセス要求を受け、受けたアクセス要求に応じたコマンドをコマンドアービタ２４２に発行する。また、マスタデバイスから論理アドレス空間１０３に対するアクセス要求を受け、受けたアクセス要求に応じたコマンドをアービタ２５０に発行する。
【００８５】
コマンドアービタ２４２は、内部バスＩＦ１４０、または内部バスＩＦ１４１から発行されたコマンドを受け取り、受け取ったコマンドに対して、アクセス優先順位、データレート保障などに基づいて、アクセス調停を行い、そのコマンドをメモリデバイス制御部２４３に転送する。
【００８６】
メモリデバイス制御部２４３は、コマンドアービタ２４２から転送されたコマンドを受け取り、受け取ったコマンドに基づいて、タイミングを制御しながら、制御下にある各メモリデバイスにアクセスするのに必要な制御信号群を各メモリデバイスに並列供給する。具体的には、メモリデバイス制御部２４３は、受け取ったコマンドに応じて、メモリデバイス１０１にアクセスする場合には、信号線１４６を介して、メモリデバイス１０１に対するアクセスが示される第１種制御信号群（ＤＲＡＭの制御信号、アドレス信号など。）を供給する。メモリデバイス１０２にアクセスする場合には、信号線１４７を介して、メモリデバイス１０２に対するアクセスが示される第２種制御信号群（ＳＲＡＭの制御信号、アドレス信号など。）を供給する。
【００８７】
なお、メモリデバイス制御部２４３で管理される論理アドレス空間については、実施の形態１における論理アドレス空間（図２参照。）と同一のために、説明を省略する。
【００８８】
バッファ２４４は、内部バスＩＦ２４０または内部バスＩＦ２４１から、メモリデバイス１０１またはメモリデバイス１０２に転送されるデータが一時的に蓄積される緩衝記憶領域である。
【００８９】
バッファ２４５は、内部バスＩＦ２４０または内部バスＩＦ２４１から、メモリデバイス１０２に転送されるデータが一時的に蓄積される緩衝記憶領域である。
【００９０】
セレクタ２４６は、メモリデバイス制御部２４３から出力される制御信号（不図示）に応じて入力源（バッファ２４４またはバッファ２４５）を切り替え、入力源に蓄積されているデータをメモリデバイス１０２に出力する。
【００９１】
バッファ２４７は、メモリデバイス１０２から、内部バスＩＦ２４０または内部バスＩＦ２４１に転送されるデータが一時的に蓄積される緩衝記憶領域である。
【００９２】
バッファ２４８は、メモリデバイス１０１またはメモリデバイス１０２から、内部バスＩＦ２４０または内部バスＩＦ２４１に転送されるデータが一時的に蓄積される緩衝記憶領域である。
【００９３】
セレクタ２４９は、メモリデバイス制御部２４３から出力される制御信号（不図示）に応じて出力先（バッファ２４７またはバッファ２４８）を切り替えて、メモリデバイス１０２から出力されたデータを出力先に蓄積する。
【００９４】
アービタ２５０は、内部バスＩＦ２４０または内部バスＩＦ２４１から発行されたコマンドを受け取り、メモリデバイス１０２に対するアクセスの空き時間を見計らって、受け取ったコマンドに応じて、メモリデバイス１０２に対するアクセスが示される第２種制御信号群（ＳＲＡＭの制御信号、アドレス信号など。）を供給する。
【００９５】
セレクタ２５１は、メモリデバイス制御部２４３から出力される制御信号（不図示）に応じて入力源（メモリデバイス制御部２４３またはアービタ２５０）を切り替えて、入力源から供給される第２種制御信号群をメモリデバイス１０２に出力する。
【００９６】
なお、メモリデバイス制御部２４３は、メモリデバイス１０１およびメモリデバイス１０２を並行してアクセスする場合には、セレクタ２４６を制御して、入力源としてバッファ２４４を選択させる。また、セレクタ２４９を制御して、出力先としてバッファ２４８を選択させる。さらに、セレクタ２５１を制御して、入力源としてメモリデバイス制御部２４３からの出力を選択させる。
【００９７】
また、アービタ２５０は、アドレス空間１０７に対するアクセスが終了してからアドレス空間１０６に対する次のアクセスが開始するまでの時間内に、論理アドレス空間１０３に対するアクセス要求を受けると、論理アドレス空間１０３に対するアクセスが示される第２種制御信号群をメモリデバイス１０２に供給する。このとき、メモリデバイス制御部２４３は、セレクタ２４６を制御して、入力源としてバッファ２４５を選択させる。また、セレクタ２４９を制御して、出力先としてバッファ２４７を選択させる。さらに、セレクタ２５１を制御して、入力源としてアービタ２５０を選択させる。
【００９８】
続いて、メモリデバイス制御部２４３で管理されている論理アドレス空間１０５について説明する。ここでは、論理的に連続する２次元のデータ配列を、論理アドレスマップに従って論理アドレス空間１０５に格納する場合を例に説明する。なお、一例として、メモリデバイス１０１を４バンクから構成されているＤＲＡＭとし、メモリデバイス１０２をＳＲＡＭとする。
【００９９】
図６に示されるように、メモリデバイス制御部２４３は、論理的に連続する２次元のデータ配列２３０を論理アドレス空間１０５に格納する場合には、下記（ａ１）〜（ａ４）に基づいて、第１のデータ配列と、その第１のデータ配列に隣接する第２のデータ配列とを組にして格納されるように、第１種制御信号群および第２種制御信号群を供給する。
【０１００】
「第１のデータ配列」とは、水平方向にサイズＭ（Ｍは自然数。）で垂直方向にサイズＨ（Ｈは自然数。）のデータ配列をいう。「第２のデータ配列」とは、水平方向にサイズＮ（Ｎは自然数。）で垂直方向にサイズＨ（Ｈは自然数。）のデータ配列をいう。
【０１０１】
（ａ１）領域２３１における部分２３３および部分２３５のそれぞれについて、第１のデータ配列および第２のデータ配列の組が２組格納される。このとき、第１のデータ配列がメモリデバイス１０１のバンク２１２に割り当てられた第１の部分アドレス空間に格納され、第２のデータ配列がメモリデバイス１０２に割り当てられた第２の部分アドレス空間に格納される。
【０１０２】
ここでは、「第１の部分アドレス空間」とは、アドレス空間１０６を複数に分けた各アドレス空間であり、水平方向にサイズＭ（Ｍは自然数。）で垂直方向にサイズＨ（Ｈは自然数。）の第１のデータ配列が格納されるアドレス空間である。「第２の部分アドレス空間」とは、アドレス空間１０７を複数に分けた各アドレス空間であり、水平方向にサイズＮ（Ｎは自然数。）で垂直方向にサイズＨ（Ｈは自然数。）の第２のデータ配列が格納されるアドレス空間である。
【０１０３】
（ａ２）領域２３２における部分２３３および部分２３５のそれぞれについて、第１のデータ配列および第２のデータ配列の組が２組格納される。このとき、第１のデータ配列がメモリデバイス１０１のバンク２１４に割り当てられた第１の部分アドレス空間に格納され、第２のデータ配列がメモリデバイス１０２に割り当てられた第２の部分アドレス空間に格納される。
【０１０４】
（ａ３）領域２３１における部分２３４および部分２３６のそれぞれについて、第１のデータ配列および第２のデータ配列の組が２組格納される。このとき、第１のデータ配列がメモリデバイス１０１のバンク２１１に割り当てられた第１の部分アドレス空間に格納され、第２のデータ配列がメモリデバイス１０２に割り当てられた第２の部分アドレス空間に格納される。
【０１０５】
（ａ４）領域２３２における部分２３４および部分２３６のそれぞれについて、第１のデータ配列および第２のデータ配列の組が２組格納される。このとき、第１のデータ配列がメモリデバイス１０１のバンク２１３に割り当てられた第１の部分アドレス空間に格納され、第２のデータ配列がメモリデバイス１０２に割り当てられた第２の部分アドレス空間に格納される。
【０１０６】
すなわち、メモリデバイス制御部２４３は、論理的に連続する２次元のデータ配列を論理アドレス空間１０５に格納する場合には、水平方向については、下記（ｂ１），（ｂ２）を交互に繰り返すか、または下記（ｂ２），（ｂ４）を交互に繰り返し、垂直方向については、下記（ｂ１），（ｂ３）を交互に繰り返すか、または下記（ｂ３），（ｂ４）を交互に繰り返す。
【０１０７】
（ｂ１）第１のデータ配列および第２のデータ配列の組がＩ（Ｉは自然数。）組格納されるように、第１種制御信号群および第２種制御信号群を供給する。このとき、第１のデータ配列がメモリデバイス１０１のバンク２１２に割り当てられた第１の部分アドレス空間に格納され、第２のデータ配列がメモリデバイス１０２に割り当てられた第２の部分アドレス空間に格納される。
【０１０８】
（ｂ２）第１のデータ配列および第２のデータ配列の組がＩ（Ｉは自然数。）組格納されるように、第１種制御信号群および第２種制御信号群を供給する。このとき、第１のデータ配列がメモリデバイス１０１のバンク２１４に割り当てられた第１の部分アドレス空間に格納され、第２のデータ配列がメモリデバイス１０２に割り当てられた第２の部分アドレス空間に格納される。
【０１０９】
（ｂ３）第１のデータ配列および第２のデータ配列の組がＩ（Ｉは自然数。）組格納されるように、第１種制御信号群および第２種制御信号群を供給する。このとき、第１のデータ配列がメモリデバイス１０１のバンク２１１に割り当てられた第１の部分アドレス空間に格納され、第２のデータ配列がメモリデバイス１０２に割り当てられた第２の部分アドレス空間に格納される。
【０１１０】
（ｂ４）第１のデータ配列および第２のデータ配列の組がＩ（Ｉは自然数。）組格納されるように、第１種制御信号群および第２種制御信号群を供給する。このとき、第１のデータ配列がメモリデバイス１０１のバンク２１３に割り当てられた第１の部分アドレス空間に格納され、第２のデータ配列がメモリデバイス１０２に割り当てられた第２の部分アドレス空間に格納される。
【０１１１】
例えば、図７に示されるように、メモリデバイス制御部２４３は、画像フレームデータを論理アドレス空間１０５に書込む場合には、水平方向については、下記（ｃ１），（ｃ２）を交互に繰り返すか、または下記（ｃ２），（ｃ４）を交互に繰り返し、垂直方向については、下記（ｃ１），（ｃ３）を交互に繰り返すか、または下記（ｃ３），（ｃ４）を交互に繰り返す。なお、ピクセル２６５のサイズ、すなわち、１ピクセルのサイズを１［Ｂｙｔｅ］とする。
【０１１２】
（ｃ１）データ配列２６１およびデータ配列２６０の組が２組格納されるように、第１種制御信号群および第２種制御信号群を供給する。（ｃ２）データ配列２６３およびデータ配列２６０の組が２組格納されるように、第１種制御信号群および第２種制御信号群を供給する。（ｃ３）データ配列２６２およびデータ配列２６０の組が２組格納されるように、第１種制御信号群および第２種制御信号群を供給する。（ｃ４）データ配列２６４およびデータ配列２６０の組が２組格納されるように、第１種制御信号群および第２種制御信号群を供給する。
【０１１３】
なお、データ配列２６０は、水平方向にＮピクセル、垂直方向にＨピクセルの第２のデータ配列であり、メモリデバイス１０２に割り当てられた第２の部分アドレス空間に格納される。データ配列２６１は、水平方向にＭピクセル、垂直方向にＨピクセルの第１のデータ配列であり、メモリデバイス１０１のバンク２１２に割り当てられた第１の部分アドレス空間に格納される。データ配列２６３は、水平方向にＭピクセル、垂直方向にＨピクセルの第１のデータ配列であり、メモリデバイス１０１のバンク２１４に割り当てられた第１の部分アドレス空間に格納される。データ配列２６２は、水平方向にＭピクセル、垂直方向にＨピクセルの第１のデータ配列であり、メモリデバイス１０１のバンク２１１に割り当てられた第１の部分アドレス空間に格納される。データ配列２６４は、水平方向にＭピクセル、垂直方向にＨピクセルの第１のデータ配列であり、メモリデバイス１０１のバンク２１３に割り当てられた第１の部分アドレス空間に格納される。また、図中において、同一のハッチで示されるものについても同様である。
【０１１４】
続いて、論理アドレス空間１０５に格納されているデータをアクセスする動作について説明する。ここでは、内部バスＩＦ２４０が、マスタデバイスから、論理アドレス空間１０５に対するアクセス要求を２回受け、内部バスＩＦ２４１が、マスタデバイスから、論理アドレス空間１０３に対するアクセス要求を１回受けた場合を例に説明する。
【０１１５】
図８に示されるように、メモリデバイス制御部２４３は、内部バスＩＦ２４０からタイミング１６０で発行されたコマンドを、コマンドアービタ２４２を介して受けると、受けたコマンドに応じて、並行して、第１種制御信号群をメモリデバイス１０１に供給し、第２種制御信号群をメモリデバイス１０２に供給する（占有時間１６２）。これに伴い、メモリデバイス１０１は、メモリデバイス制御部２４３から供給された第１種制御信号群によって特定されるデータをバッファ２４８に出力する（占有時間１６４）。また、メモリデバイス１０２は、メモリデバイス制御部２４３から供給された第２種制御信号群によって特定されるデータをバッファ２４８に出力する（占有時間１６５）。そして、内部バスＩＦ２４０は、メモリデバイス制御部２４３から供給された第１種制御信号群および第２種制御信号群によってそれぞれ特定されたデータによって再構成されたデータをバッファ２４８から読出し、読出したデータを、論理アドレス空間１０５に対してアクセス要求を出したマスタデバイスに出力する。
【０１１６】
同様に、メモリデバイス制御部２４３は、内部バスＩＦ２４０からタイミング１６１で発行されたコマンドを、コマンドアービタ２４２を介して受けると、受けたコマンドに応じて、並行して、第１種制御信号群をメモリデバイス１０１に供給し、第２種制御信号群をメモリデバイス１０２に供給する（占有時間１６３）。これに伴い、メモリデバイス１０１は、メモリデバイス制御部２４３から供給された第１種制御信号群によって特定されるデータをバッファ２４８に出力する（占有時間１６６）。また、メモリデバイス１０２は、メモリデバイス制御部２４３から供給された第２種制御信号群によって特定されるデータをバッファ２４８に出力する（占有時間１６７）。
【０１１７】
このとき、アービタ２５０は、内部バスＩＦ２４１からタイミング２６０で発行されたコマンドを受けると、第２種制御信号群の供給が完了されてから次の第１種制御信号群の供給が開始されるまでの時間内、すなわち、第２種制御信号群に応じたデータがメモリデバイス１０２からバッファ２４８に出力終了してから、次の第１種制御信号群に応じたデータがメモリデバイス１０２からバッファ２４８に出力開始するまでの時間内に、受けたコマンドに応じた第２種制御信号群をメモリデバイス１０２に供給する。これに伴い、メモリデバイス１０２は、アービタ２５０から供給された第２種制御信号群によって特定されるデータをバッファ２４７に出力する（占有時間２６１）。そして、内部バスＩＦ２４１は、アービタ２５０から供給された第２種制御信号群によって特定されたデータをバッファ２４７から読出し、読出したデータを、論理アドレス空間１０３に対するアクセス要求を出したマスタデバイスに出力する。
【０１１８】
なお、図９に示されるように、アクセスするアドレス空間に応じて、メモリデバイス１０２のクロック周波数を変化させるとしてもよい。このとき、メモリデバイス１０２のクロック周波数を、論理アドレス空間１０５にアクセスする場合には、Ｆ［ＭＨｚ］とし、論理アドレス空間１０３にアクセスする場合には、Ｅ［ＭＨｚ］（Ｆ≦Ｅ≦ｎＦ：ｎ＝２，３，・・・）とし、バースト的にクロック周波数をあげることにより、メモリデバイス１０２の単独アクセスに対して、レイテンシと転送量とをアップさせるとしてもよい（時間３６１、時間３６２）。
【０１１９】
なお、第２のメモリデバイス１０２は、論理アドレス空間１０５（アドレス空間１０７）に対するアクセスについては、アクセス周波数Ａ［ＭＨｚ］で動作し、論理アドレス空間１０３（メモリデバイス１０２の全アドレス空間）に対するアクセスについては、アクセス周波数Ａ［ＭＨｚ］よりも高いアクセス周波数Ｂ［ＭＨｚ］で動作するとしてもよい。これによって、メモリデバイス１０２のデータバスが遊ぶ時間内に、データ転送を終了させることができ、さらに、複数のデータ転送を行うこともできる。
【０１２０】
さらに、アクセス周波数Ｂ［ＭＨｚ］は、アクセス周波数Ａ［ＭＨｚ］の自然数倍としてもよい。これによって、タイミングがとりやすくなり、設計が容易になる。
【０１２１】
なお、メモリデバイス１０１は、論理アドレス空間１０５（アドレス空間１０６）に対するアクセスについては、アクセス周波数Ｃ［ＭＨｚ］で動作し、メモリデバイス１０２は、論理アドレス空間１０５（アドレス空間１０７）に対するアクセスについては、アクセス周波数Ｃ［ＭＨｚ］よりも高いアクセス周波数Ｄ［ＭＨｚ］で動作するとしてもよい。これによって、メモリデバイス１０２のデータバスが遊ぶ時間内に、データ転送を終了させることができ、さらに、複数のデータ転送を行うこともできる。
【０１２２】
さらに、アクセス周波数Ｄ［ＭＨｚ］は、アクセス周波数Ｃ［ＭＨｚ］の自然数倍としてもよい。これによって、タイミングがとりやすくなり、設計が容易になる。
【０１２３】
以上説明したように、本実施の形態に係るメモリアクセス装置２０によれば、論理アドレス空間１０５（サイズＹ＝Ｌ＋Ｋ）に対するアクセス要求に応じて、メモリデバイス１０１（外部のＤＲＡＭ）およびメモリデバイス１０２（内蔵のメモリ）の領域を跨ぐようにアクセスを制御することで、要求レイテンシの余裕度をより高めることが可能である。また、当然のことながらメモリデバイス１０１（外部のＤＲＡＭ）およびメモリデバイス１０２（内蔵のメモリ）へアクセスを振り分けているため、メモリデバイス１０１（外部のＤＲＡＭ）に占めるアクセス時間を低くすることができる。言い換えれば、メモリデバイス１０１（外部のＤＲＡＭ）へのアクセスレートを低く抑えることになる。これにより、本来高速の外付けメモリを必要とする場合において、1ランク下のスピードのメモリデバイスを選択することも可能になる。
【０１２４】
さらに、１サイクルで大きなデータが転送されるようにメモリデバイス１０２（内蔵のメモリ）のバス幅を広く設計しておくことで、メモリデバイス１０１（外部のＤＲＡＭ）のデータと同期してデータが転送されると、メモリデバイス１０２（内蔵のメモリ）のデータバスが遊ぶ時間ができる。この時間にレイテンシが必要なデータのアクセスを行うことで、レイテンシを要求するアクセスと、転送効率を要求するアクセスとを並走することができ、レイテンシと転送量を向上させることができる。また、バースト的にメモリデバイス１０２のクロック周波数をあげることによって、さらに、レイテンシと転送量を向上させることができる。
【０１２５】
さらに、メモリデバイス１０２（内蔵のメモリ）と同容量のメモリデバイス１０１（外部のＤＲＡＭ）を併用することで、メモリデバイス１０２の容量の倍のアドレス空間にアクセスすることが可能となる。また、メモリデバイス１０２（内蔵のメモリ）をＬＳＩに内蔵するような場合において、アプリケーションによって、メモリデバイス１０２の容量が不足する場合には、外部のメモリデバイス１０１と連動して動作することにより、メモリ空間を拡縮することができる。そして、内蔵のメモリデバイス１０２の容量を大きく積むことなく、大容量データ処理を実現することができる。最小限の容量で、アプリケーションの追加で増加する容量を吸収できる。
【０１２６】
（その他）
なお、メモリアクセス装置は、フルカスタムＬＳＩ（Large Scale Integration）によって実現されるとしてもよい。また、ＡＳＩＣ（Application Specific Integrated Circuit）等のようなセミカスタムＬＳＩによって実現されるとしてもよい。また、ＦＰＧＡ（Field Programmable Gate Array）、ＣＰＬＤ（Complex Programmable Logic Device）等のようなプログラマブル・ロジック・デバイスによって実現されるとしてもよい。また、動的に回路構成が書き換え可能なダイナミック・リコンフィギュラブル・デバイスとして実現されるとしてもよい。
【０１２７】
さらに、メモリアクセス装置を構成する１以上の機能を、これ等のＬＳＩに形成する設計データは、ＶＨＤＬ（Very high speed integrated circuit Hardware Description Language）、Ｖｅｒｉｌｏｇ−ＨＤＬ、ＳｙｓｔｅｍＣ等のようなハードウェア記述言語によって記述されたプログラム（以下、ＨＤＬプログラムと呼称する。）としてもよい。また、ＨＤＬプログラムを論理合成して得られるゲート・レベルのネットリストとしてもよい。また、ゲート・レベルのネットリストに、配置情報、プロセス条件等を付加したマクロセル情報としてもよい。また、寸法、タイミング等が規定されたマスクデータとしてもよい。
【０１２８】
さらに、コンピュータシステム、組み込みシステム等のようなハードウェアシステムに読出され得るように、光学記録媒体（例えば、ＣＤ−ＲＯＭなど。）、磁気記録媒体（例えば、ハードディスクなど。）、光磁気記録媒体（例えば、ＭＯなど。）、半導体メモリ（例えば、ＲＡＭなど。）などのようなコンピュータ読み取り可能な記録媒体に設計データを記録しておくとしてもよい。そして、これらの記録媒体を介して他のハードウェアタシステムに読み取られた設計データが、ダウンロードケーブルを介して、プログラマブル・ロジック・デバイスにダウンロードされるとしてもよい。
【０１２９】
または、ネットワーク等のような伝送路を経由して他のハードウェアシステムに取得され得るように、伝送路上のハードウェアシステムに設計データを保持しておくとしてもよい。さらに、ハードウェアシステムから伝送路を介して他のハードウェアタシステムに取得された設計データが、ダウンロードケーブルを介して、プログラマブル・ロジック・デバイスにダウンロードされるとしてよい。
【０１３０】
または、論理合成、配置、配線された設計データを、通電時にＦＰＧＡに転送され得るように、シリアルＲＯＭに記録しておくとしてもよい。そして、シリアルＲＯＭに記録された設計データが、通電時に、直接、ＦＰＧＡにダウンロードされるとしてもよい。
【産業上の利用可能性】
【０１３１】
本発明は、プロセッサ、コーデックなどのようなマスタデバイスデバイスとメモリデバイスとの間のインターフェースを担うメモリアクセス装置などとして、特に、マスタデバイスデバイスおよびメモリデバイス間の転送速度を安価に向上させるメモリアクセス装置などとして、利用することができる。
【符号の説明】
【０１３２】
１０，２０  メモリアクセス装置
１００，２００  コントローラ
１０１  メモリデバイス
１０２  メモリデバイス
１４０，２４０  内部バスＩＦ
１４１，２４１  内部バスＩＦ
１４２  アービタ
１４３，２４３  メモリデバイス制御部
１４４  バッファ
１４５  バッファ
２４２  コマンドアービタ
２４４  バッファ
２４５  バッファ
２４６  セレクタ
２４７  バッファ
２４８  バッファ
２４９  セレクタ
２５０  アービタ
２５１  セレクタ
【図１】
0005449287.tif 000002
【図２】
0005449287.tif 000003
【図３】
0005449287.tif 000004
【図４】
0005449287.tif 000005
【図５】
0005449287.tif 000006
【図６】
0005449287.tif 000007
【図７】
0005449287.tif 000008
【図８】
0005449287.tif 000009
【図９】
0005449287.tif 000010