JP2007183962A - 一体型メモリ及びコントローラ - Google Patents

一体型メモリ及びコントローラ Download PDF

Info

Publication number
JP2007183962A
JP2007183962A JP2006357457A JP2006357457A JP2007183962A JP 2007183962 A JP2007183962 A JP 2007183962A JP 2006357457 A JP2006357457 A JP 2006357457A JP 2006357457 A JP2006357457 A JP 2006357457A JP 2007183962 A JP2007183962 A JP 2007183962A
Authority
JP
Japan
Prior art keywords
memory
bus
address
ram
nand
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2006357457A
Other languages
English (en)
Inventor
Fong-Long Lin
ロン リン フォン
Bing Yeh
イェー ビン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Silicon Storage Technology Inc
Original Assignee
Silicon Storage Technology Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Silicon Storage Technology Inc filed Critical Silicon Storage Technology Inc
Publication of JP2007183962A publication Critical patent/JP2007183962A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1694Configuration of memory controller to different memory types
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Memory System (AREA)

Abstract

【課題】メモリアクセス機能を付加する能力を備えたメモリデバイスを提供する。
【解決手段】メモリデバイスは、コントローラを有する。コントローラは、RAMアドレス信号を受信する第1のアドレスバスと、RAMデータ信号を受信する第1のデータバスと、RAM制御信号を受信する第1のコントロールバスとを有する。コントローラは更に、揮発性RAMメモリとインターフェースをとる第2のアドレスバスと、揮発性RAMメモリとインターフェースをとる第2のデータバスと、揮発性RAMメモリとインターフェースをとる第2のコントロールバスとを有する。コントローラは更に、不揮発性NANDメモリとインターフェースをとる第3のアドレス/データバスと、不揮発性NANDメモリとインターフェースをとる第3のコントロールバスとを有する。メモリデバイスは更に、上記第2のアドレスバスと、上記第2のデータバスと、上記第2のコントロールバスとに接続されたRAMメモリを有する。
【選択図】図1

Description

本出願は、2005年12月28日に出願された米国仮出願60/754,937の優先権を主張し、本開示は引用により全体が本明細書に組み込まれる。
本発明は、メモリデバイスに関し、より詳細には、従来のランダムなアドレス形式でアドレス及びデータを受信し、そのデータ/アドレスを、NORメモリ、RAMメモリ、NANDメモリ用のキャッシュとして機能することで擬似NOR(PNOR)動作をエミュレートするRAMメモリ、及びATA規格の不揮発性NANDメモリのいずれかにマップする能力を有するメモリデバイスに関する。アドレス及びデータは、単一のバス又は複数のバスを介して1つ又は複数のプロセッサから受信される。本発明はまた、かかるメモリデバイスに使用されるブート可能内蔵NORメモリを備えたメモリコントローラに関する。
SRAM、又はDRAM(或いはDRAM)、又はPSRAM(以下まとめてRAMと呼ぶ)のような揮発性のランダムアクセスメモリは、当技術分野では公知である。典型的には、これらのタイプの揮発性メモリは、アドレスバス上のアドレス信号、データバス上のデータ信号、及びコントロールバス上の制御信号を受信する。
パラレルNOR型不揮発性メモリもまた当技術分野で公知である。典型的には、これは、RAMに供給されるものと同じタイプのアドレスバス上のアドレス信号、RAMに供給されるものと同じタイプのデータバス上のデータ信号、及びRAMに供給されるものと同じタイプのコントロールバス上の制御信号を受信する。RAMと同様に、NORメモリはランダムアクセスメモリデバイスである。しかしながら、NORメモリは、RAMには必要ではないSECTOR ERASE又はBLOCK ERASEのような一定の動作を必要とするため、コマンドの性質を有する動作が、一連の一定のデータパターンとしてNORデバイスに与えられる。これは、NORプロトコルコマンドとして知られている。先行技術では、2つのタイプのNORプロトコルコマンドがあり、1)Intelによって最初に公表されたプロトコルコマンドセットと互換性のあるプロトコルコマンド、及び2)AMDによって最初に公表されたプロトコルコマンドセットと互換性のあるプロトコルコマンドである。いずれの場合も、NORメモリは、RAMがインターフェースをとる同じアドレスバス、データバス、及びコントロールバスと電気的にインターフェースをとる。更に、従来のNORメモリデバイスはまた、SPI、LPC、又はファームウェアハブのような公知の従来の形式でデータ信号、アドレス信号、及び制御信号をシリアルに供給することもできる。
NAND型不揮発性メモリもまた、当技術分野で公知である。しかしながら、パラレルNORデバイスと違い、NANDメモリは、ブロック内のセルが順次形式で格納されるランダムアクセス可能なブロックにデータを格納する。更に、アドレス信号及びデータ信号は、同じバス上で、ただし多重化方式で供給される。NANDメモリは、NORデバイスよりも高密度であるので、データの各ビットの格納コストが削減される利点を有する。
NANDデバイスはデータのビット当たりのコストが低いので、NANDデバイスを利用してNORデバイスの動作をエミュレートする試みが行われてきた。OneNAND(Samsung Corporationの商標)と呼ばれるこうした1つのデバイスは、RAMメモリを利用してNANDメモリとの間でデータを一時的にバッファすることで、NORメモリの動作をエミュレートする。しかしながら、OneNANDデバイスには、2つの欠点があると考えられる。第1に、OneNANDをインターフェース接続するユーザ又はホストのデバイスは、データの一貫性を追跡する必要があると考えられる。データの一貫性においては、ユーザ又はホストがRAMに書き込みを行うため、RAMのデータは、RAMのデータが最初に読み出されたNAND内の位置にあるデータよりも新しい(従って異なる)可能性がある。従って、OneNANDデバイスにおいては、ユーザ又はホストは、データをRAMからNAND内の最終位置に書き戻してそのデータを格納し、或いはRAMのデータが新しいデータであることを覚えておくように動作する必要がある。OneNANDデバイスの欠点であると考えられる第2の問題は、OneNANDデバイスが自動でアドレスマッピングを行うことができないことである。OneNANDデバイスでは、データがOneNANDデバイスのRAM部分に書き込まれると、ホスト又はユーザは、RAM部分にあるデータをOneNANDデバイスのNAND部分にある最終位置に書き込むために、コマンド又は一連のコマンドを出す必要がある。同様に読み出し動作についても、ホスト又はユーザは、OneNANDのNAND部分にある特定の位置からの読み出しコマンドを送出し、そのデータをRAM部分にロードした後、該RAM部分からデータを読み出す必要がある。
同様の欠陥を有すると考えられる別の先行技術のデバイスは、M SystemsのDiskOnChipデバイスである。DiskOnChipデバイスでは、限定量のRAMを備えたコントローラが、NANDメモリの動作を制御する。しかしながら、DiskOnChipデバイスのコントローラ部分は、NORメモリのようなオンボードの不揮発性ブート可能メモリを持たないと考えられる。
NORメモリの動作をエミュレートするコントローラを備えたNANDメモリの利用を示す先行技術の公開は、2006年3月9日に公開された米国公開特許出願2006/0053246に示されている。この公報は、複数のプロセッサに接続されたコントローラを備えたNANDメモリの利用を示しているが、このNANDメモリは、ATA規格の動作により直接アクセスすることはできないと思われる。従って、このNANDメモリへの全てのアクセスは、外部からの非直接的なアクセスでコントローラにより行われる必要がある。
仮出願60/754,937 米国特許出願2006/0053246 米国特許第6,427,186号 米国特許第6,405,323号 米国特許第6,141,251号 米国特許第5,982,665号
従って、これらの欠陥がなく、先行技術にはみられないメモリアクセス機能を付加する能力を備えたメモリデバイスの必要性がある。
本発明では、汎用メモリデバイスはコントローラを有する。このコントローラは、ホストデバイスからアドレス信号及びデータ信号を受信する第1のバスと、NANDメモリとインターフェースをとる第2のバスと、RAMメモリとインターフェースをとる第3のバスと、NORメモリとインターフェースをとる第4のバスとを有する。NANDメモリは、第2のバスに接続される。RAMメモリは、第3のバスに接続される。NORメモリは、第4のバスに接続される。メモリコントローラは、NORプロトコルコマンドと、RAMプロトコルコマンドと、ATA NANDプロトコルコマンドとに応答する。
また本発明は、かかるメモリデバイスで使用するメモリコントローラに関する。
最後に本発明はまた、メモリコントローラと、NORメモリ、RAMメモリ、NORエミュレーションメモリ、及びATA NANDメモリとして動作する様々なタイプのメモリのNOR、RAM、及びNANDとの多様な組み合わせに関する。
図1を参照すると、メモリデバイス10の第1の実施形態が示されている。メモリデバイス10は、メモリコントローラ12と、NANDメモリ14と、RAMメモリ16とを備える。メモリデバイス10は、第1のRAMアドレスバス22と、第1のRAMデータバス24と、ウェイト26、RST#28、並びにCE#、OE#、及びWE#30のような複数の制御信号とを介してホストデバイス20とインターフェース接続し、これらの全てはRAMバスの制御信号の当業者には公知である。以下において特に指定がない限り、ウェイト26、RST#28、並びにCE#、OE#及びWE#30上の制御信号の全ては、第1のRAMコントロールバス32と呼ぶ。第1のRAMアドレスバス22、第1のRAMデータバス24、及び第1のRAMコントロールバス32は、ホストデバイス20からメモリデバイス10のメモリコントローラ12に接続されている。更に、上述のように、メモリデバイス10とホストデバイス20との間のインターフェースは、データバス、アドレスバス、及びコントロールバスがホストデバイス20とメモリデバイス10との間でシリアルに接続されるシリアルバスを介するものとすることができる。かかるメモリデバイス10もまた、本発明の範囲内である。
メモリコントローラ12は、第2のRAMアドレスバス(第1のRAMアドレスバス22と同様)と、第2のRAMデータバス(第1のRAMデータバス24と同様)と、第2のコントロールバス(第1のRAMコントロールバス32と同様)とを有し、これらの全てはまとめて、RAMメモリ16に接続された第2のRAMバス40として単に示される。メモリコントローラ12は更に、NANDメモリ14に接続されたNANDアドレス/データバス及びNANDコントロールバス(これらの全てはまとめてNANDバス42として示す)を有する。RAMメモリ16は、シングルチップ集積回路として、メモリコントローラ12に一体化又は組み込むことができる。或いは、RAMメモリ16は、メモリコントローラ12とは別個の集積回路とすることができる。或いは、RAMメモリ16の一部をメモリコントローラ12と統合することができ、RAMメモリ16の一部をメモリコントローラ12から分離することができる。RAMメモリ16が別個のダイであることの利点は以下に説明する。しかしながら、RAMメモリ16がメモリコントローラ12と一体化される利点は、RAMメモリ16の動作がより速くなることができることである。
一実施形態では、メモリコントローラ12は、単一の集積回路ダイである。コントローラはまた、第1のNORメモリ44と、第2のNORメモリ62と、SRAMメモリ46と、SDRAMコントローラ48(RAM16がSDRAMタイプのRAMメモリであって、メモリコントローラ12の外部にある場合に、RAM16の動作を制御する)とを有し、これらはメモリコントローラの集積回路ダイ内に組み込まれている。勿論、第1のNORメモリ44と第2のNORメモリ62とは、同じ物理NORメモリの一部とすることができる。メモリコントローラ12のある実施形態の詳細なブロックレベルの図を図3に示す。本明細書で使用する「NORメモリ」とは、ランダムアクセス不揮発性メモリのあらゆるタイプを意味する。NORメモリは、限定ではないが、フローティングゲート型メモリ、ROM、又は捕獲材料などを用いたセルを含む。更に、本明細書で使用する「NANDメモリ」は、不良セルを含む可能性のあるあらゆるタイプのシリアルアクセス不揮発性メモリを意味する。
一実施形態では、メモリコントローラ12、RAMメモリ16、及びNANDメモリ14の各々が、単一の集積回路ダイで形成され、共にMCP(マルチチップパッケージ)にパッケージ化される。かかる構成の利点は、大量(又は少量)のメモリを必要とするユーザ又はホスト20に対して、容易に利用可能なNANDメモリ14のダイを単に変更することによって、或いはスピードが1つの要因である場合には、容易に利用可能なRAMメモリ16を変更することによってメモリ量を変更可能なことである。従って、メモリコントローラ12と、RAMメモリ16と、NANDメモリ14とを別個のダイ内に備えることは、様々なサイズのメモリデバイス10及び速度又はパフォーマンスを容易に製造することができることを意味する。
勿論、メモリコントローラ12と、RAMメモリ16と、NANDメモリ14とは、単一の集積回路ダイに形成してもよい。メモリコントローラ12と、RAMメモリ16と、NANDメモリ14とが、単一の集積回路ダイで形成される場合には、追加して外部に設けられるNANDメモリをメモリデバイス10に取り付けて、メモリデバイス10のメモリ容量を拡張することができるように、外部NANDバス42を設ける準備を行うことができる。
図2を参照すると、ホストデバイス20により参照され、図1に示したメモリデバイス10の第1の実施形態においてマップされるアドレスのマッピングを示すメモリマップが示されている。ホストデバイス20によって参照されるメモリマップは、2つの一般的なセクション、すなわちランダムアクセスとマスストレージアクセスとを有する。ランダムアクセスセクションは、下位のメモリアドレス位置を占める(必要条件ではない)。ランダムアクセスセクション内では、最下位のメモリアドレスは、NORメモリアクセス部分50のメモリアドレスであり、これに続いて擬似NOR(PNOR)メモリアクセス部分52、次いでRAMアクセス部分54、次いで構成アクセス部分56がある。これらの部分の各々を以下に説明する。
ホストデバイス20により参照されるNORメモリアクセス部分50は、ホスト20がこの部分50で動作する場合には、その結果は物理NORメモリ44上の動作であるものである。従って、メモリ部分50の物理NORメモリ44へのマッピングは、1対1である。言い換えれば、NOR部分50に割り当てられるメモリ空間の量は、メモリデバイス10で利用可能なNORメモリ44の量によって決まる。一実施形態では、メモリコントローラ12に組み込まれるNORメモリ44の量は、2Kワードのセクタサイズ及び32Kのワードブロックサイズを備えた4メガビットである。更に、ホストデバイス20が(read/write/eraseなどのコマンドを送出するときのように)NOR部分50で動作していると考えると、結果として得られる動作は、NORメモリ44上に直接的なものとなる。このNOR部分50は、待ち時間なしのランダムアクセスを要求する高性能の重要なコード/データを格納しようとするホストデバイス20が利用することができる。更に、プログラムがNORメモリ44に格納される場合、プログラムは、NORメモリ44内の所定位置で実行することができる。このようにNORメモリ44は、ホストデバイス20を「ブートする」プログラム又はコードを格納することができる。
ホストデバイス20によって参照されるPNOR部分52は、ホスト20がこの部分52で動作するときに、ホスト20は不揮発性のRAMメモリ16上で動作していると考えるものである。従って、ホストデバイス20に関しては、NORプロトコルのコマンドを送出することなく、PNOR部分52に格納されたデータを除く他のあらゆるRAMメモリ16が不揮発性であるようにPNOR部分52上で動作することができる。一実施形態では、PNOR部分52は、NANDメモリと同様にページに分割され、各ページは、8Kバイト、2Kバイト、又は512バイトのいずれかである。動作中、ホストデバイス20がメモリデバイス10とインターフェースをとると、ホストデバイスはRAMメモリ16とインターフェースをとり、メモリコントローラ12がNANDメモリ14とのやりとりのデータを「バックアップ」してRAMメモリ16とNANDメモリ14との間のデータの一貫性を維持し、更に、メモリコントローラ12は、ホストデバイス20によって供給されたアドレスをNANDメモリ14内の実際のデータのアドレスにマップする。実際のRAMメモリ16よりも大量のNANDメモリ14が利用可能であるので、PNOR部分52は、RAMメモリ16で利用可能な実際のメモリ量よりも遙かに大きいメモリ空間とすることができる。
更にPNOR部分52は、4つの領域に分割することができ、各々がRAMメモリ16中のゾーンに、すなわちゾーン0、ゾーン1、ゾーン2、及びゾーン3にマップされる。各ゾーンは、様々な程度のマッピングを有することができる。PNOR部分52の領域からRAMメモリ16のゾーンへのマッピングが1対1である場合、これは「静的ページングモード」と呼ばれる。PNOR部分52の領域からRAMメモリ16のゾーンへのマッピングが多対1である場合には、これは「動的ページングモード」と呼ばれる。静的ページングモードのマッピングは、PNOR部分52のメモリ空間の量(例えば256ページ(或いは2Kバイトのページの場合は512Kバイト))が常にRAM16の同じ量のメモリ空間(例えば256ページ(又は512Kバイト))にマップされ、次いでこれがNANDメモリ14の256ページ(又は512Kバイト)にマップされるので、最小の待ち時間となる。この場合、RAMメモリ16もまたランダムアクセスであるので、動作中のアクセスの待ち時間はないが、NANDメモリ14とRAMメモリ16との間のやりとりの最初のロード及び格納での待ち時間がある。動的ページングモードのマッピングでは、例えば、PNOR部分52のメモリ空間の40,000ページのマッピングでは、RAMメモリ16の512ページへマップされ、次いでNANDメモリ14の40,000ページにマップされ、多大な待ち時間が発生することになる。この待ち時間は、NANDメモリ14からRAM16へデータ/プログラムを最初にロードする際と、キャッシュミスがある場合にデータ/プログラムを最初にNANDメモリ14からRAM16へロードすることが必要な場合がある、PNOR部分52からデータ/プログラムを読出す動作中とで発生することになる。従って、PNOR部分52に関する待ち時間は、構成されるゾーンの大きさによって異なる。RAMメモリ16の各ゾーンの境界、ひいてはPNOR部分52の各領域からRAMメモリ16にマップするメモリ空間の量は、ホストデバイス20又はユーザが設定することができる。従って、ホストデバイス20は、プログラム又はタイムクリティカルなデータを格納する/読出す静的ページングモードか、或いはプログラム又はタイムクリティカルでないデータを格納/読出し、その結果キャッシュミスがある場合に待ち時間がある動的ページングモードのいずれかで動作するように4つのゾーンを構成することができる。
ゾーンが静的ページングモードに構成されている場合、PNOR部分52の同じ量のメモリ空間が常にRAMメモリ16の同じ量の空間にマップされるので、データ読み出しの一貫性は問題ではない。しかしながら、データ書き込みの一貫性は依然として行う必要がある。一方、ゾーンが動的ページングモードに構成されている場合、データの一貫性がもたらされなければならない。ホストデバイス20は、2つのキャッシュ一貫性モードのうちの1つで動作するようにゾーンを構成することができる。第1のモードで、ホストデバイス20はキャッシュ一貫性モードを開始する。このモードでは、ホストデバイス20は、ホストデバイス20に必要とされる限り、RAMメモリ16内のキャッシュ動作をフラッシュする。第2のモードでは、RAMメモリ16とNANDメモリ14との間のデータの一貫性を維持するために、メモリコントローラ12に必要とされる限り、RAMメモリ16内のキャッシュ動作をフラッシュすることにより、メモリコントローラ12がキャッシュ一貫性モードを開始する。
PNOR部分52のメモリ空間の量及びRAMメモリ16へのこのマッピングがユーザにより設定されると、RAMメモリ16にある利用可能なメモリ空間の残りは、RAMメモリアクセス部分に利用することができる。ホストデバイス20によって参照されるRAMメモリアクセス部分54は、ホスト20がこの部分54で動作するときに、その結果が物理RAMメモリ16上の動作となるものである。従って、メモリ部分54から物理RAMメモリ16へのマッピングは1対1である。更に、RAM部分54に割り当てられるメモリ空間の量は、メモリデバイス10で利用可能なRAMメモリ16の総量と、PNORメモリ52のメモリ空間部分のRAMメモリ16へのマッピングの程度とによって決まる。ホストが、RAM部分54で動作している(読み出し/書き込みなどのコマンドを出しているなど)と考えると、結果として生じる動作は、RAMメモリ16上に直接的なものとなる。このRAM部分54は、メモリ空間をバッファ区域として利用しようとするホストデバイス20が利用することができる。各ゾーンにおけるPNOR部分52のメモリ空間のRAMメモリ16へのマッピングは、ユーザが設定することが可能であり、RAMメモリ16の総量は既知であるので、PNOR部分52とRAM部分54との間の境界は、間接的にユーザによって設定される。従って、大量のバッファを有することが望ましい場合、ゾーンの1つ又はそれ以上においてPNOR部分52とRAMメモリ16との間のマッピングを縮小することにより、大量のRAM部分54を割り当てることができる。その上、PNOR部分52とRAM部分54との間の境界は、メモリコントローラ12をリセットして、PNOR部分52のメモリ空間とRAMメモリ16との間のマッピングを各ゾーンにおいて再構築することにより、メモリデバイス10の動作中に変更することができる。
RAMメモリ16のゾーンの各々のメモリマップの境界及びPNOR部分52のメモリ空間のサイズは、メモリコントローラ12にある不揮発性の構成レジスタ60に事前に割り当てて格納することができる。構成レジスタ60へのアクセスは、構成アクセス部分56を介する。不揮発性の構成レジスタ60は、組み込みNORメモリ62の一部とすることができる。或いは、RAMメモリ16のゾーンの各々のメモリマップの境界及びPNOR部分52のメモリ空間のサイズは、ユーザが1つ又は複数のチップ選択ピンを介して選択することができる。この場合、メモリコントローラ12の電源が入ると、様々なメモリの境界をリセットすることができる。NORメモリ62はまた、メモリコントローラ12及びMCU64のブート中及び動作中に、メモリコントローラ12が実行するのに使用されるファームウェアコード61を格納することもできる。
最後に、マスストレージアクセスセクション58では、ホストデバイス20がメモリ空間のそのセクションにアクセスすると、ホストデバイス20は、ATAディスクドライブにアクセスしていると考える。メモリコントローラ12は、公知のフラッシュファイルシステム(FFS)プロトコルを使用して、論理ATAディスクドライブ空間のアドレスをNANDメモリ14の物理空間のアドレスに変換する。一実施形態では、読み出し動作に関して、マスストレージアクセスセクション58の最初の部分は、ATAタスクファイルレジスタ79にロードされる16バイトの論理アドレスからなる。メモリコントローラ12は、16バイトのタスクコマンド及び論理アドレスをデコードし、NANDメモリ14内の特定の「ページ」にアクセスするためにこれを物理アドレスに変換する。NANDメモリ14のページから512バイトのページが読み出され、次いでデータレジスタ81にロードされ、ここでホストデバイス20により順次的に又はランダムにアクセスされる。書き込み動作に関しては、逆のことが起こる。512バイトのデータが格納されることになる論理アドレスが、最初にタスクファイルレジスタ79にロードされる。書き込みコマンドが、タスクファイルレジスタ79に書き込まれる。メモリコントローラ12は、タスクファイルレジスタ内のこのコマンドを書き込みコマンドとしてデコードし、これを物理アドレスに変換してNANDメモリ14の特定のページにアクセスし、更に、その位置にデータレジスタ81内の512バイトを格納する。別の実施形態では、いわゆるピンポン構成において2つのデータレジスタ81(a&b)(図示せず)が存在する場合がある。この場合、データレジスタ81aの一方は、データを予めNANDメモリ14の1ページからロードして、512バイトのデータをホストデバイス20に供給するように使用され、他方のデータレジスタ81bは、NANDメモリ14の別のページからデータレジスタ81bにデータをロードして、データレジスタ81aからのデータが完全に読み出された後、データをホストデバイス20に供給するように使用される。この方法では、NANDメモリ14からデータのページの多くに渡って連続的な読み出し動作を行うことができる。また、データレジスタ81(a&b)は、書き込み動作においてピンポン式に用いることも可能であり、セットアップの待ち時間がほとんど又は全くなく、データの多くの連続したページをNANDメモリ14に書き込むことが可能になる。
前述のように、メモリデバイス10とホストデバイス20との間のインターフェースは、シリアルバスを介することができる。詳細には、かかるシリアルバスは、メモリデバイス10のRAM部分をホストデバイス20と接続する従来のパラレルバスを用いて、メモリデバイス10のNOR又はPNOR区域をホストデバイス20と接続することができる。
図3を参照すると、RAMメモリ16及びNANDメモリ14とインターフェースをとるメモリコントローラ12の詳細なブロックレベルの図が示されている。メモリコントローラ12はマイクロコントローラ64を含む。マイクロコントローラ64は、FFSのあらゆるブックキーピング機能を行い又は実行する。その上、マイクロコントローラは、欠陥管理(DM)及びキャッシュデータ一貫性アルゴリズム、並びにキャッシュフラッシュ置換アルゴリズムを行い又は実行する。最後に、マイクロコントローラ64は、キャッシュページングスキームアルゴリズムを行い又は実行する。これらの動作の全ては、メモリコントローラ12のブート操作又は初期設定を含み、NORメモリ62内に格納されたファームウェア又はプログラムコード61によって達成される。
マイクロコントローラ64は、上述のようにマイクロコントローラ64によって実行されるファームウェア61も格納する第2のNORメモリ62に接続されている。不揮発性の構成レジスタ60を格納することに加えて、NORメモリ62はまた、FFS及びDMの動作用のファームウェアを格納する。
またマイクロコントローラ64は、MUX74を介してSRAMメモリ46とインターフェースをとる。SRAMメモリ46は、ランタイムデータを格納するためのマイクロコントローラ64用ローカル高速バッファとして機能する。その上、SRAMメモリ46は、欠陥マップキャッシュとFFSデータ構造とを格納することができる。
メモリコントローラ12の詳細な説明をハードウェア構成要素に関して記載するが、以下に記載する機能の全ては、マイクロコントローラ64で実行するためにソフトウェアに実装することもできる。
メモリコントローラ12は、内容参照可能メモリの性質で実装することができるカレントキャッシュのページアドレスレジスタ66を含む。CAM66の機能は、現在のPNORキャッシュのページアドレスを保持すること、及びPNOR部分52に対する読み出し又は書き込み動作中にアクセスミスがあるときにCAM66を更新することである。CAM66内の各エントリは、3つの部分、すなわちページアドレス部分66a、インデックスアドレス部分66b、及びステータス部分66cを有する。メモリコントローラ及びCAMメモリ66の動作に関する説明は、以下の実施例に関するものであるが、本発明は、以下の実施例に限定されないことを理解されたい。ホストデバイス20からのアドレスは、21の最上位ビット(ビット11〜31)と、11の最下位ビット(ビット0〜10)とからなる32ビットと仮定する。21の最上位ビットはページアドレスを含み、11の最下位ビットはオフセットアドレスを含む。またCAMメモリ66の各エントリは、21ビットからなるページアドレス部分66aと、9ビットからなるインデックスアドレス部分66bと、12ビットからなるステータス部分とを含み、このステータス部分は有効(又は無効)の1ビット、ダーティ(又はクリーン)の1ビット、静的(又は動的)の1ビット、ホスト主導のキャッシュ一貫性(又はコントローラ主導)の1ビット、及び最終アクセスタイムスタンプ用の8ビットからなる。ホストデバイス20からの32ビットでは、ホストデバイスは、232バイトすなわち1GBの量のメモリ空間をアドレス指定することができる。以下に説明するように、メモリコントローラ12は、ホストデバイス20からのオフセットアドレスによる11ビットに加えて、CAMメモリ66からの9ビットのインデックスアドレス部分を使用して、20ビットのアドレスを形成することで、RAM16に対する1MBのアドレス指定を可能にする。勿論、これらの数字は例証に過ぎず、本発明を限定するものではない。
メモリコントローラ12はまた、ヒット/ミス比較論理68を含む。ヒット/ミス比較論理68は、アドレスバス22からアドレス信号を受信し、コントロールバス32から制御信号を受信する。次いで、ヒット/ミス比較論理68は、ホストデバイス20からのアドレスの32ビットからページアドレスの21ビットをCAMメモリ66に送信する。CAMメモリ66は、これら21ビットのページアドレスをCAMメモリ66の各エントリに格納されたページアドレス66aと比較する。ヒットがある場合、すなわちホストデバイス20からのページアドレスの21ビットがCAMメモリ66のエントリの1つと一致する場合、CAMメモリ66は、インデックスアドレス66bの関連する9ビットをMUX70に出力する。ミスがある場合、ヒット/ミス比較論理68が、読み出しミス信号又は書き込みミス信号を生成する。読み出しミス信号及び書き込みミス信号は、マイクロコードコントローラ(MCC)/エラーコード訂正(ECC)ユニット72がデータ一貫性を実行する信号としてMCC/ECCユニット72に供給される。MCC/ECCユニット72に供給される信号は、RAMメモリ16に格納されたカレントページアドレスの1つが、アドレスバス22上に供給されたホストデバイス20からのアドレスであることを示すヒットであるか、或いは、RAMメモリ16に格納されたカレントページアドレスのいずれもが、アドレスバス22上に供給されたホストデバイス20からのアドレスではないことを示すミスである。最後に、ヒット/ミス比較論理68はまた、ウェイト状態信号26に接続される。ウェイト状態信号26は、メモリコントローラ12がバスサイクル動作を保持したいことをホストデバイス20に知らせたいと望むときに生成される。ウェイト状態信号26は、ディアサートされるとバス22/24/32を解放し、ホストデバイス20が動作を再開できるようになる。ウェイト状態信号26がメモリコントローラ12によってアサートされる一実施例は、読み出し/書き込みミスが存在し、メモリコントローラ12がNANDメモリ14のアドレスからデータを読出し、これをRAMメモリ16にロードする必要がある場合である。データがNANDメモリ14から読出されて、RAMメモリ16にロードされる時間の間、ウェイト状態信号26は、メモリコントローラ12によりアサートされる。
またメモリコントローラ12は、マイクロコントローラ64の制御下で動作するMCC/ECCユニット72を含む。MCC/ECCユニット72は、キャッシュデータの一貫性、フラッシュ置換、及びページングの動作のために読み出しミス/書き込みミス信号を監視する。その上、マイクロコントローラ64の制御下で、MCC/ECCユニット72は、NANDメモリ14を操作し、NANDメモリ14の欠陥管理動作を与える。更に、マイクロコントローラ64の制御下で、MCC/ECCユニット72は、NANDメモリ14と、RAMメモリ16と、SRAMメモリ46との間でデータを移動させるようにDMA機能を提供する。最後に、MCC/ECCユニット72は、NANDメモリ14に格納されたデータについてエラー検出及び訂正を行う。
メモリコントローラ12はまた、セキュリティ及びデジタル権利管理を提供する暗号エンジン90を含む。その上、メモリコントローラ12は、RAMメモリ16の量を増強するのに利用するため、追加のRAMメモリ92をコントローラに組み込み、すなわち同じ集積回路ダイ上に形成することができる。上記のように、RAMメモリ16は、別個の集積回路ダイとすることができ、この場合メモリコントローラ12に組み込まれたRAMメモリ92がRAMメモリ16を増強する。しかしながら、RAMメモリ16とメモリコントローラ12とが同じダイに一体化されている場合、RAMメモリ16及びRAMメモリ92は共に、同じメモリアレイの一部とすることができる。
次に、様々な動作モードに関してメモリデバイス10を説明する。パワーアップ中、ヒット/ミス比較論理68は、ウェイト信号を生成して、ウェイト状態信号26をアサートする。メモリコントローラ12は、不揮発性レジスタ60から構成パラメータを読み出し、これを揮発性レジスタ46(SRAM46の一部とすることができる)にロードする。静的ページ、すなわちPNOR部分52に静的にマップされるNANDメモリ14からのデータもまた、NANDメモリ14から読み出され、RAMメモリ16内に格納される。これは、MCC/ECC72を介してマイクロコントローラ64により行われ、FFSプロトコルを実行してNANDメモリ14からのページのアドレスを変換し、更にNANDメモリ14への物理アドレス及び制御信号を生成してデータをそこから引き出し、これをRAMメモリ16に格納する。パワーアップ中、MCU64及びMCC/ECC72もまた、NANDメモリ14をスキャンしマスタインデックステーブルを探索する。マスタインデックステーブルは、読み出されてローカルSRAMメモリ46に格納される。MCU64は、マスタインデックステーブルのデータ構造の完全性を調べる。MCU64及びMCC/ECC72はまた、NANDメモリ14をスキャンし、マスタインデックステーブルの再構築が必要であるかどうかを判断する。MCU64及びMCC/ECC72はまた、NANDメモリ14から2ページのデータをローカルSRAMメモリ64に取り込む。Vpageと呼ばれるNANDメモリ14からの最初の2ページのデータは、ホストデバイス20の論理アドレスをNANDメモリ14の物理アドレスにマップするためのデータを含み、NANDメモリ14の欠陥セクタをスキップする能力を備えている。次にFFSは、マッピング変換要求を受け入れる準備が整う。次にヒット/ミス比較論理68が、ウェイト状態信号26をディアサートし、すなわちウェイト状態信号26を解除する。
パワーアップ中、メモリコントローラ12が、NANDメモリからの静的ページの引き出し、及びこれらのRAMメモリ16への格納、並びにNANDメモリ14のマスタインデックステーブルの更新などといった他のオーバーヘッド機能を実施している間、メモリデバイス10は、ホストデバイス20によって更に利用可能である点に留意されたい。詳細には、ウェイト状態信号26のアサーションは、メモリ空間のPNOR部分52に対する要求をアドレス指定するのに向けた動作にのみ影響を与えるので、NORメモリ44は、パワーアップ中でもホストデバイス20がアクセスすることが可能である。
NORメモリの動作
NORメモリ44の読み出し動作では、ホストデバイス20は、メモリ空間のNORメモリアクセス部分50内にあるアドレス信号をアドレスバス22上でメモリデバイス10に送信する。更に、ホストデバイス20によって適切な制御信号がコントロールバス32でメモリデバイス10に送信される。アドレス信号は、PNORメモリアクセス部分52以外の空間にあるので、ヒット/ミス比較論理68は起動されず、ウェイト状態信号26はアサートされない。アドレス信号及び制御信号は、NORメモリ44に供給され、そこで供給されたアドレスからのデータを読み出す。次いでデータは、データバスに沿ってMUX84に供給され、更にデータバス24に沿ってホストデバイス20へ出されることで読み出しサイクルを完了する。
NORメモリ44の書き込み又はプログラム動作では、ホストデバイス20は、メモリ空間のNORメモリアクセス部分50内にあるアドレス信号をアドレスバス22でメモリデバイス10に送信する。更に、ホストデバイス20によって適切な制御信号がコントロールバス32でメモリデバイス10に送信される。アドレス信号は、PNORメモリアクセス部分52以外の空間にあるので、ヒット/ミス比較論理68は起動されず、ウェイト状態信号26はアサートされない。アドレス信号及び制御信号は、NORメモリ44に供給される。書き込まれ又はプログラムされるデータ及びプログラムコマンドは、ホストデバイス20からデータバス24に沿ってメモリコントローラ12に送信され、MUX84に入る。次いでMUX84から、データがNORメモリ44に送信され、そこでデータはアドレスバス22で供給されるアドレスでNORメモリ44内にプログラムされる。ホストデバイス20は、NORメモリ44をバイト単位でプログラムすることができるバイトプログラム動作を行うことができる。書き込み又はプログラムサイクルは、データがNORメモリ44に書き込まれると完了する。
NORメモリ44のセクタ消去又はブロック消去などの消去動作では、ホストデバイス20は、メモリ空間のNORメモリアクセス部分50内にあるアドレス信号をアドレスバス22でメモリデバイス10に送信する。更に、ホストデバイス20によって適切な制御信号がコントロールバス32でメモリデバイス10に送信される。アドレス信号は、PNORメモリアクセス部分52以外の空間にあるので、ヒット/ミス比較論理68は起動されず、ウェイト状態信号26はアサートされない。アドレス信号及び制御信号は、NORメモリ44に供給される。消去コマンドプロトコルを表すデータ信号は、ホストデバイス20からデータバス24に沿ってメモリコントローラ12に送信され、MUX84に入る。次いでMUX84から、データがNORメモリ44に送信され、そこで該データはNORメモリ44によってデコードされ、次いで消去動作が実行される。NORメモリ44が消去サイクルを完了すると、消去サイクルは完了する。
PNORメモリの動作−読み出し
PNORメモリの読み出し動作では、ホストデバイス20は、メモリ空間のPNORメモリアクセス部分52内にあるアドレス信号をアドレスバス22でメモリデバイス10に送信する。読み出しヒットと読み出しミスの2つのことが起こりうる。
読み出しヒットの場合、アドレスバス22に供給されたアドレス信号のページアドレス部分が、ヒット/ミス比較論理68によって受信され、CAM66内に格納されたRAMメモリ16内に現在あるアドレスと比較される。アドレスバス22に供給されたページアドレスが、CAM66内に格納されているページアドレス内に存在する場合、ヒットが存在する。ヒット/ミス論理68は、アドレス信号及び制御信号が次にRAMメモリ16へ向けられるようにMUX70を起動させ、CAMメモリ66からの関連するインデックスアドレス66bをホストデバイス20からのオフセットアドレスと連結して、RAMメモリ16をアドレス指定する。次いで、RAMメモリ16によるその下位アドレスから読み出されたデータは、MUX80に送信され、そこからMUX84に供給され(MUX80のデフォルト状態)、MUX84は、ヒット/ミス比較論理68により命令されて、データをデータバス24に沿ってホストデバイス20に送信することができるようにし、これによって読み出しサイクルを完了する(図示せず)。
読み出しミスの場合、起こり得る幾つかのことがある。まず、キャッシュフラッシュのない読み出しミスと呼ばれるものがある。アドレスバス22からのアドレス信号のページアドレス部分をCAM66からのページアドレスレジスタ66aと比較した結果ミスとなる場合、すなわちアドレスバス22上のページアドレスが、RAMメモリ16に格納されたページのアドレス内にない場合には、ヒット/ミス比較論理68は、MCC/ECCユニット72に読み出しミス信号を送り、MCC/ECC72が読み出し一貫性サイクルを開始する。更に、ヒット/ミス比較論理68は、ウェイト状態信号26上に信号をアサートする。MCU64の制御下にあるMCC/ECCユニット72は、FFS動作を実行して、ホストデバイス20により供給されたアドレスをNANDメモリ14内の物理アドレスに変換する。次いで、MCC/ECCユニット72は、NANDメモリ14に対して適切なアドレス信号及び制御信号を生成し、更に、RAMメモリ16に対して適切なアドレス信号及び制御信号を生成する。
アドレスバス22で特定されるアドレスからのデータを含むデータのページ全体は、NANDメモリ14から読み出され、MUX80を介してRAMメモリ16に転送され、そこでMCC/ECCユニット72により特定されたRAMメモリ16内の位置のページ全体に書き込まれ、MCC/ECCユニット72により動作されて、誤り訂正チェックなどを通じてデータの完全性が確保される。次いで、CAM66のカレントページアドレスレジスタが更新され、カレント読み出しミスアドレス内にあるアドレスページのアドレスを追加する。ヒット/ミス比較論理68は、ウェイト状態信号26上の信号をディアサートする。更に、MCU64は、MUX80をデフォルト位置に切り替える。ヒット/ミス比較論理68は、インデックスアドレス66bをMUX70に送信し、そこでインデックスアドレスは、アドレスバス22からのオフセットアドレス部分と組み合わされ、RAMメモリ16をアドレス指定する。次いで、RAMメモリ16上での読み出し動作からのデータは、MUX80を介し、更にMUX84を介してホストデバイス20へのデータバス24に供給され、これによりサイクルを完了する。NANDメモリ14から読み出されたデータの量は、ページベースであるので、データのページ全体がRAMメモリ16内に格納される必要がある。キャッシュフラッシュのない読み出しミスのこのケースでは、RAMメモリ16のページ全体がNANDメモリ14からのデータを格納するのに利用可能であるか、或いはデータのページ全体が格納されることになるRAMメモリ16内の位置には(NANDメモリ14にあるデータと同様の)一貫性のあるデータが含まれていると仮定すると、NANDメモリ14から読み出されたデータのページ全体は、RAMメモリ16のある位置に格納することができる。キャッシュフラッシュとは、RAMメモリ16からNANDメモリ14へデータの書き込むことで、データ一貫性の問題のあるキャッシュ(RAMメモリ16)をフラッシュすることを意味する。
読み出しミスの別の可能性のあるケースは、キャッシュフラッシュのある読み出しミスと呼ばれる。このケースでは、NANDメモリ14からのデータのページ全体は、NANDメモリ14内のデータよりも新しい、RAMメモリ16内のあるデータを上書きすることなく、RAMメモリ16に格納する可能性がある。これは、データ一貫性の問題を生じる。従って、RAMメモリ16内のデータのページは、最初にNANDメモリ14に書き込む必要があり、その後で、異なる位置のNANDメモリ14からのデータをRAMメモリ16に読み込むことができる。一連の動作は以下の通りである。ホストデバイス20によるアドレスバス22からのアドレス信号のページアドレス部分をCAM66からのページアドレス信号66aと比較して、アドレスバス22からのアドレス信号が、カレントページアドレスのいずれかの中にあるかどうかを判断する。この比較はミスとなり、ヒット/ミス比較論理68がMCC/ECCユニット72に対して読み出しミス信号を送信し、MCC/ECCユニット72が読み出し一貫性サイクルを開始する。更に、ヒット/ミス比較論理68は、ウェイト状態信号26上の信号をアサートする。NANDメモリ14からのデータがRAMメモリ16に読み込まれる場合にはデータ一貫性の問題が生じるので、MCU64の制御下のMCC/ECCユニット72は、最初にRAMメモリ16内のデータのページをNANDメモリ16に書き込む必要があると判断する。MCU64は、FFS動作を実行し、RAMメモリ16からのアドレスをNANDメモリ14のアドレスに変換する。
データのページ全体が、RAMメモリ16から読み出され、MUX8−を通ってNANDメモリ14に供給され、そこでNANDメモリ14に格納される。その後、ホストデバイス20からのアドレスは、MCU64によってFFS動作で物理NANDアドレスに変換される。次に、MCC/ECCユニット72は、MCU64の指示を受けてNANDメモリ14に対しての適切なアドレス信号及び制御信号を生成し、更に、CAMメモリ66からのインデックスアドレス66bと、MCC/ECC72からの制御信号及びオフセットアドレス部分とを使用して、RAMメモリ16をアドレス指定する。次に、NANDメモリ14から読み出されたデータのページ全体は、NANDメモリ14からMUX80を介してRAMメモリ16に転送され、そこでMCC/ECCユニット72により特定されたRAMメモリ16内の位置のページに書き込まれ、MCC/ECCユニット72により動作されて、誤り訂正チェックなどを通じてデータの完全性が確保される。次いで、CAM66のカレントページアドレスレジスタ66aが更新され、カレント読み出しミスアドレスを含むページアドレスと、関連するインデックスアドレス66bとを追加する。ヒット/ミス比較論理68は、ウェイト状態信号26上の信号をディアサートする。更に、MCU64は、MUX80をデフォルト位置に切り替える。ヒット/ミス比較論理68は、インデックスアドレス66bをMUX70に送信し、そこでインデックスアドレスがアドレスバス22からのオフセットアドレスと組み合わされ、RAMメモリ16で読み出し動作を開始する。次いで、データがRAMメモリ16から読み出され、MUX80を介し、更にMUX84を介してホストデバイス20へのデータバス24に供給され、これにより読み出しサイクルを完了する。
読み出しヒット、キャッシュフラッシュのない読み出しミス、キャッシュフラッシュのある読み出しミスの各々の場合では、この動作は、ホストデバイス20の視点からRAMデバイスに対する読み出しと同様であり、読み出しミスの場合に待ち時間を伴う。ホストデバイス20は、アドレスの変換及び/又はデータの一貫性に対処する必要がない。
PNORメモリの動作−書き込み
PNORメモリの書き込み動作では、ホストデバイス20は、RAMメモリ16に書き込まれるデータと共に、メモリ空間のPNORメモリアクセス部分52内にあるアドレス信号をアドレスバス22でメモリデバイス10に送信する。書き込みヒット及び書き込みミスといった2つのことが起こり得る。
書き込みヒットの場合、アドレスバス22に供給されたアドレス信号のページアドレス部分は、ヒット/ミス比較論理68によって受信され、RAMメモリ16内に現在格納されているデータを反映するCAM66内のページアドレス66aと比較される。アドレスバス22に供給されたページアドレスは、CAM66内に格納されたページアドレス内にある。ヒット/ミス論理68は、アドレス信号及び制御信号がその後RAMメモリ16へ向けられるようにMUX70を起動する。CAM66からのインデックスアドレス66bとアドレスバス22からのアドレス信号のオフセットアドレス部分とが組み合わされて、MUX70を介してRAMメモリ16にアクセスするのに使用されるアドレス信号が生成される。データバス24からのデータは、MUX84を通り、MUX80を通ってRAMメモリ16に供給され、そこでRAMメモリ16に書き込まれ、これにより書き込みヒットサイクルが完了する。
RAMメモリ16内のデータは、書き込みヒット動作後は、NANDメモリ14の同じ位置からのデータに対して一貫性がなくなる点に留意されたい。実際には、RAMメモリ16のデータは最新のものとなる。データの一貫性の問題を解決するには、2つの解決法がある。
第1に、メモリデバイス10は、必要に応じてデータの一貫性の問題を自動的に解決することができる。上記のように、例えばキャッシュフラッシュ動作での読み出しミスの場合には、NANDメモリ14から新しく要求されるデータのページを格納するために、RAMメモリ16内のデータのページが置き換えられる必要がある場合、RAMメモリ16内のより新しいデータは、NANDメモリ14に書き戻されることになる。以下に説明するように、MCU64はまた、キャッシュフラッシュ動作での書き込みミスにおいて、データをNANDメモリ14に書き戻すことによりRAMメモリ16のデータに関してキャッシュフラッシュを行う。
データの一貫性の問題に対する別の解決法は、ホストデバイス20の制御下でデータの一貫性を実施することである。すなわち、ホストデバイス20は、メモリコントローラ12に一貫性のないデータをRAMメモリ16からNANDメモリ14に書き戻させるキャッシュフラッシュのコマンドを送出することができる。この動作の利点は、限定ではないが、アプリケーションの変更、シャットダウン、又は受信した低出力割り込みなどの重要なイベントを含む、あらゆる時点でホストデバイス20がこの動作を行うことができることである。しかしながら、メモリコントローラ12もまた自動的にデータの一貫性を実施することができるので、ホストデバイス20のユーザがデータの一貫性の動作を実施できない場合には、このような動作は、必要に応じてメモリコントローラ12が行うこともある。
書き込みミスの場合、起こり得る幾つかのことがある。まず、キャッシュフラッシュのない書き込みミスと呼ばれるものがある。アドレスバス22からのアドレス信号のページアドレス部分をCAM66からのページアドレス信号66aと比較した結果、ミスとなる場合、すなわちアドレスバス22上のアドレスが、RAMメモリ16に格納されたページのアドレス内にない場合には、ヒット/ミス比較論理68は、MCC/ECCユニット72に書き込みミス信号を送る。更に、ヒット/ミス比較論理68は、ウェイト状態信号26上に信号をアサートする。MCC/ECCユニット72は、ホストデバイス20からのアドレスバス22上で特定されたアドレスのデータを含む、NANDメモリ14からのデータの新しいページが、古い一貫性のあるデータ上、或いはRAMメモリ16の空き区域上に格納されることになるかどうかを判断する。この場合、メモリコントローラ12は、データをNANDメモリ14からRAMメモリ16内の位置に転送する前に、書き込み一貫性サイクルを行う必要がない。MCU64の制御下にあるMCC/ECCユニット72は、FFS動作を実行して、ホストデバイス20により供給されたアドレスをNANDメモリ14内の物理アドレスに変換する。次いで、MCC/ECCユニット72は、NANDメモリ14に対して適切なアドレス信号及び制御信号を生成し、更に、RAMメモリ16に対して適切なアドレス信号及び制御信号を生成する。
アドレスバス22で特定されるアドレスからのデータを含む、データのページ全体は、NANDメモリ14から読み出され、MUX80を介してRAMメモリ16に転送され、そこでMCC/ECCユニット72及びインデックスアドレス66bにより特定されたRAMメモリ16内の位置のページ全体に書き込まれ、そこでMCC/ECCユニット72により動作されて、誤り訂正チェックなどを通じてデータの完全性が確保される。次いで、CAM66のカレントページアドレスレジスタ66aが更新され、カレント書き込みミスアドレス内にあるアドレスページのアドレス及び関連するインデックスアドレス66b(インデックスアドレス66bはデータのページが格納されるRAMメモリ16のアドレスの上位9ビットである)を追加する。ヒット/ミス比較論理68は、ウェイト状態信号26上に信号をディアサートする。更に、MCUは、MUX80をデフォルト位置に切り替える。ヒット/ミス比較論理68は、インデックスアドレス66bをMUX70に送信し、そこでインデックスアドレスはアドレスバス22からのオフセットアドレスと組み合わされ、RAMメモリ16において書き込み動作を開始する。次いで、データは、ホストデバイス20からMUX84を通って、更にMUX80を通りRAMメモリ16に書き込まれ、これによりサイクルを完了する。ここではRAMメモリ16内のデータはもはやNANDメモリ14内の同じアドレスにあるデータと一貫性がない。この一貫性の問題は、全て上述されたように、メモリコントローラ12が必要に応じて自動的に書き込みキャッシュフラッシュを開始するか、又はホストデバイス20が常に書き込みキャッシュフラッシュを開始することによって解決される。
書き込みミスの別の起こり得るケースは、キャッシュフラッシュを伴う書き込みミスと呼ばれる。このケースでは、NANDメモリ14からのデータのページ全体は、NANDメモリ14内のデータよりも新しい、RAMメモリ16内のあるデータを上書きすることなくRAMメモリ16に格納することはできない。これは、データ一貫性の問題を生じる。従って、RAMメモリ16内のデータのページは、最初にNANDメモリ14に書き込む必要があり、その後で、異なる位置のNANDメモリ14からのデータをRAMメモリ16に読み込むことができる。一連の動作は以下の通りである。ホストデバイス20によるアドレスバス22からの信号のページアドレス部分をCAM66からのページアドレス信号66aと比較して、アドレスバス22からのアドレス信号が、カレントページアドレスのいずれかの中にあるかどうかを判断する。この比較はミスとなり、ヒット/ミス比較論理68がMCC/ECCユニット72に対して書き込みミス信号を送信し、MCC/ECCユニット72が書き込み一貫性サイクルを開始する。更に、ヒット/ミス比較論理68は、ウェイト状態信号26上の信号をアサートする。NANDメモリ14からのデータがRAMメモリ16に読み込まれる場合には、データ一貫性の問題が生じるので、MCU64の制御下のMCC/ECCユニット72は、最初にRAMメモリ16内のデータのページをNANDメモリ16に書き込む必要があると判断する。MCUユニット64は、FFS動作を実行し、RAMメモリ16からのアドレスをNANDメモリ14のアドレスに変換する。
データのページ全体が、RAMメモリ16から読み出され、MUX80を通ってNANDメモリ14に供給され、そこでNANDメモリ14に格納される。その後、ホストデバイス20からのアドレスは、FFS動作により物理NANDアドレスに変換される。次に、MCC/ECCユニット72は、FFSからの物理NANDアドレスを使用してNANDメモリ14に対して適切なアドレス信号及び制御信号を生成し、更に、RAMメモリ16に対してインデックスアドレス及び制御信号を生成する。次に、NANDメモリ14から読み出されたデータのページ全体は、NANDメモリ14からMUX80を通ってRAMメモリ16に転送され、そこでMCC/ECCユニット72からのオフセットアドレス及びインデックスアドレスレジスタ66bからのインデックスアドレスにより特定されたRAMメモリ16内の位置のページに書き込まれ、MCC/ECCユニット72により動作されて、誤り訂正チェックなどを通じてデータの完全性が確保される。次いで、CAM66のカレントページアドレスレジスタが更新され、カレント読み出しミスのアドレスを含むページアドレス66a及び関連するインデックスアドレス66bを追加する。ヒット/ミス比較論理68は、ウェイト状態信号26上に信号をディアサートする。更に、MCUは、MUX80をデフォルト位置に切り替える。ヒット/ミス比較論理68は、インデックスアドレス66bをMUX70に送信し、そこでインデックスアドレスはアドレスバス22からのオフセットアドレスと組み合わされて、RAMメモリ16に書き込むアドレスを形成する。次いでデータは、ホストデバイス20からデータバス24にMUX84を介し、更にMUX80を介してRAMメモリ16内に書き込まれる。キャッシュフラッシュのない書き込みミスに関する前述の説明と同様に、RAMメモリ16のデータはここではより新しくなっており、データの一貫性の問題が生じ、ホストデバイス20がキャッシュフラッシュを開始するか、或いはメモリコントローラ12がキャッシュフラッシュ動作を開始することにより解決することができる。
書き込みヒット、キャッシュフラッシュのない書き込みミス、キャッシュフラッシュのある書き込みミスの各々の場合では、この動作は、ホストデバイス20の視点からRAMデバイスに対する書き込みと同様であり、書き込みミスの場合には待ち時間を伴う。ホストデバイス20は、アドレスの変換及び/又はデータの一貫性に対処する必要がない。
データの一貫性問題を解決するためにはRAMメモリ16からNANDメモリ14への書き込み動作を最初に行う必要があるので、キャッシュフラッシュのある読み出しミス又はキャッシュフラッシュのある書き込みミスの場合の待ち時間を更に短縮するために、以下のことを実施することができる。NANDメモリ14に書き込まれることになるデータのページは、最初にRAMメモリ16からローカルSRAM46に書き込まれる。これは、直接NANDメモリ14に書き込むよりも遙かに高速の動作である。これ以降、キャッシュフラッシュのある読み出しミス又はキャッシュフラッシュのある書き込みミスの動作は、キャッシュフラッシュのない読み出しミス又はキャッシュフラッシュのない書き込みミスの動作であるかのように続く。読み出しミス又は書き込みミスの動作が完了すると、ローカルSRAM46に格納されたデータは、メモリデバイス10がアイドル状態であるか、又はアクセスがNORメモリのアクセス部分50、もしくはRAMメモリのアクセス部分54、もしくは構成レジスタのアクセス部分56での動作に限定されている場合、バックグラウンド動作でNANDメモリ14に書き込むことができる。
PNOR動作では、この動作は、ホストデバイス20の視点からRAMメモリに対して実行するのと同様であり、データは不揮発性であるが、ホストデバイス20がセクタ又はブロック消去などのNORプロトコルコマンドを送出することがない点に留意されたい。しかしながら、メモリデバイス10がRAMメモリ16及びNANDメモリ14を用いてNOR動作をエミュレート可能であることはまた、本発明の範囲内である。この場合、NORメモリのアクセス部分50に対するメモリ空間のマッピングは、NORメモリ44への正確なマッピングよりも拡大することになる。NORメモリのアクセス部分50は、RAMメモリ16の一部にマップされ、RAMメモリ16はNANDメモリ14に静的にマップすることができるので、アクセス中の待ち時間の問題は存在しない。NANDメモリ14からのデータは、電源投入時にはRAM16にロードされ、NORメモリのアクセス部分50への読み出し/書き込みは、RAMメモリ16からの読み出し又はRAMメモリ16への書き込みとなる。他の唯一の変更は、メモリコントローラ12がNORプロトコルコマンドに応答することである。上述のように、かかるNORプロトコルコマンドが、ホストデバイス20により送出されると、これらは一連の固有データパターンとして供給される。データは、データバス24上に供給され、MUX84を介し、MUX80を通る。アドレスバス上に供給されたアドレスは、この動作がRAMメモリ16によりエミュレートされたNORメモリアクセス部分50におけるものとなることを示すので、MUX74は、MCU64がデータパターンを受信できるように切り替えられる。そのデータパターンが、NORコマンドとしてデコードされると、例えばそのコマンドが消去である場合には、MCUはそのNORコマンドでNANDメモリ14を操作する。勿論、RAMメモリ16は、揮発性メモリであるため、「消去」される必要はない。従って、NORプロトコルコマンドの実行は、NORプロトコルコマンドを実行する真のNORメモリ44よりもNORメモリ44をエミュレートするRAMメモリ16によってより高速の操作となる。その上、このエミュレーションは、NORプロトコルコマンドのフルセットをエミュレートする必要はない。代わりに、コントローラ12は、NORプロトコルコマンドの一部のセットをエミュレートすることができる。従って、本明細書で使用する用語「NORプロトコルコマンド」とは、例えばIntel又はAMDにより公表されているNORプロトコルコマンドのフルセットからの1つ又は複数のコマンドを意味する。
RAMメモリの動作
RAMメモリ16の読み出し動作では、ホストデバイス20は、メモリ空間のRAMメモリアクセス部分54内にあるアドレス信号をアドレスバス22でメモリデバイス10に送信する。更に、ホストデバイス20によって適切な制御信号が、コントロールバス32でメモリデバイス10に送信される。アドレス信号は、RAMメモリアクセス部分54にあるので、ヒット/ミス比較論理68がMUX70を起動し、アドレスバス22及びコントロールバス32からのアドレス信号/制御信号をRAMメモリ16に供給することができるようにする。しかしながら、ウェイト状態信号26はアサートされない。更に、ホストデバイス20からのアドレスはデコードされ、コントロールバス32からの制御信号と共に、RAMメモリ16に供給されるアドレス信号を形成し、そこで、供給されるアドレスからのデータが読み出される。次いで、データは、データバスに沿ってMUX80及びMUX84に供給され、データバス24に沿ってホストデバイス20に出されることで、読み出しサイクルを完了する。
RAMメモリ16の書き込み動作では、ホストデバイス20は、メモリ空間のRAMメモリアクセス部分54内にあるアドレス信号をアドレスバス22でメモリデバイス10に送信する。更に、ホストデバイス20によって適切な制御信号が、コントロールバス32でメモリデバイス10に送信される。アドレス信号は、RAMメモリアクセス部分54にあるので、ヒット/ミス比較論理68がMUX70を起動し、アドレスバス22及びコントロールバス32からのアドレス信号/制御信号をRAMメモリ16に供給することを可能にする。しかしながら、ウェイト状態信号26はアサートされない。更に、ホストデバイス20からのアドレスがデコードされ、コントロールバス32からの制御信号と共に、RAMメモリ16に供給されるアドレス信号を形成し、ここで、データバス24からのデータは、供給されるアドレスでRAMメモリ16に書き込まれる。
ホストデバイス20の観点からすると、RAMメモリアクセス部分における読み出し又は書き込みの動作は、待ち時間なしでRAMデバイスにアクセスするのと同様である。
構成レジスタの動作
構成レジスタの動作では、ホストデバイス20は、メモリ空間の構成レジスタアクセス部分56内にあるアドレス信号をアドレスバス22でメモリデバイス10に送信する。更に、ホストデバイス20によって、適切な制御信号がコントロールバス32でメモリデバイス10に送信される。次いでデータが不揮発性レジスタ60に書き込まれる。
NANDメモリの動作
NANDメモリ14の読み出し動作では、ホストデバイス20は、メモリ空間のマスストレージアクセスセクション58、すなわちATAメモリアクセス部分58内にあるアドレス信号をアドレスバス22でメモリデバイス10に送信する。更に、ホストデバイス20によって、適切な制御信号がコントロールバス32でメモリデバイス10に送信される。アドレス信号は、PNORメモリアクセス部分52以外の空間にあるので、ヒット/ミス比較論理68は起動されず、ウェイト状態信号26はアサートされない。ホストデバイス20は、ATAプロトコルに従って、ATA読み出し/書き込みコマンドに対してタスクファイルレジスタ79に読み出し/書き込みをする。タスクファイルレジスタ79は、コマンド、ステータス、シリンダ、ヘッド、セクタなどを格納するレジスタを含む。MCU64の制御下にあるMCC/ECCユニット72は、ホスト論理アドレスをNAND物理アドレスに変換するフラッシュファイルシステムを操作し、欠陥NANDセクタを使用することを回避する能力を備える。米国特許第6,427,186号、第6,405,323号、第6,141,251号、及び第5,982,665号を参照し、これらの開示は、引用により全体が本明細書に組み込まれる。ホストデバイス20からの各論理アドレスは、Vpageと呼ばれるテーブルにエントリを有する。エントリの内容は、論理アドレスのデータが格納されている物理アドレスを指す。
あるデータのページをNANDメモリ14から読み出すために、アドレス信号及び制御信号がNANDメモリ14に供給される。ホストデバイス20は、ATAプロトコルに従って、タスクファイルレジスタ79がコマンド及び論理アドレスを格納する。各セクタサイズは512バイトである。ホストデバイス20は、メモリ空間のタスクファイルレジスタのアクセス部分58にあるステータスレジスタ79を読み出すことにより、メモリ10の準備状況を調べる。ホストデバイス20は、メモリ空間58内のコマンドレジスタ79に「read」コマンドを書き込む。MCU64は、論理アドレスから物理アドレスへのFFS変換を行い、MCU64の制御下にあるMCC/ECCユニット72が、NANDメモリ14からデータを読み出し、データのページをバッファ81に転送する。データのページ全体がデータレジスタ81に格納され、MCC/ECCユニット72により操作されて、誤り訂正チェックなどを介してデータの完全性が確保された後、データはデータバス24に沿ってメモリコントローラ12から読み出される。
NANDメモリ14への書き込み動作は、NANDメモリ14からの読み出しの動作と同様である。ホストデバイス20は、タスクメモリ空間58部分にあるステータスレジスタ79を読み出すことにより、メモリ10の準備状況を調べる。ホストデバイス20は、1ページのデータをデータレジスタ81に書き込み、次に論理アドレスと共に、「write」コマンドをコマンドレジスタ79に書き込む。その後、FFSを使用するMCU64が、論理アドレスを物理アドレスに変換し、MCU64の制御下にあるMCC/ECCユニット72が、その1ページのデータをATAバッファ81からNANDメモリ14へ書き込む。
FFSは、更新されることになるページの物理アドレスを特定することによってデータのページを更新する。FFSは、消去されたセクタを「バッファセクタ」として探索し、又は消去されたセクタがない場合には、あるセクタに対し消去動作を最初に行う。次にFFSは、変更されておらず、且つプログラムされていない古いデータをバッファセクタに読み出す。次いでFFSは、更新されたページデータをプログラムする。次にFFSは、次の要求を待機する。次のページが同じ消去セクタ上にある場合、FFSは更新動作を続ける。次のページが、転送中の消去セクタ以外である場合、変更されていないデータの残りは、バッファセクタにコピーされることになる。マッピングテーブルのエントリは、バッファセクタの物理アドレスに変更される。次いで、新しいページの更新動作が開始される。
図4を参照すると、メモリデバイス110の第2の実施形態が示されている。このメモリデバイス110は、図1に示したメモリデバイス10と同様である。従って、同じ要素は同じ参照符号で示されている。メモリデバイス110とメモリデバイス10との唯一の違いは、メモリデバイス100では、第2のRAMバス40が、RAMメモリ100をメモリコントローラ12にではなく、直接ホストデバイス20に接続することである。従って、メモリデバイス110では、ホストデバイスは、RAMメモリ100に直接アクセスし制御する。
メモリデバイス10の実施形態とメモリデバイス110の実施形態とのこの相違点は、図5に示したメモリマッピングに反映されている。メモリデバイス10と同様に、メモリデバイス110のメモリマッピングは、NORメモリ44にマップされるNORメモリアクセス部分50と、メモリデバイス110のRAMメモリ16にマップされ、その後NANDメモリ14にマップされるPNORメモリアクセス部分52と、RAMメモリ16にマップされるRAMメモリアクセス部分54とを含む。しかしながら、第2のRAMバス40を介してホストデバイス20が直接アクセス可能なRAMメモリ100では、メモリデバイス110のメモリマッピングはまた、RAMメモリ100に直接マップする別のRAMメモリアクセス部分55を含む。従って、メモリデバイス110はまた、メモリデバイス10で説明したものと同様に、構成レジスタアクセス部分56と、最後に、ATAメモリアクセス部分58とを含む。
メモリコントローラ12がホストデバイス20と、更にNANDメモリ14とインターフェースをとると、メモリデバイス10は、従来技術のメモリデバイスよりも強い保護が得られる。詳細には、メモリコントローラは、デジタル権利管理に関することと同様、NANDメモリ14に格納されたあるデータへのアクセスを制限することができる。更にメモリコントローラ12は、機密データを保護するために、NANDメモリ14に格納されたデータを暗号化することができる。最後に、メモリコントローラ12は、NANDメモリ14のある部分のデータを誤って消去することからの保護を提供することができる。最後に、プログラムがNORメモリ62内に格納されていることで、メモリコントローラ12は、ホストデバイス20からの開始のコマンドを必要としない点において自動作動デバイスである。
図6を参照すると、本発明のメモリデバイス210のブロック図が示されている。メモリデバイス210は、メモリデバイス10と同様である。これは、メモリコントローラ12と同様に、NANDメモリ14及びRAMメモリ16に接続されたメモリコントローラ112を含む。コントローラ112は、単一のバス23に接続され、このバスは、図1に示した第1のRAMアドレスバス22と、第1のRAMデータバス24と、第1のRAMコントロールバス32との集合である。しかしながら、図1に示す実施形態とは異なり、単一のバス23は、複数のプロセッサ120(a〜c)に接続される。複数のプロセッサ120(a〜c)の各々はバス23にアクセスし、これによりメモリデバイス210にアクセスすることができる。従って、単一のバス23は、プロセッサ120(a〜c)の全てによって共有される。
プロセッサ120(a〜c)の各々がメモリデバイス210にアクセスするために、各プロセッサ120は、バス23にアクセスするための許可を要求する信号をコントローラ112に送る関連バス要求信号ライン122と、該要求を認可するメモリデバイス210のコントローラ112からのバス認可信号ライン124とを有する。従って、コントローラによってプロセッサ120の1つに許可が認可されると、他のプロセッサ120へのバス認可ライン124は禁止モードになる。プロセッサ120の各々は、図2に示すように、メモリデバイス210のメモリ空間の全てにアクセスすることができ、又はメモリデバイス210のメモリ空間を分割して、一定のアドレス空間だけが一定のプロセッサ120に利用されるようにすることができる。メモリデバイス210の実施形態の欠点は、プロセッサ120の全てが、同じバス23を共有しなければならないことである。従って、パフォーマンスヒットになる場合がある。
図7を参照すると、本発明のメモリデバイス310の別の実施形態のブロック図が示されている。メモリデバイス310は、メモリデバイス210と同様である。メモリデバイス310は、NANDメモリ14と、RAMメモリ16とに接続されたメモリコントローラ212を含む。メモリコントローラ212は、3つのバス23(a〜c)に接続され、このバスの各々は、図1に示した第1のRAMアドレスバス22と、第1のRAMデータバス24と、第1のRAMコントロールバス32との集合である。バス23(a〜c)の各々は、1つのプロセッサ120(a〜c)に接続される。複数のプロセッサ120(a〜c)の各々が、そのバス23にアクセスし、これによりメモリデバイス310にアクセスすることができる。
更に、メモリコントローラ212は、複数のコントローラ12(a〜c)を含み、各コントローラ12が専用の関連するNORメモリ44とSRAMメモリ46とを有する。すなわち、各プロセッサ120は、関連する専用バス23と、関連する専用コントローラ12とを有する。従って、図6に示したメモリデバイス210の実施形態とは異なり、各プロセッサ120がバス認可を要求する(及び待機する)必要がない。更に、各コントローラ12が、専用NORメモリ44を有するので、図2に示すアドレス空間のNORメモリアクセス部分50は、プロセッサ120の各々が個々にアドレス可能である。その上、プロセッサ120の各々に専用の各コントローラ12の各々におけるSRAM46は、そのプロセッサ120にだけ役立つ1次キャッシュとして機能する。メモリデバイス310は、プロセッサ120の全てにより一般的に共有されるNANDメモリ14及びSDRAMメモリ16を有する。従って、NANDメモリ14又はSDRAM16へのアクセス要求は、アービトレーション回路250に供給する必要がある。コントローラ12が、SDRAMメモリ16へのアクセスを要求する場合、コントローラは、バス要求ラインでアービトレーション回路250に要求し、アービトレーション回路250は、要求しているコントローラ12にバス認可信号を送信することで応答する。次いで、アービトレーション回路250は、他のコントローラ12によるバスへのアクセスを禁止する。これは、図6に示すバス23のアクセスに関してこれまで説明した方式と同様である。メモリコントローラ212からは、図1で図示し説明した実施形態と同様に、単一のバス40がSDRAM16に接続し、単一のバス42がNANDメモリ14に接続している。
動作中、ヒットがあるときにはプロセッサ120側では性能の低下はない。プロセッサの各々が、NORメモリアドレス空間50へのアクセスを要求する場合でもやはり性能の低下はない。各プロセッサ120がPNOR空間52又はRAMアドレス空間54のアドレスを要求し、1次キャッシュミスがある場合、すなわちデータが関連するSRAM46で見つからない場合には、コントローラ12の各々は、SDRAM16へのバスの制御を求めてアービトレーション回路250にアクセスする。2次キャッシュもまたミスである場合、コントローラ12は、NANDメモリ14へのバスの制御を求める。データが、NANDメモリ14から読出され、2次キャッシュメモリSDRAM16に入ると、その同じデータをまた、(SDRAMメモリ46のサイズに応じて)要求中のコントローラ12における1次キャッシュSRAMメモリ46に書き込むことも可能である。全てのプロセッサ120(a〜c)が別々のアドレスレンジを使用する場合、個々のキャッシュが維持されることになる。全てのプロセッサ120(a〜c)が同じアドレスレンジを共有する場合は、変更、排他、共有、無効(MESI)キャッシュプロトコルが使用される。1つの高密度メモリのSDRAMメモリ16又はNANDメモリ14を有することは、複数の低密度メモリを有するよりもコスト効率が良い。
図8を参照すると、本発明のメモリデバイス410の別の実施形態のブロック図が示されている。メモリデバイス410は、メモリデバイス310と同様である。メモリデバイス410は、メモリコントローラ212と同様に単一のバス42を介してNANDメモリ14に接続され、且つ複数のバス40(a〜c)を介して複数のRAMメモリ16に接続されたメモリコントローラ312を含む。メモリコントローラ312は、3つのバス23(a〜c)に接続され、このバスの各々は、図1に示した第1のRAMアドレスバス22と、第1のRAMデータバス24と、第1のRAMコントロールバス32との集合である。バス23(a〜c)の各々は、関連するプロセッサ120(a〜c)に接続される。複数のプロセッサ120(a〜c)の各々が、そのバス23にアクセスし、これによりメモリデバイス410にアクセスすることができる。
更に、メモリコントローラ312は、複数のコントローラ12(a〜c)を含み、各コントローラ12が専用の関連するNORメモリ44及びSRAMメモリ46を有し、更に関連する専用のSDRAMメモリ16を有する。従って、各プロセッサ120は、関連する専用バス23と、関連する専用コントローラ12と、関連するSDRAMメモリ16とを有する。この結果、図7に示したメモリデバイス310の実施形態とは異なり、各プロセッサ120は、SDRAMメモリ16に格納された2次キャッシュにアクセスしたい場合にバス認可を要求する(及び待機する)必要がない。更に、各コントローラ12が、専用NORメモリ44を有するので、NORメモリアクセス部分50は、プロセッサ120の各々が別々にアドレス可能である。その上、プロセッサ120の各々に専用であるコントローラ12及びSDRAM16の各々におけるSRAM46は、そのプロセッサ120にだけ役立つ1次及び2次キャッシュとして機能する。メモリデバイス410は、プロセッサ120の全てに一般的に共有されるNANDメモリ14を有する。従って、NANDメモリ14へのアクセス要求は、アービトレーション回路25に供給する必要がある。
動作中、ヒットがあるときにはプロセッサ120側では性能の低下はない。プロセッサの各々が、NORメモリアドレス空間50へのアクセスを要求する場合でもやはり性能の低下はない。各プロセッサ120がPNOR空間52又はRAMアドレス空間54のアドレスを要求し、1次キャッシュミスがある場合、すなわちデータが関連するSRAM46で見つからない場合には、コントローラ12の各々は、関連するSDRAMメモリ16にアクセスする。2次キャッシュもまたミスである場合、コントローラ12は、NANDメモリ14へのバスの制御を求める。データが、NANDメモリ14から読出されると、データは2次キャッシュメモリSDRAM16に入る。全てのプロセッサ120(a〜c)が別々のアドレスレンジを使用する場合、個々のキャッシュは維持されることになる。全てのプロセッサ120(a〜c)が同じアドレスレンジを共有する場合は、変更、排他、共有、無効(MESI)キャッシュプロトコルが使用される。1つの高密度NANDメモリ14を有することは、複数の低密度メモリを有するよりもコスト効率が良い。
図9を参照すると、本発明のメモリデバイス510の別の実施形態のブロック図が示されている。メモリデバイス510は、メモリデバイス410と同様である。メモリデバイス510は、メモリコントローラ312と同様に、単一のバス42を介してNANDメモリ14に接続されたメモリコントローラ412を備える。メモリコントローラ312は、3つのバス23(a〜c)に接続され、このバスの各々は、図1に示した第1のRAMアドレスバス22と、第1のRAMデータバス24と、第1のRAMコントロールバス32との集合である。バス23(a〜c)の各々は、関連するプロセッサ120(a〜c)に接続される。複数のプロセッサ120(a〜c)の各々が、そのバス23にアクセスし、これによりメモリデバイス410にアクセスすることができる。
更に、メモリコントローラ312は、複数のコントローラ12(a〜c)を含み、各コントローラ12が専用の関連するNORメモリ44及びSRAMメモリ46、並びにこれに一体化されたSDRAM16を有する。従って、図8に示したメモリデバイス410の実施形態と異なり、メモリデバイス510は、メモリコントローラ412をメモリコントローラ412の外部にあるSDRAM16に接続するバス40がない。他の全ての点では、メモリデバイス510は、メモリデバイス410と同様である。
本発明には多くの態様がある。まず、メモリデバイス10、110、210、310、410、又は510は、汎用メモリデバイスである。メモリデバイスは、RAMアドレス信号を受信する第1のアドレスバスと、RAMデータ信号を受信する第1のデータバスと、RAM制御信号を受信する第1のコントロールバスとを有するメモリコントローラを有する。メモリコントローラは、組み込みのNORメモリを有し、更に、揮発性RAMメモリとインターフェースをとる第2のアドレスバスと、揮発性RAMメモリとインターフェースをとる第2のデータバスと、揮発性RAMメモリとインターフェースをとる第2のコントロールバスとを有する。このコントローラは更に、不揮発性NANDメモリとインターフェースをとる第3のアドレス/データバスと、不揮発性NANDメモリとインターフェースをとる第3のコントロールバスとを有する。このメモリデバイスは更に、上記第2のアドレスバスと、上記第2のデータバスと、上記第2のコントロールバスとに接続されたRAMメモリを有する。このメモリデバイスは更に、第3のアドレス/データバスと第3のコントロールバスとに接続された不揮発性NANDメモリを有する。このコントローラは、第1のアドレスバスに供給されるアドレス信号に応答することによりNORメモリが、第1のアドレスバスに供給される第1のアドレスレンジに応答し、これによりRAMメモリが、第1のアドレスバスに供給される第2のアドレスレンジに応答し、更にこれによりNANDメモリが、第1のアドレスバスに供給される第3のアドレスレンジに応答する。
本発明の更に別の態様では、メモリデバイスは、汎用メモリデバイスであり、ここでユーザがメモリ空間の割り当てを定義することができる。メモリデバイスは、RAMアドレス信号を受信する第1のアドレスバスと、RAMデータ信号を受信する第1のデータバスと、RAM制御信号を受信する第1のコントロールバスとを有するメモリコントローラを有する。メモリコントローラは、組み込みのNORメモリを有し、更に、揮発性RAMメモリとインターフェースをとる第2のアドレスバスと、揮発性RAMメモリとインターフェースをとる第2のデータバスと、揮発性RAMメモリとインターフェースをとる第2のコントロールバスとを有する。このコントローラは更に、不揮発性NANDメモリとインターフェースをとる第3のアドレス/データバスと、不揮発性NANDメモリとインターフェースをとる第3のコントロールバスとを有する。このメモリデバイスは更に、上記第2のアドレスバスと、上記第2のデータバスと、上記第2のコントロールバスとに接続されたRAMメモリを有する。このメモリデバイスは更に、第3のアドレス/データバスと第3のコントロールバスとに接続された不揮発性NANDメモリを有する。このメモリデバイスは、ユーザ定義のメモリ空間の割り当てに応答し、第1のアドレスバスに供給される第1のアドレスレンジでは、メモリデバイスは、NORプロトコルコマンドへの応答を含むNORメモリの動作に応答し、第1のアドレスバスに供給される第2のアドレスレンジでは、メモリデバイスはRAM動作に応答し、アドレスバスに供給される第3のアドレスレンジでは、メモリデバイスはATAディスクドライブ装置として動作するNANDメモリの動作に応答し、ここで、第1、第2及び第3のアドレスレンジは全てユーザが定義することができる。
本発明の更に別の態様では、メモリデバイスは、RAMアドレス信号を受信する第1のアドレスバスと、RAMデータ信号を受信する第1のデータバスと、RAM制御信号を受信する第1のコントロールバスとを有するメモリコントローラを有する。メモリコントローラは更に、揮発性RAMメモリとインターフェースをとる第2のアドレスバスと、揮発性RAMメモリとインターフェースをとる第2のデータバスと、揮発性RAMメモリとインターフェースをとる第2のコントロールバスとを有する。このコントローラは更に、不揮発性NANDメモリとインターフェースをとる第3のアドレス/データバスと、不揮発性NANDメモリとインターフェースをとる第3のコントロールバスとを有する。このメモリデバイスは更に、上記第2のアドレスバスと、上記第2のデータバスと、上記第2のコントロールバスとに接続されたRAMメモリを有する。このメモリデバイスは更に、第3のアドレス/データバスと第3のコントロールバスとに接続された不揮発性NANDメモリを有する。コントローラは更に、第1のアドレスバス上の第1のアドレスを受信して、第1のアドレスを不揮発性NANDメモリ内の第2のアドレスにマップし、揮発性RAMメモリが不揮発性NANDメモリ内の第2のアドレスとやりとりするデータ用のキャッシュとして役立つ手段と、キャッシュとして揮発性RAMメモリに格納されたデータと不揮発性NANDメモリの第2のアドレスにあるデータとの間のデータの一貫性を保持する手段とを有する。更に、揮発性RAMメモリに格納されたデータと不揮発性NANDメモリに格納されたデータとの間のデータの一貫性を保持する手段は、ハードウェアベース、又はソフトウェアベースとすることができる。最後に、第1のアドレスバス上のアドレスを不揮発性NANDメモリ内の第2のアドレス上のアドレスにマップする手段もまたハードウェアベース、又はソフトウェアベースとすることができる。
本発明の更に別の態様では、メモリデバイスは、NORアドレス信号を受信する第1のアドレスバスと、NORデータ信号及びデータプロトコルコマンドを受信する第1のデータバスと、NOR制御信号を受信する第1のコントロールバスとを有するメモリコントローラを有する。メモリコントローラは更に、揮発性RAMメモリとインターフェースをとる第2のアドレスバスと、揮発性RAMメモリとインターフェースをとる第2のデータバスと、揮発性RAMメモリとインターフェースをとる第2のコントロールバスとを有する。このコントローラは更に、不揮発性NANDメモリとインターフェースをとる第3のアドレス/データバスと、不揮発性NANDメモリとインターフェースをとる第3のコントロールバスとを有する。このメモリデバイスは更に、上記第2のアドレスバスと、上記第2のデータバスと、上記第2のコントロールバスとに接続されたRAMメモリを有する。このメモリデバイスは更に、第3のアドレス/データバスと第3のコントロールバスとに接続された不揮発性NANDメモリを有する。このコントローラは更に、RAMメモリを作動して、NORプロトコルコマンドを含むNORメモリデバイスの動作をエミュレートする。
単一のホストシステム又はユーザに接続された、メモリコントローラを含むメモリデバイスの第1の実施形態のブロックレベル図である。 メモリデバイスの外部にある単一のホスト又はユーザによって参照されるアドレス空間の、図1に示すメモリデバイスの第1の実施形態におけるNORメモリ、RAMメモリ、及びNANDメモリへのマッピングを示すメモリマッピング図である。 メモリデバイスに使用されるコントローラの詳細なブロックレベルの回路図である。 単一のホストシステム又はユーザに接続された、メモリコントローラを含むメモリデバイスの第2の実施形態のブロックレベル図である。 メモリデバイスの外部にある単一のホスト又はユーザによって参照されるアドレス空間の、図4に示すメモリデバイスの第2の実施形態のNORメモリ、RAMメモリ、及びNANDメモリへのマッピングを示すメモリマッピング図である。 複数の要求バスを備えて単一のバスを介して複数のホストシステム又はユーザに接続された、本発明のメモリコントローラを含む本発明のメモリデバイスの第3の実施形態のブロックレベル図である。 複数のバスを介して複数のホストシステム又はユーザに接続された、本発明のメモリコントローラを含む本発明のメモリデバイスの第4の実施形態のブロックレベル図である。 複数のバスを介して複数のホストシステム又はユーザに接続された、本発明のメモリコントローラを含む本発明のメモリデバイスの第5の実施形態のブロックレベル図である。 複数のバスを介して複数のホストシステム又はユーザに接続された、本発明のメモリコントローラを含む本発明のメモリデバイスの第6の実施形態のブロックレベル図である。
符号の説明
10 メモリデバイス
12 メモリコントローラ
14 NANDメモリ
16 RAMメモリ
20 ホストデバイス

