(57)【特許請求の範囲】
【請求項１】
第１のリクエストインターフェース回路と、第１のレスポンスインターフェース回路と、第１のメモリ回路とを有する第１の半導体装置を備え、
前記第１のリクエストインターフェース回路は第１のリードリクエストを受信し、
前記第１のレスポンスインターフェース回路は、前記第１のリードリクエストに対応した前記第１のメモリ回路へ保持されている第１の読み出しデータに関する第１の読み出しレイテンシ値を含む第１のレスポンスを送信し、
前記第１の読み出しレイテンシ値は、前記第１のレスポンスインターフェース回路から前記第１の読み出しデータが送信されるまでの時間であり、
前記第１の半導体装置は第１のレイテンシ値出力レジスタを有し、
前記第１のレイテンシ値出力レジスタへは、第１のレイテンシ値出力フラグ情報をプログラム可能であり、
前記第１のレイテンシ値出力フラグ情報により、
前記第１のレスポンスインターフェース回路は、前記第１のリードリクエストに対応した前記第１の読み出しデータに関する前記第１の読み出しレイテンシ値を計算するか、あるいは、計算しないかを、決定することを特徴とする半導体装置。
【請求項２】
請求項１において、
前記第１のレスポンスインターフェース回路は、前記第１のリードリクエストに対応した前記第１の読み出しデータに関する前記第１の読み出しレイテンシ値を含む前記第１のレスポンスを送信した後、前記第１のリードリクエストに対応した前記第１の読み出しデータを含む第２のレスポンスを送信する、ことを特徴とする半導体装置。
【請求項３】
請求項２において、
前記第１のリクエストインターフェース回路は、第２のリードリクエス卜を受信した後、前記第２のリードリクエストを送信し、
前記第１のレスポンスインターフェース回路は、前記第２のリードリクエストに対応した第２の読み出しデータに関する第２の読み出しレイテンシ値を含む第２のレスポンスを受信した後、前記第２の読み出しレイテンシ値を基に、第３の読み出しレイテンシ値を計算し、
前記第３の読み出しレイテンシ値は、前記第１のレスポンスインターフェース回路から前記第２の読み出しデータが送信されるまでの時間である
ことを特徴とする半導体装置。
【請求項４】
請求項３において、
前記第１のレスポンスインターフェース回路は前記第３の読み出しレイテンシ値を含む第３のレスポンスを送信する
ことを特徴とする半導体装置。
【請求項５】
請求項４において、
前記第１のレスポンスインターフェース回路は、前記第２の読み出しデータを受信し、前記第３のレスポンスを送信した後、前記第２の読み出しデータを含む第４のレスポンスを送信する
ことを特識とする半導体装量。
【請求項６】
請求項１において、
前記第１のリクエストインターフェース回路へ入力されたレイテンシ値出力レジスタ設定命令を含むリクエストによって、前記第１のレイテンシ値出力レジスタへ、前記第１のレイテンシ値出力フラグ情報を設定する
ことを特徴とする半導体装置。
【請求項７】
請求項６において、
前記第１の半導体装置は、情報処理装置と接続されており、前記情報処理装置が前記半導体装置へ、前記第１のレイテンシ値出力レジスタ設定命令を含むリクエストを送信することを特徴とする半導体装置。
【請求項８】
請求項１において、
前記第１の半導体装置と、前記第１の半導体装置へ接続される第２の半導体装置と、を有し、
前記第１の半導体装置は、
前記第１のリクエストインターフェース回路と、前記第１のレスポンスインターフェース回路と、前記第１のメモリ回路と、第１のＩＤレジスタを有し、
前記第２の半導体装置は、
第２のリクエストインターフェース回路と、第２のレスポンスインターフェース回路と、第２のメモリ回路と、第２のＩＤレジスタを有し、
前記第１のリクエストインターフェース回路は第５のリードリクエストを受信し、前記第１のレスポンスインターフェース回路は、前記第５のリードリクエストに対応した前記第１のメモリ回路へ保持されている第５の読み出しデータに関する第５の読み出しレイテンシ値と、第１のＩＤレジスタへ格納されている第１の識別情報を含む第５のレスポンスを送信し、
前記第５の読み出しレイテンシ値は、前記第１のレスポンスインターフェース回路から前記第５の読み出しデータが送信されるまでの時間であり、
前記第１のリクエストインターフェース回路は第６のリードリクエストを受信した後、前記第２の半導体装置の前記第２のリクエストインターフェース回路へ、前記第６のリードリクエストを送信し、
前記第２のリクエストインターフェース回路は前記第６のリードリクエストを受信し、前記第２のレスポンスインターフェース回路は、前記第６のリードリクエストに対応した前記第２のメモリ回路へ保持されている第６の読み出しデータに関する第６の読み出しレイテンシ値と、前記第２のＩＤレジスタヘ格納されている第２の識別情報を含む前記第６のレスポンスを送信し、
前記第６の読み出しレイテンシ値は、前記第２のレスポンスインターフェース回路から前記第６の読み出しデータが送信されるまでの時間であり、
前記第１の半導体装置は前記第１のレイテンシ値出力レジスタを有し、
前記第１のレイテンシ値出力レジスタへは、前記第１のレイテンシ値出力フラグ情報を、第１のＩＤレジスタへは、前記第１の識別情報をプログラム可能であり、
前記第１のレイテンシ値出力フラグ情報により、
前記第１のレスポンスインターフェース回路は、前記第５のリードリクエストに対応した前記第５の読み出しデータに関する前記第５の読み出しレイテンシ値を計算するか、あるいは、計算しないかを、決定し、
第２のレイテンシ値出力フラグ情報により、
前記第２のレスポンスインターフェース回路は、前記第６のリードリクエストに対応した前記第６の読み出しデータに関する前記第６の読み出しレイテンシ値を計算するか、あるいは、計算しないかを、決定する
ことを特徴とする半導体装置。
【請求項９】
請求項８において、
前記第１のレスポンスインターフェース回路は、前記第５のレスポンスを送信した後、前記第５のリードリクエストに対応した前記第１の識別情報と前記第５の読み出しデータを含む第７のレスポンスを送信する、ことを特徴とする半導体装置。
【請求項１０】
請求項８において、
前記第２のレスポンスインターフェース回路は、前記第６のレスポンスを送信した後、前記第６のリードリクエストに対応した前記第２の識別情報と前記第６の読み出しデータを含む第８のレスポンスを送信する、ことを特徴とする半導体装置。
【請求項１１】
請求項８において、
前記第１のレスポンスインターフェース回路は、前記第６のレスポンスを受信した後、前記第６の読み出しレイテンシ値を基に、第７の読み出しレイテンシ値を計算し、
前記７の読み出しレイテンシ値は、前記第１のレスポンスインターフェース回路から前記第６の読み出しデータが送信されるまでの時間であり、
前記第２の識別情報と、前記第７の読み出しレイテンシ値を含む第９のレスポンスを送信する
ことを特徴とする半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置の技術に関し、特に、不揮発性メモリと情報処理装置を含む情報処理システムおよびメモリモジュールの制御方法に適用して有効な技術に関する。
【背景技術】
【０００２】
従来、フラッシュメモリ(32M bit容量)とスタティックランダムアクセスメモリ(SRAM(4M bit容量))とがスタックチップでＦＢＧＡ（Fine pitch Ball Grid Array）型パッケージに一体封止された複合型半導体メモリがある。フラッシュメモリとSRAMとは、ＦＢＧＡ型パッケージの入出力電極に対してアドレス入力端子とデータ入出力端子が共通化されている。但し各々の制御端子はそれぞれ独立とされている（例えば、非特許文献１参照。）。
【０００３】
また、フラッシュメモリ(1GM bit容量)とダイナミックランダムアクセスメモリ(DRAM(５１２Mbit容量))とがスタックチップでＦＢＧＡ（Fine pitch Ball Grid Array）型パッケージに一体封止された複合型半導体メモリがある。フラッシュメモリとダイナミックランダムアクセスメモリとは、ＦＢＧＡ型パッケージの入出力電極に対してアドレス入力端子とデータ入出力端子、および各々の制御端子はそれぞれ独立とされている（例えば、非特許文献２参照。）。
【０００４】
また、フラッシュメモリチップとDRAMチップとがリードフレーム型パッケージに一体封止された複合型半導体メモリもある。この複合型半導体メモリはフラッシュメモリとDRAMとはパッケージの入出力電極に対してアドレス入力端子、データ入出力端子、及び制御端子が共通化されて入出力される（例えば、特許文献１の図１及び図１５、特許文献２参照）。
【０００５】
また、主記憶装置として扱われるフラッシュメモリとキャッシュメモリとコントローラとCPUから構成されるシステムもある（例えば、特許文献３の図１参照。）。
【０００６】
また、フラッシュメモリとＤＲＡＭと転送制御回路からなる半導体メモリもある（例えば、特許文献４の図２、特許文献５参照。）。
【０００７】
また、同一種類のメモリを複数個接続したメモリモジュールがある（特許文献６、特許文献７参照。）。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開平０５−２９９６１６号公報
【特許文献２】欧州特許出願公開第０５６６３０６号明細書
【特許文献３】特開平０７−１４６８２０号公報
【特許文献４】特開２００１−５７２３号公報
【特許文献５】特開２００２−３６６４２９号公報
【特許文献６】特開２００２−７３０８号公報
【特許文献７】特開２００4−１９２６１６号公報
【非特許文献】
【０００９】
【非特許文献１】"複合メモリ（スタックドCSP）フラッシュメモリ＋RAM データシート"、形名LRS1380、［online］、平成１３年１２月１０日、シャープ株式会社、［平成１４年８月２１日検索］、インターネット＜URL: http://www.sharp.co.jp/products/device/flash/cmlist.html＞
【非特許文献２】"MCPデータシート"、形名KBE00F005A-D411、［online］、平成１７年６月、三星電子株式会社、［平成１８年４月１０日検索］、<URL: 1177550776718_0.aspx?family_cd=MCP0>
【発明の概要】
【発明が解決しようとする課題】
【００１０】
本願発明者等は、本願に先立って携帯電話及びそれに使用されるプロセッサと、フラッシュメモリと、ランダムアクセスメモリから構成された情報処理システムについて検討を行った。
【００１１】
図５０に示すように携帯電話には情報処理装置PRCとメモリモジュールMCM１およびMCM2が使用されている。情報処理装置PRCは中央演算装置CPUとSRAMコントローラSRC、DRAMコントローラDRC及びNAND型フラッシュメモリコントローラNDCから構成される。メモリモジュールMCM１はNOR型フラッメモリNOR FLASHとSRAMから構成される。メモリモジュールMCM２はNAND型フラッメモリNAND FLASHとDRAMから構成される。情報処理装置PRCはメモリモジュールMCM１およびMCM２へアクセスを行い、データの読み出しおよび書き込みを行う。
【００１２】
電源投入後、情報処理装置PRCは、NOR型フラッシュメモリNOR FLASHに格納されているブートデータを読み出し、自らを立ち上げる。その後、情報処理装置PRCはNOR型フラッシュメモリNOR FLASHより必要に応じてアプリケーションプログラムを読みだし、中央演算装置CPUで実行する。SRAMおよびDRAMはワークメモリとして機能し、中央演算装置CPUでの演算結果などが保存される。
【００１３】
NAND型フラッシュメモリNAND FLASHには主に音楽データや動画像データが格納されており、情報処理装置PRCは必要に応じて、NAND型フラッシュメモリNAND FLASHより、音楽データや動画像データをDRAMへ読み出し、音楽や動画像の再生を行う。近年、携帯電話機に代表されるモバイル機器の多機能化はますます進展しており、多様なインターフェースを取り扱う必要が生じている。
【００１４】
図５０に示すように、現在、CPUは、異なるメモリデバイス毎にコントローラをもち、並列的にメモリと接続されている。さらに、携帯電話が取り扱うアプリケーション、データ、ワークエリアは携帯電話に付加される機能（音楽やゲーム等配信等）が増えるにつれて大きくなり、より大きな記憶容量のメモリが必要となっている。
【００１５】
このため、CPUとメモリを接続する信号配線数が増大し、基板コストの増加、ノイズの増加、信号スキューの増加を招き、携帯電話機の低コスト化、高速化、小型化には対応できないことが判明した。
【００１６】
そこで本発明の目的の一つは、情報処理装置とメモリ間および、メモリとメモリ間の信号配線数を低下させ、高速且つ低コストで、メモリ容量の拡張性を確保できる使い勝手の良い情報処理システムを提供することである。
【課題を解決するための手段】
【００１７】
本発明の代表的な手段を示せば以下の通りである。情報処理装置と、ダイナミックランダムアクセスメモリと、NOR型フラッシュメモリと、NAND型フラッシュメモリとを直列に接続し、一つの封止体に実装し、封止体に半導体チップとの配線を行うための電極と、封止体と封止体外部との接続を行うための電極を設ける。
【００１８】
情報処理装置から各メモリのダイナミックランダムアクセスメモリ、NOR型フラッシュメモリ、NAND型フラッシュメモリへの読み出し要求へ要求先の認識情報を含み、さらに、データの読み出しには、転送元の認識情報を含むと良い。
【００１９】
情報処理装置から各メモリのダイナミックランダムアクセスメモリ、NOR型フラッシュメモリ、NAND型フラッシュメモリへの読み出し要求へ要求番号の情報を含み、さらに、データの読み出しには、応答番号の情報を含むと良い。
【００２０】
情報処理装置から各メモリのダイナミックランダムアクセスメモリ、NOR型フラッシュメモリ、NAND型フラッシュメモリへの読み出し要求に対応する要求番号の情報を各メモリが生成すると良い。
【００２１】
各メモリのダイナミックランダムアクセスメモリ、NOR型フラッシュメモリ、NAND型フラッシュメモリからのデータ読み出しには、前もって読み出しデータのレイテンシ情報を出力すると良い。
【００２２】
情報処理装置から、各メモリのダイナミックランダムアクセスメモリ、NOR型フラッシュメモリ、NAND型フラッシュメモリが持つリクエストキューおよびレスポンスキューの予約要求を行うと良い。
【００２３】
情報処理装置への各メモリ間のデータ読み出し順序は、読み出した回数に応じて動的に決められることが良い。さらに、読み出し回数は、プログラムできることが良い。
【００２４】
電源投入後は、情報処理装置が、直列に接続している各々のメモリへ識別情報を決定する制御を行うと良い。
【００２５】
メモリへ入力した読み出し要求の時間順序には関係なく、遅い読み出しデータを待たずに、早い読み出しデータを送信できる制御にすると良い。
【００２６】
各メモリの読み出し要求を受け付ける回路と、読み出したデータを送信する回路の動作は独立に行える制御にすると良い。
【００２７】
書込み動作と読み出し動作を独立に行える制御にすると良い。
【００２８】
各メモリのクロック周波数は必要に応じて変更できる制御にすると良い。
【００２９】
前記情報処理装置はNAND型フラッシュメモリからデータを読み出し時は、エラー検出と訂正を行い、書きこみ時は、書きこみが正しく行われなかった不良アドレスに対して代替処理を行うと良い。
【発明の効果】
【００３０】
本発明によれば、高速且つ低コストで、メモリ容量の拡張性を確保できる使い勝手の良い情報処理システムを実現できる。
【図面の簡単な説明】
【００３１】
【図１】本発明を適用した情報処理システムの構成の一例を示す構成図である。
【図２】本発明を適用した情報処理システムの電源投入時の動作の一例を示す図である。
【図３】レジスタへのデータ設定動作の一例を示すフローチャートである。
【図４】レジスタへ設定されたデータの一例である。
【図５】レジスタへのデータ設定動作の一例を示すフローチャートである。
【図６】レジスタへ設定されたデータの一例である。
【図７】レイテンシ出力動作の一例を示すフローチャートである。
【図８】キューの予約動作の一例を示すフローチャートである。
【図９】本発明を適用した情報処理システムのアドレスマップの一例を示す説明図である。
【図１０】本発明を適用した情報処理システムを構成するメモリの構成の一例を示す図である。
【図１１】本発明を適用した情報処理システム内で発生したリクエストに対する動作の一例を示すフローチャートである。
【図１２】本発明を適用した情報処理システムでのレスポンスに対する動作の一例を示すフローチャートである。
【図１３】本発明を適用した情報処理システムでのレスポンスに対する動作の一例を示すフローチャートである。
【図１４】レスポンススケジュール回路の動作を示すフローチャートである。
【図１５】レスポンススケジュール回路のレスポンス優先順位の変更動作の一例を示す図である。
【図１６】本発明を適用した情報処理システムのクロック制御動作の一例を示すフローチャートである。
【図１７】本発明を適用した情報処理システムを構成するメモリのメモリ回路の構成の一例を示す図である。
【図１８】本発明を適用した情報処理システムを構成するメモリの構成の一例を示す図である。
【図１９】レスポンススケジュール回路のレスポンス優先順位の変更動作の一例を示す図である。
【図２０】本発明を適用した情報処理システムを構成するメモリのメモリ回路の構成の一例を示す図である。
【図２１】本発明を適用した情報処理システムを構成するメモリの構成の一例を示す図である。
【図２２】レスポンススケジュール回路のレスポンス優先順位の変更動作の一例を示す図である。
【図２３】本発明を適用した情報処理システムを構成するメモリのメモリ回路の構成の一例を示す図である。
【図２４】本発明を適用した情報処理システムでのエラーレスポンスに対する動作の一例を示すフローチャートである。
【図２５】本発明を適用した情報処理システムでの動作波形の一例を示す図である。
【図２６】本発明を適用した情報処理システムでの動作波形の一例を示す図である。
【図２７】本発明を適用した情報処理システムでの動作波形の一例を示す図である。
【図２８】本発明を適用した情報処理システムでの動作波形の一例を示す図である。
【図２９】本発明を適用した情報処理システムでの動作波形の一例を示す図である。
【図３０】本発明を適用した情報処理システムでの動作波形の一例を示す図である。
【図３１】本発明を適用した情報処理システムでの動作波形の一例を示す図である。
【図３２】本発明を適用した情報処理システムでの動作波形の一例を示す図である。
【図３３】本発明を適用した情報処理システムでの動作波形の一例を示す図である。
【図３４】本発明を適用した情報処理システムでの動作波形の一例を示す図である。
【図３５】本発明を適用した情報処理システムでの動作波形の一例を示す図である。
【図３６】本発明を適用した情報処理システムでの動作波形の一例を示す図である。
【図３７】本発明を適用した情報処理システムでの動作波形の一例を示す図である。
【図３８】本発明を適用した情報処理システムの構成図である。
【図３９】本発明を適用した情報処理システムの構成図である。
【図４０】本発明を適用した情報処理システムの構成図である。
【図４１】本発明を適用した情報処理システムの構成図である。
【図４２】本発明を適用した情報処理システムの構成図である。
【図４３】本発明によるメモリ情報処理システムの実装形態の一例を示す図である。
【図４４】本発明によるメモリ情報処理システムの実装形態の一例を示す図である。
【図４５】本発明によるメモリ情報処理システムの実装形態の一例を示す図である。
【図４６】本発明によるメモリ情報処理システムの実装形態の一例を示す図である。
【図４７】本発明によるメモリ情報処理システムの実装形態の一例を示す図である。
【図４８】本発明によるメモリ情報処理システムを利用した携帯電話の構成例を示すブロック図である。
【図４９】本発明によるメモリ情報処理システムを利用した携帯電話の構成例を示すブロック図である。
【図５０】携帯電話に利用されている従来のメモリ構成例を示すブロック図である。
【図５１】本発明を適用した情報処理システムの構成図である。
【発明を実施するための形態】
【００３２】
以下、本発明の実施の形態につき添付図面を参照しながら詳細に説明する。実施の形態において各ブロックを構成する回路素子は、特に制限されないが、公知のCMOS（相補型ＭＯＳトランジスタ）等の集積回路技術によって、単結晶シリコンのような１個の半導体基板上に形成される。
【００３３】
（第１の実施の形態）
図１は本発明を適用した第１の実施の形態である情報処理装置CPU_CHIPとメモリモジュールMEMとから構成される情報処理システムを示したものである。以下におのおのについ説明する。
【００３４】
情報処理装置CPU_CHIPは、情報処理回路CPU0、CPU1、CPU2、CPU3とメモリ制御回路CONから構成されている。メモリ制御回路CONは、リクエストキューRqQ、レスポンスキューRsQ、ブートデバイスIDレジスタBotID、最端デバイスIDレジスタEndID、リクエスト番号生成回路RqN、リクエスト番号生成レジスタRqNRを含む。CPU0、CPU1、CPU2、CPU3では、メモリ制御回路CONを通じて、メモリモジュールMEMより、OSやアプリケーションプログラムおよびアプリケーションプログラムにて処理を行うデータを読みだし実行する。
【００３５】
リクエストキューRqQ は、メモリモジュールMEMへ出力するためのCPU0、CPU1、CPU2およびCPU3で実行しているアプリケーションプログラムの結果などを格納する。レスポンスキューRsQは、CPU0、CPU1、CPU2およびCPU3へ出力するためのメモリモジュールMEMから読み出したアプリケーションプログラムなどを格納する。
【００３６】
メモリモジュールMEMは、メモリチップM0、M1、M2から構成される。また、情報処理装置CPU_CHIPとメモリチップM0、M1、M2は直列に接続されている。メモリチップM0は揮発性メモリであり、メモリチップM1およびM2は不揮発性メモリである。代表的な揮発性メモリには、メモリアレイにダイナミックランダムアクセスメモリセルを用いたDRAM及び疑似スタティックランダムアクセスメモリPSRAM、スタティックランダムアクセスメモリセルを用いたSRAM等があり、本発明には全ての揮発性メモリセルを利用することができる。本実施の形態ではメモリアレイにダイナミックランダムアクセスメモリセルを用いた例を説明する。
【００３７】
不揮発性メモリにはROM(リードオンリーメモリ)、EEPROM(エレクトリカリイレーサブルアンドプログラマブルROM)、フラッシュメモリ、相変化メモリ、マグネティック・ランダムアクセスメモリMRAM、抵抗スイッチング型ランダムアクセスメモリReRAM等を用いることができる。本実施の形態ではフラッシュメモリを例に説明する。
【００３８】
また、代表的なフラッシュメモリには、NOR型フラッシュメモリと、AND型フラッシュメモリと、NAND型フラッシュメモリと、ORNAND型フラッシュメモリがあり、本発明には全てのフラッシュメモリを利用することができる。本発明には全てのフラッシュメモリを利用することができる。本実施の形態では、NOR型フラッシュメモリとNAND型フラッシュメモリを例に説明する。
【００３９】
特に限定しないが、メモリチップM0として用いられる典型的な揮発性メモリは、ダイナミックメモリセルを利用したダイナミックランダムアクセスメモリであり、読み出し時間が15ns程度で、約1Gbitの記憶容量を持っている。特に限定しないがメモリチップM０は情報処理装置CPU_CHIPにてアプリケーションプログラムを実行するための一時的なワークメモリとして利用される。
【００４０】
特に限定しないが、メモリチップM１として用いられる典型的なフラッシュメモリは、NOR型フラッシュメモリセルを利用し、読み出し時間が80ns程度であり、約1Gbitの大きな記憶容量を持っている。特に限定しないが、メモリチップM１には情報処理装置CPU_CHIPにて実行するOS、ブートコード、ブートデバイスID値、最端デバイスID値およびアプリケーションプログラムなどが格納される。
【００４１】
特に限定しないが、メモリチップM2として用いられる典型的なフラッシュメモリはNAND型フラッシュメモリセルを利用し、読み出し時間が２５μｓ程度であり、約４Gbitの記憶容量を持っている。特に限定しないが、メモリチップM１には主に情報処理装置CPU_CHIPにて再生、録音および録画処理を行うために必要な音声データ、静止画像データや動画像データなどが格納される。
【００４２】
メモリチップM0は、初期設定回路INIT、リクエストインターフェース回路ReqIFと、レスポンスインターフェース回路ResIFと、メモリ回路MemVLから構成されている。リクエストインターフェース回路ReqIFは、リクエストクロック制御回路RqCkCおよび、リクエストキュー制御回路RqCTから構成される。レスポンスインターフェース回路ResIFは、レスポンスクロック制御回路RsCkCおよび、レスポンスキュー制御回路RqCTから構成される。メモリ回路MemVLは、特に限定しないが、揮発性メモリであり、ダイナミックランダムアクセスメモリセルを利用したダイナミックランダムアクセスメモリである。リクエストクロック制御回路RqCkCは、クロックドライバ回路Drv1およびクロック分周回路Div1から構成される。メモリチップM１は、初期設定回路INIT、リクエストインターフェース回路ReqIFと、レスポンスインターフェース回路ResIFと、メモリ回路MemNV1から構成されている。
【００４３】
リクエストインターフェース回路ReqIFは、リクエストクロック制御回路RqCkCおよび、リクエストキュー制御回路RqCTから構成される。
【００４４】
レスポンスインターフェース回路ResIFは、レスポンスクロック制御回路RsCkCおよび、レスポンスキュー制御回路RqCTから構成される。
【００４５】
特に限定しないが、各メモリチップのリクエストキュー制御回路RqCTには、主に複数のリクエストを格納できるリクエストキューReqQ、IDレジスタIDR、レイテンシ値出力設定レジスタLRG、レスポンス順序設定レジスタRRG、リクエスト番号設定回路RNBなどが装備され、レスポンスキュー制御回路RqCTには、主に複数のレスポンスを格納できるレスポンスキューResQ、レイテンシ計算回路LAおよびレスポンス番号テーブルTBなどが装備されている。
【００４６】
メモリチップM１は、初期設定回路INIT１、リクエストインターフェース回路ReqIFと、レスポンスインターフェース回路ResIFと、メモリ回路MemNV1から構成されている。
【００４７】
リクエストインターフェース回路ReqIFは、リクエストクロック制御回路RqCkCおよび、リクエストキュー制御回路RqCTから構成される。レスポンスインターフェース回路ResIFは、レスポンスクロック制御回路RsCkCおよび、レスポンスキュー制御回路RqCTから構成される。メモリ回路MemNV1は、特に限定しないが、不揮発性メモリであり、NOR型フラッシュメモリセルを利用したNOR型フラッシュメモリである。リクエストクロック制御回路RqCkCは、クロックドライバ回路Drv1およびクロック分周回路Div1から構成される。
【００４８】
リクエストインターフェース回路ReqIFおよびレスポンスインターフェース回路ResIFの構成は、メモリチップM0と同じである。
【００４９】
メモリチップM２は、初期設定回路INIT、リクエストインターフェース回路ReqIFと、レスポンスインターフェース回路ResIFと、メモリ回路MemNV２から構成されている。メモリチップM2は、直列的に接続しているメモリチップの中で、最も終端のメモリチップであることを示すため、特に限定しないがRqEn3、RsMux3、RqCk3を接地（gnd）している。
【００５０】
リクエストインターフェース回路ReqIFは、リクエストクロック制御回路RqCkCおよび、リクエストキュー制御回路RqCTから構成される。レスポンスインターフェース回路ResIFは、レスポンスクロック制御回路RsCkCおよび、レスポンスキュー制御回路RqCTから構成される。メモリ回路MemNV２は、特に限定しないが、不揮発性メモリであり、NAND型フラッシュメモリセルを利用したNAND型フラッシュメモリである。リクエストクロック制御回路RqCkCは、クロックドライバ回路Drv1およびクロック分周回路Div1から構成される。
【００５１】
リクエストインターフェース回路ReqIFおよびレスポンスインターフェース回路ResIFの構成は、メモリチップM0と同じである。
【００５２】
メモリチップM0、M1及びM2の初期設定回路INITは電源投入直後に、それぞれのメモリチップに対し初期設定を行う。メモリチップM0、M1及びM2のリクエストキュー制御回路RqCTには、それぞれのメモリチップのID番号を格納するIDレジスタが設けられている。電源投入直後に先ず、初期設定回路INITによって初期設定され、次に、情報処理装置CPU_CHIPによってメモリチップM0、M1、M2のID番号が決定され、それぞれのメモリチップ内のIDレジスタへID番号が格納される。
【００５３】
メモリチップM0、M1及びM2は、特に限定しないが、それぞれブートデバイス認識信号Bsigを持っており、このブートデバイス認識信号Bsigが接地（gnd）されている場合は、そのメモリチップが電源投入直後の動作を行うためのブートプログラムを格納しているブートデバイスであることを示す。ブートデバイス認識信号Bsigが電源(vdd)に接続されている場合は、そのメモリチップがブートデバイスではないことを示す。特に限定しないが、メモリチップM1がブートデバイスであり、メモリチップM0およびM2はブートデバイスに設定されていない。また、ブートデバイス認識信号Bsigによって、どのチップをブートデバイスにするかをプログラムすることができる。
【００５４】
RqCk0、RqCK1およびRqCk2は、リクエストクロックであり、RsCk0、RsCK1およびRsCk2はレスポンスクロックである。RqEN0、RqEN1およびRqEN2は、リクエストイネーブル信号であり、RsEN0、RsEN1およびRsEN2はレスポンスイネーブル信号である。RqMux0、RqMux1およびRqMux2は、リクエス信号であり、RsMux0、RsMux1およびRsMux2はレスポンス信号である。
【００５５】
メモリチップM0は、特に限定しないが、情報処理装置CPU_CHIPからのリクエストを受け付けることが可能であればRqEN0をHighにし、受け付けることが不可能であればRqEN0をLowにする。メモリチップM１は、特に限定しないが、メモリチップM0からのリクエストを受け付けることが可能であればRqEN1をHighにし、受け付けることが不可能であればRqEN1をLowにする。メモリチップM2は、特に限定しないが、メモリチップM1からのリクエストを受け付けることが可能であればRqEN2をHighにし、受け付けることが不可能であればRqEN2をLowにする。
【００５６】
RqMux0、RqMux1およびRqMux2は、リクエスト信号であり、これらリクエスト信号を通じて送信されるリクエストは、特に限定しないがID値、コマンド、アドレス、リクエスト番号及び書き込みデータなどが、多重化され、それぞれのリクエストクロックRqCk0、RqCk1およびRqCk2に同期して送信される。RsMux0、RsMux1およびRsMux2のレスポンス信号であり、これらレスポンス信号を通じて送信されるレスポンスは、特に限定しないがID値、レスポンス番号、読み出しデータのレイテンシ値あるいはレイテンシレベル値及び読み出したデータなどが、多重化され、それぞれのレスポンスクロックRsCk0、RsCk1、RsCk2に同期して送信される。
【００５７】
以下に本情報処理システムの動作を説明する。先ず、電源投入時および電源投入直後の動作について説明する。
【００５８】
＜電源投入直後の動作説明＞＜電源投入時の初期シーケンス＞
先ず、図１および図２を用いて電源投入時の本情報処理システムの動作の一例について説明する。
【００５９】
図２は、本情報処理システム装置の電源投入時の初期シーケンスを示す一例である。
【００６０】
T1の期間（PwON）で情報処理装置CPU_CHIPと、メモリモジュールMEM内のメモリチップM0、M1及びM2へ電源投入を行い、T2の期間（Reset）でリセットを行う。リセットの方法は特に限定しないが、それぞれの内蔵回路で自動的にリセットを行う方法でも、あるいは、外部にリセット端子を持ち、このリセット信号によってリセット動作を行うこととしても良い。
【００６１】
T2のリセット期間（Reset）の期間では、情報処理装置CPU_CHIP、メモリチップM0、M1及びM2の内部状態を初期設定する。以下に一例を示す。
【００６２】
情報処理装置CPU_CHIPはブートデバイスIDレジスタBotIDを１へ、最端デバイスIDレジスタEndIDを０へ初期設定する。
【００６３】
メモリチップM0は、自身の初期設定回路INITが、自身のリクエストキュー制御回路RqCT、レスポンスキュー制御回路RqCT、リクエスト制御回路RqCkc、レスポンスクロック制御回路RsCkC、クロック分周回路Div1、Div2およびメモリ回路MemVLを初期設定する。IDレジスタIDRが持つID値は0へ、ID有効ビットはLowへ初期設定される。
【００６４】
レイテンシ出力レジスタLRGが持つイテンシ値出力フラグ情報LRGFlag値およびID情報値は0へ初期設定される。
【００６５】
レスポンス順序設定レジスタRRGが持つリクエスト番号選択フラグRSELFlag値と、レスポンス順序フラグRRGFlag値と、ID情報値は０へ初期設定される。
【００６６】
レスポンスキュー制御回路RqCTが持つレスポンス調停回路のレスポンス優先順位に関して、メモリチップM0のレスポンス優先順位は１へ、メモリチップM1のレスポンス優先順位は2へ、メモリチップM2のレスポンス優先順位は3へ初期設定される。クロック分周回路Div1およびDiv2の分周比は１へ初期設定される。
【００６７】
メモリチップM1は、自身の初期設定回路INITが、自身のリクエストキュー制御回路RqCT、レスポンスキュー制御回路RqCT、リクエスト制御回路RqCkc、レスポンスクロック制御回路RsCkC、クロック分周回路Div1、Div2およびメモリ回路MemNV1を初期設定する。IDレジスタIDRが持つID値は0へ、ID有効ビットはLowへ初期設定される。レイテンシ出力レジスタLRGが持つイテンシ値出力フラグ情報LRGFlag値およびID情報値は0へ初期設定される。
【００６８】
レスポンス順序設定レジスタRRGが持つリクエスト番号選択フラグRSELFlag値と、レスポンス順序フラグRRGFlag値と、ID情報値は０へ初期設定される。メモリチップM1のレスポンスキュー制御回路RqCTが持つレスポンス調停回路のレスポンス優先順位に関して、メモリチップM1のレスポンス優先順位は1へ、メモリチップM2のレスポンス優先順位は２へ初期設定される。クロック分周回路Div1およびDiv2の分周比は１に設定される。
【００６９】
メモリチップM2は、自身の初期設定回路INITが、自身のリクエストキュー制御回路RqCT、レスポンスキュー制御回路RqCT、リクエスト制御回路RqCkc、レスポンスクロック制御回路RsCkC、クロック分周回路Div1、Div2およびメモリ回路MemNV2を初期設定する。IDレジスタIDRが持つID値は0へ、ID有効ビットはLowへ初期設定される。レイテンシ出力レジスタLRGが持つイテンシ値出力フラグ情報LRGFlag値およびID情報値は0へ初期設定される。
【００７０】
レスポンス順序設定レジスタRRGが持つリクエスト番号選択フラグRSELFlag値と、レスポンス順序フラグRRGFlag値と、ID情報値は０へ初期設定される。メモリチップM2のレスポンスキュー制御回路RqCTが持つレスポンス調停回路のレスポンス優先順位に関してメモリチップM2のレスポンス優先順位は1へ初期設定される。クロック分周回路Div1およびDiv2の分周比は１に設定される。
【００７１】
T2のリセット期間(Reset)が終了した後のT3の期間（LinkEn）では、情報処理装置CPU_CHIP、メモリチップM0,M1およびM2の信号の接続確認を行う。以下に一例を示す。
【００７２】
情報処理装置CPU_CHIPからリクエストクロックRqCk0がメモリチップM0へ入力され、メモリチップM0のクロックドライバDrv1を通じてクロック分周回路Div1およびクロック信号ck1としてクロック分周回路Div2へ出力される。クロック分周回路Div1へ入力したクロックは、リクエストクロックRqCk1を通じてメモリチップM1へ出力する。クロック分周回路Div1へ入力したクロックは、クロック信号ck2から出力され、また、リクエストクロックRqCk1を通じてメモリチップM2へ出力する。クロック分周回路Div2へ入力したクロックはクロック信号ck3から出力され、また、レスポンスクロックRsCk0を通じて情報処理装置CPU_CHIPへ出力する。メモリチップM1のクロックドライバDrv1へ入力されたクロックは、クロック分周回路Div1およびクロック信号ck1としてクロック分周回路Div2へ出力される。クロック分周回路Div1へ入力したクロックは、クロック信号ck2から出力され、また、リクエストクロックRqCk1を通じてメモリチップM2へ出力する。クロック分周回路Div2へ入力したクロックは、クロック信号ck3から出力され、また、レスポンスクロックRsCk1を通じてメモリチップM0へ出力する。レスポンスクロックRsCk1を通じてメモリチップM0のクロックドライバDrv2へ入力されたクロックはクロック信号ck4へ出力される。メモリチップM2のクロックドライバDrv1へ入力されたクロックはクロック分周回路Div1およびおよびクロック信号ck1としてクロック分周回路Div2へ出力される。クロック分周回路Div2へ入力したクロックはクロック信号ck3から出力され、またリクエストクロックRqCk1を通じてメモリチップM2へ出力する。レスポンスクロックRsCk2を通じてメモリチップM1のクロックドライバDrv2へ入力されたクロックはクロック信号ck4へ出力される。
【００７３】
次に、メモリチップM0は、ブートデバイス認識信号Bsigが電源vddに接続されているので、自分自身はブートデバイスではないことを認識する。メモリチップM1は、ブートデバイス認識信号Bsigが接地gndされているので、自分自身がブートデバイスであることを認識し、自らのメモリ回路MemNV1が保持しているブートデバイスID値１をIDレジスタへ設定し、ID有効ビットをHighにする。メモリチップM2は、ブートデバイス認識信号Bsigが電源に接続されているので、自分自身はブートデバイスではないことを認識する。さらに、メモリチップM2は、RqEn3、RsMux3、RqCk3を接地（gnd）していることによって、直列接続しているメモリチップの最も終端のメモリチップであることを認識し、リクエストイネーブル信号RqEn2をHighにする。
【００７４】
次に、メモリチップM1はリクエストイネーブル信号RqEn2がHighになったことを確認し、レスポンスイネーブル信号RsEn2及びリクエストイネーブル信号RqEn1をHighにする。次に、メモリチップM0はリクエストイネーブル信号RqEn1がHighになったことを確認し、レスポンスイネーブル信号RsEn1及びリクエストイネーブル信号RqEn0をHighにする。最後に、情報処理装置CPU_CHIPは、リクエストイネーブル信号RqEn0がHighになったことを確認し、各メモリチップの信号接続が確認されたことを知り、レスポンスイネーブル信号RsEn0をHighにする。これによって、情報処理装置CPU_CHIPおよびメモリチップM0、M1、M2が直列接続されていることが確認できる。
【００７５】
T3の期間が終了した後のT4の期間（BootRd）では情報処理装置CPU_CHIPがメモリチップM1よりブートデータを読み出す。以下に動作の一例を示す。
【００７６】
情報処理装置CPU_CHIPは、ブートデバイスIDレジスタBotIDの値１を読み出し、リクエスト信号RqMux0を通じて、ID値1、バンクアクティブ命令BA、バンクアドレスBK0、ページアドレスPage0を多重化したリクエストReqBAm1をクロック信号RqCK0に同期させ、メモリチップM0へ転送する。
【００７７】
続いて、リクエスト信号RqMux0を通じて、ID値1、読み出し命令RD、バンクアドレスBK0、カラムアドレスColを多重化したリクエストReqRDm1をクロック信号RqCK0に同期させ、メモリチップM0へ転送する。
【００７８】
メモリチップM0は、情報処理装置CPU_CHIPからのリクエストReqBAm1とReqRDm1を順に、自身のリクエストキュー制御回路RqCTへ格納する。
【００７９】
メモリチップM0は、リクエストReqBAm1およびReqRDm1に含まれるID値１と自身のIDレジスタの値２を順に比較する。比較結果は不一致のため、メモリチップM0はリクエストReqBAm1およびReqRD16m1を自身へのリクエストではないと判断し、リクエスト信号RqMux1を通じて、順にメモリチップM1へ転送する。
【００８０】
メモリチップM１は、メモリチップM0からのリクエストReqBAm1およびReqRDm1を自身のリクエストキュー制御回路RqCTへ格納する。
【００８１】
メモリチップM１のリクエストキュー制御回路RqCTはリクエストReqBAm１に含まれるID値1と自身のIDレジスタの値1を比較する。双方は一致しているため、リクエストキュー制御回路RqCTはリクエストReqBA１をメモリ回路MemVLへ送信する。メモリ回路MemVLは、リクエストReqBAm１にバンクアクティブ命令BA、バンクアドレスBK0、ページアドレスPage0によって、指定された１ページ分（特に限定しないが1kバイト分）のブートデータがバッファBUF0へ転送される。ブートデータには、ブートプログラムと最終端デバイスID番号３が含まれる。
【００８２】
メモリチップM１のリクエストキュー制御回路RqCTはリクエストReqRDm1に含まれるID値1と自身のIDレジスタの値１を比較する。双方は一致しているため、リクエストキュー制御回路RqCTは、リクエストReqRDm1をメモリ回路MemVLへ送信する。
【００８３】
メモリチップM1のメモリ回路MemNV1からリクエストReqRDm1に含まれる読み出し命令RD16、バンクアドレスBK０、カラムアドレスColによって、バッファBUF0内の最終端デバイスID番号３を含んだブートデータが読み出され、IDレジスタ値1を含めて、レスポンスキュー制御回路RsCTへレスポンスRsRDm1として転送される。
【００８４】
メモリチップM1のレスポンスキュー制御回路RsCTは、レスポンス信号RsMux0を通じて、レスポンスRsRDm1をメモリチップM0へ出力する。メモリチップM0は、レスポンスRsRDm1を受け取り情報処理装置CPU_CHIPへ出力する。
【００８５】
情報処理装置CPU_CHIPは、レスポンスResRDm1をレスポンスキューRsQへ格納する。レスポンスResBRD1に含まれるID値１により、ブートデータが、メモリチップM1から送信されたことを知ることができる。最終端デバイスID値３はメモリ制御回路CON内の最終端デバイスIDレジスタEndIDへ保存される。
【００８６】
T4の期間が終了した後のT5の期間（InitID）では、情報処理装置CPU_CHIPは、ブートプログラムによって自らを立ち上げ、次に各メモリチップM0、M1、M2へID番号の割り当てを行う。以下に動作の一例を示す。
【００８７】
情報処理装置CPU_CHIPはブートコードに従い、先ず、各メモリチップへのID番号付けを行う。情報処理装置CPU_CHIPは、リクエスト信号RqMux0を通じて、ID番号２とID設定命令をメモリチップM0へ転送する。メモリチップM0では、ID有効ビットがLowのため、まだID番号付けが行われていない。そこで、メモリチップM0は、ID番号２とID設定命令によってIDレジスタへID番号２を設定し、ID有効ビットをHighにする。ID有効ビットがHighとなることで、ID番号付けが完了したことを示す。メモリチップM0のID番号付けが完了すると、メモリチップM0はレスポンス信号RsMux0を通じて、メモリチップM0のID値２およびID番号付け完了情報を出力する。情報処理装置CPU_CHIPは、メモリチップM0のID値２およびID番号付け完了情報を受け取り、メモリチップM0のID番号付けが完了したことを知る。
【００８８】
次に、情報処理装置CPU_CHIPは、リクエスト信号RqMux0を通じてID番号３とID設定命令を多重化したリクエストReqID3をメモリチップM0へ転送する。メモリチップM０は自身のID番号２とリクエストReqID3に含まれるID番号３とを比較し、不一致のため、リクエストReqID3をメモリチップM１へ転送する。
【００８９】
メモリチップM1は自身のID番号1とリクエストReqID3に含まれるID番号３とを比較し、不一致のため、リクエストReqID3をメモリチップM２へ転送する。メモリチップM２では、ID有効ビットがLowのため、まだID番号付けが行われていない。そこで、メモリチップM２は、リクエストReqID3に含まれるID番号３とID設定命令によってメモリチップM2のIDレジスタへID番号３を設定し、ID有効ビットをHighにする。最終端のメモリチップM2のID番号付けが完了すると、メモリチップM2はレスポンス信号RqMux２を通じて、メモリチップM２のID値３およびID番号付け完了情報を多重化したレスポンスResID3をメモリチップM1へ出力する。メモリチップM1はレスポンス信号RqMux1を通じてレスポンスResID3をメモリチップM0へ出力する。メモリチップM0はレスポンス信号RqMux0を通じてレスポンスResID3を情報処理装置CPU_CHIPへ転送する。情報処理装置CPU_CHIPは、レスポンスResID3を受け取り、このレスポンスResID3に含まれるメモリチップM２のID値3およびID番号付け完了情報を受け取り、メモリチップM2のID番号付けが完了したことを知る。さらに、情報処理装置CPU_CHIPは、転送されたメモリチップM２のID値３と、メモリ制御回路CON内の最終端デバイスIDレジスタEndIDに設定されている最終端デバイスID値３とを比較し、双方が一致したことで、最終端のメモリチップまでID番号付けが行われたことを確認する。
【００９０】
T5の期間が終了した後のT6の期間（Idle）以降は、メモリモジュールMEMはアイドル状態となり、情報処理装置CPU_CHPからのリクエストを待つ状態となる。
【００９１】
このように、電源投入直後に、直列接続の確認動作を行うことで、確実にメモリ同士が接続されていることが確認できる。さらに、ブートデバイスおよび、最端のメモリチップを明示し、自動的に各メモリへのID付けが行われることで、容易に、必要な分だけメモリチップを接続し、メモリ容量を拡張することができる。
【００９２】
＜レジスタ設定 レイテンシ値出力設定レジスタLRG＞
電源投入時の初期シーケンスが終了した後、メモリチップM0、M1およびM2のレイテンシ値出力レジスタLREGへのデータ設定動作について図３を利用し説明する。
【００９３】
特に限定しないがレイテンシ値出力設定レジスタLRGでは、メモリチップM0、M1およびM2の、どのメモリチップからのレスポンスに関するレイテンシ値を出力すればいいのかを設定できる。
【００９４】
特に限定しないが、メモリチップM0、M1、M2のそれぞれのIDレジスタ値が2、１及び3に設定されている。
【００９５】
図3はメモリチップM0、M1およびM2のレイテンシ値出力レジスタLREGへデータを設定する動作の一例を示すフローチャートである。
【００９６】
特に限定しないが、メモリチップM0、M1、M2のそれぞれのIDレジスタ値が2、１及び3に設定されている。
【００９７】
先ず、メモリチップM0のレイテンシ値出力レジスタLREGへのデータ設定動作について説明する。
【００９８】
情報処理装置CPU_CHIPは、リクエスト信号RqMux0を通じて、ID値２、レイテンシ値出力レジスタ設定命令LRGSet、レイテンシ値出力レジスタLRGへの設定値LRGData0を多重化したリクエストReqLRGSet0をクロック信号RqCK0に同期させ、メモリチップM0へ転送する（図3 ：Step1）。レイテンシ出力レジスタLRGへの設定値LRGData0には、レイテンシ値出力フラグ情報LRGFlag値１と、ID値2と、ID値1と、ID値3が含まれる。
【００９９】
メモリチップM0のリクエストキュー制御回路RqCTはリクエストReqLRGSet0を格納する（図3：Step2）。
【０１００】
次に、メモリチップM0のリクエストキュー制御回路RqCTはリクエストReqLRGSet0に含まれるID値２と自身のIDレジスタの値2を比較する（図3：Step3）。
【０１０１】
双方は一致しているため、メモリチップM0のレイテンシ値出力レジスタLRGへ設定値LRGData0が設定される（図3：Step4）。
【０１０２】
次に、メモリチップM1のレイテンシ値出力レジスタLREGへのデータ設定動作について説明する。
【０１０３】
情報処理装置CPU_CHIPは、リクエスト信号RqMux0を通じて、ID値1、レイテンシ値出力レジスタ設定命令LRGSet、レイテンシ値出力レジスタLRGへの設定値LRGData1を多重化したリクエストReqLRGSet1をクロック信号RqCK0に同期させ、メモリチップM0へ転送する（図3：Step1）。設定値LRGData1には、レイテンシ値出力フラグ情報LRGFlag値１と、ID値2と、ID値1と、ID値3が含まれる。
【０１０４】
メモリチップM0のリクエストキュー制御回路RqCTはリクエストReqLRGSet1を格納する（図3：Step2）。
【０１０５】
次に、メモリチップM0のリクエストキュー制御回路RqCTはリクエストReqLRGSet1に含まれるID値1と自身のIDレジスタの値2を比較する（図3：Step3）。
【０１０６】
双方は不一致のため、メモリチップM0のリクエストキュー制御回路RqCTはリクエストReqLRGSet1をリクエストキュー回路RqQXOへ転送し、メモリチップM1へ送信する（（図3：Step5）。
【０１０７】
メモリチップM1のリクエストキュー制御回路RqCTはリクエストReqLRGSet1を格納する（図3：Step2）。
【０１０８】
次に、メモリチップM1のリクエストキュー制御回路RqCTはリクエストReqLRGSet1に含まれるID値1と自身のIDレジスタの値1を比較する（図3：Step3）。
【０１０９】
双方は一致しているため、メモリチップM1のレイテンシ値出力レジスタLRGへ設定値LRGData1が設定される（図3：Step4）。
【０１１０】
メモリチップM2のレイテンシ値出力レジスタLREGへのデータ設定動作はメモリチップM1と同様の動作で行われる。
【０１１１】
図4は、メモリチップM0、M1およびM2のレイテンシ値出力レジスタLREGの設定値の一例を示す。
【０１１２】
メモリチップM0のレイテンシ値出力レジスタM0_LREGの設定値によってメモリチップM0は、自身へのリクエストに対するレスポンスと、メモリチップM1へのリクエストと、メモリチップM2へのリクエストに関するレイテンシ値を出力する。
【０１１３】
メモリチップM1のレイテンシ値出力レジスタM1_LREGの設定値によってメモリチップM1は、自身へのリクエストに対するレスポンスと、メモリチップM2へのリクエストに関するレイテンシ値を出力する。
【０１１４】
メモリチップM2のレイテンシ値出力レジスタM2_LREGの設定値によってメモリチップM2は、自身へのリクエストに対するレスポンスに関するレイテンシ値を出力する。
【０１１５】
このように、データを出力する前に、そのデータが何時出力するかを示すレイテンシ値を出力することで、情報処理装置CPU_CHIPは、前もって、データの到着時間を知ることができる。そのため、情報処理装置CPU_CHIPはデータの到着前に必要な他の処理を行うことができ性能向上が図れる。
【０１１６】
＜レジスタ設定 レスポンス順序設定レジスタRRG＞
図5はメモリチップM0、M1およびM2のレスポンス順序設定レジスタRRGへデータを設定する動作の一例を示すフローチャートである。
【０１１７】
先ず、メモリチップM0のレスポンス順序設定レジスタRRGへのデータ設定動作について説明する。
【０１１８】
情報処理装置CPU_CHIPは、リクエスト信号RqMux0を通じて、ID値２、レスポンス順序設定レジスタ設定命令RRGSet、レスポンス順序設定レジスタRRGへの設定値RRGData0を多重化したリクエストReqRRGSet0をクロック信号RqCK0に同期させ、メモリチップM0へ転送する（図5：Step1）。設定値RRGData0には、リクエスト番号選択フラグ情報RSELFlag値と、レスポンス順序フラグRRGFlag情報と、ID値が含まれる。
【０１１９】
メモリチップM0のリクエストキュー制御回路RqCTはリクエストReqRRGSet0を格納する（図5：Step2）。
【０１２０】
次に、メモリチップM0のリクエストキュー制御回路RqCTはリクエストReqRRGSet0に含まれるID値２と自身のIDレジスタの値2を比較する（図5：Step3）。
【０１２１】
双方は一致しているため、メモリチップM0のレスポンス順序設定レジスタRRGへ設定値RRGData0が設定される。（図5：Step4）。
【０１２２】
次に、メモリチップM1のへのデータ設定動作について説明する。
【０１２３】
情報処理装置CPU_CHIPは、リクエスト信号RqMux0を通じて、ID値1、レスポンス順序設定レジスタ設定命令RRGSet、レスポンス順序設定レジスタRRGへの設定値RRGData1を多重化したリクエストReqRRGSet1をクロック信号RqCK0に同期させ、メモリチップM0へ転送する（図5：Step1）。
【０１２４】
設定値RRGData1には、リクエスト番号選択フラグ情報RSELFlag値１と、レスポンス順序フラグ情報RRGFlag値１と、ID値2が含まれる。
【０１２５】
メモリチップM0のリクエストキュー制御回路RqCTはリクエストReqRRGSet1を格納する（図5：Step2）。
【０１２６】
次に、メモリチップM0のリクエストキュー制御回路RqCTはリクエストReqRRGSet1に含まれるID値1と自身のIDレジスタの値2を比較する（図5：Step3）。
【０１２７】
双方は不一致のため、メモリチップM0のリクエストキュー制御回路RqCTはリクエストReqRRGSet1をリクエストキュー回路RqQXOへ転送し、メモリチップM1へ送信する（図5：Step5）。
【０１２８】
メモリチップM1のリクエストキュー制御回路RqCTはリクエストReqRRGSet1を格納する（図5：Step2）。
【０１２９】
次に、メモリチップM1のリクエストキュー制御回路RqCTはリクエストReqRRGSet1に含まれるID値1と自身のIDレジスタの値1を比較する（図5：Step3）。
【０１３０】
双方は一致しているため、メモリチップM1のレスポンス順序設定レジスタRRGへ設定値RRGData1が設定される（図5：Step4）。
【０１３１】
メモリチップM2のレスポンス順序設定レジスタRRG設定動作はメモリチップM1と同様の動作で行われる。
【０１３２】
図６(a)および(b)は、メモリチップM0、M1およびM2のレスポンス順序設定レジスタRRGの設定値の一例を示す。M0_RRGはメモリチップM0のレスポンス順序設定レジスタRRGである。M1_RRGはメモリチップM1のレスポンス順序設定レジスタRRGである。M2_RRGはメモリチップM2のレスポンス順序設定レジスタRRGである。
【０１３３】
特に限定しないがリクエスト番号選択フラグ情報RSELFlag値が0の場合は、情報処理装置CPU_CHIPからメモリモジュールMEMへ送信されるリクエストに含まれるリクエスト番号を利用しレスポンス順序を決め、また、リクエスト番号選択フラグ情報RSELFlag値が1の場合は、情報処理装置CPU_CHIPからメモリモジュールMEMへ送信されるリクエストに対応するリクエスト番号をメモリチップが生成し、その生成したリクエスト番号を利用し、レスポンス順序を決める。
【０１３４】
また、特に限定しないがレスポンス順序フラグ情報RRGFlag値が0の場合は、メモリモジュールMEMへ入力したリクエスト順には制限を受けないで、早く送信できるレスポンスから送信し、また、レスポンス順序フラグ情報RRGFlag値が1の場合は、メモリモジュールMEMへ入力したリクエスト順にレスポンスを送信する。
【０１３５】
図６(a)が示すレスポンス順序設定レジスタRRGの設定値により、メモリチップM0は、自身へのリクエストに関してはメモリチップM0自身が生成したリクエスト番号を利用し、入力したリクエスト順にレスポンスを送信する。また、メモリチップM0は、自身のレスポンスと、メモリチップM1あるいはM2からメモリチップM0 へ入力したレスポンスの間では、リクエストの入力順序に関わらず、早く送信できるレスポンは、遅いレスポンを待つことなく、情報処理装置CPU_CHIPへ送信できる。
【０１３６】
メモリチップM1は、自身へのリクエストに関してはメモリチップM1自身が生成したリクエスト番号を利用し、入力したリクエスト順にレスポンスを送信する。また、メモリチップM1は、自身のレスポンスと、メモリチップM2からメモリチップM1 へ入力したレスポンスの間では、リクエストの入力順序に関わらず、早く送信できるレスポンは、遅いレスポンを待つことなく、メモリチップM0へ送信できる。
【０１３７】
メモリチップM2は、自身へのリクエストに関してはメモリチップM2自身が生成したリクエスト番号を利用し、入力したリクエスト順にレスポンスを、メモリチップM1へ送信する。
【０１３８】
図６(b)が示すレスポンス順序設定レジスタRRGの設定値により、メモリチップM0は、自身へのリクエストに関しては、情報処理装置CPU_CHIPから送信されるリクエスト番号を利用し、リクエストの入力順序に関わらず、早く送信できるレスポンは、遅いレスポンを待つことなく情報処理装置CPU_CHIPへ送信される。また、メモリチップM0は、自身のレスポンスと、メモリチップM1あるいはM2からメモリチップM0 へ入力したレスポンスの間では、リクエストの入力順序に関わらず、早く送信できるレスポンは、遅いレスポンを待つことなく、情報処理装置CPU_CHIPへ送信できる。
【０１３９】
メモリチップM1は、自身へのリクエストに関しては、情報処理装置CPU_CHIPから送信されるリクエスト番号を利用し、リクエストの入力順序に関わらず、早く送信できるレスポンは、遅いレスポンを待つことなくモリチップM0へ送信される。また、メモリチップM1は、自身のレスポンスと、メモリチップM2からメモリチップM1 へ入力したレスポンスの間では、リクエストの入力順序に関わらず、早く送信できるレスポンは、遅いレスポンを待つことなくメモリチップM0へ送信できる。
【０１４０】
メモリチップM2は、自身へのリクエストに関しては、情報処理装置CPU_CHIPから送信されるリクエスト番号を利用し、リクエストの入力順序に関わらず、早く送信できるレスポンは、遅いレスポンを待つことなくメモリチップM1へ送信される。
【０１４１】
また、レスポンス順序設定レジスタRRGのレスポンス順序フラグ情報RRGFlagに対応したID値を複数設定することにより複数のメモリチップ間でのレスポンス順序を設定できることは言うまでもない。
【０１４２】
以上説明したように、レスポンス順序設定レジスタRRGによって、メモリチップ毎やチップ間で、入力したリクエスト順にレスポンスを送信するのか、あるいは入力したリクエスト順には制限を受けないで、早く送信できるレスポンスから送信するのかを設定できるため、扱うシステムに応じて情報処理装置CPU_CHIPが様々に要求するOS、ブートプログラムおよびアプリケーションプログラムなどのメモリチップへの配置方法に柔軟に対応しながら性能向上が図れる。
【０１４３】
＜通常動作の説明：レイテンシ値の出力＞ 
メモリモジュールMEMと情報処理装置CPU_CHIP間の、レイテンシ値の出力を含むデータ転送について、図1と図７を利用し説明する。
【０１４４】
特に限定しないが、メモリチップM0、M1、M2のそれぞれのIDレジスタ値が２、１及び３に設定されている。
【０１４５】
特に限定しないが、メモリチップM0、M1およびM2のレイテンシ値出力レジスタLRGは、図4で示した値に設定されており、レスポンス順序設定レジスタRRGは、図6(a)で示された値に設定されている。
【０１４６】
特に限定しないが、メモリチップM0、M1、M2のリクエストキュー制御回路RqCTにはリクエストキューは2つ存在し、リクエストがエントリされていない状態であり、メモリチップM0のレスポンスキュー制御回路RsCTにはレスポンスキューが2つ存在し、このレスポンスキューにはレスポンスがすでに1つエントリされている場合のデータ転送について説明する。
【０１４７】
特に限定しないが、1つのリクエストキューは１バイトのID値、１バイトのリクエスト番号、１バイトの命令、2バイトのアドレス、32バイトの書き込みデータを格納でき、1つのレスポンスキューは１バイトのID値、１バイトのリクエスト番号、32バイトの読み出しデータを格納できる。
【０１４８】
また、特に限定しないが、メモリチップM0、M1、M2のそれぞれのメモリ回路MemVL、MemNV1、MemNV2は８つのメモリバンクから構成されており、１つのメモリバンクには１つのセンスアンプ回路が装置されている。
【０１４９】
メモリチップM0は、自身のリクエストキューに情報処理装置CPU_CHIPからのリクエストがエントリされていないため、クエストイネーブル信号RqEn0をHighにし、リクエストを受け付けることができることを情報処理装置CPU_CHIPへ知らせる。
【０１５０】
情報処理装置CPU_CHIPは、リクエスト信号RqMux0を通じて、ID値２、バンクアクティブ命令BA、バンクアドレスBK0、ロウアドレスRow0を多重化したリクエストReqBAm01をクロック信号RqCK0に同期させ、メモリチップM0へ転送する。
【０１５１】
続いて、リクエスト信号RqMux0を通じて、ID値２、16バイト読み出し命令RD、バンクアドレスBK０、カラムアドレスCol31を多重化したリクエストReqRDm16をクロック信号RqCK0に同期させ、メモリチップM0へ転送する（ 図7：Step1 ）。
【０１５２】
メモリチップM0は、情報処理装置CPU_CHIPからのリクエストReqBAm0１とReqRDm16を順に、自身のリクエストキュー制御回路RqCTへ格納する（ 図7：Step2 ）。
【０１５３】
これで、リクエストキュー制御回路RqCT内の全てのリクエストキューはエントリされ、情報処理装置CPU_CHIPからの新たなリクエストを受け付けることができないため、リクエストイネーブル信号RqEn0をLowにする。
【０１５４】
リクエストイネーブル信号RqEn0がLowになったことで、情報処理装置CPU_CHIPは、メモリチップM0が、リクエストを受け付けられなくなったことを知ることができる。
【０１５５】
その後、リクエストキュー制御回路RqCTはリクエストReqBAm0１に含まれるID値２と自身のIDレジスタの値２を比較する。リクエストReqBA１に含まれるID値２とメモリチップM0のIDレジスタ値２は一致しているため、リクエストキュー制御回路RqCTはリクエストReqBA１をメモリ回路MemVLへ送信する。メモリ回路MemVLは、リクエストReqBAm0１にバンクアクティブ命令BA、バンクアドレスBK0、ロウアドレスRow０によって、バンク０内のロウ0に接続されている１ページ分（特に限定しないが8192ビット分）のメモリセルが活性化されセンスアンプへ転送される。
【０１５６】
リクエストReqBAm0１が処理されたことによって、リクエストキュー制御回路RqCT内のリクエストキューがひとつ分空いたため、メモリチップM0はリクエストイネーブル信号RqEn0をHighにし、新たなリクエストを受け付け可能であることを情報処理装置CPU_CHIPへ知らせる。
【０１５７】
次に、リクエストキュー制御回路RqCTはリクエストReqRDm16に含まれるID値２と自身のIDレジスタの値２を順に比較する（ 図7：Step3 ）。リクエストReqRDm16に含まれるID値２とメモリチップM0のIDレジスタ値２はまた一致しているため、リクエストキュー制御回路RqCTは、リクエストReqRDm16をメモリ回路MemVLへ送信する。
【０１５８】
また、リクエストキュー制御回路RqCTは、読み出しリクエストReqRDm16をメモリ回路MemVLへ送信する際は、レイテンシ値出力レジスタLRGの設定に従って、リクエストReqRDm04に含まれるID値２とレイテンシ値出力レジスタLRG内のレイテンシ値出力フラグ情報LRGFlag値１をレスポンスキュー制御回路RsCT内のレイテンシ計算回路LAへ送信する。
【０１５９】
レイテンシ計算回路LAは受け取ったレイテンシ値出力フラグ情報LRGFlag値が1であることを確認し（ 図7：Step4 ）、リクエストReqRDm16に対するデータがレスポンス信号RsMux0を通じて、情報処理装置CPU_CHIPへ出力されるまでのレイテンシ値LaRdを計算する（ 図7：Step5 ）。次にレスポンスキュー制御回路RsCTは、ID値2と計算したレイテンシ値LaRdを含んだレスポンスRsLaをレスポンス信号RsMux0を通じて、情報処理装置CPU_CHIPへ送信する図7：Step6 ）。
【０１６０】
もし、レイテンシ計算回路LAは、受け取ったレイテンシ値出力フラグ情報LRGFlag値が0の場合は、レイテンシの計算を実行せず終了する（ 図7：Step8 ）。
【０１６１】
情報処理装置CPU_CHIPのメモリ制御回路CONは、レスポンスRsLaを、レスポンスキューRsQへ受け取る。情報処理装置CPU_CHIPは、レスポンスキューRsQへ送信されたレスポンスRsLa に含まれるID値２およびレイテンシ値LaRdによって、リクエストRqRDm04に対応するデータが何時までに、メモリチップM0から送信されるかどうかをを前もって確認できる。
【０１６２】
次にメモリ回路MemVLからリクエストReqRDm16に含まれる16バイト読み出し命令RD16、バンクアドレスBK０、カラムアドレスCol31によって、メモリ回路MemVLのバンク０のセンスアンプに保持されているデータのなかで、カラムアドレスCol31を開始アドレスとした16 バイト分のデータが読み出され、IDレジスタ値２を含めて、レスポンスキュー制御回路RsCTへレスポンスResRDm16として転送される。
【０１６３】
レスポンスキュー制御回路RsCTは、レスポンス信号RsMux0を通じて、レスポンスRsRDm16を情報処理装置CPU_CHIPへ出力する。情報処理装置CPU_CHIPのメモリ制御回路CONはレスポンスRsRDm16を、レスポンスキューRsQへ受け取る。情報処理装置CPU_CHIPは、レスポンスキューRsQへ送信されたレスポンスRsRDm04に含まれるID値２によって、リクエストRqRDm16に対応するデータが正しくメモリチップM0から送信されたことを確認できる。
【０１６４】
レスポンスキュー制御回路RsCTでの、レイテンシの計算方法は、特に限定しないが、Tinitial + Sum(Tcycle)としてもよい。
【０１６５】
リクエストReqRDm16がメモリ回路MemVLへ送信されてから、所望のデータが読み出されレスポンスキュー制御回路RsCTへレスポンスResRDm16として入力されるまでの時間であり、特に限定しないが、３クロックサイクル程度である。
【０１６６】
Sum(Tcycle)はレスポンスキュー制御回路RsCTが装備しているレスポンスキューの内で、すでにレスポンスデータを保持しているレスポンスキューに関して、そのレスポンスデータすべてを出力するために必要なデータ転送クロックサイクル数Tcycleの総和である。
【０１６７】
レスポンスキュー制御回路RsCTが装備しているレスポンスキューの内で、すでに１つのレスポンスキューにレスポンスデータが保持されており、そのレスポンスデータのデータ転送クロックサイクル数を16とすると、リクエストReqRDm16に対する出力データのレイテンシ値LaRdは3＋16＝19サイクルとなる。
【０１６８】
ここでは、メモリチップM0が出力するレイテンシ値は、具体的なクロックサイクル数を例に説明したが、レイテンシ値はクロックサイクル数に対応したレベル値であってもよい。
【０１６９】
上記では、メモリチップM0でのデータの読み出しについて説明したが、メモリチップM1およびM2についても同様の動作を実行できることは言うまでもない。
【０１７０】
特に限定しないが、レスポンスキューRsQへ入力したデータは情報処理回路CPU0、CPU1、CPU2およびCPU3のいずれかでデータ処理が行われる。
【０１７１】
次に、情報処理装置CPU_CHIPとメモリチップM1とのデータ転送について説明する。
【０１７２】
特に限定しないが、メモリチップM0、M1、M2のリクエストキュー制御回路RqCTにはリクエストキューは2つ存在し、リクエストがエントリされていない状態である。また、メモリチップM0、M1、M2のレスポンスキュー制御回路RsCTにはレスポンスキューが2つ存在し、メモリチップM0およびM1のレスポンスキューにはレスポンスがすでに1つエントリされている場合のデータ転送について説明する。
【０１７３】
情報処理装置CPU_CHIPは、リクエスト信号RqMux0を通じて、ID値1、バンクアクティブ命令BA、バンクアドレスBK0、ページアドレスPage0を多重化したリクエストReqBAm1をクロック信号RqCK0に同期させ、メモリチップM0へ転送する。
【０１７４】
続いて、リクエスト信号RqMux0を通じて、ID値1、16バイト読み出し命令RD16、バンクアドレスBK0、カラムアドレスCol31を多重化したリクエストReqRD16m1をクロック信号RqCK0に同期させ、メモリチップM0へ転送する（ 図7：Step1 ）。
【０１７５】
メモリチップM0は、情報処理装置CPU_CHIPからのリクエストReqBAm1とReqRD16m1を順に、自身のリクエストキュー制御回路RqCTへ格納する（ 図7：Step2 ）。
【０１７６】
メモリチップM0は、リクエストReqBAm1およびReqRD16m1に含まれるID値１と自身のIDレジスタの値２を順に比較する（ 図7：Step3）。比較結果は不一致のため、メモリチップM０はリクエストReqBAm1およびReqRD16m1を自身へのリクエストではないと判断し、リクエスト信号RqMux1を通じて、順にメモリチップM1へ転送する（ 図7：Step7 ）。
【０１７７】
メモリチップM１は、メモリチップM0からのリクエストReqBAm1およびReqRD16m1を自身のリクエストキュー制御回路RqCTへ格納する（ 図7：Step2 ）。
【０１７８】
メモリチップM１のリクエストキュー制御回路RqCTはリクエストReqBAm１に含まれるID値1と自身のIDレジスタの値1を比較する（ 図7：Step3）。双方は一致しているため、リクエストキュー制御回路RqCTはリクエストReqBA１をメモリ回路MemVLへ送信する。メモリ回路MemVLは、リクエストReqBAm１にバンクアクティブ命令BA、バンクアドレスBK0、ページアドレスRow０によって、指定された１ページ分（特に限定しないが1kバイト分）のメモリセルが活性化されセンスアンプへ転送される。
【０１７９】
次に、メモリチップM１のリクエストキュー制御回路RqCTはリクエストReqRD16m1に含まれるID値1と自身のIDレジスタの値１を比較する。双方は一致しているため、リクエストキュー制御回路RqCTは、リクエストReqRDm16をメモリ回路MemVLへ送信する。
【０１８０】
また、メモリチップM１のリクエストキュー制御回路RqCTは、読み出しリクエストReqRD16m1をメモリ回路MemVLへ送信する際は、レイテンシ値出力レジスタLRGの設定に従って、リクエストReqRD16m1に含まれるID値1とレイテンシ値出力レジスタLRG内のレイテンシ値出力フラグ情報LRGFlag値１をレスポンスキュー制御回路RsCT内のレイテンシ計算回路LAへ送信する。
【０１８１】
レイテンシ計算回路LAは受け取ったレイテンシ値出力フラグ情報LRGFlag値が1であることを確認し（ 図7：Step4 ）、リクエストReqRD16m1に対するデータがレスポンス信号RsMux0を通じて、情報処理装置CPU_CHIPへ出力されるまでのレイテンシ値LaRd1を計算する（ 図7：Step5）。次にレスポンスキュー制御回路RsCTは、ID値1と計算したレイテンシ値LaRd1を含んだレスポンスRsLa1をレスポンス信号RsMux0を通じて、メモリチップM0へ送信する（ 図7：Step6）。
【０１８２】
レスポンスRsLa1を受け取ったメモリチップM0のレスポンスキュー制御回路RsCTはレスポンスRsLa１に含まれるレイテンシ値LaRd1を元に、情報処理装置CPU_CHIPへ出力されるまでのレイテンシ値LaRd2を計算し、レスポンスRsLa1に含まれるID値1と計算したレイテンシ値LaRd2を含んだレスポンスRsLa2をレスポンス信号RsMux0を通じて、情報処理装置CPU_CHIPへ送信する。
【０１８３】
情報処理装置CPU_CHIPのメモリ制御回路CONは、レスポンスRsLa2を、レスポンスキューRsQへ受け取る。情報処理装置CPU_CHIPは、レスポンスキューRsQへ送信されたレスポンスRsLa2に含まれるID値１およびレイテンシ値LaRd2によって、メモリチップM1から、いつまでにデータが、送信されるかどうかをを前もって確認できる。
【０１８４】
次にメモリチップM1のメモリ回路MemNV1からリクエストReqRD16m1に含まれる16バイト読み出し命令RD16、バンクアドレスBK０、カラムアドレスCol31によって、メモリ回路MemNV1のバンク０のセンスアンプに保持されているデータのなかで、カラムアドレスCol31を開始アドレスとした16 バイト分のデータが読み出され、IDレジスタ値1を含めて、レスポンスキュー制御回路RsCTへレスポンスRsRD16m1として転送される。
【０１８５】
メモリチップM1のレスポンスキュー制御回路RsCTは、レスポンス信号RsMux0を通じて、レスポンスRsRD16m1をメモリチップM0へ出力する。メモリチップM0は、レスポンスRsRD16m1を受け取り情報処理装置CPU_CHIPへ出力する。
【０１８６】
情報処理装置CPU_CHIPのメモリ制御回路CONはレスポンスRsRD16m1を、レスポンスキューRsQへ受け取る。情報処理装置CPU_CHIPは、レスポンスキューRsQへ送信されたレスポンスRsRD16m1に含まれるID値1によって、リクエストRqRD16 m1に対応するデータが正しくメモリチップM0から送信されたことを確認できる。
【０１８７】
メモリチップM1でのレスポンスキュー制御回路RsCTでの、レイテンシ値LaRd１の計算方法について説明する。特に限定しないが、レイテンシ値LaRd１はTinitial + Sum(Tcycle)としてもよい。
【０１８８】
リクエストReqNRD4m1がメモリ回路MemNV1へ送信されてから、所望のデータが読み出されレスポンスキュー制御回路RsCTへレスポンスRsRD16m1として入力されるまでの時間であり、特に限定しないが、80ns程度のため40クロックサイクル程度である。
【０１８９】
Sum(Tcycle)はレスポンスキュー制御回路RsCTが装備しているレスポンスキューの内で、すでにレスポンスデータを保持しているレスポンスキューに関して、そのレスポンスデータすべてを出力するために必要なデータ転送クロックサイクル数Tcycleの総和である。
【０１９０】
メモリチップM1のレスポンスキュー制御回路RsCTが装備しているレスポンスキューの内で、すでに１つのレスポンスキューにレスポンスデータが保持されており、そのレスポンスデータのデータ転送クロックサイクル数を16とすると、レスポンスRsRD16m1に対する出力データのレイテンシ値LaRd１は４０＋１６＝５６サイクルとなる。
【０１９１】
次に、メモリチップM1からレイテンシ値LaRd1を受け取った際の、メモリチップM0のレスポンスキュー制御回路RsCTでのレイテンシ値LaRd2の計算方法について説明する。特に限定しないが、レイテンシ値LaRd２は レイテンシ値LaRd1+ Sum(Tcycle)としてもよい。
【０１９２】
メモリチップM0のレスポンスキュー制御回路RsCTが装備しているレスポンスキューの内で、すでに１つのレスポンスキューにレスポンスデータが保持されており、そのレスポンスデータのデータ転送クロックサイクル数を8とすると、レイテンシ値LaRd2は56＋８＝62サイクルとなる。
【０１９３】
ここでは、メモリチップM0およびM1が出力するレイテンシ値は、具体的なクロックサイクル数を例に説明したが、レイテンシ値はレイテンシのサイクル数に対応したレベル値であってもよい。
【０１９４】
特に限定しないが、レスポンスキューRsQへ入力したデータは情報処理回路CPU0、CPU1、CPU2およびCPU3のいずれかでデータ処理が行われる。
【０１９５】
次に、情報処理装置CPU_CHIPとメモリチップM２とのデータ転送について説明する。特に限定しないがメモリチップM2はNAND型のフラッシュメモリセルを利用したNAND型フラッシュメモリである。NAND型フラッシュメモリは書き換えを繰り返すことによって、信頼性が低下し、書き込み時に書いたデータが、読み出し時には異なるデータとなったり、書き換え時にデータが書き込まれなかったりすることが稀にあるため、512Byte分のデータと、この512Byte分のデータにエラーが発生した際に、そのエラーを訂正するための16Byte分のECCコードが１ページ分(512Byte+16Byte)のデータとして管理されている。
【０１９６】
特に限定しないが、メモリチップM0、M1、M2のリクエストキュー制御回路RqCTにはリクエストキューは2つ存在し、リクエストがエントリされていない状態である。また、メモリチップM0、M1、M2のレスポンスキュー制御回路RsCTにはレスポンスキューが2つ存在し、メモリチップM0、M1およびM2のレスポンスキューにはレスポンスがすでに1つエントリされている場合のデータ転送について説明する。
【０１９７】
情報処理装置CPU_CHIPは、リクエスト信号RqMux0を通じて、ID値3、バンクアクティブ命令BA、バンクアドレスBK0、セクタアドレスSadd0を多重化したリクエストReqBAm2をクロック信号RqCK0に同期させ、メモリチップM0へ転送する。
【０１９８】
続いて、リクエスト信号RqMux0を通じて、ID値3、ページデータ読み出し命令RDp1、バンクアドレスBK0、ページアドレスPadd0を多重化したリクエストReqRDp1m2をクロック信号RqCK0に同期させ、メモリチップM0へ転送する（ 図7：Step1）。
【０１９９】
メモリチップM0は、情報処理装置CPU_CHIPからのリクエストReqBAm2とReqRDp1m2を順に、自身のリクエストキュー制御回路RqCTへ格納する（ 図7：Step2）。
【０２００】
メモリチップM0は、リクエストReqBAm2およびReqRDp1m2に含まれるID値3と自身のIDレジスタの値2を順に比較する（ 図7：Step3）。比較結果は不一致のため、メモリチップM1はリクエストReqBAm2およびReqRDp1m2を自身へのリクエストではないと判断し、リクエスト信号RqMux1を通じて、順にメモリチップM1へ転送する（ 図7：Step7）。
【０２０１】
メモリチップM1は、メモリチップM0からのリクエストReqBAm2およびReqRDp1m2を自身のリクエストキュー制御回路RqCTへ格納する（ 図7：Step2）。
【０２０２】
メモリチップM1は、リクエストReqBAm2およびReqRDp1m2に含まれるID値3と自身のIDレジスタの値3を順に比較する（ 図7：Step3）。比較結果は不一致のため、メモリチップM1はリクエストReqBAm2およびReqRDp1m2を自身へのリクエストではないと判断し、リクエスト信号RqMux1を通じて、順にメモリチップM2へ転送する（ 図7：Step7）。
【０２０３】
メモリチップM2のリクエストキュー制御回路RqCTはリクエストReqBAm2に含まれるID値3と自身のIDレジスタの値3を比較する（ 図7：Step3）。双方は一致しているため、リクエストキュー制御回路RqCTはリクエストReqBmA2をメモリ回路MemNV2へ送信する。
【０２０４】
メモリ回路MemNV2は、リクエストReqBAm2にバンクアクティブ命令BA、バンクアドレスBK0、セクタアドレスSadd0によって、指定された１セクタ分のデータをバッファBUF0へ転送する。特に限定しないが１セクタ分のデータは4ページ分（特に限定しないが2kバイト分）のデータからなる。特に限定しないが、１セクタ分のデータをバッファBUF0へ転送するために必要な時間は25usec程度である。
【０２０５】
次に、メモリチップM１のリクエストキュー制御回路RqCTはリクエストReqRDp1m2に含まれるID値3と自身のIDレジスタの値3を比較する。双方は一致しているため、メモリチップM１のリクエストキュー制御回路RqCTは、リクエストReqRDp1m2が自身へのリクエストであると判断する。
【０２０６】
メモリ回路MemNV2から１セクタ分のデータがバッファBUF0へ転送された後、メモリチップM１のリクエストキュー制御回路RqCTは、リクエストReqRDp1m2をメモリ回路MemNV2へ送信する。
【０２０７】
また、メモリチップM１のリクエストキュー制御回路RqCTは、読み出しリクエストReqRDp1m2をメモリ回路MemVLへ送信する際は、レイテンシ値出力レジスタLRGの設定に従って、リクエストReqRDp1m2に含まれるID値3とレイテンシ値出力レジスタLRG内のレイテンシ値出力フラグ情報LRGFlag値1をレスポンスキュー制御回路RsCT内のレイテンシ計算回路LAへ送信する。
【０２０８】
レイテンシ計算回路LAは、受け取ったレイテンシ値出力フラグ情報LRGFlag値が1であることを確認し（ 図7：Step4 ）、リクエストReqRDp1m2に対するデータがレスポンス信号RsMux2を通じて、メモリチップM1へ出力されるまでのレイテンシ値LaRdm2を計算する（ 図7：Step5 ）。次にレスポンスキュー制御回路RsCTは、ID値3と計算したレイテンシ値LaRdm2を含んだレスポンスRsLam2をレスポンス信号RsMux2を通じて、メモリチップM1へ送信する（ 図7：Step6 ）。
【０２０９】
レスポンスRsLam2を受け取ったメモリチップM1のレスポンスキュー制御回路RsCTはレスポンスRsLam2に含まれるレイテンシ値LaRdm2を元に、メモリチップM0へ出力されるまでのレイテンシ値LaRdm21を計算し、レスポンスRsLam2に含まれるID値3 と計算したレイテンシ値LaRdm21を含んだレスポンスRsLam21をレスポンス信号RsMux0を通じて、メモリチップM0へ送信する。
【０２１０】
レスポンスRsLam21を受け取ったメモリチップM0のレスポンスキュー制御回路RsCTはレスポンスRsLam21に含まれるレイテンシ値LaRdm21を元に、情報処理装置CPU_CHIPへ出力されるまでのレイテンシ値LaRdm210を計算し、レスポンスRsLam21に含まれるID値3と計算したレイテンシ値LaRdm210を含んだレスポンスRsLam210をレスポンス信号RsMux0を通じて、情報処理装置CPU_CHIPへ送信する。
【０２１１】
情報処理装置CPU_CHIPのメモリ制御回路CONは、レスポンスRsLam210を、レスポンスキューRsQへ受け取る。情報処理装置CPU_CHIPは、レスポンスキューRsQへ送信されたレスポンスRsLa2に含まれるID値１およびレイテンシ値LaRdm210によって、メモリチップM2から、いつまでにデータが、送信されるかどうかをを前もって確認できる。
【０２１２】
レスポンスキュー制御回路RsCTは、データレジスタDREG0へ転送されたデータの中からリクエスにReqRDp1m2に含まれる1ページ読み出し命令RDp1、バンクアドレスBK0およびページアドレスPadd0によって指定された1ページ（512Byte+16Byte）分のデータを、32Byte単位で、IDレジスタ値3を含めて、レスポンスResNDRDp1m2-0〜レスポンスResNDRDp1m2-7として順に読み出し、メモリチップM1へ転送する。最後に、ページアドレス1内の16Byte分のECCコードを読み出し、IDレジスタ値3を含めてレスポンスResNDRDp1m2ECCとして、レスポンス信号RsMux2を通じてM1へ転送する。データレジスタDREG0内のデータからレスポンスキューへ読み出すまでの時間は特に限定しないが、50ns程度である。
【０２１３】
レスポンスResNDRDp1m2-0、ResNDRDp1m2-1、ResNDRDp1m2-2、ResNDRDp1m2-3、ResNDRDp1m2-4、ResNDRDp1m2-5、ResNDRDp1m2-6、レスポンスResNDRDp1m2-7及び、レスポンスResNDRDp1m2ECCは、順にメモリチップM1へ転送された後、レスポンス信号RsMux1通じてメモリチップM0へ転送され、さらに、レスポンス信号RsMux0を通じて、情報処理装置CPU_CHIPへ転送される。
【０２１４】
情報処理装置CPU_CHIPのメモリ制御回路CONは順に、レスポンスResNDRDp1m2-0、ResNDRDp1m2-1、ResNDRDp1m2-2、ResNDRDp1m2-3、ResNDRDp1m2-4、ResNDRDp1m2-5、ResNDRDp1m2-6、レスポンスResNDRDp1m2-7及び、レスポンスResNDRDp1m2ECCを、レスポンスキューRsQへ受け取る。情報処理装置CPU_CHIPは、レスポンスキューRsQが送信されたこれらレスポンスに含まれるID値２によって、これらレスポンスがメモリチップM2から送信されたことを確認できる。
【０２１５】
情報処理装置CPU_CHIPは、メモリチップM2から送信されたデータに対し、情報処理回路CPU0、CPU1、CPU2、CPU3のいずれかにて、ECCコードを利用しエラー検出を行う。エラーがなければ、そのデータに対し情報処理回路CPU0、CPU1、CPU2、CPU3のいずれかがデータ処理を行う。エラーがあれば情報処理回路CPU0、CPU1、CPU2、CPU3のいずれかにてエラー訂正を行った後、エラー訂正が行われたデータに対し情報処理回路CPU0、CPU1、CPU2、CPU3のいずれかデータ処理を行う。
【０２１６】
メモリチップM2でのレスポンスキュー制御回路RsCTでの、レイテンシ値LaRdm2の計算方法について説明する。特に限定しないが、レイテンシ値LaRdm2はTinitial + Sum(Tcycle)としてもよい。
【０２１７】
リクエストReqRDp1m2がメモリ回路MemNV1へ送信されてから、所望のデータがデータレジスタDREG0から読み出され、レスポンスキュー制御回路RsCTへレスポンスResNDRDp1m2-0として入力されるまでの時間であり、特に限定しないが、50ns程度のため25クロックサイクル程度である。
【０２１８】
Sum(Tcycle)はレスポンスキュー制御回路RsCTが装備しているレスポンスキューの内で、すでにレスポンスデータを保持しているレスポンスキューに関して、そのレスポンスデータすべてを出力するために必要なデータ転送クロックサイクル数Tcycleの総和である。
【０２１９】
メモリチップM2のレスポンスキュー制御回路RsCTが装備しているレスポンスキューの内で、すでに1つのレスポンスキューにレスポンスデータが保持されており、そのレスポンスデータのデータ転送クロックサイクル数を16とすると、レスポンスResNDRDp1m2-0に対する出力データのレイテンシ値LaRdm2は25＋16＝ 41サイクルとなる。
【０２２０】
メモリチップM1でのレスポンスキュー制御回路RsCTでの、レイテンシ値LaRdm21の計算方法について説明する。特に限定しないが、レイテンシ値LaRdm21はLaRdm2 + Sum(Tcycle)としてもよい。
【０２２１】
Sum(Tcycle)はレスポンスキュー制御回路RsCTが装備しているレスポンスキューの内で、すでにレスポンスデータを保持しているレスポンスキューに関して、そのレスポンスデータすべてを出力するために必要なデータ転送クロックサイクル数Tcycleの総和である。
【０２２２】
メモリチップM1のレスポンスキュー制御回路RsCTが装備しているレスポンスキューの内で、すでに3つのレスポンスキューにレスポンスデータが保持されており、そのレスポンスデータのデータ転送クロックサイクル数を16×3とすると、レイテンシ値LaRdm21は41+48＝89サイクルとなる。
【０２２３】
次に、メモリチップM1からレイテンシ値LaRdm21を受け取った際の、メモリチップM0のレスポンスキュー制御回路RsCTでのレイテンシ値LaRdm210の計算方法について説明する。特に限定しないが、レイテンシ値LaRdm210は レイテンシ値LaRdm21+ Sum(Tcycle)としてもよい。
【０２２４】
Sum(Tcycle)はレスポンスキュー制御回路RsCTが装備しているレスポンスキューの内で、すでにレスポンスデータを保持しているレスポンスキューに関して、そのレスポンスデータすべてを出力するために必要なデータ転送クロックサイクル数Tcycleの総和である。
【０２２５】
メモリチップM0のレスポンスキュー制御回路RsCTが装備しているレスポンスキューの内で、すでに3つのレスポンスキューにレスポンスデータが保持されており、そのレスポンスデータのデータ転送クロックサイクル数を16×3とすると、レイテンシ値LaRdm210は89+48＝137サイクルとなる。
【０２２６】
ここでは、メモリチップM0、M1およびM2が出力するレイテンシ値は、具体的なクロックサイクル数を例に説明したが、レイテンシ値はレイテンシのサイクル数に対応したレベル値であってもよい。
【０２２７】
上記では、メモリチップM2でのデータの読み出しについて説明したが、メモリチップM0およびM1についても同様の動作を実行できることは言うまでもない。
【０２２８】
特に限定しないが、レスポンスキューRsQへ入力したデータは情報処理回路CPU0、CPU1、CPU2およびCPU3のいずれかでデータ処理が行われる。
【０２２９】
以上説明したように、情報処理装置CPU_CHIPからメモリモジュールMEMへの読み出しリクエストに対するレスポンスのレイテンシを、このレスポンスがメモリモジュールMEMから情報処理装置CPU_CHIPへ出力される前に、あらかじめメモリモジュールMEMから情報処理装置CPU_CHIPへ送信することで、情報処理装置CPU_CHIPは前もって、データの到着時刻を知ることができ、データ到着前にどの処理をどこまで行うかについて柔軟に対応でき、処理性能の向上が図れる。
【０２３０】
＜通常動作の説明：キューの予約＞
情報処理装置CPU_CHIPが実行するアプリケーションプログラムによっては、そのアプリケーションプログラムの実行中に、読み出しデータの最大レイテンシの保証が必要な場合がある。この読み出しデータの最大レイテンシを保証するためのリクエストキューおよびレスポンスキューの予約方法について図1と図8を利用し説明する。
【０２３１】
メモリモジュールMEM内のメモリM0、M1およびM2が装備しているリクエストキューおよびレスポンスキューの中で空き状態にあるキューに対する予約方法の一例について説明する。
【０２３２】
特に限定しないが、メモリチップM1へのリクエストおよびレスポンスが優先的かつ円滑に処理されるために行うリクエストキューおよびレスポンスキューの予約方法について説明する。
【０２３３】
特に限定しないが、メモリチップM0、M1、M2のそれぞれのIDレジスタ値が２、１及び３に設定されている。
【０２３４】
先ず、情報処理装置CPU_CHIPは、自身のレスポンスキューRsQにあるレスポンスキューの中でメモリチップM1から開始されるレスポンスを専用に格納するための空き状態にあるレスポンスキューを、特に限定しないが、１つだけ予約する。もし空き状態のレスポンスキューが無ければ、空き状態のレスポンスキューができるまで待つ。
【０２３５】
その後、情報処理装置CPU_CHIPは、キューを予約するためリクエスト信号RqMux0を通じて、ID値１、キュー予約命令QRv、予約するキューの数QRvN値1を多重化したリクエストReqNQRvをメモリチップM0へ転送する（ 図8：Step1 ）。
【０２３６】
メモリチップM0は、リクエストReqNQRvを自身のリクエストキュー制御回路RqCTへ格納する（ 図8：Step2 ）。
【０２３７】
その後、メモリチップM0のリクエストキュー制御回路RqCTはリクエストReqNQRvに含まれるID値1と自身のIDレジスタの値2を比較する（ 図8：Step3）。双方は不一致のため、メモリチップM0のリクエストキュー制御回路RqCTは、リクエストReqNQRvに含まれるID値１、キュー予約命令QRv、およびQRvN値1よって、メモリチップM1へのリクエストを専用に格納するための空き状態にあるリクエストキューを１つだけ予約する。もし空き状態のリクエストキューが無ければ、空き状態のリクエストキューができるまで待ち、予約を行う（ 図8：Step7）。
【０２３８】
さらに、リクエストキュー制御回路RqCTは、リクエストReqNQRvのレスポンスキュー制御回路RsCへ転送する。
【０２３９】
メモリチップM0のレスポンスキュー制御回路RsCTは、リクエストReqNQRvに含まれるID値１、キュー予約命令QRv、およびQRvN値1よって、メモリチップM0へ入力されるメモリチップM1からの読み出しデータを含んだレスポンスを専用に格納するための空き状態にあるレスポンスキューを１つだけ予約する。もし空き状態のレスポンスキューが無ければ、空き状態のレスポンスキューができるまで待ち、予約を行う（ 図8：Step8）。
【０２４０】
メモリチップM0は、空き状態のリクエストキューおよびレスポンスキューの予約を完了した後、リクエストReqNQRvに含まれるID値１よって、リクエストReqNQRvをリクエスト信号RqMux1を通じて、メモリチップM1へ転送する（ 図8：Step9 ）。
【０２４１】
メモリチップM1は、リクエストReqNQRvを自身のリクエストキュー制御回路RqCTへ格納する（ 図8：Step2 ）。その後、メモリチップM1のリクエストキュー制御回路RqCTはリクエストReqNQRvに含まれるID値1と自身のIDレジスタの値1を比較する（ 図8：Step3）。双方は一致するため、メモリチップM1のリクエストキュー制御回路RqCTは、リクエストReqNQRvに含まれるID値１、キュー予約命令QRv、およびQRvN値1よって、メモリチップM1へのリクエストを専門に格納するための空き状態にあるリクエストキューを１つだけ予約する。もし空き状態のリクエストキューが無ければ、空き状態のリクエストキューができるまで待ち、予約を行う（ 図8：Step4 ）。
【０２４２】
さらに、リクエストキュー制御回路RqCTは、リクエストReqNQRvのレスポンスキュー制御回路RsCへ転送する。
【０２４３】
メモリチップM1のレスポンスキュー制御回路RsCTは、リクエストReqNQRvに含まれるID値１、キュー予約命令QRv、およびQRvN値1よって、メモリチップM1からのレスポンスを専門に格納するための空き状態にあるレスポンスキューを１つだけ予約する。もし空き状態のレスポンスキューが無ければ、空き状態のレスポンスキューができるまで待ち、予約を行う（ 図8：Step5 ）。
【０２４４】
メモリチップM１は、空き状態のリクエストキューおよびレスポンスキューの予約を完了した後、予約完了信号RvFlgを、レスポンス信号RsMux1を通じて、メモリチップM0へ転送する（ 図8：Step6 ）。
【０２４５】
メモリチップM0は、受け取った予約完了信号RvFlgをレスポンス信号RsMux0を通じて、情報処理装置CPU_CHIPへ転送する。
【０２４６】
情報処理装置CPU_CHIPは、予約完了信号RvFlgを受け取り、リクエストReqNQRvによるキューの予約が完了したこと知ることができる。
【０２４７】
キューの予約が完了した後、情報処理装置CPU_CHIPが、メモリチップM1へのデータ読み出しリクエストを行った場合の動作について説明する。
【０２４８】
情報処理装置CPU_CHIPは、リクエスト信号RqMux0を通じて、ID値１、１６バイトデータ読み出し命令NRD16、アドレスAdd63を多重化したリクエストReqNRD16m1をメモリチップM0へ転送する。
【０２４９】
メモリチップM0では、メモリチップM1へのリクエストを受け取るための空き状態のリクエストキューがすでに予約されているため、リクエストReqNRD16m1をこの予約されたリクエストキューへ格納する。次にメモリチップM0はリクエストReqNRD16m1に含まれるID値１と自身のIDレジスタの値２を比較する。結果は不一致のため、リクエストReqNRD16m1は、リクエスト信号RqMux1を通じて、メモリチップM1へ転送される。
【０２５０】
メモリチップM1では、メモリチップM1へのリクエストを受け取るための空き状態にあるリクエストキューがすでに予約されているため、リクエストReqNRD16m1をこの予約されたリクエストキューへ格納する。次にメモリチップM1はリクエストReqNRD16m1に含まれるID値１と自身のIDレジスタの値1を比較し、結果が一致していることを確認する。さらに、リクエストReqNRD16m1に対応するデータを受け取るための空き状態にあるレスポンスキューがすでに予約されているため、リクエストReqNRD16m1は、直ちにメモリ回路MemNV1へ送信され、このリクエストReqNRD16m1に対応するデータが、メモリ回路MemNV1から読み出され、ID値１と一緒に、レスポンスResNRD16m1として予約されたレスポンスキューへ格納される。
【０２５１】
メモリチップM1はレスポンス信号RsMux1から、レスポンスResNRD16m1をメモリチップM0ヘ出力する。
【０２５２】
メモリチップM0では、メモリチップM1からのレスポンスを受け取るための空き状態のレスポンスキューがすでに予約されているためレスポンスResNRD16m1を直ちにこの予約されたリクエストキューへ格納する。その後直ちに、メモリチップM0はレスポンス信号RsMux0から、レスポンスResNRD16m1を情報処理装置CPU_CHIPヘ出力する。
【０２５３】
情報処理装置CPU_CHIPでは、メモリチップM0からのレスポンスを受け取るための空き状態のレスポンスキューがすでに予約されているためレスポンスResNRD16m1を直ちにこの予約されたリクエストキューへ格納する。
【０２５４】
メモリチップM1へのリクエストおよびレスポンスに関するキューの予約方法および予約後のデータ転送動作について説明したが、メモリチップM0およびM2についても同様の方法でキューの予約を行え、同様の動作でデータ転送を行える。
【０２５５】
以上説明したように、空き状態あるリクエストキューおよびレスポンスキューを予約することによって、対象となるリクエストおよびレスポンスの優先的かつ円滑に処理でき、アプリケーション実行中に必要な場面で、読み出しデータの最大レイテンシを保証することができる。
【０２５６】
さらに、空き状態あるリクエストキューおよびレスポンスキューを予約は任意のメモリチップに対して行え、また、その予約するリクエストキューおよびレスポンスキューの数も任意に変更することができ、様々なシステムに柔軟に対応できる。
【０２５７】
＜通常動作の説明：イン・オーダー動作：チップ内、アウトオブ・オーダー動作：チップ間＞
情報処理装置CPU_CHIPがプログラム実行に必要なプログラムコードやデータをメモリチップM0、M1、M2へ割り当てる場合、プログラムの実行速度を向上させるために、その割り当て方法に適したメモリチップM0、M1およびM2のレスポンス順序設定レジスタRRGの値を設定し、動作させることができる。
【０２５８】
メモリM0へはプログラムAとデータAが格納され、メモリM1にはプログラムBとデータBが格納され、メモリM2にはプログラムCとデータCが格納されている。プログラムAとプログラムBとプログラムCは全く独立に動作するプログラムであり、データAはプログラムAに関連するデータであり、データBはプログラムBに関連するデータであり、データCはプログラムCに関連するデータである。
【０２５９】
このように、プログラムコードやデータをメモリチップM0、M1、M2へ割り当てた場合いの、メモリチップM0、M1およびM2のレスポンス順序設定レジスタRRGへの設定値を、図6(a)に示す。
【０２６０】
以下では、情報処理装置CPU_CHIPが、メモリモジュールMEM内のメモリチップM1のバンク1へデータ読み出しリクエストと、メモリチップM0のバンク0へデータ書込みリクエストと、続いてメモリチップM0のバンク0へデータ読み出しリクエストを送信し、さらに、連続してメモリチップM0のバンク1へデータ読み出しリクエストを送信した場合のデータ転送について説明する。
【０２６１】
特に限定しないが、メモリチップM0、M1、M2のそれぞれのIDレジスタ値が２、１及び３に設定されている。
【０２６２】
情報処理装置CPU_CHIPは、リクエスト信号RqMux0を通じて、ID値1、16バイトデータ読み出し命令RD16、バンクアドレスBK1、カラムアドレスCol31を多重化したリクエストReqRD16b1m1をメモリチップM0へ転送する。
【０２６３】
次に、ID値2、32バイトデータ書き込み命令WT32、バンクアドレスBK0、カラムアドレスCol63、及び32バイト分の書き込みデータを多重化したリクエストReqWT32b0m0をメモリチップM0へ転送する。
【０２６４】
続いて、ID値２、32バイトデータ読み出し命令RD32、バンクアドレスBK0、カラムアドレスCol32を多重化したリクエストReqRD32b0m0をメモリチップM0へ転送する。
【０２６５】
さらに続いて、ID値2、16バイトデータ読み出し命令RD16、バンクアドレスBK1、カラムアドレスCol32を多重化したリクエストReqRD16b1m0をメモリチップM0へ転送する。
【０２６６】
メモリチップM0は、情報処理装置CPU_CHIPからのリクエストReqRD16b1m1と、リクエストReqWT32b0m0と、リクエストReqRD32b0m0と、リクエストReqRD16b1m0を順に、自身のリクエストキュー制御回路RqCTへ格納する。また、リクエストキュー制御回路RqCTのリクエスト番号設定回路RNBは、これらのリクエストを格納する際に、リクエストの入力順にリクエストに対応したリクエスト番号ReqNを付加する。
【０２６７】
特に限定しないが、リクエストの入力順に、リクエストReqRD16b1m1にはリクエスト番号ReqN値1が、リクエストReqWT32b0m0にはリクエスト番号ReqN値2が、リクエストReqRD32b0m0にはリクエスト番号ReqN値3が、リクエストReqRD16b1m0にはリクエスト番号ReqN値4が付加される。
【０２６８】
メモリチップM0のリクエストキュー制御回路RqCTはリクエストReqRD16b1m1に含まれるID値1と自身のIDレジスタの値２を比較する。結果は不一致のため、リクエストReqRD16b1m1および、このリクエストに対応したリクエスト番号ReqN値1が、リクエスト信号RqMux1を通じて、メモリチップM1へ転送される。
【０２６９】
次にメモリチップM0のリクエストキュー制御回路RqCTはリクエストReqWT32b0m0に含まれるID値２と自身のIDレジスタの値２を比較し、一致しているため、リクエストReqWT32b0m0を、自身のメモリ回路MemVLへ送信する。
【０２７０】
メモリチップM0のメモリ回路MemVLでは、リクエストReqWT32b0m0に含まれる32バイト書き込み命令WT32、バンクアドレスBK0、カラムアドレスCo63によって、メモリ回路MemVLのメモリバンク0のセンスアンプを通じてメモリバンク0へ、カラムアドレス63を開始アドレスとした32バイト分のデータの書き込み動作を開始する。
【０２７１】
次に、メモリチップM0のリクエストキュー制御回路RqCTはリクエストReqRD32b0m0およびリクエストReqRD16b1m0に含まれる、それぞれのID値2と自身のIDレジスタの値2を比較し、一致しているため、リクエストReqRD32b0m0のリクエスト番号ReqN値3およびリクエストReqRD16b1m0のリクエスト番号ReqN値4はレスポンスキュー制御回路RsCTへ転送される。
【０２７２】
メモリチップM0のレスポンスキュー制御回路RsCTは、リクエスト番号ReqN値3をレスポンス番号ResTN値3として、またリクエスト番号ReqN値4をレスポンス番号ResTN値4として、順に、レスポンス番号テーブルTBへエントリする。
【０２７３】
これによって、レスポンス番号ResTN値3に対応したリクエスト番号ReqN値3に関するレスポンスが最初のレスポンスとなり、レスポンス番号ResTN値4に対応するリクエスト番号ReqN値4に関するレスポンスが２番目のレスポンスとなる。
【０２７４】
リクエストReqWT32b0m0に続くリクエストReqRD32b0m0は、メモリチップM0のメモリ回路MemVLのメモリバンク0への読み出し命令RD32を含んでおり、リクエストReqWT32b0m0による書き込み動作が行われているメモリバンク0と同一メモリバンクへのデータ読み出しであるため、メモリバンク０へのデータ書き込み動作の完了を待つ必要がある。
【０２７５】
リクエストReqRD32b1m0は、メモリチップM0のメモリ回路MemVLのメモリバンク1への読み出し命令RD32を含んでおり、リクエストReqWT32b0m0による書き込み動作が行われているメモリバンク0とは異なるメモリバンクへのデータ読み出しであるため、メモリバンク０へのデータ書き込み動作の完了を待つ必要がない。そこで、メモリチップM0のリクエストキュー制御回路RqCTは、リクエストReqRD32b1m0をメモリ回路MemVLへ送信する。
【０２７６】
メモリチップM0のメモリ回路MemVLから、リクエストReqRD32b1m0に含まれる32バイト読み出し命令RD32、バンクアドレスBK1、カラムアドレスCol32によって、メモリ回路MemVLのバンク1のセンスアンプに保持されているデータのなかで、カラムアドレス32を開始アドレスとした32バイト分のデータが読み出される。
【０２７７】
読み出された32バイト分のデータと、リクエスト番号ReqN値4に対応したレスポンス番号ResN値4と、IDレジスタ値2を含めたレスポンスRsRD32b1m0はレスポンスキュー制御回路RsCTへ転送される。
【０２７８】
メモリチップM0のレスポンスキュー制御回路RsCTは、レスポンス番号テーブルTBへ最初にエントリされたレスポンス番号ResTN値3とレスポンス番号ResN値4とを比較する。両者は不一致のため、レスポンス番号ResTN値3に対応するレスポンスを待つ。
【０２７９】
メモリチップM0のメモリ回路MemVLのメモリバンク0へのデータ書き込み完了後、リクエストReqRD32b0m0はメモリ回路MemVLへ送信される。
【０２８０】
メモリチップM0のメモリ回路MemVLから、リクエストReqRD32b0m0に含まれる32バイト読み出し命令RD32、バンクアドレスBK0、カラムアドレスCol32によって、メモリ回路MemVLのバンク0のセンスアンプに保持されているデータのなかで、カラムアドレス32を開始アドレスとした32バイト分のデータが読み出される。
【０２８１】
この読み出された32バイト分のデータと、リクエスト番号ReqN値3に対応したレスポンス番号ResN値3と、IDレジスタ値2を含めたレスポンスRsRD32b0m0はレスポンスキュー制御回路RsCTへ転送される。
【０２８２】
メモリチップM0のレスポンスキュー制御回路RsCTは、レスポンス番号テーブルTBへ最も古くエントリされたレスポンス番号ResTN値3とレスポンス番号ResN値3とを比較する。
【０２８３】
両者は一致しているため、メモリチップM0のレスポンスキュー制御回路RsCTは、レスポンス信号RsMux0を通じて、IDレジスタ値2、32バイトデータを含むレスポンスRsRD32b0m0を情報処理装置CPU_CHIPへ送信する。この際、メモリチップM0のレスポンス番号テーブルTBへエントリされているレスポンス番号ResTN値3は無効となり、レスポンス番号ResTN値4が最も古いレスポンス番号となる。
【０２８４】
リクエストReqRD32b0m0より以前にメモリチップM0へ入力したリクエストReqRD16b1m1はメモリチップM1へ送信されており、このリクエストReqRD16b1m1に対応するレスポンスはメモリチップM0へ入力していないため、リクエストReqRD32b0m0に対応するレスポンスRsRD32b0m0は、リクエストReqRD16b1m1に対応するレスポンスを待たずに、情報処理装置CPU_CHIPへ送信される。
【０２８５】
続いて、メモリチップM0のレスポンスキュー制御回路RsCTは、レスポンスRsRD32b1m0のレスポンス番号ResN値4と、現在、レスポンス番号テーブルTBへ最も古くエントリされたレスポンス番号ResTN値4とを比較する。
【０２８６】
両者は一致しているため、メモリチップM0のレスポンスキュー制御回路RsCTは、レスポンス信号RsMux0を通じて、IDレジスタ値2、32バイトデータを含むレスポンスRsRD32b1m0を情報処理装置CPU_CHIPへ送信する。
【０２８７】
この際、メモリチップM0のレスポンス番号テーブルTBへエントリされているレスポンス番号ResTN値4は無効となる。
【０２８８】
リクエストReqRD32b1m0より以前にメモリチップM0へ入力したリクエストReqRD16b1m1はメモリチップM1へ送信されており、このリクエストReqRD16b1m1に対応するレスポンスはメモリチップM0へ入力していないため、リクエストReqRD32b1m0に対応するレスポンスRsRD32b1m0は、リクエストReqRD16b1m1に対応するレスポンスを待たずに、情報処理装置CPU_CHIPへ送信される。
【０２８９】
このように、メモリチップM0のレスポンス順序設定レジスタRRGの設定により、メモリチップM0は、自身へのリクエストに対応するリクエスト番号を生成し、その生成したリクエスト番号を利用し、入力したリクエスト順にレスポンスを送信する動作を行う。
【０２９０】
さらに、メモリチップM0のレスポンス順序設定レジスタRRGの設定によりメモリチップM0は、自身のレスポンスと、メモリチップM1あるいはM2からメモリチップM0 へ入力したレスポンスの間では、リクエストの入力順序に関わらず、早く送信できるレスポンスは、遅いレスポンを待つことなく、情報処理装置CPU_CHIPへ送信できる。
【０２９１】
次にメモリチップM1の動作について説明する。
【０２９２】
メモリチップM1では、すでにメモリチップM0から送信されたリクエストReqRD16b1m1および、このリクエストに対応したリクエスト番号ReqN値1をリクエストキュー制御回路RqCTへ格納し、メモリチップM0にて行われるデータ書き込みおよび読み出しと平行して、データの読み出し動作が行われる。
【０２９３】
メモリチップM1のリクエストキュー制御回路RqCTは、リクエストReqRD16b1m1に含まれるID値1と自身のIDレジスタ値１を比較する。
【０２９４】
両者は一致しているためリクエストキュー制御回路RqCTは、読み出しリクエストReqRD16b1m1に対応したリクエスト番号ReqN値1をレスポンスキュー制御回路RsCTへ転送する。
【０２９５】
レスポンスキュー制御回路RsCTは、このリクエスト番号ReqN値1をレスポンス番号ResTN値1として、レスポンス番号テーブルへ保存する。これによって、レスポンス番号ResTN値1に対応するリクエストReqRD16b1m1のレスポンスが、メモリチップM1より最初に送信されるレスポンスとなる。続いてリクエストReqRD16b1m1をメモリ回路MemNV1へ送信する。
【０２９６】
メモリチップM1のメモリ回路MemNV1はリクエストReqRD16b1m1に含まれる16バイト読み出し命令RD16、バンクアドレスBK1、カラムアドレスCol32によって、メモリ回路MemNV1のバンク1のセンスアンプに保持されているデータのなかで、カラムアドレス32を開始アドレスとした16バイト分のデータを読み出す。
【０２９７】
この読み出された16バイト分のデータと、リクエスト番号ReqN値1に対応したレスポンス番号ResN値1と、IDレジスタ値1を含めたレスポンスRsRD16b1m0はレスポンスキュー制御回路RsCTへ転送される。
【０２９８】
メモリチップM1のレスポンスキュー制御回路RsCTは、レスポンス番号テーブルへ最初にエントリされたレスポンス番号ResTN値1とレスポンス番号ResN値1とを比較する。両者は一致しているため、メモリチップM1のレスポンスキュー制御回路RsCTは、レスポンス信号RsMux1を通じて、IDレジスタ値1、レスポンス番号ResN値1および16バイトデータを含むレスポンスRsRD16b1m1をメモリチップM0へ送信する。この際、レスポンス番号テーブルへエントリされているレスポンス番号ResTN値1は無効となる。
【０２９９】
メモリチップM0のレスポンスキュー制御回路RsCTは、レスポンスRsRD16b1m1を受け取り格納する。つぎに、レスポンス番号テーブルTB内の有効となっているレスポンス番号ResTNとレスポンス番号ResN値1を比較する。
【０３００】
レスポンス番号テーブルTB内の有効となっているレスポンス番号ResTNは存在しないため、メモリチップM0のレスポンスキュー制御回路RsCTは、レスポンス信号RsMux0を通じて、IDレジスタ値1と16バイトデータを含むレスポンスRsRD16b1m1を情報処理装置CPU_CHIPへ送信する。
【０３０１】
以上説明したように、メモリチップM0のレスポンス順序設定レジスタRRGの設定により、メモリチップM0は、入力したリクエスト順で、そのリクエストに対応したリクエスト番号を生成し、このリクエスト番号を利用し、入力したリクエスト順番どおりにレスポンスを情報処理装置CPU_CHIPへ送信できる。これによって、情報処理装置CPU_CHIPは、同一チップへのリクエストに対するレスポンスが送信されたかを知ることができ、所望の処理を実行することができる。
【０３０２】
また、メモリチップM0のレスポンス順序設定レジスタRRGの設定により、メモリチップM0は、自身のレスポンスと、メモリチップM1あるいはM2からメモリチップM0 へ入力したレスポンスの間では、リクエストの入力順序に関わらず、早く送信できるレスポンスは、遅いレスポンスを待つことなく、情報処理装置CPU_CHIPへ送信でき高速化が可能となる。
【０３０３】
また、扱うシステムに応じて情報処理装置CPU_CHIPが様々に要求するOS、ブートプログラムおよびアプリケーションプログラムなどのメモリチップへの配置方法に柔軟に対応し性能向上が図れる。
【０３０４】
さらに、リクエストへIDを付加することで、確実に要求先へリクエストが転送され、また、レスポンスへIDを付加することで、リクエストの入力順序と、読み出しデータの順番が異なった場合でも、情報処理装置CPU＿CHIPは転送元のメモリチップを知ることができるため、情報処理装置CPU＿CHIPおよびメモリチップの直列接続によって、接続信号数を少なくしながらも、情報処理装置CPU_CHIPは所望の処理を実行することができる。
【０３０５】
また、上記ではメモリチップM0およびM1に関するデータ転送動作を説明したが、メモリチップM0、M1およびM2に関するデータ転送についても同様に行えることは言うまでもない。
【０３０６】
＜通常動作の説明：リード/ ライト同時実行＞
次に、情報処理装置CPU_CHIPがデータ読み出しリクエストに続いてデータ書込みリクエストをメモリモジュールMEMへ送信した場合のデータ転送について説明する。
【０３０７】
情報処理装置CPU_CHIPがリクエスト信号RqMux0を通じて、ID値２、8バイトデータ読み出し命令RD8、バンクアドレスBK1、カラムアドレスCol15を多重化したリクエストReqRD8b1m0をメモリチップM0へ転送する。続いて、リクエスト信号RqMux0を通じて、ID値2、8バイトデータ書き込み命令WT8、バンクアドレスBK1、カラムアドレスCol３１、及び8バイト分の書き込みデータを多重化したリクエストReqWT8b1m0をメモリチップM0へ転送する。
【０３０８】
メモリチップM0は、情報処理装置CPU_CHIPからのリクエストReqRD8b1m0とリクエストReqWT8b1m0を順に、自身のリクエストキュー制御回路RqCTへ格納する。リクエストキュー制御回路RqCTはリクエストReqRD8b1m0に含まれるID値２と自身のIDレジスタの値２を比較し、一致しているため、リクエストReqRD8b1m0をメモリ回路MemVLへ送信する。
【０３０９】
メモリ回路MemVLはリクエストReqRD8b1m0に含まれる8バイト読み出し命令RD8、バンクアドレスBK1、カラムアドレスCol31によって、メモリ回路MemVLのバンク1のセンスアンプに保持されているデータのなかで、カラムアドレス15を開始アドレスとした8バイト分のデータを読み出し、IDレジスタ値２を含めて、レスポンスキュー制御回路RsCTへレスポンスRsRD8b1m0として転送する。
【０３１０】
レスポンスキュー制御回路RsCTは、レスポンス信号RsMux0を通じて、IDレジスタ値２および8バイトデータを含むレスポンスRsRD8b1m0を情報処理装置CPU_CHIPへ出力する。
【０３１１】
リクエストReqRD8b1m0が処理されたことによって、リクエストキュー制御回路RqCTはリクエストReqWT8b1m0に含まれるID値２と自身のIDレジスタの値２を比較し、一致しているため、リクエストReqWT8b1m0をメモリ回路MemVLへ送信する。
【０３１２】
メモリ回路MemVLはリクエストReqWT8b1m0に含まれる8バイト書き込み命令WT8、バンクアドレスBK1、カラムアドレスCol31によって、メモリ回路MemVLのバンク1のセンスアンプへカラムアドレス３１を開始アドレスとした8バイト分のデータが書き込まれ、さらにメモリバンク１へ書き込まれる。
【０３１３】
リクエストキュー制御回路RqCTとレスポンスキュー制御回路RsCTはそれぞれ独立に動作するため、、リクエストReqRD8b1m0に対応するレスポンスRsRD8b1m0が情報処理装置CPU_CHIPへ出力されている最中でもリクエストReqWT8b1m0の書込み動作を実行することができる。
【０３１４】
以上説明したように、リクエストインターフェース回路ReIFとレスポンスインターフェース回路は独立に動作可能なため、データの読み出し動作と書込み動作を同時に実行でき、データ転送性能を向上させることができる。上記では、メモリチップM0でのデータの読み出し及び書込みについて説明したが、他のメモリチップM1及びM2においても同様の動作が実行できることは言うまでもない。さらに、それぞれののメモリチップにおいてリクエストインターフェース回路ReIFとレスポンスインターフェース回路は独立に動作可能なため、異なるメモリチップへのデータ読み出し及び書込みリクエストが生じた場合でも、それぞれのリクエストを独立に並列に処理でき、データ転送性能を向上できることは言うまでもない。
【０３１５】
＜通常動作の説明：リクエスト番号 ＞
情報処理装置CPU_CHIPが、メモリモジュールMEMへのリクエストに固有のリクエスト番号を付け、このリクエスト番号を含んだリクエストをメモリモジュールMEMへ送信した場合、メモリモジュールMEMは、情報処理装置CPU_CHIPが送信するリクエスト番号を利用し、リクエストの入力順序に関わらず、早く送信できるレスポンから送信し、高速化を図ることができる。以下に 動作を説明する。また、メモリチップM0、M1、M2のレスポンス順序設定レジスタRRGの設定値を図６(b)へ示す。
【０３１６】
情報処理装置CPU_CHIPが、メモリモジュールMEM内のメモリチップM1のバンク1へデータ読み出しリクエストと、メモリチップM0のバンク0へデータ書込みリクエストと、続いてメモリチップM0のバンク0へデータ読み出しリクエストを送信し、さらに、連続してメモリチップM0のバンク1へデータ読み出しリクエストを送信した場合のデータ転送について説明する。
【０３１７】
特に限定しないが、メモリチップM0、M1、M2のそれぞれのIDレジスタ値が２、１及び３に設定されている。
【０３１８】
情報処理装置CPU_CHIPは、リクエスト番号生成レジスタRqNRの値を1に設定するとリクエスト番号生成回路RqNは、リクエスト信号RqMux0を通じて出力するリクエスト対応したリクエスト番号ReqNを生成する。次に情報処理装置CPU_CHIPは、リクエスト信号RqMux0を通じて、ID値1、リクエスト番号ReqN値1、16バイトデータ読み出し命令RD16、バンクアドレスBK1、カラムアドレスCol31を多重化したリクエストReqRD16b1m1をメモリチップM0へ転送する。
【０３１９】
次に、ID値2、リクエスト番号ReqN値2、32バイトデータ書き込み命令WT32、バンクアドレスBK0、カラムアドレスCol63、及び32バイト分の書き込みデータを多重化したリクエストReqWT32b0m0をメモリチップM0へ転送する。
【０３２０】
続いて、ID値２、リクエスト番号ReqN値3、32バイトデータ読み出し命令RD32、バンクアドレスBK0、カラムアドレスCol32を多重化したリクエストReqRD32b0m0をメモリチップM0へ転送する。
【０３２１】
さらに続いて、ID値2、リクエスト番号ReqN値4、16バイトデータ読み出し命令RD16、バンクアドレスBK1、カラムアドレスCol32を多重化したリクエストReqRD16b1m0をメモリチップM0へ転送する。
【０３２２】
メモリチップM0は、情報処理装置CPU_CHIPからのリクエストReqRD16b1m1と、リクエストReqWT32b0m0と、リクエストReqRD32b0m0と、リクエストReqRD16b1m0を順に、自身のリクエストキュー制御回路RqCTへ格納する。
【０３２３】
メモリチップM0のリクエストキュー制御回路RqCTはリクエストReqRD16b1m1に含まれるID値1と自身のIDレジスタの値２を比較する。結果は不一致のため、リクエストReqRD16b1m1はリクエスト信号RqMux1を通じて、メモリチップM1へ転送される。
【０３２４】
次にメモリチップM0のリクエストキュー制御回路RqCTはリクエストReqWT32b0m0に含まれるID値２と自身のIDレジスタの値２を比較し、一致しているため、リクエストReqWT32b0m0を、自身のメモリ回路MemVLへ送信する。
【０３２５】
メモリチップM0のメモリ回路MemVLでは、リクエストReqWT32b0m0に含まれる32バイト書き込み命令WT32、バンクアドレスBK0、カラムアドレスCo63によって、メモリ回路MemVLのメモリバンク0のセンスアンプを通じてメモリバンク0へ、カラムアドレス63を開始アドレスとした32バイト分のデータの書き込み動作を開始する。
【０３２６】
リクエストReqWT32b0m0に続くリクエストReqRD32b0m0は、メモリチップM0のメモリ回路MemVLのメモリバンク0への読み出し命令RD32を含んでおり、リクエストReqWT32b0m0による書き込み動作が行われているメモリバンク0と同一メモリバンクへのデータ読み出しであるため、メモリバンク０へのデータ書き込み動作の完了を待つ必要がある。
【０３２７】
リクエストReqRD32b1m0は、メモリチップM0のメモリ回路MemVLのメモリバンク1への読み出し命令RD32を含んでおり、リクエストReqWT32b0m0による書き込み動作が行われているメモリバンク0とは異なるメモリバンクへのデータ読み出しであるため、メモリバンク０へのデータ書き込み動作の完了を待つ必要がない。そこで、メモリチップM0のリクエストキュー制御回路RqCTは、リクエストReqRD32b1m0をメモリ回路MemVLへ送信する。
【０３２８】
メモリチップM0のメモリ回路MemVLから、リクエストReqRD32b1m0に含まれる32バイト読み出し命令RD32、バンクアドレスBK1、カラムアドレスCol32によって、メモリ回路MemVLのバンク1のセンスアンプに保持されているデータのなかで、カラムアドレス32を開始アドレスとした32バイト分のデータが読み出される。
【０３２９】
読み出された32バイト分のデータと、リクエスト番号ReqN値4と等しいレスポンス番号ResN値4と、IDレジスタ値2を含めたレスポンスRsRD32b1m0はレスポンスキュー制御回路RsCTへ転送され、情報処理装置CPU_CHIPへ送信される。
【０３３０】
次に、メモリチップM0のメモリ回路MemVLのメモリバンク0へのデータ書き込み完了後、リクエストReqRD32b0m0はメモリ回路MemVLへ送信される。
【０３３１】
メモリチップM0のメモリ回路MemVLから、リクエストReqRD32b0m0に含まれる32バイト読み出し命令RD32、バンクアドレスBK0、カラムアドレスCol32によって、メモリ回路MemVLのバンク0のセンスアンプに保持されているデータのなかで、カラムアドレス32を開始アドレスとした32バイト分のデータが読み出される。
【０３３２】
この読み出された32バイト分のデータと、リクエスト番号ReqN値3と等しいレスポンス番号ResN値3と、IDレジスタ値2を含めたレスポンスRsRD32b0m0はレスポンスキュー制御回路RsCTへ転送され、情報処理装置CPU_CHIPへ送信される。
【０３３３】
このように、リクエストReqRD32b0m0の後にメモリチップM0へ入力したリクエストReqRD32b1m0は、リクエストReqRD32b0m0より早く処理できるため、リクエストReqRD32b0m0レスポンスは、リクエストReqRD32b0m0の遅いレスポンを待つことなく、メモリチップM0へ送信できる。
【０３３４】
また、メモリチップM0へ入力したリクエストReqRD16b1m1はメモリチップM1へ送信されており、このリクエストReqRD16b1m1に対応するレスポンスはメモリチップM0へ入力していないため、リクエストReqRD32b1m0のレスポンスRsRD32b1m0およびリクエストReqRD32b0m0のレスポンスRsRD32b0m0は、リクエストReqRD16b1m1に対応するレスポンスを待たずに、情報処理装置CPU_CHIPへ送信される。
【０３３５】
次にメモリチップM1の動作について説明する。
【０３３６】
メモリチップM1では、すでにメモリチップM0から送信されたリクエスト番号ReqN値1を含むリクエストReqRD16b1m1をリクエストキュー制御回路RqCTへ格納し、メモリチップM0にて行われるデータ書き込みおよび読み出しと平行して、データの読み出し動作が行われる。
【０３３７】
メモリチップM1のリクエストキュー制御回路RqCTは、リクエストReqRD16b1m1に含まれるID値1と自身のIDレジスタ値１を比較する。
【０３３８】
両者は一致しているため、リクエストReqRD16b1m1をメモリ回路MemNV1へ送信する。
【０３３９】
メモリチップM1のメモリ回路MemNV1はリクエストReqRD16b1m1に含まれる16バイト読み出し命令RD16、バンクアドレスBK1、カラムアドレスCol32によって、メモリ回路MemNV1のバンク1のセンスアンプに保持されているデータのなかで、カラムアドレス32を開始アドレスとした16バイト分のデータを読み出す。
【０３４０】
この読み出された16バイト分のデータと、リクエスト番号ReqN値1と等しいレスポンス番号ResN値1と、IDレジスタ値1を含めたレスポンスRsRD16b1m0はレスポンスキュー制御回路RsCTへ転送され、メモリチップM0へ転送される。
【０３４１】
メモリチップM0のレスポンスキュー制御回路RsCTは、レスポンス番号ResN値1を含むレスポンスRsRD16b1m1を受け取り、レスポンス信号RsMux0を通じて、情報処理装置CPU_CHIPへ送信する。
【０３４２】
以上説明したように、メモリモジュールMEMは情報処理装置CPU_CHIPから送信されるリクエストに含まれるリクエスト番号を利用し、レスポンス番号を生成し、このレスポンス番号を含んだレスポンスを情報処理装置CPU＿CHIPへ送信できることにより、メモリチップ毎やメモリチップ間で、リクエストの入力順序に関わらず、早く送信できるレスポンスは、遅いレスポンスを待つことなく、すぐに送信できるため高速化を図れる。さらに、リクエストの入力順とは異なる順番で、レスポンスが送信された場合でも、情報処理装置CPU＿CHIPは、どのリクエストに対するレスポンスが送信されたかを知ることができ、情報処理装置CPU_CHIPは所望の処理を高速に実行することができる。
【０３４３】
また、上記ではメモリチップM0およびM1に関するデータ転送動作を説明したが、メモリチップM0、M1およびM2に関するデータ転送についても同様に行えることは言うまでもない。
【０３４４】
＜クロック制御＞
次に、メモリモジュールMEMに関するクロック制御について説明する。メモリモジュールMEMが特に限定しないが携帯機器に利用された場合、常にメモリモジュールMEM内のメモリチップM0、M1及びM2の全てが同時に動作するわけではない。そこで、携帯機器の低電力化を図るために、本メモリモジュールMEMはデータ転送に必要な場合に、必要な周波数でクロックを発生したり、データ転送が生じない場合はクロックを停止したりできる。
【０３４５】
メモリチップM0から出力するレスポンスクロック信号RsCk0の周波数制御について説明する。先ず、メモリチップM0から出力するレスポンスクロック信号RsCk0のクロック周波数を、特に限定しないが2分の１にする場合について説明する。情報処理装置CPU_CHIPが、リクエスト信号RqMux0よりメモリチップM0のID値２とレスポンスクロック分周コマンド２を入力する。
【０３４６】
メモリチップM0はリクエストキュー制御回路RqCTを介して、レスポンスクロック分周コマンド２をメモリチップM0のクロック分周回路Div2へ送信すると、レスポンスクロック信号RsCk0の周波数は2分の１となる。クロックの動作周波数を低くする際は、ノイズによる誤動作を防ぐために徐々に周波数を落とし、最後に所望の周波数で動作させることが良い。
【０３４７】
次に、メモリチップM0から出力するレスポンスクロック信号RsCk0を停止する場合について説明する。情報処理装置CPU_CHIPが、リクエスト信号RqMux0よりメモリチップM0のID値２とレスポンスクロック停止コマンドを入力する。メモリチップM0はリクエストキュー制御回路RqCTを介して、レスポンスクロック停止コマンドをメモリチップM0内のクロック分周回路Div2へ送信すると、レスポンスクロック信号RsCk0は停止する。クロックを停止する際は、ノイズによる誤動作を防ぐために徐々に周波数を落とし、最後に停止させることが良い。
【０３４８】
次に、停止しているレスポンスクロック信号RsCk0を再度動作させる場合について説明する。情報処理装置CPU_CHIPが、リクエスト信号RqMux0よりメモリチップM0のID値２とレスポンスクロック再開コマンドを入力する。メモリチップM0はクエストキュー制御回路RqCTを介して、レスポンスクロック再開コマンドをメモリチップM0内のクロック分周回路Div2へ送信すると、停止しているレスポンスクロック信号RsCk0は再度、動作を開始する。クロックを再動作させる際は、ノイズによる誤動作を防ぐために、徐々に周波数を上げ、最後に所望の周波数で動作させることが良い。
【０３４９】
メモリチップM１から出力するレスポンスクロック信号RsCk1の周波数制御について説明する。先ず、メモリチップM1から出力するレスポンスクロック信号RsCk1のクロック周波数を、特に限定しないが4分の１にする場合について説明する。情報処理装置CPU_CHIPが、リクエスト信号RqMux0よりメモリチップM1のID値1とレスポンスクロック分周コマンド4を入力すると、メモリチップM0を通じて、メモリチップM1へID値1とレスポンスクロック分周コマンド4が送信される。メモリチップM1がクエストキュー制御回路RqCTを介して、レスポンスクロック分周コマンド4をメモリチップM1内のクロック分周回路Div2へ送信すると、レスポンスクロック信号RsCk1の周波数は4分の１となる。クロックの動作周波数を低くする際は、ノイズによる誤動作を防ぐために徐々に周波数を落とし、最後に所望の周波数で動作させることが良い。
【０３５０】
次に、メモリチップM1から出力するレスポンスクロック信号RsCk1を停止する場合について説明する。情報処理装置CPU_CHIPが、リクエスト信号RqMux0よりメモリチップM1のID値1とレスポンスクロック停止コマンドを入力すると、メモリチップM0を通じて、メモリチップM1へID値1とレスポンスクロック分周コマンド4が送信される。メモリチップM１がクエストキュー制御回路RqCTを介して、レスポンスクロック停止コマンドをメモリチップM１内のクロック分周回路Div2へ送信すると、レスポンスクロック信号RsCk1は停止する。クロックを停止する際は、ノイズによる誤動作を防ぐために徐々に周波数を落とし、最後に停止させることが良い。
【０３５１】
次に、停止しているレスポンスクロック信号RsCk1を再度動作させる場合について説明する。情報処理装置CPU_CHIPが、リクエスト信号RqMux0よりメモリチップM1のID値1とレスポンスクロック再開コマンドを入力すると。メモリチップM0を通じて、メモリチップM1へID値1とレスポンスクロック再開コマンドが送信される。メモリチップM1が、クエストキュー制御回路RqCTを介して、レスポンスクロック再開コマンドをメモリチップM1内のクロック分周回路Div2へ送信すると、停止しているレスポンスクロック信号RsCk1は再度動作を開始する。クロックを再動作させる際は、ノイズによる誤動作を防ぐために、徐々に周波数を上げ、最後に所望の周波数で動作させることが良い。
【０３５２】
メモリチップM2から出力するレスポンスクロック信号RsCk2の周波数制御について説明する。先ず、メモリチップM2から出力するレスポンスクロック信号RsCk2のクロック周波数を、特に限定しないが8分の１にする場合について説明する。情報処理装置CPU_CHIPが、リクエスト信号RqMux0よりメモリチップM2のID値3とレスポンスクロック分周コマンド8を入力すると、メモリチップM0及びM1を通じて、メモリチップM2へID値3とレスポンスクロック分周コマンド8が送信される。メモリチップM2が自身のクエストキュー制御回路RqCTを介して、レスポンスクロック分周コマンド8をメモリチップM2内のクロック分周回路Div2へ送信すると、レスポンスクロック信号RsCk2の周波数は8分の１となる。クロックの動作周波数を低くする際は、ノイズによる誤動作を防ぐために徐々に周波数を落とし、最後に所望の周波数で動作させることが良い。
【０３５３】
次に、メモリチップM2から出力するレスポンスクロック信号RsCk2を停止する場合について説明する。情報処理装置CPU_CHIPが、リクエスト信号RqMux0よりメモリチップM2のID値3とレスポンスクロック停止コマンドを入力すると、メモリチップM0及びM1を通じて、メモリチップM2へID値3とレスポンスクロック停止コマンドが送信される。メモリチップM2が自身のリクエストキュー制御回路RqCTを介して、レスポンスクロック停止コマンドをメモリチップM2内のクロック分周回路Div2へ送信すると、レスポンスクロック信号RsCk2は停止する。クロックを停止する際は、ノイズによる誤動作を防ぐために徐々に周波数を落とし、最後に停止させることが良い。
【０３５４】
次に、停止しているレスポンスクロック信号RsCk2を再度動作させる場合について説明する。情報処理装置CPU_CHIPが、リクエスト信号RqMux0よりメモリチップM2のID値3とレスポンスクロック再開コマンドを入力すると。メモリチップM0及びM1を通じて、メモリチップM2へID値3とレスポンスクロック再開コマンドが送信される。メモリチップM2が、クエストキュー制御回路RqCTを介して、レスポンスクロック再開コマンドをメモリチップM2のクロック分周回路Div2へ送信すると、停止しているレスポンスクロック信号RsCk2は再度、動作を開始する。クロックを再動作させる際は、ノイズによる誤動作を防ぐために、徐々に周波数を上げ、最後に所望の周波数で動作させることが良い。
【０３５５】
メモリチップM0から出力するリクエストクロック信号RsCk1の周波数制御について説明する。先ず、メモリチップM0から出力するリクエストクロック信号RqCk1のクロック周波数を、特に限定しないが2分の１にする場合について説明する。情報処理装置CPU_CHIPが、リクエスト信号RqMux0よりメモリチップM0のID値２とリクエストクロック分周コマンド２を入力する。メモリチップM0が、リクエストキュー制御回路RqCTを介して、リクエストクロック分周コマンド２をメモリチップM0のクロック分周回路Div1へ送信すると、このクロック分周回路Div1はリクエストクロック信号RqCk0のクロック周波数の2分の1の周波数を持つクロックを発生させ、リクエストクロック信号RqCk1から出力する。リクエストクロック信号RqCk1は、メモリチップM1へ入力し、メモリチップM1のクロックドライバDrv2およびクロック分周回路Div２を介してレスポンスクロック信号RsCk1として出力する。クロックの動作周波数を低くする際は、ノイズによる誤動作を防ぐために徐々に周波数を落とし、最後に所望の周波数で動作させることが良い。
【０３５６】
次に、メモリチップM0から出力するリクエストクロック信号RqCk1を停止する場合について説明する。情報処理装置CPU_CHIPが、リクエスト信号RqMux0よりメモリチップM0のID値２とリクエストクロック停止コマンドを入力する。メモリチップM0が、リクエストキュー制御回路RqCTを介して、リクエストクロック停止コマンドをメモリチップM0のクロック分周回路Div1へ送信すると、このクロック分周回路Div1はリクエストクロック信号RqCk1を停止する。リクエストクロック信号RqCk1は、メモリチップM1へ入力し、メモリチップM1のクロックドライバDrv2およびクロック分周回路Div２を介してレスポンスクロック信号RsCk1として出力するためレスポンスクロック信号RsCk1も停止する。クロックを停止する際は、ノイズによる誤動作を防ぐために徐々に周波数を落とし、最後に停止させることが良い。
【０３５７】
次に、停止しているリクエストクロック信号RsCk1を再度動作させる場合について説明する。情報処理装置CPU_CHIPが、リクエスト信号RqMux0よりメモリチップM0のID値２とリクエストクロック再開コマンドを入力する。メモリチップM0が、リクエストキュー制御回路RqCTを介して、リクエストクロック再開コマンドをメモリチップM0のクロック分周回路Div1へ送信すると、このクロック分周回路Div1は停止しているリクエストクロック信号RqCk1を再度、動作させる。リクエストクロック信号RqCk1は、メモリチップM1へ入力し、メモリチップM1のクロックドライバDrv2およびクロック分周回路Div2を介してレスポンスクロック信号RsCk1として出力するため、レスポンスクロック信号RsCk1も再度、動作する。クロックを再動作させる際は、ノイズによる誤動作を防ぐために、徐々に周波数を上げ、最後に所望の周波数で動作させることが良い。
【０３５８】
メモリチップM1から出力するリクエストクロック信号RsCk2の周波数制御について説明する。先ず、メモリチップM1から出力するリクエストクロック信号RqCk2のクロック周波数を、特に限定しないが4分の１にする場合について説明する。情報処理装置CPU_CHIPが、リクエスト信号RqMux0よりメモリチップM1のID値1とリクエストクロック分周コマンド4を入力すると、メモリチップM０を通じてID値1とリクエストクロック分周コマンド4がメモリチップM1へ送信される。メモリチップM1が、リクエストキュー制御回路RqCTを介して、リクエストクロック分周コマンド4を自身のクロック分周回路Div1へ送信すると、このクロック分周回路Div1はリクエストクロック信号RqCk0のクロック周波数の4分の1の周波数を持つクロックを発生させ、リクエストクロック信号RqCk2から出力する。リクエストクロック信号RqCk2は、メモリチップM2へ入力し、メモリチップM2のクロックドライバDrv2およびクロック分周回路Div２を介してレスポンスクロック信号RsCk2として出力する。クロックの動作周波数を低くする際は、ノイズによる誤動作を防ぐために徐々に周波数を落とし、最後に所望の周波数で動作させることが良い。
【０３５９】
次に、メモリチップM1から出力するリクエストクロック信号RqCk2を停止する場合について説明する。情報処理装置CPU_CHIPが、リクエスト信号RqMux0よりメモリチップM1のID値1とリクエストクロック停止コマンドを入力するとメモリチップM0を通じてID値1とリクエストクロック停止コマンドがメモリチップM1へ送信される。メモリチップM1は、自身のリクエストキュー制御回路RqCTを介して、リクエストクロック停止コマンドを自身のクロック分周回路Div1へ送信すると、このクロック分周回路Div1はリクエストクロック信号RqCk2を停止する。リクエストクロック信号RqCk2は、メモリチップM2へ入力し、メモリチップM2のクロックドライバDrv2およびクロック分周回路Div２を介してレスポンスクロック信号RsCk2として出力するためレスポンスクロック信号RsCk2も停止する。
【０３６０】
クロックを停止する際は、ノイズによる誤動作を防ぐために徐々に周波数を落とし、最後に停止させることが良い。
【０３６１】
次に、停止しているリクエストクロック信号RsCk2を再度動作させる場合について説明する。情報処理装置CPU_CHIPが、リクエスト信号RqMux0よりメモリチップM1のID値1とリクエストクロック再開コマンドを入力すると、メモリチップM0を通じてID値1とリクエストクロック再開コマンドがメモリチップM1へ送信される。メモリチップM1が、自身のリクエストキュー制御回路RqCTを介して、リクエストクロック再開コマンドを自身のクロック分周回路Div1へ送信すると、このクロック分周回路Div1は停止しているリクエストクロック信号RqCk2を再度、動作させる。リクエストクロック信号RqCk2は、メモリチップM2へ入力し、メモリチップM2のクロックドライバDrv2およびクロック分周回路Div2を介してレスポンスクロック信号RsCk1として出力するため、レスポンスクロック信号RsCk2も再度、動作する。クロックを再動作させる際は、ノイズによる誤動作を防ぐために、徐々に周波数を上げ、最後に所望の周波数で動作させることが良い。
【０３６２】
＜メモリマップの説明＞
図9は、情報処理装置CPU_CHIPが管理するメモリモジュールMEMに対するメモリマップの一例を示したものである。本実施の形態では、特に限定されないが、メモリチップM0の記憶領域は１Gbit、メモリチップM1の記録領域は1Git、メモリチップM2の記憶領域は4Gbit+128Mbit(128Mbitは代替領域)であるメモリモジュールを例に代表的なメモリマップを説明する。
【０３６３】
特に限定しないが、メモリチップM0は揮発性メモリでダイナミックランダムアクセスメモリセルを利用したダイナミックランダムアクセスメモリであり、読み出し時間が15ns程度である。特に限定しないが、メモリチップM１は不揮発性メモリでNOR型フラッシュメモリセルを利用したNOR型フラッシュメモリであり、読み出し時間が80ns程度である。特に限定しないが、メモリチップM2は不揮発性メモリでNAND型フラッシュメモリセルを利用したNAND型フラッシュメモリであり、読み出し時間が25usec程度である。特に限定しないが、メモリチップM１は、ブートデバイスID格納領域BotID-AREA、最終端デバイスID格納領域EndID-AREA、初期プログラム領域InitPR-AREA、プログラム格納領域OSAP-AREAに分かれている。
【０３６４】
ブートデバイスID格納領域BotID-AREAには、ブートデバイスのID情報が格納される。最終端デバイスID格納領域EndID-AREAには、直列接続されているメモリモジュールMEMに関する最終端メモリデバイスID情報が格納される。初期プログラム領域InitPR-AREAには、特に限定しないが、ブートプログラムが格納される。プログラム格納領域OSAP-AREAには、特に限定しないが、オペレイティングシステムやアプリケーションプログラムなどが格納される。特に限定しないが、メモリチップM0はコピー領域COPY-AREA、ワーク領域WORK-AREAに分かれている。ワーク領域WORK-AREAはプログラム実行時のワークメモリとして、コピー領域COPY-AREAはメモリチップM1及びM2からのプログラムやデータをコピーするためのメモリとして利用される。特に限定しないが、メモリチップM２は、データ領域DATA-AREA、代替領域REP-AREAに分かれている。データ領域DATA-AREAには、特に限定しないが、音楽データ、音声データ、動画データ、静止画データなどのデータが格納される。
【０３６５】
また、FLASHは書き換えを繰り返すことによって、信頼性が低下し、書き込み時に書いたデータが、読み出し時には異なるデータとなったり、書き換え時にデータが書き込まれなかったりすることが稀にある。代替領域REP-AREAは、このように不良となったデータを新たな領域へ置き換えるために設けられている。代替領域REP-AREAの大きさは、特に限定しないがメモリチップM2が保証する信頼性が確保できるように決めると良い。
【０３６６】
＜電源投入直後の動作＞
電源投入直後のメモリチップM1から情報処理装置CPU_CHIPへのデータ転送について説明する。電源投入後、情報処理装置CPU_CHIPは自身の持つブートデバイスIDレジスタBotIDを１へ設定する。メモリチップM1はブートデバイスID格納領域BotID-AREAからブートデバイスのID情報１を読み出し、自身のIDレジスタへ１を設定する。これにより、ブートデバイスがメモリチップM1に確定する。
【０３６７】
次に、情報処理装置CPU_CHIPはブートデバイスであるメモリチップM1に格納されているブートプログラム及び最終端メモリデバイスID情報を読み出すため、メモリチップM1のID番号１と読み出し命令をメモリモジュールMEMへ送信する。メモリモジュールMEMは、ID番号１と読み出し命令に従って、メモリチップM1の初期プログラム領域InitPR-AREAからブートプログラムを読み出し、最終端デバイスID格納領域EndID-AREAから最終端メモリデバイスID情報を読み出し、情報処理装置CPU_CHIPへ送信する。このように、電源投入直後に、ブートデバイスのIDを初期設定することで、メモリチップの直列接続によって実現されるメモリモジュールMEM内のブートデバイスを特定することができ、情報処理装置CPU_CHIPとメモリモジュールMEM間の接続信号数を大幅に少なくした上で、情報処理装置CPU_CHIPは、すばやく確実にブートデバイスよりブートプログラムおよび最終端メモリデバイスIDを読み出し、情報処理装置CPU_CHIP及びメモリモジュールMEMを立ち上げることができる。
【０３６８】
＜データコピー動作の説明＞
メモリチップM0のデータ読み出し時間は、メモリチップM2の読み出し時間と比較し、大幅に短い。そこで、前もって必要な画像データをメモリチップM2からメモリチップM0へ転送すれば、情報処理装置CPU_CHIPにて高速に画像処理を行うことができる。特に限定しないが、メモリチップM0、M1、M2のそれぞれのIDレジスタ値が２、１及び３に設定された場合の、メモリチップM２からのメモリチップM0のへのデータ転送について説明する。
【０３６９】
情報処理装置CPU_CHIPはメモリチップM２のデータ領域DATA-AREAからデータを読み出すため、メモリチップM2のID番号３と1ページ(512Byteのデータ+16ByteのECCコード)データ読み出し命令をメモリモジュールMEMへ送信する。メモリモジュールMEMは、ID番号３と1ページデータ読み出し命令に従って、メモリチップM2のデータ領域DATA-AREAから1ページ分のデータを読み出し、ID番号３を付加し、情報処理装置CPU_CHIPへ送信する。
【０３７０】
情報処理装置CPU_CHIPでは、メモリチップM2から送信された1ページ分のデータに対しエラー検出を行う。エラーがなければ、１ページ分のデータをメモリチップM0のコピー領域COPY-AREAへデータを転送するため、情報処理装置CPU_CHIPはメモリチップM0のID番号2と1ページデータ読み出し命令をメモリモジュールMEMへ送信する。エラーがあれば修正を行った後、１ページ分のデータをメモリチップM0のコピー領域COPY-AREAへデータを転送するため、情報処理装置CPU_CHIPはメモリチップM0のID番号2と1ページデータ読み出し命令をメモリモジュールMEMへ送信する。メモリモジュールMEMは、ID番号２と1ページデータ読み出し命令に従って、メモリチップM０のコピー領域COPY-AREAデータ領域へ1ページ分のデータを書き込む。
【０３７１】
次に、情報処理装置CPU_CHIPからメモリチップM0へ高速に画像データが書き込まれ、必要に応じてメモリチップM2へこの画像データを保存する際の、メモリチップM0からのメモリチップM2へのデータ転送について説明する。情報処理装置CPU_CHIPはメモリチップM0のコピー領域COPY-AREAからデータを読み出すため、メモリチップM0のID番号2と1ページ(512Byte)データ読み出し命令をメモリモジュールMEMへ送信する。メモリモジュールMEMは、ID番号0と1ページデータ読み出し命令に従って、メモリチップM0のコピー領域COPY-AREAから1ページ分のデータを読み出し、ID番号2を付加し、情報処理装置CPU_CHIPへ送信する。情報処理装置CPU_CHIPは、メモリチップM0から送信された1ページ分のデータをメモリチップM2のデータ領域DATA-AREAへデータを転送するため、メモリチップM2のID番号2と1ページデータ書き込み命令をメモリモジュールMEMへ送信する。
【０３７２】
メモリモジュールMEMが、メモリチップM0及びM1を通じてメモリチップM2へID番号２と1ページデータ書込み命を送信すると、メモリチップM2は自身のデータ領域DATA-AREAへ1ページ分のデータを書き込む。メモリチップM2はデータの書き込みが成功したかどうかをチェックし、成功すれば書き込み処理を終了する。書き込みが失敗した時には、メモリチップM2は、ID番号２と書込エラー情報を送信し、メモリチップM1及びメモリチップM0を介して、情報処理装置CPU_CHIPへ書込みエラーを通達する。情報処理装置CPU_CHIPは、ID番号２と書込エラー情報を受け取ると、メモリチップM2にあらかじめ用意されている代替領域REP-AREAの新たなアドレスに対して書き込みを行うために、メモリチップM2のID番号2と1ページデータ書き込み命令をメモリモジュールMEMへ送信する。メモリモジュールMEMがメモリチップM0及びM1を通じてID番号２と1ページデータ書込み命令をメモリチップM2へ送信すると、メモリチップM2は自身の代替領域REP-AREAへ1ページ分のデータを書き込む。また、情報処理装置CPU_CHIPは、代替え処理を行った際は、不良アドレスと、不良アドレスに対して、どのアドレスに代替え処理を行ったかというアドレス情報を保持し管理する。
【０３７３】
以上説明したように、メモリチップM2の一部のデータをコピーできる領域をメモリチップ内に確保し、あらかじめメモリチップM2からメモリチップM0へデータを転送しておくことで、メモリチップM0と同等の速度でメモリチップM2のデータを読み出すことができ、情報処理装置CPU_CHIPでの高速処理が可能となる。また、メモリチップM2へデータを書く際は、いったんデータをメモリチップM0へ書き込み、必要に応じてメモリチップM2へ書き戻すことができるため、データの書き込みも高速化することができる。さらに、メモリチップM2からの読み出し時は、エラー検出と訂正を行い、書きこみ時は、書きこみが正しく行われなかった不良アドレスに対して代替処理を行うため、高信頼性を保つことができる。
【０３７４】
＜メモリチップM0の説明＞
図10は、メモリチップM0の構成図の一例である。
【０３７５】
メモリチップM0は、リクエストインターフェース回路ReqIFと、レスポンスインターフェース回路ResIFと、初期化回路INIT、メモリ回路MemVLから構成されている。リクエストインターフェース回路ReqIFはリクエストクロック制御回路RqCkCおよび、リクエストキュー制御回路RqCTから構成される。リクエストクロック制御回路RqCkCはクロックドライバDrv1およびクロック分周回路Div1から構成される。
【０３７６】
リクエストキュー制御回路RqCTはリクエストキュー回路RqQI、リクエストキュー回路RqQXI、リクエストキュー回路RqQXO、IDレジスタ回路IDR、ID比較回路CPQ、レイテンシ値出力設定レジスタ回路LRG、レスポンス順序設定レジスタ回路RRG、リクエスト番号設定回路RNBから構成される。
【０３７７】
特に限定しないが、リクエストキュー回路RqQIは4つのリクエストキューから構成され、リクエストキュー回路RqQXIは4つのリクエストキューから構成され、リクエストキュー回路RqQXOは4つのリクエストキューから構成される。レスポンスインターフェース回路ResIFはレスポンスクロック制御回路RsCkCおよび、レスポンスキュー制御回路RsCTから構成される。レスポンスクロック制御回路RsCkCはクロックドライバDrv2およびクロック分周回路Div2から構成される。
【０３７８】
レスポンスキュー制御回路RsCTは、レスポンスキュー回路RsQo、レスポンスキュー回路RsQp、ステータスレジスタ回路STReg、レスポンススケジュール回路SCH、レイテンシ計算回路LA、レスポンス番号テーブルTBから構成される。
【０３７９】
特に限定しないが、レスポンスキュー回路RsQoは4つのレスポンスキューから構成され、スポンスキュー回路RsQpは4つのレスポンスキューから構成される。
【０３８０】
メモリ回路MemVLは、特に限定しないが、揮発性メモリであり、ダイナミックランダムアクセスメモリセルを利用したダイナミックランダムアクセスメモリである。初期化回路INITは、メモリチップM0への電源供給開始時にメモリチップM0の初期化を行う。リクエストクロック制御回路RqCkCは、クロック信号RqCk0から入力したクロックを、内部クロックck1を通じて、リクエストキュー制御回路RqCT及びレスポンスクロック制御回路RsCkCへ伝える。また、リクエストクロック制御回路RqCkCは、リクエストクロック信号RqCk0から入力されたクロックをクロックドライバDrv1及びクロック分周回路Div1を介して、クロック信号RqCk1を通じて出力する。また、リクエストクロック制御回路RqCkCはリクエスト信号RqMux0を通じて入力した命令に従い、クロック信号ck2およびリクエストクロックRqCk1のクロック周波数を低下させたり、クロックを停止させたり、クロックを再動作させることができる。
【０３８１】
レスポンスクロック制御回路RsCkCは、内部クロック信号ck1から入力したクロックを、内部クロック信号ck3を通じて、レスポンスキュー制御回路RsCTへ出力する。また、レスポンスクロック制御回路RsCkCは内部クロック信号ck1からから入力したクロックを、クロック分周回路Div2を介してクロック信号RsCk0から出力する。また、レスポンスクロック制御回路RsCkCは、クロック信号RsCK1から入力したクロックを、クロックドライバDiv2を介して、クロック信号ck4よりレスポンスキュー制御回路RsCTへ出力する。さらに、レスポンスクロック制御回路RsCkCはリクエスト信号RqMux0を通じて入力した命令に従い、レスポンスクロックRsCk0のクロック周波数を低下させたり、また、クロックを停止させたり、さらに、クロックを再動作させることができる。
【０３８２】
レスポンス順序設定レジスタ回路RRGは、上記命令がレスポンス順序設定レジスタ設定命令の場合に、書き込みデータに含まれるリクエスト番号選択フラグ情報RSELFlag値と、レスポンス順序フラグRRGFlag情報と、ID値を格納する。
【０３８３】
レイテンシ値出力設定レジスタ回路LRGは、上記命令がレイテンシ値出力設定レジスタ設定命令の場合に、書き込みデータに含まれるレイテンシ値出力フラグ情報LRGFlag値とID値を格納する。
【０３８４】
リクエスト番号設定回路RNBは、リクエスト番号選択フラグ情報RSELFlag値が１の場合にリクエストキュー回路RqQIへ入力したリクエストに対応したリクエスト番号ReqNを生成し、リクエスト番号選択フラグ情報RSELFlag値が１の場合には、リクエスト信号RqMux0を通じて入力するリクエスト番号ReqNをリクエスト番号ReqNとする。
【０３８５】
リクエストキュー回路RqQIは、リクエスト信号RqMux0を通じて、ID値、リクエスト番号ReqN、命令、アドレス及び書き込みデータなどが多重化されメモリチップM0へ入力したリクエストを格納し、リクエスト番号ReqNと同じ番号のレスポンス番号ResNを生成し、レスポンスキュー制御回路RsCTへ送信する。
【０３８６】
IDレジスタ回路IDRは、メモリチップM0のID値を格納する。
【０３８７】
ID比較回路CPQは、リクエストキュー回路RqQIに格納されているID値と、IDレジスタ回路IDRに格納されているID値を比較する。
【０３８８】
リクエストキュー回路RqQXI及びリクエストキュー回路RqQXOは、リクエストキュー回路RqQIから転送されたリクエストを格納する。
【０３８９】
レスポンスキュー回路RsQoは、メモリチップM0のメモリ回路MemVLから読み出されたデータ及びIDレジスタ回路IDRから読み出されたID値、レスポンス番号ResNを格納する。
【０３９０】
レスポンスキュー回路RsQpは、レスポンス信号RsMux1を通じて、入力されるID値、レスポンス番号ResN、読み出しデータおよびエラー情報およびステータス情報を格納する。
【０３９１】
レイテンシ計算回路LAは、レイテンシ値出力設定レジスタLRGのレイテンシ値出力フラグ情報LRGFlag値が1の場合には読み出しデータのレイテンシ値を計算し、レイテンシ値出力フラグ情報LRGFlag値が0の場合には、読み出しデータのレイテンシ値を計算しない。
【０３９２】
レスポンス番号テーブルTBは、レスポンス順序設定レジスタの設定に従って読み出しデータの送信順番を決める。
【０３９３】
ステータスレジスタ回路STRRegは、特に限定しないがレスポンスキュー回路RsQoおよびレスポンスキュー回路RsQpへレスポンスが格納されていることを示す未処理レスポンス情報などが格納される。
【０３９４】
レスポンススケジュール回路SCHは、ンスキュー回路RsQoへ格納されているレスポンスと、レスポンスキュー回路RsQpへ格納されているレスポンスとのレスポンス優先順位を決め、優先順位の高いレスポンスを、レスポンス信号RsMux0から出力するための調停を行う。レスポンス優先順位は、レスポンスキュー回路RsQoから出力されたレスポンスの回数と、レスポンスキュー回路RsQpから出力されたレスポンスの回数によってレスポンススケジュール回路SCHが動的に変化させる。
【０３９５】
次に、本メモリチップM0の動作を説明する。
【０３９６】
まず、電源投入時の動作について説明する。
【０３９７】
メモリチップM0へ電源が投入されると初期化回路INITはメモリチップM0の初期化を行う。先ず、IDレジスタ回路IDRの持つIDレジスタの値を０へ、ID有効ビットをLowへ初期設定する。
【０３９８】
レイテンシ出力レジスタLRGが持つイテンシ値出力フラグ情報LRGFlag値およびID情報値は0へ初期設定される。
【０３９９】
レスポンス順序設定レジスタRRGが持つリクエスト番号選択フラグRSELFlag値と、レスポンス順序フラグRRGFlag値と、ID情報値は０へ初期設定される。
【０４００】
次にレスポンススケジュール回路SCHが持つレスポンスキュー回路RsQoに入力するレスポンスの優先順位を１へ、レスポンスキュー回路RsQpに入力するメモリチップM1からのレスポンスの優先順位を2へ、メモリチップM2からのレスポンスの優先順位を3へ設定する。初期化回路INITによる初期設定が終了すると、メモリチップM0は、情報処理装置CPU_CHIPとメモリチップM1との間で通信できることを確認する通信確認動作を行う。メモリチップM0はリクエストイネーブル信号RqEn1がHighになったことを確認し、レスポンスイネーブル信号RsEn1及びリクエストイネーブル信号RqEn0をHighにする。
【０４０１】
次に、情報処理装置CPU_CHIPは、リクエストイネーブル信号RqEn0がHighになったことを確認し、各メモリチップの信号接続が確認されたことを知り、レスポンスイネーブル信号RsEn0をHighにする。通信確認動作が終了すると、情報処理装置CPU_CHIPよりリクエスト信号RqMux0を通じて、ID番号２とID設定命令がメモリチップM0へ転送される。。メモリチップM0では、ID有効ビットがLowのため、まだID番号付けが行われていないと判断し、IDレジスタへID番号２を、ID有効ビットをHighに設定し、ID番号付けを完了する。次に、メモリチップM0はレスポンス信号RsMux0を通じて、メモリチップM0のID値２およびID番号付け完了情報を出力し、情報処理装置CPU_CHIPへ、メモリチップM0のID番号付けが完了したことを通達する。
【０４０２】
次に、電源投入直後の動作が終了した後の動作について説明する。
【０４０３】
先ず、メモリチップM0のレイテンシ値出力レジスタLREGへのデータ設定動作について説明する。
【０４０４】
情報処理装置CPU_CHIPは、リクエスト信号RqMux0を通じて、ID値２、レイテンシ値出力レジスタ設定命令LRGSet、レイテンシ値出力レジスタLRGへの設定値LRGData0を多重化したリクエストReqLRGSet0をクロック信号RqCK0に同期させ、メモリチップM0へ転送する。
【０４０５】
特に、限定しないがレイテンシ出力レジスタLRGへの設定値LRGData0には、レイテンシ値出力フラグ情報LRGFlag値とID値が含まれる。
【０４０６】
メモリチップM0のリクエストキュー制御回路RqCTはリクエストReqLRGSet0を格納する。
【０４０７】
次に、メモリチップM0のリクエストキュー制御回路RqCTはリクエストReqLRGSet0に含まれるID値２と自身のIDレジスタの値2を比較する。双方は一致しているため、メモリチップM0のレイテンシ値出力レジスタLRGへ設定値LRGData0が設定される。図4にメモリチップM0のレイテンシ値出力レジスタLRGへ設定された値の一例を示す。
【０４０８】
メモリチップM0のレスポンス順序設定レジスタRRGへのデータ設定動作について説明する。
【０４０９】
情報処理装置CPU_CHIPは、リクエスト信号RqMux0を通じて、ID値２、レスポンス順序設定レジスタ設定命令RRGSet、レスポンス順序設定レジスタRRGへの設定値RRGData0を多重化したリクエストReqRRGSet0をクロック信号RqCK0に同期させ、メモリチップM0へ転送する。設定値RRGData0には、リクエスト番号選択フラグ情報RSELFlag値と、レスポンス順序フラグRRGFlag情報と、ID値が含まれる。
【０４１０】
メモリチップM0のリクエストキュー制御回路RqCTはリクエストReqRRGSet0を格納する。
【０４１１】
次に、メモリチップM0のリクエストキュー制御回路RqCTはリクエストReqRRGSet0に含まれるID値２と自身のIDレジスタの値2を比較する。双方は一致しているため、メモリチップM0のレスポンス順序設定レジスタRRGへ設定値RRGData0が設定される。図6にメモリチップM0のレスポンス順序設定レジスタRRGへ設定された値の一例を示す。
【０４１２】
メモリチップM0のレイテンシ値出力レジスタLRGが図4へ示されている値に設定され、レスポンス順序設定レジスタRRGが図6へ示されている値に設定されている場合に、情報処理装置CPU_CHIPからリクエストがメモリチップM0へ生じた際の動作を説明する。
【０４１３】
メモリチップM0のリクエストキュー回路RqQIは、特に限定しないが２つのリクエストキューRqQI-0及びRqQI-1から構成されている。また、メモリチップM0は、リクエストキューRqQI-0及びRqQI-1へリクエストがエントリされていないため、リクエストイネーブル信号RqEn0をHighにし、リクエストが受け付け可能であることを情報処理装置CPU_CHIPへ知らせる。メモリチップM0のレスポンスキュー回路RqQoは、特に限定しないが2つのレスポンスキューRqQo-0及びRqQo-1から構成されている。
【０４１４】
メモリチップM0のレスポンスキュー回路RqQpは、特に限定しないが2つのレスポンスキューRqQp-0及びRqQp-1から構成されている。
【０４１５】
情報処理装置CPU_CHIPは、レスポンスイネーブル信号RsEn0をHighにし、レスポンスが受け付け可能であることをメモリチップM0へ知らせる。情報処理装置CPU_CHIPは、リクエスト信号RqMux0を通じて、ID値２、リクエスト番号ReqN値1、バンクアクティブ命令BA、バンクアドレスBK1、ロウアドレスRowを多重化したリクエストReqBAb0m0をクロック信号RqCk0に同期させ、メモリチップM0へ転送する（図11：Step1）。
【０４１６】
次に、リクエスト信号RqMux0を通じて、ID値２、リクエスト番号ReqN値2、32バイトデータ読み出し命令RD32、バンクアドレスBK０、カラムアドレスCol255を多重化したリクエストReqRD32b0m0をクロック信号RqCK0に同期させ、メモリチップM0へ転送する（図11：Step1）。
【０４１７】
リクエストイネーブル信号RqEn0がLowであれば(図11：Step2)、情報処理装置CPU_CHIPからのリクエストはメモリチップM0のリクエストキュー回路RqQIへ格納されない。リクエストイネーブル信号RqEn0がHighであれば（図11：Step2）、メモリチップM0へのリクエストReqBAb0m0とリクエストReqRD32b0m0は順に、メモリチップM0の、リクエストキュー回路RqQIのリクエストキューRqQI-0およびRqQI-1へ格納される（図11：Step3）。
【０４１８】
これで、リクエストキュー回路RqQIの全リクエストキューはエントリされ、情報処理装置CPU_CHIPからの新たなリクエストを受け付け不可能なため、リクエストイネーブル信号RqEn0をLowにする。リクエストイネーブル信号RqEn0がLowになったことで、情報処理装置CPU_CHIPは、メモリチップM0がリクエストを受け付けられなくなったことを知ることができる。
【０４１９】
その後、ID比較回路CPQは、リクエストキューRqQI-0へエントリされたリクエストReqBAb0m0に含まれるID値２と、IDレジスタ回路IDRに保持されているID値２を比較する（図11：Step4）。比較結果が一致したため、リクエストReqBAb0m0は、リクエストキュー回路RqQXIへ転送される（図11：Step5）。比較結果が不一致の場合は、ID値とリクエスト番号ReqN値を含んだリクエストは、リクエストキュー回路RqQXOへ転送され、メモリチップM1へ転送される（図11：Step12）。
【０４２０】
次に、リクエストキュー回路RqQXIは格納しているリクエストが読み出し命令を含むかどうかチェックする（図11：Step6）。読み出し命令を含んでいる場合は、リクエストキュー回路RqQXIは、レスポンスキュー回路RsQoのレスポンスキューRqQp-0及びRqQp-1に空きがあるかをチェックする（図11：Step7）。リクエストReqBAb0m0は読み出し命令を含んでいないため、リクエストキュー回路RqQXIは格納しているリクエストReqBAb0m0をメモリ回路MemVLへ転送する（図11：Step10）。メモリ回路MemVLはリクエストReqBAb0m0に従って動作する（図11：Step11）。具体的には、メモリ回路MemVLはリクエストReqBAb0m0に含まれるバンクアクティブ命令BA、バンクアドレスBK0、ロウアドレスRow63によって、バンク０内のロウ６３に接続されている1kByte分のメモリセルを活性化し、バンク０内のセンスアンプへ転送する（図11：Step11）。
【０４２１】
リクエストReqBAb0m0が処理されたことによって、リクエストキューRqQI-0がひとつ分空いたため、メモリチップM0は、リクエストイネーブル信号RqEn0をHighにし、新たなリクエストを受け付け可能であることを情報処理装置CPU_CHIPへ知らせる。情報処理装置CPU_CHIPは、メモリチップM0のリクエストイネーブル信号RqEn0がHighになったことを確認し、新たなリクエストとしてリクエスト信号RqMux0を通じて、ID値２、リクエスト番号ReqN値3、32バイト書き込み命令WT、バンクアドレスBK０、カラムアドレスCol127、32バイト分の書き込みデータを多重化したリクエストReqWT23b0m0をクロック信号RqCK0に同期させ、メモリチップM0へ転送する(図11：Step1)。
【０４２２】
リクエストイネーブル信号RqEn0をチェックし（図11：Step2）、リクエストイネーブル信号RqEn0がHighのため、メモリチップM0は、情報処理装置CPU_CHIPからのリクエストReqWT23b0m0を自身のリクエストキュー制御回路RqCT内のリクエストキューRqQI-0へ格納する（図11：Step3）。
【０４２３】
メモリチップM0は、新たなリクエストReqWT23b0m0を、自身のリクエストキュー回路RqQI内のリクエストキューRqQI-0へ格納すること（図11: Step3）とは独立して並行に、すでにリクエストキューRqQI-1に格納されているリクエストReqRD32b0m0に対する処理を行うことができる(図11：Step4以降)。
【０４２４】
次に、すでにリクエストキューRqQI-1に格納されているリクエストReqRD32b0m0についての動作を説明する。
【０４２５】
ID比較回路CPQは、リクエストキューRqQI-1へエントリされたリクエストReqRD32b0m0に含まれるID値２と、IDレジスタ回路IDRに保持されているID値２を比較する（図11：Step4）。比較結果が一致したため、リクエストReq RD32b0m0は、リクエストキュー回路RqQXIへ転送される（図11：Step5）。比較結果が不一致の場合は、リクエストReqRD32b0m0は、リクエストキュー回路RqQXOへ転送され、メモリチップM1へ転送される（図11：Step12）。次に、リクエストキュー回路RqQXIは格納しているレスポンスが読み出し命令を含むかどうかチェックする（図11：Step6）。
【０４２６】
リクエストReqRD32b0m0読み出し命令を含んでいるため、リクエストキュー回路RqQXIは、レスポンスキュー回路RsQoのレスポンスキューRqQp-0及びRqQp-1に空きがあるかをチェックする（図11：Step7）。レスポンスキュー回路RsQoのレスポンスキューRqQp-0及びRqQp-1に空きがなければ、空きができるまで、リクエストキュー回路RqQXIは、リクエストReq RD32b0m0の転送を中断する。レスポンスキュー回路RsQoのレスポンスキューRqQp-0及びRqQp-1に空きがあれば、リクエストキュー回路RqQXIは格納しているリクエストReq RD32b0m0をメモリ回路MemVLへ転送する（図11：Step8）。メモリ回路MemVLはリクエストReq RD32b0m0に従って動作する（図11：Step9）。具体的には、メモリ回路MemVLはリクエストReqRD32b0m0に含まれる、ID値２、リクエスト番号ReqN値2、32バイトデータ読み出し命令RD、バンクアドレスBK０、カラムアドレスCol255によって、バンク０のセンスアンプに保持されているデータのなかで、カラムアドレス255を開始アドレスとした32バイト分のデータが読み出だされ（図11：Step９）、IDレジスタ値２と、リクエスト番号ReqN値2と等しいレスポンス番号ResN値2を含めて、レスポンスキュー制御回路RsCT内のレスポンスキューRsQoのレスポンスキューRsQo-0へレスポンスResRD32b0m0としてエントリされる（図12：Step13）。
【０４２７】
レスポンスキュー回路RsQoおよびレスポンスキュー回路RsQpへレスポンスがエントリされると、そのレスポンスに対するレイテンシを計算する（図12：Step14）。次に、レスポンスイネーブル信号RsEn0をチェックし（図12：Step15）、スポンスイネーブル信号RsEn0がHighの際に、レスポンス番号ResNとレイテンシ値を情報処理装置CPU_CHIPへ送信する（図12：Step16）。
【０４２８】
レスポンススケジュール回路SCHは、レスポンスキュー回路RsQoおよびレスポンスキュー回路RsQpへエントリされているレスポンス数を、ステータスレジスタSTRegへ保存する（図12：Step17）。さらに、レスポンスキュー回路RsQoおよびレスポンスキュー回路RsQpへエントリされているレスポンスに対するレスポンス優先順位を決定する（図12：Step18）。次に、レスポンスイネーブル信号RsEn0をチェックし（図12：Step19）、スポンスイネーブル信号RsEn0がHighの際に、レスポンス優先順位の最も高いレスポンスをレスポンス信号RsMux0を通じて、情報処理装置CPU_CHIPへ送信する（図12：Step20）。レスポンスイネーブル信号RsEn0がLowであれば、情報処理装置CPU_CHIPへ送信は行わない。
【０４２９】
レスポンスキュー回路RsQoおよびレスポンスキュー回路RsQpの１つのレスポンスが情報処理装置CPU_CHIPへ完全に送信されると、レスポンススケジュール回路SCHは、スポンスキュー回路RsQoおよびレスポンスキュー回路RsQpへエントリされているレスポンス数をチェックし、最新のレスポンス数をステータスレジスタSTRegへ保存する（図12：Step21）。
【０４３０】
ここでは、レスポンスイネーブル信号RsEn0がHighであり、レスポンスキュー回路RsQoおよびレスポンスキュー回路RsQpへエントリされているレスポンスが、レスポンスResRD32b0m0のみのため、レスポンスResRD32b0m0に対するレイテンシ値Lat32b0m0を計算し、レスポンスResRD32b0m0に含まれるレスポンス番号ResN値2とレイテンシ値Lat32b0m0を情報処理装置CPU_CHIPへ送信する。
【０４３１】
情報処理装置CPU_CHIPは、リクエストReqRD32b0m0のリクエスト番号ReqN値2に対応するレスポンス番号値2とレイテンシ値Lat32b0m0を受け取ることで、レスポンスResRD32b0m0が情報処理装置CPU_CHIPへ入力するまでのレイテンシ値を確認することができる。
【０４３２】
次に、レスポンススケジュール回路SCHは、ステータスレジスタSTRegへレスポンス数１を保存し、さらにレスポンスeRsRD32b0m0のレスポンス優先順位を最高位に設定し、レスポンスRsRD32b0m0を情報処理装置CPU_CHIPへ送信する。
【０４３３】
レスポンスRsRD32b0m0にはIDレジスタ値２、リクエスト番号ReqN値2と等しいレスポンス番号値2、32バイト分のデータが含まれる。
【０４３４】
情報処理装置CPU_CHIPは、リクエストReqRD32b0m0のリクエスト番号ReqN値2に対応するレスポンス番号値2を受け取ることで、レスポンスResRD32b0m0がリクエストReqRD32b0m0のレスポンスであることを確認できる。
【０４３５】
レスポンスResRD32b0m0が情報処理装置CPU_CHIPへ送信されると、レスポンススケジュール回路SCHは、レスポンスキュー回路RsQoおよびレスポンスキュー回路RsQpへエントリされているレスポンスが存在しないため、ステータスレジスタSTRegへレスポンス数0を保存する。
【０４３６】
リクエストReqRD32b0m0に対応するレスポンスResRD32b0m0がレスポンスキュー回路RsQoへエントリされると、レスポンスResRD32b0m0が情報処理装置CPU_CHIPへ出力されている最中でも、リクエストReqWT23b0m0に対する処理を行うことができる(図11：Step4以降)。
【０４３７】
次に、すでにリクエストキューRqQI-0に格納されているリクエストReq WT23b0m0についての動作を説明する。ID比較回路CPQは、リクエストキューRqQI-0へエントリされたリクエストReq WT23b0m0に含まれるID値２と、IDレジスタ回路IDRに保持されているID値２を比較する（図11：Step4）。比較結果が一致したため、リクエストReq WT23b0m0は、リクエストキュー回路RqQXIへ転送される（図11：Step5）。比較結果が不一致の場合は、リクエストReqWT23b0m0は、リクエストキュー回路RqQXOへ転送され、メモリチップM1へ転送される（図11：Step12）。
【０４３８】
次に、リクエストキュー回路RqQXIは格納しているレスポンスが読み出し命令を含むかどうかチェックする（図11：Step6）。読み出し命令を含んでいる場合は、リクエストキュー回路RqQXIは、レスポンスキュー回路RsQoのレスポンスキューRqQp-0及びRqQp-1に空きがあるかをチェックする（図11：Step7）。リクエストReqWT23b0m0は読み出し命令を含んでいないため、リクエストキュー回路RqQXIは格納しているリクエストReqWT23b0m0をメモリ回路MemVLへ転送する（図11：Step10）。メモリ回路MemVLはリクエストReqWT23b0m0に従って動作する（図11：Step11）。具体的には、メモリ回路MemVLはリクエストReqWT23b0m0に含まれるID値２、32バイト書き込み命令WT、バンクアドレスBK０、カラムアドレスCol127および32バイト分の書き込みデータによって、メモリバンク0のセンスアンプへ、カラムアドレス127を開始アドレスとした32バイト分のデータを書き込む。
【０４３９】
図13はメモリチップM１からメモリチップM0へレスポンスが発生した際の、動作の一例を示すフローチャートである。
【０４４０】
レスポンス信号RsMux1より、レスポンスクロック信号RqCK1に同期し、レスポンス番号ResN値15とレイテンシ値Latm1を含んだレスポンスResLatm1がメモリチップM0へ送信されると（図13：Step1）、レスポンスイネーブル信号ResEn1がLowであれば（図13：Step2）、メモリチップM0のレスポンスキュー回路RsQpへ格納されない。レスポンスイネーブル信号ResEn1がHighであれば（図13：Step2）、メモリチップM0のレスポンスキュー回路RsQpへ格納される（図13：Step3）。
【０４４１】
レスポンスキュー回路RsQpへレスポンスResLatm1がエントリされると、そのレスポンスに対するレイテンシをレイテンシ値Latm1から計算し、レイテンシ値Latm1m0を求める（図13：Step4）。次に、レスポンスイネーブル信号RsEn0をチェックし（図13：Step5）、レスポンスイネーブル信号RsEn0がHighの際に、レスポンス番号ResN値15とレイテンシ値Latm1m0を含んだレスポンスResLatm1m0が情報処理装置CPU_CHIPへ送信する（図13：Step6）。
【０４４２】
情報処理装置CPU_CHIPは、レスポンス番号ResN値15とレイテンシ値Latm1m0を受け取ることで、リクエスト番号ReqN値15を持つリクエストに対するレスポンス番号ResN値15を持つレスポンスが情報処理装置CPU_CHIPへ入力するまでのレイテンシ値を確認することができる。
【０４４３】
メモリチップM0へレスポンス番号ResN値20と読み出しデータRDdataを含んだレスポンスResRDm1m0が送信される（図13：Step7）と、レスポンスイネーブル信号ResEn1がLowであれば（図13：Step8）、メモリチップM0のレスポンスキュー回路RsQpへ格納されない。レスポンスイネーブル信号ResEn1がHighであれば（図13：Step8）、メモリチップM0のレスポンスキュー回路RsQpへ格納される（図13：Step9）。
【０４４４】
レスポンスキュー回路RsQpへレスポンスResRDm1m0がエントリされると、レスポンススケジュール回路SCHは、レスポンスキュー回路RsQoおよびレスポンスキュー回路RsQpへエントリされているレスポンス数を、ステータスレジスタSTRegへ保存する（図13：Step10）。さらに、レスポンスキュー回路RsQoおよびレスポンスキュー回路RsQpへエントリされているレスポンスに対するレスポンス優先順位を決定する（図13：Step11）。次に、レスポンスイネーブル信号RsEn0をチェックし（図13：Step12）、スポンスイネーブル信号RsEn0がHighの際に、レスポンス優先順位の最も高いレスポンスをレスポンス信号RsMux0より、情報処理装置CPU_CHIPへ送信する（図13：Step13）。レスポンスイネーブル信号RsEn0がLowであれば、情報処理装置CPU_CHIPへ送信は行わない。
【０４４５】
情報処理装置CPU_CHIPは、レスポンス番号ResN値15を持つレスポンスResRDm1m0を受け取ることで、このレスポンスがリクエスト番号ReqN値15を持つリクエストに対するレスポンスであることを確認できる。
【０４４６】
レスポンスキュー回路RsQoおよびレスポンスキュー回路RsQpの１つのレスポンスが情報処理装置CPU_CHIPへ完全に送信されると、レスポンススケジュール回路SCHは、スポンスキュー回路RsQoおよびレスポンスキュー回路RsQpへエントリされているレスポンス数をチェックし、最新のレスポンス数をステータスレジスタSTRegへ保存する（図13：Step14）。
【０４４７】
レスポンススケジュール回路SCHの動作について説明する。
【０４４８】
図14はレスポンススケジュール回路SCHの動作を示すフローチャートである。レスポンススケジュール回路SCHでは、先ず、レスポンスキュー回路RsQoおよびレスポンスキュー回路RsQpへレスポンスがエントリされているかをチェックする(Step1)。レスポンスキュー回路RsQoおよびレスポンスキュー回路RsQpのいずれにもレスポンスがエントリされていなければ、再度、レスポンスキュー回路RsQoおよびレスポンスキュー回路RsQpへのエントリをチェックする。レスポンスキュー回路RsQoおよびレスポンスキュー回路RsQpのいずれかにレスポンスがエントリされていれば、レスポンスの優先順位をチェックし、最高位のレスポンス優先順位を持つレスポンスの送信準備を行う（Step2）。
【０４４９】
次に、レスポンスイネーブル信号RsEn0をチェックし（Step3）、Lowの際はレスポンスを出力せず、レスポンスイネーブル信号RsEn0がHighを待つレスポンスイネーブル信号RsEn0がHighを待つ。レスポンスイネーブル信号RsEn0がHighの際は、最高位のレスポンス優先順位を持つレスポンスを出力する（Step4）。その、レスポンスが出力された後は、レスポンスに関する出力優先順位を変化させる（Step5）。
【０４５０】
メモリチップM0のレスポンススケジュール回路SCHで行うレスポンス優先順位の変更動作の一例について説明する。図15では、メモリチップM0が装備するレスポンススケジュール回路SCHが行う動的レスポンス優先順位の制御を示す。
【０４５１】
先ず、メモリチップM0での、レスポンス優先順位の制御を説明する。電源投入直後の初期設定（Initial）にて、レスポンスキュー回路RsQoへエントリされるメモリチップM0のレスポンスの優先順位（PRsQo(M0)）は１、レスポンスキュー回路RsQpエントリされるメモリチップM1のレスポンスの優先順位（PRsQp(M1)）は２に、レスポンスキュー回路RsQpエントリされるメモリチップM2のレスポンスの優先順位（PRsQp(M2)）は３に設定される。特に限定しないが、レスポンスの順位の小さい方がレスポンスの順位が高いとする。レスポンスキュー回路RsQoへエントリしたメモリチップM0のレスポンス（RsQo(M0)）がNtime回分出力すると、レスポンスキュー回路RsQoへエントリされるメモリチップM0のレスポンスの優先順位（PRsQo(M0)）は最も低い３となり、メモリチップM1のレスポンスの優先順位（PRsQp(M1)）は最も高い１となり、レスポンスキュー回路RsQPエントリされるメモリチップM２のレスポンスの優先順位（PRsQp(M2)）は２となる。
【０４５２】
レスポンスキュー回路RsQpへエントリされるメモリチップM１のレスポンスPRsQp(M1)）が、Mtime回分出力するとレスポンスキュー回路RsQpへエントリされるメモリチップM1のレスポンスの優先順位（PRsQp(M1)）は最も低い３となり、レスポンスキュー回路RsQPエントリされるメモリチップM２のレスポンスの優先順位（PRsQp(M1)）は最も高い1となり、レスポンスキュー回路RsQPoへエントリされるメモリチップM０のレスポンスの優先順位（PrsQo(M０)）は２となる。
【０４５３】
次に、レスポンスキュー回路RsQpへエントリされるメモリチップM２のレスポンスPRsQp(M2)）が、Ltime回分出力するとレスポンスキュー回路RsQPへエントリされるメモリチップM2のレスポンスの優先順位（PRsQp(M2)）は最も低い３となり、レスポンスキュー回路RsQPoへエントリされるメモリチップM０のレスポンスの優先順位（PrsQo(M０)）は最も高い1となる。レスポンスキュー回路RsQPエントリされるメモリチップM２のレスポンスの優先順位（PRsQp(M1)）は2となる。レスポンスキュー回路RsQoへエントリされるメモリチップM0からのレスポンスのレスポンス優先順位を変更するためのレスポンス出力回数Ntime、レスポンスキュー回路RsQpへエントリされるメモリチップM1からのレスポンスのレスポンス優先順位を変更するためのレスポンス出力回数Mtimeおよびレスポンスキュー回路RsQpへエントリされるメモリチップM2からのレスポンスのレスポンス優先順位を変更するためのレスポンス出力回数Ltimeは、電源投入直後の初期設定（Initial）にて、特に限定しないが、それぞれ、10回、2回、1回に設定される。
【０４５４】
さらに、レスポンス出力回数Ntime、Mtime、Ltimeは、情報処理装置CPU_CHIPから設定可能であり、本発明が利用される携帯機器などのシステム構成にあわせて、高性能化が図れるように、それぞれを設定することができる。
【０４５５】
＜クロック制御＞
図16(a)は、メモリチップM0から出力するレスポンスクロック信号RsCk0を停止する動作の一例である。情報処理装置CPU_CHIPは、レスポンスキュー回路RsQoおよびレスポンスキュー回路RsQpへエントリされているレスポンス数ResNを確認するために、リクエスト信号RqMux0よりメモリチップM0のID値２とレスポンス数確認命令を多重化したリクエストReqRNoを入力する（Step2）。メモリチップM0のリクエストキュー回路RqQIはリクエストReqRNoを格納する。次に、ID比較回路CPQは、リクエストキュー回路RqQIへ格納されているリクエストReqRNoに含まれるID値２とIDレジスタ回路IDRに保持されているID値２を比較し、一致したため、リクエストReqBAb0m0は、リクエストキュー回路RqQXIへ転送される。
【０４５６】
リクエストキュー回路RqQXIは、リクエストReqBAb0m0を、ステータスレジスタ回路STRegへする。ステータスレジスタ回路STRegは、ID値２含めて、レスポンス数ResNをレスポンスキュー回路RsQoへ送信し、レスポンスキュー回路RsQoは、レスポンス信号RsMux0を通じて、ID値２およびレスポンス数ResNを情報処理装置CPU_CHIPへ送信する（Step3）。つぎに、ID値２およびレスポンス数ResNを受け取った情報処理装置CPU_CHIPは、レスポンス数ResNが０であるかどうかチェックを行う（Step4）。レスポンス数ResNが０では無い場合、未だ、レスポンスキュー回路RsQoおよびレスポンスキュー回路RsQpへエントリされているレスポンスが存在するので、再度、レスポンス数確認命令をメモリチップM0へ送信する（Step2）。
【０４５７】
レスポンス数ResNが0の場合は、レスポンスキュー回路RsQoおよびレスポンスキュー回路RsQpへエントリされているレスポンスが存在しないため、リクエスト信号RqMux0より、レスポンスクロック信号RsCk0の停止命令を、メモリチップM0へ送信する（Step5）。リクエスト信号RqMux0よりリクエストとしてID値２、レスポンスクロック停止コマンドが多重化されたリクエストReqStop2がメモリチップM0へ入力する。メモリチップM0はリクエストReqStop2を自身のリクエストキュー制御回路RqCT内のリクエストキューへ格納する。その後、リクエストキュー制御回路RqCT内のID比較回路はリクエストReqStop2に含まれるID値２と自身のIDレジスタの値２を比較する。比較結果は一致しており、リクエストキュー制御回路RqCTはレスポンスクロック制御回路RsCkC内のクロック分周回路Div2へリクエストReqStop2を送信する（Step5）。
【０４５８】
クロック分周回路Div2は、リクエストReqStop2に従い、レスポンスクロック信号RsCK0のクロック周波数を徐々に低下させ、レスポンスクロック信号RsCK0の停止準備が整った時点で、レスポンススケジュール回路SCHを通じて、レスポンス信号RsMux0より、ID値２およびレスポンスクロック停止通達情報を情報処理装置CPU_CHIPへ送信する（Step6）。その後、クロック分周回路Div2は、クロック信号ck3およびレスポンスクロック信号RsCK0を停止する（Step7）。
【０４５９】
図16(b)は、メモリチップM0から出力するレスポンスクロック信号RsCk0のクロック周波数を低下させるための動作の一例である。図16(b)のStep１からStep4までの動作は、図16（a）と同等であるため、Step5より説明する。リクエスト信号RqMux0よりリクエストとしてID値2、レスポンスクロック分周コマンド、および分周比8が多重化されたリクエストReqDIV8がメモリチップM0へ送信される（Step5）。メモリチップM0は、自身のリクエストキュー制御回路RqCT内のID比較回路にて、リクエストReqDIV8に含まれるID値2と自身のIDレジスタの値2を比較する。比較結果は、一致のため、リクエストReqDIV8は、リクエストクロック制御回路RqCkC内のクロック分周回路Div2へ送信される（Step5）。
【０４６０】
クロック分周回路Div2は、リクエストReqDIV8に従い、レスポンスクロック信号RsCK0のクロック周波数を徐々に低下させ、最終的に、リクエストクロック信号RqC2を8分の1分周したクロックを、クロックCK3およびレスポンスクロック信号RsCk2から出力する（Step6）。レスポンスクロック信号RsCK0のクロック周波数が、所望の周波数へ変更された後、クロック分周回路Div2はレスポンススケジュール回路SCHを通じて、レスポンス信号RsMux0より、ID値２およびレスポンスクロック分周完了情報を情報処理装置CPU_CHIPへ送信する（Step７）。
【０４６１】
図16(c)は、周や停止されたレスポンスクロック信号RsCk0を再度リクエストクロック信号RqCk0と同等の周波数で動作させ場合の動作の一例である。メモリチップM0から出力するレスポンスクロック信号RsCk0のクロック周波数を低下させるための動作の一例である。リクエスト信号RqMux0よりリクエストとしてID値２、レスポンスクロック再開コマンドが多重化されたリクエストReqStart2がメモリチップM0入力する。
【０４６２】
メモリチップM0はリクエストReqStart2を自身のリクエストキュー制御回路RqCT内のリクエストキューへ格納する(Step2)。その後、リクエストキュー制御回路RqCT内のID比較回路はリクエストReqStart2に含まれるID値２と自身のIDレジスタの値２を比較する。比較結果は一致するため、リクエストReqDIV4を自身へのリクエストであると判断する。リクエストキュー制御回路RqCTはレスポンスクロック制御回路RsCkC内のクロック分周回路Div2へリクエストReqStart2を送信する(Step2)。クロック分周回路Div3は、リクエストReqStart2に従い、徐々にクロック周波数を上げ、最終的に、リクエストクロック信号RqCk0と同等の周波数を持つのクロックを、クロックck3およびレスポンスクロック信号RsCK0より出力する(Step3)。
【０４６３】
レスポンスクロック信号RsCK0のクロック周波数が、所望の周波数へ変更された後、クロック分周回路Div2はレスポンススケジュール回路SCHを通じて、レスポンス信号RsMux0より、ID値２およびレスポンスクロック再開完了情報を情報処理装置CPU_CHIPへ送信する（Step4）。上記はレスポンスクロック信号RsCk0についてのクロック制御方法について説明したが、リクエストクロック信号RqCk1についてのクロック制御も同様に行うことができることは言うまでもない。
【０４６４】
＜メモリ回路MemVL＞
図17は、メモリチップM0が装備するメモリ回路MemVLの回路ブロック図の一例である。
【０４６５】
メモリ回路MemVLは、コマンドデコーダCmdDec、制御回路Cont Logic、リフレッシュカウンタRefC、温度計Thmo、ライトデータバッファWDataLat、リードデータバッファRDataLat、データ制御回路DataCont、およびメモリバンクBANK0〜BANK7から構成されている。
【０４６６】
また、各メモリバンクBANK0〜BANK7はロウアドレスバッファRadLat、カラムアドレスバッファCadLat、ロウデコーダRowDec、カラムデコーダColDec、センスアンプSenseAmp、メモリ回路MBank0〜MBank7から構成されている。
【０４６７】
メモリ回路MemVLの読み出し動作を説明する。
【０４６８】
リクエストキューRqQXIへバンクアドレス７、ロウアドレス５格納されており、バンクアクティブ命令BAがコマンド信号Commandから、バンクアドレス７およびロウアドレス５が、アドレス信号Addressよりメモリ回路MemVLへ送信される。コマンドデコーダCmdDecはバンクアクティブ命令BAを解読し、制御回路Cont LogicによってメモリバンクBANK7が選択され、メモリバンクBANK7のロウアドレスバッファRadLatへロウアドレス５が格納され、ロウデコーダRowDecへ入力される。その後メモリ回路MBank７内のロウアドレス５に接続されているメモリセルが活性化され、1kByte分のデータがセンスアンプSenseAmpへ転送される。
【０４６９】
つぎに、リクエストキューRqQXIへ8バイトデータリード命令RD８、バンクアドレス７、カラムアドレス64が格納されており、８バイトデータリード命令RD８がコマンド信号Commandから、バンクアドレス７およびカラムアドレス６３が、アドレス信号Addressよりメモリ回路MemVLへ送信される。
【０４７０】
コマンドデコーダCmdDecは８バイトデータリード命令RD８を解読し、制御回路Cont LogicによってメモリバンクBANK7が選択され、メモリバンクBANK7カラムアドレスバッファCAddLatへカラムアドレス６３を格納され、カラムデコーダColDecへ入力される。
【０４７１】
その後、カラムアドレス64を開始アドレスとして、８バイト分のデータが、センスアンプSenseAmpから読み出され、データ制御回路DataContを介してリードデータバッファRDataLatへ転送され格納される。その後読み出された８バイト分のデータはレスポンスキュー回路RsQoへ転送される。
【０４７２】
次に、メモリ回路MemVLの書込み動作を説明する。リクエストキューRqQXIへ８バイトデータライト命令WT８、バンクアドレス７、カラムアドレス１２８が格納されており、８バイトデータライト命令RD８がコマンド信号Commandから、バンクアドレス７およびカラムアドレス１２７が、アドレス信号Addressより、８バイトデータがライトデータ信号WDataよりメモリ回路MemVLへ送信される。
【０４７３】
コマンドデコーダCmdDecは８バイトデータライト命令WT８を解読し、制御回路Cont LogicによってメモリバンクBANK7カラムアドレスバッファCAddLatへカラムアドレス128を格納され、カラムデコーダColDecへ入力され、８バイト分のライトデータはライトデータバッファWData Latへ格納される。
【０４７４】
その後カラムアドレス１２８を開始アドレスとして、８バイト分のデータが、ライトデータバッファWData Latから、データ制御回路DataContを介して、メモリバンクBank７内のセンスアンプSenseAmpへ転送され、メモリ回路Mbank7へ書き込まれる。
【０４７５】
各メモリバンクBANK0〜BANK7は独立に動作するため、異なるバンク間では、読み出し動作と書き込み動作を同時に実行でき、高速化を図ることができる。
【０４７６】
つぎに、リフレッシュ動作について説明する。メモリ回路MemVLは揮発性メモリのため、データ保持のために定期的にリフレッシュ動作を行う必要がある。リクエストキューRqQXIへ格納されているリフレッシュ命令REFが、コマンド信号Commandより入力する。コマンドデコーダCmdDecは、リフレッシュ命令REFを解読し、制御回路Cont LogicがリフレッシュカウンタRefCへリフレッシュ動作を行うように指示する。リフレッシュカウンタRefCは制御回路Cont Logicの指示により、リフレッシュ動作を行う。
【０４７７】
つぎに、セルフリフレッシュ動作について説明する。メモリ回路MemVLへのリクエストが長期間生じないときは、セルフリフレッシュ状態へ動作モードを切り替え、メモリ回路MemVL自らがリフレッシュ動作を行うことができる。
【０４７８】
リクエストキューRqQXIへ格納されているセルフリフレッシュ・エントリ命令SREFが、コマンド信号Commandより入力する。コマンドデコーダCmdDecは、セルフリフレッシュ・エントリ命令SREFを解読し、制御回路Cont Logicは全回路をセルフリフレッシュ状態へ動作モードを切り替える。さらに、リフレッシュカウンタRefCへ、自動的に、定期的にセルフリフレッシュ動作を行うように指示する。リフレッシュカウンタRefCは制御回路Cont Logicの指示により、自動的に、定期的にセルフリフレッシュ動作を行う。
【０４７９】
この際のセルフリフレッシュ動作では、温度によってセルフリフレッシュの頻度を変化させることができる。
【０４８０】
一般的に、揮発性メモリでは、温度が高い場合はデータ保持時間が短くなり、低い場合は長くなるという性質がある。そこで、温度計で温度を検知し、温度が高い場合が、セルフリフレッシュの周期を短くし、温度が低い場合はセルフリフレシュの周期を長くし、セルフリフレッシュ動作を行う。これによって、無駄なセルフリフレシュ動作を削減でき低電力化が図れる。
【０４８１】
セルフリフレッシュ状態を抜け出すには、セルフリフレッシュ・解除命令SREFXを、コマンド信号Commandより入力することで実現できる。セルフリフレッシュ状態を抜け出した後の、データ保持動作はリフレッシュ命令REFによって行われる。
【０４８２】
＜メモリチップM1の説明＞
図18は、メモリチップM１の構成図の一例である。
【０４８３】
メモリチップM1は、リクエストインターフェース回路ReqIFと、レスポンスインターフェース回路ResIFと、初期化回路INIT、メモリ回路MemNV1から構成されている。リクエストインターフェース回路ReqIFはリクエストクロック制御回路RqCkCおよび、リクエストキュー制御回路RqCTから構成される。リクエストクロック制御回路RqCkCはクロックドライバDrv1およびクロック分周回路Div1から構成される。
【０４８４】
リクエストキュー制御回路RqCTはリクエストキュー回路RqQI、リクエストキュー回路RqQXI、リクエストキュー回路RqQXO、IDレジスタ回路IDR、ID比較回路CPQ、レイテンシ値出力設定レジスタ回路LRG、レスポンス順序設定レジスタ回路RRG、リクエスト番号設定回路RNBから構成される。
【０４８５】
特に限定しないが、リクエストキュー回路RqQIは4つのリクエストキューから構成され、リクエストキュー回路RqQXIは4つのリクエストキューから構成され、リクエストキュー回路RqQXOは4つのリクエストキューから構成される。レスポンスインターフェース回路ResIFはレスポンスクロック制御回路RsCkCおよび、レスポンスキュー制御回路RsCTから構成される。レスポンスクロック制御回路RsCkCはクロックドライバDrv2およびクロック分周回路Div2から構成される。
【０４８６】
レスポンスキュー制御回路RsCTは、レスポンスキュー回路RsQo、レスポンスキュー回路RsQp、ステータスレジスタ回路STReg、レスポンススケジュール回路SCH、レイテンシ計算回路LA、レスポンス番号テーブルTBから構成される。
【０４８７】
特に限定しないが、レスポンスキュー回路RsQoは4つのレスポンスキューから構成され、スポンスキュー回路RsQpは4つのレスポンスキューから構成される。
【０４８８】
レスポンスクロック制御回路RsCkCはクロックドライバDrv2およびクロック分周回路Div2から構成される。レスポンスキュー制御回路RsCTは、レスポンスキュー回路RsQo、レスポンスキュー回路RsQp、ステータスレジスタ回路STReg、レスポンススケジュール回路SCHから構成される。
【０４８９】
メモリ回路MemNV1は、特に限定しないが、不揮発性メモリであり、NOR型フラッシュメモリセルを利用したNOR型フラッシュメモリである。メモリ回路MemNV1には、ブートデバイスID値BotIDおよび終端デバイスID値EndIが格納される。メモリ回路MemNV1および初期化回路INIT1以外の、メモリチップM１を構成する回路およびデータ読み出しやデータ書き込みなど動作は、図10のメモリチップM0と同等である。
【０４９０】
本メモリチップM1の電源投入時の動作について説明する。メモリチップM1へ電源が投入されると初期化回路INIT1はメモリチップM1の初期化を行う。メモリチップM1は、ブートデバイス認識信号Bsigが接地gndされているので、自分自身がブートデバイスであることを認識し、自らのメモリ回路MemNV1が保持しているブートデバイスID値１をIDレジスタIDRへ設定し、ID有効ビットをHighにする。
【０４９１】
次にレスポンススケジュール回路SCHが持つレスポンスキュー回路RsQoに入力するレスポンスの優先順位を１へ、レスポンスキュー回路RsQpに入力するメモリチップM2からのレスポンスの優先順位を2へ設定する。クロック分周回路Div1およびDiv2の分周比は１に設定される。初期化回路INIT1による初期設定が終了すると、メモリチップM1はメモリチップM1とメモリチップM2との間で通信できることを確認する通信確認動作を行う。メモリチップM1はリクエストイネーブル信号RqEn2がHighになったことを確認し、レスポンスイネーブル信号RsEn2及びリクエストイネーブル信号RqEn1をHighにする。
【０４９２】
次に、メモリチップM0は、リクエストイネーブル信号RqEn1がHighになったことを確認し、レスポンスイネーブル信号RsEn1をHighにする。通信確認動作が終了すると、メモリ回路MemNV1よりブートデータが読み出され、メモリチップM0を介して、情報処理装置CPU_CHIPへ送信される。次に、メモリチップM１での、レスポンス優先順位の制御を説明する。
【０４９３】
図19ではメモリチップM1が装備するレスポンススケジュール回路SCHが行う動的レスポンス優先順位の制御を示す。
【０４９４】
図１に示すように、メモリチップM1へは、メモリチップM0のレスポンスは生じない接続構成になっている場合は、メモリチップM1のレスポンスおよびメモリチップM2のレスポンスについてのみレスポンスの優先順位が付けられる。電源投入直後の初期設定（Initial）にて、レスポンスキュー回路RsQoへエントリされるメモリ回路MemNV1からのレスポンスの優先順位（PRsQo(M１)）は１、レスポンスキュー回路RsQpエントリされるメモリチップM２からのレスポンスの優先順位（PRsQp(M２)）は２に設定される。特に限定しないが、レスポンスの順位の小さい方がレスポンスの順位が高いとする。
【０４９５】
次に、レスポンスキュー回路RsQoへエントリしたメモリ回路MemNV1のレスポンス（RsQo(M１)）がM１time回分出力すると、レスポンスキュー回路RsQoへエントリされるレスポンスの優先順位（PRsQo(M１)）は最も低い２となり、メモリチップM２のレスポンスの優先順位（PRsQp(M２)）は最も高い１となる。
【０４９６】
次に、レスポンスキュー回路RsQpへエントリされるメモリチップM２からのレスポンスPRsQp(M2)）が、L1time回分出力するとレスポンスキュー回路RsQpへエントリされるメモリチップM2からのレスポンスの優先順位（PRsQp(M2)）は最も低い２となり、レスポンスキュー回路RsQoエントリされるレスポンスの優先順位（PrsQp(M1)）は最も高い1となる。レスポンスキュー回路RsQoへエントリされるメモリ回路MemNV1からのレスポンスのレスポンス優先順位を変更するためのレスポンス出力回数M1time、レスポンスキュー回路RsQpへエントリされるメモリチップM2からのレスポンスのレスポンス優先順位を変更するためのレスポンス出力回数L1timeは、電源投入直後の初期設定（Initial）にて、特に限定しないが、それぞれ、10回、1回に設定される。さらに、レスポンス出力回数M1time、L1timeは、情報処理装置CPU_CHIPから設定可能であり、本発明が利用される携帯機器などのシステム構成にあわせて、高性能化が図れるように、それぞれを設定することができる。
【０４９７】
また、メモリチップM1が装備するレスポンススケジュール回路SCHが行う動的レスポンス優先順位の制御は、図14で示した動作と同等である。また、リクエストクロック信号RqCk2およびレスポンスクロック信号RsCk1ののクロック制御方法は、図16で示したクロック制御方法と同様である。
【０４９８】
＜メモリ回路MemNV1＞
図20は、メモリチップM0が装備するメモリ回路MemNV1の回路ブロック図の一例である。
【０４９９】
メモリ回路MemNV1は、コマンドデコーダCmdDec、制御回路Cont Logic、ライトデータバッファWDataLat、リードデータバッファRDataLat、データ制御回路DataCont、およびメモリバンクNV1BANK0〜NV1BANK7から構成されている。
【０５００】
また、各メモリバンクNV1BANK0〜NV1BANK7はページアドレスバッファPadLat、カラムアドレスバッファCadLat、ページデコーダPageDec、カラムデコーダColDec、データバッファDataLat、メモリセル回路NV1BK0〜NV1BK7から構成されている。
【０５０１】
メモリ回路MemNV1の読み出し動作を説明する。
【０５０２】
リクエストキューRqQXIへバンクアドレス７、ロウアドレス５格納されており、バンクアクティブ命令BAがコマンド信号Commandから、バンクアドレス７およびページアドレス５が、アドレス信号Addressよりメモリ回路MemNV1へ送信される。コマンドデコーダCmdDecはバンクアクティブ命令BAを解読し、制御回路Cont LogicによってメモリバンクNV1BANK7が選択され、メモリバンクNV1BANK7のページアドレスバッファPadLatへページアドレス５が格納され、ページデコーダPageDecへ入力される。その後メモリセル回路NV1Bank７内のページアドレス５に接続されているメモリセルが活性化され、特に限定しないが1kByte分のデータがデータバッファDataLatへ転送される。
【０５０３】
つぎに、リクエストキューRqQXIへ8バイトデータリード命令RD８、バンクアドレス７、カラムアドレス64が格納されており、８バイトデータリード命令RD８がコマンド信号Commandから、バンクアドレス７およびカラムアドレス６３が、アドレス信号Addressよりメモリ回路MemNV1へ送信される。
【０５０４】
コマンドデコーダCmdDecは８バイトデータリード命令RD８を解読し、制御回路Cont LogicによってメモリバンクNV1BANK7が選択され、メモリバンクNV1BANK7のカラムアドレスバッファCAddLatへカラムアドレス６３を格納され、カラムデコーダColDecへ入力される。
【０５０５】
その後、カラムアドレス64を開始アドレスとして、８バイト分のデータが、データバッファDataLatから読み出され、データ制御回路DataContを介してリードデータバッファRDataLatへ転送され格納される。その後読み出された８バイト分のデータはレスポンスキュー回路RsQoへ転送される。
【０５０６】
次に、メモリ回路MemNV1の書込み動作を説明する。リクエストキューRqQXIへ８バイトデータライト命令WT８、バンクアドレス７、カラムアドレス１２８が格納されており、８バイトデータライト命令RD８がコマンド信号Commandから、バンクアドレス７およびカラムアドレス１２７が、アドレス信号Addressより、８バイトデータがライトデータ信号WDataよりメモリ回路MemNV1へ送信される。
【０５０７】
コマンドデコーダCmdDecは８バイトデータライト命令WT８を解読し、制御回路Cont LogicによってメモリバンクNV1BANK7が選択され、メモリバンクNV1BANK7のカラムアドレスバッファCAddLatへカラムアドレス128が格納され、カラムデコーダColDecへ入力される。
【０５０８】
また、御回路Cont Logicによって８バイト分のライトデータはライトデータバッファWData Latへ格納される。
【０５０９】
その後カラムアドレス１２８を開始アドレスとして、８バイト分のデータが、ライトデータバッファWData Latから、データ制御回路DataContを介して、メモリバンクNV1BANK７内のデータバッファDataLatへ転送され、メモリセル回路NV1BK7へ書き込まれる。
【０５１０】
各メモリバンクNV1BANK0〜NV1BANK7は独立に動作するため、異なるバンク間では、読み出し動作と書き込み動作を同時に実行でき、高速化を図ることができる。
【０５１１】
＜メモリチップM２の説明＞
図21は、メモリチップM2の構成図の一例である。
【０５１２】
メモリチップM2は、リクエストインターフェース回路ReqIFと、レスポンスインターフェース回路ResIFと、初期化回路INIT、メモリ回路MemNV1から構成されている。リクエストインターフェース回路ReqIFはリクエストクロック制御回路RqCkCおよび、リクエストキュー制御回路RqCTから構成される。リクエストクロック制御回路RqCkCはクロックドライバDrv1およびクロック分周回路Div1から構成される。
【０５１３】
リクエストキュー制御回路RqCTはリクエストキュー回路RqQI、リクエストキュー回路RqQXI、リクエストキュー回路RqQXO、IDレジスタ回路IDR、ID比較回路CPQ、レイテンシ値出力設定レジスタ回路LRG、レスポンス順序設定レジスタ回路RRG、リクエスト番号設定回路RNBから構成される。
【０５１４】
特に限定しないが、リクエストキュー回路RqQIは4つのリクエストキューから構成され、リクエストキュー回路RqQXIは4つのリクエストキューから構成され、リクエストキュー回路RqQXOは4つのリクエストキューから構成される。レスポンスインターフェース回路ResIFはレスポンスクロック制御回路RsCkCおよび、レスポンスキュー制御回路RsCTから構成される。レスポンスクロック制御回路RsCkCはクロックドライバDrv2およびクロック分周回路Div2から構成される。
【０５１５】
レスポンスキュー制御回路RsCTは、レスポンスキュー回路RsQo、レスポンスキュー回路RsQp、ステータスレジスタ回路STReg、レスポンススケジュール回路SCH、レイテンシ計算回路LA、レスポンス番号テーブルTBから構成される。
【０５１６】
特に限定しないが、レスポンスキュー回路RsQoは4つのレスポンスキューから構成され、スポンスキュー回路RsQpは4つのレスポンスキューから構成される。
【０５１７】
レスポンスクロック制御回路RsCkCはクロックドライバDrv2およびクロック分周回路Div2から構成される。レスポンスキュー制御回路RsCTは、レスポンスキュー回路RsQo、レスポンスキュー回路RsQp、ステータスレジスタ回路STReg、レスポンススケジュール回路SCHから構成される。
【０５１８】
メモリ回路MemNV２は、特に限定しないが、不揮発性メモリであり、NAND型フラッシュメモリセルを利用したNAND型フラッシュメモリである。メモリ回路MemNV２および初期化回路INIT２以外の、メモリチップM2を構成する回路およびデータ読み出しやデータ書き込みなど動作は図10のメモリチップM0と同等である。
【０５１９】
本メモリチップM２の電源投入時の動作について説明する。メモリチップM2へ電源が投入されると初期化回路INIT２はメモリチップM２の初期化を行う。先ず、IDレジスタ回路IDRの持つIDレジスタの値を０へ、ID有効ビットをLowへ初期設定する。次にレスポンススケジュール回路SCHが持つレスポンスキュー回路RsQoへ入力するレスポンスの優先順位を１へ設定する。クロック分周回路Div1およびDiv2の分周比は１に設定される。初期化回路INIT２による初期設定が終了すると、メモリチップM２はメモリチップM１との間で通信できることを確認する通信確認動作を行う。メモリチップM2は、RqEn3、RsMux3、RqCk3を接地（gnd）していることによって、直列接続しているメモリチップの最も終端のメモリチップであることを認識し、リクエストイネーブル信号RqEn2をHighにする。
【０５２０】
次に、メモリチップM1はリクエストイネーブル信号RqEn2がHighになったことを確認し、レスポンスイネーブル信号RsEn2及びリクエストイネーブル信号RqEn1をHighにする。次に、メモリチップM２での、レスポンス優先順位の制御を説明する。
【０５２１】
図22ではメモリチップM２が装備するレスポンススケジュール回路SCHが行う動的レスポンス優先順位の制御を示す。図１に示すように、メモリチップM2が直列接続の最終チップである場合は、メモリチップM2へはメモリチップM0およびメモリチップM1のレスポンスは生じない。
【０５２２】
そのため、メモリチップM2のレスポンスについてのみレスポンスの優先順位が付けられる。したがって、電源投入直後の初期設定（Initial）にて、レスポンスキュー回路RsQOへエントリされるメモリチップM２のレスポンスの優先順位（PRsQO(M２)）は１に設定された後は、変化しない。レスポンスキュー回路RsQoへエントリされるメモリ回路NV2のレスポンスの優先順位（PRsQO(M２)）を変更することが無いため、レスポンスキュー回路RsQoへエントリされるメモリチップM2からのレスポンスのレスポンス優先順位を変更するためのレスポンス出力回数は、電源投入直後の初期設定（Initial）にて、特に限定しないが、０回に設定され、変更する必要がない。また、レスポンスクロック信号RsCk2のクロック制御方法は、図16で示したクロック制御方法と同様である。
【０５２３】
＜メモリ回路MemNV2＞
図23は、メモリチップM0が装備するメモリ回路MemNV2の回路ブロック図の一例である。
【０５２４】
メモリ回路MemNV1は、コマンドデコーダCmdDec、制御回路Cont Logic、ライトデータバッファWDataLat、リードデータバッファRDataLat、データ制御回路DataCont、およびメモリバンクNV1BANK0〜NV1BANK7から構成されている。
【０５２５】
また、各メモリバンクNV1BANK0〜NV1BANK7はページアドレスバッファPadLat、カラムアドレスバッファCadLat、ページデコーダPageDec、カラムデコーダColDec、データバッファDataLat、メモリセル回路NV1BK0〜NV1BK7から構成されている。
【０５２６】
メモリ回路MemNV1の読み出し動作を説明する。
【０５２７】
リクエストキューRqQXIへバンクアドレス７、ページアドレス５格納されており、バンクアクティブ命令BAがコマンド信号Commandから、バンクアドレス７およびページアドレス５が、アドレス信号Addressよりメモリ回路MemNV2へ送信される。コマンドデコーダCmdDecはバンクアクティブ命令BAを解読し、制御回路Cont LogicによってメモリバンクNV2BK7が選択され、メモリバンクNV1BANK7のページアドレスバッファPadLatへページアドレス５が格納され、ページデコーダPageDecへ入力される。その後メモリセル回路NV2BK７内のページアドレス５に接続されているメモリセルが活性化され、特に限定しないが2kByte分のデータがデータバッファDataLatへ転送される。
【０５２８】
つぎに、リクエストキューRqQXIへ32バイトデータリード命令RD32、バンクアドレス７、カラムアドレス64が格納されており、32バイトデータリード命令RD32がコマンド信号Commandから、バンクアドレス７およびカラムアドレス64が、アドレス信号Addressよりメモリ回路MemNV2へ送信される。
【０５２９】
コマンドデコーダCmdDecは32バイトデータリード命令RD32を解読し、制御回路Cont LogicによってメモリバンクNV1BANK7が選択され、メモリバンクNV1BANK7のカラムアドレスバッファCAddLatへカラムアドレス64を格納され、カラムデコーダColDecへ入力される。
【０５３０】
その後、カラムアドレス64を開始アドレスとして、32バイト分のデータが、データバッファDataLatから読み出され、データ制御回路DataContを介してリードデータバッファRDataLatへ転送され格納される。その後読み出された32バイト分のデータはレスポンスキュー回路RsQoへ転送される。
【０５３１】
次に、メモリ回路MemNV2の書込み動作を説明する。リクエストキューRqQXIへ８バイトデータライト命令WT32、バンクアドレス７、カラムアドレス１２８が格納されており、32バイトデータライト命令RD32がコマンド信号Commandから、バンクアドレス７およびカラムアドレス１２７が、アドレス信号Addressより、32バイトデータがライトデータ信号WDataよりメモリ回路MemNV2へ送信される。
【０５３２】
コマンドデコーダCmdDecは32バイトデータライト命令WT32を解読し、制御回路Cont LogicによってメモリバンクNV2BANK7が選択され、メモリバンクNV2BANK7のカラムアドレスバッファCAddLatへカラムアドレス128が格納され、カラムデコーダColDecへ入力される。
【０５３３】
また、御回路Cont Logicによって32バイト分のライトデータはライトデータバッファWData Latへ格納される。
【０５３４】
その後カラムアドレス１２８を開始アドレスとして、32バイト分のデータが、ライトデータバッファWData Latから、データ制御回路DataContを介して、メモリバンクNV2BANK７内のデータバッファDataLatへ転送され、メモリセル回路NV2BK7へ書き込まれる。
【０５３５】
各メモリバンクNV2BANK0〜NV2BANK7は独立に動作するため、異なるバンク間では、読み出し動作と書き込み動作を同時に実行でき、高速化を図ることができる。
【０５３６】
図24は、情報処理装置CPU_CHIPからメモリモジュールMEMへ送信されたリクエストに含まれるID値がメモリチップM0、M1およびM2のIDレジスタ値のいずれにも一致せず、エラーが発生した場合の動作の一例を示すフローチャートである。情報処理装置CPU_CHIPからリクエストとID値がメモリモジュールMEMへ送信される（Step1）。リクエストイネーブル信号RqEn0がLowであれば(Step2)、情報処理装置CPU_CHIPからのリクエストはメモリチップM0のリクエストキュー回路RqQIへ格納されない。リクエストイネーブル信号RqEn0がHighであれば（Step2）、メモリチップM0の、リクエストキュー回路RqQIへ格納される(Step3)。
【０５３７】
その後、ID比較回路CPQは、リクエストキュー回路RqQIへエントリされたリクエストに含まれるID値とIDレジスタ回路IDRに保持されているID値を比較する（Step4）。比較結果が一致すれば、リクエストキュー回路RqQIへエントリされたリクエストはリクエストキュー回路RqQXIへ転送される（Step5）。比較結果が不一致の場合は、メモリチップM0が最終端のメモリチップかどうかをチェックする（Step6）。モリチップM0が最終端のデバイスではないので、リクエストキュー回路RqQIへエントリされたリクエストはリクエストキュー回路RqQXOへ転送され、さらに、次のメモリチップM1へ転送される（Step9）。メモリチップM1では、Step1からStep９を繰り返す。メモリチップM２では、Step1からStep4を行う。Step4での比較結果が一致すれば、リクエストキュー回路RqQIへエントリされたリクエストはリクエストキュー回路RqQXIへ転送される（Step5）。比較結果が不一致の場合は、メモリチップM0が最終端のメモリチップかどうかをチェックする（Step6）。
【０５３８】
メモリチップM２は最終端のメモリチップであるため、情報処理装置CPU_CHIPからメモリモジュールMEMへ送信されたリクエストに含まれるID値がメモリチップM0、M1およびM2のIDレジスタ値のいずれにも一致せず、IDエラーとなる（Step７）。IDエラーは、最終端のメモリチップM2からメモリチップM1およびM2と経由して情報処理装置CPU_CHIPへ送信される。
【０５３９】
次に、メモリモジュールMEMへ入力するリクエストの動作波形について説明する。図25および図26は、情報処理装置CPU_CHIPが、メモリモジュールMEMへ送信するリクエストの動作波形およびメモリモジュールMEMから情報処理装置CPU_CHIPへのレスポンスの動作波形の一例である。
【０５４０】
図25(a)は、メモリチップM0へのバンクアクティブ命令BAを含むバンクアクティブリクエストの一例である。特に限定しないが、バンクアクティブリクエストは、リクエストイネーブル信号RqEN0がHighの際に、リクエストクロック信号RqCk0に同期して、メモリチップM0のID２、バンクアクティブ命令BA、アドレスAD20およびAD21が多重化されメモリチップM0へ入力される。アドレスAD20およびAD21には、バンクアドレスおよびロウアドレスが含まれる。本バンクアクティブリクエストによって、メモリチップM0内のメモリバンクの1つが活性化される。
【０５４１】
図25(b)は、メモリチップM0への４バイトデータリード命令RD4を含むリードリクエストの一例である。特に限定しないが、リードリクエストは、リクエストイネーブル信号RqEN0がHighの際に、リクエストクロック信号RqCk0に同期して、メモリチップM0のID２、リード命令RD4、アドレスAD22およびAD22が多重化されメモリチップM0へ入力される。アドレスAD22およびAD23には、バンクアドレスおよびカラムアドレスが含まれる。本リードリクエストによって、メモリチップM0内の活性化されているメモリバンクからデータが読み出される。
【０５４２】
図25(c)は、メモリチップM0からのレスポンスのレイテンシ値を送信するレイテンシレスポンスの一例である。特に限定しないがレイテンシレスポンスには、メモリチップM0のID値ID２、レイテンシ送信フラグLF、レイテンシ値Latが含まれる。
【０５４３】
レイテンシレスポンスはレスポンスイネーブル信号RsEN0がHighの際に、レスポンスクロック信号RsCk0の立ち上がりおよび立ち下がりに同期して、情報処理装置CPU_CHIPへ入力される。
【０５４４】
図25(d)は、メモリチップM0のID値およびメモリチップM0から読み出されたデータを含むリードレスポンスである。特に限定しないが、リードレスポンスは、レスポンスイネーブル信号RsEN0がHighの際に、レスポンスクロック信号RsCk0の立ち上がりおよび立ち下がりに同期して、メモリチップM0のID値ID２、４バイト分のデータD0、D1、D２およびD3が多重化され、情報処理装置CPU_CHIPへ入力される。
【０５４５】
図26(a)は、メモリチップM0へのバンクアクティブ命令BAを含むバンクアクティブリクエストの別一例である。特に限定しないが、バンクアクティブリクエストは、リクエストイネーブル信号RqEN0がHighの際に、リクエストクロック信号RqCk0に同期して、メモリチップM0のID値ID２、リクエスト番号RqN1、バンクアクティブ命令BA、アドレスAD20およびAD21が多重化されメモリチップM0へ入力される。アドレスAD20およびAD21には、バンクアドレスおよびロウアドレスが含まれる。本バンクアクティブリクエストによって、メモリチップM0内のメモリバンクの1つが活性化される。
【０５４６】
図26(b)は、メモリチップM0への４バイトデータリード命令RD4を含むリードリクエストの別一例である。特に限定しないが、リードリクエストは、リクエストイネーブル信号RqEN0がHighの際に、リクエストクロック信号RqCk0に同期して、メモリチップM0のID２、リクエスト番号RqN2、リード命令RD4、アドレスAD22およびAD22が多重化されメモリチップM0へ入力される。アドレスAD22およびAD23には、バンクアドレスおよびカラムアドレスが含まれる。本リードリクエストによって、メモリチップM0内の活性化されているメモリバンクからデータが読み出される。
【０５４７】
図26(c)は、メモリチップM0からのレスポンスのレイテンシ値を送信するレイテンシレスポンスの別の一例である。特に限定しないがレイテンシレスポンスには、リクエスト番号RqN2、レイテンシ送信フラグLF、レイテンシ値Latが含まれる。
【０５４８】
レイテンシレスポンスはレスポンスイネーブル信号RsEN0がHighの際に、レスポンスクロック信号RsCk0の立ち上がりおよび立ち下がりに同期して、情報処理装置CPU_CHIPへ入力される。
【０５４９】
図26(d)は、メモリチップM0から読み出されたデータを含むリードレスポンスの別の一例である。特に限定しないが、リードレスポンスは、レスポンスイネーブル信号RsEN0がHighの際に、レスポンスクロック信号RsCk0の立ち上がりおよび立ち下がりに同期して、リクエスト番号RqN2、４バイト分のデータD0、D1、D２およびD3が多重化され、情報処理装置CPU_CHIPへ入力される。
【０５５０】
図27(a)は、メモリチップM0への1 バイトデータの書込み命令WT2を含むライトリクエストの一例である。特に限定しないが、ライトリクエストは、リクエストイネーブル信号RqEN0がHighの際に、リクエストクロック信号RqCk0に同期して、メモリチップM0のID２、ライト命令WT1、アドレスAD24およびAD25が多重化されメモリチップM0へ入力される。アドレスAD22およびAD23には、バンクアドレスおよびカラムアドレスが含まれる。本ライトリクエストによって、メモリチップM0へデータが書き込まれる。
【０５５１】
図27(b)は、メモリチップM0への1 バイトデータの書込み命令WT2を含むライトリクエストの別の一例である。特に限定しないが、ライトリクエストは、リクエストイネーブル信号RqEN0がHighの際に、リクエストクロック信号RqCk0に同期して、メモリチップM0のID値ID２、リクエスト番号RqN3、ライト命令WT1、アドレスAD24およびAD25が多重化されメモリチップM0へ入力される。アドレスAD22およびAD23には、バンクアドレスおよびカラムアドレスが含まれる。本ライトリクエストによって、メモリチップM0へデータが書き込まれる。
【０５５２】
図28(a)は、メモリチップM0へのリクエストキューおよびレスポンスキューを予約するためのキュー予約リクエストReqNQRvの一例である。
【０５５３】
特に限定しないが、キュー予約リクエストReqNQRvは、リクエストイネーブル信号RqEN0がHighの際に、リクエストクロック信号RqCk0に同期して、ID値ID2、キュー予約命令QRv、予約するキューの数QRvN値を多重化したリクエストReqNQRvがメモリチップM0へ転送される。このリクエストによって、メモリチップM0のリクエストキューおよびレスポンスキューがそれぞれQRvN値で指定された数分だけ予約される。
【０５５４】
図28(b)は、メモリチップM0へのキューの予約が完了したことを知らせる予約完了レスポンスである。
【０５５５】
特に限定しないが、予約完了レスポンスは、レスポンスイネーブル信号RsEN0がHighの際に、レスポンスクロック信号RsCk0の立ち上がりおよび立ち下がりに同期して、ID値ID2、予約完了信号RvFlgを多重化した予約完了レスポンスが情報処理装置CPU_CHIPへ入力される。情報処理装置CPU_CHIPは予約完了レスポンスを受け取ることで、キューの予約が完了したことを確認できる。
【０５５６】
図28(c)は、メモリチップM0へのリクエストキューおよびレスポンスキューを予約するためのキュー予約リクエストReqNQRvの別の一例である。
【０５５７】
特に限定しないが、キュー予約リクエストReqNQRvは、リクエストイネーブル信号RqEN0がHighの際に、リクエストクロック信号RqCk0に同期して、ID値ID2、リクエスト番号RqN5、キュー予約命令QRv、予約するキューの数QRvN値を多重化したリクエストReqNQRvがメモリチップM0へ転送される。このリクエストによって、メモリチップM0のリクエストキューおよびレスポンスキューがそれぞれQRvN値で指定された数分だけ予約される。
【０５５８】
図28(d)は、メモリチップM0へのキューの予約が完了したことを知らせる予約完了レスポンスである。
【０５５９】
特に限定しないが、予約完了レスポンスは、レスポンスイネーブル信号RsEN0がHighの際に、レスポンスクロック信号RsCk0の立ち上がりおよび立ち下がりに同期して、レスポンス番号RsN5、予約完了信号RvFlgを多重化した予約完了レスポンスが情報処理装置CPU_CHIPへ入力される。情報処理装置CPU_CHIPは予約完了レスポンスを受け取ることで、キューの予約が完了したことを確認できる。
【０５６０】
図29(a)は、情報処理装置CPU_CHIPからメモリチップM0を介してメモリチップM1へ入力するバンクアクティブ命令BAを含むバンクアクティブリクエストの一例である。特に限定しないが、バンクアクティブリクエストは、リクエストイネーブル信号RqEN1がHighの際に、リクエストクロック信号RqCk0に同期して、メモリチップM0のID値ID1、バンクアクティブ命令BA、アドレスAD20およびAD21が多重化されメモリチップM1へ入力される。アドレスAD20およびAD21には、バンクアドレスおよびページアドレスが含まれる。本バンクアクティブリクエストによって、メモリチップM１内のメモリバンクの1つが活性化される。
【０５６１】
図29(b)は、情報処理装置CPU_CHIPからメモリチップM0を介してメモリチップM1へ入力する４バイトデータリード命令RD4を含むリードリクエストの一例である。特に限定しないが、リードリクエストは、リクエストイネーブル信号RqEN1がHighの際に、リクエストクロック信号RqCk1に同期して、メモリチップM0のID値ID1、リード命令RD4、アドレスAD22およびAD22が多重化されメモリチップM1へ入力される。アドレスAD22およびAD23には、バンクアドレスおよびカラムアドレスが含まれる。本リードリクエストによって、メモリチップM1内の活性化されているメモリバンクからデータが読み出される。
【０５６２】
図29(c)は、メモリチップM1からのレスポンスのレイテンシ値を送信するレイテンシレスポンスの一例である。特に限定しないがレイテンシレスポンスには、メモリチップM1のID値ID1、レイテンシ送信フラグLF、レイテンシ値Latが含まれる。
【０５６３】
レイテンシレスポンスはレスポンスイネーブル信号RsEN1がHighの際に、レスポンスクロック信号RsCk1の立ち上がりおよび立ち下がりに同期して、メモリチップM0へ送信され、さらに、情報処理装置CPU_CHIPへ送信される。
【０５６４】
図29(d)は、メモリチップM1のID値およびメモリチップM1から読み出されたデータを含むリードレスポンスである。特に限定しないが、リードレスポンスは、レスポンスイネーブル信号RsEN1がHighの際に、レスポンスクロック信号RsCk1の立ち上がりおよび立ち下がりに同期して、メモリチップM1のID値ID1、４バイト分のデータD0、D1、D２およびD3が多重化され、メモリチップM0へ送信され、さらに、情報処理装置CPU_CHIPへ送信される。
【０５６５】
図30(a)は、情報処理装置CPU_CHIPからメモリチップM0を介してメモリチップM1へ入力するバンクアクティブ命令BAを含むバンクアクティブリクエストの別一例である。特に限定しないが、バンクアクティブリクエストは、リクエストイネーブル信号RqEN1がHighの際に、リクエストクロック信号RqCk1に同期して、メモリチップM1のID値ID1、リクエスト番号RqN1、バンクアクティブ命令BA、アドレスAD20およびAD21が多重化されメモリチップM1へ入力される。アドレスAD20およびAD21には、バンクアドレスおよびロウアドレスが含まれる。本バンクアクティブリクエストによって、メモリチップM1内のメモリバンクの1つが活性化される。
【０５６６】
図30(b)は、情報処理装置CPU_CHIPからメモリチップM0を介してメモリチップM1へ入力する４バイトデータリード命令RD4を含むリードリクエストの別一例である。特に限定しないが、リードリクエストは、リクエストイネーブル信号RqEN1がHighの際に、リクエストクロック信号RqCk1に同期して、メモリチップM1のID値ID1、リクエスト番号RqN2、リード命令RD4、アドレスAD22およびAD22が多重化されメモリチップM1へ入力される。アドレスAD22およびAD23には、バンクアドレスおよびカラムアドレスが含まれる。本リードリクエストによって、メモリチップM1内の活性化されているメモリバンクからデータが読み出される。
【０５６７】
図30(c)は、メモリチップM1からのレスポンスのレイテンシ値を送信するレイテンシレスポンスの別の一例である。特に限定しないがレイテンシレスポンスには、リクエスト番号RqN2、レイテンシ送信フラグLF、レイテンシ値Latが含まれる。
【０５６８】
レイテンシレスポンスはレスポンスイネーブル信号RsEN1がHighの際に、レスポンスクロック信号RsCk1の立ち上がりおよび立ち下がりに同期して、メモリチップM0へ送信され、さらに、情報処理装置CPU_CHIPへ送信される。
【０５６９】
図30(d)は、メモリチップM1から読み出されたデータを含むリードレスポンスの別の一例である。特に限定しないが、リードレスポンスは、レスポンスイネーブル信号RsEN1がHighの際に、レスポンスクロック信号RsCk1の立ち上がりおよび立ち下がりに同期して、リクエスト番号RqN2、４バイト分のデータD0、D1、D２およびD3が多重化され、メモリチップM0へ送信され、さらに、情報処理装置CPU_CHIPへ送信される。
【０５７０】
図31(a)は、情報処理装置CPU_CHIPからメモリチップM0を介してメモリチップM1へ入力する1 バイトデータの書込み命令WT2を含むライトリクエストの一例である。特に限定しないが、ライトリクエストは、リクエストイネーブル信号RqEN1がHighの際に、リクエストクロック信号RqCk1に同期して、メモリチップM1のID値ID1、ライト命令WT1、アドレスAD24およびAD25が多重化されメモリチップM1へ入力される。アドレスAD22およびAD23には、バンクアドレスおよびカラムアドレスが含まれる。本ライトリクエストによって、メモリチップM1へデータが書き込まれる。
【０５７１】
図31(b)は、情報処理装置CPU_CHIPからメモリチップM0を介してメモリチップM1へ入力する1 バイトデータの書込み命令WT2を含むライトリクエストの別の一例である。特に限定しないが、ライトリクエストは、リクエストイネーブル信号RqEN1がHighの際に、リクエストクロック信号RqCk1に同期して、メモリチップM1のID値ID1、リクエスト番号RqN3、ライト命令WT1、アドレスAD24およびAD25が多重化されメモリチップM1へ入力される。アドレスAD22およびAD23には、バンクアドレスおよびカラムアドレスが含まれる。本ライトリクエストによって、メモリチップM1へデータが書き込まれる。
【０５７２】
図32(a)は、情報処理装置CPU_CHIPからメモリチップM0を介してメモリチップM1へ入力するリクエストキューおよびレスポンスキューを予約するためのキュー予約リクエストReqNQRvの一例である。
【０５７３】
特に限定しないが、キュー予約リクエストReqNQRvは、リクエストイネーブル信号RqEN1がHighの際に、リクエストクロック信号RqCk1に同期して、ID値ID1、キュー予約命令QRv、予約するキューの数QRvN値を多重化したリクエストReqNQRvがメモリチップM0へ転送される。このリクエストによって、メモリチップM1のリクエストキューおよびレスポンスキューがそれぞれQRvN値で指定された数分だけ予約される。
【０５７４】
図32(b)は、メモリチップM1のキューの予約が完了したことを知らせる予約完了レスポンスである。特に限定しないが、予約完了レスポンスは、レスポンスイネーブル信号RsEN1がHighの際に、レスポンスクロック信号RsCk1の立ち上がりおよび立ち下がりに同期して、ID値ID1、予約完了信号RvFlgを多重化した予約完了レスポンスがメモリチップM0へ送信され、さらに、情報処理装置CPU_CHIPへ送信される。情報処理装置CPU_CHIPは予約完了レスポンスを受け取ることで、キューの予約が完了したことを確認できる。
【０５７５】
図32(c)は、情報処理装置CPU_CHIPからメモリチップM0を介してメモリチップM1へ入力するリクエストキューおよびレスポンスキューを予約するためのキュー予約リクエストReqNQRvの別の一例である。
【０５７６】
特に限定しないが、キュー予約リクエストReqNQRvは、リクエストイネーブル信号RqEN0がHighの際に、リクエストクロック信号RqCk1に同期して、ID値ID1、リクエスト番号RqN5、キュー予約命令QRv、予約するキューの数QRvN値を多重化したリクエストReqNQRvがメモリチップM1へ転送される。このリクエストによって、メモリチップM1のリクエストキューおよびレスポンスキューがそれぞれQRvN値で指定された数分だけ予約される。
【０５７７】
図32(d)は、メモリチップM1へのキューの予約が完了したことを知らせる予約完了レスポンスである。
【０５７８】
特に限定しないが、予約完了レスポンスは、レスポンスイネーブル信号RsEN1がHighの際に、レスポンスクロック信号RsCk1の立ち上がりおよび立ち下がりに同期して、レスポンス番号RsN5、予約完了信号RvFlgを多重化した予約完了レスポンスがモリチップM0へ送信され、さらに、情報処理装置CPU_CHIPへ送信される。情報処理装置CPU_CHIPは予約完了レスポンスを受け取ることで、キューの予約が完了したことを確認できる。
【０５７９】
図33(a)は、情報処理装置CPU_CHIPからメモリチップM0およびメモリチップM1を介してメモリチップM2へ入力するバンクアクティブ命令BAを含むバンクアクティブリクエストの一例である。特に限定しないが、バンクアクティブリクエストは、リクエストイネーブル信号RqEN2がHighの際に、リクエストクロック信号RqCk2に同期して、メモリチップM2のID値ID3、バンクアクティブ命令BA、アドレスAD20およびAD21が多重化されメモリチップM1へ入力される。アドレスAD20およびAD21には、バンクアドレスおよびページアドレスが含まれる。本バンクアクティブリクエストによって、メモリチップM3内のメモリバンクの1つが活性化される。
【０５８０】
図33(b)は、情報処理装置CPU_CHIPからメモリチップM0およびメモリチップM1を介してメモリチップM2へ入力する４バイトデータリード命令RD4を含むリードリクエストの一例である。特に限定しないが、リードリクエストは、リクエストイネーブル信号RqEN2がHighの際に、リクエストクロック信号RqCk2に同期して、メモリチップM2のID値ID3、リード命令RD4、アドレスAD22およびAD22が多重化されメモリチップM2へ入力される。アドレスAD22およびAD23には、バンクアドレスおよびカラムアドレスが含まれる。本リードリクエストによって、メモリチップM3内の活性化されているメモリバンクからデータが読み出される。
【０５８１】
図33(c)は、メモリチップM2からのレスポンスのレイテンシ値を送信するレイテンシレスポンスの一例である。特に限定しないがレイテンシレスポンスには、メモリチップM2のID値ID3、レイテンシ送信フラグLF、レイテンシ値Latが含まれる。
【０５８２】
レイテンシレスポンスはレスポンスイネーブル信号RsEN2がHighの際に、レスポンスクロック信号RsCk2の立ち上がりおよび立ち下がりに同期して、メモリチップM1へ送信され、さらに、メモリチップM0を介して情報処理装置CPU_CHIPへ送信される。
【０５８３】
図33(d)は、メモリチップM2のID値およびメモリチップM2から読み出されたデータを含むリードレスポンスである。特に限定しないが、リードレスポンスは、レスポンスイネーブル信号RsEN2がHighの際に、レスポンスクロック信号RsCk2の立ち上がりおよび立ち下がりに同期して、メモリチップM2のID値ID3、４バイト分のデータD0、D1、D２およびD3が多重化され、メモリチップM1へ送信され、さらに、メモリチップM0を介して情報処理装置CPU_CHIPへ送信される。
【０５８４】
図34(a)は、情報処理装置CPU_CHIPからメモリチップM0およびメモリチップM1を介してメモリチップM2へ入力するバンクアクティブ命令BAを含むバンクアクティブリクエストの別一例である。特に限定しないが、バンクアクティブリクエストは、リクエストイネーブル信号RqEN2がHighの際に、リクエストクロック信号RqCk2に同期して、メモリチップM2のID値ID1、リクエスト番号RqN1、バンクアクティブ命令BA、アドレスAD20およびAD21が多重化されメモリチップM2へ入力される。アドレスAD20およびAD21には、バンクアドレスおよびロウアドレスが含まれる。本バンクアクティブリクエストによって、メモリチップM2内のメモリバンクの1つが活性化される。
【０５８５】
図34(b)は、情報処理装置CPU_CHIPからメモリチップM0およびメモリチップM1を介してメモリチップM2へ入力する４バイトデータリード命令RD4を含むリードリクエストの別一例である。特に限定しないが、リードリクエストは、リクエストイネーブル信号RqEN2がHighの際に、リクエストクロック信号RqCk2に同期して、メモリチップM2のID値ID3、リクエスト番号RqN2、リード命令RD4、アドレスAD22およびAD22が多重化されメモリチップM2へ入力される。アドレスAD22およびAD23には、バンクアドレスおよびカラムアドレスが含まれる。本リードリクエストによって、メモリチップM2内の活性化されているメモリバンクからデータが読み出される。
【０５８６】
図34(c)は、メモリチップM2 からのレスポンスのレイテンシ値を送信するレイテンシレスポンスの別の一例である。特に限定しないがレイテンシレスポンスには、リクエスト番号RqN2、レイテンシ送信フラグLF、レイテンシ値Latが含まれる。
【０５８７】
レイテンシレスポンスはレスポンスイネーブル信号RsEN1がHighの際に、レスポンスクロック信号RsCk2の立ち上がりおよび立ち下がりに同期して、メモリチップM1へ送信され、さらに、メモリチップM0を介して情報処理装置CPU_CHIPへ送信される。
【０５８８】
図34(d)は、メモリチップM2から読み出されたデータを含むリードレスポンスの別の一例である。特に限定しないが、リードレスポンスは、レスポンスイネーブル信号RsEN2がHighの際に、レスポンスクロック信号RsCk2の立ち上がりおよび立ち下がりに同期して、リクエスト番号RqN2、４バイト分のデータD0、D1、D２およびD3が多重化され、メモリチップM1へ送信され、さらに、メモリチップM0を介して情報処理装置CPU_CHIPへ送信される。
【０５８９】
図35(a)は、情報処理装置CPU_CHIPからメモリチップM0およびメモリチップM1を介してメモリチップM2へ入力する1 バイトデータの書込み命令WT2を含むライトリクエストの一例である。特に限定しないが、ライトリクエストは、リクエストイネーブル信号RqEN2がHighの際に、リクエストクロック信号RqCk2に同期して、メモリチップM1のID値ID3、ライト命令WT1、アドレスAD24およびAD25が多重化されメモリチップM1へ入力される。アドレスAD22およびAD23には、バンクアドレスおよびカラムアドレスが含まれる。本ライトリクエストによって、メモリチップM2へデータが書き込まれる。
【０５９０】
図35(b)は、情報処理装置CPU_CHIPからメモリチップM0およびメモリチップM1を介してメモリチップM2へ入力する1 バイトデータの書込み命令WT2を含むライトリクエストの別の一例である。特に限定しないが、ライトリクエストは、リクエストイネーブル信号RqEN2がHighの際に、リクエストクロック信号RqCk2に同期して、メモリチップM2のID値ID3、リクエスト番号RqN3、ライト命令WT1、アドレスAD24およびAD25が多重化されメモリチップM1へ入力される。アドレスAD22およびAD23には、バンクアドレスおよびカラムアドレスが含まれる。本ライトリクエストによって、メモリチップM2へデータが書き込まれる。
【０５９１】
図36(a)は、情報処理装置CPU_CHIPからメモリチップM0およびメモリチップM1を介してメモリチップM2へ入力するリクエストキューおよびレスポンスキューを予約するためのキュー予約リクエストReqNQRvの一例である。
【０５９２】
特に限定しないが、キュー予約リクエストReqNQRvは、リクエストイネーブル信号RqEN2がHighの際に、リクエストクロック信号RqCk2に同期して、ID値ID3、キュー予約命令QRv、予約するキューの数QRvN値を多重化したリクエストReqNQRvがメモリチップM0へ転送される。このリクエストによって、メモリチップM2のリクエストキューおよびレスポンスキューがそれぞれQRvN値で指定された数分だけ予約される。
【０５９３】
図36(b)は、メモリチップM2のキューの予約が完了したことを知らせる予約完了レスポンスである。特に限定しないが、予約完了レスポンスは、レスポンスイネーブル信号RsEN2がHighの際に、レスポンスクロック信号RsCk1の立ち上がりおよび立ち下がりに同期して、ID値ID3、予約完了信号RvFlgを多重化した予約完了レスポンスがメモリチップM1へ送信され、さらに、メモリチップM0を介して情報処理装置CPU_CHIPへ送信される。情報処理装置CPU_CHIPは予約完了レスポンスを受け取ることで、キューの予約が完了したことを確認できる。
【０５９４】
図36(c)は、情報処理装置CPU_CHIPからメモリチップM0およびメモリチップM1を介してメモリチップM2へ入力するリクエストキューおよびレスポンスキューを予約するためのキュー予約リクエストReqNQRvの別の一例である。
【０５９５】
特に限定しないが、キュー予約リクエストReqNQRvは、リクエストイネーブル信号RqEN2がHighの際に、リクエストクロック信号RqCk1に同期して、ID値ID3、リクエスト番号RqN5、キュー予約命令QRv、予約するキューの数QRvN値を多重化したリクエストReqNQRvがメモリチップM2へ転送される。このリクエストによって、メモリチップM2のリクエストキューおよびレスポンスキューがそれぞれQRvN値で指定された数分だけ予約される。
【０５９６】
図36(d)は、メモリチップM2へのキューの予約が完了したことを知らせる予約完了レスポンスである。
【０５９７】
特に限定しないが、予約完了レスポンスは、レスポンスイネーブル信号RsEN2がHighの際に、レスポンスクロック信号RsCk2の立ち上がりおよび立ち下がりに同期して、レスポンス番号RsN5、予約完了信号RvFlgを多重化した予約完了レスポンスがモリチップM2へ送信され、さらに、メモリチップM0を介して情報処理装置CPU_CHIPへ送信される。情報処理装置CPU_CHIPは予約完了レスポンスを受け取ることで、キューの予約が完了したことを確認できる。
【０５９８】
上記は、バンクアクティブ命令、リード命令、ライト命令、キュー予約命令などの情報を含むリクエストおよび、読み出しデータ、レイテンシ値などの情報を含むレスポンスの動作について説明したが、これら以外の情報を含むリクエストやレスポンスについても同様の動作を行うことは言うまでもない。
【０５９９】
図37は情報処理装置CPU_CHIPからメモリチップM１へ読み出しリクエストが生じ、連続して、メモリチップM０へ読み出しリクエストが生じた場合のデータ転送波形を示す。
【０６００】
情報処理装置CPU_CHIPは、リクエスト信号RqMux0を通じて、ID値１、2バイトデータ読み出し命令NRD2およびアドレスAD0、AD1を多重化したリクエストReqNRD2をメモリチップM0へ転送する。
【０６０１】
続いて、リクエスト信号RqMux0を通じて、ID値２、2バイトデータ読み出し命令RD2、アドレスAD0、AD1を多重化したリクエストReqRD2をメモリチップM0へ転送する。
【０６０２】
メモリチップM0のリクエストキューRqQIへリクエストReqNRD2およびリクエストReqRD2が入力される。
【０６０３】
リクエストReqNRD2はメモリチップM1へのリクエストのため、メモリチップM0のリクエストキューRqQXOへ転送される。また、リクエストReqNRD2はリクエスト信号RqMux1を通じてメモリチップM1へ転送される。
【０６０４】
リクエストReqNRD2はメモリチップM1のリクエストキューRqQIへ入力され、次にリクエストキューRqQXIへ転送される。リクエストReqNRD2に対応するデータがメモリチップM1のメモリ回路MemNV1から読み出され、IDレジスタ値１も含めて、レスポンスRsNRD2としてレスポンスキューRsQoへ入力される。
【０６０５】
レスポンスキューRsQoへ入力されたレスポンスRsNRD2は、レスポンス信号RqMux1を通じて転送され、メモリチップM0のレスポンスキューRsQpへ格納される。レスポンスキューRsQpへ格納されたレスポンスRsNRD2は、レスポンス信号ResMux0を通じて、ID値１と読み出しデータとして出力される。
【０６０６】
リクエストReqRD2はメモリチップM０へのリクエストのため、メモリチップM0のリクエストキューRqQXIへ転送される。
【０６０７】
リクエストReqRD2に対応するデータがメモリチップM0のメモリ回路MemVLから読み出され、IDレジスタ値2も含めて、レスポンスRsRD2としてレスポンスキューRsQoへ入力される。
【０６０８】
レスポンスキューRsQoへ入力されたレスポンスRsRD2は、レスポンス信号RqMux0を通じて、ID値2と読み出しデータとして出力される。
【０６０９】
リクエストReqRD2がメモリチップM0のリクエストキューRqQIへ入力され、このリクエストに対するレスポンスResRD2がレスポンス信号ResMux0から出力される時間は、約15nsである。
【０６１０】
一方、リクエストReqNRD2がメモリチップM1のリクエストキューRqQIへ入力され、このリクエストに対するレスポンスResRD2がレスポンス信号ResMux0から出力される時間は、約70nsである。
【０６１１】
そのため、リクエストReqRD2がリクエストReqNRD2の後に入力されたにもかかわらず、先に出力できる。
【０６１２】
本実施の形態ではデータ読み出しを中心に説明したが、データの書込み動作においても同様の動作を行うことができるのは言うまでもない。
【０６１３】
また、本実施の形態では、メモリチップM0とM1とのデータ転送動作を説明したが、M1とその他のメモリチップについても同様のデータ転送動作を行うことは言うまでもない。
【０６１４】
＜第１の実施の形態の効果＞
以下、上述の実施の形態について、構成とその効果についてまとめる。
【０６１５】
（１）電源投入直後に、直列接続の確認動作を行うことで、確実にメモリ同士が接続されていることが確認できる。さらに、ブートデバイスおよび、最端のメモリチップを明示し、自動的に各メモリへのID付けが行われることで、容易に、必要な分だけメモリチップを接続し、メモリ容量を拡張することができる。
【０６１６】
（２）リクエストへIDを付加することで、情報処理装置CPU_CHIPから各メモリチップM0、M1およびM2へリクエストが確実に転送される。また、情報処理装置CPU_CHIPへのレスポンスへIDを付加することで、各メモリから正しく正しくデータ転送が行えたことを確認でき、情報処理装置CPU_CHIPおよびメモリチップM0、M1、M2の直列接続によって、接続信号数を減少させながらも、情報処理装置CPU_CHIPは所望の処理を実行することができる。
【０６１７】
（３）データを送信する前に、そのデータのレイテンシ値を送信することで、情報処理装置CPU_CHIPはデータの到着時間を知り、データの到着前に前もって必要な処理を行うことができ性能向上が図れる。
【０６１８】
（４）リクエストへリクエスト番号を付加し、またレスポンスへレスポンス番号を付加することで、データ転送性能の向上を図るためリクエストの入力順とは異なる順番で、レスポンスが送信された場合でも、情報処理装置CPU＿CHIPは、どのリクエストに対するレスポンスがメモリチップより送信されたかを知ることができ、所望の処理を高速に実行することができる。
【０６１９】
（５）リクエストインターフェース回路ReIFとレスポンスインターフェース回路は独立に動作可能なため、データの読み出し動作と書き込み動作を同時に実行でき、データ転送性能を向上させることができる。
【０６２０】
（６）リクエストの入力順序に関わらず、早く読み出せるデータは、読み出しが遅いデータを待つことなく、すぐに読み出すことができるため、高速化が可能となる。
【０６２１】
（７）各メモリチップM0、M1およびM2のクロックを必要に応じて、低速動作させたり、停止させたり、復帰させたりできるため、低電力化を図ることができる。
【０６２２】
（８）メモリチップM2からの読み出し時は、エラー検出と訂正を行い、書きこみ時は、書きこみが正しく行われなかった不良アドレスに対して代替処理を行うため、信頼性を保つことができる。
【０６２３】
また、本実施の形態では、メモリモジュールMEMには1つの揮発性メモリ、１つのNOR型フラッシュメモリ、１つのNAND型フラッシュメモリがが含まれているを例について説明しているが、メモリモジュールMEMに複数個の揮発性メモリ及び複数個のNOR型フラッシュメモリ及びNAND型フラッシュメモリが含まれる場合であっても本発明を実現できるのは言うまでもない。
【０６２４】
（第２の実施の形態）
図38は、本発明の第２の実施の形態である。情報処理装置CPU_CHIPとメモリモジュールMEM24から構成される情報処理システムを示した実施の形態である。
【０６２５】
メモリモジュールMEM２４はダイナミックランダムアクセスメモリDRAM0およびDRAM1、NOR型フラッシュメモリNORおよびNAND型フラッシュメモリNANDから構成される。
【０６２６】
情報処理装置CPU＿CHIPは、図１で示したものと同等である。ダイナミックランダムアクセスメモリDRAM0およびDRAM1は、図10で示したメモリと同等である。NOR型フラッシュメモリNORは、図18示したメモリと同等である。NAND型フラッシュメモリNANDは図21で示したメモリと同等である。
【０６２７】
本発明では、容易に、ダイナミックランダムアクセスメモリを複数接続することができ、情報処理装置CPU_CHIPが必要とするワーク領域やコピー領域を用意に拡張でき、高速処理が可能となる。
【０６２８】
本実施の形態では、ダイナミックランダムアクセスメモリの複数接続について説明したが、NOR型フラッシュメモリNORや、NAND型フラッシュメモリNANDは、必要に応じて複数個接続でき、容易にプログラム領域やデータ領域を拡張でき、携帯機器のシステム構成に合わせて柔軟に対応できる。
【０６２９】
（第３の実施の形態）
図39は、本発明の第３の実施の形態である。情報処理装置CPU_CHIPとメモリモジュールMEM２５から構成される情報処理システムを示した実施の形態である。情報処理装置CPU＿CHIPは、図１で示したものと同等である。NOR型フラッシュメモリNORは、図18示したメモリと同等である。ダイナミックランダムアクセスメモリDRAMは、図10で示したメモリと同等である。NAND型フラッシュメモリNANDは図21で示したメモリと同等である。
【０６３０】
メモリモジュールMEM２５は、それを構成するメモリの接続の順番が、情報処理装置CPU_CHIPから近い順に、NOR型フラッシュメモリセルを利用したNOR型フラッシュメモリNOR、ダイナミックメモリセルを利用したダイナミックランダムアクセスメモリDRAM、NAND型フラッシュメモリセルを利用したNAND型フラッシュメモリNANDである。
【０６３１】
携帯電話機では、電話やメールの待ち受け時は、OSや通信用プログラムなどが格納されるNOR型フラッシュメモリNORへの間欠的なアクセスが支配的となる。したがって、不揮発性メモリであるNOR型フラッシュメモリNORを、情報処理装置CPU_CHIPから最も近くに接続する本実施形態では、ダイナミックランダムアクセスメモリDRAMをセルフリフレッシュ状態にし、さらにダイナミックランダムアクセスメモリDRAM やNAND型フラッシュメモリNANDへのリクエストクロック(RqCk1およびRqCk0)や、レスポンスクロック(RsCk1やRsCk2)を停止し、NOR型フラッシュメモリNORのみを動作させることができ、電話やメールの待ち受け時の消費電力を低減することができる。
【０６３２】
（第４の実施の形態）
図40は、情報処理装置CPU_CHIPとメモリモジュールMEM２６から構成される情報処理システムを示したものである。メモリモジュールMEM２６は、ダイナミックランダムアクセスメモリDRAM、NAND型フラッシュメモリNAND０およびNAND１から構成される。情報処理装置CPU＿CHIPは、図１で示したものと同等である。ダイナミックランダムアクセスメモリDRAMは、図10で示したメモリと同等である。NAND型フラッシュメモリNAND０およびNAND1は図21で示したメモリと同等である。NAND型フラッシュメモリNAND０およびNAND1はNOR型ラッシュメモリより大容量かつ低コストを実現できるメモリである。NOR型フラッシュメモリの代わりにNAND型フラッシュメモリNAND０を利用することでNAND型フラッシュメモリNAND０へ、OSやアプリケーションプログラムを格納でき、大容量かつ低コストの情報処理システムが実現できる。さらに、NAND型フラッシュメモリNAND０へ格納しているOSやアプリケーションプログラムをあらかじめダイナミックランダムアクセスメモリDRAMへ転送することで、情報処理システムの高性能化が図れる。
【０６３３】
（第５の実施の形態）
図41は、情報処理装置CPU_CHIPとメモリモジュールMEM２７から構成される情報処理システムを示したものである。メモリモジュールMEM２７は、ダイナミックランダムアクセスメモリDRAM、NOR型フラッシュメモリNOR、NAND型フラッシュメモリNANDおよびハードディスクHDDから構成される。情報処理装置CPU＿CHIPは、図１で示したものと同等である。ダイナミックランダムアクセスメモリDRAMは、図10で示したメモリと同等である。NOR型フラッシュメモリNORは、図18示したメモリと同等である。NAND型フラッシュメモリNANDは図21で示したメモリと同等である。ハードディスクHDDは、NAND型フラッシュメモリNANDより大容量かつ低コストを実現できるメモリである。
【０６３４】
データの読み出し単位や、アドレス管理方法や、エラー検出訂正方法に関していえば、もともとハードディスクHDDで実現していたデータの読み出し単位や、アドレス管理方法や、エラー検出訂正方法などをフラッシュメモリが引き継いでいるため、ハードディスクHDDを容易に追加接続し、大容量かつ低コストのメモリモジュールを実現できる。
【０６３５】
（第６の実施の形態）
図42は、情報処理装置CPU_CHIPとメモリモジュールMEM２８から構成される情報処理システムを示したものである。メモリモジュールMEM２８は、第１の不揮発性メモリMRAM、第２の不揮発性メモリNOR、第３の不揮発性メモリNANDから構成される。情報処理装置CPU_CHIPは、図１で示したものと同等である。第１の不揮発性メモリMRAMは、図10で示したメモリ回路MemVLが、不揮発性のマグネティックメモリセルで構成されているマグネティックランダムアクセスメモリMRAMである。第２の不揮発性メモリNORは、図18で示したNOR型フラッシュメモリと同等である。第３の不揮発性メモリNANDは、図21で示したNAND型フラッシュメモリNANDと同等である。
【０６３６】
揮発性のダイナミックランダムアクセスメモリDRAMの代わりに不揮発性のマグネティックランダムアクセスメモリMRAMを用いることで、メモリ回路内のデータ保持動作を定期的に行う必要がないため、低電力化が可能となる。また、第２の不揮発性メモリM280は、図12で示したメモリ回路NV1が不揮発性の相変化メモリセルから構成される相変化メモリであっても良い。
【０６３７】
（第７の実施の形態）
図43は本発明における第７の実施の形態を示したものである。図43（Ａ）は上面図であり、図43（Ｂ）は上面図に示したＡ−Ａ'線に沿った部分の断面図である。
【０６３８】
本実施の形態のマルチチップ・モジュールは、ボールグリッドアレイ(BGA)によって装置に実装する基盤(例えばガラスエポキシ基板でできたプリント回路ボード)PCB上に、CHIPM1、CHIPM2、CHIPM3が搭載されている。特に限定しないが、CHIPM1は第１の不揮発性メモリで、CHIPM2は第２の不揮発性メモリで、CHIPM3は第１の揮発性メモリである。
【０６３９】
本マルチチップ・モジュールにより、図１で示すメモリモジュールMEMおよび、図39で示すメモリモジュールMEM２５、図40で示すメモリモジュールMEM２６、図42で示すメモリモジュールMEM２８を１つの封止体に集積できる。
【０６４０】
CHIPM1と基盤PCB上のボンディングパットはボンディングワイヤ(PATH2)で接続され、CHIPM2と基盤PCB上のボンディングパットはボンディングワイヤ(PATH1)で接続されている。CHIPM3と基盤PCB上のボンディングパットはボンディングワイヤ(PATH4)で接続されている。CHIPM1とCHIPM2はボンディングワイヤ(PATH３)で接続され、CHIPM2とCHIPM3はボンディングワイヤ(PATH5)で接続されている。
【０６４１】
チップの搭載された基盤PCBの上面は樹脂モールドが行われて各チップと接続配線を保護する。なお、さらにその上から金属、セラミック、あるいは樹脂のカバー(COVER)を使用しても良い。
【０６４２】
本実施の形態ではプリント回路ボードPCB上にベアチップを直接搭載するため、実装面積の小さなメモリモジュールを構成することができる。また、各チップを積層することができるため、チップと基盤PCB間の配線長を短くすることができ、実装面積を小さくすることができる。チップ間の配線及び各チップと基盤間の配線をボンディングワイヤ方式で統一することによって少ない工程数でメモリモジュールを製造することができる。
【０６４３】
さらにチップ間をボンディングワイヤで直接配線することによって基盤上のボンディングパット数とボンディングワイヤの本数を削減して少ない工程数でメモリモジュールを製造することができる。樹脂のカバーを使用した場合には、より強靭なメモリモジュールを構成することができる。セラミックや金属のカバーを使用した場合には、強度のほか、放熱性やシールド効果に優れたメモリモジュールを構成することができる。
【０６４４】
（第８の実施の形態）
図44は本発明における第８の実施の形態を示したものである。図44（Ａ）は上面図であり、図44（Ｂ）は上面図に示したＡ−Ａ'線に沿った部分の断面図である。
【０６４５】
本実施の形態のマルチチップ・モジュールは、ボールグリッドアレイ(BGA)によって装置に実装する基盤(例えばガラスエポキシ基板でできたプリント回路ボード)PCB上に、CHIPM1、CHIPM2、CHIPM3が搭載されている。CHIPM1は第１の不揮発性メモリ、CHIP2Mは第２の不揮発性メモリである。CHIP3Mはランダムアクセスメモリである。本マルチチップ・モジュールにより、図１で示すメモリモジュールMEMおよび、図39で示すメモリモジュールMEM２５、図40で示すメモリモジュールMEM２６、図42で示すメモリモジュールMEM２８を１つの封止体に集積できる。
【０６４６】
CHIPM1と基盤PCB上のボンディングパットはボンディングワイヤ(PATH2)で接続され、CHIPM2と基盤PCB上のボンディングパットはボンディングワイヤ(PATH1)で接続されている。CHIPM1とCHIPM2はボンディングワイヤ(PATH３)で接続される。また、CHIP3Ｍの実装および配線にボールグリッドアレイが用いられている。
【０６４７】
本実装方法では３チップを積層することができるので実装面積を小さく保つことができる。さらに、CHIPM3と基盤間とのボンディングは不要となりボンディング配線の本数を削減することができるため組み立て工数を削減できる上、より信頼性の高いマルチチップモジュールが実現できる。
【０６４８】
（第９の実施の形態）
図45は本発明に係るマルチチップ・モジュールの第９の実施の形態を示したものである。図45（Ａ）は上面図であり、図45（Ｂ）は上面図に示したＡ−Ａ'線に沿った部分の断面図である。
【０６４９】
本実施の形態のメモリモジュールは、ボールグリッドアレイ(BGA)によって装置に実装する基盤(例えばガラスエポキシ基板でできたプリント回路ボード)PCB上に、CHIPM1、CHIPM2、CHIPM3、CHIPM4が搭載されている。CHIPM1およびCHIPM2は不揮発性メモリ、CHIPM3はランダムアクセスメモリである。
【０６５０】
CHIPM4は情報処理装置CPU_CHIPはである。本実装方法では、図１で示す情報処理システムおよび、図39で示す情報処理システム、図40で示す情報処理システムおよび図42で示す情報処理システムを１つの封止体に集積できる。
【０６５１】
CHIPM1と基盤PCB上のボンディングパットはボンディングワイヤ(PATH2)で接続され、CHIPM2と基盤PCB上のボンディングパットはボンディングワイヤ(PATH４)で接続され、CHIPM３と基盤PCB上のボンディングパットはボンディングワイヤ(PATH１)で接続されている。
【０６５２】
CHIPM1とCHIPM３はボンディングワイヤ(PATH３)で接続され、CHIPM2とCHIPM3はボンディングワイヤ(PATH５)で接続される。CHIPM4の実装および配線にボールグリッドアレイ（BGA）が用いられている。本実装方法ではプリント回路ボードPCB上にベアチップを直接搭載するため、実装面積の小さなメモリモジュールを構成することができる。また、各チップを近接して配置することができるため、チップ間配線長を短くすることができる。
【０６５３】
チップ間をボンディングワイヤで直接配線することによって基盤上のボンディングパット数とボンディングワイヤの本数を削減して少ない工程数でメモリモジュールを製造することができる。さらに、CHIPM４と基盤間とのボンディングは不要となりボンディング配線の本数を削減することができるため組み立て工数を削減できる上、より信頼性の高いマルチチップモジュールが実現できる。
【０６５４】
（第１０の実施の形態）
図46は本発明に係るメモリシステムの第１０の実施の形態を示したものである。図46（Ａ）は上面図であり、図46（Ｂ）は上面図に示したＡ−Ａ'線に沿った部分の断面図である。
【０６５５】
本実施の形態のメモリモジュールは、ボールグリッドアレイ(BGA)によって装置に実装する基盤(例えばガラスエポキシ基板でできたプリント回路ボード)PCB上に、CHIPM1、CHIPM2、CHIPM3が搭載されている。CHIPM1およびCHIPM2は不揮発性メモリ、CHIPM3はランダムアクセスメモリである。
【０６５６】
チップ間の配線及び各チップと基盤間の配線をボンディングワイヤ方式で統一することによって少ない工程数でメモリモジュールを製造することができる。本実装方法では、図１で示すメモリモジュールMEMおよび、図39で示すメモリモジュールMEM２５、図40で示すメモリモジュールMEM２６、図42で示すメモリモジュールMEM２８を１つの封止体に集積できる。
【０６５７】
CHIPM1と基盤PCB上のボンディングパットはボンディングワイヤ(PATH2)で接続され、CHIPM2と基盤PCB上のボンディングパットはボンディングワイヤ(PATH１)で接続され、CHIPM３と基盤PCB上のボンディングパットはボンディングワイヤ(PATH３)で接続されている。本実施の形態ではプリント回路ボードPCB上にベアチップを直接搭載するため、実装面積の小さなメモリモジュールを構成することができる。また、各チップを近接して配置することができるため、チップ間配線長を短くすることができる。
【０６５８】
各チップと基盤間の配線をボンディングワイヤ方式で統一することによって少ない工程数でメモリモジュールを製造することができる。
【０６５９】
（第１１の実施の形態）
図47は本発明に係るメモリシステムの第１１の実施の形態を示したものである。図47（Ａ）は上面図であり、図47（Ｂ）は上面図に示したＡ−Ａ'線に沿った部分の断面図である。
【０６６０】
本実施の形態のメモリモジュールは、ボールグリッドアレイ(BGA)によって装置に実装する基盤(例えばガラスエポキシ基板でできたプリント回路ボード)PCB上に、CHIPM1、CHIPM2、CHIPM3、CHIPM4が搭載されている。CHIPM1およびCHIPM2は不揮発性メモリ、およびCHIPM3はランダムアクセスメモリである。CHIPM4は情報処理装置CPU_CHIPはである。
【０６６１】
本実装方法では、 図１で示す情報処理システムおよび、図39で示す情報処理システム、図40で示す情報処理システムおよび図42で示す情報処理システムを１つの封止体に集積できる。
【０６６２】
CHIPM1と基盤PCB上のボンディングパットはボンディングワイヤ(PATH2)で接続され、CHIPM2と基盤PCB上のボンディングパットはボンディングワイヤ(PATH１)で接続され、CHIPM３と基盤PCB上のボンディングパットはボンディングワイヤ(PATH３)で接続されている。CHIPM4の実装および配線にボールグリッドアレイ（BGA）が用いられている。
【０６６３】
本実施の形態ではプリント回路ボードPCB上にベアチップを直接搭載するため、実装面積の小さなメモリモジュールを構成することができる。また、各チップを近接して配置することができるため、チップ間配線長を短くすることができる。CHIPM４と基盤間とのボンディングは不要となりボンディング配線の本数を削減することができるため組み立て工数を削減できる上、より信頼性の高いマルチチップモジュールが実現できる。
【０６６４】
（第１２の実施の形態）
図48に、本発明に係るメモリモジュールを利用した携帯電話の第１２の実施の形態を示す。携帯電話は、アンテナANT、無線ブロックRF、音声コーデックブロックSP、スピーカーSK、マイクロホンMK、情報処理装置CPU、液晶表示部LCD、キーボードKEYおよび本発明のメモリモジュールMSMで構成される。情報処理装置CPU＿MAINは複数の情報処理回路を持ち、その中の１つの情報処理回路CPU0はベースバンド処理回路BBとして、他の中の少なくとも１つの情報処理回路CPU1はアプリケーションプロセッサAPとして動作する。
【０６６５】
通話時の動作を説明する。アンテナANTを通って受信された音声は無線ブロックRFで増幅され、情報処理装置CPU0へ入力される。情報処理装置CPU0では、音声のアナログ信号をデジタル信号に変換し、エラー訂正と復号処理おこない、音声コーデックブロックSPへ出力する。音声コーデックブロックがデジタル信号をアナログ信号に変換しスピーカーSKに出力すると、スピーカーから相手の声が聞こえる。
【０６６６】
携帯電話から、インターネットのホームページにアクセスし、音楽データをダウンロードし、再生して聞き、最後にダウンロードした音楽データを保存するという一連の作業を行うときの動作を説明する。
【０６６７】
メモリモジュールMEMには、OS、アプリケーションプログラム（メール、Webブラウザ、音楽再生プログラム、動作再生プログラム、ゲームプログラムなど）、音楽データ、静止画データ、動画データなどが格納されている。
【０６６８】
キーボードより、Webブラウザの起動を指示すると、メモリモジュールMSM内のNOR型フラッシュメモリへ格納されているWebブラウザのプログラムは情報処理回路CPU1によって読み出され、実行され、液晶表示LCDにWebブラウザが表示される。所望のホームページにアクセスし、気に入った音楽データのダウンロードをキーボードKEYより指示すると、音楽データは、アンテナANTを通って受信され、無線ブロックRFで増幅され、情報処理装置CPU0へ入力される。情報処理装置CPU0では、アナログ信号である音楽データをデジタル信号に変換し、エラー訂正と復号処理おこなう。デジタル信号化された音楽データはメモリモジュールMSM内のダイナミックランダムアクセスメモリDRAMへ一旦、保持され、最終的に、メモリモジュールMEMのNAND型フラッシュメモリへと転送され格納される。
【０６６９】
次に、キーボードKEYより、音楽再生プログラムの起動を指示するとメモリモジュールMSM内のNOR型フラッシュメモリへ格納されている音楽再生プログラムが、情報処理回路CPU1によって読み出され、実行され、液晶表示LCDに音楽再生プログラムが表示される。
【０６７０】
キーボードKEYより、メモリモジュール内NAND型フラッシュメモリへダウンロードした音楽データを聞くための指示を行うと、情報処理回路CPU１は音楽再生プログラムを実行し、NAND型フラッシュメモリへ保持している音楽データを処理し、最終的にスピーカーSKから音楽が聞こてくる。本発明のメモリモジュールMSM内のNOR型フラッシュメモリには、Webブラウザと音楽再生プログラムや、電子メールプログラムなどの複数のプログラムが格納され、情報処理装置CPU_MAINは複数の情報処理回路CPU0からCPU3を持つため、同時に複数のプログラムを実行することができる。
【０６７１】
電話や電子メールの待ちうけ時には、情報処理装置CPU_MAINは、メモリモジュールMSMへのクロックを必要最小限の周波数で動作させることができ消費電力を極端に小さくできる。
【０６７２】
このように、本発明に係るメモリモジュールを用いることにより、大量のメール、音楽再生、アプリケ-ションプログラムや音楽データ、静止画像データ、動画データなどを格納でき、さらに複数のプログラムを同時に実行できる。
【０６７３】
（第１３の実施の形態）
図49に、本発明に係るメモリシステムを利用した携帯電話の第１３の実施の形態を示す。携帯電話は、アンテナANT、無線ブロックRF、音声コーデックブロックSP、スピーカーSK、マイクロホンMK、液晶表示部LCD、キーボードKEYおよび、メモリモジュールMSMと情報処理装置CPU_MAINを１つの封止体に集積した本発明の情報処理システムSLPで構成される。
【０６７４】
本発明の情報処理システムSLPを用いることによって、部品点数を削減できるため、低コスト化ができ、携帯電話の信頼性が向上する、携帯電話を構成する部品の実装面積を小さくでき、携帯電話の小型化ができる。
【０６７５】
（第１４の実施の形態）
図51は、本発明の第１４の実施の形態である。情報処理装置CPU_CHIP0、CPU_CHIP1、CPU_CHIP2、CPU_CHIP3とメモリモジュールMEM30、MEM31、MEM32、MEM33から構成される情報処理システムを示した実施の形態である。
【０６７６】
情報処理装置CPU＿CHIP0、CPU_CHIP1、CPU_CHIP2、CPU_CHIP3は、図１で示した情報処理装置CPU_CHIPと同等である。メモリモジュールMEM30、MEM31、MEM32、MEM33は、図１で示したメモリモジュールMEMと同等である。
【０６７７】
RqC0からRqC7はリクエストクロックであり、RsC0からRsC7はレスポンスクロックである。RqE0からRqE7はリクエストイネーブル信号であり、RsE0からRsEN7はレスポンスイネーブル信号である。RqM0からRqM7はリクエスト信号であり、RsM0からRsM1はレスポンス信号である。
【０６７８】
本発明では、容易に情報処理装置を複数接続することができ、高速処理が可能となる。さらに、携帯機器のシステム構成や、必要とする性能に合わせて、柔軟に情報処理装置やメモリモジュールを接続することができる。
【０６７９】
本実施の形態では、図１に示したメモリモジュールMEMの接続例を示しているが、図38から図42に示すメモリモジュールを接続しても良い。
【０６８０】
＜各実施の形態に示される発明の効果のまとめ＞
以上説明したように本明細書に開示される発明によって得られる主な効果は以下の通りである。
【０６８１】
第１に、電源投入直後に、直列接続の確認動作を行うことで、確実にメモリ同士が接続されていることが確認できる。さらに、ブートデバイスおよび、最端のメモリチップを明示し、自動的に各メモリへのID付けが行われることで、容易に、必要な分だけメモリチップを接続し、メモリ容量を拡張することができる。
【０６８２】
第２に、リクエストへIDを付加することで、情報処理装置CPU_CHIPから各メモリチップM0、M1およびM2へリクエストが確実に転送される。また、情報処理装置CPU_CHIPへのレスポンスへIDを付加することで、各メモリから正しく正しくデータ転送が行えたことを確認でき、情報処理装置CPU_CHIPおよびメモリチップM0、M1、M2の直列接続によって、接続信号数を減少させながらも、情報処理装置CPU_CHIPは所望の処理を実行することができる。
【０６８３】
第３に、データを送信する前に、そのデータのレイテンシ値を送信することで、情報処理装置CPU_CHIPはデータの到着時間を知り、データの到着前に前もって必要な処理を行うことができ性能向上が図れる。
【０６８４】
第４に、リクエストへリクエスト番号を付加し、またレスポンスへレスポンス番号を付加することで、データ転送性能の向上を図るためリクエストの入力順とは異なる順番で、レスポンスを送信された場合でも、情報処理装置CPU＿CHIPは、どのリクエストに対するレスポンスがメモリチップより送信されたかを知ることができ、所望の処理を高速に実行することができる。
【０６８５】
第５に、リクエストインターフェース回路ReIFとレスポンスインターフェース回路は独立に動作可能なため、データの読み出し動作と書き込み動作を同時に実行でき、データ転送性能を向上させることができる。
【０６８６】
第６に、リクエストの入力順序に関わらず、早く読み出せるデータは、読み出しが遅いデータを待つことなく、すぐに読み出すことができるため、高速化が可能となる。
【０６８７】
第７に、各メモリチップM0、M1およびM2のクロックを必要に応じて、低速動作させたり、停止させたり、復帰させたりできるため、低電力化を図ることができる。
【０６８８】
第８に、メモリチップM2からの読み出し時は、エラー検出と訂正を行い、書きこみ時は、書きこみが正しく行われなかった不良アドレスに対して代替処理を行うため、信頼性を保つことができる。
【０６８９】
第９に、情報処理装置への各メモリからのレスポンス順序は、読み出した回数に応じて動的に変化するため、データ転送性能を向上することができる。さらに、読み出し回数は、プログラムすることができ、利用するシステムに柔軟に対応することができる。
【０６９０】
第１０に、メモリチップから情報処理処理装置へエラーを送信することができるので、情報処理装置はエラーを検出して、すぐにエラーに対処することができ、信頼性の高い情報処理システムを構築できる。
【０６９１】
第１１に、各メモリチップM0、M1およびM2のクロックの動作周波数を必要に応じて、変更することができ低電力化を図ることができる。
【０６９２】
第１２に、複数の半導体チップを一つの封止体に実装することによって実装面積の小さなシステムメモリ・モジュールを提供できる。
【符号の説明】
【０６９３】
CPU_CHIP…情報処理装置、CPU0、CPU1、CPU2、CPU3…情報処理回路、
CON…メモリ制御回路、
リクエストキューRqQ…リクエストキュー、RsQ…レスポンスキュー、BotID…ブートデバイスIDレジスタ、EndID…最端デバイスIDレジスタ、
MEM…メモリモジュール、M0、M1、M2…メモリチップ、
INIT…初期設定回路、ReqIF…リクエストインターフェース回路、ResIF…レスポンスインターフェース回路、MemVL 、MemNV1 、MemNV２…メモリ回路、ReqIF…リクエストインターフェース回路、
RqCkC…リクエストクロック制御回路、RqCT…リクエストキュー制御回路、
IDR…IDレジスタ、Bsig…ブートデバイス認識信号、
RqCk0、RqCK1、RqCk2…リクエストクロック、RsCk0、RsCK1、RsCk2…レスポンスクロック、
RqEN0、RqEN1、RqEN2…リクエストイネーブル信号、RsEN0、RsEN1、RsEN2…レスポンスイネーブル信号、
RqMux0、RqMux1、RqMux2…リクエス信号、RsMux0、RsMux1、RsMux2…レスポンス信号、
ck1、ck2、ck3、ck4…クロック信号、
BotID-AREA…ブートデバイスID格納領域、
EndID-AREA…最終端デバイスID格納領域、
InitPR-AREA…初期プログラム領域、
OSAP-AREA…プログラム格納領域、
COPY-AREA…コピー領域、WORK-AREA…ワーク領域、
DATA-AREA…データ領域、REP-AREA…代替領域、
PwOn…電源投入期間、RESET…リセット期間、BootIDSet…ブートデバイスID設定期間、
LinkEn…接続確認期間、BootRD…ブートデータ読み出し期間、InitID…ID番号設定期間、
Idle…アイドル期間、
RqQI、RqQXI、RqQXO…リクエストキュー回路、IDR…IDレジスタ回路、
CPQ…ID比較回路、
RsQo、RsQp…レスポンスキュー回路、STReg…ステータスレジスタ回路、SCH…レスポンススケジュール回路、
LRG…レイテンシ値出力設定レジスタ、RRG…レスポンス順序設定レジスタ、RNB…リクエスト番号設定回路、
CmdDec…コマンドデコーダ、ContLogic…制御回路、RaddLat…ロウアドレスバッファ、CaddLat…カラムアドレスバッファ、RefC…リフレッシュカウンタ、Thmo…温度計、
WdataLat…ライトデータバッファ、RdataLat…リードデータバッファ、
RowDec…ロウデコーダ、
ColDec…カラムデコーダ、
SenseAmp…センスアンプ、
DataCont…データ制御回路、
Bank0、Bank1、Bank2、Bank3、Bank4、Bank5、Bank6、Bank7…メモリバンク、
BotID…ブートデバイスID値、EndID…終端デバイスID値、
DRAM,DRAM0、DRAM1…ダイナミックランダムアクセスメモリ、
NOR…NOR型フラッシュメモリ、
NAND、NAND0,NAND1…NAND型フラッシュメモリ、
HDD…ハードディスク、
MRAM…マグネティックランダムアクセスメモリ、
CHIPM1、CHIPM2、CHIP3M、CHIP4M…半導体チップ、PCB…プリント回路基板、COVER…モジュールの封止カバー、PATH1〜PATH5…ボンディング配線、ANT…アンテナ、RF…無線ブロック、SP…音声コーデックブロック、SK…スピーカー、MK…マイクロホン、CPU…プロセッサ、DRAM…ダイナミックランダムアクセスメモリ、LCD…液晶表示部、KEY…キーボード、MSM…メモリモジュール、CPU_MAIN…情報処理装置、
SLP…情報処理システム、PRC…情報処理装置、MCM1、MCM2…メモリモジュール、CPU…中央演算装置、SRC、DRAC、NDC…メモリコントローラ、
NOR FLASH…NOR型フラッシュメモリ、SRAM…スタティックランダムアクセスメモリ、
NAND FLASH…NAND型フラッシュメモリ、DRAM…ダイナミックランダムアクセスメモリ。
【図１】
0005955936.tif 000002
【図２】
0005955936.tif 000003
【図３】
0005955936.tif 000004
【図４】
0005955936.tif 000005
【図５】
0005955936.tif 000006
【図６】
0005955936.tif 000007
【図７】
0005955936.tif 000008
【図８】
0005955936.tif 000009
【図９】
0005955936.tif 000010
【図１０】
0005955936.tif 000011
【図１１】
0005955936.tif 000012
【図１２】
0005955936.tif 000013
【図１３】
0005955936.tif 000014
【図１４】
0005955936.tif 000015
【図１５】
0005955936.tif 000016
【図１６】
0005955936.tif 000017
【図１７】
0005955936.tif 000018
【図１８】
0005955936.tif 000019
【図１９】
0005955936.tif 000020
【図２０】
0005955936.tif 000021
【図２１】
0005955936.tif 000022
【図２２】
0005955936.tif 000023
【図２３】
0005955936.tif 000024
【図２４】
0005955936.tif 000025
【図２５】
0005955936.tif 000026
【図２６】
0005955936.tif 000027
【図２７】
0005955936.tif 000028
【図２８】
0005955936.tif 000029
【図２９】
0005955936.tif 000030
【図３０】
0005955936.tif 000031
【図３１】
0005955936.tif 000032
【図３２】
0005955936.tif 000033
【図３３】
0005955936.tif 000034
【図３４】
0005955936.tif 000035
【図３５】
0005955936.tif 000036
【図３６】
0005955936.tif 000037
【図３７】
0005955936.tif 000038
【図３８】
0005955936.tif 000039
【図３９】
0005955936.tif 000040
【図４０】
0005955936.tif 000041
【図４１】
0005955936.tif 000042
【図４２】
0005955936.tif 000043
【図４３】
0005955936.tif 000044
【図４４】
0005955936.tif 000045
【図４５】
0005955936.tif 000046
【図４６】
0005955936.tif 000047
【図４７】
0005955936.tif 000048
【図４８】
0005955936.tif 000049
【図４９】
0005955936.tif 000050
【図５０】
0005955936.tif 000051
【図５１】
0005955936.tif 000052