JP3822495B2 - シンクロナスフラッシュメモリ - Google Patents
シンクロナスフラッシュメモリ Download PDFInfo
- Publication number
- JP3822495B2 JP3822495B2 JP2001573489A JP2001573489A JP3822495B2 JP 3822495 B2 JP3822495 B2 JP 3822495B2 JP 2001573489 A JP2001573489 A JP 2001573489A JP 2001573489 A JP2001573489 A JP 2001573489A JP 3822495 B2 JP3822495 B2 JP 3822495B2
- Authority
- JP
- Japan
- Prior art keywords
- memory device
- connection terminal
- flash memory
- command
- synchronous
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1051—Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
- G11C7/106—Data output latches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/161—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
- G06F13/1615—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement using a concurrent pipeline structrure
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1694—Configuration of memory controller to different memory types
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4234—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
- G06F13/4243—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with synchronous protocol
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1015—Read-write modes for single port memories, i.e. having either a random port or a serial port
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1015—Read-write modes for single port memories, i.e. having either a random port or a serial port
- G11C7/1039—Read-write modes for single port memories, i.e. having either a random port or a serial port using pipelining techniques, i.e. using latches between functional memory parts, e.g. row/column decoders, I/O buffers, sense amplifiers
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1015—Read-write modes for single port memories, i.e. having either a random port or a serial port
- G11C7/1045—Read-write mode select circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1051—Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1072—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers for memories with random access ports synchronised on clock signal pulse trains, e.g. synchronous memories, self timed memories
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1078—Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1078—Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
- G11C7/1087—Data input latches
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/18—Address timing or clocking circuits; Address control signal generation or management, e.g. for row address strobe [RAS] or column address strobe [CAS] signals
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2207/00—Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
- G11C2207/10—Aspects relating to interfaces of memory device to external buses
- G11C2207/105—Aspects related to pads, pins or terminals
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2207/00—Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
- G11C2207/22—Control and timing of internal memory operations
- G11C2207/2281—Timing of a read operation
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2207/00—Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
- G11C2207/22—Control and timing of internal memory operations
- G11C2207/229—Timing of a write operation
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2216/00—Indexing scheme relating to G11C16/00 and subgroups, for features not directly covered by these groups
- G11C2216/12—Reading and writing aspects of erasable programmable read-only memories
- G11C2216/22—Nonvolatile memory in which reading can be carried out from one memory bank or array whilst a word or sector in another bank or array is being erased or programmed simultaneously
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Dram (AREA)
- Medicines That Contain Protein Lipid Enzymes And Other Medicines (AREA)
- Read Only Memory (AREA)
Description
発明の技術分野
本発明は、不揮発性メモリに関し、特に、同期式(シンクロナス)の不揮発性フラッシュメモリに関する。
【0002】
発明の背景
通常、メモリデバイスは、コンピュータの内部記憶領域用として提供される。用語「メモリ」は、データの記録媒体として用いられる集積回路チップを示す。メモリには幾つかの種類がある。例えば、RAM(random-access memory)は、コンピュータのメインメモリとして用いられる。RAMは、読み書き可能なメモリである。つまり、データをRAMに書き込んだり、データをRAMから読み出したりすることができる。これに対し、ROMは、データの読み出ししかできないメモリである。RAMの多くは揮発性であり、コンテンツを記憶した状態を維持するためには、保持電流を必要とする。電源が切れれば、RAMに記録されたデータが失われる。
【0003】
ほとんどのコンピュータは、コンピュータを起動するための命令コード群が記録された小容量のROMを内蔵している。RAMとは異なり、ROMに書き込みを行うことはできない。EEPROM(electrically erasable programmable read-only memory)は、特別な不揮発性メモリであり、電荷を与えることによって(電気的に)データを消去することができる。他のROMと同様に、本来、EEPROMはRAMのように高速なメモリではない。EEPROMは、多数のメモリセルを備え、各メモリセルは、電気的に絶縁された複数のゲート(フローティングゲート)を有する。フローティングゲートの電荷の有無に応じてメモリセルにデータが記録される。プログラミングや消去処理によって、フローティングゲートに対して電荷が供給されたり除去される。
【0004】
また、別の不揮発性メモリの例として、フラッシュメモリが挙げられる。フラッシュメモリは、EEPROMの一種であり、データの消去やプログラムの更新は、バイト単位ではなく、ブロック単位で行われる。最近のパーソナルコンピュータの多くは、フラッシュメモリチップにBIOSを記録しており、BIOSの更新を必要に応じて簡単に行うことができる。このようなBIOSは、フラッシュBIOSとも呼ばれる。フラッシュメモリは、モデムにも使用されることが多い。フラッシュメモリを使用することによって、新しいプロトコルが標準化された際に、モデムの製造元から提供されるファームウェアを更新して、このプロトコールをモデムがサポートするようにすることができる。
【0005】
通常、フラッシュメモリは、メモリアレイを備え、このメモリアレイは、行アドレスおよび列アドレスによって指定される多数のメモリセルで構成される。メモリセルの各々には、フローティングゲートを有して電荷を保持する電界効果トランジスタが設けられる。これらのセルは、ブロック単位のグループに分けられる。ブロックにおける各セルは、フローティングゲートに電荷を与えることによって、電気的に、ランダムにプログラムすることができる。蓄積電荷は、ブロック単位の消去処理によって、フローティングゲートから抜き出される。フローティングゲートにおける電荷の有無によってセルのデータが決定する。
【0006】
シンクロナスDRAM(SDRAM)は、従来のDRAMメモリよりも高速で動作するDRAMである。SDRAMは、CPUのバスと同期して動作する。SDRAMは、従来のFPM(Fast Page Mode)RAMの約3倍、EDO(Extended Data Output)DRAMやBEDO(Burst Extended Data Output)DRAMの約2倍の周波数である、100MHzで動作する。SDRAMは、高速アクセスが可能であるが、揮発性である。多くのコンピュータシステムは、SDRAMを使用して動作するように設計されているが、不揮発性メモリへの利用も期待されている。
【0007】
上述した理由、または以下に述べる理由により、本技術分野において、SDRAMと同じように動作する不揮発性メモリデバイスに対する要求が存在する。これらの理由は、当業者であれば、明細書に記載された内容を理解することによって、明らかとなるであろう。
【0008】
発明の要旨
本発明は、上述したメモリデバイスの問題等を解決するためのものであり、以下の記載内容を検討することによって、理解可能となるであろう。
【0009】
一実施の形態においては、本発明は、既存のSDRAMのパッケージピン配列に互換性のある不揮発性シンクロナスフラッシュメモリを提供する。詳細な明細書の記載により、SDRAM分野の知識を有するシステムデザイナであれば、システム処理を改良するために本発明を容易に実施可能であることは明らかであろう。
【0010】
一実施の形態において、コンピュータシステムは、メモリコントローラと、該メモリコントローラに接続されたメインメモリバスと、前記メインメモリバスに接続されたシンクロナス不揮発性メモリデバイスとを有する。
【0011】
他の実施の形態において、シンクロナスフラッシュメモリデバイスは、不揮発性メモリセルのアレイとパッケージとを有する。該パッケージは、シンクロナスダイナミックランダムアクセスメモリデバイスの内部接続ピンに対応して配列された複数の接続端子を有する。該シンクロナスフラッシュメモリデバイスの複数の内部接続端子はリセット接続端子とVccp電源接続端子を含む。これらリセット接続端子とVccp電源接続端子は、前記シンクロナスダイナミックランダムアクセスメモリの第1及び第2の無接続端子(NC)に対応している。
【0012】
更に他の実施の形態において、コンピュータシステムは、メモリコントローラと、該メモリコントローラに接続されたメインメモリバスと、前記メインメモリバスに接続されたシンクロナス不揮発性フラッシュメモリデバイスとを有する。前記シンクロナス不揮発性フラッシュメモリデバイスのコマンドインタフェースは、書込みイネーブル信号を受け取るための書込みイネーブル接続端子(WE#)と、列アドレスストローブ信号を受け取るための列アドレスストローブ接続端子(CAS#)と、行アドレスストローブ信号を受け取るための行アドレスストローブ接続端子(RAS#)と、チップセレクト信号を受け取るためのチップセレクト接続端子(CS#)とを有する。
【0013】
発明の実施の形態の説明
添付図面を参照して本発明の実施の形態を詳細に説明する。添付図面は、本明細書の一部を構成するものであり、本発明の具体的な実施の形態を例示的に示している。実施の形態の各々は、当業者が発明を実施できるように十分に説明されている。なお、本発明の精神および範囲を逸脱することなく、論理的、機械的、電気的な変更を加えて発明を実施してもよいことが理解されよう。従って、以下の詳細な説明は、限定的に解釈されるべきではない。本発明の範囲は、クレームによってのみ定義されるものである。
【0014】
以下の詳細な説明は、2つの主項目に分かれる。第1の項目(インタフェースの機能説明)では、SDRAMメモリとの互換性について詳細に説明されている。第2の項目(機能説明)では、フラッシュアーキテクチャにおける機能的コマンドが定められている。
【0015】
インタフェースの機能説明
図1Aは、本発明の一実施の形態を示すブロック図である。メモリデバイス100は、不揮発性のフラッシュメモリセル102のアレイを含む。このアレイは、アドレス指定が可能な複数のバンクに配列されている。本実施の形態においては、4つのメモリバンク104、106、108、110がメモリに含まれている。各メモリバンクは、メモリセルからなるアドレス指定が可能な複数のセクタ含む。メモリに保存されたデータは、ロケーションアドレスを用いることによってアクセスすることができる。このロケーションアドレスは、外部から供給され、アドレスレジスタ112によって受け取られる。該アドレスは、行アドレスマルチプレクサ114によって解読される。また、前記アドレスは、バンク制御ロジック116および行アドレスラッチ/デコーダ118によって解読される。メモリにおける所望の列にアクセスすることを可能にするために、列アドレスカウンタ/ラッチ120は、受け取った複数のアドレスを結合し、列デコーダ122に出力する。回路124は、入出力ゲート、データマスクロジック、読出しデータラッチ、さらに、書き込みドライバとしての機能を有する。データは、データ入力レジスタ126を通じて入力され、データ出力レジスタ128を通じて出力される。コマンド実行ロジック130は、メモリデバイスの基本動作を制御する。また、ステートマシン132は、メモリアレイおよびセル上で実行される特定の処理を制御する。さらに、データ出力のため、ステータスレジスタ134およびIDレジスタ136が設けられる。コマンド回路130及び/又はステートマシン132は、総括的には、読出し処理、書込み処理、消去処理及び他のメモリ処理を制御する制御部として機能する。
【0016】
図1Bは、本発明の一実施の形態における接続ピン配列(入出力コネクタピンアサイン)を示す。メモリパッケージ150は、54個の接続ピンを有する。ピン構成は、既存のSDRAMパッケージのものと概ね同じである。本発明独自の接続ピンは、RP#152およびVccp154の2つである。本発明は、SDRAMのものと同じ接続ピンラベルを使用するが、本明細書において、接続ピンを通じて入出力される信号の機能は、特に説明がない限りは、SDRAMのものと同じではない。図1Cは、一実施の形態におけるメモリパッケージ160を示す。メモリパッケージ160は、ピンによる接続端子ではなく、半田バンプによる接続端子を有する。従って、本発明は、特定のパッケージ構成に限定されるものではない。
【0017】
メモリデバイスの処理の特徴を説明する前に、接続ピンおよび各接続ピンを通じて入出力される信号について説明する。入力クロック端子は、クロック信号(CLK)を供給する。クロック信号は、システムクロックによってドライブされる。シンクロナスフラッシュメモリの入力信号は、全て、CLKの立ち上がりエッジ(ポジティブエッジ)でサンプリングされる。また、CLKは、内部バーストカウンタのカウント値を増加させ、更に、出力レジスタを制御する。
【0018】
入力クロックイネーブル(CKE)端子は、CLK信号入力をアクティブ(活性化したHIGH状態)、非アクティブ(活性化していないLOW状態)にするために使用される。クロック入力を非アクティブにすることによって、POWER−DOWN_STANDBY処理(全てのメモリバンクがアイドル状態になる)、ACTIVE_POWER−DOWN処理(メモリ行がいずれかのバンクにおいてACTIVEになる)、または、CLOCK_SUSPEND処理(バースト/アクセスが続行中である)が可能になる。CKEは、メモリデバイスがパワーダウンモードに入っているとき以外は、同期状態になっている。メモリデバイスがパワーダウンモードに入っているときは、CKEは、非同期状態になっている。CLK等の入力バッファは、パワーダウンモードでは、無効になっており、低消費電力のスタンバイ状態になっている。CKEは、RP#がディープパワーダウンであるときを除き、パワーダウンモードが要求されていない場合は、システムにおいてHIGH状態に維持されていてもよい。
【0019】
チップセレクト(CS#)入力端子には、コマンド実行ロジックに設けられたコマンドデコーダを有効、無効にするための信号が入力される。信号がLOWであれば、コマンドデコーダが有効となり、信号がHIGHであれば、コマンドデコーダが無効となる。つまり、CS#がHIGHであれば、全てのコマンドがマスクされる。さらに、システムにおいて複数のバンクが存在する場合、CS#によって外部からバンクを選択できるようになる。従って、CS#は、コマンドコードの一部であるとみなすことができる。しかしながら、このCS#は、必須のものではない。
【0020】
入力コマンドを入力するための接続端子RAS#、CAS#およびWE#は(CAS#、CS#と共に)、後述するように、メモリによって実行されるコマンドを定義する。入出力マスク(DQM)端子は、書き込みアクセスのためのマスク信号を入力し、読み出しアクセスのためのイネーブル信号を出力するために使用される。WRITEサイクルの間にサンプリングされたDQMがHIGHであった場合には、入力データがマスクされる。READサイクルの間にサンプリングされたDQMがHIGHであった場合には、2クロックのレイテンシが経過後、出力バッファが高インピーダンス(High−Z)状態になる。DQMLは、データ端子DQ0〜DQ7に対応し、DQMHは、データ端子DQ8〜DQ15に対応する。DQMLおよびDQMHは、DQMとして参照されたとき、同一の状態であると考えられる。
【0021】
アドレス入力部(接続端子)133は、主に、アドレス信号を入力するために使用される。図示した実施の形態においては、メモリは12のライン(A0〜A11)を有する。また、後述するように、アドレス端子を通じて他の信号を入力するようにしてもよい。メモリバンクのあるロケーションを選択するために、ACTIVEコマンド(行アドレスA0〜A11)やREAD/WRITEコマンド(列アドレスA0〜A7)が発行された際、アドレス入力部の信号がサンプリングされる。アドレス入力部は、後述するLOAD_COMMAND_REGISTER処理の際、処理コード(OpCode)を入力するためにも使用される。また、アドレスラインはA0−A11は、LOAD_MODE_REGISTER処理の際に、モード設定を入力するために使用される。
【0022】
入力リセット/パワーダウン(RP#)端子140は、リセット処理やパワーダウン処理を行うために使用される。一実施の形態においては、デバイスを立ち上げる(initial device power-up)ときには、RP#がLOWからHIGHになった後、実行可能なコマンドを発行する前に、デバイス内部での初期動作のため、100μsの遅延時間が必要となる。RP#信号がLOWになると、ステータスレジスタがクリアされ、デバイス内のステートマシン(ISM)132がアレイ読み出しモードに設定される。また、デバイスがディープパワーダウンモードになる。パワーダウンによって、CS#142を含む全ての入力端子が「ドントケア(Don't Care)」に設定され、全ての出力がHigh−Z状態になる。RP#信号がVHH電圧(5V)と同じになると、WRITE処理、ERASE処理の間、全ての保護モードが解除される。RP#信号によって、デバイス保護ビットが「1(保護モード)」に設定されるが、RP#信号がVHHになったときは、16ビットレジスタのロケーション0および15に存在するブロック保護ビットの各々が、「0(非保護モード)」に設定される。保護ビットについては後述する。他の処理モードの全てにおいて、RP#は、HIGHに維持される。
【0023】
バンクアドレス入力端子BA0およびBA1は、どのバンクに対し、ACTIVEコマンド、READコマンド、WRITEコマンド、または、BLOCK_PROTECTコマンドを発行するかを定義する。DQ0〜DQ15端子143は、双方向データ通信に使用されるデータバス接続端子である。図1Bに示すVCCQ端子は、ノイズの干渉を受けにくくなるように、VCC端子と絶縁された電源をDQ端子に供給するために使用される。一実施の形態においては、VCCQ=Vcc、即ち、1.8V±0.15Vである。VSSQ端子は、ノイズの干渉を受けにくくなるように、DQ端子に対してVSS端子と絶縁されたグランドとして使用される。VCC端子は、例えば、3Vの電源供給用である。グラウンドへの接続は、Vss端子を通じて行われる。また、VCCP端子144を通じて別のオプション電圧を供給してもよい。VCCP端子は、デバイスの外部でVCC端子に接続され、デバイスの初期動作、WRITE処理、ERASE処理に使用される電流を供給する。つまり、メモリデバイスの書き込み処理や消去処理は、VCCP端子を通じて供給された電圧を用いて行われ、他の処理は、全て、VCC端子を通じて供給された電圧を用いて行われる。Vccp端子は、高圧スイッチ/ポンプ回路145に接続される。
【0024】
以下、シンクロナスフラッシュメモリの動作に関するより詳細な説明を行う。本発明の一実施の形態は、不揮発性であり、セクタ単位で電気的にデータを消去(フラッシュ)可能であり、プログラム可能なROMに関する。このメモリは、16ビット単位の4,194,304ワードとして構成される67,108,864ビットのデータ容量を有する。他のデータ容量でもよく、本発明は、例として示したデータ容量に限定されない。メモリバンクの各々は、4つの別個に消去可能なブロックで構成される。つまり、合計16のブロックが存在する。不慮の消去処理や上書き処理を防いで重要なファームウエアを確実に保護するために、メモリは、ハードウエアおよびソフトウエアによってロック可能な16個のブロックを含み、各ブロックは、256Kワードのデータ容量を有する。メモリには4つのバンクが含まれているため、真の並列処理を実現することができる。
【0025】
バンクに対する読み出しアクセスは、バックグラウンドで他のバンクに対してWRITE処理またはERASE処理を行っているときに行うことができる。シンクロナスフラッシュメモリは、シンクロナスインタフェースを有し、クロック信号CLKの立ち上がりエッジ上で全ての信号を登録することができる。また、メモリの読み出しは、バーストモードで行うことができる。つまり、メモリアクセスは、選択されたロケーションから開始され、アクセスするロケーションの数は、予めプログラムされている。メモリアクセスは、予めプログラムされたシーケンスに従って行われる。読み出しアクセスは、ACTIVEコマンドの登録で開始し、READコマンドによって続行される。ACTIVEコマンドと同時に登録されたアドレスビットは、アクセス対象のバンクと行を選択するために使用される。READコマンドと同時に登録されたアドレスビットは、バーストアクセスを開始する列のロケーションとバンクを選択するために使用される。
【0026】
シンクロナスフラッシュメモリは、1つのロケーション、2つのロケーション、4つのロケーション、8つのロケーション、または、フルページに対応するプログラム可能な読み出しバースト長を提供する。オプションとしてバースト終端を提供するようにしてもよい。
【0027】
また、シンクロナスフラッシュメモリは、高速処理を達成するために、内部パイプラインアーキテクチャを採用している。シンクロナスフラッシュメモリは、低電力のメモリシステム、例えば、3Vで駆動するシステムで動作する。メモリの動作モードとしては、ディープパワーダウンモードが省電力スタンバイモードとして提供される。全ての入出力は、LVTTL(low voltage transistor-transistor logic)互換である。シンクロナスフラッシュメモリは、フラッシュ処理性能を大幅に向上させることができる。ここで、フラッシュ処理性能とは、自動的に列アドレスを生成しながら高速にデータを転送する能力と、バーストアクセス期間にクロックサイクル毎に列アドレスをランダムに切り換える能力を含む。
【0028】
一般的に、シンクロナスフラッシュメモリは、低電圧で駆動し、複数のバンクを備えたDRAMと同様の構成を有する。バンクの各々は、複数の行と複数の列とで構成される。シンクロナスフラッシュメモリは、通常の処理を行う前に初期化される。以下、デバイスの初期化、レジスタの定義、コマンドの内容、およびデバイスの動作について詳細に説明する。
【0029】
シンクロナスフラッシュは、所定の方法で起動され(powered up)、初期化される。VCC、VCCQ、およびVCCPに対して(同時に)電源が供給されると、クロック信号が安定し、RP#140がLOW状態からHIGH状態になる。デバイス内部の初期化を完了するまでには、RP#がHIGH状態に移行した後、例えば、100μsの遅延時間が必要である。遅延時間が経過した後、メモリは、アレイ読み出しモードになり、モードレジスタへのプログラミング、または、コマンドの実行可能状態となる。不揮発性モードレジスタ(NVモードレジスタ)147に対する最初のプログラミングの後、初期化処理の間、コンテンツが自動的に揮発性モードレジスタにロードされる。デバイスは、予めプログラムされた状態で起動し(power-up)、処理コマンドを発行する前に再度不揮発性モードレジスタ147のリロードを行う必要はない。これについては後述する。
【0030】
モードレジスタ148は、シンクロナスフラッシュメモリの特定の処理モードを定義するために使用される。この定義には、図2に示すように、バースト長、バーストタイプ、CASレイテンシ、処理モードの選択が含まれる。モードレジスタは、LOAD_MODE_RESISTORコマンドに基づいてプログラミングを行い、再プログラミングが行われるまで、格納された情報を保持する。モードレジスタのコンテンツをNVモードレジスタ147にコピーしてもよい。NVモードレジスタの設定に基づいて、初期化処理の間、モードレジスタ148が自動的にロードされる。ERASE_NVMODE_REGISTERコマンド、WRITE_NVMODE_REGISTERコマンドの詳細については後述する。当業者であれば、SDRAMにおいては、初期化処理毎に、モードレジスタが外部からロードされる必要があることを理解できるであろう。本発明によればデフォルトモードの設定がNVモードレジスタ147に登録される。NVモードレジスタのコンテンツは、揮発性モードレジスタ148にコピーされ、メモリで各処理が実行されている間にアクセスされる。
【0031】
モードレジスタビットM0〜M2は、バースト長を定義する。モードレジスタビットM3は、バーストタイプ(シーケンシャル、インターリーブ)を定義する。モードレジスタビットM4〜6は、CASレイテンシを定義する。モードレジスタビットM7およびM8は、処理モードを定義する。モードレジスタビット9は1に設定される。モードレジスタビットM10およびM11は、本実施の形態では予備とされている。本実施の形態では、WRITEバーストは、実行されないため、M9は、論理1に設定され、書き込みアクセスは、1つのロケーション(非バースト)で行われる。モードレジスタは、全てのバンクがアイドル状態にあるときにロードされる必要がある。コントローラは、後続の処理を開始するためには、所定の時間待機しなければならない。
【0032】
シンクロナスフラッシュメモリに対する読み出しアクセスは、バーストモードで行われる。バースト長は表1に示すようにプログラム可能である。バースト長は、所定のREADコマンドによって自動的にアクセス可能な列ロケーションの最大の数を定義する。バーストタイプがシーケンシャルの場合でも、インターリーブの場合でも、1つのロケーション、2つのロケーション、4つのロケーション、8つのロケーションに対応するバースト長を有する。また、バーストタイプがシーケンシャルである場合には、フルページに対応するバースト長を利用できる。バースト長がフルページである場合、BURST_TERMINATEコマンドを使用して任意のバースト長を作成してもよい。つまり、バーストを選択的に終了させることによって、バースト長をカスタマイズすることができる。READコマンドが発行されたとき、バースト長に相当する数の列を含むブロックを選択することができる。このバーストモードで行われるアクセスは、全て、選択されたブロック内で行われる。つまり、境界に達するまでそのブロック内を連続してアクセスする。バースト長が2に設定されている場合は、A1〜A7によってブロックが独自に選択される。バースト長が4に設定されている場合は、A2〜A7によってブロックが選択される。バースト長が8に設定されている場合は、A3〜A7によってブロックが選択される。残余の下位アドレスビット(最下位ビットを含む)は、ブロック内での開始位置を選択するために使用される。フルページバーストは、境界に達するまでそのページ内を連続してアクセスする。
【0033】
所定のバースト内で行われるアクセスは、ビットM3によって、シーケンシャル、またはインターリーブのバーストタイプにプログラムされる。バースト内でのアクセスの順序は、表1に示すように、バースト長、バーストタイプ、開始列アドレスによって決定される。
【0034】
【表1】
【0035】
表1の特記事項
1.バースト長が2においては、A1〜A7で、バースト対象の2ブロックが選択され、A0で、そのブロック内での開始アドレスが選択される。
【0036】
2.バースト長が4においては、A2〜A7で、バースト対象の4ブロックが選択され、A0〜A1で、そのブロック内での開始アドレスが選択される。
【0037】
3.バースト長が8においては、A3〜A7で、バースト対象の8ブロックが選択され、A0〜A2で、そのブロック内での開始アドレスが選択される。
【0038】
4.フルページバーストにおいては、全行が選択され、A0〜A7で、開始列が選択される。
【0039】
5.上述のように設定されたシーケンス内において、バースト対象のブロックの境界に達すると、そのブロック内でアクセスがラップして続けられる。
【0040】
6.バースト長が1においては、アクセスのために、A0〜A7で、特定の列が選択され、モードレジスタのビットM3は無視される。
【0041】
CAS(Column Address Strobe)レイテンシは、READコマンドを登録した後、最初の出力データをDQ端子で利用できるまでの遅延時間をクロックサイクルで示している。レイテンシは、1、2、または3クロックサイクルに設定することができる。例えば、READコマンドがクロックエッジnで登録され、レイテンシがmクロックである場合、クロックエッジn+mでデータを利用可能になる。DQ接続端子は、1サイクル前(n+m−1)のクロックエッジでデータのドライブを開始し、アクセスタイムが適切である場合には、クロックエッジn+mで有効なデータが得られる。例えば、アクセスタイムが適当となるようにクロックサイクル時間が設定されていると仮定すると、READコマンドがT0で登録され、レイテンシが2クロックである場合には、図3に示すように、DQは、T1以降にデータのドライブを開始し、T2で有効なデータが得られる。図3は、異なるクロックのレイテンシの設定を使用した場合の動作周期の例を示す。通常の処理モードは、M7およびM8を0に設定することによって選択される。予めプログラムされたバースト長がREADバーストに適用される。
【0042】
表2は、本発明の実施の形態に係るメモリの動作周波数(MHz)の例を示す。
【0043】
【表2】
【0044】
以下の真理値表は、本発明のメモリの処理コマンドをより詳細に示している。各コマンドおよび真理値表2について説明する。
【0045】
【表3】
【0046】
真理値表1の特記事項
1.表に示す全てのコマンドについて、CKEはHighである。
【0047】
2.A0〜A11で行アドレスを決定し、BA0、BA1で活性化させるバンクを決定する。
【0048】
3.A0〜A7で列アドレスを決定し、BA0、BA1で読み出し対象又は書き込み対象のバンクを決定する。
【0049】
4.WRITE_SETUPコマンドシーケンス(真理値表2参照)は、WRITE処理が実行される前に終了しなければならない。
【0050】
5.ACTIVE_TERMINATEコマンドは、機能的にSDRAMのPRECHARGEコマンドと同じであるが、PRECHARGE(1つのバンクあるいは複数のバンクにおける行を不活性にする)は、シンクロナスフラッシュメモリでは必要とされない。
【0051】
6.A0〜A7はコマンドコードを定義し、A8〜A11はこの処理においては「ドントケア」である。
【0052】
7.LOAD_COMMAND_REGISTER(LCR)処理は、SDRAMのAUTO_REFRESH処理又はSELF_REFRESH処理によって代わる。AUTO_REFRESH処理又はSELF_REFRESH処理は、このシンクロナスフラッシュメモリでは必要としない。真理値表2参照。
【0053】
8.A0〜A11は、モードレジスタに書き込まれる処理コードを定義する。該モードレジスタは、期間tMRDが満了するサイクル毎に動的にロードされる。モードレジスタのデフォルト値は、不揮発性モードレジスタに格納されてもよい。該不揮発性モードレジスタの内容は、デバイスの初期化期間において、前記モードレジスタに自動的にロードされる。
【0054】
9.WRITE処理(0クロック遅延)とREAD処理(2クロック遅延)において、DQ端子を活性又は不活性にする。
【0055】
【表4】
【0056】
真理値表2の特記事項
1.CMDはコマンド名を示し、CS#端子、RAS#端子及びWE#端子を通じて解読される。
【0057】
2.NOP/COMMAND_INHIBITコマンドは、処理コマンドシーケンスの間に発行される。
【0058】
3.書込み処理又は消去処理がISMに登録された後、ISM処理が終了する前に、ISMの制御下にあるバンク内のどのロケーションに対してREAD処理が行われても無効データが出力される。
【0059】
4.期間tRCDの仕様に合わせるためには、ACTIVEコマンドとREAD/WRITEコマンドとの間に、NOP/COMMAND_INHIBITサイクルが適切な回数だけ発行されなければならない。
【0060】
5.ブロック保護ビットのロケーションは、バンクアドレスによって指定される。バンクアドレスは、メーカ互換ID、デバイスID及びデバイス保護ビットについてはドントケアである。
【0061】
6.CA=デバイス構成に関する情報が格納されているアドレス
000000H=メーカ互換ID
000001H=デバイスID
xx0002H=ブロック保護ビット
000003H=デバイス保護ビット
7.固有のコマンドシーケンス(LCR/ACTIVE/WRITE)は、消去処理、書込み処理、ブロック保護処理、ブロック保護解除処理を開始するために必要である。
【0062】
8.消去処理、書込み処理、ブロック保護処理、ブロック保護解除処理を開始するためには、3つのコマンド(LCR/ACTIVE/WRITE)の全てにおいてバンクアドレスが一致していなければならない。
【0063】
9.D0Hコードは、消去処理の確認と開始のために、WRITEコマンドサイクルの開始において必要となる。
【0064】
10.デバイス保護ビットがセットされていれば、WRITEコマンドサイクルの開始においてRP#がVHHに引き上げられることによって、消去処理、書込み処理、ブロック保護処理が開始される。RP#でのVHHは、処理が終了するまで維持される。VHH=5Vである。
【0065】
11.A10とA11の行アドレスとBA0、BA1のバンクアドレスによって、保護すべきブロックが選択される。A0〜A9はドントケアである。
【0066】
12.01Hコードは、ブロック保護処理の確認と開始のために、WRITEコマンドサイクルの開始において必要となる。
【0067】
13.F1Hコードは、デバイス保護処理の確認と開始のために、WRITEコマンドサイクルの開始において必要となる。
【0068】
14.D0Hコードは、ブロック保護解除処理の確認と開始のために、WRITEコマンドサイクルの開始において必要となる。
【0069】
15.デバイス保護ビットがセットされておらず、RP#端子がHIGHに保持されていれば、16個の256Kワードの消去可能ブロック全て(但し、0番目のブロックと15番目のブロックを除く:図15参照)が非保護となる。RP#=5Vのとき、16個の256Kワードの消去可能ブロック全て(0番目のブロックと15番目のブロックを含む)が非保護となり、デバイス保護ビットは無視される。デバイス保護ビットがセットされ、かつ、RP#がHIGHであれば、ブロック保護ビットを変更することはできない。
【0070】
16.C0Hコードは、不揮発性モードレジスタの消去処理についての確認と開始のために、WRITEコマンドサイクルの開始において必要となる。
【0071】
17.BURST_WRITE処理は、サポートされていない。
【0072】
18.消去処理、書込み処理、ブロック保護処理、ブロック保護解除処理は自己タイミング(self-timed)方式で行われる。各処理を監視するためにステータスレジスタに対するポーリングが必要である。
【0073】
COMMAND_INHIBIT機能は、CLK信号が有効であるかどうかにかかわらず、シンクロナスフラッシュメモリによって新しいコマンドが実行されるのを禁止する。シンクロナスフラッシュメモリは、非選択状態となるが、既に実行中の処理には影響を与えない。
【0074】
NO_OPERATION(NOP)コマンドは、CS#がLOWとされて選択されたシンクロナスフラッシュメモリに対してNOPを実行するために使用される。NOPの実行によって、アイドル状態、または待機状態の間に希望しないコマンドが登録されることを防ぐことができる。但し、既に実行中の処理には影響を与えない。
【0075】
モードレジスタに対するデータは、入力端子A0〜A11を通じてロードされる。全てのアレイバンクがアイドル状態にあるときにのみ、LOAD_MODE_REGISTERコマンドが発行され、所定の遅延時間(MRD)が経過した後、次に実行されるべき処理のコマンドが発行される。NVモードレジスタ147が保持するデータは、LOAD_MODE_REGISTERコマンドによって動的に変更されない限り、電源立ち上げ時の初期化処理の際(upon power-up initialization)、自動的にモードレジスタ148にデフォルトデータとしてロードされる。
【0076】
ACTIVEコマンドは、アクセスが可能となるように、特定のアレイバンクの行を開く(アクティブにする)。入力端子BA0、BA1からの入力値によって、バンクが選択され、入力端子A0〜A11から入力されるアドレスによって行が選択される。次のACTIVEコマンド、パワーダウンコマンド、または、RESETコマンドが登録されるまで、この行は、アクセスが可能となるようにアクティブになっている。
【0077】
READコマンドは、アクティブな行に対してバーストモードで読み出しアクセスを開始するために使用される。入力端子BA0、BA1からの入力値によってバンクが選択され、入力端子A0〜A7から入力されるアドレスによって開始列ロケーションが選択される。DQ端子上の読み出しデータは、2クロック前におけるデータマスク(DQM)入力端子上でのロジックレベルに依存する。与えられたDQM信号の登録がHIGHであった場合には、2クロック後の対応するDQ端子は、High−Z(高インピーダンス)になる。与えられたDQM信号の登録がLOWであった場合には、DQ端子は有効なデータを保持する。従って、読み出し処理の間、DQM入力端子を用いて出力データをマスクすることができる。
【0078】
WRITEコマンドは、アクティブな行の1つのロケーションで行われる書き込みアクセスを開始するために使用される。WRITEコマンドを発行する前に、WRITE_SETUPコマンドを発行する必要がある。入力端子BA0、BA1からの入力値によってバンクが選択され、入力端子A0〜A7から入力されるアドレスによって、列ロケーションが選択される。DQ端子上の入力データは、メモリアレイに書き込まれる。入力データは、該入力データと同時に現れるDQM入力のロジックレベルに依存する。与えられたDQM信号の登録がLOWであった場合には、対応するデータがメモリに書き込まれる。DQM信号の登録がHIGHであった場合には、対応するデータの入力が無視され、書き込み対象となっているワード/列ロケーションでのWRITE処理は実行されない。WRITEコマンドが発行され、DQM信号の登録がHIGHであった場合には、NOPコマンドが発行されたものとみなされる。
【0079】
ACTIVE_TERMINATEコマンドは、シンクロナスフラッシュメモリに必須のものではないが、SDRAMのPRECHARGEコマンドと同様の方法で読み出し処理を終了させるために用いることができる。ACTIVE_TERMINATEコマンドは、実行中のBURST_READを終了させるために発行されるが、特定のバンクに対して発行されてもよいし、特定のバンクに対して発行されなくてもよい。
【0080】
BURST_TERMINATEコマンドは、固定長、またはフルページにわたるバーストをトランケートする(truncate)ために使用される。BURST_TERMINATEコマンドを登録する直前に登録されたREADコマンドがトランケートされる。BURST_TERMINATEコマンドは、特定のバンクに対して発行されるものではない。
【0081】
ロードコマンドレジスタ処理は、コマンド実行ロジック(CEL)130に対するフラッシュメモリの制御コマンドの出力を開始するために使用される。CELは、デバイスに対するコマンドの受け取りおよび解読を行う。このコマンドによって内部ステートマシン(ISM)132の動作、読み出しパス(即ち、メモリアレイ102、IDレジスタ136、またはステータスレジスタ134)に対する制御が行われる。
【0082】
シンクロナスフラッシュメモリ内でバンクに対するREADコマンドまたはWRITEコマンドが発行される前に、このバンクにおいて処理の対象となる行が「開かれる(アクティブにする)」必要がある。これは、図4に示すように、CS#、WE#、RAS#、CAS#によって定義されるACTIVEコマンドによって行われ、アクティブにするバンクや行の双方が選択される。
【0083】
ACTIVEコマンドを発行して行を開いた後、この行に対し、READコマンドやWRITEコマンドが発行される。READコマンドやWRITEコマンドを発行するまでの時間は、所定の期間(tRCDの仕様)に基づいて決められる。tRCD(MIN)をクロック周期で分割した値を切り上げ、整数にする。この整数に基づいて、ACTIVEコマンドが発行された後、READコマンドやWRITEコマンドが発行される最初のクロックエッジが求められる。例えば、tRCDの仕様が30nsであり、クロックが90MHZ(11.11nsクロック周期)であれば、計算された値は2.7クロックであるため、「3」に切り上げられる。この場合、つまり、2<tRCD(MIN)/tCK≦3の場合を図5に示す(tRCDの仕様条件が異なる場合にも、同様の方法を用いて時間の単位をクロックサイクルに変換することができる)。
【0084】
同一のバンクにおける異なる行に対する次のACTIVEコマンドの発行は、このバンクに対する連続するACTIVEコマンドの最小間隔がtRCDで定義されていれば、前回アクティブにした行を閉じることなく行うことができる。
【0085】
別のバンクに対する次のACTIVEコマンドは、最初のバンクがアクセスされている間に発行することができる。従って、行のアクセスにおける合計のオーバーヘッドを減らすことができる。異なるバンクに対する連続するACTIVEコマンドの最小間隔は、期間tRCDで定義される。
【0086】
READバーストは、図6に示すCS#、WE#、RAS#、CAS#によって定義されるREADコマンドによって開始される。READコマンドによって、開始列とバンクアドレスが選択される。READバーストの間において、READコマンドの発行後、CASレイテンシが経過した後、開始列のアドレスからの有効なデータ出力要素(data-out element)を利用できる。続いてくるデータ出力要素の各々は、それぞれ次のポジティブクロックエッジで有効となる。バースト終了後、他のコマンドが開始されていなければ、DQ端子はHIGH−Z状態になる。フルページバーストは、終了まで継続的に実行される(ページの最後で列0に戻り、処理が継続する)。READバーストからのデータは、次のREADコマンドが発行されるとトランケート(truncate)される。固定長READバーストからのデータの直後には、次のREADコマンドからのデータが続いている。いずれの場合であっても、継続的なデータの流れが保たれる。新たなバーストの第1番目のデータ要素は、終了したバーストの最後のデータ要素、または、固定長よりも長いバースト(途中でトランケートされている)の場合は、最後の所望のデータ要素の後に続く。新たなREADコマンドは、最後の所望のデータ要素が有効となるクロックエッジのxサイクル前に発行される。xは、CASレイテンシより1だけ少ない。図7において、CASレイテンシが1、2、3の場合、データ要素n+3は、4つのバーストの最後であるか、固定長よりも長いバーストの最後である。シンクロナスフラッシュメモリは、パイプライン・アーキテクチャを採用しているため、プリフェッチ・アーキテクチャのように2nルールを必要としない。前回のREADコマンドの後、どのクロックサイクルにおいてもREADコマンドを開始することができる。ページ内における最高速度のランダム読み出しアクセスは、図8に示すように行われる。後続する各READ処理を異なるバンクに対して実行してもよい。
【0087】
READバーストからのデータは、次のWRITEコマンドによってトランケートされる。なお、WRITEコマンドの前には、WRITE_SETUPを実行する必要がある。固定長READバーストからのデータの直後には、次のWRITEコマンドからのデータが続いている。WRITEコマンドは、バスのターンアラウンドの制約を受ける。入出力の競合を回避することができれば、READバーストからの最後の(最後の所望の)データ要素の直後のクロックエッジでWRITE処理が開始する。システムの設計によっては、シンクロナスフラッシュメモリのDQ端子がHigh−Zになる前に、入力データをドライブする装置がLow−Zになることがある。この場合、少なくとも1サイクルの遅延が最後に読み出したデータとWRITEコマンドとの間に発生する。
【0088】
DQM入力は、図9に示す入出力の競合を回避するために使用される。DQM信号は、WRITEコマンド(出力バッファに対するDQMレイテンシは2クロックである)の少なくとも2クロック前にアサートされ(HIGH)、READからのデータ出力が抑制される。WRITEコマンドが登録されると、DQM信号の状態に関わらず、DQ端子は、High−Zになる(または、High−Zの状態を維持する)。WRITEコマンド(入力バッファに対するDQMレイテンシはゼロクロックである)の前にDQM信号のアサート状態を解除し、書き込みデータのマスクを解除しなければならない。図9は、クロック周波数がNOPサイクルを付加することなくバスの競合を回避できるように設定されている場合を示す。
【0089】
固定長またはフルページのREADバーストは、ACTIVE_TERMINATEコマンド(特定のバンクに対するものでもよく、特定のバンクに対するものでなくともよい)、BURST_TERMINATEコマンド(特定のバンクに対するものではない)のいずれによってもトランケートされる。ACTIVE_TERMINATEコマンドやBURST_TERMINATEコマンドは、最後の所望のデータ要素が有効であるクロックエッジのxサイクル前に発行される。xは、CASレイテンシより1少ない。これを、異なるCASレイテンシの場合の各々について、図10に示す。データ要素n+3は、4つのバーストのうち最後の望ましいデータ要素でもよく、固定長よりも長いバーストにおける最後の所望のデータ要素でもよい。
【0090】
1つのロケーションでのWRITE処理は、図11に示すCS#、WE#、RAS#、CAS#によって定義されるWRITEコマンドによって開始される。WRITEコマンドによって、開始列とバンクアドレスが選択される。WRITEコマンドが登録されると、真理値表4および5によって定義されるようにREADコマンドが実行される。図12に一例を示す。WRITE処理の間、WRITEコマンドと同時に有効なデータ入力(data-in)が登録される。
【0091】
SDRAMとは異なり、シンクロナスフラッシュメモリは、特定のバンクの開いている行、あるいは全てのバンクにおける開いている行を非アクティブにするのにPRECHRGEコマンドを必要としない。ACTIVE_TERMINATEコマンドは、BURST_TERMINATEコマンドに類似するが、ACTIVE_TERMINATEコマンドは、特定のバンクに対するものでもよく、特定のバンクに対するものでなくてもよい。ACTIVE_TERMINATEコマンドの実行中に入力A10がアサートされてHIGHになっていれば、どのバンクにおいてもBURST_READが終了する。ACTIVE_TERMINATEコマンドの実行中に入力A10がLOWであれば、BA0、BA1によってどのバンクを終了するかが指定される。ACTIVE_TERMINATEは、A10、BA0、BA1によってアドレス指定されないバンクに対するNOPであるとみなされる。
【0092】
アクセスが行われていないときに、NOPまたはCOMMAND_INHIBITに一致するクロックイネーブルCKEがLOWに登録されると、パワーダウンが発生する。パワーダウンが発生すると、WRITE処理を含む内部ステートマシンによる処理の後、CKEを除き、入力バッファと出力バッファが非アクティブになる。つまり、省電力モードのスタンドバイ状態となる。
【0093】
パワーダウン状態は、NOPまたはCOMMAND_INHIBITが登録され、所望のクロックエッジでCKEがHIGHになる(tCKSを満たす)と終了する。図13にパワーダウン処理の例を示す。
【0094】
列アクセス/バーストの実行中にCKE端子がLOWに登録されるとクロックサスペンドモードになる。クロックサスペンドモードにおいては、内部クロックが非アクティブになり、シンクロナスロジックが「フリーズ」する。それぞれのクロックの立ち上がりエッジにおいてCKEがLOWにサンプリングされると、次の内部クロックの立ち上がりエッジがサスペンドされる。内部クロックエッジがサスペンドされているときには、入力端子に保持されているコマンドやデータは無視される。クロックがサスペンドされている限り、図14の例に示すように、DQ端子が保持するデータは、そのドライブされた状態を維持し、バーストカウンタは増加されない。クロックサスペンドモードは、CKE端子がHIGHに登録されると終了し、次のクロックの立ち上がりエッジで内部クロックによる処理が再開する。
【0095】
バースト読み出し/シングル書き込みモードは、一実施の形態におけるデフォルトモードである。WRITEコマンドの全ては、単一の列ロケーションでのアクセス(1つのバースト)を発生させるものであり、READコマンドは、予めプログラムされたバースト長、シーケンスに従って各列に対するアクセスを発生させるものである。次の真理値表3は、CKE信号を用いたメモリ処理を示す。
【0096】
【表5】
【0097】
真理値表3の特記事項
1.CKEnは、n番目のクロックエッジにおけるCKEの論理状態を示す。CKEn−1は、その1つ前のクロックエッジにおけるCKEの論理状態を示す。
【0098】
2.CURRENT_STATEは、n番目のクロックエッジ直前におけるシンクロナスフラッシュメモリの状態を示す。
【0099】
3.COMMANDnは、n番目のクロックエッジにおいて登録されるコマンドを示し、ACTIONnは、COMMANDnによる動作を示す。
【0100】
4.表に示されていない状態やシーケンスは全て、イリーガルあるいは予備である。
【0101】
5.n番目のクロックエッジでPOWER−DOWNから脱すると、デバイスは、クロックn+1までに、即ち、期間tCKSが経過するまでに、全バンクがアイドル状態になる。
【0102】
6.n番目のクロックエッジでCLOCK−SUSPENDから脱した後、デバイスは、処理を再開し、n+1番目のクロックエッジで次のコマンドを識別する。
【0103】
以下のテーブルは、CKEn−1とCKEnが共にHighの場合におけるコマンド処理を示す。
【0104】
【表6】
【0105】
真理値表4の特記事項
1.このテーブルは、CKEn−1がHighで、CKEnがHighの場合を示す(真理値表3参照)。
【0106】
2.このテーブルは、備考欄に特に記載がなければ、指定されたバンクに関するものである。即ち、CURRENT_STATEが示す状態は、指定されたバンクにおける状態であって、表に示されているコマンドは、CURRENT_STATEが示す状態になった場合に、前記指定されたバンクに発行されるコマンドを示す。特記事項があれば、備考欄に記載してある。
【0107】
3.現在の状態(Current state)の定義
アイドル状態:指定されたバンクは、初期化状態、読出し状態、書込み状態に入っておらず、期間tRPが経過している状態である。
【0108】
行の活性化状態:指定されたバンクの1つの行が活性化され、期間tRCDが経過している状態である。データのバースト又はアクセス並びにレジスタへのアクセスは実行されていない。
【0109】
読出し状態:READバーストが開始され、まだ、読出し終了に達していない状態である。
【0110】
書込み状態:内部ステートマシンに対するWRITE処理が開始され、その処理が終了していない状態である。
【0111】
4.下記の状態は、同一のバンクに対する新たなコマンドの発行によって中断されてはならない。COMMAND_INHIBITコマンドあるいはNOPコマンド、又は他のバンクに対して供給されるコマンドは、下記の状態の間の数クロックエッジにおいて発行されるべきである。他のバンクに供給されるコマンドは、現在の状態及び真理値表4によって決定され、真理値表5に関係する。
【0112】
活性の終了状態:ACTIVE_TERMINATEコマンドの登録で開始し、期間tRPが経過した時点で終了する。一旦、期間tRPが経過すると、そのバンクはアイドル状態に入る。
【0113】
行の活性化状態:ACTIVEコマンドの登録で開始し、期間tRCDが経過した時点で終了する。一旦、期間tRCDが経過すると、そのバンクは、行が活性化された状態となる。
【0114】
5.下記の状態は、コマンドの実行によって中断されてはならない。COMMAND_INHIBIT又はNOPコマンドは、下記の状態の間において、クロックの立ち上がりエッジにて供給されなければならない。
【0115】
モードレジスタへのアクセス状態:LOAD_MODE_REGISTERコマンドの登録で開始し、期間tMRDが経過した時点で終了する。一旦、期間tMRDが経過すると、シンクロナスフラッシュメモリは、全てのバンクがアイドル状態に入る。
【0116】
モードの初期化状態:RP#がLOWからHIGHに代わった時点で開始し、100μsの遅延後に終了する。
【0117】
6.表に示されていない状態やシーケンスは全て、イリーガル又は予備を示す。
【0118】
7.バンクを指定しない場合は、全てのバンクがアイドル状態であることが必要である。
【0119】
8.バンクが指定されていても指定されていなくてもよい。
【0120】
9.バンクを指定しない場合、BURST_TERMINATEコマンドは、バンクに拘わらず、直前のREADバーストに対して有効となる。
【0121】
10.n番目のバンクに対するREAD処理は許可されるが、ISMの書込み処理が行われている間における読出しデータの有効性は保証されない。書込み処理が完了した後、デバイスは、自動的にアレイ読出しモードに入り、ACTIVE−READコマンドの発行によって有効なデータを出力する。
【0122】
以下のテーブルは、CKEn−1とCKEnが共にHighであって、バンクが切り換えられた場合におけるコマンド処理を示す。
【0123】
【表7】
【0124】
真理値表5の特記事項
1.このテーブルは、CKEn−1がHighで、CKEnがHighの場合を示す(真理値表3参照)。
【0125】
2.このテーブルは、備考欄に特に記載がなければ、バンク切り換え処理を説明している。即ち、現在の状態は、n番目のバンクにおける状態であって、表に示されているコマンドは、m番目のバンク(想定したm番目のバンクは、与えられたコマンドが許可された状態にある)に対する発行が許可されたコマンドを示す。特記事項があれば、備考欄に記載してある。
【0126】
3.現在の状態(Current state)の定義
アイドル状態:m番目のバンクは、初期化状態、読出し状態、書込み状態に入っておらず、期間tRPが経過している状態である。
【0127】
行の活性化状態:m番目のバンクの1つの行が活性化され、期間tRCDが経過している状態である。データのバースト又はアクセス並びにレジスタへのアクセスは実行されていない。
【0128】
読出し状態:READバーストが開始され、まだ、読出し終端に達していない状態又は読出し終端に達している状態である。
【0129】
書込み状態:内部ステートマシンに対するWRITE処理が開始され、その処理が完了していない状態である。
【0130】
4.LOAD_MODE_REGISTERコマンドは、全てのバンクがアイドル状態のときにのみ発行される。
【0131】
5.BURST_TERMINATEコマンドは、他のバンクに対しては発行されない。現在の状態のみによって代表されるバンクに対して発行される。
【0132】
6.表に示されていない状態やシーケンスは全て、イリーガル又は予備を示す。
【0133】
機能説明
シンクロナスフラッシュメモリは、多くの機能を有し、SDRAMバス上でのコードの格納や、XIP技術(execute in place)技術を利用したアプリケーションに最適である。メモリアレイは、個々の消去ブロックに細分化される。各々のブロックに保持されたデータは、他のブロックに保持されたデータに影響を与えることなく消去することができる。これらのメモリブロックの読み出し、書き込み、消去は、コマンド実行ロジック(CEL)130に対するコマンドの発行によって実行することができる。CELは、内部ステートマシン(ISM)132の処理を制御する。CELは、ERASE_NVMODE_REGISTER処理、WRITE_NVMODE_REGISTER処理、WRITE処理、BLOCK_ERASE処理、BLOCK_PROTECT処理、DEVICE_PROTECT処理、UNPROTECT_ALL_BLOCKS処理、およびVERIFY処理の全てを完全に制御する。ISM132は、各々のメモリロケーションで過剰消去がなされないように保護し、各々のメモリロケーションでデータの保持が最大限に行われるように最適化する。さらに、ISMによって、システム内でのデバイスの書き込み、または、外部のプログラマによるデバイスの書き込みに必要な制御が大幅に簡略化する。
【0134】
シンクロナスフラッシュメモリは、16個の別個の消去可能なブロックで構成される。メモリブロックに保持されたデータは、他のメモリブロックに保持されたデータに影響を与えることなく、部分的に消去可能である。メモリブロックは、ハードウエアによって不慮のデータ消去や書き込みから保護されるようにしてもよい。ブロックを保護する場合には、当該ブロックのデータが改変される前に、RP#端子の電圧をVHH(比較的に高電圧)にドライブする必要がある。ロケーション0および15の256Kワードの容量を有するブロックは、別のハードウエアによる保護手段を備えていてもよい。これらのブロックに対してPROTECTコマンドが一旦実行されると、UNPROTECT_ALL_BLOCKSコマンドによって、RP#がVHHでなければ、ロケーション0およびロケーション15以外の全てのブロックの保護を解除する。これにより、システム内でのファームウエアのアップデートの際、不慮の電力障害やシステムリセットが発生した場合であっても、重要なコードに対するセキュリティが高められる。
【0135】
電源立ち上げ時の初期化、ERASE処理、WRITE処理およびPROTECT処理のタイミングは、メモリアレイ内の全てのプログラミングのアルゴリズムを制御するISMを用いることによって簡略化される。ISMによって、過剰消去を防止してデータが保護され、各セルに対する書き込みマージンが最適化される。WRITE処理の間、ISMは、自動的に、WRITE処理の試行回数のインクリメントおよび監視を行い、各メモリセルにおける書き込みマージンを認証し、ISMステータスレジスタを更新する。BLOCK_ERASE処理を実行するとき、ISMは、自動的にアドレスブロック全体を上書きして過剰消去を防止し、WRITE処理の試行回数のインクレメントおよび監視を行い、ISMステータスレジスタのビットをセットする。
【0136】
8ビットのISMステータスレジスタ134は、外部プロセッサ200又はメモリコントローラにWRITE処理、ERASE処理、PROTECT処理時のISMのステータスを監視させる。8ビットのステータスレジスタのうち、1ビット(SR7)のセットおよびクリア(設定解除)は、ISMによって完全に行われる。このビットは、ISMがERASE処理、WRITE処理、または、PROTECT処理でビジーになっているか否かを示す。また、他のエラー情報、即ち、書き込み保護ブロックエラー、消去非保護全ブロックエラー、デバイス保護エラーは、別の3つのビット(SR3、SR4、SR5)で設定する。ステータスレジスタビットSR0、SR1およびSR2により、実行中のISMの処理の詳細な情報が得られる。ユーザは、デバイスレベルでのISMの処理が進行中であるのか、バンクレベルでのISM処理が進行中であるのかを確認でき、どのバンクがISMによって制御されているかも確認できる。これらの6個のビット(SR3〜SR5)は、ホストシステムによってクリアされなければならない。表3を参照してステータスレジスタについてより詳細に説明する。
【0137】
CEL130は、デバイスに対するコマンドの受け取りおよび解読を行う。各コマンドは、ISMの処理および読み出しパス(即ち、メモリアレイ、デバイス構成、または、ステータスレジスタ)を制御する。ISMがアクティブになっているとき、CELに対するコマンドが発行される。
【0138】
節電効果を高めるために、シンクロナスフラッシュは、極めて低電流のディープパワーダウンモードに対応している。このモードに入るためには、RP#端子140(リセット/パワーダウン)をVSS±0.2Vにする必要がある。不慮のRESETを回避するため、RP#がVssで100nsの間維持されなければデバイスはリセットモードに入らない。RP#がVssに維持されると、デバイスは、ディープパワーダウンモードに入る。デバイスがディープパワーダウンモードに入った後にRP#がLOWからHIGHに変化すると、本明細書中で概略説明しているように、デバイスの起動初期化シーケンスが実行される。リセットモードに入った後にRP#がLOWからHIGHに変化しても、ディープパワーダウンモードに入っていなかった場合には、実行可能なコマンドの発行までに1μsの遅延時間が必要となる。デバイスがディープパワーダウンモードに入ると、RP#バッファを除く全てのバッファが不作動(disable)になり、電流量が少なくなり、例えば、3.3VのVCCで最大50μAになる。ディープパワーダウンモードの間、RP#への入力はVssに維持されなければならない。RESETモードに入ると、ステータスレジスタ134がクリアされ、ISM132がアレイ読み出しモードにセットされる。
【0139】
シンクロナスフラッシュメモリアーキテクチャによれば、各セクタのデータを消去する際、アレイの他の部分に影響を与えることがない。アレイは、16個のアドレス指定可能な「ブロック」に分けられており、これらのブロックは、別個に消去可能である。アレイ全体ではなく、ブロック単位でデータの消去が可能であるため、デバイス全体の耐久性およびシステムの柔軟性が向上する。ERASE機能およびBLOCK_PROTECT機能のみがブロック単位で実行される。16個のアドレス指定可能なブロックは、4つのバンク104、106、108、110に等分される。つまり、各バンク104、106、108、110は、4つのブロックからなる。4つのバンクに対し、一方では読み出し、他方では書き込みを同時に行うことができる。あるバンクに対し、ISMによるWRITE処理またはERASE処理を行っているときに別のバンクに対してREAD処理を行うことができる。ステータスレジスタ134をポーリングすることによって、どのバンクに対してISMの処理が実行されているかを判定することができる。シンクロナスフラッシュメモリは、単一のバックグランド処理を行うISMを備える。このISMは、電源立ち上げ時の初期化処理、ERASE処理、WRITE処理およびPROTECT処理を制御する。どのような場合であっても、ISMによる処理は1つしか実行することができない。しかしながら、READ処理を含む他の特定のコマンドは、ISM処理を行っている間に実行することができる。ISMによって制御される処理コマンドは、バンクレベルの処理、またはデバイスレベルの処理である。WRITE処理やERASE処理は、バンクレベルで行われるISM処理である。バンクレベルで行われるISM処理が開始されると、このバンクにおいては、どのロケーションに対してREAD処理が行われても無効データが出力されるが、他のバンクに対してREAD処理が行われると、そのアレイが読み出される。READ_STATUS_REGISTERコマンドが実行されると、ステータスレジスタ134が保持するコンテンツが出力される。ISMステータスビットは、ISM処理の終了を示す(SR7=1)。ISM処理が終了すると、バンクが自動的にアレイ読み出しモードに入る。ERASE_NVMODE_REGISTER処理、WRITE_NVMODE REGISTER処理、BLOCK_PROTECT処理、DEVICE_PROTECT処理、およびUNPROTECT_ALL_BLOCKS処理は、デバイスレベルで行われるISM処理である。デバイスレベルで行われるISM処理が一旦開始されると、どのバンクに対してREAD処理が行われてもアレイが保持するコンテンツが出力される。READ_STATUS_REGISTERコマンドは、ISM処理の終了を判定するために発行される。SR7=1であるとき、ISM処理は終了し、次のISM処理が開始される。ハードウエア回路によって意図しないERASE処理またはWRITE処理が行われるのを防いでブロックのデータを保護する場合には、以下に述べるように、WRITE処理またはERASE処理が行われる前にRP#をVHHにドライブする必要がある。
【0140】
ファームウエアの最も重要な部分に対するセキュリティを高めるために、ブロックのデータをハードウエアによって保護する場合がある。ハードウエアによって保護されているブロックに対してWRITE処理またはERASE処理が行われている間には、即ち、WRITE処理またはERASE処理が終了するまでは、RP#は、VHHに維持されなければならない。RP#=VHHでない場合、保護されたブロックに対するWRITE処理またはERASE処理は禁止され、書き込みエラーまたは消去エラーとなる。ロケーション0および15のブロックは、予期しないWRITE処理あるいはERASE処理を保護するために、別のハードウエア保護機能を有する。本実施の形態において、これらのブロックは、RP#=VHHでない場合には、ソフトウエアによって、即ち、UNPROTECT_ALL_BLOCKSコマンドを発行することによって保護されたブロックの保護を解除することはできない。ブロックの保護ステータスは、READ_STATUS_REGISTERコマンドを発行し、ブロックの保護ビットを読み取ることによって確認することができる。また、ブロックを保護するためには、対象となるブロックアドレスに対し、3サイクルのコマンドシーケンスを発行しなければならない。
【0141】
シンクロナスフラッシュメモリは、3つの異なるモードのREAD処理に対応している。モードに応じたREAD処理によって、メモリアレイ、ステータスレジスタ、または、デバイスコンフィグレーションレジスタの1つからデータが作成される。デバイスコンフィグレーションレジスタまたはステータスレジスタに対するREAD処理は、LCR−ACTIVEサイクルの後に行われる。データ出力(data out)のバースト長は、モードレジスタの設定によって定義される。LCR−ACTIVEサイクルの後のREAD処理、またはLCR−ACTIVEサイクルを必要としないで行われるREAD処理によって、アレイが読み出される。しかしながら、読み出し動作には幾つかのバリエーションが存在するため、以下の項目で説明する。
【0142】
バンクに対するREADコマンドの実行によって、メモリアレイのコンテンツが出力される。ISMによるWRITE処理またはERASE処理が行われている間は、ISMの制御下にあるバンク内のどのロケーションに対してREAD処理が行われても無効データが出力される。RESET処理を終了すると、デバイスが自動的にアレイ読み出しモードに入る。
【0143】
ステータスレジスタ134のREAD処理を実行するためには、アレイの読み出し時と同様の入力シーケンスが必要であるが、LCR_READ_STATUS_REGISTER(70H)サイクルがACTIVE READサイクルの前でなければならない。ステータスレジスタによるデータ出力(data out)のバースト長は、モードレジスタ148によって定義される。ステータスレジスタが保持するコンテンツは、CASレイテンシが経過した後、クロックの次の立ち上がりエッジで更新され、ラッチされる。デバイスは、自動的にアレイ読み出しモードに入り、次のREAD処理が可能な状態になる。
【0144】
デバイスコンフィグレーションレジスタ136の読み出しには、ステータスレジスタの読み出しと同様の入力シーケンスが必要であるが、特定のアドレスを指定しなければならない。WE#は、HIGHでなければならず、DQMおよびCS#はLOWでなければならない。メーカ互換IDを読み出すためには、アドレスは、000000Hに指定されていなければならない。デバイスIDを読み出すためには、アドレスは、000001Hに指定されていなければならない。各消去ブロック(xx0002H)内での第三のアドレスロケーションでブロック保護ビットは読み出され、デバイス保護ビットは、ロケーション000003Hから読み出される。
【0145】
DQ端子は、アレイにデータを入力するためにも用いられる。アドレス端子は、アドレスロケーションを指定するため、または、LOAD_COMMAND_REGISTERサイクルの間にCELに対してコマンドを入力するために用いられる。コマンド入力によって、CELに対して8ビットのコマンドが発行され、デバイスの処理モードが制御される。WRITE処理は、メモリアレイにデータを入力するために使用される。以下、入力タイプの両方について説明する。
【0146】
コマンド入力を実行するためには、DQMはLOWでなければならず、CS#およびWE#も、LOWでなければならない。アドレス端子やDQ端子は、各コマンドの入力に用いられる。コマンドの入力に使用されないアドレス端子は「ドントケア」であって、状態が維持されていなければならない。8ビットコマンドは、DQ0〜DQ7、または、A0〜A7に対する入力であり、クロックの立ち上がりエッジでラッチされる。
【0147】
メモリアレイに対するWRITE処理によって、所望のビットが論理0に設定されるが、論理0に設定されているビットを論理1に変更することはできない。いずれかのビットを論理1に設定すると、ブロック全体のデータが消去される。WRITE処理を実行するためには、DOQは、LOWでなければならず、CS#およびWE#も、LOWでなければならない。また、VCCPをVCCに保持しなければならない。保護されたブロックに対して書き込みを行うには、RP#をVHHにする必要がある。A0〜A11によって書き込みアドレスが指定され、アレイに書き込まれるデータは、DQ端子に入力される。データおよびアドレスは、クロックの立ち上がりエッジでラッチされる。WRITE処理の前には、WRITE_SETUPコマンドを発行する必要がある。
【0148】
メモリブロックの書き込みを簡略化するために、シンクロナスフラッシュメモリのISMは、WRITEサイクルおよびERASEサイクルの内部アルゴリズムの全てを制御する。デバイスの制御には、8ビットのコマンドセットが使用される。真理値表1および2に有効なコマンドのリストを示す。
【0149】
8ビットのISMステータスレジスタ134(表2)に対してポーリングを行うことによって、ERASE_NVMODE_REGISTER処理、WRITE_NVMODE_REGISTER処理、WRITE処理、ERASE処理、BLOCK_PROTECT処理、DEVICE_PROTECT処理、または、UNPROTECT_ALL_BLOCKS処理が終了されたかどうか、また、これらの処理の際にエラーが発生したかどうかがチェックされる。ISM処理の終了は、READ_STATUS_REGISTER(70H)コマンドの発行によって監視される。ステータスレジスタのコンテンツは、DQ0〜DQ7に出力され、CASレイテンシが経過した後、次のクロックの立ち上がりエッジで、モードレジスタの設定によって定義される固定バースト長の分だけ更新される。ISM処理は、SR7=1となったときに終了する。ビットで定義されるブロックは全てISMによって設定されるが、ISMのステータスビットのみがISMによってリセットされる。消去/非保護ブロック、書き込み/保護ブロック、デバイス保護は、CLEAR_STATUS_REGISTER(50H)コマンドによってクリアされなければならない。これによってユーザがポーリングを行ってステータスレジスタをクリアするタイミングを選択することができる。例えば、ホストシステムは、個々のWRITE処理が行われた後にステータスレジスタをチェックするのではなく、複数のWRITE処理が行われた後にステータスレジスタをチェックすることができる。RP#信号のアサート、デバイスのパワーダウンによってもステータスレジスタがクリアされる。
【0150】
【表8】
【0151】
デバイスID、製造メーカー互換ID、デバイス保護ステータス、およびブロック保護ステータスは、全て、READ_DEVICE_CONFIGURATION(90H)コマンドを発行することによって読み出される。所望のレジスタを読み出すために、特定のアドレスがアサートされなければならない。様々なデバイスのコンフィグレーションレジスタ136についての詳細を表3に示す。
【0152】
【表9】
【0153】
表4の特記事項
1.DQ8〜DQ15はドントケアである。
【0154】
2.ブロック保護ビットを読み出すためのアドレスは、常時、各ブロック内の第3ロケーションに存在する。
【0155】
3.DQ1〜DQ7は予備であり、DQ8〜DQ15はドントケアである。
【0156】
デバイスの処理モードを変更するためのコマンドを発行することもできる。各モードでは、そのモード特有の処理が行われる。幾つかのモードでは、処理の実行の前に、一連のコマンドを書き込む必要がある。以下、各モードの特性について説明する。真理値表1および2は、所望の処理を行ために必要なコマンドシーケンスのリストである。読み出しと書き込みを同時に行う機能によって、バックグランド処理であるバンクに対して書き込み処理または消去処理を行っている間に他のバンクに読み出し処理を行うことができる。書き込み処理では、真理値表2に記載されたLCR−ACTIVE−WRITEコマンドシーケンスを連続したクロックサイクルで終了させなければならない。しかしながら、シンクロナスフラッシュコントローラの処理を簡略化するために、このコマンドシーケンスの間、NOPコマンドまたはCOMMAND_INHIBITコマンドを数に制限なく発行するようにしている。さらに、データの保護機能を高めるために、これらのコマンドシーケンスは、3サイクルの間、同一のバンクアドレスに指定しなければならない。LCR−ACTIVE−WRITEコマンドシーケンスの間にバンクアドレスが変更される場合、または、コマンドシーケンスが連続していない場合(コマンドシーケンスの間に、コマンドの発行が許されているNOPコマンドおよびCOMMAND_INHIBITコマンド以外のコマンドが発行された場合)、書き込みステータスビットおよび消去ステータスビット(SR4およびSR5)が設定され、処理が禁止される。
【0157】
パワーアップ(電源立ち上げ)後、処理コマンドがデバイスに対して発行される前に、シンクロナスフラッシュメモリが初期化される。VCC、VCCQ、およびVCCPに対して(同時に)電源が供給された後、クロックが安定し、RP#がLOWからHIGHに変化する。RP#がHIGHに移行した後、デバイス内部の初期化が終了するには、遅延時間(一実施の形態においては、100μsの遅延時間)が必要である。デバイスの初期化が終了すると、デバイスは、アレイ読み取りモードになり、実行可能なコマンドがデバイスに対して発行される。
【0158】
デバイスID、メーカー互換ID、デバイス保護ビットおよびブロック保護ビットの各々を読み出すためには、READ_DEVICE_CONFIGURATION(90H)コマンドが発行される。このモードにおいては、所望の情報を読み出すために特定のアドレスが指定される。メーカー互換IDは、000000Hで読み出される。デバイスIDは、000001Hで読み出される。メーカー互換およびデバイスIDは、DQ0〜DQ7に出力される。デバイス保護ビットは、000003Hで読み出される。ブロック保護ビットの各々は、各ブロックにおける3番目のアドレスロケーション(xx0002H)で読み出される。デバイス保護ビットおよびブロック保護ビットは、DQ0に出力される。
【0159】
アレイに対してデータを入力するには、連続的なクロックエッジで3つの連続的なコマンドを発行する必要がある(各サイクルの間において、NOPコマンドおよびCOMMAND_INHIBITコマンドの発行が許されている)。初めのサイクルにおいては、A0〜A7に対し、LOAD_COMMAND_REGISTERコマンドがWRITE_SETUPコマンド(40H)とともに発行され、BA0、BA1に対し、バンクアドレスが発行される。次のサイクルにおいては、ACTIVEコマンドが発行され、行アドレスがアクティブとなり、バンクアドレスが確認される。3番目のサイクルは、WRITEコマンドであり、開始列、バンクアドレスおよびデータが発行される。CASレイテンシが経過した後、次のクロックエッジでISMステータスビットが設定される。ISMがWRITE処理を実行している間、ISMステータスビット(SR7)は0になる。ISMの制御下では、バンクに対してREAD処理が行われると、無効なデータが作成される。ISMステータスビット(SR7)が論理1に設定されると、WRITE処理が終了し、このバンクはアレイ読み出しモードとなり、コマンドの実行が可能となる。ハードウエアによって保護されたブロックに書き込みをする場合にも、第3のサイクルであるWRITE処理を実行する前にRP#がVHHに設定される必要があり、ISMによるWRITE処理が終了するまで、RP#は、VHHに保持されなければならない。連続するサイクルでLCR−ACTIVE−WRITEコマンドシーケンスが終了していない場合、または、バンクアドレスが3サイクルのいずれかにおいて変更された場合には、書き込みステータスビットおよび消去ステータスビット(SR4およびSR5)が設定される。ISMがWRITE処理を開始すると、このWRITE処理は、RESET処理が行われるか、パワーダウンが行われることがない限り、中止することはない。RESET処理が行われたり、パワーダウンが行われたりすると、いずれの場合にも、書き込み中のデータが破壊される可能性がある。
【0160】
ERASEシーケンスを実行すると、ブロック内の全てのビットが論理1に設定される。ERASE処理を実行するのに必要なコマンドシーケンスは、WRITE処理を実行するためのものと同様である。予期しないブロック消去が行われるのを防止してセキュリティを高めるために、あるブロックのERASE処理を開始するには、連続的なクロックエッジで3つの連続的なコマンドを発行する必要がある。初めのサイクルにおいては、A0〜A7に対してLOAD_COMMAND_REGISTERコマンドがERASE_SETUPコマンド(20H)と共に発行され、BA0、BA1に対して消去されるブロックのバンクアドレスが発行される。次のサイクルにおいては、ACTIVEコマンドが発行され、A10、A11、BA0、BA1によって消去されるブロックのアドレスが指定される。3番目のサイクルではWRITEコマンドが発行され、その間に、DQ0〜DQ7に対してERASE_CONFIRMコマンド(D0H)が発行され、バンクアドレスが再発行される。CASレイテンシが経過した後、次のクロックエッジでISMステータスビットが設定される。ERASE_CONFIRMコマンド(D0H)が発行された後、ISMは、アドレスが指定されたブロックのERASE処理を開始する。アドレスが指定されているブロックが存在するバンクに対してREAD処理が行われると、無効なデータが出力される。ERASE処理が終了すると、バンクはアレイ読み出しモードになり、コマンドの実行が可能となる。ハードウエアによって保護されたブロックを消去する場合にも、第3のサイクルであるWRITE処理を実行する前にRP#がVHHに設定される必要があり、ISMによるERASE処理が終了する(SR7=1)まで、RP#は、VHHに保持されなければならない。連続的なサイクルでLCR−ACTIVE−WRITEコマンドシーケンスが終了していない場合(各サイクルの間において、NOPコマンドおよびCOMMAND_INHIBITコマンドの発行が許されている)、または、1つ以上のコマンドサイクルでバンクアドレスが変更されている場合には、書き込みステータスビットおよび消去ステータスビット(SR4およびSR5)が設定され、処理が禁止される。
【0161】
モードレジスタ148のコンテンツをWRITE_NVMODE_REGISTERコマンドによってNVモードレジスタにコピーしてもよい。NVモードレジスタに対して書き込みを行う前に、ERASE_NVMODE_REGISTERコマンドシーケンスを終了させ、NVモードレジスタ内の全てのビットを論理1に設定する必要がある。ERASE_NVMODE_REGISTER処理およびWRITE_NVMODE_REGISTER処理を実行するのに必要なコマンドシーケンスは、WRITE処理を実行するためのものと同様である。ERASE_NVMODE_REGISTER処理およびWRITE_NVMODE_REGISTER処理を終了させるのに必要なLCR−ACTIVE−WRITEコマンドについての詳細な情報は、真理値表2に示されている。ERASE_NVMODE_REGISTERコマンドシーケンスまたはWRITE_NVMODEREGISTERコマンドシーケンスのWRITEサイクルが登録された後、READコマンドがアレイに対して発行される。現在実行中のISM処理が終了し、SR7=1となるまでは、新たなWRITE処理は許可されない。
【0162】
BLOCK_PROTECTシーケンスを実行することにより、所定のブロックに対する第1レベルのソフトウエア/ハードウエア保護を行うことができる。メモリは、1つのビットで16個のブロックを保護する16ビットレジスタを有する。また、メモリは、書き込み処理や消去処理を防止してデバイス全体のデータを保護するためのデバイスビットを提供するレジスタを備える。BLOCK_PROTECT処理を実行するのに必要なコマンドシーケンスは、WRITE処理を実行するためのものと同様である。予期しないブロック消去が行われるのを防止してセキュリティを高めるために、BLOCK_PROTECT処理を開始するには、3つの連続的なコマンドを発行する必要がある。初めのサイクルにおいては、A0〜A7に対してLOAD_COMMAND_REGISTERコマンドがPROTECT_SETUPコマンド(60H)と共に発行され、BA0、BA1に対して保護すべきブロックのバンクアドレスが発行される。次のサイクルにおいては、ACTIVEコマンドが発行され、保護されるべきブロックの行がアクティブになり、バンクアドレスが確認される。3番目のサイクルでは、WRITEコマンドが発行され、その間に、DQ0〜DQ7に対してBLOCK_PROTECT_CONFIRMコマンド(01H)が発行され、バンクアドレスが再発行される。CASレイテンシが経過した後、次のクロックエッジでISMステータスビットが設定される。そして、ISMは、PROTECT処理を開始する。連続的なサイクルでLCR−ACTIVE−WRITEコマンドシーケンスが終了していない場合、(各サイクルの間において、NOPコマンドおよびCOMMAND_INHIBITコマンドの発行が許されている)、または、バンクアドレスが変更された場合には、WRITEステータスビットおよび消去ステータスビット(SR4およびSR5)が設定され、処理が禁止される。ISMステータスビット(SR7)が論理1に設定されると、PROTECT処理が終了し、そのバンクはアレイ読み出しモードとなり、コマンドの実行が可能となる。ブロック保護ビットが一旦1(保護)に設定されると、UNPROTECT_ALL_BLOCKSコマンドによって0にリセットする以外には、この保護ビットを変更できなくなる。UNPROTECT_ALL_BLOCKSコマンドシーケンスは、BLOCK_PROTECTコマンドに類似しているが、第3のサイクルでは、WRITEコマンドがUNPROTECT_ALL_BLOCKS_CONFIRMコマンド(D0H)と共に発行され、アドレスが「ドントケア」に指定される。真理値表2には、さらに他の情報も含まれている。ロケーション0および15のブロックでは、さらにセキュリティが高まっている。ロケーション0および15のブロック保護ビットが一旦1(保護)に設定されると、各ビットは、UNPROTECT処理の3番目のサイクルの前にRP#をVHHにし、BLOCK_PROTECT処理またはUNPROTECT ALL_BLOCKS処理が終了するまで(SR7=1)VHHに保持しなけば、ビットが0にリセットされない。さらに、デバイス保護ビットがセットされた場合、前記3番目のサイクルの前にRP#をVHHにし、BLOCK_PROTECT処理又はUNPROTECT_ALL_BLOCKS処理が終了するまでVHHに保持させる必要がある。ブロックの保護ステータスの確認は、READ_DEVICE_CONFIGURATIONコマンド(90H)を発行することによって行われる。
【0163】
DEVICE_PROTECTシーケンスを実行すると、デバイスの保護ビットが1に設定され、ブロック保護ビットの変更が防止される。DEVICE_PROTECT処理を実行するのに必要なコマンドシーケンスは、WRITE処理を実行するためのものと同様である。DEVICE_PROTECTシーケンスを開始するには3つの連続したコマンドサイクルが必要となる。初めのサイクルでは、A0〜A7に対してLOAD_COMMAND_REGISTERコマンドがPROTECT_SETUPコマンド(60H)と共に発行され、BA0、BA1に対してバンクアドレスが発行される。バンクアドレスは、「ドントケア」であるが、3つのサイクルの全てに対して同一のバンクアドレスを使用しなければならない。次のコマンドは、ACTIVEである。3番目のサイクルは、WRITEサイクルである。WRITEサイクルの間、DQ0〜DQ7に対してDEVICE_PROTECTコマンド(F1H)が発行され、RP#がVHHになる。CASレイテンシが経過した後、次のクロックエッジでISMステータスビットが設定される。デバイスに対して実行可能なコマンドを発行することが可能になる。RP#は、WRITE処理が終了する(SR7=1)までは、VHHに保持されなければならない。現在実行中のISM処理が終了するまでは、新たなWRITE処理の実行は許されない。デバイス保護ビットが一旦1に設定されると、RP#がVHHにならない限り、BLOCK_PROTECT処理やBLOCK_UNPROTECT処理は実行することができない。デバイス保護ビットは、WRITE処理またはERASE処理に影響を与えない。ブロック保護処理およびデバイス保護処理についてのより詳細な情報を表5に示す。
【0164】
【表10】
【0165】
表5の特記事項
1.LはVIL(LOW)、HはVIH(HIGH)、XはVIL又はVIH(ドントケア)を示す。
【0166】
2.BAはブロックアドレスを示す。
【0167】
3.処理は、PROTECT_SETUPコマンドの発行後に行わなければならない。
【0168】
4.RP#=VIH(3V)のとき、0番目のブロックと15番目のブロックを除く全てのブロックは、ロック解除状態である。RP#=VHH(5V)のとき、全てのブロックがロック解除状態である。
【0169】
5.DQ8〜DQ15はドントケアである。
【0170】
ISMステータスビット(SR7)が設定された後、デバイス/バンク(SR0)、デバイス保護(SR3)、バンクA0(SR1)、バンクA1(SR2)、書き込み/保護ブロック(SR4)および消去/非保護(SR5)の各ステータスビットがチェックされる。SR3、SR4、SR5のステータスビットのうちの1つ、またはこれらのステータスビットの組み合わせ(幾つか)が設定されている場合には、処理の際にエラーが発生する。ISMはSR3、SR4、SR5のビットをリセットすることはできない。これらのビットをクリアするためには、CLEAR_STATUS_REGISTERコマンド(50H)を発行する必要がある。表5は、SR3、SR4、SR5の組み合わせによるエラーを示す。
【0171】
【表11】
【0172】
表6の特記事項
1.SR0〜SR5は、CLEAR_STATUS_REGISTERコマンドを用いてクリアされる。
【0173】
2.SR3、SR4及びSR5は、非累積的な結果をもたらすものと仮定する。
【0174】
シンクロナスフラッシュメモリは、コードおよびデータストレージの高度な要求を満たすように設計、製造される。このようなレベルの信頼性を確保するため、WRITEサイクル間またはERASEサイクル間において、VCCPは、Vccに保持されなければならない。この制約が満たされることなく処理が実行される場合には、デバイスにおいて実行されるWRITEサイクルの回数やERASEサイクルの回数が減少する。各ブロックは、最低で100,000回の書き込み/消去が可能なように設計、製造される。
【0175】
シンクロナスフラッシュメモリは、幾つかの省電力機能を有し、この省電力機能はアレイ読み出しモードで使用することで、電力を節約すことができる。ディープパワーダウンモードは、RP#をVSS±0.2Vにすることよって実行することができる。このモードでは、電流量(ICC)が小さく、例えば、最大で50μAである。CS#がHIGHになると、デバイスは、アクティブスタンドバイモードに入る。このモードにおいても、低電流であり、電流量(ICC)は、例えば、最大で30mAである。CS#が書き込み処理、消去処理、または、保護処理中にHIGHになると、ISMはWRITE処理を続行し、デバイスは、処理が終了するまでアクティブIccp電力を消費する。
【0176】
図16は、本発明の一実施の形態に係る自己同期(self-timed)書き込みシーケンスのフローチャートである。このシーケンスは、コマンドレジスタ(コード40H)のロード、アクティブコマンドおよび行アドレスの受け取り、書き込みコマンドおよび列アドレスの受け取りを含む。そして、このシーケンスでは、ステータスレジスタに対してポーリングが行われ、書き込みが終了しているかどうかが判定される。ポーリングによってステータスレジスタビット7(SR7)が監視され、ステータスレジスタビット7が1に設定されているかどうかが判定される。また、オプションとして、ステータスチェックを実行するようにしてもよい。書き込み処理が終了すると、アレイがアレイ読み出しモードに入る。
【0177】
図17は、本発明の一実施の形態に係る完全な読み出しステータスチェックシーケンスのフローチャートを示す。このシーケンスでは、ステータスレジスタビット4(SR4)がチェックされ、0に設定されているかどうか判定される。SR4が1であれば、書き込み処理の際にエラーが発生したとされる。そして、このシーケンスでは、ステータスレジスタビット3(SR3)がチェックされ、0に設定されているかどうかが判定される。SR3が1であれば、書き込み処理の際に無効書き込みエラーが発生したとされる。
【0178】
図18は、本発明の一実施の形態に係る自己同期ブロック消去シーケンスのフローチャートを示す。このシーケンスは、コマンドレジスタ(コード20H)のロード、アクティブコマンドおよび行アドレスの受け取りを含む。そして、メモリは、ブロックが保護されているかどうかを判定する。ブロックが保護されていなければ、メモリはブロックに対して書き込み処理(D0H)を実行し、ステータスレジスタを監視し、処理が終了しているかどうかを判定する。また、オプションとして、ステータスチェックを実行するようにしてもよい。消去処理が終了すると、メモリはアレイ読み出しモードに入る。ブロックが保護されていれば、RP#信号が高電圧(VHH)になっていない限り、消去処理を実行することはできない。
【0179】
図19は、本発明の一実施の形態に係る完全なブロック消去ステータスチェックシーケンスのフローチャートを示す。このシーケンスでは、ステータスレジスタが監視され、コマンドシーケンスエラーが発生したかどうかが確認される(SR4=1またはSR5=1)。SR3が1に設定されていれば、無効消去エラーまたは非保護エラー(保護違反エラー)が発生する。SR5が1に設定されていれば、ブロック消去エラーまたは非保護エラー(保護違反エラー)が発生する。
【0180】
図20は、本発明の一実施の形態に係るブロック保護シーケンスのフローチャートを示す。このシーケンスは、コマンドレジスタ(コード60H)のロード、アクティブコマンドおよび行アドレスの受け取りを含む。そして、メモリは、ブロックが保護されているかどうかを判定する。ブロックが保護されていなければ、ブロックに対してメモリは書き込み処理(01H)を実行し、ステータスレジスタを監視し、処理が終了しているかどうかをチェックする。また、オプションとして、ステータスチェックを実行するようにしてもよい。ブロック保護処理が終了すると、メモリはアレイ読み出しモードに入る。ブロックが保護されていれば、RP#信号が高電圧(VHH)になっていない限り、消去処理を実行することはできない。
【0181】
図21は、本発明の一実施の形態に係る完全なブロックステータスチェックシーケンスのフローチャートを示す。このシーケンスでは、ステータスレジスタビット3、4、5が監視され、エラーが検出されたかどうかが判定される。
【0182】
図22は、本発明の一実施の形態に係るデバイス保護シーケンスのフローチャートを示す。このシーケンスは、コマンドレジスタ(コード60H)のロード、アクティブコマンドおよび行アドレスの受け取りを含む。そして、メモリは、RP#がVHHになっているかどうかを判定する。メモリは、書き込み処理(F1H)を実行し、ステータスレジスタを監視し、書き込み処理が終了しているかどうかをチェックする。また、オプションとして、ステータスチェックを実行するするようにしてもよい。デバイス保護処理が終了すると、メモリはアレイ読み出しモードに入る。
【0183】
図23は、本発明の一実施の形態に係るブロック保護解除シーケンスのフローチャートを示す。このシーケンスは、コマンドレジスタのロード(コード60H)、アクティブコマンドおよび行アドレスの受け取りを含む。そして、メモリは、当該メモリデバイスが保護されているかどうかを判定する。保護されていない場合、メモリは、ブートロケーション(ブロック0および15)が保護されているかどうかを判定する。いずれのブロックも保護されていない場合、メモリはブロックに対して書き込み処理(D0H)を実行し、ステータスレジスタを監視し、書き込み処理が終了しているかどうかをチェックする。オプションとして、ステータスチェックを実行するようにしてもよい。全ブロック保護解除処理が終了すると、メモリはアレイ読み出しモードになる。デバイスが保護されている場合、RP#信号が高電圧(VHH)になっていない限り、消去処理を実行することはできない。同様に、各ブートロケーションが保護されている場合には、メモリは、全てのブロックの保護を解除するべきかどうかを判定する。
【0184】
図24は、モードレジスタを初期化およびロードする処理のタイミングを示す。モードレジスタは、ロードモードレジスタコマンドの発行と、アドレスラインに対する処理コード(オペコード:opcode)の発行によってプログラムされる。オペコードは、モードレジスタにロードされる。上述したように、不揮発性モードレジスタのコンテンツは、立ち上がり(power-up)の際に、自動的にモードレジスタにロードされ、ロードモードレジスタ処理が必要とならない場合もある。
【0185】
図25は、クロックサスペンドモード処理のタイミングを示し、図26は、別のバースト読み出し処理のタイミングを示している。図27は、バンク読み出しアクセスを交互に行う際のタイミングを示している。ここで、バンクアドレスを変更するためには、アクティブコマンドが必要である。図28は、フルページバースト読み出し処理を示す。フルページバーストは、自己同期方式で行われることなく、終了コマンドの発行を必要とする。
【0186】
図29は、データマスク信号を使用した読み出し処理のタイミングを示す。DQM信号は、DQ端子にDout m+lが出力されないように、データ出力をマスクするために使用される。
【0187】
図30は、書き込み処理を行った後、異なるバンクに対して読み出し処理を行う場合のタイミングを示している。この処理においては、書き込み処理が、バンクaに対して行われ、その後、読み出し処理が、バンクbに対して行われる。各々のバンクにおいて同一の行がアクセスされる。
【0188】
図31は、書き込み処理を行った後、同一のバンクに対して読み出し処理を行う場合のタイミングを示している。この処理においては、書き込み処理が、バンクaに対して行われ、その後、読み出し処理が、バンクaに対して行われる。読み出し処理において、別の行がアクセスされ、メモリは、書き込み処理が終了するのを待機する必要がある。これは、図30に示すような読み出し処理の場合、即ち、読み出し処理の開始の際に書き込み処理による遅延時間が生じない場合とは異なる。
【0189】
インタフェース
上述したように、ほとんどのプロセッサ又はコンピュータシステムは、コードを使用している。該コードは、ハードディスクに格納され、DRAMにコピーされ、該DRAM上で実行される。これらの動作を行うシステムのスピードと性能は、通常、前記DRAMの性能に影響される。今日のシステムのほとんどは、SDRAMを使用している。なぜなら、SDRAMはシンクロナスであり、動作速度が100MHzを超えるからである。
【0190】
また、従来において、フラッシュメモリよりもDRAMを使用する大きな理由は、コストと性能に基づく。システムに対するコストは2つの側面がある。第1は、フラッシュメモリにしろDRAMにしろ、購入しなければならない。第2に、システムは、メインメモリバスに従来のフラッシュメモリを接続することができない。従来のフラッシュメモリは、DRAMと同一の方式で動作しないことと、DRAMコントローラは、今日のフラッシュメモリデバイスにおいて必要とされる特別な制御入力を取り扱えるように設計されていないからである。ハードディスクからSDRAMへのデータの転送には時間がかかる。この駆動時間は、コンピュータのユーザをしばしばいらいらさせる要因となっている。
【0191】
しかしながら、この明細書中に記載されたフラッシュメモリは、読出し処理において、DRAMと同じインタフェースを使用する。このフラッシュメモリは、SDRAMと同様の内部接続端子を使用し、SDRAMのパッケージに合う。そして、このフラッシュメモリは、書込み処理にて使用される2つの接続端子を有する。例えば、上述したように、一方の接続端子はVccpであって、SDRAMのパッケージにおいて、無接続端子(NC)である。他方の接続端子はRP#であり、フラッシュメモリチップをリセットするために使用される。
【0192】
フラッシュメモリは、読出し処理において、SDRAMチップと同様の機能を有することが必要であることは明らかである。現在のフラッシュメモリは、10〜50MHzで動作し、多数のSDRAMチップから任意に取り出した1つのSDRAMの動作速度よりも非常に遅い。本発明は、SDRAMと同様の機能を有し、メインメモリバスにフラッシュメモリを接続したシステムを構築できる。これにより、これらのコントローラにかかる接続端子のコストを低減できるのみならず、他のバスをサポートする必要がない。また、フラッシュメモリを使用することで、SDRAMの起動に必要なハードディスク等の記憶領域が不要である。システムにおいて、ハードディスクのあるなしに拘わらず、SDRAMに対するリフレッシュ動作を削減することができるため、コストを低減することができる。性能に関しては、本発明に係るフラッシュメモリは、起動時におけるSDRAMへのデータロードに必要な時間を削減することができ、システムを迅速に立ち上げることができる。
【0193】
要約すると、本発明は、シンクロナスDRAMと同様の内部接続端子構成を有し、シンクロナスDRAMのパッケージに合うフラッシュメモリデバイスを提供することができる。SDRAMパッケージの2つの無接続端子(NC)を変更し、第1の無接続端子を選択的にVpp接続端子として使用し、第2の無接続端子をリセット又はパワーダウン用の接続端子(RP#)として使用している。
【0194】
図32に、本発明の一実施の形態に係るシステム300のブロック図を示す。このシステムは、メインメモリバス330を通じてメモリコントローラ340に接続されたシンクロナスフラッシュメモリ320を有する。また、このメインメモリバスは、DRAM350にも接続される。
【0195】
結論
コンピュータシステムは、メモリコントローラと、メインメモリバスを通じてメモリコントローラに接続されたシンクロナス不揮発性メモリデバイスとを有する。シンクロナス不揮発性メモリデバイスは、シンクロナスダイナミックランダムアクセスメモリデバイスの内部接続端子と同様の方式で配列された外部に通じる内部接続端子を有する。しかしながら、シンクロナスフラッシュメモリデバイスは、リセット接続端子とVccp電源接続端子とを有する。これらのリセット接続端子とVccp電源接続端子は、シンクロナスダイナミックランダムメモリの第1及び第2の無接続端子(NC)に対応している。一実施の形態におけるシンクロナス不揮発性メモリデバイスのコマンドインタフェースは、書込みイネーブル信号を受け取るための書込みイネーブル接続端子(WE#)と、列アドレスストローブ信号を受け取るための列アドレスストローブ接続端子(CAS#)と、行アドレスストローブ信号を受け取るための行アドレスストローブ接続端子(RAS#)と、チップセレクト信号を受け取るためのチップセレクト接続端子(CS#)とを有する。
【図面の簡単な説明】
【図1】 図1Aは、本発明に係るシンクロナスフラッシュメモリを示すブロック図であり、図1Bは、本発明の一実施の形態に係る集積回路の端子接続を示す図であり、図1Cは、本発明の一実施の形態に係る集積回路のバンプグリッドアレイの配列を示す図である。
【図2】 本発明の一実施の形態に係るモードレジスタを示す説明図である。
【図3】 CASレイテンシが1、2、3クロックサイクルのときの読み出し処理を示す動作説明図である。
【図4】 本発明の一実施の形態に係るメモリのバンクの特定の行を活性化する処理を示す動作説明図である。
【図5】 活性化コマンドと読み出しコマンドまたは書き込みコマンドとの間のタイミングを示す説明図である。
【図6】 読み出しコマンドを示す説明図である。
【図7】 本発明の一実施の形態に係る連続した読み出しバーストのタイミングを示す図である。
【図8】 本発明の一実施の形態に係るページ内でのランダム読み取りアクセスのタイミングを示す図である。
【図9】 読み出し処理に続いて行われる書き込み処理のタイミングを示す図である。
【図10】 本発明の一実施の形態において、バーストターミネートコマンドを用いて読み出しバースト処理が終了するタイミングを示す図である。
【図11】 書き込みコマンドを示す説明図である。
【図12】 書き込み処理に続いて行われる読み出し処理のタイミングを示す図である。
【図13】 本発明の一実施の形態に係るパワーダウン処理のタイミングを示す図である。
【図14】 バースト読み出しの際のクロックサスペンド処理のタイミングを示す図である。
【図15】 メモリが2つのブートセクタを有する実施の形態におけるメモリアドレスマップを示す説明図である。
【図16】 本発明の一実施の形態に係る自己同期書き込みシーケンスを示すフローチャートである。
【図17】 本発明の一実施の形態に係る完全な書き込みステータスチェックシーケンスを示すフローチャートである。
【図18】 本発明の一実施の形態に係る自己同期消去シーケンスを示すフローチャートである。
【図19】 本発明の一実施の形態に係る完全なブロック消去ステータスチェックシーケンスを示すフローチャートである。
【図20】 本発明の一実施の形態に係るブロック保護シーケンスを示すフローチャートである。
【図21】 本発明の一実施の形態に係る完全なブロックステータスチェックシーケンスを示すフローチャートである。
【図22】 本発明の一実施の形態に係るデバイス保護シーケンスを示すフローチャートである。
【図23】 本発明の一実施の形態に係るブロック保護解除シーケンスを示すフローチャートである。
【図24】 モードレジスタの初期化、ロード処理のタイミングを示す図である。
【図25】 クロックサスペンドモード処理のタイミングを示す図である。
【図26】 バースト読み出し処理のタイミングを示す図である。
【図27】 バンク読み出しアクセスを交互に行うタイミングを示す図である。
【図28】 フルページバースト読み出し処理のタイミングを示す図である。
【図29】 データマスク信号を用いて行われるバースト読み出し処理のタイミングを示す図である。
【図30】 読み出し処理に続いて異なるバンクに対して読み出し処理を行うタイミングを示す図である。
【図31】 書き込み処理に続いて同一のバンクに対して読み出し処理を行うタイミングを示す図である。
【図32】 本発明の一実施の形態に係るシステムを示すブロック図である。
Claims (15)
- 不揮発性メモリセルのアレイとパッケージとを有するシンクロナスフラッシュメモリデバイスであって、
前記パッケージは、
シンクロナスダイナミックランダムアクセスメモリデバイス(SDRAM)の内部接続端子に対応して配列された複数の内部接続端子を有し、
前記シンクロナスフラッシュメモリデバイスの複数の内部接続端子は、リセット端子とVccp電源端子とを含み、
前記リセット接続端子と前記Vccp電源接続端子は、前記シンクロナスダイナミックランダムアクセスメモリの第1及び第2の無接続端子(NC)に対応し、
前記シンクロナスフラッシュメモリデバイスは、SDRAMのパラメータ仕様における読出し及び書込みタイミングで動作することを特徴とするシンクロナスフラッシュメモリデバイス。 - 請求項1記載のシンクロナスフラッシュメモリデバイスにおいて、
前記複数の内部接続端子は、
複数の双方向データ接続端子と、
複数のメモリアドレス接続端子と、
書込みイネーブル接続端子と、
クロック入力接続端子と、
列アドレスストローブ接続端子と、
行アドレスストローブ接続端子と、
電源端子とを有することを特徴とするシンクロナスフラッシュメモリデバイス。 - 請求項2記載のシンクロナスフラッシュメモリデバイスにおいて、
前記複数の内部接続端子は、更に、
クロックイネーブル接続端子と、
チップセレクト接続端子と、
複数のメモリアレイバンクアドレス接続端子と、
複数のデータマスク接続端子と、
リセット接続端子と、
Vccp電源接続端子とを有することを特徴とするシンクロナスフラッシュメモリデバイス。 - 請求項1記載のシンクロナスフラッシュメモリデバイスにおいて、
前記複数の内部接続端子は複数の外部接続端子を含み、
前記複数の外部接続端子は、
複数の双方向データ接続端子と、
複数のメモリアドレス接続端子と、
クロック入力接続端子と、
書込みイネーブル接続端子と、
列アドレスストローブ接続端子と、
行アドレスストローブ接続端子と、
クロックイネーブル接続端子と、
チップセレクト接続端子と、
複数のメモリアレイバンクアドレス接続端子と、
電源接続端子と、
複数のデータマスク接続端子と、
リセット接続端子とを有することを特徴とするシンクロナスフラッシュメモリデバイス。 - 請求項4記載のシンクロナスフラッシュメモリデバイスにおいて、
前記複数の外部接続端子は、更に、Vccp電源接続端子を有することを特徴とするシンクロナスフラッシュメモリデバイス。 - 請求項4記載のシンクロナスフラッシュメモリデバイスにおいて、
前記パッケージは、前記外部接続端子に通じる複数の内部接続端子を具備したパッケージを有することを特徴とするシンクロナスフラッシュメモリデバイス。 - 請求項6記載のシンクロナスフラッシュメモリデバイスにおいて、
前記内部接続端子の物理的配列パターンが、シンクロナスダイナミックランダムアクセスメモリ(SDRAM)と互換性を有することを特徴とするシンクロナスフラッシュメモリデバイス。 - 請求項4記載のシンクロナスフラッシュメモリデバイスにおいて、
前記シンクロナスフラッシュメモリデバイスの外部と内部とを電気的に接続する複数のロケーションを具備したパッケージを有することを特徴とするシンクロナスフラッシュメモリデバイス。 - 請求項8記載のシンクロナスフラッシュメモリデバイスにおいて、
前記複数のロケーションの物理的配列パターンが、シンクロナスダイナミックランダムアクセスメモリ(SDRAM)と互換性を有することを特徴とするシンクロナスフラッシュメモリデバイス。 - クロック信号を受け取るためのクロック入力接続端子(CLK)と、
書込みイネーブル信号を受け取るための書込みイネーブル接続端子(WE#)と、
列アドレスストローブ信号を受け取るための列アドレスストローブ接続端子(CAS#)と、
行アドレスストローブ信号を受け取るための行アドレスストローブ接続端子(RAS#)と、
チップセレクト信号を受け取るためのチップセレクト接続端子(CS#)と、
リセット信号を受け取るためのリセット接続端子(RP#)と、
昇圧された電源信号を受け取るためのVccp電源接続端子とを具備したSDRAMインタフェースを有するシンクロナスフラッシュメモリデバイスであって、
SDRAMのパラメータ仕様における読出し及び書込みタイミングで動作することを特徴とするシンクロナスフラッシュメモリデバイス。 - 請求項10記載のシンクロナスフラッシュメモリデバイスにおいて、
前記インタフェースは、更に、
複数の双方向データ接続端子(DQ)と、
複数のメモリアドレス接続端子と、
クロックイネーブル接続端子(CKE)と、
複数のメモリアレイバンクアドレス接続端子(BA#)と、
電源接続端子(Vcc及びVss)と、
複数のデータマスク接続端子(DQM)とを有することを特徴とするシンクロナスフラッシュメモリデバイス。 - メモリコントローラと、
前記メモリコントローラに接続されたメインメモリバスと、
前記メインメモリバスに接続されたシンクロナス不揮発性フラッシュメモリデバイスとを有するコンピュータシステムであって、
前記シンクロナス不揮発性フラッシュメモリデバイスは、シンクロナスダイナミックランダムアクセスメモリ(SDRAM)と互換性を有するコマンドインタフェースを有し、
前記コマンドインタフェースは、
書込みイネーブル信号を受け取るための書込みイネーブル接続端子(WE#)と、
列アドレスストローブ信号を受け取るための列アドレスストローブ接続端子(CAS#)と、
行アドレスストローブ信号を受け取るための行アドレスストローブ接続端子(RAS#)と、
チップセレクト信号を受け取るためのチップセレクト接続端子(CS#)とを有し、
前記シンクロナス不揮発性フラッシュメモリデバイスは、SDRAMのパラメータ仕様における読出し及び書込みタイミングで動作することを特徴とするコンピュータシステム。 - 請求項12記載のコンピュータシステムにおいて、
前記シンクロナス不揮発性メモリデバイスはパッケージを有し、
前記パッケージは、
シンクロナスダイナミックランダムアクセスメモリデバイスの内部接続端子に対応して配列された複数の内部接続端子を有し、
前記シンクロナスフラッシュメモリデバイスの複数の内部接続端子は、リセット接続端子とVccp電源接続端子とを含み、
前記リセット接続端子とVccp電源接続端子は、前記シンクロナスダイナミックランダムアクセスメモリの第1及び第2の無接続端子(NC)に対応していることを特徴とするコンピュータシステム。 - 請求項12記載のコンピュータシステムにおいて、
前記シンクロナス不揮発性メモリデバイスはパッケージを有し、
前記パッケージは、シンクロナスダイナミックランダムアクセスメモリデバイスの半田バンプ接続端子に対応して配列された複数の半田バンプ接続端子を有し、
前記シンクロナスフラッシュメモリデバイスの複数の半田バンプ接続端子は、リセット接続端子とVccp電源接続端子とを含み、
前記リセット接続端子とVccp電源接続端子は、前記シンクロナスダイナミックランダムアクセスメモリにおける第1及び第2の無接続(NC)の半田バンプ接続端子に対応していることを特徴とするコンピュータシステム。 - 請求項12記載のコンピュータシステムにおいて、
複数の外部接続端子は、
複数の双方向データ接続端子と、
複数のメモリアドレス接続端子と、
クロック入力接続端子と、
クロックイネーブル接続端子と、
複数のメモリアレイバンクアドレス接続端子と、
電源接続端子と、
複数のデータマスク接続端子と、
リセット接続端子と、
Vccp電源接続端子とを有することを特徴とするコンピュータシステム。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US19350600P | 2000-03-30 | 2000-03-30 | |
US60/193,506 | 2000-03-30 | ||
US09/627,682 US7073014B1 (en) | 2000-07-28 | 2000-07-28 | Synchronous non-volatile memory system |
US09/627,682 | 2000-07-28 | ||
PCT/US2001/010372 WO2001075897A2 (en) | 2000-03-30 | 2001-03-30 | Synchronous flash memory |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003529884A JP2003529884A (ja) | 2003-10-07 |
JP3822495B2 true JP3822495B2 (ja) | 2006-09-20 |
Family
ID=26889067
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001573489A Expired - Fee Related JP3822495B2 (ja) | 2000-03-30 | 2001-03-30 | シンクロナスフラッシュメモリ |
Country Status (7)
Country | Link |
---|---|
EP (1) | EP1269476B1 (ja) |
JP (1) | JP3822495B2 (ja) |
KR (1) | KR100499292B1 (ja) |
AT (1) | ATE441927T1 (ja) |
AU (1) | AU2001251168A1 (ja) |
DE (2) | DE1269476T1 (ja) |
WO (1) | WO2001075897A2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6625081B2 (en) | 2001-08-13 | 2003-09-23 | Micron Technology, Inc. | Synchronous flash memory with virtual segment architecture |
US11450395B2 (en) | 2021-02-12 | 2022-09-20 | Taiwan Semiconductor Manufacturing Company, Ltd. | Non-volatile memory circuit and method |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5696917A (en) * | 1994-06-03 | 1997-12-09 | Intel Corporation | Method and apparatus for performing burst read operations in an asynchronous nonvolatile memory |
KR960039006A (ko) * | 1995-04-26 | 1996-11-21 | 김광호 | 디램버스에 접속가능한 불휘발성 반도체 메모리장치 |
WO1998013828A1 (fr) * | 1996-09-26 | 1998-04-02 | Mitsubishi Denki Kabushiki Kaisha | Memoire a semi-conducteur du type synchrone |
KR100274591B1 (ko) * | 1997-07-29 | 2001-01-15 | 윤종용 | 동기형 버스트 매스크 롬 및 그것의 데이터 독출 방법 |
KR100285063B1 (ko) * | 1998-08-13 | 2001-03-15 | 윤종용 | 동기형 램 장치와 시스템 버스를 공유하는 동기형 플래시 메모리 장치의 소거 및 쓰기 방법 |
-
2001
- 2001-03-30 KR KR10-2002-7013076A patent/KR100499292B1/ko not_active IP Right Cessation
- 2001-03-30 AU AU2001251168A patent/AU2001251168A1/en not_active Abandoned
- 2001-03-30 EP EP01924519A patent/EP1269476B1/en not_active Expired - Lifetime
- 2001-03-30 AT AT01924519T patent/ATE441927T1/de not_active IP Right Cessation
- 2001-03-30 WO PCT/US2001/010372 patent/WO2001075897A2/en active IP Right Grant
- 2001-03-30 JP JP2001573489A patent/JP3822495B2/ja not_active Expired - Fee Related
- 2001-03-30 DE DE1269476T patent/DE1269476T1/de active Pending
- 2001-03-30 DE DE60139766T patent/DE60139766D1/de not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
KR100499292B1 (ko) | 2005-07-07 |
EP1269476B1 (en) | 2009-09-02 |
ATE441927T1 (de) | 2009-09-15 |
AU2001251168A1 (en) | 2001-10-15 |
JP2003529884A (ja) | 2003-10-07 |
WO2001075897A3 (en) | 2002-05-30 |
EP1269476A2 (en) | 2003-01-02 |
WO2001075897A2 (en) | 2001-10-11 |
DE1269476T1 (de) | 2003-09-18 |
DE60139766D1 (de) | 2009-10-15 |
KR20030014377A (ko) | 2003-02-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3773846B2 (ja) | プリチャージ処理が不要化されたシンクロナスフラッシュメモリ | |
JP3809909B2 (ja) | ステータスバースト出力を行うシンクロナスフラッシュメモリ | |
US7080193B2 (en) | Flash memory with accessible page during write | |
US7073014B1 (en) | Synchronous non-volatile memory system | |
US20030137885A1 (en) | Burst read addressing in a non-volatile memory device | |
JP4902325B2 (ja) | ゼロレイテンシ機能、ゼロバスターンアラウンド機能を有するシンクロナスフラッシュメモリ | |
JP3631209B2 (ja) | 読み出し処理におけるレイテンシを一致させたフラッシュ | |
JP3725479B2 (ja) | シンクロナスフラッシュメモリ用のインタフェースコマンドアーキテクチャ | |
JP3779209B2 (ja) | 読み出し処理および書き込み処理を並列に実行する機能を有するシンクロナスフラッシュメモリ | |
JP4229946B6 (ja) | フラッシュ用のトップ/ボトム対称保護スキーム | |
KR100507589B1 (ko) | 비휘발성 모드 레지스터를 이용한 동기 플래시 메모리 | |
JP2006164511A6 (ja) | フラッシュ用のトップ/ボトム対称保護スキーム | |
JP3822495B2 (ja) | シンクロナスフラッシュメモリ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20041122 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20041207 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20050307 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20050315 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050512 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050913 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20051213 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20051221 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060309 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060613 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060622 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100630 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110630 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110630 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120630 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120630 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130630 Year of fee payment: 7 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |