掌桥专利:专业的专利平台
掌桥专利
首页

存储器装置的基于深度学习的编程验证建模和电压估计

文献发布时间:2023-06-19 16:06:26



技术领域

本专利文件总体上涉及存储器装置,并且更具体地,涉及存储器装置中的鲁棒性和可靠访问。

背景技术

数据完整性对于数据存储装置和数据传输是非常重要的。在固态存储器(例如,NAND闪存)装置中,信息通过单元中的不同电荷电平存储在单元中。在写入过程和读取过程期间,编程干扰错误和单元间干扰电荷泄漏导致电压分布和电平随时间下降,会引入噪声。生成准确的读取电压会提高存储器装置的可靠性和寿命。

发明内容

所公开技术的实施例涉及在存储器装置的操作中使用深度神经网络来估计读取电压阈值,这提高了存储器装置的性能。通过将1计数、校验和以及来自偏态正态分布(skewnormal distribution)的样本用作深度神经网络的输入,至少部分地实现这些以及其它特征和益处。

在示例性方面,描述一种用于提高存储器装置的性能的方法。该方法包括:针对施加到存储器装置的多个读取电压中的每一个获得多个单元计数;基于多个单元计数和多个读取电压,生成至少一个1计数、至少一个校验和以及与多个读取电压中的至少一个读取电压的分布函数相对应的多个样本;基于深度神经网络(DNN)的输出来确定至少一个读取电压的更新值,其中DNN的输入包括至少一个1计数、至少一个校验和以及多个样本;并且将至少一个读取电压的更新值施加到存储器装置以从存储器装置检索信息。

在另一示例性方面,上述方法可以由包括处理器的视频编码器设备或视频解码器设备来实施。

在另一示例性方面,这些方法可以以处理器可运行指令的形式实现并存储在计算机可读程序介质上。

本专利文件中描述的主题可以以提供以下特征中的一个或多个的特定方式来实施。

附图说明

图1示出存储器系统的示例。

图2是示例性非易失性存储器装置的示图。

图3是示出非易失性存储器装置的单元电压电平分布(Vth)的示例性示图。

图4是示出非易失性存储器装置的单元电压电平分布(Vth)的另一示例性示图。

图5是示出编程干扰之前和之后的非易失性存储器装置的单元电压电平分布(Vth)的示例性示图。

图6是示出作为参考电压的函数的非易失性存储器装置的单元电压电平分布(Vth)的示例性示图。

图7示出用于非易失性存储器装置中的读取电压估计的示例性eBoost算法的操作。

图8A和图8B是示出分别在训练模式和推理模式下配置的示例性深度神经网络(DNN)的框图。

图9是示出DNN的示例性架构的框图。

图10示出DNN的示例性操作和分析。

图11示出用于提高存储器装置的性能的示例性方法的流程图。

具体实施方式

半导体存储器装置可以是易失性的或非易失性的。易失性半导体存储器装置以较高速度执行读取操作和写入操作,而其中所存储的内容在断电时可能会丢失。非易失性半导体存储器装置即使在断电时也可以保留其中所存储的内容。非易失性半导体存储器装置可以用于存储无论是否通电都必须保留的内容。

随着对大容量存储器装置的需求增加,每单元存储多位数据的多层单元(MLC)或多位存储器装置变得越来越普遍。然而,MLC非易失性存储器装置中的存储器单元必须在有限的电压窗口中具有与四个或更多个可区分数据状态相对应的阈值电压。为了提高非易失性存储器装置中的数据完整性,必须在存储器装置的整个寿命期间调整用于区分数据状态的读取电压的电平和分布,以在读取操作和/或读取尝试期间具有最佳值。

图1至图6概述了可以实施所公开技术的实施例的非易失性存储器系统(例如,基于闪存的存储器,NAND闪存)。

