每光标逻辑单元号定序
文献发布时间:2023-06-19 12:19:35
技术领域
本公开的实施例大体上涉及存储器子系统,且更具体来说,涉及存储器子系统中的每光标逻辑单元号(LUN)定序。
背景技术
存储器子系统可以是存储系统,如固态驱动器(SSD)或硬盘驱动器(HDD)。存储器子系统可以是存储器模块,例如双列直插式存储器模块(DIMM)、小型DIMM(SO-DIMM)或非易失性双列直插式存储器模块(NVDIMM)。存储器子系统可包含存储数据的一或多个存储器组件。存储器组件可以例如是非易失性存储器组件和易失性存储器组件。一般来说,主机系统可以利用存储器子系统以在存储器组件处存储数据且从存储器组件检索数据。
附图说明
根据以下给出的详细描述以及本公开的各种实施方案的附图,将更充分地理解本公开。
图1说明根据本公开的一些实施方案的包含存储器子系统的实例计算环境。
图2说明根据本公开的一些实施方案的包含存储器子系统的另一实例计算环境。
图3说明根据本公开的实施方案的LUN序列。
图4说明根据本公开的实施方案的信道序列。
图5是根据一些实施方案的使用LUN序列对存储器组件执行操作的实例方法的流程图。
图6是可在其中操作本公开的实施方案的计算机系统的实例机器的框图。
具体实施方式
本公开的方面针对于存储器子系统中的每光标逻辑单元号(LUN)定序。存储器子系统在下文也称为“存储器装置”。存储器子系统的实例是通过外围互连件(例如,输入/输出总线、存储区域网络)耦合到中央处理单元(CPU)的存储装置。存储装置的实例包含固态驱动器(SSD)、快闪驱动器、通用串行总线(USB)快闪驱动器和硬盘驱动器(HDD)。存储器子系统的另一实例是经由存储器总线联接到CPU的存储器模块。存储器模块的实例包含双列直插式存储器模块(DIMM)、小型DIMM(SO-DIMM)、非易失性双列直插式存储器模块(NVDIMM)等。在一些实施例中,存储器子系统是混合式存储器/存储子系统。一般来说,主机系统可利用包含一或多个存储器组件的存储器子系统。主机系统可提供数据以存储于存储器子系统处,且可请求从存储器子系统检索数据。
多个光标可供存储器子系统用于执行存储器操作,例如将来自主机系统的数据写入到存储器子系统的写入操作。光标负责保持跟踪何时、何处或以何种顺序对一或多个存储器组件执行操作。光标可包含管理存储器操作的执行的软件(例如,固件)、硬件,或其组合(例如,确定何处、何时以及以何种顺序将数据写入到存储器组件)。在一些常规存储器子系统中,可对存储器组件的逻辑单元号(LUN)(例如存储器单元)序列执行存储器操作,其中多个光标中的每一个使用同一LUN序列。在一些存储器子系统中,可在给定例子处对LUN仅执行一个存储器操作。使用同一LUN序列的光标通常在至少两个光标尝试在同一时间对同一LUN执行存储器操作处发生冲突。在这类情况下,一个光标等待对LUN执行存储器操作直到另一光标完成对同一LUN执行存储器操作为止,这降低存储器子系统的平行度和速度。
举例来说,光标A以LUN序列{0,1,2,3,4}给定的次序写入到存储器组件,且光标B以同一LUN序列{0,1,2,3,4}给定的次序写入到存储器组件。光标A和B两者以开始对LUN 0、接着对LUN 1,接着对LUN 2,以此类推的顺序执行写入操作。如果两个光标均在大致相同的时间开始写入操作,那么光标A和B可在LUN序列中的每一LUN处发生冲突。
本公开的方面通过为多个光标中的每一个指配生成元来解决以上和其它挑战。在实施方案中,生成元对于光标中的每一个可为唯一的。相应生成元可用以识别用于光标中的每一个的LUN序列,与相应光标相关联的每一LUN序列是唯一LUN序列。光标可以相应LUN序列提供的次序对与存储器组件相关联的LUN集执行存储器操作,以降低在执行存储器操作时光标发生冲突的概率。
在每光标基础上识别LUN序列通过改进存储器操作执行的平行度和速度来改进存储器子系统的操作。举例来说,通过使用不同LUN序列执行存储器操作,而非使用同一LUN序列执行存储器操作,光标可更频繁地并行写入到更多LUN,避免与其它光标发生冲突。
图1说明根据本公开的一些实施方案的包含存储器子系统110的实例计算环境100。存储器子系统110可包含媒体,例如存储器组件112A到112N。存储器组件112A到112N可以是易失性存储器组件、非易失性存储器组件或这类组件的组合。在一些实施例中,存储器子系统是存储系统。存储系统的实例是固态驱动器(SSD)。一般来说,计算环境100可包含使用存储器子系统110的主机系统120。在一些实施方案中,主机系统120可将数据写入到存储器子系统110且从存储器子系统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可以包含不同类型的非易失性存储器组件或易失性存储器组件的任何组合。非易失性存储器组件的实例包含与非(negative-and;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的存储器单元可分组为存储器页或数据块,其可指代用于存储数据的存储器组件的单元。
控制器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可包含逻辑单元号(LUN)定序组件113(例如,电路系统、专用逻辑、可编程逻辑、固件等)以执行本文所描述的操作。在一些实施方案中,LUN定序组件113可为光标中的每一个指配相应生成元。生成元可用以识别用于光标中的每一个的LUN序列。光标可以与每一光标相关联的LUN序列提供的次序对与存储器组件112A到112N相关联的LUN集执行存储器操作。以LUN序列提供的次序对LUN集执行存储器操作会降低在执行存储器操作时光标发生冲突的概率。
存储器子系统110还可包含未说明的额外电路或组件。在一些实施方案中,存储器子系统110可以包含高速缓存器或缓冲器(例如,DRAM),以及可以从控制器115接收地址并对地址进行解码以存取存储器组件112A到112N的地址电路系统(例如,行解码器和列解码器)。
图2说明根据本公开的一些实施方案的包含存储器子系统的另一实例计算环境200。图1的计算环境100的元件可用以帮助说明图2。举例来说,计算环境200包含图1的主机系统120、控制器115和存储器组件112A-112N(在本文中统称为“存储器组件112”)。可注意到,计算环境200是出于说明性而非限制性目的提供。在实施方案中,计算环境200可包含图1的计算环境100的一些、所有、没有、更多或不同元件。也可注意到,计算环境200的存储器子系统210可包含图1的存储器子系统110的一些、所有、没有、更多或不同元件。
在一些实施方案中,存储器组件112A-112N可包含非易失性存储器组件,如固态非易失性存储器组件(例如,NAND装置)。本文中描述的固态非易失性存储器组件是出于说明性而非限制性目的提供。本公开的方面通常可应用于其它类型的非易失性存储器装置,例如磁盘存储装置,或其它类型的存储器装置。在一些实施方案中,存储器组件112可包含逻辑单元号(LUN)220集。LUN可以指存储器单元。在一些实施方案中,存储器单元可为存储器组件112的裸片。在其它实施方案中,存储器单元可为不同量的存储器。在一些实施方案中,LUN集220中的每一LUN可为相同量的存储器。单一存储器组件112可包含配置于离散封装中的一或多个裸片。如所说明,LUN集包含编号为LUN 0到LUN 15的16个LUN。在其它实施方案中,LUN集可包含任何数目个LUN。
在一些实施方案中,存储器组件112的LUN可划分成更小存储器单元。举例来说,LUN可包含多个存储器块。存储器块可以指存储器组件112的可响应于擦除操作擦除的最小单元。举例来说,LUN 0可包含存储器块0到块N。存储器块可包含多页存储器。存储器页可以指存储器组件112的可响应于写入操作写入的最小单元。举例来说,LUN0的块0可包含页0到页N。擦除操作从存储器组件112的一或多个块移除数据,且写入操作将数据写入到存储器装置112的一或多个页。
在某一实施方案中,一或多个信道230使控制器115与存储器组件112耦合。信道可以指计算环境的两个元件之间的连接或耦合,例如控制器115和存储器组件112之间的连接或耦合。信道230说明编号为信道0到信道7的8个信道。在其它实施方案中,存储器子系统210可包含任何数目个信道。在一些实施方案中,用以连接到存储器组件112的信道的数目可改变,这是由于举例来说,计算环境200的信道动态地改用作其它用途。
在一些实施方案中,信道230可供控制器115用于与存储器组件112通信。举例来说,控制器115可对存储器组件112执行一或多个存储器操作,例如写入操作、读取操作、擦除操作、映射操作或垃圾收集。控制器115和存储器组件112之间使用信道的通信可使用任何数目个通信协议,例如遵守开放NAND快闪接口(ONFi)规范的协议。举例来说,控制器115可使用适当的信道230执行将从主机系统120接收的数据写入到存储器组件112的相应LUN的写入操作。
在一些实施方案中,可跨存储器组件112,例如跨LUN集220中的多个LUN使数据“条带化”。条带化(在本文中还被称作“块条带化”)可以指将数据主体划分成更小单元并且将更小数据单元散布中多个存储器组件112上的过程。举例来说,控制器115可从主机系统120接收数据。可以控制器115使数据跨存储器组件112条带化的方式对所接收的数据执行写入操作。举例来说,可在LUN 0的块0的页0上写入数据,在LUN 1的块的页0上写入数据,在LUN2的块0的页0上写入数据,以此类推上写入数据,直到数据已写入到整个存储器组件112。跨多个LUN条带化的数据可被称为块条带。块条带化可改进存储器子系统110的性能。举例来说,跨多个LUN并行地写入可改进平行度并且改进可写入存储器组件112的速度。可注意到,对于一些实施方案,可在给定例子处对单一LUN执行不大于一个的存储器操作。举例来说,可在给定例子处对LUN 0执行读取或写入操作(而非这两者)。
在一些实施方案中,控制器115可实施一或多个光标以帮助的存储器组件112执行一或多个存储器操作。光标可包含管理存储器操作的执行的软件(例如,固件)、硬件或其组合。举例来说,光标可管理使数据跨存储器组件112条带化的写入操作。光标可管理执行块条带化所针对的LUN序列或负责保持跟踪光标的方位(例如,哪个LUN正在执行写入操作),以及其它功能。
在实施方案中,可通过控制器115实施多个光标。在实例中,控制器115可使用不同光标执行不同存储器操作。举例来说,控制器115可实施用于垃圾收集的光标、用于执行写入操作的光标,等等。在另一实例中,控制器115可实施多个光标执行单一存储器操作。举例来说,控制器115可实施多个光标(例如,多个主机光标)执行将从主机系统120接收的数据写入到存储器组件112的写入操作。
在一些实施方案中,光标可以特定序列(例如LUN序列)对存储器组件112执行存储器操作。LUN序列可以指光标执行存储器操作所针对的LUN的次序。举例来说,用于一组16个LUN的LUN序列可为{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15},其中所述序列中的每一整数是指LUN集220中的对应LUN。在使用LUN序列执行写入操作时,光标可以LUN序列提供的次序写入到LUN 0,接着写入到LUN 1,接着写入到LUN 2,以此类推。可注意到,光标可并行地写入到多个LUN。举例来说,在三个可用信道的情况下,光标可按LUN序列提供的次序并行地写入到LUN 0到LUN 2,接着写入到LUN3到LUN 5,以此类推。
如上所述,一些存储器子系统将同一LUN序列指配给每一光标,这增加在执行存储器操作时光标发生冲突的概率。冲突可以指其中两个光标尝试对同一LUN并行地执行一或多个存储器操作的例子。在其中在给定例子处可对LUN执行单一存储器操作的实施方案中,当两个光标尝试在同一时间对同一LUN执行存储器操作时,两个光标“发生冲突”。在此类实例中,仅第一光标可对LUN执行相关联存储器操作,同时第二光标等待执行存储器操作直到第一光标完成其相应操作为止。举例来说,使用同一LUN序列(例如,LUN序列{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15})对LUN集220执行操作的两个光标与其中两个光标使用不同LUN序列执行相应存储器操作的情境相比在一或多个LUN处发生冲突的概率较高。
图3说明根据本公开的实施方案的LUN定序300的实例。图1的计算环境100和图2的计算环境200的元件可用以帮助说明图3。LUN定序300示出多个唯一性LUN序列315A-315H(在本文中整体被称为“LUN序列315”)。单一LUN序列中的每一个包含LUN集220中的每一LUN的单一例子。如所说明,每一LUN序列是唯一的,原因在于所述序列中的LUN的次序对于LUN序列315中的任何两个并非相同的。
在实施方案中,每一光标可使用LUN序列315中的不同一LUN对存储器组件112执行存储器操作。如上所述,以不同次序次序通过使用不同LUN序列315)执行存储器操作的光标降低光标中的两个或更多个将在执行存储器操作时发生冲突的概率。举例来说,可为第一光标指配LUN序列315A,且可为LUN序列315B指配第二光标。第一光标和第二光标可在大致同一时间对存储器组件112执行写入操作。第一光标和第二光标鉴于相应LUN序列315开始在LUN 0上写入数据,这可引起冲突。在写入到LUN 0之后,第一光标移动到LUN 1,接着LUN2,接着LUN 3,以此类推。在写入到LUN 0之后,第二光标移动到LUN 3、LUN 6、LUN 9、以此类推,这不与用于第一光标的对应LUN重叠并且降低冲突概率。
在一些实施方案中,LUN序列315可与有限循环群共享特性。有限循环群可为由单一元素生成的有限对象群组。有限循环群包含对象集,例如可从单个可逆关联操作导出的LUN集序列。有限循环群可使用生成元(g),使得可通过将群组操作或其逆操作重复应用于生成元而获得群组中的每个对象。
在实施方案中,存储器子系统210的LUN集220中的LUN(例如,LUN 0-LUN 15)可编号为0到N,其中N是LUN集220中的LUN的数目(例如,N=16个LUN)。如果LUN由整数(例如,整数0-15)表示并且被视为有限循环群整数(例如,{0,1,2,3,4,5,6,…15}或整数集模N),那么所述群组的生成元是所述群组的任何成员“g”,其中群组的所有成员可表达为多个“g”(即,针对某一整数n,群组的所有成员可表达为m=n*g)。群组的与N的最大公约数(gcd)为1的任何整数(例如,gcd(a,N)=1,其中“a”是群组中的整数))可被视为生成元。另外,在其中多个生成元经选择以生成不具有类似子序列的序列的一些实施方案中,每对生成元也可具有gcd 1(即,两个生成元之间的仅有gcd是1)。可使用Z/{16}集中的生成元3和9表达类似子序列的实例。3和9两者均与16互质。用于3的序列每隔两个数与用于9的序列冲突或相同,这可引起非所需的冲突。用于3的序列是{0,3,6,9,12,15,2,5,8,11,14,1,4,7,10,13},且用于9的序列是{0,9,2,11,4,13,6,15,8,1,10,3,12,5,14,7}。
举例来说,图3示出生成元310(例如1、3、5、7、15、13、11、9)和与生成元310中的每一个相关联的LUN序列315。LUN序列315A是LUN 0到15的有序序列。生成元1始终是生成元,原因是1和N(N=16)的gcd始终是1。整数“2”不是生成元,原因是N(例如,N=16)具有公约数2,因此2和16的gcd并非1。整数3是生成元,原因是3和N(N=16)的gcd始终是1。可注意到,生成元和N可被考虑为互质,原因是生成元和N之间的仅有是公约数1。也可注意到,如所说明,负整数可用作生成元。可注意到,图3中的“Z”是指所有整数集。
在一些实施方案中,可使用相应生成元310确定LUN序列315。举例来说,可使用整数模集N确定LUN序列315B,其中N是LUN的数目(例如,N=16)且整数集是LUN0-15的有序序列乘以生成元。举例来说,整数集可为{0g,1g,2g,3g,4g,5g,6g,7g,8g,9g,10g,11g,12g,13g,14g,15g}。举例来说,用于g=3的0g是0,且0模16是0(例如,0/16的余数是0),其中0是LUN序列315A中的第一编号。在另一实例中,用于g=3的6g是18,且18模16是2(例如,18/16的余数是2)。可以与上文所说明的方式类似的方式确定LUN序列315B中的每一编号。可注意到,提供生成LUN序列315的上述操作(例如,算法)是出于说明性而非限制性目的,且一或多个操作可用以使用生成元310生成LUN序列315,如相对于图5进一步描述。
图4说明根据本公开的实施方案的信道定序400。图1的计算环境100、图2的计算环境200和图3的LUN定序300的元件可用以帮助说明图4。信道定序400示出多个唯一LUN序列315和相关联的信道序列420。
如上所述,控制器115经由信道230与LUN集220(例如,LUN 0-LUN 15)通信。每一信道230可耦合到一或多个LUN。在实施方案中,对LUN序列(例如LUN序列315中的一个)执行存储器操作的光标可存取特定信道以对LUN序列315中的特定LUN执行存储器操作。
举例来说,为了按由LUN序列315A(例如,{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15})指示的次序执行写入操作,光标可按由信道序列420A(例如,{0,1,2,3,4,5,6,7}+{0,1,2,3,4,5,6,7})指示的次序存取信道(例如,如图2中所说明的信道0-信道7)。举例来说,为存取LUN 0,光标可使用信道0,为存取LUN 1,光标可使用信道1,为存取LUN 2,光标可使用信道2,以此类推。
在实施方案中,可针对给定LUN序列315确定信道序列420以使得光标可于重复(例如,再次存取信道)之前存取每一信道一次。给定信道集(M),信道的有限循环群的生成元可为与M的gcd为1的任何数。经选择用于LUN序列315的小于M的正质数也可为用于信道序列420的质数生成元。如果LUN的数目(例如,N=16)是信道数目(例如,M=8)的偶数倍且信道的数目是2的幂,那么所有奇数将为信道序列420的生成元。在一些实施方案中,LUN的数目可随“虚”LUN增加以使LUN的数目是信道的数目中的偶数。虚LUN可为占位符,且可指示光标在执行存储器操作时跳过虚LUN。经选择作为LUN序列315的生成元的负质数也可为信道序列420的生成元。
在实施方案中,可以与确定LUN序列315类似的方式确定信道序列420。可通过整数集模M确定信道序列420,其中M是信道的数目(例如,M=8)且整数集是LUN序列315。举例来说,对于g=3,LUN序列315A是{0,3,6,9,12,15,2,5,8,11,14,1,4,7,10,13}。对于LUN序列315B中的LUN 0,0模8是(例如,(例如,0/8的余数是0),其中0是信道序列420B中的第一编号。对于LUN序列315B中的LUN 9,9模8是1(例如,9/8的余数是1),其中1是信道序列420B中的第四编号。整个信道序列420B包含{0,3,6,1,4,7,2,5}+{0,3,6,1,4,7,2,5},其包含一信道序列,在所述信道序列中可在重复之前按LUN序列315B提供的次序使用所有信道一次来存取LUN。
图5是根据一些实施方案的使用LUN序列对存储器组件执行操作的实例方法的流程图。方法500可通过可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合的处理逻辑执行。在一些实施例中,方法500可通过图1或图2的LUN定序组件113执行。可注意到,在其它实施例中,方法500可包含以相同或不同次序执行的相同、不同、额外或更少操作。前述图式的元件可用于帮助说明图5。
在框505处,处理逻辑识别用以生成用于与存储器组件112相关联的逻辑单元号(LUN)集220的LUN序列315的生成元310。在一些实施方案中,LUN序列315中的每一个是唯一序列。在一些实施方案中,存储器组件112是非易失性存储器组件。在一些实施方案中,生成元是范围从1到LUN集220中的LUN的数目(例如,N-1或0到15)的唯一性整数。在一些实施方案中,生成元310可在制造时确定,并且存储于可由控制器115存取的存储器中。在其它实施方案中,可使用如关于图3所描述的操作确定生成元。
在框510处,处理逻辑为光标中的每一个指配生成元310中的相应生成元。光标用以对存储器组件112执行操作。在一些实施方案中,光标是代表主机系统120执行存储器操作的多个主机光标。在一些实施方案中,所述操作是存储器操作,例如将来自主机系统120的数据写入到存储器组件112的写入操作。在一些实施方案中,写入操作使数据跨存储器组件112条带化。
在框515处,处理逻辑基于指配给光标的相应生成元(g),识别多个LUN序列315中用于光标中的每一个的序列。在实施方案中,LUN序列315中的每一序列引用LUN集220中的每一LUN(例如,LUN 0-15)的单一例子。在实施方案中,LUN序列315中的每一序列是唯一性LUN序列,其中LUN的次序不同于LUN序列315中的每一其它序列。
在一些实施方案中,处理逻辑可将LUN序列315存储于可由控制器115存取的存储器中并且使用生成元作为识别LUN序列315的识别符来存取LUN序列315。
在其它实施方案中,生成元可供光标用以生成LUN序列315。在实施方案中,处理逻辑实施使用指配给光标的相应生成元310作为变数生成LUN序列315中的相应LUN序列的操作(例如,LUN定序算法)。在一些实施方案中,使用相应生成元作为变数以生成唯一LUN序列的操作将相应生成元的倍数(例如,使用在从0到N-1的范围内的乘数的生成元(g)的倍数,其中N是LUN的数目)集中的每一个除以LUN集220中的LUN的数目(即,N)以生成余数(例如,第一值)。所述余数识别LUN序列中的LUN。
举例来说,对于LUN序列315A,生成元(g)是1。1的倍数是0、1、2、3、4、5、……15。所述倍数中的每一个可除以LUN集220的LUN数目(例如,N=16)(例如,1/16、2/16、3/16、……、15/16)。除法的余数是LUN序列315A(例如,{0,1,2,3,4,…,15})。在另一实例中,对于LUN序列315B,生成元(g)是3。3的倍数是0、3、6、9、……45。所述倍数中的每一个可除以LUN集220的LUN数目(例如,N=16)(例如,0/16.3/16.19/16、……、45/16)。所述除法的余数是LUN序列315B(例如,{0,3,6,9,…,13})。
在框520处,处理逻辑确定用于LUN序列315中的每一个的信道序列420。信道230将处理装置(例如,控制器115)耦合到存储器组件112的LUN集220。在一些实施方案中,光标通过按相应信道序列420提供的次序存取LUN集220,以此来按LUN序列315提供的次序对LUN集220执行操作。
在一些实施方案中,LUN(例如,LUN 0-15)所述相应信道230的映射可存储于控制器115可存取的存储器(例如,查找表)中。控制器可使用所述映射识别相应信道来对相应LUN执行操作。
在其它实施方案中,光标可通过实施操作(例如,信道定序算法)生成信道序列420。在实施方案中,为了生成信道序列,处理逻辑可将LUN序列315中的每一编号除以信道数目(例如,M=8以生成余数(例如,第二值)。所述余数识别信道序列中的信道。举例来说,用于生成元(g=3)的LUN序列315B是{0,3,6,9,12,15,2,5,8,11,14,1,4,7,10,13}。如果信道数目是8(例如,M=8),那么LUN序列315B中的每一编号除以8,且余数是信道序列420B中的信道。图4说明以生成信道序列420的操作的额外实例。
在框525处,处理逻辑使用LUN序列315对存储器组件112执行操作。在实施方案中,按LUN序列315提供的次序对存储器组件112执行操作降低光标在执行操作时发生冲突的概率(例如,相较于使用相同LUN序列的光标)。在实施方案中,光标中的每一个按与光标中的每一个相关联的LUN序列315提供的次序对LUN集220执行操作。
图6说明计算机系统600的实例机器,可在其内执行用于使得机器进行本文中所论述的方法中的任何一或多种的一组指令。在一些实施方案中,计算机系统600可对应于包含或使用存储器子系统(例如,图1的存储器子系统110或图2的存储器子系统210)或可用以执行控制器的操作(例如,以执行操作系统来对应于图1或图2的LUN定序组件113执行操作)的主机系统(例如,图1或图2的主机系统120)。在替代实施方案中,所述机器可以连接(例如,联网)到LAN、内联网、外联网和/或因特网中的其它机器。机器可作为对等(或分布式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器而以客户端-服务器网络环境中的服务器或客户端机器的容量进行操作。
所述机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂巢式电话、网络器具、服务器、网络路由器、交换机或桥接器,或能够执行(依序或以其它方式)指定将由所述机器采取的动作的一组指令的任何机器。另外,尽管说明单个机器,但还应认为术语“机器”包含机器的任何集合,所述集合单独地或共同地执行一(或多)个指令集以进行本文中所论述的方法中的任何一或多种。
实例计算机系统600包含处理装置602、主存储器604(例如,只读存储器(ROM)、闪存存储器、动态随机存取存储器(DRAM)例如同步DRAM(SDRAM)或Rambus DRAM(RDRAM)等)、静态存储器606(例如,闪存存储器、静态随机存取存储器(SRAM)等),以及数据存储系统618,其经由总线630彼此通信。
处理装置602表示一或多个通用处理装置,例如微处理器、中央处理单元等。更特定来说,处理装置可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置602也可以是一或多个专用处理装置,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器或类似物。处理装置602被配置成执行指令626以用于执行本文中所论述的操作和步骤。计算机系统600可另外包含网络接口装置608以在网络620上通信。
数据存储系统618可包含机器可读存储媒体624(也称为计算机可读媒体),其上存储有一或多个指令集626或体现本文中所描述的方法或功能中的任一或多种的软件。指令626还可在由计算机系统600执行期间完全或至少部分地驻存在主存储器604内和/或处理装置602内,主存储器604和处理装置602也构成机器可读存储媒体。机器可读存储媒体624、数据存储系统618和/或主存储器604可对应于图1的存储器子系统110或图2的存储器子系统210。
在一个实施方案中,指令626包含实施对应于LUN定序的功能性(例如,图1或图2的LUN定序组件113)的指令。虽然机器可读存储媒体624在实例实施方案中展示为单个媒体,但术语“机器可读存储媒体”应认为包含存储一或多个指令集的单个媒体或多个媒体。术语“机器可读存储媒体”还应被认为包含能够存储或编码供机器执行的指令集合且致使机器执行本公开的方法中的任何一种或多种的任何媒体。术语“机器可读存储媒体”因此应被视为包含但不限于固态存储器、光学媒体和磁性媒体。
已在针对计算机存储器内的数据位的操作的算法和符号表示方面呈现了先前详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用以将其工作的主旨最有效地传达给所属领域的其他技术人员的方式。在本文中,且一般将算法构想为生成所要结果的操作的自洽序列。操作是要求对物理量进行物理操纵的操作。通常(但未必),这些量采用能够存储、组合、比较以及以其它方式操纵的电或磁信号的形式。已经证实,主要出于常用的原因,将这些信号称为位、值、元素、符号、字符、项、编号等等有时是便利的。
然而,应牢记,所有这些和类似术语将与适当物理量相关联,且仅仅为应用于这些量的便利标记。本公开可以指操控和变换计算机系统的寄存器和存储器内的表示为物理(电子)数量的数据为计算机系统存储器或寄存器或其它这类信息存储系统内的类似地表示为物理量的其它数据的计算机系统或类似电子计算装置的动作和过程。
本公开还涉及用于执行本文中的操作的设备。这一设备可以出于所需目的而专门构造,或其可包含通过存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。这种计算机程序可存储在计算机可读存储媒体中,例如但不限于任何类型的盘,包含软盘、光盘、CD-ROM以及磁性光盘、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡,或适合于存储电子指令的任何类型的媒体,其各自连接到计算机系统总线。
本文中呈现的算法和显示器在本质上并不与任何特定计算机或其它设备相关。各种通用系统可以与根据本文中的教示的程序一起使用,或可以证明构造用以执行所述方法更加专用的设备是方便的。将如下文描述中所阐述的那样来呈现各种这些系统的结构。另外,未参考任何特定编程语言来描述本公开。应了解,可使用各种编程语言来实施如本文中所描述的本公开的教示内容。
本公开可提供为计算机程序产品或软件,其可包含在其上存储有可用于编程计算机系统(或其它电子装置)以进行根据本公开的过程的指令的机器可读媒体。机器可读媒体包含用于以机器(例如,计算机)可读的形式存储信息的任何机构。在一些实施方案中,机器可读(例如,计算机可读)媒体包含机器(例如,计算机)可读存储媒体,例如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储媒体、光学存储媒体、闪存存储器装置等。
在前述说明书中,本公开的实施方案已经参考其特定的实例实施方案进行描述。将显而易见的是,可在不脱离所附权利要求书中阐述的本公开的实施方案的的更广精神和范围的情况下对其进行各种修改。因此,应在说明性意义上而非限制性意义上看待说明书及图式。
如本文所用的词语“实例”或“示范性”是指用作实例、例子或说明。本文中描述为“实例”或“示范性”的任何方面或设计并不一定被解释为优于或胜于其它方面或设计。实际上,词语“实例”或“示范性”的使用旨在以具体方式呈现概念。如本申请案中所使用,术语“或”希望意味着包含性的“或”而非排它性的“或”。也就是说,除非另有说明或从上下文显而易见,“X包括A或B”旨在表示任何自然的包含性排列。也就是说,如果X包含A;X包含B;或X包含A和B,那么在任何前述例子下满足“X包含A或B”。另外,如在本申请和所附权利要求书中使用的冠词“一(a/an)”一般来讲可以解释为意味着“一或多个”,除非另外指定或从上下文清楚可见表示单数形式。此外,在全文使用术语“实施方案”或“一个实施方案”或“实施例”或“一个实施例”不旨在表示相同实施方案或实施例,除非如此描述。如本文所使用的术语“第一”、“第二”、“第三”、“第四”等意图作为标记来区分开不同元件,且可能未必具有根据其数字名称的序数含义。
- 每光标逻辑单元号定序
- 定序器端子台、定序器以及定序器单元