CN104798055B - 存储器控制器、数据存储装置和存储器控制方法 - Google Patents

存储器控制器、数据存储装置和存储器控制方法 Download PDF

Info

Publication number
CN104798055B
CN104798055B CN201380060156.2A CN201380060156A CN104798055B CN 104798055 B CN104798055 B CN 104798055B CN 201380060156 A CN201380060156 A CN 201380060156A CN 104798055 B CN104798055 B CN 104798055B
Authority
CN
China
Prior art keywords
data
memory
write
page
case
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
CN201380060156.2A
Other languages
English (en)
Other versions
CN104798055A (zh
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.)
Chuo University
Original Assignee
Chuo University
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 Chuo University filed Critical Chuo University
Publication of CN104798055A publication Critical patent/CN104798055A/zh
Application granted granted Critical
Publication of CN104798055B publication Critical patent/CN104798055B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • G06F2212/1036Life time enhancement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7202Allocation control and policies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Abstract

为了以更高的速度写入数据并且抑制非易失性存储器的劣化,在页利用率R小于阈值Rth1的情况下和在写入数据是高频率重写数据的情况下将写入数据存储至ReRAM中。此外,在ReRAM的空闲空间Semp2小于阈值Sth的情况下(步骤S110),如果ReRAM数据是低频率重写数据并且在将对象数据存储至闪速存储器(22)中的情况下的页利用率R大于或等于阈值Rth3(步骤S120、S130),从ReRAM读出转移列表中所存储的N个逻辑页地址中所包含的逻辑扇区中的数据,并写入闪速存储器(步骤S140‑S160)。通过这种方式,能够以更高的速度写入数据并且抑制非易失性存储器的劣化。

Description

存储器控制器、数据存储装置和存储器控制方法
本发明要求在2012年9月19日提交的日本专利申请号2012-205664的优先权,通过引用将该专利的全部公开内容包含于此。
技术领域
本发明涉及一种存储器控制器、数据存储装置和存储器控制方法,并且更具体地,涉及对第一存储器和第二存储器进行控制的存储器控制器、包括这样的存储器控制器的数据存储装置、以及用于对第一存储器和第二存储器进行控制的存储器控制方法。第一存储器是被配置为通过如下的写入操作来写入数据的非易失性存储器,其中,在该写入操作中,以包括多个扇区的页为单位读出数据,与读出的数据中的写入数据相对应的扇区被写入数据覆盖,然后以页为单位写入数据。与第一存储器相比,第二存储器是被配置为允许进行更快地数据写入的非易失性随机存取存储器。
背景技术
传统上提出的这种类型的存储器控制器对铁电随机存取存储器(FeRAM)和硬盘驱动器(HDD)进行控制,以使得可以将来自个人计算机系统的数据存储到该FeRAM中,其中,该FeRAM为即使在电源被切断的情况下也能保留其存储数据的非易失性随机存取存储器、并且用作高速缓存存储器(例如,参见非专利文献1,"A 128Mb ChainFeRAMTM and SystemDesigns for HDD Application and Enhanced HDD Performance",by DaisaburoTakashima et al)。这种类型的控制器已经消除了定期将存储在FeRAM中的数据保存到HDD中以备意料之外的电源切断的必要,因而增大了要存储到FeRAM中的数据量,并且提高了高速缓存命中率。
现有技术文献
非专利文献
非专利文献1:Daisaburo Takashima et al,"A 128Mb ChainFeRAMTM andSystem Designs for HDD Application and Enhanced HDD Performance",IEEE AsianSolid-State Circuits Conference,November 16-18,2009,Taipei,Taiwan。
发明内容
已开发出的用于存储来自主机装置的数据的固态驱动器(SSD)包括:诸如NAND闪速存储器等的非易失性存储器,其通过如下的写入操作来写入数据,该写入操作首先以包括多个扇区的页为单位读出存储的数据,以扇区为单位写入读出的数据,然后以页为单位写入数据;诸如电阻式随机存取存储器(ReRAM)等的非易失性随机存取存储器,其允许进行比非易失性存储器更快的数据读出/写入;以及存储器控制器,其控制非易失性存储器和非易失性随机存取存储器。在这样的SSD中,重复对非易失性存储器进行写入操作可能导致非易失性存储器的劣化,因而抑制非易失性存储器的劣化已成为迫切的问题。并且,在这样的SSD中,也迫切需要以更高的速度进行数据写入。因此,期望在SSD中实现在抑制非易失性存储器的劣化的情况下进行更快的数据写入。
根据本发明的存储器控制器、数据存储装置和存储器控制方法,主要期望实现更快的数据写入和非易失性存储器中的减小的劣化。
本发明的存储器控制器、数据存储装置和存储器控制方法使用以下部件来实现上述主要目的。
本发明的存储器控制器用于对第一存储器和第二存储器进行控制,其中,所述第一存储器被配置为通过如下的写入操作来写入数据的非易失性存储器,其中,在该写入操作中,以包括多个扇区的页为单位读出数据,利用读出的数据中的写入数据覆盖与该写入数据相对应的扇区,然后以页为单位写入数据,并且,所述第二存储器被配置为与所述第一存储器相比允许进行更快的数据写入的非易失性随机存取存储器。
所述存储器控制器包括写入控制器和数据转移控制器。所述写入控制器用于当输入了所述写入数据和请求写入所述写入数据的写入请求信号时,对所述第一存储器和所述第二存储器进行控制,以使得在将所述写入数据写入所述第一存储器时所获得的数据利用率等于或高于第一比率的情况下,通过所述写入操作来将输入的写入数据写入所述第一存储器;并且对所述第一存储器和所述第二存储器进行控制,以使得在所述数据利用率低于所述第一比率的情况下,将输入的写入数据存储至所述第二存储器中,其中,所述数据利用率表示具有预定大小的存储区域中用于存储所述写入数据的扇区大小的比率。
所述数据转移控制器用于在所述第二存储器中的空闲空间小于预定容量的情况下,至少将所述第二存储器中所存储的数据是具有低重写频率的低频率重写数据作为必要条件来执行数据转移控制,该数据转移控制对所述第一存储器和所述第二存储器进行控制,以使得将所述低频率重写数据从所述第二存储器读出以通过所述写入操作写入所述第一存储器。
本发明的存储器控制器当输入了所述写入数据和请求写入所述写入数据的写入请求信号时,对所述第一存储器和所述第二存储器进行控制,以使得在将所述写入数据写入所述第一存储器时所获得的数据利用率等于或高于第一比率的情况下,通过写入操作来将输入的写入数据写入所述第一存储器;并且对所述第一存储器和所述第二存储器进行控制,以使得在所述数据利用率低于所述第一比率的情况下,将输入的写入数据存储至所述第二存储器中,其中,所述数据利用率表示具有预定大小的存储区域中用于存储所述写入数据的扇区大小的比率。在所述第一存储器的数据写入操作中,以包括多个扇区的页为单位读出数据,利用读出的数据中的写入数据覆盖与该写入数据相对应的扇区,然后以页为单位写入数据。因此,在所述第一存储器的写入操作中,还对未用于数据存储的扇区进行读出和写入。在执行写入操作的情况下非易失性存储器劣化。因而期望对这样的未用于数据存储的扇区不进行写入。为了实现该目的,对第一存储器和第二存储器进行控制,以使得在数据利用率低于第一比率的情况下将输入的写入数据存储至第二存储器中。这使得第一存储器中的数据利用率等于或高于第一比率,因而减少了相对于第一存储器中未用于数据存储的存储区域的读出/写入。通过这种方式,能够抑制第一存储器的劣化。随着如上所述的数据被写入第二存储器中,第二存储器中空闲空间减少。由于与第一存储器相比,第二存储器允许进行更快的数据写入,因此,第二存储器中这样更少的空闲空间可能最终禁止到第二存储器的写入,这降低了数据写入速度。并且,如果第二存储器包含大量作为具有低重写频率的低频率重写数据的数据,则将进一步降低数据写入速度。为了避免这种情况,在第二存储器中的空闲空间小于预定容量的情况下,对第一存储器和第二存储器进行控制,以使得在第二存储器中所存储的数据是具有低重写频率的低频率重写数据的情况下,将低频率重写数据从第二存储器读出以通过写入操作写入第一存储器。这防止了第二存储器中的空闲空间减少到小于预定容量,从而使得进行更快的数据写入。通过这种方式,可以抑制非易失性存储器的劣化并且实现更快的数据写入。在这方面,“预定大小”例如是指预先确定为页大小的大小、多页的大小、或者比与写入数据的逻辑地址相对应的页中的一个扇区的大小大的大小。“第一存储器”包括NAND闪速存储器,并且“第二存储器”包括电阻式随机存取存储器。
在本发明的这样的存储器控制器中,所述数据转移控制器可以被配置为在所述第二存储器中的空闲空间小于所述预定容量的情况下,至少将所述第二存储器中所存储的数据是所述低频率重写数据和将所述低频率重写数据写入所述第一存储器时所获得的所述数据利用率等于或高于比所述第一比率低的第二比率作为必要条件,来执行所述数据转移控制。这防止了使数据利用率低于第二比率的数据存储至第一存储器中,从而抑制了第一存储器的劣化。
在将具有包含用于存储低频率重写数据的扇区的预定大小的数据写入第一存储器时所获得的数据利用率等于或高于比第一比率低的第二比率的情况下执行数据转移控制的本发明的存储器控制器还包括地址管理部和高利用率地址信息存储器。地址管理部用于通过使用包括表示包含数据的页的页地址和表示用于存储该页中所包含的数据的扇区的扇区地址的逻辑地址,来管理所述第一存储器和所述第二存储器。高利用率地址信息存储器用于存储使所述数据利用率等于或高于所述第一比率的写入数据的所述逻辑地址。所述数据转移控制器可以被配置为在所述高利用率地址信息存储器中存储的输入的所述写入数据的逻辑地址的个数小于预定个数的情况下,判断为输入的所述写入数据是所述低频率重写数据。
在将具有包含用于存储低频率重写数据的扇区的预定大小的数据写入第一存储器时所获得的数据利用率等于或高于比第一比率低的第二比率的情况下执行数据转移控制的本发明的存储器控制器还包括页地址存储器。页地址存储器用于当所述第二存储器中的空闲空间小于所述预定容量时,在所述第二存储器中所存储的数据是所述低频率重写数据并且将所述低频率重写数据写入所述第一存储器时所获得的所述数据利用率等于或高于所述第二比率的情况下,对包含低频率重写数据的页的页地址进行存储。所述数据转移控制器被配置为在所述第二存储器中的空闲空间小于所述预定容量的情况下,至少将所述第二存储器中所存储的数据是所述低频率重写数据、将所述低频率重写数据写入所述第一存储器时所获得的所述数据利用率等于或高于所述第二比率、以及所述页地址存储器中所存储的页地址的个数等于或大于预定个数作为必要条件,来针对第二存储器中的与所述页地址存储器所存储的页地址相对应的数据执行所述数据转移控制。该配置防止了频繁地读出第二存储器所存储的数据来写入第一存储器。在这种情况下,所述数据转移控制器被配置为在所述第二存储器中的空闲空间小于所述预定容量的情况下,针对比所述预定个数多的多个页,在判断所述第二存储器中所存储的数据是否是所述低频率重写数据并且将所述低频率重写数据写入所述第一存储器时所获得的所述数据利用率是否等于或高于所述第二比率之后,在所述页地址存储器中所存储的页地址的个数小于所述预定个数的情况下减小所述第二比率,在所述页地址存储器中所存储的页地址的个数等于所述预定个数的情况下维持所述第二比率的值而不对该值进行任何改变,在所述页地址存储器中所存储的页地址的个数大于所述预定个数的情况下增大所述第二比率。
在将具有包含用于存储低频率重写数据的扇区的预定大小的数据写入第一存储器时所获得的数据利用率等于或高于比第一比率低的第二比率的情况下执行数据转移控制的本发明的存储器控制器中,所述写入控制器和所述数据转移控制器可以被配置为通过参考表示各扇区是否存储有数据的利用扇区信息以及用于存储输入的写入数据的扇区,来计算所述数据利用率。
在本发明的存储器控制器中,在将输入的写入数据存储至所述第二存储器时,所述控制器可以被配置为在与输入的写入数据的逻辑地址相对应的数据已被存储至所述第一存储器的存储区域的情况下,以页为单位读出所述第一存储器中所存储的数据,重写读出的数据的扇区中要写入写入数据的扇区,然后以页为单位将输入的写入数据存储到所述第二存储器中。
在本发明的存储器控制器中,具有所述预定大小的所述存储区域可以是存储有包含所述写入数据所使用的扇区的页的区域。
本发明的数据存储装置包括:以上述形式中任一形式展现的本发明的存储器控制器;第一存储器;以及第二存储器。具体地,本发明的存储器控制器主要对第一存储器和第二存储器进行控制,所述第一存储器被配置为通过如下的写入操作来写入数据的非易失性存储器,其中,在该写入操作中,以包括多个扇区的页为单位读出数据,利用读出的数据中的写入数据覆盖与该写入数据相对应的扇区,然后以页为单位写入数据,并且所述第二存储器被配置为与所述第一存储器相比允许进行更快的数据写入的非易失性随机存取存储器。所述存储器控制器包括:写入控制器,用于当输入了所述写入数据和请求写入所述写入数据的写入请求信号时,对所述第一存储器和所述第二存储器进行控制,以使得在将所述写入数据写入所述第一存储器时所获得的数据利用率等于或高于第一比率的情况下,通过写入操作来将输入的写入数据写入所述第一存储器;并且对所述第一存储器和所述第二存储器进行控制以使得在所述数据利用率低于所述第一比率的情况下,将输入的写入数据存储至所述第二存储器中,其中,所述数据利用率表示具有预定大小的存储区域中用于存储所述写入数据的扇区大小的比率;以及数据转移控制器,用于在所述第二存储器中的空闲空间小于预定容量的情况下,至少将所述第二存储器中所存储的数据是具有低重写频率的低频率重写数据作为必要条件,来执行数据转移控制,该数据转移控制对所述第一存储器和所述第二存储器进行控制,以使得将所述低频率重写数据从所述第二存储器读出以通过所述写入操作写入所述第一存储器。
包括以上述形式中任一形式展现的本发明的存储器控制器的本发明的数据存储装置提供了与本发明的存储器控制器相同的效果。这样的效果的示例包括抑制非易失性存储器的劣化并以更高的速度进行数据写入。
本发明的存储器控制方法对第一存储器和第二存储器进行控制,其中,所述第一存储器被配置为通过如下的写入操作来写入数据的非易失性存储器,其中,在该写入操作中,以包括多个扇区的页为单位读出数据,利用读出的数据中的写入数据覆盖与该写入数据相对应的扇区,然后以页为单位写入数据,并且所述第二存储器被配置为与所述第一存储器相比允许进行更快的数据写入的非易失性随机存取存储器。
所述存储器控制方法包括以下步骤:当输入了所述写入数据并请求写入所述写入数据的写入请求信号时,对所述第一存储器和所述第二存储器进行控制,以使得在将所述写入数据写入所述第一存储器时所获得的数据利用率等于或高于第一比率的情况下通过写入操作来将输入的写入数据写入所述第一存储器;并且对所述第一存储器和所述第二存储器进行控制,以使得在所述数据利用率低于所述第一比率的情况下将输入的写入数据存储至所述第二存储器中,其中,所述数据利用率表示具有预定大小的存储区域中用于存储所述写入数据的扇区大小的比率;以及
在所述第二存储器中的空闲空间小于预定容量的情况下,至少将所述第二存储器中所存储的数据是具有低重写频率的低频率重写数据作为必要条件来执行数据转移控制,该数据转移控制对所述第一存储器和所述第二存储器进行控制,以使得将所述低频率重写数据从所述第二存储器读出以通过所述写入操作写入所述第一存储器。
本发明的存储器控制方法用于当输入了所述写入数据并请求写入所述写入数据的写入请求信号时,对所述第一存储器和所述第二存储器进行控制,以使得在将所述写入数据写入所述第一存储器时所获得的数据利用率等于或高于第一比率的情况下通过写入操作来将输入的写入数据写入所述第一存储器;并且对所述第一存储器和所述第二存储器进行控制,以使得在所述数据利用率低于所述第一比率的情况下将输入的写入数据存储至所述第二存储器中,其中,所述数据利用率表示具有预定大小的存储区域中用于存储所述写入数据的扇区大小的比率。在所述第一存储器的数据写入操作中,以包括多个扇区的页为单位读出数据,利用读出的数据中的写入数据覆盖与该写入数据相对应的扇区,然后以页为单位写入数据。因此,在所述第一存储器的写入操作中,还对未用于数据存储的扇区进行读出和写入。在执行写入操作的情况下非易失性存储器劣化。因而期望对这样的未用于数据存储的扇区不进行写入。为了实现该目的,对第一存储器和第二存储器进行控制,以使得在数据利用率低于第一比率的情况下将输入的写入数据存储至第二存储器。这使得第一存储器中的数据利用率等于或高于第一比率,因而减少了相对于第一存储器中未用于数据存储的存储区域的读出/写入。通过这种方式,能够抑制第一存储器的劣化。随着如上所述的数据被写入第二存储器中,第二存储器中的空闲空间减少。由于与第一存储器相比,第二存储器允许进行更快的数据写入,因此,第二存储器中这样少的可能最终禁止第二存储器的空闲空间写入降低了数据写入速度。并且,如果第二存储器包含大量作为具有低重写频率的低频率重写数据的数据,则将进一步降低数据写入速度。为了避免这种情况,在第二存储器中的空闲空间小于预定容量的情况下,对第一存储器和第二存储器进行控制,以使得在第二存储器中所存储的数据是具有低重写频率的低频率重写数据的情况下,将低频率重写数据从第二存储器读出以通过写入操作写入第一存储器。这防止了第二存储器中的空闲空间减少到小于预定容量,从而使得进行更快的数据写入。通过这种方式,可以抑制非易失性存储器的劣化并且实现更快的数据写入。此时,“预定大小”例如是指预先确定为页大小的大小、多页的大小、或者比与写入数据的逻辑地址相对应的页中的一个扇区的大小大的大小。“第一存储器”包括NAND闪速存储器,并且“第二存储器”包括电阻式随机存取存储器。
在本发明的这样的存储器控制方法中,可以在所述第二存储器中的空闲空间小于所述预定容量的情况下,至少将所述第二存储器中所存储的数据是所述低频率重写数据、以及将包含存储所述低频率重写数据所利用的扇区的具有所述预定大小的数据写入所述第一存储器时所获得的所述数据利用率等于或高于比所述第一比率低的第二比率作为必要条件,来执行所述数据转移控制。这防止了使数据利用率低于第二比率的数据存储至第一存储器中,从而抑制了第一存储器的劣化。
附图说明
以下将参考附图进一步说明本发明,其中:
图1是作为存储来自主机装置10的数据的本发明实施例的SSD 20的示意图;
图2是阻抗可变元件46的一个示例的说明图;
图3是通过存储器控制器30中的控制处理电路32所执行的接收到写入请求时的处理例程的一个示例的流程图;
图4是通过存储器控制器30中的控制处理电路32所执行的写入处理例程的一个示例的流程图;
图5是使用扇区标志表(USFT)和页利用率R的一个示例的说明图;
图6是生成USFT的说明图;
图7是生成另一USFT的说明图;
图8是在当页利用率R高于阈值Rth2时、未执行USFT的重置操作的情况下所生成的USFT的一个示例的说明图;
图9是在当页利用率R高于阈值Rth2时、执行了USFT的重置操作的情况下所生成的USFT的一个示例的说明图;
图10是通过存储器控制器30中的控制处理电路32所执行的数据转移控制处理例程的一个示例的流程图。
具体实施方式
以下将参考示例来说明用于实现本发明的实施例。
图1是作为存储来自诸如个人计算机等的主机装置10的数据的本发明的实施例的SSD 20的示意图。SSD 20是被配置为存储各种应用程序和各种类型的数据的大容量数据存储装置。SSD 20包括被配置为NAND闪速存储器的闪速存储器22、电阻式随机存取存储器(ReRAM)24和对闪速存储器22和ReRAM24进行控制的存储器控制器30。
闪速存储器22是被配置为包括具有多个闪速存储器单元的闪速存储器单元阵列(未示出)的NAND闪速存储器。随着相对于浮动栅极的电子注入/电子取出,闪速存储器单元的阈值电压发生变化。除了闪速存储器单元阵列之外,闪速存储器22还可以包括行解码器、列解码器和感测放大器等(均未示出)。在闪速存储器22中,以包括8个扇区(在一个实施例中为512字节)的页为单位(在一个实施例中为4千字节)写入/读出数据,并且以包括128个页的块为单位(在一个实施例中为512千字节)擦除数据。在这样的闪速存储器22中,通过如下写入操作来进行数据写入,在该写入操作中,读出闪速存储器22中所存储的数据,以扇区为单位覆盖与读出的数据中的写入数据相对应的扇区中的数据来重写数据,然后将所重写的数据以页为单位写入闪速存储器22。在一个实施例中,相对于闪速存储器22的数据的写入/读出速度可以设置为212MB/s。
ReRAM 24包括如图2所示的包括多个由阻抗可变元件46组成的ReRAM单元的ReRAM单元阵列(未示出)和连接至阻抗可变元件46的金属氧化物半导体(MOS)晶体管(未示出)。阻抗可变元件46上形成有上部电极40和被金属氧化物44分离的下部电极42。上部电极和下部电极这两者均由诸如钛(Ti)或铂(Pt)等的金属制成。除了ReRAM单元阵列以外,ReRAM 24还可以包括行解码器、列解码器和感测放大器等(均未示出)。ReRAM单元被形成为允许进行双极型操作,在该双极型操作中,ReRAM单元在施加至上部电极40的电压V1高于施加至下部电极42的电压V2的情况下被设置(或者具有低阻抗),ReRAM单元在电压V1低于电压V2的情况下被重置(或者具有高阻抗)。允许进行双极型操作的这样的ReRAM单元一般以相对快的操作速度和较低的电力消耗进行工作。ReRAM 24因而被配置为具有相对快的操作速度和较低的电力消耗的存储器。金属氧化物44可以期望是氧化钛(TiOx)、氧化镍(NiOx)、氧化铜(CuOx)、氧化铪(HfOx)等,或者可以期望是由这样的金属氧化物制成的多层的堆叠。在这样的ReRAM 24中,通过将数据写入与写入数据相对应的扇区来进行数据写入。在一个实施例中,ReRAM 24的数据写入/读出速度可以设置为1.25GB,该速度高于闪速存储器22的数据写入/读出速度。
存储器控制器30包括被配置为具有多个逻辑元件的逻辑电路的控制处理电路32。控制处理电路32执行各种类型的控制和运算处理。控制处理电路32从主机装置10接收各种类型的控制信号或数据。控制处理电路32主要根据输入到控制处理电路32的控制信号来控制闪速存储器22和ReRAM 24,以使得能够相对于闪速存储器22或ReRAM 24存储/读出数据,并将读出的数据输出至主机装置10。当进行数据写入/读出时,控制处理电路32将逻辑地址转换为表示闪速存储器22和ReRAM 24的实际位置的物理地址,并且监测ReRAM 24中的空闲空间Semp2,其中,逻辑地址包括虚拟地表示要存储数据的页的逻辑页地址和虚拟地表示要存储数据的扇区的逻辑扇区地址。存储器控制器30以相对高的速度(例如,大约1.25GB/s)与主机装置10交换各种控制信号或数据。
以下说明被配置为如上所述的SSD 20的操作,特别是在闪速存储器22或ReRAM 24中存储从主机装置10输入的数据的情况下所进行的操作。图3是存储器控制器30中的控制处理电路32所执行的接收到写入请求时的处理例程的一个示例的流程图。在输入以下事项的情况下执行该例程:请求将来自主机装置10的数据写入闪速存储器22或ReRAM 24的写入请求信号、写入数据、以及表示要存储写入数据的位置的包括逻辑页地址和逻辑扇区地址的逻辑地址。
当输入写入请求信号时,存储器控制器30中的控制处理电路32执行将在后面描述的数据转移处理(步骤S100)和数据写入处理(步骤S300)。为了说明,先描述数据写入处理,然后描述数据转移处理。
图4是由存储器控制器30中的控制处理电路32所执行的写入处理例程的一个示例的流程图。当执行该例程时,存储器控制器30中的控制处理电路32生成使用扇区标志表(USFT)(步骤S310),并且通过使用USFT来计算各逻辑页地址的页利用率R(步骤S320)。页利用率R表示用于数据存储的扇区的比率。
图5是USFT和页利用率R的一个示例的说明图。USFT具有各扇区的标志。在各扇区的标志中,未用于数据存储的扇区设置为值“0”和用于数据存储的扇区设置为值“1”。在本实施例中,一页有8个扇区,这意味着每页各自具有8个标志。通过将一页中所包含的设置为值“1”标志的个数除以一页中所包含的标志的总数的值“8”来计算页利用率R。因此,在一页包括3个为值“1”的标志的情况下、即一页中3个扇区用于数据存储的情况下,页利用率R为0.375(等于3/8),并且在一页包括6个为值“1”的标志的情况下、即一页中6个扇区用于数据存储的情况下,页利用率R为0.75(等于6/8)。
通过计算写入数据扇区标志表(WSFT)和已存储的USFT的逻辑或(OR)来生成USFT(步骤S310)。在WSFT中,用于存储写入数据的扇区的扇区标志设置为值“1”,并且其它扇区的扇区标志设置为值“0”。例如,如图6所示,在已存储的USFT为“01111100”并且WSFT为“11000000”的情况下,生成为“11111100”的USFT。在这种情况下,页利用率R为0.75。
在如上所述那样计算页利用率R之后,处理进入判断页利用率R是否等于或高于阈值Rth1(步骤S330)和判断写入数据是否是具有相对高的重写频率的高频率重写数据(步骤S340)的步骤。在本实施例中,设定阈值Rth1使得其随着存储在ReRAM中的数据的大小的增大而减小。为了判断写入数据是否是高频率重写数据,在页利用率R等于或高于阈值Rth1的情况下,将2000个最近输入的逻辑地址存储到存储表中。在发现存储表中有大于预定数量(例如100)的写入数据的逻辑地址的情况下,该写入数据被判断为高频率重写数据。
在页利用率R等于或高于阈值Rth1而写入数据不是高频率重写数据的情况下(步骤S330、340),控制写入数据以使得通过如上所述的写入操作将该写入数据存储到闪速存储器22中(步骤S350)。通过这种方式,数据可以存储到闪速存储器22中。
在页利用率R低于阈值Rth1的情况下,即在如图7所示页中存在相对较大数量的扇区未被使用的情况下(步骤S330),或者在页利用率R等于或高于阈值Rth1而写入数据是高频率重写数据的情况下(步骤S340),判断为将数据存储到闪速存储器22中将促进闪速存储器22的劣化,因而利用写入操作将数据写入ReRAM 24中(步骤S360-S380)。在存在相对较大数量的扇区未被使用的情况下判断为将数据存储到闪速存储器22中将促进闪速存储器22的劣化的原因在于,这样将数据写入到闪速存储器22可能引起即使实际上不需要用于数据存储的存储区域也执行写入操作,这在某些情况下导致闪速存储器22的劣化。为了避免这种情况,设置阈值Rth1以使得其随着存储在ReRAM 24中的数据大小的增大而减小。这在ReRAM 24在其存储区域中具有较少空闲空间的情况下能够减少要存储至ReRAM 24中的写入数据量,从而即使在ReRAM 24具有相对小的存储区域的情况下也允许在ReRAM 24中进行更恰当的数据存储。
ReRAM 24的存储操作首先需要检查闪速存储器22中是否存储有与写入数据的逻辑地址相对应的数据(步骤S360)。在闪速存储器22中存储有该数据的情况下,处理进入生成合成数据的步骤(步骤S370)。通过以页为单位从闪速存储器22读出与写入数据的逻辑地址相对应的地址的数据来生成合成数据,并且以扇区为单位通过写入数据来覆盖与读出的数据中的写入数据相对应的数据。处理然后进入控制ReRAM 24的步骤,以使得可以将合成数据存储到ReRAM 24中(步骤S380),或者使得可以在数据未存储到闪速存储器22中的情况下将写入数据存储到ReRAM 24中。如果这样,则即使在页利用率R低于阈值Rth1的情况下,或者在页利用率R等于或高于阈值Rth1而写入数据被判断为高频率重写数据的情况下,也可以将写入数据存储到ReRAM 24中,因而减小了闪速存储器22的劣化。并且,由于ReRAM 24的写入速度比闪速存储器22的写入速度快,因此,如上所述的将写入数据存储到ReRAM 24中实现了执行更快的写入操作。
在如上所述的将写入数据存储到闪速存储器22或ReRAM 24中之后,步骤进入检查页利用率R是否高于预定的阈值Rth2(例如0.85)的步骤(步骤S390)。阈值Rth2的值是大于阈值Rth1的值。在页利用率R高于预定的阈值Rth2的情况下,执行标志重置操作以将所有的USFT的标志设置为值“0”(步骤S400)。在页利用率R等于或低于预定的阈值Rth2的情况下,在不对USFT进行任何改变的情况下完成例程。将在以下说明进行这样的标志重置操作的原因。
例如,如图8所示,在已存储的USFT为“01111111”(这种情况下的页利用率R为0.875)并且WSFT为“11000000”的情况下,生成为“11111111”的USFT。在这样的高页利用率R的情况下,总是利用写入操作将相应的页上的数据存储到闪速存储器22中,除非该数据是可能促进闪速存储器22劣化的高频率重写数据。如图9所示,通过执行在页利用率R高于阈值Rth2的情况下将USFT的所有标志设置为值“0”的标志重置操作(步骤S400),当下次执行步骤S310时,已存储的USFT将变成“00000000”(这种情况下的页利用率R为0)。在这种情况下,在WSFT为“11000000”的情况下,将生成为“11000000”的USFT。在当页利用率R变得高于阈值Rth2时之后,该USFT应表示用于数据存储的扇区信息。由于在这种情况下的页利用率R是0.25,因此将数据写入ReRAM 24(步骤S330、步骤S360-S380)。通过这种方式,对闪速存储器22的数据写入操作进行控制,以使得能够抑制闪速存储器22的劣化。如上所述,已经说明了如图3所示的数据写入处理的一个示例(步骤S300)。
如上所述的数据写入处理可以允许将在页利用率R低于阈值Rth1的情况下具有相对低的重写频率的低频率重写数据写入ReRAM 24,从而导致具有这样的低频率重写数据的ReRAM 24的空闲空间的减小。由于与闪速存储器22相比ReRAM 24允许进行更快的数据写入,因此具有较少空闲空间的ReRAM 24可能降低SSD 20整体的数据写入速度。为了避免这样的缺点,如图3所示,在数据写入控制处理(步骤S300)之前执行数据转移处理(步骤S100)。以下说明数据转移处理例程。
图10是由存储器控制器30中的控制处理电路32所执行的数据转移处理例程的一个示例的流程图。一旦执行该例程,存储器控制器30中的控制处理电路32就检查ReRAM 24中的空闲空间Semp2(步骤S110)。在空闲空间Semp2的容量大于阈值Sth(例如0.2)的情况下,ReRAM 24中的空闲空间Semp2被判断为是充足的。该例程因而完成并移动至执行如图3所示的数据写入处理(步骤S300)。
在空闲空间Semp2小于阈值Sth(步骤S110)的情况下,ReRAM 24中的空闲空间被判断为是不充足的。处理然后进入判断ReRAM 24的扇区所存储的数据是否是具有相对低的重写频率的低频率重写数据的步骤(步骤S120),以及/或者判断页利用率R是否等于或高于低于阈值Rth1的阈值Rth3的步骤(步骤S130)。此时,在图4的步骤S340中所使用的存储表不包含包括表示在步骤S120中进行判断的数据的逻辑扇区地址的逻辑页地址的情况下,数据被判断为低频率重写数据。
在ReRAM 24中的数据是低频率重写数据并且将对象数据写入闪速存储器22时所获得的页利用率R等于或高于阈值Rth3的情况下(步骤S120和S130),判断为即使将数据存储到闪速存储器22中,这样的低频率重写数据以及等于或高于阈值Rth3的页利用率R也不会引起闪速存储器22的严重劣化。处理因而进入将存储在闪速存储器22时所获得的判断对象数据的逻辑页地址存储至转移列表(步骤S140)。转移列表包含要转移至闪速存储器22的数据的地址的列表。
当ReRAM 24中的数据不是低频率重写数据(步骤S120)或者将对象数据存储到闪速存储器22中所获得的页利用率R低于阈值Rth3的情况下(步骤S130)时,在不将逻辑页地址存储至转移列表的情况下,将对ReRAM 24的其它扇区中的数据顺次进行步骤S120和S130,直到对ReRAM 24的所有扇区中的数据都进行了步骤S120和S130为止(步骤S170)。通过这种方式,仅被转移至闪速存储器22的情况下不会使闪速存储器22严重劣化的数据的逻辑页地址能够存储至转移列表中。
在将判断对象数据写入闪速存储器22时所获得的逻辑页地址存储至转移列表中之后(步骤S140),处理进入检查转移列表所存储的逻辑页地址的个数是否达到阈值N的步骤(步骤S150),其中N是例如1500的正整数。在转移列表所存储的逻辑页地址的个数没有达到阈值N的情况下,处理进入对ReRAM 24的其它扇区中的数据进行步骤S120-S150的步骤,直到对ReRAM 24的所有扇区中的数据都进行了步骤S120-S150为止(步骤S170)。在转移列表所存储的逻辑页地址的个数达到了阈值N的情况下,从ReRAM 24读出转移列表中所存储的逻辑页地址中所包含的逻辑扇区的数据,以写入闪速存储器22(步骤S160)。上述处理使得在转移列表所存储的逻辑页地址的个数达到了阈值N的情况下将数据从ReRAM 24转移到闪速存储器22。
以下将说明在转移列表所存储的逻辑页地址的个数达到了阈值N的情况下将数据从ReRAM 24转移到闪速存储器22的原因。由于与闪速存储器22相比,ReRAM 24允许进行更快的数据写入,因此可能抑制数据写入至ReRAM 24的具有较少空闲空间的ReRAM 24降低了SSD 20整体的数据写入速度。并且,包含大量具有低重写频率的低频率重写数据的ReRAM24可能进一步降低数据写入速度。为了避免这种情况,如上所述这样将ReRAM 24中所存储的数据中具有低重写频率的数据转移至闪速存储器22。这增大了ReRAM 24中的空闲空间并且减少了ReRAM 24中存储的低频率重写数据,使得能够更快地将数据写入SSD 20。并且,即使在ReRAM 24中的数据是低频率重写数据并且将对象数据存储至闪速存储器22时所获得的页利用率R等于或高于阈值Rth3的情况下,存储在ReRAM 24中的数据也不会被写入闪速存储器22,直到转移列表所存储的逻辑页地址的个数达到阈值N为止。因此,数据不会频繁地从ReRAM 24转移至闪速存储器22,从而不会降低SSD 20的写入速度。
在对ReRAM 24的所有扇区的数据进行了步骤S120-S150的情况下(步骤S150、S170),即使转移列表所存储的逻辑页地址的个数没有达到阈值N,如果转移列表中存储有逻辑页地址,则处理也进入从ReRAM 24读出逻辑页地址中所包含的逻辑扇区的数据并将该数据写入闪速存储器22的步骤(步骤S160)。通过这种方式,即使在转移列表所存储的逻辑页地址的个数没有达到阈值N的情况下,也可以将数据从ReRAM 24转移至闪速存储器22。
在如上所述那样将数据从ReRAM 24转移至闪速存储器22之后,处理进入判断目标页数(例如500页,与步骤S150中的转移列表中的逻辑页地址的个数的阈值N相对应的页数)的数据是否已从ReRAM 24转移至闪速存储器22。如果没有转移目标页数的数据,则阈值Rth3被判断为大于恰当的值,阈值Rth3被重置为通过从该阈值Rth3减0.1而获得的值(步骤S190),并且例程结束。如果已转移目标页数的数据,则阈值Rth3被判断为恰当的值或者低于恰当的值,阈值Rth3被重置为从该阈值Rth3加0.1而获得的值和阈值Rth1中较小的值(步骤S200),并且例程结束。如上处理对阈值Rth3进行更恰当的设置,因而在进行下一例程的情况下,能够利用更恰当的阈值Rth3来进行步骤S130。
根据如上所述实施例的SSD 20,通过在页利用率R低于阈值Rth1的情况下、或者在页利用率R等于或高于阈值Rth1而写入数据是高频率重写数据的情况下将写入数据存储到ReRAM 24中,可以抑制闪速存储器22的劣化。并且,由于与闪速存储器22相比,ReRAM 24的写入速度更快,因此如上这样使得以更快的写入操作将写入数据存储到ReRAM 24中。此外,在ReRAM 24中的空闲空间Semp2小于阈值Sth的情况下,当ReRAM 24中的数据是低频率重写数据并且将对象数据存储到闪速存储器22时所获得的页利用率R等于或高于阈值Rth3时,将判断对象数据存储到闪速存储器22所获得的逻辑页地址存储到转移列表中。在转移列表中所存储的逻辑页地址的个数达到阈值N的情况下,从ReRAM 24中读出转移列表所存储的逻辑页地址中所包含的逻辑扇区的数据,以写入闪速存储器22中。如上这样的处理使得更快地将数据写入SSD 20。并且,由于在转移列表中所存储的逻辑页地址的个数达到阈值N之前,ReRAM 24中所存储的数据不会被写入闪速存储器22,因此,数据不会频繁地从ReRAM 24转移至闪速存储器22,因而抑制了SSD 20中的性能的劣化。
在本实施例的SSD 20中,在转移列表中所存储的逻辑页地址的个数达到阈值N之前,ReRAM 24中所存储的数据不会被写入闪速存储器22(步骤S140、S160)。然而,SSD 20可以被配置为以使得在不将页地址存储到转移列表中的情况下将对象数据存储到闪速存储器22中,只要ReRAM中的数据是低频率重写数据并且将对象数据存储到闪速存储器22时所获得的页利用率R等于或高于阈值Rth3。
在本实施例的SSD 20中,阈值Rth3可以根据步骤S180-S200中是否转移数据而变化。然而,阈值Rth3可以作为不需要这样的改变处理的不进行改变的恒定值。
在本实施例的SSD 20中,在ReRAM中的数据是低频率重写数据并且将对象数据存储到闪速存储器22时所获得的页利用率R等于或高于阈值Rth3的情况下,进行步骤S140和步骤S140以后的步骤。然而,可以在不判断将对象数据存储到闪速存储器22时所获得的页利用率R是否等于或高于阈值Rth3的情况下进行步骤S140和步骤S140以后的步骤。
在本实施例的SSD 20中,即使在页利用率R等于或高于阈值Rth1的情况下,作为高频率重写数据的写入数据也将存储到ReRAM 24中(步骤S330、S340、S360-S380)。然而,可以在不进行步骤S340的情况下,将写入数据无差别地存储到闪速存储器22中,只要页利用率R等于或高于阈值Rth1(步骤S330、S350)。
在本实施例的SSD 20中,设置阈值Rth1以使得其随着ReRAM 24中的数据存储区域的大小的增大而减小。然而,可以将阈值Rth1设置为恒定值,而无论ReRAM 24中的数据存储区域如何。
在本实施例的SSD 20中,在利用率R高于阈值Rth2的情况下,执行标志重置操作,以将USFT的所有标志设置为值“0”(步骤S390、S400)。然而,该处理不是必须要执行的。
在本实施例的SSD 20中,以页为单位来计算页利用率R,或者特别地,通过将页中所包含的值“1”的标志的个数除以一页中所包含的标志的总数的值“8”来计算页利用率R。然而,可以以任意大小为单位来计算页利用率R,只要该任意大小大于一个扇区的大小。例如,可以以两页以上为单位来计算页利用率R,或者特别地,通过将两页以上中所包含的值“1”的标志的个数除以两页以上中所包含的标志的总数来计算页利用率R。
本实施例中的SSD 20包括闪速存储器22。然而,SSD 20可以包括被配置为允许进行如下的数据写入操作的任意非易失性存储器来替代闪速存储器22,在该数据写入操作中,以包括多个扇区的页为单位读出存储区域所存储的数据,以扇区为单位重写读出的数据,然后以页为单位写入数据。
在本实施例的SSD 20中,ReRAM 24中的ReRAM单元被形成为允许进行双极型操作的元件。然而,ReRAM单元可以包括阻抗可变元件46和二极管(未示出),并且可以被配置为允许进行单极型操作的元件,其中,在该单极型操作中,ReRAM单元在将高于电压V2的电压施加电压V1的情况下被设置(或者具有低阻抗),ReRAM单元在将高于电压V2并且低于设置ReRAM单元的电压的电压施加至电压V1的情况下被重置(或者具有高阻抗)。与允许进行双极型操作的ReRAM单元的单元配置和单元尺寸相比较,允许进行单极型操作的这样的ReRAM单元通常具有单个单元配置和较小尺寸。因此,尽管包括允许进行单极型操作的ReRAM单元的ReRAM的操作速度可能稍微下降,但与包括允许进行双极型操作的ReRAM单元的ReRAM相比较,包括允许进行单极型操作的ReRAM单元的ReRAM能够占据较小的区域。
本实施例的SSD 20包括ReRAM 24。然而,SSD 20可以包括允许与闪速存储器22相比进行更快数据写入的其它类型的非易失性随机存取存储器来替代ReRAM 24。非易失性随机存取存储器的示例包括但不限于具有利用两个电极之间所夹持的铁电材料所形成的电容器的铁电随机存取存储器、具有利用磁性膜之间所夹持的隧道磁阻抗膜的结构的磁性隧道结(MTJ)元件的磁阻随机存取存储器、以及具有利用两个电极所夹持相变材料所形成的元件的相变存储器。
在本实施例中,为了说明目的,在SSD中使用本发明。然而,可以在例如USB闪速驱动等的任意设备中使用本发明,只要该设备可以用于数据处理。此外,存储器控制器30、闪速存储器22和ReRAM 24可以不包含在同一设备中。它们各自可以包含在不同的设备中。例如,闪速存储器22和ReRAM 24可以包含在同一设备中,而存储器控制器30包含在不同的设备中。另外,本发明可以用作控制这样的闪速存储器22和ReRAM 24的存储器控制方法的一种形式。
将说明本实施例中出现的主要元件和发明内容部分中所描述的本发明的主要元件之间的对应关系。在本实施例中,对于存储器控制器,执行如图4所示的数据写入处理例程的控制处理电路32与“写入控制器”相对应,并且执行如图10所示的数据转移控制处理例程的控制处理电路32与“数据转移控制器”相对应。在存储器控制器中,通过使用逻辑地址来控制闪速存储器22和ReRAM 24的控制处理电路32与“地址控制器”相对应,存储具有等于或高于阈值Rth1的页利用率R的最接近输入逻辑地址的控制处理电路32与“高利用率地址信息存储器”相对应,并且存储如图10所示的处理例程的步骤S140中的页地址的控制处理电路32与“页地址存储器”相对应。对于数据存储装置,存储器控制器30与“存储器控制器”相对应,闪速存储器22与“第一存储器”相对应,并且ReRAM 24与“第二存储器”相对应。
已参考实施例说明了用于实践本发明的实施方式;然而,本发明不限于这样的实施例,而可以在不脱离本发明的精神和范围的情况下以各种形式来进行实践。
产业上的可利用性
可以在存储器控制器、数据存储装置等的制造工业中利用本发明。
附图标记列表
10 主机装置
20 SSD
22 闪速存储器
24 ReRAM
30 存储器控制器
32 控制处理电路
40 上部电极
42 下部电极
44 金属氧化物
46 阻抗可变元件

Claims (13)

1.一种存储器控制器,用于对第一存储器和第二存储器进行控制,所述第一存储器被配置为通过如下的写入操作来写入数据的非易失性存储器,其中,在该写入操作中,以包括多个扇区的页为单位读出数据,利用读出的数据中的写入数据覆盖与所述写入数据相对应的扇区,然后以页为单位写入数据,并且所述第二存储器被配置为与所述第一存储器相比允许进行更快的数据写入的非易失性随机存取存储器,所述存储器控制器包括:
写入控制器,用于当输入了所述写入数据和请求写入所述写入数据的写入请求信号时,对所述第一存储器和所述第二存储器进行控制,以使得在将所述写入数据写入所述第一存储器时所获得的数据利用率等于或高于第一比率的情况下通过所述写入操作来将输入的写入数据写入所述第一存储器;并且对所述第一存储器和所述第二存储器进行控制,以使得在所述数据利用率低于所述第一比率的情况下将输入的写入数据存储至所述第二存储器中,其中,所述数据利用率表示具有以页为单位的预定大小的存储区域中用于存储所述写入数据的扇区大小的比率;以及
数据转移控制器,用于在所述第二存储器中的空闲空间小于预定容量的情况下,至少将所述第二存储器中所存储的数据是具有低重写频率的低频率重写数据作为必要条件,来执行数据转移控制,该数据转移控制对所述第一存储器和所述第二存储器进行控制,以使得将所述低频率重写数据从所述第二存储器读出以通过所述写入操作写入所述第一存储器。
2.根据权利要求1所述的存储器控制器,其中,
所述数据转移控制器被配置为在所述第二存储器中的空闲空间小于所述预定容量的情况下,至少将所述第二存储器中所存储的数据是所述低频率重写数据和将所述低频率重写数据写入所述第一存储器时所获得的所述数据利用率等于或高于比所述第一比率低的第二比率作为必要条件,来执行所述数据转移控制。
3.根据权利要求2所述的存储器控制器,其中,还包括:
地址管理部,用于使用包括表示包含数据的页的页地址和表示用于存储该页中所包含的数据的扇区的扇区地址的逻辑地址,来管理所述第一存储器和所述第二存储器;以及
高利用率地址信息存储器,用于存储使得所述数据利用率等于或高于所述第一比率时的写入数据的逻辑地址,
其中,所述数据转移控制器被配置为在所述高利用率地址信息存储器中存储的输入的所述写入数据的逻辑地址的个数小于预定个数的情况下,判断为输入的所述写入数据是低频率重写数据。
4.根据权利要求2所述的存储器控制器,其中,还包括:
页地址存储器,用于在所述第二存储器中的空闲空间小于所述预定容量时,在所述第二存储器中所存储的数据是所述低频率重写数据并且将所述低频率重写数据写入所述第一存储器时所获得的所述数据利用率等于或高于所述第二比率的情况下,对包含所述低频率重写数据的页的页地址进行存储,
其中,所述数据转移控制器被配置为在所述第二存储器中的空闲空间小于所述预定容量时,至少将所述第二存储器中所存储的数据是所述低频率重写数据、将所述低频率重写数据写入所述第一存储器时所获得的所述数据利用率等于或高于所述第二比率、以及所述页地址存储器中所存储的页地址的个数等于或大于预定个数作为必要条件,来针对与所述页地址存储器中所存储的页地址相对应的第二存储器中的数据执行所述数据转移控制。
5.根据权利要求4所述的存储器控制器,其中,
所述数据转移控制器被配置为在所述第二存储器中的空闲空间小于所述预定容量的情况下,针对比所述预定个数多的多个页,在判断所述第二存储器中所存储的数据是否是所述低频率重写数据以及将所述低频率重写数据写入所述第一存储器时所获得的所述数据利用率是否等于或高于所述第二比率之后,在所述页地址存储器中所存储的页地址的个数小于所述预定个数的情况下减小所述第二比率,在所述页地址存储器中所存储的页地址的个数等于所述预定个数的情况下维持所述第二比率的值而不对该值进行任何改变,在所述页地址存储器中所存储的页地址的个数大于所述预定个数的情况下增大所述第二比率。
6.根据权利要求2所述的存储器控制器,其中,
所述写入控制器和所述数据转移控制器被配置为通过参考表示各扇区是否存储有数据的信息的利用扇区信息以及用于存储输入的写入数据的扇区,来计算所述数据利用率。
7.根据权利要求3所述的存储器控制器,其中,
当将输入的写入数据存储至所述第二存储器时,所述写入控制器被配置为在与输入的写入数据的逻辑地址相对应的数据已被存储至所述第一存储器的存储区域的情况下,以页为单位读出所述第一存储器中所存储的数据,对读出的数据的扇区中要写入所述写入数据的扇区进行重写,然后以页为单位将输入的写入数据存储到所述第二存储器中。
8.根据权利要求1所述的存储器控制器,其中,
具有所述预定大小的所述存储区域是存储有包含所述写入数据所使用的扇区的页的区域。
9.根据权利要求1所述的存储器控制器,其中,
所述第一存储器为NAND闪速存储器。
10.根据权利要求1所述的存储器控制器,其中,
所述第二存储器为电阻式随机存取存储器。
11.一种数据存储装置,包括权利要求1所述的存储器控制器、所述第一存储器和所述第二存储器。
12.一种存储器控制方法,用于对第一存储器和第二存储器进行控制,所述第一存储器被配置为通过如下的写入操作来写入数据的非易失性存储器,其中,在该写入操作中,以包括多个扇区的页为单位读出数据,利用读出的数据中的写入数据覆盖与上述写入数据相对应的扇区,然后以页为单位写入数据,并且所述第二存储器被配置为与所述第一存储器相比允许进行更快的数据写入的非易失性随机存取存储器,所述存储器控制方法包括以下步骤:
当输入了所述写入数据和请求写入所述写入数据的写入请求信号时,对所述第一存储器和所述第二存储器进行控制,以使得在将所述写入数据写入所述第一存储器时所获得的数据利用率等于或高于第一比率的情况下通过所述写入操作来将输入的写入数据写入所述第一存储器;并且对所述第一存储器和所述第二存储器进行控制,以使得在所述数据利用率低于所述第一比率的情况下将输入的写入数据存储至所述第二存储器中,其中,所述数据利用率表示具有以页为单位的预定大小的存储区域中用于存储所述写入数据的扇区大小的比率;以及
在所述第二存储器中的空闲空间小于预定容量的情况下,至少将所述第二存储器中所存储的数据是具有低重写频率的低频率重写数据作为必要条件,来执行数据转移控制,该数据转移控制对所述第一存储器和所述第二存储器进行控制,以使得将所述低频率重写数据从所述第二存储器读出以通过所述写入操作写入所述第一存储器。
13.根据权利要求12所述的存储器控制方法,其中,
当所述第二存储器中的空闲空间小于所述预定容量时,至少将所述第二存储器中所存储的数据是所述低频率重写数据、以及将包含存储所述低频率重写数据所利用的扇区的具有所述预定大小的数据写入所述第一存储器时所获得的所述数据利用率等于或高于比所述第一比率低的第二比率作为必要条件,来执行所述数据转移控制。
CN201380060156.2A 2012-09-19 2013-08-20 存储器控制器、数据存储装置和存储器控制方法 Expired - Fee Related CN104798055B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2012-205664 2012-09-19
JP2012205664A JP5995071B2 (ja) 2012-09-19 2012-09-19 メモリコントローラ,データ記憶装置およびメモリの制御方法
PCT/JP2013/004923 WO2014045516A1 (ja) 2012-09-19 2013-08-20 メモリコントローラ、データ記憶装置およびメモリの制御方法

