CN110609657B - 内存控制器及方法 - Google Patents

内存控制器及方法 Download PDF

Info

Publication number
CN110609657B
CN110609657B CN201811072070.2A CN201811072070A CN110609657B CN 110609657 B CN110609657 B CN 110609657B CN 201811072070 A CN201811072070 A CN 201811072070A CN 110609657 B CN110609657 B CN 110609657B
Authority
CN
China
Prior art keywords
data
memory device
storage
storage mode
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.)
Active
Application number
CN201811072070.2A
Other languages
English (en)
Other versions
CN110609657A (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.)
Silicon Motion Inc
Original Assignee
Silicon Motion Inc
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 Silicon Motion Inc filed Critical Silicon Motion Inc
Publication of CN110609657A publication Critical patent/CN110609657A/zh
Application granted granted Critical
Publication of CN110609657B publication Critical patent/CN110609657B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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/0604Improving or facilitating administration, e.g. storage management
    • 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
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • 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/0658Controller construction arrangements
    • 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
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • 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/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/7206Reconfiguration of flash memory system
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5642Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5641Multilevel memory having cells with different number of storage levels

Landscapes

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

Abstract

本申请公开了一种应用在耦接于一内存装置与一主装置之间的内存控制器的方法,其中所述内存装置支持至少两种不同存储模式。所述方法包含:接收并缓冲自所述主装置传送的数据;使用一第一存储模式,以将一第一数据单元存储至所述内存装置,其中所述第一数据单元的大小不大于定义于所述内存装置中的一特定存储单元的大小;以及使用异于所述第一存储模式的一第二存储模式,以将一第二数据单元存储至所述内存装置,其中所述第二数据单元的大小大于所述特定存储单元的大小;存储数据至内存装置的效能表现能大幅地被提升,并且电路成本能被减少。

Description

