(57)【要約】【課題】NANDフラッシュメモリ専用のI/F や高速SRAM I/Fを設置せずとも、NANDフラッシュメモリを高速にアクセスすることができるメモリコントローラを提供する。【解決手段】SDRAM I/F および第１のデータバッファを有するホストコンピュータ１０、SDRAM １２がシステムバス１１に接続され、システムバスにはNANDメモリコントローラ２０を介してNANDフラッシュメモリ１３が接続されている。メモリコントローラは、第２のデータバッファを有し、NANDフラッシュメモリからホストコンピュータへリードバーストデータブロックを転送する期間中に無効データを転送する。ホストコンピュータは、メモリコントローラから転送される有効データを第１のデータバッファに書き込み、ライトバーストデータブロックを第２のデータバッファに転送して書き込み、かつライトバーストデータブロックを有効データ転送クロックサイクルにシステムバスに出力する。【選択図】      図１
2008071290.tif 000002
【特許請求の範囲】
【請求項１】
ホストコンピュータと半導体メモリに接続可能なメモリコントローラにおいて、
前記ホストコンピュータとの間でクロック同期のバースト転送を行う第１のインターフェイスと、
前記半導体メモリとの間でデータ転送を行う第２のインターフェイスとを具備し、
前記第１のインターフェイスは、前記第２のインターフェイスが前記半導体メモリから受信した有効データと無効データとを含むリードバーストデータを前記ホストコンピュータへ転送することを特徴とするメモリコントローラ。
【請求項２】
前記ホストコンピュータから前記半導体メモリへライトバーストデータを転送する際、前記第２のインターフェイスは、前記第１のインターフェイスが前記ホストコンピュータから受信した有効データと無効データとを含むライトバーストデータを前記半導体メモリへ転送することを特徴とする請求項１記載のメモリコントローラ。
【請求項３】
前記半導体メモリから前記ホストコンピュータへリードバーストデータを転送する際、複数ワード毎に１ワードの有効データを出力し、その他のワードは無効データを出力することを特徴とする請求項１記載のメモリコントローラ。
【請求項４】
前記ホストコンピュータと前記半導体メモリとの間でデータ転送を行う際、予め、バースト長に対する有効データまたは無効データのワード数を表わす情報が外部から設定されることを特徴とする請求項１または２記載のメモリコントローラ。
【請求項５】
データバッファおよびクロック同期のバースト転送機能を備える外部バスインターフェイスを有し、当該外部バスインターフェイスおよびシステムバスを介してメモリコントローラに接続されたホストコンピュータにおいて、
前記メモリコントローラへ転送するライトバーストデータブロックを少なくとも有効データ転送クロックサイクルに出力する機能と、
前記メモリコントローラから転送されるリードバーストデータブロックに含まれる少なくとも有効データを前記データバッファに書き込み、当該有効データを識別する機能
を有することを特徴とするホストコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体メモリを制御するメモリコントローラ（メモリ制御装置）およびホストコンピュータに係り、特にクロック信号に同期して動作するバースト転送機能を備えるインターフェイスを介して半導体メモリを制御するメモリコントローラおよびホストコンピュータに関するもので、例えば携帯電話等のデジタル情報処理システムに使用されるものである。
【背景技術】
【０００２】
情報処理システムにおいて、NANDフラッシュメモリ（以下、NANDメモリと称する）を使う場合、（１）専用インターフェイスを設ける方法と、（２）SRAMインターフェイスで動作するNANDメモリコントローラ（以下、NFC と称する）を設置し、SRAMインターフェイスでNANDメモリを制御する方法がある。
【０００３】
前者（１）の方法は、システムのコスト増を招く。後者（２）の方法は、NANDのバスアクセス性能（現状では最大20Mbyte/sec ）を引き出すためにSRAMインターフェイスのバス転送速度を上げる必要がある。ここで、低速でビット幅の小さいSRAMインターフェイスしか備えないシステムでは、NANDメモリの性能を引き上げるためにSRAMインターフェイスのバス幅を増やし、データ転送周波数を上げる必要があり、コスト増加を招く。
【０００４】
なお、特許文献１には、制御装置を介してSDRAM およびフラッシュメモリをホストに接続するシステムが開示されている。
【０００５】
特許文献２には、外部システムバスにマイクロコンピュータ、SDRAM およびNANDメモリを接続するシステムが開示されている。
【０００６】
特許文献３には、外部システムバスにマイクロコンピュータおよびシステムメモリを接続し、インターフェイスを介してNANDメモリを外部システムバスに接続するシステムが開示されている。このインターフェイスは、マイクロコンピュータに対しては第１のインターフェイス方式で通信し、NANDメモリに対しては第２のインターフェイス方式で通信する。
【０００７】
特許文献４には、ホストプロセッサとNANDメモリとの間をインターフェイスするNANDメモリインターフェイス装置が開示されている。
【特許文献１】特開２００３−９１４６３号公報
【特許文献２】特開２００４−２７２６９６号公報
【特許文献３】特開２００４−６２９１３号公報
【特許文献４】特開２００４−５６９９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
本発明は前記した従来の問題点を解決すべくなされたもので、外部メモリ専用のインターフェイスや高速SRAMインターフェイスを設置せずとも、外部メモリを高速にアクセスすることができるメモリコントローラおよびホストコンピュータを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明は、ホストコンピュータと半導体メモリに接続可能なメモリコントローラにおいて、前記ホストコンピュータとの間でクロック同期のバースト転送を行う第１のインターフェイスと、前記半導体メモリとの間でデータ転送を行う第２のインターフェイスとを具備し、前記第１のインターフェイスは、前記第２のインターフェイスが前記半導体メモリから受信した有効データと無効データとを含むリードバーストデータを前記ホストコンピュータへ転送することを特徴とする。
【００１０】
また、本発明は、データバッファおよびクロック同期のバースト転送機能を備える外部バスインターフェイスを有し、当該外部バスインターフェイスおよびシステムバスを介してメモリコントローラに接続されたホストコンピュータにおいて、前記メモリコントローラへ転送するライトバーストデータブロックを少なくとも有効データ転送クロックサイクルに出力する機能と、前記メモリコントローラから転送されるリードバーストデータブロックに含まれる少なくとも有効データを前記データバッファに書き込み、当該有効データを識別する機能を有することを特徴とする。
【発明の効果】
【００１１】
本発明のメモリコントローラおよびホストコンピュータによれば、外部メモリ専用のインターフェイスや高速SRAMインターフェイスを設置せずとも、外部メモリを高速にアクセスすることができる。
【発明を実施するための最良の形態】
【００１２】
高速バースト転送機能付きバスインターフェイス、例えばSDRAM インターフェイスを備えるシステムにおいて、前記インターフェイスで動作するNFC を設置し、例えばSDRAM インターフェイスでNANDフラッシュメモリを制御する場合を考える。この場合、SDRAM インターフェイスが例えばバスクロック100 〜266MHzレンジで高速動作する必要があり、汎用ASICでNFC を構成することは、周辺IOバッファの動作速度等の問題で非常に困難である。これを回避するために、NFC をASICではなく特注設計することも可能であるが、開発リソース、期間、コスト増を招くので、システム全体の開発コストが増加する。
【００１３】
本発明はこのような点を考慮し、クロック同期のバースト転送機能を備える外部バスインターフェイスを有するホストコンピュータを用いて、外部メモリ専用のインターフェイスや高速SRAMインターフェイスを設置せずとも、外部メモリを高速にアクセスすることができるようにした。
【００１４】
以下、図面を参照して本発明の実施形態を説明する。この説明に際して、全図にわたり共通する部分には共通する参照符号を付す。
【００１５】
＜第１の実施形態＞
図１は、本発明の半導体メモリ制御装置の第１の実施形態を適用した携帯電話用の情報処理システムを示すブロック図である。
【００１６】
ホストコンピュータ（HOST CPU）１０は、クロック信号に同期して動作するバースト転送機能を有するインターフェイス、例えばSDRAM I/F １０１および第１のデータバッファ(DB1) １０２を備えている。SDRAM I/F １０１はシステムバス１１に接続されている。システムバス１１には、SDRAM １２が接続されるとともに、NANDメモリコントローラ(NANDC) ２０を介してNANDフラッシュメモリ１３が接続されている。NANDメモリコントローラ２０は第２のデータバッファ(DB2) ２１２を備えており、例えば図２に示すような構成を有する。
【００１７】
図２は、図１中のNANDメモリコントローラ２０の詳細な構成を示すブロック図である。NANDメモリコントローラ２０は、SDRAM I/F ２１、NANAND I/F用の機能モジュール(NANDC IP)２２、エラー訂正制御(ECC) 用の機能モジュール(ECC IP)２３を有する。SDRAM I/F ２１はシステムバス１１に接続されている。NANDメモリコントローラ２０は、NAND I/F２２を介してNANDフラッシュメモリ１３を制御する。
【００１８】
SDRAM I/F ２１は、I/O コントロールレジスタ(I/O Control Register)２１１と、第２のデータバッファ２１２を構成するSRAMを備える。第２のデータバッファ２１２を構成するSRAMは、NANDフラッシュメモリ１３に供給するライトデータと、NANDフラッシュメモリ１３からのリードデータを転送する際に使用されるものであり、例えばNANDフラッシュメモリ１３の１ページ分である528Byte 、2Kbyteといった単位の記憶容量を有し、ページ単位のデータ転送を実現する。
【００１９】
エラー訂正制御用の機能モジュール２３は、ECC 符号のエンコード／デコードとエラー訂正処理を行う。特に、NANDフラッシュメモリ１３として多値のNANDメモリを使用する場合には、例えば4bitのエラー検出／訂正を実行する。
【００２０】
図３（ａ）は、図１中のSDRAM １２から８ワード連続リード動作を実行した時の動作例を示すタイミングチャートである。なお、本例では、システムバス１１のバス幅が16bit 、バスクロック信号BCLKの周波数が133MHzである場合を示している。
【００２１】
ホストコンピュータ１０は、コマンド(Command) として、クロック信号CLK に同期してリード(Read)コマンドをシステムバス１１に出力する。SDRAM １２は、自己に対するリードコマンドを解読すると、８ワード連続リードを実行し、READ CAS Latency（例えば = 2）後に、データ出力DQとしてクロック信号CLK に同期してリードデータD0〜D7の出力を開始する。そして、ホストコンピュータ１０からクロック信号CLK に同期してバーストストップ(BST) コマンドを出力すると、SDRAM １２はコマンドを解読してリードデータD0〜D7の出力を停止する。
【００２２】
図３（ｂ）は、図１中のホストコンピュータ１０よりNANDメモリコントローラ２０に対してバースト長８を設定した後、NANDフラッシュメモリ１３から４ワード連続リード動作を実行した時の動作例を示すタイミングチャートである。ここでは、DRAM I/Fプロトコルに応じてNANDフラッシュメモリ１３のデータアクセスを行う例を示している。
【００２３】
ホストコンピュータ１０は、予め、NANDメモリコントローラ２０に対して、例えばNANDメモリコントローラ２０内のモードレジスタ（図示せず）のアドレスを指定し、データを書き込むことによって、N ワードバースト（例えばN=1,2,4,8 ）でバリッドデータM/N(M=<N) とする設定（本例では、N=8,M=4 ）を行う。NANDメモリコントローラ２０は、８ワードバースト転送で２サイクルに一度だけバリッド（有効）なデータをシステムバス１１に出力し、その他のサイクルはインバリッドデータ（無効データ）を出力する。NANDメモリコントローラ２０は、第２のデータバッファ２１２用のSRAMをクロック信号BCLKのマルチサイクルでリードアクセスするか、あるいはクロック信号BCLKの２分周クロック信号でアクセスする。即ち、NANDメモリコントローラ２０は、８ワードバースト転送で４ワードのバリッドデータをシステムバス１１に出力する。
【００２４】
このように、NANDメモリコントローラ２０内のSDRAM I/F ２１は、133/2=66.5MHz で動作すればよい。また、転送速度は133MByte/sec（バス幅32bit の場合は266MByte/sec）になるので、NANDフラッシュメモリ１３のバス転送速度レンジである14Mbyte/sec(WE/RE サイクル時間70ns、バス幅8bit) 〜66.7Mbyte/sec(WE/RE サイクル時間30ns、バス幅16bit)を満足することができる。
【００２５】
なお、NANDメモリコントローラ２０内のSDRAM I/F ２１がさらに低速の場合は、M=2 に設定し、８ワードバースト転送で２ワードのバリッドデータを出力するように設定し、SDRAM I/F ２１が133/4=33.25MHzで動作するように設定すればよい。この設定であっても、転送速度は66.5M Byte/secになるので、NANDフラッシュメモリ１３の最大バス転送速度66.7Mbyte/sec をほぼ満足することができる。
【００２６】
ホストコンピュータ１０は、バーストリードデータ（NANDリードデータ）を第１のデータバッファ１０２にそのままライトする。ホストコンピュータ１０は、NANDメモリコントローラ２０の設定モードからバリッドデータのワードアドレス（以下、有効アドレスと称する）を予め認識しており、第１のデータバッファ１０２に書き込まれた有効アドレスのワードのみを例えば再びSDRAM I/F １０１を経由してSDRAM １２に書き込むことにより、NANDフラッシュメモリ１３からSDRAM １２へのデータ転送を実現することができる。
【００２７】
なお、第１のデータバッファ１０２に書き込まれたデータにインバリッドデータを含む場合でも、全てのデータをSDRAM １２に転送し、SDRAM １２から有効アドレスのワードだけ読み込むようにしても良い。また、第１のデータバッファ１０２として、有効アドレスのみメモリセルを用意し、NANDフラッシュメモリ１３から読み込む有効データ数に合わせて第１のデータバッファ１０２の記憶容量の最適化を図ることもできる。また、NANDメモリコントローラ２０内のSDRAM I/F ２１を高速設計した場合は、N=M として毎サイクル有効データを出力しても良い。
【００２８】
図４（ａ）は、図１中のSDRAM １２に対して８ワード連続ライト動作を実行した時の動作例を示すタイミングチャートである。
【００２９】
NANDメモリコントローラ２０は、クロック信号CLK に同期してライト(Write) コマンドをシステムバス１１に出力し、WRITE CAS Latency （例えば = 2）後にデータ出力DQとしてクロック信号CLK に同期してライトデータD0〜D7の出力を開始する。SDRAM １２は、自己に対するライトコマンドを解読すると、８ワード連続ライト動作を実行し、クロック信号CLK に同期してライトデータD0〜D7の書き込みを開始する。そして、ホストコンピュータ１０からクロック信号CLK に同期してバーストストップ(BST) コマンドを出力すると、SDRAM １２はコマンドを解読してライトデータD0〜D7の書き込みを停止する。
【００３０】
図４（ｂ）は、図１中のホストコンピュータ１０よりNANDメモリコントローラ２０にバースト長８を設定した後、NANDフラッシュメモリ１３に対して４ワード連続ライト動作を実行した時の動作例を示すタイミングチャートである。ホストコンピュータ１０は、予め、NANDメモリコントローラ２０に対して、N ワードバーストでバリッドデータM/N(M=<N) とする設定（本例では、N=8,M=4 ）を行う。ホストコンピュータ１０は、８ワードバースト転送で２サイクル毎に書き込みデータを更新してシステムバス１１に出力する。
【００３１】
NANDメモリコントローラ２０は、第２のデータバッファ２１２用のSRAMをクロック信号BCLKのマルチサイクルでライトアクセスするか、あるいはクロック信号BCLKの２分周クロック信号でアクセスする。即ち、８ワードバースト転送で４ワードのバリッドデータを第２のデータバッファ２１２用のSRAMに書き込む。
【００３２】
このように、NANDメモリコントローラ２０内のSDRAM I/F ２１は、133/2=66.5MHz で動作すればよい。また、転送速度は133MByte/sec（バス幅32bit の場合は266MByte/sec）になるので、NANDフラッシュメモリ１３のバス転送速度レンジである14Mbyte/sec(WE/RE サイクル時間70ns、バス幅8bit) 〜66.7Mbyte/sec(WE/RE サイクル時間30ns、バス幅16bit)を満足することができる。
【００３３】
なお、上記したようなリード／ライト動作に際して、NANDメモリコントローラ２０に対するバースト長設定等のモード設定は、NANDメモリコントローラ２０に割り当てるアドレス領域の一部をI/O コントロールレジスタ２１１に割り当てて、このI/O コントロールレジスタ２１１にアクセスして設定するか、あるいはNANDメモリコントローラ２０でSDRAM １２のコマンドを実行する機能を設置して行っても良い。
【００３４】
上述した実施形態では、メモリコントローラ２０は、SDRAM I/F に適合するような構成を有する場合を説明したが、クロック信号に同期したバースト転送機能を備える種々のI/F に適合するように変更することができる。種々のI/F としては例えばDDR I/F 、AHB I/F などが挙げられる。さらに、上述した実施形態では、システムバス１１に対し、NANDメモリコントローラ２０を介してNANDフラッシュメモリを接続する場合について説明したが、メモリコントローラを介してNANDフラッシュメモリ以外のメモリデバイス、例えばNOR フラッシュメモリ、SRAM、DRAM、マスクROM 等を接続し、これらをメモリコントローラによって制御するようにしてもよい。
【００３５】
上記した実施形態の情報処理システムにおいて、第１のデータバッファおよびクロック同期のバースト転送機能を備える外部バスインターフェイスを有するホストコンピュータと、前記ホストコンピュータの外部バスインターフェイスに接続されたシステムバスと、前記システムバスに接続された周辺デバイスと、前記システムバスに接続されたメモリコントローラと、前記メモリコントローラに接続された半導体メモリとを具備している。そして、前記メモリコントローラは、データバッファを有し、前記半導体メモリから前記ホストコンピュータへリードバーストデータブロック（有効データを含む）を転送する期間中に無効データを転送する。
【００３６】
そして、前記ホストコンピュータは、データバッファを有し、前記メモリコントローラから転送されるリードバーストデータブロックに含まれる有効データおよび無効データのうちの少なくとも有効データを前記データバッファに書き込み、前記リードバーストデータブロック内の有効データを識別し、かつ前記データバッファ内の有効データ格納アドレスを識別する。
【００３７】
また、ホストコンピュータは、ライトバーストデータブロック（有効データを含む）を前記メモリコントローラ内のデータバッファに転送して書き込み、かつ前記ライトバーストデータブロックを少なくとも有効データ転送クロックサイクルに前記システムバスに出力する。
【００３８】
このようにクロック同期のバースト転送機能を備える外部バスインターフェイスを有するホストコンピュータを用いることによって、外部メモリ専用のインターフェイスや高速SRAMインターフェイスを設置せずとも、外部メモリを高速にアクセスすることが可能なメモリコントローラを実現することができる。また、メモリコントローラの周辺I/O 回路を低速なデバイスで実現しても、高速なクロック同期のバースト転送機能を備える外部バスインターフェイスで外部メモリをアクセスできるので、コストパフォーマンスに優れた情報処理システムを構築することが可能になる。
【００３９】
＜第２の実施形態＞
図５は、本発明のメモリコントローラの第２の実施形態を適用した携帯電話用の情報処理システムのブロック図である。この第２の実施形態に係る情報処理システムは、前述した第１の実施形態と比べて、システムバス１１に第１、第２のNANDメモリコントローラ(NFC1 、NFC2) ２０１、２０２からなる２個のメモリコントローラが接続されており、さらに第１、第２のNANDメモリコントローラ２０１、２０２に対してNANDフラッシュメモリ１３１、１３２が接続されている点が異なる。また、ホストコンピュータ１０はホストコンピュータ１０ａに変更されている。なお、第１、第２のNANDメモリコントローラ２０１、２０２は、バースト転送クロックサイクル内での有効クロックサイクルが異なるものとする。
【００４０】
図６は、図５中のホストコンピュータ１０ａより第１、第２のNANDメモリコントローラ２０１、２０２にそれぞれバースト長８を設定した後、それぞれに接続されているNANDフラッシュメモリ１３１、１３２に対して４ワード連続リード動作を実行した時の動作例を示すタイミングチャートである。
【００４１】
図６に示すように、第１のNANDメモリコントローラ２０１は奇数サイクルにリードデータを出力し、第２のNANDメモリコントローラ２０２は偶数サイクルにリードデータを出力する。これにより、バースト転送中、全サイクルに有効データを出力することを可能にしている。奇数、偶数のどちらで有効データを出力するかは、ホストコンピュータ１０ａから第１、第２のNANDメモリコントローラ２０１、２０２に予め設定しておく。このような構成により、バス転送速度を大幅に向上することができる。
【００４２】
図７は、図５中のホストコンピュータ１０ａより第１、第２のNANDメモリコントローラ２０１、２０２にそれぞれバースト長８を設定した後、それぞれに接続されているNANDフラッシュメモリ１３１、１３２に対して４ワード連続ライト動作を実行した時の動作例を示すタイミングチャートである。
【００４３】
図７に示すように、ホストコンピュータ１０ａは有効なライトデータを毎サイクル出力し、第１、第２のNANDメモリコントローラ２０１、２０２はサイクル毎に交互に書き込みデータを内部に取り込む。
【００４４】
上記した第２の実施形態では、NANDメモリコントローラを２個接続する場合について説明したが、要求性能、構成バリエーションに応じて３個、４個…と任意の複数個のNANDメモリコントローラをシステムバス１１に接続するように変更してもよい。
【図面の簡単な説明】
【００４５】
【図１】本発明の第１の実施形態に係る情報処理システムのブロック図。
【図２】図１の情報処理システムの一部の詳細な構成を示すブロック図。
【図３】図１の情報処理システムにおけるリード動作時のタイミングチャート。
【図４】図１の情報処理システムにおけるライト動作時のタイミングチャート。
【図５】本発明の第２の実施形態に係る情報処理システムのブロック図。
【図６】図５の情報処理システムにおけるリード動作時のタイミングチャート。
【図７】図５の情報処理システムにおけるライト動作時のタイミングチャート。
【符号の説明】
【００４６】
１０…ホストコンピュータ、１１…システムバス、１２…SDRAM 、１３…NANDフラッシュメモリ、２０…NANDメモリコントローラ、２１…SDRAM I/F 、２２…NANAND I/F用の機能モジュール、２３…エラー訂正制御用の機能モジュール、１０１…SDRAM I/F 、１０２…第１のデータバッファ、２１１…I/O コントロールレジスタ、２１２…第２のデータバッファ。
【図１】
2008071290.tif 000003
【図２】
2008071290.tif 000004
【図３】
2008071290.tif 000005
【図４】
2008071290.tif 000006
【図５】
2008071290.tif 000007
【図６】
2008071290.tif 000008
【図７】
2008071290.tif 000009