JP3787167B2 - フラッシュメモリ - Google Patents
フラッシュメモリ Download PDFInfo
- Publication number
- JP3787167B2 JP3787167B2 JP16585994A JP16585994A JP3787167B2 JP 3787167 B2 JP3787167 B2 JP 3787167B2 JP 16585994 A JP16585994 A JP 16585994A JP 16585994 A JP16585994 A JP 16585994A JP 3787167 B2 JP3787167 B2 JP 3787167B2
- Authority
- JP
- Japan
- Prior art keywords
- command
- interrupt
- array controller
- array
- flash memory
- 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
- G11C8/00—Arrangements for selecting an address in a digital store
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45508—Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
- G06F9/45512—Command shells
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Read Only Memory (AREA)
- Memory System (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
- Dram (AREA)
Description
【産業上の利用分野】
本発明はフラッシュメモリに関し、特にフラッシュメモリ動作を制御する装置と方法に関する。
【0002】
【従来の技術】
従来の不揮発性半導体メモリの1つのタイプにフラッシュ電気的消去、書込み可能読取り専用メモリ(「フラッシュ」)がある。フラッシュメモリは電気信号で書込み可能で、一旦書き込むとフラッシュメモリはそのデータが消去されるまでそれを保持する。消去後、フラッシュメモリには新しいコードないしデータを書き込むことができる。
【0003】
フラッシュメモリは従来の電気的消去、書込み可能読取り専用メモリ(「EEPROM])とは消去に関して異なっている。従来のEEPROMは一般に個々のバイトの消去制御にセレクトトランジスタを使用する。他方、フラッシュメモリは一般に単一のトランジスタセルではるかに高い密度を達成する。従来のフラッシュメモリの消去方法では、メモリアレイ内の全てのメモリセルのソースに高電圧を同時に供給し、それにより全アレイの消去をもたらしている。一般に論理1は、ビットセルのフローティングゲートに電子がほんのわずかしか(電子があれば)格納されないことを意味し、論理0は多くの電子がブロックセルのフローティングゲートに格納されていることを意味する。フラッシュメモリの消去により論理1が各々のビットセルに格納される。そのフラッシュメモリの各々の単一のビットセルは先に消去しなければ論理0から論理1に重ね書きすることはできない。しかしそのフラッシュメモリの各々の単一ブロックセルは、それが消去状態に固有の数の電子を含むフローティングゲートに単に電子を追加するだけであるので、論理1から論理0には重ね書きすることができる。
【0004】
消去、書込み、妥当性検査過程は、それらのステップを行うのに必要な電圧の慎重な制御を要する。例えば従来のフラッシュメモリに、 256キロビットフラッシュメモリであるインテル社(カリフォルニア州サンタクララ)から市販されている28F256相補形金属酸化物半導体(CMOS)フラッシュメモリがある。フラッシュメモリを制御するため、メモリには電気的な消去と再書込みを管理するコマンドレジスタを含める。コマンドは消去のために、制御マイクロプロセッサから標準のマイクロプロセッサ書込みタイミングを用いて書き込まれる。コマンドレジスタの内容は、消去、書込み回路を制御する内部状態マシンへの入力としての役割をする。
【0005】
【発明が解決しようとする課題】
フラッシュメモリの密度が増大したことで、フラッシュメモリを含むアプリケーションも増大した。それらのアプリケーションは劇的に変化し、しばしば異なる処理、制御メカニズムを必要とする。一般にアプリケーションはバスを通してフラッシュメモリに接続されているマイクロコントローラにより駆動する。しかしマイクロコントローラでのオーバーヘッドが大きいとフラッシュ処理のスループットが減少する。更にフラッシュメモリの適切な信頼できる動作を確保するため、消去手順は厳密に守らなければならない。従ってマイクロコントローラを用いてバス上でフラッシュメモリを制御することとマイクロコントローラを通してユーザとフラッシュメモリをインターフェイスすることは、例えばマイクロコントローラにより出されている制御信号を一時的に停止する割込みその他の動作により生じる時期を逸した制御信号によるフラッシュメモリの過剰消去により生じるフラッシュエラーをもたらす可能性が増大する。
【0006】
さらに、フラッシュメモリでは一般に一時に1つの動作しか行うことができない。従って低優先度の動作を実行していて高優先度の動作を実行しようとする場合、高優先度動作はその動作を行う前に低優先度動作が完了するのを待たなければならない。
更にフラッシュメモリのコストが低下すると共にフラッシュメモリを利用したアプリケーションが増大している。従って様々なアプリケーションに対して柔軟性があり容易に適応できるフラッシュメモリとインターフェイスを提供することが望ましい。
従って本発明の目的は、本発明の装置と方法によりアプリケーションで使用する際に劇的な柔軟性を提供し、行う動作の全体的なスループットを増大するフラッシュメモリを制御するオンチップメカニズムを提供することである。本発明の別の目的は、マイクロコントローラのオーバーヘッドを最小にし、例えばフラッシュアレイの過剰消去により生じるエラーの危険性をなくすことである。
【0007】
【課題を解決するための手段】
本発明の装置は互いに共に作動して全機能性とフラッシュアレイの制御を提供するいくつかの主要要素から構成する。
メモリアレイと同一構成部分にある回路は、例えばマイクロコントローラからバスを通してアドレス、コマンド、データ情報を受け取るユーザインターフェイスからなり、コマンドをアレイコントローラに出し、アレイコントローラはユーザインターフェイスから出されたコマンドで識別される消去、書込み動作を行う。アレイコントローラはフラッシュアレイと特定の動作を行うのに必要な電圧をユーザインターフェイスとは独立した形で制御する。従ってユーザインターフェイスは様々なユーザコマンドを受け取り、アレイコントローラに実行するために送るコマンドシーケンスを制御でき、大きな柔軟性が達成できる。命令パイプライン化が可能で最大のスループットがもたらされる。更にアレイコントローラはプログラムメモリに格納されたコードに基づいて動作を行う。従ってメモリ内に格納されたマイクロコードを単に変更するだけでハードウエアを変更することなしに新しいコマンドを追加したり古いコマンドを変えることができる。
【0008】
回路は更にアレイコントローラにより実行されるコマンドのコンテキスト切替えを行う能力も有している。第2の過程が完了すると実行の所定の「安全」時点で実行を被割込み過程に戻し、それによりアレイ内のデータが変改されないように現在実行している過程の別の過程による安全な割込みを可能にする革新的な割込みメカニズムを提供する。例えばアレイの1つのバンクに作用する低速、低優先度の動作を一時停止し、アレイコントローラ内でコンテキスト切替えを行って高優先度の命令を実行することができる。従ってアレイの1つないし複数のバンクの消去などの時間のかかる動作を実行しているとき、アレイコントローラが消去命令と高優先度命令のコンテキスト切替えを行って消去中の書込みのような動作を実行可能にできる次の命令をユーザインターフェイスはアレイコントローラに出すことができる。
【0009】
【実施例】
以下の説明では本発明の完全な理解を提供するため数々の詳細を述べるが、当業者にはそれらの特定的な詳細は本発明を実施するのに必要でないことが明かであろう。他に、よく知られた電気的構造や回路は本発明を不必要に曖昧にしないためにブロック図形式で示すことにする。
【0010】
図1はコンピュータシステム 300のブロック図である。コンピュータシステム 300は中央演算処理装置(CPU) 302と、主記憶装置サブシステム 304と、1組のフラッシュメモリシステム310−314とからなる。CPU 302はユーザバス 306を通して主記憶装置サブシステム 304及びフラッシュメモリ装置310−314と交信する。
フラッシュメモリシステム310−314はコンピュータシステム 300のためのランダムアクセス不揮発性大型データ記憶装置を提供する。CPU 302はユーザバス 306を通して読取り記憶サイクルを生成してフラッシュメモリシステム310−314の内容を読み取る。またユーザバス 306を通してフラッシュメモリシステム310−314に書込みコマンドと書込みデータブロックを転送してフラッシュメモリシステム310−314に書込みを行う。
【0011】
図2に本発明のフラッシュメモリシステム 310のブロック図を示す。フラッシュメモリシステム 310はフラッシュセルアレイ20と、ユーザインターフェイス回路40と、アレイコントローラ50と、ページバッファ回路70と、制御レジスタ回路80−85と、読取り/書込み経路回路30とからなる。フラッシュセルアレイ20はランダムアクセス不揮発性大型データ記憶装置を提供する。1つの実施例では、フラッシュセルアレイ20は1組の32個のフラッシュアレイブロックとして構成される。フラッシュメモリシステム 310はユーザバス 306に接続されて示されている。ユーザバス 306はユーザアドレスバス 102と、ユーザデータバス 104と、ユーザ制御バス 106とからなる。ユーザインターフェイス回路40はマイクロコントローラなどのマスタ装置からデータ、コマンド、アドレス情報を受け取り、その情報をバッファに格納する。バッファはそれぞれ好適には複数バッファとしてマイクロコントローラからの複数の要求を受け取り、ユーザインターフェイス回路40で考察できるようにすることに留意する。後述するようにアレイコントローラ50の状態に基づいて即時の実行を受けるために特定のコマンドを高い優先位置に置き、アレイコントローラ50が現在実行しているコマンドとコンテキストを切り換える。ユーザインターフェイス回路40は更にアレイコントローラ50から状態情報を受け取り、ユーザインターフェイス回路40はそれを続いてマイクロコントローラに与える。
【0012】
ユーザインターフェイス回路40はユーザバス 306上で通信動作要求を受け取って処理することでユーザバス 306を通してフラッシュセルアレイ20のアクセスを可能にする。ユーザインターフェイス回路40で動作要求を受け取ると、ユーザバス 306から受け取ったアドレス、データ、コマンド情報はユーザインターフェイス回路40にあるバッファに格納される。要求動作がプログラムあるいは消去コマンドなどのアレイコントローラ動作である場合、ユーザインターフェイス回路40が受け取ったコマンドやデータは続いてアレイコントローラ50に転送され、待ち行列バス41を通して要求コマンドが実行される。アドレス情報はユーザインターフェイス回路40によりマルチプレクサ35を通して読取り/書込み経路回路30へ送られ、アドレス回線36を通して交信したアドレスでコマンドが実行される。読取り動作はアレイコントローラが作動していないときに可能である。ユーザインターフェイス回路40はアドレスを読取り/書込み経路回路30へ送り、出力マルチプレクサをセットしてアレイから読み取ったデータを出力する。
【0013】
ユーザインターフェイス回路40とアレイコントローラ50は両構成要素からアクセス可能なページバッファ回路70を共有し、フラッシュメモリシステムに様々な形で作動する機能を提供する。例えばページバッファ回路70は十分なデータが蓄積されてデータがフラッシュセルアレイ20に流れることができるようにフラッシュセルアレイ20に書き込むデータをバッファするのに使用することができ、フラッシュセルアレイ20でのスループットの増大をもたらす。
【0014】
このバッファはユーザインターフェイス回路40とアレイコントローラ50の両方からアクセスできる。例えばページバッファ回路70はフラッシュアレイへの高速書込み動作を扱うのに用いる。データは引続きのアレイ書込み動作のためにユーザインターフェイス回路40によりページバッファ回路70にロードする。2つのページバッファ回路70にあるデータをアレイへ書き込むユーザコマンドは、ユーザインターフェイス回路40の待ち行列構造を通して他のアレイコントローラコマンドと同様な形で待ち合わせさせることができる。そこでアレイはページバッファ回路70に保持されたデータを用いてそれらのコマンドを実行することでプログラムすることができる。このようにユーザはページバッファ回路70をロードし、ページバッファ回路70の内容を利用するアレイコントローラコマンドを出し、第1のアレイコントローラコマンドが出された後にユーザインターフェイスが利用できるようにする第2のページバッファをロードすることができる。
【0015】
実施例では、ページバッファはSRAMセルの128 x 19 x 2メモリアレイとする。これはいくつかの作動モードを有し、アレイコントローラとユーザインターフェイスによりアクセスできる。モードにより8ビットないし19ビットメモリとして構成する。またモードはそれを1つの連続メモリ面ないし2つのメモリ面に制御できる。各々の面は同時にアクセス可能である。テストモードでないとき、ページバッファは2つのSRAMメモリの面に分割するのが好ましい。この2面アーキテクチャによりアレイコントローラはメモリの半分に対する読取り/書込みアクセスを持ち、ユーザインターフェイスは残りの半分に対するアクセスを同時に持つことができる。アクセス可能な半分は固定されておらず、むしろ面の所有権を切り換えることができる。例えばこれはユーザインターフェイスがデータのページをアレイコントローラに送り、アレイのページプログラミングに使用することができる。ユーザインターフェイスは最初にページバッファの1つの面をデータで満たし、次にコマンド(ジャンプオフセット)をアレイコントローラに出してページプログラムを行う。内部論理と制御信号を使用することを通して適切なコマンドを受け取ると、アレイコントローラはホストCPUがちょうどロードした面を指定し、ユーザインターフェイスは他の面を制御してデータを書き込む。従って別々にアクセスできる2つのページバッファがあり、ページバッファプログラミングはパイプライン化してフラッシュアレイへのデータ流れを達成してデータスループットを増加できるようにシーケンス化できる。
【0016】
ページバッファはアレイコントローラアルゴリズムにより様々な目的に使用することができる。例えばマルチブロック消去アルゴリズムは、その動作中に割込みを可能にするようにページバッファを用いてマルチブロック消去情報を記憶することができる。更にアレイコントローラはページバッファを用いてパイプラインプログラミングのためにジャンプオフセット、データ、アドレス情報を記憶することができる。外部のユーザは更に、ユーザインターフェイスを通してページバッファをそれ自身高速読取り/書込みメモリとして使用することができる。テストモード中、アレイコントローラにページバッファに記憶された命令を実行するように命令することができる。従ってページバッファはアレイコントローラのマイクロコード記憶装置としての役割を果たすことができる。このモードの時、ページバッファのアーキテクチャは好適に1つの連続メモリに再構成される。
【0017】
アレイコントローラ50は中央制御バス 100を通してアレイ20のプログラム、消去、検証を行うのに必要な異なる構成要素を制御する。アレイコントローラ50はフラッシュセルアレイ20に対してプログラム、消去その他の動作を行うための専用縮小命令セットプロセッサである。アレイコントローラ50には論理演算装置、汎用レジスタ、制御記憶装置、制御シーケンサが含まれている。アレイコントローラ50は待ち行列バス41を通して受け取った情報を用いてプログラムメモリの適切な場所にアクセスして動作を行うのに必要な命令を実行する。アレイコントローラ50はフラッシュセルアレイ20のフラッシュセルに対して電荷を加え、またフラッシュセルアレイ20のフラッシュセルから電荷を除去するために読取り/書込み経路回路30の高電圧回路を順序づける実施アルゴリズムを実行する。アレイコントローラ50は高電圧回路を制御し中央制御バス 100を通して制御レジスタ回路80−85にアクセスしてフラッシュセルアレイ20をアドレス指定する。
【0018】
読取り/書込み経路回路30はフラッシュセルアレイ20にアクセスする読取り、書込み経路回路からなる。特に読取り/書込み経路回路30には消去機能用の適切な電圧レベルをフラッシュセルアレイ20に加えるソーススィッチ回路が含まれている。読取り/書込み経路回路30には更に、プログラム機能中にフラッシュセルアレイ20のビットラインに対してプログラムレベル電圧を駆動するプログラムロード回路が含まれている。
制御レジスタ回路80−85は読取り/書込み経路回路30に対して制御信号を出す専用制御レジスタと関連回路のセットを含んでいる。専用制御レジスタは中央制御バス 100を通して書込み、読取りが行われる。
【0019】
本実施例では、制御アクセス回路60によりユーザインターフェイス回路40とアレイコントローラ50の両方は中央制御バス 100を通して制御レジスタ回路80−85にアクセスすることができる。フラッシュメモリシステム 310の通常モード中、アレイコントローラ50は制御アクセス回路60を制御して中央制御バス 100を通して制御レジスタ回路80−85にアクセスする。
【0020】
本実施例では、アレイコントローラ50は書込み制御信号とレジスタアドレスを対応する書込みデータと共にバス52を通して制御アクセス回路60に転送して専用制御レジスタに書込みを行う。そこで制御アクセス回路60は中央制御バス 100を通して書込みサイクルを生成してアドレス指定専用制御レジスタに書込みを行う。またアレイコントローラ50はレジスタアドレスと読取り制御信号をバス52を通して制御アクセス回路60に転送して専用制御レジスタの読取りを行う。そこで制御アクセス回路60は中央制御バス 100を通して読取りアクセスサイクルを生成してアドレス指定専用制御レジスタの読取りを行う。
【0021】
例えば制御レジスタ回路80は1組の制御信号90に従って読取り/書込み経路回路30の高電圧回路を制御する専用制御レジスタと回路とを含んでいる。制御レジスタ回路81は1組の制御信号91に従って読取り/書込み経路回路30の専用行アクセス回路を制御する制御レジスタと回路を含んでいる。制御レジスタ回路82は読取り/書込み経路回路30からの1組の状態信号92を感知しラッチする1組の読取り専用レジスタを含んでいる。制御レジスタ回路83は1組の制御信号93に従って読取り/書込み経路回路30の読取り経路を制御する制御レジスタと回路とを含んでいる。制御レジスタ回路84はページバッファ回路70の1組のテストモードを制御するレジスタを含んでいる。制御レジスタ回路85は1組の制御信号95に従ってフラッシュメモリシステム 310の特殊テスト機能を制御するレジスタを含んでいる。
【0022】
ユーザインターフェイス回路40は入力アドレスマルチプレクサ35を制御して読取り/書込み経路回路30に対する入力アドレス36を選択する。選択した入力アドレス36はユーザアドレスバス上でTTLバッファ(図示せず)により感知されたアドレスないしユーザインターフェイス回路40からのラッチされたアドレス37である。入力アドレス36は制御レジスタ回路84内の制御レジスタをプログラムすることでオーバーライドすることができる。
ユーザインターフェイス回路40は出力データマルチプレクサ45を制御してユーザデータバス 104を通して出力データ転送用のソースを選択する。選択された出力データは読取り/書込み経路回路30からのフラッシュアレイデータ46、ページバッファ回路70からのページバッファデータ47ないしユーザインターフェイス回路40内に含まれる1組のブロック状態レジスタからのブロック状態レジスタ(BSR)データ48となる。このように要求装置は、アレイからのデータ並びにフラッシュメモリシステム 310の状態に関する状態情報を受け取ることができる。
【0023】
従ってCPU 302はユーザ制御バス 106を通して読取りサイクルを合図する間、アドレスをユーザアドレスバス 102に転送してフラッシュセルアレイ20を読み取る。ユーザインターフェイス回路40はその読取りサイクルを検出し、入力アドレスマルチプレクサ35にユーザアドレスバス 102からのアドレスを読取り/書込み経路回路30のx、y復号回路に転送させる。またユーザインターフェイス回路40は出力データマルチプレクサ45にユーザデータバス 104を通して読取り/書込み経路回路30からのアドレス指定された読取りデータを転送させる。
【0024】
CPU 302はユーザバス 306を通して書込みサイクルを生成してプログラムコマンドとデータをユーザインターフェイス回路40に転送してフラッシュセルアレイ20にデータを書き込む。ユーザインターフェイス回路40はプログラムコマンドを検証し、プログラムコマンドとアドレス及びデータパラメータをアレイコントローラ50に待ち行列をつくる。アレイコントローラ50は指定されたデータを指定アドレスのフラッシュセルアレイ20にプログラムすることでプログラム動作を行う。
【0025】
CPU 302はオプション的にユーザバス 306を通して書込みサイクルを生成してプログラムデータをページバッファ回路70に転送してフラッシュセルアレイ20へデータを書き込む。次にCPU 302はプログラムをページバッファコマンドと共にユーザインターフェイス回路40に転送する。ユーザインターフェイス回路40はページバッファコマンドの付いたプログラムを検証してアレイコントローラ50に待ち行列を作る。アレイコントローラ50はページバッファ回路70からのプログラムデータを読取りフラッシュセルアレイ20へプログラムデータをプログラムすることでページバッファコマンドの付いたプログラムを実行する。
【0026】
ページバッファ回路70は2つの別々のスタティックランダムアクセスメモリ(SRAM)面からなる。2つのSRAM面は面0と面1とからなる。ユーザインターフェイス回路40はアレイコントローラ50により処理されたユーザコマンドに対して面0及び面1ページバッファ資源を割り当てる。更にユーザインターフェイス回路40は面0及び面1のページバッファ資源をユーザアクセスに割り当てる。ページバッファ資源面0、1は限定資源とも称する。
【0027】
ユーザインターフェイス回路40は32のブロック状態レジスタ(BSR)を含んでいる。各々のBSRはフラッシュセルアレイ20のブロックの1つに対応している。アレイコントローラ50はブロック状態レジスタ内の状態ビットを維持してフラッシュセルアレイ20の各々のブロックの状態を示す。CPU 302はユーザバス
306を通してBSRの内容を読み取る。
【0028】
ユーザインターフェイス回路40はコマンドを出すユーザないしマイクロプロセッサと選択されたコマンドを実行するアレイコントローラ50の間の調整器として機能する。例えばアレイコントローラ50の現在状態を想定してユーザの要求動作が妥当かどうかを判定する。ユーザインターフェイス回路40はユーザバス 306からコマンド及びアドレス情報を入力として受取り、アレイコントローラ50が実行すべき動作を決定する。更にユーザインターフェイス回路40はアドレスとデータ、状態レジスタへのユーザアクセス、及び出力マルチプレクサ45の待ち行列を制御する。図3にユーザインターフェイス回路40のブロック図を示す。
【0029】
図3で、コマンド状態マシン 200はCPU 302がユーザバス 306を通して提示するコマンド要求に基づいて行う動作を決定する。コマンドのタイプにはアレイ動作並びに状態レジスタ、テストモード、ページバッファ動作がある。コマンド状態マシン 200は回路で符号化されたアルゴリズムを通して、正当なコマンドシーケンス、間違ったコマンドシーケンスからユーザを締め出す方法、アレイコントローラ50を開始したり中断する方法を知っている。そこで動作をアレイコントローラ50により行う場合はコマンドをアレイコントローラ50に送る。読取り動作を行う場合、コマンド状態マシン 200はアドレスを読取り/書込み経路回路30に送る。コマンド状態マシン 200は出力マルチプレクサ(45、図2)を通して出力で得られるデータと入力マルチプレクサ(35、図2)を通して入力で得られるデータを制御する。更にコマンド状態マシン 200は状態レジスタ 260へのアクセスを制御する。従ってコマンド状態マシン 200はユーザバス 306を通して受けるユーザのコマンド入力を理解し、残りのフラッシュメモリシステム 310に対してユーザのコマンド入力を実行するために行うべきステップを指令する回路である。
【0030】
要求されたコマンドが例えばアレイ読取りないし状態レジスタ読取りコマンドなどのアレイコントローラ50により実行されないものである場合、ユーザインターフェイス回路40は適切な制御信号を出して要求されたコマンドの実行を行うようにする。受け取ったコマンド要求がアレイコントローラ50により実行されるものである場合、ユーザインターフェイス回路40が受け取ったコマンド要求を示すコマンドコードを用いてユーザインターフェイス回路40内にあるアレイコントローラ50ジャンプ表(図示せず)へのインデックスを生成する。受け取るコマンドにより(例えば図4〜図14を参照のこと)、ジャンプ表に格納されコマンドコードに対して写像されるオフセットベクトルはアレイコントローラに送られ、アレイコントローラはオフセットベクトルを用いてコマンドを実行するためアレイコントローラ50が行うアルゴリズムに対するコードをアドレス指定する。好適にはオフセットベクトルはプログラムメモリの最初の32位置の1つを引用して実際のプログラムメモリアドレスを判定して実行を開始する。本実施例では、4つの異なるクラスの 128までのコマンドを受けてユーザインターフェイス回路40で処理することができる。
【0031】
本実施例では、ジャンプ表は複数コマンドを単一のオフセットベクトルに写像するように構成する。オフセットベクトルの二重性により使用するハードウエア構成により区別される複数のコマンドクラスを同一アレイコントローラ50アルゴリズムに写像することができる。従って複数ハードウエア構成をユーザインターフェイス回路40ないしアレイコントローラ50の変更なしに支援することができる。これに関してコマンドコード変換メカニズムは、アレイコントローラ50に交信する適切なハードウエア制御信号とオフセットベクトルを生成する。
【0032】
コマンド状態マシン 200でコマンドコードを受取り、ハードウエア制御信号を生成する。そのコマンドは次に、動作待ち行列 230に対して出力する前にコマンドコードをオフセットベクトルに変換するジャンプ表を含む一次コマンド/アドレス/データ待ち行列 210に送る。生成されるハードウエア信号の種類はシステムの構成による。例えば本実施例では、ハードウエア信号を生成して、ページバッファが使用されるのか、どのページバッファが使用されるのか、行われる動作は8ビット動作あるいは16ビット動作なのかなどを識別する。
【0033】
図4〜図14に戻る。いくつかのコマンドコードとアレイコントローラオフセットベクトルはアレイコントローラ50が行うカスタムアルゴリズム用に割り当てられている。フラッシュメモリシステム 310をカスタム化するには、アレイコントローラプログラムメモリに単にコードをロードしてカスタムアルゴリズムを行うだけである。従ってフラッシュメモリシステム 310は特定のユーザのアプリケーション専用のコマンドを行うようにカスタム化できる。更にコマンドセットは柔軟性があり、ユーザインターフェイス回路40を変更することなしに新しいコマンドを加えたり、古いコマンド機能を変更できる。
【0034】
コマンド機能はプログラムメモリ内の最初の32位置に格納されたプログラムメモリアドレスを改訂して異なるプログラムメモリ位置を引用することで容易に変更することができる。更にアレイコントローラ50の機能は製造時にシステムに与えられたアルゴリズムに限定されない。システムは製造後にアレイコントローラアルゴリズムの更新、修正、追加を可能にするフラッシュプログラムメモリなどの更新可能プログラムメモリを備えている。好適にはプログラムメモリはCPU(ユーザ)が出す所定のコマンドを通して更新する。ユーザインターフェイスはコマンドを受けると、アレイコントローラがプログラムメモリを更新できるようにするページバッファに一時格納されたアルゴリズムをアレイコントローラに実行させる。このようにしてアルゴリズムの開始アドレス及びアルゴリズムそれ自身を修正、削除、あるいは追加できる。例えばプログラムメモリはユーザから受け取る新しいアルゴリズムで更新することができる。
【0035】
アレイコントローラ50によりコマンドを実行する場合、コマンド、アドレス、データ情報をユーザインターフェイス回路40で処理するため一時待ち行列 210に与える。特に一時待ち行列 210でコマンド、データ、アドレス情報を受け取りコマンドがオフセットベクトルに変換されると、情報は動作待ち行列 220に送られる。アレイコントローラコマンドがコマンド状態マシン 200に与えられると、コマンド状態マシン 200はそのコマンドとアドレス/データ情報を一時待ち行列 210に送り、それはそれらを引続き動作待ち行列 230に送る。一時待ち行列 210は動作待ち行列 230が活動待ち行列の1つにそのコマンドを受け入れる用意ができるまでそのコマンドを保持する。一時待ち行列 210への情報の転送は、ユーザ制御バス 106を通して受け取る書込み可能クロックと同期化する。動作待ち行列 230はコマンドを一時待ち行列 210から受取り、それをアレイコントローラクロックで駆動される活動待ち行列に配列する。コマンド状態マシン 200が情報を一時待ち行列 210に転送すると、それは更にコマンドが活動待ち行列に加えられるのを待っていることを動作待ち行列 230に告げるフラッグを設定する。動作待ち行列 230がコマンドを一時待ち行列 210から待ち行列の1つに移動すると、フラッシュはリセットされる。このフラッグは更に状態レジスタ 260により待ち行列満杯ビットとして用いられる。この待ち行列満杯ビットはそのビットがなくなるまでアレイコントローラ50により実行することが必要なコマンドをフラッシュメモリシステム 310に出さないようにユーザに告げるのに用いる。
【0036】
好適には動作待ち行列 220は2動作迄待ち合わせさせる能力を持っているが、2動作以上待ち合わせさせることができることは明かである。一次待ち行列は実行する動作ないし実行されている動作を示す。二次待ち行列は一次待ち行列内にある動作の実行が完了すれば行われる次の動作のデータを含んでいる。アレイコントローラ50による一次待ち行列内の動作の実行が完了すると、一次動作はその動作待ち行列から取り除かれてアレイコントローラ50により次の動作を実行できるようにする。実行する命令が一時待ち行列 210に格納されている場合、オフセットベクトル、データ、アドレスは引き続き実行するために動作待ち行列 230に転送される。後に詳細に説明するように、特定のケースでは一次動作が完了する前に二次待ち行列内にある動作を行うことが望ましい。一次及び二次動作の間で革新的なコンテキスト切替え処理を行って一次待ち行列にある動作の完了前に二次待ち行列内にある動作を実行する。
【0037】
ユーザインターフェイス回路40はアレイコントローラ50により実行するコマンドを受け取ると、アレイコントローラ50を駆動するクロック信号を出すアレイコントローラ50の局所発振器が開始するようにアレイコントローラ50に信号を出す。アレイコントローラ50が作動すると、オフセットベクトルはユーザインターフェイスからアレイコントローラ50に転送され、プログラムメモリを割り出す。動作待ち行列 230に格納されたアドレス、データ情報は直接読取り/書込み経路回路30に与えたり、制御レジスタから与えることができ、読取り/書込み経路回路30でのアドレス、データ情報を用いての動作の実行は、プログラムメモリから実行されるアルゴリズムに規定されてアレイコントローラ50により制御される。
【0038】
動作待ち行列 220は好適には、一時待ち行列 210からオフセットベクトルとアドレス、データ情報を受取り、アレイコントローラ50によりアクセスするベクトル及び関連アドレス、データ情報を待ち合わせさせる状態マシンとなる。
【0039】
実施例では、コマンドの待ち行列とユーザインターフェイス回路40へのパイプライン化を支援するため、3層のコマンドの待ち行列を造る。例えば受け取ったコマンドがアレイコントローラ50の動作を必要とし、1つが現在実行しているものでない場合、ユーザインターフェイス回路40は動作待ち行列の最初のもの(一次待ち行列とも称する)を動作のためのデータと共にロードしてアレイコントローラ50の作動を開始する。一般にアレイコントローラ50はその自由裁量で、そのコマンド情報の内容を待ち行列の最初に持ち、行列の最後はユーザバス 306を通しコマンド状態マシン 200そしておそらく一時待ち行列 210を通して出される別のコマンドに使用できるようにする。このアーキテクチャによりアレイコントローラ50が最初のコマンドを実行している間に、ユーザはアレイコントローラ動作その他の任意の有効なコマンドをユーザインターフェイス回路40に出すことができる。ユーザインターフェイス回路40は後続のコマンドを受け取ると、新しい動作が待ち行列に配列されたことをアレイコントローラ50に通知し、現在走っているアレイコントローラアルゴリズムはアレイコントローラ50がその動作を中断して待っている動作を扱うべきかあるいは処理中の動作を最初に完了するかを判定する。アレイコントローラ50が現在実行しているアルゴリズムを中断するかどうかを判定する基準は、実行しているアルゴリズムの論理に含めるようにする。例えばブロックを消去するアルゴリズムは、後続のプログラムコマンドは消去アルゴリズムの実行を中断することができることを示すコードを含むようにする。
【0040】
ユーザインターフェイス回路40の構造により、動作待ち行列 230内でコマンドをパイプライン化できる。例えば1プログラムバイト/語ないし2プログラムバイト/語コマンドをパイプライン化でき、1プログラムバイト/語消去、単一ブロックをパイプライン化でき(メモリアレイの異なるブロックに関して)、ページバッファコマンドからの1つのブロックの消去と別のブロックの書込みをパイプライン化でき、ページバッファコマンドからのプログラムアレイと別のブロックの消去並びに他の特殊なアルゴリズムをパイプライン化できる。
【0041】
ユーザインターフェイス回路40には複数の状態レジスタ 260が含まれている。状態レジスタの一部はアレイコントローラ50による読取り、書込みアクセスが可能で、ユーザインターフェイス回路40による読取りアクセス可能であるが、他のレジスタはユーザインターフェイス回路40による読取り、書込みアクセス可能である。各々の状態レジスタは、アレイコントローラ動作の実行状態に関する情報をアレイコントローラによりモニタないし交信でき、ユーザインターフェイスとユーザがモニタできるようにするため、ユーザインターフェイスにより読取りアクセス可能となっている。ユーザはコマンドを出していつでも状態レジスタにアクセスして、アレイコントローラの状態を判定することができる。例えばメモリシステムにコマンドを出す前に、アレイコントローラの状態が出す命令が有効なコマンドとして受け入れられる状態であることが好ましい。アレイコントローラの状態は状態レジスタ 260を読み取ることで判定することができる。
【0042】
好適には3つの大域状態レジスタと1組の32ブロック状態レジスタ(BSR)を設ける。図15は例示的な状態レジスタビット定義を示すブロック図である。大域状態レジスタは装置の全般的な状態を提供するが、ブロックの特定情報は提供しない。例えば間違った動作は大域状態レジスタで検出することができるが、間違った動作が生じた実際のブロックはブロック状態レジスタを読み取ることでしか検出できない。第1の大域状態レジスタは先のメモリ生成物と協調する反対方向に構成するようにする。第2の大域状態レジスタはアレイコントローラの状態、動作待ち行列の状態、ページバッファの状態に関する情報を提供する。第3の大域状態レジスタはアレイコントローラにより操作できる8つの非専用ビットを含んでいる。そのビットの定義は、アレイコントローラ上で実施されるアルゴリズムによる。従ってユーザはコマンドを出して第3の大域状態レジスタをモニタして特定のアルゴリズムに対するアレイコントローラにより実行状態を判定することができる。状態レジスタを通してのアレイコントローラの状態をモニタする機能により、ユーザはメモリシステムに引続きコマンドを出す前に有効なコマンドを判定することができる。
【0043】
ブロック状態レジスタ(BSR)はアレイのブロックに対して行われる動作の状態を維持するのに用いる。図16に例示的なブロック図を示す。図16に示すように、ブロック状態レジスタは32x8単一ポート書込み二重ポート読取りSRAMアレイとして構成するのが好ましい。SRAMの書込みポートはアレイコントローラ書込みデコーダに接続されている。読取りデコーダはアレイコントローラとユーザインターフェイスに備えられている。従ってアレイコントローラはSRAMアレイにあるブロック状態レジスタに対して書込み、読取りを行うことができるが、ユーザインターフェイスはアレイから読取りしか行うことができない。ユーザは、1つのブロック状態レジスタを選択し、入出力状態レジスタバス上のブロック状態レジスタの内容をユーザインターフェイスに与える信号(例えばアドレスを有するIDA[12:0]、IDA[20:16]及びOEBPAD)をもたらす要求をユーザインターフェイスに対して出すことによりブロック状態レジスタを読み取ることができる。そこで状態情報がユーザにもたらされる。図17はブロック状態レジスタがSRAMアレイで構成されるときのブロック状態レジスタのビットの例示的な構成を示すもので、ビットの定義はプログラム可能でシステムの作動に更に柔軟性をもたらす。
【0044】
各々のブロック状態レジスタはフラッシュアレイの対応するブロックの書込み保護のメカニズムをもたらすロックビットを含み、不注意な消去やプログラム動作からブロックを保護するため、その特定ブロックと関連したブロック状態レジスタ内の不揮発性ロックビットを設定する。特定ブロックに対してロックビットを設定すると、そのブロックは消去ないし書込み動作から保護されるようになる。ロックビットは各々のアレイブロックに有り、関連ブロックが消去される度に消去される。ユーザはロックビットの状態をブロック状態レジスタ内の対応するビットを読み取ることにより読み取ることができる。
【0045】
上述したように、アレイコントローラはフラッシュ装置の内部モードを制御するために使用するプログラマブル・マイクロコントローラである。特にアレイコントローラはフラッシュアレイ内のセルをプログラム、消去するアルゴリズムを含むアルゴリズムを自動的かつ正確に制御する手段を提供する。アレイコントローラはアレイコントローラ動作の起動を制御するユーザインターフェイスを通してアクセスする。アレイコントローラは動作当り2クロックサイクルのベースで作動する。好適には動作Nの実行の用意に対するクロックサイクルは、動作N−1の実行クロックサイクル中に生じる。このようにしてアレイ動作は1サイクルで実行し、第1の命令の実行前に遅延だけが生じる。クロックサイクル内で命令実行は3つの段階に分ける。この区分により1クロックサイクル中に入出力バスサイクルのための十分なクロックエッジがもたらされる。
【0046】
図18で、アレイコントローラはフラッシュプログラムメモリ 320に記憶されたアルゴリズムを実行する。それらのアルゴリズムは命令語、特にデータ転送命令、計算命令、分岐命令、制御命令からなる。データ転送命令は8ビットないし16ビットデータをレジスタファイルに対して移動することに関連している。分岐命令はサブルーチンコールや条件的/無条件的ジャンプの使用を通してプログラミングでアルゴリズムの流れを修正可能にする。計算命令は論理演算装置 370に関連した動作をもたらす。制御命令はフラッグを設定ないし除去し、割込み処理ルーチンに対するポインタを設定する手段を提供する。
【0047】
ユーザインターフェイスとアレイコントローラの間にある制御アクセス回路 380は、アレイコントローラが命令を受けてアルゴリズムを実行し、状態情報をユーザインターフェイス及び最終的にユーザに通信する手段を提供する。例えば実施例では、ユーザインターフェイスは実行を待っているアルゴリズムがあることをアレイコントローラに知らせるCDRUNF、現在アルゴリズムに加えて実行を待っている少なくとも1つのアルゴリズムがあることを示すCDCMDRDY、アレイコントローラに未決のアレイコントローラ実行を一時停止する要求があることを知らせるCDSUSREQの3つの信号を出す。代わりにアレイコントローラはユーザインターフェイスに対してアレイコントローラが装置の制御を有して走っているかどうかを示す信号FDRDY、アレイコントローラが一次待ち行列にあるコマンドないし二次待ち行列にある割込みコマンドを実行しているかを示すFDNXTCMD、現在行っている動作が完了したことを示すFDOPDONE、動作はうまく一時的に停止し、ユーザはメモリ装置の制御をして読取り動作などの動作を行うことができることを示すFDIDLEを通信する。
【0048】
先に述べたように、ユーザインターフェイスはマイクロプロセッサバス信号により駆動されるが、アレイコントローラはフラッシュシステム内にある発振器により駆動される。特に発振器位相生成器ブロック 305はアレイコントローラ回路のために離散クロック信号として用いられる3つの非重複クロックパルスを生成する。発振器器 305はユーザインターフェイスからのコマンドが実行されるときにユーザインターフェイスにより起動される。
【0049】
プログラムメモリ 320はアクセスしたアルゴリズムをユーザインターフェイスから受け取ったジャンプベクトルとプログラムメモリの最初の32アドレス内に格納されたプログラムアドレスにしたがって格納し、アレイコントローラにより実行して要求された機能を行うアルゴリズムを格納する。プログラマブルアレイコントローラを備えることにより実現される利益は膨大である。アルゴリズムはフラッシュシステムが提供するアプリケーションの要件に対して構成することができる。例えば標準プログラム及びプログラム及び消去過程上で変更を行う消去過程並びにカスタム過程のアルゴリズムはプログラムメモリに含めて対応するコマンドを出してアクセスすることができる。更にユーザインターフェイスに対して出したコマンドを通してユーザはプログラムメモリ内に格納されたアルゴリズムを修正することでアレイコントローラの機能を修正することができる。これはアルゴリズムを変更するにはハードウエアを修正する必要のあった従来技術の装置とは全く異なる。好適にはプログラムメモリはユーザインターフェイス回路により制御されるようにアレイコントローラにより修正されるようにする。プログラムメモリ自身が修正されると、ページバッファにはプログラミングアルゴリズムがロードされ、アレイコントローラはプログラムメモリをプログラムするためアルゴリズムに付いてページバッファを参照する。
【0050】
本発明のフラッシュメモリシステムのアーキテクチャによりもたらされる柔軟性は非常に広い。例えばアプリケーションがフラッシュアレイ内に格納された特定のデータを指定するためにインデックスを備えていることを必要とする場合、従来のシステムはSRAMなどの外部メモリを利用してフラッシュアレイ内のどこのデータにアクセスするかを判定するためにポインタを格納してアクセスしていた。しかし本発明のフラッシュシステムにより、アレイコントローラはポインタを格納してそのポインタを用いて探索を行うことができ、外部SRAMの必要性をなくし、各々のアレイは動作を並列に行うことができるので動作のスループットを増大することができる。従ってアレイのためのフラッシュの並列処理が達成される。本発明のフラッシュメモリシステムにより実行できる別の応用は、フラッシュメモリを用いてカメラのフィルムと置き換えることである。この応用を効果的なものにするため、画像データの高速書込みが必要になる。一般にエラーが引き起こされると、別の書込み動作の試みが行われる。しかしこの応用では速度が不可欠であり、単にそのブロックを不良としてマークする方が早い。本発明のフラッシュメモリシステムは単にプログラムコードを生成して書込み機能を行い、そのコードをフラッシュアレイコード記憶装置に格納することでこの応用に対応することができる。このようにカスタム化が可能で、実施は非常に簡単である。
【0051】
アルゴリズムを実行するため、アレイコントローラは現在命令を記憶する命令レジスタ 330、プログラムカウンタ 340、コールスタック 345、論理演算装置(ALU) 370、実行中にALU 370によりスクラッチメモリとして使用されるレジスタファイル360からなる汎用処理構造として具現される。
【0052】
プログラムカウンタ 340はアレイコントローラに与えられる命令の適切なサイクルを維持するために全てのポインタ記憶装置と論理を含んでいる。更にこの構造は革新的なコンテキスト切替え、割込み構造を備えている。プログラムカウンタの基本的な動作は、実行する次の命令を解読し、次の適切な命令を指定することである(EDPC[11:0])。プログラムカウンタの出力として与えられるアドレスを用いてプログラムメモリから次の命令を検索し、命令レジスタに転送してALUにより実行する。図19で、プログラムカウンタはコール 805、コール割込み 810の2つのスタックと、割込み開始 815、割込み戻し 820、ゼロ充填 825、オフセットジャンプ 830、間接ジャンプ 835の5つのレジスタと1つのレジスタ加算器 840からなる。制御回路 845は、マルチプレクサ 855の制御を含む複数の制御機能を行い、835、815、820、825、830、840、805 の様々なソースからアドレス出力のソースを選択し、次の命令ジャンプ位置アルゴリズム、オフセット開始点、ハードウエア割込み、ソフトウエア戻しの間の仲裁を行う。コールスタック 805は12ビットワイドのプッシュアップ・ポップダウン全スタックからなる。
【0053】
このアーキテクチャによりアレイコントローラは割込み中にコンテキスト切替えを行って、割込み動作が完了した後コンテキスト切替えを行ってアレイコントローラの元の状態を回復し、元の動作を続行できるようにタイミングよくアレイコントローラのコンテキストを保存することができる。各々のスタック 805、 810は、スタックのような挙動をもたらすためロジック(図示せず)で囲んだラッチからなる。好適にはプッシュ、ポップロジックはプッシュないしポップ動作が行われた後指定する次のアドレスを解読する状態マシンとする。
【0054】
図18に戻り、プログラムメモリ 320はプログラムカウンタ 340により決定されたアドレスを受け取り、命令出力をラッチする命令レジスタ 330に命令を出力する。動作で更に柔軟性をもたらすため、命令レジスタ 330は更にページバッファ 310を通して受け取る命令をラッチする機能を持っている。その命令は次にALU 370により実行する。ALU 370は全ての演算、論理機能並びにアレイコントローラのためのシフト動作を行い、またバイトと語動作の両方を扱うことができる。実行する命令は命令レジスタ 330を通してプログラムメモリ 320から得る。ALUへの入力データは、ページバッファ及び入出力インターフェイスを初めとする複数のソースから発することができる。
【0055】
レジスタファイル 360は3つのポートのSRAMとして構成され、アレイコントローラが2つのポートから読取り、第3のポートを通してレジスタファイルに書き込むことができるようにしている。2つの読取りポートと1つの書込みポートの各々は互いに独立して作動し、実際には同一メモリ位置で作動することができる。そのタイミングはセルの段階1中に読取り動作が生じ、クロックの段階3中に書込み動作が生じ、それにより段階2を計算段階として使用するというものである。従ってレジスタファイルは1クロックサイクルで読取り、更新することができる。レジスタファイルはアレイコントローラの状態を含み、特にアレイコントローラアルゴリズムの実行中に利用する変数を含んでいる。
【0056】
レジスタファイル 360は2つの部分に区分されている。主要部分である第1の部分はアレイコントローラが実行するアルゴリズムの変数を含み、第2の部分は割込みアルゴリズムの変数を含んでいる従って割込みを行うとき、レジスタファイルは主要部分から第2の部分へのアレイコントローラの状態のハードウエアコンテキスト切替えを行うことができる。ここで全ての動作は主要部分と同一に見えるレジスタファイルの割込み部分で行われる。レジスタファイルの主要部分に保持された全ての変数は維持されるが、割込み作業中にアクセスすることはできない。割込み作業後、制御は主要部分に再び与えられる。
【0057】
本アーキテクチャは、4レベルの深さのプログラムカウンタスタックを支援する。これによりメモリ装置に対して書き込まれるアルゴリズムは動作をよりモジュール的にすることができる。例えば戻り命令はプログラムカウンタスタックと共に二重のデューティを行う。プログラムカウンタスタックにデータがあるとき、戻し命令は被呼サブルーチンから戻す役割をする。PCスタックが空の場合、この命令はアルゴリズム終了命令の役割をする。これにより通常動作に付いてはアレイコントローラが実行を停止するがサイクリングなどのテスト動作に付いてはユーザアルゴリズムをそれらがサブルーチンであるかのように呼び出すことができるようにユーザアルゴリズムを戻し命令で終了することができる。
【0058】
本発明のフラッシュメモリシステムのアーキテクチャは、データの変改ないし高電圧プログラム/消去回路なしにアレイコントローラアルゴリズムの割込みを可能にする革新的な割込みメカニズムを提供する。従来の装置とは異なり、この割込みメカニズムはアレイに対して害を与える恐れのある状態からメモリ装置を取り出すことで割込みを行う前にメモリ装置を保護する方法を提供する。例えばアレイコントローラが現在消去過程を制御している場合、アレイを消去するのに必要な電圧はメモリに害を与えるのを避けるために低下させる。割込みを行った後、メモリ装置とアレイコントローラを消去パルスのような元の実行過程を続行できる状態に配置し直す。
【0059】
特に革新的な割込みメカニズムは最初に現在実行しているアルゴリズムに関連した割込み開始コードを実行することで現在実行しているアルゴリズムの安全な割込みと中断を備えている。この割込み開始コードは現在実行アルゴリズムを安全に中断する。例えば割込み開始コードは利用している高電圧回路を低下し、読取り/書込み回路を割込みアルゴリズムで使用する状態に置き、必要なレジスタのコンテキスト切替えを行って中断するアルゴリズムの安全時点を判定する。割込み開始ルーチンが実行を完了すると、割込みルーチンが実行を始め、割込みルーチンの実行の終わりに、割込み戻しルーチンが実行されてプログラムカウンタを調節して割り込んだコード内の安全戻し地点を指定し、被割込みルーチンが実行を続行できるようにレジスタのコンテキスト切替えを行う。
【0060】
本発明のフラッシュ回路に備えられた革新的な割込み処理を用いて、消去中のプログラム支援アルゴリズムその他のアルゴリズム中断機能が可能となる。例えばこの割込み構造により、アルゴリズムを同時に実行している間に割込みを生じることが可能である。更に割込み構造、動作待ち行列及び状態レジスタは革新的な仮想状態マシンとして機能してマルチプロセッシング的な機能を提供する。
【0061】
割込みの取り扱いはユーザインターフェイスの状態マシンが出す3つの命令、即ち使用可能割込み(ENI)、使用不能割込み(DSI)、セット割込み開始レジスタ(SISR)により制御する。ENIはアルゴリズムへの安全な戻し地点を引数として取り、割込み戻しレジスタ(IRR)をこの値に設定し、割込み可能フラッグ(IF)を設定する。DSIは引数を取らず、単にIFをリセットするだけである。SISRは割込み開始ルーチンアドレスのアドレスを引数として取り、割込み開始レジスタ(ISR)を設定する。PCスタックの保全性を確保するため、IRRアドレスは割込みが為された手順内になければならない。従って例えば信号CDCMDRDYが実行を待っているコマンドを示し現在実行しているアルゴリズムが割込み可能である場合、即ちIFビットが設定されている場合、CDCMDRDYが設定された後最初の命令サイクルでISRに格納されているアドレスへのジャンプが生じる。直ちに割込み要求信号が表明され、IFが取り除かれる。割込み開始ルーチンが完了すると、戻しによる表示(RET)命令、割込み肯定応答信号及び開始信号が表明される。そこで割込みアルゴリズムが実行される。空のPCスタック上でRETにより表示される割込みアルゴリズムが完了すると、割込みビットが取り除かれ、IRRに記憶されたアドレスへのジャンプが生じる。そこで被割込みアルゴリズムは実行を続ける。
【0062】
戻しアドレス及び割込み開始ルーチンを含む割込み戻しルーチンは事前に決定されている。アレイコントローラアルゴリズムが造られプログラムメモリにロードされるとき、割込み開始ルーチンと戻しルーチンが造られてプログラムメモリにロードされ、割込み開始ルーチンと戻しルーチンのアドレスを決定するようにする。アルゴリズムが実行されるとき、割込みが生じたときに情報を容易に得ることができ、割込み開始及び戻しルーチンの開始アドレスをタイムリーに利用してプログラムメモリの該当アドレスにアクセスして命令レジスタにロードしALUにより実行するようにIRRとISRはプログラムカウンタにロードされる。
【0063】
このように割込み可能アルゴリズムが実行しており、割込みが生じると、制御は直ちにそのアルゴリズムの割込み開始ルーチンに渡される。割込み開始ルーチンはアレイコントローラを割込みアルゴリズムが実行し被割込みアルゴリズムが続いて実行されて完了できる状態にする。従って割込み開始ルーチンは割込みをこの時点で行うことができるかどうかを判定し、そしてそれを行うことができればフラッシュ高電圧と読取り回路を周知の安全な状態にする。そこでアレイコントローラはコールスタックとレジスタファイルのコンテキスト切替えを行って交互のコピーにアクセスし、それによりコンテキスト切替えを行う。割込みアルゴリズムを完了すると、制御は割込み戻しルーチンに渡される。この移行が行われると、コールスタックとレジスタファイルは被割込みアルゴリズムで使用されたもとのものに切り換えられる。割込み戻しルーチンは装置の高電圧と読取り回路を適切な状態にして被割込みアルゴリズムの実行を続け、実行を始める安全地点である被割込みアルゴリズムのアドレスを提供することに責任を持つ。この時点で被割込みアルゴリズムの実行が続けられる。この過程の流れを図20に図式的に示す。
【0064】
被割込みアルゴリズムの実行が始まる地点はアルゴリズムが割り込まれた場所とは同じでないことがあることに留意する。これはアプリケーションにより決定される。例えば被割込みアルゴリズムがアレイ消去動作ならば、割込み前に行われた最後の消去動作が完了したことを検証するためにアルゴリズムは割込み後、検証命令で開始されることがある。アルゴリズムのアプリケーションが指令するように被割込みアルゴリズムの戻し地点を決定する他の基準を用いることができる。
【0065】
更に被割込みアルゴリズムの安全戻し地点を識別するアドレスは、アルゴリズムがアルゴリズムの異なる「段階」ないし部分を実行することでアルゴリズムの実行中に変わることがある。従って割込み戻し地点はコードの実行中に更新されて異なる戻し地点を指定する。これは割込み戻しルーチンを修正ないしIRRを更新して、アルゴリズム内の実行位置により異なる割込み戻しルーチンを指定することで行うことができる。例えば消去アルゴリズムでは、事前調整段階の戻し地点は、アルゴリズムの消去部分の戻し地点とは異なり、それはまたアルゴリズムの後調整段階の戻し地点とは異なるものとなる。
【0066】
好適には割込みフラッグと大域割込みフラッグの2つの割込みフラッグをアレイコントローラに設ける。割込みが生じるには、動作が未決で、両フラッグが使用可能でなければならない。最初は使用不能状態の割込みフラッグは、アルゴリズム内で使用して局所的に割込みを可能、不能にする。従ってアルゴリズムは、アルゴリズムの実行時点でそれぞれ割込み可能及び割込み不能であるフラッグを使用可能、不能にするアレイコントローラに対する命令を持つことができる。割込みフラッグはコールないし戻し命令が実行されると自動的に不能にされる。これは特定サブルーチンに付いてIRRが適切な戻しを指定するようにするためである。
【0067】
最初は使用可能になっている大域割込みフラッグは、アルゴリズムが未決割込みを扱うことができない場合に割込みを不能にするのに使用する。図21に示すように、被割込みアルゴリズムに対する割込み開始ルーチンがこの時点で割込みを処理することができないと判定すると、大域割込みフラッグが不能になり、割込み戻しルーチンに対するスキップ命令が実行される。
【0068】
スキップ命令は依然割込み開始ルーチン中に実行されることを除いて戻し命令と見ることができる。スキップ命令によりアレイコントローラは割込み開始ルーチンを終了し、直ちに割込み戻しルーチンを実行して割込みアルゴリズムの実行をスキップする。従って割込み戻しルーチンが完了した時点で大域割込みフラッグが使用可能であれば、割込みアルゴリズムが完了し、動作待ち行列から取り除くことができる。大域割込みフラッグが不能であれば、ユーザインターフェイスは未決の動作を続いて実行できるように動作待ち行列に残す。
【0069】
従ってこの構造はアレイ内のデータの変改や破壊を生じることなく事実条件的でフラッシュメモリシステム内で作動する割込みメカニズムを提供する。更にこのメカニズムは割込みの優先順位レベルに容易に対応することができる。例えば各々のアルゴリズムは優先順位レベルで識別できる。ユーザインターフェイス回路40は動作を二次待ち行列にロードし、割込みを要求するのに必要な信号を出し、現在実行している過程は未決のコマンド要求は高い優先度のものかどうかを判定する。そうであればその割込みは実行している動作を中断してアレイコントローラにより実行される(一次待ち行列に現在格納されている情報で記されているように)。
【0070】
更にこの構造により消去動作中のプログラムが生じる。アレイ上の消去動作はよく知られた時間のかかる過程である。ブロックの消去動作が現在実行しており、別のブロックのプログラム動作が実行を待っている場合、割込みが生成され割込みアルゴリズムの適切性を割込み開始ルーチンがチェックし(例えばそれは既に消去しているブロックへのプログラムしようとする試みか?)、プログラムアルゴリズムの実行前に内部電源をオフ状態に安全にシーケンス化する。これを図22、23に単純化した流れ図で例示する。説明のために消去過程は全てのブロックデータが「0」にプログラムされた事前調整過程とブロックデータが「1」の値に設定された検証過程の2つの大きな部分からなると記述できる。過程流れ図に示すように、例えば別のブロックをプログラムする要求により生じる割込みは、高電圧回路操作中には許されないが、消去中には許される(図23を参照のこと)。
【図面の簡単な説明】
【図1】 フラッシュメモリを含むコンピュータシステムのブロック図である。
【図2】 本発明のフラッシュメモリシステムのブロック図である。
【図3】 本発明のユーザインターフェイスのブロック図である。
【図4】 本発明のシステムで受け取るコマンドコードと実施されるアレイコントローラベクトルを例示した図表である。
【図5】 本発明のシステムで受け取るコマンドコードと実施されるアレイコントローラベクトルを例示した図表である。
【図6】 本発明のシステムで受け取るコマンドコードと実施されるアレイコントローラベクトルを例示した図表である。
【図7】 本発明のシステムで受け取るコマンドコードと実施されるアレイコントローラベクトルを例示した図表である。
【図8】 本発明のシステムで受け取るコマンドコードと実施されるアレイコントローラベクトルを例示した図表である。
【図9】 本発明のシステムで受け取るコマンドコードと実施されるアレイコントローラベクトルを例示した図表である。
【図10】 本発明のシステムで受け取るコマンドコードと実施されるアレイコントローラベクトルを例示した図表である。
【図11】 本発明のシステムで受け取るコマンドコードと実施されるアレイコントローラベクトルを例示した図表である。
【図12】 本発明のシステムで受け取るコマンドコードと実施されるアレイコントローラベクトルを例示した図表である。
【図13】 本発明のシステムで受け取るコマンドコードと実施されるアレイコントローラベクトルを例示した図表である。
【図14】 本発明のシステムで受け取るコマンドコードと実施されるアレイコントローラベクトルを例示した図表である。
【図15】 例示的な状態レジスタビット定義を示したブロック図である。
【図16】 本発明のブロック状態レジスタの構造を示したブロック図である。
【図17】 ブロック状態レジスタのビットの例示的な構成を示す。
【図18】 本発明の不揮発性メモリで利用するアレイコントローラのブロック図である。
【図19】 プログラムカウンタ回路を示すブロック図である。
【図20】 本発明の割込み過程の流れを示す図である。
【図21】 本発明の割込み過程の流れを示す図である。
【図22】 本発明の教示による消去過程中のプログラムを示す流れ図である。
【図23】 本発明の教示による消去過程中のプログラムを示す流れ図である。
【符号の説明】
300コンピュータシステム
302CPU
304主記憶装置
306ユーザバス
310フラッシュメモリシステム
20 フラッシュセルアレイ
30 読取り/書込み経路回路
40 ユーザインターフェイス回路
50 アレイコントローラ
60 制御アクセス回路
70 ページバッファ回路
80−85 制御レジスタ回路
200コマンド状態マシン
210一時待ち行列
230動作待ち行列
250ページバッファカウンタ
260状態レジスタ
Claims (2)
- バスによりメモリに接続されているプロセッサを搭載したシステムのそのバスに接続されたフラッシュメモリシステムにおいて、
前記フラッシュメモリシステムにより実行されるコマンドを受け取るユーザインターフェイスであって、実行している現在コマンドを含め1つないし複数のコマンドを格納するコマンド待ち行列を有するユーザインターフェイスと、
実行すべきコマンドを受け取るために前記ユーザインターフェイスに接続され、かつ前記フラッシュメモリシステム内のフラッシュメモリアレイに対する読取り、消去、プログラムを行うために電源を制御するアレイコントローラと、
前記アレイコントローラに接続されて当該アレイコントローラの状態を記憶する複数のレジスタと、
設定されるとコマンドの実行中に割込みの発行を可能にする割込み状態ビットとからなり、
前記割込み状態ビットが設定されており、かつ前記コマンド待ち行列が現在実行している消去コマンドと実行すべき次のコマンドを含んでいる場合、前記ユーザインターフェイスは前記次のコマンドを実行させるための割込み命令をアレイコントローラに出し、
該割り込み命令を受けた前記アレイコントローラは
前記フラッシュメモリアレイの実行中の消去コマンドによる消去動作を中断させ、
前記電源を制御して前記消去のための電圧を低下させ、
当該アレイコントローラの前記消去コマンド実行状態を前記レジスタに保存し、
前記割込み命令による次のコマンドを実行し、
前記レジスタに保存していた状態をリストアして前記アレイコントローラを消去コマンド実行状態に回復させ、
前記中断中の消去動作を再開させるよう前記フラッシュメモリアレイを制御するよう構成され、
さらに、前記ユーザインターフェースからの割り込み命令は安全な戻し地点を引数として有しており、前記次のコマンドの実行が完了した際に該引数が示す戻し地点から前記消去コマンドの実行を再開させるよう構成されており、さらにその安全な割り込み戻し地点は、前記アレイコントローラにより、前記消去動作中に更新制御されて該割り込み命令による処理が開始された地点と異なって設定されることを許容するよう構成され、これにより前記フラッシュメモリアレイを変改することなしに割り込み処理を行うフラッシュメモリシステム。 - バスによりメモリに接続されているプロセッサを搭載したシステムのそのバスに接続されたフラッシュメモリシステムにおいて、
データを記憶する複数のフラッシュセルからなるフラッシュメモリアレイと、
前記フラッシュメモリシステムにより実行されるコマンドを受け取るユーザインターフェイスであって、実行している現在コマンドを含め1つないし複数のコマンドを格納するコマンド待ち行列を有し、かつ実行したときにコマンドを行うコードの位置を識別するコマンドアドレスを生成するユーザインターフェイスと、
前記ユーザインターフェイスに接続されてコマンドアドレスを受け取るアレイコントローラであって、マイクロコントローラと、ユーザがプログラム可能なプログラムメモリとを有し、前記コマンドアドレスは前記マイクロコントローラが実行するプログラムメモリ内の前記コードの位置を識別し、前記マイクロコントローラはプログラムメモリ内の当該コードに従って前記フラッシュメモリアレイ上で書込み、消去または読取り動作を行うとともに、消去動作実行中の割り込み処理の制御を行うアレイコントローラと
からなり、
さらに前記アレイコントローラが前記消去動作実行中に割り込み処理を受けたときに、
該消去動作を中断させ、
ついで該割り込みによる処理を実行させるとともに、
その割り込みによる処理が完了したときに安全な割り込み戻し地点に割り込み戻しさせ るよう制御するよう構成され、さらにその割り込み戻し地点が前記消去動作実行中に更新されて当該割り込みによる処理が開始された地点と異なる地点に前記安全な割り込み戻し地点が設定されることを許容するよう制御して
前記フラッシュメモリアレイを変改することなしに割り込み処理の制御を行うフラッシュメモリシステム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US086186 | 1993-06-30 | ||
US08/086,186 US5509134A (en) | 1993-06-30 | 1993-06-30 | Method and apparatus for execution of operations in a flash memory array |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH07161195A JPH07161195A (ja) | 1995-06-23 |
JP3787167B2 true JP3787167B2 (ja) | 2006-06-21 |
Family
ID=22196870
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP16585994A Expired - Fee Related JP3787167B2 (ja) | 1993-06-30 | 1994-06-27 | フラッシュメモリ |
Country Status (3)
Country | Link |
---|---|
US (1) | US5509134A (ja) |
JP (1) | JP3787167B2 (ja) |
KR (1) | KR100276162B1 (ja) |
Families Citing this family (221)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6222762B1 (en) * | 1992-01-14 | 2001-04-24 | Sandisk Corporation | Multi-state memory |
US5682497A (en) * | 1993-09-28 | 1997-10-28 | Intel Corporation | Managing file structures for a flash memory file system in a computer |
US6370651B1 (en) * | 1993-10-22 | 2002-04-09 | Intel Corporation | Synchronizing user commands to a microcontroller in a memory device |
FR2711831B1 (fr) * | 1993-10-26 | 1997-09-26 | Intel Corp | Procédé et circuit de mémorisation et de hiérarchisation d'ordres d'effacement dans un dispositif de mémoire. |
SG49632A1 (en) * | 1993-10-26 | 1998-06-15 | Intel Corp | Programmable code store circuitry for a nonvolatile semiconductor memory device |
JP3999822B2 (ja) * | 1993-12-28 | 2007-10-31 | 株式会社東芝 | 記憶システム |
US5692164A (en) * | 1994-03-23 | 1997-11-25 | Intel Corporation | Method and apparatus for generating four phase non-over lapping clock pulses for a charge pump |
FR2722907B1 (fr) * | 1994-07-20 | 1996-09-06 | Sgs Thomson Microelectronics | Memoire integree programmable comportant des moyens d'emulation |
GB9417297D0 (en) * | 1994-08-26 | 1994-10-19 | Inmos Ltd | Method and apparatus for testing an integrated circuit device |
JP3402781B2 (ja) * | 1994-09-02 | 2003-05-06 | キヤノン株式会社 | メモリ管理制御装置及び方法 |
US5907700A (en) * | 1994-10-24 | 1999-05-25 | Intel Corporation | Controlling flash memory program and erase pulses |
JP2669365B2 (ja) * | 1994-11-24 | 1997-10-27 | 日本電気株式会社 | 書換え可能なromファイル装置 |
KR100566464B1 (ko) * | 1995-01-31 | 2006-03-31 | 가부시끼가이샤 히다치 세이사꾸쇼 | 반도체 메모리 장치 |
US6108237A (en) | 1997-07-17 | 2000-08-22 | Micron Technology, Inc. | Fast-sensing amplifier for flash memory |
US5682496A (en) * | 1995-02-10 | 1997-10-28 | Micron Quantum Devices, Inc. | Filtered serial event controlled command port for memory |
US5742787A (en) * | 1995-04-10 | 1998-04-21 | Intel Corporation | Hardware reset of a write state machine for flash memory |
JP3782840B2 (ja) | 1995-07-14 | 2006-06-07 | 株式会社ルネサステクノロジ | 外部記憶装置およびそのメモリアクセス制御方法 |
US5890193A (en) * | 1995-07-28 | 1999-03-30 | Micron Technology, Inc. | Architecture for state machine for controlling internal operations of flash memory |
US5801985A (en) * | 1995-07-28 | 1998-09-01 | Micron Technology, Inc. | Memory system having programmable control parameters |
US5619453A (en) * | 1995-07-28 | 1997-04-08 | Micron Quantum Devices, Inc. | Memory system having programmable flow control register |
US5627784A (en) * | 1995-07-28 | 1997-05-06 | Micron Quantum Devices, Inc. | Memory system having non-volatile data storage structure for memory control parameters and method |
JPH0997205A (ja) * | 1995-09-28 | 1997-04-08 | Canon Inc | フラッシュrom管理方法及び装置及びコンピュータ制御装置 |
US5687390A (en) * | 1995-11-14 | 1997-11-11 | Eccs, Inc. | Hierarchical queues within a storage array (RAID) controller |
DE19544571A1 (de) * | 1995-11-30 | 1997-06-05 | Sel Alcatel Ag | Verfahren und Vorrichtung zum Programmieren eines Flash-EEProms |
US5893135A (en) * | 1995-12-27 | 1999-04-06 | Intel Corporation | Flash memory array with two interfaces for responding to RAS and CAS signals |
US5594686A (en) * | 1995-12-29 | 1997-01-14 | Intel Corporation | Method and apparatus for protecting data stored in flash memory |
US6073204A (en) * | 1997-04-23 | 2000-06-06 | Micron Technology, Inc. | Memory system having flexible architecture and method |
DE69629315T2 (de) * | 1996-05-22 | 2004-04-22 | Macronix International Co. Ltd., Hsinchu | Flashspeicheranordnung mit löschungsunterbrechungslogik unter verwendung von mehreren prüfpunkten |
US6003063A (en) * | 1996-05-28 | 1999-12-14 | Hewlett-Packard Company | Computer system with context switch and program development therefor |
JP3976839B2 (ja) * | 1996-07-09 | 2007-09-19 | 株式会社ルネサステクノロジ | 不揮発性メモリシステムおよび不揮発性半導体メモリ |
US6148360A (en) * | 1996-09-20 | 2000-11-14 | Intel Corporation | Nonvolatile writeable memory with program suspend command |
US6418506B1 (en) * | 1996-12-31 | 2002-07-09 | Intel Corporation | Integrated circuit memory and method for transferring data using a volatile memory to buffer data for a nonvolatile memory array |
US6055614A (en) * | 1996-12-31 | 2000-04-25 | Intel Corporation | Apparatus for performing a user requested reset during algorithm execution |
US5901079A (en) * | 1997-01-13 | 1999-05-04 | International Business Machines Corporation | Skewed memory cell apparatus and method |
US6035401A (en) | 1997-02-03 | 2000-03-07 | Intel Corporation | Block locking apparatus for flash memory |
US6073243A (en) * | 1997-02-03 | 2000-06-06 | Intel Corporation | Block locking and passcode scheme for flash memory |
US5954818A (en) * | 1997-02-03 | 1999-09-21 | Intel Corporation | Method of programming, erasing, and reading block lock-bits and a master lock-bit in a flash memory device |
KR100251636B1 (ko) * | 1997-04-10 | 2000-05-01 | 윤종용 | 소형컴퓨터시스템인터페이스방식접속을위한메모리장치 |
US5822251A (en) * | 1997-08-25 | 1998-10-13 | Bit Microsystems, Inc. | Expandable flash-memory mass-storage using shared buddy lines and intermediate flash-bus between device-specific buffers and flash-intelligent DMA controllers |
US6000006A (en) * | 1997-08-25 | 1999-12-07 | Bit Microsystems, Inc. | Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage |
US5956743A (en) * | 1997-08-25 | 1999-09-21 | Bit Microsystems, Inc. | Transparent management at host interface of flash-memory overhead-bytes using flash-specific DMA having programmable processor-interrupt of high-level operations |
US6141247A (en) * | 1997-10-24 | 2000-10-31 | Micron Technology, Inc. | Non-volatile data storage unit and method of controlling same |
US6076152A (en) * | 1997-12-17 | 2000-06-13 | Src Computers, Inc. | Multiprocessor computer architecture incorporating a plurality of memory algorithm processors in the memory subsystem |
US7373440B2 (en) | 1997-12-17 | 2008-05-13 | Src Computers, Inc. | Switch/network adapter port for clustered computers employing a chain of multi-adaptive processors in a dual in-line memory module format |
US7565461B2 (en) | 1997-12-17 | 2009-07-21 | Src Computers, Inc. | Switch/network adapter port coupling a reconfigurable processing element to one or more microprocessors for use with interleaved memory controllers |
JPH11203266A (ja) * | 1998-01-07 | 1999-07-30 | Mitsubishi Electric Corp | マイクロコンピュータ |
US6040993A (en) * | 1998-02-23 | 2000-03-21 | Macronix International Co., Ltd. | Method for programming an analog/multi-level flash EEPROM |
US6026016A (en) * | 1998-05-11 | 2000-02-15 | Intel Corporation | Methods and apparatus for hardware block locking in a nonvolatile memory |
US6209069B1 (en) | 1998-05-11 | 2001-03-27 | Intel Corporation | Method and apparatus using volatile lock architecture for individual block locking on flash memory |
US6421757B1 (en) * | 1998-09-30 | 2002-07-16 | Conexant Systems, Inc | Method and apparatus for controlling the programming and erasing of flash memory |
US6279114B1 (en) * | 1998-11-04 | 2001-08-21 | Sandisk Corporation | Voltage negotiation in a single host multiple cards system |
US6148354A (en) | 1999-04-05 | 2000-11-14 | M-Systems Flash Disk Pioneers Ltd. | Architecture for a universal serial bus-based PC flash disk |
US6212099B1 (en) | 1999-08-20 | 2001-04-03 | Intel Corporation | Preventing data corruption in a memory device using a modified memory cell conditioning methodology |
KR100631770B1 (ko) * | 1999-09-07 | 2006-10-09 | 삼성전자주식회사 | 플래시 메모리의 실시간 처리방법 |
CN1088218C (zh) * | 1999-11-14 | 2002-07-24 | 邓国顺 | 用于数据处理系统的快闪电子式外存储方法及其装置 |
US6363008B1 (en) * | 2000-02-17 | 2002-03-26 | Multi Level Memory Technology | Multi-bit-cell non-volatile memory with maximized data capacity |
JP3871184B2 (ja) | 2000-06-12 | 2007-01-24 | シャープ株式会社 | 半導体記憶装置 |
US20050135180A1 (en) * | 2000-06-30 | 2005-06-23 | Micron Technology, Inc. | Interface command architecture for synchronous flash memory |
US6861769B1 (en) | 2000-11-16 | 2005-03-01 | White Electronic Designs Corp. | Apparatus and method for protection of an electronic circuit |
US6834323B2 (en) | 2000-12-26 | 2004-12-21 | Intel Corporation | Method and apparatus including special programming mode circuitry which disables internal program verification operations by a memory |
US6732306B2 (en) | 2000-12-26 | 2004-05-04 | Intel Corporation | Special programming mode with hashing |
US7007131B2 (en) * | 2000-12-27 | 2006-02-28 | Intel Corporation | Method and apparatus including special programming mode circuitry which disables internal program verification operations by a memory |
US6779045B2 (en) * | 2001-03-21 | 2004-08-17 | Intel Corporation | System and apparatus for increasing the number of operations per transmission for a media management system |
US6772307B1 (en) | 2001-06-11 | 2004-08-03 | Intel Corporation | Firmware memory having multiple protected blocks |
DE10128903C2 (de) * | 2001-06-15 | 2003-04-24 | Infineon Technologies Ag | Schaltungsanordnung zur Speicherung digitaler Daten |
JP2003036681A (ja) * | 2001-07-23 | 2003-02-07 | Hitachi Ltd | 不揮発性記憶装置 |
GB0123416D0 (en) * | 2001-09-28 | 2001-11-21 | Memquest Ltd | Non-volatile memory control |
US7209252B2 (en) * | 2002-01-15 | 2007-04-24 | Lexmark International, Inc. | Memory module, printer assembly, and method for storing printer code |
US7533214B2 (en) * | 2002-02-27 | 2009-05-12 | Microsoft Corporation | Open architecture flash driver |
TW569092B (en) * | 2002-05-23 | 2004-01-01 | Ememory Technology Inc | Page buffer of a flash memory |
US7225324B2 (en) | 2002-10-31 | 2007-05-29 | Src Computers, Inc. | Multi-adaptive processing systems and techniques for enhancing parallelism and performance of computational functions |
ITRM20030198A1 (it) * | 2003-04-28 | 2004-10-29 | Micron Technology Inc | Monitor ad unita' di controllo basata su rom in un |
JP2004348817A (ja) * | 2003-05-20 | 2004-12-09 | Sharp Corp | 半導体記憶装置、そのページバッファリソース割当方法及び回路、コンピュータシステム並びに携帯電子機器 |
JP2004348791A (ja) * | 2003-05-20 | 2004-12-09 | Sharp Corp | 半導体記憶装置及び携帯電子機器 |
JP2004348788A (ja) * | 2003-05-20 | 2004-12-09 | Sharp Corp | 半導体記憶装置及び携帯電子機器 |
JP2004348790A (ja) * | 2003-05-20 | 2004-12-09 | Sharp Corp | 半導体記憶装置及び携帯電子機器 |
JP2004348789A (ja) * | 2003-05-20 | 2004-12-09 | Sharp Corp | 半導体記憶装置及び携帯電子機器 |
ITRM20030354A1 (it) | 2003-07-17 | 2005-01-18 | Micron Technology Inc | Unita' di controllo per dispositivo di memoria. |
US7089349B2 (en) * | 2003-10-28 | 2006-08-08 | Sandisk Corporation | Internal maintenance schedule request for non-volatile memory system |
US7299324B2 (en) * | 2003-11-05 | 2007-11-20 | Denali Software, Inc. | Reactive placement controller for interfacing with banked memory storage |
US7321951B2 (en) * | 2003-11-17 | 2008-01-22 | Micron Technology, Inc. | Method for testing flash memory power loss recovery |
US20050144372A1 (en) * | 2003-12-31 | 2005-06-30 | Robert Walker | Memory device controlled with user-defined commands |
US7151692B2 (en) * | 2004-01-27 | 2006-12-19 | Macronix International Co., Ltd. | Operation scheme for programming charge trapping non-volatile memory |
KR100541642B1 (ko) * | 2004-03-11 | 2006-01-10 | 삼성전자주식회사 | 플래시 메모리의 데이터 관리 장치 및 방법 |
US7075828B2 (en) * | 2004-04-26 | 2006-07-11 | Macronix International Co., Intl. | Operation scheme with charge balancing erase for charge trapping non-volatile memory |
US7133313B2 (en) * | 2004-04-26 | 2006-11-07 | Macronix International Co., Ltd. | Operation scheme with charge balancing for charge trapping non-volatile memory |
US7164603B2 (en) * | 2004-04-26 | 2007-01-16 | Yen-Hao Shih | Operation scheme with high work function gate and charge balancing for charge trapping non-volatile memory |
US7187590B2 (en) * | 2004-04-26 | 2007-03-06 | Macronix International Co., Ltd. | Method and system for self-convergent erase in charge trapping memory cells |
US7209390B2 (en) * | 2004-04-26 | 2007-04-24 | Macronix International Co., Ltd. | Operation scheme for spectrum shift in charge trapping non-volatile memory |
FR2869699A1 (fr) * | 2004-05-03 | 2005-11-04 | St Microelectronics Sa | Systeme sur une puce avec unite d'arbitrage, et cle de stockage l'incorporant |
US7190614B2 (en) * | 2004-06-17 | 2007-03-13 | Macronix International Co., Ltd. | Operation scheme for programming charge trapping non-volatile memory |
US7336531B2 (en) * | 2004-06-25 | 2008-02-26 | Micron Technology, Inc. | Multiple level cell memory device with single bit per cell, re-mappable memory block |
US20060007732A1 (en) * | 2004-07-06 | 2006-01-12 | Macronix International Co., Ltd. | Charge trapping non-volatile memory and method for operating same |
US7106625B2 (en) * | 2004-07-06 | 2006-09-12 | Macronix International Co, Td | Charge trapping non-volatile memory with two trapping locations per gate, and method for operating same |
ITMI20041904A1 (it) * | 2004-10-07 | 2005-01-07 | Atmel Corp | "metodo e sistema per un approccio di programmazione per un dispositivo elettronico non volatile" |
WO2006041730A2 (en) * | 2004-10-07 | 2006-04-20 | Atmel Corporation | Method and system for a programming approach for a nonvolatile electronic device |
US7133317B2 (en) * | 2004-11-19 | 2006-11-07 | Macronix International Co., Ltd. | Method and apparatus for programming nonvolatile memory |
US20060113586A1 (en) * | 2004-11-29 | 2006-06-01 | Macronix International Co., Ltd. | Charge trapping dielectric structure for non-volatile memory |
US7158421B2 (en) * | 2005-04-01 | 2007-01-02 | Sandisk Corporation | Use of data latches in multi-phase programming of non-volatile memories |
US8482052B2 (en) | 2005-01-03 | 2013-07-09 | Macronix International Co., Ltd. | Silicon on insulator and thin film transistor bandgap engineered split gate memory |
US7315474B2 (en) | 2005-01-03 | 2008-01-01 | Macronix International Co., Ltd | Non-volatile memory cells, memory arrays including the same and methods of operating cells and arrays |
US7473589B2 (en) * | 2005-12-09 | 2009-01-06 | Macronix International Co., Ltd. | Stacked thin film transistor, non-volatile memory devices and methods for fabricating the same |
US7822912B2 (en) * | 2005-03-14 | 2010-10-26 | Phision Electronics Corp. | Flash storage chip and flash array storage system |
JP5068739B2 (ja) * | 2005-03-18 | 2012-11-07 | ラムバス・インコーポレーテッド | 集積回路試験モジュール |
US7206230B2 (en) * | 2005-04-01 | 2007-04-17 | Sandisk Corporation | Use of data latches in cache operations of non-volatile memories |
US7447078B2 (en) | 2005-04-01 | 2008-11-04 | Sandisk Corporation | Method for non-volatile memory with background data latch caching during read operations |
US7463521B2 (en) * | 2005-04-01 | 2008-12-09 | Sandisk Corporation | Method for non-volatile memory with managed execution of cached data |
US7158420B2 (en) * | 2005-04-29 | 2007-01-02 | Macronix International Co., Ltd. | Inversion bit line, charge trapping non-volatile memory and method of operating same |
JP4889961B2 (ja) * | 2005-05-06 | 2012-03-07 | ルネサスエレクトロニクス株式会社 | 半導体集積回路及びそのバーインテスト方法 |
US7763927B2 (en) * | 2005-12-15 | 2010-07-27 | Macronix International Co., Ltd. | Non-volatile memory device having a nitride-oxide dielectric layer |
KR100713984B1 (ko) * | 2005-09-15 | 2007-05-04 | 주식회사 하이닉스반도체 | 멀티-플레인 구조를 갖는 비휘발성 메모리 장치의 프로그램방법 |
US7652922B2 (en) | 2005-09-30 | 2010-01-26 | Mosaid Technologies Incorporated | Multiple independent serial link memory |
US11948629B2 (en) | 2005-09-30 | 2024-04-02 | Mosaid Technologies Incorporated | Non-volatile memory device with concurrent bank operations |
KR101293365B1 (ko) | 2005-09-30 | 2013-08-05 | 모사이드 테크놀로지스 인코퍼레이티드 | 출력 제어 메모리 |
US7890686B2 (en) * | 2005-10-17 | 2011-02-15 | Src Computers, Inc. | Dynamic priority conflict resolution in a multi-processor computer system having shared resources |
US7716100B2 (en) * | 2005-12-02 | 2010-05-11 | Kuberre Systems, Inc. | Methods and systems for computing platform |
JP4686350B2 (ja) * | 2005-12-09 | 2011-05-25 | 株式会社東芝 | 不揮発性半導体記憶装置及びその自己テスト方法 |
US7562180B2 (en) * | 2006-03-28 | 2009-07-14 | Nokia Corporation | Method and device for reduced read latency of non-volatile memory |
US7907450B2 (en) * | 2006-05-08 | 2011-03-15 | Macronix International Co., Ltd. | Methods and apparatus for implementing bit-by-bit erase of a flash memory device |
KR100754226B1 (ko) * | 2006-08-22 | 2007-09-03 | 삼성전자주식회사 | 비휘발성 데이터 저장장치의 프로그래밍 방법 및 그 장치 |
JP4661748B2 (ja) * | 2006-09-22 | 2011-03-30 | Tdk株式会社 | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 |
US8772858B2 (en) * | 2006-10-11 | 2014-07-08 | Macronix International Co., Ltd. | Vertical channel memory and manufacturing method thereof and operating method using the same |
US7811890B2 (en) * | 2006-10-11 | 2010-10-12 | Macronix International Co., Ltd. | Vertical channel transistor structure and manufacturing method thereof |
US7698541B1 (en) * | 2006-10-31 | 2010-04-13 | Netapp, Inc. | System and method for isochronous task switching via hardware scheduling |
KR100843136B1 (ko) * | 2006-11-14 | 2008-07-02 | 삼성전자주식회사 | 비휘발성 메모리에서 연산 처리를 제어하는 장치 및 그방법 |
US8223540B2 (en) | 2007-02-02 | 2012-07-17 | Macronix International Co., Ltd. | Method and apparatus for double-sided biasing of nonvolatile memory |
US7996599B2 (en) | 2007-04-25 | 2011-08-09 | Apple Inc. | Command resequencing in memory operations |
US7975109B2 (en) | 2007-05-30 | 2011-07-05 | Schooner Information Technology, Inc. | System including a fine-grained memory and a less-fine-grained memory |
US7890690B2 (en) * | 2007-06-07 | 2011-02-15 | International Business Machines Corporation | System and method for dual-ported flash memory |
US8099632B2 (en) * | 2007-08-08 | 2012-01-17 | Sandisk Technologies Inc. | Urgency and time window manipulation to accommodate unpredictable memory operations |
US20090039414A1 (en) * | 2007-08-09 | 2009-02-12 | Macronix International Co., Ltd. | Charge trapping memory cell with high speed erase |
US8131912B2 (en) * | 2007-09-27 | 2012-03-06 | Kabushiki Kaisha Toshiba | Memory system |
US8090955B2 (en) * | 2007-10-17 | 2012-01-03 | Micron Technology, Inc. | Boot block features in synchronous serial interface NAND |
TWI353519B (en) * | 2007-11-15 | 2011-12-01 | Genesys Logic Inc | Flash memory device and pipeline access method the |
US8959307B1 (en) | 2007-11-16 | 2015-02-17 | Bitmicro Networks, Inc. | Reduced latency memory read transactions in storage devices |
US8156415B1 (en) | 2007-12-26 | 2012-04-10 | Marvell International Ltd. | Method and system for command queuing in disk drives |
US9098506B2 (en) * | 2008-01-02 | 2015-08-04 | Sandisk Il, Ltd. | Data indexing by local storage device |
US20090171911A1 (en) * | 2008-01-02 | 2009-07-02 | Sandisk Il, Ltd. | Data indexing by local storage device |
US8583878B2 (en) * | 2008-01-02 | 2013-11-12 | Sandisk Il Ltd. | Storage device having direct user access |
WO2009088709A2 (en) * | 2008-01-02 | 2009-07-16 | Sandisk Il Ltd. | Storage device having direct user access |
US8370402B2 (en) * | 2008-01-02 | 2013-02-05 | Sandisk Il Ltd | Dual representation of stored digital content |
US8452927B2 (en) * | 2008-01-02 | 2013-05-28 | Sandisk Technologies Inc. | Distributed storage service systems and architecture |
US8229945B2 (en) | 2008-03-20 | 2012-07-24 | Schooner Information Technology, Inc. | Scalable database management software on a cluster of nodes using a shared-distributed flash memory |
US8732386B2 (en) * | 2008-03-20 | 2014-05-20 | Sandisk Enterprise IP LLC. | Sharing data fabric for coherent-distributed caching of multi-node shared-distributed flash memory |
JP2009272028A (ja) * | 2008-04-07 | 2009-11-19 | Renesas Technology Corp | 半導体集積回路およびその動作方法 |
US8370717B1 (en) | 2008-04-08 | 2013-02-05 | Marvell International Ltd. | Method and apparatus for flexible buffers in an XOR engine |
JP5218228B2 (ja) * | 2008-04-23 | 2013-06-26 | 新東工業株式会社 | 搬送装置及びブラスト加工装置 |
JP5083772B2 (ja) * | 2008-06-27 | 2012-11-28 | 株式会社リコー | 画像形成装置、制御方法及び制御プログラム |
JP2012511789A (ja) * | 2008-12-09 | 2012-05-24 | ラムバス・インコーポレーテッド | 並行且つパイプライン化されたメモリ動作用の不揮発性メモリデバイス |
US7613850B1 (en) | 2008-12-23 | 2009-11-03 | International Business Machines Corporation | System and method utilizing programmable ordering relation for direct memory access |
US8543756B2 (en) * | 2009-02-02 | 2013-09-24 | Marvell World Trade Ltd. | Solid-state drive command grouping |
US8352689B2 (en) * | 2009-11-30 | 2013-01-08 | Lsi Corporation | Command tag checking in a multi-initiator media controller architecture |
US8850103B2 (en) | 2009-08-28 | 2014-09-30 | Microsoft Corporation | Interruptible NAND flash memory |
US9135190B1 (en) | 2009-09-04 | 2015-09-15 | Bitmicro Networks, Inc. | Multi-profile memory controller for computing devices |
US8665601B1 (en) | 2009-09-04 | 2014-03-04 | Bitmicro Networks, Inc. | Solid state drive with improved enclosure assembly |
US8447908B2 (en) | 2009-09-07 | 2013-05-21 | Bitmicro Networks, Inc. | Multilevel memory bus system for solid-state mass storage |
US8560804B2 (en) * | 2009-09-14 | 2013-10-15 | Bitmicro Networks, Inc. | Reducing erase cycles in an electronic storage device that uses at least one erase-limited memory device |
US8868487B2 (en) | 2010-04-12 | 2014-10-21 | Sandisk Enterprise Ip Llc | Event processing in a flash memory-based object store |
US8856593B2 (en) | 2010-04-12 | 2014-10-07 | Sandisk Enterprise Ip Llc | Failure recovery using consensus replication in a distributed flash memory system |
US9164554B2 (en) | 2010-04-12 | 2015-10-20 | Sandisk Enterprise Ip Llc | Non-volatile solid-state storage system supporting high bandwidth and random access |
US8700842B2 (en) | 2010-04-12 | 2014-04-15 | Sandisk Enterprise Ip Llc | Minimizing write operations to a flash memory-based object store |
US9047351B2 (en) | 2010-04-12 | 2015-06-02 | Sandisk Enterprise Ip Llc | Cluster of processing nodes with distributed global flash memory using commodity server technology |
IT1399916B1 (it) * | 2010-04-30 | 2013-05-09 | Balluchi | Dispositivo di memoria ad accesso di registro indicizzato |
US8954385B2 (en) | 2010-06-28 | 2015-02-10 | Sandisk Enterprise Ip Llc | Efficient recovery of transactional data stores |
US20120017035A1 (en) * | 2010-07-16 | 2012-01-19 | Plx Technology, Inc. | Runtime reprogramming of a processor code space memory area |
US8472280B2 (en) | 2010-12-21 | 2013-06-25 | Sandisk Technologies Inc. | Alternate page by page programming scheme |
US8843731B2 (en) | 2010-12-30 | 2014-09-23 | Micron Technology, Inc. | Memory device using extended interface commands |
US8694733B2 (en) | 2011-01-03 | 2014-04-08 | Sandisk Enterprise Ip Llc | Slave consistency in a synchronous replication environment |
US8874515B2 (en) | 2011-04-11 | 2014-10-28 | Sandisk Enterprise Ip Llc | Low level object version tracking using non-volatile memory write generations |
US9240405B2 (en) | 2011-04-19 | 2016-01-19 | Macronix International Co., Ltd. | Memory with off-chip controller |
US8659954B1 (en) * | 2011-09-14 | 2014-02-25 | Adesto Technologies Corporation | CBRAM/ReRAM with improved program and erase algorithms |
US9372755B1 (en) | 2011-10-05 | 2016-06-21 | Bitmicro Networks, Inc. | Adaptive power cycle sequences for data recovery |
JP2012084220A (ja) * | 2011-10-25 | 2012-04-26 | Fujitsu Semiconductor Ltd | メモリシステム |
KR101903095B1 (ko) * | 2011-11-21 | 2018-10-02 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 불휘발성 메모리 장치를 제어하는 컨트롤러의 동작 방법 |
JP2013131192A (ja) * | 2011-12-22 | 2013-07-04 | Fujitsu Ltd | ストレージ装置及びストレージ装置の制御方法 |
US9135064B2 (en) | 2012-03-07 | 2015-09-15 | Sandisk Enterprise Ip Llc | Fine grained adaptive throttling of background processes |
US9043669B1 (en) | 2012-05-18 | 2015-05-26 | Bitmicro Networks, Inc. | Distributed ECC engine for storage media |
KR102083490B1 (ko) * | 2012-08-08 | 2020-03-03 | 삼성전자 주식회사 | 비휘발성 메모리 장치, 이를 포함하는 메모리 시스템 및 비휘발성 메모리 장치의 커맨드 실행 제어 방법 |
US9423457B2 (en) | 2013-03-14 | 2016-08-23 | Bitmicro Networks, Inc. | Self-test solution for delay locked loops |
US9430386B2 (en) | 2013-03-15 | 2016-08-30 | Bitmicro Networks, Inc. | Multi-leveled cache management in a hybrid storage system |
US9734067B1 (en) | 2013-03-15 | 2017-08-15 | Bitmicro Networks, Inc. | Write buffering |
US9971524B1 (en) | 2013-03-15 | 2018-05-15 | Bitmicro Networks, Inc. | Scatter-gather approach for parallel data transfer in a mass storage system |
US9720603B1 (en) | 2013-03-15 | 2017-08-01 | Bitmicro Networks, Inc. | IOC to IOC distributed caching architecture |
US9400617B2 (en) | 2013-03-15 | 2016-07-26 | Bitmicro Networks, Inc. | Hardware-assisted DMA transfer with dependency table configured to permit-in parallel-data drain from cache without processor intervention when filled or drained |
US9842024B1 (en) | 2013-03-15 | 2017-12-12 | Bitmicro Networks, Inc. | Flash electronic disk with RAID controller |
US9934045B1 (en) | 2013-03-15 | 2018-04-03 | Bitmicro Networks, Inc. | Embedded system boot from a storage device |
US9858084B2 (en) | 2013-03-15 | 2018-01-02 | Bitmicro Networks, Inc. | Copying of power-on reset sequencer descriptor from nonvolatile memory to random access memory |
US9672178B1 (en) | 2013-03-15 | 2017-06-06 | Bitmicro Networks, Inc. | Bit-mapped DMA transfer with dependency table configured to monitor status so that a processor is not rendered as a bottleneck in a system |
US10489318B1 (en) | 2013-03-15 | 2019-11-26 | Bitmicro Networks, Inc. | Scatter-gather approach for parallel data transfer in a mass storage system |
US9875205B1 (en) | 2013-03-15 | 2018-01-23 | Bitmicro Networks, Inc. | Network of memory systems |
US9798688B1 (en) | 2013-03-15 | 2017-10-24 | Bitmicro Networks, Inc. | Bus arbitration with routing and failover mechanism |
US9501436B1 (en) | 2013-03-15 | 2016-11-22 | Bitmicro Networks, Inc. | Multi-level message passing descriptor |
US9916213B1 (en) | 2013-03-15 | 2018-03-13 | Bitmicro Networks, Inc. | Bus arbitration with routing and failover mechanism |
US9459810B2 (en) * | 2013-12-30 | 2016-10-04 | Sandisk Technologies Llc | Storage module and method for configuring command attributes |
KR102226367B1 (ko) * | 2014-01-02 | 2021-03-12 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 그것을 포함하는 불휘발성 메모리 시스템 |
US9658787B2 (en) | 2014-02-26 | 2017-05-23 | Macronix International Co., Ltd. | Nonvolatile memory data protection using nonvolatile protection codes and volatile mask codes |
US10025736B1 (en) | 2014-04-17 | 2018-07-17 | Bitmicro Networks, Inc. | Exchange message protocol message transmission between two devices |
US10078604B1 (en) | 2014-04-17 | 2018-09-18 | Bitmicro Networks, Inc. | Interrupt coalescing |
US9952991B1 (en) | 2014-04-17 | 2018-04-24 | Bitmicro Networks, Inc. | Systematic method on queuing of descriptors for multiple flash intelligent DMA engine operation |
US10055150B1 (en) | 2014-04-17 | 2018-08-21 | Bitmicro Networks, Inc. | Writing volatile scattered memory metadata to flash device |
US9811461B1 (en) | 2014-04-17 | 2017-11-07 | Bitmicro Networks, Inc. | Data storage system |
US10042792B1 (en) | 2014-04-17 | 2018-08-07 | Bitmicro Networks, Inc. | Method for transferring and receiving frames across PCI express bus for SSD device |
US10310923B1 (en) | 2014-08-28 | 2019-06-04 | Seagate Technology Llc | Probabilistic aging command sorting |
US9214045B1 (en) | 2014-08-29 | 2015-12-15 | Freescale Semiconductor, Inc. | Flash memory express erase and program |
US9519442B2 (en) * | 2014-10-27 | 2016-12-13 | Aeroflex Colorado Springs Inc. | Method for concurrent system management and error detection and correction requests in integrated circuits through location aware avoidance logic |
CN105988951B (zh) * | 2015-02-12 | 2019-10-15 | 瑞昱半导体股份有限公司 | 存储器控制器及相关的控制方法 |
US9659619B2 (en) | 2015-05-21 | 2017-05-23 | Sandisk Technologies Llc | System and method for memory integrated circuit chip write abort indication |
US9679658B2 (en) * | 2015-06-26 | 2017-06-13 | Intel Corporation | Method and apparatus for reducing read latency for a block erasable non-volatile memory |
US10318193B2 (en) * | 2015-09-14 | 2019-06-11 | Sandisk Technologies Llc | Systems and methods of command authorization |
US10552050B1 (en) | 2017-04-07 | 2020-02-04 | Bitmicro Llc | Multi-dimensional computer storage system |
US10831403B2 (en) | 2017-05-19 | 2020-11-10 | Seagate Technology Llc | Probabalistic command aging and selection |
US10635526B2 (en) | 2017-06-12 | 2020-04-28 | Sandisk Technologies Llc | Multicore on-die memory microcontroller |
US10824376B2 (en) | 2017-12-08 | 2020-11-03 | Sandisk Technologies Llc | Microcontroller architecture for non-volatile memory |
US10622075B2 (en) | 2017-12-12 | 2020-04-14 | Sandisk Technologies Llc | Hybrid microcontroller architecture for non-volatile memory |
KR102560251B1 (ko) * | 2018-06-20 | 2023-07-26 | 삼성전자주식회사 | 반도체 장치 및 반도체 시스템 |
TWI676987B (zh) * | 2018-08-06 | 2019-11-11 | 新唐科技股份有限公司 | 資料處理系統與資料處理方法 |
US10777240B1 (en) | 2019-03-07 | 2020-09-15 | Sandisk Technologies Llc | Efficient control of memory core circuits |
JP2020154525A (ja) * | 2019-03-19 | 2020-09-24 | キオクシア株式会社 | メモリシステムおよび情報処理システム |
JP2020166346A (ja) * | 2019-03-28 | 2020-10-08 | ラピスセミコンダクタ株式会社 | 半導体記憶装置 |
US10971199B2 (en) | 2019-06-20 | 2021-04-06 | Sandisk Technologies Llc | Microcontroller for non-volatile memory with combinational logic |
US11507498B2 (en) | 2020-03-05 | 2022-11-22 | Sandisk Technologies Llc | Pre-computation of memory core control signals |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4151598A (en) * | 1978-03-27 | 1979-04-24 | Honeywell Information Systems Inc. | Priority assignment apparatus for use in a memory controller |
FR2433792A1 (fr) * | 1978-08-17 | 1980-03-14 | Cii Honeywell Bull | Dispositif universel d'echange d'informations entre les memoires d'ordinateur et les dispositifs de traitement qui le compose |
US4649511A (en) * | 1983-07-25 | 1987-03-10 | General Electric Company | Dynamic memory controller for single-chip microprocessor |
US5222046A (en) * | 1988-02-17 | 1993-06-22 | Intel Corporation | Processor controlled command port architecture for flash memory |
US5053990A (en) * | 1988-02-17 | 1991-10-01 | Intel Corporation | Program/erase selection for flash memory |
US5159672A (en) * | 1989-12-28 | 1992-10-27 | Intel Corporation | Burst EPROM architecture |
US5200922A (en) * | 1990-10-24 | 1993-04-06 | Rao Kameswara K | Redundancy circuit for high speed EPROM and flash memory devices |
US5239639A (en) * | 1990-11-09 | 1993-08-24 | Intel Corporation | Efficient memory controller with an independent clock |
US5355464A (en) * | 1991-02-11 | 1994-10-11 | Intel Corporation | Circuitry and method for suspending the automated erasure of a non-volatile semiconductor memory |
US5265059A (en) * | 1991-05-10 | 1993-11-23 | Intel Corporation | Circuitry and method for discharging a drain of a cell of a non-volatile semiconductor memory |
US5263003A (en) * | 1991-11-12 | 1993-11-16 | Allen-Bradley Company, Inc. | Flash memory circuit and method of operation |
US5224070A (en) * | 1991-12-11 | 1993-06-29 | Intel Corporation | Apparatus for determining the conditions of programming circuitry used with flash EEPROM memory |
JP3251968B2 (ja) * | 1992-01-20 | 2002-01-28 | 富士通株式会社 | 半導体記憶装置 |
US5341330A (en) * | 1992-10-30 | 1994-08-23 | Intel Corporation | Method for writing to a flash memory array during erase suspend intervals |
US5353256A (en) * | 1993-06-30 | 1994-10-04 | Intel Corporation | Block specific status information in a memory device |
-
1993
- 1993-06-30 US US08/086,186 patent/US5509134A/en not_active Expired - Lifetime
-
1994
- 1994-06-20 KR KR1019940013909A patent/KR100276162B1/ko not_active IP Right Cessation
- 1994-06-27 JP JP16585994A patent/JP3787167B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH07161195A (ja) | 1995-06-23 |
KR950001486A (ko) | 1995-01-03 |
US5509134A (en) | 1996-04-16 |
KR100276162B1 (ko) | 2000-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3787167B2 (ja) | フラッシュメモリ | |
EP0365188B1 (en) | Central processor condition code method and apparatus | |
US5802343A (en) | Method of prioritizing subsequently received program and erase commands during a block operation for a nonvolatile semiconductor memory | |
US3886523A (en) | Micro program data processor having parallel instruction flow streams for plural levels of sub instruction sets | |
US8234430B2 (en) | Apparatus and method with controlled switch method | |
US7302518B2 (en) | Method and system for managing a suspend request in a flash memory | |
EP0476722B1 (en) | Data processing system | |
US5628026A (en) | Multi-dimensional data transfer in a data processing system and method therefor | |
US5557764A (en) | Interrupt vector method and apparatus | |
KR100272937B1 (ko) | 마이크로프로세서및멀티프로세서시스템 | |
US20100169546A1 (en) | Flash memory access circuit | |
EP1760580A1 (en) | Processing operation information transfer control system and method | |
JP2006092042A (ja) | 情報処理装置及びコンテキスト切り替え方法 | |
JPH0619711B2 (ja) | 優先ブランチ機構を備えたデータ処理システム | |
US5208915A (en) | Apparatus for the microprogram control of information transfer and a method for operating the same | |
KR100534613B1 (ko) | 플래쉬 메모리를 이용한 시스템 부팅 장치 및 그 방법 | |
EP0020972B1 (en) | Program controlled microprocessing apparatus | |
WO2012156995A2 (en) | Fetch less instruction processing (flip) computer architecture for central processing units (cpu) | |
US20120017035A1 (en) | Runtime reprogramming of a processor code space memory area | |
EP4193250B1 (en) | Processing apparatus | |
KR100264758B1 (ko) | 마이크로컴퓨터 | |
JPH0744401A (ja) | 論理集積回路およびそのデータ処理システム | |
CN117083594A (zh) | 用于在矢量处理器中进行去同步化执行的方法和设备 | |
JP3345050B2 (ja) | 二次元配列型メモリシステム | |
JP2002544619A (ja) | 専用ポインタメモリを使用するオブジェクト指向処理 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050301 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050524 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050809 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051109 |
|
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: 20060307 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060324 |
|
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: 20100331 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100331 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110331 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |