数据储存装置以及非挥发式存储器操作方法与流程

文档序号:17319715发布日期:2019-04-05 21:28阅读:179来源:国知局
数据储存装置以及非挥发式存储器操作方法与流程

本发明系有关于数据储存装置以及非挥发式存储器操作方法,涉及电子装置以及数据中心…等应用。



背景技术:

非挥发式存储器有多种形式─例如,闪存(flashmemory)、磁阻式随机存取存储器(magnetoresistiveram)、铁电随机存取存储器(ferroelectricram)、电阻式随机存取存储器(resistiveram)、自旋转移力矩随机存取存储器(spintransfertorque-ram,stt-ram)…等,用于长时间数据保存。

非挥发式存储器一般是链接一主机,由该主机操作。非挥发式存储器的物理空间系动态配置对应主机端识别用的逻辑地址。逻辑地址以及物理空间之间的对应关系需以映射表记录。如何使用运算资源,有效率的建立以及管理所述映射表,为本技术领域重要课题。



技术实现要素:

根据本案一种实施方式所实现的一数据储存装置包括一非挥发式存储器以及一控制器。该控制器根据一主机下达的一写入指令指示的一写入逻辑地址,配置该非挥发式存储器提供一写入物理地址的空间供写入数据写入,并将该写入物理地址回传该主机,用于该主机上一映射表的建立。该映射表记录该写入逻辑地址以及该写入物理地址的对应关系。

一种实施方式中,该控制器是根据该主机传来的一读取指令中指示的一读取物理地址自该非挥发式存储器取得读取数据、并回传该主机。该读取物理地址系该主机查表该映射表而得,对应该主机要求的一读取逻辑地址。如此架构实现装置端(device-based)配置空间、且主机端(host-based)映射查表。

根据本案一种实施方式实现的一种非挥发式存储器操作方法,包括:根据一主机下达的一写入指令指示的一写入逻辑地址,配置一非挥发式存储器提供一写入物理地址的空间供写入数据写入;且将该写入物理地址回传该主机,用于该主机上一映射表的建立。该映射表记录该写入逻辑地址以及该写入物理地址的对应关系。

一种实施方式中,上述非挥发式存储器操作方法,更包括:根据该主机传来的一读取指令中指示的一读取物理地址自该非挥发式存储器取得读取数据、并回传该主机。该读取物理地址系该主机查表该映射表而得,对应该主机要求的一读取逻辑地址。如此非挥发式存储器操作方法同样实现装置端(device-based)配置空间、且主机端(host-based)映射查表。

下文特举实施例,并配合所附图示,详细说明本发明内容。

附图说明

图1图解根据本案一种实施方式所实现的一非挥发式存储器100操作架构;

图2根据本案一种实施方式图解一数据中心200;

图3为流程图,根据本案一种实施方式说明控制器102如何应付一写入指令;

图4为流程图,根据本案一种实施方式说明主机106相关一写入指令的动作;

图5为流程图,根据本案一种实施方式说明主机106相关一读取指令的动作;以及

图6为流程图,根据本案一种实施方式说明控制器102如何应付一读取指令。

符号说明

100、100_1…100_m~非挥发式存储器;

102、102_1…102_m~控制器;

104、104_1…104_m~数据储存装置;

106~主机;

108、108_1…108_n~微处理器;

110、110_1…110_n~指令队列;

112、112_1…112_n~完成队列;

114~系统存储器;

116~映射表;

118~读取/写入数据;

200~数据中心;且

s302…s312、s402…s408、s502…s512、s602…s610~步骤。

具体实施方式

以下叙述列举本发明的多种实施例。以下叙述介绍本发明的基本概念,且并非意图限制本发明内容。实际发明范围应依照申请专利范围界定之。

非挥发式存储器可以是闪存(flashmemory)、磁阻式随机存取存储器(magnetoresistiveram)、铁电随机存取存储器(ferroelectricram)、电阻式存储器(resistiveram,rram)、自旋转移力矩随机存取存储器(spintransfertorque-ram,stt-ram)…等,提供长时间数据保存的储存媒体,可用于实现数据储存装置、或应用于数据中心。以下特别以闪存(flashmemory)为例进行讨论。