图1是可以用于实施所公开技术的一些实施例的存储器系统100的示例的框图。存储器系统100包括存储器模块110,该存储器模块110可以用于存储供其它电子装置或系统使用的信息。存储器系统100可以并入其它电子装置和系统中(例如,位于电路板上)。可选地,存储器系统100可以被实施为诸如USB闪存驱动器和固态驱动器(SSD)的外部存储装置。

存储器系统100中包括的存储器模块110可以包括存储器区域(例如,存储器阵列)102、104、106和108。存储器区域102、104、106和108中的每一个可以包括在单个存储器管芯中或多个存储器管芯中。存储器管芯可以包括在集成电路(IC)芯片中。

存储器区域102、104、106和108中的每一个包括多个存储器单元。可以基于存储器单元组(memory unit)执行读取操作、编程操作或擦除操作。因此,每个存储器单元组可以包括预定数量的存储器单元。存储器区域102、104、106和108中的存储器单元可以包括在单个存储器管芯中或多个存储器管芯中。

存储器区域102、104、106和108中的每一个中的存储器单元可以按行和列布置在存储器单元组中。每个存储器单元组可以是物理单元组。例如,一组多个存储器单元可以形成存储器单元组。每个存储器单元组也可以是逻辑单元组。例如,存储器单元组可以是块或页面,可以分别由诸如块地址或页面地址的唯一地址来识别。再例如,其中存储器区域102、104、106和108可以包括计算机存储器,该计算机存储器包括存储库作为数据存储的逻辑单位,该存储器单元组可以是可以由库地址识别的存储库。在读取操作或写入操作期间,与特定存储器单元组相关联的唯一地址可以用于访问该特定存储器单元组。基于该唯一地址,可以将信息写入该特定存储器单元组中的一个或多个存储器单元或从该特定存储器单元组中的一个或多个存储器单元检索信息。

存储器区域102、104、106和108中的存储器单元可以包括非易失性存储器单元。非易失性存储器单元的示例包括闪速存储器单元、相变随机存取存储器(PRAM)单元、磁阻随机存取存储器(MRAM)单元或其它类型的非易失性存储器单元。在存储器单元被配置为NAND闪速存储器单元的示例性实施方案中,可以基于页面执行读取操作或写入操作。然而,NAND闪速存储器中的擦除操作是基于块执行的。

非易失性存储器单元中的每一个可以被配置为单层单元(SLC)或多层存储器单元。单层单元可以每单元存储一位信息。多层存储器单元可以每单元存储多于一位的信息。例如,存储器区域102、104、106和108中的每个存储器单元可以被配置为每单元存储两位信息的多层单元(MLC)、每单元存储三位信息的三层单元(TLC)或每单元存储四位信息的四层单元(QLC)。在另一示例中,存储器区域102、104、106和108中的每个存储器单元可以被配置为存储至少一位信息(例如,一位信息或多位信息),并且存储器区域102、104、106和108中的每个存储器单元可以被配置为存储多于一位的信息。

如图1所示,存储器系统100包括控制器模块120。控制器模块120包括:存储器接口121,与存储器模块110通信;主机接口126,与主机(未示出)通信;处理器124,运行固件层代码;以及高速缓存123和存储器122,分别临时或永久存储可运行固件/指令和相关联的信息。在一些实施方案中,控制器模块120可以包括错误校正引擎125,以对存储器模块110中存储的信息执行错误校正操作。错误校正引擎125可以被配置为检测/校正单个位错误或多个位错误。在另一实施方案中,错误校正引擎125可以位于存储器模块110中。

主机可以是包括一个或多个处理器的装置或系统,该一个或多个处理器操作以从存储器系统100检索数据或将数据存储或写入到存储器系统100中。在一些实施方案中,主机的示例可以包括个人计算机(PC)、便携式数字装置、数码相机、数字多媒体播放器、电视和无线通信装置。

在一些实施方案中,控制器模块120还可以包括主机接口126,以与主机进行通信。主机接口126可以包括符合主机接口规范中的至少一种的组件,主机接口规范包括但不限于串行高级技术附件(SATA)、串列小型计算机系统接口(SAS)规范、高速外围组件互连(PCIe)。

图2示出可以用于实施所公开技术的至少一些实施例的存储器单元阵列的示例。

在一些实施方案中,存储器单元阵列可以包括NAND闪速存储器阵列,该NAND闪速存储器阵列被分成许多块,并且每个块包括一定数量的页面。每个块包括多个存储器单元串,并且每个存储器单元串包括多个存储器单元。

在存储器单元阵列是NAND闪速存储器阵列的一些实施方案中,基于页面执行读取操作和写入(编程)操作,基于块执行擦除操作。必须同时擦除相同块内的所有存储器单元,然后才可以对该块中包括的任意页面执行编程操作。在实施方案中,NAND闪速存储器可以使用偶数/奇数位线结构。在另一实施方案中,NAND闪速存储器可以使用全位线结构。在偶数/奇数位线结构中,偶数位线和奇数位线沿着每个字线交错并且被交替访问,使得每对偶数位线和奇数位线可以共享诸如页面缓冲器的外围电路。在全位线结构中,所有位线被同时访问。

图3示出多层单元装置中的阈值电压分布曲线的示例,其中将每个编程/擦除状态的单元数量绘制为阈值电压的函数。如图3所示,阈值电压分布曲线包括具有最低阈值电压的擦除状态(表示为“ER”并且对应于“11”),以及读取电压处于(由虚线表示的)状态之间的三个编程状态(表示为“P1”、“P2”和“P3”,分别对应于“01”、“00”和“10”)。在一些实施例中,由于存储器阵列的材料属性的差异,编程/擦除状态的阈值电压分布中的每一个具有有限的宽度。

尽管图3通过示例的方式示出多层单元装置,但是存储器单元中的每一个可以被配置为每单元存储任意数量的位。在一些实施方案中,存储器单元中的每一个可以被配置为每单元存储一位信息的单层单元(SLC),或者被配置为每单元存储三位信息的三层单元(TLC),或者被配置为每单元存储四位信息的四层单元(QLC)。

在将多于一个数据位写入存储器单元时,由于相邻分布之间的距离减小,因此需要对存储器单元的阈值电压电平进行精细布置。这通过使用增量阶跃脉冲编程(ISPP)来实现,即,使用向字线施加阶梯式编程电压的编程和验证的方法,来对相同字线上的存储器单元重复编程。每个编程状态与在验证操作中使用的验证电压相关联,并且设置每个阈值电压分布窗口的目标位置。

阈值电压分布失真或重叠可能导致读取错误。理想的存储器单元阈值电压分布可能由于例如编程和擦除(P/E)循环、单元间干扰以及数据保持错误而严重失真或重叠(这将在下面进行讨论),并且在大多数情况下,可以通过使用错误校正码(ECC)来管理这些读取错误。

图4示出理想的阈值电压分布曲线410的示例和失真的阈值电压分布曲线420的示例。纵轴表示具有横轴上代表的特定阈值电压的存储器单元的数量。

对于n位多层单元NAND闪速存储器,可以将每个单元的阈值电压编程为2

闪速存储器P/E循环对单元晶体管的电荷捕获层的浮栅的隧道氧化物造成损害,从而导致阈值电压偏移并因此逐渐降低存储器装置噪声裕量(margin)。随着P/E循环增加,不同编程状态的相邻分布之间的裕量减小,并且最终分布开始重叠。阈值电压被编程到相邻分布的重叠范围内的存储器单元中存储的数据位可能被误判为不同于原始目标值的值。

图5示出了NAND闪速存储器中的单元间干扰的示例。单元间干扰还可能导致闪存单元的阈值电压失真。一个存储器单元晶体管的阈值电压偏移可通过干扰单元与牺牲单元之间的寄生电容耦合效应来影响其相邻存储器单元晶体管的阈值电压。单元间干扰的量可能受NAND闪速存储器位线结构的影响。在偶数/奇数位线结构中,一个字线上的存储器单元与偶数位线和奇数位线交替地连接,并且在相同字线中,偶数单元在奇数单元之前被编程。因此,偶数单元和奇数单元经受不同程度的单元间干扰。全位线结构中的单元比偶数/奇数位线结构中的偶数单元受到更少的单元间干扰,并且全位线结构可以有效地支持高速电流感测,以提高存储器读取和验证速度。