Claims (40)

  1. メモリコントローラであって、
    ホストデバイスからアドレス信号及びデータ信号を受信する第1のバスと、
    揮発性RAMメモリデバイスとインターフェースをとる第2のバスと、
    NANDメモリデバイスとインターフェースをとる第3のバスと、
    前記メモリコントローラの動作を開始するため前記コントローラ用のブート可能コードを格納するための不揮発性メモリと、
    前記第1のバスから第1のアドレスを受信し、前記第1のアドレスを前記NANDメモリデバイス用の第2のアドレスにマップし、前記NANDメモリデバイス内の前記第2のアドレスへのデータ又は該アドレスからのデータ用のキャッシュとして前記揮発性RAMメモリデバイスを操作する手段と、
    前記NANDメモリデバイスの前記第2のアドレスに格納されたデータとキャッシュとして機能する前記揮発性RAMメモリ内に格納されたデータとの間のデータの一貫性を維持する手段と、
    を含むメモリコントローラ。
  2. 前記第2のバスに接続されたRAMを更に含む請求項1に記載のメモリコントローラ。
  3. 前記第1のバスからNORプロトコルコマンドを受信し、前記NANDメモリデバイス上で前記NORコマンドを操作する手段を更に含む請求項1に記載のメモリコントローラ。
  4. メモリコントローラであって、
    ホストデバイスからアドレス信号及びデータ信号を受信する第1のバスと、
    揮発性RAMメモリデバイスとインターフェースをとる第2のバスと、
    NANDメモリデバイスとインターフェースをとる第3のバスと、
    前記メモリコントローラの動作を開始するため前記コントローラ用のブート可能コードを格納するためのNORメモリと、
    前記第1のバスからNORプロトコルコマンドを受信し、前記NORメモリを操作し、前記揮発性RAMメモリデバイスを操作してNORメモリの動作をエミュレートする手段と、
    前記NANDメモリデバイスをATAストレージとして操作する手段と、
    を含むメモリコントローラ。
  5. 前記第1のバスからアドレスをNOR動作と、RAM動作と、NAND動作とに分けるために、ホストデバイスからの構成可能パラメータを格納するレジスタを更に含む請求項4に記載のメモリコントローラ。
  6. 前記第2のバスに接続された揮発性RAMメモリデバイスを更に含む請求項4に記載のメモリコントローラ。
  7. 前記揮発性RAMメモリデバイスを操作してNORメモリの動作をエミュレートする前記手段が、
    前記第1のバスから第1のアドレスを受信し、前記第1のアドレスを前記NANDメモリデバイス用の第2のアドレスにマップし、前記NANDメモリデバイス内の前記第2のアドレスへのデータ又は該アドレスからのデータ用のキャッシュとして前記揮発性RAMメモリを操作する手段と、
    前記NANDメモリデバイスの前記第2のアドレスに格納されたデータとキャッシュとして機能する前記揮発性RAMメモリ内に格納されたデータとの間のデータの一貫性を維持する手段と、
    を更に含む請求項4に記載のメモリコントローラ。
  8. メモリコントローラであって、
    ホストデバイスからアドレス信号及びデータ信号を受信する第1のバスと、
    揮発性RAMメモリデバイスとインターフェースをとる第2のバスと、
    NANDメモリデバイスとインターフェースをとる第3のバスと、
    前記RAMメモリデバイスによる動作と、前記NANDメモリデバイスによる動作とに前記第1のバスからアドレスを分けるため、ホストデバイスからの構成可能パラメータを格納するレジスタと、
    を含むメモリコントローラ。
  9. メモリコントローラであって、
    ホストデバイスからアドレス信号及びデータ信号を受信する第1のバスと、
    揮発性RAMメモリデバイスとインターフェースをとる第2のバスと、
    NOR不揮発性メモリデバイスであって、前記コントローラを操作するように構成されたプログラムコードを格納し、これにより前記コントローラによって受信される前記第1のバス上の第1のアドレスがNORプロトコルコマンドに応答して前記NORメモリを操作するように機能し、前記コントローラによって受信される前記第1のバス上の第2のアドレスがRAMメモリプロトコルに応答して前記RAMメモリを操作するように機能し、前記コントローラによって受信される前記第1のバス上の第3のアドレスがNORプロトコルコマンドをエミュレートする前記RAMメモリを操作するように機能するNOR不揮発性メモリデバイスと、
    を含むメモリコントローラ。
  10. メモリコントローラであって、
    ホストデバイスからアドレス信号及びデータ信号を受信する第1のバスと、
    揮発性RAMメモリデバイスとインターフェースをとる第2のバスと、
    NOR不揮発性メモリデバイスと、
    前記第1のバスからアドレスを、NORメモリデバイスとして前記NORメモリデバイスによる動作と、RAMメモリデバイスとして前記RAMメモリデバイスによる動作と、NORメモリデバイスの動作をエミュレートする前記RAMメモリデバイスによる動作とに分けるために、ホストデバイスからの構成可能パラメータを格納するレジスタと、
    を含むメモリコントローラ。
  11. NORメモリであって、
    NORプロトコルコマンド信号を受信する第1のバスを有するメモリコントローラの第1の集積回路ダイと、
    NANDメモリプロトコルでNANDメモリデバイスと通信する第2のバスを更に有する前記メモリコントローラと、
    前記メモリコントローラの動作を開始し、前記第1のバスからNORプロトコルコマンド受信して、これに応答して前記第2のバス上にNANDプロトコルコマンドを送出しNORメモリデバイスの動作をエミュレートするためのプログラムコードを格納するNORメモリを更に有する前記メモリコントローラと、
    前記第1の集積回路のデバイスの前記第2のバスに接続されたNANDメモリデバイスの第2の集積回路ダイと、
    を含み、
    前記第1及び第2の集積回路のデバイスが、共に同じパッケージ内にパッケージされていることを特徴とするNORメモリ。
  12. RAMメモリプロトコルでRAMメモリデバイスと通信する第3のバスを更に有する前記第1の集積回路ダイを更に含む請求項11に記載のNORメモリ。
  13. 前記第3のバスに接続されたRAMメモリを更に含む請求項12に記載のNORメモリ。
  14. 前記RAMメモリが、別個の集積回路ダイであり、前記第1及び第2の集積回路ダイと同じパッケージ内にパッケージされていることを特徴とする請求項13に記載のNORメモリ。
  15. 前記RAMメモリが、前記メモリコントローラと共に前記第1の集積回路ダイと一体化されていることを特徴とする請求項13に記載のNORメモリ。
  16. 前記RAMメモリが、前記NORプロトコルコマンドをエミュレートするように動作する前記NANDメモリデバイス用のキャッシュとして機能することを特徴とする請求項13に記載のNORメモリ。
  17. 前記第1のバスからアドレスをNOR動作と、前記NANDメモリを使用するNORエミュレーション動作とに分けるためのパラメータを格納するレジスタを更に有する前記メモリコントローラの第1の集積回路ダイを更に含む請求項13に記載のNORメモリ。
  18. 前記レジスタが、前記第1のバスからアドレスをNOR動作と、前記NANDメモリを使用するNORエミュレーション動作と、RAM動作と、NAND動作とに分けるためのパラメータを格納し、
    前記第1のバスからアドレスを分けるための前記パラメータが、ホストデバイスからの構成可能パラメータであることを特徴とする請求項17に記載のNORメモリ。
  19. 汎用メモリであって、
    ホストデバイスからアドレス信号及びデータ信号を受信する第1のバスと、NANDメモリとインターフェースをとる第2のバスと、RAMメモリとインターフェースをとる第3のバスと、NORメモリとインターフェースをとる第4のバスとを有するメモリコントローラと、
    前記第2のバスに接続されたNANDメモリと、
    前記第3のバスに接続されたRAMメモリと、
    前記第4のバスに接続されたNORメモリと、
    を含み、
    前記メモリコントローラが、前記第1のバスに供給されるNORプロトコルコマンドと、RAMプロトコルコマンドと、ATA NANDプロトコルコマンドとに応答することを特徴とする汎用メモリ。
  20. 前記汎用メモリが、モノリシック集積回路ダイであることを特徴とする請求項19に記載の汎用メモリ。
  21. 前記メモリコントローラが第1の集積回路ダイであり、前記NANDメモリが第2の集積回路ダイであり、前記RAMメモリが第3の集積回路ダイであり、前記NORメモリが前記メモリコントローラに一体化されたことを特徴とする請求項19に記載の汎用メモリ。
  22. 前記第1、第2、及び第3の集積回路ダイが、共にパッケージされていることを特徴とする請求項21に記載の汎用メモリ。
  23. 前記メモリコントローラが第1の集積回路ダイであり、前記NANDメモリが第2の集積回路ダイであり、前記RAMメモリ及び前記NORメモリが前記メモリコントローラに一体化されていることを特徴とする請求項19に記載の汎用メモリ。
  24. 前記第1及び第2の集積回路ダイが、共にパッケージされていることを特徴とする請求項23に記載の汎用メモリ。
  25. 前記NORメモリが、NORアドレスとして前記第1のバス上の第1のアドレスと、RAMアドレスとして前記第1のバス上の第2のアドレスと、ATA NANDアドレスとして前記第1のバス上の第3のアドレスとに応答するように構成されたプログラムコードを格納することを特徴とする請求項19に記載の汎用メモリ。
  26. 前記NORメモリが、前記メモリコントローラの動作を開始するように構成されたプログラムコードを更に格納することを特徴とする請求項25に記載の汎用メモリ。
  27. 前記メモリコントローラが、
    前記第1のバスからアドレスをNOR動作と、前記NANDメモリを使用するNORエミュレーション動作と、RAM動作と、ATA NAND動作とに分けるために、ホストデバイスからの構成可能パラメータを格納するレジスタを更に含む請求項26に記載の汎用メモリ。
  28. 前記NORメモリが、前記NANDメモリを使用するNORエミュレーション動作用のキャッシュとして前記RAMメモリが使用されるように構成されたプログラムコードを更に格納することを特徴とする請求項27に記載の汎用メモリ。
  29. ホスト定義可能メモリであって、
    ホストデバイスに接続し、アドレス信号及びデータ信号を受信するための第1のバスと、NORメモリに接続するための第2のバスと、RAMメモリに接続するための第3のバスと、NANDメモリに接続するための第4のバスとを有するメモリコントローラと、
    前記第2のバスに接続されたNORメモリと、
    前記第3のバスに接続されたRAMメモリと、
    前記第4のバスに接続されたNANDメモリと、
    前記第1のバスから第1のアドレスをNOR動作に、前記第1のバスから第2のアドレスを前記NANDメモリ使用のNORエミュレーション動作に、前記第1のバスから第3のアドレスをRAM動作に、及び前記第1のバスから第4のアドレスをATA NAND動作に分けるために、前記ホストデバイスからの構成可能パラメータを格納するレジスタと、
    を含むホスト定義可能メモリ。
  30. 前記NORメモリが、前記メモリコントローラと同じ集積回路ダイに一体化されていることを特徴とする請求項29に記載のホスト定義可能メモリ。
  31. 前記RAMメモリが、前記メモリコントローラと同じ集積回路ダイに一体化されていることを特徴とする請求項30に記載のホスト定義可能メモリ。
  32. 前記RAMメモリが第1の集積回路ダイであり、前記メモリコントローラが第2の集積回路ダイであって、前記第1の集積回路ダイと前記第2の集積回路ダイが共にパッケージされていることを特徴とする請求項30に記載のホスト定義可能メモリ。
  33. 前記NORメモリが、前記メモリコントローラの動作を開始するように構成されたプログラムコードを格納することを特徴とする請求項29に記載のホスト定義可能メモリ。
  34. NORエミュレーティングメモリであって、
    メモリコントローラの動作を開始するプログラムを格納するための不揮発性メモリを有し、ホストデバイスからアドレス及びデータ信号受信する第1のバスと、RAMメモリとインターフェースをとる第2のバスと、NANDメモリとインターフェースをとる第3のバスとを有するメモリコントローラと、
    前記第2のバスに接続された揮発性RAMメモリと、
    前記第3のバスに接続されたNANDメモリと、
    前記第1のバスからNORプロトコルコマンド及び第1のアドレスを受信し、前記第1のアドレスを前記NANDメモリ内の第2のアドレスにマップし、これに応答して前記NANDメモリを操作する手段であって、前記RAMメモリが前記NANDメモリ内の第2のアドレスへのデータ又は該アドレスからのデータ用のキャッシュとして機能する手段と、
    前記キャッシュとして前記RAM内に格納されたデータと前記NANDメモリ内の第2のアドレスのデータとの間のデータの一貫性を維持する手段と、
    を含むNORエミュレーティングメモリ。
  35. 前記受信手段及び維持手段が、前記不揮発性メモリ内に格納されたプログラムコードを含むことを特徴とする請求項34に記載のNORエミュレーティングメモリ。
  36. 前記揮発性RAMが前記メモリコントローラに組み込まれており、前記メモリコントローラが第1の集積回路ダイであり、前記NANDメモリが第2の集積回路ダイであり、前記第1及び第2のダイが共にパッケージされていることを特徴とする請求項34に記載のNORエミュレーティングメモリ。
  37. メモリデバイスであって、
    複数のホストデバイスとインターフェースをとるための複数の第1のバスを有し、前記各第1のバスが前記各ホストデバイスに接続され、複数の第2のバスを更に有するメモリコントローラと、
    前記複数の第2のバスに接続され、出力バスを有するアービトレーション回路と、
    前記アービトレーション回路の出力バスに接続されたNANDメモリと、
    を含み、
    前記ホストデバイスの各々が、前記アービトレーション回路を介して前記NANDメモリにアクセスすることを特徴とするメモリデバイス。
  38. 複数の第3のバスを有する前記メモリコントローラと、
    前記複数の第3のバスに接続され、出力バスを有する第2のアービトレーション回路と、
    前記第2のアービトレーション回路の出力バスに接続された揮発性RAMメモリと、を更に含み、
    前記ホストデバイスの各々が、前記第2のアービトレーション回路を介して前記揮発性RAMメモリにアクセスすることを特徴とする請求項37に記載のメモリデバイス。
  39. メモリデバイスであって、
    複数のホストデバイスとインターフェースをとる第1のバスを有し、前記第1のバスへのアクセスを認可するため前記各ホストデバイスに別々の制御信号を供給し、複数の第2のバス及び複数の第3のバスを更に有するメモリコントローラと、
    前記複数の第2のバスに接続され、第1の出力バスを有する第1のアービトレーション回路と、
    前記第1のアービトレーション回路の第1の出力バスに接続され、該第1のアービトレーション回路を介して前記ホストデバイスの各々がアクセスするNANDメモリと、
    前記複数の第3のバスに接続され、第2の出力バスを有する第2のアービトレーション回路と、
    前記第2のアービトレーション回路の第2の出力バスに接続された揮発性RAMメモリと、
    を含み、
    前記ホストデバイスの各々が、前記第2のアービトレーション回路を介して前記揮発性RAMメモリにアクセスすることを特徴とするメモリデバイス。
  40. メモリデバイスであって、
    各々が異なるホストデバイスからアドレス信号及びデータ信号を受信するようにして複数のホストデバイスとインターフェースをとる複数の第1のバスと、NANDメモリとインターフェースをとる第2のバスと、RAMメモリとインターフェースをとる第3のバスと、NORメモリとインターフェースをとる第4のバスとを有するメモリコントローラと、
    前記第2のバスに接続されたNANDメモリと、
    前記第3のバスに接続されたRAMメモリと、
    前記第4のバスに接続されたNORメモリと、
    を含み、
    前記メモリコントローラが、前記異なる第1のバスの各々に供給されるNORプロトコルコマンド、RAMプロトコルコマンド、及びATA NANDプロトコルコマンドに応答することを特徴とするメモリデバイス。
