JP4059002B2 - Memory device - Google Patents

Memory device Download PDF

Info

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
Application number
JP2002143984A
Other languages
Japanese (ja)
Other versions
JP2003091463A (en
Inventor
純一 丸山
元泰 角田
慎也 井口
一男 中村
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2002143984A priority Critical patent/JP4059002B2/en
Publication of JP2003091463A publication Critical patent/JP2003091463A/en
Application granted granted Critical
Publication of JP4059002B2 publication Critical patent/JP4059002B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)
  • Dram (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 memory device 4000 shown in FIG. 24 is mounted on an information terminal such as a mobile phone, a PDA (Personal Digital Assistant), a music playback device, a digital camera, a digital video camera, a set top box, a personal computer, a car navigation system, and the like. This is a memory device 4000 capable of
[0012]
The memory device 4000 has a function of writing data designated by the host 4040 to an address designated by the host 4040, a function of holding the written data for at least a certain period when power is supplied, and a host A memory device 4000 having a function of outputting data held at an address designated by 4040 to a host 4040, and holding part or all of written data even when power supply is stopped. The host 4040 of the memory device 4000 is capable of at least SDRAM for specifying an address to the memory device 4000, writing data to the memory device 4000, and reading data from the memory device 4000. (Synchronous dynamic random access memory) A memory device 4000 having a function that can be performed by interface 4001.
[0013]
The host 4040 here is an information processing apparatus such as a CPU or an ASIC built in the information terminal, for example. The memory device 4000 can store an operation program for the host 4040 to execute various information processing, for example.
[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 host 4040 can operate based on an operation program stored in the memory device 4000 using the memory device 4000 as a main memory. The memory device 4000 can also store various data for processing by an operation program, for example. The data referred to here includes, for example, various data such as text, images, sounds, and moving images, program operation parameters, setting files, and the like. Other data can also be stored.
[0015]
The memory device 4000 includes an SDRAM 4010 that is a volatile memory but can be randomly accessed, a flash memory 4020 that is a nonvolatile memory, and an SDRAM compatible interface 4001 for the host 4040 to access the memory device 4000. The memory device 4000 is connected to the host 4040 via the SDRAM compatible interface 4001. Since the memory device 4000 operates as an SDRAM compatible memory, the host 4040 can control the memory device 4000 using the SDRAM interface. The memory device 4000 can store part or all of the data of the SDRAM 4010 in the flash memory 4020. The memory device 4000 can read part or all of the data in the flash memory 4020 to the SDRAM 4010. For example, if the data of the SDRAM 4010 is stored in the flash memory 4020 before the power supply to the memory device 4000 is stopped, the data loss of the SDRAM 4010 due to the power supply stop can be prevented. Further, for example, after starting the power supply to the memory device 4000 and before the host 4040 accesses the memory device 4000, if the data in the flash memory 4020 is read into the SDRAM 4010, the host 4040 makes the memory device 4000 non-volatile. Can be used as an SDRAM compatible memory. The memory device 4000 has a function that allows the host 4040 to arbitrarily specify data transfer between the SDRAM 4010 and the flash memory 4020. The memory device 4000 has an instruction receiving function for receiving an operation instruction of the memory device 4000 from the host 4040, and a state notification function for notifying the host 4040 of the state of the memory device 4000.
[0016]
The instruction reception function and the status notification function are performed by the host 4040 reading and writing data in a predetermined format with respect to a predetermined address of the memory device 4000. Therefore, the host 4040 can use the instruction reception function and the state notification function without newly adding a dedicated pin for instructing the memory device 4000 to the SDRAM interface. The existing SDRAM 4010 and the memory device 4000 can be easily replaced. The host 4040 of the memory device 4000 can instruct the memory device 4000 to transfer the data of the SDRAM 4010 to the flash memory 4020 and to transfer the data of the flash memory 4020 to the SDRAM 4010 at any time by the instruction receiving function.
[0017]
Here, since the memory device 4000 includes a nonvolatile data storage area, it is highly convenient. Further, since it has a transfer speed equivalent to that of a normal SDRAM 4010, the transfer time can be shortened as compared with the case of directly accessing the flash memory. Further, since the memory device 4000 has the SDRAM compatible interface 4001, the host 4040 having the SDRAM interface can use the memory device 4000 without newly designing or adding hardware.
[0018]
Next, examples of functions of the memory device 4000 will be described.
[0019]
The memory device 4000 has a function of through-passing the SDRAM compatible interface 4001 signal of the memory device 4000 to the SDRAM interface 4001 signal of the SDRAM 4010. Through the through-pass function of the SDRAM compatible interface 4001 signal, the host 4040 can use the memory device 4000 as the SDRAM compatible memory device 4000. For example, the host 4040 can issue a read command, a write command, a refresh command, etc. to the memory device 4000 in the same procedure as the SDRAM 4010. The memory device 4000 has a store function for transferring data held in a predetermined area of the SDRAM 4010 to a predetermined area of the flash memory 4020. The data transferred to the flash memory 4020 by the store function can be retained on the flash memory 4020 even if the data is lost from the SDRAM 4010 due to the stop of power supply to the memory device 4000.
[0020]
The store function is executed when the operation state of the memory device 4000 satisfies a predetermined store execution condition. One of the store execution conditions is, for example, that power supply is stopped. One of the store execution conditions is that a store execution instruction is issued from the host 4040, for example. One of the store execution conditions is, for example, that a predetermined register of the memory device 4000 takes a value in a predetermined range. The predetermined register is a counter register that counts the number of accesses from the host 4040 to the memory device 4000, for example.
[0021]
The memory device 4000 has store execution condition information that defines store execution conditions. The memory device 4000 has a function of changing store execution condition information.
The memory device 4000 has a function that allows the host 4040 to specify the change of the store execution condition information. The memory device 4000 has a function of storing store execution condition information in the flash memory 4020. The memory device 4000 has a function of reading store execution condition information from the flash memory 4020. The memory device 4000 has a load function of transferring data held in a predetermined area of the flash memory 4020 to a predetermined area of the SDRAM 4010.
[0022]
The load function is executed when the operation state of the memory device 4000 satisfies a predetermined load execution condition. One of the load execution conditions is, for example, that power supply is started. One of the load execution conditions is that a load execution instruction is issued from the host 4040, for example. One of the load execution conditions is, for example, that a predetermined register of the memory device 4000 takes a value in a predetermined range.
[0023]
The memory device 4000 has load execution condition information that defines the load execution condition. The memory device 4000 has a function of changing the load execution condition information. The memory device 4000 has a function that allows the host 4040 to specify the change of the load execution condition information. The memory device 4000 has a function of storing the load execution condition information in the flash memory 4020. The memory device 4000 has a function of reading load execution condition information from the flash memory 4020. The memory device 4000 has a function of associating the address of the SDRAM 4010 and the address of the flash memory 4020 according to a predetermined procedure.
[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 flash memory 4020 where data cannot be read / written normally. Therefore, the memory area of the flash memory 4020 needs not to use a defective area existing on the flash memory 4020. Therefore, the address association information associates the address of the SDRAM 4010 with the address of the flash memory 4020 so that no data access occurs to the defective area.
[0025]
The memory device 4000 includes an address association information storage register for storing address association information. The memory device 4000 has a function of changing the address association information stored in the address association information storage register. The memory device 4000 has a function that allows the host 4040 to specify change of the address association information. The memory device 4000 has a function of storing address association information in the flash memory 4020. The memory device 4000 has a function of reading address association information from the flash memory 4020. The memory device 4000 has a function of monitoring a power supply state to the memory device 4000.
[0026]
Next, the configuration of the memory device 4000 will be described in more detail.
The memory device 4000 includes at least an SDRAM compatible interface 4001, an SDRAM 4010, a flash memory 4020, and a control device 4030. The SDRAM 4010 and the control device 4030 are connected by the SDRAM interface 4002.
[0027]
The control device 4030 and the flash memory 4020 are connected by a flash memory interface 4003. An SDRAM compatible interface 4001 for connecting the memory device 4040 and the host 4040 is connected to the control device 4030.
[0028]
In the memory device 4000, for example, the SDRAM 4010, the flash memory 4020, and the control device 4030 are configured on different silicon chips, and the terminals of each silicon chip are connected by, for example, wire bonding or the like. It can be set as the multichip package sealed in. Here, the package refers to an LSI package form such as TSOP (Thin Small Outline Package) or BGA (Ball Grid Array).
[0029]
The SDRAM compatible interface 4001 is, for example, a terminal group for inputting / outputting electric signals to / from a chip and the role of the terminal group, and is an interface whose electrical characteristics are compatible with the terminal group of the SDRAM. For example, the memory device 4000 is compatible with SDRAM in terms of characteristics such as setup time, hold time, and CAS latency of each signal.
[0030]
An SDRAM compatible interface 4001 for connecting the host 4040 and the control device 4030 is, for example, JE DEC Not only the standard SDRAM and the electrical characteristics of the terminal group, but also the package size of the memory device 4000, the size of the terminal group such as pins and solder balls arranged in the package of the memory device 4000, and the layout of the terminal group are compatible. It is desirable to have sex.
[0031]
With the configuration, the host 4040 provided with the SDRAM compatible interface 4001 can easily use the SDRAM and the memory device 4000 by replacing them.
[0032]
The SDRAM compatible interface 4001 is an interface in which, for example, an addressable memory area is expanded by an amount corresponding to a control register with respect to the SDRAM interface 4002. The SDRAM 4010 has a function of writing data designated by the host 4040 to an address designated by the host 4040, a function of holding the written data for at least a predetermined period when power is supplied, and a specification designated by the host 4040. The memory device 4000 has a function of reading out data stored at the designated address and outputting it to the host 4040. This is a memory device 4000 in which the data transfer speed is improved by executing the input / output of signals in synchronization with the clock, compared to a DRAM that is not synchronized. The SDRAM 4010 has an SDRAM interface 4002. The SDRAM interface 4002 is a terminal group for an external device (not shown) that uses the SDRAM 4010 to specify an address and data for the SDRAM 4010.
[0033]
The flash memory 4020 has a function of writing data designated by the host 4040 at an address designated by the host 4040, a non-volatile property that retains the written data for at least a certain period even when power supply is stopped, and the host 4040 The memory device 4000 has a function of reading out data stored at an address designated in FIG. The flash memory 4020 has a flash memory interface 4003. The flash memory interface 4003 is a terminal group for an external device (not shown) that uses the flash memory 4020 to specify an address and data for the flash memory 4020.
[0034]
The control device 4030 is a control device 4030 having a function of comprehensively controlling the operation of each unit of the memory device 4000. The control device 4030 has a function of performing overall control of operations of each unit of the memory device 4000 and realizing each function of the memory device 4000. The control device 4030 has a function of connecting the SDRAM compatible interface 4001 and the SDRAM interface 4002 and relaying data transfer between the host 4040 and the SDRAM 4010. The control device 4030 has a store function for transferring data held in a predetermined area of the SDRAM 4010 to a predetermined area of the flash memory 4020. The control device 4030 has a load function for transferring data held in a predetermined area of the flash memory 4020 to a predetermined area of the SDRAM 4010. The control device 4030 has an address association function that associates the address of the SDRAM 4010 with the address of the flash memory 4020 in accordance with a predetermined procedure. The control device 4030 includes a control register 4031. The control register 4031 is a register for storing various kinds of information necessary when the control device 4030 operates.
[0035]
Part or all of the control register 4031 can be rewritten by the host 4040. A part or all of the control register 4031 can be read by the host 4040.
[0036]
When the host 4040 rewrites the control register 4031, the host 4040 writes data in a predetermined format to a predetermined address of the control register 4031 by the SDRAM compatible interface 4001. When the host 4040 reads the control register 4031, the host 4040 reads predetermined data from a predetermined address of the control register 4031 by the SDRAM compatible interface 4001.
[0037]
The control device 4030 can access any control register 4031. Alternatively, a predetermined register can be prohibited from being rewritten or read out.
[0038]
The designation of the address of the control register 4031 can be performed in the same procedure as the address designation of the SDRAM. The control register 4031 has an area for the host 4040 to issue various operation instructions to the memory device 4000, for example. The control register 4031 has an area for storing information for the host 4040 to know the operation state of the memory device 4000, for example. The control register 4031 has an area for storing store execution condition information, for example. The control register 4031 has an area for storing, for example, load execution condition information. The control register 4031 has an area for storing address association condition information, for example.
[0039]
The control device 4030 includes a voltage detection device 4032. The voltage detection device 4032 is a device that monitors a power supply voltage supplied to the memory device 4000 from an external device. The voltage detection device 4032 has a function of detecting that the supply voltage to the memory device 4000 has reached a value in a predetermined range or that the supply voltage is in a predetermined range. For example, when the power to the memory device 4000 is turned on, it is detected that the power supply voltage has become larger than a predetermined value. The predetermined value is, for example, a voltage value at which the control device 4030 can operate normally, a voltage value at which the SDRAM 4010 can operate normally, a voltage value at which the flash memory 4020 can operate normally, or the like. Further, for example, it is detected that the power supply voltage of the memory device 4000 has become smaller than a predetermined value. The predetermined value is, for example, a voltage value at which the control device 4030 can operate normally, a voltage value at which the SDRAM 4010 can operate normally, a voltage value at which the flash memory 4020 can operate normally, or the like.
[0040]
The control device 4030 uses the voltage detection device 4032 to load data in a predetermined area of the flash memory 4020 into a predetermined area of the SDRAM 4010 when the power supply becomes equal to or higher than a predetermined value, for example, and the power supply becomes lower than a predetermined value. Then, a process of storing data in a predetermined area of the SDRAM 4010 in a predetermined area of the SDRAM 4010 can be performed.
[0041]
Next, a configuration example of the memory area of the memory device 4000 will be described.
[0042]
The memory device 4000 includes at least one nonvolatile area 4011 in the memory area of the SDRAM 4010.
[0043]
The nonvolatile area 4011 is an area where mirroring 4063 using the flash memory 4020 is performed.
[0044]
Of the memory area of the SDRAM 4010, an area that is not the nonvolatile area 4011 is a volatile area 4012.
[0045]
Here, the data stored in the mirror area 4021 of the flash memory 4020 is matched with the data stored in the nonvolatile area 4011 of the SDRAM 4010, or a copy of the data stored in the nonvolatile area 4011 of the SDRAM 4010 is flashed. The storage in the mirror area 4021 of the memory 4020 is referred to as mirroring 4063. However, the mirror area 4021 of the flash memory 4020 is managed by a logical address excluding the defective area of the flash memory 4020.
[0046]
The memory device 4000 includes at least a mirror area 4021 for mirroring 4063 of the SDRAM 4010 and a control register storage area 4022 for storing the control register 4031 in the memory area of the flash memory 4020. . The mirror area 4021 has a memory area that can store at least all data stored in the nonvolatile area 4011 of the SDRAM 4010.
[0047]
Since the SDRAM 4010 is a volatile memory, data written to the SDRAM 4010 is lost when power supply to the memory device 4000 is stopped. However, since the data stored in the nonvolatile area 4011 can be mirrored in the mirror area 4021 of the flash memory 4020, it can be retained even after the power is shut off. Data stored in the volatile area 4012 is lost when the power is turned off. The host 4040 can access the nonvolatile area 4011 of the SDRAM 4010, the volatile area 4012 of the SDRAM 4010, and the control register 4031 by designating a predetermined address using the SDRAM compatible interface 4001.
[0048]
Next, an example of a data transmission path in the memory device 4000 will be described.
[0049]
The data access 4051 is a path for the host 4040 to access the SDRAM 4010 using the SDRAM compatible interface 4001. At this time, the host 4040 can freely access both the nonvolatile area 4011 and the volatile area 4012.
[0050]
The register read 4052 is a path for the host 4040 to read various information stored in the control register 4031 using the SDRAM compatible interface 4001. The register write 4053 is a path for the host 4040 to write various information to the control register 4031 using the SDRAM compatible interface 4001. The power supply start 4061 is a path for loading data from the mirror area 4021 to the nonvolatile area 4010 when the power supply to the memory device 4000 is started. A load 4062 is a path for loading data from the mirror area 4021 to the nonvolatile area 4010 when a load execution instruction is issued from the host 4040 to the memory device 4000. The store 4062 is a path for storing data from the nonvolatile area 4010 to the mirror area 4021 when a store execution instruction is issued from the host 4040 to the memory device 4000. The power supply stop 4061 is a path for storing data from the nonvolatile area 4010 to the mirror area 4021 when the power supply to the memory device 4000 is stopped.
[0051]
Next, an example of the operation of the memory device 4000 configured as described above will be described.
[0052]
FIG. 25 is a flowchart showing an example of the operation of the memory device 4000 from the start of power supply to the stop of power supply. First, the host 4040 starts supplying power to the memory device 4000 (4101). When the power supply is started, the memory device 4000 loads the data in the mirror area 4021 of the flash memory 4020 into the nonvolatile area 4011 of the SDRAM 4010.
[0053]
Next, an example of the flow of load processing will be described. When the supply voltage rises to a value at which the voltage detection device 4032 can operate, the memory device 4000 sets a busy signal in the control register 4031 (4102). The busy signal is stored in a predetermined format at a predetermined address in the control register 4031. The host 4040 can know the internal state of the memory device 4000 by polling the data at the address of the control register 4031. During the load process, the SDRAM compatible interface 4001 and the SDRAM interface 4002 are electrically separated.
[0054]
With the above processing, access from the host 4040 using the SDRAM compatible interface 4001 to the control register 4031 and load processing from the flash memory 4020 using the SDRAM interface 4002 to the SDRAM 4010 can be executed in parallel. The memory device 4000 monitors the power supply state using the voltage detection device 4032 and waits until the supply voltage reaches a predetermined value (4103). Here, the predetermined value is a voltage value at which both the SDRAM 4010 and the flash memory 4020 can operate normally.
[0055]
Next, various control information is read from the control register storage area 4022 of the flash memory 4020 and stored in the control register 4031 (4104). here , Reading part or all of the contents of the control register 4031 storage area of the flash memory 4020 to the control register 4031 of the control device 4030 is referred to as register restoration.
[0056]
Next, based on the address association information in the read control register 4031, the data in the mirror area 4021 of the flash memory 4020 is loaded into the nonvolatile area 4011 of the SDRAM 4010 (4105). When the loading is completed, the busy signal of the control register 4031 is canceled (4106).
[0057]
When the load process is completed, the memory device 4000 thereafter operates as an SDRAM compatible memory until a shutdown instruction is received from the host 4040 (4107) (4108). The shutdown instruction is an instruction for notifying the memory device 4000 that power supply is stopped from the host 4040, and the host 4040 writes data in a predetermined format to a predetermined address of the control register 4031. Realize with. When the memory device 4000 receives a shutdown instruction from the host 4040, the memory device 4000 mirrors the data in the nonvolatile area 4011 of the SDRAM 4010 to the mirror area 4021 of the flash memory 4020.
[0058]
Next, an example of the flow of store processing will be described. When receiving the shutdown instruction from the host 4040, the memory device 4000 sets a busy signal in the control register 4031 (4109). The busy signal is stored in a predetermined format at a predetermined address in the control register 4031. The host 4040 can know the internal state of the memory device 4000 by polling the data at the address of the control register 4031. During execution of the store process, the SDRAM compatible interface 4001 and the SDRAM interface 4002 are electrically separated. With the above processing, access from the host 4040 using the SDRAM compatible interface 4001 to the control register 4031 and store processing from the SDRAM 4010 using the SDRAM interface 4002 to the flash memory 4020 can be executed in parallel.
[0059]
Next, the data in the nonvolatile area 4011 of the SDRAM 4010 is stored in the mirror area 4021 of the flash memory 4020 based on the address association information in the read control register 4031 (4110).
[0060]
Next, various control signals stored in the control register 4031 are written into the control register storage area 4022 of the flash memory 4020 (4111). here , Writing a part or all of the contents of the control register 4031 of the control device 4030 to the storage area of the control register 4031 of the flash memory 4020 is referred to as register saving 4071. When the register saving is completed, the busy signal of the control register 4031 is canceled (4112). When the host detects that the busy state is released by polling the control register 4031, the host stops the power supply to the memory device 4000.
[0061]
When the above-described procedure is executed, the data held in the SDRAM 4010 in the memory device 4000 is lost due to the stop of power supply to the memory device 4000, but a copy of a part or all of the data is stored in the flash memory 4020. The data stored in the flash memory 4020 can be used when power supply to the memory device 4000 is started next time.
[0062]
Next, the operation when the memory device 4000 is used as an SDRAM compatible memory (4108) will be described in more detail.
[0063]
FIG. 26 is a diagram showing an example of a processing flow when the memory device 4000 operates as an SDRAM compatible memory. The memory device 4000 receives various SDRAM operation instructions such as read, write, and refresh from the host 4040 via the SDRAM interface 4001 (4201).
[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 host 4040 is determined (4202). If the received operation instruction is other than read or write, or if the designated memory address designates a memory area of the SDRAM, the SDRAM compatible interface 4001 signal is passed through to the SDRAM interface 4002 ( 4203). With this process, the memory device 4000 can operate as an SDRAM compatible memory.
[0065]
If the received operation instruction is read or write and the specified memory address specifies the control register 4031, the process branches depending on whether the instruction is a read instruction or a write instruction (4204). . If the received operation instruction is write, the designated data is written to the designated address of the control register 4031 (4205). If the received operation instruction is read, the data stored in the designated address of the control register 4031 is output to the host 4040 via the SDRAM compatible interface 4001 in a predetermined format (4207). With this processing, the memory device 4000 can accept an operation instruction from the host 4040 without adding a signal pin to the SDRAM interface, and can notify the host 4040 of various information such as the operation state of the memory device 4000. It becomes possible.
[0066]
Next, when an operation instruction is issued from the host 4040 by accessing the control register 4031, the designated operation is started (4206). Here, the operation includes, for example, a load process, a store process, and an address association process. During the execution of the operation, in order to prevent contention for access to the SDRAM 4020, for example, the SDRAM access of the host 4040 is prohibited or the access is ignored. Alternatively, for example, a configuration in which a plurality of SDRAMs 4020 are provided, or a configuration in which the SDRAMs 4020 can be accessed independently from a plurality of banks, for example, and a plurality of processes can be executed in parallel may be employed. For example, the processing from 4201 to 4203 or 4201 to 4206 is repeated until a shutdown instruction is issued from the host as indicated by 4107 and 4108 in FIG. That is, the host 4040 can use the memory device 4000 as an SDRAM compatible memory.
[0067]
Although an example in which the SDRAM is used in the memory device 4000 has been described here, another memory such as a DDR-SDRAM (double data rate SDRAM) may be used. Although an example in which the SDRAM compatible interface 4001 is used as an interface for connecting the memory device 4000 and the host 4040 has been described here, another interface, for example, a DDR-SDRAM interface may be used. . Although an example in which the flash memory 4020 is used as the nonvolatile memory has been described here, other nonvolatile memories can be used.
[0068]
Next, a more detailed embodiment of the memory device 4000 to which the present invention is applied will be described.
[0069]
FIG. 1 shows an example of the internal configuration of an embodiment of a memory device 101 to which the present invention is applied. The memory device 101 includes a flash memory 102 that is a nonvolatile memory, an SDRAM (synchronous DRAM) 103 that is a volatile memory, and a memory control unit 104 that controls these memories. The memory control unit 104 controls data transfer between the host 111 and the memory device 101 and between the flash memory 102 and the SDRAM 103 in response to a request from the host 111. Normally, the host 111 directly accesses the SDRAM 103 via the SDRAM interface 112. However, by writing to a specific address, the memory device 101 can transfer data between the flash memory 102 and the SDRAM 103, format the flash memory 102, and the like. The internal processing can be instructed. The host 111 corresponds to, for example, a mobile phone, a personal digital assistant (PDA), a personal computer, a music playback (and recording) device, a camera, a video camera, a set top box terminal, and the like.
[0070]
The memory control unit 104 includes a data transfer control unit 105, a flash memory interface control unit 106, an SDRAM interface control circuit 107, and a data buffer 108. When the host 111 directly accesses the SDRAM 103, the data transfer control unit 105 and the SDRAM interface control circuit 107 are through-passed. Data transfer between the flash memory 102 and the SDRAM 103 is performed via the data buffer 108 in order to absorb the transfer speed difference between the two devices. When transferring data from the flash memory 102 to the data buffer 108 (reading from the flash memory 102), the ECC control circuit 109 in the flash memory interface control unit 106 has an error in the data read from the flash memory 102. If there is an error, correct the data. At this time, if the sector to be read is a defective sector, the alternative sector control circuit 110 detects an alternative sector for the defective sector, and data is read from the detected alternative sector. When transferring data from the data buffer 108 to the flash memory 102 (writing to the flash memory 102), the read data is transferred from the data buffer 108 to the flash memory interface control unit 106 via the data transfer control unit 105. Transferred. The flash memory interface control unit 106 generates an ECC for the transfer data. The generated ECC is written in the flash memory 102 together with the transfer data. At this time, if the sector to be written is a defective sector, the alternative sector control circuit 110 detects an alternative sector for the defective sector, and data is written to the detected alternative sector.
[0071]
FIG. 2 is a diagram showing an example of the address space and usage method of the SDRAM 103 and the flash memory 102. The address space of the SDRAM 103 includes a system work area 201, a command / status holding area 202, a volatile area 203, and a nonvolatile area 204. Information necessary for the host 111 to manage the system is stored in the system work area 201 (however, it may be stored in the volatile area 203 described later). The command / status holding area 202 is an area provided for instructing the memory device 101 to perform internal processing. The volatile area 203 is an area for storing information necessary for the host 111 to process an application. The contents of the volatile area 203 are erased when the memory device 101 is powered off. The nonvolatile area 204 stores information that needs to be retained even after the power is shut off. Since the SRDAM 103 is a volatile memory, information stored in the non-volatile area 204 on the SDRAM 103 is copied to the flash memory 102 and held on the flash memory 102 before power-off.
[0072]
The following processing can be performed using the address space on the SDRAM 103 described above. After the power is turned on, the program data on the flash memory 102 is copied to the volatile area 203 of the SDRAM 102, and the host 111 can use the program by accessing the volatile area 203 on the SDRAM 103. In this case, the program data stored in the volatile area 203 when the power is turned off is discarded, but there is no problem because the program data is stored in the flash memory 102. Further, after the power is turned on, the user data on the flash memory 102 is copied to the nonvolatile area 204 of the SDRAM 103, and the host 111 can use the user data by accessing the nonvolatile area 204 on the SDRAM 102. When user data has been changed or added, the user data is copied to the flash memory 102 and held on the flash memory 102 before the power is turned off.
[0073]
FIG. 3 is a diagram illustrating an example of processing contents, that is, commands instructed by the host 111 to the memory device 101. The address of the command is mapped to the command / status holding area 202 described above, and is arranged at the address obtained by adding the offset address 301 from the head address A209 of the command / status holding area 202. Address 0 specifies the start address (ADRsdB210) of the volatile area 203, and address 1 specifies the size (y) of the volatile area 203. Address 2 designates the top address (ADRsdC211) of the nonvolatile area 204, and address 3 designates the size (z) of the nonvolatile area 204. As a result, the volatile area 203 and the nonvolatile area 204 can be mapped to an arbitrary address space on the SDRAM 103. In this example, the command / status holding area 202 has a predetermined fixed value, but can be mapped to an arbitrary space by applying the same rules as described above. In this case, the head address (ADRsdA209) of the command / status holding area 202 for the host to access first is stored in advance in a register in the memory device 101 or the flash memory 102. Address 4 indicates the format of the flash memory 102. The address 5 designates a start sector address (Dtx 213) at the time of data transfer or erasure to the flash memory 102. The address 6 designates a data transfer start address (Ctx 212) for the SDRAM 103. The address 7 specifies the data transfer size between the flash memory 102 and the SDRAM 103 or the data erase size of the flash memory 102. Address 8 activates data transfer between flash memory 102 and SDRAM 103. Address 9 specifies the power saving mode. When the command corresponding to the address 9 is issued, the power to the flash memory 102 and the circuit for controlling the memory 102 is shut off.
[0074]
The memory device 101 stores status / error information 314 at address n + 1 in order to notify the host 111 of the processing status of the command issued by the host 111. After issuing a command, the host 111 can know the processing result of the issued command by accessing the storage area indicated by the address n + 1.
[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). Bit 2 indicates that the above-described ECC correction was performed and correction was possible (403). Bit 3 indicates that ECC correction was performed but correction was impossible (404). Bit4 indicates that command processing could not be executed (405).
[0076]
FIG. 5 is a flowchart showing a processing procedure of the system when the command is issued. The host 111 issues a command to the memory device 101 by writing data to the above address (501). The memory device 101 that has received the command decodes the command (508), and executes internal processing for the issued command based on the decoding result (509). After the processing is completed, the memory device 101 writes the result to the address n + 1 where the status / error information is stored (510). The host 111 reads the address (502) and determines whether or not the processing designated by the command has been completed normally (503). If not completed normally (505), the process designated by the command is retried or abnormally terminated (507).
[0077]
In the present invention, the memory control unit 104 shown in FIG. 1 has a function for executing the above-described processing. Hereinafter, the data transfer control unit 105 that forms the core of the memory control unit 104 will be described in detail.
[0078]
FIG. 6 is a diagram illustrating an internal configuration of the data transfer control unit 105. The data transfer control unit 105 includes a command decoder 601, a sequencer 602, an address mapping table 603, a flash address (ADRfl) generation circuit 604, a sector counter 605, a flash-buffer transfer circuit 606, an SDRAM-buffer transfer circuit 607, an SDRAM address (ADRsd). ) Generation circuit 608, MUX / DEMUX0 (609), buffer address (ADRbu) generation circuit 610, and MUX / DEMUX1 (611). The command decoder 601 interprets the content of the command issued by the host 111. The sequencer 602 manages the overall processing of the data transfer control unit 105.
[0079]
FIG. 7 is a diagram illustrating an example of state transition of the sequencer 602. After power is turned on to the memory device 101, the sequencer 602 shifts to the SDRAM mode 702 and the memory device 101 operates as the SDRAM 103. Thereafter, the state of the sequencer 602 is changed by a command issued by the host 111. When the command CMDtx 706 (address 8 shown in FIG. 3) for starting data transfer of the flash memory 102 is issued from the host 11, the sequencer 602 transitions to the flash transfer mode 703. At the time of writing STtx 707 (write to address n + 1 in FIG. 3) in which the data transfer process is completed and the status information is written, the sequencer 602 transitions to the SDRAM mode 702 again. When the command CMDfm 708 (address 4 in FIG. 3) for formatting the flash memory 102 is issued, the sequencer 602 transitions to the flash format mode 704, and after the processing is completed, transition to the SDRAM mode 702 after the status writing STfm 709 is executed. . When a command CMDer 710 (address 10 in FIG. 3) for erasing data on the flash memory 102 is issued, the sequencer 602 shifts to the flash data erasing mode 705, and after the processing is completed, the SDRAM mode 702 is executed after the status writing STer 711 is executed. Transition to.
[0080]
Returning to FIG. 6, the description will be continued. The address mapping table 603 assigns the nonvolatile area 204 in the address space in the SDRAM 103 to the logical sector address 205 of the flash memory 102. The ADRfl generation circuit 604 generates a logical sector address on the flash memory 102. The sector counter 605 manages the number of data transfer sectors in the flash memory 102 based on the transfer size designated by the host 111. The flash-buffer transfer circuit 606 executes data transfer between the flash memory 102 and the data buffer 108. Similarly, the SDRAM-buffer transfer circuit 607 executes data transfer between the SDRAM 103 and the data buffer 108. The ADRsd generation circuit 608 generates an address for accessing the SDRAM 103. The MUX / DEMUX0 (609) selects either the SDRAM interface 112 bus connected to the host 111 or the SDRAM interface bus 112 generated by the data transfer control unit 105 at the time of writing, and the SDRAM interface control circuit 107. Send to. At the time of reading, the SDRAM 103 data sent from the SDRAM interface control circuit 107 is sent to the data bus of the SDRAM interface 112 connected to the host 111 or the SDRAM-buffer transfer circuit 607. The ADRbu generation circuit 610 generates an address of the data buffer 108. The MUX / DEMUX 1 (611) sends the output data bus of the flash-buffer transfer circuit 606 or the SDRAM-buffer transfer circuit 607 to the data buffer 108 when writing to the data buffer 108. When data is read from the data buffer 108, the data is sent to the flash-buffer transfer circuit 606 or the SDRAM-buffer transfer circuit 607.
[0081]
Hereinafter, the operation of each circuit will be described by taking as an example data transfer processing from the flash memory 102 to the SDRAM 103.
[0082]
The host 111 designates a transfer start logical sector address (Dtx 213) on the flash memory 102 side before starting data transfer (address 5 in FIG. 3). As an address designation method, in addition to designating Dtx 213, there is a method of designating an address (Ctx 212) on the SDRAM 103. In that case, Ctx 212 is converted to Dtx 213 based on the address mapping table 603. Dtx 213 is held by the ADRfl generation circuit 604 and sent to the flash memory interface control unit 106. The host 111 sets the transfer size using a command (address 7 in FIG. 3) for setting the data transfer size. The set transfer size is held in the sector counter 605. Here, if the transfer size is designated in bytes, the transfer size information is converted into sectors in the counter 605 and sent to the flash memory interface control unit 106. Further, the host 111 issues a command (address 6 in FIG. 3) for setting the transfer start address Ctx 212 of the SDRAM 103. Ctx 212 is held in the ADRsd generation circuit 608.
[0083]
When a command CMDtx 706 for starting data transfer is issued, the command decoder 601 interprets the command content. The sequencer 602 makes a transition to the flash transfer mode 703 and instructs to send the outputs of the ADRsd generation circuit 608 and the SDRAM-buffer transfer circuit 607 to the SDRAM interface control circuit 107 via MUX / DEMUX0 (609). In addition, the flash memory interface control unit 106 is instructed to read data from the flash memory 102 for the number of transfer sectors specified from the logical sector address Dtx 213. The read sector data (SCTn) is transferred to the data buffer 108 via the flash-buffer transfer circuit 606 and MUX / DEMUX1 (611). Thereafter, the data is transferred from the data buffer 108 to the SDRAM interface control circuit 107 via the SDRAM-buffer transfer circuit 607 and MUX / DEMUX0 (609), and is written in the SDRAM 103.
[0084]
FIG. 8 is a diagram illustrating an example of data transfer timing. When one sector (SCTO (802)) is transferred from the flash memory 102 to the data buffer 108, data transfer from the data buffer 108 to the SDRAM 103 is started (804), and at the same time, data from the flash memory 102 to the data buffer 108 is started. Data transfer continues (transfer of SCT1). Note that data transfer from the SDRAM 103 to the flash memory 102 is performed through a path opposite to the transfer path described above.
[0085]
As described above, by executing data transfer from the flash memory 102 to the SDRAM 103 in advance according to a command from the host 111, the host 111 can access data on the SDRAM 103 at high speed. Further, by transferring the data on the SDRAM 103 to the flash memory 102, the data can be held even after the power is shut off.
[0086]
FIG. 9 is a diagram showing a second embodiment of the memory device 901 to which the present invention is applied. In addition to the SDRAM interface 112 shown in FIG. 1, the memory device 901 has a MultiMediaCard (MultiMediaCard is a registered trademark of Infineon Technologies AG; hereinafter abbreviated as “MMC”) as a connection interface with the host 906. . The MMC is a memory card that uses the flash memory 102 as a storage medium, and the host 906 reads and writes data in the flash memory 102 by issuing an MMC command. That is, the memory device 901 has a function as an MMC in addition to the above-described functions such as transfer between memories. Therefore, the MMC interface 907 in the memory device 901 conforms to the MMC specification.
[0087]
As shown in FIG. 10, the MMC interface 907 includes a chip select terminal (CS) 1001, a command terminal (CMD) 1002, two ground terminals (GND1) 1003 and 1006, and a power supply terminal (VCC1) from the host 906. The terminal is composed of seven terminals 1004, a clock terminal (CLK 1) 1005, and data (DAT) 1007. The CS 1001 is an input terminal used in the MMC SPI mode operation, and becomes active at a low level. The CMD 1002 is an input / output terminal used by the host 906 to transmit a memory card command conforming to the MMC specification to the memory device 901 and receive a memory card response conforming to the same specification from the memory device 901. The DAT 1007 is an input / output used by the host 906 to transmit input data in a format compliant with the memory card interface specification to the memory device 901 and receive output data in a format compliant with the specification from the memory device 901. Terminal. CLK1 (1005) is a terminal to which a clock signal supplied from the host 906 is input. When the host 906 sends and receives memory card commands and memory card responses through the CMD 1002 and sends and receives host data through the DAT 1007, a clock signal is input to the CLK1 (1005). When the transfer speed of the MMC interface 907 becomes a bottleneck in the system, the specification of the MMC interface 907 is changed to increase the clock frequency of CLK1 (1005), or the data is parallelized using a plurality of DAT1007. You may forward to.
[0088]
Compared to the internal configuration of the memory device 101 shown in FIG. 1, the internal configuration of the memory device 901 includes an MMC interface control unit 903, and the MMC interface control unit 903 is connected to the data transfer control unit 905. Is different. Here, in the above-described embodiment, an example in which command issuance from the host 111 is executed via the SDRAM interface 112 has been described. However, in the configuration of this embodiment, it can be executed via the MMC interface 907. Is possible. That is, the command shown in FIG. 3 can be issued from the host 906 to the memory device 901 as an MMC command. The command control circuit 904 interprets the issued command in the MMC interface control unit 903. This is the same function as the command decoder 601 shown in FIG.
[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 MMC control unit 1302 and a flash memory 102 having a function necessary for realizing a function as an MMC, a memory overall control unit 1304, and an SDRAM 103. The memory overall control unit 1304 includes an interface conversion control circuit 1305 having a function of converting the MMC interface 907 and the SDRAM interface 112 and the SDRAM interface control circuit 107. In the case of this configuration, the same functions as in the second embodiment are provided to the host 1306 without the MMC interface 907 (via the SDRAM interface 112) by diverting the control LSI for MMC as it is. can do.
[0090]
The present invention is not limited to the MMC interface 907 and can be applied to various interfaces. 11 and 12 respectively show that the present invention is an SD card (a small memory card having a width of 24 millimeters, a length of 32 millimeters, a thickness of 2.1 millimeters, having nine external terminals and mounted with a flash memory) and a memory stick. It is a figure which shows the outline of the internal structure of the memory devices 1101 and 1201 applied to the interface of (Memory Stick is a registered trademark of Sony Corporation).
[0091]
The SD card external terminal is composed of nine terminals, and these positions are, from the end, Data2 terminal 1104, Data3 terminal 1105, Com terminal 1106, Vss terminal 1107, Vdd terminal 1108, Clock terminal 1109, Vss terminal 1110, Data0 terminal 1111, Data 1 terminals 1112 are arranged in this order. The Vdd terminal 1108 is a power supply terminal, the Vss terminal 1107 is a ground terminal, the Data 0 terminal 1111, the Data 1 terminal 1112, the Data 2 terminal 1104 and the Data 3 terminal 1105 are data input / output terminals, the Com terminal 1106 is a command input / output terminal, and the Clock terminal 1109 is a clock. Input terminal. In this case, although the interface specification with the SD card host 1114 connected to the outside is different from that of the MMC, it has an external terminal very similar to the MMC external terminal, and issues a command from the outside in the same way as the MMC. The present invention can be applied because of its operating characteristics.
[0092]
On the other hand, the Memory Stick external terminal is composed of 10 terminals, and the positions thereof are GND terminal 1204, BS terminal 1205, Vcc terminal 1206, and reserved terminal Rsv by skipping one from the end, DIO terminal 1207, INS terminal 1208, reserved terminal. One Rsv is skipped and the SCK terminal 1209, the Vcc terminal 1210, and the Gnd terminal 1211 are arranged in this order. The Vcc terminal 1206 is a power supply terminal, the Gnd terminal 1204 is a ground terminal, the DIO terminal 1207 is a command / data input / output terminal, and the SCK terminal 1209 is a clock input terminal. Although the memory stick is different from the MMC in the interface specification with the memory stick compatible host 1213 connected to the outside, the memory stick has a feature that operates by issuing a command from the outside in the same manner as the MMC, so that the present invention can be applied. it can.
[0093]
As described above, the host 906 having the MMC interface 907 and the SDRAM interface 112 can use the memory device 901 not only as a high-speed volatile and non-volatile memory but also as an MMC.
[0094]
FIG. 14 is a diagram showing a third embodiment of a memory device 1401 to which the present invention is applied. The memory device 1401 has an MMC interface 1407 as an interface with the host 1408. Note that the memory device 1401 of the present embodiment has a card shape, but the shape is not limited to the shape of the card, and can be handled as a memory device as in the above-described embodiment. Compared with the internal configuration of the memory device 901 shown in FIG. 9, the internal configuration of the memory device 1401 in FIG. 14 is that a command ripper circuit 1405 is added in the MMC interface control unit 1403, and the output thereof is data transfer control. The difference is that it is connected to the unit 1406. Further, the difference is that the SDRAM interface 112 is not connected to the host 1408 but only the MMC interface 1407. Other configurations are the same as in FIG.
[0095]
In the above-described embodiment, an example in which the access to the SDRAM 103 from the hosts 111 and 906 is performed via the SDRAM interface 112, but in the configuration of the present embodiment, the access to the SDRAM 103 is also performed via the MMC interface 1407. Done. That is, the memory device 1401 issues a command for instructing data transfer between the flash memory 102 and the SDRAM 103 via the MMC interface 1407 in addition to the function as the MMC, and accesses the SDRAM 103 from the MMC interface 1407. Can be done. As an example for realizing the above-described access, for example, it is conceivable to encapsulate a data write or read command to the SDRAM 103 in the command data area using a newly defined MMC command and issue it to the MMC 1401. In this case, a command requesting access to the SDRAM 103 is detected by the command control circuit 1404 of the MMC interface control unit 1403, access request information is extracted by the command ripper circuit 1405, and the command decoder 601 ( As shown in FIG. 6, the memory control unit 1402 can access the SDRAM 103 as in the above-described embodiment.
[0096]
As described above, by using only the MMC interface 1407, not only functions as an MMC but also high-speed volatile and non-volatile memory can be used.
[0097]
Note that the memory device 101, 901, 1301, or 1401 described in the present invention can be applied to any shape. For example, an LSI in which each memory chip and control chip are housed in one package may be used, or all functions may be housed in one semiconductor chip. Further, it may be stored in the shape of a memory card such as the MMC described above. Furthermore, the types of the nonvolatile memory and the volatile memory shown in the present invention are not limited to the flash memory 102 and the SDRAM 103, respectively. For example, in the case of a nonvolatile memory, a ferroelectric memory, an MRAM (magnetic memory), etc. Similar processing is possible.
[0098]
Next, details of the non-volatile area management method on the SDRAM 103 of the present invention will be described. FIG. 15 is a diagram illustrating a configuration of the nonvolatile area of the SDRAM 103 and a correspondence relationship between the nonvolatile area of the SDRAM 103 and the storage area of the flash memory 102.
[0099]
As shown in the figure, the non-volatile area of the SDRAM 103 is managed by being divided into an area SA1501, an area SB1502, an area SC1503, an area SD1504, and an area SE1505 according to use. Each area is associated with an area FA1510, an area FB1511, an area FC1512, an area FD1513, an area FE1 (1514), and an area FE2 (1515) on the flash memory 102. The area on the SDRAM 103 and the area on the flash memory 102 do not have to be one-to-one, and the area SE1505 may be associated with the area FE1 (1514) and the area FE2 (1515). Note that the area may be further divided and managed.
[0100]
Area management is performed by preparing the area management table 1601 in the address mapping table 603 and managing the data transfer control unit 105 based on the information. Note that the area management table 1601 may be prepared on another recording apparatus. FIG. 16 is a diagram showing a specific example of the area management table 1601. The area management table 1601 manages attribute information of each area when areas are sequentially allocated from the head of the flash memory 102. For example, if the nonvolatile area of the SDRAM has an area configuration as shown in FIG. 15, the attributes of each area are assigned to the area management table 1601 as shown in FIG. By setting an attribute in each area, it is possible to set characteristics such as an access method according to the usage conditions of the host 111.
[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 transfer control unit 105 to be used as a spare area 1607 at the next area allocation.
[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 update count 1705 records how many times the data on the SDRAM 103 has been updated by the host 111 after the data is transferred from the flash memory 102 to the SDRAM 103. When data is written from the SDRAM 103 to the flash memory 102, it is cleared to zero. When the update count threshold 1706 is designated as 0, data is written to the flash memory 102 every time the SDRAM area is updated. When a value of 1 or more is designated, data is not written to the flash memory 102 until the SDRAM area is updated the designated number of times. In the play race 1707, when 0 is designated, even if the SDRAM 103 is updated, the data in the corresponding flash memory area is not deleted. When 1 is specified, the data on the corresponding flash memory area is deleted. When 0 is specified as the data replication number 1708, data on the SDRAM 103 is not replicated. When 1 or more is designated, the designated number of data on the SDRAM 103 is duplicated and the data is written to the flash memory 102. The wear leveling number 1709 is a parameter that controls a process called wear leveling that changes the writing position each time data is written from the SDRAM 103 to the flash memory 102. When 0 is specified, wear leveling is not performed when data is written from the SDRAM 103 to the flash memory 102. When a value of 1 or more is specified, a specified number of wear levels are performed when data is written from the SDRAM 103 to the flash memory 102. For example, when 1 is designated, twice the SDRAM area is prepared in the flash memory 102 as in the area SE and the areas FE1 (1514) and FE2 (1515) in FIG. When data is written to 102, data is alternately written to the area FE1 (1514) and the area FE2 (1515). The wear leveling value 1710 is a wear leveling value necessary for calculating a position to be written next when wear leveling is valid. When the value becomes equal to the wear leveling number 1709, it is cleared to zero. The user-defined attribute 1711 is a user-defined attribute value for each area that can be set by the host 111.
[0104]
FIG. 18 is a flowchart showing a procedure of area setting data setting processing and initialization processing when the memory device 101 is activated. When the memory device 101 is activated, the memory control unit 104, the SDRAM 103, and the flash memory 102 are initialized (1801). When the initialization is completed, the memory control unit 104 issues an area setting data read instruction to the flash memory 102 (1802). The flash memory 102 transmits the area setting data to the memory control unit 104 (1804). The memory control unit 104 stores the area setting data in the data buffer 108 (1803). Next, the memory control unit 104 instructs the initial data to be transferred from the flash memory 102 to the SDRAM 103 based on the area setting information, and the data is transferred (1805). Details of the data read process will be described later. The decryption memory device 101 repeats the data read process until all necessary data is read (1806). When the data transfer ends, the memory device 101 reports the end of initialization of the device itself to the host 111 (1807). Thereafter, the host 111 and the memory device 101 start normal operation (1808).
[0105]
FIG. 19 is a flowchart showing a procedure when the host 111 updates the area data. The host 111 writes the area setting data to the memory device 101 (1901). The memory control unit 104 writes this data into the data buffer 108 and updates the data (1902). Thereafter, the memory control unit 104 writes the area setting data in the area setting data recording area of the flash memory 102 (1903, 1904).
[0106]
FIG. 20 is a flowchart showing a processing procedure when the host 111 writes data to the memory device 101.
[0107]
The host 111 writes data to the memory device 101 (2001). At this time, the memory control unit 104 detects the access address of the host 111 (2002). The data written by the host 111 is recorded in the SDRAM 103 (2003). The memory control unit 104 checks the access area of the host 111 from the detected access address, and refers to the area attribute on the area management table 1601 (2004). Thereafter, the memory control unit 104 adds 1 to the region attribute update count value 1705 (2005). When the update count value 1705 is equal to or greater than the update count threshold 1706, the memory control unit 104 instructs execution of data write processing (2007) from the SDRAM 103 to the flash memory 102, and then clears the update count value 1705 (2008). If the update count 1705 does not satisfy the update count threshold 1706, the memory control unit 104 determines the validity of the play race 1707 (2009). If the play race 1707 is valid, the memory control unit 104 instructs the flash memory 102 about an area to be erased (2010). The flash memory 102 erases the designated area (2011). If the play race 1707 is invalid, the memory control unit 104 ends the process.
[0108]
FIG. 21 is a flowchart showing detailed processing of the data write processing 2007.
[0109]
The memory control unit 104 determines whether wear leveling is valid (2101). If valid, the memory control unit 104 adds 1 to the wear leveling value (2102). When the wear leveling value 1710 is equal to or greater than the wear leveling number 1709, the memory control unit 104 clears the wear leveling value 1710 (2103, 2104). Next, the memory control unit 104 instructs data transfer from the SDRAM 103 to the flash memory 102 to the area indicated by the wear leveling value (2105), and ends the processing after the data transfer ends (2110). If the wear leveling is invalid, the memory control unit 104 determines the number of data replication (2106). If the number of replicas is 1 or more, the memory control unit 104 instructs the designated number of replicated data transfers from the SDRAM 103 to the flash memory 102 (2108), and the SDRAM 103 and the flash memory 102 perform data transfer from the SDRAM 103 to the flash memory 102 ( 2107). Next, the memory control unit 104 instructs the SDRAM 103 and the flash memory 102 to write data (2109), and the SDRAM 103 and the flash memory 102 perform normal data write (2110).
[0110]
FIG. 22 is a flowchart showing processing when the operation of the memory device 101 is finished.
[0111]
The host 111 issues a memory operation stop instruction (2201). The memory device 101 writes all data to be saved among unsaved data on the SDRAM 103 to the flash memory 102 (2007). When writing to the flash memory 102 of all areas to be stored on the SDRAM 103 is completed (2202), the memory device 101 issues a data storage completion report 2203 to the host 111. Thereafter, the host 111 performs a memory stop process (2204).
[0112]
FIG. 23 is a flowchart showing detailed processing at the time of data transfer from the flash memory 102 to the SDRAM 103.
[0113]
The memory control unit 104 determines wear leveling validity of the area where the data read is executed (2300). If wear leveling is valid, the memory control unit 104 instructs to transfer data from the flash memory area indicated by the wear leveling value 1710 to the SDRAM 103, and data transfer is performed (2301, 2303). If wear leveling is invalid, the memory control unit 104 instructs execution of normal data read, and normal data read is performed (2302 and 2303). Note that the ECC control circuit 109 may automatically correct the ECC error of the read data during data transfer. After completion of these processes, the memory control unit 104 performs error determination (2304) of the data read onto the SDRAM 103, and ends the process if no error has occurred. If an error has occurred, the memory control unit 104 determines whether the data replication area is valid (2305). If valid, the memory control unit 104 instructs the SDRAM 103 and the flash memory 102 to read data from the replication area (2306, 2308). Thereafter, the memory control unit 104 performs error determination again (2304), and ends the process if no error has occurred. If an error has occurred, it is determined again whether duplicate data exists (2305). The memory control unit 104 executes this process until there is no duplicate data. If the error does not disappear even if there is no duplicate data, an error process is executed (2307). As an example of error processing, it is conceivable that the alternative sector circuit 110 processes the area as a defective sector, prepares an alternative sector, and notifies the host 111 that an error has occurred.
[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 SYMBOLS 101, 4000 ... Memory device, 102, 4020 ... Flash memory, 103, 4010 ... SDRAM, 105 ... Data transfer control part, 106 ... Flash memory interface control part, 112, 4001 ... SDRAM interface, 601 ... Command decoder, 602 ... Sequencer, 606 ... Flash-buffer transfer circuit, 607 ... SDRAM-buffer transfer circuit, 903 ... MMC interface control unit, 907 ... MMC interface, 1302 ... MMC control unit, 1304 ... Memory overall control unit, 1305 ... interface Conversion control circuit, 1401... Composite memory card, 1405.

Claims (14)

DRAMと、フラッシュメモリと、ホストから前記DRAMに対するデータの読み書き及び前記フラッシュメモリに対するデータの読み書きを制御する制御回路とを備えたメモリ装置において、
前記制御回路が使用する制御情報を格納する手段を備え、
前記フラッシュメモリは、前記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へ転送し、前記ホストからの電源供給が停止される場合に、前記DRAMに格納された前記データを前記フラッシュメモリ内の前記ミラー領域へ転送する請求項1に記載のメモリ装置。  When the power supply from the host is started, the control circuit transfers the data stored in the mirror area in the flash memory to the DRAM, and the power supply from the host is stopped. The memory device according to claim 1, wherein the data stored in the DRAM is transferred to the mirror area in the flash memory. 前記制御回路は、前記ホストからの電源供給が開始された場合に、前記フラッシュメモリ内の前記ミラー領域に格納された前記データを前記DRAMへ転送する間、前記ビジー信号を前記制御回路が使用する制御情報を格納する手段に設定し、前記ホストからの電源供給が停止される場合に、前記DRAMに格納された前記データを前記フラッシュメモリ内の前記ミラー領域へ転送する間、前記ビジー信号を前記制御回路が使用する制御情報を格納する手段に設定する請求項2に記載のメモリ装置。  When the power supply from the host is started, the control circuit uses the busy signal while the data stored in the mirror area in the flash memory is transferred to the DRAM. The busy signal is set during the transfer of the data stored in the DRAM to the mirror area in the flash memory when power supply from the host is stopped when the control information is stored in the means. 3. The memory device according to claim 2, wherein the memory device is set in a means for storing control information used by the control circuit. 前記DRAMのアドレスと前記フラッシュメモリのアドレスとを対応づけるためのアドレス対応情報を備え、
前記制御回路は、前記アドレス対応情報内の前記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のアドレスと前記フラッシュメモリのアドレスとの対応づけを変更する請求項4に記載のメモリ装置。  The control circuit changes the correspondence between the address of the DRAM and the address of the flash memory in the address correspondence information according to the number of times of erasure of the data in the flash memory or the deterioration of the storage area of the data. The memory device according to claim 4. 前記制御回路は、前記ホストからの電源供給が開始された場合に前記フラッシュメモリから前記DRAMへ転送されたデータがプログラムであるときは、前記ホストからの電源供給が停止される場合に前記DRAM内の前記プログラムを破棄し、前記ホストからの電源供給が開始された場合に前記フラッシュメモリから前記DRAMへ転送されたデータがユーザデータであるときは、前記ホストからの電源供給が停止される場合に前記DRAM内の前記ユーザデータを前記フラッシュメモリへ転送し、
前記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.
前記制御回路は、前記ホストからの前記DRAM上の予め定められた宛先アドレスへのアクセス指令に応じて、前記DRAMと前記フラッシュメモリとの間のデータ転送を開始する請求項1に記載のメモリ装置。  The memory device according to claim 1, wherein the control circuit starts data transfer between the DRAM and the flash memory in response to an access command to a predetermined destination address on the DRAM from the host. . 前記DRAM互換インタフェイスは、前記ホストと前記制御回路との間に位置し、前記DRAMへ読み書きするコマンド及びデータを入出力する第1のインタフェイスであり、
当該メモリ装置は、前記ホストと前記制御回路との間に位置し、前記フラッシュメモリへ読み書きするコマンド及びデータを入出力する第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.
前記制御回路は、前記第2のインタフェイスを介して入力されたコマンドに応じて、前記DRAMと前記フラッシュメモリとの間のデータ転送を開始する請求項8に記載のメモリ装置。  The memory device according to claim 8, wherein the control circuit starts data transfer between the DRAM and the flash memory in response to a command input through the second interface. 前記制御回路が使用する制御情報を格納する手段は、前記制御回路内に配置される請求項1に記載のメモリ装置。  The memory device according to claim 1, wherein means for storing control information used by the control circuit is arranged in the control circuit. 前記制御回路が使用する制御情報を格納する手段は、前記DRAMの格納領域内に割り当てられる請求項1に記載のメモリ装置。  2. The memory device according to claim 1, wherein means for storing control information used by the control circuit is allocated in a storage area of the DRAM. 前記DRAMと前記フラッシュメモリとの間の転送データを保持する保持回路を備えた請求項1に記載のメモリ装置。  The memory device according to claim 1, further comprising a holding circuit that holds transfer data between the DRAM and 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.
前記制御回路は、DRAMインタフェイスによって前記DRAMに接続され、前記ホストからのコマンドがデータの読み書き以外のコマンドである場合、又は前記ホストから指定された宛先アドレスが前記DRAMを示す場合に、前記ホストからのコマンドを前記DRAMインタフェイスへスルーパスし、前記ホストからのコマンドがデータの読み書きを示すコマンドであり、かつ前記ホストから指定された宛先アドレスが前記制御回路が使用する制御情報を格納する手段を示す場合に、前記ホストからのデータを前記制御回路が使用する制御情報を格納する手段に書き込み又は前記制御回路が使用する制御情報を格納する手段内の前記ビジー信号又は前記ステータス情報を前記ホストへ通知する請求項1に記載のメモリ装置。The control circuit is connected to the DRAM by a DRAM interface, and when the command from the host is a command other than data read / write, or when the destination address designated by the host indicates the DRAM A command to pass through the DRAM interface to the DRAM interface, the command from the host is a command indicating data read / write, and a destination address designated by the host stores control information used by the control circuit; The data from the host is written to the means for storing the control information used by the control circuit, or the busy signal or the status information in the means for storing the control information used by the control circuit is sent to the host. The memory device according to claim 1, which is notified.
JP2002143984A 2001-06-13 2002-05-20 Memory device Expired - Fee Related JP4059002B2 (en)

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
JP2001-177924 2001-06-13
JP2001177924 2001-06-13
JP2001213640 2001-07-13
JP2001-213639 2001-07-13
JP2001-213640 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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 transfer 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
US10592114B2 (en) 2016-03-03 2020-03-17 Samsung Electronics Co., Ltd. Coordinated in-module RAS features for synchronous DDR compatible memory
US10621119B2 (en) 2016-03-03 2020-04-14 Samsung Electronics Co., Ltd. Asynchronous communication protocol compatible with synchronous DDR protocol
US10810144B2 (en) * 2016-06-08 2020-10-20 Samsung Electronics Co., Ltd. System and method for operating a DRR-compatible asynchronous memory module

Cited By (1)

* Cited by examiner, † Cited by third party
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
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
US7427031B2 (en) Semiconductor 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
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
JP5677336B2 (en) Memory device
KR100610647B1 (en) A mass storage device having both xip function and storage fuction
JP4628750B2 (en) Flash memory device with built-in buffer memory and flash memory system
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
JPWO2010134300A1 (en) MEMORY CONTROLLER, NONVOLATILE STORAGE DEVICE, ACCESS DEVICE, NONVOLATILE STORAGE SYSTEM, DATA WRITE METHOD, AND PROGRAM
JP3421581B2 (en) Storage device using nonvolatile semiconductor memory
JP2005339231A (en) Memory card, semiconductor device, and method for controlling semiconductor memory
US10467020B2 (en) Memory device, and information-processing device
US6430660B1 (en) Unified memory hard disk drive system
KR100445182B1 (en) Data Copy Device
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