Publications (2)

Publication Number Publication Date
CN104798055A CN104798055A (zh) 2015-07-22
CN104798055B true CN104798055B (zh) 2017-08-25

Family

ID=50340858

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380060156.2A Expired - Fee Related CN104798055B (zh) 2012-09-19 2013-08-20 存储器控制器、数据存储装置和存储器控制方法

Country Status (5)

Country Link
US (1) US9753652B2 (zh)
JP (1) JP5995071B2 (zh)
KR (1) KR101687502B1 (zh)
CN (1) CN104798055B (zh)
WO (1) WO2014045516A1 (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5971547B2 (ja) * 2012-02-15 2016-08-17 国立大学法人 東京大学 メモリコントローラ,データ記憶装置およびメモリの制御方法
US9064569B1 (en) * 2014-07-03 2015-06-23 Sandisk Technologies Inc. Memory controller with resistive random access memory (ReRAM)
KR20170045928A (ko) * 2015-10-20 2017-04-28 삼성에스디에스 주식회사 인메모리 데이터베이스를 이용한 데이터 관리 방법 및 그 장치
US10354728B2 (en) 2017-06-28 2019-07-16 Sandisk Technologies Llc Write verification and resistive state determination based on cell turn-on characteristics for resistive random access memory
WO2019027702A1 (en) * 2017-08-03 2019-02-07 Arizona Board Of Regents On Behalf Of Northern Arizona University PUF WITH SOLUBLE CONDUCTIVE PATHS
JP2019045974A (ja) 2017-08-30 2019-03-22 富士通株式会社 情報処理装置、情報処理プログラム及び情報処理方法
US10256402B1 (en) 2017-09-25 2019-04-09 Sandisk Technologies Llc ReRAM read state verification based on cell turn-on characteristics
CN109828719B (zh) * 2018-12-15 2022-04-01 平安科技(深圳)有限公司 基于云监控的commitLog文件所在磁盘控制方法、装置及相关设备
KR20200078047A (ko) * 2018-12-21 2020-07-01 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
CN114063880B (zh) * 2020-07-31 2024-09-06 伊姆西Ip控股有限责任公司 处理输入输出请求的方法、电子设备和计算机程序产品
JP7024127B2 (ja) * 2021-02-04 2022-02-22 株式会社東芝 管理装置、情報処理装置、管理方法、およびプログラム
US12086440B2 (en) * 2022-07-18 2024-09-10 Micron Technology, Inc. Virtual binning in a memory device
CN116149545B (zh) * 2022-12-01 2024-06-11 浙江大学 一种基于存储类内存的损耗均衡方法
CN115639971B (zh) * 2022-12-12 2023-04-07 北京集度科技有限公司 数据写入方法、装置、电子设备、存储介质及程序产品

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1295278A (zh) * 1999-10-21 2001-05-16 三星电子株式会社 含电可重写非易失存储器的单片数据处理装置及操作方法
JP2008134685A (ja) * 2006-11-27 2008-06-12 Konica Minolta Business Technologies Inc 不揮発メモリシステム及び不揮発メモリ制御方法
CN101498991A (zh) * 2008-01-29 2009-08-05 株式会社日立制作所 存储子系统
CN102136993A (zh) * 2010-07-29 2011-07-27 华为技术有限公司 一种数据迁移的方法、装置和系统

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6836432B1 (en) * 2002-02-11 2004-12-28 Advanced Micro Devices, Inc. Partial page programming of multi level flash
JP2006018591A (ja) * 2004-07-01 2006-01-19 Matsushita Electric Ind Co Ltd メモリカード
JP4472010B2 (ja) * 2006-08-09 2010-06-02 株式会社日立超エル・エス・アイ・システムズ 記憶装置
KR101472797B1 (ko) * 2007-07-16 2014-12-15 삼성전자주식회사 데이터를 읽거나 쓰기 위한 방법 및 장치
KR101553532B1 (ko) * 2008-04-17 2015-09-16 삼성전자주식회사 스토리지 장치
US8375162B2 (en) * 2009-06-03 2013-02-12 Ocz Technology Group Inc. Method and apparatus for reducing write cycles in NAND-based flash memory devices
US20110252187A1 (en) * 2010-04-07 2011-10-13 Avigdor Segal System and method for operating a non-volatile memory including a portion operating as a single-level cell memory and a portion operating as a multi-level cell memory
JP5553309B2 (ja) * 2010-08-11 2014-07-16 国立大学法人 東京大学 データ処理装置
JP5971547B2 (ja) * 2012-02-15 2016-08-17 国立大学法人 東京大学 メモリコントローラ,データ記憶装置およびメモリの制御方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1295278A (zh) * 1999-10-21 2001-05-16 三星电子株式会社 含电可重写非易失存储器的单片数据处理装置及操作方法
JP2008134685A (ja) * 2006-11-27 2008-06-12 Konica Minolta Business Technologies Inc 不揮発メモリシステム及び不揮発メモリ制御方法
CN101498991A (zh) * 2008-01-29 2009-08-05 株式会社日立制作所 存储子系统
CN102136993A (zh) * 2010-07-29 2011-07-27 华为技术有限公司 一种数据迁移的方法、装置和系统

Also Published As

Publication number Publication date
US20150220273A1 (en) 2015-08-06
CN104798055A (zh) 2015-07-22
KR20150046185A (ko) 2015-04-29
US9753652B2 (en) 2017-09-05
JP5995071B2 (ja) 2016-09-21
JP2014059820A (ja) 2014-04-03
KR101687502B1 (ko) 2016-12-19
WO2014045516A1 (ja) 2014-03-27

Similar Documents

Publication Publication Date Title
CN104798055B (zh) 存储器控制器、数据存储装置和存储器控制方法
KR101904270B1 (ko) 메모리 컨트롤러, 데이터 기억 장치 및 메모리의 제어 방법
US20180024920A1 (en) System and method for tracking block level mapping overhead in a non-volatile memory
TWI498730B (zh) 用於對記憶體進行耗損平均之方法,記憶體控制器及裝置
KR102015053B1 (ko) 불휘발성 메모리 장치 및 그것의 데이터 처리 방법
US20120144102A1 (en) Flash memory based storage devices utilizing magnetoresistive random access memory (mram)
JP6258476B2 (ja) メモリデバイスおよびメモリ動作方法
US9128821B2 (en) Data updating in non-volatile memory
US10025526B2 (en) Storage device and data moving method for storage device
JP5272013B2 (ja) 半導体装置
US20170153814A1 (en) Access method of a storage device having a heterogeneous nonvolatile memory
TW201905711A (zh) 資料儲存裝置及非揮發式記憶體操作方法
CN108733318A (zh) 一种tlc nand flash固态硬盘的写入方法
CN108572923A (zh) 管理装置、信息处理装置以及管理方法
EP3341940A1 (en) Read method compensating parasitic sneak currents in a crossbar memristive memory
JP2009503745A5 (zh)
US11126624B2 (en) Trie search engine
US20180129621A1 (en) Apparatus and method for accessing data in memory
CN105378849B (zh) 非易失性半导体存储装置及其改写方法
US20210089223A1 (en) Data storage device and non-volatile memory control method
US9110857B1 (en) Systems and methods for identifying and compressing rarely used data
TW201617880A (zh) 資料儲存裝置及其操作方法
US20230418482A1 (en) Storage device pool management based on storage device logical to physical (l2p) table information
US20110055459A1 (en) Method for managing a plurality of blocks of a flash memory, and associated memory device and controller thereof
CN111796762B (zh) 存储装置、控制器以及控制器的操作方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20170825

Termination date: 20200820