现今数据储存装置常以闪存为储存媒体,用来实现记忆卡(memorycard)、通用串行总线闪存装置(usbflashdevice)、固态硬盘(ssd)…等产品。有一种应用是采用多芯片封装、将闪存与其控制器包装在一起─称为嵌入式闪存模块(如emmc)。以闪存为储存媒体的数据储存装置可应用于多种电子装置中。所述电子装置包括智能型手机、穿戴装置、平板计算机、虚拟现实设备…等。电子装置的运算模块可视为一主机(host),操作所使用的数据储存装置内的闪存。

闪存实现的储存媒体也可用于建构数据中心。例如,服务器可操作固态硬盘(ssd)阵列形成数据中心。服务器即可视为一主机(host),操作所链接的固态硬盘上的闪存。

主机(host)端是以逻辑地址(例如,逻辑区块地址lba或全局主机页编号ghp…等)区别闪存储存内容。为了优化使用闪存,闪存的储存空间系动态配置对应主机所识别的逻辑地址。闪存一般划分为多个区块(blocks)。各区块包括多个页(pages)。各页可更划分为多个储存单元。如此小单位的动态配置使用方式,可能使得主机端逻辑地址以及闪存物理空间之间的映射关系(可以一映射表进行管理)相当庞杂。如何善用运算资源建立并且使用该映射表为本技术领域一项重要课题。

此段落举例说明该映射表的应用。映射表除了用于读取闪存内容,更有其他作用。特别是,闪存储存空间需以区块为单位进行抹除(erase)后方能再次使用。由于各区块可承受的抹除次数有上限,闪存的操作有抹写平均(wearleveling)议题需要考虑。另外,旧数据更新并非同空间复写。更新数据写入闲置空间后,会将旧空间内容标为无效,故垃圾回收(garbagecollection)需求相应产生。一区块中留存的零星有效数据可经垃圾回收技术搬移到闲置空间,使得徒留无效数据的区块得以被抹除再利用。整理之,读取操作、抹写平均以及垃圾回收技术,都需要使用到映射表。甚至,其他促进闪存操作效能的技术,也都有可能使用到映射表。

本案技术是在装置端建立逻辑地址以及物理空间映射关系,并将此映射关系回传主机端形成一映射表。如此一来,闪存的物理空间实际状况可于配置时充分考虑,且耗费资源的映射表应用可由运算能力强大的主机端分担。

图1图解根据本案一种实施方式所实现的一非挥发式存储器100操作架构。该非挥发式存储器100结合一控制器102形成一数据储存装置104。该数据储存装置104链接一主机106。本案对该控制器102有特殊设计、并提供对应的驱动程序由该主机106执行,以实现装置端(device-based)配置空间、且主机端(host-based)映射查表。

主机106具有一微处理器108、一指令队列(commandqueue)110、一完成队列(completionqueue)112以及一系统存储器114。微处理器108发出的指令将队列于该指令队列110中,待装置端的该控制器102执行,以操作该非挥发式存储器100。该控制器102执行完指令后,会藉由填写该完成队列112告知该微处理器108。系统存储器114可包括动态随机存取存储器(dram)。关于非挥发式存储器100的读取/写入数据可采用直接内存访问(dma)技术自该非挥发式存储器100读取至该系统存储器114、或自该系统存储器114取得以写入该非挥发式存储器100。特别是,该系统存储器114内维护有一映射表116,纪录主机106识别的逻辑地址(例如,逻辑区块地址lba)以及非挥发式存储器100物理空间(例如,以物理区块为指pba区别)之间的映射关系。映射表116所储存的映射关系并非在主机端设定,而是在装置端确立,再回传主机端填入该映射表116。

一种实施方式中,关于该非挥发式存储器100的一写入指令,该控制器102将其自该指令队列110取出时是获得欲写入数据的一逻辑地址(例如,逻辑区块地址lba)。控制器102负责将该非挥发式存储器100的一物理空间配置对应该逻辑地址lba,并将该物理空间的一物理地址(例如,物理区块地址pba)填入该完成队列112,由微处理器108用于修正该映射表116,记录该逻辑地址lba以及该物理地址pba的对应关系。后续关于该逻辑地址lba的操作(例如,读取),映射表116查询是由微处理器108进行。查询到的物理地址pba将随着读取指令填入指令队列110,待控制器102取得后据以自非挥发式存储器100的该物理地址pba取得数据,回传主机106。

