易失性存储器和非易失性存储器之间的数据链路的制作方法

文档序号:25442719发布日期:2021-06-11 22:02阅读:182来源:国知局
易失性存储器和非易失性存储器之间的数据链路的制作方法

相关申请案

本申请案主张2018年11月02日申请的标题为“易失性存储器和非易失性存储器之间的数据链路(datalinkbetweenvolatilememoryandnon-volatilememory)”的美国专利申请案序列号16/179,072的申请日的权益,其整个公开内容由此以引用方式并入本文中。本申请案涉及吉尔戈洛夫(gilgolov)在2018年10月10日申请的标题为“用于休眠的存储器映射(memorymappingforhibernation)”的美国非临时申请案第16/156,835号(代理人案号120426-128500/us),所述申请案的全部内容以引用方式并入就如同在本文中完整阐述一般。本申请案还涉及佐藤顺一(junichisato)在2018年10月03日申请的标题为“自主交通工具记录数据的自动收集(automaticcollectionofautonomousvehicleloggingdata)”的美国非临时申请案第16/150,618号,所述申请案的全部内容以引用方式并入就如同在本文中完整阐述一般。

本文中所公开的至少一些实施例大体涉及计算系统,并且更具体地说,涉及包含易失性存储器和非易失性存储器的计算系统中的数据传送。



背景技术:

计算系统的休眠是例如在保持计算机的状态的同时使所述计算机断电。在进入休眠之后,计算机将其随机存取存储器(ram)的内容保存到硬盘或其它非易失性存储装置。当恢复操作时,计算机处于与其在进入休眠之前所处的状态相同的状态。

在休眠之后,硬件可断电,这类似于计算机的定期关机。休眠是一种避免在关机之前保存未保存的数据的需求,并且在使计算机再次通电之后恢复所有运行程序的方式。举例来说,休眠可用于具有可用的有限电池电量的笔记型计算机中。在一些情况下,可基于低电池电量警报而自动触发休眠。作为能量节约特征,多种台式计算机支持休眠。

附图说明

根据下文提供的具体实施方式和本公开的各种实施例的附图将更加充分地理解本公开。

图1说明根据本公开的一些实施例的具有数据传送组件的实例计算系统。

图2说明根据本公开的一些实施例的将数据从易失性存储器传送到非易失性存储器的实例计算系统。

图3说明根据本公开的一些实施例的具有起始由独立控制器操控的数据传送处理程序的主机系统的实例计算系统。

图4说明根据本公开的一些实施例的具有监测所收集的数据并且基于所述监测起始数据传送处理程序的主机系统的实例自主交通工具。

图5说明根据一个实施例的使用人工神经网络(ann)模型配置的交通工具的实例。

图6是根据本公开的一些实施例的从易失性存储器到非易失性存储器的数据传送的实例方法的流程图。

图7是其中可操作本公开的实施例的实例计算机系统的框图。

具体实施方式

本公开的至少一些方面针对于供在计算系统中使用的数据传送处理程序并且其中所述处理程序将数据从易失性存储器复制到非易失性存储器。在一个实例中,在休眠处理程序期间执行数据传送处理程序。

休眠使得计算机能够在仍保持其状态(例如,在计算机上执行的软件处理程序的状态)的情况下断电。当断电时,易失性存储器(例如,ram)的内容复制到非易失性存储器(例如,固态驱动(ssd))。当通电时,保存的数据内容从非易失性存储器复制回到易失性存储器。因此,计算机继续准确地从其在休眠之前操作点开始操作。

现有休眠方法使用处理单元(例如,芯片上系统(soc)或cpu)到管理数据传送。处理单元介接到非易失性存储器(nvm)和易失性存储器(例如,dram)两者。处理单元在休眠处理程序期间管理装置之间的数据传送,且在那些装置之间不存在直接链路。

已认识到,如上文所描述的处理单元管理的休眠可带来数种技术问题。举例来说,在例如大量的数据需要复制的情况下,休眠可消耗大量电力,原因是处理单元本身通常消耗大量电力来管理所述传送。如果系统使用电池工作或使用备用电源工作,那么处理单元可消耗可用电力中的很大比例。这可阻止系统完成休眠或其它数据传送处理程序(例如,电源可变得完全耗尽)。

本公开的至少一些方面通过具有例如连接易失性存储器和非易失性存储器的数据链路来解决以上和其它缺陷。在不使用处理单元的情况下管理易失性存储器和非易失性存储器之间的直接数据传送。

在一个实施例中,控制器、状态机和/或处理单元(例如,与例如用于上文稍早描述的方法中的主机系统处理单元相比,使用显著更小的芯片面积)添加到易失性存储器和非易失性存储器装置,或与易失性存储器和非易失性存储器装置一起使用。控制器、状态机和/或处理单元可为内部或外部装置。举例来说,外部控制器可将命令发送到易失性存储器芯片和非易失性存储器芯片两者来实施数据传送。

在一个实施例中,外部控制器从起始数据传送的主机系统的处理单元接收信号。在接收到信号之后,外部控制器接管数据传送处理程序并且以独立于主机处理单元的方式执行数据从易失性存储器到非易失性存储器的复制。举例来说,外部控制器不需要在数据传送处理程序期间与主机处理单元通信。

在一个实施例中,在主机处理单元将信号发送到外部控制器以开始数据传送之后,通往主机处理单元的电力可减小到较低水平,或可完全关断以便节约电力。举例来说,在已失去主电源的情况下,可能需要减少电力消耗。在一个实例中,归因于涉及计算系统的事故而失去主电源。在一个实例中,电力切断或缺失触发计算系统休眠,且能量有限的备用电源在休眠处理程序期间供应电力。

