CN115344450A - 工作负载配置文件数据及基于性能的存储器管理 - Google Patents
工作负载配置文件数据及基于性能的存储器管理 Download PDFInfo
- Publication number
- CN115344450A CN115344450A CN202210440130.1A CN202210440130A CN115344450A CN 115344450 A CN115344450 A CN 115344450A CN 202210440130 A CN202210440130 A CN 202210440130A CN 115344450 A CN115344450 A CN 115344450A
- Authority
- CN
- China
- Prior art keywords
- memory device
- profile data
- command
- data
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3037—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
-
- 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/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3058—Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3065—Monitoring arrangements determined by the means or processing involved in reporting the monitored data
- G06F11/3072—Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting
-
- 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/0604—Improving or facilitating administration, e.g. storage management
-
- 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/061—Improving I/O performance
-
- 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0632—Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
-
- 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
-
- 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]
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)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
Abstract
所公开的实施例涉及记录存储器装置的活动及基于所述活动而调整控制器的操作。在一个实施例中,方法包括通过存储器装置收集配置文件数据,所述配置文件数据与从主机装置发出到所述存储器装置的读取及写入命令及对应地址信息相关联;通过所述存储器装置将所述配置文件数据存储在由所述存储器装置管理的存储阵列的部分中;通过所述存储器装置接收基于所述配置文件数据生成的更新,所述更新调整所述存储器装置的配置设置;及通过所述存储器装置基于所述配置设置处理接收到的命令。
Description
技术领域
本文公开的至少一些实施例大体上涉及存储器装置,且更具体地但不限于,涉及基于所记录的事件数据的存储器装置操作的远程管理。
背景技术
存储器子系统可包含存储数据的一或多个存储器装置。存储器装置可为例如非易失性存储器装置及易失性存储器装置。一般来说,主机系统可使用存储器子系统将数据存储在存储器装置处并且从存储器装置检索数据。
发明内容
附图说明
实施例是借助于实例而非限制在附图的图中来说明的,在附图中相似参考指示类似元件。
图1是根据本公开的一些实施例的用于基于所监测活动而管理存储器装置的操作的系统的框图。
图2是根据本公开的一些实施例的示例性日志文件。
图3是根据本公开的一些实施例的由一组存储器装置记录的示例性数据点的图形。
图4是说明根据本公开的一些实施例的用于生成及维持存储器装置的配置文件的方法的流程图。
图5是说明根据本公开的一些实施例的用于管理存储器装置的配置文件的存储的方法的流程图。
图6是说明根据本公开的一些实施例的用于聚合存储器装置配置文件及更新存储器装置的操作参数的方法的流程图。
图7是说明根据本公开的一些实施例的用于更新存储器装置的操作参数的方法的流程图。
图8是说明根据本公开的一些实施例的存储器系统的框图。
图9是说明计算装置的框图,其展示在本公开的各种实施例中使用的客户端或服务器装置的实例。
具体实施方式
图1是根据本公开的一些实施例的用于基于所监测活动而管理存储器装置的操作的系统的框图。
在所说明的实施例中,系统(100)包含本地计算装置(102)、远程计算装置(120)及终端用户计算装置(128)。在所说明的实施例中,这些装置通过例如因特网或局域网等网络(118)通信。
在所说明的实施例中,本地计算装置(102)可包括个人计算机(例如,膝上型计算机或台式计算机)、移动计算装置(例如,移动电话、平板计算机等)、物联网(IoT)装置、安装在车辆内的计算装置,或通常需要非易失性存储的任何计算装置。本公开并不限制可实施本地计算装置(102)的描述的计算系统的类型。
如图所示,本地计算装置(102)包含主机处理器(106)及存储器装置(104)。主机处理器(106)可包括中央处理单元(CPU)、图形处理单元(GPU)、芯片上系统(SoC)、专用集成电路(ASIC)、现场可编程门阵列(FPGA),或用于基于存储于存储器装置(104)中的数据而执行计算的另一种类型的装置。主机处理器(106)可基于存储于存储器装置(104)中的程序及数据而执行任意计算及运算。由主机处理器(106)执行的特定类型的计算不是限制性的。
在所说明的实施例中,主机处理器(106)经由总线(130)以通信方式耦合到存储器装置(104)。在一个实施例中,总线(130)可包括外围组件交换(PCI)总线、PCI高速(PCIe)总线、非易失性存储器高速(NVMe)总线,或可以通信方式将存储装置(例如,存储器104)耦合到处理器(例如,主机处理器106)的大体任何类型的总线。
在所说明的实施例中,存储器装置(104)包括固态驱动器(SSD)。在另一实施例中,存储器装置(104)可包括非易失性存储器(NVM)。在一些实施例中,存储器装置(104)可包括NAND或NOR快闪存储器装置。在一些实施例中,存储器装置(104)可包括嵌入式多媒体卡(eMMC)存储器装置。一般来说,能够持久地存储数据的任何装置可用作存储器装置(104)。在替代实施例中,存储器装置(104)可包括易失性存储器装置,例如动态随机存取存储器(DRAM)或静态随机存取存储器(SRAM)装置。
存储器装置(104)包含用于存储例如程序及程序数据等数据的存储阵列(未说明)。在所说明的实施例中,存储阵列的部分用作配置文件存储装置(116)。如本文中所使用,配置文件是指与存储器装置相关联的所记录数据。配置文件可存储例如从主机处理器(106)接收到的命令、接收到命令时的时间戳及执行命令时的时间戳等数据。替代地或结合前述内容,配置文件可存储表示命令结果的数据,例如读取失败或写入失败的次数或由存储器装置(104)执行的内部操作的次数。替代地或结合前述内容,配置文件数据可记录存储器装置(104)的外在特性,例如存储器装置的裸片温度、外部环境温度、冲击或振动指示符等。在一些实施例中,在底层存储阵列的未使用部分中实施配置文件存储装置(116)。因此,在一些实施例中,可基于可用的磁盘空间而重新定位配置文件存储装置(116)。在一些实施例中,配置文件存储装置(116)在电力周期之间是持久性的。在其它实施例中,存储器装置(104)可在断电之前将配置文件传送到另一装置。替代地或结合前述内容,存储器装置(104)可周期性地传送配置文件,如将论述。
在所说明的实施例中,存储器装置(104)包含用于从主机处理器(106)接收命令的命令接口(112)。这些命令可包括读取命令、写入命令、擦除命令或类似命令以操纵由存储器装置(104)存储的数据。如图所示,命令接口(112)可实施于存储器装置(104)上的控制器或微处理器中,且可适当地存取存储阵列以操作存储器装置(104)。
在所说明的实施例中,存储器装置(104)进一步包含传感器(110)。在所说明的实施例中,传感器(110)可包括温度传感器、加速度计、陀螺仪、磁力计及测量关于存储器装置(104)的现实世界度量的任何其它类型的传感器。在一些实施例中,传感器(110)可在存储器装置(104)外部。在此实施例中,存储器装置(104)将通过总线(130)接收传感器数据。
存储器装置(104)包含以通信方式耦合到命令接口(112)及传感器(110)两者的监测器(114)。在所说明的实施例中,监测器(114)被动地拦截通过命令接口(112)发送的命令。另外,监测器(114)可从传感器(110)被动地或主动地接收传感器数据。
在一个实施例中,监测器(114)还接收发到命令接口(112)的命令。此类命令的实例是存取存储器装置(104)的存储阵列的读取命令及写入命令。在一个实施例中,监测器(114)给所有命令加时间戳,并且将命令写入到配置文件存储装置(116)中的命令日志。替代地或结合前述内容,监测器(114)可另外从命令接口(112)或从控制器(如图8中所描绘)接收通知或其它信号,所述通知或其它信号指示何时执行给定命令。在此实施例中,监测器(114)可利用执行时间给先前写入的命令加时间戳。在其它实施例中,监测器(114)可替代地利用执行时间戳更新单独的命令执行日志。在这两种情形下,监测器(114)可使每一命令与所接收的时间戳及执行时间戳相关联。
图2是根据本公开的一些实施例的示例性日志文件。在所说明的实施例中,每一条目包含时间戳,且描绘条目的两个区段(在时间0-12及100-107之间)。仅出于解释性目的而使用整数时间戳,且可使用其它格式(例如,UNIX时期)。在所说明的实施例中,利用单个日志文件,且因此使用“类型”字段来区分事件及命令。举例来说,“接收读取”是指从主机处理器接收读取命令,而“执行读取”是指执行读取命令的时间。在所说明的实施例中,“数据”字段用于提供特定于字段类型的信息。因此,对于读取及写入命令,存储器地址(例如,M1、M2等)存储在数据字段中。相反,当类型是温度(“TEMP”)时,数据字段存储以摄氏度为单位的温度。类似地,对于事件(“事件”),事件的类型(例如,“通电”)存储在数据字段中。最后,错误(“错误”)可提供关于错误(例如,“加载LBA-PBA”)的描述性或分类数据,表示在尝试从非易失性存储装置读取LBA-PBA表时发生错误。
返回到图1,替代地或结合前述内容,监测器(114)可记录由存储器装置(104)生成的任何错误、故障或其它异常数据。在这些实施例中,监测器(114)可将这些错误及类似数据写入到配置文件存储装置(116)的单独部分。在一些实施例中,如果错误或类似数据与先前写入的命令相关联,则监测器(114)可利用描述错误或其它故障类条件的数据更新所记录命令。
替代地或结合前述内容,监测器(114)可从传感器(110)检索数据。在一些实施例中,监测器(114)可根据预配置间隔从传感器(110)检索传感器测量值(例如,温度)。替代地或结合前述内容,监测器(114)可经配置以基于其它检测到的事件而调整传感器(110)的取样率。举例来说,在检测到对存储器装置(104)的读取或写入错误时,监测器(114)可提高例如温度数据的取样率,以提供错误与温度数据之间的相关性的更详细的细节。尽管温度用作实例,但相同或类似技术可应用于其它类型的传感器,例如陀螺仪及加速度计。
在一些实施例中,监测器(114)还可经配置以记录系统级事件。在这些实施例中,监测器(114)可接收(或监测)由存储器装置(104)的控制器生成的这些事件。举例来说,监测器(114)可接收指示存储器装置何时通电或何时将断电的事件。在一些实施例中,监测器(114)可在所述存储器装置通电或断电时自行合成这些事件。
在一些实施例中,监测器(114)可周期性地检查配置文件存储装置(116),并将配置文件存储装置(116)的数据传输到远程计算装置(120)。在一个实施例中,监测器(114)可经配置以将前述日志数据写入到存储器装置(104)的存储阵列的未使用部分。在一些实施例中,监测器(114)管理配置文件存储装置(116)的大小以确保不超过配置文件存储装置(116)的存储容量。举例来说,存储器装置(104)的控制器可分配存储阵列的固定部分(例如,128MB)以用于配置文件存储。控制器随后将通过管理其寻址方案并防止对配置文件存储装置(116)的物理地址的外部写入来防止对存储阵列的所述部分的写入。在一个实施例中,控制器或监测器(114)可监测配置文件存储装置(116)占据多少空间,且当容量接近全部利用率时,起始网络传送操作(如本文中所描述)。替代地或结合前述内容,控制器或监测器(114)可经配置以重新定位配置文件存储装置(116)或调整其大小。举例来说,在一些实施例中,监测器(114)可确定配置文件存储需要额外的容量且网络传送操作是不可能的(例如,由于缺乏可靠的网络连接)。在这种情形下,监测器(114)可请求控制器更新其地址表(例如,逻辑块地址表),以为配置文件存储装置(116)释放额外空间。在一些实施例中,这可能需要将现有数据移动到存储阵列的其它区域。
如上文所论述,监测器(114)可周期性地起始网络传送操作,其中配置文件存储装置(116)的内容被上传到远程计算装置(120)。在一些实施例中,存储器装置(104)使用主机处理器(106)及网络接口(108)作为中介发出网络请求。在其它实施例中,存储器装置(104)可包含用于通过网络直接通信的自身网络接口。在任一种情形下,存储器装置(104)通过网络(118)与远程计算装置(120)建立网络连接。在一个实施例中,网络(118)可包括例如因特网的公共网络或专用网络。在一些实施例中,对存储器装置(104)与远程计算装置(120)之间的所有连接进行加密(例如,经由传输层安全TLS)。
在一些实施例中,在建立连接(例如,传输控制协议TCP会话)之后,存储器装置(104)将配置文件存储装置(116)的内容上传到远程计算装置(120)。在一个实施例中,存储器装置(104)在通信中包含存储器装置(104)的唯一且秘密的标识符。以此方式,配置文件存储装置(116)中的数据可唯一地与存储器装置(104)相关联。在一些实施例中,远程计算装置(120)由存储器装置(104)的制造商操作。在这种情形下,仅制造商及存储器装置存储唯一标识符,且因此远程计算装置(120)可安全地假设所报告的配置文件存储装置(116)适当地与存储器装置(104)相关联。在其它实施例中,存储器装置(104)可用私钥对通信进行签名,且因此远程计算装置(120)可用对应的公钥验证通信。
在所说明的实施例中,传入的配置文件存储装置(116)数据由前端配置文件服务器(126)接收。配置文件服务器(126)可包括暴露可在网络(118)上调用的一或多个功能的轻型应用程序服务器。在所说明的实施例中,配置文件服务器(126)从存储器装置(104)接收配置文件数据。配置文件服务器(126)可验证如上文所述的存储器装置(104)的标识。在标识存储器装置(104)之后,配置文件服务器(126)可预处理配置文件数据。举例来说,配置文件服务器(126)可对配置文件数据进行去重、将配置文件数据标准化为预配置的模式、基于存储器装置(104)的标识而增加配置文件数据(即,将存储器装置104的唯一标识符添加到每一记录),及各种其它“清理”操作。
在预处理数据之后,配置文件服务器(126)将数据写入到数据库(122)。在一个实施例中,数据库(122)可包括任何市售的数据库。在一些实施例中,数据库(122)包括例如MySQL、Postgresql的关系型数据库或类似数据库。在其它实施例中,数据库(122)可包括面向文档的数据库(例如,MongoDB、CouchDB等)。在一些实施例中,数据库(122)可包括面向日志的存储数据结构。在一些实施例中,数据库(122)可包括数据库集群。在一些实施例中,此集群可包括单个类型的数据库,而在其它实施例中,集群可具有不同类型的数据库。
在所说明的实施例中,数据库(122)充当用于配置文件数据的中心存储库。在所说明的实施例中,前端服务器(124)以通信方式耦合到前端服务器(124)。在一个实施例中,前端服务器(124)响应于来自终端用户装置(例如,终端用户装置(128))的请求而存取存储于数据库(122)中的数据。在存取数据库(122)中的数据之后,前端服务器(124)封装数据且将响应返回到终端用户装置(128)。
在所说明的实施例中,前端服务器(124)经配置以提供用于存储器装置的所有者的仪表板或门户。举例来说,终端用户装置(128)可包括由客户雇员操作的膝上型计算机、台式计算机或移动装置。客户可能已经购买并部署各种存储器装置(包含存储器装置104),并且另外还具有与存储器装置相关联的远程计算装置(120)的账户。因此,终端用户装置(128)可通过网站或移动应用程序登录到前端服务器(124)并加载显示与终端用户相关联的所有存储器装置的细节的仪表板。举例来说,前端服务器(124)可检索和与终端用户相关联的一组存储器装置相关的所有数据,并显示描绘随时间报告的温度的图形。前端服务器(124)还可用读取失败的指示符来扩充图形,从而以图形方式将温度与读取/写入失败相关联。对前端服务器(124)使用数据库(122)中的数据生成的可视化类型没有限制。
在一个实施例中,前端服务器(124)还可支持从终端用户装置(128)接收用户输入且基于此输入调整存储器装置(104)的设置。如图所示,在一些实施例中,在前端服务器(124)与配置文件服务器(126)之间提供任选的反馈环路。在此实施例中,前端服务器(124)可将影响存储器装置(104)的处理的指令中继到配置文件服务器。配置文件服务器(126)接着可解析命令并将所述命令传输到存储器装置(104)以调整存储器装置(104)的内部操作。如所论述,可使用密码密钥对每一传输进行签名以确保系统的完整性。以下实例进一步描述了这一反馈。
例如,终端用户装置(128)可存取由前端服务器(124)提供的仪表板,且加载说明存储器装置的平均温度及启动之后的读取/写入错误的图形。图3提供此图形的实例。在图3的所说明图形中,存储器装置可安装在汽车中,且因此常在较低的温度下启动。在所说明的实施例中,所述图形说明一系列存储器装置在启动(t=0)到启动125秒(t=125)时的平均温度。如图所示,存储器装置的温度通常为约-30℃且在125秒升高到约30℃。另外,如图所示,在启动(t=0)时,存储器装置大约对60个读取/写入错误进行平均。错误数量逐渐减小,直到t=100,其中错误数量接近零或等于零。在一些实施例中,所述图形可针对单个装置,或如所论述,可在一系列装置(所述装置本身可由终端用户装置128选择)中对数据进行平均。
在所说明的实施例中,终端用户装置(128)的操作员可确定应该尽可能地减少读取/写入错误。给定平均数据,当错误率处于可接受的水平时,操作员可确定存储器装置应阻止读取/写入操作75秒。因此,终端用户装置(128)可将此请求发到前端服务器(124)。前端服务器(124)又可将请求转发到配置文件服务器(126)。配置文件服务器(126)可标识所有受影响的存储器装置(例如,基于存储器装置的用于生成图形的标识符),并向每一存储器装置(例如,104)发出请求以更新存储器装置的固件,以便在启动之后缓冲命令75秒。如上文所论述,且在另外的附图中,存储器装置(104)可包含用于处理特定事件及命令的固件。配置文件服务器(126)可传输使得存储器装置(104)更改其内部操作的经更新固件或标志。
尽管前述实例使用用户手动地调整存储器装置的设置的实例,但在其它实施例中,可自动地或乐观地执行调整。在一些实施例中,可设置目标,且远程计算装置(120)可基于这些目标而自动地调整存储器装置(104)的操作。举例来说,先前实例可表示低于25的目标错误率。远程计算装置(120)可持续地监测图3中描绘的数据并基于目标自动地将命令发出到缓冲器操作。在其它实施例中,远程计算装置(120)可训练机器学习模型以预测未来目标。举例来说,随着存储器装置老化,其通常会对温度变化更敏感。远程计算装置(120)可使用存储器装置的使用年限、温度数据及错误率来构建模型,以确定冷或热温度下的错误数量在什么使用年限开始影响性能。远程计算装置(120)随后可周期性地运行这些模型,以确定是否主动地调整存储器装置的特性。
在上述实施例中,存储器装置可向中心服务器自我报告度量。中心服务器可使数据对于相同存储器装置的客户可视化,且客户可远程地调整存储器装置的内部操作而无需手动地维护或更新每一装置,从而允许适当地对存储器装置的操作进行微调。以下附图提供系统的操作的进一步细节。
图4是说明根据本公开的一些实施例的用于生成及维持存储器装置的配置文件的方法的流程图。在所说明的实施例中,方法可由存储器装置,并且在一些实施例中,由存储器装置的控制器在本地执行。
在框402中,所述方法初始化配置文件存储位置。在一个实施例中,初始化配置文件存储位置包括标识可用于写入的存储器阵列的区段。在一些实施例中,标识可用于写入的存储器阵列的区段包括标识存储器阵列的预配置地址空间。在其它实施例中,标识可用于写入的存储器阵列的区段包括标识满足预设大小要求的存储器阵列的地址空间。在一个实施例中,存储器阵列的区段包括存储器阵列的连续区段。在另一实施例中,存储器阵列的区段包括存储器阵列的不连续区段。在一个实施例中,如果利用不连续区段,则所述方法可进一步包括存储对应于配置文件存储位置的地址位置的映射表。
在框402之后,方法可并行地(例如,以中断驱动的方式)执行框404、414及418(及它们的后续框)。一般来说,框404、406、408、410及412包括命令记录子例程;框414及416包括错误记录子例程,并且框418及420包括传感器记录子例程。本文中对每一个进行更详细的描述。
在框404中,所述方法接收命令。在一个实施例中,命令可包括用于操纵存储于存储器阵列中的数据的读取、写入、擦除或类似命令。在一个实施例中,方法通过例如PCIe、NVMe接口、串行外围接口(SPI)或另一种类型的接口的接口接收命令。在所说明的实施例中,命令可包含标识符(例如,操作码)、配置标志及数据。在一些实施例中,命令可仅包含操作码,而其它权利要求书可包含各种配置标志或数据。在所说明的实施例中,能够发出到存储器装置的任何命令都处于框404的范围内。
在框406中,方法记录接收时间。在一个实施例中,所述方法检索当前时间。在一些实施例中,此时间可包括可由所述方法及其它计算装置存取的系统时间。在其它实施例中,其可包括由存储器装置生成的本地记录时间。在一些实施例中,存储器装置可接收初始时间且使其自身时间与存储器装置外部的时钟源同步。在一个实施例中,在接收到命令之后立即记录接收时间。举例来说,所述方法可使用存储器装置的控制器记录接收时间。在一个实施例中,所述方法随后将数据写入到存储器阵列,所述数据包含命令的接收时间及详细信息。在一个实施例中,命令的细节可包含命令的标识符(例如,操作码)、任何配置数据,及命令中的任何数据。在一个实施例中,所述方法可不写入数据,但是可写入汇总数据。举例来说,所述方法可计算数据的校验和或可计算数据的长度。在一些实施例中,所述方法可写入受命令影响的存储器地址。图2中提供记录接收时间的实例,特别是在时间1、2、3、8、9、10及104处的条目。
在框408处,所述方法执行接收到的命令。如图所示,在一些实施例中,框408可为任选的或可由现有控制器逻辑执行。简单来说,控制器可存取实施与接收到的命令相关联的逻辑的微码、固件或其它指令。所述方法可接着执行所述微码以存取存储器阵列且处理接收到的命令。如将更详细地论述,在一些实施例中,此微码可包含影响微码的操作的参数。举例来说,可调整时钟速率以用于执行微码。如结合图7更详细地论述,这些参数可由存储器装置响应于来自远程计算装置的命令而调整。
在框410中,方法确定是否已发生错误。在一个实施例中,微码可在执行与命令相关联的程序代码期间生成错误。举例来说,如果微码无法验证与数据相关联的错误校正码,则可传回错误。作为另一实例,如果与命令相关联的地址不存在于存储器装置的地址空间中,则可传回错误。作为又一实例,如果命令尝试存取保留地址(例如,配置文件存储地址空间),则微码可传回错误。在所说明的实施例中,所述方法接收这些错误的通知,或可替代地监测错误总线,以确定何时已发生错误。在一个实施例中,控制器使错误与命令相关联。在一些实施例中,所述方法维护在框404中接收到的待决命令的队列,并且可将错误与存储在队列中的命令相关联。
如果已发生错误,则所述方法从框416开始执行错误记录子程序,这在本文中进一步描述且此处不再重复。简而言之,所述方法将记录错误并将错误与排队的待决命令相关联。
如果不发生错误,则方法在框412中记录命令的执行时间。在所说明的实施例中,一旦微代码完成执行给定命令,控制器就可生成完成信号。可在控制器将结果传回发出命令的装置之前发出此完成信号。在所说明的实施例中,所述方法对何时完成命令加时间戳,并且可使所述时间戳与排队的待决命令相关联。图2中提供记录接收时间的实例,特别是在时间6、7及11处的条目。
如图所示,所述方法可包含错误记录子例程。此例程在框414处开始,在所述框中所述例程检测错误。在一些实施例中,响应于命令而在执行微码期间生成错误。此入口点结合框410进行论述并且本文中不再重复。替代地,可独立于外部命令而生成一些错误。举例来说,可在启动期间生成快闪转换表(即,LBA-PBA表)的读取期间的错误。作为另一实例,可在框414中生成及检测在垃圾收集操作或其它管理操作期间发生的错误。一般来说,错误可包含关于由控件用于记录或恢复目的的错误的各种细节。
在框416中,所述方法记录错误。在一个实施例中,如果在框410中检测到错误,则所述方法可使所述错误与命令相关联。否则,所述方法可在不参考命令的情况下记录错误。图2中提供记录错误的实例,特别是在时间4、102、105及106处的条目。如图所示,在图2的时间2处的错误描绘在读取操作期间的错误。因此,在框410处的检测期间可能已经接收到在时间2及105处的错误。在所说明的实施例中,所述方法标识对应命令(“读取M1”)并记录错误发生。在一个实施例中,在时间2及105处的条目可包含关于错误的进一步细节(未说明)。类似地,在时间102及106处发生的错误包括在读取快闪转换层期间的错误,因此不与命令相关联。
如图所示,所述方法可包含传感器记录子例程。此例程在框418处开始,在所述框中所述例程接收传感器数据。接下来,在框420中所述方法记录传感器数据。在一个实施例中,如上文所描述,所述方法可周期性地轮询外部传感器以获取数据,并将数据记录到配置文件存储装置。在一个实施例中,所述外部传感器可包括温度传感器或其它传感器。在一些实施例中,这些请求是周期性的。替代地或结合前述内容,可由命令触发所述请求。替代地或结合前述内容,可由错误触发所述请求。在这些实施例中,所述方法可进一步包含响应于检测到命令或错误而向传感器发出对数据的请求。举例来说,当发生错误时,所述方法可立即从外部传感器请求温度。值得注意的是,在一些实施例中,传感器可在存储器装置的本地(例如,裸片上温度传感器),且因此可在不通过接口查询的情况下完成所述请求。
尽管未说明,但在一些实施例中,图4的方法可包含事件记录子例程。在此实施例中,所述方法记录由存储器装置的控制器报告的任意事件。如图2中所说明,在时间12及100处,此类事件的实例包含装置事件,例如通电及断电事件。事件的其它实例包含装置信息事件、管理操作、周期性容量测量及类似类型的信息事件。
在一些实施例中,图4(及其余附图)的方法可经配置以在存储器装置上自动地执行。在其它实施例中,可响应于用户激活所述方法而执行所述方法。举例来说,存储器装置可包含实现上文及本文中所描述的方法的配置选项。
图5是说明根据本公开的一些实施例的用于管理存储器装置的配置文件的存储的方法的流程图。在所说明的实施例中,方法可由存储器装置,并且在一些实施例中,由存储器装置的控制器在本地执行。
在框502中,所述方法监测配置文件存储位置。在一个实施例中,所述方法可周期性地检查配置文件存储位置的已使用容量。在一些实施例中,当使用图4的方法将数据记录到所述位置时,所述方法可对此进行监测。在另一实施例中,所述方法可独立于记录操作而周期性地分析配置文件存储位置。在这两种情形下,所述方法确定配置文件存储位置中的自由存储空间的量。
在框504中,所述方法确定配置文件存储位置中的空间是否可用。如果可用,则所述方法继续在框502中监测配置文件存储位置。在一个实施例中,所述方法确定计算出的自由存储空间是否大于零。如果大于零,则所述方法确定空间可用。替代地,所述方法可确定计算出的自由存储位置是否低于预配置阈值。如果是,则所述方法可主动地确定没有足够的空间,或将没有足够的空间可用。在一些实施例中,所述方法可进一步预测何时将充分利用存储空间。在这些实施例中,所述方法可确定提交配置文件存储位置的速率,并相应地调度所述方法的执行。在此实施例中,所述方法可替代地是中断驱动的,并且在框506处开始,所述中断对应于将填充配置文件存储位置的预测时间。
在框506中,一旦所述方法确定配置文件存储位置中没有足够的可用空间,所述方法就确定存储器装置上是否可用任何自由空间。在此框中,所述方法已确定所分配的配置文件存储位置达到或几乎达到容量。然后,所述方法确定存储器装置上是否可用任何自由空间。如本文中所使用,任何自由空间是指除了配置文件存储位置之外的自由存储位置。
如果在框506中存储器装置上可用任何自由空间,则所述方法进行到框508。替代地,如果所述方法在框506中确定不存在存储器装置上可用的自由空间,则所述方法进行到框510。在一些实施例中,所述方法还可在框506中确定配置文件存储装置是否已达到存储器装置中预设的最大容量。在这种情形下,如果达到预设最大容量,则所述方法立即进行到框510。
在框508中,所述方法基于可用自由空间而重新分配配置文件存储装置。在此框中,所述方法尝试为配置文件存储装置重新分配自由空间,以支持添加更多的日志数据。在一些实施例中,所述方法可设定最大配置文件存储装置大小,以防止配置文件存储装置使用存储器装置上的所有自由空间。在一些实施例中,所述方法将标识更大的连续地址空间,并起始将当前配置文件存储地址空间复制到新地址空间。在其它实施例中,所述方法可仅分配增量空间(所需的额外容量),并更新写入指针以写入到增量空间以用于未来数据。在此实施例中,配置文件存储装置可分段,并且所述方法必须维持分段列表,以实现配置文件存储装置的完整读取,如先前所论述。
在框510中,所述方法起始配置文件数据的远程传输。在所说明的实施例中,还可响应于检测到如中断信号512所说明的存储器装置即将断电而执行框510。如上文所论述,当存储器装置即将断电时,存储器装置可接收指示即将断电的信号。在所说明的实施例中,所述方法暂停断电以起始(或调度)远程传输。在所说明的实施例中,所述方法可直接从存储器装置起始远程传输。在这些实施例中,所述方法生成传输并且与外部或内部网络接口通信以与远程服务器通信。在其它实施例中,所述方法可生成传输并将所述传输转发到主机处理器以用于网络传输。
在一个实施例中,传输的内容包括配置文件存储位置中的数据。在一些实施例中,所述方法传输配置文件存储位置的所有内容。在其它实施例中,所述方法传输配置文件存储位置的内容的部分。在一些实施例中,所述方法可对内容进行分块并针对每一组块生成多个传输。
在其它实施例中,所述方法以原始格式传输配置文件存储位置的内容。在其它实施例中,所述方法可压缩或以其它方式减小用于传输的原始数据的大小。举例来说,所述方法可使用GZip压缩来减小文件大小。在一些实施例中,所述方法还可对原始数据执行预处理以减小原始数据的大小。举例来说,所述方法可执行分组或聚合操作以最小化数据大小。返回到图2,对位置M1的读取的接收执行3次,并且可将其分组为指示在时间1、10及104处执行相同操作的“接收读取M1:1、10、104”。
在一些实施例中,所述方法可包含与每次传输中的存储器装置相关联的唯一标识符。在这些实施例中,所述方法还可使用存储器装置的私钥以数字方式对传输进行签名。如将要论述,接收网络传输的端点可存储公钥与唯一标识符的映射,并且可使用这些公钥来验证传输。
在框514中,所述方法确定网络传输是否成功。在一些实施例中,所使用的网络协议可传回接收到数据的确认。在一些实施例中,所述方法使用例如传输控制协议(TCP)或类似协议等协议起始基于网络的传输。因此,在此框中,所述方法确认接收方接收到网络传输。
在框516中,如果网络传输不成功,则所述方法调整记录策略并标记用于重新传输的配置文件。取决于实施方案,所述方法可执行任一操作或两个操作。
在所说明的实施例中,响应于不成功而调整记录策略包括改变由存储器装置执行的记录量。在一个实施例中,所述方法可停止所有记录。在另一实施例中,所述方法可对记录的保真度进行下取样(例如,仅记录错误而不记录读取/写入操作)。在一些实施例中,所述方法可采用一种策略来平衡全面记录与减少的存储空间,同时所述方法等待成功传输。
在所说明的实施例中,标记用于重新传输的配置文件可包括锁定尝试传输的数据。在一个实施例中,所述方法可将传输数据重新写入到配置文件存储位置,从而在其位置移除原始数据。以此方式,如果所述方法压缩数据,则所述方法可回收多余的存储空间,同时仍维持经处理数据以供重新传输。在一些实施例中,所述方法可周期性地尝试重新传输,直到成功。在其它实施例中,所述方法可等待来自主机处理器或网络接口的指示网络可用的信号。
在框518中,如果网络传输成功,则所述方法擦除包含传输到远程计算装置的数据的配置文件存储位置。在一个实施例中,所述方法擦除配置文件存储位置中的对应于网络传输的原始数据。在其它实施例中,所述方法可先前已擦除原始数据且写入经压缩或以其它方式处理的数据。在这些实施例中,所述方法从配置文件存储位置擦除经处理数据。在任一种情况下,所述方法回收所上传数据先前占用的空间。
图6是说明根据本公开的一些实施例的用于聚合存储器装置配置文件及更新存储器装置的操作参数的方法的流程图。在所说明的实施例中,所述方法可由远程计算装置在本地执行。在所说明的实施例中,可由例如在图5的框510中起始的远程网络传输触发图6的所述方法。
在框602中,所述方法从存储器装置接收网络传输。如所论述,可在主机处理器辅助或不辅助的情况下从存储器装置接收这些网络传输。在一些实施例中,网络传输可包括TCP传输或更高级别的协议传输。
在框604中,所述方法验证并解析网络传输。在一个实施例中,所述网络传输包含数字签名及唯一标识符。在一个实施例中,所述方法提取唯一标识符并加载与所述唯一标识符相关联的公钥。在一个实施例中,所述方法维持将唯一标识符映射到公钥的数据库并从此数据库加载公钥。在其它实施例中,所述方法可从证书颁发机构(CA)或其它受信任方检索公钥。在一个实施例中,所述方法通过从网络传输中提取数字签名并使用公钥对所述数字签名进行解密来验证网络传输,所述解密产生传输散列(即,所传输数据的散列)。然后,所述方法对数据执行其自身的散列,并将结果与通过对数字签名进行解密生成的散列进行比较。如果散列匹配,则所述方法验证网络传输,并且可安全地使传输与唯一标识符(即,传输存储器装置)相关联。另外,在一些实施例中,所述方法可存储唯一标识符与组织的映射。因此,通过代理,所述方法可使网络传输与存储器装置及组织两者相关联。
除了验证传输之外,所述方法还可解析传输。在一些实施例中,解析传输可包含对数据进行解压缩。替代地或结合前述内容,解析可包含对数据进行解密。替代地或结合前述内容,解析可包含扩展数据。举例来说,可扩展在框510中论述的数据“接收读取M1:1、10、104”,以匹配图2中所描绘的原始数据。在一些实施例中,所述方法可利用例如标签、组织定义的数据及通常任何其它类型的静态或半静态数据等额外数据来扩充所述数据。在一些实施例中,此经扩充数据可包括位置数据。举例来说,存储器装置的操作员可记录用于包含存储器装置的计算装置的GPS数据。可独立于本文中所描述的记录操作而对此数据加时间戳。因此,所述方法可使用第二数据流,并组合第二数据流与日志数据以扩充记录数据。因此,可基于组织对存储器装置的使用而利用实时GPS数据扩充图2中的数据点。
在框606中,所述方法存储来自网络传输的数据。在一些实施例中,所述方法可将数据存储在关系型数据库集群或类似数据库中。替代地或结合前述内容,所述方法可将数据写入到数据湖、数据仓库或其它大的数据存储平台。
在所说明的实施例中,框602、604、606包括接收子例程。
在框608中,所述方法接收查询。在一个实施例中,所述方法经由应用程序接收查询。在一个实施例中,应用程序包括传输到客户端的网页。替代地或结合前述内容,所述应用程序可包括桌面应用程序。替代地或结合前述内容,所述应用程序可包括移动应用程序。在所有情形下,所述应用程序可认证用户或组织,并允许用户经由查询请求数据。在一个实施例中,查询可嵌入在网络请求中,因此可包括网络请求(例如,超文本传送协议(HTTP)请求)。在一个实施例中,查询包含由服务器用于定位从存储器装置接收到的数据的各种参数。举例来说,查询可包含时间范围、存储器装置唯一标识符的列表、待检索字段等。
在框610中,所述方法查询所存储的传输数据。在一个实施例中,传输数据存储在如先前所描述的数据库中。在所说明的实施例中,所述方法使用查询参数来为底层数据存储装置生成合适的查询,并将查询发到数据存储装置。作为响应,所述方法从数据存储装置接收数据。
在框612中,所述方法将响应于查询而传回的传输数据可视化。在此框中,所述方法解析传回的数据。在一个实施例中,所述方法基于查询而过滤数据。举例来说,传回的数据可包括全功能数据,包含不响应于查询的字段。所述方法可在进行可视化之前删除这些字段。另外,所述方法可基于可视化的约束对数据进行分组或聚合。接下来,所述方法生成数据的图形可视化。在一些实施例中,此可视化可包括图像或其它静态可视化。在其它实施例中,所述方法可传回用于生成可视化的数据,且客户端可使用客户端库(例如,D3.js或类似的库)生成可视化。
在框614中,所述方法以可视化作出响应。在所说明的实施例中,所述方法对包含查询的原始网络请求作出响应,从而完成响应于查询的可视化的传输。取决于应用程序,响应可包括编组(marshaled)响应(例如,Javascript对象表示法JSON响应)或网页(或这两者)。
在所说明的实施例中,框608、610、612及614包括可视化子例程。
在框616中,所述方法接收更新存储器装置的请求。在所说明的实施例中,应用程序可提供允许用户更新一或多个存储器装置的接口。举例来说,当显示可视化时,应用程序可提供按钮或其它用户接口(UI)元件,从而允许对可视化中描绘的存储器装置进行一键式改变。可以使用其它UI元件,例如滑块、文本/数字输入等。类似于前述传输,所述方法可接收参考一或多个存储器装置并包含要在存储器装置上执行的所需动作的网络请求。举例来说,所述动作可指示存储器装置的时钟速度应在通电后的一段时间内降低。由存储器装置执行的特定动作并不旨在进行限制。
在框618中,所述方法验证请求。在一个实施例中,所述方法确认所有存储器装置标识符与发出查询的用户的账户相关联。在一些实施例中,组织与一或多个用户相关联。因此,发出查询的用户可用于标识对应组织。接着,如所论述,所述方法可确认每一存储器装置标识符与所述组织相关联。因此,在框618中,所述方法确保用户无法更新任意存储器装置。另外,在一些实施例中,所述方法可利用基于角色的权限系统来确认用户具有执行所请求更新的权限。举例来说,用户可被分类为“仅查看”,因此无法对存储器装置执行更新。
在框620中,所述方法生成命令并将其传输到存储器装置。在一个实施例中,所述方法生成特定于装置的命令,并将这些命令传输到每一存储器装置。
在一个实施例中,为每一存储器装置分配用于接收数据的网络地址。在此实施例中,所述方法可将命令发到存储器装置。在其它实施例中,所述方法可生成命令并将所述命令传输到另一计算装置。此其它计算装置可负责管理存储器装置的网络地址,且可将命令转发到存储器装置。举例来说,管理自动驾驶车辆的服务器可接收命令,并基于其对车队的管理向每一自动驾驶车辆发出命令。在另一实施例中,为IoT装置提供基于云的IoT服务的组织可接收命令,并向所有连接的IoT装置发出命令(类似于“更新”)。
在一些实施例中,命令可呈待安装于存储器装置上的微码或固件更新的形式。因此,在一些实施例中,可使用任何现有固件/微码更新技术来安装对存储器装置的更新。
在所说明的实施例中,框616、618及620包括远程更新子例程。
图7是说明根据本公开的一些实施例的用于更新存储器装置的操作参数的方法的流程图。在所说明的实施例中,方法可由存储器装置,并且在一些实施例中,由存储器装置的控制器在本地执行。
在框702中,所述方法从远程计算装置接收更新,所述更新包含用于修改存储器装置控制器的操作的指令。在一个实施例中,所述更新包括供存储器装置执行以更新其设置的一系列命令。在另一实施例中,所述更新包括微码或固件更新。在一个实施例中,所述方法可经由网络接口直接从远程计算装置接收更新。在其它实施例中,所述方法可通过内部存储器总线从主机处理器接收更新。
在框704中,所述方法验证更新。在一个实施例中,所述更新可使用远程计算装置的私钥以数字方式进行签名。在一个实施例中,所述方法使用对应于私钥的预存储公钥来验证数字签名,类似于框604中所描述的过程。在一个实施例中,所述更新可进一步由主机处理器所使用的私钥签名,且存储器装置可执行使用所述私钥生成的数字签名的第二验证。
在框706中,所述方法确定存储器装置是否可自由地应用更新。在一个实施例中,所述方法在不服务命令时应用更新。在一个实施例中,所述方法可对要在垃圾收集周期或类似的维护间隔期间应用的更新进行计时。以此方式,可尽可能快速地应用更新。
在框708中,如果所述方法确定存储器装置无法应用命令,则其推迟命令的执行。接下来,所述方法继续确定存储器装置是否空闲(框710),并推迟所述命令(框708),直到存储器装置空闲(框710)。一旦存储器装置空闲,方法就进行到框712。
在框712中,所述方法基于接收到的更新而修改存储器装置的操作。如上文所论述,在一些实施例中,所述方法可基于更新来修补或替换控制器的微码或固件。在其它实施例中,所述方法可响应于所述更新而更新配置设置或多个此类设置。
图8是说明根据本公开的一些实施例的存储器系统的框图。
如图8中所说明,计算系统(800)包含经由总线(818)以通信方式耦合到存储器系统(804)的主机处理器(802)。存储器系统(804)包括控制器(806),其经由总线/接口(816)以通信方式耦合到形成存储器阵列的一或多个存储器存储体(808A-808N)。如图所示,控制器(806)包含本地高速缓存(808)、固件(810)及错误校正码(ECC)模块(812)。
在所说明的实施例中,主机处理器(802)可包括任何类型的计算机处理器,例如中央处理单元(CPU)、图形处理单元(GPU)或其它类型的通用或专用计算装置。主机处理器(802)包含允许在主机处理器(802)与存储器系统(804)之间传输地址、用户及控制数据的一或多个输出端口。在所说明的实施例中,通过总线(818)执行此通信。在一个实施例中,总线(818)包括输入/输出(I/O)总线或类似类型的总线。
存储器系统(804)负责管理一或多个存储器存储体(808A-808N)。在一个实施例中,存储体(808A-808N)包括NAND快闪裸片或非易失性存储器的其它配置。在一个实施例中,存储器存储体(808A-808N)包括存储器阵列。
存储体(808A-808N)由控制器(806)管理。在一些实施例中,控制器(806)包括经配置以调节进出存储体(808A-808N)的存取的计算装置。在一个实施例中,控制器(806)包括安装在容纳存储体(808A-808N)的印刷电路板上的ASIC或其它电路系统。在一些实施例中,控制器(806)可物理上与存储体(808A-808N)分离。控制器(806)通过接口(816)与存储体(808A-808N)通信。在一些实施例中,此接口(812)包括物理上有线(例如,跟踪)接口。在其它实施例中,接口(812)包括用于与存储体(808A-808N)通信的标准总线。
控制器(806)包括各种模块(808-812)。在一个实施例中,各种模块(808-812)包括各种物理上不同的模块或电路。在其它实施例中,模块(808-812)可完全(或部分)实施于软件或固件中。
如图所示,固件(810)包括控制器的核心且管理控制器(806)的所有操作。固件(810)可实施上文所描述的方法中的一些或全部。具体地说,固件(810)可实施图4到7中所描述的方法。
图9是说明计算装置的框图,其展示在本公开的各种实施例中使用的客户端或服务器装置的实例。
取决于装置(900)的部署或使用,计算装置(900)可包含比图9所示的组件更多或更少的组件。举例来说,安装在机架上的服务器等服务器计算装置可不包含音频接口(952)、显示器(954)、小键盘(956)、照明器(958)、触觉接口(962)、全球定位服务(GPS)接收器(964),或相机/传感器(966)。一些装置可包含未示出的额外组件,例如图形处理单元(GPU)装置、密码协同处理器、人工智能(AI)加速器或其它外围装置。
如图所示,装置(900)包含经由总线(924)与大容量存储器(930)通信的中央处理单元(CPU)(922)。计算装置(900)还包含一或多个网络接口(950)、音频接口(952)、显示器(954)、小键盘(956)、照明器(958)、输入/输出接口(960)、触觉接口(962)、任选的全球定位系统(GPS)接收器(964)及相机或其它光学、热或电磁传感器(966)。装置(900)可包含一个相机/传感器(966)或多个相机/传感器(966)。相机/传感器(966)在装置(900)上的定位可根据装置(900)模型、根据装置(900)功能等或其某一组合而改变。
在一些实施例中,CPU(922)可包括通用CPU。CPU(922)可包括单核或多核CPU。CPU(922)可包括芯片上系统(SoC)或类似的嵌入式系统。在一些实施例中,GPU可代替CPU(922)使用或与CPU组合使用。大容量存储器(930)可包括动态随机存取存储器(DRAM)装置、静态随机存取存储器装置(SRAM)或快闪(例如,NAND快闪)存储器装置。在一些实施例中,大容量存储器(930)可包括此类存储器类型的组合。在一个实施例中,总线(924)可包括外围组件互连高速(PCIe)总线。在一些实施例中,总线(924)可包括多个总线而不是单个总线。
大容量存储器(930)说明用于存储例如计算机可读指令、数据结构、程序模块或其它数据的信息的计算机存储媒体的另一实例。大容量存储器(930)存储用于控制计算装置(900)的低水平操作的基本输入/输出系统(“BIOS”)(940)。在所说明的实施例中,BIOS(940)可存储于例如ROM(934)的只读存储器(ROM)中。大容量存储器还存储用于控制计算装置(900)的操作的操作系统(941)。
应用程序(942)可包含计算机可执行指令,所述计算机可执行指令在由计算装置(900)执行时执行先前在先前附图的描述中所描述的方法(或方法的部分)中的任一者。在一些实施例中,实施方法实施例的软件或程序可从硬盘驱动器(未说明)读取且由CPU(922)临时存储在RAM(932)中。CPU(922)可接着从RAM(932)读取软件或数据,处理所述软件或数据,且再次将其存储在RAM(932)中。
计算装置(900)可任选地与基站(未展示)或直接与另一计算装置通信。网络接口(950)有时被称为收发器、收发装置或网络接口卡(NIC)。
音频接口(952)产生且接收音频信号,例如人类语音的声音。举例来说,音频接口(952)可耦合到扬声器及麦克风(未展示)以实现与其他人的通信或生成对某一动作的音频确认。显示器(954)可为液晶显示器(LCD)、气体等离子体、发光二极管(LED)或与计算装置一起使用的任何其它类型的显示器。显示器(954)还可包含触敏屏幕,其布置成从例如触控笔或来自人手的手指的对象接收输入。
小键盘(956)可包括布置成从用户接收输入的任何输入装置。照明器(958)可提供状态指示或提供光。
任选的GPS收发器(964)可确定计算装置(900))在地球表面上的物理坐标,其通常将位置输出为经纬度值。GPS接收器(964)还可采用其它地理定位机构,包含但不限于三角测量、辅助GPS(AGPS)、E-OTD、CI、SAI、ETA、BSS等,以进一步确定计算装置(900)在地球表面上的物理位置。然而,在一个实施例中,计算装置(900)可通过其它组件提供其它信息,所述信息可用于确定装置的物理位置,包含例如MAC地址、IP地址等。
已在针对计算机存储器内的数据位的操作的算法及符号表示方面呈现了先前详细描述的一些部分。这些算法描述及表示是数据处理领域的技术人员用于将其工作的主旨最有效地传达给本领域其它技术人员的方式。在本文中且一般将算法构想为产生所需结果的操作的自恰序列。操作是要求对物理量进行物理操纵的操作。通常(但未必),这些量采用能够存储、组合、比较及以其它方式操纵的电或磁信号的形式。已经证实,主要出于常用的原因,将这些信号称为位、值、元素、符号、字符、项、编号等等有时是便利的。
然而,应牢记,所有这些及类似术语将与适当物理量相关联,且仅仅为应用于这些量的便利标记。本公开可以指操控及变换计算机系统的寄存器及存储器内的表示为物理(电子)数量的数据为计算机系统存储器或寄存器或其它这类信息存储系统内的类似地表示为物理量的其它数据的计算机系统或类似电子计算装置的动作及过程。
本公开还涉及用于执行本文中的操作的设备。此设备可专门构造用于预期目的,或其可包含通过存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此计算机程序可存储在计算机可读存储媒体中,例如但不限于任何类型的盘,包含软盘、光盘、CD-ROM及磁光盘、只读存储器(“ROM”)、随机存取存储器(“RAM”)、EPROM、EEPROM、磁卡或光卡或适合于存储电子指令并且各自耦合到计算机系统总线的任何类型的媒体。
本文中呈现的算法及显示器在本质上并不与任何特定计算机或其它设备相关。各种通用系统可根据本文中的教示与程序一起使用,或其可证明为便于构造更专用设备以执行所述方法。将如下文描述中所阐述的那样来呈现各种这些系统的结构。另外,未参考任何特定编程语言来描述本公开。应了解,可使用各种编程语言来实施如本文中所描述的本公开的教示内容。
本公开可以提供为计算机程序产品或软件,其可包含在其上存储有可用于对计算机系统(或其它电子装置)进行编程以执行根据本公开的过程的指令的机器可读媒体。机器可读媒体包含用于存储呈机器(例如,计算机)可读形式的信息的任何机构。在一些实施例中,机器可读(例如,计算机可读)媒体包含机器(例如,计算机)可读存储媒体,例如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储媒体、光学存储媒体、快闪存储器组件等。
在本说明书中,各种功能及操作被描述为由计算机指令执行或由其引起以简化描述。然而,所属领域的技术人员将认识到,此类表达的意图是功能由一或多个控制器或处理器(例如,微处理器)执行计算机指令而产生。替代地或组合地,所述功能及操作可使用具有或不具有软件指令的专用电路系统实施,例如使用专用集成电路(ASIC)或现场可编程门阵列(FPGA)来实施。可使用没有软件指令的硬连线电路系统或与软件指令组合实施实施例。因此,技术不限于硬件电路系统及软件的任何特定组合,也不限于由数据处理系统执行的指令的任何特定来源。
在前述说明书中,本公开的实施例已经参照其特定实例实施例进行描述。将显而易见的是,可在不脱离如所附权利要求书中阐述的本公开的实施例的更广精神及范围的情况下对本公开进行各种修改。因此,应在说明性意义上而非限制性意义上看待说明书及图式。
Claims (20)
1.一种方法,其包括:
通过存储器装置收集配置文件数据,所述配置文件数据与从主机装置发出到所述存储器装置的读取及写入命令及对应地址信息相关联;
通过所述存储器装置将所述配置文件数据存储在由所述存储器装置管理的存储阵列的部分中;
通过所述存储器装置基于所述配置文件数据更新配置设置;及
通过所述存储器装置基于所述配置设置处理接收到的命令。
2.根据权利要求1所述的方法,其中更新所述配置设置包括通过所述存储器装置基于所述配置文件数据生成所述配置设置。
3.根据权利要求2所述的方法,其中收集所述配置文件数据包括当接收到所述命令时将时间戳添加到所述命令。
4.根据权利要求2所述的方法,其中收集所述配置文件数据包括在由所述存储器装置执行所述命令之后将时间戳添加到所述命令。
5.根据权利要求1所述的方法,其中收集所述配置文件数据进一步包含记录所述存储器装置的温度。
6.根据权利要求1所述的方法,其进一步包括通过标识所述存储阵列的未使用部分来标识所述存储阵列的所述部分。
7.根据权利要求1所述的方法,其进一步包括通过所述存储器装置将所述配置文件数据传输到远程计算装置,并且通过所述存储器装置从所述远程计算装置接收所述配置设置。
8.一种非暂时性计算机可读存储媒体,其用于有形地存储能够由存储器装置的计算机处理器执行的计算机程序指令,所述计算机程序指令限定以下步骤:
收集配置文件数据,所述配置文件数据与从主机装置发出到所述存储器装置的读取及写入命令及对应地址信息相关联;
将所述配置文件数据存储在由所述存储器装置管理的存储阵列的部分中;
基于所述配置文件数据更新配置设置;及
基于所述配置设置处理接收到的命令。
9.根据权利要求8所述的计算机可读存储媒体,其中更新所述配置设置包括基于所述配置文件数据生成所述配置设置。
10.根据权利要求9所述的计算机可读存储媒体,其中收集所述配置文件数据包括当接收到所述命令时将时间戳添加到所述命令。
11.根据权利要求9所述的计算机可读存储媒体,其中收集所述配置文件数据包括在由所述存储器装置执行所述命令之后将时间戳添加到所述命令。
12.根据权利要求8所述的计算机可读存储媒体,其中收集所述配置文件数据进一步包含记录所述存储器装置的温度。
13.根据权利要求8所述的计算机可读存储媒体,所述指令进一步限定以下步骤:通过标识所述存储阵列的未使用部分来标识所述存储阵列的所述部分。
14.根据权利要求8所述的计算机可读存储媒体,所述指令进一步限定以下步骤:将所述配置文件数据传输到远程计算装置及从所述远程计算装置接收所述配置设置。
15.一种存储器装置,其包括:
存储阵列;及
处理器,所述处理器经配置以:
收集配置文件数据,所述配置文件数据与从主机装置发出到所述存储器装置的读取及写入命令及对应地址信息相关联;
将所述配置文件数据存储在所述存储阵列的部分中;
基于所述配置文件数据更新配置设置;及
基于所述配置设置处理接收到的命令。
16.根据权利要求15所述的装置,其中更新所述配置设置包括基于所述配置文件数据生成所述配置设置。
17.根据权利要求16所述的装置,其中收集所述配置文件数据包括当接收到所述命令时将时间戳添加到所述命令。
18.根据权利要求16所述的装置,其中收集所述配置文件数据包括在由所述存储器装置执行所述命令之后将时间戳添加到所述命令。
19.根据权利要求15所述的装置,其中收集所述配置文件数据进一步包含记录所述存储器装置的温度。
20.根据权利要求15所述的装置,所述处理器进一步经配置以将所述配置文件数据传输到远程计算装置,并且从所述远程计算装置接收所述配置设置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/320,109 | 2021-05-13 | ||
US17/320,109 US20220365718A1 (en) | 2021-05-13 | 2021-05-13 | Workload profile data and performance-based memory management |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115344450A true CN115344450A (zh) | 2022-11-15 |
Family
ID=83806338
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210440130.1A Pending CN115344450A (zh) | 2021-05-13 | 2022-04-25 | 工作负载配置文件数据及基于性能的存储器管理 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20220365718A1 (zh) |
CN (1) | CN115344450A (zh) |
DE (1) | DE102022111132A1 (zh) |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8140746B2 (en) * | 2007-12-14 | 2012-03-20 | Spansion Llc | Intelligent memory data management |
US10216420B1 (en) * | 2016-07-24 | 2019-02-26 | Pure Storage, Inc. | Calibration of flash channels in SSD |
US10057761B1 (en) * | 2017-05-31 | 2018-08-21 | T-Mobile Usa, Inc. | Capability- and user-based profile downloads for networked devices |
US10997516B2 (en) * | 2017-12-15 | 2021-05-04 | Dell Products L.P. | Systems and methods for predicting persistent memory device degradation based on operational parameters |
US10732690B2 (en) * | 2018-05-17 | 2020-08-04 | Arm Ip Limited | Systems and methods for monitoring state transitions |
WO2020026036A1 (en) * | 2018-07-31 | 2020-02-06 | Marvell World Trade Ltd. | Metadata generation at the storage edge |
US11487548B2 (en) * | 2019-11-26 | 2022-11-01 | Sandisk Technologies Llc | Dynamic re-evaluation of parameters for non-volatile memory using microcontroller |
US11768611B2 (en) * | 2020-04-02 | 2023-09-26 | Axiado Corporation | Secure boot of a processing chip |
-
2021
- 2021-05-13 US US17/320,109 patent/US20220365718A1/en active Pending
-
2022
- 2022-04-25 CN CN202210440130.1A patent/CN115344450A/zh active Pending
- 2022-05-05 DE DE102022111132.6A patent/DE102022111132A1/de active Pending
Also Published As
Publication number | Publication date |
---|---|
DE102022111132A1 (de) | 2022-11-17 |
US20220365718A1 (en) | 2022-11-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220019423A1 (en) | Over-The-Air (OTA) Update for Firmware of a Vehicle Component | |
US9582513B2 (en) | Accessing data in a compressed container through dynamic redirection | |
JP5975501B2 (ja) | コンピューティングシステムにおいてストレージデータの暗号化不要の整合性保護を促進するメカニズム | |
CN115344194A (zh) | 使用工作负载配置文件数据对存储器进行自动操作模式管理 | |
CN113806253A (zh) | 受到损害的存储设备固件的检测 | |
CN106095500A (zh) | 一种软件自动更新的方法及系统 | |
US9881351B2 (en) | Remote translation, aggregation and distribution of computer program resources in graphics processing unit emulation | |
US10122739B2 (en) | Rootkit detection system and method | |
US11416601B2 (en) | Method and system for improved data control and access | |
KR102478392B1 (ko) | 최저 테일 레이턴시를 갖는 ssd들을 식별하기 위한 시스템 및 방법 | |
US20220365718A1 (en) | Workload profile data and performance-based memory management | |
EP4130971A1 (en) | Systems, methods, and apparatus for the management of device local memory | |
US20150234648A1 (en) | Firmware management system, method, and recording medium storing program | |
JP6820076B1 (ja) | 記憶装置、記憶方法、及びプログラム | |
US11886592B2 (en) | Secure firmware update through a predefined server | |
US11921859B2 (en) | System and method for managing device security during startup | |
EP4357928A1 (en) | Methods and system for efficient access to solid state drive | |
US11853593B2 (en) | Shared memory protection method for securing MMIO commands | |
US20240078340A1 (en) | Sponsored access to multi-item document bundles | |
CN117908766A (zh) | 用于高效访问固态驱动器的方法和系统 | |
KR20240048323A (ko) | 자율 주행 데이터 저장 시스템, 자율 주행 데이터 저장 시스템의 동작 방법, 및 시스템의 동작 방법 | |
CN117786730A (zh) | 一种数据处理方法、装置、设备以及存储介质 | |
CN116089325A (zh) | 基于温室气体数据的数据高速缓存 | |
CN115604041A (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 |