(57)【要約】【課題】読み出し／書き込みアクセスをメモリに対して高速に行なうための技術を提供することを目的とする。【解決手段】メモリコントローラ４は、ホストシステム１のソフトウェア制御によることなく、メモリコントローラ４のハードウェア制御により、読み出し／書き込みアクセスをメモリ３に対して行なうことができる。また、メモリコントローラ４は、ホストシステム１およびメモリ３のハンドシェイクを解消することにより、ホストシステム１およびメモリ３に対して、それぞれの特性に適したタイミングで処理を行なわせることができる。そのため、メモリコントローラ４は、読み出し／書き込みアクセスを高速に行なうことができるのである。【選択図】図１
2008226211.tif 000002
【特許請求の範囲】
【請求項１】
ホストシステムが読み出すデータを格納するメモリに対して、読み出しアクセスを行なうメモリコントローラであって、
前記ホストシステムから読み出しコマンドを入力した後に、前記メモリの動作保証を満たす周波数を有するクロック（第２クロック）に同期して、前記メモリに制御信号を出力する制御信号出力手段と、
前記第２クロックに同期して、前記メモリから前記読み出しコマンドに係る読み出しデータを入力した後に、前記ホストシステムから入力するクロック（第１クロック）に同期して、前記ホストシステムに前記読み出しコマンドに係る読み出しデータを出力するデータ入出力手段と、
を備えることを特徴とするメモリコントローラ。
【請求項２】
請求項１に記載のメモリコントローラにおいて、
前記制御信号出力手段は、
前記制御信号の時系列パターンを格納して、前記第２クロックに同期して、前記メモリに前記制御信号を出力する手段、
を含むことを特徴とするメモリコントローラ。
【請求項３】
請求項１または請求項２に記載のメモリコントローラにおいて、
前記制御信号出力手段は、
前記メモリから前記読み出しコマンドに係る読み出しデータを入力するときには、前記メモリに対する前記制御信号の出力を行なう手段と、
前記ホストシステムに前記読み出しコマンドに係る読み出しデータを出力するときには、前記メモリに対する前記制御信号の出力を停止する手段と、
を含むことを特徴とするメモリコントローラ。
【請求項４】
請求項１ないし請求項３のいずれかに記載のメモリコントローラにおいて、
前記データ入出力手段は、
前記読み出しコマンドに係る読み出しデータを格納するバッファ部と、
前記メモリから前記読み出しコマンドに係る読み出しデータを入力するときには、前記バッファ部の動作クロックを前記第２クロックに設定する手段と、
前記ホストシステムに前記読み出しコマンドに係る読み出しデータを出力するときには、前記バッファ部の動作クロックを前記第１クロックに設定する手段と、
を含むことを特徴とするメモリコントローラ。
【請求項５】
請求項１ないし請求項４のいずれかに記載のメモリコントローラにおいて、
前記データ入出力手段は、
前記メモリから前記読み出しコマンドに係る読み出しデータを入力するときには、前記ホストシステムに前記読み出しコマンドに係る読み出しデータの読み出しを禁止する手段と、
前記ホストシステムに前記読み出しコマンドに係る読み出しデータを出力するときには、前記ホストシステムに前記読み出しコマンドに係る読み出しデータの読み出しを許可する手段と、
を含むことを特徴とするメモリコントローラ。
【請求項６】
請求項１ないし請求項５のいずれかに記載のメモリコントローラにおいて、
前記データ入出力手段は、
前記メモリから前記読み出しコマンドに係る読み出しデータの読み出しを許可された後に、前記メモリから前記読み出しコマンドに係る読み出しデータを入力するためのアクセスパスを設定するアクセスパス設定手段、
を含み、
前記アクセスパス設定手段は、
前記アクセスパスを設定するアクセスパス設定信号の時系列パターンを格納して、前記第２クロックに同期して、前記アクセスパスを設定する手段、
を含むことを特徴とするメモリコントローラ。
【請求項７】
ホストシステムが書き込むデータを格納するメモリに対して、書き込みアクセスを行なうメモリコントローラであって、
前記ホストシステムから書き込みコマンドを入力した後に、前記メモリの動作保証を満たす周波数を有するクロック（第２クロック）に同期して、前記メモリに制御信号を出力する制御信号出力手段と、
前記ホストシステムから入力するクロック（第１クロック）に同期して、前記ホストシステムから前記書き込みコマンドに係る書き込みデータを入力した後に、前記第２クロックに同期して、前記メモリに前記書き込みコマンドに係る書き込みデータを出力するデータ入出力手段と、
を備えることを特徴とするメモリコントローラ。
【請求項８】
請求項７に記載のメモリコントローラにおいて、
前記制御信号出力手段は、
前記制御信号の時系列パターンを格納して、前記第２クロックに同期して、前記メモリに前記制御信号を出力する手段、
を含むことを特徴とするメモリコントローラ。
【請求項９】
請求項７または請求項８に記載のメモリコントローラにおいて、
前記制御信号出力手段は、
前記ホストシステムから前記書き込みコマンドに係る書き込みデータを入力するときには、前記メモリに対する前記制御信号の出力を停止する手段と、
前記メモリに前記書き込みコマンドに係る書き込みデータを出力するときには、前記メモリに対する前記制御信号の出力を行なう手段と、
を含むことを特徴とするメモリコントローラ。
【請求項１０】
請求項７ないし請求項９のいずれかに記載のメモリコントローラにおいて、
前記データ入出力手段は、
前記書き込みコマンドに係る書き込みデータを格納するバッファ部と、
前記ホストシステムから前記書き込みコマンドに係る書き込みデータを入力するときには、前記バッファ部の動作クロックを前記第１クロックに設定する手段と、
前記メモリに前記書き込みコマンドに係る書き込みデータを出力するときには、前記バッファ部の動作クロックを前記第２クロックに設定する手段と、
を含むことを特徴とするメモリコントローラ。
【請求項１１】
請求項７ないし請求項１０のいずれかに記載のメモリコントローラにおいて、
前記データ入出力手段は、
前記ホストシステムから前記書き込みコマンドに係る書き込みデータを入力するときには、前記ホストシステムに前記書き込みコマンドに係る書き込みデータの書き込みを許可する手段と、
前記メモリに前記書き込みコマンドに係る書き込みデータを出力するときには、前記ホストシステムに前記書き込みコマンドに係る書き込みデータの書き込みを禁止する手段と、
を含むことを特徴とするメモリコントローラ。
【請求項１２】
請求項１ないし請求項１１のいずれかに記載のメモリコントローラにおいて、
前記第２クロックは、
前記第１クロックより高い周波数を有することを特徴とするメモリコントローラ。
【請求項１３】
請求項１ないし請求項１１のいずれかに記載のメモリコントローラにおいて、
前記第２クロックは、
前記メモリの動作保証に応じて可変である周波数を有することを特徴とするメモリコントローラ。
【請求項１４】
請求項１ないし請求項１３のいずれかに記載のメモリコントローラにおいて、さらに、
前記第１クロックを前記第２クロックに変換するクロック変換部、
を備えることを特徴とするメモリコントローラ。
【請求項１５】
請求項１ないし請求項１３のいずれかに記載のメモリコントローラにおいて、さらに、
前記第２クロックを生成するクロック生成部から、前記第２クロックを入力する手段、
を備えることを特徴とするメモリコントローラ。
【請求項１６】
請求項４ないし請求項６のいずれか、または、請求項１０ないし請求項１５のいずれかに記載のメモリコントローラにおいて、
前記バッファ部は、
ＦＩＦＯであることを特徴とするメモリコントローラ。
【請求項１７】
請求項２ないし請求項６のいずれか、または、請求項８ないし請求項１６のいずれかに記載のメモリコントローラにおいて、
前記制御信号の時系列パターンは、
前記メモリの特徴に応じて可変であることを特徴とするメモリコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、読み出し／書き込みアクセスをメモリに対して高速に行なう技術に関する。
【背景技術】
【０００２】
最近では、半導体トランジスタなどのスイッチ動作を高速に行なうことができるようになってきている。そのため、半導体トランジスタなどから構成されるメモリの特性に適した動作クロックが、読み出し／書き込みアクセスをメモリに対して行なうホストシステムの動作クロックと同様に高速になってきている。
【０００３】
この場合には、ホストシステムの高速な動作クロックに同期して、ホストシステムはメモリに読み出し制御信号を出力して、メモリから読み出しデータを入力することにより、読み出しアクセスをメモリに対して高速に行なうことができるようになりつつある。
【０００４】
また、ホストシステムの高速な動作クロックに同期して、ホストシステムはメモリに書き込み制御信号および書き込みデータを出力することにより、書き込みアクセスをメモリに対して高速に行なうことができるようになりつつある。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、ホストシステムが読み出し／書き込みアクセスをメモリに対して高速に行なうことができるかどうかは、ホストシステムの動作クロックおよびメモリの特性に適した動作クロックのみならず、ホストシステムのソフトウェア制御にも大きく依存する。
【０００６】
すなわち、ホストシステムのソフトウェア制御によっては、メモリの特性に適したタイミングで、メモリはホストシステムから読み出し制御信号を入力することができず、ホストシステムに読み出しデータを出力することができない。
【０００７】
また、ホストシステムのソフトウェア制御によっては、メモリの特性に適したタイミングで、メモリはホストシステムから書き込み制御信号および書き込みデータを入力することができない。
【０００８】
そのため、ホストシステムの動作クロックおよびメモリの特性に適した動作クロックは高速であるにもかかわらず、ホストシステムは読み出し／書き込みアクセスをメモリに対して高速に行うことができないことがある。
【０００９】
そこで、本発明は前記問題点に鑑み、ホストシステムのソフトウェア制御に依存することなく、また、ホストシステムの動作クロックおよびメモリの特性に適した動作クロックの差異に依存することなく、読み出し／書き込みアクセスをメモリに対して高速に行なう手段を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記課題を解決するため、請求項１記載の発明は、ホストシステムが読み出すデータを格納するメモリに対して、読み出しアクセスを行なうメモリコントローラであって、前記ホストシステムから読み出しコマンドを入力した後に、前記メモリの動作保証を満たす周波数を有するクロック（第２クロック）に同期して、前記メモリに制御信号を出力する制御信号出力手段と、前記第２クロックに同期して、前記メモリから前記読み出しコマンドに係る読み出しデータを入力した後に、前記ホストシステムから入力するクロック（第１クロック）に同期して、前記ホストシステムに前記読み出しコマンドに係る読み出しデータを出力するデータ入出力手段と、を備えることを特徴とする。
【００１１】
請求項２記載の発明は、請求項１に記載のメモリコントローラにおいて、前記制御信号出力手段は、前記制御信号の時系列パターンを格納して、前記第２クロックに同期して、前記メモリに前記制御信号を出力する手段、を含むことを特徴とする。
【００１２】
請求項３記載の発明は、請求項１または請求項２に記載のメモリコントローラにおいて、前記制御信号出力手段は、前記メモリから前記読み出しコマンドに係る読み出しデータを入力するときには、前記メモリに対する前記制御信号の出力を行なう手段と、前記ホストシステムに前記読み出しコマンドに係る読み出しデータを出力するときには、前記メモリに対する前記制御信号の出力を停止する手段と、を含むことを特徴とする。
【００１３】
請求項４記載の発明は、請求項１ないし請求項３のいずれかに記載のメモリコントローラにおいて、前記データ入出力手段は、前記読み出しコマンドに係る読み出しデータを格納するバッファ部と、前記メモリから前記読み出しコマンドに係る読み出しデータを入力するときには、前記バッファ部の動作クロックを前記第２クロックに設定する手段と、前記ホストシステムに前記読み出しコマンドに係る読み出しデータを出力するときには、前記バッファ部の動作クロックを前記第１クロックに設定する手段と、を含むことを特徴とする。
【００１４】
請求項５記載の発明は、請求項１ないし請求項４のいずれかに記載のメモリコントローラにおいて、前記データ入出力手段は、前記メモリから前記読み出しコマンドに係る読み出しデータを入力するときには、前記ホストシステムに前記読み出しコマンドに係る読み出しデータの読み出しを禁止する手段と、前記ホストシステムに前記読み出しコマンドに係る読み出しデータを出力するときには、前記ホストシステムに前記読み出しコマンドに係る読み出しデータの読み出しを許可する手段と、を含むことを特徴とする。
【００１５】
請求項６記載の発明は、請求項１ないし請求項５のいずれかに記載のメモリコントローラにおいて、前記データ入出力手段は、前記メモリから前記読み出しコマンドに係る読み出しデータの読み出しを許可された後に、前記メモリから前記読み出しコマンドに係る読み出しデータを入力するためのアクセスパスを設定するアクセスパス設定手段、を含み、前記アクセスパス設定手段は、前記アクセスパスを設定するアクセスパス設定信号の時系列パターンを格納して、前記第２クロックに同期して、前記アクセスパスを設定する手段、を含むことを特徴とする。
【００１６】
請求項７記載の発明は、ホストシステムが書き込むデータを格納するメモリに対して、書き込みアクセスを行なうメモリコントローラであって、前記ホストシステムから書き込みコマンドを入力した後に、前記メモリの動作保証を満たす周波数を有するクロック（第２クロック）に同期して、前記メモリに制御信号を出力する制御信号出力手段と、前記ホストシステムから入力するクロック（第１クロック）に同期して、前記ホストシステムから前記書き込みコマンドに係る書き込みデータを入力した後に、前記第２クロックに同期して、前記メモリに前記書き込みコマンドに係る書き込みデータを出力するデータ入出力手段と、を備えることを特徴とする。
【００１７】
請求項８記載の発明は、請求項７に記載のメモリコントローラにおいて、前記制御信号出力手段は、前記制御信号の時系列パターンを格納して、前記第２クロックに同期して、前記メモリに前記制御信号を出力する手段、を含むことを特徴とする。
【００１８】
請求項９記載の発明は、請求項７または請求項８に記載のメモリコントローラにおいて、前記制御信号出力手段は、前記ホストシステムから前記書き込みコマンドに係る書き込みデータを入力するときには、前記メモリに対する前記制御信号の出力を停止する手段と、前記メモリに前記書き込みコマンドに係る書き込みデータを出力するときには、前記メモリに対する前記制御信号の出力を行なう手段と、を含むことを特徴とする。
【００１９】
請求項１０記載の発明は、請求項７ないし請求項９のいずれかに記載のメモリコントローラにおいて、前記データ入出力手段は、前記書き込みコマンドに係る書き込みデータを格納するバッファ部と、前記ホストシステムから前記書き込みコマンドに係る書き込みデータを入力するときには、前記バッファ部の動作クロックを前記第１クロックに設定する手段と、前記メモリに前記書き込みコマンドに係る書き込みデータを出力するときには、前記バッファ部の動作クロックを前記第２クロックに設定する手段と、を含むことを特徴とする。
【００２０】
請求項１１記載の発明は、請求項７ないし請求項１０のいずれかに記載のメモリコントローラにおいて、前記データ入出力手段は、前記ホストシステムから前記書き込みコマンドに係る書き込みデータを入力するときには、前記ホストシステムに前記書き込みコマンドに係る書き込みデータの書き込みを許可する手段と、前記メモリに前記書き込みコマンドに係る書き込みデータを出力するときには、前記ホストシステムに前記書き込みコマンドに係る書き込みデータの書き込みを禁止する手段と、を含むことを特徴とする。
【００２１】
請求項１２記載の発明は、請求項１ないし請求項１１のいずれかに記載のメモリコントローラにおいて、前記第２クロックは、前記第１クロックより高い周波数を有することを特徴とする。
【００２２】
請求項１３記載の発明は、請求項１ないし請求項１１のいずれかに記載のメモリコントローラにおいて、前記第２クロックは、前記メモリの動作保証に応じて可変である周波数を有することを特徴とする。
【００２３】
請求項１４記載の発明は、請求項１ないし請求項１３のいずれかに記載のメモリコントローラにおいて、さらに、前記第１クロックを前記第２クロックに変換するクロック変換部、を備えることを特徴とする。
【００２４】
請求項１５記載の発明は、請求項１ないし請求項１３のいずれかに記載のメモリコントローラにおいて、さらに、前記第２クロックを生成するクロック生成部から、前記第２クロックを入力する手段、を備えることを特徴とする。
【００２５】
請求項１６記載の発明は、請求項４ないし請求項６のいずれか、または、請求項１０ないし請求項１５のいずれかに記載のメモリコントローラにおいて、前記バッファ部は、ＦＩＦＯであることを特徴とする。
【００２６】
請求項１７記載の発明は、請求項２ないし請求項６のいずれか、または、請求項８ないし請求項１６のいずれかに記載のメモリコントローラにおいて、前記制御信号の時系列パターンは、前記メモリの特徴に応じて可変であることを特徴とする。
【発明の効果】
【００２７】
ホストシステムおよびメモリの間に配置されるメモリコントローラは、メモリコントローラのハードウェア制御により、メモリの特性に適した読み出し／書き込み制御信号をメモリに出力する。具体的には、メモリコントローラは、メモリの特性に適した読み出し／書き込み制御信号の時系列パターンを、ベクターパターンとしてあらかじめ格納している。そして、メモリコントローラは、メモリの特性に適した動作クロックに同期して、メモリの特性に適した読み出し／書き込み制御信号をメモリに出力する。
【００２８】
また、メモリコントローラは、読み出し／書き込みデータをバッファ部において一時的に格納する。メモリコントローラがメモリと読み出し／書き込みデータをやりとりするときには、バッファ部の動作クロックをメモリの特性に適した動作クロックに設定する。そして、メモリコントローラがホストシステムと読み出し／書き込みデータをやりとりするときには、バッファ部の動作クロックをホストシステムの動作クロックに設定する。
【００２９】
すると、メモリの特性に適したタイミングで、メモリは動作することができる。そして、ホストシステムの特性に適したタイミングで、ホストシステムは動作することができる。そのため、ホストシステムのソフトウェア制御に依存することなく、また、ホストシステムの動作クロックおよびメモリの特性に適した動作クロックの差異に依存することなく、ホストシステムは読み出し／書き込みアクセスをメモリに対して高速に行うことができるのである。
【００３０】
さらに、ホストシステムが読み出し／書き込みアクセスを様々なメモリに対して行なうときにも、本発明を実施することができる。具体的には、メモリコントローラは、様々なメモリの特性に適した読み出し／書き込み制御信号の時系列パターンおよび動作クロックを設定するのである。
【発明を実施するための最良の形態】
【００３１】
｛本実施の形態に係る情報処理装置の構成要素｝
以下、図面を参照しつつ、本発明の実施の形態について説明する。まず、本実施の形態に係る情報処理装置の構成要素について、図１および図６を用いて説明する。図１は、読み出しアクセスの処理の流れを示すブロック図である。また、図６は、書き込みアクセスの処理の流れを示すブロック図である。図１および図６で示した情報処理装置は、同一の情報処理装置であり、ホストシステム１、メモリシステム２などから構成されている。さらに、メモリシステム２は、メモリ３、メモリコントローラ４などから構成されている。
【００３２】
ホストシステム１は、データをメモリ３から読み出すために、読み出しコマンドをメモリコントローラ４に出力する。また、ホストシステム１は、データをメモリ３に書き込むために、書き込みコマンドおよび書き込みデータをメモリコントローラ４に出力する。ホストシステム１の処理の流れは、ホストシステム１の動作クロックに同期して行なわれる。ホストシステム１の動作クロックを、すぐ後で説明する他の動作クロックと区別するため、第１クロック（ＣＬＫ１）と定義する。
【００３３】
メモリ３は、読み出しコマンドをメモリコントローラ４から入力して、読み出しデータをメモリコントローラ４に出力する。また、メモリ３は、書き込みコマンドおよび書き込みデータをメモリコントローラ４から入力する。メモリ３の処理の流れは、メモリ３の特性に適した動作クロックに同期して行なわれる。メモリ３の特性に適した動作クロックを、第２クロック（ＣＬＫ２）と定義する。
【００３４】
本実施の形態においては、メモリ３として、ＮＡＮＤフラッシュメモリを使用している。しかし、ＮＯＲフラッシュメモリなどの他のメモリを使用することもできる。他のメモリを使用する実施例については、変形例として後で説明する。
【００３５】
メモリコントローラ４は、ホストシステム１およびメモリ３の間で、読み出し／書き込みコマンドおよび読み出し／書き込みデータを中継する。すなわち、メモリコントローラ４は、第１クロックに同期して、ホストシステム１とコマンドおよびデータをやりとりする。また、メモリコントローラ４は、第２クロックに同期して、メモリ３とコマンドおよびデータをやりとりする。
【００３６】
第１クロックおよび第２クロックは、通常は異なる周波数を有する。しかし、メモリコントローラ４は、ホストシステム１とのやりとりと、メモリ３とのやりとりを、切り離して行なうことができる。そのため、ホストシステム１およびメモリ３は、それぞれの特性に適したタイミングで、それぞれの処理の流れを行なうことができるのである。
【００３７】
メモリコントローラ４は、ホストインターフェース部４１、クロック変化部４２、コマンドデコーダ部４３、アクセスコントローラ部４４、ＳＲＡＭ部４５、バッファ部４６、エッジセンシティブ回路部４７、メモリインターフェース部４８、ゲート回路部４９Ｇ、セレクタ部４９Ｓなどから構成されている。
【００３８】
ホストインターフェース部４１は、ホストシステム１およびメモリコントローラ４の間で、読み出し／書き込みコマンド、読み出し／書き込みデータ、第１クロックなどのやりとりを行なうためのインターフェースである。
【００３９】
クロック変換部４２は、第１クロックを第２クロックに変換する。本実施の形態においては、クロック変換部４２として、位相同期ループ（ＰＬＬ）を使用している。すると、第１クロックおよび第２クロックの周波数の高低関係に依存することなく、本発明を実施することができる。また、第１クロックを変換することなく第２クロックを生成するクロック生成部を、ホストシステム１またはメモリシステム２に外付けしてもよい。クロック生成部を外付けする実施例については、変形例として後で説明する。
【００４０】
コマンドデコーダ部４３は、読み出しコマンドＩＤおよび読み出しアドレスを、読み出しコマンドから抽出する。また、コマンドデコーダ部４３は、書き込みコマンドＩＤおよび書き込みアドレスを、書き込みコマンドから抽出する。本実施の形態においては、読み出し／書き込みコマンドＩＤとして、“００Ｈ”などの１６進数を使用している。
【００４１】
アクセスコントローラ部４４は、読み出し／書き込みアクセスをメモリ３に対して行なう。しかし、アクセスコントローラ部４４は、メモリ制御信号をメモリ３に出力することはない。むしろ、アクセスコントローラ部４４は、メモリ制御信号をメモリ３に出力するように、ＳＲＡＭ部４５に通知するのである。アクセスコントローラ部４４の処理の流れは、第２クロックに同期して行なわれる。
【００４２】
ＳＲＡＭ部４５は、アクセスコントローラ部４４からの通知により、メモリ制御信号をメモリ３に出力する。ＳＲＡＭ部４５の処理の流れも、アクセスコントローラ部４４の処理の流れと同様に、第２クロックに同期して行なわれる。ここで、ＳＲＡＭ部４５がメモリ３に出力するメモリ制御信号は、メモリ３の特性に適するように、ベクターパターン４５１によりあらかじめ設定されている。
【００４３】
すると、メモリコントローラ４は、メモリ３の特性に適した第２クロックに同期して、メモリ３の特性に適したメモリ制御信号を、メモリ３に出力することができる。すなわち、メモリコントローラ４は、ホストシステム１のソフトウェア制御によることなく、メモリコントローラ４のハードウェア制御により、読み出し／書き込みアクセスをメモリ３に対して行なうことができる。そのため、メモリ３の特性に適したタイミングで、メモリ３はメモリ制御信号を入力することができるのである。
【００４４】
バッファ部４６は、読み出し／書き込みデータを、ＦＩＦＯ４６１において一時的に格納する。バッファ部４６がホストシステム１と読み出し／書き込みデータをやりとりするときには、バッファ制御クロックは第１クロックに設定される。また、バッファ部４６がメモリ３と読み出し／書き込みデータをやりとりするときには、バッファ制御クロックは第２クロックに設定される。そのため、ホストシステム１の特性に適したタイミングで、ホストシステム１は読み出しデータを入力することができて、書き込みデータを出力することができるのである。また、メモリ３の特性に適したタイミングで、メモリ３は読み出しデータを出力することができて、書き込みデータを入力することができるのである。
【００４５】
エッジセンシティブ回路部４７は、バッファ部４６がホストシステム１と読み出し／書き込みデータをやりとりするときには、読み出し／書き込みアクセスを停止するように、アクセスコントローラ部４４に通知する。そして、エッジセンシティブ回路部４７は、データの読み出し／書き込みを許可することを、ホストシステム１に通知する。
【００４６】
また、エッジセンシティブ回路部４７は、バッファ部４６がメモリ３と読み出し／書き込みデータをやりとりするときには、読み出し／書き込みアクセスを行なうようにアクセスコントローラ部４４に通知する。そして、エッジセンシティブ回路部４７は、データの読み出し／書き込みを禁止することを、ホストシステム１に通知する。
【００４７】
すると、エッジセンシティブ回路部４７は、アクセスコントローラ部４４による読み出し／書き込みアクセスと、ホストシステム１によるデータの読み出し／書き込みを、同時に許可することはない。すなわち、メモリコントローラ４は、ホストシステム１とのやりとりと、メモリ３とのやりとりを、切り離して行なうことができる。そのため、ホストシステム１およびメモリ３は、それぞれの特性に適したタイミングで、それぞれの処理の流れを行なうことができるのである。
【００４８】
メモリインターフェース部４８は、メモリ３およびメモリコントローラ４の間で、読み出し／書き込みコマンド、読み出し／書き込みデータ、メモリ制御信号などのやりとりを行なうためのインターフェースである。
【００４９】
ゲート回路部４９Ｇ１およびセレクタ部４９Ｓ１は、読み出し／書き込みコマンドおよび書き込みデータをメモリ３が入力するためのゲートおよびセレクタである。ゲート回路部４９Ｇ２は、読み出しデータをバッファ部４６が入力するためのゲートである。セレクタ部４９Ｓ２は、読み出し／書き込みデータをバッファ部４６が入力するためのセレクタである。ゲート回路部４９Ｇ３、４９Ｇ４およびセレクタ部４９Ｓ３、４９Ｓ４は、バッファ制御クロックを、第１クロックと第２クロックの間で切り替える回路を構成する。
【００５０】
｛読み出しアクセスの処理の流れ｝
次に、読み出しアクセスの処理の流れについて、図１および図２を用いて説明する。図２は、読み出しアクセスの処理の流れを示すフローチャートである。図２で示した読み出しアクセスにおけるステップＳＲは、図１で示した読み出しアクセスにおけるステップＳＲに対応している。本実施の形態においては、ホストシステム１は、メモリ３の複数ページ分のデータを読み出そうとしている。また、バッファ部４６は、メモリ３の１ページ分の読み出しデータを格納することができる。
【００５１】
コマンドデコーダ部４３は、ホストインターフェース部４１を介して、読み出しコマンドをホストシステム１から入力する（ステップＳＲ１）。すると、コマンドデコーダ部４３は、読み出しコマンドＩＤおよび読み出しアドレスを、読み出しコマンドから抽出する（ステップＳＲ２）。本実施の形態においては、読み出しアドレスは、メモリ３の複数ページ分の読み出しアドレスである。そして、コマンドデコーダ部４３は、読み出しコマンドＩＤおよび読み出しアドレスを、アクセスコントローラ部４４に出力する。
【００５２】
アクセスコントローラ部４４は、読み出しコマンドＩＤを認識することにより、読み出し／書き込みセレクト信号“１”を、セレクタ部４９Ｓ２、４９Ｓ３に出力する。セレクタ部４９Ｓ２、４９Ｓ３で示した太線は、セレクタ部４９Ｓ２、４９Ｓ３が読み出し／書き込みセレクト信号“１”を入力していることを示している。そのため、バッファ部４６とメモリ３の間で、読み出しデータパスが生成される（ステップＳＲ３）。
【００５３】
アクセスコントローラ部４４は、アクセス停止信号“０”または“１”を、エッジセンシティブ回路部４７から入力している。アクセス停止信号は、アクセスコントローラ部４４がメモリ３に対するアクセスを行なうことを許可または禁止するための信号である。ここで、読み出し／書き込みアクセスにおいて、アクセス停止信号の論理は反転している。すなわち、読み出しアクセスにおいては、アクセス停止信号“０”はアクセス許可、アクセス停止信号“１”はアクセス禁止を示している。また、書き込みアクセスにおいては、アクセス停止信号“０”はアクセス禁止、アクセス停止信号“１”はアクセス許可を示している。
【００５４】
アクセスコントローラ部４４は、読み出しコマンドＩＤを認識することにより、読み出しアクセスにおけるアクセス停止信号の論理を採用する。後で説明するように、アクセスコントローラ部４４は、ステップＳＲ３において、アクセス停止信号“０”をエッジセンシティブ回路部４７から入力している。そのため、アクセスコントローラ部４４は、読み出しアクセスを開始するのである（ステップＳＲ４）。
【００５５】
アクセスコントローラ部４４は、ＳＲＡＭアドレスをＳＲＡＭ部４５に出力する。すると、ＳＲＡＭ部４５は、そのＳＲＡＭアドレスに対して読み出し操作を行なう。そして、ＳＲＡＭ部４５は、そのＳＲＡＭアドレスに格納しているデータを、メモリ３およびメモリコントローラ４内部に出力する。以上で説明したアクセスコントローラ部４４およびＳＲＡＭ部４５の処理の流れは、クロック変換部４２が第１クロックを変換して生成する第２クロックに同期して行なわれる。
【００５６】
ＳＲＡＭ部４５は、メモリ３の特性に適したメモリ制御信号の時系列パターンを、ベクターパターン４５１としてあらかじめ格納している。そのため、ＳＲＡＭ部４５は、メモリ３の特性に適した第２クロックに同期して、メモリ３の特性に適したメモリ制御信号を、メモリ３に出力することになるのである。ＳＲＡＭ部４５がメモリ制御信号を出力する方法について、以下に具体的に説明する。
【００５７】
まず、ＳＲＡＭ部４５が格納するベクターパターン４５１について説明する。図３は、読み出しアクセス波形のベクターパターン４５１のコードイメージである。ＡＤＤはＳＲＡＭアドレスを、ＣＬＥはコマンド・ラッチ・イネーブル信号を、ＣＥはチップ・イネーブル信号を、ＷＥはライト・イネーブル信号を、ＡＬＥはアドレス・ラッチ・イネーブル信号を、ＲＥはリード・イネーブル信号を、ＤＩＲはディレクション信号を、ＳＴＲはストローブ信号を、ＳＥＬはセレクタ信号を、それぞれ示している。
【００５８】
メモリ制御信号（ＣＬＥ、ＣＥ、ＷＥ、ＡＬＥ、ＲＥ）は、ＳＲＡＭ部４５がメモリ３に出力する制御信号である。内部制御信号（ＤＩＲ、ＳＴＲ、ＳＥＬ）は、ＳＲＡＭ部４５がメモリコントローラ４内部に出力する制御信号である。また、ＣＥ、ＷＥ、ＲＥに付されたバーは、メモリ制御信号（ＣＥ、ＷＥ、ＲＥ）がアクティブ・ロウであることを示している。
【００５９】
アクセスコントローラ部４４は、読み出しコマンドＩＤを認識して、第２クロックの立ち上がりにより、ＳＲＡＭアドレスとしてアドレスＲ０をＳＲＡＭ部４５に出力する。すると、ＳＲＡＭ部４５は、アドレスＲ０に対して読み出し操作を行なって、アドレスＲ０にあらかじめ設定されているメモリ制御信号および内部制御信号を、メモリ３およびメモリコントローラ４内部に出力する。
【００６０】
すなわち、ＳＲＡＭ部４５は、コマンド・ラッチ・イネーブル信号として“０”を、チップ・イネーブル信号として“１”を、ライト・イネーブル信号として“１”を、アドレス・ラッチ・イネーブル信号として“０”を、リード・イネーブル信号として“１”を、メモリ３に出力する。
【００６１】
また、ＳＲＡＭ部４５は、ディレクション信号として“０”を、ゲート回路部４９Ｇ１に出力する。そして、ＳＲＡＭ部４５は、ストローブ信号として“０”を、セレクタ部４９Ｓ４に出力する。さらに、ＳＲＡＭ部４５は、セレクタ信号として“１”を、セレクタ部４９Ｓ１に出力する。
【００６２】
アクセスコントローラ部４４は、次の第２クロックの立ち上がりにより、ＳＲＡＭアドレスとしてアドレスＲ１をＳＲＡＭ部４５に出力する。すると、ＳＲＡＭ部４５は、アドレスＲ１にあらかじめ設定されているメモリ制御信号および内部制御信号を、メモリ３およびメモリコントローラ４内部に出力する。アクセスコントローラ部４４およびＳＲＡＭ部４５は、バッファ部４６が１ページ分の読み出しデータを入力するまで、第２クロックが立ち上がるたびに、以上で説明したような処理の流れを行なうのである。
【００６３】
本実施の形態においては、アクセスコントローラ部４４は、アドレスＲ０からのアドレスインクリメントにより、ＳＲＡＭアドレスをＳＲＡＭ部４５に出力している。しかし、アクセスコントローラ部４４は、アドレスデクリメントまたはアドレスジャンプなどにより、ＳＲＡＭアドレスをＳＲＡＭ部４５に出力してもよい。
【００６４】
次に、メモリ制御信号（ＣＬＥ、ＣＥ、ＷＥ、ＡＬＥ、ＲＥ）および内部制御信号（ＤＩＲ、ＳＴＲ、ＳＥＬ）の時系列パターンについて説明する。図４および図５は、読み出しアクセス波形を示す図である。
【００６５】
左側から右側まで移動するに従って、時間が経過することを示している。また、図４および図５は、一点鎖線Ａにおいて接続されている。すなわち、図４の左端から右端まで移動した後に、図５の左端から右端まで移動するに従って、時間が経過することを示している。上下方向の破線の間隔は、第２クロックの周期を示している。左右方向の破線の期間においては、読み出しアクセス波形を省略している。
【００６６】
ＡＤＤがＲ０である期間において、ＳＲＡＭ部４５は、アドレスＲ０に係るメモリ制御信号（ＣＬＥ、ＣＥ、ＷＥ、ＡＬＥ、ＲＥ）を、メモリ３に出力している。また、ＳＲＡＭ部４５は、アドレスＲ０に係る内部制御信号（ＤＩＲ、ＳＴＲ、ＳＥＬ）を、メモリコントローラ４内部に出力している。各メモリ制御信号および各内部制御信号は、読み出しアクセス波形に反映されている。ＡＤＤがＲ０以外である期間においても、各メモリ制御信号および各内部制御信号は、読み出しアクセス波形に反映されている。
【００６７】
ＡＤＤがＲ２、Ｒ５、Ｒ７、Ｒ１０である期間において、ＳＲＡＭ部４５は、内部制御信号（ＳＥＬ）“１”を、セレクタ部４９Ｓ１に出力している。また、ＳＲＡＭ部４５は、内部制御信号（ＤＩＲ）“０”を、ゲート回路部４９Ｇ１に出力している。そのため、アクセスコントローラ部４４は、読み出しコマンドＩＤおよび読み出しアドレスを、メモリ３のＩ／Ｏ端子を介して、メモリ３に出力することができる。
【００６８】
ＡＤＤがＲ２およびＲ１０である期間において、メモリ制御信号（ＷＥ）は“０”である。また、メモリ制御信号（ＷＥ）の立ち下がり時および立ち上がり時において、メモリ制御信号（ＣＬＥ）は“１”である。そのため、読み出しコマンドＩＤおよび読み出し開始コマンドＩＤが、メモリ３内部に取り込まれる。
【００６９】
ＡＤＤがＲ５およびＲ７である期間において、メモリ制御信号（ＷＥ）は“０”である。また、メモリ制御信号（ＷＥ）の立ち下がり時および立ち上がり時において、メモリ制御信号（ＡＬＥ）は“１”である。そのため、読み出しカラムアドレスおよび読み出しページアドレスが、メモリ３内部に取り込まれる。
【００７０】
本実施の形態においては、ホストシステム１は、複数ページ分のデータを読み出そうとしている。また、バッファ部４６は、１ページ分の読み出しデータを格納することができる。そのため、読み出しページアドレスとして、複数ページのうち先頭ページが設定される。また、読み出しカラムアドレスとして、先頭カラム０が設定される。すると、後で説明するように、先頭ページに格納されているデータが、先頭カラム０から最終カラムまでの順序で、バッファ部４６に読み出されるのである。
【００７１】
ここで、第２クロックの周期を設定する方法について、以下に具体的に説明する。たとえば、ＡＤＤがＲ２である期間において、読み出しコマンドＩＤがメモリ３内部に取り込まれるときに、メモリ制御信号（ＷＥ）を“０”に設定すべき最小時間は、メモリ３の特性値表などに記載されている。
【００７２】
メモリ制御信号（ＷＥ）を“０”に設定すべき最小時間が、たとえば２０ｎｓｅｃである場合を考える。この場合には、メモリ制御信号（ＷＥ）を“０”に設定すべき最小時間と同様に、第２クロックの周期を２０ｎｓｅｃに設定すればよい。第２クロックの周期は、クロック変換部４２により設定される。
【００７３】
第２クロックの周期を設定する方法として、以上で説明した方法以外に、他の方法を採用することもできる。たとえば、ＡＤＤがＲ１３である期間において、メモリ制御信号（ＲＥ）を“０”に設定すべき最小時間を、第２クロックの周期に設定することもできる。
【００７４】
ＡＤＤがＲ１０である期間において、読み出し開始コマンドＩＤがメモリ３内部に取り込まれた後に、読み出し操作がメモリ３内部で開始される。読み出し操作がメモリ３内部で行なわれているときには、ＲＤＹ／ＢＳＹ信号“０”がメモリ３からアクセスコントローラ部４４に出力される。ＲＤＹ／ＢＳＹ信号“０”は、メモリ３の動作状態がＢＵＳＹ状態であることを示す信号である。
【００７５】
アクセスコントローラ部４４は、ＲＤＹ／ＢＳＹ信号“０”を認識すると、ＳＲＡＭアドレスをインクリメントするアドレス制御を一時停止する。すなわち、アクセスコントローラ部４４は、ＳＲＡＭ部４５に出力するＳＲＡＭアドレスを、アドレスＲ１２からアドレスＲ１３にインクリメントすることなく、アドレスＲ１２のまま保持するのである。
【００７６】
読み出し操作がメモリ３内部で終了すると、ＲＤＹ／ＢＳＹ信号“１”がメモリ３からアクセスコントローラ部４４に出力される。ＲＤＹ／ＢＳＹ信号“１”は、メモリ３の動作状態がＲＥＡＤＹ状態であることを示す信号である。
【００７７】
アクセスコントローラ部４４は、ＲＤＹ／ＢＳＹ信号“１”を認識すると、ＳＲＡＭアドレスをインクリメントするアドレス制御を再開する。すなわち、アクセスコントローラ部４４は、ＳＲＡＭ部４５に出力するＳＲＡＭアドレスを、アドレスＲ１２からアドレスＲ１３にインクリメントするのである。
【００７８】
ＡＤＤがＲ１２である期間から、ＡＤＤがＲ１３である期間に移行するときに、内部制御信号（ＤＩＲ）が“０”から“１”に切り替えられる。すなわち、読み出し操作がメモリ３内部で終了すると、メモリコントローラ４がメモリ３から先頭ページに格納されているデータを読み出すためのアクセスパスが早急に設定される。
【００７９】
ホストシステム１のソフトウェア制御により、読み出しアクセスを行なう場合には、読み出し操作がメモリ３内部で終了しても、アクセスパスを早急には設定できない。しかし、メモリコントローラ４のハードウェア制御により、すなわち、読み出し制御信号のベクターパターン４５１により、読み出しアクセスを行なう場合には、読み出し操作がメモリ３内部で終了すると、アクセスパスを早急に設定できるのである。
【００８０】
ＡＤＤがＲ１３である期間において、メモリ制御信号（ＲＥ）は“０”である。そのため、メモリ制御信号（ＲＥ）の立ち下がり時から、メモリ３の特性による所定時間後に、メモリ３のＩ／Ｏ端子を介して、先頭ページの先頭カラム０に格納されているデータが、メモリ３からメモリコントローラ４に出力される。
【００８１】
ＡＤＤがＲ１５、Ｒ１７、Ｒ１９、ＲＮ−２などである期間においても、メモリ制御信号（ＲＥ）は“０”である。そのため、先頭ページに格納されているデータが、カラム１から最終カラムまでの順序で、メモリ３からメモリコントローラ４に出力される。ベクターパターン４５１におけるアドレスＲＮは、１ページのカラム数により決められる。
【００８２】
ＡＤＤがＲ１４、Ｒ１６、Ｒ１８、ＲＮ−１などである期間において、内部制御信号（ＳＴＲ）は“１”である。後で説明するように、バッファ部４６は、バッファ制御クロックとして、内部制御信号（ＳＴＲ）をＳＲＡＭ部４５から入力している（ステップＳＲ５）。また、ステップＳＲ３において、読み出しデータパスがすでに生成されている。すると、バッファ部４６は、読み出しデータを入力するタイミングを取得しながら、先頭ページに格納されているデータを入力することができる（ステップＳＲ６）。
【００８３】
本実施の形態においては、バッファ部４６は、１ページ分の読み出しデータを格納することができる。そのため、ＦＩＦＯ４６１は、先頭ページに格納されているすべてのデータを入力し終わると、Ｆｕｌｌ信号“１”をエッジセンシティブ回路部４７に出力する。すると、エッジセンシティブ回路部４７は、Ｆｕｌｌ信号の立ち上がりを検出することにより、アクセス停止信号“１”を、アクセスコントローラ部４４、ゲート回路部４９Ｇ３、４９Ｇ４、ホストシステム１に出力する。
【００８４】
アクセスコントローラ部４４は、ステップＳＲ３において、読み出しアクセスにおけるアクセス停止信号の論理を採用している。そのため、アクセスコントローラ部４４は、読み出しアクセスを一時停止する。すなわち、アクセスコントローラ部４４は、ＳＲＡＭアドレスの出力を一時停止するのである（ステップＳＲ７）。
【００８５】
セレクタ部４９Ｓ３は、ステップＳＲ３において、読み出し／書き込みセレクト信号“１”を、アクセスコントローラ部４４から入力している。そのため、セレクタ部４９Ｓ３は、アクセス停止信号“１”を論理反転していない信号“１”を、ゲート回路部４９Ｇ３から入力して、セレクタ部４９Ｓ４に出力する。すると、バッファ部４６は、バッファ制御クロックとして、第１クロックをホストシステム１から入力するのである（ステップＳＲ８）。
【００８６】
ホストシステム１は、アクセス停止信号“１”を、読み出し許可信号“１”として入力する。読み出し許可信号は、ホストシステム１がバッファ部４６からデータを読み出すことを許可または禁止するための信号である。読み出し許可信号“０”は読み出し禁止、読み出し許可信号“１”は読み出し許可を示している。すると、バッファ部４６は、バッファ制御クロックとしての第１クロックに同期して、先頭ページに格納されているデータをホストシステム１に出力するのである（ステップＳＲ９）。
【００８７】
ＦＩＦＯ４６１は、先頭ページに格納されているすべてのデータを出力し終わると、Ｅｍｐｔｙ信号“１”をエッジセンシティブ回路部４７に出力する。すると、エッジセンシティブ回路部４７は、Ｅｍｐｔｙ信号の立ち上がりを検出することにより、アクセス停止信号“０”を、アクセスコントローラ部４４、ゲート回路部４９Ｇ３、４９Ｇ４、ホストシステム１に出力する。
【００８８】
アクセスコントローラ部４４は、ステップＳＲ２において、複数ページ分の読み出しアドレスを、コマンドデコーダ部４３から入力している。しかし、アクセスコントローラ部４４は、複数ページ分の読み出しアクセスのうち、先頭ページ分の読み出しアクセスのみをすでに行なっている（ステップＳＲ１０）。そのため、アクセスコントローラ部４４は、読み出しアクセスを再開する。すなわち、アクセスコントローラ部４４は、ＳＲＡＭアドレスの出力を再開するのである（ステップＳＲ４）。
【００８９】
セレクタ部４９Ｓ３は、アクセス停止信号“０”を論理反転していない信号“０”を、ゲート回路部４９Ｇ３から入力して、セレクタ部４９Ｓ４に出力する。すると、バッファ部４６は、バッファ制御クロックとして、内部制御信号（ＳＴＲ）をＳＲＡＭ部４５から入力するのである（ステップＳＲ５）。
【００９０】
ホストシステム１は、アクセス停止信号“０”を、読み出し許可信号“０”として入力する。すると、バッファ部４６は、次回にアクセス停止信号が“０”から“１”に切り替えられるまで、すなわち、次回に読み出し許可信号が“０”から“１”に切り替えられるまで、読み出しデータをホストシステム１に出力することはないのである。
【００９１】
残りページ分の読み出しアクセスの処理の流れは、先頭ページ分の読み出しアクセスの処理の流れと同様である。すなわち、アクセスコントローラ部４４は、第２クロックに同期して、アドレスＲ０からアドレスＲＮまでのアドレスインクリメントにより、ＳＲＡＭアドレスをＳＲＡＭ部４５に出力する。すると、ＳＲＡＭ部４５は、第２クロックに同期して、ベクターパターン４５１に基づいて、メモリ制御信号をメモリ３に出力する。
【００９２】
バッファ部４６は、第２クロックに同期して、１ページ分ずつ読み出しデータをメモリ３から入力する。すると、エッジセンシティブ回路部４７は、読み出しアクセスを一時停止するように、アクセスコントローラ部４４に通知する。また、エッジセンシティブ回路部４７は、バッファ制御クロックを、第２クロックから第１クロックに切り替える。そして、ホストシステム１は、第１クロックに同期して、１ページ分ずつ読み出しデータをバッファ部４６から入力するのである。
【００９３】
｛書き込みアクセスの処理の流れ｝
次に、書き込みアクセスの処理の流れについて、図６および図７を用いて説明する。図７は、書き込みアクセスの処理の流れを示すフローチャートである。図７で示した書き込みアクセスにおけるステップＳＷは、図６で示した書き込みアクセスにおけるステップＳＷに対応している。本実施の形態においては、ホストシステム１は、メモリ３の複数ページ分のデータを書き込もうとしている。また、バッファ部４６は、メモリ３の１ページ分の書き込みデータを格納することができる。
【００９４】
コマンドデコーダ部４３は、ホストインターフェース部４１を介して、書き込みコマンドをホストシステム１から入力する（ステップＳＷ１）。すると、コマンドデコーダ部４３は、書き込みコマンドＩＤおよび書き込みアドレスを、書き込みコマンドから抽出する（ステップＳＷ２）。本実施の形態においては、書き込みアドレスは、メモリ３の複数ページ分の書き込みアドレスである。そして、コマンドデコーダ部４３は、書き込みコマンドＩＤおよび書き込みアドレスを、アクセスコントローラ部４４に出力する。
【００９５】
アクセスコントローラ部４４は、書き込みコマンドＩＤを認識することにより、読み出し／書き込みセレクト信号“０”を、セレクタ部４９Ｓ２、４９Ｓ３に出力する。セレクタ部４９Ｓ２、４９Ｓ３で示した太線は、セレクタ部４９Ｓ２、４９Ｓ３が読み出し／書き込みセレクト信号“０”を入力していることを示している。そのため、バッファ部４６とホストシステム１の間で、書き込みデータパスが生成される（ステップＳＷ３）。
【００９６】
アクセスコントローラ部４４は、アクセス停止信号“０”または“１”を、エッジセンシティブ回路部４７から入力している。アクセス停止信号は、アクセスコントローラ部４４がメモリ３に対するアクセスを行なうことを許可または禁止するための信号である。ここで、読み出し／書き込みアクセスにおいて、アクセス停止信号の論理は反転している。書き込みアクセスにおいては、アクセス停止信号“０”はアクセス禁止、アクセス停止信号“１”はアクセス許可を示している。アクセスコントローラ部４４は、書き込みコマンドＩＤを認識することにより、書き込みアクセスにおけるアクセス停止信号の論理を採用する。
【００９７】
本実施の形態においては、バッファ部４６は、１ページ分の書き込みデータを格納することができる。そのため、ＦＩＦＯ４６１は、書き込みデータを入力し始める前には、Ｅｍｐｔｙ信号“１”をエッジセンシティブ回路部４７に出力している。すると、エッジセンシティブ回路部４７は、Ｅｍｐｔｙ信号“１”を検出することにより、アクセス停止信号“０”を、アクセスコントローラ部４４、ゲート回路部４９Ｇ３、４９Ｇ４、ホストシステム１に出力する。
【００９８】
アクセスコントローラ部４４は、ステップＳＷ３において、書き込みアクセスにおけるアクセス停止信号の論理を採用している。そのため、アクセスコントローラ部４４は、書き込みアクセスを行なわない。すなわち、アクセスコントローラ部４４は、ＳＲＡＭアドレスの出力を行なわないのである。
【００９９】
セレクタ部４９Ｓ３は、ステップＳＷ３において、読み出し／書き込みセレクト信号“０”を、アクセスコントローラ部４４から入力している。そのため、セレクタ部４９Ｓ３は、アクセス停止信号“０”を論理反転している信号“１”を、ゲート回路部４９Ｇ４から入力して、セレクタ部４９Ｓ４に出力する。すると、バッファ部４６は、バッファ制御クロックとして、第１クロックをホストシステム１から入力するのである（ステップＳＷ４）。
【０１００】
ホストシステム１は、アクセス停止信号“０”を、書き込み許可信号“０”として入力する。書き込み許可信号は、ホストシステム１がバッファ部４６にデータを書き込むことを許可または禁止するための信号である。書き込み許可信号“０”は書き込み許可、書き込み許可信号“１”は書き込み禁止を示している。すると、バッファ部４６は、バッファ制御クロックとしての第１クロックに同期して、書き込みデータをホストシステム１から入力するのである（ステップＳＷ５）。
【０１０１】
ＦＩＦＯ４６１は、１ページ分の書き込みデータを入力し終わると、Ｆｕｌｌ信号“１”をエッジセンシティブ回路部４７に出力する。すると、エッジセンシティブ回路部４７は、Ｆｕｌｌ信号の立ち上がりを検出することにより、アクセス停止信号“１”を、アクセスコントローラ部４４、ゲート回路部４９Ｇ３、４９Ｇ４、ホストシステム１に出力する。
【０１０２】
アクセスコントローラ部４４は、ステップＳＷ３において、書き込みアクセスにおけるアクセス停止信号の論理を採用している。そのため、アクセスコントローラ部４４は、書き込みアクセスを開始する。すなわち、アクセスコントローラ部４４は、ＳＲＡＭアドレスの出力を開始するのである（ステップＳＷ６）。
【０１０３】
セレクタ部４９Ｓ３は、アクセス停止信号“１”を論理反転している信号“０”を、ゲート回路部４９Ｇ４から入力して、セレクタ部４９Ｓ４に出力する。すると、バッファ部４６は、バッファ制御クロックとして、内部制御信号（ＳＴＲ）をＳＲＡＭ部４５から入力するのである（ステップＳＷ７）。
【０１０４】
ホストシステム１は、アクセス停止信号“１”を、書き込み許可信号“１”として入力する。すると、バッファ部４６は、次回にアクセス停止信号が“１”から“０”に切り替えられるまで、すなわち、次回に書き込み許可信号が“１”から“０”に切り替えられるまで、書き込みデータをホストシステム１から入力することはないのである。
【０１０５】
アクセスコントローラ部４４が読み出し／書き込みアクセスを行なうときに、ＳＲＡＭ部４５がメモリ制御信号を出力する方法は同様である。まず、ＳＲＡＭ部４５が格納するベクターパターン４５１について説明する。図８は、書き込みアクセス波形のベクターパターン４５１のコードイメージである。
【０１０６】
アクセスコントローラ部４４は、書き込みコマンドＩＤを認識している。そのため、アクセスコントローラ部４４は、ベクターパターン４５１におけるＳＲＡＭアドレスを、アドレスＷ０からのアドレスインクリメントにより、ＳＲＡＭ部４５に出力する。すると、ＳＲＡＭ部４５は、ベクターパターン４５１に基づいて、メモリ制御信号および内部制御信号を、メモリ３およびメモリコントローラ４内部に出力する。アクセスコントローラ部４４およびＳＲＡＭ部４５の処理の流れは、第２クロックに同期して行なわれる。
【０１０７】
次に、メモリ制御信号（ＣＬＥ、ＣＥ、ＷＥ、ＡＬＥ、ＲＥ）および内部制御信号（ＤＩＲ、ＳＴＲ、ＳＥＬ）の時系列パターンについて説明する。図９および図１０は、書き込みアクセス波形を示す図であり、一点鎖線Ｂにおいて接続されている。
【０１０８】
ＡＤＤがＷ２、Ｗ５、Ｗ７、ＷＮ−２である期間において、ＳＲＡＭ部４５は、内部制御信号（ＳＥＬ）“１”を、セレクタ部４９Ｓ１に出力している。また、ＳＲＡＭ部４５は、内部制御信号（ＤＩＲ）“０”を、ゲート回路部４９Ｇ１に出力している。そのため、アクセスコントローラ部４４は、書き込みコマンドＩＤおよび書き込みアドレスを、メモリ３のＩ／Ｏ端子を介して、メモリ３に出力することができる。
【０１０９】
ＡＤＤがＷ２およびＷＮ−２である期間において、メモリ制御信号（ＷＥ）は“０”である。また、メモリ制御信号（ＷＥ）の立ち下がり時および立ち上がり時において、メモリ制御信号（ＣＬＥ）は“１”である。そのため、書き込みコマンドＩＤおよび書き込み開始コマンドＩＤが、メモリ３内部に取り込まれる。
【０１１０】
ＡＤＤがＷ５およびＷ７である期間において、メモリ制御信号（ＷＥ）は“０”である。また、メモリ制御信号（ＷＥ）の立ち下がり時および立ち上がり時において、メモリ制御信号（ＡＬＥ）は“１”である。そのため、書き込みカラムアドレスおよび書き込みページアドレスが、メモリ３内部に取り込まれる。
【０１１１】
本実施の形態においては、ホストシステム１は、複数ページ分のデータを書き込もうとしている。また、バッファ部４６は、１ページ分の書き込みデータを格納することができる。そのため、書き込みページアドレスとして、複数ページのうち先頭ページが設定される。また、書き込みカラムアドレスとして、先頭カラム０が設定される。すると、すぐ後で説明するように、先頭ページに書き込むデータが、先頭カラム０から最終カラムまでの順序で、メモリ３に書き込まれるのである。
【０１１２】
ＡＤＤがＷ１０、Ｗ１２、Ｗ１４、ＷＮ−５などである期間において、ＳＲＡＭ部４５は、内部制御信号（ＳＥＬ）“０”を、セレクタ部４９Ｓ１に出力している。また、ＳＲＡＭ部４５は、内部制御信号（ＤＩＲ）“０”を、ゲート回路部４９Ｇ１に出力している。そのため、メモリコントローラ４は、先頭ページに書き込むデータを、メモリ３のＩ／Ｏ端子を介して、メモリ３に出力することができる。
【０１１３】
ＡＤＤがＷ１０である期間において、メモリ制御信号（ＷＥ）は“０”である。そのため、メモリ３のＩ／Ｏ端子を介して、先頭ページの先頭カラム０に書き込むデータが、メモリコントローラ４からメモリ３に出力される。
【０１１４】
ＡＤＤがＷ１２、Ｗ１４、ＷＮ−５などである期間においても、メモリ制御信号（ＷＥ）は“０”である。そのため、先頭ページに書き込むデータが、カラム１から最終カラムまでの順序で、メモリコントローラ４からメモリ３に出力される。ベクターパターン４５１におけるアドレスＷＮは、１ページのカラム数により決められる。
【０１１５】
ＡＤＤがＷ１０、Ｗ１２、Ｗ１４、ＷＮ−５などである期間において、内部制御信号（ＳＴＲ）は“１”である。バッファ部４６は、ステップＳＷ７において、バッファ制御クロックとして、内部制御信号（ＳＴＲ）をＳＲＡＭ部４５から入力している。また、内部制御信号（ＳＥＬ）は“０”である。すると、バッファ部４６は、書き込みデータを出力するタイミングを取得しながら、先頭ページに書き込むデータを出力することができる（ステップＳＷ８）。
【０１１６】
ＡＤＤがＷＮ−５である期間において、ＦＩＦＯ４６１は、先頭ページに書き込むデータを出力し終わると、Ｅｍｐｔｙ信号“１”をエッジセンシティブ回路部４７に出力する。すると、エッジセンシティブ回路部４７は、Ｅｍｐｔｙ信号の立ち上がりを検出することにより、アクセス停止信号“０”を、アクセスコントローラ部４４、ゲート回路部４９Ｇ３，４９Ｇ４、ホストシステム１に出力する。
【０１１７】
ＡＤＤがＷＮ−２である期間において、書き込み開始コマンドＩＤがメモリ３内部に取り込まれた後に、書き込み操作がメモリ３内部で開始される。書き込み操作がメモリ３内部で行なわれているときには、ＲＤＹ／ＢＳＹ信号“０”がメモリ３からメモリコントローラ４４に出力される。
【０１１８】
前述したように、アクセスコントローラ部４４は、書き込みアクセスを一時停止する。すなわち、アクセスコントローラ部４４は、ＳＲＡＭアドレスの出力を一時停止するのである（ステップＳＷ９）。また、バッファ部４６は、バッファ制御クロックとして、第１クロックをホストシステム１から入力する（ステップＳＷ４）。
【０１１９】
アクセスコントローラ部４４は、ステップＳＷ２において、複数ページ分の書き込みアドレスを、コマンドデコーダ部４３から入力している。しかし、アクセスコントローラ部４４は、複数ページ分の書き込みアクセスのうち、先頭ページ分の書き込みアクセスのみをすでに行なっている（ステップＳＷ１０）。そのため、バッファ部４６は、バッファ制御クロックとしての第１クロックに同期して、書き込みデータをホストシステム１から入力するのである（ステップＳＷ５）。
【０１２０】
残りページ分の書き込みアクセスの処理の流れは、先頭ページ分の書き込みアクセスの処理の流れと同様である。すなわち、ホストシステム１は、第１クロックに同期して、１ページ分ずつ書き込みデータをバッファ部４６に出力する。すると、エッジセンシティブ回路部４７は、書き込みアクセスを開始するように、アクセスコントローラ部４４に通知する。また、エッジセンシティブ回路部４７は、バッファ制御クロックを、第１クロックから第２クロックに切り替える。
【０１２１】
アクセスコントローラ部４４は、第２クロックに同期して、アドレスＷ０からアドレスＷＮまでのアドレスインクリメントにより、ＳＲＡＭアドレスをＳＲＡＭ部４５に出力する。すると、ＳＲＡＭ部４５は、第２クロックに同期して、ベクターパターン４５１に基づいて、メモリ制御信号をメモリ３に出力する。そして、メモリ３は、第２クロックに同期して、１ページ分ずつ書き込みデータをバッファ部４６から入力するのである。
【０１２２】
｛エッジセンシティブ回路部の構成例｝
読み出し／書き込みアクセスにおける発明の効果について総括する。メモリコントローラ４は、メモリ３の特性に適したメモリ制御信号の時系列パターンを、ベクターパターン４５１としてあらかじめ格納している。そして、メモリコントローラ４は、メモリ３の特性に適した動作クロックに同期して、ベクターパターン４５１に基づいて、メモリ３の特性に適したメモリ制御信号を、メモリ３に出力するのである。
【０１２３】
メモリコントローラ４は、メモリ３の特性に適した動作クロックに同期して、読み出しデータをメモリ３から入力する。そして、メモリコントローラ４は、ホストシステム１の動作クロックに同期して、読み出しデータをホストシステム１に出力する。さらに、メモリコントローラ４は、メモリ３との読み出しデータのやりとりと、ホストシステム１との読み出しデータのやりとりを、切り離して行なうことができる。
【０１２４】
メモリコントローラ４は、ホストシステム１の動作クロックに同期して、書き込みデータをホストシステム１から入力する。そして、メモリコントローラ４は、メモリ３の特性に適した動作クロックに同期して、書き込みデータをメモリ３に出力する。さらに、メモリコントローラ４は、ホストシステム１との書き込みデータのやりとりと、メモリ３との書き込みデータのやりとりを、切り離して行なうことができる。
【０１２５】
すなわち、メモリコントローラ４は、ホストシステム１のソフトウェア制御によることなく、メモリコントローラ４のハードウェア制御により、読み出し／書き込みアクセスをメモリ３に対して行なうことができる。また、メモリコントローラ４は、ホストシステム１およびメモリ３のハンドシェイクを解消することにより、ホストシステム１およびメモリ３に対して、それぞれの特性に適したタイミングで処理を行なわせることができる。そのため、メモリコントローラ４は、読み出し／書き込みアクセスを高速に行なうことができるのである。
【０１２６】
エッジセンシティブ回路部４７は、ホストシステム１とメモリ３のハンドシェイクを解消することができて、また、第１クロックと第２クロックの間でバッファ制御クロックを切り替えることができる、情報処理装置の重要な構成要素である。そこで、エッジセンシティブ回路部４７の構成例について、図１１を用いて説明する。図１１は、エッジセンシティブ回路部４７の構成例を示す図である。
【０１２７】
ＦＩＦＯ４６１は、データ容量をまったく使用していないときには、Ｅｍｐｔｙ信号“１”およびＦｕｌｌ信号“０”を、エッジセンシティブ回路部４７に出力する。また、ＦＩＦＯ４６１は、データ容量をすべて使用しているときには、Ｅｍｐｔｙ信号“０”およびＦｕｌｌ信号“１”を、エッジセンシティブ回路部４７に出力する。さらに、ＦＩＦＯ４６１は、以上で説明した２つの場合のいずれにも該当しないときには、Ｅｍｐｔｙ信号“０”およびＦｕｌｌ信号“０”を、エッジセンシティブ回路部４７に出力する。
【０１２８】
Ｅｍｐｔｙ信号およびＦｕｌｌ信号は、それぞれ、リセット信号およびセット信号として、ＲＳフリップフロップ回路部４７１に入力される。すると、ＦＩＦＯ４６１が１ページ分のデータを出力し終わったときは、出力信号は“０”になる。ＦＩＦＯ４６１が１ページ分のデータを入力し終わるまでは、出力信号は引き続き“０”になる。ＦＩＦＯ４６１が１ページ分のデータを入力し終わったときは、出力信号は“１”になる。ＦＩＦＯ４６１が１ページ分のデータを出力し終わるまでは、出力信号は引き続き“１”になる。以上で説明した処理の流れが、以後も同様に繰り返されるのである。
【０１２９】
ＲＳフリップフロップ回路部４７１の出力信号は、ディレイフリップフロップ回路部４７２−１、４７２−２により、第２クロックの２周期分だけ遅延したアクセス停止信号に変換される。エッジセンシティブ回路部４７が、ＲＳフリップフロップ回路部４７１のみならず、ディレイフリップフロップ回路部４７２−１、４７２−２をも備えている理由について、以下に説明する。
【０１３０】
図１０で示したＡＤＤがＷＮ−５である期間において、ＦＩＦＯ４６１のデータ容量がまったく使用されていない状態になる。すると、Ｅｍｐｔｙ信号“１”およびＦｕｌｌ信号“０”が、ＲＳフリップフロップ回路部４７１に入力される。そして、アクセス停止信号“０”が、アクセスコントローラ部４４に入力される。すると、アクセスコントローラ部４４は、書き込みアクセスを一時停止する。
【０１３１】
ＦＩＦＯ４６１のデータ容量がまったく使用されていない状態になるとともに、アクセスコントローラ部４４が書き込みアクセスを一時停止するならば、ＡＤＤがＷＮ−２である期間において、書き込み開始コマンドＩＤがメモリ３内部に取り込まれない。すると、書き込み操作がメモリ３内部で開始されないことになる。
【０１３２】
そこで、ＦＩＦＯ４６１のデータ容量がまったく使用されていない状態になったときから、第２クロックの数周期分だけ遅延して、アクセスコントローラ部４４が書き込みアクセスを一時停止するようにすればよい。そのため、エッジセンシティブ回路部４７は、ディレイフリップフロップ回路部４７２−１、４７２−２をも備えているのである。
【０１３３】
本実施の形態においては、エッジセンシティブ回路部４７は、２個のディレイフリップフロップ回路部を備えている。しかし、最終カラムに書き込むデータがメモリ３内部に取り込まれるときから、書き込み開始コマンドＩＤがメモリ３内部に取り込まれるときまで、第２クロックの多周期分の時間を要する場合も考えられる。この場合には、エッジセンシティブ回路部４７は、さらに多くのディレイフリップフロップ回路部を備えればよい。
【０１３４】
｛クロック生成部を外付けする変形例｝
本実施の形態においては、第１クロックを第２クロックに変換するクロック変換部４２を、メモリコントローラ４内部に配置している。しかし、第１クロックを変換することなく第２クロックを生成するクロック生成部を、ホストシステム１またはメモリシステム２に外付けしてもよい。クロック生成部を外付けする変形例について、以下に説明する。
【０１３５】
まず、クロック生成部として、高周波発振器を使用することができる。メモリ３の特性に適した動作クロックが高速である場合に便利である。次に、クロック生成部として、プログラマブル発振器を使用することができる。メモリシステム２を製造するときに、メモリ３として様々なメモリを組み込む場合に便利である。プログラマブル発振器を使用するときには、様々なメモリの特性値表などを参照して、様々なメモリの特性に適した動作クロックの周波数を設定すればよい。
【０１３６】
｛様々なメモリを組み込むための変形例｝
本実施の形態においては、ＮＡＮＤフラッシュメモリを使用している。しかし、ＮＯＲフラッシュメモリなどの他のメモリを使用することもできる。様々なメモリを組み込むための変形例について、ＮＡＮＤフラッシュメモリまたはＮＯＲフラッシュメモリを組み込むための具体例をあげて説明する。
【０１３７】
ＮＡＮＤフラッシュメモリおよびＮＯＲフラッシュメモリは、それぞれの特性に適したメモリ制御信号について、ベクターパターン４５１を一部領域に格納している。ＮＡＮＤフラッシュメモリを使用する状態から、ＮＯＲフラッシュメモリを使用する状態に切り替えるときには、ホストシステム１は初期化設定を行なう。
【０１３８】
ホストシステム１は、ＮＡＮＤフラッシュメモリからＮＯＲフラッシュメモリに切り替えることを、アクセスコントローラ部４４に通知する。アクセスコントローラ部４４は、読み出しアクセスをＮＯＲフラッシュメモリに対して行なって、ＮＯＲフラッシュメモリが格納しているベクターパターン４５１をＳＲＡＭ部４５に読み出す。すると、メモリコントローラ４は、ＮＯＲフラッシュメモリの特性に適したメモリ制御信号を、ＮＯＲフラッシュメモリに出力することができるのである。
【０１３９】
ＮＡＮＤフラッシュメモリからＮＯＲフラッシュメモリに切り替えるときには、メモリコントローラ４の構成要素を変更することなく、ベクターパターン４５１のみを変更すればよい。ＮＯＲフラッシュメモリを使用するときにも、ＮＡＮＤフラッシュメモリを使用するときと同様に、１ページ単位で読み出し／書き込みを行なう場合に便利である。
【図面の簡単な説明】
【０１４０】
【図１】読み出しアクセスの処理の流れを示すブロック図である。
【図２】読み出しアクセスの処理の流れを示すフローチャートである。
【図３】読み出しアクセス波形のベクターパターンのコードイメージである。
【図４】読み出しアクセス波形を示す図である。
【図５】読み出しアクセス波形を示す図である。
【図６】書き込みアクセスの処理の流れを示すブロック図である。
【図７】書き込みアクセスの処理の流れを示すフローチャートである。
【図８】書き込みアクセス波形のベクターパターンのコードイメージである。
【図９】書き込みアクセス波形を示す図である。
【図１０】書き込みアクセス波形を示す図である。
【図１１】エッジセンシティブ回路部の構成例を示す図である。
【符号の説明】
【０１４１】
１  ホストシステム
２  メモリシステム
３  メモリ
４  メモリコントローラ
４１  ホストインターフェース部
４２  クロック変換部
４３  コマンドデコーダ部
４４  アクセスコントローラ部
４５  ＳＲＡＭ部
４６  バッファ部
４７  エッジセンシティブ回路部
４８  メモリインターフェース部
４９Ｇ１、４９Ｇ２、４９Ｇ３、４９Ｇ４  ゲート回路部
４９Ｓ１、４９Ｓ２、４９Ｓ３、４９Ｓ４  セレクタ部
４５１  ベクターパターン
４６１  ＦＩＦＯ
４７１  ＲＳフリップフロップ回路部
４７２−１、４７２−２  ディレイフリップフロップ回路部
【図１】
2008226211.tif 000003
【図２】
2008226211.tif 000004
【図３】
2008226211.tif 000005
【図４】
2008226211.tif 000006
【図５】
2008226211.tif 000007
【図６】
2008226211.tif 000008
【図７】
2008226211.tif 000009
【図８】
2008226211.tif 000010
【図９】
2008226211.tif 000011
【図１０】
2008226211.tif 000012
【図１１】
2008226211.tif 000013