JP2006357457A 2005-12-28 2006-12-26 一体型メモリ及びコントローラ Pending JP2007183962A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US75493705P 2005-12-28 2005-12-28
US11/637,420 US20070147115A1 (en) 2005-12-28 2006-12-11 Unified memory and controller

Publications (1)

Publication Number Publication Date
JP2007183962A true JP2007183962A (ja) 2007-07-19

Family

ID=37951827

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006357457A Pending JP2007183962A (ja) 2005-12-28 2006-12-26 一体型メモリ及びコントローラ

Country Status (5)

Country Link
US (1) US20070147115A1 (ja)
EP (1) EP1804156A3 (ja)
JP (1) JP2007183962A (ja)
KR (1) KR100797325B1 (ja)
TW (1) TW200745858A (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009123191A (ja) * 2007-11-15 2009-06-04 Genesys Logic Inc Norインターフェイスフラッシュメモリ装置及びそのアクセス方法
US8484432B2 (en) 2008-03-11 2013-07-09 Kabushiki Kaisha Toshiba Memory system
JP2016532974A (ja) * 2013-09-03 2016-10-20 クアルコム,インコーポレイテッド マルチチップパッケージ上の異種メモリ用の統合メモリコントローラ
JP2018106746A (ja) * 2012-11-20 2018-07-05 アイ. ペドル,チャールズ ソリッドステートドライブアーキテクチャ
US10540094B2 (en) 2008-02-28 2020-01-21 Memory Technologies Llc Extended utilization area for a memory device
US10877665B2 (en) 2012-01-26 2020-12-29 Memory Technologies Llc Apparatus and method to provide cache move with non-volatile mass memory system
US10983697B2 (en) 2009-06-04 2021-04-20 Memory Technologies Llc Apparatus and method to share host system RAM with mass storage memory RAM
US11016678B2 (en) 2013-12-12 2021-05-25 Memory Technologies Llc Channel optimized storage modules
US11226771B2 (en) 2012-04-20 2022-01-18 Memory Technologies Llc Managing operational state data in memory module

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101469512B1 (ko) 2007-01-10 2014-12-05 모바일 세미컨덕터 코오포레이션 외부 컴퓨팅 디바이스의 성능 향상을 위한 어댑티브 메모리 시스템
US8904098B2 (en) 2007-06-01 2014-12-02 Netlist, Inc. Redundant backup using non-volatile memory
US8301833B1 (en) 2007-06-01 2012-10-30 Netlist, Inc. Non-volatile memory module
US8874831B2 (en) 2007-06-01 2014-10-28 Netlist, Inc. Flash-DRAM hybrid memory module
US20090157946A1 (en) * 2007-12-12 2009-06-18 Siamak Arya Memory having improved read capability
US7724568B2 (en) * 2008-02-29 2010-05-25 Silicon Storage Technology, Inc. Memory device having read cache
JP4551940B2 (ja) * 2008-03-01 2010-09-29 株式会社東芝 メモリシステム
TWI391941B (zh) * 2008-03-25 2013-04-01 Genesys Logic Inc 支援開機執行之儲存裝置
KR101003102B1 (ko) 2008-09-24 2010-12-21 한국전자통신연구원 멀티 프로세싱 유닛에 대한 메모리 매핑방법, 및 장치
US20100125444A1 (en) * 2008-11-17 2010-05-20 Siamak Arya Method And Apparatus For Reducing Read Latency In A Pseudo Nor Device
US9037773B2 (en) * 2008-12-16 2015-05-19 Mediatek Inc. Methods for processing and addressing data between volatile memory and non-volatile memory in an electronic apparatus
US20120066444A1 (en) * 2010-09-14 2012-03-15 Advanced Micro Devices, Inc. Resolution Enhancement of Video Stream Based on Spatial and Temporal Correlation
CN102820302B (zh) * 2011-06-09 2015-07-29 北京兆易创新科技股份有限公司 封装的存储芯片、嵌入式设备
WO2013184923A1 (en) * 2012-06-07 2013-12-12 Violin Memory, Inc. Memory system management
US9007860B2 (en) * 2013-02-28 2015-04-14 Micron Technology, Inc. Sub-block disabling in 3D memory
WO2014139047A1 (en) 2013-03-14 2014-09-18 Micron Technology, Inc. Memory systems and methods including training,data organizing,and/or shadowing
US9436600B2 (en) 2013-06-11 2016-09-06 Svic No. 28 New Technology Business Investment L.L.P. Non-volatile memory storage for multi-channel memory system
JP6021759B2 (ja) * 2013-08-07 2016-11-09 株式会社東芝 メモリシステムおよび情報処理装置
EP3129891B1 (de) * 2014-04-08 2018-12-12 Fujitsu Technology Solutions Intellectual Property GmbH Verfahren zum verbesserten zugriff auf einen hauptspeicher eines computersystems, entsprechendes computersystem sowie computerprogramm-produkt
KR102362229B1 (ko) * 2017-08-10 2022-02-11 삼성전자주식회사 메모리 컨트롤러, 메모리 시스템 및 메모리 컨트롤러를 포함하는 어플리케이션 프로세서
US11151006B2 (en) * 2018-07-02 2021-10-19 Samsung Electronics Co., Ltd. HBM RAS cache architecture
US11455254B2 (en) * 2020-12-10 2022-09-27 Macronix International Co., Ltd. Flash memory system and flash memory device thereof
TWI814647B (zh) * 2022-11-24 2023-09-01 慧榮科技股份有限公司 執行主機命令的方法及電腦程式產品及裝置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004118544A (ja) * 2002-09-26 2004-04-15 Renesas Technology Corp メモリシステム
JP2005010942A (ja) * 2003-06-17 2005-01-13 Matsushita Electric Ind Co Ltd ブートコードが格納されるシーケンシャルアクセス・メモリデバイスを備えた装置及び前記装置の起動方法
WO2005010637A2 (en) * 2003-07-31 2005-02-03 M-Systems Flash Disk Pioneers Ltd. Sdram memory device with an embedded nand flash controller

Family Cites Families (67)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4534011A (en) * 1982-02-02 1985-08-06 International Business Machines Corporation Peripheral attachment interface for I/O controller having cycle steal and off-line modes
JPS61114631A (ja) * 1984-11-07 1986-06-02 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション 通信アダプタ
US4860192A (en) * 1985-02-22 1989-08-22 Intergraph Corporation Quadword boundary cache system
US4837677A (en) * 1985-06-14 1989-06-06 International Business Machines Corporation Multiple port service expansion adapter for a communications controller
US5276807A (en) * 1987-04-13 1994-01-04 Emulex Corporation Bus interface synchronization circuitry for reducing time between successive data transmission in a system using an asynchronous handshaking
US5134706A (en) * 1987-08-07 1992-07-28 Bull Hn Information Systems Inc. Bus interface interrupt apparatus
US4974153A (en) * 1987-09-04 1990-11-27 Digital Equipment Corporation Repeater interlock scheme for transactions between two buses including transaction and interlock buffers
US4955024A (en) * 1987-09-14 1990-09-04 Visual Information Technologies, Inc. High speed image processing computer with error correction and logging
US4965717A (en) * 1988-12-09 1990-10-23 Tandem Computers Incorporated Multiple processor system having shared memory with private-write capability
US5189665A (en) * 1989-03-30 1993-02-23 Texas Instruments Incorporated Programmable configurable digital crossbar switch
US5805792A (en) * 1989-07-31 1998-09-08 Texas Instruments Incorporated Emulation devices, systems, and methods
US5218686A (en) * 1989-11-03 1993-06-08 Compaq Computer Corporation Combined synchronous and asynchronous memory controller
GB9019022D0 (en) * 1990-08-31 1990-10-17 Ncr Co Work station or similar data processing system including interfacing means to microchannel means
US5210530A (en) * 1991-01-04 1993-05-11 Codex Corporation Network management interface with internal dsd
KR960001273B1 (ko) * 1991-04-30 1996-01-25 가부시키가이샤 도시바 단일칩 마이크로컴퓨터
US5778418A (en) * 1991-09-27 1998-07-07 Sandisk Corporation Mass computer storage system having both solid state and rotating disk types of memory
US5341487A (en) * 1991-12-20 1994-08-23 International Business Machines Corp. Personal computer having memory system with write-through cache and pipelined snoop cycles
JPH0727494B2 (ja) * 1992-01-02 1995-03-29 インターナショナル・ビジネス・マシーンズ・コーポレイション キャッシュ・スヌープ/データ無効化機能を有するコンピュータ・システム
US5379415A (en) * 1992-09-29 1995-01-03 Zitel Corporation Fault tolerant memory system
JP2541767B2 (ja) * 1992-11-12 1996-10-09 インターナショナル・ビジネス・マシーンズ・コーポレイション スマ―ト・バス制御ユニット
US5404485A (en) * 1993-03-08 1995-04-04 M-Systems Flash Disk Pioneers Ltd. Flash file system
US5561819A (en) * 1993-10-29 1996-10-01 Advanced Micro Devices Computer system selecting byte lane for a peripheral device during I/O addressing technique of disabling non-participating peripherals by driving an address within a range on the local bus in a DMA controller
US5446869A (en) * 1993-12-30 1995-08-29 International Business Machines Corporation Configuration and RAM/ROM control of PCI extension card residing on MCA adapter card
US5535340A (en) * 1994-05-20 1996-07-09 Intel Corporation Method and apparatus for maintaining transaction ordering and supporting deferred replies in a bus bridge
JP3873089B2 (ja) * 1995-06-07 2007-01-24 三星電子株式会社 互いに非同期の2つのバス間でデータ転送を同期する際の累積時間遅延を低減するもの
US5721839A (en) * 1995-10-13 1998-02-24 Compaq Computer Corporation Apparatus and method for synchronously providing a fullness indication of a dual ported buffer situated between two asynchronous buses
US5729760A (en) * 1996-06-21 1998-03-17 Intel Corporation System for providing first type access to register if processor in first mode and second type access to register if processor not in first mode
US5805835A (en) * 1996-07-15 1998-09-08 Micron Electronics, Inc. Parallel architecture computer system and method
GB9622687D0 (en) * 1996-10-31 1997-01-08 Sgs Thomson Microelectronics An integrated circuit with tap controller
JP3607439B2 (ja) * 1996-11-11 2005-01-05 株式会社日立製作所 半導体集積回路装置
US6098110A (en) * 1996-12-30 2000-08-01 Compaq Computer Corporation Network switch with a multiple bus structure and a bridge interface for transferring network data between different buses
US5990914A (en) * 1997-09-09 1999-11-23 Compaq Computer Corporation Generating an error signal when accessing an invalid memory page
US5905509A (en) * 1997-09-30 1999-05-18 Compaq Computer Corp. Accelerated Graphics Port two level Gart cache having distributed first level caches
US5937425A (en) * 1997-10-16 1999-08-10 M-Systems Flash Disk Pioneers Ltd. Flash file system optimized for page-mode flash technologies
US6029253A (en) * 1997-10-30 2000-02-22 Micron Electronics, Inc. Method for synchronizing data with a bi-directional buffer
US6199167B1 (en) * 1998-03-25 2001-03-06 Compaq Computer Corporation Computer architecture with password-checking bus bridge
US6415353B1 (en) * 1998-10-01 2002-07-02 Monolithic System Technology, Inc. Read/write buffers for complete hiding of the refresh of a semiconductor memory and method of operating same
JP2000195926A (ja) * 1998-12-25 2000-07-14 Disco Abrasive Syst Ltd ウェ―ハ搬送装置
US6199137B1 (en) * 1999-01-05 2001-03-06 Lucent Technolgies, Inc. Method and device for controlling data flow through an IO controller
US6330635B1 (en) * 1999-04-16 2001-12-11 Intel Corporation Multiple user interfaces for an integrated flash device
US6658006B1 (en) * 1999-06-03 2003-12-02 Fujitsu Network Communications, Inc. System and method for communicating data using modified header bits to identify a port
US6421765B1 (en) * 1999-06-30 2002-07-16 Intel Corporation Method and apparatus for selecting functional space in a low pin count memory device
US6502146B1 (en) * 2000-03-29 2002-12-31 Intel Corporation Apparatus and method for dedicated interconnection over a shared external bus
US6934785B2 (en) * 2000-12-22 2005-08-23 Micron Technology, Inc. High speed interface with looped bus
US6510488B2 (en) * 2001-02-05 2003-01-21 M-Systems Flash Disk Pioneers Ltd. Method for fast wake-up of a flash memory system
US6882082B2 (en) * 2001-03-13 2005-04-19 Micron Technology, Inc. Memory repeater
US6813673B2 (en) * 2001-04-30 2004-11-02 Advanced Micro Devices, Inc. Bus arbitrator supporting multiple isochronous streams in a split transactional unidirectional bus architecture and method of operation
JP4049297B2 (ja) * 2001-06-11 2008-02-20 株式会社ルネサステクノロジ 半導体記憶装置
US7386653B2 (en) 2001-08-06 2008-06-10 Sandisk Il Ltd Flash memory arrangement
KR100393619B1 (ko) * 2001-09-07 2003-08-02 삼성전자주식회사 휴대 단말기의 메모리 장치 및 그 제어방법
US6636935B1 (en) * 2001-09-10 2003-10-21 Rambus Inc. Techniques for increasing bandwidth in port-per-module memory systems having mismatched memory modules
US6633944B1 (en) * 2001-10-31 2003-10-14 Lsi Logic Corporation AHB segmentation bridge between busses having different native data widths
KR20040080928A (ko) * 2002-01-31 2004-09-20 마츠시타 덴끼 산교 가부시키가이샤 정보 처리 장치, 메모리 관리 장치, 메모리 관리 방법, 및정보 처리 방법
US6683817B2 (en) * 2002-02-21 2004-01-27 Qualcomm, Incorporated Direct memory swapping between NAND flash and SRAM with error correction coding
US7234052B2 (en) * 2002-03-08 2007-06-19 Samsung Electronics Co., Ltd System boot using NAND flash memory and method thereof
US20030206442A1 (en) * 2002-05-02 2003-11-06 Jerry Tang Flash memory bridiging device, method and application system
US7904897B2 (en) * 2002-08-08 2011-03-08 Rudelic John C Executing applications from a semiconductor nonvolatile memory
FI20021620A (fi) * 2002-09-10 2004-03-11 Nokia Corp Muistirakenne, järjestelmä ja elektroniikkalaite sekä menetelmä muistipiirin yhteydessä
JP4499982B2 (ja) * 2002-09-11 2010-07-14 株式会社日立製作所 メモリシステム
KR100786603B1 (ko) * 2002-11-28 2007-12-21 가부시끼가이샤 르네사스 테크놀로지 메모리 모듈, 메모리시스템 및 정보기기
JP2005092630A (ja) * 2003-09-18 2005-04-07 Sony Corp メモリ制御装置及び制御方法
US7136973B2 (en) * 2004-02-04 2006-11-14 Sandisk Corporation Dual media storage device
US7127549B2 (en) * 2004-02-04 2006-10-24 Sandisk Corporation Disk acceleration using first and second storage devices
US7610433B2 (en) * 2004-02-05 2009-10-27 Research In Motion Limited Memory controller interface
US20050204091A1 (en) * 2004-03-11 2005-09-15 Kilbuck Kevin M. Non-volatile memory with synchronous DRAM interface
EP1797645B1 (en) * 2004-08-30 2018-08-01 Google LLC Systems and methods for providing nonvolatile memory management in wireless phones
US7334107B2 (en) * 2004-09-30 2008-02-19 Intel Corporation Caching support for direct memory access address translation

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004118544A (ja) * 2002-09-26 2004-04-15 Renesas Technology Corp メモリシステム
JP2005010942A (ja) * 2003-06-17 2005-01-13 Matsushita Electric Ind Co Ltd ブートコードが格納されるシーケンシャルアクセス・メモリデバイスを備えた装置及び前記装置の起動方法
WO2005010637A2 (en) * 2003-07-31 2005-02-03 M-Systems Flash Disk Pioneers Ltd. Sdram memory device with an embedded nand flash controller

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009123191A (ja) * 2007-11-15 2009-06-04 Genesys Logic Inc Norインターフェイスフラッシュメモリ装置及びそのアクセス方法
US11182079B2 (en) 2008-02-28 2021-11-23 Memory Technologies Llc Extended utilization area for a memory device
US11494080B2 (en) 2008-02-28 2022-11-08 Memory Technologies Llc Extended utilization area for a memory device
US11829601B2 (en) 2008-02-28 2023-11-28 Memory Technologies Llc Extended utilization area for a memory device
US10540094B2 (en) 2008-02-28 2020-01-21 Memory Technologies Llc Extended utilization area for a memory device
US11907538B2 (en) 2008-02-28 2024-02-20 Memory Technologies Llc Extended utilization area for a memory device
US11550476B2 (en) 2008-02-28 2023-01-10 Memory Technologies Llc Extended utilization area for a memory device
US8484432B2 (en) 2008-03-11 2013-07-09 Kabushiki Kaisha Toshiba Memory system
US11775173B2 (en) 2009-06-04 2023-10-03 Memory Technologies Llc Apparatus and method to share host system RAM with mass storage memory RAM
US10983697B2 (en) 2009-06-04 2021-04-20 Memory Technologies Llc Apparatus and method to share host system RAM with mass storage memory RAM
US11733869B2 (en) 2009-06-04 2023-08-22 Memory Technologies Llc Apparatus and method to share host system RAM with mass storage memory RAM
US10877665B2 (en) 2012-01-26 2020-12-29 Memory Technologies Llc Apparatus and method to provide cache move with non-volatile mass memory system
US11797180B2 (en) 2012-01-26 2023-10-24 Memory Technologies Llc Apparatus and method to provide cache move with non-volatile mass memory system
US11226771B2 (en) 2012-04-20 2022-01-18 Memory Technologies Llc Managing operational state data in memory module
US11782647B2 (en) 2012-04-20 2023-10-10 Memory Technologies Llc Managing operational state data in memory module
JP2018106746A (ja) * 2012-11-20 2018-07-05 アイ. ペドル,チャールズ ソリッドステートドライブアーキテクチャ
JP2016532974A (ja) * 2013-09-03 2016-10-20 クアルコム,インコーポレイテッド マルチチップパッケージ上の異種メモリ用の統合メモリコントローラ
US10185515B2 (en) 2013-09-03 2019-01-22 Qualcomm Incorporated Unified memory controller for heterogeneous memory on a multi-chip package
US11016678B2 (en) 2013-12-12 2021-05-25 Memory Technologies Llc Channel optimized storage modules
US11809718B2 (en) 2013-12-12 2023-11-07 Memory Technologies Llc Channel optimized storage modules
US11023142B2 (en) 2013-12-12 2021-06-01 Memory Technologies Llc Channel optimized storage modules

Also Published As

Publication number Publication date
EP1804156A2 (en) 2007-07-04
KR100797325B1 (ko) 2008-01-22
TW200745858A (en) 2007-12-16
KR20070070121A (ko) 2007-07-03
US20070147115A1 (en) 2007-06-28
EP1804156A3 (en) 2007-11-21

Similar Documents

Publication Publication Date Title
KR100797325B1 (ko) 통합 메모리 및 컨트롤러
US7519754B2 (en) Hard disk drive cache memory and playback device
US20090157946A1 (en) Memory having improved read capability
US9852069B2 (en) RAM disk using non-volatile random access memory
US8443144B2 (en) Storage device reducing a memory management load and computing system using the storage device
TWI664529B (zh) 記憶體裝置及其操作方法及記憶體系統
KR101469512B1 (ko) 외부 컴퓨팅 디바이스의 성능 향상을 위한 어댑티브 메모리 시스템
US9514056B2 (en) Virtual memory system, virtual memory controlling method, and program
KR101636634B1 (ko) 프로세서로부터 메모리 서브시스템으로 데이터를 지능적으로 플러싱하기 위한 시스템 및 방법
JP6224253B2 (ja) フラッシュメモリ内に記憶されたデータの推測的プリフェッチ
TWI752619B (zh) 存取儲存的元資料以識別儲存資料的記憶體裝置
TWI752620B (zh) 與記憶體類型相關的頁表
US20110161597A1 (en) Combined Memory Including a Logical Partition in a Storage Memory Accessed Through an IO Controller
JP2015026379A (ja) 磁気ランダムアクセスメモリ(mram)を使用する記憶デバイスのメモリアレイのコントローラ管理
US11126573B1 (en) Systems and methods for managing variable size load units
CN110597742A (zh) 用于具有持久***存储器的计算机***的改进存储模型
EP3270293B1 (en) Two stage command buffers to overlap iommu map and second tier memory reads
US5287512A (en) Computer memory system and method for cleaning data elements
TW202015057A (zh) 快閃記憶體控制器、快閃記憶體控制器的控制方法及相關的電子裝置
JPH10293684A (ja) コンピュータシステムおよびその立ち上げ制御方法
EP4116829A1 (en) Systems and methods for managing variable size load units
JP2024001761A (ja) メモリシステムおよび制御方法
Bhattacharjee et al. Heterogeneity and Virtualization
JPH0630074B2 (ja) プロセッサ

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100419

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100927