JP4059002B2 - Memory device - Google Patents
Memory device Download PDFInfo
- Publication number
- JP4059002B2 JP4059002B2 JP2002143984A JP2002143984A JP4059002B2 JP 4059002 B2 JP4059002 B2 JP 4059002B2 JP 2002143984 A JP2002143984 A JP 2002143984A JP 2002143984 A JP2002143984 A JP 2002143984A JP 4059002 B2 JP4059002 B2 JP 4059002B2
- Authority
- JP
- Japan
- Prior art keywords
- host
- data
- flash memory
- memory device
- 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
Landscapes
- Memory System (AREA)
- Dram (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Description
【0001】
【発明の属する技術分野】
本発明は揮発性メモリ並びに不揮発性メモリを使用したメモリ装置に係り、高速かつ安価なメモリシステムの構築に関する。
【0002】
【従来の技術】
揮発性メモリ並びに不揮発性メモリを使用したメモリシステムにおいては、特開2001−5723に記載のように、電源投入時において不揮発性メモリの内容を揮発性メモリにコピーして、ホストから揮発性メモリをアクセスして使用する方法がある。その場合、電源遮断時においては揮発性メモリの内容を不揮発性メモリにコピーし、その処理結果について専用線を用いてホストに通知することにより安全に電源を遮断して、源遮断後もデータを保持する。
【0003】
【発明が解決しようとする課題】
上記従来技術では、揮発性メモリ(DRAM)と不揮発性メモリ(フラッシュメモリ)間のデータ転送が、電源投入時若しくは電源遮断時にしか行われないため、電源投入後、該メモリシステムを使用している最中に該データ転送を行うことまでは考慮していない。また、該データ転送は全ての不揮発性メモリ全体を対象にしているため、大容量のメモリに対しては転送に時間がかかってしまい、メモリシステムとして使用できるまでの準備に時間がかかってしまう。また、電源遮断においてはコピー処理が終了したことをホストに通知するために専用線を用いているため、既存の揮発性メモリインタフェイスだけで制御することはできない。更に、ホストから不揮発性メモリに対してアクセスすることまでは考慮されていない。また、揮発性メモリのデータ転送速度と不揮発性メモリのデータ転送速度との相違については考慮されていない。
【0004】
本発明の目的は、ホストから揮発性メモリと不揮発性メモリ間のデータ転送を制御可能とし、ホストからの制御性を向上したメモリ装置を提供することである。
【0005】
又は、本発明の目的は、ホストから不揮発性メモリへのアクセスを可能とし、ホストからの制御性を向上したメモリ装置を提供することである。
【0006】
【課題を解決するための手段】
本発明は、制御回路が、ホストからのコマンドを受信し、解釈し、解釈されたコマンドに応じて、揮発性メモリと不揮発性メモリとの間のデータ転送を開始する。
【0007】
又は、本発明は、制御回路が、ホストからの揮発性メモリ上の予め定められたアドレスへのアクセス指令(データリード、データライトを含む。)に応じて、揮発性メモリと不揮発性メモリとの間のデータ転送を開始する。
【0008】
又は、本発明は、ホストと前記制御回路との間に位置する第1のインタフェイスが、揮発性メモリへ読み書きするデータを入出力する第1のインタフェイスと、ホストと制御回路との間に位置する第2のインタフェイスが、不揮発性メモリへ読み書きするデータを入出力する。
【0009】
又は、本発明は、ホストと制御回路との間に位置するインタフェイスが、揮発性メモリへ読み書きするデータを入出力すると共に、不揮発性メモリへ読み書きするデータを入出力する。
【0010】
又は、本発明は、保持回路が、揮発性メモリと不揮発性メモリとの間の転送データを保持する。
【0011】
【発明の実施の形態】
図24に示すメモリ装置4000は、例えば、携帯電話、PDA(Personal Digital Assistants)、音楽再生装置、デジタルカメラ、デジタルビデオカメラ、セットトップボックス、パーソナルコンピュータ、カーナビゲーションシステムなどの情報端末に実装することが可能なメモリ装置4000である。
【0012】
メモリ装置4000は、ホスト4040に指定されたアドレスに、ホスト4040に指定されたデータを書込む機能と、電源が供給されている場合は書き込まれたデータを少なくとも一定期間以上保持する機能と、ホスト4040に指定されたアドレスに保持しているデータをホスト4040に出力する機能と、を有するメモリ装置4000であって、電源供給を停止しても書き込まれたデータの一部あるいは全てを保持することが可能な不揮発性を有し、メモリ装置4000のホスト4040は、メモリ装置4000に対してアドレスの指定と、メモリ装置4000へのデータの書込みと、メモリ装置4000からのデータの読出しを、少なくともSDRAM(シンクロナスダイナミックランダムアクセスメモリー)と電気的に互換性のあるインタフェイス4001によって行なうことができる機能を有するメモリ装置4000である。
【0013】
ここでいうホスト4040とは、例えば情報端末に内蔵されたCPUやASIC等といった情報処理装置である。メモリ装置4000には、例えばホスト4040が各種情報処理を実行するための動作プログラムを格納することができる。
【0014】
動作プログラムとは例えばOS(オペレーションシステム)、ドライバ、JAVAヴァーチャルマシン、JAVAアプレット等(「JAVA」はSun Microsystems社の登録商標である)の各種アプリケーションなどである。また、ここでいう情報処理とは、例えば、情報端末を構成する各ハードウェアの動作制御であったり、データ演算、動画や音声の記録並びに再生などの処理である。ホスト4040は、メモリ装置4000を主記憶として用いて、メモリ装置4000に格納された動作プログラムに基づいて動作することができる。また、メモリ装置4000には例えば動作プログラムで処理するための各種データを格納することもできる。ここでいうデータとは、例えばテキスト、画像、音声、動画などの各種データ、プログラムの動作パラメータや設定ファイル、などである。その他のデータを格納することもできる。
【0015】
メモリ装置4000は、揮発性メモリであるがランダムアクセスが可能なSDRAM4010と、不揮発性メモリであるフラッシュメモリ4020と、ホスト4040がメモリ装置4000にアクセスするためのSDRAM互換インタフェイス4001とを備える。メモリ装置4000は、SDRAM互換インタフェイス4001によってホスト4040に接続する。メモリ装置4000は、SDRAM互換メモリとして動作するため、ホスト4040はメモリ装置4000をSDRAMインタフェイスを用いて制御できる。メモリ装置4000は、SDRAM4010のデータの一部あるいは全てをフラッシュメモリ4020に格納することができる。メモリ装置4000は、フラッシュメモリ4020のデータの一部あるいは全てをSDRAM4010に読み出すことができる。例えばメモリ装置4000への電源供給を停止する前に、SDRAM4010のデータをフラッシュメモリ4020に格納することにすれば、電源供給停止によるSDRAM4010のデータ消失を防ぐことができる。また、例えばメモリ装置4000への電源供給を開始した後、ホスト4040がメモリ装置4000にアクセスする前に、フラッシュメモリ4020のデータをSDRAM4010に読み出すことにすれば、ホスト4040はメモリ装置4000を不揮発性を持つSDRAM互換メモリとして使用できる。メモリ装置4000は、SDRAM4010とフラッシュメモリ4020の間のデータ転送をホスト4040が任意に指定できる機能を有する。メモリ装置4000は、メモリ装置4000の動作指示をホスト4040から受け付ける指示受付機能と、メモリ装置4000の状態をホスト4040に対して通知する状態通知機能を有する。
【0016】
指示受付機能と状態通知機能は、ホスト4040がメモリ装置4000の所定のアドレスに対して所定の書式のデータを読書きすることで行なう。そのため、ホスト4040は、メモリ装置4000に対して指示を行なうための専用ピンを、SDRAMインタフェイスに新たに追加することなく、指示受付機能と状態通知機能を利用することができるため、ホスト4040は既存のSDRAM4010とメモリ装置4000を容易に置き換えることができる。メモリ装置4000のホスト4040は、指示受付機能により、随時メモリ装置4000に対してSDRAM4010のデータをフラッシュメモリ4020に転送すること、並びにフラッシュメモリ4020のデータをSDRAM4010に転送することを指示できる。
【0017】
ここで、メモリ装置4000は不揮発性を有するデータ格納エリアを備えるため、利便性が高い。また、通常のSDRAM4010と同等の転送速度を有するためフラッシュメモリに直接アクセスする場合に比べて転送時間を短縮できる。また、メモリ装置4000はSDRAM互換インタフェイス4001を有するため、SDRAMインタフェイスを備えるホスト4040は、ハードウェアの新規設計あるいは追加をすることなくメモリ装置4000を利用可能である。
【0018】
次に、メモリ装置4000の有する機能の例について説明する。
【0019】
メモリ装置4000は、メモリ装置4000のSDRAM互換インタフェイス4001信号をSDRAM4010のSDRAMインタフェイス4001信号にスルーパスする機能を有する。SDRAM互換インタフェイス4001信号のスルーパス機能により、ホスト4040はメモリ装置4000をSDRAM互換のメモリ装置4000として使用することができる。例えば、ホスト4040はメモリ装置4000に対して、SDRAM4010と同様の手順でリードコマンドやライトコマンドやリフレッシュコマンド等を発行することができる。メモリ装置4000は、SDRAM4010の所定の領域に保持されたデータをフラッシュメモリ4020の所定の領域に転送するストア機能を有する。ストア機能により、フラッシュメモリ4020に転送されたデータは、メモリ装置4000への電源供給の停止によってSDRAM4010上から失われても、フラッシュメモリ4020上に保持しておくことができる。
【0020】
ストア機能は、メモリ装置4000の動作状態が所定のストア実行条件を満たした場合に実行する。ストア実行条件の一つは、例えば電源供給が停止されることである。ストア実行条件の一つは、例えばホスト4040からストア実行指示が発行されたことである。ストア実行条件の一つは、例えばメモリ装置4000の所定のレジスタが所定の範囲の値をとることである。所定のレジスタとは、例えばホスト4040からメモリ装置4000へのアクセス回数をカウントするカウンタレジスタである。
【0021】
メモリ装置4000は、ストア実行条件を規定するストア実行条件情報を有する。メモリ装置4000は、ストア実行条件情報を変更する機能を有する。
メモリ装置4000は、ストア実行条件情報の変更をホスト4040が指定できる機能を有する。メモリ装置4000は、ストア実行条件情報をフラッシュメモリ4020に保存する機能を有する。メモリ装置4000は、ストア実行条件情報をフラッシュメモリ4020から読込む機能を有する。メモリ装置4000は、フラッシュメモリ4020の所定の領域に保持されたデータをSDRAM4010の所定の領域に転送するロード機能を有する。
【0022】
ロード機能は、メモリ装置4000の動作状態が所定のロード実行条件を満たした場合に実行する。ロード実行条件の一つは、例えば電源供給が開始されることである。ロード実行条件の一つは、例えばホスト4040からロード実行指示が発行されたことである。ロード実行条件の一つは、例えばメモリ装置4000の所定のレジスタが所定の範囲の値をとることである。
【0023】
メモリ装置4000は、ロード実行条件を規定するロード実行条件情報を有する。メモリ装置4000は、ロード実行条件情報を変更する機能を有する。メモリ装置4000は、ロード実行条件情報の変更をホスト4040が指定できる機能を有する。メモリ装置4000は、ロード実行条件情報をフラッシュメモリ4020に保存する機能を有する。メモリ装置4000は、ロード実行条件情報をフラッシュメモリ4020から読込む機能を有する。メモリ装置4000は、所定の手順に従って、SDRAM4010のアドレスとフラッシュメモリ4020のアドレスを対応付ける機能を有する。
【0024】
ストア機能並びにロード機能におけるデータ転送は、アドレス対応付け機能によって対応付けられたアドレス同士で行なう。アドレス対応付け機能はアドレス対応付け情報に基づいて行なう。また、フラッシュメモリ4020には、データを正常に読書きできない不良領域が存在することがある。そのため、フラッシュメモリ4020のメモリエリアは、フラッシュメモリ4020上に存在する不良領域を使用しないようにする必要がある。そこでアドレス対応付け情報は、不良領域に対してデータアクセスが発生しないようにSDRAM4010のアドレスとフラッシュメモリ4020のアドレスを対応付ける。
【0025】
メモリ装置4000は、アドレス対応付け情報を格納するためのアドレス対応付け情報格納レジスタを有する。メモリ装置4000は、アドレス応付け情報格納レジスタに格納されたアドレス対応付け情報を変更する機能を有する。メモリ装置4000は、アドレス対応付け情報の変更をホスト4040が指定できる機能を有する。メモリ装置4000は、アドレス対応付け情報をフラッシュメモリ4020に保存する機能を有する。メモリ装置4000は、アドレス対応付け情報をフラッシュメモリ4020から読込む機能を有する。メモリ装置4000は、メモリ装置4000への電源供給状態を監視する機能を有する。
【0026】
次にメモリ装置4000の構成についてより詳細に説明する。
メモリ装置4000は少なくとも、SDRAM互換インタフェイス4001と、SDRAM4010と、フラッシュメモリ4020と、制御装置4030と、を備える。SDRAM4010と制御装置4030はSDRAMインタフェイス4002で接続する。
【0027】
制御装置4030とフラッシュメモリ4020はフラッシュメモリインタフェイス4003で接続する。制御装置4030には、メモリ装置4040とホスト4040を接続するためのSDRAM互換インタフェイス4001を接続する。
【0028】
メモリ装置4000は、例えば、SDRAM4010と、フラッシュメモリ4020と、制御装置4030とを、それぞれ別のシリコンチップ上に構成し、各シリコンチップの端子間を例えばワイヤボンディングなどで接続し、1つのパッケージ内に封止したマルチチップパッケージとすることができる。ここで、パッケージとは例えばTSOP(Thin Small Outline Package)やBGA(Ball Grid Array)などのLSIパッケージ形態のことを指す。
【0029】
SDRAM互換インタフェイス4001は、例えばチップに電気信号を入出力する端子群と端子群の役割のことであり、その電気的特性がSDRAMの端子群と互換性を有するインタフェイスである。例えばメモリ装置4000はSDRAMと、各信号のセットアップ時間やホールド時間やCASレイテンシなどの特性が互換性を有する。
【0030】
ホスト4040と制御装置4030を接続するSDRAM互換インタフェイス4001は例えばJEDEC規格のSDRAMと端子群の電気的特性のみならず、 メモリ装置4000のパッケージサイズや、メモリ装置4000のパッケージに配置された例えばピンやハンダボール等の端子群のサイズ並びに端子群の配置等も互換性を持たせることが望ましい。
【0031】
構成とすることで、SDRAM互換インタフェイス4001を備えたホスト4040は、SDRAMとメモリ装置4000とを置き換えて使用することが容易になる。
【0032】
SDRAM互換インタフェイス4001は、例えばSDRAMインタフェイス4002に対し、アドレス指定できるメモリエリアを制御用レジスタ分だけ拡張したインタフェイスである。SDRAM4010は、ホスト4040に指定されたアドレスにホスト4040に指定されたデータを書込む機能と、電源が供給されている場合は書き込まれたデータを少なくとも一定期間以上保持する機能と、ホスト4040に指定したアドレスに格納されたデータを読み出しホスト4040に出力する機能と、を有するメモリ装置4000である。信号の入出力をクロックに同期させて実行することで、同期させないDRAMに比べてデータの転送速度を向上させたメモリ装置4000である。SDRAM4010はSDRAMインタフェイス4002を有する。SDRAMインタフェイス4002は、SDRAM4010を利用する外部装置(不図示)がSDRAM4010に対してアドレスやデータを指定する端子群である。
【0033】
フラッシュメモリ4020は、ホスト4040に指定されたアドレスにホスト4040に指定されたデータを書込む機能と、電源供給が停止されても書き込まれたデータを少なくとも一定期間以上保持する不揮発性と、ホスト4040に指定したアドレスに格納されたデータを読み出しホスト4040に出力する機能と、を有するメモリ装置4000である。フラッシュメモリ4020はフラッシュメモリインタフェイス4003を有する。フラッシュメモリインタフェイス4003は、フラッシュメモリ4020を利用する外部装置(不図示)がフラッシュメモリ4020に対してアドレスやデータを指定する端子群である。
【0034】
制御装置4030は、メモリ装置4000各部の動作を統括制御する機能を有する制御装置4030である。制御装置4030は、メモリ装置4000各部の動作を統括制御し、メモリ装置4000の各機能を実現する機能を有する。制御装置4030は、SDRAM互換インタフェイス4001とSDRAMインタフェイス4002を接続し、ホスト4040とSDRAM4010の間のデータ転送を中継する機能を有する。制御装置4030は、SDRAM4010の所定の領域に保持されたデータをフラッシュメモリ4020の所定の領域に転送するストア機能を有する。制御装置4030は、フラッシュメモリ4020の所定の領域に保持されたデータをSDRAM4010の所定の領域に転送するロード機能を有する。制御装置4030は、所定の手順に従って、SDRAM4010のアドレスとフラッシュメモリ4020のアドレスを対応付けるアドレス対応付け機能を有する。制御装置4030は、制御用レジスタ4031を有する。制御用レジスタ4031は、制御装置4030が動作する際に必要となる各種情報を格納するためのレジスタである。
【0035】
制御用レジスタ4031の一部あるいは全ては、ホスト4040が書換えることができる。制御用レジスタ4031の一部あるいは全ては、ホスト4040が読出すことができる。
【0036】
ホスト4040が制御用レジスタ4031を書換える場合は、ホスト4040がSDRAM互換インタフェイス4001によって制御用レジスタ4031の所定のアドレスに所定の書式のデータを書込むことで行なう。ホスト4040が制御用レジスタ4031の読出す場合は、ホスト4040がSDRAM互換インタフェイス4001によって制御用レジスタ4031の所定のアドレスから所定のデータを読出すことで行なう。
【0037】
制御装置4030は、任意の制御用レジスタ4031にアクセスできる。あるいは、所定のレジスタを書換禁止としたり、読出し禁止とすることもできる。
【0038】
制御用レジスタ4031のアドレスの指定は、SDRAMのアドレス指定と同様の手順で行なうことができる。制御用レジスタ4031は、例えばホスト4040がメモリ装置4000に各種動作指示を発行するための領域を有する。制御用レジスタ4031は、例えばホスト4040がメモリ装置4000の動作状態を知るための情報を格納する領域を有する。制御用レジスタ4031は、例えばストア実行条件情報を格納するための領域を有する。制御用レジスタ4031は、例えばロード実行条件情報を格納するための領域を有する。制御用レジスタ4031は、例えばアドレス対応付け条件情報を格納するための領域を有する。
【0039】
制御装置4030は、電圧検出装置4032を有する。電圧検出装置4032は、外部装置からメモリ装置4000に供給される電源電圧をモニタリングする装置である。電圧検出装置4032は、メモリ装置4000への供給電圧が所定の範囲の値になったこと、あるいは供給電圧が所定の範囲にあること、を検知する機能を有する。例えば、メモリ装置4000への電源投入時は、電源電圧が所定の値より大きくなったことを検知する。所定の値とは、例えば制御装置4030が正常動作可能な電圧値や、SDRAM4010が正常動作可能な電圧値や、フラッシュメモリ4020が正常動作可能な電圧値等である。また、例えばメモリ装置4000の電源電圧が所定の値よりも小さくなったことを検知する。所定の値とは、例えば制御装置4030が正常動作可能な電圧値や、SDRAM4010が正常動作可能な電圧値や、フラッシュメモリ4020が正常動作可能な電圧値等である。
【0040】
制御装置4030は、電圧検出装置4032を用いることで例えば電源が所定の値以上になったらフラッシュメモリ4020の所定の領域のデータをSDRAM4010の所定の領域にロードし、電源が所定の値以下になったらSDRAM4010の所定の領域のデータをSDRAM4010の所定の領域にストアする、といった処理を行なうことができる。
【0041】
次にメモリ装置4000のメモリエリアの構成例について説明する。
【0042】
メモリ装置4000は、SDRAM4010のメモリエリア内に、少なくとも一つ以上の不揮発エリア4011を構成する。
【0043】
不揮発エリア4011とは、フラッシュメモリ4020を用いたミラーリング4063を行なうエリアである。
【0044】
SDRAM4010のメモリエリアのうち、不揮発エリア4011としないエリアを揮発エリア4012とする。
【0045】
ここでは、フラッシュメモリ4020のミラーエリア4021に格納されているデータをSDRAM4010の不揮発エリア4011に格納されているデータに一致させること、あるいは、SDRAM4010の不揮発エリア4011に格納されているデータの複製をフラッシュメモリ4020のミラーエリア4021に格納すること、をミラーリング4063と呼ぶことにする。ただしフラッシュメモリ4020のミラーエリア4021は、フラッシュメモリ4020の不良領域を除いた論理アドレスで管理する。
【0046】
メモリ装置4000は、フラッシュメモリ4020のメモリエリア内に、少なくともSDRAM4010のミラーリング4063を行なうためのミラーエリア4021と、制御用レジスタ4031を格納するための制御用レジスタ格納エリア4022と、を有する構成とする。ミラーエリア4021は少なくとも、SDRAM4010の不揮発エリア4011に格納された全てのデータを格納できるだけのメモリエリアを有する構成とする。
【0047】
SDRAM4010は、揮発性のメモリであるため、SDRAM4010に書き込まれたデータは、メモリ装置4000への電源供給を停止すると失われる。しかし、不揮発エリア4011に格納されたデータはフラッシュメモリ4020のミラーエリア4021にミラーリングしておくことができるため、電源遮断後も保持しておくことができる。揮発エリア4012に格納されたデータは、電源遮断により失われる。ホスト4040は、SDRAM互換インタフェイス4001を用いて所定のアドレスを指定することで、SDRAM4010の不揮発エリア4011、SDRAM4010の揮発エリア4012、制御用レジスタ4031にアクセスできる。
【0048】
次に、メモリ装置4000におけるデータの伝達経路の例について説明する。
【0049】
データアクセス4051は、ホスト4040がSDRAM4010に対してSDRAM互換インタフェイス4001を用いてアクセスする経路である。このとき、ホスト4040は、不揮発エリア4011並びに揮発エリア4012の双方に自由にアクセスできる。
【0050】
レジスタ読出し4052は、ホスト4040がSDRAM互換インタフェイス4001を用いて制御用レジスタ4031に格納された各種情報を読み出す経路である。レジスタ書込み4053は、ホスト4040がSDRAM互換インタフェイス4001を用いて制御用レジスタ4031に各種情報を書込む経路である。電源供給開始4061は、メモリ装置4000への電源供給が開始された場合に、ミラーエリア4021から不揮発エリア4010へデータをロードする経路である。ロード4062は、ホスト4040からメモリ装置4000にロード実行指示が発行された場合などにミラーエリア4021から不揮発エリア4010へデータをロードする経路である。ストア4062は、ホスト4040からメモリ装置4000にストア実行指示が発行された場合などに不揮発エリア4010からミラーエリア4021へデータをストアする経路である。電源供給停止4061は、メモリ装置4000への電源供給が停止される場合に、不揮発エリア4010からミラーエリア4021へデータをストアする経路である。
【0051】
次に、以上のように構成したメモリ装置4000の動作の例について説明する。
【0052】
図25は、電源供給開始から電源供給停止までのメモリ装置4000の動作の一例を示すフロー図である。まずホスト4040は、メモリ装置4000に電源供給を開始する(4101)。メモリ装置4000は、電源供給が開始されると、フラッシュメモリ4020のミラーエリア4021のデータをSDRAM4010の不揮発エリア4011にロードする。
【0053】
次にロード処理のフローの一例を説明する。メモリ装置4000は、電圧検出装置4032が動作可能な値まで供給電圧が上昇すると、制御用レジスタ4031にビジー信号をセットする(4102)。ビジー信号は制御用レジスタ4031の所定のアドレスに所定の書式で格納する。ホスト4040は、制御用レジスタ4031のアドレスのデータをポーリングすることで、メモリ装置4000の内部状態を知ることができる。ロード処理実行中は、SDRAM互換インタフェイス4001とSDRAMインタフェイス4002は電気的に分離する。
【0054】
上記処理により、SDRAM互換インタフェイス4001を使用するホスト4040から制御用レジスタ4031へのアクセスと、SDRAMインタフェイス4002を使用するフラッシュメモリ4020からSDRAM4010へのロード処理を並行して実行することができる。メモリ装置4000は、電圧検出装置4032によって、電源供給の状態を監視し、供給電圧が所定の値になるまで待機する(4103)。ここで所定の値とは、例えばSDRAM4010並びにフラッシュメモリ4020が共に正常動作可能な電圧値である。
【0055】
次に、フラッシュメモリ4020の制御用レジスタ格納エリア4022から、各種制御用情報を読出し、制御用レジスタ4031に格納する(4104)。ここで、フラッシュメモリ4020の制御用レジスタ4031格納エリアの内容の一部あるいは全部を制御装置4030の制御用レジスタ4031に読み出すことをレジスタ復帰と呼ぶことにする。
【0056】
次に読み出した制御用レジスタ4031内の、アドレス対応付け情報に基づき、フラッシュメモリ4020のミラーエリア4021のデータをSDRAM4010の不揮発エリア4011にロードする(4105)。ロードが終了すると、制御用レジスタ4031のビジー信号を解除する(4106)。
【0057】
ロード処理が終了すると、それ以降、メモリ装置4000は、ホスト4040からシャットダウン指示を受け付ける(4107)までSDRAM互換メモリとして動作する(4108)。シャットダウン指示とは、ホスト4040からメモリ装置4000に対して電源供給を停止することを通知するための指示であり、ホスト4040が制御用レジスタ4031の所定のアドレスに所定の書式のデータを書込むことで実現する。 メモリ装置4000は、ホスト4040からシャットダウン指示を受け付けると、SDRAM4010の不揮発エリア4011のデータをフラッシュメモリ4020のミラーエリア4021にミラーリングする。
【0058】
次に、ストア処理のフローの一例を説明する。メモリ装置4000は、ホスト4040からシャットダウン指示を受け付けると、制御用レジスタ4031にビジー信号をセットする(4109)。ビジー信号は制御用レジスタ4031の所定のアドレスに所定の書式で格納する。ホスト4040は、制御用レジスタ4031のアドレスのデータをポーリングすることで、メモリ装置4000の内部状態を知ることができる。ストア処理実行中は、SDRAM互換インタフェイス4001とSDRAMインタフェイス4002は電気的に分離する。上記処理により、SDRAM互換インタフェイス4001を使用するホスト4040から制御用レジスタ4031へのアクセスと、SDRAMインタフェイス4002を使用するSDRAM4010からフラッシュメモリ4020へのストア処理を並行して実行することができる。
【0059】
次に読み出した制御用レジスタ4031内の、アドレス対応付け情報に基づき、SDRAM4010の不揮発エリア4011のデータをフラッシュメモリ4020のミラーエリア4021にストアする(4110)。
【0060】
次に、制御用レジスタ4031に格納された各種制御用信号をフラッシュメモリ4020の制御用レジスタ格納エリア4022に書込む(4111)。ここで、制御装置4030の制御用レジスタ4031の内容の一部あるいは全部をフラッシュメモリ4020の制御用レジスタ4031格納エリアに書込むことをレジスタ退避4071と呼ぶことにする。レジスタ退避が終了すると、制御用レジスタ4031のビジー信号を解除する(4112)。ホストは、制御用レジスタ4031のポーリングにより、ビジーが解除されたことを検出すると、メモリ装置4000への電源供給を停止する。
【0061】
以上述べた手順を実行した場合、メモリ装置4000へ電源供給の停止により、メモリ装置4000内のSDRAM4010に保持されているデータは失われるが、その一部あるいは全てのデータのコピーを、フラッシュメモリ4020上に保持しておくことができ、次回メモリ装置4000に電源供給が開始された場合は、フラッシュメモリ4020上に保持しておいたデータを利用することができる。
【0062】
次にメモリ装置4000がSDRAM互換メモリとして使用するとき(4108)の動作についてより詳細に説明する。
【0063】
図26は、メモリ装置4000がSDRAM互換メモリとして動作するときの処理フローの一例を示す図である。メモリ装置4000はホスト4040からSDRAMインタフェイス4001を介してリード、ライト、リフレッシュなどの各種SDRAM動作指示を受け付ける(4201)。
【0064】
次に受付た動作指示により処理を分岐する。受付た動作指示が、リードあるいはライトであった場合は、ホスト4040に指定されたメモリアドレスを判定する(4202)。受付た動作指示が、リードあるいはライト以外であった場合、あるいは、指定されたメモリアドレスがSDRAMのメモリエリアを指定している場合は、SDRAM互換インタフェイス4001信号をSDRAMインタフェイス4002にスルーパスする(4203)。本処理により、メモリ装置4000はSDRAM互換メモリとして動作することが可能となる。
【0065】
受付た動作指示が、リードあるいはライトであり、かつ指定されたメモリアドレスが制御用レジスタ4031を指定している場合は、リード指示であるか、ライト指示であるかによって処理を分岐する(4204)。受付た動作指示がライトであった場合は、制御用レジスタ4031の指定されたアドレスに、指定されたデータを書込む(4205)。受付た動作指示がリードであった場合は、制御用レジスタ4031の指定されたアドレスに格納されたデータを所定の書式で、SDRAM互換インタフェイス4001を介してホスト4040に出力する(4207)。本処理により、メモリ装置4000は、SDRAMインタフェイスに信号ピンを追加することなく、ホスト4040からの動作指示を受付けること、並びにメモリ装置4000の動作状態等の各種情報をホスト4040に通知することが可能となる。
【0066】
次に、制御用レジスタ4031へのアクセスによりホスト4040から動作指示が発行された場合は、指定された動作を開始する(4206)。ここで動作は、例えばロード処理や、ストア処理や、アドレス対応付け処理などである。動作の実行中は、SDRAM4020へのアクセスの競合を防ぐため、例えばホスト4040のSDRAMアクセスを禁止するか、あるいはアクセスを無視する。あるいは、例えばSDRAM4020を複数個持つ構成にしたり、あるいは例えばSDRAM4020を複数バンクに独立してアクセス可能な構成にし、複数の処理を並行に実行できる構成としても良い。例えば4201〜4203、あるいは4201〜4206までの処理は、図25の4107、4108に示すようにホストからシャットダウン指示が発行するまで繰り返す。すなわち、ホスト4040はメモリ装置4000をSDRAM互換メモリとして使用することができる。
【0067】
なお、ここではメモリ装置4000内部にSDRAMを使用する例を説明したが、他のメモリ、例えばDDR−SDRAM(ダブルデータレートSDRAM)などを使用する構成とすることもできる。また、ここではメモリ装置4000とホスト4040を接続するインタフェイスとしてSDRAM互換インタフェイス4001を使用する例を説明したが、他のインタフェイス、例えばDDR−SDRAMインタフェイスを使用する構成とすることもできる。また、ここでは、不揮発メモリとしてフラッシュメモリ4020を使用する例を説明したが、他の不揮発性メモリを使用することもできる。
【0068】
次に、本発明を適用したメモリ装置4000のより詳細な実施形態について説明する。
【0069】
図1は、本発明を適用したメモリ装置101の実施形態の内部構成の一例を示している。メモリ装置101は、不揮発性メモリであるフラッシュメモリ102、揮発性メモリであるSDRAM(シンクロナスDRAM)103、及びこれらのメモリを制御するメモリ制御部104から構成される。メモリ制御部104は、ホスト111からの要求に応じて、ホスト111とメモリ装置101、並びにフラッシュメモリ102とSDRAM103間のデータ転送等を制御する。ホスト111は、通常、SDRAMインタフェイス112を介してSDRAM103を直接アクセスするが、特定アドレスへの書き込みを行うことにより、フラッシュメモリ102とSDRAM103間のデータ転送や、フラッシュメモリ102のフォーマット等、メモリ装置101の内部処理を指示することができる。ホスト111とは、例えば、携帯電話、携帯情報端末(PDA)、パーソナルコンピュータ、音楽再生(及び録音)装置、カメラ、ビデオカメラ、セットトップボックス端末等が該当する。
【0070】
メモリ制御部104は、データ転送制御部105、フラッシュメモリインタフェイス制御部106、SDRAMインタフェイス制御回路107、及びデータバッファ108から構成される。ホスト111がSDRAM103を直接アクセスする場合、データ転送制御部105及びSDRAMインタフェイス制御回路107はスルーパスされる。フラッシュメモリ102とSDRAM103間のデータ転送は、両デバイス間の転送速度差を吸収するため、データバッファ108を介して行われる。フラッシュメモリ102からデータバッファ108へのデータの転送(フラッシュメモリ102からの読み出し)の際は、フラッシュメモリインタフェイス制御部106内のECC制御回路109が、フラッシュメモリ102から読み出されたデータに誤りが無いかどうかをチェックし、誤りがある場合はデータの訂正を行う。その際、読み出し対象となるセクタが不良セクタである場合、代替セクタ制御回路110が不良セクタに対する代替セクタを検出し、検出された代替セクタからデータが読み出される。データバッファ108からフラッシュメモリ102へのデータの転送(フラッシュメモリ102への書込み)の際は、読み出されたデータはデータバッファ108からデータ転送制御部105を介してフラッシュメモリインタフェイス制御部106に転送される。フラッシュメモリインタフェイス制御部106は、転送データに対するECCを生成する。生成されたECCは、転送データと合わせてフラッシュメモリ102に書き込まれる。その際、書込み対象となるセクタが不良セクタである場合、代替セクタ制御回路110にて不良セクタに対する代替セクタを検出し、検出された代替セクタへデータが書き込まれる。
【0071】
図2は、SDRAM103並びにフラッシュメモリ102のアドレス空間並びに使用方法の一例を示す図である。SDRAM103のアドレス空間は、システム用ワーク領域201、コマンド/ステータス保持領域202、揮発領域203、及び不揮発領域204から構成される。システム用ワーク領域201には、ホスト111がシステムを管理するために必要な情報が格納される(但し、後述の揮発領域203に格納しても構わない)。コマンド/ステータス保持領域202は、メモリ装置101に対して内部処理を指示するために設けられる領域である。揮発領域203は、ホスト111がアプリケーションを処理する上で必要な情報を格納するための領域である。揮発領域203の内容は、メモリ装置101の電源が遮断される際に消去される。不揮発領域204には、電源遮断後も保持する必要のある情報が格納される。SRDAM103は揮発性メモリであるため、SDRAM103上の不揮発領域204に格納された情報は、電源遮断前にフラッシュメモリ102にコピーされ、フラッシュメモリ102上で保持される。
【0072】
上述のSDRAM103上のアドレス空間を利用して以下のような処理が可能となる。電源投入後に、フラッシュメモリ102上のプログラムデータをSDRAM102の揮発領域203にコピーし、ホスト111はSDRAM103上の揮発領域203をアクセスすることによりプログラムを利用することができる。この場合、電源遮断時に揮発領域203に格納されていたプログラムデータは破棄されるが、フラッシュメモリ102上にプログラムデータが保持されているので問題ない。また、電源投入後に、フラッシュメモリ102上のユーザデータをSDRAM103の不揮発領域204にコピーし、ホスト111はSDRAM102上の不揮発領域204をアクセスすることによりユーザデータを利用することができる。ユーザデータが変更若しくは追加されている場合は、電源遮断前にユーザデータはフラッシュメモリ102にコピーされ、フラッシュメモリ102上で保持される。
【0073】
図3は、ホスト111がメモリ装置101に対して指示する処理内容、即ちコマンドの一例を示す図である。コマンドのアドレスは上述のコマンド/ステータス保持領域202にマッピングされ、コマンド/ステータス保持領域202の先頭アドレスA209からオフセットアドレス301を加算したアドレスに配置される。アドレス0は、揮発領域203の先頭アドレス(ADRsdB210)を、アドレス1は、揮発領域203のサイズ(y)を指定する。アドレス2は、不揮発領域204の先頭アドレス(ADRsdC211)を、アドレス3は、不揮発領域204のサイズ(z)を指定する。これにより、SDRAM103上の任意のアドレス空間に揮発領域203並びに不揮発領域204をマッピングすることが可能となる。なお、本例では、コマンド/ステータス保持領域202は予め決められた固定値になっているが、上述と同様の規定を施すことにより、任意の空間にマッピングすることも可能である。この場合、ホストが最初にアクセスするためのコマンド/ステータス保持領域202の先頭アドレス(ADRsdA209)を、予め該メモリ装置101内部のレジスタやフラッシュメモリ102に格納しておく。アドレス4は、フラッシュメモリ102のフォーマットを指示する。アドレス5は、フラッシュメモリ102に対するデータ転送若しくは消去時の開始セクタアドレス(Dtx213)を指定する。アドレス6は、SDRAM103に対するデータ転送開始アドレス(Ctx212)を指定する。アドレス7は、フラッシュメモリ102とSDRAM103間のデータ転送サイズ、若しくはフラッシュメモリ102のデータ消去サイズを指定する。アドレス8は、フラッシュメモリ102とSDRAM103間のデータ転送を起動する。アドレス9は、省電力モードを指定する。アドレス9に対応するコマンドが発行された場合、フラッシュメモリ102、並びにメモリ102を制御するための回路への電源が遮断される。
【0074】
メモリ装置101は、ホスト111が発行したコマンドの処理状態をホスト111に通知するために、アドレスn+1にステータス/エラー情報314を格納する。ホスト111は、あるコマンドを発行した後、アドレスn+1で示される記憶領域にアクセスすることにより、発行コマンドの処理結果を知ることができる。
【0075】
図4は、ステータス並びにエラーの内容の一例を示す図である。Bit0は、コマンド処理中であることを示す(401)。Bit1は、処理が正常に終了したことを示す(402)。Bit2は、前述のECC訂正を行い、訂正可能であったことを示す(403)。Bit3は、ECC訂正を行ったが訂正不可能であったことを示す(404)。Bit4は、コマンドの処理が実行できなかったことを示す(405)。
【0076】
図5は、上述のコマンド発行時におけるシステムの処理の手順を示すフローチャートである。ホスト111は、上述のアドレスに対してデータをライトを行うことにより、メモリ装置101に対してコマンドを発行する(501)。コマンドを受け取ったメモリ装置101は、コマンドをデコードし(508)、デコード結果に基づいて発行コマンドに対する内部処理を実行する(509)。処理終了後、メモリ装置101は、結果をステータス/エラー情報を格納するアドレスn+1に書き込む(510)。ホスト111はアドレスをリードして(502)、コマンドで指示した処理が正常に終了したかどうか判定する(503)。正常に終了しなかった場合(505)は、コマンドで指示した処理をリトライするか、若しくは異常終了する(507)。
【0077】
本発明では、図1に示したメモリ制御部104に、上述の処理を実行するための機能を施している。以下、メモリ制御部104の中核を成すデータ転送制御部105について詳細に説明する。
【0078】
図6は、データ転送制御部105の内部構成を示す図である。データ転送制御部105は、コマンドデコーダ601、シーケンサ602、アドレスマッピングテーブル603、フラッシュアドレス(ADRfl)生成回路604、セクタカウンタ605、フラッシュ−バッファ転送回路606、SDRAM−バッファ転送回路607、SDRAMアドレス(ADRsd)生成回路608、MUX/DEMUX0(609)、バッファアドレス(ADRbu)生成回路610、及びMUX/DEMUX1(611)から構成される。コマンドデコーダ601は、ホスト111が発行したコマンドの内容を解釈する。シーケンサ602は、データ転送制御部105全体の処理を管理するものである。
【0079】
図7は、シーケンサ602の状態遷移の一例を示す図である。メモリ装置101に電源が投入された後、シーケンサ602は、SDRAMモード702に移行し、メモリ装置101はSDRAM103として動作する。その後、ホスト111が発行するコマンドによってシーケンサ602の状態が遷移する。ホスト11から、フラッシュメモリ102のデータ転送を起動するコマンドCMDtx706(図3に示したアドレス8)が発行された場合、シーケンサ602は、フラッシュ転送モード703に遷移する。データ転送の処理が終了し、そのステータス情報をライトするSTtx707(図3のアドレスn+1へのライト)の書き込み時に、シーケンサ602は、再度SDRAMモード702に遷移する。また、フラッシュメモリ102をフォーマットするコマンドCMDfm708(図3のアドレス4)が発行された場合、シーケンサ602はフラッシュフォーマットモード704に遷移し、処理終了後、ステータスの書き込みSTfm709実行後にSDRAMモード702に遷移する。フラッシュメモリ102上のデータを消去するコマンドCMDer710(図3のアドレス10)が発行された場合、シーケンサ602は、フラッシュデータ消去モード705に遷移し、処理終了後、ステータスの書き込みSTer711実行後にSDRAMモード702に遷移する。
【0080】
図6に戻って説明を続ける。アドレスマッピングテーブル603は、SDRAM103におけるアドレス空間上の不揮発領域204をフラッシュメモリ102の論理セクタアドレス205に割り当てるものである。ADRfl生成回路604は、フラッシュメモリ102上の論理セクタアドレスを生成する。セクタカウンタ605は、ホスト111から指示された転送サイズに基づき、フラッシュメモリ102のデータ転送セクタ数を管理する。フラッシュ−バッファ転送回路606は、フラッシュメモリ102とデータバッファ108間のデータ転送を実行する。同様に、SDRAM−バッファ転送回路607は、SDRAM103とデータバッファ108間のデータ転送を実行する。ADRsd生成回路608は、SDRAM103にアクセスするためのアドレスを生成する。MUX/DEMUX0(609)は、書き込み時、ホスト111と接続されたSDRAMインタフェイス112バスとデータ転送制御部105において生成されたSDRAMインタフェイスバス112のいずれかを選択し、SDRAMインタフェイス制御回路107に送る。また、読み出し時は、SDRAMインタフェイス制御回路107から送られるSDRAM103のデータを、ホスト111と接続されたSDRAMインタフェイス112のデータバス若しくはSDRAM−バッファ転送回路607に送る。ADRbu生成回路610は、データバッファ108のアドレスを生成する。MUX/DEMUX1(611)は、データバッファ108への書き込み時において、フラッシュ−バッファ転送回路606若しくはSDRAM−バッファ転送回路607の出力データバスをデータバッファ108に送る。また、データバッファ108からデータを読み出す場合は、フラッシュ−バッファ転送回路606若しくはSDRAM−バッファ転送回路607に該データを送る。
【0081】
以下、フラッシュメモリ102からSDRAM103へのデータ転送処理を例に挙げ、各回路の動作を説明する。
【0082】
ホスト111は、データ転送を起動する前に、フラッシュメモリ102側の転送始論理セクタアドレス(Dtx213)を指定する(図3のアドレス5)。アドレスの指定方法としては、Dtx213を指定する以外に、SDRAM103上のアドレス(Ctx212)を指定する方法もある。その場合、アドレスマッピングテーブル603に基づいて、Ctx212はDtx213に変換される。Dtx213はADRfl生成回路604にて保持され、フラッシュメモリインタフェイス制御部106に送られる。ホスト111は、データ転送サイズを設定するコマンド(図3のアドレス7)を用いて転送サイズを設定する。設定された転送サイズは、セクタカウンタ605にて保持される。ここで、転送サイズの指定がバイト単位であれば、転送サイズの情報は、カウンタ605にてセクタ単位に変換され、フラッシュメモリインタフェイス制御部106に送られる。更にホスト111は、SDRAM103の転送開始アドレスCtx212を設定するコマンド(図3のアドレス6)を発行する。Ctx212はADRsd生成回路608にて保持される。
【0083】
データ転送を起動するコマンドCMDtx706が発行されると、コマンドデコーダ601においてそのコマンド内容が解釈される。シーケンサ602は、フラッシュ転送モード703に状態遷移し、MUX/DEMUX0(609)を介して、ADRsd生成回路608並びにSDRAM−バッファ転送回路607の出力をSDRAMインタフェイス制御回路107に送るように指示する。また、フラッシュメモリインタフェイス制御部106に対して、論理セクタアドレスDtx213から指定された転送セクタ数のデータをフラッシュメモリ102から読み出すように指示する。読み出されたセクタデータ(SCTn)は、フラッシュ−バッファ転送回路606及びMUX/DEMUX1(611)を介してデータバッファ108に転送される。その後、データは、データバッファ108からSDRAM−バッファ転送回路607及びMUX/DEMUX0(609)を介してSDRAMインタフェイス制御回路107に転送され、SDRAM103に書き込まれる。
【0084】
図8は、データ転送のタイミング例を示した図である。一つのセクタ(SCT0(802))がフラッシュメモリ102からデータバッファ108に転送されると、データバッファ108からSDRAM103へのデータ転送が開始され(804)、併せてフラッシュメモリ102からデータバッファ108へのデータ転送が継続される(SCT1の転送)。なお、SDRAM103からフラッシュメモリ102へのデータ転送は上述の転送経路とは逆の経路で行われる。
【0085】
以上説明したように、フラッシュメモリ102からSDRAM103へのデータ転送をホスト111からのコマンドに応じてあらかじめ実施しておくことによって、ホスト111は、SDRAM103上のデータを高速にアクセスすることができる。またSDRAM103上のデータをフラッシュメモリ102に転送することにより、電源遮断後でもデータを保持することができる。
【0086】
図9は本発明を適用したメモリ装置901の第二の実施形態を示す図である。メモリ装置901は、ホスト906との接続インタフェイスとして、図1で示したSDRAMインタフェイス112の他に、MultiMediaCard(MultiMediaCardはInfineonTechnologiesAGの登録商標。以下、「MMC」と略記する)インタフェイス907を持つ。MMCは、フラッシュメモリ102を記憶媒体とするメモリカードであり、ホスト906はMMCコマンドを発行することによってフラッシュメモリ102のデータ読み出し並びに書き込みを行う。即ち、メモリ装置901は、前述のメモリ間転送等の機能の他に、MMCとしての機能も持つ。従って、メモリ装置901におけるMMCインタフェイス907は、MMC仕様に準拠するものである。
【0087】
MMCインタフェイス907は、図10に示すように、チップセレクト端子(CS)1001、コマンド端子(CMD)1002、2本のグランド端子(GND1)1003、1006、ホスト906からの電源供給端子(VCC1)1004、クロック端子(CLK1)1005、及びデータ(DAT)1007の7つの端子から構成される。CS1001は、MMCのSPIモードの動作において使用される入力端子であり、ロウレベルでアクティブとなる。CMD1002は、ホスト906が、MMC仕様に準拠したメモリカードコマンドをメモリ装置901に送信したり、同仕様に準拠したメモリカードレスポンスをメモリ装置901から受信するために使用する入出力端子である。DAT1007は、ホスト906が、メモリカードインタフェイス仕様に準拠した形式の入力データをメモリ装置901に送信したり、同仕様に準拠した形式の出力データをメモリ装置901から受信するために使用する入出力端子である。CLK1(1005)は、ホスト906から供給されるクロック信号が入力される端子である。ホスト906が、CMD1002を通してメモリカードコマンド、メモリカードレスポンスを送受信したり、DAT1007を通してホストデータを送受信するときに、CLK1(1005)にクロック信号が入力される。なお、MMCインタフェイス907の転送速度がシステム上ボトルネックとなる場合、MMCインタフェイス907の仕様を変更して、CLK1(1005)のクロック周波数を高めたり、DAT1007を複数本使用してデータをパラレルに転送してもよい。
【0088】
メモリ装置901の内部構成は、図1で示したメモリ装置101の内部構成と比べて、MMCインタフェイス制御部903が追加されており、MMCインタフェイス制御部903がデータ転送制御部905に接続されている点が異なる。ここで、前述の実施形態では、ホスト111からのコマンド発行がSDRAMインタフェイス112を介して実行される例を挙げたが、本実施形態の構成では、MMCインタフェイス907を介して実行することが可能である。即ち、図3に示したコマンドを、MMCのコマンドとして、ホスト906からメモリ装置901に発行することができる。発行されたコマンドは、MMCインタフェイス制御部903においてコマンド制御回路904がその内容を解釈する。これは前述の図6で示したコマンドデコーダ601と同じ機能である。
【0089】
また、上述と同様の機能を実現する形態として、図13に示すような内部構成を取ってもよい。これは、MMCとしての機能を実現するために必要な機能を有するMMC制御部1302及びフラッシュメモリ102、メモリ統括制御部1304、並びにSDRAM103から構成される。メモリ統括制御部1304は、MMCインタフェイス907とSDRAMインタフェイス112を変換する機能を持つインタフェイス変換制御回路1305及びSDRAMインタフェイス制御回路107から構成される。この構成の場合、MMC用の制御LSIをそのまま流用することによって、MMCインタフェイス907を持たないホスト1306に対しても(SDRAMインタフェイス112を介して)第二の実施形態と同様の機能を提供することができる。
【0090】
なお、本発明は上記MMCインタフェイス907に限らず、様々なインタフェイスに適用できる。図11及び図12は、それぞれ、本発明をSDカード(幅24ミリメートル、長さ32ミリメートル、厚さ2。1ミリメートルで、9つの外部端子をもち、フラッシュメモリを搭載した小型メモリカード)とメモリースティック(メモリースティックはソニー株式会社の登録商標である)のインタフェイスに適用したメモリ装置1101、1201の内部構成の概略を示す図である。
【0091】
SDカード外部端子は9つの端子からなり、それらの位置は、端からData2端子1104、Data3端子1105、Com端子1106、Vss端子1107、Vdd端子1108、Clock端子1109、Vss端子1110、Data0端子1111、Data1端子1112の順で並んでいる。Vdd端子1108は電源供給端子、Vss端子1107はグランド端子、Data0端子1111とData1端子1112とData2端子1104とData3端子1105はデータ入出力端子、Com端子1106はコマンド入出力端子、Clock端子1109はクロック入力端子である。この場合、外部に接続するSDカード対応ホスト1114とのインタフェイス仕様にMMCと違いがあるものの、MMC外部端子と非常に類似した外部端子を持ち、MMCと同様に外部からコマンドを発行することにより動作する特徴を持つため、本発明を適用することができる。
【0092】
一方、メモリースティック外部端子は10個の端子からなり、それらの位置は、端からGnd端子1204、BS端子1205、Vcc端子1206、予約端子Rsvを1つ飛ばしてDIO端子1207、INS端子1208、予約端子Rsvを1つ飛ばしてSCK端子1209、Vcc端子1210、Gnd端子1211の順で並んでいる。Vcc端子1206は電源供給端子、Gnd端子1204とはグランド端子、DIO端子1207はコマンドおよびデータ入出力端子、SCK端子1209はクロック入力端子である。メモリースティックは、外部に接続するメモリースティック対応ホスト1213とのインタフェイス仕様にMMCと違いがあるものの、MMCと同様に外部からコマンドを発行することにより動作する特徴を持つため、本発明を適用することができる。
【0093】
以上説明したように、MMCインタフェイス907並びにSDRAMインタフェイス112を有するホスト906は、メモリ装置901を、高速な揮発並びに不揮発メモリとして使用するだけでなく、MMCとしても使用することが可能となる。
【0094】
図14は、本発明を適用したメモリ装置1401の第三の実施形態を示した図である。メモリ装置1401は、ホスト1408とのインタフェイスとしてMMCインタフェイス1407を持つ。なお、本実施形態のメモリ装置1401はカード形状であるが、形状についてはカードの形状だけでなく、前述の実施形態と同様に、メモリ装置として扱うこともできる。図14におけるメモリ装置1401の内部構成は、図9で示したメモリ装置901の内部構成と比べて、MMCインタフェイス制御部1403においてコマンドリッパ−回路1405が追加されており、その出力がデータ転送制御部1406に接続されている点が異なる。また、ホスト1408との接続にはSDRAMインタフェイス112は無く、MMCインタフェイス1407だけである点が異なる。その他の構成は図9と変わらない。
【0095】
前述の実施形態では、ホスト111、906からSDRAM103へのアクセスはSDRAMインタフェイス112を介して行われる例を示したが、本実施形態の構成では、SDRAM103へのアクセスも、MMCインタフェイス1407を介して行われる。即ち、メモリ装置1401は、MMCとしての機能の他に、MMCインタフェイス1407を介して、フラッシュメモリ102とSDRAM103間のデータ転送を指示するコマンドを発行したり、MMCインタフェイス1407からSDRAM103へのアクセスを行うことが出来る。上述のアクセスを実現する一例として、例えば、新たに定義したMMCコマンドを用いてコマンドのデータ領域にSDRAM103へのデータ書き込み若しくは読み出し命令をカプセル化してMMC1401に発行することが考えられる。この場合、MMCインタフェイス制御部1403のコマンド制御回路1404においてSDRAM103へのアクセスを要求するコマンドを検出し、コマンドリッパ−回路1405においてアクセス要求情報を取り出して、データ転送制御部1406のコマンドデコーダ601(図6参照)に送ることにより、前述の実施形態と同様に、メモリ制御部1402からSDRAM103へのアクセスが可能になる。
【0096】
以上説明したように、MMCインタフェイス1407だけを用いて、MMCとしての機能だけでなく、高速な揮発並びに不揮発メモリとしても使用することが可能となる。
【0097】
なお、本発明で示したメモリ装置101、901、1301、又は1401は、どのような形状にも適用できる。例えば、各メモリチップと制御用チップを1つのパッケージに収納したLSIにしてもよいし、全ての機能を1つの半導体チップ上に収納してもよい。更に、上述したMMC等メモリーカードの形状に収納してもよい。更に、本発明で示した不揮発性メモリ並びに揮発性メモリの種別については各々フラッシュメモリ102、SDRAM103に限るものではなく、例えば不揮発性メモリについて言えば、強誘電体メモリやMRAM(磁気メモリ)等でも同様の処理が可能である。
【0098】
次に、本発明のSDRAM103上の不揮発領域管理方法の詳細について述べる。図15は、SDRAM103の不揮発領域の構成、及びSDRAM103の不揮発領域とフラッシュメモリ102の記憶領域との対応関係を示す図である。
【0099】
SDRAM103の不揮発領域は、図のように、用途別に領域SA1501、領域SB1502、領域SC1503、領域SD1504、及び領域SE1505に分けて管理される。各々の領域はフラッシュメモリ102上の領域FA1510、領域FB1511、領域FC1512、領域FD1513、領域FE1(1514)、及び領域FE2(1515)に対応付けられている。SDRAM103上の領域とフラッシュメモリ102上の領域の対応付けは、一対一でなくてもよく、領域SE1505と領域FE1(1514)及び領域FE2(1515)とを対応付けてもかまわない。尚、これ以上領域を分割して管理してもかまわない。
【0100】
領域の管理は、アドレスマッピングテーブル603内に領域管理テーブル1601を用意し、その情報に基づいてデータ転送制御部105が管理する。尚、領域管理テーブル1601は、他の記録装置上に用意してもかまわない。図16は、領域管理テーブル1601の具体例を示す図である。領域管理テーブル1601は、フラッシュメモリ102の先頭から、順次領域を割り当てた時の各領域の属性情報を管理する。例えば、SDRAMの不揮発領域が、図15に示すような領域構成である場合、図16に示すように各領域の属性が領域管理テーブル1601に割り当てられる。各領域に属性を設定することで、ホスト111の使用条件に応じてアクセス方式などの特性を設定することが可能となる。
【0101】
図16において、OFFSET ADDRESSの値pは、割り当て可能な領域数の最大値に設定される。領域管理テーブル1601の領域情報が保存されていない各領域は、予備領域1607として次回領域割り当て時に使用するために、データ転送制御部105により管理される。
【0102】
図17は、図16で説明した領域属性情報の一例である。
【0103】
SDRAM領域の先頭アドレス1702は、SDRAM領域の開始アドレスを指定する。フラッシュ領域の先頭アドレス1703は、SDRAM領域の先頭アドレス1702に対応するフラッシュメモリ領域の開始アドレスを指定する。SDRAM領域サイズ1704は、SDRAM領域のサイズを指定する。更新回数1705は、フラッシュメモリ102からSDRAM103へデータを転送した後、SDRAM103上のデータが何度ホスト111により更新されたかを記録する。SDRAM103からフラッシュメモリ102へデータが書き込まれると0にクリアされる。更新回数閾値1706は、0が指定されると、SDRAM領域が更新されるたびにフラッシュメモリ102へデータが書き込まれる。1以上の値が指定されると、SDRAM領域が指定回数更新されるまでフラッシュメモリ102へデータが書き込まれない。プレイレース1707は、0が指定されると、SDRAM103が更新されても対応するフラッシュメモリ領域上のデータが削除されない。1が指定されると、対応するフラッシュメモリ領域上のデータが削除される。データ複製数1708は、0が指定されると、SDRAM103上のデータが複製されない。1以上が指定されると、SDRAM103上のデータを指定数複製してフラッシュメモリ102へデータが書き込まれる。ウェアレベリング数1709は、SDRAM103からフラッシュメモリ102へデータを書き込むたびに書き込む位置を変化させるウェアレベリングという処理を制御するパラメータである。0が指定されると、SDRAM103からフラッシュメモリ102へデータを書き込む際に、ウェアレベリングが行われない。1以上の値が指定されると、SDRAM103からフラッシュメモリ102へデータを書き込む際に、指定数のウェアレベリングが行われる。例えば、1が指定された場合、図15の領域SEおよび領域FE1(1514)、FE2(1515)のように、SDRAM領域の2倍の領域がフラッシュメモリ102へ準備され、SDRAM領域SE1505からフラッシュメモリ102へデータを書き込む際に、領域FE1(1514)と領域FE2(1515)に交互にデータが書き込まれる。ウェアレベリング値1710は、ウェアレベリング有効時に、次に書き込むべき位置を計算するために必要なウェアレベリング値である。値がウェアレベリング数1709と等しくなると、0にクリアされる。ユーザ定義属性1711は、ホスト111が設定可能な領域ごとのユーザ定義属性値である。
【0104】
図18は、メモリ装置101起動時の領域設定データ設定処理と初期化処理の手順を示したフローチャートである。メモリ装置101が起動すると、メモリ制御部104、SDRAM103、及びフラッシュメモリ102が初期化される(1801)。初期化が終了すると、メモリ制御部104は、領域設定データリード指示をフラッシュメモリ102へ発行する(1802)。フラッシュメモリ102は、領域設定データをメモリ制御部104へ送信する(1804)。メモリ制御部104は、領域設定データをデータバッファ108へ保存する(1803)。次に、メモリ制御部104は、領域設定情報に基き、初期データをフラッシュメモリ102からSDRAM103へ転送するよう指示し、データの転送が行われる(1805)。データリード処理の詳細については後述する。復号メモリ装置101は、必要なデータがすべて読み込まれるまでデータリード処理を繰り返す(1806)。データの転送が終了すると、メモリ装置101は、装置自身の初期化終了をホスト111へ報告する(1807)。その後、ホスト111及びメモリ装置101は通常動作を開始する(1808)。
【0105】
図19は、ホスト111が領域データを更新するときの手順を示したフローチャートである。ホスト111は、領域設定データをメモリ装置101へライトする(1901)。メモリ制御部104は、このデータをデータバッファ108へ書き込み、データの更新をする(1902)。その後、メモリ制御部104は、領域設定データをフラッシュメモリ102の領域設定データ記録領域へ書き込む(1903、1904)。
【0106】
図20は、ホスト111がメモリ装置101へデータライトしたときの処理の手順を示したフローチャートである。
【0107】
ホスト111は、メモリ装置101へデータをライトする(2001)。このとき、メモリ制御部104は、ホスト111のアクセスアドレスを検出する(2002)。ホスト111がライトしたデータはSDRAM103へ記録される(2003)。メモリ制御部104は、検出したアクセスアドレスからホスト111のアクセス領域を調べ、領域管理テーブル1601上の領域属性を参照する(2004)。その後、メモリ制御部104は、領域属性の更新回数値1705に1を加える(2005)。更新回数値1705が更新回数閾値1706以上になると、メモリ制御部104は、SDRAM103からフラッシュメモリ102へのデータライト処理(2007)の実行を指示し、その後更新回数値1705をクリアする(2008)。更新回数1705が更新回数閾値1706に満たなければ、メモリ制御部104は、プレイレース1707の有効判定を行う(2009)。プレイレース1707が有効なら、メモリ制御部104は、イレースすべき領域をフラッシュメモリ102へ指示する(2010)。フラッシュメモリ102は、指定領域のイレースを行う(2011)。プレイレース1707が無効なら、メモリ制御部104は、処理を終了する。
【0108】
図21は、データライト処理2007の詳細処理を示したフローチャートである。
【0109】
メモリ制御部104は、ウェアレベリングが有効か判定する(2101)。有効なら、メモリ制御部104は、ウェアレベリング値に1を加える(2102)。ウェアレベリング値1710がウェアレベリング数1709以上になったら、メモリ制御部104は、ウェアレベリング値1710をクリアする(2103、2104)。次に、メモリ制御部104は、ウェアレベリング値で示す領域へSDRAM103からフラッシュメモリ102へデータ転送を指示し(2105)、データ転送終了後処理を終了する(2110)。ウェアレベリングが無効なら、メモリ制御部104は、データ複製数判定を行う(2106)。複製数が1以上なら、メモリ制御部104は、SDRAM103からフラッシュメモリ102へ指定数の複製データ転送を指示し(2108)SDRAM103及びフラッシュメモリ102は、SDRAM103からフラッシュメモリ102へのデータ転送を行う(2107)。次に、メモリ制御部104は、SDRAM103およびフラッシュメモリ102へデータライトを指示し(2109)、SDRAM103及びフラッシュメモリ102は、通常のデータライトを行う(2110)。
【0110】
図22は、メモリ装置101の動作を終了する時の処理を示したフローチャートである。
【0111】
ホスト111は、メモリ動作停止指示を発行する(2201)。メモリ装置101は、SDRAM103上の未保存データのうち、保存すべきデータをすべてフラッシュメモリ102へ書き込む(2007)。SDRAM103上の保存すべき全領域のフラッシュメモリ102への書き込みが終了すると(2202)、メモリ装置101は、データ保存完了報告2203をホスト111へ発行する。その後、ホスト111はメモリ停止処理を行う(2204)。
【0112】
図23は、フラッシュメモリ102からSDRAM103へのデータ転送時の詳細処理を示したフローチャートである。
【0113】
メモリ制御部104は、データリードを実行する領域のウェアレベリング有効判定を行う(2300)。ウェアレベリングが有効なら、メモリ制御部104は、ウェアレベリング値1710で示すフラッシュメモリ領域からSDRAM103へデータ転送を行うよう指示し、データの転送が行われる(2301、2303)。ウェアレベリング無効なら、メモリ制御部104は、通常のデータリードの実行を指示し、通常のデータリードが行われる(2302、2303)。尚、データの転送時に、ECC制御回路109がリードデータのECCエラー訂正を自動的に行っても良い。これらの処理終了後、メモリ制御部104は、SDRAM103上に読み出されたデータのエラー判定(2304)を行い、エラーが発生していなければ処理を終了する。エラーが発生していれば、メモリ制御部104は、データ複製領域が有効か否か判定する(2305)。有効なら、メモリ制御部104は、SDRAM103及びフラッシュメモリ102に、複製領域からのデータリードを指示する(2306、2308)。その後、メモリ制御部104は、再びエラー判定を行い(2304)エラーが発生していなければ処理を終了する。エラーが発生していれば再び複製データが存在するか判定する(2305)。メモリ制御部104は、複製データがなくなるまでこの処理を実行し、複製データがなくなってもエラーがなくならない場合は、エラー処理を実行する(2307)。エラー処理の例としては、その領域を不良セクタとして代替セクタ回路110が処理をして代替セクタを用意し、エラーが発生したことをホスト111へ通知する等が考えられる。
【0114】
【発明の効果】
本発明によれば、揮発性メモリと不揮発性メモリから構成されるメモリ装置において、高速かつ不揮発なメモリシステムをホストに合わせて自由に構築することができる。即ちホストがアクセス可能な揮発領域に、不揮発な領域を自由にマッピングすることができる。また、任意のアドレス範囲に対して任意のタイミングで揮発メモリと不揮発メモリ間のデータ転送を実行することが可能である。更に、MMC等のカードインタフェイスとの併用やカードインタフェイスだけで、揮発性メモリ、不揮発性メモリへのアクセスが可能となるため使い勝手が向上できる。
【図面の簡単な説明】
【図1】本発明を適用したメモリ装置の内部構成を示す図である。
【図2】本発明を適用したSDRAM並びにフラッシュメモリのアドレス空間を示す図である。
【図3】本発明を適用したコマンド群の一例を示す図である。
【図4】本発明を適用したステータス/エラー情報の一例を示す図である。
【図5】本発明を適用したホスト並びにメモリ装置の処理フローチャートを示す図である。
【図6】本発明を適用したデータ転送制御部の内部構成を示す図である。
【図7】本発明を適用したシーケンサの状態遷移を示す図である。
【図8】本発明を適用したデータ転送のタイミングチャートを示す図である。
【図9】本発明を適用した他のメモリ装置の内部構成を示す図である。
【図10】本発明を適用したMMCインタフェイスの端子構成を示す図である。
【図11】本発明を適用したSDカードインタフェイスの端子構成を示す図である。
【図12】本発明を適用したメモリスティックインタフェイスの端子構成を示す図である。
【図13】本発明を適用した更に他のメモリ装置の内部構成を示す図である。
【図14】本発明を適用した更に他のメモリ装置の内部構成を示す図である。
【図15】本発明を適用したSDRAM並びにフラッシュメモリのアドレス空間を示す図である。
【図16】本発明を適用したSDRAM並びにフラッシュメモリのアドレス空間管理テーブルを示す図である。
【図17】本発明を適用したアドレス空間管理テーブルの詳細を示す図である。
【図18】本発明を適用したホスト並びにメモリ装置の起動時の処理フローチャートを示す図である。
【図19】本発明を適用したホスト並びにメモリ装置のアドレス空間管理テーブル更新時の処理フローチャートを示す図である
【図20】本発明を適用したホスト並びにメモリ装置のホストデータライト時の処理フローチャートを示す図である。
【図21】本発明を適用したメモリ装置のフラッシュメモリデータライト時の処理フローチャートを示す図である。
【図22】本発明を適用したホスト並びにメモリ装置の動作終了時の処理フローチャートを示す図である。
【図23】本発明を適用したメモリ装置のフラッシュデータリード時の処理フローチャートを示す図である。
【図24】本発明を適用したメモリ装置の構成例を示す図である。
【図25】本発明を適用したメモリ装置の電源供給開始時から電源供給停止時までの処理フローの一例を示す図である。
【図26】本発明を適用したメモリ装置のSDRAM互換メモリ動作の処理フローの一例を示す図である。
【符号の説明】
101、4000…メモリ装置、102、4020…フラッシュメモリ、103、4010…SDRAM、105…データ転送制御部、106…フラッシュメモリインタフェイス制御部、112、4001…SDRAMインタフェイス、601…コマンドデコーダ、602…シーケンサ、606…フラッシュ−バッファ転送回路、607…SDRAM−バッファ転送回路、903…MMCインタフェイス制御部、907…MMCインタフェイス、1302…MMC制御部、1304…メモリ統括制御部、1305…インタフェイス変換制御回路、1401…複合型メモリカード、1405…コマンドリッパー回路[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a memory device using a volatile memory and a nonvolatile memory, and relates to the construction of a high-speed and inexpensive memory system.
[0002]
[Prior art]
In a memory system using a volatile memory and a non-volatile memory, as described in JP-A-2001-5723, the contents of the non-volatile memory are copied to the volatile memory when the power is turned on, and the volatile memory is transferred from the host. There are ways to access and use. In that case, when the power is shut off, the contents of the volatile memory are copied to the non-volatile memory, the processing result is notified to the host using a dedicated line, and the power is shut off safely. Hold.
[0003]
[Problems to be solved by the invention]
In the above prior art, data transfer between the volatile memory (DRAM) and the non-volatile memory (flash memory) is performed only at power-on or power-off, so the memory system is used after power-on. No consideration is given to performing the data transfer during the process. Further, since the data transfer is intended for the entire nonvolatile memory, it takes time to transfer a large-capacity memory, and it takes time to prepare for use as a memory system. Further, since the dedicated line is used for notifying the host that the copy process has been completed when the power is turned off, it cannot be controlled only by the existing volatile memory interface. Furthermore, it is not considered to access the nonvolatile memory from the host. Further, the difference between the data transfer rate of the volatile memory and the data transfer rate of the nonvolatile memory is not considered.
[0004]
An object of the present invention is to provide a memory device that can control data transfer between a volatile memory and a nonvolatile memory from a host and has improved controllability from the host.
[0005]
Alternatively, it is an object of the present invention to provide a memory device that can access a nonvolatile memory from a host and has improved controllability from the host.
[0006]
[Means for Solving the Problems]
In the present invention, the control circuit receives and interprets a command from the host, and starts data transfer between the volatile memory and the non-volatile memory in response to the interpreted command.
[0007]
Alternatively, according to the present invention, the control circuit is configured to switch between the volatile memory and the nonvolatile memory in response to an access command (including data read and data write) to a predetermined address on the volatile memory from the host. Data transfer in between.
[0008]
Alternatively, according to the present invention, the first interface located between the host and the control circuit is connected between the host and the control circuit, and the first interface for inputting / outputting data to be read / written to / from the volatile memory. The positioned second interface inputs / outputs data to be read / written from / to the nonvolatile memory.
[0009]
Alternatively, according to the present invention, an interface located between the host and the control circuit inputs / outputs data to be read / written to / from the volatile memory and inputs / outputs data to / from the nonvolatile memory to / from the nonvolatile memory.
[0010]
Alternatively, in the present invention, the holding circuit holds transfer data between the volatile memory and the nonvolatile memory.
[0011]
DETAILED DESCRIPTION OF THE INVENTION
The
[0012]
The
[0013]
The
[0014]
The operation program is, for example, various applications such as an OS (operation system), a driver, a JAVA virtual machine, a JAVA applet, etc. (“JAVA” is a registered trademark of Sun Microsystems). Further, the information processing here is, for example, operation control of each hardware constituting the information terminal, or processing such as data calculation, recording and reproduction of moving images and sounds. The
[0015]
The
[0016]
The instruction reception function and the status notification function are performed by the
[0017]
Here, since the
[0018]
Next, examples of functions of the
[0019]
The
[0020]
The store function is executed when the operation state of the
[0021]
The
The
[0022]
The load function is executed when the operation state of the
[0023]
The
[0024]
Data transfer in the store function and load function is performed between addresses associated by the address association function. The address association function is performed based on the address association information. In addition, there may be a defective area in the
[0025]
The
[0026]
Next, the configuration of the
The
[0027]
The
[0028]
In the
[0029]
The SDRAM
[0030]
An SDRAM
[0031]
With the configuration, the
[0032]
The SDRAM
[0033]
The
[0034]
The
[0035]
Part or all of the
[0036]
When the
[0037]
The
[0038]
The designation of the address of the
[0039]
The
[0040]
The
[0041]
Next, a configuration example of the memory area of the
[0042]
The
[0043]
The
[0044]
Of the memory area of the
[0045]
Here, the data stored in the
[0046]
The
[0047]
Since the
[0048]
Next, an example of a data transmission path in the
[0049]
The
[0050]
The register read 4052 is a path for the
[0051]
Next, an example of the operation of the
[0052]
FIG. 25 is a flowchart showing an example of the operation of the
[0053]
Next, an example of the flow of load processing will be described. When the supply voltage rises to a value at which the
[0054]
With the above processing, access from the
[0055]
Next, various control information is read from the control
[0056]
Next, based on the address association information in the read
[0057]
When the load process is completed, the
[0058]
Next, an example of the flow of store processing will be described. When receiving the shutdown instruction from the
[0059]
Next, the data in the
[0060]
Next, various control signals stored in the
[0061]
When the above-described procedure is executed, the data held in the
[0062]
Next, the operation when the
[0063]
FIG. 26 is a diagram showing an example of a processing flow when the
[0064]
Next, the process branches according to the received operation instruction. If the received operation instruction is read or write, the memory address designated by the
[0065]
If the received operation instruction is read or write and the specified memory address specifies the
[0066]
Next, when an operation instruction is issued from the
[0067]
Although an example in which the SDRAM is used in the
[0068]
Next, a more detailed embodiment of the
[0069]
FIG. 1 shows an example of the internal configuration of an embodiment of a
[0070]
The
[0071]
FIG. 2 is a diagram showing an example of the address space and usage method of the
[0072]
The following processing can be performed using the address space on the
[0073]
FIG. 3 is a diagram illustrating an example of processing contents, that is, commands instructed by the
[0074]
The
[0075]
FIG. 4 is a diagram showing an example of the status and error contents. Bit0 indicates that command processing is in progress (401). Bit1 indicates that the process has been completed normally (402).
[0076]
FIG. 5 is a flowchart showing a processing procedure of the system when the command is issued. The
[0077]
In the present invention, the
[0078]
FIG. 6 is a diagram illustrating an internal configuration of the data
[0079]
FIG. 7 is a diagram illustrating an example of state transition of the
[0080]
Returning to FIG. 6, the description will be continued. The address mapping table 603 assigns the
[0081]
Hereinafter, the operation of each circuit will be described by taking as an example data transfer processing from the
[0082]
The
[0083]
When a
[0084]
FIG. 8 is a diagram illustrating an example of data transfer timing. When one sector (SCTO (802)) is transferred from the
[0085]
As described above, by executing data transfer from the
[0086]
FIG. 9 is a diagram showing a second embodiment of the
[0087]
As shown in FIG. 10, the
[0088]
Compared to the internal configuration of the
[0089]
Further, as an embodiment for realizing the same function as described above, an internal configuration as shown in FIG. 13 may be taken. This is composed of an
[0090]
The present invention is not limited to the
[0091]
The SD card external terminal is composed of nine terminals, and these positions are, from the end,
[0092]
On the other hand, the Memory Stick external terminal is composed of 10 terminals, and the positions thereof are GND terminal 1204,
[0093]
As described above, the
[0094]
FIG. 14 is a diagram showing a third embodiment of a
[0095]
In the above-described embodiment, an example in which the access to the
[0096]
As described above, by using only the
[0097]
Note that the
[0098]
Next, details of the non-volatile area management method on the
[0099]
As shown in the figure, the non-volatile area of the
[0100]
Area management is performed by preparing the area management table 1601 in the address mapping table 603 and managing the data
[0101]
In FIG. 16, the value p of OFFSET ADDRESS is set to the maximum number of areas that can be allocated. Each area in which area information in the area management table 1601 is not saved is managed by the data
[0102]
FIG. 17 is an example of the region attribute information described in FIG.
[0103]
The start address 1702 of the SDRAM area designates the start address of the SDRAM area. The start address 1703 of the flash area designates the start address of the flash memory area corresponding to the start address 1702 of the SDRAM area. The SDRAM area size 1704 specifies the size of the SDRAM area. The
[0104]
FIG. 18 is a flowchart showing a procedure of area setting data setting processing and initialization processing when the
[0105]
FIG. 19 is a flowchart showing a procedure when the
[0106]
FIG. 20 is a flowchart showing a processing procedure when the
[0107]
The
[0108]
FIG. 21 is a flowchart showing detailed processing of the
[0109]
The
[0110]
FIG. 22 is a flowchart showing processing when the operation of the
[0111]
The
[0112]
FIG. 23 is a flowchart showing detailed processing at the time of data transfer from the
[0113]
The
[0114]
【The invention's effect】
According to the present invention, in a memory device composed of a volatile memory and a nonvolatile memory, a high-speed and nonvolatile memory system can be freely constructed according to the host. That is, a non-volatile area can be freely mapped to a volatile area accessible by the host. Further, it is possible to execute data transfer between the volatile memory and the nonvolatile memory at an arbitrary timing with respect to an arbitrary address range. Furthermore, since the volatile memory and the non-volatile memory can be accessed only in combination with a card interface such as MMC or only with the card interface, the usability can be improved.
[Brief description of the drawings]
FIG. 1 is a diagram showing an internal configuration of a memory device to which the present invention is applied.
FIG. 2 is a diagram showing an address space of an SDRAM and a flash memory to which the present invention is applied.
FIG. 3 is a diagram illustrating an example of a command group to which the present invention is applied.
FIG. 4 is a diagram showing an example of status / error information to which the present invention is applied.
FIG. 5 is a diagram showing a processing flowchart of a host and a memory device to which the present invention is applied.
FIG. 6 is a diagram showing an internal configuration of a data transfer control unit to which the present invention is applied.
FIG. 7 is a diagram showing a state transition of a sequencer to which the present invention is applied.
FIG. 8 is a timing chart of data transfer to which the present invention is applied.
FIG. 9 is a diagram showing an internal configuration of another memory device to which the present invention is applied.
FIG. 10 is a diagram showing a terminal configuration of an MMC interface to which the present invention is applied.
FIG. 11 is a diagram showing a terminal configuration of an SD card interface to which the present invention is applied.
FIG. 12 is a diagram showing a terminal configuration of a memory stick interface to which the present invention is applied.
FIG. 13 is a diagram showing an internal configuration of still another memory device to which the present invention is applied.
FIG. 14 is a diagram showing an internal configuration of still another memory device to which the present invention is applied.
FIG. 15 is a diagram showing an address space of an SDRAM and a flash memory to which the present invention is applied.
FIG. 16 is a diagram showing an address space management table of SDRAM and flash memory to which the present invention is applied;
FIG. 17 is a diagram showing details of an address space management table to which the present invention is applied.
FIG. 18 is a diagram showing a processing flowchart when starting up a host and a memory device to which the present invention is applied;
FIG. 19 is a diagram showing a processing flowchart when updating the address space management table of the host and the memory device to which the present invention is applied;
FIG. 20 is a diagram showing a processing flowchart at the time of host data write of a host and a memory device to which the present invention is applied.
FIG. 21 is a view showing a processing flowchart at the time of flash memory data write in the memory device to which the present invention is applied;
FIG. 22 is a diagram showing a processing flowchart at the end of the operation of the host and the memory device to which the present invention is applied;
FIG. 23 is a view showing a processing flowchart at the time of reading flash data in the memory device to which the present invention is applied;
FIG. 24 is a diagram showing a configuration example of a memory device to which the present invention is applied.
FIG. 25 is a diagram showing an example of a processing flow from the start of power supply to the stop of power supply of the memory device to which the present invention is applied;
FIG. 26 is a diagram showing an example of a processing flow of an SDRAM compatible memory operation of the memory device to which the present invention is applied.
[Explanation of symbols]
DESCRIPTION OF
Claims (14)
前記制御回路が使用する制御情報を格納する手段を備え、
前記フラッシュメモリは、前記DRAM内の格納領域の一部がミラーリングされたミラー領域と、前記制御回路が使用する制御情報を格納する手段に設定された前記制御情報を格納するための制御用格納領域を有し、
前記制御回路は、DRAMインタフェイスの端子群と電気的特性において互換性を有するDRAM互換インタフェイスによって前記ホストに接続され、前記ホストからコマンドを受信し、前記ホストから指定された宛先アドレスに従って前記コマンドを前記制御回路が使用する制御情報を格納する手段に格納し、前記制御回路が使用する制御情報を格納する手段内の前記コマンドの格納アドレスによって前記コマンドの内容を解釈し、前記コマンドがロードを示すコマンドである場合に前記フラッシュメモリ内の前記ミラー領域から前記DRAMへデータを転送し、前記コマンドがストアを示すコマンドである場合に前記DRAMから前記フラッシュメモリ内の前記ミラー領域へデータを転送し、
前記制御回路は、当該メモリ装置がビジー状態か否かを示すビジー信号と、前記ホストからのコマンドに応じた処理が途中であるか、前記ホストからのコマンドに応じた処理が正常に終了したか、前記ホストからのコマンドに応じた処理が実行できなかったかを示すステータス情報を、前記制御回路が使用する制御情報を格納する手段に格納し、さらに、前記制御回路が使用する制御情報を格納する手段に格納された前記ビジー信号又は前記ステータス情報を前記ホストへ通知するメモリ装置。In a memory device including a DRAM, a flash memory, and a control circuit that controls reading / writing of data from / to the DRAM and reading / writing of data from / to the flash memory from a host,
Means for storing control information used by the control circuit;
The flash memory includes a mirror area in which a part of the storage area in the DRAM is mirrored, and a control storage area for storing the control information set in the means for storing control information used by the control circuit Have
The control circuit is connected to the host by a DRAM compatible interface having electrical characteristics compatible with a terminal group of the DRAM interface, receives a command from the host, and receives the command according to a destination address designated from the host. Is stored in the means for storing the control information used by the control circuit, the content of the command is interpreted by the storage address of the command in the means for storing the control information used by the control circuit, and the command is loaded. Data is transferred from the mirror area in the flash memory to the DRAM when the command is a command indicating, and data is transferred from the DRAM to the mirror area in the flash memory when the command is a command indicating a store. ,
Whether the control circuit is in the middle of processing according to the busy signal indicating whether the memory device is busy and a command from the host, or whether processing according to the command from the host has been completed normally The status information indicating whether or not the processing according to the command from the host could not be executed is stored in the means for storing the control information used by the control circuit, and further the control information used by the control circuit is stored. A memory device for notifying the host of the busy signal or the status information stored in the means.
前記制御回路は、前記アドレス対応情報内の前記DRAMのアドレスと前記フラッシュメモリのアドレスとの対応づけを変更する請求項1に記載のメモリ装置。Address correspondence information for associating the address of the DRAM and the address of the flash memory,
The memory device according to claim 1, wherein the control circuit changes a correspondence between the address of the DRAM and the address of the flash memory in the address correspondence information.
前記DRAM内の前記プログラムは、前記ホストによって利用可能なプログラムを含む請求項2に記載のメモリ装置。When the power supply from the host is started and the data transferred from the flash memory to the DRAM is a program, the control circuit is configured to store the power in the DRAM when the power supply from the host is stopped. When the data transferred from the flash memory to the DRAM is user data when the power supply from the host is started and the power supply from the host is started, the power supply from the host is stopped. Transferring the user data in the DRAM to the flash memory;
The memory device according to claim 2, wherein the program in the DRAM includes a program that can be used by the host.
当該メモリ装置は、前記ホストと前記制御回路との間に位置し、前記フラッシュメモリへ読み書きするコマンド及びデータを入出力する第2のインタフェイスを備えた請求項1に記載のメモリ装置。The DRAM compatible interface is located between the host and the control circuit, and is a first interface for inputting / outputting commands and data to / from the DRAM.
2. The memory device according to claim 1, further comprising a second interface that is positioned between the host and the control circuit and that inputs and outputs commands and data that are read from and written to the flash memory.
前記制御回路は、前記フラッシュメモリへのデータの読み書き対象が前記不良セクタ領域であるときに、変わりに前記代替セクタ領域をアクセスさせる手段を有する請求項1に記載のメモリ装置。 The flash memory includes a defective sector area, an alternate sector area for replacing a defective sector region that may occur future,
Wherein the control circuit, the when read and write target data to the flash memory is the defective sector area, the memory device according to claim 1 having a means for accessing said alternate sector area instead.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002143984A JP4059002B2 (en) | 2001-06-13 | 2002-05-20 | Memory device |
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001177924 | 2001-06-13 | ||
JP2001-177924 | 2001-06-13 | ||
JP2001213640 | 2001-07-13 | ||
JP2001-213640 | 2001-07-13 | ||
JP2001-213639 | 2001-07-13 | ||
JP2001213639 | 2001-07-13 | ||
JP2002143984A JP4059002B2 (en) | 2001-06-13 | 2002-05-20 | Memory device |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003091463A JP2003091463A (en) | 2003-03-28 |
JP4059002B2 true JP4059002B2 (en) | 2008-03-12 |
Family
ID=27482328
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002143984A Expired - Fee Related JP4059002B2 (en) | 2001-06-13 | 2002-05-20 | Memory device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4059002B2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8626987B2 (en) | 2009-10-27 | 2014-01-07 | Samsung Electronics Co., Ltd. | Flash memory system and defragmentation method |
Families Citing this family (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4499982B2 (en) * | 2002-09-11 | 2010-07-14 | 株式会社日立製作所 | Memory system |
US7606993B2 (en) | 2003-06-10 | 2009-10-20 | Tdk Corporation | Flash memory controller, memory control circuit, flash memory system, and method for controlling data exchange between host computer and flash memory |
US7752380B2 (en) * | 2003-07-31 | 2010-07-06 | Sandisk Il Ltd | SDRAM memory device with an embedded NAND flash controller |
US20060036803A1 (en) * | 2004-08-16 | 2006-02-16 | Mori Edan | Non-volatile memory device controlled by a micro-controller |
JP4956922B2 (en) | 2004-10-27 | 2012-06-20 | ソニー株式会社 | Storage device |
KR100695890B1 (en) * | 2004-10-29 | 2007-03-19 | 삼성전자주식회사 | Multi-chip system and its data transmission method |
JP4513554B2 (en) * | 2004-12-24 | 2010-07-28 | 株式会社デンソーウェーブ | Data processing terminal, data management method for data processing terminal, and computer program |
JP5474272B2 (en) | 2005-03-15 | 2014-04-16 | ピーエスフォー ルクスコ エスエイアールエル | Memory device and manufacturing method thereof |
JP2006302466A (en) | 2005-04-25 | 2006-11-02 | Elpida Memory Inc | Semiconductor storage device |
US8244958B2 (en) * | 2005-05-09 | 2012-08-14 | Sandisk Il Ltd. | Method and system for facilitating fast wake-up of a flash memory system |
JP2006323739A (en) | 2005-05-20 | 2006-11-30 | Renesas Technology Corp | Memory module, memory system and information apparatus |
JP4896450B2 (en) | 2005-06-30 | 2012-03-14 | 株式会社東芝 | Storage device |
JP2007122241A (en) * | 2005-10-26 | 2007-05-17 | Renesas Technology Corp | Memory card controller and memory card |
US20070174549A1 (en) * | 2006-01-24 | 2007-07-26 | Yevgen Gyl | Method for utilizing a memory interface to control partitioning of a memory module |
JP4961834B2 (en) * | 2006-05-30 | 2012-06-27 | 大日本印刷株式会社 | IC card issuing method and IC card |
US7716411B2 (en) * | 2006-06-07 | 2010-05-11 | Microsoft Corporation | Hybrid memory device with single interface |
JP4437489B2 (en) | 2006-10-25 | 2010-03-24 | 株式会社日立製作所 | Storage system having volatile cache memory and nonvolatile memory |
JP5134255B2 (en) * | 2007-01-30 | 2013-01-30 | 富士通株式会社 | Data recording system |
JP4922860B2 (en) | 2007-08-01 | 2012-04-25 | 株式会社日立製作所 | Semiconductor device |
JP4683438B2 (en) * | 2008-06-13 | 2011-05-18 | 讀賣テレビ放送株式会社 | Data broadcasting system, data broadcasting method and program |
JP2010195125A (en) * | 2009-02-24 | 2010-09-09 | Nsk Ltd | Electric power steering device |
US8856488B2 (en) | 2010-02-11 | 2014-10-07 | Memory Technologies Llc | Method for utilizing a memory interface to control partitioning of a memory module |
US10360143B2 (en) * | 2010-07-01 | 2019-07-23 | Qualcomm Incorporated | Parallel use of integrated non-volatile memory and main volatile memory within a mobile device |
JP5971509B2 (en) * | 2011-08-30 | 2016-08-17 | ソニー株式会社 | Information processing apparatus and method, and recording medium |
JP5299493B2 (en) * | 2011-11-04 | 2013-09-25 | ソニー株式会社 | Memory system |
US8812744B1 (en) | 2013-03-14 | 2014-08-19 | Microsoft Corporation | Assigning priorities to data for hybrid drives |
US10089224B2 (en) * | 2013-03-15 | 2018-10-02 | The Boeing Company | Write caching using volatile shadow memory |
US9626126B2 (en) | 2013-04-24 | 2017-04-18 | Microsoft Technology Licensing, Llc | Power saving mode hybrid drive access management |
US9946495B2 (en) | 2013-04-25 | 2018-04-17 | Microsoft Technology Licensing, Llc | Dirty data management for hybrid drives |
US10185515B2 (en) | 2013-09-03 | 2019-01-22 | Qualcomm Incorporated | Unified memory controller for heterogeneous memory on a multi-chip package |
US10621119B2 (en) | 2016-03-03 | 2020-04-14 | Samsung Electronics Co., Ltd. | Asynchronous communication protocol compatible with synchronous DDR protocol |
US10592114B2 (en) | 2016-03-03 | 2020-03-17 | Samsung Electronics Co., Ltd. | Coordinated in-module RAS features for synchronous DDR compatible memory |
US10810144B2 (en) * | 2016-06-08 | 2020-10-20 | Samsung Electronics Co., Ltd. | System and method for operating a DRR-compatible asynchronous memory module |
-
2002
- 2002-05-20 JP JP2002143984A patent/JP4059002B2/en not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8626987B2 (en) | 2009-10-27 | 2014-01-07 | Samsung Electronics Co., Ltd. | Flash memory system and defragmentation method |
Also Published As
Publication number | Publication date |
---|---|
JP2003091463A (en) | 2003-03-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4059002B2 (en) | Memory device | |
KR100483643B1 (en) | Memory device | |
US5920884A (en) | Nonvolatile memory interface protocol which selects a memory device, transmits an address, deselects the device, subsequently reselects the device and accesses data | |
JP5547154B2 (en) | Memory device | |
KR101363766B1 (en) | Logical unit operation | |
US7519754B2 (en) | Hard disk drive cache memory and playback device | |
US6754765B1 (en) | Flash memory controller with updateable microcode | |
US8606987B2 (en) | Data writing method for flash memory and controller using the same | |
TWI382421B (en) | Hybrid density memory storage device | |
US7284089B2 (en) | Data storage device | |
TWI385519B (en) | Data writing method, and flash storage system and controller using the same | |
KR100610647B1 (en) | Mass storage device with direct execution control and storage | |
JP5677336B2 (en) | Memory device | |
TW201732597A (en) | Data storage device and operating method thereof | |
JP2010152913A (en) | Organization of blocks within nonvolatile memory unit to effectively decrease sector write operation time | |
JP2000067574A (en) | Semiconductor memory | |
CN101494086A (en) | Flash memory storage device, flash memory controller and switching method thereof | |
JP3421581B2 (en) | Storage device using nonvolatile semiconductor memory | |
US7427031B2 (en) | Semiconductor memory device | |
US10467020B2 (en) | Memory device, and information-processing device | |
JP2005339231A (en) | Memory card, semiconductor device, and method for controlling semiconductor memory | |
US6430660B1 (en) | Unified memory hard disk drive system | |
KR100445182B1 (en) | Data Copy Device | |
JP2012128900A (en) | Semiconductor storage device and storage medium | |
KR20220125836A (en) | Storage device, operating method of storage device, and electronic device including storage device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040825 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20060419 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070302 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070313 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070514 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070904 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071105 |
|
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: 20071127 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20071210 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101228 Year of fee payment: 3 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 4059002 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101228 Year of fee payment: 3 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101228 Year of fee payment: 3 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101228 Year of fee payment: 3 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101228 Year of fee payment: 3 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101228 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111228 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121228 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121228 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131228 Year of fee payment: 6 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |