(57)【要約】【課題】バッテリ電源を節約する改善されたデバイスを提供する。【解決手段】コンピュータシステムにおいて、メインメモリの代わり或いはＢＩＯＳ  ＮＯＲメモリの代わりに、コントローラ及びＮＡＮＤメモリを用いたＮＯＲエミュレーティングデバイスを用いることが可能である。従って、エミュレーティングデバイスは、ブート可能メモリとして機能することができる。加えて、デバイスは、ハードディスクドライに対するキャッシュとして機能することができる。更に、ＭＰ３プレーヤコントローラをデバイスに加えることで、デバイスは、ＰＣが電源オフ又は休止状態である間もスタンドアロンのオーディオ再生デバイスとして機能することができる。【選択図】図７Ａ
2007183961.tif 000002
【特許請求の範囲】
【請求項１】
メインプロセッサと、
前記メインプロセッサに接続されたメモリと、
を備えるパーソナルコンピュータであって、
前記メモリが、
前記メインプロセッサからのアドレス信号及びデータ信号を受信するための第１のバスと、ＮＡＮＤメモリとインターフェースをとる第２のバスと、ＲＡＭメモリとインターフェースをとる第３のバスと、ＮＯＲメモリとインターフェースをとる第４のバスとを有するメモリコントローラと、
前記第２のバスに接続されたＮＡＮＤメモリと、
前記第３のバスに接続されたＲＡＭメモリと、
前記第４のバスに接続されたＮＯＲメモリと、
を含み、
前記メモリコントローラが、前記第１のバスに供給されるＮＯＲプロトコルコマンドとＲＡＭプロトコルコマンドとに応答することを特徴とするコンピュータ。
【請求項２】
前記ＮＯＲメモリが前記メインプロセッサ用のブート可能コードを格納することを特徴とする請求項１に記載のコンピュータ。
【請求項３】
前記ＮＡＮＤメモリが前記メインプロセッサ用のブート可能コードを格納することを特徴とする請求項１に記載のコンピュータ。
【請求項４】
前記メモリがモノシリック集積回路ダイであることを特徴とする請求項１に記載のコンピュータ。
【請求項５】
前記メモリコントローラが第１の集積回路ダイであり、前記ＮＡＮＤメモリが第２の集積回路ダイであり、前記ＲＡＭメモリが第３の集積回路ダイであり、前記ＮＯＲメモリが前記メモリコントローラ内に一体化されることを特徴とする請求項１に記載のコンピュータ。
【請求項６】
前記第１、第２、及び第３の集積回路ダイが共にパッケージ化されることを特徴とする請求項５に記載のコンピュータ。
【請求項７】
前記メモリコントローラが第１の集積回路ダイであり、前記ＮＡＮＤメモリが第２の集積回路ダイであり、前記ＲＡＭメモリ及び前記ＮＯＲメモリが前記メモリコントローラ内に一体化されることを特徴とする請求項１に記載のコンピュータ。
【請求項８】
前記第１及び第２の集積回路ダイが共にパッケージ化されることを特徴とする請求項７に記載のコンピュータ。
【請求項９】
前記メモリが、ＮＯＲアドレスとして前記第１のバス上の第１のアドレスと、ＲＡＭアドレスとして前記第１のバス上の第２のアドレスと、ＡＴＡ  ＮＡＮＤアドレスとして前記第１のバス上の第３のアドレスとに応答するように構成されたプログラムコードを格納することを特徴とする請求項１に記載のコンピュータ。
【請求項１０】
前記ＮＯＲメモリが前記メモリコントローラの動作を開始するように構成されたプログラムコードを更に格納することを特徴とする請求項７に記載のコンピュータ。
【請求項１１】
前記メモリコントローラが更に、前記第１のバスからのアドレスをＮＯＲ動作、前記ＮＡＮＤメモリを用いたＮＯＲエミュレーション動作、ＲＡＭ動作、及びＡＴＡ  ＮＡＮＤ動作に分けるためのホストデバイスからの構成可能なパラメータを格納するレジスタを含むことを特徴とする請求項８に記載のコンピュータ。
【請求項１２】
前記ＮＯＲメモリが、前記ＲＡＭメモリを前記ＮＡＮＤメモリを用いたＮＯＲエミュレーション動作用のキャッシュとして使用させるように構成されたプログラムコードを更に格納することを特徴とする請求項１１に記載のコンピュータ。
【請求項１３】
メインプロセッサと、
前記メインプロセッサに接続されたメインメモリと、
前記メインプロセッサに接続された補助メモリと、
を備えるコンピュータであって、
前記補助メモリが、
前記メインプロセッサからのアドレス信号及びデータ信号を受信するための第１のバスと、ＮＡＮＤメモリとインターフェースをとる第２のバスと、ＮＯＲメモリとインターフェースをとる第３のバスと、を有するメモリコントローラと、
前記第２のバスに接続されたＮＡＮＤメモリと、
前記第３のバスに接続されたＮＯＲメモリと、
を含み、
前記補助メモリが、前記コンピュータの動作を開始するＢＩＯＳ命令用の記憶機構として機能することを特徴とするコンピュータ。
【請求項１４】
前記ＮＯＲメモリが前記メモリコントローラの動作を開始するプログラムコードを格納することを特徴とする請求項１３に記載のコンピュータ。
【請求項１５】
前記ＮＡＮＤメモリが前記コンピュータの動作を開始するためのプログラムコードを格納することを特徴とする請求項１３に記載のコンピュータ。
【請求項１６】
前記メモリコントローラが前記メインメモリからＡＴＡ互換の信号を受信するための第４のバスを有することを特徴とする請求項１３に記載のコンピュータ。
【請求項１７】
前記補助メモリ及び前記第５のバスに接続されたハードディスクを更に備え、前記ＮＡＮＤメモリが前記ハードディスクドライブ用のキャッシュとして機能することを特徴とする請求項１６に記載のコンピュータ。
【請求項１８】
前記補助メモリが更に、入出力ポートに接続可能であることを特徴とする請求項１６に記載のコンピュータ。
【請求項１９】
前記入出力ポートがＵＳＢポートである請求項１８に記載のコンピュータ。
【請求項２０】
前記補助メモリが更に、ＰＣＩバス又はＰＣＩエクスプレスに接続可能であることを特徴とする請求項１６に記載のコンピュータ。
【請求項２１】
前記補助メモリが、前記メインプロセッサへの給電状態に関係なく、入出力ポートとの間及びハードディスクドライブとの間のデータのやりとりを行うよう機能することを特徴とする請求項１８に記載のコンピュータ。
【請求項２２】
前記ＮＯＲメモリが更に、デジタルオーディオ／画像再生デバイスとして前記メモリコントローラを動作させるプログラムコードを格納することを特徴とする請求項２１に記載のコンピュータ。
【請求項２３】
前記メインプロセッサに接続されたディスプレイデバイスを更に備え、前記補助メモリが前記ディスプレイデバイスを動作させるために前記ディスプレイデバイスに接続されていることを特徴とする請求項２２に記載のコンピュータ。
【請求項２４】
前記補助メモリが、前記メインプロセッサと前記ハードディスクドライブとの間をトランスペアレント、トラップ、又は再送信の３つのモードのうちの１つで動作可能であることを特徴とする請求項１７に記載のコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、２００５年１２月２８日に出願された米国仮出願６０／７５４，９３７の優先権を主張し、本開示は引用により全体が本明細書に組み込まれる。
【０００２】
本発明は、メモリデバイスに関し、より詳細には、ＰＣなどのパーソナルコンピュータにおけるディスクドライブのキャッシュメモリとして使用され、ＰＣが休止モード又はオフモード状態の間でも音楽又はビデオの再生用の再生デバイスとしても機能することができるメモリデバイスに関する。
【背景技術】
【０００３】
ＳＲＡＭ、又はＤＲＡＭ（或いはＤＲＡＭ）、又はＰＳＲＡＭ（以下まとめてＲＡＭと呼ぶ）のような揮発性のランダムアクセスメモリは、当技術分野では公知である。典型的には、これらのタイプの揮発性メモリは、アドレスバス上のアドレス信号、データバス上のデータ信号、及びコントロールバス上の制御信号を受信する。
【０００４】
パラレルＮＯＲ型不揮発性メモリもまた当技術分野で公知である。典型的には、これは、ＲＡＭに供給されるものと同じタイプのアドレスバス上のアドレス信号、ＲＡＭに供給されるものと同じタイプのデータバス上のデータ信号、及びＲＡＭに供給されるものと同じタイプのコントロールバス上の制御信号を受信する。ＲＡＭと同様に、ＮＯＲメモリはランダムアクセスメモリデバイスである。しかしながら、ＮＯＲメモリは、ＲＡＭには必要ではないＳＥＣＴＯＲ  ＥＲＡＳＥ又はＢＬＯＣＫ  ＥＲＡＳＥのような一定の動作を必要とするため、コマンドの性質を有する動作が、一連の一定のデータパターンとしてＮＯＲデバイスに与えられる。これは、ＮＯＲプロトコルコマンドとして知られている。先行技術では、２つのタイプのＮＯＲコマンドプロトコルがあり、１）Ｉｎｔｅｌによって最初に公表されたプロトコルコマンドセットと互換性のあるプロトコルコマンド、及び２）ＡＭＤによって最初に公表されたプロトコルコマンドセットと互換性のあるプロトコルコマンドである。いずれの場合も、ＮＯＲメモリは、ＲＡＭがインターフェースをとる同じアドレスバス、データバス、及びコントロールバスと電気的にインターフェースをとる。更に、従来のＮＯＲメモリデバイスはまた、ＳＰＩ、ＬＰＣ、又はファームウェアハブのような公知の従来の形式でデータ信号、アドレス信号、及び制御信号をシリアルに供給することもできる。
【０００５】
ＮＡＮＤ型不揮発性メモリもまた、当技術分野で公知である。しかしながら、パラレルＮＯＲデバイスと違い、ＮＡＮＤメモリは、ブロック内のセルが順次形式で格納されるランダムアクセス可能なブロックにデータを格納する。更に、アドレス信号及びデータ信号は、同じバス上で、ただし多重化方式で供給される。ＮＡＮＤメモリは、ＮＯＲデバイスよりも高密度であるので、データの各ビットの格納コストが削減される利点を有する。
【０００６】
ＮＡＮＤデバイスはデータのビット当たりのコストが低いので、ＮＡＮＤデバイスを利用してＮＯＲデバイスの動作をエミュレートする試みが行われてきた。ＯｎｅＮＡＮＤ（Ｓａｍｓｕｎｇ  Ｃｏｒｐｏｒａｔｉｏｎの商標）と呼ばれるこうした１つのデバイスは、ＲＡＭメモリを利用してＮＡＮＤメモリとの間でデータを一時的にバッファすることで、ＮＯＲメモリの動作をエミュレートする。しかしながら、ＯｎｅＮＡＮＤデバイスには、２つの欠点があると考えられる。第１に、ＯｎｅＮＡＮＤをインターフェース接続するユーザ又はホストのデバイスは、データの一貫性を追跡する必要があると考えられる。データの一貫性においては、ユーザ又はホストがＲＡＭに書き込みを行うため、ＲＡＭのデータは、ＲＡＭのデータが最初に読み出されたＮＡＮＤ内の位置にあるデータよりも新しい（従って異なる）可能性がある。従って、ＯｎｅＮＡＮＤデバイスにおいては、ユーザ又はホストは、データをＲＡＭからＮＡＮＤ内の最終位置に書き戻してそのデータを格納し、或いはＲＡＭのデータが新しいデータであることを覚えておくように動作する必要がある。ＯｎｅＮＡＮＤデバイスの欠点であると考えられる第２の問題は、ＯｎｅＮＡＮＤデバイスが自動でアドレスマッピングを行うことができないことである。ＯｎｅＮＡＮＤデバイスでは、データがＯｎｅＮＡＮＤデバイスのＲＡＭ部分に書き込まれると、ホスト又はユーザは、ＲＡＭ部分にあるデータをＯｎｅＮＡＮＤデバイスのＮＡＮＤ部分にある最終位置に書き込むために、コマンド又は一連のコマンドを出す必要がある。同様に読み出し動作についても、ホスト又はユーザは、ＯｎｅＮＡＮＤのＮＡＮＤ部分にある特定の位置からの読み出しコマンドを送出し、そのデータをＲＡＭ部分にロードした後、該ＲＡＭ部分からデータを読み出す必要がある。
【０００７】
同様の欠陥を有すると考えられる別の先行技術のデバイスは、Ｍ  ＳｙｓｔｅｍｓのＤｉｓｋＯｎＣｈｉｐデバイスである。ＤｉｓｋＯｎＣｈｉｐデバイスでは、限定量のＲＡＭを備えたコントローラが、ＮＡＮＤメモリの動作を制御する。しかしながら、ＤｉｓｋＯｎＣｈｉｐデバイスのコントローラ部分は、ＮＯＲメモリのようなオンボードの不揮発性ブート可能メモリを持たないと考えられる。
【０００８】
ＮＯＲメモリの動作をエミュレートするコントローラを備えたＮＡＮＤメモリの利用を示す先行技術の公開は、２００６年３月９日に公開された米国公開特許出願２００６／００５３２４６に示されている。この公報は、複数のプロセッサに接続されたコントローラを備えたＮＡＮＤメモリの利用を示しているが、このＮＡＮＤメモリは、ＡＴＡ規格の動作により直接アクセスすることはできないと思われる。従って、このＮＡＮＤメモリへの全てのアクセスは、外部からの非直接的なアクセスでコントローラにより行われる必要がある。
【０００９】
コンピュータシステムは当該技術分野で公知である。詳細には、「ＩＢＭ  ＰＣ」規格に準拠したコンピュータシステムが当該技術分野で公知である。図６を参照すると、先行技術によるコンピュータシステム３００が図示されている。コンピュータシステム３００は、「ＩＢＭ  ＰＣ」アーキテクチャに準拠している。システム３００は、通常、ＩｎｔｅｌＣｏｒｐｏｒａｔｉｏｎ製のＰｅｎｔｉｕｍマイクロプロセッサのようなプロセッサ３１４、Ｎｏｒｔｈｂｒｉｄｇｅ（ノースブリッジ）チップ３１６としても知られるメモリコントローラハブチップ３１６、及びＳｏｕｔｈｂｒｉｄｇｅ（サウスブリッジ）チップ３１８としても知られるＩＯコントローラハブチップ３１８などの様々な構成要素が搭載されたマザーボード３１２を含む。Ｎｏｒｔｈｂｒｉｄｇｅ３１６及びＳｏｕｔｈｂｒｉｄｇｅ３１８はチップセットとして知られ、ＩｎｔｅｌＣｏｒｐｏｒａｔｉｏｎから入手することができる。最後に、マザーボード３１２は、バス３５０を介してＳｏｕｔｈｂｒｉｄｇｅ３１８に接続された通常はＮＯＲ型不揮発性メモリであるＢＩＯＳ３２０を含む。バス３５０はまた、ハードディスクドライブ（ＨＤＤ）３２６、モデム３２８、ＵＳＢ又は他のポート３２７、スピーカ３２５、キーボード３２２、及びマウス３２４などのシステム３００の他の構成要素に接続される。米国特許第６，３３０，６３５号を参照されたい。
【００１０】
コンピュータシステム３００の動作では、プロセッサ３１４は、ＢＩＯＳ３２０内に最初に格納されているコードから起動する。プロセッサ３１４がＢＩＯＳ３２０から初期コードを実行すると、プロセッサ３１４はＨＤＤ３２６上に格納された別のコード／データを検索するようＨＤＤ３２６に信号を送信する。その後、オペレーションは次に進む。
【００１１】
【特許文献１】仮出願６０／７５４，９３７
【特許文献２】米国特許出願２００６／００５３２４６
【特許文献３】米国特許第６，４２７，１８６号
【特許文献４】米国特許第６，４０５，３２３号
【特許文献５】米国特許第６，１４１，２５１号
【特許文献６】米国特許第５，９８２，６６５号
【発明の開示】
【発明が解決しようとする課題】
【００１２】
上述のことから分かるように、ドライブ３２６が起動されると、プロセッサ３１４及びシステム３００全体が「オン」にならなければならない。ラップトップコンピュータ３００のバッテリ時間は限られているので、バッテリ電源は節約されるのが望ましい。更に、このようなシステム３００の性能を改善することが望ましい。従って、上述のことを満足することができる改善されたデバイスに対する必要性がある。
【課題を解決するための手段】
【００１３】
本発明では、新規のメモリデバイスが開示される。本新規のメモリデバイスは、ＮＡＮＤフラッシュメモリを用いてＮＯＲメモリの機能をエミュレートする。更に、メモリデバイスは、ＰＣシステムで利用され、揮発性ＤＲＡＭを置き換え、又はブート可能ＢＩＯＳメモリとして使用される。加えて、本メモリデバイスは、ハードディスクドライブに対するキャッシュとして機能することができる。更に、本メモリデバイスは、ＵＳＢデバイス用ハブとして機能するので、メインプロセッサへの給電がオフの間でもハードディスクドライブとの間のデータ転送を制御することができる。更に、本メモリデバイスは、コントローラを有し、本コントローラがＭＰ３再生などの他の機能（又はＤＳＰなどの専用のプロセッサを用いてもよい）を実行することができる。従って、本メモリデバイスは、ＰＣの電源がオフであるか、又は休止状態にある間でもスタンドアロンのオーディオ再生デバイスとして機能することができる。最後に、ＭＰ３プレーヤコントローラを有すると、メモリデバイスは、同様にＰＣがオフモード状態又は休止モード状態でもハードドライブ上に格納された別のオーディオデータにアクセスすることができる。
【発明を実施するための最良の形態】
【００１４】
図１を参照すると、メモリデバイス１０の第１の実施形態が示されている。メモリデバイス１０は、メモリコントローラ１２と、ＮＡＮＤメモリ１４と、ＲＡＭメモリ１６とを備える。メモリデバイス１０は、第１のＲＡＭアドレスバス２２と、第１のＲＡＭデータバス２４と、ウェイト２６、ＲＳＴ＃２８、並びにＣＥ＃、ＯＥ＃、及びＷＥ＃３０のような複数の制御信号とを介してホストデバイス２０とインターフェース接続し、これらの全てはＲＡＭバスの制御信号の当業者には公知である。以下において特に指定がない限り、ウェイト２６、ＲＳＴ＃２８、並びにＣＥ＃、ＯＥ＃及びＷＥ＃３０上の制御信号の全ては、第１のＲＡＭコントロールバス３２と呼ぶ。第１のＲＡＭアドレスバス２２、第１のＲＡＭデータバス２４、及び第１のＲＡＭコントロールバス３２は、ホストデバイス２０からメモリデバイス１０のメモリコントローラ１２に接続されている。更に、上述のように、メモリデバイス１０とホストデバイス２０との間のインターフェースは、データバス、アドレスバス、及びコントロールバスがホストデバイス２０とメモリデバイス１０との間でシリアルに接続されるシリアルバスを介するものとすることができる。かかるメモリデバイス１０もまた、本発明の範囲内である。
【００１５】
メモリコントローラ１２は、第２のＲＡＭアドレスバス（第１のＲＡＭアドレスバス２２と同様）と、第２のＲＡＭデータバス（第１のＲＡＭデータバス２４と同様）と、第２のコントロールバス（第１のＲＡＭコントロールバス３２と同様）とを有し、これらの全てはまとめて、ＲＡＭメモリ１６に接続された第２のＲＡＭバス４０として単に示される。メモリコントローラ１２は更に、ＮＡＮＤメモリ１４に接続されたＮＡＮＤアドレス／データバス及びＮＡＮＤコントロールバス（これらの全てはまとめてＮＡＮＤバス４２として示す）を有する。ＲＡＭメモリ１６は、シングルチップ集積回路として、メモリコントローラ１２に一体化又は組み込むことができる。或いは、ＲＡＭメモリ１６は、メモリコントローラ１２とは別個の集積回路とすることができる。或いは、ＲＡＭメモリ１６の一部をメモリコントローラ１２と統合することができ、ＲＡＭメモリ１６の一部をメモリコントローラ１２から分離することができる。ＲＡＭメモリ１６が別個のダイであることの利点は以下に説明する。しかしながら、ＲＡＭメモリ１６がメモリコントローラ１２と一体化される利点は、ＲＡＭメモリ１６の動作がより速くなることができることである。
【００１６】
一実施形態では、メモリコントローラ１２は、単一の集積回路ダイである。コントローラはまた、第１のＮＯＲメモリ４４と、第２のＮＯＲメモリ６２と、ＳＲＡＭメモリ４６と、ＳＤＲＡＭコントローラ４８（ＲＡＭ１６がＳＤＲＡＭタイプのＲＡＭメモリであって、メモリコントローラ１２の外部にある場合に、ＲＡＭ１６の動作を制御する）とを有し、これらはメモリコントローラの集積回路ダイ内に組み込まれている。勿論、第１のＮＯＲメモリ４４と第２のＮＯＲメモリ６２とは、同じ物理ＮＯＲメモリの一部とすることができる。メモリコントローラ１２のある実施形態の詳細なブロックレベルの図を図３に示す。本明細書で使用する「ＮＯＲメモリ」とは、ランダムアクセス不揮発性メモリのあらゆるタイプを意味する。ＮＯＲメモリは、限定ではないが、フローティングゲート型メモリ、ＲＯＭ、又は捕獲材料などを用いたセルを含む。更に、本明細書で使用する「ＮＡＮＤメモリ」は、不良セルを含む可能性のあるあらゆるタイプのシリアルアクセス不揮発性メモリを意味する。
【００１７】
一実施形態では、メモリコントローラ１２、ＲＡＭメモリ１６、及びＮＡＮＤメモリ１４の各々が、単一の集積回路ダイで形成され、共にＭＣＰ（マルチチップパッケージ）にパッケージ化される。かかる構成の利点は、大量（又は少量）のメモリを必要とするユーザ又はホスト２０に対して、容易に利用可能なＮＡＮＤメモリ１４のダイを単に変更することによって、或いはスピードが１つの要因である場合には、容易に利用可能なＲＡＭメモリ１６を変更することによってメモリ量を変更可能なことである。従って、メモリコントローラ１２と、ＲＡＭメモリ１６と、ＮＡＮＤメモリ１４とを別個のダイ内に備えることは、様々なサイズのメモリデバイス１０及び速度又はパフォーマンスを容易に製造することができることを意味する。
【００１８】
勿論、メモリコントローラ１２と、ＲＡＭメモリ１６と、ＮＡＮＤメモリ１４とは、単一の集積回路ダイに形成してもよい。メモリコントローラ１２と、ＲＡＭメモリ１６と、ＮＡＮＤメモリ１４とが、単一の集積回路ダイで形成される場合には、追加して外部に設けられるＮＡＮＤメモリをメモリデバイス１０に取り付けて、メモリデバイス１０のメモリ容量を拡張することができるように、外部ＮＡＮＤバス４２を設ける準備を行うことができる。
【００１９】
図２を参照すると、ホストデバイス２０により参照され、図１に示したメモリデバイス１０の第１の実施形態においてマップされるアドレスのマッピングを示すメモリマップが示されている。ホストデバイス２０によって参照されるメモリマップは、２つの一般的なセクション、すなわちランダムアクセスとマスストレージアクセスとを有する。ランダムアクセスセクションは、下位のメモリアドレス位置を占める（必要条件ではない）。ランダムアクセスセクション内では、最下位のメモリアドレスは、ＮＯＲメモリアクセス部分５０のメモリアドレスであり、これに続いて擬似ＮＯＲ（ＰＮＯＲ）メモリアクセス部分５２、次いでＲＡＭアクセス部分５４、次いで構成アクセス部分５６がある。これらの部分の各々を以下に説明する。
【００２０】
ホストデバイス２０により参照されるＮＯＲメモリアクセス部分５０は、ホスト２０がこの部分５０で動作する場合には、その結果は物理ＮＯＲメモリ４４上の動作であるものである。従って、メモリ部分５０の物理ＮＯＲメモリ４４へのマッピングは、１対１である。言い換えれば、ＮＯＲ部分５０に割り当てられるメモリ空間の量は、メモリデバイス１０で利用可能なＮＯＲメモリ４４の量によって決まる。一実施形態では、メモリコントローラ１２に組み込まれるＮＯＲメモリ４４の量は、２Ｋワードのセクタサイズ及び３２Ｋのワードブロックサイズを備えた４メガビットである。更に、ホストデバイス２０が（ｒｅａｄ／ｗｒｉｔｅ／ｅｒａｓｅなどのコマンドを送出するときのように）ＮＯＲ部分５０で動作していると考えると、結果として得られる動作は、ＮＯＲメモリ４４上に直接的なものとなる。このＮＯＲ部分５０は、待ち時間なしのランダムアクセスを要求する高性能の重要なコード／データを格納しようとするホストデバイス２０が利用することができる。更に、プログラムがＮＯＲメモリ４４に格納される場合、プログラムは、ＮＯＲメモリ４４内の所定位置で実行することができる。このようにＮＯＲメモリ４４は、ホストデバイス２０を「ブートする」プログラム又はコードを格納することができる。
【００２１】
ホストデバイス２０によって参照されるＰＮＯＲ部分５２は、ホスト２０がこの部分５２で動作するときに、ホスト２０は不揮発性のＲＡＭメモリ１６上で動作していると考えるものである。従って、ホストデバイス２０に関しては、ＮＯＲプロトコルのコマンドを送出することなく、ＰＮＯＲ部分５２に格納されたデータを除く他のあらゆるＲＡＭメモリ１６が不揮発性であるようにＰＮＯＲ部分５２上で動作することができる。一実施形態では、ＰＮＯＲ部分５２は、ＮＡＮＤメモリと同様にページに分割され、各ページは、８Ｋバイト、２Ｋバイト、又は５１２バイトのいずれかである。動作中、ホストデバイス２０がメモリデバイス１０とインターフェースをとると、ホストデバイスはＲＡＭメモリ１６とインターフェースをとり、メモリコントローラ１２がＮＡＮＤメモリ１４とのやりとりのデータを「バックアップ」してＲＡＭメモリ１６とＮＡＮＤメモリ１４との間のデータの一貫性を維持し、更に、メモリコントローラ１２は、ホストデバイス２０によって供給されたアドレスをＮＡＮＤメモリ１４内の実際のデータのアドレスにマップする。実際のＲＡＭメモリ１６よりも大量のＮＡＮＤメモリ１４が利用可能であるので、ＰＮＯＲ部分５２は、ＲＡＭメモリ１６で利用可能な実際のメモリ量よりも遙かに大きいメモリ空間とすることができる。
【００２２】
更にＰＮＯＲ部分５２は、４つの領域に分割することができ、各々がＲＡＭメモリ１６中のゾーンに、すなわちゾーン０、ゾーン１、ゾーン２、及びゾーン３にマップされる。各ゾーンは、様々な程度のマッピングを有することができる。ＰＮＯＲ部分５２の領域からＲＡＭメモリ１６のゾーンへのマッピングが１対１である場合、これは「静的ページングモード」と呼ばれる。ＰＮＯＲ部分５２の領域からＲＡＭメモリ１６のゾーンへのマッピングが多対１である場合には、これは「動的ページングモード」と呼ばれる。静的ページングモードのマッピングは、ＰＮＯＲ部分５２のメモリ空間の量（例えば２５６ページ（或いは２Ｋバイトのページの場合は５１２Ｋバイト））が常にＲＡＭ１６の同じ量のメモリ空間（例えば２５６ページ（又は５１２Ｋバイト））にマップされ、次いでこれがＮＡＮＤメモリ１４の２５６ページ（又は５１２Ｋバイト）にマップされるので、最小の待ち時間となる。この場合、ＲＡＭメモリ１６もまたランダムアクセスであるので、動作中のアクセスの待ち時間はないが、ＮＡＮＤメモリ１４とＲＡＭメモリ１６との間のやりとりの最初のロード及び格納での待ち時間がある。動的ページングモードのマッピングでは、例えば、ＰＮＯＲ部分５２のメモリ空間の４０，０００ページのマッピングでは、ＲＡＭメモリ１６の５１２ページへマップされ、次いでＮＡＮＤメモリ１４の４０，０００ページにマップされ、多大な待ち時間が発生することになる。この待ち時間は、ＮＡＮＤメモリ１４からＲＡＭ１６へデータ／プログラムを最初にロードする際と、キャッシュミスがある場合にデータ／プログラムを最初にＮＡＮＤメモリ１４からＲＡＭ１６へロードすることが必要な場合がある、ＰＮＯＲ部分５２からデータ／プログラムを読出す動作中とで発生することになる。従って、ＰＮＯＲ部分５２に関する待ち時間は、構成されるゾーンの大きさによって異なる。ＲＡＭメモリ１６の各ゾーンの境界、ひいてはＰＮＯＲ部分５２の各領域からＲＡＭメモリ１６にマップするメモリ空間の量は、ホストデバイス２０又はユーザが設定することができる。従って、ホストデバイス２０は、プログラム又はタイムクリティカルなデータを格納する／読出す静的ページングモードか、或いはプログラム又はタイムクリティカルでないデータを格納／読出し、その結果キャッシュミスがある場合に待ち時間がある動的ページングモードのいずれかで動作するように４つのゾーンを構成することができる。
【００２３】
ゾーンが静的ページングモードに構成されている場合、ＰＮＯＲ部分５２の同じ量のメモリ空間が常にＲＡＭメモリ１６の同じ量の空間にマップされるので、データ読み出しの一貫性は問題ではない。しかしながら、データ書き込みの一貫性は依然として行う必要がある。一方、ゾーンが動的ページングモードに構成されている場合、データの一貫性がもたらされなければならない。ホストデバイス２０は、２つのキャッシュ一貫性モードのうちの１つで動作するようにゾーンを構成することができる。第１のモードで、ホストデバイス２０はキャッシュ一貫性モードを開始する。このモードでは、ホストデバイス２０は、ホストデバイス２０に必要とされる限り、ＲＡＭメモリ１６内のキャッシュ動作をフラッシュする。第２のモードでは、ＲＡＭメモリ１６とＮＡＮＤメモリ１４との間のデータの一貫性を維持するために、メモリコントローラ１２に必要とされる限り、ＲＡＭメモリ１６内のキャッシュ動作をフラッシュすることにより、メモリコントローラ１２がキャッシュ一貫性モードを開始する。
【００２４】
ＰＮＯＲ部分５２のメモリ空間の量及びＲＡＭメモリ１６へのこのマッピングがユーザにより設定されると、ＲＡＭメモリ１６にある利用可能なメモリ空間の残りは、ＲＡＭメモリアクセス部分に利用することができる。ホストデバイス２０によって参照されるＲＡＭメモリアクセス部分５４は、ホスト２０がこの部分５４で動作するときに、その結果が物理ＲＡＭメモリ１６上の動作となるものである。従って、メモリ部分５４から物理ＲＡＭメモリ１６へのマッピングは１対１である。更に、ＲＡＭ部分５４に割り当てられるメモリ空間の量は、メモリデバイス１０で利用可能なＲＡＭメモリ１６の総量と、ＰＮＯＲメモリ５２のメモリ空間部分のＲＡＭメモリ１６へのマッピングの程度とによって決まる。ホストが、ＲＡＭ部分５４で動作している（読み出し／書き込みなどのコマンドを出しているなど）と考えると、結果として生じる動作は、ＲＡＭメモリ１６上に直接的なものとなる。このＲＡＭ部分５４は、メモリ空間をバッファ区域として利用しようとするホストデバイス２０が利用することができる。各ゾーンにおけるＰＮＯＲ部分５２のメモリ空間のＲＡＭメモリ１６へのマッピングは、ユーザが設定することが可能であり、ＲＡＭメモリ１６の総量は既知であるので、ＰＮＯＲ部分５２とＲＡＭ部分５４との間の境界は、間接的にユーザによって設定される。従って、大量のバッファを有することが望ましい場合、ゾーンの１つ又はそれ以上においてＰＮＯＲ部分５２とＲＡＭメモリ１６との間のマッピングを縮小することにより、大量のＲＡＭ部分５４を割り当てることができる。その上、ＰＮＯＲ部分５２とＲＡＭ部分５４との間の境界は、メモリコントローラ１２をリセットして、ＰＮＯＲ部分５２のメモリ空間とＲＡＭメモリ１６との間のマッピングを各ゾーンにおいて再構築することにより、メモリデバイス１０の動作中に変更することができる。
【００２５】
ＲＡＭメモリ１６のゾーンの各々のメモリマップの境界及びＰＮＯＲ部分５２のメモリ空間のサイズは、メモリコントローラ１２にある不揮発性の構成レジスタ６０に事前に割り当てて格納することができる。構成レジスタ６０へのアクセスは、構成アクセス部分５６を介する。不揮発性の構成レジスタ６０は、組み込みＮＯＲメモリ６２の一部とすることができる。或いは、ＲＡＭメモリ１６のゾーンの各々のメモリマップの境界及びＰＮＯＲ部分５２のメモリ空間のサイズは、ユーザが１つ又は複数のチップ選択ピンを介して選択することができる。この場合、メモリコントローラ１２の電源が入ると、様々なメモリの境界をリセットすることができる。ＮＯＲメモリ６２はまた、メモリコントローラ１２及びＭＣＵ６４のブート中及び動作中に、メモリコントローラ１２が実行するのに使用されるファームウェアコード６１を格納することもできる。
【００２６】
最後に、マスストレージアクセスセクション５８では、ホストデバイス２０がメモリ空間のそのセクションにアクセスすると、ホストデバイス２０は、ＡＴＡディスクドライブにアクセスしていると考える。メモリコントローラ１２は、公知のフラッシュファイルシステム（ＦＦＳ）プロトコルを使用して、論理ＡＴＡディスクドライブ空間のアドレスをＮＡＮＤメモリ１４の物理空間のアドレスに変換する。一実施形態では、読み出し動作に関して、マスストレージアクセスセクション５８の最初の部分は、ＡＴＡタスクファイルレジスタ７９にロードされる１６バイトの論理アドレスからなる。メモリコントローラ１２は、１６バイトのタスクコマンド及び論理アドレスをデコードし、ＮＡＮＤメモリ１４内の特定の「ページ」にアクセスするためにこれを物理アドレスに変換する。ＮＡＮＤメモリ１４のページから５１２バイトのページが読み出され、次いでデータレジスタ８１にロードされ、ここでホストデバイス２０により順次的に又はランダムにアクセスされる。書き込み動作に関しては、逆のことが起こる。５１２バイトのデータが格納されることになる論理アドレスが、最初にタスクファイルレジスタ７９にロードされる。書き込みコマンドが、タスクファイルレジスタ７９に書き込まれる。メモリコントローラ１２は、タスクファイルレジスタ内のこのコマンドを書き込みコマンドとしてデコードし、これを物理アドレスに変換してＮＡＮＤメモリ１４の特定のページにアクセスし、更に、その位置にデータレジスタ８１内の５１２バイトを格納する。別の実施形態では、いわゆるピンポン構成において２つのデータレジスタ８１（ａ＆ｂ）（図示せず）が存在する場合がある。この場合、データレジスタ８１ａの一方は、データを予めＮＡＮＤメモリ１４の１ページからロードして、５１２バイトのデータをホストデバイス２０に供給するように使用され、他方のデータレジスタ８１ｂは、ＮＡＮＤメモリ１４の別のページからデータレジスタ８１ｂにデータをロードして、データレジスタ８１ａからのデータが完全に読み出された後、データをホストデバイス２０に供給するように使用される。この方法では、ＮＡＮＤメモリ１４からデータのページの多くに渡って連続的な読み出し動作を行うことができる。また、データレジスタ８１（ａ＆ｂ）は、書き込み動作においてピンポン式に用いることも可能であり、セットアップの待ち時間がほとんど又は全くなく、データの多くの連続したページをＮＡＮＤメモリ１４に書き込むことが可能になる。
【００２７】
前述のように、メモリデバイス１０とホストデバイス２０との間のインターフェースは、シリアルバスを介することができる。詳細には、かかるシリアルバスは、メモリデバイス１０のＲＡＭ部分をホストデバイス２０と接続する従来のパラレルバスを用いて、メモリデバイス１０のＮＯＲ又はＰＮＯＲ区域をホストデバイス２０と接続することができる。
【００２８】
図３を参照すると、ＲＡＭメモリ１６及びＮＡＮＤメモリ１４とインターフェースをとるメモリコントローラ１２の詳細なブロックレベルの図が示されている。メモリコントローラ１２はマイクロコントローラ６４を含む。マイクロコントローラ６４は、ＦＦＳのあらゆるブックキーピング機能を行い又は実行する。その上、マイクロコントローラは、欠陥管理（ＤＭ）及びキャッシュデータ一貫性アルゴリズム、並びにキャッシュフラッシュ置換アルゴリズムを行い又は実行する。最後に、マイクロコントローラ６４は、キャッシュページングスキームアルゴリズムを行い又は実行する。これらの動作の全ては、メモリコントローラ１２のブート操作又は初期設定を含み、ＮＯＲメモリ６２内に格納されたファームウェア又はプログラムコード６１によって達成される。
【００２９】
マイクロコントローラ６４は、上述のようにマイクロコントローラ６４によって実行されるファームウェア６１も格納する第２のＮＯＲメモリ６２に接続されている。不揮発性の構成レジスタ６０を格納することに加えて、ＮＯＲメモリ６２はまた、ＦＦＳ及びＤＭの動作用のファームウェアを格納する。
【００３０】
またマイクロコントローラ６４は、ＭＵＸ７４を介してＳＲＡＭメモリ４６とインターフェースをとる。ＳＲＡＭメモリ４６は、ランタイムデータを格納するためのマイクロコントローラ６４用ローカル高速バッファとして機能する。その上、ＳＲＡＭメモリ４６は、欠陥マップキャッシュとＦＦＳデータ構造とを格納することができる。
【００３１】
メモリコントローラ１２の詳細な説明をハードウェア構成要素に関して記載するが、以下に記載する機能の全ては、マイクロコントローラ６４で実行するためにソフトウェアに実装することもできる。
【００３２】
メモリコントローラ１２は、内容参照可能メモリの性質で実装することができるカレントキャッシュのページアドレスレジスタ６６を含む。ＣＡＭ６６の機能は、現在のＰＮＯＲキャッシュのページアドレスを保持すること、及びＰＮＯＲ部分５２に対する読み出し又は書き込み動作中にアクセスミスがあるときにＣＡＭ６６を更新することである。ＣＡＭ６６内の各エントリは、３つの部分、すなわちページアドレス部分６６ａ、インデックスアドレス部分６６ｂ、及びステータス部分６６ｃを有する。メモリコントローラ及びＣＡＭメモリ６６の動作に関する説明は、以下の実施例に関するものであるが、本発明は、以下の実施例に限定されないことを理解されたい。ホストデバイス２０からのアドレスは、２１の最上位ビット（ビット１１〜３１）と、１１の最下位ビット（ビット０〜１０）とからなる３２ビットと仮定する。２１の最上位ビットはページアドレスを含み、１１の最下位ビットはオフセットアドレスを含む。またＣＡＭメモリ６６の各エントリは、２１ビットからなるページアドレス部分６６ａと、９ビットからなるインデックスアドレス部分６６ｂと、１２ビットからなるステータス部分とを含み、このステータス部分は有効（又は無効）の１ビット、ダーティ（又はクリーン）の１ビット、静的（又は動的）の１ビット、ホスト主導のキャッシュ一貫性（又はコントローラ主導）の１ビット、及び最終アクセスタイムスタンプ用の８ビットからなる。ホストデバイス２０からの３２ビットでは、ホストデバイスは、２32バイトすなわち１ＧＢの量のメモリ空間をアドレス指定することができる。以下に説明するように、メモリコントローラ１２は、ホストデバイス２０からのオフセットアドレスによる１１ビットに加えて、ＣＡＭメモリ６６からの９ビットのインデックスアドレス部分を使用して、２０ビットのアドレスを形成することで、ＲＡＭ１６に対する１ＭＢのアドレス指定を可能にする。勿論、これらの数字は例証に過ぎず、本発明を限定するものではない。
【００３３】
メモリコントローラ１２はまた、ヒット／ミス比較論理６８を含む。ヒット／ミス比較論理６８は、アドレスバス２２からアドレス信号を受信し、コントロールバス３２から制御信号を受信する。次いで、ヒット／ミス比較論理６８は、ホストデバイス２０からのアドレスの３２ビットからページアドレスの２１ビットをＣＡＭメモリ６６に送信する。ＣＡＭメモリ６６は、これら２１ビットのページアドレスをＣＡＭメモリ６６の各エントリに格納されたページアドレス６６ａと比較する。ヒットがある場合、すなわちホストデバイス２０からのページアドレスの２１ビットがＣＡＭメモリ６６のエントリの１つと一致する場合、ＣＡＭメモリ６６は、インデックスアドレス６６ｂの関連する９ビットをＭＵＸ７０に出力する。ミスがある場合、ヒット／ミス比較論理６８が、読み出しミス信号又は書き込みミス信号を生成する。読み出しミス信号及び書き込みミス信号は、マイクロコードコントローラ（ＭＣＣ）／エラーコード訂正（ＥＣＣ）ユニット７２がデータ一貫性を実行する信号としてＭＣＣ／ＥＣＣユニット７２に供給される。ＭＣＣ／ＥＣＣユニット７２に供給される信号は、ＲＡＭメモリ１６に格納されたカレントページアドレスの１つが、アドレスバス２２上に供給されたホストデバイス２０からのアドレスであることを示すヒットであるか、或いは、ＲＡＭメモリ１６に格納されたカレントページアドレスのいずれもが、アドレスバス２２上に供給されたホストデバイス２０からのアドレスではないことを示すミスである。最後に、ヒット／ミス比較論理６８はまた、ウェイト状態信号２６に接続される。ウェイト状態信号２６は、メモリコントローラ１２がバスサイクル動作を保持したいことをホストデバイス２０に知らせたいと望むときに生成される。ウェイト状態信号２６は、ディアサートされるとバス２２／２４／３２を解放し、ホストデバイス２０が動作を再開できるようになる。ウェイト状態信号２６がメモリコントローラ１２によってアサートされる一実施例は、読み出し／書き込みミスが存在し、メモリコントローラ１２がＮＡＮＤメモリ１４のアドレスからデータを読出し、これをＲＡＭメモリ１６にロードする必要がある場合である。データがＮＡＮＤメモリ１４から読出されて、ＲＡＭメモリ１６にロードされる時間の間、ウェイト状態信号２６は、メモリコントローラ１２によりアサートされる。
【００３４】
またメモリコントローラ１２は、マイクロコントローラ６４の制御下で動作するＭＣＣ／ＥＣＣユニット７２を含む。ＭＣＣ／ＥＣＣユニット７２は、キャッシュデータの一貫性、フラッシュ置換、及びページングの動作のために読み出しミス／書き込みミス信号を監視する。その上、マイクロコントローラ６４の制御下で、ＭＣＣ／ＥＣＣユニット７２は、ＮＡＮＤメモリ１４を操作し、ＮＡＮＤメモリ１４の欠陥管理動作を与える。更に、マイクロコントローラ６４の制御下で、ＭＣＣ／ＥＣＣユニット７２は、ＮＡＮＤメモリ１４と、ＲＡＭメモリ１６と、ＳＲＡＭメモリ４６との間でデータを移動させるようにＤＭＡ機能を提供する。最後に、ＭＣＣ／ＥＣＣユニット７２は、ＮＡＮＤメモリ１４に格納されたデータについてエラー検出及び訂正を行う。
【００３５】
メモリコントローラ１２はまた、セキュリティ及びデジタル権利管理を提供する暗号エンジン９０を含む。その上、メモリコントローラ１２は、ＲＡＭメモリ１６の量を増強するのに利用するため、追加のＲＡＭメモリ９２をコントローラに組み込み、すなわち同じ集積回路ダイ上に形成することができる。上記のように、ＲＡＭメモリ１６は、別個の集積回路ダイとすることができ、この場合メモリコントローラ１２に組み込まれたＲＡＭメモリ９２がＲＡＭメモリ１６を増強する。しかしながら、ＲＡＭメモリ１６とメモリコントローラ１２とが同じダイに一体化されている場合、ＲＡＭメモリ１６及びＲＡＭメモリ９２は共に、同じメモリアレイの一部とすることができる。
【００３６】
次に、様々な動作モードに関してメモリデバイス１０を説明する。パワーアップ中、ヒット／ミス比較論理６８は、ウェイト信号を生成して、ウェイト状態信号２６をアサートする。メモリコントローラ１２は、不揮発性レジスタ６０から構成パラメータを読み出し、これを揮発性レジスタ４６（ＳＲＡＭ４６の一部とすることができる）にロードする。静的ページ、すなわちＰＮＯＲ部分５２に静的にマップされるＮＡＮＤメモリ１４からのデータもまた、ＮＡＮＤメモリ１４から読み出され、ＲＡＭメモリ１６内に格納される。これは、ＭＣＣ／ＥＣＣ７２を介してマイクロコントローラ６４により行われ、ＦＦＳプロトコルを実行してＮＡＮＤメモリ１４からのページのアドレスを変換し、更にＮＡＮＤメモリ１４への物理アドレス及び制御信号を生成してデータをそこから引き出し、これをＲＡＭメモリ１６に格納する。パワーアップ中、ＭＣＵ６４及びＭＣＣ／ＥＣＣ７２もまた、ＮＡＮＤメモリ１４をスキャンしマスタインデックステーブルを探索する。マスタインデックステーブルは、読み出されてローカルＳＲＡＭメモリ４６に格納される。ＭＣＵ６４は、マスタインデックステーブルのデータ構造の完全性を調べる。ＭＣＵ６４及びＭＣＣ／ＥＣＣ７２はまた、ＮＡＮＤメモリ１４をスキャンし、マスタインデックステーブルの再構築が必要であるかどうかを判断する。ＭＣＵ６４及びＭＣＣ／ＥＣＣ７２はまた、ＮＡＮＤメモリ１４から２ページのデータをローカルＳＲＡＭメモリ６４に取り込む。Ｖｐａｇｅと呼ばれるＮＡＮＤメモリ１４からの最初の２ページのデータは、ホストデバイス２０の論理アドレスをＮＡＮＤメモリ１４の物理アドレスにマップするためのデータを含み、ＮＡＮＤメモリ１４の欠陥セクタをスキップする能力を備えている。次にＦＦＳは、マッピング変換要求を受け入れる準備が整う。次にヒット／ミス比較論理６８が、ウェイト状態信号２６をディアサートし、すなわちウェイト状態信号２６を解除する。
【００３７】
パワーアップ中、メモリコントローラ１２が、ＮＡＮＤメモリからの静的ページの引き出し、及びこれらのＲＡＭメモリ１６への格納、並びにＮＡＮＤメモリ１４のマスタインデックステーブルの更新といった他のオーバーヘッド機能を実施している間、メモリデバイス１０は、ホストデバイス２０によって更に利用可能である点に留意されたい。詳細には、ウェイト状態信号２６のアサーションは、メモリ空間のＰＮＯＲ部分５２に対する要求をアドレス指定するのに向けた動作にのみ影響を与えるので、ＮＯＲメモリ４４は、パワーアップ中でもホストデバイス２０がアクセスすることが可能である。
【００３８】
ＮＯＲメモリの動作
ＮＯＲメモリ４４の読み出し動作では、ホストデバイス２０は、メモリ空間のＮＯＲメモリアクセス部分５０内にあるアドレス信号をアドレスバス２２上でメモリデバイス１０に送信する。更に、ホストデバイス２０によって適切な制御信号がコントロールバス３２でメモリデバイス１０に送信される。アドレス信号は、ＰＮＯＲメモリアクセス部分５２以外の空間にあるので、ヒット／ミス比較論理６８は起動されず、ウェイト状態信号２６はアサートされない。アドレス信号及び制御信号は、ＮＯＲメモリ４４に供給され、そこで供給されたアドレスからのデータを読み出す。次いでデータは、データバスに沿ってＭＵＸ８４に供給され、更にデータバス２４に沿ってホストデバイス２０へ出されることで読み出しサイクルを完了する。
【００３９】
ＮＯＲメモリ４４の書き込み又はプログラム動作では、ホストデバイス２０は、メモリ空間のＮＯＲメモリアクセス部分５０内にあるアドレス信号をアドレスバス２２でメモリデバイス１０に送信する。更に、ホストデバイス２０によって適切な制御信号がコントロールバス３２でメモリデバイス１０に送信される。アドレス信号は、ＰＮＯＲメモリアクセス部分５２以外の空間にあるので、ヒット／ミス比較論理６８は起動されず、ウェイト状態信号２６はアサートされない。アドレス信号及び制御信号は、ＮＯＲメモリ４４に供給される。書き込まれ又はプログラムされるデータ及びプログラムコマンドは、ホストデバイス２０からデータバス２４に沿ってメモリコントローラ１２に送信され、ＭＵＸ８４に入る。次いでＭＵＸ８４から、データがＮＯＲメモリ４４に送信され、そこでデータはアドレスバス２２で供給されるアドレスでＮＯＲメモリ４４内にプログラムされる。ホストデバイス２０は、ＮＯＲメモリ４４をバイト単位でプログラムすることができるバイトプログラム動作を行うことができる。書き込み又はプログラムサイクルは、データがＮＯＲメモリ４４に書き込まれると完了する。
【００４０】
ＮＯＲメモリ４４のセクタ消去又はブロック消去などの消去動作では、ホストデバイス２０は、メモリ空間のＮＯＲメモリアクセス部分５０内にあるアドレス信号をアドレスバス２２でメモリデバイス１０に送信する。更に、ホストデバイス２０によって適切な制御信号がコントロールバス３２でメモリデバイス１０に送信される。アドレス信号は、ＰＮＯＲメモリアクセス部分５２以外の空間にあるので、ヒット／ミス比較論理６８は起動されず、ウェイト状態信号２６はアサートされない。アドレス信号及び制御信号は、ＮＯＲメモリ４４に供給される。消去コマンドプロトコルを表すデータ信号は、ホストデバイス２０からデータバス２４に沿ってメモリコントローラ１２に送信され、ＭＵＸ８４に入る。次いでＭＵＸ８４から、データがＮＯＲメモリ４４に送信され、そこで該データはＮＯＲメモリ４４によってデコードされ、次いで消去動作が実行される。ＮＯＲメモリ４４が消去サイクルを完了すると、消去サイクルは完了する。
【００４１】
ＰＮＯＲメモリの動作−読み出し
ＰＮＯＲメモリの読み出し動作では、ホストデバイス２０は、メモリ空間のＰＮＯＲメモリアクセス部分５２内にあるアドレス信号をアドレスバス２２でメモリデバイス１０に送信する。読み出しヒットと読み出しミスの２つのことが起こりうる。
【００４２】
読み出しヒットの場合、アドレスバス２２に供給されたアドレス信号のページアドレス部分が、ヒット／ミス比較論理６８によって受信され、ＣＡＭ６６内に格納されたＲＡＭメモリ１６内に現在あるアドレスと比較される。アドレスバス２２に供給されたページアドレスが、ＣＡＭ６６内に格納されているページアドレス内に存在する場合、ヒットが存在する。ヒット／ミス論理６８は、アドレス信号及び制御信号が次にＲＡＭメモリ１６へ向けられるようにＭＵＸ７０を起動させ、ＣＡＭメモリ６６からの関連するインデックスアドレス６６ｂをホストデバイス２０からのオフセットアドレスと連結して、ＲＡＭメモリ１６をアドレス指定する。次いで、ＲＡＭメモリ１６によるその下位アドレスから読み出されたデータは、ＭＵＸ８０に送信され、そこからＭＵＸ８４に供給され（ＭＵＸ８０のデフォルト状態）、ＭＵＸ８４は、ヒット／ミス比較論理６８により命令されて、データをデータバス２４に沿ってホストデバイス２０に送信することができるようにし、これによって読み出しサイクルを完了する（図示せず）。
【００４３】
読み出しミスの場合、起こり得る幾つかのことがある。まず、キャッシュフラッシュのない読み出しミスと呼ばれるものがある。アドレスバス２２からのアドレス信号のページアドレス部分をＣＡＭ６６からのページアドレスレジスタ６６ａと比較した結果ミスとなる場合、すなわちアドレスバス２２上のページアドレスが、ＲＡＭメモリ１６に格納されたページのアドレス内にない場合には、ヒット／ミス比較論理６８は、ＭＣＣ／ＥＣＣユニット７２に読み出しミス信号を送り、ＭＣＣ／ＥＣＣ７２が読み出し一貫性サイクルを開始する。更に、ヒット／ミス比較論理６８は、ウェイト状態信号２６上に信号をアサートする。ＭＣＵ６４の制御下にあるＭＣＣ／ＥＣＣユニット７２は、ＦＦＳ動作を実行して、ホストデバイス２０により供給されたアドレスをＮＡＮＤメモリ１４内の物理アドレスに変換する。次いで、ＭＣＣ／ＥＣＣユニット７２は、ＮＡＮＤメモリ１４に対して適切なアドレス信号及び制御信号を生成し、更に、ＲＡＭメモリ１６に対して適切なアドレス信号及び制御信号を生成する。
【００４４】
アドレスバス２２で特定されるアドレスからのデータを含むデータのページ全体は、ＮＡＮＤメモリ１４から読み出され、ＭＵＸ８０を介してＲＡＭメモリ１６に転送され、そこでＭＣＣ／ＥＣＣユニット７２により特定されたＲＡＭメモリ１６内の位置のページ全体に書き込まれ、ＭＣＣ／ＥＣＣユニット７２により動作されて、誤り訂正チェックなどを通じてデータの完全性が確保される。次いで、ＣＡＭ６６のカレントページアドレスレジスタが更新され、カレント読み出しミスアドレス内にあるアドレスページのアドレスを追加する。ヒット／ミス比較論理６８は、ウェイト状態信号２６上の信号をディアサートする。更に、ＭＣＵ６４は、ＭＵＸ８０をデフォルト位置に切り替える。ヒット／ミス比較論理６８は、インデックスアドレス６６ｂをＭＵＸ７０に送信し、そこでインデックスアドレスは、アドレスバス２２からのオフセットアドレス部分と組み合わされ、ＲＡＭメモリ１６をアドレス指定する。次いで、ＲＡＭメモリ１６上での読み出し動作からのデータは、ＭＵＸ８０を介し、更にＭＵＸ８４を介してホストデバイス２０へのデータバス２４に供給され、これによりサイクルを完了する。ＮＡＮＤメモリ１４から読み出されたデータの量は、ページベースであるので、データのページ全体がＲＡＭメモリ１６内に格納される必要がある。キャッシュフラッシュのない読み出しミスのこのケースでは、ＲＡＭメモリ１６のページ全体がＮＡＮＤメモリ１４からのデータを格納するのに利用可能であるか、或いはデータのページ全体が格納されることになるＲＡＭメモリ１６内の位置には（ＮＡＮＤメモリ１４にあるデータと同様の）一貫性のあるデータが含まれていると仮定すると、ＮＡＮＤメモリ１４から読み出されたデータのページ全体は、ＲＡＭメモリ１６のある位置に格納することができる。キャッシュフラッシュとは、ＲＡＭメモリ１６からＮＡＮＤメモリ１４へデータの書き込むことで、データ一貫性の問題のあるキャッシュ（ＲＡＭメモリ１６）をフラッシュすることを意味する。
【００４５】
読み出しミスの別の可能性のあるケースは、キャッシュフラッシュのある読み出しミスと呼ばれる。このケースでは、ＮＡＮＤメモリ１４からのデータのページ全体は、ＮＡＮＤメモリ１４内のデータよりも新しい、ＲＡＭメモリ１６内のあるデータを上書きすることなく、ＲＡＭメモリ１６に格納する可能性がある。これは、データ一貫性の問題を生じる。従って、ＲＡＭメモリ１６内のデータのページは、最初にＮＡＮＤメモリ１４に書き込む必要があり、その後で、異なる位置のＮＡＮＤメモリ１４からのデータをＲＡＭメモリ１６に読み込むことができる。一連の動作は以下の通りである。ホストデバイス２０によるアドレスバス２２からのアドレス信号のページアドレス部分をＣＡＭ６６からのページアドレス信号６６ａと比較して、アドレスバス２２からのアドレス信号が、カレントページアドレスのいずれかの中にあるかどうかを判断する。この比較はミスとなり、ヒット／ミス比較論理６８がＭＣＣ／ＥＣＣユニット７２に対して読み出しミス信号を送信し、ＭＣＣ／ＥＣＣユニット７２が読み出し一貫性サイクルを開始する。更に、ヒット／ミス比較論理６８は、ウェイト状態信号２６上の信号をアサートする。ＮＡＮＤメモリ１４からのデータがＲＡＭメモリ１６に読み込まれる場合にはデータ一貫性の問題が生じるので、ＭＣＵ６４の制御下のＭＣＣ／ＥＣＣユニット７２は、最初にＲＡＭメモリ１６内のデータのページをＮＡＮＤメモリ１６に書き込む必要があると判断する。ＭＣＵ６４は、ＦＦＳ動作を実行し、ＲＡＭメモリ１６からのアドレスをＮＡＮＤメモリ１４のアドレスに変換する。
【００４６】
データのページ全体が、ＲＡＭメモリ１６から読み出され、ＭＵＸ８−を通ってＮＡＮＤメモリ１４に供給され、そこでＮＡＮＤメモリ１４に格納される。その後、ホストデバイス２０からのアドレスは、ＭＣＵ６４によってＦＦＳ動作で物理ＮＡＮＤアドレスに変換される。次に、ＭＣＣ／ＥＣＣユニット７２は、ＭＣＵ６４の指示を受けてＮＡＮＤメモリ１４に対しての適切なアドレス信号及び制御信号を生成し、更に、ＣＡＭメモリ６６からのインデックスアドレス６６ｂと、ＭＣＣ／ＥＣＣ７２からの制御信号及びオフセットアドレス部分とを使用して、ＲＡＭメモリ１６をアドレス指定する。次に、ＮＡＮＤメモリ１４から読み出されたデータのページ全体は、ＮＡＮＤメモリ１４からＭＵＸ８０を介してＲＡＭメモリ１６に転送され、そこでＭＣＣ／ＥＣＣユニット７２により特定されたＲＡＭメモリ１６内の位置のページに書き込まれ、ＭＣＣ／ＥＣＣユニット７２により動作されて、誤り訂正チェックなどを通じてデータの完全性が確保される。次いで、ＣＡＭ６６のカレントページアドレスレジスタ６６ａが更新され、カレント読み出しミスアドレスを含むページアドレスと、関連するインデックスアドレス６６ｂとを追加する。ヒット／ミス比較論理６８は、ウェイト状態信号２６上の信号をディアサートする。更に、ＭＣＵ６４は、ＭＵＸ８０をデフォルト位置に切り替える。ヒット／ミス比較論理６８は、インデックスアドレス６６ｂをＭＵＸ７０に送信し、そこでインデックスアドレスがアドレスバス２２からのオフセットアドレスと組み合わされ、ＲＡＭメモリ１６で読み出し動作を開始する。次いで、データがＲＡＭメモリ１６から読み出され、ＭＵＸ８０を介し、更にＭＵＸ８４を介してホストデバイス２０へのデータバス２４に供給され、これにより読み出しサイクルを完了する。
【００４７】
読み出しヒット、キャッシュフラッシュのない読み出しミス、キャッシュフラッシュのある読み出しミスの各々の場合では、この動作は、ホストデバイス２０の視点からＲＡＭデバイスに対する読み出しと同様であり、読み出しミスの場合に待ち時間を伴う。ホストデバイス２０は、アドレスの変換及び／又はデータの一貫性に対処する必要がない。
【００４８】
ＰＮＯＲメモリの動作−書き込み
ＰＮＯＲメモリの書き込み動作では、ホストデバイス２０は、ＲＡＭメモリ１６に書き込まれるデータと共に、メモリ空間のＰＮＯＲメモリアクセス部分５２内にあるアドレス信号をアドレスバス２２でメモリデバイス１０に送信する。書き込みヒット及び書き込みミスといった２つのことが起こり得る。
【００４９】
書き込みヒットの場合、アドレスバス２２に供給されたアドレス信号のページアドレス部分は、ヒット／ミス比較論理６８によって受信され、ＲＡＭメモリ１６内に現在格納されているデータを反映するＣＡＭ６６内のページアドレス６６ａと比較される。アドレスバス２２に供給されたページアドレスは、ＣＡＭ６６内に格納されたページアドレス内にある。ヒット／ミス論理６８は、アドレス信号及び制御信号がその後ＲＡＭメモリ１６へ向けられるようにＭＵＸ７０を起動する。ＣＡＭ６６からのインデックスアドレス６６ｂとアドレスバス２２からのアドレス信号のオフセットアドレス部分とが組み合わされて、ＭＵＸ７０を介してＲＡＭメモリ１６にアクセスするのに使用されるアドレス信号が生成される。データバス２４からのデータは、ＭＵＸ８４を通り、ＭＵＸ８０を通ってＲＡＭメモリ１６に供給され、そこでＲＡＭメモリ１６に書き込まれ、これにより書き込みヒットサイクルが完了する。
【００５０】
ＲＡＭメモリ１６内のデータは、書き込みヒット動作後は、ＮＡＮＤメモリ１４の同じ位置からのデータに対して一貫性がなくなる点に留意されたい。実際には、ＲＡＭメモリ１６のデータは最新のものとなる。データの一貫性の問題を解決するには、２つの解決法がある。
【００５１】
第１に、メモリデバイス１０は、必要に応じてデータの一貫性の問題を自動的に解決することができる。上記のように、例えばキャッシュフラッシュ動作での読み出しミスの場合には、ＮＡＮＤメモリ１４から新しく要求されるデータのページを格納するために、ＲＡＭメモリ１６内のデータのページが置き換えられる必要がある場合、ＲＡＭメモリ１６内のより新しいデータは、ＮＡＮＤメモリ１４に書き戻されることになる。以下に説明するように、ＭＣＵ６４はまた、キャッシュフラッシュ動作での書き込みミスにおいて、データをＮＡＮＤメモリ１４に書き戻すことによりＲＡＭメモリ１６のデータに関してキャッシュフラッシュを行う。
【００５２】
データの一貫性の問題に対する別の解決法は、ホストデバイス２０の制御下でデータの一貫性を実施することである。すなわち、ホストデバイス２０は、メモリコントローラ１２に一貫性のないデータをＲＡＭメモリ１６からＮＡＮＤメモリ１４に書き戻させるキャッシュフラッシュのコマンドを送出することができる。この動作の利点は、限定ではないが、アプリケーションの変更、シャットダウン、又は受信した低出力割り込みなどの重要なイベントを含む、あらゆる時点でホストデバイス２０がこの動作を行うことができることである。しかしながら、メモリコントローラ１２もまた自動的にデータの一貫性を実施することができるので、ホストデバイス２０のユーザがデータの一貫性の動作を実施できない場合には、このような動作は、必要に応じてメモリコントローラ１２が行うこともある。
【００５３】
書き込みミスの場合、起こり得る幾つかのことがある。まず、キャッシュフラッシュのない書き込みミスと呼ばれるものがある。アドレスバス２２からのアドレス信号のページアドレス部分をＣＡＭ６６からのページアドレス信号６６ａと比較した結果、ミスとなる場合、すなわちアドレスバス２２上のアドレスが、ＲＡＭメモリ１６に格納されたページのアドレス内にない場合には、ヒット／ミス比較論理６８は、ＭＣＣ／ＥＣＣユニット７２に書き込みミス信号を送る。更に、ヒット／ミス比較論理６８は、ウェイト状態信号２６上に信号をアサートする。ＭＣＣ／ＥＣＣユニット７２は、ホストデバイス２０からのアドレスバス２２上で特定されたアドレスのデータを含む、ＮＡＮＤメモリ１４からのデータの新しいページが、古い一貫性のあるデータ上、或いはＲＡＭメモリ１６の空き区域上に格納されることになるかどうかを判断する。この場合、メモリコントローラ１２は、データをＮＡＮＤメモリ１４からＲＡＭメモリ１６内の位置に転送する前に、書き込み一貫性サイクルを行う必要がない。ＭＣＵ６４の制御下にあるＭＣＣ／ＥＣＣユニット７２は、ＦＦＳ動作を実行して、ホストデバイス２０により供給されたアドレスをＮＡＮＤメモリ１４内の物理アドレスに変換する。次いで、ＭＣＣ／ＥＣＣユニット７２は、ＮＡＮＤメモリ１４に対して適切なアドレス信号及び制御信号を生成し、更に、ＲＡＭメモリ１６に対して適切なアドレス信号及び制御信号を生成する。
【００５４】
アドレスバス２２で特定されるアドレスからのデータを含む、データのページ全体は、ＮＡＮＤメモリ１４から読み出され、ＭＵＸ８０を介してＲＡＭメモリ１６に転送され、そこでＭＣＣ／ＥＣＣユニット７２及びインデックスアドレス６６ｂにより特定されたＲＡＭメモリ１６内の位置のページ全体に書き込まれ、そこでＭＣＣ／ＥＣＣユニット７２により動作されて、誤り訂正チェックなどを通じてデータの完全性が確保される。次いで、ＣＡＭ６６のカレントページアドレスレジスタ６６ａが更新され、カレント書き込みミスアドレス内にあるアドレスページのアドレス及び関連するインデックスアドレス６６ｂ（インデックスアドレス６６ｂはデータのページが格納されるＲＡＭメモリ１６のアドレスの上位９ビットである）を追加する。ヒット／ミス比較論理６８は、ウェイト状態信号２６上に信号をディアサートする。更に、ＭＣＵは、ＭＵＸ８０をデフォルト位置に切り替える。ヒット／ミス比較論理６８は、インデックスアドレス６６ｂをＭＵＸ７０に送信し、そこでインデックスアドレスはアドレスバス２２からのオフセットアドレスと組み合わされ、ＲＡＭメモリ１６において書き込み動作を開始する。次いで、データは、ホストデバイス２０からＭＵＸ８４を通って、更にＭＵＸ８０を通りＲＡＭメモリ１６に書き込まれ、これによりサイクルを完了する。ここではＲＡＭメモリ１６内のデータはもはやＮＡＮＤメモリ１４内の同じアドレスにあるデータと一貫性がない。この一貫性の問題は、全て上述されたように、メモリコントローラ１２が必要に応じて自動的に書き込みキャッシュフラッシュを開始するか、又はホストデバイス２０が常に書き込みキャッシュフラッシュを開始することによって解決される。
【００５５】
書き込みミスの別の起こり得るケースは、キャッシュフラッシュを伴う書き込みミスと呼ばれる。このケースでは、ＮＡＮＤメモリ１４からのデータのページ全体は、ＮＡＮＤメモリ１４内のデータよりも新しい、ＲＡＭメモリ１６内のあるデータを上書きすることなくＲＡＭメモリ１６に格納することはできない。これは、データ一貫性の問題を生じる。従って、ＲＡＭメモリ１６内のデータのページは、最初にＮＡＮＤメモリ１４に書き込む必要があり、その後で、異なる位置のＮＡＮＤメモリ１４からのデータをＲＡＭメモリ１６に読み込むことができる。一連の動作は以下の通りである。ホストデバイス２０によるアドレスバス２２からの信号のページアドレス部分をＣＡＭ６６からのページアドレス信号６６ａと比較して、アドレスバス２２からのアドレス信号が、カレントページアドレスのいずれかの中にあるかどうかを判断する。この比較はミスとなり、ヒット／ミス比較論理６８がＭＣＣ／ＥＣＣユニット７２に対して書き込みミス信号を送信し、ＭＣＣ／ＥＣＣユニット７２が書き込み一貫性サイクルを開始する。更に、ヒット／ミス比較論理６８は、ウェイト状態信号２６上の信号をアサートする。ＮＡＮＤメモリ１４からのデータがＲＡＭメモリ１６に読み込まれる場合には、データ一貫性の問題が生じるので、ＭＣＵ６４の制御下のＭＣＣ／ＥＣＣユニット７２は、最初にＲＡＭメモリ１６内のデータのページをＮＡＮＤメモリ１６に書き込む必要があると判断する。ＭＣＵユニット６４は、ＦＦＳ動作を実行し、ＲＡＭメモリ１６からのアドレスをＮＡＮＤメモリ１４のアドレスに変換する。
【００５６】
データのページ全体が、ＲＡＭメモリ１６から読み出され、ＭＵＸ８０を通ってＮＡＮＤメモリ１４に供給され、そこでＮＡＮＤメモリ１４に格納される。その後、ホストデバイス２０からのアドレスは、ＦＦＳ動作により物理ＮＡＮＤアドレスに変換される。次に、ＭＣＣ／ＥＣＣユニット７２は、ＦＦＳからの物理ＮＡＮＤアドレスを使用してＮＡＮＤメモリ１４に対して適切なアドレス信号及び制御信号を生成し、更に、ＲＡＭメモリ１６に対してインデックスアドレス及び制御信号を生成する。次に、ＮＡＮＤメモリ１４から読み出されたデータのページ全体は、ＮＡＮＤメモリ１４からＭＵＸ８０を通ってＲＡＭメモリ１６に転送され、そこでＭＣＣ／ＥＣＣユニット７２からのオフセットアドレス及びインデックスアドレスレジスタ６６ｂからのインデックスアドレスにより特定されたＲＡＭメモリ１６内の位置のページに書き込まれ、ＭＣＣ／ＥＣＣユニット７２により動作されて、誤り訂正チェックなどを通じてデータの完全性が確保される。次いで、ＣＡＭ６６のカレントページアドレスレジスタが更新され、カレント読み出しミスのアドレスを含むページアドレス６６ａ及び関連するインデックスアドレス６６ｂを追加する。ヒット／ミス比較論理６８は、ウェイト状態信号２６上に信号をディアサートする。更に、ＭＣＵは、ＭＵＸ８０をデフォルト位置に切り替える。ヒット／ミス比較論理６８は、インデックスアドレス６６ｂをＭＵＸ７０に送信し、そこでインデックスアドレスはアドレスバス２２からのオフセットアドレスと組み合わされて、ＲＡＭメモリ１６に書き込むアドレスを形成する。次いでデータは、ホストデバイス２０からデータバス２４にＭＵＸ８４を介し、更にＭＵＸ８０を介してＲＡＭメモリ１６内に書き込まれる。キャッシュフラッシュのない書き込みミスに関する前述の説明と同様に、ＲＡＭメモリ１６のデータはここではより新しくなっており、データの一貫性の問題が生じ、ホストデバイス２０がキャッシュフラッシュを開始するか、或いはメモリコントローラ１２がキャッシュフラッシュ動作を開始することにより解決することができる。
【００５７】
書き込みヒット、キャッシュフラッシュのない書き込みミス、キャッシュフラッシュのある書き込みミスの各々の場合では、この動作は、ホストデバイス２０の視点からＲＡＭデバイスに対する書き込みと同様であり、書き込みミスの場合には待ち時間を伴う。ホストデバイス２０は、アドレスの変換及び／又はデータの一貫性に対処する必要がない。
【００５８】
データの一貫性問題を解決するためにはＲＡＭメモリ１６からＮＡＮＤメモリ１４への書き込み動作を最初に行う必要があるので、キャッシュフラッシュのある読み出しミス又はキャッシュフラッシュのある書き込みミスの場合の待ち時間を更に短縮するために、以下のことを実施することができる。ＮＡＮＤメモリ１４に書き込まれることになるデータのページは、最初にＲＡＭメモリ１６からローカルＳＲＡＭ４６に書き込まれる。これは、直接ＮＡＮＤメモリ１４に書き込むよりも遙かに高速の動作である。これ以降、キャッシュフラッシュのある読み出しミス又はキャッシュフラッシュのある書き込みミスの動作は、キャッシュフラッシュのない読み出しミス又はキャッシュフラッシュのない書き込みミスの動作であるかのように続く。読み出しミス又は書き込みミスの動作が完了すると、ローカルＳＲＡＭ４６に格納されたデータは、メモリデバイス１０がアイドル状態であるか、又はアクセスがＮＯＲメモリのアクセス部分５０、もしくはＲＡＭメモリのアクセス部分５４、もしくは構成レジスタのアクセス部分５６での動作に限定されている場合、バックグラウンド動作でＮＡＮＤメモリ１４に書き込むことができる。
【００５９】
ＰＮＯＲ動作では、この動作は、ホストデバイス２０の視点からＲＡＭメモリに対して実行するのと同様であり、データは不揮発性であるが、ホストデバイス２０がセクタ又はブロック消去などのＮＯＲプロトコルコマンドを送出することがない点に留意されたい。しかしながら、メモリデバイス１０がＲＡＭメモリ１６及びＮＡＮＤメモリ１４を用いてＮＯＲ動作をエミュレート可能であることはまた、本発明の範囲内である。この場合、ＮＯＲメモリのアクセス部分５０に対するメモリ空間のマッピングは、ＮＯＲメモリ４４への正確なマッピングよりも拡大することになる。ＮＯＲメモリのアクセス部分５０は、ＲＡＭメモリ１６の一部にマップされ、ＲＡＭメモリ１６はＮＡＮＤメモリ１４に静的にマップすることができるので、アクセス中の待ち時間の問題は存在しない。ＮＡＮＤメモリ１４からのデータは、電源投入時にはＲＡＭ１６にロードされ、ＮＯＲメモリのアクセス部分５０への読み出し／書き込みは、ＲＡＭメモリ１６からの読み出し又はＲＡＭメモリ１６への書き込みとなる。他の唯一の変更は、メモリコントローラ１２がＮＯＲプロトコルコマンドに応答することである。上述のように、かかるＮＯＲプロトコルコマンドが、ホストデバイス２０により送出されると、これらは一連の固有データパターンとして供給される。データは、データバス２４上に供給され、ＭＵＸ８４を介し、ＭＵＸ８０を通る。アドレスバス上に供給されたアドレスは、この動作がＲＡＭメモリ１６によりエミュレートされたＮＯＲメモリアクセス部分５０におけるものとなることを示すので、ＭＵＸ７４は、ＭＣＵ６４がデータパターンを受信できるように切り替えられる。そのデータパターンが、ＮＯＲコマンドとしてデコードされると、例えばそのコマンドが消去である場合には、ＭＣＵはそのＮＯＲコマンドでＮＡＮＤメモリ１４を操作する。勿論、ＲＡＭメモリ１６は、揮発性メモリであるため、「消去」される必要はない。従って、ＮＯＲプロトコルコマンドの実行は、ＮＯＲプロトコルコマンドを実行する真のＮＯＲメモリ４４よりもＮＯＲメモリ４４をエミュレートするＲＡＭメモリ１６によってより高速の操作となる。その上、このエミュレーションは、ＮＯＲプロトコルコマンドのフルセットをエミュレートする必要はない。代わりに、コントローラ１２は、ＮＯＲプロトコルコマンドの一部のセットをエミュレートすることができる。従って、本明細書で使用する用語「ＮＯＲプロトコルコマンド」とは、例えばＩｎｔｅｌ又はＡＭＤにより公表されているＮＯＲプロトコルコマンドのフルセットからの１つ又は複数のコマンドを意味する。
【００６０】
ＲＡＭメモリの動作
ＲＡＭメモリ１６の読み出し動作では、ホストデバイス２０は、メモリ空間のＲＡＭメモリアクセス部分５４内にあるアドレス信号をアドレスバス２２でメモリデバイス１０に送信する。更に、ホストデバイス２０によって適切な制御信号が、コントロールバス３２でメモリデバイス１０に送信される。アドレス信号は、ＲＡＭメモリアクセス部分５４にあるので、ヒット／ミス比較論理６８がＭＵＸ７０を起動し、アドレスバス２２及びコントロールバス３２からのアドレス信号／制御信号をＲＡＭメモリ１６に供給することができるようにする。しかしながら、ウェイト状態信号２６はアサートされない。更に、ホストデバイス２０からのアドレスはデコードされ、コントロールバス３２からの制御信号と共に、ＲＡＭメモリ１６に供給されるアドレス信号を形成し、そこで、供給されるアドレスからのデータが読み出される。次いで、データは、データバスに沿ってＭＵＸ８０及びＭＵＸ８４に供給され、データバス２４に沿ってホストデバイス２０に出されることで、読み出しサイクルを完了する。
【００６１】
ＲＡＭメモリ１６の書き込み動作では、ホストデバイス２０は、メモリ空間のＲＡＭメモリアクセス部分５４内にあるアドレス信号をアドレスバス２２でメモリデバイス１０に送信する。更に、ホストデバイス２０によって適切な制御信号が、コントロールバス３２でメモリデバイス１０に送信される。アドレス信号は、ＲＡＭメモリアクセス部分５４にあるので、ヒット／ミス比較論理６８がＭＵＸ７０を起動し、アドレスバス２２及びコントロールバス３２からのアドレス信号／制御信号をＲＡＭメモリ１６に供給することを可能にする。しかしながら、ウェイト状態信号２６はアサートされない。更に、ホストデバイス２０からのアドレスがデコードされ、コントロールバス３２からの制御信号と共に、ＲＡＭメモリ１６に供給されるアドレス信号を形成し、ここで、データバス２４からのデータは、供給されるアドレスでＲＡＭメモリ１６に書き込まれる。
【００６２】
ホストデバイス２０の観点からすると、ＲＡＭメモリアクセス部分における読み出し又は書き込みの動作は、待ち時間なしでＲＡＭデバイスにアクセスするのと同様である。
【００６３】
構成レジスタの動作
構成レジスタの動作では、ホストデバイス２０は、メモリ空間の構成レジスタアクセス部分５６内にあるアドレス信号をアドレスバス２２でメモリデバイス１０に送信する。更に、ホストデバイス２０によって、適切な制御信号がコントロールバス３２でメモリデバイス１０に送信される。次いでデータが不揮発性レジスタ６０に書き込まれる。
【００６４】
ＮＡＮＤメモリの動作
ＮＡＮＤメモリ１４の読み出し動作では、ホストデバイス２０は、メモリ空間のマスストレージアクセスセクション５８、すなわちＡＴＡメモリアクセス部分５８内にあるアドレス信号をアドレスバス２２でメモリデバイス１０に送信する。更に、ホストデバイス２０によって、適切な制御信号がコントロールバス３２でメモリデバイス１０に送信される。アドレス信号は、ＰＮＯＲメモリアクセス部分５２以外の空間にあるので、ヒット／ミス比較論理６８は起動されず、ウェイト状態信号２６はアサートされない。ホストデバイス２０は、ＡＴＡプロトコルに従って、ＡＴＡ読み出し／書き込みコマンドに対してタスクファイルレジスタ７９に読み出し／書き込みをする。タスクファイルレジスタ７９は、コマンド、ステータス、シリンダ、ヘッド、セクタなどを格納するレジスタを含む。ＭＣＵ６４の制御下にあるＭＣＣ／ＥＣＣユニット７２は、ホスト論理アドレスをＮＡＮＤ物理アドレスに変換するフラッシュファイルシステムを操作し、欠陥ＮＡＮＤセクタを使用することを回避する能力を備える。米国特許第６，４２７，１８６号、第６，４０５，３２３号、第６，１４１，２５１号、及び第５，９８２，６６５号を参照し、これらの開示は、引用により全体が本明細書に組み込まれる。ホストデバイス２０からの各論理アドレスは、Ｖｐａｇｅと呼ばれるテーブルにエントリを有する。エントリの内容は、論理アドレスのデータが格納されている物理アドレスを指す。
【００６５】
あるデータのページをＮＡＮＤメモリ１４から読み出すために、アドレス信号及び制御信号がＮＡＮＤメモリ１４に供給される。ホストデバイス２０は、ＡＴＡプロトコルに従って、タスクファイルレジスタ７９がコマンド及び論理アドレスを格納する。各セクタサイズは５１２バイトである。ホストデバイス２０は、メモリ空間のタスクファイルレジスタのアクセス部分５８にあるステータスレジスタ７９を読み出すことにより、メモリ１０の準備状況を調べる。ホストデバイス２０は、メモリ空間５８内のコマンドレジスタ７９に「ｒｅａｄ」コマンドを書き込む。ＭＣＵ６４は、論理アドレスから物理アドレスへのＦＦＳ変換を行い、ＭＣＵ６４の制御下にあるＭＣＣ／ＥＣＣユニット７２が、ＮＡＮＤメモリ１４からデータを読み出し、データのページをバッファ８１に転送する。データのページ全体がデータレジスタ８１に格納され、ＭＣＣ／ＥＣＣユニット７２により操作されて、誤り訂正チェックなどを介してデータの完全性が確保された後、データはデータバス２４に沿ってメモリコントローラ１２から読み出される。
【００６６】
ＮＡＮＤメモリ１４への書き込み動作は、ＮＡＮＤメモリ１４からの読み出しの動作と同様である。ホストデバイス２０は、タスクメモリ空間５８部分にあるステータスレジスタ７９を読み出すことにより、メモリ１０の準備状況を調べる。ホストデバイス２０は、１ページのデータをデータレジスタ８１に書き込み、次に論理アドレスと共に、「ｗｒｉｔｅ」コマンドをコマンドレジスタ７９に書き込む。その後、ＦＦＳを使用するＭＣＵ６４が、論理アドレスを物理アドレスに変換し、ＭＣＵ６４の制御下にあるＭＣＣ／ＥＣＣユニット７２が、その１ページのデータをＡＴＡバッファ８１からＮＡＮＤメモリ１４へ書き込む。
【００６７】
ＦＦＳは、更新されることになるページの物理アドレスを特定することによってデータのページを更新する。ＦＦＳは、消去されたセクタを「バッファセクタ」として探索し、又は消去されたセクタがない場合には、あるセクタに対し消去動作を最初に行う。次にＦＦＳは、変更されておらず、且つプログラムされていない古いデータをバッファセクタに読み出す。次いでＦＦＳは、更新されたページデータをプログラムする。次にＦＦＳは、次の要求を待機する。次のページが同じ消去セクタ上にある場合、ＦＦＳは更新動作を続ける。次のページが、転送中の消去セクタ以外である場合、変更されていないデータの残りは、バッファセクタにコピーされることになる。マッピングテーブルのエントリは、バッファセクタの物理アドレスに変更される。次いで、新しいページの更新動作が開始される。
【００６８】
図４を参照すると、メモリデバイス１１０の第２の実施形態が示されている。このメモリデバイス１１０は、図１に示したメモリデバイス１０と同様である。従って、同じ要素は同じ参照符号で示されている。メモリデバイス１１０とメモリデバイス１０との唯一の違いは、メモリデバイス１００では、第２のＲＡＭバス４０が、ＲＡＭメモリ１００をメモリコントローラ１２にではなく、直接ホストデバイス２０に接続することである。従って、メモリデバイス１１０では、ホストデバイスは、ＲＡＭメモリ１００に直接アクセスし制御する。
【００６９】
メモリデバイス１０の実施形態とメモリデバイス１１０の実施形態とのこの相違点は、図５に示したメモリマッピングに反映されている。メモリデバイス１０と同様に、メモリデバイス１１０のメモリマッピングは、ＮＯＲメモリ４４にマップされるＮＯＲメモリアクセス部分５０と、メモリデバイス１１０のＲＡＭメモリ１６にマップされ、その後ＮＡＮＤメモリ１４にマップされるＰＮＯＲメモリアクセス部分５２と、ＲＡＭメモリ１６にマップされるＲＡＭメモリアクセス部分５４とを含む。しかしながら、第２のＲＡＭバス４０を介してホストデバイス２０が直接アクセス可能なＲＡＭメモリ１００では、メモリデバイス１１０のメモリマッピングはまた、ＲＡＭメモリ１００に直接マップする別のＲＡＭメモリアクセス部分５５を含む。従って、メモリデバイス１１０はまた、メモリデバイス１０で説明したものと同様に、構成レジスタアクセス部分５６と、最後に、ＡＴＡメモリアクセス部分５８とを含む。
【００７０】
メモリコントローラ１２がホストデバイス２０と、更にＮＡＮＤメモリ１４とインターフェースをとると、メモリデバイス１０は、従来技術のメモリデバイスよりも強い保護が得られる。詳細には、メモリコントローラは、デジタル権利管理に関することと同様、ＮＡＮＤメモリ１４に格納されたあるデータへのアクセスを制限することができる。更にメモリコントローラ１２は、機密データを保護するために、ＮＡＮＤメモリ１４に格納されたデータを暗号化することができる。最後に、メモリコントローラ１２は、ＮＡＮＤメモリ１４のある部分のデータを誤って消去することからの保護を提供することができる。最後に、プログラムがＮＯＲメモリ６２内に格納されていることで、メモリコントローラ１２は、ホストデバイス２０からの開始のコマンドを必要としない点において自動作動デバイスである。
【００７１】
本発明には多くの態様がある。まず、メモリデバイス１０又は１１０は、汎用メモリデバイスである。メモリデバイスは、ＲＡＭアドレス信号を受信する第１のアドレスバスと、ＲＡＭデータ信号を受信する第１のデータバスと、ＲＡＭ制御信号を受信する第１のコントロールバスとを有するメモリコントローラを有する。メモリコントローラは、組み込みのＮＯＲメモリを有し、更に、揮発性ＲＡＭメモリとインターフェースをとる第２のアドレスバスと、揮発性ＲＡＭメモリとインターフェースをとる第２のデータバスと、揮発性ＲＡＭメモリとインターフェースをとる第２のコントロールバスとを有する。このコントローラは更に、不揮発性ＮＡＮＤメモリとインターフェースをとる第３のアドレス／データバスと、不揮発性ＮＡＮＤメモリとインターフェースをとる第３のコントロールバスとを有する。このメモリデバイスは更に、上記第２のアドレスバスと、上記第２のデータバスと、上記第２のコントロールバスとに接続されたＲＡＭメモリを有する。このメモリデバイスは更に、第３のアドレス／データバスと第３のコントロールバスとに接続された不揮発性ＮＡＮＤメモリを有する。このコントローラは、第１のアドレスバスに供給されるアドレス信号に応答することによりＮＯＲメモリが、第１のアドレスバスに供給される第１のアドレスレンジに応答し、これによりＲＡＭメモリが、第１のアドレスバスに供給される第２のアドレスレンジに応答し、更にこれによりＮＡＮＤメモリが、第１のアドレスバスに供給される第３のアドレスレンジに応答する。
【００７２】
本発明の更に別の態様では、メモリデバイスは、汎用メモリデバイスであり、ここでユーザがメモリ空間の割り当てを定義することができる。メモリデバイスは、ＲＡＭアドレス信号を受信する第１のアドレスバスと、ＲＡＭデータ信号を受信する第１のデータバスと、ＲＡＭ制御信号を受信する第１のコントロールバスとを有するメモリコントローラを有する。メモリコントローラは、組み込みのＮＯＲメモリを有し、更に、揮発性ＲＡＭメモリとインターフェースをとる第２のアドレスバスと、揮発性ＲＡＭメモリとインターフェースをとる第２のデータバスと、揮発性ＲＡＭメモリとインターフェースをとる第２のコントロールバスとを有する。このコントローラは更に、不揮発性ＮＡＮＤメモリとインターフェースをとる第３のアドレス／データバスと、不揮発性ＮＡＮＤメモリとインターフェースをとる第３のコントロールバスとを有する。このメモリデバイスは更に、上記第２のアドレスバスと、上記第２のデータバスと、上記第２のコントロールバスとに接続されたＲＡＭメモリを有する。このメモリデバイスは更に、第３のアドレス／データバスと第３のコントロールバスとに接続された不揮発性ＮＡＮＤメモリを有する。このメモリデバイスは、ユーザ定義のメモリ空間の割り当てに応答し、第１のアドレスバスに供給される第１のアドレスレンジでは、メモリデバイスは、ＮＯＲプロトコルコマンドに応答することを含んで、ＮＯＲメモリの動作に応答し、第１のアドレスバスに供給される第２のアドレスレンジでは、メモリデバイスはＲＡＭ動作に応答し、アドレスバスに供給される第３のアドレスレンジでは、メモリデバイスはＡＴＡディスクドライブ装置として動作するＮＡＮＤメモリの動作に応答し、ここで、第１、第２及び第３のアドレスレンジは全てユーザが定義することができる。
【００７３】
本発明の更に別の態様では、メモリデバイスは、ＲＡＭアドレス信号を受信する第１のアドレスバスと、ＲＡＭデータ信号を受信する第１のデータバスと、ＲＡＭ制御信号を受信する第１のコントロールバスとを有するメモリコントローラを有する。メモリコントローラは更に、揮発性ＲＡＭメモリとインターフェースをとる第２のアドレスバスと、揮発性ＲＡＭメモリとインターフェースをとる第２のデータバスと、揮発性ＲＡＭメモリとインターフェースをとる第２のコントロールバスとを有する。このコントローラは更に、不揮発性ＮＡＮＤメモリとインターフェースをとる第３のアドレス／データバスと、不揮発性ＮＡＮＤメモリとインターフェースをとる第３のコントロールバスとを有する。このメモリデバイスは更に、上記第２のアドレスバスと、上記第２のデータバスと、上記第２のコントロールバスとに接続されたＲＡＭメモリを有する。このメモリデバイスは更に、第３のアドレス／データバスと第３のコントロールバスとに接続された不揮発性ＮＡＮＤメモリを有する。コントローラは更に、第１のアドレスバス上の第１のアドレスを受信して、第１のアドレスを不揮発性ＮＡＮＤメモリ内の第２のアドレスにマップし、揮発性ＲＡＭメモリが不揮発性ＮＡＮＤメモリ内の第２のアドレスとやりとりするデータ用のキャッシュとして役立つ手段と、キャッシュとして揮発性ＲＡＭメモリに格納されたデータと不揮発性ＮＡＮＤメモリの第２のアドレスにあるデータとの間のデータの一貫性を保持する手段とを有する。
【００７４】
本発明の更に別の態様では、メモリデバイスは、ＮＯＲアドレス信号を受信する第１のアドレスバスと、ＮＯＲデータ信号及びデータプロトコルコマンドを受信する第１のデータバスと、ＮＯＲ制御信号を受信する第１のコントロールバスとを有するメモリコントローラを有する。メモリコントローラは更に、揮発性ＲＡＭメモリとインターフェースをとる第２のアドレスバスと、揮発性ＲＡＭメモリとインターフェースをとる第２のデータバスと、揮発性ＲＡＭメモリとインターフェースをとる第２のコントロールバスとを有する。このコントローラは更に、不揮発性ＮＡＮＤメモリとインターフェースをとる第３のアドレス／データバスと、不揮発性ＮＡＮＤメモリとインターフェースをとる第３のコントロールバスとを有する。このメモリデバイスは更に、上記第２のアドレスバスと、上記第２のデータバスと、上記第２のコントロールバスとに接続されたＲＡＭメモリを有する。このメモリデバイスは更に、第３のアドレス／データバスと第３のコントロールバスとに接続された不揮発性ＮＡＮＤメモリを有する。このコントローラは更に、ＲＡＭメモリを作動して、ＮＯＲプロトコルコマンドを含むＮＯＲメモリデバイスの動作をエミュレートする。
【００７５】
本発明のメモリ１０又は１１０の用途の１つは、図６に示されるＰＣシステム３００におけるものである。メモリ１０又は１１０は以下のモードで機能することができる。
【００７６】
第１に、メモリ１０又は１１０は、ＤＲＡＭ３４０を置き換えることができる。更に、メモリ１０又は１１０はまた不揮発性部分を有するので、そのＮＡＮＤメモリ１４内に特定のソフトウェアを格納することができ、ＰＣ３００の起動時にソフトウェアは、ＨＤＤ３２６から読出されることなくメモリ１０又は１１０のコントローラ１２を介してＮＡＮＤフラッシュメモリ１４から直ぐに読み出され、プロセッサ３１４が実行することができるようになる。加えて、オペレーティングシステムによってモニタされるように、ユーザの使用頻度の高い特定のデータ又はプログラムはまた、ＨＤＤ３２６から先取りされ、メモリ１０又は１１０のＮＡＮＤ１４又はＮＯＲメモリ４４部分に格納することができるので、特定のユーザが知覚する動作中の時間が節約される。最後に、メモリ１０又は１１０は、ＨＤＤ３２６からのデータ／プログラム用のディスクキャッシュとして用いることができる。
【００７７】
第２に、メモリ１０又は１１０は、ＢＩＯＳ３２０を置き換えることができる。メモリ１０又は１１０は、ＮＯＲの様に動作可能であるのでＢＩＯＳ３２０を置き換えることができ、プロセッサ３１４がＰＣ３００を始動するのに必要なスタートアップコードを格納するのに使用ことができる。ＢＩＯＳ３２０からＳｏｕｔｈｂｒｉｄｇｅ３１８に対するインターフェースは、シリアル又はパラレルのいずれであってもよい。加えて、メモリ１０又は１１０は、少なくとも２つの部分、すなわち１つがＢＩＯＳコードを格納する部分で、他方がオペレーティングシステム用のコードを格納する部分にパーティションで区切ることができる。この場合において、オペレーティングコードの一部はＨＤＤ３２６上に格納されるのではなく、メモリ１０又は１１０の不揮発性メモリ部分にあるので、ＰＣ３００のスタートアップをより迅速にすることができる。コントローラ１２は、どちらか一方を許可するためにセキュリティアクセスを実現することができる。このモードでの操作時には、メモリ１０又は１１０はＲＡＭ１６を全く含む必要がない。メモリ１０又は１１０は、単に少量のＮＯＲメモリ４４及びＮＡＮＤフラッシュメモリ１４を備えたコントローラ１２であり、ＲＡＭ１６を全く含む必要がなく、又は擬似ＮＯＲにおいて動作することができる。更に、ＢＩＯＳ３２０命令の全てがＮＯＲメモリ４４内に格納する必要がある訳ではない。ＢＩＯＳ３２０の命令の一部は、ＮＯＲメモリ４４に格納することができ、他の部分はＮＡＮＤフラッシュメモリ１４に格納される。
【００７８】
第３に、メモリ１０又は１１０は、ＢＩＯＳ３２０を置き換えると共に、バス３５０を２つのバス、すなわち図７に示すように、Ｓｏｕｔｈｂｒｉｄｇｅ３１８からＢＩＯＳ３２０までのパラレル又はＳＰＩ（シリアル）である第１のバス３５１と、Ｓｏｕｔｈｂｒｉｄｇｅ３１８からＢＩＯＳ３２０までの業界標準規格のＡＴＡバスである第２のバス３５２とに分割することができる。このモードは、上述の第２のモードの変形形態であり、メモリ１０又は１１０はＲＡＭ１６を全く含む必要がない。ＢＩＯＳ命令の記憶及び読出しの機能に加え、メモリ１０又は１１０はまたＡＴＡバスを有するので、アプリケーションにおける「ライト」ＨＤＤとして用いることができ、ここではＰＣシステム３００は、ＨＤＤ３２６を必要とせずにシンクライアントとして使用される。従って、メモリ１０又は１１０は、ＢＩＯＳ命令の記憶機能と同時にＮＡＮＤフラッシュメモリ１４におけるオペレーティングシステム又はユーザデータの記憶機能として動作することができる。すなわち、本明細書で使用されるバス３５０は、限定ではないが、ＰＣＩ、ＰＣＩエクスプレス、ＵＳＢ、ＡＴＡなどを含めて、あらゆるタイプのバス又はバスのグループを意味することができる。
【００７９】
第４に、メモリ１０又は１１０は、ＢＩＯＳ３２０を置き換えると共に、図７Ｂに示すように、メモリ１０又は１１０がＳｏｕｔｈｂｒｉｄｇｅ３１８からＨＤＤ３２６又はＵＳＢポート３２７までの信号の間に置かれるように経路変更されたバスを有することができる。メモリ１０又は１１０はコントローラ１２を有するので、動作可能な３つのモードがある。第１に、メモリは完全にトランスペアレントにすることができ、すなわち、あたかもメモリ１０又は１１０が存在しないかのようにされ、バス３５０上の通信がＳｏｕｔｈｂｒｉｄｇｅ３１８からＨＤＤ３２６又はＵＳＢポート３２７に向けられる。第２に、メモリ１０又は１１０は、Ｓｏｕｔｈｂｒｉｄｇｅ３１８とＨＤＤ３２６との間のコマンド又はデータを表す信号を「インテリジェント」にリスンし、このようなあらゆるコマンド又はデータを「捕捉」又は「取り込む」ことができる。Ｓｏｕｔｈｂｒｉｄｇｅ３１８によって要求されるデータがメモリデバイス１０又は１１０内に格納される場合、ＨＤＤ３２６が応答することなく該メモリ１０又は１１０がこれに応答することができる。従って、メモリ１０又は１１０がＨＤＤ３２６のキャッシュとして機能することで性能が改善される。この動作モードは、どのような特定のドライバをも必要としない点に留意されたい。最後に、オフモードのＰＣ３００では、ＭＣＵ１２及びメモリデバイス１０又は１１０はＨＤＤ３２６に対するホストとして機能し、その動作を制御することができる。この能力は、以下でより詳細に説明する。この場合もやはり、このモードでの動作時には、メモリ１０又は１１０はどのようなＲＡＭ１６も必要ではない。メモリ１０又は１１０は、単に、少量のＮＯＲメモリ４４及びＮＡＮＤフラッシュメモリ１４とすることができる。第３の動作モードと同様に、Ｓｏｕｔｈｂｒｉｄｇｅ３１８をＢＩＯＳ３２０に接続するバス３５０は、ＮＯＲメモリ４４にアクセスするためのパラレル又はＳＰＩバス３５１、及びＮＡＮＤフラッシュメモリ１４にアクセスするための業界標準規格ＡＴＡバス３５２などのバスのグループを含むことができる。ＮＯＲフラッシュメモリ４４は、ＢＩＯＳ３２０へのアクセスがパラレル又はＳＰＩバス３５１に沿ったモノである場合、上述のようにＢＩＯＳ３２０用の命令を格納するよう機能することができる。加えて、ＮＯＲフラッシュメモリ４４は、ＢＩＯＳ３２０用の命令の残りを格納するのに使用され、ＭＣＵ１２に読み出し、パラレル又はＳＰＩバス３５１に沿って供給することができる。加えて、Ｓｏｕｔｈｂｒｉｄｇｅ３１８がＡＴＡバス３５２に沿ってＨＤＤ３２６からデータを読出そうとする場合、ＮＡＮＤフラッシュメモリ１４を用いて、ハードディスクドライブ３２６からのキャッシュデータを格納することができる。図７Ｂに示す実施例の変形形態が図７Ｃで示されており、ここではメモリデバイス１０又は１１０はまた、ＰＣＩバス、ＰＣＩエクスプレスバス、又はＵＳＢバスを介してＮｏｒｔｈｂｒｉｄｇｅチップ３１６に接続される。
【００８０】
第５に、メモリデバイス１０又は１１０のＭＣＵ１２はプロセッサであるので、上述の機能以外の他の機能を果たすようにプログラムすることができる。例えば、ＭＣＵ１２は、メモリデバイス１０又は１１０がＮＡＮＤメモリ１４に格納された曲／ビデオと共にＭＰ３プレーヤ又はビデオ再生装置として機能することができるようにプログラムすることができる。メモリコントローラ１２のＭＣＵ６４を動作させるのに必要なプログラムコードは、ＮＯＲメモリ６２内に格納することができる。ＭＣＵ１２が十分には堅牢ではなく、ＭＰ３／ビデオ機能を実行する専用のハードウェアを有することが望ましい場合には、専用ＤＳＰプロセッサ又は専用のＭＰ３プレーヤプロセッサをメモリデバイス１０又は１１０に一体化することができる。従って、この機能を有すると、ＰＣ３００の有無に関わらず、メモリデバイス１０又は１１０はＮＡＮＤメモリ１４に格納された曲又はビデオを再生することができる。
【００８１】
第６に、メモリデバイス１０又は１１０がＭＰ３又はビデオ再生用にプログラムされたＭＣＵ１２を有し、又はメモリデバイス１０又は１１０がＭＰ３又はビデオ再生用専用プロセッサを有すると、ＰＣ３００がオフ或いは休止状態にある場合でも、メモリデバイス１０又は１１０は、ＨＤＤ３２６上に格納された追加のオーディオ／ビデオデータにアクセスすることができる。
【００８２】
上記の第６のモードの機能に加えて、ＰＣ３００が追加のディスプレイ、例えば小さな補助ディスプレイを有する場合、ＰＣ３００がオフ又は休止モードでは、メモリデバイス１０又は１１０は、ＨＤＤ３２６上に格納されたオーディオ／ビデオデータを読み出し、これを主ディスプレイ３３２又は補助ディスプレイ（図示せず）に表示することができる。この場合も同様に、この動作モードでは、電源を必要とするＰＣ３００の唯一の「アクティブ」な構成要素には、メモリデバイス１０又は１１０、ＨＤＤ３２６、及びディスプレイ３３２又は補助ディスプレイ（図示せず）とがある。従って、プロセッサ３１４がオフモード又は休止モードである場合にメモリデバイス１０又は１１０が「オン」である場合にだけ「アクティブ」である小さな補助ディスプレイを有すると、省電力が得られる。
【００８３】
最後に、第７のモードでは、バス３５０がまた、ＵＳＢポート３２７などの外部ポートに接続されていると、メモリデバイス１０又は１１０は、プロセッサ３１４がオンであるとＵＳＢハブ又はデバイスを通るＵＳＢパスとして機能することができる。しかしながら、プロセッサ３１４がオフであると、メモリデバイス１０又は１１０は、ＵＳＢホストとして機能し、すなわち、メモリデバイス１０又は１１０は、ＵＳＢポート３２７に接続される全てのデバイスを制御し、及び電力を供給する。ＵＳＢバスは、本発明が対象とするバスタイプの単一の実施例である点に留意されたい。上述のように、バス３５０は、限定ではないが、ＰＣＩ、ＰＣＩエクスプレス、ＵＳＢ、ＡＴＡなどを含むあらゆるタイプのバスとすることができる。ＵＳＢポート３２７に接続することができるデバイスの中でも、ＨＤＤ３２６へのファイルイメージバックアップを伴うシステム３００を提供するカードリーダ、追加のストレージ又はバックアップ用の外部ＵＳＢストレージデバイス、及びＢｌｏｏｔｏｏｔｈ通信デバイスなどの追加デバイスを含む。すなわち、このもーどでは、ＰＣ３００全体に給電することなくＨＤＤ３２６からファイルを「複写」することが可能となる。
【図面の簡単な説明】
【００８４】
【図１】ホストシステム又はユーザに接続された、メモリコントローラを含むメモリデバイスの第１の実施形態のブロックレベル図である。
【図２】図１のメモリデバイスの外部にあるホスト又はユーザによって参照されるアドレス空間の、図１に示すメモリデバイスの第１の実施形態におけるＮＯＲメモリ、ＲＡＭメモリ、及びＮＡＮＤメモリへのマッピングを示すメモリマッピング図である。
【図３】図１のメモリデバイスに使用されるコントローラの詳細なブロックレベルの回路図である。
【図４】ホストシステム又はユーザに接続された、メモリコントローラを含むメモリデバイスの第２の実施形態のブロックレベル図である。
【図５】図４のメモリデバイスの外部にある単一のホスト又はユーザによって参照されるアドレス空間の、図４に示すメモリデバイスの第２の実施形態のＮＯＲメモリ、ＲＡＭメモリ、及びＮＡＮＤメモリへのマッピングを示すメモリマッピング図である。
【図６】先行技術の「ＩＢＭ  ＰＣ」アーキテクチャによるコンピュータシステムのブロックレベル図である。
【図７Ａ】図６に示した「ＩＢＭ  ＰＣ」の構成要素を備えた第１又は第２の実施形態によるメモリデバイスの接続及び利用を示すブロックレベル図である。
【図７Ｂ】図６に示した「ＩＢＭ  ＰＣ」の構成要素を備えた第１又は第２の実施形態によるメモリデバイスの接続及び利用を示すブロックレベル図である。
【図７Ｃ】図６に示した「ＩＢＭ  ＰＣ」の構成要素を備えた第１又は第２の実施形態によるメモリデバイスの接続及び利用を示すブロックレベル図である。
【符号の説明】
【００８５】
１０  メモリデバイス
１２  メモリコントローラ
１４  ＮＡＮＤメモリ
１６  ＲＡＭメモリ
２０  ホストデバイス
【図１】
2007183961.tif 000003
【図２】
2007183961.tif 000004
【図３】
2007183961.tif 000005
【図４】
2007183961.tif 000006
【図５】
2007183961.tif 000007
【図６】
2007183961.tif 000008
【図７Ａ】
2007183961.tif 000009
【図７Ｂ】
2007183961.tif 000010
【図７Ｃ】
2007183961.tif 000011
【外国語明細書】
2007183961.tif 000012
2007183961.tif 000013
2007183961.tif 000014
2007183961.tif 000015
2007183961.tif 000016
2007183961.tif 000017
2007183961.tif 000018
2007183961.tif 000019
2007183961.tif 000020
2007183961.tif 000021
2007183961.tif 000022
2007183961.tif 000023
2007183961.tif 000024
2007183961.tif 000025
2007183961.tif 000026
2007183961.tif 000027
2007183961.tif 000028
2007183961.tif 000029
2007183961.tif 000030
2007183961.tif 000031
2007183961.tif 000032
2007183961.tif 000033
2007183961.tif 000034
2007183961.tif 000035
2007183961.tif 000036
2007183961.tif 000037
2007183961.tif 000038
2007183961.tif 000039
2007183961.tif 000040
2007183961.tif 000041
2007183961.tif 000042
2007183961.tif 000043
2007183961.tif 000044
2007183961.tif 000045
2007183961.tif 000046
2007183961.tif 000047
2007183961.tif 000048
2007183961.tif 000049
2007183961.tif 000050
2007183961.tif 000051
2007183961.tif 000052
2007183961.tif 000053
2007183961.tif 000054
2007183961.tif 000055
2007183961.tif 000056
2007183961.tif 000057