JPH07161195A - フラッシュメモリ - Google Patents

フラッシュメモリ

Info

Publication number
JPH07161195A
JPH07161195A JP16585994A JP16585994A JPH07161195A JP H07161195 A JPH07161195 A JP H07161195A JP 16585994 A JP16585994 A JP 16585994A JP 16585994 A JP16585994 A JP 16585994A JP H07161195 A JPH07161195 A JP H07161195A
Authority
JP
Japan
Prior art keywords
command
array
array controller
user interface
flash
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.)
Granted
Application number
JP16585994A
Other languages
English (en)
Other versions
JP3787167B2 (ja
Inventor
Mickey L Fandrich
ミッキイ・リー・フランドリッチ
Richard J Durante
リチャード・ジョセフ・ドゥラント
Keith F Underwood
キース・フレドリック・アンダーウッド
Rodney R Rozman
ロドニイ・アール・ロズマン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of JPH07161195A publication Critical patent/JPH07161195A/ja
Application granted granted Critical
Publication of JP3787167B2 publication Critical patent/JP3787167B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45508Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
    • G06F9/45512Command shells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits

Abstract

(57)【要約】 (修正有) 【目的】 アプリケーションで使用する際に劇的な柔軟
性を提供し、行う動作の全体的なスループットを増大す
るフラッシュメモリを制御するチップメカニズムを提供
する。 【構成】 フラッシュメモリシステム310にはユーザ
インターフェイス40とアレィ制御器50を含める。ユ
ーザインターフェイスはプロセッサにより出されたユー
ザコマンドを受取り、実行するため複数のコマンドを待
ち合わせさせる機能を有している。ユーザインターフェ
イスは更に実行するコマンドの優先順位を制御する調整
器としても機能する。アレィ制御器はプログラムや消去
などのフラッシュアレィ上での動作を行う。アレィ制御
器はユーザがプログラム可能なプログラムメモリを有す
る汎用プロセッサである。プログラムメモリはアレィ制
御器で実行できる1つないし複数のアルゴリズムを格納
する。アルゴリズムはユーザインターフェイスで受け取
ったコマンドに従って選択する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はフラッシュメモリに関
し、特にフラッシュメモリ動作を制御する装置と方法に
関する。
【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のブロック図を示す。フラッシュメモリシステム 3
10はフラッシュセルアレイ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はオプション的にユーザバス 3
06を通して書込みサイクルを生成してプログラムデータ
をページバッファ回路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)を含んでいる。各々のBS
Rはフラッシュセルアレイ20のブロックの1つに対応し
ている。アレイコントローラ50はブロック状態レジスタ
内の状態ビットを維持してフラッシュセルアレイ20の各
々のブロックの状態を示す。CPU 302はユーザバス30
6を通して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で処理するため一時待ち行列 2
10に与える。特に一時待ち行列 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
つの信号を出す。代わりにアレイコントローラはユーザ
インターフェイスに対してアレイコントローラが装置の
制御を有して走っているかどうかを示す信号FDRD
Y、アレイコントローラが一次待ち行列にあるコマンド
ないし二次待ち行列にある割込みコマンドを実行してい
るかを示すFDNXTCMD、現在行っている動作が完
了したことを示すFDOPDONE、動作はうまく一時
的に停止し、ユーザはメモリ装置の制御をして読取り動
作などの動作を行うことができることを示すFDIDL
Eを通信する。
【0048】先に述べたように、ユーザインターフェイ
スはマイクロプロセッサバス信号により駆動されるが、
アレイコントローラはフラッシュシステム内にある発振
器により駆動される。特に発振器位相生成器ブロック 3
05はアレイコントローラ回路のために離散クロック信号
として用いられる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により決定されたアドレスを受け
取り、命令出力をラッチする命令レジスタ 350に命令を
出力する。動作で更に柔軟性をもたらすため、命令レジ
スタ 330は更にページバッファ 310を通して受け取る命
令をラッチする機能を持っている。その命令は次にAL
U 370により実行する。ALU 370は全ての演算、論理
機能並びにアレイコントローラのためのシフト動作を行
い、またバイトと語動作の両方を扱うことができる。実
行する命令は命令レジスタ 350を通してプログラムメモ
リ 320から得る。ALUへの入力データは、ページバッ
ファ及び入出力インターフェイスを初めとする複数のソ
ースから発することができる。
【0055】レジスタファイル 360は3つのポートのS
RAMとして構成され、アレイコントローラが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ビットが設定されている場合、CDCMD
RDYが設定された後最初の命令サイクルで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、2
3に単純化した流れ図で例示する。説明のために消去過
程は全てのブロックデータが「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 コンピュータシステム 302 CPU 304 主記憶装置 306 ユーザバス 310 フラッシュメモリシステム 20 フラッシュセルアレイ 30 読取り/書込み経路回路 40 ユーザインターフェイス回路 50 アレイコントローラ 60 制御アクセス回路 70 ページバッファ回路 80-85 制御レジスタ回路 200 コマンド状態マシン 210 一時待ち行列 230 動作待ち行列 250 ページバッファカウンタ 260 状態レジスタ
─────────────────────────────────────────────────────
【手続補正書】
【提出日】平成6年10月21日
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】図面の簡単な説明
【補正方法】変更
【補正内容】
【図面の簡単な説明】
【図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状態レジスタ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 リチャード・ジョセフ・ドゥラント アメリカ合衆国 95621 カリフォルニア 州・シトラス ハイツ・ローペ レイン・ ナンバー21・7733 (72)発明者 キース・フレドリック・アンダーウッド アメリカ合衆国 95662 カリフォルニア 州・オレンジヴェイル・グリーンバック レイン ナンバー165・9175 (72)発明者 ロドニイ・アール・ロズマン アメリカ合衆国 95667 カリフォルニア 州・プレイサーヴィル・アロウビー ドラ イブ・1212

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 バスによりメモリに接続されているプロ
    セッサを登載したシステムのそのバスに接続されたフラ
    ッシュメモリアレイにおいて、 フラッシュメモリにより実行するコマンドを受け取るユ
    ーザインターフェイスであって、実行している現在コマ
    ンドを含め1つないし複数のコマンドを格納するコマン
    ド待ち行列を有するユーザインターフェイスと、 前記ユーザインターフェイスに接続されてコマンドを受
    け取って実行し、アレイの読取り、消去、プログラムを
    行う電源を制御するアレイコントローラと、 前記アレイコントローラに接続されてアレイコントロー
    ラの状態を記憶する複数のレジスタと、 設定されるとコマンドの実行中に割込みの発行を可能に
    する割込み状態ビットとからなり、 割込み状態ビットが設定され、コマンド待ち行列が実行
    している現在コマンドと実行する次のコマンドを含む場
    合、前記ユーザインターフェイスは割込みをアレイコン
    トローラに出し、前記アレイコントローラはアレイを所
    定の状態にし、アレイコントローラの状態を保存し、次
    のコマンドを実行し、レジスタに記憶された状態を回復
    し、現在コマンドの実行を続行し、 割り込みが、フラッシュアレイを変改することなしにフ
    ラッシュメモリシステムによって処理される、前記バス
    に接続された前記フラッシュメモリ・アレイシステム。
  2. 【請求項2】 バスによりメモリに接続されているプロ
    セッサを登載したシステムそのバスに接続されたフラッ
    シュメモリアレイにおいて、 データを記憶する複数のフラッシュセルからなるフラッ
    シュアレイと、 フラッシュメモリシステムにより実行するコマンドを受
    け取るユーザインターフェイスであって、実行している
    現在コマンドを含め1つないし複数のコマンドを格納す
    るコマンド待ち行列を有し、かつ実行したときにコマン
    ドを行うコードの位置を識別するコマンドアドレスを生
    成するユーザインターフェイスと、 前記ユーザインターフェイスに接続されてコマンドアド
    レスを受け取るアレイコントローラであって、マイクロ
    コントローラとプログラムメモリとを有し、前記プログ
    ラムメモリはユーザがプログラム可能で、前記コマンド
    アドレスは前記マイクロコントローラが実行するプログ
    ラムメモリ内のコードの位置を識別し、前記マイクロコ
    ントローラはプログラムメモリ内のコードに従ってフラ
    ッシュアレイ上で書込み、消去動作を行うアレイコント
    ローラと、からなり、プログラムして前記マイクロコン
    トローラにより行う複数の機能を行うことができ、柔軟
    性を増大してプロセッサからのフラッシュアレイの制御
    をオフロードする前記バスに接続されたフラッシュメモ
    リシステム。
JP16585994A 1993-06-30 1994-06-27 フラッシュメモリ Expired - Fee Related JP3787167B2 (ja)

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 true JPH07161195A (ja) 1995-06-23
JP3787167B2 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)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0997205A (ja) * 1995-09-28 1997-04-08 Canon Inc フラッシュrom管理方法及び装置及びコンピュータ制御装置
US7193894B2 (en) 1995-01-31 2007-03-20 Renesas Technology Corp. Clock synchronized nonvolatile memory device
JP2007519083A (ja) * 2003-10-28 2007-07-12 サンディスク コーポレイション 不揮発性メモリシステムのための内部メンテナンススケジュール要求
JP2008052895A (ja) * 2006-08-22 2008-03-06 Samsung Electronics Co Ltd 不揮発性データ保存装置のプログラミング方法及びその装置
JP2008077468A (ja) * 2006-09-22 2008-04-03 Tdk Corp メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP2008538045A (ja) * 2005-03-18 2008-10-02 イナパック テクノロジー インコーポレイテッド 集積回路試験モジュール
JP2009123185A (ja) * 2007-11-15 2009-06-04 Genesys Logic Inc フラッシュメモリ装置及びそのアクセス方法
JP2011513804A (ja) * 2008-01-02 2011-04-28 サンディスク アイエル リミテッド 直接ユーザアクセスを受ける記憶デバイス
JP2011243274A (ja) * 2010-04-30 2011-12-01 Micron Technology Inc メモリデバイスに対するインデックスレジスタアクセス
JP2012084220A (ja) * 2011-10-25 2012-04-26 Fujitsu Semiconductor Ltd メモリシステム
JP2012511789A (ja) * 2008-12-09 2012-05-24 ラムバス・インコーポレーテッド 並行且つパイプライン化されたメモリ動作用の不揮発性メモリデバイス
JP2013503412A (ja) * 2009-08-28 2013-01-31 マイクロソフト コーポレーション 割込み可能なnand型フラッシュ・メモリ
JP2013109823A (ja) * 2011-11-21 2013-06-06 Samsung Electronics Co Ltd 不揮発性メモリ装置及び不揮発性メモリ装置を制御するコントローラの動作方法
JP2013131192A (ja) * 2011-12-22 2013-07-04 Fujitsu Ltd ストレージ装置及びストレージ装置の制御方法