内存控制器及方法
技术领域
本申请涉及内存控制器存储机制,特别有关于一种能动态地使用不同存储模式来将不同大小的数据存储至一内存装置的内存控制器及对应的方法。
背景技术
一般来说,当一传统的内存控制器将数据单元写入或存储至支持一两层单元(multi-level-cell,MLC)存储模式的一闪存时,所述传统的内存控制器需从所述闪存读回一部分数据,并接着使用所述部分数据与数据单元以存储来形成/产生偶数储存页数据以及奇数储存页数据,并接着将所述偶数储存页数据以及所述奇数储存页数据存储至所述闪存的一偶数储存页以及一奇数储存页以供一存储操作。此部分数据可包含结尾数据(taildata)及/或开头数据(header data),且使用所述部分数据及所述数据单元来形成页数据的操作可视为一数据补充处理(data complement process)。也就是说,对于一单一存储操作,即使从主装置传送并存储的数据单元的大小小于一个储存页的大小,所述传统的内存会将二个储存页的数据量存储至所述闪存的偶数及奇数储存页,存储数据的效能也因此降低。
发明内容
因此,本申请的目的之一在于提供一种内存控制器及方法以解决上述问题。
依据本申请的实施例,本申请公开了一种耦接于一内存装置与一主装置之间的内存控制器。所述内存装置支持至少两种不同存储模式。所述内存控制器包含一缓冲电路以及一处理电路。所述缓冲电路系用来接收并缓冲自所述主装置传送的数据,而所述处理电路耦接至所述缓冲电路,并且用来:使用一第一存储模式,以将一第一数据单元存储至所述内存装置,其中所述第一数据单元的大小不大于定义于所述内存装置中的一特定存储单元的大小;以及使用异于所述第一存储模式的一第二存储模式,以将一第二数据单元存储至所述内存装置,其中所述第二数据单元的大小大于所述特定存储单元的大小。
依据本申请的实施例,本申请另公开了一种耦接于一内存装置与一主装置之间的内存控制器。所述内存装置支持或具有至少两种不同存储模式,所述内存控制器包含一缓冲电路以及一处理电路。所述缓冲电路系用来接收并缓冲自所述主装置传送并被存储至所述内存装置的数据单元,而所述处理电路系耦接至所述缓冲电路,并且用来使用一单层单元存储模式以将所述数据单元存储至所述内存装置一次,其中所述数据单元的大小不大于所述内存装置的一储存页单元的大小。
依据本申请的实施例,本申请公开了一种耦接于一内存装置与一主装置之间的内存控制器。所述内存装置支持至少三种不同存储模式。所述内存控制器包含一缓冲电路以及一处理电路。所述缓冲电路系用来接收并缓冲自所述主装置传送并被存储至所述内存装置的数据单元,而所述处理电路系耦接至所述缓冲电路,并且用来使用一两层单元存储模式以将所述数据单元存储至所述内存装置一次,其中所述数据单元的大小不大于所述内存装置的二个储存页单元的大小。
依据本申请的实施例,本申请公开了一种应用在耦接于一内存装置与一主装置之间的内存控制器的方法。所述内存装置支持至少两种不同存储模式。所述方法包含:接收并缓冲自所述主装置传送的数据;使用一第一存储模式,以将一第一数据单元存储至所述内存装置,其中所述第一数据单元的大小不大于定义于所述内存装置中的一特定存储单元的大小;以及使用异于所述第一存储模式的一第二存储模式,以将一第二数据单元存储至所述内存装置,其中所述第二数据单元的大小大于所述特定存储单元的大小。
依据本申请的实施例,存储数据至所述内存装置的效能表现能大幅地被提升,并且所述多个电路成本能被减少。
附图说明
图1为依据本申请的实施例的一种应用在一内存控制器(例如一闪存控制器)的方法的流程图。
图2为依据图1的一实施例的一内存控制器的示意图。
图3为图2所示的内存控制器通过动态地使用单层单元及两层单元存储模式以将数据存储至内存装置中的例子。
图4为内存控制器与内存装置之间的沟通的一个例子。
其中,附图标记说明如下:
105,110,115A,115B,120 步骤
200 内存控制器
201 主装置
202 内存装置
203 存储装置
205 缓冲电路
210 处理电路
D1,…,D3,…,D6,…,D8,
F1,F2,F3,F4,F5,F6,F7,F8 数据
WRITE,END,C1 指令
ADDR1,ADDR2,ADDR 储存页地址
EP,OP 储存页数据
具体实施方式
请连同图2参考图1。图1为依据本申请的实施例的一种应用在一内存控制器(例如一闪存控制器)的方法的流程图,所述方法动态地从一存储模式切换至一不同的存储模式来使用不同存储模式将不同大小的数据分别存储至一内存装置(诸如一闪存装置)。图2为依据图1的一实施例的内存控制器200的示意图,举例来说,内存控制器200可为一存储装置203(例如固态硬盘)的一部分,存储装置203也包含内存装置202诸如3D闪存,并耦接于主装置(端)201与内存装置202之间,且包含一缓冲电路205以及一处理电路210。
在不妨碍本申请的实施并大致上达到相同结果的前提下,图1所示的流程图的步骤不需依照所示的确切顺序进行,所述多个步骤也不需连续进行,也就是说,其他步骤可穿插其中。详细步骤如下:
步骤105:使用缓冲电路205来接收并缓冲自主装置201传送的一数据单元;
步骤110:使用处理电路210来判断所述数据单元的大小是否不大于定义于内存装置202中的一特定存储单元的大小;若所述数据单元的大小不大于所述特定存储单元的大小,流程进入步骤115A,否则,流程进入步骤115B;
步骤115A:使用一第一存储模式,以将所述数据单元存储至内存装置202;
步骤115B:使用异于所述第一存储模式的一第二存储模式,以将所述数据单元存储至内存装置202
步骤120:结束。
如图2所示,缓冲电路205用来接收并缓冲自主装置201传送的数据(步骤105)。例如,主装置201可为一摄影装置或一行车记录器(但不限于此),并且可依序将具有相同或几乎相同数据大小(诸如4KB的数据,但不限于此)的不同数据写入/记录至存储装置203的内存装置202中。每一次当主装置传送一数据单元至内存控制器200时,内存控制器200可使用缓冲电路205来接收并缓冲这样的数据单元并且启动一个数据存储操作以将所述数据单元写入或存储至内存装置202一次。
举例来说,内存装置202可为一3D闪存装置且能支持至少两种不同存储模式诸如单层单元(single-level-cell,SLC)存储/编程模式以及两层单元(multi-level-cell,MLC)存储/编程模式。在其他实施例中,内存装置202可另支持三层单元(triple-level-cell,TLC)存储/编程模式及/或四层单元(quad-level-cell,QLC)存储/编程模式。在所述单层单元存储模式中,内存控制器200用来执行所述数据存储操作一次以将一个储存页大小的数据存储/编程至内存装置202的一单一储存页单元中,也就是说,一个储存页被存储了。在所述两层单元存储模式中,内存控制器200用来执行所述数据存储操作一次以将二个储存页的数据存储/编程至内存装置202的二个储存页单元(偶数页以及奇数页)中,也就是说,二个储存页(偶数页以及奇数页)被存储了。例如,所述第一存储模式为所述单层单元存储模式,以及所述第二存储模式为所述两层单元存储模式,也就是说,内存控制器200可使用所述单层单元存储模式以将一个储存页数据存储至内存装置202的一储存页中,或者,使用所述两层单元存储模式以将二个储存页数据存储至内存装置202的二个储存页中。当进行一次所述存储操作,实际被存储至内存装置202中的最小数据量等同于一个储存页。
每一次要被记录的数据可大于或不大于内存装置202中的一个储存页单元的大小。例如,在内存装置202中的一个储存页单元的大小可等于16K字节(byte)或32K字节,且每一次要被记录并存储的数据可等于4K字节(但不限于此)。为了节省内存电路成本,缓冲电路205可被实施为使用一较小的内存容量(例如,小于16K字节或32K字节,诸如4K字节或8K字节),并且内存控制器200用来将某些部分数据从内存装置202读回,使用所述多个4K字节数据及读取的部分数据来形成并产生一个储存页数据,并且将所述一个储存页数据存储至内存装置202的一储存页单元,相关细节将于后续内容再次说明。
在步骤110中,处理电路210用来判断自主装置201传送的数据单元的大小是否不大于一特定存储单元的大小。于本实施例中,一特定存储单元的大小表示一单一储存页的大小。例如,当数据单元的大小大于一个储存页的大小,处理电路210可启用(activate)并使用所述两层单元存储模式以将这样的数据单元存储至内存装置202的二个储存页(偶数页以及奇数页)(步骤115B)。实作上,处理电路210可启用一数据补充处理(datacomplement process)诸如一开头数据补充处理(header data complement process)及/或一结尾数据补充处理(tail data complement process),以将部分数据从内存装置202读回并使用所述部分数据与所述数据单元来形成/产生二页数据(即二个储存页的数据(量)),接着使用所述两层单元存储模式以将所述二页数据存储至内存装置202的二个储存页中。
或者,当数据单元的大小等于或小于一个储存页的大小,处理电路210可启用并使用所述单层单元存储模式以将这样的数据单元存储至内存装置202的一储存页(步骤115A)。实作上,处理电路210可启用所述数据补充处理(一开头数据补充处理及/或一结尾数据补充处理),以将部分数据从内存装置202读回并使用所述部分数据与所述数据单元来形成/产生一页数据(即一个储存页的数据(数据量)),接着使用所述单层单元存储模式以将所述一页数据存储至内存装置202的一个储存页中。处理电路210能动态地使用不同存储模式以将不同大小的数据存储至内存装置202中。相较于传统机制,内存控制器200的效能不会降低且电路成本能大幅地被节省。
图3为图2所示的内存控制器200通过动态地使用单层单元及两层单元存储模式以将数据存储至内存装置202中的例子。在此例子中,内存装置202定义了偶数页以及奇数页。主装置201可接续地写入或记录/更新每一个具有4K字节数据量的数据单元至存储装置203,且内存装置202中的一个储存页单元的大小等于16K字节。如图3所示,主装置201可将具有4K字节的一数据单元(例如D1)写入内存控制器200,接着缓冲电路205接收并缓冲这样的数据单元D1。处理电路210接着被用来启用所述数据补充处理以将部分数据从内存装置202读回,其中所述部分数据的大小等于各自具有4K字节的三数据单元F2、F3以及F4的大小,即12K字节。例如,数据单元D1可表示处理电路210可用来将所述数据单元D1存储至内存装置202中的一偶数储存页的第一个4K字节的位置,并且处理电路210可将第二个、第三个以及第四个4K字节(即这样的偶数页的F2、F3以及F4)读回。处理电路210使用数据单元D1与所述多个12K字节(数据F2、F3以及F4)来形成/产生一页数据(16K字节)并使用所述单层单元存储模式以将所述一页数据存储至内存装置202的一储存页单元(相同页或不同页)中。处理电路210不会从对应于所述偶数储存页的一奇数储存页读回数据。处理电路只处理一页数据量而不会处理二页数据量。
另外,处理电路210可用来将数据单元D3存储至所述偶数储存页的第三个4K字节的位置。处理电路210可用来读回第一个、第二个、以及第四个4K字节,例如这样的偶数储存页的D1、F2以及F4。处理电路210使用数据单元D3与所述多个12K字节(数据D1、F2以及F4)来形成/产生一页数据(16K字节)并且使用所述单层单元存储模式以将所述一页数据存储至内存装置202的一储存页单元(相同页或不同页)。处理电路210不会从对应于所述偶数储存页的一奇数储存页读回数据。处理电路只处理一页数据量而不会处理二页数据量。
另外,处理电路210可用来将数据单元D6存储至一奇数储存页的第二个4K字节的位置。处理电路210可用来读回第一个、第三个、以及第四个4K字节,例如这样的奇数储存页的F5、F7以及F8。处理电路210使用数据单元D6与所述多个12K字节(数据F5、F7以及F8)来形成/产生一页数据(16K字节)并且使用所述单层单元存储模式以将所述一页数据存储至内存装置202的一储存页单元(相同页或不同页)。处理电路210不会从对应于所述奇数储存页的一偶数储存页读回数据。处理电路只处理一页数据量而不会处理二页数据量。
另外,处理电路210可用来将数据单元D8存储至所述奇数储存页的第四个4K字节的位置。处理电路210可用来读回第一个、第二个、以及第三个4K字节,例如这样的奇数储存页的F5、F6以及F7。处理电路210使用数据单元D8与所述多个12K字节(数据F5、F6以及F7)来形成/产生一页数据(16K字节)并且使用所述单层单元存储模式以将所述一页数据存储至内存装置202的一储存页单元(相同页或不同页)。处理电路210不会从对应于所述奇数储存页的一偶数储存页读回数据。处理电路只处理一页数据量而不会处理二页数据量。
图4为内存控制器200与内存装置202之间的沟通的一个例子,其通过动态地使用单层单元存储模式以及两层单元存储模式将数据存储至内存装置202中。如图4所示,在一预设设定中(但不限于此),内存控制器200可使用所述两层单元存储模式以将数据存储至内存装置202中。在用来存储偶数与奇数储存页的所述两层单元存储模式中,处理电路210将一写入指令WRITE、一偶数储存页地址ADDR1、偶数储存页数据EP诸如16K字节数据、以及一结束指令END发出或传送至内存装置202以将偶数储存页数据EP存储至内存装置202的一偶数储存页中。处理电路210接着将写入指令WRITE、一奇数储存页地址ADDR2、奇数储存页数据OP诸如16K字节数据、以及结束指令END发出或传送至内存装置202以将奇数储存页数据OP存储至内存装置202的一奇数储存页中。例如,写入指令WRITE可为80h指令且结束指令END可为10h指令以供用于美光公司(Micron Technology Inc.)所制造或生产的一内存装置。此外,写入指令WRITE可为80h指令且结束指令END可为22h指令以供用于海力士公司(SKHynix Inc.)所制造或生产的一内存装置。
当处理电路210判断一缓冲数据单元的大小不大于一个储存页数据的大小时,内存控制器200能切换至所述单层单元存储模式。在用来存储一单一储存页的所述单层单元存储模式中,处理电路210可在传送写入指令WRITE之前另发出或传送一特定指令C1,其后跟随着上述写入指令WRITE。当内存装置202接收到特定指令C1以及写入指令WRITE时,内存装置202能知道内存控制器系用来存储一单一储存页。例如,对于上述美光公司,特定指令C1可为DAh指令,而对于上述海力士公司,特定指令C1可为BEh指令。实作上,在用来存储一偶数或奇数储存页的所述单层单元存储模式中,处理电路210可将特定指令C1(DAh指令或BEh指令)、写入指令WRITE(80h指令)、一偶数/奇数储存页地址ADDR、偶数/奇数储存页数据DATA诸如16K字节数据、以及结束指令END(10h指令或22h指令)发出或传送至内存装置202以将所述偶数或奇数储存页数据DATA存储至内存装置202的一偶数或奇数储存页。
另外,在其他实施例中,图1所示的方法可应用在支持至少三种不同存储模式(诸如单层单元、两层单元、以及三层单元(tripple-level-cell,TLC)存储模式)的内存装置202。所述第一存储模式可为所述单层单元存储模式或两层单元存储模式,且所述第二存储模式可为所述三层单元存储模式。在预设设定中,内存控制器200能使用所述三层单元存储模式以将自主装置201传送的数据单元写入或存储至内存装置202中。当处理电路210判断一数据单元的大小不大于二个储存页数据的大小,处理电路210能从所述三层单元存储模式切换至所述两层单元存储模式并使用所述两层单元存储模式以将所述数据单元存储至内存装置202中。另外,若处理电路210判断这样的数据单元的大小不大于一个储存页数据的大小,处理电路210可从所述三层单元存储模式切换至所述单层单元存储模式并采用所述单层单元存储模式以将所述数据单元存储至内存装置202中。
类似地,所述方法也可应用在支持至少四种不同存储模式(诸如单层单元、两层单元、三层单元、以及四层单元(quad-level-cell,QLC)存储模式)的内存装置202。其操作类似于上述的操作,为简明起见,对应的说明在此不详述。
总结来说,所述方法及内存控制器200能在至少两种不同存储模式(诸如第一及第二存储模式)之间切换并且使用所述多个不同存储模式来分别将具有不同大小的数据单元存储至内存装置202中,其中所述第一存储模式对应于M层单元数据存储且所述第二存储模式对应于N层单元存储,而M与N为正整数且M小于N。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (13)