举例来说,发生碰撞的自主交通工具可失去其主电源。在此情形下,需要保存与自主交通工具的在紧接在碰撞之前和碰撞期间的操作相关联的某些数据。可使用如上文所描述的外部控制器操控的数据传送处理程序保存此数据。

在另一实例中,内部控制器可操控数据传送处理程序。举例来说,易失性存储器可具有用以管理易失性存储器处的数据传送的专用内部控制器。此内部控制器可与非易失性存储器芯片中的另一内部控制器通信。两个内部控制器可通信以实施数据传送处理程序。内部控制器之间的通信可例如在并联或串联链路上发生。

在数据传送处理程序期间,可复制各种类型的信息。举例来说,易失性存储器可包含将复制的各个存储器区。可在数据传送处理程序期间复制的通常更关键的存储器区的实例包含与操作系统相关联的数据、软件、软件栈、程序变量等。此数据中的一些(例如程序变量)在运行时间由在一或多个处理装置上执行的一或多个软件处理程序产生。

可复制的通常较不关键存储器区的实例包含存储用于图形视频缓冲器、相机输入缓冲器、人工图形、深度学习暂时计算等的数据的区。此类数据通常在计算机的正常操作期间在运行时间由一或多个软件处理程序产生。

因此,本公开的各种实施例提供如下数据传送组件:减小计算系统在执行数据传送处理程序时的电力消耗,并且提供某些优点。举例来说,数据传送组件可减小在数据传送处理程序期间所用的能量(例如,通过关断主机处理单元,和/或减少通往其它子系统的电力或关断其它子系统)。这可为当计算系统使用备用电源或电池工作时的优点。

本公开的数据传送组件可实施于各个计算系统中。在一个实例系统中,处理装置(例如,芯片上系统(soc)、fpga、cpu或gpu)将运行时间数据存储于易失性存储器装置(例如,dram装置)中。数据传送组件可将数据从易失性存储器复制到非易失性存储器(例如,交叉点存储器(例如3dxp存储器)或ssd)。

图1说明根据本公开的一些实施例的具有数据传送组件107的实例计算系统。主机系统101在总线103上与动态存储器系统105通信。存储器系统105的处理装置111具有对易失性存储器123的存储器区111、113、……、119的读取/写入存取。在一个实例中,主机系统101从易失性存储器123读取数据并且将数据写入到易失性存储器123。

在一个实例中,处理装置111和存储器区111、113、……、119在相同芯片或裸片上。在一些实施例中,存储器区存储供主机系统101和/或处理装置111在机器学习处理期间使用的数据和/或在主机系统101上或处理装置111上执行的软件处理程序所产生的其它数据。

计算系统包含存储器系统105中的可复制存储器系统105的一或多个存储器区的数据传送组件107。计算系统100可另外包含主机系统120中的与存储器系统105中的数据传送组件107协作以至少有助于包含复制存储器区的数据传送的数据传送组件107。

在各种实施例中,数据传送组件107将易失性存储器123的一或多个存储器区复制到非易失性存储器121。举例来说,数据传送处理程序可由专用处理装置操控,所述专用处理装置用于存储器装置之间的直接数据传送而不需要通过主机系统(例如,主机系统101)的中央处理单元进行管理。

在一个实施例中,处理装置(未示出),例如主机系统101的控制器,确定在至少一个计算系统(例如,受主机系统101监测和/或控制的计算机系统)已发生事件。响应于确定已发生事件,主机系统101的控制器起始将受存储器系统105的处理装置111控制的数据传送。在此数据传送处理程序期间,存储于易失性存储器123中的数据将复制到非易失性存储器121。

在主机系统101的控制器起始数据传送之后,通往主机系统101的控制器和/或主机系统101的其它部分的电力可减小或终止。而且,响应于确定已发生事件,供处理装置111使用的电源可切换到备用电源。

在一些实施例中,主机系统101可确定复制易失性存储器123中的存储器区的优先级排序(例如,基于所收集的数据的监测)。在一个实例中,易失性存储器123用作用于主机系统101的处理装置(未示出)的系统存储器。在一个实施例中,主机系统101的处理程序通过监测如何使用存储器区(例如,供软件处理程序使用)确定将复制的存储器区的优先级排序。举例来说,主机系统101可基于从一或多个软件处理程序接收的存储器分配请求的上下文将存储器区排序。

在一些实施例中,处理装置111包含数据传送组件107的至少一部分。在其它实施例中,或以组合方式,处理装置111和/或主机系统101中的处理装置包含数据传送组件107的至少一部分。举例来说,处理装置111和/或主机系统101的处理装置可包含实施数据传送组件107的某些部分的逻辑电路系统。举例来说,主机系统101的控制器或处理装置(处理器)可被配置成执行存储于存储器中的指令以执行本文中所描述的数据传送组件107的某些步骤的操作。

在一些实施例中,数据传送组件107实施于安置于存储器系统105中的集成电路芯片中。在其它实施例中,主机系统120中的数据传送组件107的部分可以是主机系统120、装置驱动器或应用程序的操作系统的部分。

存储器系统105的实例是经由存储器总线连接到中央处理单元(cpu)的存储器模块。存储器模块的实例包含双列直插式存储器模块(dimm)、小型dimm(so-dimm)、非易失性双列直插式存储器模块(nvdimm)等。在一些实施例中,存储器系统可以是提供存储器功能和存储装置功能两者的混合存储器/存储装置系统。一般来说,主机系统可使用包含一或多个存储器区的存储器系统。主机系统可提供数据以存储于存储器系统处并且可请求从存储器系统检索数据。在一个实例中,主机可存取包含易失性和非易失性存储器的各种类型的存储器。