Families Citing this family (207)

* Cited by examiner, † Cited by third party
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.
GB2283342B (en) * 1993-10-26 1998-08-12 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ファイル装置
US5682496A (en) 1995-02-10 1997-10-28 Micron Quantum Devices, Inc. Filtered serial event controlled command port for memory
US6108237A (en) 1997-07-17 2000-08-22 Micron Technology, Inc. Fast-sensing amplifier for flash 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 株式会社ルネサステクノロジ 外部記憶装置およびそのメモリアクセス制御方法
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
US5801985A (en) * 1995-07-28 1998-09-01 Micron Technology, Inc. Memory system having programmable control parameters
US5890193A (en) * 1995-07-28 1999-03-30 Micron Technology, Inc. Architecture for state machine for controlling internal operations of flash memory
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
JP4015701B2 (ja) * 1996-05-22 2007-11-28 マクロニクス インターナショナル カンパニー リミテッド 集積回路メモリ
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
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
US6035401A (en) 1997-02-03 2000-03-07 Intel Corporation Block locking apparatus for flash memory
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
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
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
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
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
US6732306B2 (en) 2000-12-26 2004-05-04 Intel Corporation Special programming mode with hashing
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
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.
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 삼성전자주식회사 플래시 메모리의 데이터 관리 장치 및 방법
US7133313B2 (en) * 2004-04-26 2006-11-07 Macronix International Co., Ltd. Operation scheme with 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
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
US7075828B2 (en) * 2004-04-26 2006-07-11 Macronix International Co., Intl. Operation scheme with charge balancing erase for 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
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
US20060007732A1 (en) * 2004-07-06 2006-01-12 Macronix International Co., Ltd. Charge trapping non-volatile memory 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
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
US8482052B2 (en) 2005-01-03 2013-07-09 Macronix International Co., Ltd. Silicon on insulator and thin film transistor bandgap engineered split gate memory
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
US7463521B2 (en) * 2005-04-01 2008-12-09 Sandisk Corporation Method for non-volatile memory with managed execution of cached data
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
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 주식회사 하이닉스반도체 멀티-플레인 구조를 갖는 비휘발성 메모리 장치의 프로그램방법
US11948629B2 (en) 2005-09-30 2024-04-02 Mosaid Technologies Incorporated Non-volatile memory device with concurrent bank operations
US7652922B2 (en) 2005-09-30 2010-01-26 Mosaid Technologies Incorporated Multiple independent serial link memory
WO2007036050A1 (en) 2005-09-30 2007-04-05 Mosaid Technologies Incorporated Memory with output control
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
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
US8046524B2 (en) * 2007-08-08 2011-10-25 Sandisk Technologies Inc. Managing processing delays in an isochronous system
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
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
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
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
US9098506B2 (en) * 2008-01-02 2015-08-04 Sandisk Il, Ltd. Data indexing by local storage device
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
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
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 株式会社リコー 画像形成装置、制御方法及び制御プログラム
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
US8200857B2 (en) * 2009-11-30 2012-06-12 Lsi Corporation Coalescing multiple contexts into a single data transfer in a media controller architecture
US8665601B1 (en) 2009-09-04 2014-03-04 Bitmicro Networks, Inc. Solid state drive with improved enclosure assembly
US9135190B1 (en) 2009-09-04 2015-09-15 Bitmicro Networks, Inc. Multi-profile memory controller for computing devices
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
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
US9164554B2 (en) 2010-04-12 2015-10-20 Sandisk Enterprise Ip Llc Non-volatile solid-state storage system supporting high bandwidth and random access
US8856593B2 (en) 2010-04-12 2014-10-07 Sandisk Enterprise Ip Llc Failure recovery using consensus replication in a distributed flash memory system
US8725951B2 (en) 2010-04-12 2014-05-13 Sandisk Enterprise Ip Llc Efficient flash memory-based object store
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
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
US9842024B1 (en) 2013-03-15 2017-12-12 Bitmicro Networks, Inc. Flash electronic disk with RAID controller
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
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
US9734067B1 (en) 2013-03-15 2017-08-15 Bitmicro Networks, Inc. Write buffering
US9720603B1 (en) 2013-03-15 2017-08-01 Bitmicro Networks, Inc. IOC to IOC distributed caching architecture
US9430386B2 (en) 2013-03-15 2016-08-30 Bitmicro Networks, Inc. Multi-leveled cache management in a hybrid storage system
US9934045B1 (en) 2013-03-15 2018-04-03 Bitmicro Networks, Inc. Embedded system boot from a storage device
US10120694B2 (en) 2013-03-15 2018-11-06 Bitmicro Networks, Inc. Embedded system boot from a storage device
US9971524B1 (en) 2013-03-15 2018-05-15 Bitmicro Networks, Inc. Scatter-gather approach for parallel data transfer in a mass storage system
US10489318B1 (en) 2013-03-15 2019-11-26 Bitmicro Networks, Inc. Scatter-gather approach for parallel data transfer in a mass storage system
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
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
US10042792B1 (en) 2014-04-17 2018-08-07 Bitmicro Networks, Inc. Method for transferring and receiving frames across PCI express bus for SSD device
US9811461B1 (en) 2014-04-17 2017-11-07 Bitmicro Networks, Inc. Data storage system
US10055150B1 (en) 2014-04-17 2018-08-21 Bitmicro Networks, Inc. Writing volatile scattered memory metadata to flash 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)

* Cited by examiner, † Cited by third party
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
US5053990A (en) * 1988-02-17 1991-10-01 Intel Corporation Program/erase selection for flash memory
US5222046A (en) * 1988-02-17 1993-06-22 Intel Corporation Processor controlled command port architecture 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

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7193894B2 (en) 1995-01-31 2007-03-20 Renesas Technology Corp. Clock synchronized nonvolatile memory device
US7286397B2 (en) 1995-01-31 2007-10-23 Renesas Technology Corporation Clock synchronized nonvolatile memory device
JP2008217988A (ja) * 1995-01-31 2008-09-18 Solid State Storage Solutions Llc 不揮発性メモリ装置
JPH0997205A (ja) * 1995-09-28 1997-04-08 Canon Inc フラッシュrom管理方法及び装置及びコンピュータ制御装置
JP4822440B2 (ja) * 2003-10-28 2011-11-24 サンディスク コーポレイション 不揮発性メモリシステムのための内部メンテナンススケジュール要求
JP2007519083A (ja) * 2003-10-28 2007-07-12 サンディスク コーポレイション 不揮発性メモリシステムのための内部メンテナンススケジュール要求
JP2008538045A (ja) * 2005-03-18 2008-10-02 イナパック テクノロジー インコーポレイテッド 集積回路試験モジュール
JP2008052895A (ja) * 2006-08-22 2008-03-06 Samsung Electronics Co Ltd 不揮発性データ保存装置のプログラミング方法及びその装置
JP2008077468A (ja) * 2006-09-22 2008-04-03 Tdk Corp メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP2009123185A (ja) * 2007-11-15 2009-06-04 Genesys Logic Inc フラッシュメモリ装置及びそのアクセス方法
JP2011513804A (ja) * 2008-01-02 2011-04-28 サンディスク アイエル リミテッド 直接ユーザアクセスを受ける記憶デバイス
JP2012511789A (ja) * 2008-12-09 2012-05-24 ラムバス・インコーポレーテッド 並行且つパイプライン化されたメモリ動作用の不揮発性メモリデバイス
JP2013503412A (ja) * 2009-08-28 2013-01-31 マイクロソフト コーポレーション 割込み可能なnand型フラッシュ・メモリ
JP2011243274A (ja) * 2010-04-30 2011-12-01 Micron Technology Inc メモリデバイスに対するインデックスレジスタアクセス
JP2012084220A (ja) * 2011-10-25 2012-04-26 Fujitsu Semiconductor Ltd メモリシステム
JP2013109823A (ja) * 2011-11-21 2013-06-06 Samsung Electronics Co Ltd 不揮発性メモリ装置及び不揮発性メモリ装置を制御するコントローラの動作方法
JP2013131192A (ja) * 2011-12-22 2013-07-04 Fujitsu Ltd ストレージ装置及びストレージ装置の制御方法