图5中的虚线表示所考虑的单元的P/E状态(编程干扰之前)的标称分布,并且“相邻状态值”表示相邻状态已经被编程到的值。如图5所示,如果将相邻状态编程为P1,则所考虑的单元的阈值电压分布偏移特定的量。然而,如果将相邻状态编程为阈值电压高于P1的P2,则与相邻状态为P1时相比,导致更大的偏移。类似地,当将相邻状态编程为P3时,阈值电压分布的偏移最大。

图6示出将正常的阈值电压分布和偏移的阈值电压分布进行比较的NAND闪速存储器中的保持错误的示例。NAND闪速存储器中存储的数据倾向于随着时间推移而损坏,这被称为数据保持错误。保持错误由单元晶体管的浮栅或电荷捕获层中存储的电荷的丢失导致。由于浮栅或电荷捕获层的损耗,具有较多编程擦除周期的存储器单元更可能发生保持错误。在图6的示例中,顶行的电压分布(损坏之前)和底行的分布(被保持错误损害)的比较显示了向左偏移。

在NAND闪速存储器装置中(例如,如图1至图6所示),在接收到读取命令之后,将执行一系列数据恢复步骤,目的是从NAND闪存检索无噪声的数据。第一次尝试被称为历史读取,其使用先前成功读取时使用的电压(Vt)阈值。先前成功读取是解码器成功从NAND闪存恢复无噪声数据的读取。在典型的实施方案中,每个物理块单独地保持历史读取,并且如果解码失败并且在数据恢复操作中导致解码器成功的后续步骤中使用不同的Vt,则将更新该历史读取。

然而,如果历史读取失败,则将执行历史读取重试(HRR)操作。HRR操作包括一系列预定的Vt阈值,该一系列预定的Vt阈值随着时间的推移保持不变,并且不会随NAND条件或数据的物理位置而变化。通常,在进行数据恢复操作中的下一步之前,需要执行5至10次HRR操作(或读取尝试)。

如果所有预定的HRR读取尝试失败,则数据恢复操作将执行eBoost过程,该eBoost过程实施软读取和软解码操作,以试图检索读取电压的最佳值。也就是说,eBoost过程将执行多次读取,以找到软读取操作的最佳中心Vt。eBoost过程可以基于高斯模型(GM)算法、累积单元计数搜索(cumulative cell-count search,CCS)算法或高级谷值搜索(advancedvalley search,AVA)算法中的一种或多种。

GM算法假设编程验证(PV)状态中的每一个(例如,如图3至图6所示)遵循具有已知(或恒定)方差和未知均值的高斯分布。它读取相同字线(WL)上的所有最低有效位(LSB)、中央有效位(CSB)和最高有效位(MSB)页面以得到模式计数,这使得能够确定相邻读取阈值之间的每个Vt间隔中的单元的数量。然后可以通过对作为标准正态分布的尾部分布函数的Q函数进行反转来确定每个PV状态的均值,并且将其定义为:

如图7所示,GM算法使用具有均值μ

CCS算法尝试确定Vt,使得所选择的Vt两侧的单元的数量相等。AVA算法尝试在相邻PV状态之间的谷值中找到整体分布的最小点。然而,如图7所示,当PV状态中的一个不对称,具有大于相邻PV状态的尾部时,这些eBoost算法会导致Vt的估计存在偏差。

GM、CCS和AVA算法的缺点可以通过使用用于基于深度神经网络(DNN)的PV建模和Vt估计的参数框架来克服。该实施方案应用一些附加读取,并且使用来自附加读取的单元计数的噪声测量值来估计模型参数,模型参数用于估计相邻PV状态的交叉点。然而,当DNN的大小(或复杂度)受到限制、应用了DNN修剪或者乘积累加(MAC)操作的精度较低时,该方法容易丢失准确性。DNN修剪和低精度MAC操作通常用于减少Vt估计的延迟。例如,可以应用DNN修剪来去除50%的DNN权重,这减少了延迟,但以牺牲准确性为代价。

所公开技术的实施例除了其它特征和优点之外,还通过使用从附加读取得出的附加信息改进了基于DNN的PV建模和Vt估计方法的参数框架,这有利地提高了Vt估计的准确性,而在推理阶段期间不增加延迟或增加MAC操作的次数。在示例中,附加信息包括1计数,例如,特定页面上的1的数量,以及校验和。也就是说,DNN使用1计数、校验和以及来自参数模型的累积分布函数(CDF)或逆累积分布函数(ICDF)的噪声样本来执行Vt估计。在图7所示的示例中,将被估计的Vt被标记为OPT。

在一些实施例中,假设基础分布(underlying distribution)是偏态正态分布,由三个参数-位置(ξ)、尺寸(ω)和形状(α)-定义。偏态正态分布的累积分布函数(CDF)为:

本文中,Φ(x)是标准正态随机变量的CDF,并且T(h,a)是Owen’s T函数,其被定义为:

实验结果已经验证了使用偏态正态分布对NAND存储器装置中的PV状态分布进行建模的有效性。

图8A是示出在训练模式下配置的示例性DNN 810的框图。如图所示,DNN 810的输入(在图8A中表示为“DNN1”)包括1计数、校验和以及训练数据样本,并且DNN 810的输出是所估计的读取电压阈值。使用PV状态的基础分布的合成模型830来生成输入到DNN 810的训练数据样本。如图8A所示,合成模型830的输入包括对应于四个相关的PV分布的概率分布(表示为p

在一些实施例中,合成模型是偏态正态模型(SNM),并且1计数和校验和被提供以进行三次读取。在其它实施例中,合成模型是改进的高斯模型(GM),并且1计数和校验和被提供以进行两次读取,其中改进的GM包括具有未知均值和未知方差的高斯分布。在其它实施例中,合成模型是非中央T模型(non-central T model,NCTM),并且1计数和校验和被提供以进行四次读取。

继续图8A的描述,在训练模式下配置的DNN 810进一步包括DNN 810的输出被输入到损失函数模块850,该损失函数模块850还接收合成模型的参数框架。在训练模式下,损失函数模块850被配置为将DNN 810所输出的估计读取电压阈值与基于合成模型的预期读取电压阈值进行比较,并且将差异(或误差)反馈至DNN 810,DNN 810然后可以调整其权重以确保内部处理更好地符合所提供的训练数据样本。

图8B是示出在推理模式下配置的示例性DNN 810的框图。如图所示,DNN 810的输入包括4个PV分布的x(用于读取PV的Vt)和CDF(x)以及来自三次附加测量的1计数与校验和。DNN 810被配置为使用在图8A的上下文中描述的训练阶段期间所确定的权重来执行推理操作,并且输出用于在存储器装置中执行读取操作的估计读取电压阈值。

图9是示出DNN 910(例如,图8A和图8B所示的DNN1)的示例性架构的框图。如图所示,示例性DNN包括第一DNN 914,该第一DNN 914处理包括用于附加读取的1计数与校验和(CS)的输入信息。第一DNN 914的输出是第二DNN 917的输入中的一个,该第二DNN 917还处理附加读取的x(用于读取PV的Vt)和CDF(x),并且输出更新后的读取阈值电压。

在一些实施例中,第一DNN 914是浮点DNN,与作为定点DNN的第二DNN相比,具有更高的精度,因为1计数和校验和的动态范围更大(相比于x和CDF(x))并且对量化损失更敏感,因此需要更高的精度来更好地保存信息。

对于图9所示的示例,第一浮点DNN 914可以使用32位浮点数据类型进行操作,并且第二定点DNN 917可以使用16位整数(定点)数据类型进行操作。再例如,第一定点DNN914可以被配置为使用128位整数数据类型,并且第二定点DNN 917可以被配置为使用16位整数数据类型。将理解的是,所示出的精度是示例,并且可以在本文描述的实施例中实施其它精度。

在一些实施例中,图9所示的DNN架构可以以固件或片上系统(SoC)形式实施。无论该实施是以固件还是SoC为形式,都可以部分地基于所实施的DNN的大小,该大小是在第一DNN和第二DNN(分别是图9中的914和917)的操作中使用的数据类型的函数。

在一些实施例中,图9所示的架构可以用于基于来自先前失败的读取尝试的1计数和校验和来估计读取电压阈值,而不依赖于任何附加读取。在这种情况下,第一DNN 914可以被配置为处理1计数和校验和,并且输出估计读取电压阈值,并且不使用第二DNN 917。本文中,第一DNN1 914的大小和权重被重新配置,但是这可以使用固件来执行,并且不需要任何SoC修改。

在一些实施例中,当1计数和校验和噪声太大而无法可靠地使用时,第二DNN 917(具有不同的权重)仅可以使用x和CDF(x)来估计更新后的读取电压阈值。在这种情况下,不使用第一DNN 914。

图10示出用于确定最低有效位页面的最佳读取电压阈值的DNN的示例性操作和分析。如图所示,PV分布中的每一个对应于最高有效位(MSB)页面、中央有效位(CSB)页面和最低有效位(LSB)页面的特定组合。例如,分区1中的PV分布对应于“0”MSB、“1”CSB和“1”LSB。在示例中,可以使用以下实施方案得出针对每个PV分布所示出的最佳(更新后)读取电压阈值。

在示例中,针对改进的高斯模型执行一次附加读取。在另一示例中,针对偏态正态模型执行两次附加读取。在另一示例中,针对非中央T分布模型执行三次附加读取。

图11示出用于提高存储器装置的性能的方法1100的流程图。方法1100包括:在操作1110,针对施加到存储器装置的多个读取电压中的每一个,获得多个单元计数。本文中,多个读取电压中的每一个对应于编程验证(PV)状态,并且多个单元计数中的每一个代表单元电压值处于与施加到其上的读取电压相对应的电压带内的单元的数量。

方法1100包括:在操作1120,基于多个单元计数和多个读取电压,生成至少一个1计数、至少一个校验和以及与多个读取电压中的至少一个读取电压的分布函数相对应的多个样本。

方法1100包括:在操作1130,基于深度神经网络的输出来确定至少一个读取电压的更新值,该深度神经网络的输入包括至少一个1计数、至少一个校验和以及多个样本。

方法1100包括:在操作1140,将至少一个读取电压的更新值施加到存储器装置以从存储器装置检索信息。

在一些实施例中,DNN包括第一DNN和第二DNN,其中第一DNN的输入包括至少一个1计数和至少一个校验和,第二DNN的输入包括第一DNN的输出和多个样本,并且第二DNN的输出包括至少一个读取电压的更新值。

在一些实施例中,第一DNN包括浮点DNN,并且第二DNN包括定点DNN。

在一些实施例中,第一DNN使用32位浮点数据类型进行操作,并且第二DNN使用16位定点数据类型进行操作。

在一些实施例中,获得多个单元计数包括以下操作:获得与LSB页面、CSB页面和MSB页面相对应的第一多个单元计数,以及获得与LSB页面、CSB页面和MSB页面中的至少两个相对应的第二多个单元计数。

在一些实施例中,方法1100进一步包括以下操作:基于第一多个单元计数生成第一组逆累积质量函数(ICMF)样本,并且基于第二多个单元计数生成第二组ICMF样本,其中第二DNN的输入进一步包括第一组ICMF样本和第二组ICMF样本。

在一些实施例中,分布函数用于对至少一个读取电压建模,并且其中分布函数是偏态正态分布。

在一些实施例中,偏态正态分布包括非对称高斯分布,特征在于位置参数、尺度参数和形状参数。

本专利文件中描述的主题的实施方案和功能操作可以以各种系统、数字电子电路,或包括本说明书中公开的结构及它们的等效结构的计算机软件、固件或硬件,或者它们中的一个或多个的组合来实施。本说明书中描述的主题的实施方案可以被实施为一个或多个计算机程序产品,即,在有形和非暂时性计算机可读介质上编码以供由数据处理设备运行或控制数据处理设备的操作的计算机程序指令的一个或多个模块。计算机可读介质可以是机器可读存储装置、机器可读存储衬底、存储器装置、影响机器可读传播信号的物质组成或者它们中的一个或多个的组合。术语“数据处理单元”或“数据处理设备”涵盖用于处理数据的所有设备、装置和机器,作为示例,包括可编程处理器、计算机、或者多个处理器或计算机。除了硬件之外,设备还可以包括为所讨论的计算机程序创建运行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或者它们中的一个或多个的组合的代码。

计算机程序(也称为程序、软件、软件应用程序、脚本或代码)可以以任何形式的编程语言(包括编译或解释语言)写入,并且可以以任何形式进行部署,包括被部署为适用于在计算环境中使用的独立程序,或者模块、组件、子例程或其它单元。计算机程序不必与文件系统中的文件相对应。程序可以存储在保存其它程序或数据的文件的一部分(例如,标记语言文档中存储的一个或多个脚本)、专用于所讨论的程序的单个文件或者多个协调文件(例如,存储一个或多个模块、子程序或代码的一部分的文件)中。计算机程序可以被部署为在一台计算机或者在位于一个站点或跨多站点分布并通过通信网络互连的多台计算机上运行。

本说明书中描述的过程和逻辑流程可以由一个或多个可编程处理器执行,该一个或多个可编程处理器运行一个或多个计算机程序,通过对输入数据进行操作并生成数据来执行功能。过程与逻辑流程也可以由专用逻辑电路执行,并且设备也可以被实施为专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。

适用于运行计算机程序的处理器例如包括通用微处理器和专用微处理器两者以及任何种类的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行指令的处理器以及用于存储指令和数据的一个或多个存储器装置。通常,计算机还将包括用于存储数据的一个或多个大容量存储装置(例如,磁光盘或光盘),或者可操作地联接以从用于存储数据的一个或多个大容量存储装置(例如,磁光盘或光盘)接收数据或向其传送数据,或者这两者。然而,计算机不必具有这种装置。适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器装置,作为示例,包括半导体存储器装置,例如,EPROM、EEPROM和闪速存储器装置。处理器和存储器可以由专用逻辑电路补充或并入专用逻辑电路。

虽然本专利文件包含许多细节,但是这些细节不应被解释为对任何发明或可以要求保护的任何发明的范围的限制,而应被解释为对特定发明的特定实施例可以进行的特定的特征描述。本专利文件中在单独的实施例的上下文中描述的某些特征也可以以单个实施例的组合来实施。相反,在单个实施例的上下文中描述的各种特征也可以在多个实施例中单独地实施或者以任何适用的子组合来实施。此外,尽管以上可以将特征描述为以某些组合而起作用并且甚至最初如此要求保护,但是在一些情况下,可以从组合中排除所要求保护的组合的一个或多个特征,并且所要求保护的组合可以涉及子组合或子组合的变型。

类似地,虽然在附图中以特定顺序描绘了操作,但是这不应被理解为为了实现理想的效果需要以所示的特定顺序或以连续的顺序执行这些操作,或者需要执行所有示出的操作。此外,本专利文件中描述的实施例中的各种系统组件的分离不应被理解为在所有实施例中都需要这种分离。

本专利文件仅描述了少量的实施方案和示例,并且可以基于本专利文件中描述和示出的内容进行其它实施方案、改进和变化。

技术分类

06120114707185