主机系统101可为计算装置,例如交通工具中的控制器、网络服务器、移动装置、蜂窝式电话、嵌入式系统(例如,具有芯片上系统(soc)和内部或外部存储器的嵌入式系统),或包含存储器和处理装置的任何计算装置。主机系统101可包含或耦合到存储器系统105,使得主机系统101可从存储器系统105读取数据或将数据写入到存储器系统105。主机系统101可经由物理主机接口耦合到存储器系统105。如本文所使用,”耦合到”或”与……耦合”通常是指组件之间的连接,其可以是间接通信连接或直接通信连接(例如,没有中间组件),无论是有线还是无线的,包含例如电连接、光学连接、磁连接等的连接。物理主机接口的实例包含但不限于串行高级技术附件(sata)接口、外围组件互连高速(pcie)接口、通用串行总线(usb)接口、光纤通道、串行连接的scsi(sas)、双数据速率(ddr)存储器总线等。物理主机接口可用于在主机系统101与存储器系统105之间发射数据。物理主机接口可提供用于在存储器系统105与主机系统101之间传送控制、地址、数据和其它信号的接口。图1将存储器系统105作为实例进行说明。一般来说,主机系统101可经由相同通信连接、多个单独通信连接和/或通信连接的组合存取多个存储器系统。

主机系统101可包含处理装置和控制器(未示出)。主机系统101的处理装置可例如为微处理器、中央处理单元(cpu)、处理器的处理核心、执行单元等。在一些情况下,主机系统的控制器可称为存储器控制器、存储器管理单元和/或起始器。在一个实例中,控制器控制在主机系统101与存储器系统105之间经由总线103的通信。

主机系统101的控制器可与存储器系统105的控制器通信以执行例如在易失性存储器123的存储器区处读取数据、写入数据或擦除数据的操作。在一些情况下,控制器集成于处理装置111的同一封装内。在其它情况下,控制器与处理装置111的封装隔开。控制器和/或处理装置可包含例如一或多个集成电路和/或离散组件、缓冲存储器、高速缓存存储器或其组合的硬件。控制器和/或处理装置可以是微控制器、专用逻辑电路(例如现场可编程门阵列(fpga)、专用集成电路(asic)等)或另一合适的处理器。

在一个实施例中,存储器区111、113、……、119可包含不同类型的易失性存储器组件的任何组合。在一些实施例中,存储器区域可以是但不限于随机存取存储器(ram)、动态随机存取存储器(dram)和同步动态随机存取存储器(sdram)。此外,存储器区的存储器单元可分组为存储器页或数据块,其可指用以存储数据的单元。在一些实施例中,存储器地图可标记存储器页或数据块以指示将在休眠期间完成复制。

在使用数据传送组件107的一个实施例中,存储器系统105的一或多个控制器可与存储器区111、113、……、119通信以执行操作,例如读取数据、写入数据或擦除数据。每个控制器可包含例如一或多个集成电路和/或离散组件、缓冲存储器或其组合的硬件。每个控制器可以是微控制器、专用逻辑电路(例如现场可编程门阵列(fpga)、专用集成电路(asic)等)或另一合适的处理器。控制器可包含被配置成执行存储在本地存储器中的指令的处理装置(处理器)。在一个实例中,控制器的本地存储器包含被配置成存储用于执行控制存储器系统105的操作(包含操控存储器系统105与主机系统101之间的通信)的各种处理程序、操作、逻辑流程和例程的指令的嵌入式存储器。在一些实施例中,本地存储器可包含存储存储器指针、提取的数据等的存储器寄存器。本地存储器还可包含用于存储微码的只读存储器(rom)。

一般来说,存储器系统105的控制器可从主机系统101和/或处理装置111接收命令或操作并且可将所述命令或操作转换成达成针对所识别的存储器区的数据传送的指令或适当命令。控制器也可负责其它操作,例如耗损均衡操作、垃圾收集操作、错误检测和错误校正码(ecc)操作、加密操作、高速缓存操作和在与存储器区域相关联的逻辑块地址与物理块地址之间的地址转换。控制器可另外包含主机接口电路以经由物理主机接口与主机系统101通信。主机接口电路可将从主机系统接收到的命令转换成命令指令以存取存储器区中的一或多个,以及将与存储器区相关联的响应转换成用于主机系统101的信息。

存储器系统105还可包含未说明的额外电路系统或组件。在一些实施例中,存储器系统105可包含高速缓冲存储器或缓冲器(例如,dram或sram)和地址电路(例如,行解码器和列解码器),所述地址电路可从一或多个控制器接收地址且对地址进行解码以接取存储器区。

在一些实施例中,主机系统101或存储器系统105中的控制器和/或处理装置111包含数据传送组件107的至少一部分。举例来说,控制器和/或处理装置111可包含实施数据传送组件107的部分的逻辑电路系统。举例来说,处理装置(处理器)可被配置成执行存储于存储器中的指令以用于执行如本文中所描述的提供对用于数据传送组件107的存储器区的读取/写入存取的操作。在一些实施例中,数据传送组件107是操作系统、装置驱动器或应用程序的部分。

图2说明根据本公开的一些实施例的将数据从易失性存储器207传送到非易失性存储器211的实例计算系统。举例来说,易失性存储器207的存储器区201、203、205中的一或多个可在数据传送处理程序期间复制到非易失性存储器211。数据传送处理程序受与易失性存储器207和非易失性存储器211通信的处理装置213控制(例如,处理装置213发送读取和写入数据的命令)。

在一个实例中,易失性存储器207包含dram和/或sram。在一个实例中,处理装置213是将命令(例如,读取数据块的读取命令)发送到易失性存储器207的状态机。

处理装置213进行的数据传送是通过由处理装置209发送到处理装置213的信号起始。所述信号可响应于处理装置209确定的各种事件而发送。举例来说,机器学习模型215可将结果提供到处理装置209。所述信号可响应于所述结果而发送。

在一个实施例中,机器学习模型215基于从各种计算系统接收的数据接收输入。在一个实例中,所述数据是从自主交通工具的交通工具系统接收的传感器数据。

处理装置209由电源217供电。电源219将电力提供给处理装置213。在一些实施例中,电源219是备用电源,且处理装置213从电源217接收主要电力。

在一个实施例中,处理装置209检测来自电源217的电力的丢失或即将发生的丢失。响应于此检测,处理装置209将起始上述数据传送处理程序的信号发送到处理装置213。在一些情况下,处理装置209可响应于检测到电力丢失而减小通往其它子系统的电力。

在一个实施例中,机器学习模型215监测与电源217相关联的数据。来自机器学习模型215的输出可供处理装置209用作起始处理装置213进行的数据传送和/或管理来自电源217和/或电源219的电力给处理装置的分配(例如,在数据传送处理程序期间的实时分配)的基础。

易失性存储器207是易失性存储器123的实例。在一个实例中,处理装置209可处于主机系统101中。非易失性存储器211是非易失性存储器121的实例。在一个实例中,非易失性存储器211是快闪存储器和/或固态驱动(ssd)。

在一个实施例中,供处理装置209使用的系统存储器存在于易失性存储器207中。处理装置209可响应于各种事件(例如,检测到通往存储器或计算系统的其它组件的电力丢失)而起始数据传送处理程序。可在复制任何其它数据之前执行从易失性存储器207的更关键区的数据复制,或替代地不复制其它数据。所述复制在处理装置213的控制下操控(例如,处理装置209可将控制工作移交给直接存储器存取控制器以将存储器区中的一些或全部复制到非易失性存储器211)。

在一个实施例中,主机系统(例如,主机系统101)可从嵌入式系统的传感器收集数据。举例来说,传感器可位于自主交通工具上且收集用于交通工具的导航的图像数据。在一个实施例中,将传感器数据输入到机器学习模型215(例如,神经网络)且使用输出来控制交通工具。在一个实施例中,由处理装置209单独或与主机系统的处理装置结合来执行与神经网络相关联的处理。在此处理期间产生的数据可识别为存储于一或多个关键存储器区中以在数据传送处理程序期间当复制时用于较高优先级。

在一个实施例中,使用处理装置209来训练或操作神经网络。在神经网络的训练或其它操作期间,从易失性存储器207读取数据且将数据写入到易失性存储器207。与神经网络相关联的数据可标记为关键、非关键,或不进行标记。

在一个实施例中,处理装置209和易失性存储器207安置于同一芯片或裸片上,且处理装置209使用来自易失性存储器的所存储的数据作为发给计算机模型的输入用于机器学习。在一个实施例中,计算机模型是神经网络。在一个实施例中,处理装置209提供来自计算机模型的数据作为输出。

在一个实施例中,用以存取易失性存储器207的控制器可包含例如一或多个集成电路和/或离散组件、缓冲存储器或其组合的硬件。控制器可以是微控制器、专用逻辑电路(例如,现场可编程门阵列(fpga)、专用集成电路(asic)等)或另一合适的处理器。控制器可包含被配置成执行存储在本地存储器中的指令的一或多个处理器(处理装置)。

控制器的本地存储器可包含被配置成存储用于执行控制存储器系统的操作的方面的各种处理程序、操作、逻辑流程和例程的指令的嵌入式存储器。控制器的本地存储器可包含用于存储微码的只读存储器(rom)和/或存储例如存储器指针、取到的数据等的存储器寄存器。

图3说明根据本公开的一些实施例的具有起始由独立控制器308操控的数据传送处理程序的主机系统306的实例计算系统。在一个实施例中,主机系统306在数据传送处理程序之前将关键运行时间数据存储于易失性存储器207中。在起始数据传送处理程序之后,一或多个存储器区中的数据从易失性存储器207复制到非易失性存储器211。在一个实例中,控制器308在数据传送处理程序期间控制易失性存储器207和非易失性存储器211。

数据链路316用以将数据从易失性存储器207复制到非易失性存储器211。数据链路316是例如串联或并联通信链路。

控制器308是处理装置213的实例。控制器308每当其主电源失效时从备用电源314接收电力。备用电源314是电源219的实例。

主机系统306、易失性存储器207、控制器308和/或非易失性存储器211可在正常操作期间在总线304上通信。举例来说,处理装置209将读取和写入在正常操作期间产生的数据的命令发送到易失性存储器207。

主机系统306的处理装置209监测从传感器310和一或多个计算系统302收集的各种类型的数据。基于监测此所收集的数据,处理装置209确定事件已发生。举例来说,所述事件可与计算系统302中的一或多个的操作相关联。在一个实例中,传感器310包含自主交通工具的一或多个加速度计。

响应于确定事件已发生,处理装置209通过将信号经由总线304发送到控制器308来起始数据传送。响应于接收到所述信号,控制器308接管从易失性存储器207到非易失性存储器211的数据传送的处置。控制器308以独立于处理装置209的方式控制在数据传送期间的数据复制。

在发送起始数据传送的信号之后,通往处理装置209的电力减小或终止。在一个实例中,关断来自主电源312的电力。然而,即使在关断通往主机系统306的一或多个组件的电力之后仍可维持从主电源312通往易失性存储器207的电力。

在一个实施例中,即使减小或终止通往主机系统306的电力,控制器308仍可使用总线304执行数据从易失性存储器207复制到非易失性存储器211的数据传送处理程序。在一些情况下,可使用总线304和数据链路316两者复制数据。

在一个实施例中,备用电源314可为控制器308、易失性存储器207和非易失性存储器211中的一或多个提供电力。基于监测所收集的数据,处理装置209可控制电力给这些各种组件的分配。在另一实施例中,控制器308可基于从处理装置209接收的数据和/或由控制器308收集的其它数据控制此类电力的分配。