Also Published As

Publication number Publication date
KR950001486A (ko) 1995-01-03
JP3787167B2 (ja) 2006-06-21
KR100276162B1 (ko) 2000-12-15
US5509134A (en) 1996-04-16

Similar Documents

Publication Publication Date Title
JP3787167B2 (ja) フラッシュメモリ
EP0365188B1 (en) Central processor condition code method and apparatus
US9032185B2 (en) Active memory command engine and method
EP0870226B1 (en) Risc microprocessor architecture
EP0476722B1 (en) Data processing system
EP0138419B1 (en) Central processing unit for a digital computer
US6976158B2 (en) Repeat instruction with interrupt
US4558411A (en) Polymorphic programmable units employing plural levels of sub-instruction sets
EP0330226B1 (en) Apparatus of and method for executing subprogram in bank switching data processing system
US5557764A (en) Interrupt vector method and apparatus
US20020188830A1 (en) Bit replacement and extraction instructions
US20100169546A1 (en) Flash memory access circuit
US4348720A (en) Microcomputer arranged for direct memory access
JPS63226732A (ja) シーケンサ回路
EP0338317B1 (en) Information processor operative both in direct mapping and in bank mapping and the method of switching the mapping schemes
US20030028696A1 (en) Low overhead interrupt
JPH0619711B2 (ja) 優先ブランチ機構を備えたデータ処理システム
JPS6362778B2 (ja)
US20230315456A1 (en) Processing apparatus
JPH10124474A (ja) マイクロコンピュータ
JPH052481A (ja) 演算制御回路
JPH0243626A (ja) コンピュータ・プロセッサの実行速度を制御する装置
JPH11134192A (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