JP2010224806A - コントローラ及び半導体記憶装置 - Google Patents
コントローラ及び半導体記憶装置 Download PDFInfo
- Publication number
- JP2010224806A JP2010224806A JP2009070582A JP2009070582A JP2010224806A JP 2010224806 A JP2010224806 A JP 2010224806A JP 2009070582 A JP2009070582 A JP 2009070582A JP 2009070582 A JP2009070582 A JP 2009070582A JP 2010224806 A JP2010224806 A JP 2010224806A
- Authority
- JP
- Japan
- Prior art keywords
- semiconductor memory
- nonvolatile semiconductor
- accessing
- instruction
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3877—Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor
- G06F9/3879—Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7202—Allocation control and policies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7206—Reconfiguration of flash memory system
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
【課題】不揮発性半導体メモリへアクセスするために必要なCPUの処理を軽減し、コマンドが入力されてから不揮発性半導体メモリへのアクセスが終了するまでの時間を短縮することができるコントローラを提供する。
【解決手段】フラッシュメモリ10へアクセスするためのシーケンスをコード化した命令コードを格納した命令テーブルメモリ23と、フラッシュメモリ10へアクセスするために必要な命令コードが格納された、命令テーブルメモリ23内の読み出し番地が設定されるプログラムカウンタ22と、命令テーブルメモリ23から読み出された命令コードをデコードしてデコード信号を出力するデコーダ24と、デコーダ24から出力されたデコード信号に基づいて、フラッシュメモリ10へのアクセスを実行する実行部25とを備える。
【選択図】図1
【解決手段】フラッシュメモリ10へアクセスするためのシーケンスをコード化した命令コードを格納した命令テーブルメモリ23と、フラッシュメモリ10へアクセスするために必要な命令コードが格納された、命令テーブルメモリ23内の読み出し番地が設定されるプログラムカウンタ22と、命令テーブルメモリ23から読み出された命令コードをデコードしてデコード信号を出力するデコーダ24と、デコーダ24から出力されたデコード信号に基づいて、フラッシュメモリ10へのアクセスを実行する実行部25とを備える。
【選択図】図1
Description
本発明は、不揮発性半導体メモリの動作を制御するコントローラ、及び不揮発性半導体メモリとそのコントローラを含む半導体記憶装置に関し、例えばフラッシュメモリの動作を制御するコントローラ、及びフラッシュメモリとそのコントローラを含む半導体記憶装置に関するものである。
従来の手法による、フラッシュメモリの動作を制御するコントローラを含む半導体記憶装置における動作の一例を以下に説明する。フラッシュメモリとコントローラを含む半導体記憶装置には、ホスト機器が接続される。ホスト機器は、半導体記憶装置にコマンドやデータを送信し、半導体記憶装置との間でデータの授受を行う。ホスト機器としては、例えば、デジタルカメラ、携帯電話機、及びノート型パーソナルコンピュータなどの携帯型電子機器がある。
ホスト機器からコントローラにコマンドが発行されると、コントローラ内のコマンドラッチ回路にコマンドが一時的に記憶される。続いて、コントローラ内のCPU(Central Processing Unit)がそのコマンドを読み取り、フラッシュメモリへアクセスするために必要なシーケンスをコントローラ内の複数のレジスタに設定する。さらに、CPUは、複数のレジスタに対応する有効ビットレジスタを設定し、さらにコントローラ内のデータRAMの利用有無を設定する。
全ての設定が完了すると、ダイレクトメモリアクセス(以下、DMAと記す)スタートが実施され、フラッシュメモリへのアクセスが開始される。このアクセスが終了すると、CPUにアクセス終了が通知される。続けて、フラッシュメモリへアクセスする場合、前記複数のレジスタ及び有効ビットレジスタを再設定する。全てのレジスタの設定が完了すると、DMAスタートが実施され、フラッシュメモリへ次のアクセスが開始される。DMAとは、CPUを介さずに、ホスト機器等の装置とメモリデバイスとが、直接、データの授受を行う処理をいう。
フラッシュメモリへの必要なシーケンスが完了すると、CPUはホスト機器側にレディ信号を返し、次のコマンドの入力を待つ待機状態になる。その後、ホスト機器から次のコマンドが発行されると、コントローラは前述と同様の動作を繰り返す。
前述した従来手法では、フラッシュメモリへ発行する多種多様なコマンドシーケンスに合わせて、CPUが各レジスタを設定する必要がある。ホスト機器からの1つのコマンド要求に対して、フラッシュメモリへのアクセスが複数シーケンス必要な場合もしばしばあり、その度にCPUが各レジスタを設定する時間が必要となる。この結果、CPUの占有時間が支配的となり、フラッシュメモリへのアクセス性能が悪くなるという問題が生じている。詳述すると、ホスト機器がコントローラにアクセスを開始してから、すなわちコントローラにコマンドが入力されてから、実際にフラッシュメモリへのアクセスが終了するまでの時間が長くなるという問題が生じている。図7の(D)に、従来例の半導体記憶装置における各部のアクセス時間を示す。
なお、例えば特許文献1には、メモリセルアレイにアクセスするために必要な情報を設定する複数のレジスタと、レジスタに設定された情報に基づいてメモリセルアレイにアクセスするシーケンサを備えた不揮発性半導体記憶装置が開示されている。
本発明は、不揮発性半導体メモリへアクセスするために必要なCPUの処理を軽減し、コマンドが入力されてから不揮発性半導体メモリへのアクセスが終了するまでの時間を短縮することができるコントローラ及び半導体記憶装置を提供する。
本発明の第1実施態様のコントローラは、不揮発性半導体メモリへアクセスするためのシーケンスをコード化した命令コードを格納した命令テーブルメモリと、前記不揮発性半導体メモリへアクセスするために必要な命令コードが格納された、前記命令テーブルメモリ内の読み出し番地が設定されるプログラムカウンタと、前記命令テーブルメモリから読み出された命令コードをデコードして第1デコード信号を出力する第1デコーダと、前記第1デコーダから出力された前記第1デコード信号に基づいて、前記不揮発性半導体メモリへのアクセスを実行する第1実行部とを具備することを特徴とする。
本発明の第2実施態様のコントローラは、不揮発性半導体メモリへアクセスするための情報が記憶されるレジスタと、外部から入力されたコマンドをデコードしてデコード信号を出力するデコーダと、前記デコーダから出力された前記デコード信号に基づいて、前記レジスタに前記不揮発性半導体メモリへアクセスするための前記情報を設定する実行部と、前記レジスタに記憶された前記情報に従って、前記不揮発性半導体メモリにアクセスする入出力制御回路とを具備することを特徴とする。
本発明の第3実施態様の半導体記憶装置は、電気的にデータの書き換えが可能な不揮発性半導体メモリと、前記不揮発性半導体メモリの動作を制御するコントローラとを有し、前記コントローラは、前記不揮発性半導体メモリへアクセスするためのシーケンスをコード化した命令コードを格納した命令テーブルメモリと、前記不揮発性半導体メモリへアクセスするために必要な命令コードが格納された、前記命令テーブルメモリ内の読み出し番地が設定されるプログラムカウンタと、前記命令テーブルメモリから読み出された命令コードをデコードしてデコード信号を出力するデコーダと、前記デコーダから出力された前記デコード信号に基づいて、前記不揮発性半導体メモリへのアクセスを実行する実行部とを具備することを特徴とする。
本発明によれば、不揮発性半導体メモリへアクセスするために必要なCPUの処理を軽減し、コマンドが入力されてから不揮発性半導体メモリへのアクセスが終了するまでの時間を短縮することができるコントローラ及び半導体記憶装置を提供可能である。
以下、図面を参照して本発明の実施形態について説明する。実施形態は、全てコントローラを含む半導体記憶装置について説明する。説明に際し、全図にわたり、共通する部分には共通する参照符号を付す。
[第1実施形態]
まず、本発明の第1実施形態の半導体記憶装置について説明する。
まず、本発明の第1実施形態の半導体記憶装置について説明する。
図1は、第1実施形態の半導体記憶装置の構成を示すブロック図である。
図示するように、半導体記憶装置100は、電気的にデータの書き換えが可能な不揮発性半導体メモリ、例えばフラッシュメモリ10と、コントローラ20を備える。ここでは、不揮発性半導体メモリとして、フラッシュメモリ10を用いた例を示すが、その他の不揮発性半導体メモリを用いてもよい。フラッシュメモリ10としては、例えばNAND型フラッシュメモリあるいはNOR型フラッシュメモリなどを用いることができる。コントローラ20は、ホスト機器200からコマンドやデータ等の信号を受け取り、フラッシュメモリ10の動作を制御する。
コントローラ20は、コマンドラッチ回路21、プログラムカウンタ(PC)22、命令テーブルメモリ23、デコーダ24、実行部25、入出力制御回路26、データRAM27、CPU28、及びバス29を含む。
コマンドラッチ回路21は、ホスト機器200から出力されたコマンドやデータ等の信号を一時的に記憶する。命令テーブルメモリ23には、フラッシュメモリ10へアクセスするための多種多様なシーケンスをコード化した命令コードが予め格納されている。多種多様なシーケンスのコード化とは、例えば、ホスト機器200からの1つのライトコマンド要求に対して、フラッシュメモリ10に、イレースコマンド→ステータスリードコマンド→ライトコマンド→ステータスリードコマンドと一連のコマンドを必要とした場合、これを1つのシーケンスとしてコード化することである。このコード化によって生成した命令コードをセットするだけで、フラッシュメモリ10へ一連のコマンドを連続して実行できる。
プログラムカウンタ22には、命令テーブルメモリ23内における、フラッシュメモリ10へアクセスするために必要な命令コードが入ったスタート番地が設定される。
デコーダ24は、命令テーブルメモリ23から読み出された命令コードを、実行部25にて実行できるようにデコードしてデコード信号を出力する。実行部25は、デコーダ24からデコード信号を受け取り、このデコード信号に基づいてコマンドを認識し、入出力制御回路26を制御する。
入出力制御回路26は、実行部25による制御によりスラッシュメモリ10へのアクセス、すなわち書き込み、消去、及び読み出しを実行する。CPU28は、コントローラ20内の各部の動作を制御する。バス29は、CPU28とコントローラ20内の各部との間、及びコントローラ20内の各部間を結ぶ共通伝送路である。
以下に、第1実施形態の半導体記憶装置の動作を説明する。
図2は、第1実施形態の半導体記憶装置の動作を示すフローチャートである。
まず、ホスト機器200から半導体記憶装置100内のコントローラ20へコマンドが発行される(ステップS1)と、コマンドラッチ回路21にコマンドが一時的に記憶される(ステップS2)。
CPU28は、コマンドラッチ回路21に記憶されたコマンドを読み取り、コマンドをデコードする(ステップS3)。続いて、CPU28は、コマンドのデコード結果に基づいて、命令テーブルメモリ23内のスタート番地をプログラムカウンタ22に設定する(ステップS4)。命令テーブルメモリ23には、フラッシュメモリ10に対して発行される全ての必要なコマンドをコード化した命令コードが格納されている。スタート番地は、フラッシュメモリ10へアクセスするために必要な命令コードが入った記憶位置を指定するものである。
続いて、CPU28はDMAスタートを実施する(ステップS5)。これにより、CPU28の処理は終了する。
次に、命令テーブルメモリ23から命令コードがデコーダ24にフェッチされ(ステップS6)、デコーダ24により命令コードがデコードされてデコード信号が実行部25へ出力される(ステップS7)。
続いて、実行部25は、デコーダ24からデコード信号を受け取り、このデコード信号に基づいてコマンドを認識し、入出力制御回路26を制御する。そして、入出力制御回路26によりフラッシュメモリ10へのアクセスが実行される(ステップS8)。すなわち、所望のコマンドシーケンスがフラッシュメモリ10へ発行される。
これにより、フラッシュメモリ10では、コマンドが実行される(ステップS9)。コマンドの実行が終了すると、コントローラ20におけるステップS10に移行する。
ステップS10において、フラッシュメモリ10に続けてアクセスする必要がある場合(ステップS10のYes)、プログラムカウンタ22に設定された番地がインクリメントされる(ステップS11)。
続いて、ステップS6へ戻り、ステップS6以降の処理が繰り返される。すなわち、プログラムカウンタ22に設定された番地に基づいて、命令テーブルメモリ23から命令コードがデコーダ24にフェッチされる。その後、前述と同様に、デコーダ24により命令コードがデコードされ(ステップS7)、実行部25、及び入出力制御回路26によりフラッシュメモリ10へのアクセスが実行される(ステップS8)。これにより、CPU28が処理を行うこと無く、フラッシュメモリ10へのアクセスを繰り返し実行することができる。
また、データRAM27の出力が必要な場合でも、それ専用の命令コードを命令テーブルメモリ23に格納しておけば、CPU28の処理を伴うこと無く、データRAM27の出力を実行できる。
また、フラッシュメモリ10に続けてアクセスする必要がない場合(ステップS10のNo)、すなわちフラッシュメモリ10への必要なシーケンスが完了すると、ホスト機器200側にレディ信号を送信し、ホスト機器200はレディ信号を受信する(ステップS12)。そして、コントローラ20は、次のコマンド入力を待つ待機状態になる。ホスト機器200から次のコマンドが発行されると、コントローラ20は前述と同様の動作を繰り返す。
第1実施形態では、フラッシュメモリ10へアクセスするための多種多様なシーケンスをコード化し、コード化したシーケンスに合わせて設定した命令コードを命令テーブルメモリ23に予め準備する。これにより、フラッシュメモリ10へのアクセスシーケンスが変わる度に、プログラムカウンタ22に格納するスタート番地を更新するだけで、フラッシュメモリ10へのアクセスが柔軟に対応可能である。なお、場合によっては、命令テーブルメモリ23の内容も変更可能である、すなわち命令テーブルメモリ23内の命令コードを更新することができる。また、フラッシュメモリ10へアクセスするための多種多様なシーケンスをコード化した命令コードと、その命令コードを自由な順番で連続してアクセスするための命令コードを、命令テーブルメモリ23に予め格納してもよい。
以上により、コントローラ20へのコマンド入力後、CPU28の占有時間を大幅に削減でき、フラッシュメモリ10へのアクセス性能が格段に向上する。図7の(A)に、第1実施形態の半導体記憶装置100におけるアクセス時間を示す。この図からわかるように、ホスト機器200によるコントローラ20へのアクセス時間(ホストアクセス時間)の後のCPU28による処理時間(CPUアクセス時間)が短縮できる。さらに、コントローラ20によるフラッシュメモリ10へのアクセス時間(フラッシュメモリアクセス時間)(1)の後で、フラッシュメモリアクセス時間(2)前のCPUアクセス時間が削除できる。このため、フラッシュメモリへのアクセス性能を著しく向上できる。ここで、CPUアクセス時間とは、CPU28がコマンドをデコードし、そのデコード結果に基づいてプログラムカウンタ22にスタート番地を設定するまでに要する時間をさす。
詳述すると、ホスト機器200がコントローラ20にアクセスを開始してから、すなわちコントローラ20にコマンドが入力されてから、実際にフラッシュメモリ10へのアクセスが終了するまでの時間を短縮できる。ここでは、2回目にフラッシュメモリにアクセスする前に、CPUの処理が必要ないため、連続してフラッシュメモリにアクセスする場合におけるアクセス時間を大きく短縮することができる。以上により、第1実施形態の半導体記憶装置における書き込み、消去、及び読み出しに要する時間を低減することが可能である。
[第2実施形態]
次に、本発明の第2実施形態の半導体記憶装置について説明する。
次に、本発明の第2実施形態の半導体記憶装置について説明する。
図3は、第2実施形態の半導体記憶装置の構成を示すブロック図である。この第2実施形態は、図1に示した前記第1実施形態の構成において、コマンドラッチ回路21に記憶されたコマンドに基づいて、プログラムカウンタ22にスタート番地を設定するためのデコーダ30と実行部31をさらに備える。その他の構成は、前記第1実施形態の構成と同様である。
図3に示すように、コマンドラッチ回路21とバス29との間には、デコーダ30と実行部31が配置されている。実行部31とプログラムカウンタ22及び命令テーブルメモリ23との間には専用配線32が接続されている。
デコーダ30は、実行部31にて命令テーブルメモリ23内のスタート番地をプログラムカウンタ22に設定できるように、コマンドラッチ回路21に記憶されたコマンドをデコードしてデコード信号を出力する。実行部31は、デコーダ30からデコード信号を受け取り、このデコード信号に基づいて、フラッシュメモリ10へアクセスするために必要な命令コードが入った命令テーブルメモリ23内のスタート番地をプログラムカウンタ22に設定する。
プログラムカウンタ22へのスタート番地の設定は、バス29を用いて行ってもよいし、実行部31とプログラムカウンタ22との間を接続する専用配線32を用いて行ってもよい。スタート番地の設定に専用配線32を用いれば、バス29が空き状態となるため、専用配線32を用いたスタート番地を設定するための信号伝送と並行して、バス29を用いた他の信号の伝送を行うことが可能である。
この第2実施形態における動作は以下のようになる。
図4は、第2実施形態の半導体記憶装置の動作を示すフローチャートである。
ホスト機器200からコマンドが発行されると(ステップS1)、コマンドラッチ回路21にコマンドが一時的に記憶される(ステップS2)。コマンドラッチ回路21に記憶されたコマンドは、デコーダ30によりデコードされて(ステップS13)、デコード信号として実行部31に出力される。続いて、デコード信号に基づいて、実行部31により、フラッシュメモリ10へアクセスするために必要な命令コードが入ったスタート番地がプログラムカウンタ22に設定される(ステップS14)。その後の動作は、前述した第1実施形態の動作と同様である。
第2実施形態によれば、CPU28を介さずに、すなわちCPU28の処理を伴うことなく、ハードウェアシーケンサだけでフラッシュメモリ10へのアクセスを実行できる。ここで、ハードウェアシーケンサとは、デコーダ30、実行部31、プログラムカウンタ22、命令テーブルメモリ23、デコーダ24、実行部25、及び入出力制御回路26などによる制御をさす。これにより、CPU28の処理時間を削減でき、フラッシュメモリ10へのアクセス性能を向上させることができる。
図7の(B)に、第2実施形態の半導体記憶装置100におけるアクセス時間を示す。この図からわかるように、ホストアクセス時間後のCPUアクセス時間が削除でき、ハードウェアシーケンサによる処理時間(HWシーケンサ処理時間)(1)のみとなる。さらに、フラッシュメモリアクセス時間(1)後で、フラッシュメモリアクセス時間(2)前のCPUアクセス時間が削除でき、HWシーケンサ処理時間(2)のみとなる。これにより、フラッシュメモリへのアクセス性能を著しく向上できる。
詳述すると、ホスト機器200がコントローラ20にアクセスを開始してから、すなわちコントローラ20にコマンドが入力されてから、実際にフラッシュメモリ10へのアクセスが終了するまでの時間を短縮できる。ここでは、1回目にフラッシュメモリへアクセスする前、及び2回目にフラッシュメモリへアクセスする前のいずれの場合も、CPUの処理が必要ないため、連続してフラッシュメモリにアクセスする場合におけるアクセス時間を大きく短縮することができる。以上により、第2実施形態の半導体記憶装置における書き込み、消去、及び読み出しに要する時間を低減することが可能である。
[第3実施形態]
次に、本発明の第3実施形態の半導体記憶装置について説明する。
次に、本発明の第3実施形態の半導体記憶装置について説明する。
図5は、第3実施形態の半導体記憶装置の構成を示すブロック図である。この第3実施形態は、図3に示した前記第2実施形態の構成において、命令テーブルメモリ23、プログラムカウンタ22、デコーダ24、及び実行部25に換えて、各種のレジスタを備えたものである。その他の構成は、前記第2実施形態の構成と同様である。
図5に示すように、バス29と入出力制御回路26との間には、第1レジスタ34、第2レジスタ35、…、第Nレジスタ36、及び有効ビットレジスタ37が配置されている。第1〜第Nレジスタには、フラッシュメモリ10へアクセスするために必要な情報が記憶される。有効ビットレジスタ37には、第1〜第Nレジスタの各々に対応する情報が記憶される。第1〜第Nレジスタは、例えばコマンドレジスタ、アドレスレジスタ、ステータスレジスタ等の各種の設定レジスタをさす。
第1レジスタ34、第2レジスタ35、…、第Nレジスタ36、及び有効ビットレジスタ37への情報の設定は、バス29を用いて行ってもよいし、実行部33とこれらレジスタとの間を接続する専用配線38を用いて行ってもよい。レジスタへの情報設定に専用配線38を用いれば、バス29が空き状態となるため、専用配線38を用いたレジスタへの情報設定のための信号伝送と並行して、バス29を用いた他の信号伝送を行うことが可能である。
この第3実施形態における動作は以下のようになる。
図6は、第3実施形態の半導体記憶装置の動作を示すフローチャートである。
ホスト機器200からコマンドが発行されると(ステップS1)、コマンドラッチ回路21にコマンドが一時的に記憶される(ステップS2)。コマンドラッチ回路21に記憶されたコマンドは、デコーダ30によりデコードされて(ステップS23)、デコード信号として実行部33に出力される。
続いて、デコード信号に基づいて、実行部33により、フラッシュメモリ10へアクセスするために必要なシーケンスが第1レジスタ34、第2レジスタ35、…、第Nレジスタ36にそれぞれ設定され、さらに、各レジスタに対応する有効ビットレジスタ37が設定される(ステップS24)。また、データRAM27の利用有無が設定される。全ての設定が完了すると、DMAスタートが実施され(ステップS5)、前記レジスタに設定された情報に基づいて入出力制御回路26によりフラッシュメモリ10へのアクセスが実行される(ステップS25)。すなわち、所望のコマンドシーケンスがフラッシュメモリ10へ発行される。
これにより、フラッシュメモリ10では、コマンドが実行される(ステップS9)。コマンドの実行が終了すると、コントローラ20におけるステップS10に移行する。
ステップS10において、フラッシュメモリ10に続けてアクセスする必要がある場合(ステップS10のYes)、実行部33により、フラッシュメモリ10へアクセスするために必要なシーケンスが第1レジスタ34、第2レジスタ35、…、第Nレジスタ36、有効ビットレジスタ37にそれぞれ再設定される(ステップS26)。
続いて、ステップS5へ戻り、ステップS5以降の処理が繰り返される。すなわち、DMAスタートが実施され(ステップS5)、前記レジスタに設定された情報に基づいて入出力制御回路26によりフラッシュメモリ10へのアクセスが実行される(ステップS25)。
また、フラッシュメモリ10に続けてアクセスする必要がない場合(ステップS10のNo)、すなわちフラッシュメモリ10への必要なシーケンスが完了すると、CPU28はホスト機器200側にレディ信号を送信し、ホスト機器200はレディ信号を受信する(ステップS12)。そして、コントローラ20は、次のコマンドの入力を待つ待機状態になる。ホスト機器200から次のコマンドが発行されると、コントローラ20は前述と同様の動作を繰り返す。
第3実施形態によれば、CPU28を介さずに、すなわちCPU28の処理を伴うことなく、ハードウェアシーケンサだけでフラッシュメモリ10へのアクセスを実行できる。ここで、ハードウェアシーケンサとは、デコーダ30、実行部33、第1レジスタ34、第2レジスタ35、…、第Nレジスタ36、有効ビットレジスタ37、及び入出力制御回路26による制御をさす。これにより、CPU28の処理時間を削減でき、フラッシュメモリ10へのアクセス性能を向上させることができる。
図7の(C)に、第3実施形態の半導体記憶装置100におけるアクセス時間を示す。この図からわかるように、ホストアクセス時間後のCPUアクセス時間が削減でき、HWシーケンサ処理時間(1)のみとなる。さらに、フラッシュメモリアクセス時間(1)後で、フラッシュメモリアクセス時間(2)前のCPUアクセス時間が削除でき、HWシーケンサ処理時間(2)のみとなる。これにより、フラッシュメモリへのアクセス性能を著しく向上できる。
詳述すると、ホスト機器200がコントローラ20にアクセスを開始してから、すなわちコントローラ20にコマンドが入力されてから、実際にフラッシュメモリ10へのアクセスが終了するまでの時間を短縮できる。ここでは、1回目にフラッシュメモリへアクセスする前、及び2回目にフラッシュメモリへアクセスする前のいずれの場合も、CPUの処理が必要ないため、連続してフラッシュメモリにアクセスする場合におけるアクセス時間を大きく短縮することができる。以上により、第3実施形態の半導体記憶装置における書き込み、消去、及び読み出しに要する時間を低減することが可能である。
なお、実施形態に記述した命令テーブルメモリ23は、フラッシュメモリ10へのコマンド発行に必要な命令コード以外に、以下のような命令コードを持つことで、本発明の課題を解決している。
(a)ジャンプ命令を利用する場合、数種類の別シーケンスを自由な順番でCPU介在なしに連続して実施するための命令コード。
例1)シーケンスA→シーケンスB→シーケンスC
例2)シーケンスB→シーケンスA→シーケンスC
(b)ループ命令を利用する場合、数種類の別シーケンスを自由な回数繰り返すための命令コード。
例2)シーケンスB→シーケンスA→シーケンスC
(b)ループ命令を利用する場合、数種類の別シーケンスを自由な回数繰り返すための命令コード。
例1)シーケンスA→シーケンスB→シーケンスA→シーケンスB→シーケンスA→…
命令テーブルメモリ23は、(a)及び(b)に記載した命令コードを有することにより、上記のような内容に臨機応変に変更でき、いろいろなケースに柔軟に対応することができる。
命令テーブルメモリ23は、(a)及び(b)に記載した命令コードを有することにより、上記のような内容に臨機応変に変更でき、いろいろなケースに柔軟に対応することができる。
本発明の実施形態による効果をまとめると以下のようになる。
(1) フラッシュメモリへのアクセス性能を高めることができる。詳述すると、ホスト機器がコントローラにアクセスを開始してから、すなわちコントローラにコマンドが入力されてから、実際にフラッシュメモリへのアクセスが終了するまでの時間を短縮できる。
(2) 命令テーブルメモリに格納された命令コードを書き換えることにより、フラッシュメモリへのアクセスに必要なシーケンスに合わせて、多種多様なシーケンスに柔軟に対応することができる。
(3) CPUが行っていた処理を、ハードウェア(ハードウェアシーケンサ)によって処理することにより、CPUの処理時間を軽減または削除することができる。これにより、CPUは他の処理を行うことが可能である。
(4) CPUの処理時間を軽減または削減することができるため、コントローラにおける消費電力を低減することができる。
また、本発明の実施形態は、例えばSDメモリカード、MMC(マルチメディアカード)などのメモリカードを含む携帯型記憶装置、さらにはメモリデバイスを制御するメモリ制御システムに広く適用可能である。
また、前述した各実施形態はそれぞれ、単独で実施できるばかりでなく、適宜組み合わせて実施することも可能である。さらに、前述した各実施形態には種々の段階の発明が含まれており、各実施形態において開示した複数の構成要件の適宜な組み合わせにより、種々の段階の発明を抽出することも可能である。
10…フラッシュメモリ、20…コントローラ、21…コマンドラッチ回路、22…プログラムカウンタ(PC)、23…命令テーブルメモリ、24…デコーダ、25…実行部、26…入出力制御回路、27…データRAM、28…CPU、29…バス、30…デコーダ、31…実行部、32…専用配線、33…実行部、34…第1レジスタ、35…第2レジスタ、36…第Nレジスタ、37…有効ビットレジスタ、38…専用配線、100…半導体記憶装置、200…ホスト機器。
Claims (6)
- 不揮発性半導体メモリへアクセスするためのシーケンスをコード化した命令コードを格納した命令テーブルメモリと、
前記不揮発性半導体メモリへアクセスするために必要な命令コードが格納された、前記命令テーブルメモリ内の読み出し番地が設定されるプログラムカウンタと、
前記命令テーブルメモリから読み出された命令コードをデコードして第1デコード信号を出力する第1デコーダと、
前記第1デコーダから出力された前記第1デコード信号に基づいて、前記不揮発性半導体メモリへのアクセスを実行する第1実行部と、
を具備することを特徴とするコントローラ。 - 外部から入力されたコマンドをデコードして第2デコード信号を出力する第2デコーダと、
前記第2デコーダから出力された前記第2デコード信号に基づいて、前記読み出し番地を前記プログラムカウンタに設定する第2実行部と、
をさらに具備することを特徴とする請求項1に記載のコントローラ。 - 前記第2実行部と前記プログラムカウンタとの間には、前記プログラムカウンタに前記読み出し番地の設定を行うための専用配線が配置されていることを特徴とする請求項2に記載のコントローラ。
- 前記命令テーブルメモリは、前記命令コードを自由な順番で連続してアクセスするための命令コードを、さらに格納することを特徴とする請求項1乃至3のいずれかに記載のコントローラ。
- 不揮発性半導体メモリへアクセスするための情報が記憶されるレジスタと、
外部から入力されたコマンドをデコードしてデコード信号を出力するデコーダと、
前記デコーダから出力された前記デコード信号に基づいて、前記レジスタに前記不揮発性半導体メモリへアクセスするための前記情報を設定する実行部と、
前記レジスタに記憶された前記情報に従って、前記不揮発性半導体メモリにアクセスする入出力制御回路と、
を具備することを特徴とするコントローラ。 - 電気的にデータの書き換えが可能な不揮発性半導体メモリと、
前記不揮発性半導体メモリの動作を制御するコントローラとを有し、
前記コントローラは、
前記不揮発性半導体メモリへアクセスするためのシーケンスをコード化した命令コードを格納した命令テーブルメモリと、
前記不揮発性半導体メモリへアクセスするために必要な命令コードが格納された、前記命令テーブルメモリ内の読み出し番地が設定されるプログラムカウンタと、
前記命令テーブルメモリから読み出された命令コードをデコードしてデコード信号を出力するデコーダと、
前記デコーダから出力された前記デコード信号に基づいて、前記不揮発性半導体メモリへのアクセスを実行する実行部と、
を具備することを特徴とする半導体記憶装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009070582A JP2010224806A (ja) | 2009-03-23 | 2009-03-23 | コントローラ及び半導体記憶装置 |
US12/554,144 US8495278B2 (en) | 2009-03-23 | 2009-09-04 | Controller which controls operation of nonvolatile semiconductor memory and semiconductor memory device including nonvolatile semiconductor memory and controller therefore |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009070582A JP2010224806A (ja) | 2009-03-23 | 2009-03-23 | コントローラ及び半導体記憶装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010224806A true JP2010224806A (ja) | 2010-10-07 |
Family
ID=42738603
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009070582A Pending JP2010224806A (ja) | 2009-03-23 | 2009-03-23 | コントローラ及び半導体記憶装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8495278B2 (ja) |
JP (1) | JP2010224806A (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110209352B (zh) * | 2019-05-14 | 2023-03-14 | 西安艾可萨科技有限公司 | 一种存储器的控制方法、存储器控制器、电子设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1996024138A1 (fr) * | 1995-01-31 | 1996-08-08 | Hitachi, Ltd. | Dispositif de memoire remanente et procede de regeneration |
JPH1079197A (ja) * | 1996-07-09 | 1998-03-24 | Hitachi Ltd | 不揮発性メモリシステムおよび不揮発性半導体メモリ |
JPH11144476A (ja) * | 1997-11-04 | 1999-05-28 | Hitachi Ltd | 半導体不揮発性メモリ |
JP2000040386A (ja) * | 1998-07-24 | 2000-02-08 | Hitachi Ltd | 半導体記憶装置及びデータ処理装置 |
JP2003242785A (ja) * | 2002-02-13 | 2003-08-29 | Sharp Corp | 半導体記憶装置および電子情報機器 |
JP2004348790A (ja) * | 2003-05-20 | 2004-12-09 | Sharp Corp | 半導体記憶装置及び携帯電子機器 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6542982B2 (en) * | 2000-02-24 | 2003-04-01 | Hitachi, Ltd. | Data processer and data processing system |
US6879522B2 (en) * | 2001-03-12 | 2005-04-12 | Micron Technology, Inc. | Method for making a memory device with plural substrates each having a memory array, a read only memory, and a write state machine |
JP2003141888A (ja) | 2001-11-01 | 2003-05-16 | Mitsubishi Electric Corp | 不揮発性半導体記憶装置 |
US7515485B2 (en) * | 2006-12-18 | 2009-04-07 | Micron Technology, Inc. | External clock tracking pipelined latch scheme |
-
2009
- 2009-03-23 JP JP2009070582A patent/JP2010224806A/ja active Pending
- 2009-09-04 US US12/554,144 patent/US8495278B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1996024138A1 (fr) * | 1995-01-31 | 1996-08-08 | Hitachi, Ltd. | Dispositif de memoire remanente et procede de regeneration |
JPH1079197A (ja) * | 1996-07-09 | 1998-03-24 | Hitachi Ltd | 不揮発性メモリシステムおよび不揮発性半導体メモリ |
JPH11144476A (ja) * | 1997-11-04 | 1999-05-28 | Hitachi Ltd | 半導体不揮発性メモリ |
JP2000040386A (ja) * | 1998-07-24 | 2000-02-08 | Hitachi Ltd | 半導体記憶装置及びデータ処理装置 |
JP2003242785A (ja) * | 2002-02-13 | 2003-08-29 | Sharp Corp | 半導体記憶装置および電子情報機器 |
JP2004348790A (ja) * | 2003-05-20 | 2004-12-09 | Sharp Corp | 半導体記憶装置及び携帯電子機器 |
Also Published As
Publication number | Publication date |
---|---|
US20100241791A1 (en) | 2010-09-23 |
US8495278B2 (en) | 2013-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6810444B2 (en) | Memory system allowing fast operation of processor while using flash memory incapable of random access | |
JP5292978B2 (ja) | 制御装置、情報処理装置、及びメモリモジュール認識方法 | |
KR100921787B1 (ko) | 낸드 플래시 메모리 제어장치 | |
JP2006004079A (ja) | 記憶装置 | |
JP3875139B2 (ja) | 不揮発性半導体記憶装置、そのデータ書き込み制御方法およびプログラム | |
US8154925B2 (en) | Semiconductor memory device and system capable of executing an interleave programming for a plurality of memory chips and a 2-plane programming at the respective memory chips | |
JP2008009817A (ja) | 半導体装置及びデータ転送方法 | |
JP2005071303A (ja) | プログラム起動装置 | |
US8595594B2 (en) | Data processing method, memory controller, and memory storage device | |
KR100829788B1 (ko) | 커맨드 디코딩 시스템, 플래시 메모리 커맨드 디코딩시스템 및 이를 이용한 방법 | |
US20100153622A1 (en) | Data Access Controller and Data Accessing Method | |
US20160055853A9 (en) | Method for processing sound data and circuit therefor | |
CN107479938B (zh) | 电子设备及其启动方法 | |
JP2010224806A (ja) | コントローラ及び半導体記憶装置 | |
EP2194458A2 (en) | Request processing device, request processing system, and access testing method | |
WO2012008068A1 (ja) | マイクロコントローラ及びその制御方法 | |
JP7273176B2 (ja) | シーケンス処理ユニットを備えたメモリ制御システム | |
JP2004192051A (ja) | 共用端子制御装置 | |
US8108663B2 (en) | Micro controller and method of updating the same | |
JP2008065549A (ja) | マイクロコンピュータ、情報処理システム、電子機器及びマイクロコンピュータの起動制御方法 | |
KR100874439B1 (ko) | 마이크로 컨트롤러를 기반으로 한 음성 디코딩 장치 및이를 이용한 음성 디코딩 방법 | |
KR20050079534A (ko) | 캐쉬 프로그램 장치 및 그 방법 | |
JP2007026136A (ja) | 半導体集積回路装置 | |
JP2007317078A (ja) | 不揮発性メモリ、メモリコントローラ、不揮発性記憶装置、及び不揮発性記憶システム | |
JP2010055386A (ja) | 電気回路および機能制限方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20111109 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20121023 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20121024 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20130305 |