1. 一种耦接于内存装置与主装置之间的内存控制器,所述内存装置支持两种不同存储模式,所述内存控制器包含:
一缓冲电路,用来接收并缓冲自所述主装置传送的数据;以及
一处理电路,耦接至所述缓冲电路,用来:
使用第一存储模式,以将第一数据单元存储至所述内存装置,其中所述第一数据单元的大小不大于定义于所述内存装置中的特定存储单元的大小;以及
使用异于所述第一存储模式的第二存储模式,以将第二数据单元存储至所述内存装置,其中所述第二数据单元的大小大于所述特定存储单元的大小;
其中当所述处理电路正在以两层单元存储模式操作时,如果所述主装置写入一数据单元的大小小于一单一存储页,所述处理电路用来从所述内存装置的相应页面中读回一部分数据,并使用所述部分数据以及所述数据单元来形成或产生一单一存储页数据,并将所述单一存储页数据写入至所述内存装置的单一存储页中,以更新先前存储在所述内存装置中的所述相应页面中的数据。
2.如权利要求1所述的内存控制器,其特征在于,所述特定存储单元等同一个储存页;以及所述第一存储模式为一单层单元存储模式,以及所述第二存储模式为一两层单元存储模式。
3.如权利要求1所述的内存控制器,其特征在于,所述特定存储单元等同二个储存页;以及所述第一存储模式为一两层单元存储模式,以及所述第二存储模式为一三层单元存储模式。
4.如权利要求2所述的内存控制器,其特征在于,所述处理电路用来判断数据单元的大小是否大于所述特定存储单元的大小。
5.如权利要求2所述的内存控制器,其特征在于,所述处理电路用来传送单层单元存储指令至所述内存装置以使用所述单层单元存储模式来将所述第一数据单元存储至所述内存装置,并且用来传送两层单元存储指令至所述内存装置以使用所述两层单元存储模式来将所述第二数据单元存储至所述内存装置。
6.如权利要求1所述的内存控制器,其特征在于,所述第一存储模式对应于M层单元数据存储,且所述第二存储模式对应于N层单元数据存储;以及M与N为正整数且M小于N。
7. 一种耦接于内存装置与主装置之间的内存控制器,所述内存装置具有三种不同存储模式,且所述内存控制器包含:
一缓冲电路,用来接收并缓冲自所述主装置传送并被存储至所述内存装置的数据单元;以及
一处理电路,耦接至所述缓冲电路,用来使用两层单元存储模式以将所述数据单元存储至所述内存装置一次,其中所述数据单元的大小不大于所述内存装置的二个储存页单元的大小;
其中当所述处理电路正在以两层单元存储模式操作时,如果所述主装置写入一数据单元的大小小于一单一存储页,所述处理电路用来从所述内存装置的相应页面中读回一部分数据,并使用所述部分数据以及所述数据单元来形成或产生一单一存储页数据,并将所述单一存储页数据写入至所述内存装置的单一存储页中,以更新先前存储在所述内存装置中的所述相应页面中的数据。
8.一种应用在耦接于内存装置与主装置之间的内存控制器的方法,所述内存装置支持两种不同存储模式,所述方法包含:
接收并缓冲自所述主装置传送的数据;
使用第一存储模式,以将第一数据单元存储至所述内存装置,其中所述第一数据单元的大小不大于定义于所述内存装置中的特定存储单元的大小;以及
使用异于所述第一存储模式的第二存储模式,以将第二数据单元存储至所述内存装置,其中所述第二数据单元的大小大于所述特定存储单元的大小;
其中当所述内存控制器的处理电路正在以两层单元存储模式操作时,如果所述主装置写入一数据单元的大小小于一单一存储页,所述处理电路用来从所述内存装置的相应页面中读回一部分数据,并使用所述部分数据以及所述数据单元来形成或产生一单一存储页数据,并将所述单一存储页数据写入至所述内存装置的单一存储页中,以更新先前存储在所述内存装置中的所述相应页面中的数据。
9.如权利要求8所述的方法,其特征在于,所述特定存储单元等同一个储存页;以及所述第一存储模式为单层单元存储模式,以及所述第二存储模式为两层单元存储模式。
10.如权利要求8所述的方法,其特征在于,所述特定存储单元等同二个储存页;以及所述第一存储模式为两层单元存储模式,以及所述第二存储模式为三层单元存储模式。
11. 如权利要求9所述的方法,另包含: 判断数据单元的大小是否大于所述特定存储单元的大小。
12. 如权利要求9所述的方法,另包含:
传送单层单元存储指令至所述内存装置以使用所述单层单元存储模式来将所述第一数据单元存储至所述内存装置;以及
传送两层单元存储指令至所述内存装置以使用所述两层单元存储模式来将所述第二数据单元存储至所述内存装置。
13.如权利要求8所述的方法,其特征在于,所述第一存储模式对应于M层单元数据存储,且所述第二存储模式对应于N层单元数据存储;以及M与N为正整数且M小于N。
CN201811072070.2A 2018-06-14 2018-09-14 内存控制器及方法 Active CN110609657B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/008,047 US10691358B2 (en) 2018-06-14 2018-06-14 Memory controller and method capable of using different storing modes to store data units having different data sizes
US16/008,047 2018-06-14