在一个实施例中,作为休眠处理程序的部分,执行数据传送处理程序。在计算系统休眠之后,可通过将数据从非易失性存储器211复制到易失性存储器201中的对应存储器区恢复正常操作。

图4说明包含主机系统306的实例自主交通工具402。根据本公开的一些实施例,主机系统306监测所收集的数据并且基于所述监测起始数据传送处理程序。在一个实施例中,所收集的数据是由软件组件303产生或收集和/或是从传感器418接收的传感器数据。传感器418是传感器310的实例。自主交通工具402是例如轿车、卡车、船、飞机、直升机或无人驾驶飞行器(例如,无人机)。

在一个实施例中,易失性存储器408在起始数据传送之前存储主机系统306的软件组件303产生的关键运行时间数据。易失性存储器408是易失性存储器123或易失性存储器207的实例。

在数据传送处理程序期间,数据从易失性存储器408复制到非易失性存储器410。举例来说,数据可在直接存储器存取(dma)控制器412的控制下在专用数据链路424上进行复制。

在一个实施例中,处理装置209起始数据传送处理程序。为了起始数据传送处理程序,处理装置209将信号发送到直接存储器存取控制器412。响应于接收到所述信号,dma控制器412接管存储器区中的一些或所有数据从易失性存储器408到非易失性存储器410的复制。处理装置可将指示如下的数据发送到dma控制器412:指示要复制和/或提供通过dma控制器412进行评估的数据的存储器区以确定将复制的存储器区。

在一个实例中,dma控制器412的使用使得某些硬件子系统能够以独立于中央处理单元(cpu)的方式存取主系统存储器(例如,ram)。在一个实例中,dma控制器412可用于存储器到存储器复制或存储器内的数据移动。在一个实例中,dma控制器从处理装置209(例如,cpu)卸载存储器操作。在一个实例中,cpu可初始化dma控制器(例如,通过传送的字数目的计数,以及将使用的开始存储器地址)。dma控制器可使内部地址寄存器递增直到例如传送了完整数据块。

在一个实例中,dma控制器412用以将数据从易失性存储器408复制到非易失性存储器410。主机系统306将通过dma控制器412起始复制处置的信号发送到dma控制器412。除了所述信号之外,主机系统306还可传送指示易失性存储器408的将被复制的存储器区的优先级排序(例如,首先复制所识别的存储器区)的数据。举例来说,可通过将物理地址从主机系统306提供到dma控制器412来识别存储器区。在一个实例中,dma控制器412是独立组件。

在一个实施例中,在安设dma控制器412来处置复制之后,通往处理装置209和/或主机系统306的电力可关断以节约能量。在一个实施例中,可延迟dma控制器412对存储器区的复制。举例来说,如果dram的一部分在初始数据传送期间仍通电,那么延迟dma操作是可能的。为关断dram的此部分(例如,当数据传送时间很长或预期很长时),执行dma操作。从用户的视角,在dma复制操作处于运行中时,计算系统已经处于例如休眠中。用户不必等待(例如,无需用户对完成数据传送过程做出进一步响应)。

在一个实施例中,易失性存储器408内的关键/非关键数据的识别可基于存储器分配程序。举例来说,一个例程可用以请求存储器存储关键数据;且另一例程可用以请求存储器存储非关键数据。因此,计算系统(例如,主机系统306)知道哪些存储器内容需要备份到非易失性存储器(例如,ssd),并且知道哪些存储器内容可丢弃。替代地,当请求存储器分配时,请求者可指定存储器的表征(例如,选自多个类别中的一个类别,例如视频数据、一次性数据、输入缓冲器、输出缓冲器等)。计算系统可自定义为选择性地将一组类别分类为非关键。非关键数据在数据传送期间可被丢弃或不备份。

在一个实施例中,主机系统306提供用于在显示器404上为自主交通工具402的用户显示图形图像的数据。存储与呈现的显示内容对应的数据的存储器区可识别为关键(例如,将在非关键存储器区之前被复制)。在一种情况下,用户关断交通工具402。主机系统306响应于此用户关断而起始数据传送过程。在数据传送过程期间,与呈现的显示内容对应的数据归因于被标记为关键的而复制到非易失性存储器410。

在一个实施例中,备用电源414用以为易失性存储器408提供备用电力。主机系统306被配置成检测来自备用电源414的电力的即将发生的丢失。响应于检测对即将发生的电力丢失,主机系统306可起始数据传送过程,存储于易失性存储器408的所识别的存储器区中的数据通过搜索数据传送过程复制到非易失性存储器410。

在一个实例中,从硬件视角,ram(例如,易失性存储器408)的一部分可恢复供电。此部分可被分配关键数据。基于电力管理,可延迟或消除将ram的此部分备份到ssd。举例来说,当电池电力处于阈值以下,或计算系统已处于数据传送中达大于阈值时间段时可备份ram的此部分。而且,数据传送时间的预测(例如,基于过去的使用率和/或人工神经网络(ann)模型)可用以确定是否备份此关键数据。关于数据传送的电力管理可具有不同层级:丢弃非关键数据并且切断通往非关键ram的电力,设置用于关键数据后台备份的dma操作,和/或延迟dma操作直到确定数据传送时间很长(例如,超过预定时间段)或预期很长。

在一个实施例中,控制器420是易失性存储器408的内部控制器,且控制器422是非易失性存储器410的内部控制器。控制器420和422可与dma控制器422一起和/或代替dma控制器422用于处置数据传送过程。

在一个实施例中,主机系统306和/或dma控制器412由电源406供电。dma控制器412连接到备用电源426。主机系统306可分配电源406的电力供给以使dma控制器412的优先级高于主机系统306。在一个实例中,分配电力包含减少或关断通往处理装置209和/或自主交通工具402的一或多个其它组件的电力。电源406是电源217或主电源312的实例。

