CN112083883B - 存储***以及用于存储***中的方法 - Google Patents
存储***以及用于存储***中的方法 Download PDFInfo
- Publication number
- CN112083883B CN112083883B CN202010923327.1A CN202010923327A CN112083883B CN 112083883 B CN112083883 B CN 112083883B CN 202010923327 A CN202010923327 A CN 202010923327A CN 112083883 B CN112083883 B CN 112083883B
- Authority
- CN
- China
- Prior art keywords
- random access
- access memory
- mapping table
- data
- magnetic random
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7201—Logical to physical mapping or translation of blocks or pages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
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)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明提供了一种存储***以及用于存储***中的方法。为了将数据写入到例如闪存的存储装置中或从所述存储装置读出数据,随机存取存储器(RAM)常常用于管理映射表。为了防止所述映射表因任何原因(例如,电源故障)被损坏,磁性随机存取存储器(MRAM)用于将所述映射表保留在磁域中,而所述RAM仅用于更新所述映射表的内容。这样,不仅RAM的容量明显地降低,而且当数据被写入到所述存储装置中或从所述存储装置读出时,所述映射表在磁性随机存取存储器(MRAM)中被安全地维护并且可供RAM使用。
Description
技术领域
本发明大体上涉及用于存储的数据管理的领域,更确切地说,涉及数据管理的控制器和存储装置,尤其是闪存。
背景技术
信息化时代每时每刻都在创建各种电子数据,因此数据存储需求极速增长。目前已经开发了各种技术和装置来存储数据。数据存储器常常包含硬件组件和存储数据的存储介质。存储介质的实例包含穿孔卡片、硬盘、软盘、磁带、光盘及半导体。在基于半导体的存储介质当中,闪存是一种类型的非易失性存储器,其可以电气方式被擦除和重新编程并且用于许多应用程序中。闪存的一个普遍应用是固态驱动器(SSD,俗称固态硬盘),其可以极小的尺寸容纳庞大数量的数据,从而为许多工业级乃至消费级用户提供各种新的应用。
然而,随机存取存储器(RAM)常常用于SSD装置中的控制器中。它们用于管理映射表来维护数据从本地地址转换到闪存中的物理地址的关系。尽管RAM和闪存两者均属于固态存储器,并由固态芯片制成,但它们的制造方式、性能规范及相对成本使得它们在电子***中具有完全不同的作用。从其本质上讲,闪存及RAM两者都比诸如硬盘和磁带的存储方案快,但RAM却比闪存快得多,但其也贵得多。常用的RAM有两种:动态RAM(DRAM)和静态RAM(SRAM)。除了是最快的选择之外,SRAM还比DRAM昂贵得多。在许多应用中,SRAM主要用作高速缓存内存(例如,在CPU中),而DRAM主要用作主要操作存储器(例如,运行OS和应用程序)。
图1显示了包含SSD控制器102、RAM缓冲器104、闪存阵列106及主机接口108的固态装置(SSD)100的示范性架构。SSD控制器102管理存储在闪存阵列106上的数据并且与主机装置通信。当主机***或装置需要从SSD100读取数据或将数据写入到所述SSD中时,其与SSD控制器102通信。通过主机接口108(例如,eSATA、USB、eMMC、CF卡、SD/micro SD卡及PCIe),来自主机装置(图中未示)的数据在SSD控制器102中被耦合、处理,且存储在存储介质106中,即存储在闪存中。为了记录所述数据如何在闪存阵列106上分布,映射表会由SSD控制器102维护,其中映射表记录数据或数据位在闪存阵列106中的存储位置。为了满足速度要求,提供RAM(常常为DRAM)104以管理映射表,所述映射表可立即用于高速缓存被写入到闪存阵列106中或从所述闪存阵列读出的数据,因此RAM 104也称为RAM缓冲器。当数据穿过SSD控制器102时,映射表在RAM缓冲器104中被更新。如果SSD100或控制器102的电源被中断,那么映射表将被损坏,从而导致闪存阵列106中的数据丢失。因此,迫切需要在数据穿过SSD或其中的控制器时防止数据丢失的解决方案。
发明内容
本部分目的在于概述本发明的一些方面且简单介绍一些优选实施例。可在此部分以及摘要中进行简化或省略以避免混淆本部分和摘要的目的。此简化或省略并不意欲限制本发明的范围。
本发明普遍适用于存储装置的数据管理。根据本发明的一个方面,描述了一种持续地管理映射表的方法及设备。为了将数据写入到例如闪存的存储装置中或从例如闪存的存储装置读出数据,随机存取存储器(RAM)常常用于管理所述映射表。为了防止映射表因任何原因(例如,电源故障)损坏,磁阻随机存取存储器或磁性随机存取存储器(即MRAM)用于将映射表保留在磁域中,而RAM仅用于更新所述映射表的内容。这样,不仅RAM的容量明显地降低,而且当数据被写入到所述存储装置中或从所述存储装置读出时,所述映射表在MRAM中被安全地保管着并且可供RAM使用。
根据本发明的另一方面,RAM和MRAM通过数据总线耦合。仅映射表的个别部分在RAM中更新。在将数据位写入到所述闪存中时,创建或更新RAM中相对应的映射表信息,并将其移动到MRAM,从而留下一部分空间使RAM继续创建或更新所述映射表的其他部分。MRAM中所述映射表的更新内容是连续的。如果在RAM中的所述映射表的所述部分损坏,那么刚刚移动到MRAM的部分可传回到RAM以允许RAM继续执行写入过程。
根据本发明的又一方面,映射表的相应部分和各种数据(例如,备用数据)在RAM中更新。当从所述闪存读出数据位时,所述映射表首先加载到MRAM中。MRAM中的映射表的一部分被复制到RAM,在RAM中更新所述映射表的相应部分内容。当读出数据位时,所述大部分的映射表内容从MRAM复制到RAM,同时丢弃映射表中早期的部分。所述映射表的相应部分在RAM中被引用或更新。
根据本发明的另一方面,RAM中的映射表的相应部分的大小是预定义的(例如,1K或4K)。通常,如果RAM中的映射表的相应部分较小,则RAM的容量变小,但是这样可能增加将所述映射表的所述部分从MRAM移至RAM的频率,反之亦然。
根据本发明的又一方面,RAM和MRAM的相应功能相对于本文中所描述的其它方面被调换。MRAM被提供以更新映射表,且RAM用作高速缓冲存储器并且耦合到所述闪存以用于正在进行的写入或读取过程完成时及时更新映射表。在电源故障的情况下,当正在写入数据到所述闪存中或从所述闪存读取数据时,RAM中缓存的数据将被损坏,但一些备份在MRAM中的内容中的可被复制到RAM以继续写入或读取过程。
本发明可实施为一种设备、方法及***的一部分。不同实施方案可产生不同益处、目标和优点。在一个实施例中,本发明是一种存储***,其包括:磁性随机存取存储器,其被提供以维护至少一个映射表以跟踪文件的数据位存储在闪存中的位置;及,随机存取存储器,其通过数据总线耦合到所述磁性随机存取存储器,被提供以更新所述至少一个映射表中的一些或全部内容,其中所述随机存取存储器维护所述至少一个映射表的一部分,当数据位被写入到所述闪存中或从所述闪存中读出时,所述随机存取存储器中的所述至少一个映射表的所述部分被主动地更新,其中当所述存储***出现电源故障时,所述随机存取存储器中的所述至少一个映射表的所述部分被损坏或丢失,并且所述磁性随机存取存储器中的所述至少一个映射表被安全得存储着。
在另一实施例中,本发明是一种用于存储***中的方法,所述方法包括:在磁性随机存取存储器中维护至少一个映射表以跟踪文件的数据位存储在闪存中的位置;及,更新随机存取存储器中的所述至少一个映射表中的一些或全部内容,其中所述磁性随机存取存储器和所述随机存取存储器通过数据总线耦合,所述随机存取存储器维护所述至少一个映射表的一部分内容,当数据位被写入到所述闪存中或从所述闪存读出时,所述至少一个映射表的所述部分在所述随机存取存储器中被主动地更新,其中当所述存储***出现电源故障时,所述随机存取存储器中的所述至少一个映射表的所述部分被损坏或丢失,并且所述磁性随机存取存储器中的所述至少一个映射表被维护。
本发明的优点、益处和优势之一是提供一种替代的存储器,其适时高速缓存包含映射表的重要数据,其中替代的存储器不易于受到电源中断影响,并可以在电源恢复后将数据传回到工作存储器以继续进行中的过程。
除了在以下描述中通过本发明的实践达成且产生附图中示出的实施例的以上目标,存在许多其它目标。
附图说明
参考以下描述、所附权利要求书和附图将更好地理解本发明的这些和其它特征、方面以及优点,在附图中:
图1示出了包含SSD控制器、RAM缓冲器、闪存封装和接口的固态装置(SSD)的示范性架构;
图2示出了根据本发明的一个实施例的示范性闪存控制器的逻辑框图;
图3A示出了在RAM中更新的映射表也通过数据总线在MRAM中被维护的实例;
图3B示出了RAM中复制到MRAM中的映射表的已更新部分的说明;
图3C示出了MRAM中复制到RAM中的映射表的已更新部分的说明;以及
图4示出了根据本发明的一个实施例的数据流被写入到闪存阵列中或从闪存阵列读出数据流的流程图。
具体实施方式
很大程度上就直接或间接类似可或可不耦合到网络的通信或存储装置的操作的工序、步骤、逻辑块、处理及其它符号表示而言来呈现本发明的详细描述。这些过程描述和表示通常由所属领域的技术人员使用以最有效地将其工作主旨传达给所属领域的其它技术人员。
本文中提及“一个实施例”或“实施例”意指结合所述实施例描述的特定特征、结构或特性可包含于本发明的至少一个实施例中。本说明书中各个位置中的短语“在一个实施例中”的出现未必完全是指相同实施例,也未必是与其它实施例相互排斥的单独或替代实施例。此外,表示本发明的一个或多个实施例的过程流程图或图式中的块的次序在本发明中并不固有地指示任何具体次序,也不暗示任何限制。
本发明中的重要目标、优点及益处中的一个是使用MRAM来管理映射表。MRAM为磁阻随机存取存储器或磁性随机存取存储器(Magnetoresistive Random-Access Memory ormagnetic Random-Access Memory,简称MRAM),其是将数据存储在磁域中的一种类型的非易失性随机存取存储器。不同于常规的RAM芯片技术,MRAM中的数据不存储为电荷或电流,而是由磁存储元件存储,因此在MRAM的电源受到扰乱时不会丢失数据。所述磁存储元件由两个通过薄绝缘层分隔开的铁磁板形成,所述铁磁板中的每一个可保持磁化。两个板中的一个为设定成特定极性的永久磁体,另一板的磁化可改变以与存储存储器的外部场的磁化匹配。此配置已知为磁性隧道结并且是用于MRAM位的最简单结构。存储装置由此类磁存储元件的网格构建。
现参考图2,其示出了根据本发明的一个实施例的可实施于存储***或闪存控制器中的示范性逻辑框图200。不同于现有技术控制器,控制器200示出了两个RAM,一个RAM是DRAM 202,另一个RMA是MRAM 204。本发明的益处、优点和目标中的一个是使用MRAM 204,其可以在电源故障时防止数据丢失。
DRAM 202与MRAM 204通过数据线或数据总线206耦合。根据一个实施例,数据总线是基于ARM高级微控制器总线架构(AMBA),这是一种开放标准的片上互连规范,用于片上***(SoC)设计中的功能块的连接和管理。为了促进总线206与DRAM 202或MRAM 204之间的通信,设置有DRAM接口208和MRAM接口210。
在操作中,当在主机接口212中接收到文件的数据流时,在CPU 214的命令下,控制器214,在一个实施例中也称为非易失性存储器接口规范(non-volatile memory express,简称NVME),是主机控制器接口和存储器协议,其被创建以使通过总线206加速传送数据。一般来说,闪存不允许数据就地更新。大多数闪存装置附带被称作快闪转换层(FTL)的软件层,其负责通过使用映射表将逻辑地址从文件***转换为闪存的物理地址。FTL将来自主机的写入请求引导到所述闪存中的空区域,并且管理映射表中的映射信息,该映射信息为从主机识别的逻辑地址到所述闪存中的物理地址。
如何管理映射表直接影响闪存的性能。关于存储器性能,因为闪存具有特殊的硬件特性,所以整个***的性能主要受写入性能影响。因此,RAM,例如DRAM或SRAM,常常用于在进行写入或读取操作时管理映射表。如上文所描述,然而,RAM易于发生电源故障。所述映射表在将数据写入闪存或从闪存中读取时进行更新,在更新时所述映射表被损坏,通常会导致所述闪存中的数据丢失。从一个角度来看,逻辑地址与物理地址之间的关系被损坏或不存在,将会导致无法从所述闪存检索数据。
根据一个实施例,MRAM 204被使用。如上文所描述,MRAM 204不易受电源故障的影响。换句话说,当电源故障时,因为MRAM 204工作在磁域(magnetic domain),在MRAM 204中被高速缓存或存储的任何内容都将保留。一般来说,在MRAM 204中被高速缓存的数据包含一个或多个映射表及各种其它数据以支持写入或读取过程。为了方便本发明的描述,本文中仅描述将在RAM及MRAM中被更新、移动、高速缓存、存储或以其它方式被处理的映射表。所属领域的技术人员应理解,其它数据可被同等地处理或处置,如同其为映射表一样。为了利用MRAM 204的特殊特性,在DRAM 202中更新的映射表被复制或传送到MRAM 204以供备用。如果在DRAM 202中更新的映射表中的任一个被损坏,那么所述映射表的复本可从MRAM 204找到。
图3A示出了实例230,其中在RAM 202中更新的映射表232也通过数据总线206在MRAM 204中被维护。换句话说,映射表232的内容在DRAM 202中被更新。取决于操作,在将数据位写入到所述闪存中时,MRAM 204中的映射表234从DRAM 202累积,或,在从所述闪存读出数据位时,MRAM 204中的映射表234被供应到DRAM 202。
根据一个实施例,RAM 202中的映射表232是当经由闪存控制器220将数据写入闪存222或从闪存222中读出时创建或更新的映射表。闪存222以块和页的形式被图形地示出。本领域技术人员知道,块是闪存中可被擦除的最小单元,而页是闪存中可被编程(即写入)的最小单元。块大小通常在4-8MB的范围内,页大小通常在8-16KB的范围内。NAND闪存的体系结构要求以页为单位写入或读取数据,通常大小在4KB到16KB之间,但是只能在包括多页的整个块的级别上擦除,块的大小一般是MB单位。
RAM 202中的至少一些或全部映射表232通过数据总线206在MRAM 204中被复制。取决于实施方案,RAM 202中的整个映射表232可被复制到MRAM 204,RAM 202中的映射表232的最新版本被复制到MRAM 204,或者RAM 202中的映射表232的部分被移动到MRAM 204。图3B显示了RAM 202中的映射表的已更新部分252的说明250,所述映射表移动到MRAM 204中,使得当数据被写入到所述闪存222中时,RAM 202具有用于创建或更新所述映射表的新的部分的空间。
为了方便实施例的描述,图3B仅展示一个映射表252,其包含本地页码与对应的物理页码之间的关系。当所述数据被写入到所述闪存中或从所述闪存读出时,映射表252在RAM 202中不断地更新。根据一个实施例,RAM 202中的映射表252仅为保持本地页码与物理页码之间的关系的整个映射表的一部分。当所述数据被写入到所述闪存222中时,所述映射表252在RAM 202中扩展。在操作中,当一页数据位被写入到所述闪存222中时,所述映射表的所述部分以一个或一对关系来增加。换句话说,对于写入到所述闪存222中的每一页,产生新的一对(也可称配对)本地页码及物理页码被添加到所述映射表252(整个映射表的一部分)。
根据一个实施例,此新的配对之前的任何内容都可移动到MRAM 204,因此可以在该新配对之上连续添加或累积其他新配对。在一个实施例中,将RAM 202中的固定数目的逻辑地址和物理地址的配对移动到或缓存在MRAM 204中。在操作中,一旦逻辑地址及物理地址的配对的数目达到预定数目,例如,1K,那么它们将被移动到MRAM 204,从而在RAM 202中留下用于继续创建新的配对的可用空间。因此,RAM 202的容量要求比没有MRAM 204的RAM的容量要求低得多。
图3B示出了随着逻辑地址和物理地址的新的配对从RAM 202移入,MRAM 204中的映射表正在扩展。当出现电源故障时,RAM 202将发生故障,将丢失RAM 202中的所有内容。结果,RAM 202中的映射表252变得不再可用,但存储在MRAM 204中的所有内容保存完好。当恢复电源时,MRAM 204中的最新关系或配对可被复制到RAM 202以使FTL 232继续页写入过程(即,使控制器220将所述数据写入到所述闪存222中)。当所述数据全部存储在所述闪存222中时,MRAM 204中的完整的映射表也可存储在所述闪存222中。所属领域的技术人员应了解,其它映射表可以如本文中所描述的类似方式来处置。
当所述数据从所述闪存222被读出时,所述映射表252也在RAM 202中更新。一旦文件被识别,则将对应的映射表加载到MRAM 204中,其中MRAM 204被控制周期性地或按需将映射表的相应部分释放到RAM 202,直到文件的数据完全从所述闪存222被提取为止。当电源故障时,RAM 202将发生故障,RAM 202中的所有内容将丢失,但MRAM 204中的映射表仍存在。当恢复电源时,MRAM 204中在电源故障之前被复制到RAM 202的地址配对可再次被复制到RAM 202以使FTL 232继续读出过程。
根据另一实施例,RAM和MRAM的相应功能被调换,如图3C中所示。MRAM 282被提供以更新映射表,RAM 284用作高速缓冲存储器并耦合到所述闪存以在完成写入或读取过程时及时更新所述映射表。在电源故障的情况下,当将所述数据写入到所述闪存中或从所述闪存读取所述数据时,在RAM 282中高速缓存的数据将被损坏,但MRAM 284中的全部内容中的一些可被复制到RAM 282以继续写入或读取过程。
图4示出了根据本发明的一个实施例的文件的数据位(或数据流)被写入到所述闪存中或从所述闪存读出的流程300。所述流程300可结合图2到3B而被较佳地了解,所述流程以硬件或以软件(例如,固件)与硬件的组合实施,其中软件在处理器中执行,所述处理器被提供以控制用于管理映射表的RAM和MRAM的操作。当在302处接收或耦合命令时,流程300开始,其中命令与将数据流存储到所述闪存中或从所述闪存读出数据文件有关。所述数据流可以被创建或来自主机装置(例如,笔记本电脑或互联网)的文件、相片及音频/视频有关。当用户希望将文件存储到存储装置(例如,SSD)中时,在302处接收涉及文件的数据的命令或请求。类似地,当用户希望访问存储在存储装置(例如,SSD)中的文件时,在302处接收涉及文件数据的命令或请求。
在304处,流程300确定所述请求是将文件写入到所述闪存中,还是读出存储在所述闪存中的文件。现在假设所述请求是将文件写入到所述闪存中,并且进一步假设该文件的数据已经过预处理以及已被纠错编码,已经过预处理意味着该数据已被分割为与所述闪存的页大小相关的相等大小。如上文所描述,重要的是记录每个数据流存储在所述闪存的单元中的物理位置。因此,映射表用于记录关于每一数据流存储在所述闪存中的物理位置的信息。
根据一个实施例,当第一次使用闪存时,处理器通过执行固件来创建必要的映射表,或者通过将现有的映射表加载到MRAM中来创建必要的映射表。不同于现有***,MRAM不用于更新映射表,而是用作高速缓存器以保存映射表的完整性。映射表中只有一部分被复制到RAM,其中MRAM和RAM通过数据总线耦合。当新的映射表在RAM中被创建并在将数据流写入闪存时不断地被更新时,已更新映射表的相应部分(例如,在多个时钟或每个部分的预定义长度之后)被传递到MRAM中相应待更新的部分。
作为实例,图3B示出了更新的映射表的到达部分分别级联到已经在MRAM 204中的对应的映射表。类似地,当之前已经使用过所述闪存时,现有的映射表最初存储在所述闪存中并且被加载到MRAM 204中。在来自所述处理器或微控制器的指令下,所述映射表的部分被传递到RAM,其中所述映射表的所述部分用于使RAM在308处开始更新或扩展这部分映射表。当所述数据继续被写入到所述闪存中时,在310处将更新的映射表的部分缓存回MRAM中。
在312处,流程300确定所有数据是否全被写入到所述闪存中。如果没有,那么流程300返回到308并且在将所述数据写入到所述闪存中时继续更新或扩展映射表。如果所有数据全被写入到所述闪存中,那么过程300移动到314,其中MRAM中的映射表移动到所述闪存以进行存储。
现在返回到304,假设所述请求是访问或读出存储在所述闪存中的文件。在316处,用于闪存的映射表定位并加载到MRAM 318中。在来自处理器或微控制器的指令下,在320处,映射表的相应部分被传递到RAM,其中所述映射表的所述部分用于引导数据在闪存中的位置。当从所述闪存读出数据时,更新所述映射表的所述部分。从一个角度来看,一旦数据位被恰当地写入到所述闪存中,那么无需将所述映射表的那些特定部分保留在RAM中,因为它们将不会被更新。因此,在RAM中不再需要所述映射表的所述部分。在某一特定时刻或在322处完全使用所述映射表的所述部分或尚未完全读出所请求的数据之前,在320处,所述映射表的另一部分从MRAM到达RAM。320到322的循环继续,直到读出用于所请求文件的所有数据位为止。接着可处理来自流程300的数据(例如,通过纠错等来解码)。
以理解的是,任何时候的电源故障,RAM中的映射表的部分将被损坏,但是MRAM充当高速缓存,以保留在RAM中已损坏内容的副本。恢复电源后,可以立即将副本立即重新加载到RAM中。可以继续进行写入过程和读取过程,而不会丢失闪存中的数据。
虽然已参考特定实施例描述本发明,但描述说明本发明并且不应被理解为限制本发明。所属领域的技术人员可在不脱离如所附权利要求书限定的本发明的真实精神和范围的情况下对优选实施例做出本发明的各种修改。因此,本发明的范围由所附权利要求书而非前文实施例的描述限定。
Claims (12)
1.一种存储***,其特征在于,其包括:
磁性随机存取存储器(MRAM),其被提供以维护至少一个映射表以管理数据的本地地址与闪存中物理地址的关系;及
随机存取存储器(RAM),其通过数据总线耦合到所述磁性随机存取存储器(MRAM),被提供以更新所述至少一个映射表中的一些或全部信息,其中所述随机存取存储器从所述磁性随机存取存储器中提取所述至少一个映射表的一部分信息,当数据被写入到所述闪存中时,所述随机存取存储器中的所述至少一个映射表的所述部分信息被主动地更新,所述随机存取存储器中的所述至少一个映射表的已更新的部分信息被传递到所述磁性随机存取存储器中,所述磁性随机存取存储器中的所述至少一个映射表最终会被复制并保存入所述闪存,当数据从所述闪存中从所述闪存中读出时,将所述闪存中的至少一个映射表加载到所述磁性随机存取存储器中,将所述磁性随机存取存储器中的至少一个映射表的部分信息复制到所述随机存取存储器,基于所述随机存取存储器中的所述至少一个映射表的所述部分信息实现所述数据的读出,其中当所述存储***出现电源故障时,所述随机存取存储器中的所述至少一个映射表的所述部分信息被损坏或丢失,而所述磁性随机存取存储器中的所述至少一个映射表仍被安全存储着。
2.根据权利要求1所述的存储***,其特征在于,每当所述随机存取存储器从电源断开时,在所述随机存取存储器中存储的任何内容均会损坏或丢失,同时在所述磁性随机存取存储器中缓存的所有映射表中都会被保留。
3.根据权利要求1所述的存储***,其特征在于,其进一步包括:
处理器,其耦合到所述随机存取存储器和所述磁性随机存取存储器,被提供以控制所述随机存取存储器中的所述至少一个映射表的相应部分的操作,并且当所述随机存取存储器将所述至少一个映射表的所述部分满足预定义长度时,已更新的所述至少一个映射表的相应部分被传递到所述磁性随机存取存储器。
4.根据权利要求3所述的存储***,其特征在于,所述处理器使所述磁性随机存取存储器在所述随机存取存储器从电源断开且接着重新连接到所述电源之后将从所述随机存取存储器接收的所述至少一个映射表的最新部分传回到所述随机存取存储器。
5.根据权利要求1所述的存储***,其特征在于,其进一步包括:
处理器,其耦合到所述随机存取存储器和所述磁性随机存取存储器,被提供以维护所述随机存取存储器中的所述至少一个映射表的所述部分来跟踪文件数据存储在闪存中的物理位置,并且使所述磁性随机存取存储器周期性地将所述至少一个映射表的所述对应的部分移动到所述随机存取存储器。
6.根据权利要求5所述的存储***,其特征在于,所述处理器使所述磁性随机存取存储器在所述随机存取存储器从电源断开且接着重新连接到所述电源之后将所述磁性随机存取存储器中的所述至少一个映射表的最新部分再次传回到所述随机存取存储器。
7.一种用于存储***中的方法,其特征在于,所述方法包括:
在磁性随机存取存储器中维护至少一个映射表以跟踪文件数据的本地地址与闪存中的物理地址的关系;及
更新随机存取存储器中的所述至少一个映射表中的一些或全部内容,其中所述磁性随机存取存储器和所述随机存取存储器通过数据总线耦合,所述随机存取存储器从所述磁性随机存取存储器中提取所述至少一个映射表的一部分,当数据位被写入到所述闪存中时,在所述随机存取存储器中的所述至少一个映射表的所述部分被主动地更新并备份到所述磁性随机存取存储器,所述磁性随机存取存储器中的所述至少一个映射表最终会被复制并保存入所述闪存,当数据从所述闪存中从所述闪存中读出时,将所述闪存中的至少一个映射表加载到所述磁性随机存取存储器中,将所述磁性随机存取存储器中的至少一个映射表的部分信息复制到所述随机存取存储器,基于所述随机存取存储器中的所述至少一个映射表的所述部分信息实现所述数据的读出,其中当所述存储***出现电源故障时,所述随机存取存储器中的所述至少一个映射表的所述部分被损坏或丢失,而所述磁性随机存取存储器中的所述至少一个映射表仍被安全存储着。
8.根据权利要求7所述的方法,其特征在于,每当所述随机存取存储器从电源断开时,在所述随机存取存储器中存储的任何内容均会损坏或丢失,同时在所述磁性随机存取存储器中存储的所有映射表都会保留。
9.根据权利要求7所述的方法,其特征在于,其进一步包括:
处理器,耦合到所述随机存取存储器和所述磁性随机存取存储器,被提供以控制所述随机存取存储器中的所述至少一个映射表的相应部分的操作,及
当所述随机存取存储器将所述至少一个映射表的所述部分满足预定义长度时,已更新的所述至少一个映射表的相应部分被传递到所述磁性随机存取存储器。
10.根据权利要求9所述的方法,其特征在于,所述处理器使所述磁性随机存取存储器在所述随机存取存储器从电源断开且接着重新连接到所述电源之后将从所述随机存取存储器接收的所述至少一个映射表的最新部分传回到所述随机存取存储器。
11.根据权利要求7所述的方法,其特征在于,其进一步包括:
处理器,连接到所述随机存取存储器和所述磁性随机存取存储器,被提供以维护所述随机存取存储器中的所述至少一个映射表的所述部分来跟踪文件数据存储在闪存中的物理位置,及
使所述磁性随机存取存储器周期性地将所述至少一个映射表的所述对应的部分移动到所述随机存取存储器。
12.根据权利要求11所述的方法,其特征在于,所述处理器使所述磁性随机存取存储器在所述随机存取存储器从电源断开且接着重新连接到所述电源之后将所述磁性随机存取存储器中的所述至少一个映射表的最新部分再次传回到所述随机存取存储器。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/864070 | 2020-04-30 | ||
US16/864,070 US11138110B1 (en) | 2020-04-30 | 2020-04-30 | Data management for memory devices |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112083883A CN112083883A (zh) | 2020-12-15 |
CN112083883B true CN112083883B (zh) | 2022-10-28 |
Family
ID=73731459
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010923327.1A Active CN112083883B (zh) | 2020-04-30 | 2020-09-04 | 存储***以及用于存储***中的方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11138110B1 (zh) |
CN (1) | CN112083883B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113296701A (zh) * | 2021-05-14 | 2021-08-24 | 尧云科技(西安)有限公司 | 一种固态存储方法及固态存储装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018059361A1 (zh) * | 2016-09-29 | 2018-04-05 | 华为技术有限公司 | 一种存储***掉电保护方法、存储控制器及电子设备 |
CN109032843A (zh) * | 2018-07-11 | 2018-12-18 | 中电海康集团有限公司 | 一种基于stt-mram加速固态存储器件启动的方法 |
CN109284070A (zh) * | 2018-08-24 | 2019-01-29 | 中电海康集团有限公司 | 一种基于stt-mram固态存储器件断电恢复方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050177679A1 (en) * | 2004-02-06 | 2005-08-11 | Alva Mauricio H. | Semiconductor memory device |
US8140739B2 (en) * | 2008-08-08 | 2012-03-20 | Imation Corp. | Flash memory based storage devices utilizing magnetoresistive random access memory (MRAM) to store files having logical block addresses stored in a write frequency file buffer table |
US9400744B2 (en) * | 2012-10-30 | 2016-07-26 | Mangstor, Inc. | Magnetic random access memory journal for multi-level cell flash memory |
KR101992934B1 (ko) * | 2012-11-14 | 2019-06-26 | 삼성전자주식회사 | 메모리 시스템 및 이의 동작 방법 |
US8526234B1 (en) * | 2012-11-16 | 2013-09-03 | Avalanche Technology, Inc. | Controller management of memory array of storage device using magnetic random access memory (MRAM) |
KR102254392B1 (ko) * | 2014-05-12 | 2021-05-25 | 삼성전자주식회사 | 메모리 컨트롤러의 동작 방법 및 불휘발성 메모리 장치 및 메모리 컨트롤러를 포함하는 불휘발성 메모리 시스템 |
-
2020
- 2020-04-30 US US16/864,070 patent/US11138110B1/en active Active
- 2020-09-04 CN CN202010923327.1A patent/CN112083883B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018059361A1 (zh) * | 2016-09-29 | 2018-04-05 | 华为技术有限公司 | 一种存储***掉电保护方法、存储控制器及电子设备 |
CN109032843A (zh) * | 2018-07-11 | 2018-12-18 | 中电海康集团有限公司 | 一种基于stt-mram加速固态存储器件启动的方法 |
CN109284070A (zh) * | 2018-08-24 | 2019-01-29 | 中电海康集团有限公司 | 一种基于stt-mram固态存储器件断电恢复方法 |
Also Published As
Publication number | Publication date |
---|---|
US11138110B1 (en) | 2021-10-05 |
CN112083883A (zh) | 2020-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11301379B2 (en) | Access request processing method and apparatus, and computer device | |
KR101014040B1 (ko) | 디램 버퍼 관리 장치 및 방법 | |
CN114730300A (zh) | 对区命名空间存储器的增强型文件***支持 | |
US11030092B2 (en) | Access request processing method and apparatus, and computer system | |
US11853554B2 (en) | Aligned and unaligned data deallocation | |
WO2017176860A1 (en) | 3d stackable hybrid phase change memory with improved endurance and non-volatility | |
US20140219041A1 (en) | Storage device and data processing method thereof | |
CN112083883B (zh) | 存储***以及用于存储***中的方法 | |
US11249917B2 (en) | Data storage device and operating method thereof | |
KR102589609B1 (ko) | 분할된 저장장치에서의 스냅샷 관리 | |
CN109002265B (zh) | 一种数据处理的方法以及相关装置 | |
CN112328181A (zh) | 一种分布式存储***的元数据读写方法和装置 | |
US11816349B2 (en) | Reduce command latency using block pre-erase | |
US11630592B2 (en) | Data storage device database management architecture | |
US12039179B2 (en) | Finding and releasing trapped memory in uLayer | |
US11989431B2 (en) | Write updates sorting during BKOPS idle | |
US20240078032A1 (en) | Metadata Management In Key Value Data Storage Device | |
US11645009B2 (en) | Data storage with improved read parallelism | |
US20230143926A1 (en) | Dynamic Controller Buffer Management and Configuration | |
US20230315285A1 (en) | Storage Optimization Of CAT Table During Background Operations | |
CN110609817A (zh) | 一种防止文件碎片化的文件存储*** |
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 |