Publications (2)

Publication Number Publication Date
CN110609657A CN110609657A (zh) 2019-12-24
CN110609657B true CN110609657B (zh) 2022-10-21

Family

ID=68316171

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811072070.2A Active CN110609657B (zh) 2018-06-14 2018-09-14 内存控制器及方法

Country Status (3)

Country Link
US (2) US10691358B2 (zh)
CN (1) CN110609657B (zh)
TW (2) TWI714143B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102542299B1 (ko) * 2018-08-22 2023-06-13 에스케이하이닉스 주식회사 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 이의 동작 방법
TWI698749B (zh) * 2019-03-13 2020-07-11 慧榮科技股份有限公司 資料儲存裝置與資料處理方法
US11294820B2 (en) * 2019-06-28 2022-04-05 Micron Technology, Inc. Management of programming mode transitions to accommodate a constant size of data transfer between a host system and a memory sub-system
KR20210125774A (ko) * 2020-04-09 2021-10-19 에스케이하이닉스 주식회사 데이터 저장 장치 및 그 동작 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200931412A (en) * 2008-01-07 2009-07-16 Phison Electronics Corp Flash memory storage apparatus, flash memory controller and switching method thereof
CN101640072A (zh) * 2008-08-01 2010-02-03 海力士半导体有限公司 闪速存储设备的编程方法
CN103688246A (zh) * 2011-05-17 2014-03-26 桑迪士克科技股份有限公司 具有在活跃slc和mlc存储器分区之间分布的小逻辑组的非易失性存储器和方法
CN106569730A (zh) * 2015-10-08 2017-04-19 光宝电子(广州)有限公司 固态储存装置及其相关资料写入方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5317690B2 (ja) * 2008-12-27 2013-10-16 株式会社東芝 メモリシステム
US8144511B2 (en) * 2009-08-19 2012-03-27 Sandisk Technologies Inc. Selective memory cell program and erase
US20120155167A1 (en) * 2010-12-21 2012-06-21 Kabushiki Kaisha Toshiba Non-volatile storage device, information processing system and write control method of non-volatile storage device
TWI471862B (zh) * 2011-08-19 2015-02-01 Silicon Motion Inc 快閃記憶體控制器
TWI483111B (zh) * 2012-09-20 2015-05-01 Phison Electronics Corp 資料儲存方法、記憶體控制器與記憶體儲存裝置
KR102101304B1 (ko) * 2013-03-15 2020-04-16 삼성전자주식회사 메모리 컨트롤러 및 메모리 컨트롤러의 동작 방법
TW201533575A (zh) * 2014-02-17 2015-09-01 Acer Inc 儲存裝置及其資料存取方法
US9448745B2 (en) * 2014-03-13 2016-09-20 NXGN Data, Inc. Configurable read-modify-write engine and method for operating the same in a solid state drive
JP2017010396A (ja) * 2015-06-24 2017-01-12 富士通株式会社 ストレージ装置、キャッシュ書込制御方法及びキャッシュ書込制御プログラム
KR102356523B1 (ko) * 2015-08-04 2022-02-03 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US9530491B1 (en) * 2015-11-16 2016-12-27 Sandisk Technologies Llc System and method for direct write to MLC memory
US10235283B2 (en) * 2017-03-14 2019-03-19 International Business Machines Corporation Techniques for supporting in-place updates with a log-structured array controller
JP7030463B2 (ja) * 2017-09-22 2022-03-07 キオクシア株式会社 メモリシステム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200931412A (en) * 2008-01-07 2009-07-16 Phison Electronics Corp Flash memory storage apparatus, flash memory controller and switching method thereof
CN101640072A (zh) * 2008-08-01 2010-02-03 海力士半导体有限公司 闪速存储设备的编程方法
CN103688246A (zh) * 2011-05-17 2014-03-26 桑迪士克科技股份有限公司 具有在活跃slc和mlc存储器分区之间分布的小逻辑组的非易失性存储器和方法
CN106569730A (zh) * 2015-10-08 2017-04-19 光宝电子(广州)有限公司 固态储存装置及其相关资料写入方法