图5说明根据一个实施例的使用人工神经网络(ann)模型519配置的车辆511的实例。ann模型519是机器学习模型215的实例。车辆511是自主车辆402的实例。

交通工具511包含信息娱乐系统549、通信装置539、一或多个传感器537,以及连接到交通工具511的一些控制件的计算机531,所述控制件例如用于交通工具511的方向的转向控制件541、用于交通工具511停止的刹车控制件543、用于交通工具511的速度的加速度控制件545等。

交通工具511的计算机531包含一或多个处理器533、存储固件(或软件)527、ann模型519和其它数据529的存储器535。计算机531是主机系统306的实例。

在一个实例中,通过空中更新响应于作为对识别了错误的软件的响应而从另一主机系统(例如,服务器)发送的通信来更新固件527。替代地和/或另外,可更新车辆511的各个计算装置或系统的其它固件。

一或多个传感器537可包含可见光相机、红外相机、光达、雷达或声纳系统,和/或外围设备传感器,其被配置成将传感器输入提供到计算机531。在处理器533中执行的固件(或软件)527的模块将传感器输入应用于由模型519定义的ann,以产生识别传感器输入中的所捕获的事件或对象或进行分类的输出,例如图像或视频剪辑。来自此识别和/或分类的数据可包含在存储器装置收集的数据中并且从车辆发送到服务器。

替代地和/或另外,固件(或软件)527的自主驾驶模块可使用不安全软件的识别来产生响应。所述响应可为激活和/或调整车辆控制件541、543和545中的一个的命令。在一个实施例中,所述响应是车辆执行的动作,其中已基于来自服务器的更新命令配置所述动作(例如,服务器可响应于基于事件数据的分析确定车辆511的软件失效而产生更新命令)。在一个实施例中,在产生控制响应之前,配置车辆。在一个实施例中,通过更新车辆511的固件来执行车辆的配置。在一个实施例中,车辆的配置包含存储于车辆511中的计算机模型(例如,ann模型519)的更新。

在一个实施例中,服务器存储所接收的传感器输入作为用于使用受监督的训练模块进一步训练或更新ann模型519的传感器数据的部分。当ann模型519的经更新版本在服务器中可用时,车辆511可使用通信装置539下载经更新ann模型519以安装于存储器535中和/或置换先前安装的ann模型519。这些动作可响应于确定车辆511未能恰当地检测对象和/或响应于识别到不安全软件而执行。

在一个实例中,ann模型519的输出可用以在自主驾驶期间控制(例如,541、543、545)交通工具(例如,511)的加速度、交通工具511的速度和/或交通工具511的方向。

在一个实例中,从交通工具的传感器获得的数据可为使用利用人类眼睛可见的光成像的相机,或使用红外光成像的相机,或声纳、雷达或lidar系统来捕获对象的图像。在一个实施例中,从交通工具的至少一个传感器获得的图像数据是来自被分析的交通工具的所收集的数据的部分。在一些情况下,ann模型基于传感器和其它所收集的数据被配置成用于特定交通工具。在一个实例中,从交通工具的一或多个传感器获得的数据可存储于易失性存储器207或易失性存储器408中。

图6是根据本公开的一些实施例的从易失性存储器到非易失性存储器的数据传送的实例方法的流程图。举例来说,图6的方法可实施于图1-5的系统中。

图6的方法可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,图6的方法至少部分地由图1的数据传送组件107执行。

虽然以特定顺序或次序来展示,但是除非另有指定,否则可修改处理程序的次序。因此,应理解,所说明实施例仅为实例,且所说明处理程序可以不同次序进行,且一些处理程序可并行地进行。另外,在各个实施例中可以省略一或多个处理程序。因此,在每个实施例中并不需要所有处理程序。其它处理程序流程也是可能的。

在框601处,收集与自主交通工具的操作相关联的数据。在其它实施例中,可从一或多个其它类型的计算系统收集数据。在针对自主交通工具的实例中,可从一或多个计算系统302、传感器310、传感器418、软件组件303和/或机器学习模型215收集数据。

在框603处,通过第一处理装置监测所收集的数据。举例来说,处理装置209可监测所收集的数据。

在框605处,基于监测,做出在自主交通工具或其它计算系统上已发生事件的确定。举例来说,处理装置209可确定已发生自主交通工具402的碰撞。

在框607处,响应于确定事件已发生,起始数据传送。举例来说,处理装置209可基于确定已发生碰撞而起始数据传送过程。数据传送过程可以是基于确定已发生碰撞和/或确定已失去通往一或多个系统组件的电力而起始休眠的部分。

数据传送受第二处理装置控制。举例来说,控制器308或dma控制器412可控制在数据传送过程期间的数据复制。数据传送包含将存储于自主交通工具或另一系统的易失性存储器中的数据复制到自主交通工具或其它系统的非易失性存储器。举例来说,易失性存储器207的存储器区201中的数据可以较高优先级复制到非易失性存储器211。接着,可复制较低优先级的存储器区203。处理装置209和/或控制器308可基于处理装置209接收到的所收集的数据和/或控制器308接收到的其它数据确定此优先级。第二处理装置以独立于第一处理装置的方式控制数据复制。

在框609处,响应于确定事件已发生,减少通往第一处理装置的电力。举例来说,可关断从主电源312通往处理装置209的电力。

在一个方面中,本公开包含执行所述方法中的任一种的计算设备和存储指令的非暂时性计算机可读存储媒体,所述指令当由处理装置执行时致使所述处理装置执行所述方法中的任一个。

在一个实施例中,一种方法包括:收集与自主交通工具的操作相关联的数据;通过第一处理装置监测所述所收集的数据;和基于所述监测,确定在所述自主交通工具上已发生事件。