一种实施方式中,微处理器108填入该指令队列110的写入指令可包括:

描述符(descriptor),例如,直接内存访问(dma)描述符,用于指示该控制器102去该系统存储器114何处取得写入数据。

元数据(metadata),注明写入数据的逻辑地址(如lba)、数据更新版本(versionnumber)、以及/或其他关于写入数据的属性信息(如校验码crc、时间标签timestamp…等)。

指定写入区(targetzone),指定配置该非挥发式存储器100何区域提供部分空间储存写入数据─例如,逻辑单位标号(lunnumber)、写入通道(channel)、芯片致能编号(cenumber)…等。此字段帮助实现闪存的跨区块超级页(superpage)写入。

根据指令队列110上述内容,该控制器102配置该非挥发式存储器100该指定写入区(targetzone)提供部分空间,并依照该指令符(descriptor)自该系统存储器114取得写入数据,合并上述元数据(metadata)写入该部分空间。该微控制器102执行完写入指令后,回填该完成队列112的信息可包括:

完成状态(completionstatus),显示该控制器102是否成功执行该写入指令。

物理地址(如物理区块地址pba),回报该控制器102是配置该非挥发式存储器100何处储存写入数据。

根据完成队列112上述内容,微处理器108更新系统存储器114内的该映射表116,记录该逻辑地址lba以及该物理地址pba之间的映射关系。

一种实施方式中,微处理器108填入该指令队列110的读取指令可包括:

描述符(descriptor),例如,直接内存访问(dma)描述符,用于指示该控制器102将该非挥发式存储器100提供的读取数据回传至该系统存储器114何处。

物理地址(如物理区块地址pba),系该微处理器108基于该读取指令所欲读取的逻辑地址(如逻辑区块地址lba)对该映射表116所进行的查表结果。

根据指令队列110上述内容,该控制器102将取自该非挥发式存储器100该物理地址pba的读取数据写入该系统存储器114。该微控制器102执行完读取指令后,回填该完成队列112的信息可包括:

完成状态(completionstatus),显示该控制器102是否成功执行该读取指令。

元数据(metadata),即当初写入而藉此次回传的元数据,包括前述逻辑地址(如lba)、数据更新版本(versionnumber)、以及/或其他属性信息(如校验码crc、时间标签timestamp…等)。

根据完成队列112上述内容,微处理器108可利用上述元数据(metadata)判断该非挥发式存储器100提供的读取数据(载至该系统存储器114)是否正确。例如,取自该完成队列112的元数据可与主机端所维护的元数据比对,有变动则代表读取数据不可靠。

一种实施方式中,微处理器108发出一元数据收集(metadatareadonly)指令填入该指令队列110。控制器102将自该非挥发式存储器100取得所有空间或部分区域的元数据填入该完成队列112。此操作不同于读取指令,无关用户数据读取,可应用在映射表116重建。取自该非挥发式存储器100所有空间的元数据将包括所有物理地址(例如,pba)对应的逻辑地址(例如,lba)。元数据收集指令可以在开机、或是非预期掉电后的复电中,由该微处理器108填入该指令队列110执行。微处理器108将陆续根据完成队列112于主机端重建映射表116。

一种实施方式中,垃圾回收的一源区块(sourceblock)是在主机端参考该映射表116内容选定。主机106可藉由以上介绍的读取指令将该源区块的有效内容自该非挥发式存储器100读出,再经由以上介绍的写入指令将上述有效数据写入该控制器102于该非挥发式存储器100所新配置的一闲置空间─例如,垃圾回收的一目标区块(destinationblock)。主机106端会修正映射表116,将该源区块的有效数据改映射至该目标区块。无映射有效数据的该源区块可被抹除再次利用。

一种实施方式中,抹写平均(wearleveling)对冷数据(少变动)以及热数据(频繁更新)的判别是由主机106端进行。此冷/热数据标签可以元数据方式传入装置104端。控制器102可根据该冷/热数据标签配置该非挥发式存储器100提供适当抹除计数的区块来储存写入数据。例如,高抹除计数的区块可配置储存冷数据,低抹除计数的区块可配置储存热数据。抹写平均技术由主机106以及装置104联合提供运算资源进行。

一种实施例中,主机106可为多核心,并对各微处理器(或各执行序thread)提供专属的指令队列与完成队列。本案揭露的技术─装置端(device-based)配置空间、且主机端(host-based)映射查表─将使得主机106多核心运作单纯。主机106端无须考虑非挥发式存储器100的配置使用规则(例如,依照物理地址顺序使用),因而可确保主机106多核心的平行运算效能。例如,多执行序对非挥发式存储器100的多个写入指令可等待于对应的指令队列,待控制器102执行。控制器102将考虑非挥发式存储器100的配置使用规则,为该等写入指令一一配置该非挥发式存储器100提供储存空间完成数据写入。多执行序排程因而可与非挥发式存储器100物理空间使用分开考虑。

图2根据本案一种实施方式图解一数据中心200。主机106可为服务器,即采用多核心架构,具有多个微处理器108_1…108_n(或可以多个执行序标示),以及多对指令队列以及完成队列(110_1与112_1…110_n与112_n)。装置端包括多个数据储存装置104_1、104_2…104_m,各自提供控制器102_1、102_2…102_m控制其上的非挥发式存储器100_1、100_2…100_m。本案装置端(device-based)配置空间且主机端(host-based)映射查表的技术将使得控制器102_1、102_2…102_m各自设计单纯,且多核心运算无须浪费过多资源在非挥发式存储器空间配置上。

图3为流程图,根据本案一种实施方式说明控制器102如何应付一写入指令。步骤s302,控制器102自主机106接收一写入指令。步骤s304,控制器102根据该写入指令指示的描述符自系统存储器114取得写入数据。步骤s306,控制器102自写入指令指示的元数据取得写入数据的逻辑地址(如lba)、并根据写入指令获知一指定写入区(targetzone)。步骤s308,控制器102在非挥发式存储器100的该指定写入区配置空间,并将写入数据编程于其中。步骤s310判断编程是否成功。若不成功,步骤s308再次进行,控制器102在非挥发式存储器100的该指定写入区另外配置空间编程该写入数据。若编程成功,步骤s312回传控制器102于步骤s308所配置空间的物理地址(如pba)给该主机106,并告知主机106该写入指令完成。

图4为流程图,根据本案一种实施方式说明主机106相关一写入指令的动作。步骤s402,主机106在映射表114开放一写入指令的写入数据的逻辑地址(如lba)的字段。步骤s404,主机106将该写入指令传递给该控制器102。步骤s406,主机106侦测该控制器102为该写入指令所回传的”成功”完成状态。步骤s408,主机106将控制器102回传的物理地址(pba)填入该映射表114该逻辑地址lba对应的字段。

图3以及图4显示控制器102以及主机106如何适当分工对非挥发式存储器100完成一写入指令。

图5为流程图,根据本案一种实施方式说明主机106相关一读取指令的动作。步骤s502,主机106查询映射表114,获知欲读取的逻辑地址(如lba)映射的物理地址(如pba)。步骤s504,主机106传递读取指令给该控制器102,其中包括该物理地址(pba)。步骤s506,主机106侦测该控制器102为该读取指令所回传的”成功”完成状态。步骤s508,主机106将控制器102回传的元数据用于数据校验。步骤s510若判定校验失败,步骤s512中,主机106进行失败报导。若步骤s510判定校验成功,则程序结束。

图6为流程图,根据本案一种实施方式说明控制器102如何应付一读取指令。步骤s602,控制器102自主机106接收一读取指令。步骤s604,控制器102根据该读取指令获知欲读取的物理地址(如pba)。步骤s606,控制器102根据该物理地址pba自该非挥发式存储器100获得读取数据。步骤s608,控制器102根据该读取指令将该读取数据写入该系统存储器114。步骤s610,该控制器106回传该读取数据的元数据至该主机106,并告知主机106该读取指令完成。

图5以及图6显示控制器102以及主机106如何适当分工完成对非挥发式存储器100的一写入指令。

其他采用装置端(device-based)配置空间、且主机端(host-based)映射查表的技术都属于本案所欲保护的范围。基于以上技术内容,本案更涉及非挥发式存储器操作方法。

虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明,本领域技术人员,在不脱离本发明的精神和范围内,当可做些许更动与润饰,因此本发明的保护范围当视权利要求所界定者为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1