Also Published As

Publication number Publication date
CN110609657A (zh) 2019-12-24
TW202001905A (zh) 2020-01-01
US11209999B2 (en) 2021-12-28
TWI714143B (zh) 2020-12-21
US10691358B2 (en) 2020-06-23
TWI667654B (zh) 2019-08-01
US20190384517A1 (en) 2019-12-19
TW202001553A (zh) 2020-01-01
US20200272346A1 (en) 2020-08-27

Similar Documents

Publication Publication Date Title
CN110609657B (zh) 内存控制器及方法
US9268687B2 (en) Data writing method, memory control circuit unit and memory storage apparatus
US8380919B2 (en) Flash storage device, data storage system, and data writing method
US8645613B2 (en) Data writing method for flash memory and control circuit and storage system using the same
US9880742B2 (en) Valid data merging method, memory controller and memory storage apparatus
CN106598479B (zh) 闪速存储器的故障安全擦除的方法和装置
US9324435B2 (en) Data transmitting method, memory control circuit unit and memory storage apparatus
US8510502B2 (en) Data writing method, and memory controller and memory storage apparatus using the same
US8516184B2 (en) Data updating using mark count threshold in non-volatile memory
US9304900B2 (en) Data reading method, memory controller, and memory storage device
US9383929B2 (en) Data storing method and memory controller and memory storage device using the same
US8819387B2 (en) Memory storage device, memory controller, and method for identifying valid data
CN107045423B (zh) 存储器装置及其数据存取方法
US20130332653A1 (en) Memory management method, and memory controller and memory storage device using the same
US20160110112A1 (en) Data writing method, memoey control circuit unit and memory storage apparatus
US10289334B2 (en) Valid data merging method, memory controller and memory storage apparatus
CN106354651B (zh) 平均磨损方法、存储器控制电路单元及存储器储存装置
US9760456B2 (en) Memory management method, memory storage device and memory control circuit unit
US9009389B2 (en) Memory management table processing method, memory controller, and memory storage apparatus
CN106469019B (zh) 存储器管理方法、存储器控制电路单元及存储器储存装置
US9600363B2 (en) Data accessing method, memory controlling circuit unit and memory storage apparatus
CN109522236B (zh) 存储器管理方法、存储器控制电路单元与存储器存储装置
CN110389708B (zh) 平均磨损方法、存储器控制电路单元与存储器存储装置
US10169224B2 (en) Data protecting method for preventing received data from losing, memory storage apparatus and memory control circuit unit

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant