(57)【要約】【課題】  アクセス要求されていないデータへのアクセスによるサイクル数の増大を抑制する情報処理システム及びメモリ制御装置を提供する。【解決手段】  第１のメモリ群Ｇ１と第２のメモリ群Ｇ２とにグループ化されたメモリＭ0〜Ｍn-1と、メモリＭ0〜Ｍn-1に対するアクセス要求を出力するデータ処理装置１０と、アクセス要求に含まれる第１のアドレスＡを用いて第２のアドレスｆ（Ａ）を算出するアドレス算出回路２１、及び第１のアドレスＡによりアクセスされる第１のメモリ群Ｇ１の動作を制御する第１の制御コマンドＣｍｄ（Ａ）及び第２のアドレスｆ（Ａ）によりアクセスされる第２のメモリ群Ｇ２の動作を制御する第２の制御コマンドＣｍｄ（ｆ（Ａ））を互いに異なるサイクルに出力する制御部２２を含むメモリ制御装置２０とを備え、メモリ制御装置２０によってメモリＭ0〜Ｍn-1とデータ処理装置１０間のデータ転送が制御される。【選択図】      図１
2007034404.tif 000002
【特許請求の範囲】
【請求項１】
第１のメモリ群と第２のメモリ群とにグループ化された複数のメモリと、
前記複数のメモリに対するアクセス要求を出力するデータ処理装置と、
前記アクセス要求が入力され、前記アクセス要求に含まれる第１のアドレスを用いて第２のアドレスを算出するアドレス算出回路、及び前記第１のアドレスによりアクセスされる前記第１のメモリ群の動作を制御する第１の制御コマンド及び前記第２のアドレスによりアクセスされる前記第２のメモリ群の動作を制御する第２の制御コマンドを互いに異なるサイクルに出力する制御部を含むメモリ制御装置
とを備え、前記メモリ制御装置によって前記複数のメモリと前記データ処理装置間のデータ転送が制御されることを特徴とする情報処理システム。  
【請求項２】
複数のメモリを第１のメモリ群と第２のメモリ群とにグループ化して制御するメモリ制御装置であって、
前記第１のメモリ群にアクセスする第１のアドレスを用いて、前記第２のメモリ群にアクセスする第２のアドレスを算出するアドレス算出回路と、
前記第１のメモリ群の動作を制御する第１の制御コマンド及び前記第２のメモリ群の動作を制御する第２の制御コマンドを互いに異なるサイクルに出力する制御部
とを備えることを特徴とするメモリ制御装置。
【請求項３】
前記制御部は、前記第１及び前記第２の制御コマンドのいずれかによる制御を、前記複数のメモリ毎に有効にするメモリ選択回路を備えることを特徴とする請求項２に記載のメモリ制御装置。
【請求項４】
前記複数のメモリから出力されるデータをそれぞれ格納する複数のデータバッファを備えるデータ転送部を更に備えることを特徴とする請求項２又は３に記載のメモリ制御装置。
【請求項５】
前記複数のメモリからそれぞれ読み出されるデータを連結して１つのデータ列を作成するコンカチネイト回路を更に備えることを特徴とする請求項２乃至４のいずれか１項に記載のメモリ制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリ制御技術に係り、特に複数のメモリを含むシステムの情報処理システム及びメモリ制御装置に関する。
【背景技術】
【０００２】
システム半導体装置のピン数を減らすため、システム半導体装置から複数のメモリに出力される制御信号及びアドレス信号は共有されることが多い。その場合、システム半導体装置のメモリ制御装置は、同一サイクルにおいて複数のメモリの同一のアドレスにアクセスする。
【０００３】
メモリがシンクロナス・ダイナミック・ランダム・アクセス・メモリ（ＳＤＲＡＭ）の場合、システム半導体装置のデータ処理装置が、メモリアクセスリクエスト信号でリクエストＲｅｑ（Ａ）をメモリ制御装置に出力すると、メモリ制御装置はメモリに制御及びアドレス信号でコマンドＣｍｄ（Ａ）を出力する(Ａ：アドレス。以下において同様。)。コマンドＣｍｄ（Ａ）は、アドレスＡに対する読み出し動作或いは書き込み動作を指定する。メモリがＳＤＲＡＭの場合、リクエストＲｅｑ（Ａ）とコマンドＣｍｄ（Ａ）はＳＤＲＡＭのバースト長分のデータ転送に対応する。
【０００４】
又、メモリがＳＤＲＡＭの場合、コマンドＣｍｄ（Ａ）はプリチャージコマンド、アクティベートコマンド、ライトコマンド、及びリードコマンド等の複数のコマンドを含む場合がある。ただし、一つのコマンドＣｍｄ（Ａ）に、それぞれのコマンドは多くとも一つしか含まれない。ライトコマンドとリードコマンドはどちらか一方が必ずコマンドＣｍｄ（Ａ）に含まれる。
【０００５】
例えば、メモリ制御装置からメモリ０及びメモリ１にコマンドＣｍｄ（Ａ）が出力される場合、コマンドＣｍｄ（Ａ）に対応して、メモリ０用データ信号でメモリ０とメモリ制御装置間でデータＤ０（Ａ）のデータ転送が実行される。更に、メモリ１用データ信号でメモリ１とメモリ制御装置間でデータＤ１（Ａ）のデータ転送が実行される。この時、データＤ０（Ａ）及びデータＤ１（Ａ）のデータ転送は同一サイクルで行われる。又、リクエストデータ信号でデータ処理装置とシステムメモリ制御装置間でデータＤ０（Ａ）及びデータＤ１（Ａ）のデータ転送が同一サイクルで行われる。
【０００６】
したがって、例えばデータ処理装置が要求するデータがメモリ０に格納されたデータＤ０（Ａ）のみであっても、データ処理装置が要求するデータＤ０（Ａ）とアドレスＡが同一のメモリ１に格納されたデータＤ１（Ａ）も読み出される。必要ないデータＤ１（Ａ）を読み出すために、データ処理装置の要求に対するアクセスに要するサイクル数が増大する場合がある。
【０００７】
上記問題を解決するために、必要ないデータを読み出さないために、アドレス線を複数のメモリにそれぞれ接続して、メモリ毎にアドレスを指定する方法がある（例えば、特許文献１参照。）。しかし、複数のアドレス線を接続するために、システム半導体装置のピン数が増大するという問題が生じる。
【特許文献１】米国特許第６２８９４２９号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００８】
本発明は、アクセス要求されていないデータへのアクセスによるサイクル数の増大を抑制する情報処理システム及びメモリ制御装置を提供する。
【課題を解決するための手段】
【０００９】
本願発明の一態様によれば、（イ）第１のメモリ群と第２のメモリ群とにグループ化された複数のメモリと、（ロ）複数のメモリに対するアクセス要求を出力するデータ処理装置と、（ハ）アクセス要求が入力され、アクセス要求に含まれる第１のアドレスを用いて第２のアドレスを算出するアドレス算出回路、及び第１のアドレスによりアクセスされる第１のメモリ群の動作を制御する第１の制御コマンド及び第２のアドレスによりアクセスされる第２のメモリ群の動作を制御する第２の制御コマンドを互いに異なるサイクルに出力する制御部を含むメモリ制御装置とを備え、メモリ制御装置によって複数のメモリとデータ処理装置間のデータ転送が制御される情報処理システムが提供される。  
本願発明の他の態様によれば、複数のメモリを第１のメモリ群と第２のメモリ群とにグループ化して制御するメモリ制御装置であって、（イ）第１のメモリ群にアクセスする第１のアドレスを用いて、第２のメモリ群にアクセスする第２のアドレスを算出するアドレス算出回路と、（ロ）第１のメモリ群の動作を制御する第１の制御コマンド及び第２のメモリ群の動作を制御する第２の制御コマンドを互いに異なるサイクルに出力する制御部とを備えるメモリ制御装置が提供される。
【発明の効果】
【００１０】
本発明によれば、アクセス要求されていないデータへのアクセスによるサイクル数の増大を抑制する情報処理システム及びメモリ制御装置を提供できる。
【発明を実施するための最良の形態】
【００１１】
次に、図面を参照して、本発明の実施の形態を説明する。以下の図面の記載において、同一又は類似の部分には同一又は類似の符号を付している。又、以下に示す実施の形態は、この発明の技術的思想を具体化するための装置や方法を例示するものであって、この発明の技術的思想は、構成部品の構造、配置等を下記のものに特定するものでない。この発明の技術的思想は、特許請求の範囲において、種々の変更を加えることができる。
【００１２】
本発明の実施の形態に係る情報処理システムは、図１に示すように、複数のメモリＭ0〜Ｍn-1、データ処理装置１０、及び複数のメモリＭ0〜Ｍn-1を第１のメモリ群Ｇ１と第２のメモリ群Ｇ２とにグループ化して制御するメモリ制御装置２０とを備える（ｎ：２以上の整数）。メモリ制御装置２０によってメモリＭ0〜Ｍn-1とデータ処理装置１０間のデータ転送が制御される。図１に示すシステム半導体装置１は、同一チップ上に集積化されたデータ処理装置１０及びメモリ制御装置２０を含む。メモリＭ0〜Ｍn-1は、ＳＤＲＡＭ等が採用可能である。ここで、メモリＭ0〜Ｍn-1に付された番号をメモリ番号とする。例えば、メモリＭ0のメモリ番号は０である。
【００１３】
データ処理装置１０は、メモリＭ0〜Ｍn-1に対するアクセス要求として、リクエストＲｅｑ（Ａ，Ｉ）をメモリアクセスリクエスト信号でメモリ制御装置２０に出力する。リクエストＲｅｑ（Ａ，Ｉ）は、第１のアドレスＡ及び切替情報である切替番号Ｉを含む。切替情報は、データ処理装置１０が要求するデータが格納された、メモリＭ0〜Ｍn-1それぞれのアドレスに基づき設定される。後述するように、切替情報を用いてメモリＭ0〜Ｍn-1がグループ化される。
【００１４】
メモリ制御装置２０に、第１のアドレスＡを含むリクエストＲｅｑ（Ａ，Ｉ）が入力する。メモリ制御装置２０は、第１のメモリ群Ｇ１にアクセスする第１のアドレスＡを用いて、第２のメモリ群Ｇ２にアクセスする第２のアドレスｆ（Ａ）を算出するアドレス算出回路２１と、第１のメモリ群Ｇ１の動作を制御する第１の制御コマンドＣｍｄ（Ａ）及び第２のメモリ群Ｇ２の動作を制御する第２の制御コマンドＣｍｄ（ｆ（Ａ））を互いに異なるサイクルに出力する制御部２２とを備える。更に、メモリ制御装置２０は、メモリＭ0〜Ｍn-1との間でそれぞれデータＤ0〜Ｄn-1を転送するデータ転送部２３を備える。
【００１５】
制御部２２は、メモリ選択回路２２１、及びコマンド出力回路２２２を備える。メモリ選択回路２２１は、第１のメモリ群Ｇ１及び第２のメモリ群Ｇ２毎に、第１の制御コマンドＣｍｄ（Ａ）及び第２の制御コマンドＣｍｄ（ｆ（Ａ））による制御を有効にする。コマンド出力回路２２２は、第１の制御コマンドＣｍｄ（Ａ）を第１のメモリ群Ｇ１に、第２の制御コマンドＣｍｄ（ｆ（Ａ））を第２のメモリ群Ｇ２に、それぞれ出力する。
【００１６】
以下では、メモリ番号が切替番号Ｉより小さい第２のメモリ群Ｇ２と、メモリ番号が切替番号Ｉ以上の第１のメモリ群Ｇ１に、メモリＭ0〜Ｍn-1をグループ分けするように切替番号Ｉが設定されている場合について説明する。つまり、データ処理装置１０が読み出し要求するデータを第１のアドレスＡに格納するメモリＭI〜Ｍn-1を第１のメモリ群Ｇ１とする。データ処理装置１０が要求するデータを第２のアドレスｆ（Ａ）に格納するメモリＭ0〜ＭI-1を第２のメモリ群Ｇ２とする。
【００１７】
先ず、メモリ選択回路２２１は、第１の制御コマンドＣｍｄ（Ａ）を有効にするために、メモリセレクト信号ＳI〜Ｓn-1を第１のメモリ群Ｇ１であるメモリＭI〜Ｍn-1にそれぞれ出力する。そしてコマンド出力回路２２２がメモリＭI〜Ｍn-1に第１の制御コマンドＣｍｄ（Ａ）を出力する。その結果、メモリＭI〜Ｍn-1からデータＤI〜Ｄn-1がそれぞれ読み出される。
【００１８】
次に、メモリ選択回路２２１は、第２の制御コマンドＣｍｄ（ｆ（Ａ））を有効にするために、メモリセレクト信号Ｓ0〜ＳＩ-1を第２のメモリ群Ｇ２であるメモリＭ0〜ＭＩ-1にそれぞれ出力する。そしてコマンド出力回路２２２が、メモリＭ0〜ＭＩ-1に第２の制御コマンドＣｍｄ（ｆ（Ａ））を出力する。その結果、メモリＭ0〜ＭＩ-1からデータＤ0〜ＤＩ-1がそれぞれ読み出される。
【００１９】
第１のメモリ群Ｇ１から読み出されたデータＤI〜Ｄn-1は、データ転送部２３に含まれるバッファ回路２３２のデータバッファＤＢI〜ＤＢn-1にそれぞれ格納される。第２のメモリ群Ｇ２から読み出されたデータＤ0〜ＤＩ-1は、バッファ回路２３２に含まれるセレクタＳＥ0〜ＳＥＩ-1を介して、データ転送部２３に含まれるコンカチネイト回路２３１に入力する。データバッファＤＢI〜ＤＢn-1に格納されたデータＤI〜Ｄn-1は、バッファ回路２３２に含まれるセレクタＳＥI〜ＳＥn-1を介して、コンカチネイト回路２３１に入力する。コンカチネイト回路２３１は、セレクタＳＥ0〜ＳＥn-1からそれぞれ転送されるデータを連結してデータ列ＤＴを作成し、データ処理装置１０に出力する。つまり、コンカチネイト回路２３１は、メモリＭ0〜ＭＩ-1からそれぞれ読み出されるデータＤ0〜Ｄn-1を連結して１つのデータ列ＤＴを作成する回路である。
【００２０】
上記で説明したように、セレクタＳＥ0〜ＳＥn-1は、データバッファＤＢ0〜ＤＢn-1に格納されたデータとメモリＭ0〜Ｍn-1から読み出されたデータのいずれかをそれぞれ選択する。上記の例では、先ず第１のメモリ群Ｇ１からデータＤI〜Ｄn-1が読み出され、その後第２のメモリ群Ｇ２からデータＤ0〜ＤI-1が読み出される。そのため、データＤI〜Ｄn-1がデータバッファＤＢI〜ＤＢn-1に一旦格納される。そして、データＤ0〜ＤI-1が読み出された時に、セレクタＳＥ0〜ＳＥI-1は第２のメモリ群Ｇ２から読み出されたデータＤI〜Ｄｎ-1を選択し、セレクタＳＥI〜ＳＥn-1はデータバッファＤＢ0〜ＤＢI-1に格納されたデータＤI〜Ｄｎ-1を選択する。一方、先ず第２のメモリ群Ｇ２からデータＤ0〜ＤI-1が読み出され、その後第１のメモリ群Ｇ１からデータＤI〜Ｄｎ-1が読み出される場合には、セレクタＳＥ0〜ＳＥI-1はデータバッファＤＢ0〜ＤＢI-1に格納されたデータＤ0〜ＤI-1を選択し、セレクタＳＥI〜ＳＥn-1は第１のメモリ群Ｇ１から読み出されたデータＤI〜Ｄｎ-1を選択する。つまり、セレクタＳＥ0〜ＳＥn-1は、切替情報を参照してデータを選択する。そのため、リクエストＲｅｑ（Ａ，Ｉ）がバッファ回路２３２に入力する。
【００２１】
以下に、図１に示す情報処理システムを、Ｈ２６４デコード等の２次元データの処理に適用する例を説明する。「２次元データ」とは、仮想領域上にマトリクス状に配置された画像データ等である。
【００２２】
図２に、２次元データの例を示す。図２に示した２次元データは、ｙ＝０のデータＤ0（Ａ［０，０］）、Ｄ1（Ａ［０，０］）、Ｄ0（Ａ［１，０］）及びＤ1（Ａ［１，０］）がｘ方向に配置されたデータである。ここで、”Ｄ”の添え字は、データが格納されたメモリを示す。つまり、データＤ0（Ａ［０，０］）及びデータＤ0（Ａ［１，０］）はメモリＭ0に格納されたデータ、データＤ1（Ａ［０，０］）及びデータＤ1（Ａ［１，０］）はメモリＭ1に格納されたデータである。又、アドレスＡ［０，０］の”［０，０］”は、２次元データの座標を示す。例えば、データＤ0（Ａ［０，０］）は、メモリＭ0に格納された座標（０，０）のデータである。図２に示した２次元データの座標（ｘ，ｙ）のデータは、データＤ0（Ａ［ｘ，ｙ］）及びデータＤ1（Ａ［ｘ，ｙ］）を含む。つまり、同一座標のデータが、メモリＭ0及びメモリＭ1の同一アドレスに格納される。
【００２３】
以下で、図１に示したデータ処理装置１０が、図２にハッチングで示した”データＤ1（Ａ［０，０］）及びデータＤ0（Ａ［１，０］）”を要求する場合を説明する。アドレス算出回路２１は、式（１）に示す関数によって、第１のアドレスＡ［ｘ，ｙ］から第２のアドレスｆ（Ａ［ｘ，ｙ］）を算出するように設定される。
【００２４】
ｆ（Ａ［ｘ，ｙ］）＝Ａ［ｘ＋１，ｙ］    ・・・・・（１）
データ処理装置１０は、リクエストＲｅｑ（Ａ［０，０］，１）をメモリ制御装置２０に出力する。アドレス算出回路２１は、式（１）を用いて、第１のアドレスＡ［０，０］から、第２のアドレスｆ（Ａ［０，０］）＝Ａ［１，０］を算出する。第１のアドレスＡ［０，０］及び第２のアドレスＡ［１，０］は制御部２２に入力する。
【００２５】
制御部２２は、第１のアドレスＡ［０，０］、第２のアドレスＡ［１，０］及び切替番号Ｉ＝１に基づき、メモリＭ0〜Ｍ1をグループ化する。即ち、メモリＭ1を第１のアドレスＡ［０，０］にアクセスされる第１のメモリ群Ｇ１、メモリＭ0を第２のアドレスＡ［１，０］にアクセスされる第２のメモリ群Ｇ２である。そして、メモリ選択回路２２１が、第１のメモリ群Ｇ１であるメモリＭ1にメモリセレクト信号Ｓ1を出力する。次いで、コマンド出力回路２２２が、第１の制御コマンドＣｍｄ（Ａ［０，０］）をメモリＭ1に出力する。その結果、メモリＭ1のアドレスＡ［０，０］に格納されたデータＤ1がデータバッファＤＢ1に転送される。
【００２６】
その後、メモリ選択回路２２１が、第２のメモリ群Ｇ２であるメモリＭ0にメモリセレクト信号Ｓ0を出力する。次いで、コマンド出力回路２２２が、第２の制御コマンドＣｍｄ（Ａ［１，０］）をメモリＭ1に出力する。その結果、メモリＭ0のアドレスＡ［１，０］に格納されたデータＤ0が、セレクタＳＥ0を介してコンカチネイト回路２３１に転送される。同時に、データバッファＤＢ1に格納されたデータＤ1がセレクタＳＥ1を介してコンカチネイト回路２３１に転送される。コンカチネイト回路２３１は、データＤ0及びデータＤ1からなるデータ列ＤＴをデータ処理装置１０に出力する。
【００２７】
比較のため、先行技術によって、図２に示したデータＤ1（Ａ［０，０］）及びＤ0（Ａ［１，０］）を読み出す例を以下に示す。先行技術では、リクエストＲｅｑ（Ａ［０，０］）に応じてデータＤ0（Ａ［０，０］）及びデータＤ1（Ａ［０，０］）のデータ転送が行われる。その後、リクエストＲｅｑ（Ａ［１，０］）に応じて、データＤ0（Ａ［１，０］）及びデータＤ1（Ａ［１，０］）のデータ転送が行われる。
【００２８】
上記に説明したように、先行技術では、１つのリクエストによってメモリＭ0及びメモリＭ1の同一アドレスに格納された同一座標のデータが読み出される。そのため、データ処理装置が要求していないデータＤ0（Ａ［０，０］）及びデータＤ1（Ａ［１，０］）のデータ転送が行われる。
【００２９】
一方、図１に示した情報処理システムでは、１つのリクエストによってメモリＭ0及びメモリＭ1の異なるアドレスのデータを読み出すことができる。その結果、図１に示した情報処理システムを用いることにより、データ処理装置１０の要求に対するデータ読み出し処理に要する時間を、先行技術に比較して短縮することができる。
【００３０】
次に、図３に示す２次元データの処理に、図１に示す情報処理システムを適用する例を説明する。図３に示した２次元データは、ｙ方向に４個、ｘ方向に３個のデータが配置された２次元データである。又、座標（ｘ，ｙ）のデータは、メモリＭ0に格納されたデータＤ0（Ａ［ｘ，ｙ］）及びメモリＭ1に格納されたデータＤ1（Ａ［ｘ，ｙ］）を含む。以下では、データ処理装置１０が、図３にハッチングで示した”データＤ1（Ａ［０，ｊ］）及びデータＤ0（Ａ［１，ｊ］）”、”データＤ1（Ａ［１，ｊ］）及びデータＤ0（Ａ［２，ｊ］）”を要求する場合を説明する（ｊ＝０〜３）。図３にハッチングで示したデータを読み出すため、データ処理装置１０は、リクエストＲｅｑ（Ａ［０，ｊ］，１）及びリクエストＲｅｑ（Ａ［１，ｊ］，１）をメモリ制御装置２０に順次出力する。切替番号Ｉは１である。つまり、メモリＭ1が第１のアドレスＡ［０，ｊ］にアクセスされる第１のメモリ群Ｇ１、メモリＭ0が第２のアドレスＡ［１，ｊ］にアクセスされる第２のメモリ群Ｇ２である。第２のアドレスＡ［１，ｊ］は、式（１）により算出される。
【００３１】
メモリ制御装置２０の動作を図４に示すタイミングチャートを用いて説明する。尚、メモリＭ0〜Ｍ1は、ダブル・データ・レート・２（ＤＤＲ２）ＳＤＲＡＭ（以下において、「ＤＤＲ２メモリ」という。）とする。ここで、アドレスＡ［ｘ，ｙ］は、ＤＤＲ２メモリのローアドレスＲ［ｘ，ｙ］、バンクセレクトＢ［ｘ，ｙ］及びカラムアドレスＣ［ｘ，ｙ］からなるとする。更に、図３に示したｘ＝０〜２及びｙ＝０〜３において、ローアドレスＲ［ｘ，ｙ］＝Ｒ０、及びバンクセレクトＢ［ｘ，ｙ］＝Ｂ０であるとする。
【００３２】
図４において、信号ＣＳは図１に示した情報処理システムのシステムクロックである。メモリセレクト信号ＳＥ0及びＳＥ1は、ローレベルの場合に有効である。つまり、メモリセレクト信号ＳＥ0がローレベルの場合に、メモリＭ0を制御する第２の制御コマンドＣｍｄ（ｆ（Ａ））が有効になる。一方、メモリセレクト信号ＳＥ1がローレベルの場合に、メモリＭ1を制御する第１の制御コマンドＣｍｄ（Ａ）が有効になる。即ち、図４では、メモリセレクト信号ＳＥ0がローレベルの場合には、信号ＣＤは第２の制御コマンドＣｍｄ（ｆ（Ａ））を示し、メモリセレクト信号ＳＥ1がローレベルの場合には、信号ＣＤは第１の制御コマンドＣｍｄ（Ａ）を示す。コマンドＢＰｃｇはバンクプリチャージコマンド、コマンドＡｃｔはアクティベートコマンド、コマンドＲｅａｄはリードコマンド、コマンドＷｒｉｔはライトコマンドである。尚、図４において「Ｎｏｐ」は「Ｎｏ  Ｏｐｅｒａｔｉｏｎ」の意味である。
【００３３】
又、図４において、信号ＡＤはカラムアドレス及びローアドレスである。信号ＡＤの「Ｃｘｙ」は、カラムアドレスＣ［ｘ，ｙ］を示す。信号ＢＳは、バンクセレクトである。ＳＤＲＡＭでは第１の制御コマンドＣｍｄ（Ａ）等により、コマンドとアドレスを１つの信号で転送するが、説明を分かりやすくするために、図４ではコマンドＢＰｃｇ、Ａｃｔ、Ｒｅａｄ、Ｗｒｉｔと、アドレスを分けて示している。尚、図４に示したタイミングチャートにおいて、常にバンクセレクト＝Ｂ０である。
【００３４】
図４のサイクルｃ２において、メモリセレクト信号ＳＥ1をローレベルにすると共にコマンドＢＰｃｇが入力され、メモリＭ1をプリチャージする。サイクルｃ３において、メモリセレクト信号ＳＥ0をローレベルにすると共にコマンドＢＰｃｇが入力され、メモリＭ0をプリチャージする。
【００３５】
サイクルｃ６において、メモリセレクト信号ＳＥ1をローレベルにすると共にコマンドＡｃｔが入力され、メモリＭ1のバンクＢ０及びローアドレスＲ０をアクティブにする。サイクルｃ７において、メモリセレクト信号ＳＥ0をローレベルにすると共にコマンドＡｃｔが入力され、メモリＭ0のバンクＢ０及びローアドレスＲ０をアクティブにする。
【００３６】
サイクルｃ８において、メモリセレクト信号ＳＥ1をローレベルにする。そして、リクエストＲｅｑ（Ａ［０，０］，１）に応じて、コマンドＲｅａｄが第１の制御コマンドＣｍｄ（Ａ［０，０］）としてメモリＭ1に入力する。その結果、サイクルｃ８において、メモリＭ1のカラムアドレスＣ［０，０］に格納されたデータの読み出し動作が開始される。図示を省略するが、サイクルｃ８から数サイクルのキャスレイテンシ後にデータＤ1（Ａ［０，０］）がメモリＭ1から読み出されて、データバッファＤＢ1に格納される。更に、サイクルｃ９において、メモリセレクト信号ＳＥ0をローレベルにする。そして、リクエストＲｅｑ（Ａ［０，０］，１）に応じて、コマンドＲｅａｄが第２の制御コマンドＣｍｄ（Ａ［１，０］）としてメモリＭ0に入力する。その結果、サイクルｃ９において、メモリＭ0のカラムアドレスＣ［１，０］に格納されたデータの読み出し動作が開始される。図示を省略するが、数サイクルのキャスレイテンシ後にデータＤ0（Ａ［１，０］）がメモリＭ０から読み出される。データＤ1（Ａ［０，０］）及びデータＤ0（Ａ［１，０］）は、データ列ＤＴとして、データ処理装置１０に転送される。
【００３７】
次いで、リクエストＲｅｑ（Ａ［０，１］，１）に応じて、サイクルｃ１０においてメモリＭ1からデータＤ1（Ａ［０，１］）が読み出され、サイクルｃ１１においてメモリＭ0からデータＤ0（Ａ［１，１］）が読み出される。
【００３８】
更に、リクエストＲｅｑ（Ａ［０，２］，１）に応じて、サイクルｃ１２においてメモリＭ1からデータＤ1（Ａ［０，２］）が読み出され、サイクルｃ１３においてメモリＭ0からデータＤ0（Ａ［１，２］）が読み出される。又、リクエストＲｅｑ（Ａ［０，３］，１）に応じて、サイクルｃ１４においてメモリＭ1からデータＤ1（Ａ［０，３］）が読み出され、サイクルｃ１５においてメモリＭ0からデータＤ0（Ａ［１，３］）が読み出される。
【００３９】
同様にして、サイクルｃ１６〜サイクルｃ２３において、リクエストＲｅｑ（Ａ［１，ｊ］，１）に応じて、メモリＭ0及びメモリＭ1からデータＤ0（Ａ［２，ｊ］）及びデータＤ1（Ａ［１，ｊ］）がそれぞれ読み出される。
【００４０】
以上に説明したように、図１に示した情報処理システムを用いて、図３にハッチングで示したデータをメモリＭ0〜Ｍ1から読み出すためには、８個のリクエストが必要であり、読み出されるデータ数は、データ処理装置１０が要求する１６個のデータである。つまり、データ処理装置１０が要求しないデータは読み出されない。図５に、図１に示した情報処理システムを用いて図３にハッチングで示したデータを読み出すために必要なリクエスト、及びリクエストによって読み出されるデータの表を示す。
【００４１】
一方、先行技術により図３にハッチングで示したデータをメモリＭ0〜Ｍ1から読み出す動作を図６のタイミングチャートに示す。図６に示したように、サイクルｃ１〜ｃ１３において、４個のリクエストＲｅｑ（Ａ［０，ｊ］）により、データＤ0（Ａ［０，ｊ］）及びデータＤ1（Ａ［０，ｊ］）がメモリＭ0〜Ｍ1からそれぞれ読み出される。同一サイクルにおいて、メモリＭ0〜Ｍ1が同一のアドレスによりアクセスされるため、メモリセレクト信号ＳＥはメモリＭ0〜Ｍ1で共通である。更に、サイクルｃ１５〜ｃ２１において、４個のリクエストＲｅｑ（Ａ［１，ｊ］）により、データＤ0（Ａ［１，ｊ］）及びデータＤ1（Ａ［１，ｊ］）がメモリＭ0〜Ｍ1からそれぞれ読み出される。サイクルｃ２３〜ｃ２９において、４個のリクエストＲｅｑ（Ａ［２，ｊ］）により、データＤ0（Ａ［２，ｊ］）及びデータＤ1（Ａ［２，ｊ］）がメモリＭ0〜Ｍ1からそれぞれ読み出される。
【００４２】
図７に、先行技術を用いて図３にハッチングで示したデータを読み出すために必要なリクエスト、及びリクエストによって読み出されるデータの表を示す。図７に示すように、図３にハッチングで示したデータをメモリＭ0〜Ｍ1から読み出すためには、１２個のリクエストにより図３に示したデータを座標毎に全て読み出す必要があり、読み出されるデータ数は２４個である。つまり、図３に示した情報処理システムを用いることにより、リクエスト数を４個、読み出すデータ数を８個減少させることができる。
【００４３】
図１に示した情報処理システムでは、メモリＭ0とメモリＭ1のアクセスされるアドレスタが異なる。そのため、コマンドＢＰｃｇやコマンドＡｃｔをメモリＭ0及びメモリＭ1にそれぞれ異なるサイクルで入力する必要があり、先行技術に比べてオーバーヘッドのサイクルが多い。しかし、図３に示した情報処理システムではアクセスするデータ数が減少するため、データのアクセスに必要なサイクル数を全体として削減することができる。図４に示すように、図１に示した情報処理システムによるデータ読み出し動作に必要なサイクル数は、２５サイクルである。一方、図６に示すように、先行技術によるデータ読み出し動作に必要なサイクル数は、３１サイクルである。
【００４４】
次に、図８に示す２次元データの処理に、図１に示す情報処理システムを適用する例を説明する。図８に示した２次元データは、ｙ方向に４個、ｘ方向に６個のデータが配置された２次元データである。又、座標（ｘ，ｙ）のデータは、メモリＭ0に格納されたデータＤ0（Ａ［ｘ，ｙ］）及びメモリＭ１に格納されたデータＤ1（Ａ［ｘ，ｙ］）を含む。以下では、データ処理装置１０が、図８にハッチングで示した”データＤ1（Ａ［０，ｊ］）及びデータＤ0（Ａ［２，ｊ］）”、”データＤ1（Ａ［１，ｊ］）及びデータＤ0（Ａ［３，ｊ］）”、”データＤ1（Ａ［２，ｊ］）及びデータＤ0（Ａ［４，ｊ］）”、”データＤ1（Ａ［３，ｊ］）及びデータＤ0（Ａ［５，ｊ］）”を要求する場合を説明する（ｊ＝０〜３）。そのため、データ処理装置１０は、リクエストＲｅｑ（Ａ［０，ｊ］，１）、リクエストＲｅｑ（Ａ［１，ｊ］，１）、リクエストＲｅｑ（Ａ［２，ｊ］，１）及びリクエストＲｅｑ（Ａ［３，ｊ］，１）をメモリ制御装置２０に順次出力する。切替番号Ｉは１である。つまり、メモリＭ1が第１のアドレスＡ［０，ｊ］にアクセスされる第１のメモリ群Ｇ１、メモリＭ0が第２のアドレスＡ［２，ｊ］にアクセスされる第２のメモリ群Ｇ２である。第２のアドレスＡ［２，ｊ］は、以下の式（２）により算出される。
【００４５】
ｆ（Ａ［ｘ，ｙ］）＝Ａ［ｘ＋２，ｙ］    ・・・・・（２）
データ処理装置１０がメモリ制御装置２０に出力するリクエストＲｅｑ（Ａ［０，ｊ］，１）に応じて、メモリ制御装置２０はメモリＭ1及びメモリＭ０からデータＤ1（Ａ［０，ｊ］）及びデータＤ0（Ａ［２，ｊ］）をそれぞれ読み出す。更に、リクエストＲｅｑ（Ａ［１，ｊ］，１）に応じて、メモリ制御装置２０はメモリＭ1及びメモリＭ０からデータＤ1（Ａ［１，ｊ］）及びデータＤ0（Ａ［３，ｊ］）をそれぞれ読み出す。リクエストＲｅｑ（Ａ［２，ｊ］，１）に応じて、メモリ制御装置２０はメモリＭ1及びメモリＭ０からデータＤ1（Ａ［２，ｊ］）及びデータＤ0（Ａ［４，ｊ］）をそれぞれ読み出す。リクエストＲｅｑ（Ａ［３，ｊ］，１）に応じて、メモリ制御装置２０はメモリＭ1及びメモリＭ０からデータＤ1（Ａ［３，ｊ］）及びデータＤ0（Ａ［５，ｊ］）をそれぞれ読み出す。
【００４６】
したがって、図８にハッチングで示したデータを読み出すために必要なリクエスト数は１６、読み出されるデータ数は３２である。一方、先行技術によれば、データ処理装置１０がリクエストＲｅｑ（Ａ［０，ｊ］）、Ｒｅｑ（Ａ［１，ｊ］）、Ｒｅｑ（Ａ［３，ｊ］）、Ｒｅｑ（Ａ［４，ｊ］）、Ｒｅｑ（Ａ［５，ｊ］）及びＲｅｑ（Ａ［６，ｊ］）をメモリ制御装置２０に出力することにより、図８に示したデータを座標毎に全て読み出す必要がある。つまり、先行技術では、必要なリクエスト数は２４、読み出されるデータ数は４８である。
【００４７】
例えば、図８に示した２次元データが、ｘ＝０、２、４の場合はインタレース画像のトップフィールドのデータであり、ｘ＝１、３、５の場合はインタレース画像のボトムフィールドのデータであるとする。そのような場合に、上記に説明した図１に示した情報処理システムによるデータ読み出し方法は有効である。
【００４８】
以上の説明では、メモリＭ1及びメモリＭ０に格納されたデータを読み出す例を示した。以下に、データが格納されるメモリが４個の例について説明する。
【００４９】
図９に示す２次元データの処理に、図１に示す情報処理システムを適用する例を説明する。図９に示した２次元データは、ｙ方向に４個、ｘ方向に３個のデータが配置された２次元データである。又、座標（ｘ，ｙ）のデータは、メモリＭ0に格納されたデータＤ0（Ａ［ｘ，ｙ］）、メモリＭ１に格納されたデータＤ1（Ａ［ｘ，ｙ］）、メモリＭ2に格納されたデータＤ2（Ａ［ｘ，ｙ］）及びメモリＭ3に格納されたデータＤ3（Ａ［ｘ，ｙ］）を含む。つまり、１つの座標のデータが分割されて４つのメモリＭ0〜Ｍ3に格納されている。
【００５０】
以下では、データ処理装置１０が、図９にハッチングで示した”データＤ3（Ａ［０，ｊ］）、データＤ0（Ａ［１，ｊ］）、データＤ1（Ａ［１，ｊ］）、データＤ2（Ａ［１，ｊ］）”、及び”データＤ3（Ａ［１，ｊ］）、データＤ0（Ａ［２，ｊ］）、データＤ1（Ａ［２，ｊ］）、データＤ2（Ａ［２，ｊ］）”を要求する場合を説明する（ｊ＝０〜３）。そのため、データ処理装置１０は、リクエストＲｅｑ（Ａ［０，ｊ］，３）、及びリクエストＲｅｑ（Ａ［１，ｊ］，３）をメモリ制御装置２０に順次出力する。切替番号Ｉは３である。つまり、メモリＭ3が第１のアドレスＡ［０，ｊ］にアクセスされる第１のメモリ群Ｇ１、メモリＭ0、メモリＭ1、及びメモリＭ2が第２のアドレスＡ［１，ｊ］にアクセスされる第２のメモリ群Ｇ２である。第２のアドレスＡ［１，ｊ］は、式（１）により算出される。
【００５１】
データ処理装置１０がメモリ制御装置２０に出力するリクエストＲｅｑ（Ａ［０，ｊ］，３）に応じて、メモリ制御装置２０はメモリＭ3からデータＤ3（Ａ［０，ｊ］）を読み出す。データＤ3（Ａ［０，ｊ］）は、データバッファＤＢ3に格納される。更に、メモリ制御装置２０はメモリＭ0、メモリＭ1及びメモリＭ2からデータＤ0（Ａ［１，ｊ］）、データＤ1（Ａ［１，ｊ］）及びデータＤ2（Ａ［１，ｊ］）をそれぞれ読み出す。データＤ0（Ａ［１，ｊ］）、データＤ1（Ａ［１，ｊ］）、データＤ2（Ａ［１，ｊ］）、及びデータバッファＤＢ3から読み出されたデータＤ3（Ａ［０，ｊ］）はコンカチネイト回路２３１に転送され、データ列ＤＴとしてデータ処理装置１０に転送される。
【００５２】
又、リクエストＲｅｑ（Ａ［１，ｊ］，３）に応じて、メモリ制御装置２０はメモリＭ3からデータＤ3（Ａ［１，ｊ］）を読み出す。更にメモリ制御装置２０は、メモリＭ0、メモリＭ1及びメモリＭ2からデータＤ0（Ａ［２，ｊ］）、データＤ1（Ａ［２，ｊ］）及びデータＤ2（Ａ［２，ｊ］）をそれぞれ読み出す。
【００５３】
したがって、図９にハッチングで示したデータを読み出すために必要なリクエスト数は８、読み出されるデータ数は３２である。一方、先行技術によれば、データ処理装置１０がリクエストＲｅｑ（Ａ［０，ｊ］）、Ｒｅｑ（Ａ［１，ｊ］）及びＲｅｑ（Ａ［２，ｊ］）をメモリ制御装置２０に出力することにより、図９に示したデータを座標毎に全て読み出す必要がある。つまり、先行技術では、必要なリクエスト数は１２、読み出されるデータ数は４８である。
【００５４】
以上に説明したように、本発明の実施の形態に係る情報処理システムでは、第１のアドレスから第２のアドレスを算出し、第１及び第２のアドレス毎に複数のメモリＭ0〜Ｍn-1にアクセスする。そのため、データ処理装置１０の１つのリクエストに応じて、複数のメモリＭ0〜Ｍn-1の異なるアドレスに格納されたデータにアクセスが可能である。その結果、データ処理装置１０が要求していないデータにアクセスする必要がないため、メモリＭ0〜Ｍn-1へのアクセスに要する時間の増大を抑制することができる。又、先行技術に対する、図１に示すシステム半導体装置１におけるピンの増加は、メモリＭ0〜Ｍn-1にそれぞれメモリセレクト信号Ｓ0〜ＳＩ-1を入力するために必要なピンのみである。そのため、メモリＭ0〜Ｍn-1にアドレスを入力するために複数のアドレス線を接続する場合に比べて、システム半導体装置１のピン数の増大を抑制することができる。  
（その他の実施の形態）
上記のように、本発明は実施の形態によって記載したが、この開示の一部をなす論述及び図面はこの発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施の形態、実施例及び運用技術が明らかとなろう。
【００５５】
既に述べた実施の形態の説明においては、第１のメモリ群Ｇ１への第１の制御コマンドＣｍｄ（Ａ）の出力と、第２のメモリ群Ｇ２への第２の制御コマンドＣｍｄ（ｆ（Ａ））の出力は、１サイクルずらして行われるが、２サイクル以上ずらしても良い。
【００５６】
このように、本発明はここでは記載していない様々な実施の形態等を含むことは勿論である。したがって、本発明の技術的範囲は上記の説明から妥当な特許請求の範囲に係る発明特定事項によってのみ定められるものである。
【図面の簡単な説明】
【００５７】
【図１】本発明の実施の形態に係る情報処理システムの構成を示す模式図である。
【図２】本発明の実施の形態に係る情報処理システムによるデータ処理方法を説明するための２次元データの例を示す模式図である。
【図３】本発明の実施の形態に係る情報処理システムによるデータ処理方法を説明するための２次元データの他の例を示す模式図である。
【図４】本発明の実施の形態に係る情報処理システムによるデータ処理を説明するためのタイミングチャートである。
【図５】本発明の実施の形態に係る情報処理システムによるデータ処理に必要なリクエスト、及びリクエストによって読み出されるデータの表である。
【図６】先行技術によるデータ処理を説明するためのタイミングチャートである。
【図７】先行技術によるデータ処理に必要なリクエスト、及びリクエストによって読み出されるデータの表である。
【図８】本発明の実施の形態に係る情報処理システムによるデータ処理方法を説明するための２次元データの他の例を示す模式図である。
【図９】本発明の実施の形態に係る情報処理システムによるデータ処理方法を説明するための２次元データの他の例を示す模式図である。
【符号の説明】
【００５８】
１…システム半導体装置
１０…データ処理装置
２０…メモリ制御装置
２１…アドレス算出回路
２２…制御部
２２１…メモリ選択回路
２２２…コマンド出力回路
２３…データ転送部
２３１…コンカチネイト回路
２３２…バッファ回路
ＤＢ0〜ＤＢn-1…データバッファ
ＳＥ0〜ＳＥn-1…セレクタ
Ｍ0〜Ｍn-1…メモリ
【図１】
2007034404.tif 000003
【図２】
2007034404.tif 000004
【図３】
2007034404.tif 000005
【図４】
2007034404.tif 000006
【図５】
2007034404.tif 000007
【図６】
2007034404.tif 000008
【図７】
2007034404.tif 000009
【図８】
2007034404.tif 000010
【図９】
2007034404.tif 000011