读取干扰扫描合并
文献发布时间:2023-06-19 11:55:48
技术领域
本公开的实施例大体上涉及存储器子系统,且更具体来说,涉及管理包含具有不同特性的存储器组件的存储器子系统。
背景技术
存储器子系统可为存储系统,例如固态驱动器(SSD)或硬盘驱动器(HDD)。存储器子系统可为存储器模块,例如双列直插式存储器模块(DIMM)、小型DIMM(SO-DIMM)或非易失性双列直插式存储器模块(NVDIMM)。存储器子系统可包含存储数据的一或多个存储器组件。存储器组件可以例如是非易失性存储器组件和易失性存储器组件。一般来说,主机系统可以利用存储器子系统以在存储器组件处存储数据且从存储器组件检索数据。
附图说明
根据下文提供的详细描述和本公开的各种实施例的附图将更加充分地理解本公开。
图1说明根据本公开的一些实施例的包含存储器子系统的实例计算环境。
图2A和2B为说明根据本公开的一些实施例的跨越存储器组件的多个平面的读取干扰扫描合并的图表。
图3为根据本公开的一些实施例的在跨越存储器组件的多个平面同时执行的多平面扫描中合并读取干扰扫描的实例方法的流程图。
图4为根据本公开的一些实施例的在跨越存储器组件的多个平面同时执行的多平面扫描中合并读取干扰扫描的实例方法的流程图。
图5为本公开的实施例可在其中操作的实例计算机系统的框图。
具体实施方式
本公开的方面是针对跨越存储器组件的多个平面的读取干扰扫描合并,其用以使存储器子系统中的系统带宽惩罚最小化。存储器子系统在下文也称为“存储器装置”。存储器子系统的实例是经由外围互连件(例如,输入/输出总线、存储区域网络)耦合到中央处理单元(CPU)的存储装置。存储装置的实例包含固态驱动器(SSD)、闪存驱动器、通用串行总线(USB)闪存驱动器和硬盘驱动器(HDD)。存储器子系统的另一实例是经由存储器总线耦合到CPU的存储器模块。存储器模块的实例包含双列直插式存储器模块(DIMM)、小型DIMM(SO-DIMM)、非易失性双列直插式存储器模块(NVDIMM)等。在一些实施例中,存储器子系统可为混合式存储器/存储子系统。通常,主机系统可以利用包含一或多个存储器组件的存储器子系统。主机系统可提供数据以存储在存储器子系统处,且可请求从存储器子系统检索数据。
存储器子系统中的存储器组件可包含存储器单元,所述存储器单元可包含用于存储对应于从主机系统接收的数据的一或多位的二进制数据的一或多个存储器页(在本文中也称为“页”)。存储器组件的一或多个存储器单元可分组在一起以形成数据块。可将一或多个数据块分组在一起以形成存储器组件的平面,以便允许在每一平面上进行并发操作。当数据写入到存储器组件的存储器单元以进行存储时,存储器单元可能会变差。因此,存储器组件的每一存储器单元可处理在存储器单元不再能够可靠地存储数据之前执行的有限数目个写入操作。存储在存储器组件的存储器单元处的数据可从存储器组件读取并且传输到主机系统。当从存储器组件的存储器单元读取数据时,附近或邻近的存储器单元可经历被称为读取干扰的事件。读取干扰为连续地从一个存储器单元进行读取而无介入擦除操作,从而使其它附近存储器单元随时间推移而改变(例如,变得被编程)的结果。如果对存储器单元执行过多的读取操作,那么存储在存储器组件的邻近存储器单元处的数据可能被损坏或不正确地存储在存储器单元处。这可能会使存储在存储器单元处的数据的错误率较高。这可能会增加对存储器单元执行的后续操作(例如,读取和/或写入)的错误检测和校正操作(例如,错误控制操作)的使用。错误控制操作的增加使用可能会使常规存储器子系统的性能降低。另外,随着存储器单元或数据块的错误率持续增加,它可能甚至超出存储器子系统的错误校正能力,从而导致数据的不可修复的损失。此外,由于存储器子系统的更多资源被用来执行错误控制操作,因此可用于执行其它读取操作或写入操作的资源更少了。
与存储在数据块处的数据相关联的错误率可能由于读取干扰而增加。因此,在对数据块执行阈值数目的读取操作之后,存储器子系统可以执行数据完整性检查(在本文中也被称为“扫描”)以验证存储在数据块处的数据不包含任何错误。在数据完整性检查期间,针对存储在数据块处的数据确定一或多个可靠性统计数据。可靠性统计数据的一个实例是原始位错误率(RBER)。RBER对应于存储在数据块处的数据遇到的每单位时间的位错误数目。
按照惯例,如果数据块的可靠性统计数据超过阈值,指示至少部分归因于读取干扰而产生的与存储在数据块处的数据相关联的高错误率,那么存储在数据块处的数据被重定位到存储器子系统的新数据块(在本文中也被称为“折叠”)。存储在数据块处的数据折叠到其它数据块可以包含将数据写入到其它数据块以刷新存储器子系统所存储的数据。这样做可以抵消与数据相关联的读取干扰的影响,并且擦除数据块处的数据。然而,如先前所论述,读取干扰可能会影响与被执行读取操作的存储器单元邻近的存储器单元。因此,如果更频繁地读取特定存储器单元,那么读取干扰可能会使数据块的存储器单元上的应力不均匀。举例来说,数据块的与被频繁读取的存储器单元邻近的存储器单元可具有高错误率,而不与所述存储器单元邻近的存储器单元可具有较低错误率,这是由于读取干扰对这些存储器单元的影响较小。
常规存储器子系统在块层级下使用单平面扫描操作执行数据完整性检查。因为扫描操作是在块层级下执行的,所以存储器子系统监测对特定数据块执行的读取操作的数目,且在读取计数(即,读取操作的数目)符合或超过特定读取阈值时执行单平面扫描操作。单平面扫描限于从存储器组件的仅一个平面上的数据块读取数据。扫描块花费一定量的时间(例如,100微秒),且将数据传送到控制器可能花费一定量的传送时间(例如,10微秒)。如果存储器组件的同一平面或另一平面上的另一数据块具有同样符合或超过读取阈值的读取计数,那么存储器子系统在先前的扫描操作完成之后发起单独的单平面扫描操作。以此方式执行个别扫描可能会使得存储器子系统执行过多的存储器管理操作。这可能会使存储器子系统的性能降低,并且使存储器子系统的功耗增加。系统带宽和其它资源也可能在很长一段时间内被占用,从而妨碍那些资源用于其它功能性。
本公开的方面通过具有存储器子系统来解决以上和其它缺陷,所述存储器子系统利用跨越存储器组件的多个平面的读取干扰扫描合并以使存储器子系统中的系统带宽惩罚最小化。在一个实施例中,当存储器子系统确定存储器组件的一个平面上的存储器块的读取计数达到第一阈值(即,指示应执行扫描或其它完整性检查)时,存储器子系统确定存储器组件的其它平面中的任何对应块(例如,跨越存储器组件的平面的条带中的那些块)是否具有相对即将超过第一阈值的对应读取计数。这些其它块可不具有达到第一阈值的计数值,且因此通常没有资格用于扫描操作,但可足够接近所述第一阈值,使得所述块的计数值符合或超过比第一阈值小大约10%到20%的第二阈值。这些其它块有可能会迅速达到第一阈值,进而触发其自身的分开的对应扫描操作。在一个实施例中,存储器子系统可跨越存储器组件的多个平面或甚至所有平面对数据块执行多平面扫描操作,而不是等待执行分开的扫描操作。当执行多平面扫描时,与执行单平面扫描相比,扫描时间和传送时间不会明显增加,且与依序执行多个单平面扫描相比,可极大地节省时间和资源。举例来说,对存储器组件的四个平面执行多平面扫描以及扫描块花费一定量的时间(例如,110微秒),且将数据传送到控制器可能花费一定量的传送时间(例如,每个平面10微秒)。因此,所有四个平面的多平面扫描的总时间可为大约150微秒,这明显小于执行甚至两个个别单平面扫描的时间(例如,每次扫描110微秒)。因此,当执行读取干扰扫描时,存储器控制器被占用的时间较少,进而使控制器有更多的时间处理存储器组件的其它数据存取操作。
图1说明根据本公开的一些实施例的包含存储器子系统110的实例计算环境100。存储器子系统110可包含媒体,例如存储器组件112A到112N。存储器组件112A到112N可为易失性存储器组件、非易失性存储器组件或此类组件的组合。在一些实施例中,存储器子系统是存储系统。存储系统的实例是SSD。在一些实施例中,存储器子系统110是混合式存储器/存储子系统。一般来说,计算环境100可包含使用存储器子系统110的主机系统120。举例来说,主机系统120可将数据写入到存储器子系统110以及从存储器子系统110读取数据。
主机系统120可为计算装置,例如台式计算机、笔记本计算机、网络服务器、移动装置或包含存储器和处理装置的此类计算装置。主机系统120可包含或耦合到存储器子系统110,使得主机系统120可从存储器子系统110读取数据或将数据写入到存储器子系统110。主机系统120可经由物理主机接口耦合到存储器子系统110。如本文中所使用,“耦合到”通常是指组件之间的连接,其可为间接通信连接或直接通信连接(例如,没有中间组件),无论是有线还是无线的,包含例如电连接、光学连接、磁连接等连接。物理主机接口的实例包含但不限于串行高级技术附件(SATA)接口、外围组件互连高速(PCIe)接口、通用串行总线(USB)接口、光纤通道、串行连接的SCSI(SAS)等。物理主机接口可以用于在主机系统120与存储器子系统110之间传输数据。当存储器子系统110通过PCIe接口与主机系统120耦合时,主机系统120可进一步利用NVM高速(NVMe)接口来存取存储器组件112A到112N。物理主机接口可提供用于在存储器子系统110与主机系统120之间传递控制、地址、数据和其它信号的接口。
存储器组件112A到112N可包含不同类型的非易失性存储器组件和/或易失性存储器组件的任何组合。非易失性存储器组件的实例包含与非(NAND)类型闪存存储器。存储器组件112A到112N中的每一个可包含一或多个存储器单元阵列,所述存储器单元例如单电平单元(SLC)或多电平单元(MLC)(例如,三电平单元(TLC)或四电平单元(QLC))。在一些实施例中,特定存储器组件可以包含存储器单元的SLC部分和MLC部分两者。存储器单元中的每一个可存储由主机系统120使用的一或多个数据位(例如,数据块)。虽然描述了例如NAND类型闪存存储器等非易失性存储器组件,但存储器组件112A到112N可基于任何其它类型的存储器,例如易失性存储器。在一些实施例中,存储器组件112A到112N可为但不限于随机存取存储器(RAM)、只读存储器(ROM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(SDRAM)、相变存储器(PCM)、磁随机存取存储器(MRAM)、或非(NOR)闪存存储器、电可擦除可编程只读存储器(EEPROM)以及非易失性存储器单元的交叉点阵列。非易失性存储器的交叉点阵列可结合可堆叠交叉网格化数据存取阵列而基于体电阻的改变来执行位存储。另外,与许多基于闪存的存储器对比,交叉点非易失性存储器可执行就地写入操作,其中可在不预先擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。此外,存储器组件112A到112N的存储器单元可分组为存储器页或数据块,所述存储器页或数据块可指用于存储数据的存储器组件的单元。数据块可进一步分组成存储器组件112A到112N中的每一个上的一或多个平面,其中可同时对平面中的每一个执行操作。来自不同平面的对应数据块可以条带的形式彼此相关联,而不是横跨多个平面。
存储器系统控制器115(下文称为“控制器”)可与存储器组件112A到112N通信以执行操作,例如在存储器组件112A到112N处读取数据、写入数据或擦除数据,以及其它此类操作。控制器115可包含硬件,例如一或多个集成电路和/或离散组件、缓冲存储器或其组合。控制器115可为微控制器、专用逻辑电路(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)或其它合适的处理器。控制器115可包含经配置以执行存储在本地存储器119中的指令的处理器(处理装置)117。在所说明的实例中,控制器115的本地存储器119包含经配置以存储指令的嵌入式存储器,所述指令用于执行控制存储器子系统110的操作(包含处理存储器子系统110与主机系统120之间的通信)的各种过程、操作、逻辑流程和例程。在一些实施例中,本地存储器119可包含存储器寄存器,其存储存储器指针、所获取数据等。本地存储器119还可包含用于存储微码的只读存储器(ROM)。虽然图1中的实例存储器子系统110已说明为包含控制器115,但在本公开的另一实施例中,存储器子系统110可不包含控制器115,且可替代地依赖于(例如由外部主机或由与存储器子系统分开的处理器或控制器提供的)外部控制。
一般来说,控制器115可从主机系统120接收命令或操作,且可将命令或操作转换成指令或适当的命令,以实现对存储器组件112A到112N的所要存取。控制器115可负责其它操作,例如耗损均衡操作、垃圾收集操作、错误检测和错误校正码(ECC)操作、加密操作、高速缓存操作以及在与存储器组件112A到112N相关联的逻辑块地址与物理块地址之间的地址转换。控制器115可进一步包含主机接口电路系统以经由物理主机接口与主机系统120通信。主机接口电路系统可将从主机系统接收到的命令转换成命令指令以存取存储器组件112A到112N,以及将与存储器组件112A到112N相关联的响应转换成用于主机系统120的信息。
存储器子系统110还可包含未说明的额外电路系统或组件。在一些实施例中,存储器子系统110可包含高速缓冲存储器或缓冲器(例如,DRAM)和地址电路系统(例如,行解码器和列解码器),所述地址电路系统可从控制器115接收地址且对地址进行解码以存取存储器组件112A到112N。
存储器子系统110包含可用于确定何时对存储器组件112A到112N的数据块执行扫描或其它数据完整性检查的扫描确定组件113。在一个实施例中,扫描确定组件113确定存储器组件112A的第一平面上的第一数据块的第一读取计数超过第一读取阈值。扫描确定组件113进一步确定存储器组件112A的第二平面上的第二数据块的第二读取计数是否超过第二读取阈值,其中第二块与第一块相关联(例如,作为跨越多个平面的块条带或超级块的一部分),且其中第二读取阈值小于第一读取阈值(例如,小10%到20%)。响应于第二读取计数超过第二读取阈值,扫描确定组件113可执行多平面扫描以并行地确定第一数据块的第一错误率和第二数据块的第二错误率。取决于实施例,作为多平面扫描操作的部分,扫描确定组件113可确定存储器组件112A的平面的子集或所有平面上的数据块的错误率,即使所有那些数据块不具有超过第一读取阈值的读取计数也是如此。在确定对应的错误率后,扫描确定组件113可确定错误率中的任一个是否超过错误阈值,且可对来自那些数据块的数据进行重定位且使那些数据块的读取计数复位。下文描述关于扫描确定组件113的操作的其它细节。
图2A和2B为说明根据本公开的一些实施例的跨越存储器组件的多个平面的读取干扰扫描合并的图表。图2A中的图表200说明跨越存储器组件112A到112N中的一个(例如,存储器组件112A)中的数个平面的一组相关联数据块的读取计数值205。在一个实施例中,相关联数据块是跨越存储器组件112A的多个平面的数据块条带的部分。此条带也可被称作超级块。在所说明的实施例中,存储器组件112A具有四个分开的平面P0、P1、P2和P3。如上文所描述,每个平面为来自存储器组件112A的一组数据块,其经分离以允许同时对每个平面执行操作。在其它实施例中,存储器组件可包含某一其它数目的平面,例如两个平面、六个平面、八个平面等。在图表200中,以说明平面P0、P1、P2和P3中的每一个上的一个块的相对读取计数的方式标绘读取计数值205。举例来说,值P0
在一个实施例中,扫描确定组件113监测存储器组件112A的平面P0、P1、P2和P3中的每一个上的每一块的读取计数。扫描确定组件113可将那些读取计数与第一阈值准则(即,第一读取阈值210)进行比较。第一读取阈值210可表示在应执行扫描或其它数据完整性检查之前对给定存储器块进行的读取操作的数目。数据块的读取操作的数目为数据块的错误率可增加的一个指示符,且因此,在特定数目的读取操作之后,可通过执行扫描操作来确定错误率。在一个实施例中,第一读取阈值210为可基于基础存储器组件的物理特性、客户要求等而确定的可配置数目。第一读取阈值210可设定成在特定数目的读取操作之后的预期错误率正在接近但仍低于存储器组件的错误校正能力的量。为了便于解释,第一读取阈值210可设定为一百万(1M)次读取,但实际上可使用任何其它值。在图2A的图表200中,值P1
在确定至少一个读取计数超过第一读取阈值210后,扫描确定组件113可确定与平面P1上的第一数据块相关联的其它数据块的读取计数。这些其它数据块可为超级块的同一条带的一部分。扫描确定组件113可将那些读取计数与第一读取阈值210和第二阈值准则(例如,第二读取阈值220)两者进行比较。第二读取阈值220可表示给定存储器块上的读取操作的数目,所述存储器块自身不会触发扫描,但指示读取操作的数目正接近所述层级。在一个实施例中,第二读取阈值220为可配置数目,所述数目可例如比第一读取阈值210小10%到20%。第一读取阈值210与第二读取阈值220之间的差可被称为过度窗口(overkillwindow)230。在其它实施例中,过度窗口可表示第一读取阈值210的5%、25%、30%、50%或某一其它量。为了便于解释,第二读取阈值220可设定为九十万(900k),但实际上可使用任何其它值。在图2A的图表200中,值P0
图2B中的图表250说明跨越存储器组件112A中的平面P0、P1、P2和P3的同一组相关联数据块的读取计数值255。读取计数值255可说明稍后时间点处的读取计数,使得读取计数值255中的一或多个可能已相对于图2A的图表200中所展示的读取计数值205增大。对于图表250中所说明的实施例,值P1
作为多平面扫描的部分,可并行地扫描跨越平面P0、P1、P2和P3的条带中的所有块。多平面扫描可能花费一定量的时间(例如,110微秒),且将数据传送到控制器可能花费一定量的传送时间(例如,每个平面10微秒)。因此,所有四个平面P0、P1、P2和P3的多平面扫描的总时间可为大约150微秒,这明显小于执行甚至两个个别单平面扫描的时间(例如,每次扫描110微秒)。
图3为根据本公开的一些实施例的在跨越存储器组件的多个平面同时执行的多平面扫描中合并读取干扰扫描的实例方法的流程图。方法300可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法300由图1的扫描确定组件113执行。虽然以特定顺序或次序来展示,但是除非另有指定,否则可修改过程的次序。因此,应理解,所说明实施例仅为实例,且所说明过程可以不同次序进行,且一些过程可并行地进行。另外,在各个实施例中可以省略一或多个过程。因此,在每个实施例中并不需要所有过程。其它过程流程也是可能的。
在操作310处,处理装置确定存储器组件112A的第一平面P1上的第一数据块的第一读取计数P1
如果第一读取计数P1
如果第二读取计数P2
在操作340处,处理装置确定第一错误率或第二错误率是否满足错误阈值准则(即,符合或超过错误阈值)。与存储在数据块处的数据相关联的错误率可能由于读取干扰而增加。因此,在对数据块执行阈值数目的读取操作之后,存储器子系统110可以执行扫描或其它数据完整性检查以验证存储在数据块处的数据不包含任何错误,或错误数目适当地较小。在扫描期间,扫描确定组件113标识一或多个可靠性统计数据,例如表示存储在数据块处的数据经历的每单位时间的位错误数目的原始位错误率(RBER)。在一个实施例中,扫描确定组件113将错误率与表示存储器组件112A的错误校正能力的错误阈值进行比较。如果第一错误率和第二错误率都不符合或超过错误阈值,那么处理装置返回到操作310且继续监测存储器组件112A上的数据块的读取计数值205或255。在另一实施例中,错误阈值准则包含第一错误率或第二错误率小于第一错误阈值,使得如果第一错误率或第二错误率不满足错误阈值准则,那么处理装置继续操作350。
如果第一错误率或第二错误率(或所扫描的平面P1、P2、P3或P4中的任一个上的数据块的错误率)符合或超过错误阈值,那么在操作350处,处理装置将存储在第一数据块或第二数据块中的对应一个数据块处的数据重定位到另一数据块,且使第一读取计数P
如果在操作320处,第二读取计数P2
图4为根据本公开的一些实施例的在跨越存储器组件的多个平面同时执行的多平面扫描中合并读取干扰扫描的实例方法的流程图。方法400可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法400由图1的扫描确定组件113执行。虽然以特定顺序或次序来展示,但是除非另有指定,否则可修改过程的次序。因此,应理解,所说明实施例仅为实例,且所说明过程可以不同次序进行,且一些过程可并行地进行。另外,在各个实施例中可以省略一或多个过程。因此,在每个实施例中并不需要所有过程。其它过程流程也是可能的。
在操作410处,处理装置标识存储器组件112A的多个平面P1、P2、P3和P4中的第一平面P1上的第一数据块,其中第一数据块的第一读取计数P1
在操作420处,处理装置标识存储器组件112A的多个平面P1、P2、P3和P4中的第二平面P2上的第二数据块,其中第二数据块的第二读取计数P2
在操作430处,作为多平面扫描操作的部分,处理装置任选地共同读取来自第一数据块和第二数据块的数据以确定第一数据块或第二数据块的错误率是否符合或超过存储器组件112A的错误校正能力。在一个实施例中,多平面扫描包含对应读取计数值P1
在操作440处,作为多平面扫描操作的部分,处理装置任选地读取来自存储器组件112A的第三平面P3上的第三数据块的数据连同来自第一数据块和第二数据块的数据,其中第三数据块的第三读取计数P3
在操作450处,作为多平面扫描操作的部分,处理装置任选地读取来自多个平面P1、P2、P3和P4中的每一个上的数据块的数据以确定条带中的块中的任一个的错误率是否满足错误阈值准则(即,符合或超过存储器组件112A的错误校正能力)。在一个实施例中,多平面扫描包含存储器组件112A上的平面P0、P1、P2和P3中的每一个中的数据块,即使读取计数值P3
图5说明计算机系统500的实例机器,在所述计算机系统内可执行用于使所述机器执行本文中所论述的方法中的任何一或多种的指令集。在一些实施例中,计算机系统500可对应于主机系统(例如,图1的主机系统120),所述主机系统包含、耦合到或利用存储器子系统(例如,图1的存储器子系统110)或可用于执行控制器的操作(例如,执行操作系统以执行对应于图1的扫描确定组件113的操作)。在替代实施例中,机器可连接(例如联网)到LAN、内联网、外联网和/或因特网中的其它机器。机器可作为对等(或分布式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器而以客户端-服务器网络环境中的服务器或客户端机器的容量进行操作。
机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝式电话、网络器具、服务器、网络路由器、交换机或桥接器,或能够(依序或以其它方式)执行指定将由所述机器采取的动作的指令集的任何机器。另外,尽管说明单个机器,但还应认为术语“机器”包含机器的任何集合,所述集合单独地或共同地执行一(或多)个指令集以执行本文中所论述的方法中的任何一或多种。
实例计算机系统500包含处理装置502、主存储器504(例如,只读存储器(ROM)、闪存存储器、动态随机存取存储器(DRAM)(例如同步DRAM(SDRAM)或Rambus DRAM(RDRAM)等)、静态存储器506(例如,闪存存储器、静态随机存取存储器(SRAM)等),及数据存储系统518,它们经由总线530彼此通信。
处理装置502表示一或多个通用处理装置,例如微处理器、中央处理单元等等。更特定来说,处理装置可为复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置502也可为一或多个专用处理装置,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器等等。处理装置502经配置以执行用于执行本文中所论述的操作和步骤的指令526。计算机系统500可进一步包含网络接口装置508以经由网络520通信。
数据存储系统518可以包含机器可读存储媒体524(也称为计算机可读媒体),其上存储有一或多组指令526或体现本文中所描述的方法或功能中的任何一或多种的软件。指令526还可在其由计算机系统500执行期间完全或至少部分地驻留在主存储器504内和/或处理装置502内,主存储器504和处理装置502也构成机器可读存储媒体。机器可读存储媒体524、数据存储系统518和/或主存储器504可对应于图1的存储器子系统110。
在一个实施例中,指令526包含用以实施对应于图1的扫描确定组件113的功能性的指令)。尽管在实例实施例中机器可读存储媒体524展示为单个媒体,但是应认为术语“机器可读存储媒体”包含存储一或多组指令的单个媒体或多个媒体。术语“机器可读存储媒体”还应被认为包含能够存储或编码供机器执行的指令集且使机器执行本公开的方法中的任何一或多种的任何媒体。因此,术语“机器可读存储媒体”应被认为包含但不限于固态存储器、光学媒体和磁性媒体。
已在针对计算机存储器内的数据位的操作的算法和符号表示方面呈现了先前详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用以将其工作的主旨最有效地传达给所属领域的其他技术人员的方式。在此,且一般将算法构想为产生所要结果的操作的自洽序列。操作是要求对物理量进行物理操纵的操作。通常(但未必),这些量采用能够存储、组合、比较以及以其它方式操纵的电或磁信号的形式。已经证实,主要出于常用的原因,将这些信号称为位、值、元素、符号、字符、项、编号等等有时是便利的。
然而,应牢记,所有这些和类似术语将与适当物理量相关联,且仅仅为应用于这些量的便利标记。本公开可涉及将计算机系统的寄存器及存储器内的表示为物理(电子)量的数据操纵和变换为计算机系统存储器或寄存器或其它此类信息存储系统内的类似地表示为物理量的其它数据的计算机系统或类似电子计算装置的动作及过程。
本公开还涉及用于执行本文中的操作的设备。此设备可以出于所需目的而专门构造,或其可包含通过存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此类计算机程序可存储在计算机可读存储媒体中,所述计算机可读存储媒体例如但不限于任何类型的盘,包含软盘、光盘、CD-ROM以及磁性光盘、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡,或适合于存储电子指令的任何类型的媒体,其各自耦合到计算机系统总线。
本文中呈现的算法和显示器在本质上并不与任何特定计算机或其它设备相关。各种通用系统可以与根据本文中的教示的程序一起使用,或可以证明构造用以执行所述方法更加专用的设备是方便的。将如下文描述中所阐述的那样来呈现各种这些系统的结构。另外,未参考任何特定编程语言来描述本公开。应了解,可使用各种编程语言来实施如本文中所描述的本公开的教示内容。
本公开可提供为计算机程序产品或软件,其可包含在其上存储有可用于编程计算机系统(或其它电子装置)以执行根据本公开的过程的指令的机器可读媒体。机器可读媒体包含用于以机器(例如,计算机)可读的形式存储信息的任何机制。在一些实施例中,机器可读(例如计算机可读)媒体包含机器(例如计算机)可读存储媒体,例如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储媒体、光学存储媒体、闪存存储器组件等。
在前述说明书中,本公开的实施例已经参照其特定实例实施例进行描述。将显而易见的是,可在不脱离如所附权利要求书中阐述的本公开的实施例的更广精神和范围的情况下对本公开进行各种修改。因此,应在说明性意义上而非限制性意义上看待说明书及图式。
- 读取干扰扫描合并
- 使用动态范围相关扫描角控制来提供对投射到被扫描物体上的激光扫描线的长度的控制的激光扫描代码符号读取系统