操作存储设备和主机设备的方法以及存储设备与流程

文档序号:30386622发布日期:2022-06-11 10:38阅读:189来源:国知局
操作存储设备和主机设备的方法以及存储设备1.相关申请的交叉引用2.本技术要求于2020年12月8日在韩国知识产权局提交的韩国专利申请no.10-2020-0170198的优先权,其公开内容通过引用全部并入本文。
技术领域
:3.与示例实施例一致的方法、装置和系统涉及主机设备和存储设备。
背景技术
::4.当存储设备持续运行时,存储设备中可能发生故障。存储设备的这种故障对存储器系统的可靠性产生不利影响,因此优选地最小化这种故障。5.已经提出了从存储设备中已发生的故障恢复的各种技术。然而,由于这些技术是在存储设备中实际发生了故障之后应用的,因此这些技术无助于提高存储器系统的可靠性。因此,需要一种可以提高存储器系统的可靠性的方法。技术实现要素:6.一个或更多个示例实施例提供了一种能够提高存储器系统的可靠性的用于操作存储设备的方法。7.一个或更多个示例实施例提供了一种能够提高存储器系统的可靠性的用于操作主机设备的方法。8.一个或更多个示例实施例提供了一种能够提高存储器系统的可靠性的存储设备。9.示例实施例可以至少解决上述问题和/或缺点以及上文未描述的其他缺点。此外,示例实施例不需要克服上述缺点,并且可以不克服上述任何问题。10.根据示例实施例的一个方面,一种操作存储设备的方法包括:经由所述存储设备的主机接口从外部设备接收用于请求关于所述存储设备的故障概率信息的命令,其中,所述存储设备包括第一组件和第二组件;以及响应于所述命令,经由所述主机接口向所述外部设备提供关于所述存储设备的所述故障概率信息。11.根据示例实施例的一个方面,一种用于操作主机设备的方法包括:向存储设备发送请求关于所述存储设备的故障概率信息的命令,其中,所述存储设备包括第一组件和第二组件;以及响应于所述命令,从所述存储设备接收关于所述存储设备的所述故障概率信息。12.根据示例实施例的一个方面,一种存储设备包括:缓冲存储器,所述缓冲存储器被配置为临时存储从主机设备提供的数据;非易失性存储器,所述非易失性存储器被配置为存储从所述主机设备提供的所述数据;日志监视器,所述日志监视器被配置为从所述缓冲存储器和所述非易失性存储器收集日志数据;以及处理器,所述处理器被配置为实现机器学习模块,所述机器学习模块基于所述日志数据确定关于所述存储设备的故障概率。附图说明13.根据以下结合附图对示例实施例的描述,以上和其他方面将更加明显,其中:14.图1是示出根据一些示例实施例的存储器系统的框图;15.图2是示出根据一些示例实施例的存储控制器(storagecontroller)和非易失性存储器的图;16.图3是示出根据一些示例实施例的存储控制器、存储器接口和非易失性存储器的图;17.图4是示出根据一些示例实施例的存储器系统的操作的流程图;18.图5是用于解释根据一些示例实施例的在存储设备中执行的机器学习操作的流程图;19.图6至图10是用于解释根据一些示例实施例的在存储设备中执行的机器学习操作的图;20.图11和图12是用于解释根据一些示例实施例的存储器系统的操作的图;21.图13是用于解释根据一些其他示例实施例的存储器系统的操作的图;以及22.图14是示出根据一些示例实施例的包括存储设备的数据中心的图。具体实施方式23.以下,将参考附图描述示例实施例。24.图1是示出根据一些示例实施例的存储器系统的框图。25.存储器系统10可以包括主机设备100和存储设备200。存储设备200还可以包括存储控制器(storagecontroller)210和非易失性存储器(nvm)220。此外,在一些示例实施例中,主机设备100可以包括主机控制器110和主机存储器120。主机存储器120可以用作缓冲存储器,其用于临时存储要发送到存储设备200的数据或从存储设备200接收的数据。26.存储设备200可以是用于根据来自主机设备100的请求存储数据的存储介质。例如,存储设备200可以是固态驱动器(ssd)、嵌入式存储器和可拆卸外部存储器中的至少一种。如果存储设备200是ssd,则存储设备200可以是符合快速非易失性存储器(nvme)标准的设备。27.如果存储设备200是嵌入式存储器或外部存储器,则存储设备200可以是符合通用闪存(ufs)或嵌入式多媒体卡(emmc)标准的设备。主机设备100和存储设备200可以各自生成和发送符合所采用的标准协议的分组(packet)。28.当存储设备200的非易失性存储器220包括闪存时,该闪存可以包括2dnand存储单元阵列或3d(或垂直)nand(vnand)存储单元阵列。作为另一示例,存储设备200还可以包括各种其他类型的非易失性存储器。例如,磁ram(mram)、自旋转移转矩mram、导电桥接ram(cbram)、铁电ram(feram)、相位ram(pram)、电阻存储器(电阻ram)和各种其他类型的存储器可以被应用于存储设备200。29.在一些示例实施例中,主机控制器110和主机存储器120可以实现为不同的半导体芯片。或者,在一些示例实施例中,主机控制器110和主机存储器120可以集成在同一半导体芯片上。作为示例,主机控制器110可以是在应用处理器中设置的多个模块中的一个模块,并且这样的应用处理器可以实现为片上系统(soc)。此外,主机存储器120可以是设置在应用处理器中的嵌入式存储器,或者是位于应用处理器外部的非易失性存储器或存储器模块。30.主机控制器110可以管理将缓冲区域的数据(例如,写入数据)存储在非易失性存储器220中的操作,或将非易失性存储器220的数据(例如,读取数据)存储在缓冲区域中的操作。31.存储控制器210可以包括主机接口(i/f)211、存储器接口212和中央处理单元(cpu)213。此外,存储控制器210还可以包括闪存转换层(ftl)214、分组管理器215、缓冲存储器216、纠错码(ecc)引擎217、以及先进加密标准(aes)引擎218。32.存储控制器210还可以包括工作存储器,闪存转换层(ftl)214加载到该工作存储器中,并且当cpu213执行闪存转换层214时,非易失性存储器的数据写入和读取操作可以被控制。33.主机接口211可以向主机设备100发送分组以及从主机设备100接收分组。从主机设备100发送到主机接口211的分组可以包括命令、要写入到非易失性存储器220的数据等。从主机接口211发送到主机设备100的分组可以包括对命令的响应、从非易失性存储器220读取的数据等。34.存储器接口212可以将要写入到非易失性存储器220中的数据发送到非易失性存储器220,或者从非易失性存储器220接收读取的数据。存储器接口212可以实现为符合诸如切换(toggle)或开放nand闪存接口(onfi)等标准规范。35.闪存转换层214可以执行各种操作,诸如,地址映射、损耗均衡和垃圾收集。地址映射操作是将从主机接收到的逻辑地址改变为用于将数据实际存储在非易失性存储器220中的物理地址的操作。损耗均衡操作是用于确保非易失性存储器220中的块被均匀使用以防止特定块的过度劣化的技术,并且可以例如通过平衡物理块的擦除计数的固件技术来实现。垃圾收集操作是用于通过将块的有效数据复制到新块然后擦除现有块的方法来确保非易失性存储器220中的可用容量的技术。36.分组管理器215可以根据与主机设备100的接口协议生成分组,或者可以解析来自从主机设备100接收到的分组的各种类型的信息。此外,缓冲存储器216可以临时存储要记录在非易失性存储器220中的数据或从非易失性存储器220读取的数据。缓冲存储器216可以设置在存储控制器210内部,但示例实施例不限于此,并且缓冲存储器216可以位于存储控制器210外部。37.ecc引擎217可以对要记录在非易失性存储器220中的数据或从非易失性存储器220读取的读取数据执行错误检测和纠正功能。更具体地说,ecc引擎217可以针对要写入非易失性存储器220的写入数据生成奇偶校验位,并且以这种方式生成的奇偶校验位可以与写入数据一起存储在非易失性存储器220中。当从非易失性存储器220读取数据时,ecc引擎217可以将从非易失性存储器220读取的奇偶校验位与读取数据一起使用,纠正读取数据的错误,并输出具有纠正了错误的读取数据。38.aes引擎218可以使用对称密钥算法对输入到存储控制器210的数据执行加密操作和解密操作中的至少一个。39.机器学习模块219可以对从存储设备200生成的数据执行机器学习操作。40.在一些示例实施例中,机器学习模块219可以包括输入层、隐藏层和输出层。41.输入层可以被提供有针对从过去时间点到现在时间点的每个时间点的学习数据。每个时间点的学习数据可以包括例如从存储设备200中包括的各种组件(例如,包括非易失性存储器220、缓冲存储器216和温度传感器230的各种类型的硬件和固件)收集的日志数据。42.这种输入层可以提供给隐藏层以用于学习。在一些示例实施例中,尽管可接收时间序列特征并进行复杂预测的递归神经网络(rnn)模型可以应用为隐藏层,但是示例实施例不限于此。43.当这样的学习完成时,可以在输出层中计算比当前时间点更远的未来时间点的预测信息(例如,故障概率)。在一些示例实施例中,尽管输出层可以使用多层感知器(mlp),但示例实施例不限于此。44.在一些示例实施例中,机器学习模块219可以实现为固件或软件,并由存储设备200操作。在这种情况下,机器学习模块219可以控制存储控制器210的操作。此外,在一些示例实施例中,机器学习模块219可以实现为硬件并由存储设备200操作。在这种情况下,机器学习模块219可以以存储设备200中包括的机器学习处理器的形式来实现。45.温度传感器(ts)230可以感测存储设备200的温度,并将感测到的温度信息提供给存储控制器210。具体地,温度传感器230可以感测存储设备200的工作温度和/或存储设备200的周围环境温度和/或存储设备200中包括的组件的温度,并将感测到的温度信息提供给存储控制器210。46.图2是重新配置图1的存储设备的存储控制器和非易失性存储器的图。47.参考图2,存储设备200可以包括非易失性存储器220和存储控制器210。存储设备200可以支持多个通道ch1至chm,并且非易失性存储器220和存储控制器210可以通过多个通道ch1至chm连接。例如,存储设备200可以实现为诸如ssd的存储设备。48.非易失性存储器220可以包括多个非易失性存储器件nvm11至nvmmn。非易失性存储器件nvm11至nvmmn中的每一者可以通过相应的路(way)连接到多个通道ch1至chm中的一个通道。例如,非易失性存储器件nvm11至nvm1n通过路w11至w1n连接到第一通道ch1,并且非易失性存储器件nvm21至nvm2n可以通过路w21至w2n连接到第二通道ch2。在示例实施例中,非易失性存储器件nvm11至nvmmn中的每一者可以以可根据来自存储控制器210的单独指令操作的存储器单元(memoryunit)来实现。例如,尽管非易失性存储器件nvm11至nvmmn中的每一者可以实现为芯片或裸片,但是示例实施例不限于此。49.存储控制器210可以通过多个通道ch1至chm向非易失性存储器220发送信号以及从非易失性存储器220接收信号。例如,存储控制器210可以通过通道ch1至chm向非易失性存储器220发送命令cmda至cmdm、地址addra至addrm和数据dataa至datam,或者可以从非易失性存储器220接收数据dataa至datam。50.存储控制器210可以通过每个通道选择连接到该通道的非易失性存储器件中的一者,并且可以向所选择的非易失性存储器件发送信号以及从其接收信号。例如,存储控制器210可以在连接到第一通道ch1的非易失性存储器件nvm11至nvm1n中选择非易失性存储器件nvm11。存储控制器210可以通过第一通道ch1将命令cmda、地址addra和数据dataa发送到所选择的非易失性存储器件nvm11,或者可以从所选择的非易失性存储器件nvm11接收数据dataa。51.存储控制器210可以通过彼此不同的通道并行地向非易失性存储器220发送信号,以及从非易失性存储器220接收信号。例如,存储控制器210可以通过第二通道ch2向非易失性存储器220发送命令cmdb,同时通过第一通道ch1向非易失性存储器220发送命令cmda。例如,存储控制器210可以通过第二通道ch2从非易失性存储器220接收数据datab,同时通过第一通道ch1从非易失性存储器220接收数据dataa。52.存储控制器210可以控制非易失性存储器220的整体操作。存储控制器210可以将信号发送到通道ch1至chm,以控制连接到通道ch1至chm的非易失性存储器件nvm11至nvmmn中的每一者。例如,存储控制器210可以将命令cmda和地址addra发送到第一通道ch1,以控制非易失性存储器件nvm11至nvm1n中的所选择的一者。53.非易失性存储器件nvm11至nvmmn均可以根据存储控制器210的控制进行操作。例如,非易失性存储器件nvm11可以根据提供给第一通道ch1的命令cmda、地址addra和数据dataa对数据dataa进行编程。例如,非易失性存储器件nvm21可以根据提供给第二通道ch2的命令cmdb和地址addrb读取数据datab,并将读取的数据datab发送到存储控制器210。54.尽管图2示出了非易失性存储器220通过m个通道与存储控制器210通信,并且非易失性存储器220包括对应于每个通道的n个非易失性存储器件,但是通道的数量和连接到一个通道的非易失性存储器件的数量可以不同地改变。55.图3是根据一些示例实施例的存储控制器、存储器接口和非易失性存储器的图。例如,可以重新配置图1的存储控制器、存储器接口和非易失性存储器。存储器接口212可以包括控制器接口电路212a。56.非易失性存储器220可以包括第一引脚p11至第八引脚p18、存储器接口电路212b、控制逻辑电路510和存储单元阵列520。57.存储器接口电路212b可以通过第一引脚p11从存储控制器210接收芯片使能信号nce。存储器接口电路212b可以根据芯片使能信号nce通过第二引脚p12至第八引脚p18向存储控制器210发送信号以及从存储控制器210接收信号。例如,当芯片使能信号nce处于启用状态(例如,低电平)时,存储器接口电路212b可以通过第二引脚p12至第八引脚p18向存储控制器210发送信号以及从存储控制器210接收信号。58.存储器接口电路212b可以通过第二引脚p12至第四引脚p14从存储控制器210接收命令锁存使能信号cle、地址锁存使能信号ale和写入使能信号nwe。存储器接口电路212b可以通过第七引脚p17从存储控制器210接收数据信号dq,或者将数据信号dq发送到存储控制器210。命令cmd、地址addr和数据data可以通过数据信号dq传输。例如,数据信号dq可以通过多条数据信号线传输。在这种情况下,第七引脚p17可以包括对应于多个数据信号的多个引脚。59.存储器接口电路212b可以基于写入使能信号nwe的切换定时,从在命令锁存使能信号cle的使能阶段(例如,高电平状态)中接收的数据信号dq获得命令cmd。存储器接口电路212b可以基于写入使能信号nwe的切换定时,从在地址锁存使能信号ale的使能阶段(例如,高电平状态)中接收的数据信号dq获得地址addr。60.在一些示例实施例中,写入使能信号nwe保持静态状态(例如,高电平或低电平),然后可以在高电平和低电平之间切换。例如,可以在发送命令cmd或地址addr的阶段切换写入使能信号nwe。因此,存储器接口电路212b可以基于写入使能信号nwe的切换定时来获得命令cmd或地址addr。61.存储器接口电路212b可以通过第五引脚p15从存储控制器210接收读取使能信号nre。存储器接口电路212b可以通过第六引脚p16从存储控制器210接收数据选通信号dqs,或者可以将数据选通信号dqs发送到存储控制器210。62.在非易失性存储器220的数据data输出操作中,存储器接口电路212b可以在输出数据data之前通过第五引脚p15接收切换的(toggled)读取使能信号nre。存储器接口电路212b可以生成基于读取使能信号nre的切换而切换的数据选通信号dqs。例如,存储器接口电路212b可以基于读取使能信号nre的切换开始时间,生成在预定延迟(例如,tdqsre)之后开始切换的数据选通信号dqs。存储器接口电路212b可以基于数据选通信号dqs的切换定时来发送包括数据data的数据信号dq。结果,可以在数据选通信号dqs的切换定时处布置数据data,并将其发送到存储控制器210。63.在非易失性存储器220的数据data输入操作中,当从存储控制器210接收包括数据data的数据信号dq时,存储器接口电路212b可以从存储控制器210接收切换的数据选通信号dqs以及数据data。存储器接口电路212b可以基于数据选通信号dqs的切换定时从数据信号dq获得数据data。例如,存储器接口电路212b可以通过在数据选通信号dqs的上升沿和下降沿对数据信号dq进行采样来获得数据data。64.存储器接口电路212b可以通过第八引脚p18向存储控制器210发送就绪/忙碌输出信号nr/b。存储器接口电路212b可以通过就绪/忙碌输出信号nr/b将关于非易失性存储器220的状态信息发送到存储控制器210。当非易失性存储器220处于忙碌状态时(即,当非易失性存储器220的内部操作正被执行时),存储器接口电路212b可以将指示忙碌状态的就绪/忙碌输出信号nr/b发送到存储控制器210。当非易失性存储器220处于就绪状态(即,非易失性存储器220的内部操作未被执行或已完成)时,存储器接口电路212b可以将指示就绪状态的就绪/忙碌输出信号nr/b发送到存储控制器210。65.例如,当非易失性存储器220根据页面读取命令正从存储单元阵列520读取数据data时,存储器接口电路212b可以将指示忙碌状态(例如,低电平)的就绪/忙碌输出信号nr/b发送到存储控制器210。例如,当非易失性存储器220根据编程指令正将数据data编程到存储单元阵列520时,存储器接口电路212b可以将指示忙碌状态的就绪/忙碌输出信号nr/b发送到存储控制器210。66.控制逻辑电路510通常可以控制非易失性存储器220的各种操作。控制逻辑电路510可以接收从存储器接口电路212b获得的命令cmd/地址addr。控制逻辑电路510可以根据接收到的命令cmd/地址addr生成用于控制非易失性存储器220的其他组件的控制信号。例如,控制逻辑电路510可以生成用于将数据data编程到存储单元阵列520或从存储单元阵列520读取数据的各种控制信号。67.存储单元阵列520可以根据控制逻辑电路510的控制来存储从存储器接口电路212b获得的数据data。存储单元阵列520可以根据控制逻辑电路510的控制将存储的数据data输出到存储器接口电路212b。68.存储单元阵列520可以包括多个存储单元。例如,多个存储单元可以是闪存单元。然而,示例实施例不限于此,并且存储单元可以是电阻随机存取存储器(rram)单元、铁电随机存取存储器(fram)单元、相变随机存取存储器(pram)单元、晶闸管随机存取存储器(tram)单元和磁随机存取存储器(mram)单元。在下文中,将重点针对存储单元是nand闪存单元的示例实施例,来描述本公开的示例实施例。69.存储控制器210可以包括第一引脚p21至第八引脚p28以及控制器接口电路212a。第一引脚p21至第八引脚p28可以对应于非易失性存储器220的第一引脚p11至第八引脚p18。70.控制器接口电路212a可以通过第一引脚p21向非易失性存储器220发送芯片使能信号nce。控制器接口电路212a可以通过第二引脚p22至第八引脚p28向通过芯片使能信号nce选择的非易失性存储器220发送信号以及从其接收信号。71.控制器接口电路212a可以通过第二引脚p22至第四引脚p24将命令锁存使能信号cle、地址锁存使能信号ale和写入使能信号nwe发送到非易失性存储器220。控制器接口电路212a可以通过第七引脚p27将数据信号dq发送到非易失性存储器220,或者从非易失性存储器220接收数据信号dq。72.控制器接口电路212a可以将包括命令cmd或地址addr的数据信号dq连同切换的写入使能信号nwe发送到非易失性存储器220。控制器接口电路212a可以通过发送具有启用状态的命令锁存使能信号cle,将包括命令cmd的数据信号dq发送到非易失性存储器220,并且可以通过发送具有启用状态的地址锁存使能信号ale,将包括地址addr的数据信号dq发送到非易失性存储器220。73.控制器接口电路212a可以通过第五引脚p25将读取使能信号nre发送到非易失性存储器220。控制器接口电路212a可以通过第六引脚p26从非易失性存储器220接收数据选通信号dqs,或者可以将数据选通信号dqs发送到非易失性存储器220。74.在非易失性存储器220的数据data输出操作中,控制器接口电路212a可以生成切换的读取使能信号nre,并将读取使能信号nre发送到非易失性存储器220。例如,控制器接口电路212a可以生成在输出数据data之前从静态状态(例如,高电平或低电平)改变为切换状态的读取使能信号nre。结果,可以在非易失性存储器220中生成基于读取使能信号nre而切换的数据选通信号dqs。控制器接口电路212a可以从非易失性存储器220接收包括数据data的数据信号dq以及切换的数据选通信号dqs。控制器接口电路212a可以基于数据选通信号dqs的切换定时从数据信号dq获得数据。75.在非易失性存储器220的数据data输入操作中,控制器接口电路212a可以生成切换的数据选通信号dqs。例如,控制器接口电路212a可以生成在发送数据data之前从静态状态(例如,高电平或低电平)改变为切换状态的数据选通信号dqs。控制器接口电路212a可以基于数据选通信号dqs的切换定时,将包括数据data的数据信号dq发送到非易失性存储器220。76.控制器接口电路212a可以通过第八引脚p28从非易失性存储器220接收就绪/忙碌输出信号nr/b。控制器接口电路212a可以基于就绪/忙碌输出信号nr/b来识别关于非易失性存储器220的状态信息。77.在下文中,将参考图4至图12描述根据一些示例实施例的存储器系统的操作。78.图4是示出根据一些示例实施例的存储器系统的操作的流程图。图5是用于解释根据一些示例实施例的在存储设备中执行的机器学习操作的流程图。图6至图10是用于解释根据一些示例实施例的在存储设备中执行的机器学习操作的图。图11和图12是用于解释根据一些示例实施例的存储器系统的操作的图。79.首先,参考图4,在存储设备200上执行机器学习操作(s100)。80.尽管图4示出了在存储设备200上执行机器学习操作(s100)然后从主机设备100接收用于请求关于存储设备200的故障概率信息的命令(s200)的序列,但是示例实施例不限于所示的操作序列。81.与所示示例不同,可以不同地修改由存储设备200执行的机器学习操作(s100)的执行时间点。此外,在一些示例实施例中,存储设备200可以根据从主机设备100接收到用于指示执行机器学习操作的命令来执行机器学习操作(s100)。82.在存储设备200中执行的机器学习操作可以包括例如图5所示的日志数据收集操作(s110、s120)和使用日志数据的机器学习操作(s130)。83.在下文中,将参考图5至图10给出更具体的描述。84.参考图5,收集日志数据(s110)。85.参考图6,存储设备200的日志监视器240被包括在存储设备200中,并且可以从构成存储设备200的各种组件216、220、233和250收集日志数据。86.作为存储设备200中包括的组件的示例,图6示出了包括dram216a的缓冲存储器216、包括nand226和pram227的非易失性存储器220、形成存储设备200的各种硬件233(诸如,温度传感器230、电容器(cap)231和循环冗余码(crc)模块232)、以及安装在存储设备200中的固件250。然而,示例实施例不限于此。87.在一些示例实施例中,日志监视器240可以实现为机器学习模块(图1的219)的一部分。此外,在一些其他示例实施例中,日志监视器240可以实现为不同于机器学习模块(图1的219)的单独模块。88.在一些示例实施例中,日志监视器240可以实现为软件并在存储设备200上运行,日志监视器240可以实现为硬件并在存储设备200上操作。89.日志监视器240可以从存储设备200中包括的缓冲存储器216、非易失性存储器220、硬件233和固件250的操作收集日志数据。具体地,日志监控器240可以从存储设备200中包括的缓冲存储器216、非易失性存储器220、硬件233和固件250的操作收集用于预测缓冲存储器216、非易失性存储器220、硬件233和固件250的故障概率的日志数据。90.图7中示出了日志数据的示例。91.参考图6和图7,日志监视器240可以从nand226的操作收集用于预测nand226的故障概率的日志数据。92.用于预测nand226的故障概率的日志数据可以包括nand226的回收(reclaim)计数、nand226的读取延迟直方图、nand226的读取重试计数、nand226的每个裸片的运行时坏块(runtimebadblock,rtbb)的数量、nand226的可用裸片的数量、nand226的不可校正纠错码(uncorrectableerrorcorrectioncode,uecc)计数。93.nand226的回收操作是这样的操作:通过读取重试操作成功地读取存储在nand226中的数据,但发现在读取数据中包括许多错误位,而将存储在读取页面中的数据移动到nand226的新页面。94.nand226的回收操作的高发生计数表示nand226的故障概率上升,日志监视器240收集nand226的回收计数作为用于预测nand226的故障概率的日志数据。95.nand226的读取延迟增加可以指示在nand226中执行读取重试或回收操作,并且读取延迟增加。因此,nand226的读取延迟增加可以指示nand226的故障概率上升。因此,日志监视器240收集nand226的读取延迟直方图作为用于预测nand226的故障概率的日志数据。96.nand226的读取重试操作是在读取过程中发生错误并且再次执行读取操作以读取相同数据的操作。97.由于nand226的读取重试操作的高发生计数指示nand226的故障概率上升,因此日志监视器240收集nand226的读取重试计数作为用于预测nand226的故障概率的日志数据。98.nand226的运行时坏块(rtbb)指示在nand226的操作期间发生故障的块。99.nand226的rtbb增加指示nand226的故障概率上升。因此,日志监视器240收集nand226的每个裸片的rtbb的数量作为用于预测nand226的故障概率的日志数据。100.nand226的可用裸片的数量指示nand226中实际使用的nand芯片的数量,并且nand226的可用裸片的数量随着缺陷nand芯片的数量的增加而减少。101.由于nand226的可用裸片的数量的减少指示nand226的故障概率上升,因此日志监视器240收集nand226的可用裸片的数量作为用于预测nand226的故障概率的日志数据。102.nand226的uecc计数指示nand226中发生的不可校正错误的发生计数。103.由于nand226的uecc计数增加指示nand226的故障概率上升,因此日志监视器240收集nand226的uecc计数作为用于预测nand226的故障概率的日志数据。104.此外,日志监视器240可以从dram216a的操作收集用于预测dram216a的故障概率的日志数据。105.用于预测dram216a的故障概率的日志数据可以包括dram216a的可校正纠错码(correctableerrorcorrectioncode,cecc)计数、dram216a的温度历史等。106.dram216a的cecc计数是在dram216a操作期间发生1位翻转(flip)的计数。107.由于dram216a的cecc计数增加指示dram216a的故障概率增加,因此日志监视器240收集dram216a的cecc计数作为用于预测dram216a的故障概率的日志数据。108.dram216a的温度历史是指示dram216a随时间工作时的工作温度的数据。109.由于dram216a的工作温度可以影响dram216a的故障概率,因此日志监视器240收集dram216a的温度历史作为用于预测dram216a的故障概率的日志数据。110.此外,日志监视器240可以从电容器231的操作收集用于预测电容器231的故障概率的日志数据。111.用于预测电容器231的故障概率的日志数据可以包括电容器231的状态(电容器健康状况)等。112.电容器231的状态(电容器健康状况)是通过数字表示存储设备200中存在的电容器231的充电状态来指示电容器231的状态的信息。例如,如果电容器231的初始值为100(即,当电容器231是新的时),则充电容量随着电容器231被使用而减小。因此,电容器231的状态(电容器健康状况)的值逐渐减小。113.由于电容器231的状态(电容器健康状况)可以影响电容器231的故障概率,因此日志监视器240收集电容器231的状态(电容器健康状况)作为用于预测电容器231的故障概率的日志数据。114.此外,日志监视器240可以从温度传感器230的操作收集用于预测温度传感器230的故障概率的日志数据。115.用于预测温度传感器230的故障概率的日志数据可以包括温度传感器230的重试计数等。116.温度传感器230的重试计数指示当读取从温度传感器230感测到的值时发生的重试尝试的计数。117.由于温度传感器230的重试计数增加指示温度传感器230的故障概率上升,因此日志监视器240收集温度传感器230的重试计数作为用于预测温度传感器230的故障概率的日志数据。118.此外,日志监视器240可以从crc模块232的操作收集用于预测crc模块232的故障概率的日志数据。119.用于预测crc模块232的故障概率的日志数据可以包括crc模块232的错误历史等。120.crc模块232的错误历史可以指示存储设备200的内部数据路径的信号完整性状态。121.由于高crc错误计数指示crc模块232的操作计数增加,并且存储设备200的内部数据路径的信号完整性状态不好,因此日志监视器240收集crc模块232的错误历史作为用于预测crc模块232或存储设备200的故障概率的日志数据。122.此外,日志监视器240可以从固件250的操作收集用于预测固件250的故障概率的日志数据。123.用于预测固件250的故障概率的日志数据可以包括固件250中发生的异常计数和重置计数等。124.固件250的异常计数和重置计数增加可以指示:由于频繁发生程式错误(bug)或存储设备200的控制操作未顺利执行而导致固件250需要被改变。因此,日志监视器240收集固件250的异常计数和重置计数作为用于预测固件250或存储设备200的故障概率的日志数据。125.再次参考图5,针对收集的日志数据的数量是否大于预定数量(th)进行确定(s120)。如果收集的日志数据的数量小于预定数量(s120“否”),则继续收集日志数据(s110)。126.在一些示例实施例中,可以继续日志数据收集操作(s110),直到收集到了满足稍后描述的时间窗口的日志数据的数量。127.参考图6,在一些示例实施例中,日志监视器240可以以db(数据库)228的形式将收集的日志数据存储在非易失性存储器220中。也就是说,非易失性存储器220中包括的多个nand芯片中的任何一个nand芯片可以存储由日志监视器240收集的日志数据。128.然而,示例实施例不限于此,并且日志监视器240还可以将收集的日志数据存储在非易失性存储器220以外的区域中。例如,日志监视器240还可以将收集的日志数据存储在通过网络连接到存储设备200的另一个存储区域中。129.参考图6和图8,例如,日志监视器240可以以10秒为单位从nand226的操作收集日志数据并且预测nand226的故障概率所需的日志数据的数量可以是5(即,图8的p=5)。在这种情况下,日志监视器240可以从nand226的操作收集上述日志数据至少50秒。即,机器学习模块219的nand226的故障概率预测操作可以在经过至少50秒之后执行。130.再次参考图5,当收集的日志数据的数量大于预定数量时(s120“是”),执行机器学习操作(s130)。131.参考图1和图8,每个组件可以包括已累积到当前时间点的k(k是自然数)个日志数据(ld),并且机器学习模块219可以使用随着时间流逝收集的每个组件的k个日志数据之中的在预定时间窗口内包括的p(p是小于k的自然数)个日志数据,来预测每个组件的故障概率。随着时间的流逝,k个日志数据的数量可以增加。132.如图8所示,当假设当前时间点为t时,机器学习模块219可以使用从过去到当前时间点从第一组件(组件1)的操作收集的k个日志数据之中的在时间窗口中包括的p个日志数据,来预测第一组件(组件1)的未来n(n是自然数)个时间点的故障概率(fp(t+1)、fp(t+2)和fp(t+n))。133.此外,机器学习模块219可以使用从过去到当前时间点从第二组件(组件2)的操作收集的k个日志数据之中的在时间窗口中包括的p个日志数据,来预测第二组件(组件2)的未来n个时间点的故障概率(fp(t+1)、fp(t+2)和fp(t+n))。134.机器学习模块219的这种操作可以对存储设备200中包括的m(m是自然数)个组件执行。135.接下来,参考图1和图9,机器学习模块219可以基于为每个组件预测到的未来n个时间点的故障概率(fp(t+1)、fp(t+2)和fp(t+n)),来预测在未来n个时间点的存储设备200的故障概率(ssd状态(t+1)、ssd状态(t+2)和ssd状态(t+n))。136.例如,参考图10,机器学习模块219可以基于针对每个组件预测到的未来n个时间点中的不同时间点的故障概率(fp(t+1)、fp(t+2)和fp(t+n))形成矩阵,并且将形成的矩阵乘以每个组件的加权向量,以预测存储设备200在未来n个时间点中的不同时间点的故障概率(即,ssd状态:statust+1、statust+2和statust+n)。137.这里,每个组件的加权向量可以通过各种方法确定。在一些示例实施例中,可以将每个组件的过去故障率认为是每个组件的加权向量。然而,示例实施例不限于此。138.再次参考图4,主机设备100向存储设备200发送用于请求关于存储设备200的故障概率信息的命令(s200)。139.在一些示例实施例中,用于请求关于存储设备200的故障概率信息的命令可以包括获取日志页面(getlogpage)命令。140.例如,getlogpage命令的日志标识符可以是如图11所示的c0至ff中的任何一个(其中,c0至ff是16进制的(以“h”表示))。也就是说,当主机设备100将日志标识符指定为c0至ff之一并且将getlogpage命令发送到存储设备200时,主机设备100可以从存储设备200请求关于存储设备200的故障概率信息。141.参考图4,接收到getlogpage命令的存储设备200利用关于存储设备200的故障概率信息,来响应主机设备100(s300)。142.在一些示例实施例中,存储设备200的响应可以包括多个预测时间点的状态信息,如图12所示。143.具体地,参考图12,存储设备200可以利用在每个预测时间点的通过对存储设备200的故障概率进行评分获得的分数以及通过将存储设备200的故障概率表示为状态获得的状态信息(状态),来响应主机设备100。144.在一些示例实施例中,状态信息(状态)可以包括:需要立即测量的紧急状态、作为非紧急状态并且故障概率相对较低的低状态、作为非紧急状态并且故障概率高于低状态的中等状态、以及作为非紧急状态并且故障概率高于中等状态且低于紧急状态的高状态。然而,示例实施例不限于此,并且可以根据需要以各种不同的方式分类和表示状态信息。145.在一些其他示例实施例中,除了上面讨论的getlogpage命令之外,主机设备100请求关于存储设备200的故障概率信息的命令还可以包括管理命令集(admincommandset)的命令,诸如,nvme标准中包括的获取特征(getfeature)命令。146.在这种情况下,当主机设备100通过getfeature命令请求存储设备200的特定特征id的数据时,存储设备200可以以特征标识符(fid)定义故障概率信息,并且基于特定特征id向主机设备100提供故障概率信息。147.此外,在一些其他示例实施例中,主机设备100请求关于存储设备200的故障概率信息的命令可以包括nvme标准中包括的安全发送(securitysend)命令。148.在这种情况下,当主机设备100通过securitysend命令从存储设备200请求故障概率信息时,存储设备200利用安全协议加密故障概率信息,并且可以基于安全接收(securityreceive)命令向主机设备100提供故障概率信息。149.参考图4,主机设备100基于从存储设备200接收的故障概率信息来确定存储设备200的raid(独立磁盘冗余阵列)重建定时(s400)。150.例如,当存储设备200在近期的未来时间点的故障概率对应于紧急状态时,主机设备100可以立即执行存储设备200的raid重建。当存储设备200在近期的未来时间点的故障概率对应于低状态时,主机设备100可以在充分执行与存储设备200的i/o操作之后,在稍后的时间执行raid重建。151.以这样的方式,预测的关于存储设备的故障概率信息被提供给主机设备,主机设备可以在存储设备实际发生故障之前提前采取必要的措施。因此,可以提高存储器系统的可靠性。152.以下,将参考图13描述根据一些其他示例实施例的存储器系统的操作。153.图13是用于解释根据一些其他示例实施例的存储器系统的操作的图。在下文中,将不提供对上述示例实施例的重复解释,并且将仅解释差异。154.参考图13,在该示例实施例中,除了利用关于存储设备200的故障概率信息之外,存储设备200还可以利用存储设备200中包括的每个组件的故障概率信息,来响应主机设备100。155.具体地,参考图13,存储设备200可以利用在每个预测时间点(即,t+1、t+2、…t+n)的表示存储设备200(即,ssd)的故障概率的状态信息(状态)和表示存储设备200中包括的每个组件(即,组件1和组件2等)的故障概率的状态信息(状态),来响应主机设备100。156.此时,尽管状态信息(状态)可以使用与上述示例实施例相同的分类方法,但示例实施例不限于此。157.在本示例实施例的情况下,由于主机设备100可以接收作为整体的存储设备200的故障概率信息以及存储设备200中的每个组件的故障概率信息,因此可以更精确地管理存储设备200。然而,本公开的实施例不限于此,在其他实施例中,主机设备100可以接收存储设备200中的每个组件的故障概率信息,并且基于接收的每个组件的故障概率信息来确定关于存储设备200的故障概率信息,即,主机设备100可以执行参考图10描述的方法。158.图14是示出应用了根据一些示例实施例的存储设备的数据中心的图。159.参考图14,数据中心3000是收集各种类型的数据并提供服务的设施,可以称为数据存储中心。数据中心3000可以是用于提供搜索引擎和数据库操作的系统,并且可以是由诸如银行和政府机构的企业使用的计算系统。数据中心3000可以包括应用服务器3100至3100n和存储服务器3200至3200m。可以不同地选择应用服务器3100至3100n的数量和存储服务器3200至3200m的数量,并且应用服务器3100至3100n的数量和存储服务器3200至3200m的数量可以彼此不同。160.应用服务器3100或存储服务器3200可以包括处理器3110和3210以及存储器3120和3220中的至少一个。以存储服务器3200为例,处理器3210可以控制存储服务器3200的整体操作,访问存储器3220,并执行加载到存储器3220中的命令和/或数据。存储器3220可以是双数据速率同步dram(ddrsdram)、高带宽存储器(hbm)、混合存储器立方体(hmc)、双列直插式存储器模块(dimm)、optanedimm或非易失性dimm(nvmdimm)。根据示例实施例,可以不同地选择存储服务器3200中包括的处理器3210的数量和存储器3220的数量。161.在示例实施例中,处理器3210和存储器3220可以构成处理器-存储器对。在示例实施例中,处理器3210的数量和存储器3220的数量可以彼此不同。处理器3210可以包括单核处理器或多核处理器。存储服务器3200的上述说明可以类似地应用于应用服务器3100。根据示例实施例,应用服务器3100可以不包括存储设备3150。存储服务器3200可以包括至少一个或更多个存储设备3250。可以依据示例实施例不同地选择存储服务器3200中包括的存储设备3250的数量。162.应用服务器3100至3100n和存储服务器3200至3200m可以通过网络3300彼此通信。网络3300可以使用光纤信道(fc)、以太网等实现。此时,fc是用于相对高速的数据传输的介质,并且提供高性能/高可用性的光交换机可以被使用。依据网络3300的访问方式,存储服务器3200至3200m可以设置为文件存储、块存储或对象存储。163.在示例实施例中,网络3300可以是仅存储的网络,诸如,存储区域网络(san)。例如,san可以是使用fc网络并根据fc协议(fcp)实现的fc-san。在另一个示例中,san可以是使用tcp/ip网络并且根据tcp/ip上的scsi(scsiovertcp/ip)或互联网scsi(iscsi)协议实现的ip-san。在另一示例实施例中,网络1300可以是诸如tcp/ip网络的通用网络。例如,可以根据诸如以太网上的fc(fcoe)、网络附接存储(nas)和fabrics上的nvme(nvme-of)的协议来实现网络1300。164.在下文中,将主要描述应用服务器3100和存储服务器3200。应用服务器3100的描述也可以应用于其他应用服务器3100n,并且存储服务器3200的描述也可以应用于其他存储服务器3200m。165.应用服务器3100可以通过网络3300将用户或客户端请求存储的数据存储在存储服务器3200至3200m之一中。此外,应用服务器3100可以通过网络3300从存储服务器3200至3200m之一获得用户或客户端请求读取的数据。例如,应用服务器3100可以由网页服务器或数据库管理系统(dbms)实现。166.应用服务器3100可以经由网络3300访问另一应用服务器3100n中包括的存储器3120n或存储设备3150n,或可以通过网络3300访问存储服务器3200至3200m中包括的存储器3220至3220m或存储设备3250至3250m。结果,应用服务器3100可以对存储在应用服务器3100至3100n和/或存储服务器3200至3200m中的数据执行各种操作。例如,应用服务器3100可以执行用于在应用服务器3100至3100n和/或存储服务器3200至3200m之间移动或复制数据的命令。此时,数据可以经由存储服务器3200至3200m的存储器3220至3220m从存储服务器3200至3200m的存储设备3250至3250m移动到应用服务器3100至3100n的存储器3120至3120n,或者可以或直接地从存储服务器3200至3200m的存储设备3250至3250m移动到应用服务器3100至3100n的存储器3120至3120n。通过网络3300移动的数据可以是为了安全和隐私而加密的数据。167.以存储服务器3200为例,接口3254可以提供处理器3210与控制器3251之间的物理连接,以及nic3240与控制器3251之间的物理连接。例如,接口3254可以通过直接附加存储(das)方式实现,在das方式中存储设备3250直接与专用电缆连接。例如,接口3254可以通过诸如以下各种接口方式实现:高级技术附件(ata)、串行ata(sata)、外部sata(e-sata)、小型计算机系统接口(scsi)、串行连接的scsi(sas)、外围组件互连(pci)、快速pci(pcie)、快速nvm(nvme)、ieee1394、通用串行总线(usb)、安全数字(sd)卡、多媒体卡(mmc)、嵌入式多媒体卡(emmc)、通用闪存(ufs)、嵌入式通用闪存(eufs)和紧凑型闪存(cf)卡接口。168.存储服务器3200还可以包括交换机3230和nic3240。交换机3230可以根据处理器3210的控制选择性地连接处理器3210和存储设备3250,或者选择性地连接nic3240和存储设备3250。169.在示例实施例中,nic3240可以包括网络接口卡、网络适配器等。nic3240可以通过有线接口、无线接口(即,蓝牙接口)、光学接口等连接到网络3300。nic3240可以包括内部存储器、dsp、主机总线接口等,并且可以通过主机总线接口连接到处理器3210和/或交换机3230等。主机总线接口也可以实现为上述接口3254的示例之一。在示例实施例中,nic3240还可以与处理器3210、交换机3230和存储设备3250中的至少一个集成。170.在存储服务器3200至3200m或应用服务器3100至3100n中,处理器将命令发送到存储设备3150至3150n和3250至3250m或存储器3120至3120n和3220至3220m,以编程或读取数据。此时,数据可以是通过ecc引擎纠错的数据。数据是经过数据总线反转(dbi)或数据屏蔽(dm)处理的数据,并且可以包括crc信息。数据可以是为安全和隐私而加密的数据。171.存储设备3150至3150m和3250至3250m可以根据从处理器接收的读取命令,向nand闪存器件3252至3252m发送控制信号和命令/地址信号。结果,当从nand闪存器件3252至3252m读取数据时,读取使能(re)信号被输入为数据输出控制信号,并且可以用于将数据输出到dq总线。数据选通(dqs)可以使用re信号来生成。依据写入使能(we)信号的上升沿或下降沿,命令和地址信号可以被锁存到页面缓冲器。172.控制器3251通常可以控制存储设备3250的操作。在示例实施例中,控制器3251可以包括静态随机存取存储器(sram)。控制器3251可以根据写入命令将数据写入nand闪存器件3252中,或者可以根据读取命令从nand闪存器件3252读取数据。例如,可以从存储服务器3200中的处理器3210、其他存储服务器3200m中的处理器3210m或应用服务器3100和3100n中的处理器3110和3110n提供写入命令和/或读取命令。dram3253可以临时存储(缓冲)要写入nand闪存器件3252的数据或从nand闪存器件3252读取的数据。此外,dram3253可以存储元数据。这里,元数据是由控制器3251生成的用于管理用户数据或nand闪存器件3252的数据。存储设备3250可以包括用于安全或隐私的安全元件(se)。173.在一些示例实施例中,存储设备3150和3250可以执行上述操作。即,存储设备3150和3250收集存储设备3150和3250中包括的每个组件的日志数据,并且可以基于收集的日志数据预测每个组件的故障概率。174.由存储设备3150和3250中的每一者收集的日志数据可以被存储在存储设备3150和3250中的每一者内,并且日志数据可以被存储在通过网络3300连接的单个专用存储设备中。175.根据示例实施例,控制器、接口、模块、管理器、引擎、控制逻辑、监视器、处理器、交换机或由图1至图3、图6和图14中所示的块表示的其他元件中的至少一者可以实现为执行上述各个功能的各种数量的硬件、软件和/或固件结构。例如,控制器、接口、模块、管理器、引擎、控制逻辑、监视器、处理器、交换机或其他元件中的至少一者可以使用直接电路结构(诸如存储器、处理器、逻辑电路、查找表等),其可以通过一个或更多个微处理器或其他控制装置的控制来执行相应功能。此外,控制器、接口、模块、管理器、引擎、控制逻辑、监视器、处理器、交换机或其他元件中的至少一者可以通过模块、程序或代码的一部分来具体实现,其包含用于执行特定逻辑功能的一个或更多个可执行指令,并且由一个或更多个微处理器或其他控制设备执行。此外,控制器、接口、模块、管理器、引擎、控制逻辑、监视器、处理器、交换机或其他元件中的至少一者还可以包括执行相应功能的处理器(诸如中央处理单元(cpu))、微处理器等,或由执行相应功能的处理器(诸如中央处理单元(cpu))、微处理器等来实现。控制器、接口、模块、管理器、引擎、控制逻辑、监视器、处理器、交换机或其他元件中的两者或更多者可以组合成一个单独的组件、元件、模块或单元,其执行控制器、接口、模块、管理器、引擎、控制逻辑、监视器、处理器、交换机或其他元件中的组合的两者或更多者的所有操作或功能。此外,控制器、接口、模块、管理器、引擎、控制逻辑、监视器、处理器、交换机或其他元件中的至少一者的至少部分功能可以由这些组件中的另一个执行。此外,尽管不必须在上述每个框图中示出总线,但是可以通过总线执行组件之间的通信。上述示例实施例的功能方面可以以在一个或更多个处理器上执行的算法来实现。此外,控制器、接口、模块、管理器、引擎、控制逻辑、监视器、处理器、交换机或由块或处理步骤表示的其他元件可以采用用于电子配置、信号处理和/或控制、数据处理等的任意数量的相关技术。176.虽然参考附图描述了示例实施例,但是对于本领域技术人员明显的是在不脱离本公开范围的情况下进行修改和变更。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1