所述方法另外包括响应于确定所述事件已发生:起始受第二处理装置控制的数据传送,所述传送包含将存储于所述自主交通工具的易失性存储器中的数据复制到所述自主交通工具的非易失性存储器,其中所述第二处理装置以独立于所述第一处理装置的方式控制所述数据的复制;和减少通往所述第一处理装置的电力。

在一个实施例中,所述事件是来自所述自主交通工具的的电源(例如,主电源312)的电力丢失或即将发生的电力丢失。

在一个实施例中,所述数据传送是休眠过程的部分。

在一个实施例中,所述所收集的数据包含来自所述自主交通工具的至少一个加速度计的数据,且所述事件是所述交通工具超过预定阈值的减速。

在一个实施例中,所述第一处理装置和所述第二处理装置是由所述自主交通工具的至少一个第一电源(例如,电源406)供电,且其中减少通往所述第一处理装置的电力包括关断从所述至少一个第一电源提供到所述第一处理装置的电力。

在一个实施例中,所述方法另外包括响应于确定所述事件已发生,切换通往所述第二处理装置的电力以使得通过第二电源(例如,备用电源426)而非通过所述至少一个第一电源将电力提供给所述第二处理装置。

在一个实施例中,所述事件是所述交通工具与另一对象发生碰撞。

在一个实施例中,所述方法另外包括通过第二处理装置将信号发送到所述第一处理装置,所述信号指示所述数据的复制已完成。

在一个实施例中,一种系统包括:易失性存储器(例如,易失性存储器408);非易失性存储器(例如,非易失性存储器410);至少一个处理装置;和存储指令的存储器,所述指令被配置成指示所述至少一个处理装置:从至少一个计算系统(例如,计算系统302)收集数据;通过第一处理装置监测所述所收集的数据,其中所述第一处理装置是由第一电源供电;和基于所述监测,确定已发生与所述至少一个计算系统相关联的事件。

所述指令被进一步配置成指示所述至少一个处理装置响应于确定所述事件已发生:起始受第二处理装置控制的数据传送,所述传送包含将存储于所述易失性存储器中的数据复制到所述非易失性存储器,其中所述第二处理装置以独立于所述第一处理装置的方式控制所述数据的复制;在起始所述数据传送之后,减小或终止通往所述第一处理装置的电力;和将用于所述第二处理装置的电力来源切换到第二电源。

在一个实施例中,所述所收集的数据包含指示为所述易失性存储器提供电力的电源失效或即将发生失效的数据。

在一个实施例中,所述易失性存储器包括多个存储器区,且所述指令被进一步配置成指示所述至少一个处理装置确定所述存储器区(例如,存储器区201、203、205)的排序(例如,用于复制的优先级排序),其中复制存储于所述易失性存储器中的所述数据包括以所述所确定的排序将所述存储器区复制到所述非易失性存储器。

在一个实施例中,所述所确定的排序是基于监测所述所收集的数据。

在一个实施例中,监测所述所收集的数据包含将所述所收集的数据作为输入提供给机器学习模型(例如,机器学习模型215)。

在一个实施例中,监测所述所收集的数据包含确定将电力提供给所述第一处理装置或所述易失性存储器的至少一个电源的状态。

在一个实施例中,监测所述所收集的数据包含确定所述第一电源失效或即将发生失效,且其中所述第二电源是备用电源。

在一个实施例中,所述数据传送是休眠过程的部分。

在一个实施例中,所述第二处理装置被配置成将信号发送到所述第一处理装置,所述信号指示复制所述数据完成。

在一个实施例中,所述所收集的数据包含来自至少一个加速度计的数据。

在一个实施例中,一种存储指令的非暂时性计算机可读存储媒体,所述指令当由至少一个处理装置执行时致使所述至少一个处理装置执行方法,所述方法包括:从至少一个计算系统收集数据;通过第一处理装置监测所述所收集的数据;基于所述监测,确定事件已发生;和响应于确定所述事件已发生,起始受第二处理装置控制的数据传送,所述传送包含将存储于易失性存储器中的数据复制到非易失性存储器。

在一个实施例中,所述第一处理装置和所述第二处理装置各自由至少一个第一电源供电,且所述方法另外包括响应于确定所述事件已发生,切换通往所述第二处理装置的电力以使得通过第二电源而非通过所述至少一个第一电源将电力提供给所述第二处理装置。

在一个实施例中,响应于检测到通往易失性存储器的电力即将丢失而起始数据传送过程。

在一个实例中,当计算机置于休眠模式中时,计算机可关断通往dram的电力以节约电力,和/或切断通往cpu的电力以避免耗尽电池电力并且当试图恢复系统时无法恢复操作。

在一个实施例中,当操作系统和应用程序加载回到存储器并且再次运行时,可重新产生一些ram内容(且因此不需要在休眠期间进行保存)。存储器中的操作系统和/或应用程序的软件也可能已经复制硬盘驱动器中的对应数据(例如,应用程序代码)。因此,可存储硬盘驱动器上的所存储软件的哪些部分与存储器中的哪个代码段对应的指示,以避免存储软件(例如这些指示还可存储于存储器映射中)。

一些运行时间数据(例如,存储器中的动态地经分配用于应用程序或程序的数据)是关键的。如果此类数据受损,那么应用程序/程序可能无法恢复(即,可能需要重新开始)。此数据可在存储器映射中或通过具有用于复制的较高优先级排序的其它装置识别为关键。

在一些其它情况下,重新开始此类程序的应用程序可能不具有意义。因此,这些应用程序/程序可识别为非关键并且不备份(例如,在ssd中)。然而,其它数据(例如,关键或另一所识别类型的数据)可复制到ssd(例如,具有较低次序优先级)。

图7是其中可操作本公开的实施例的实例计算机系统200的框图。在一个实施例中,在计算机系统200中可执行用于使得机器进行本文中所论述的方法中的任何一或多种的一组指令。在一些实施例中,计算机系统200可对应于存储器系统,或对应于包含、耦合到或利用存储器系统(例如,图1的存储器系统105)的主机系统,或可用于执行数据传送组件107的操作(例如,执行指令以执行与参考图1-6描述的数据传送组件107相对应的操作)。在替代性实施例中,机器可连接(例如联网)到lan、内联网、外联网和/或因特网中的其它机器。机器可作为对等(或分布式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器而以客户端-服务器网络环境中的服务器或客户端机器的容量进行操作。

机器可以是个人计算机(pc)、平板pc、机顶盒(stb)、个人数字助理(pda)、蜂巢式电话、网络器具、服务器、网络路由器、交换机或桥接器,或能够(依序或以其它方式)执行指定将由所述机器采取的动作的一组指令的任何机器。另外,尽管说明单个机器,但还应认为术语”机器”包含机器的任何集合,所述集合单独地或共同地执行一(或多)个指令集以进行本文中所论述的方法中的任何一或多种。

实例计算机系统200包含处理装置202、主存储器204(例如,只读存储器(rom)、闪存存储器、动态随机存取存储器(dram)例如同步dram(sdram)或rambusdram(rdram)等)、静态随机存取存储器(sram)等),以及数据存储系统218,其经由总线230(其可包含多个总线)彼此通信。

处理装置202表示一或多个通用处理装置,例如微处理器、中央处理单元等。更特定来说,处理装置可以是复杂指令集计算(cisc)微处理器、精简指令集计算(risc)微处理器、超长指令字(vliw)微处理器或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置202也可以是一或多个专用处理装置,例如专用集成电路(asic)、现场可编程门阵列(fpga)、数字信号处理器(dsp)、网络处理器等。处理装置202被配置成执行指令226以用于执行本文中所论述的操作和步骤。计算机系统200可另外包含网络接口装置208以在网络220上通信。

数据存储系统218可包含机器可读存储媒体224(也称为计算机可读媒体),其上存储有一或多组指令226或体现本文中所描述的方法或功能中的任何一或多种的软件。指令226还可在由计算机系统200执行期间完全或至少部分地驻存在主存储器204内和/或处理装置202内,主存储器204和处理装置202也构成机器可读存储媒体。机器可读存储媒体224、数据存储系统218和/或主存储器204可对应于图1的存储器系统105。

在一个实施例中,指令226包含实施对应于数据传送组件107(例如,参考图1-6描述的数据传送组件107)的功能性的指令。尽管在实例实施例中机器可读存储媒体224展示为单个媒体,但是应认为术语”机器可读存储媒体”包含存储一或多组指令的单个媒体或多个媒体。术语”机器可读存储媒体”还应被认为包含能够存储或编码供机器执行的指令集合且致使机器执行本公开的方法中的任何一种或多种的任何媒体。术语“机器可读存储媒体”因此应被视为包含但不限于固态存储器、光学媒体和磁性媒体。

已在针对计算机存储器内的数据位的操作的算法和符号表示方面呈现了先前详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用以将其工作的主旨最有效地传达给所属领域的其他技术人员的方式。在本文中,且一般将算法构想为产生所要结果的操作的自洽序列。操作是要求对物理量进行物理操纵的操作。通常(但未必),这些量采用能够存储、组合、比较以及以其它方式操纵的电或磁信号的形式。已经证实,主要出于常用的原因,将这些信号称为位、值、元素、符号、字符、项、编号等等有时是便利的。

然而,应牢记,所有这些和类似术语将与适当物理量相关联,且仅仅为应用于这些量的便利标记。本公开可涉及将表示为计算机系统的寄存器和存储器内的物理(电子)量的数据操控且变换成类似地表示为计算机系统的存储器或寄存器或其它此类信息存储系统内的物理量的其它数据的计算机系统或类似电子计算装置的动作和处理程序。

本公开还涉及用于执行本文中的操作的设备。这一设备可以出于所需目的而专门构造,或其可包含通过存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。这种计算机程序可存储在计算机可读存储媒体中,例如但不限于任何类型的盘,包含软盘、光盘、cd-rom以及磁性光盘、只读存储器(rom)、随机存取存储器(ram)、eprom、eeprom、磁卡或光卡,或适合于存储电子指令的任何类型的媒体,其各自连接到计算机系统总线。

本文中呈现的算法和显示器在本质上并不与任何特定计算机或其它设备相关。各种通用系统可以与根据本文中的教示的程序一起使用,或可以证明构造用以执行所述方法更加专用的设备是方便的。将如下文描述中所阐述的那样来呈现各种这些系统的结构。另外,未参考任何特定编程语言来描述本公开。应了解,可使用各种编程语言来实施如本文中所描述的本公开的教示内容。

本公开可提供为计算机程序产品或软件,其可包含在其上存储有可用于编程计算机系统(或其它电子装置)以进行根据本公开的处理程序的指令的机器可读媒体。机器可读媒体包含用于以机器(例如,计算机)可读的形式存储信息的任何机构。在一些实施例中,机器可读(例如计算机可读)媒体包含机器(例如计算机)可读存储媒体,例如只读存储器(“rom”)、随机存取存储器(“ram”)、磁盘存储媒体、光学存储媒体、闪存存储器组件等。

在前述说明书中,本公开的实施例已经参照其特定实例实施例进行描述。将显而易见的是,可在不脱离如所附权利要求书中阐述的本公开的实施例的更广精神和范围的情况下对本公开进行各种修改。因此,应在说明性意义上而非限制性意义上看待说明书和图式。

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