IODSSD的传送与处理单位的制作方法

文档序号:30140413发布日期:2022-05-21 06:05阅读:172来源:国知局
IODSSD的传送与处理单位的制作方法
iod ssd的传送与处理单位
1.相关申请案的交叉参考
2.本技术案主张2019年7月26日提出申请的美国申请案第16/523,922号的优先权,所述美国申请案的内容以全文引用的方式并入本文中。
技术领域
3.本公开一般来说一般来说涉及用于提供输入/输出(i/o)确定性(iod)固态驱动器(ssd)的系统及方法。


背景技术:

4.ssd包含若干个非易失性存储器装置,例如但不限于,nand快闪存储器装置,nand快闪存储器装置由控制器控制使得nand快闪存储器装置行为上像单个驱动器。nand快闪存储器装置经受起源于主机的i/o操作,例如读取及写入存储于nand快闪存储器装置中的数据,所述i/o操作可起源于在一或多个主机上运行的多个相异应用程序。nand快闪存储器装置可仅在任一时间处理单个i/o操作,且将多个nand快闪装置连接到存储器控制器的存储器总线/信道可仅在任一时间传送针对单个存储器装置的数据。传统上,尝试从ssd读取数据或向ssd写入数据的主机应用程序因此通常由于必须与其它应用程序共享对存储器装置的存取而经历不同等级的等待时间。此外,由于不同应用程序的i/o活动通常不同步或相关,因此单个应用程序所经历的等待时间是不可预测的。在其中一主机驻存于具有大量ssd及运行多个相异应用程序来存储及检索数据的主机的数据中心内的实例中,所述主机在请求ssd针对一应用程序执行i/o操作时由于其它主机及应用程序的同时且无关联的活动而无法控制ssd的不可预测的等待时间。在其中主机对ssd运行时间敏感应用程序(例如,实时数据收集、实时数据分配等)的情境中,主机体验可进一步恶化。
5.在尝试限制对另一应用程序所经历的i/o等待时间具有有害效应的一个应用程序的效应的过程中,非易失性存储器存储装置的nvm express
tm v1.4基本协议规范引入了“非易失性存储器(nvm)集”的概念,其中将非易失性存储装置划分成若干可单独寻址的区域。这些区域是存储器的逻辑上及/或物理上单独的区,这使得单独主机应用程序能够排他地存取存储器的单独区而不必彼此共享存储器资源。然而,仍需要使ssd中的nand快闪存储器控制器具有针对主机应用程序处置多个相异主机应用程序对多个nvm集的i/o的确定且可预测的i/o等待时间(也称为i/o确定性,iod)的能力及关于对ssd的i/o操作改进主机应用程序的体验。


技术实现要素:

6.在某些方面中,ssd装置的本发明实施方案针对于用于提供传送与处理单位来支持ssd装置的iod特征的系统及方法。
附图说明
7.图1a展示根据一些实施方案的实例ssd的框图;
8.图1b是根据一些实施方案支持低等待时间操作的ssd架构的框图;
9.图2是根据一些实施方案包含多个独立数据通道的ssd架构的框图;
10.图3是图解说明根据一些实施方案的实例传送与处理单位的框图;
11.图4a是图解说明根据一些实施方案具有三电平单元(tlc)结构的实例裸片的框图。
12.图4b是图解说明根据一些实施方案具有四电平单元(qlc)结构的实例裸片的框图。
13.图4c是图解说明根据一些实施方案具有通用配置或流配置的实例裸片的框图。
14.图4d是图解说明根据一些实施方案的实例iod nvm集的框图。
15.图5是图解说明根据一些实施方案使用otpu在控制器内通信的框图;及
16.图6是图解说明根据一些实施方案用于定义传送与处理单位的实例过程的流程图。
具体实施方式
17.在其它方面当中,iod驱动器是指实施本文中所描述的iod特征的ssd。iod驱动器的物理空间物理上分割成各种区域或存储空间的隔离区域(“岛”),称为nvm集。物理分割可由iod驱动器的nand快闪存储器装置的物理块及/或裸片执行。每一nvm集是逻辑上独立于iod驱动器的其它nvm集的逻辑来管理。即,iod驱动器的每一物理分区均映射到iod驱动器的逻辑分区。iod驱动器可独立地管理对每一nvm集执行的逻辑且为每一nvm集分配适当存储空间及i/o带宽。相对于nvm集的i/o操作被保障以来自所述nvm集的独立于其它nvm集的特定带宽水平,因此允许主机可预测等待时间,因为主机知晓受保障带宽。主机可因此在预期受保障带宽的情况下使用iod驱动器执行存储及计算功能,所述预期可总是由于iod驱动器的特性而得以满足。可在2017年11月1日提出申请的标题为“支持低等待时间操作的ssd架构(ssd architecture supporting low latency operation)”的美国专利公开案第us 2019/0042150号中找到iod驱动器的实例架构,所述美国专利公开案特此以全文引用的方式并入。
18.在常规的非iod ssd的所谓的“嘈杂邻居”情境中,第一应用程序的i/o操作可影响第二应用程序所经历的操作及等待时间。利用iod驱动器,即使由主机执行的第一应用程序与对第一nvm集而非第二nvm集的i/o操作有关,仍可因iod驱动器的物理上不恰当分割而导致“嘈杂邻居”现象。另外,尽管iod驱动器的非易失性存储器可被物理上及逻辑上分割成多个nvm集,但由于执行且控制逻辑功能的控制器在nvm集之间对计算及/或硬件资源的共享,所述控制器可由于iod驱动器的一个nvm集的i/o操作而导致iod驱动器的另一nvm集的i/o操作的延迟。如此,逻辑上管理iod驱动器的多个nvm集的控制器可变成所述多个nvm集的i/o操作的瓶颈,因此尽管有分配给iod驱动器中的nvm集的非易失性存储装置的物理分割仍导致“嘈杂邻居”现象。
19.用于执行iod驱动器的i/o操作的控制器内的过程流称为i/o路径。在一些情形中,i/o路径包含多个控制流且通常在多个处理器及/或控制器上在多个过程之间通信。i/o路
径包含i/o路径的一端上的主机、i/o路径的另一端上的nand快闪存储器装置,及主机与nand快闪存储器装置之间的多个过程及/或处理器。过程间通信(ipc)可帮助过程及/或处理器之间的通信,所述ipc中的每一者对应于彼此通信的两个过程/处理器之间的通信链路。可在过程之间在ipc上传送多个消息类型。针对iod驱动器,在将数据写入到iod驱动器的nand快闪存储器装置或从所述nand快闪存储器装置读取数据之前,ipc在i/o路径中载运每一nvm集的消息。虽然处理器及过程的数目可在控制器上保持不变,但ipc基础设施及传统固件的调度会导致在iod驱动器的多个nvm集之间发生冲突及资源瓶颈。
20.在非iod驱动器中使用的传统ipc方案不适合对iod驱动器的实施方案,因为那些ipc方案缺乏避免在同一类型的ipc消息之间发生资源竞争及颠倒的优先级的能力,其中所述ipc消息属于多个nvm集。在其中处理器当前正处置nvm集0的ipc s0-a且所述处理器在所述处理器正处置ipc s0-a时接收到来自nvm集1的ipc s1-a并在接收到s1-a之后接收到来自nvm集2的ipc s2-a的实例中,根据传统ipc方案,s0-a、s1-a及s2-a将在所述处理器上以所述次序被处置。s0-a、s1-a及s2-a属于同一消息类型且由同一处理器处置。如果nand快闪存储器装置正忙于nvm集0或nvm集0的控制器资源不可用,那么处理s0-a将花费更长时间。s0-a的长处理时间可使s1-a及s2-a的处理进一步延迟,这是因为s0-a、s1-a及s2-a是以所述次序顺序地处理。因此,传统ipc方案由于nvm集0上的业务状况而增加nvm集1及nvm集2的ipc消息上的等待时间,因此导致“嘈杂邻居”现象。此问题因控制器内用于i/o操作的大量过程及控制路径而加剧。
21.在一些实例中,用于处置消息的处理器是所有nvm集共同的。即,同一处理器可处置所有nvm集的同一类型的消息或对应于所有nvm集的同一任务的消息。iod驱动器上的固件可产生并准备消息。在控制器中,每一消息对应于传送与处理单位且以所描述的方式经由ipc及独立数据通道来传递。不同客户可能需要不同驱动器配置。举例来说,一个客户可能需要传统的非iod驱动器(也称为“普通(vanilla)”驱动器或“通用”驱动器),而其它客户可能需要具有不同iod nvm集配置(例如,不同数目个nvm集等)的iod驱动器。如果传送与处理单位的定义不能扩缩以解决客户对在传统、非iod驱动器配置及不同iod nvm集配置中进行选择的需要,那么需要开发多个不同定制固件(每一定制固件对应于一不同配置集)。这导致实施iod驱动器的较高成本及较高复杂性。
22.此外,传送与处理单位大小与nand及快闪控制器操作不兼容或对于nand及快闪控制器操作未达到最优可导致减小的nand吞吐量,这是鉴于在控制器及nand上执行了冗余操作。例如,传送与处理单位太大会需要处理较多cpu循环,且因此每一nvm集花费较长处理时间。长处理时间可导致潜在瓶颈,所述潜在瓶颈导致共享控制器资源(例如,处理器)的其它nvm集经历更糟糕的等待时间。
23.本文中所公开的实施例涉及用于提供在具有iod特征的驱动器的控制器上实施的低等待时间ipc方案的系统、设备、方法及非暂时性计算机可读媒体。所述ipc方案经实施以连接过程、处理器、硬件、控制器、主机及所述驱动器的nand快闪存储器装置。固件经配置以建立且管理iod驱动器的每一nvm集的独立数据通道。每一独立数据通道包含一或多个ipc及相关联处理程序。固件经配置以定义传送与处理单位(本文中也称为最优传送与处理单位(otpu))。每一消息在otpu中经由独立数据通道来传递。
24.在一些实施方案中,实施独立数据通道及otpu的iod驱动器可例如通过避免在iod
驱动器的不同nvm集当中发生i/o冲突及开销而为ssd提供可预测的等待时间。在一些实施例中,iod驱动器可确保一个nvm集上的业务分布及负载不影响同一驱动器(例如,同一ssd)内的其它nvm集上的等待时间。即,iod驱动器经配置以通过在控制器中隔离每一经配置nvm集而防止“嘈杂邻居”现象。即,除形成经隔离区域(为了隔离每一nvm集的nand操作)的物理nand分区外,ssd固件还可经配置以通过能够为ssd的每一nvm集提供独立数据通道而确保控制器内的i/o处置针对每一iod nvm集是隔离开的。
25.另外,在控制器内实施otpu可在提供经配置以实现经提高nand及快闪控制器吞吐量的可扩缩的灵活传送与处理单位的同时导致控制器的过程及处理器之间的低等待时间通信。同一固件可提供ssd的不同配置,包含非iod、通用配置、不同iod nvm集配置、流配置等。控制器可构建且链接多个otpu(具有同一大小)来在不针对每一配置集准备定制固件的情况下满足ssd的非易失性存储器(例如,nand)上的驱动器配置及数据布置需要。此些实施方案是各种新兴nand代及相关联参数、控制器设计及超标量客户需要的长期解决方案。
26.图1a是根据一些实施方案的ssd 100的结构的框图。如图1a中所展示,控制器120通过主机接口110与主机101通信。主机101可为一或多个一或多个主机装置或主机应用程序。主机101可包含任何适合装置,例如但不限于,计算装置、存储器具等。在一些实例中,主机101可为由用户操作的用户装置。在一些实施方案中,主机101及ssd 100驻存于数据中心(未展示)中。数据中心包含多个平台,所述多个平台中的每一者可支持多个主机(例如但不限于,主机101)及ssd装置(例如但不限于,ssd 100)。
27.ssd 100包含易失性存储器130及非易失性存储器140。易失性存储器装置130及非易失性存储器140与控制器120通信。
28.在一些实施方案中,非易失性存储器140可为非易失性存储器裸片阵列,如所展示。非易失性存储器140包含可布置于连接到控制器120的一或多个存储器通信信道中的非易失性存储器裸片142a到142d、144a到144d、146a到146d及148a到148d。举例来说,裸片142a到d可配置于一个存储器信道上,裸片144a到d可配置于另一存储器信道上,以此类推。虽然图1a中展示16个非易失性存储器裸片142a到142d、144a到144d、146a到146d及148a到148d,但ssd 100的非易失性存储器140可包含布置于与控制器120通信的一或多个信道中的任何适合数目个非易失性存储器裸片。
29.在一个实施方案中,非易失性存储器裸片142a到142d、144a到144d、146a到146d及148a到148d包含nand快闪存储器。nand快闪存储器包含快闪存储器。举例来说,每一nand快闪存储器装置包含一或多个个别nand快闪裸片,所述一或多个个别nand快闪裸片是能够在无电力的情况下保留数据的非易失性存储器装置。非易失性存储器裸片142a到142d、144a到144d、146a到146d及148a到148d中的每一者具有一或多个平面。每一平面具有多个块,且每一块具有多个页。数据可以连续次序写入到块中的页,一旦所有页均被写入便不再写入数据直到块被擦除,在块被擦除后可即刻再次以连续次序向页写入新数据,以此类推。
30.在一些实施方案中,易失性存储器装置130包含易失性存储器dram缓冲器。易失性存储器装置130可为单一类型的单个装置或能够为ssd 100提供易失性存储器缓冲器的不同类型的多个装置。
31.控制器120可组合非易失性存储器裸片142a到142d、144a到144d、146a到146d及148a到148d中的原始数据存储,使得那些非易失性存储器裸片142a到142d、144a到144d、
146a到146d及148a到148d像单个存储装置一样起作用。控制器120可包含微控制器、缓冲器、错误校正功能性、快闪翻译层(ftl)、快闪接口层(ftl)、快闪控制器、快闪管理层软件、地址映射表及用于实施此类功能的固件,如本文中进一步描述。在一些布置中,软件/固件可存储于非易失性存储器140中或任何其它适合计算机可读存储媒体中。
32.控制器120包含用于执行本文中所描述的功能以及其它功能的适合处理及存储器能力。举例来说,控制器120包含用于实施ssd 100的各种功能的一或多个处理器(例如,中央处理单元(cpu))。如所描述,控制器120管理非易失性存储器裸片142a到142d、144a到144d、146a到146d及148a到148d的各种特征,包含但不限于,i/o处置、读取、写入、擦除、监视、日志记录、错误处置、垃圾收集、损耗均衡、逻辑到物理(l2p)地址映射等。
33.图1b是根据一些实施方案支持低等待时间操作的ssd架构150的框图。参考图1a及1b,ssd架构150可由ssd的非易失性存储器(例如但不限于,非易失性存储器140)配置而成。如图1b中所展示,ssd架构150包含跨越8个信道(ch0到ch7)布置的32个非易失性存储器裸片的阵列,其中有4个非易失性存储器裸片耦合到每一信道。换句话说,ssd架构150包含nand快闪存储器装置阵列。非易失性存储器裸片中的每一者具有一或多个平面。所属领域的普通技术人员可了解,任何适合数目个裸片可操作地耦合到任何适合数目个信道。ssd架构150中的非易失性存储器裸片中的每一者可为非易失性存储器裸片142a到142d、144a到144d、146a到146d及148a到148d中的一者。信道ch0到ch7可为物理信道或逻辑信道。
34.ssd架构150包含通过从同一信道及邻近信道(由相同阴影表示)上的非易失性存储器裸片中的每一者选择所有物理块而形成的超级块,而不是通过从跨越所有8个信道的非易失性存储器裸片中的每一者选择物理块而形成的超级块。这些超级块中的每一者在ssd内形成隔离区域(例如,与其它区域隔离的区域),所述隔离区域不受对ssd的其它区域的信道i/o活动影响,这是因为每一区域是经由不与其它区域共享的信道来存取。每一隔离区域可称为nvm集。因此,在ssd架构150中,隔离区域102包含两个信道ch0及ch1上的非易失性存储器裸片的物理块。隔离区域104包含两个信道ch2及ch3上的非易失性存储器裸片的物理块。隔离区域106包含两个信道ch4及ch5上的非易失性存储器裸片的物理块。隔离区域108包含两个信道ch6及ch7上的非易失性存储器裸片的物理块。
35.通过仅使用来自固定数目个单独信道中的非易失性存储器裸片的物理块配置超级块以形成隔离区域(例如图1b中所展示),可最小化或完全避免在非易失性存储器裸片及信道控制器处发生i/o操作冲突,从而允许ssd的较低等待时间、较大可预测性及较一致i/o性能。如所展示,隔离区域102到108中的每一者包含耦合到多个(例如,两个)信道的非易失性存储器裸片,因此每隔离区域利用多个信道控制器来处置主机i/o操作以提高每隔离区域的吞吐量。替代地,隔离区域可包含耦合到一个信道的非易失性存储器裸片。因此,ssd架构150的裸片可经选择及布置以形成隔离区域102到108,但原理上可使用任何数目个信道来形成隔离区域,其中单独隔离区域不共享信道。
36.虽然图1b图解说明操作地耦合到同一信道的所有裸片位于同一隔离区域中,但用于形成隔离区域的其它方法允许耦合到同一信道的裸片位于单独隔离区域中。举例来说,来自信道ch0到ch3中的每一者的两个裸片可形成第一隔离区域,而来自信道ch0到ch3中的每一者的另两个裸片可形成第二隔离区域。每隔离区域的大量信道提高了隔离区域的吞吐量,然而当在区域之间共享信道时,做出了关于隔离能力的折衷,这是因为具有独有裸片但
共享信道的两个区域的隔离程度将不像具有完全单独的信道的区域那样大。
37.图2是根据一些实施方案包含多个独立数据通道的ssd架构200的框图。参考图1a到2,ssd架构200包含控制器220及非易失性存储装置240。控制器220可为控制器120的实例实施方案。控制器220包含易失性存储器230,易失性存储器230可为例如但不限于易失性存储器130的易失性存储器。非易失性存储装置240可为非易失性存储器,例如但不限于,非易失性存储器140或具有架构150的非易失性存储器。
38.非易失性存储装置240包含跨越8个信道(例如,ch0到ch7)布置的非易失性存储器裸片的阵列,其中有三个非易失性存储器裸片耦合到每一信道。换句话说,非易失性存储装置240包含nand快闪存储器装置阵列。为了清晰起见,未展示到个别裸片的信道连接。非易失性存储器裸片中的每一者具有多个平面。所属领域的普通技术人员可了解,任何适合数目个裸片可操作地耦合到任何适合数目个信道。信道ch0到ch7可为物理信道或逻辑信道。
39.非易失性存储装置240的非易失性存储器裸片形成隔离区域(物理上隔离的区域)或nvm集260到263。属于同一nvm集的裸片由相同阴影表示。举例来说,操作地耦合到信道ch0及ch1的裸片形成nvm集260。操作地耦合到信道ch2及ch3的裸片形成nvm集261。操作地耦合到信道ch4及ch5的裸片形成nvm集262。操作地耦合到信道ch6及ch7的裸片形成nvm集263。
40.控制器220包含经配置以执行控制器220的各种过程的各种处理器。举例来说,ftl处理器242(例如,ftl接口模块)可处理地址映射表248(例如,l2p映射表)。地址映射表248是保持逻辑地址与物理地址之间的对应性记录的映射表。举例来说,地址映射表248可将关于逻辑块的读取及写入命令(从主机接收)翻译成参考物理块的低级命令。在一些实例中,从主机接收的读取或写入命令至少包含逻辑块地址(lba)。lba是识别可为扇区中的区域的逻辑块的逻辑地址。在一些实例中,写入命令还可包含数据将被写入到的区域/扇区的数目。地址映射表248存储每一逻辑地址与所述逻辑地址的数据被存储在的一或多个物理地址(例如,存储器裸片的页)之间的映射。
41.ftl处理器242可基于地址映射表248执行l2p操作。举例来说,ftl处理器242可将lba翻译成物理地址,因此分辨对应于lba的物理地址。响应于接收到来自主机的写入或读取命令(其中含有lba),ftl处理器242可通过使用地址映射表248查找对应于lba的物理地址以便向所述物理地址写入或从所述物理地址读取。地址映射表248可存储于非易失性存储装置240、易失性存储器230或控制器220的适合存储器中的一或多者中。
42.在一些实施方案中,控制器220包含快闪管理层(fml)处理器246。fml处理器242管理快闪存储器裸片,将裸片内的存储器块布置成称作逻辑块的若干最优群组,确定要为用户数据分配的下一逻辑块、要为垃圾收集及元数据(例如映射查找表)选择的下一逻辑块。fml还监视写入命令的进展且提前准备下一块进行写入并管理用于检查先前存储的数据的保留可靠性的触发器。
43.在一些实施方案中,控制器220包含快闪接口层(fil)处理器250a及250b。fil处理器250a及250b提供ftl与快闪控制器(分别地,fc 255a/b及255c/d)之间的接口。fil处理命令队列(为了清晰起见未展示)中来自ftl的传入快闪命令,以最优方式将其调度到所述命令的目的地物理存储器组(裸片)的适当快闪控制器。来自命令的响应是从fc处置且存储于响应队列(为了清晰起见未展示)中,从而向ftl指示命令的成功或失败。如所展示,fil处理
器250a及250b中的每一者位于nvm集260到263中的两者的i/o路径中。举例来说,fil处理器250a位于nvm集260到261的i/o路径中。fil处理器250b位于nvm集262到263的i/o路径中。
44.在一些实施方案中,控制器220进一步包含快闪控制器(fc)255a到255d。fc 255a到255d从fil获取存储器命令且在个别存储器信道上调度所述命令,执行必要存储器总线控制信令及向存储器裸片的数据传送,并针对命令成功还是失败检查存储器裸片状态。如所展示,nvm集260到263中的每一者具有fc 255a到255d中的一个不同fc。例如,fc255a位于nvm集260的i/o路径中。fc 255b位于nvm集261的i/o路径中。fc 255c位于nvm集262的i/o路径中。fc 255d位于nvm集263的i/o路径中。
45.在一些实施方案中,处理器242、246、250a到250b及255a到255d中的每一者可为单独处理器(例如,cpu)、处理电路或微控制器。换句话说,处理器242、246、250a到250b及255a到255d中的每一者是指可在制造后保持不变的单独硬件组件。在替代实施方案中,处理器242、246、250a到250b及255a到255d中的两者或更多者可实施于同一处理器、处理电路或微控制器上。控制器220(包含处理器242、246、250a到250b及255a到255d、易失性存储器230及地址映射表248(如果存储于控制器的存储器中))可使用例如但不限于系统单芯片(soc)的硬件实施。如本文中进一步详细地描述,处理器242、246、250a到250b及255a到255d、易失性存储器230及地址映射表248在其上运行的固件可用于配置给定数目个数据通道。固件处置且管理非易失性存储装置240、i/o操作及ssd架构200的后台操作。
46.ipc用于ssd架构200的两个组件(例如,在处理器上运行的两个过程)之间的通信。ipc对应于经由从发送方处理器或过程到接收方处理器或过程的通信链路的信令。例如,ipc可提供允许在发送方处理器或过程与接收方处理器或过程之间传递指令、消息及任务的通信协议。指令、消息及任务中的每一者载运将由接收方处理器或过程执行的任务的指示及上下文识别符或对在任务中使用的数据的参考。在一些实施方案中,每一ipc对应于经配置软件/固件,例如但不限于,软件队列、消息队列、共享存储器或使用发送方过程与接收方过程之间的适合协议配置的邮箱。在一些实施方案中,每一ipc对应于由控制器220建立以用于发送方过程(例如但不限于,因特网协议(ip)端口或插口)与接收方过程之间的通信的通信端口。替代地,每一ipc是物理通信链路,例如但不限于,总线(例如,外围组件互连(pci))、物理ipc端口、串行通信链路、信道等。
47.控制器220的固件可配置来自非易失性存储装置240中的裸片的任何适合数目个nvm集且可配置相同数目个独立数据通道。换句话说,控制器220的固件可针对每一经配置nvm集配置独立数据通道,使得所述nvm集的所有指令、消息及任务可使用对应独立数据通道来载运,且对应独立数据通道不载运另一nvm集的任何指令、消息或任务。
48.如所展示,沿着nvm集260的i/o路径提供第一独立数据通道。第一独立数据通道包含多个ipc/链路212a、212b、212c、212d及212e。ipc 212a用于将指令、消息及任务从易失性存储器230载运到ftl处理器242。ipc 212b用于在ftl处理器242与fil处理器250a之间载运指令、消息及任务。ipc 212c用于在fil处理器250a与fc 255a之间载运指令、消息及任务。链路212d是用于在fc 255a与nvm集260的操作地耦合到信道ch0的裸片之间载运命令/操作、数据及消息的快闪存储器信道。链路212e是用于在fc 255a与nvm集260的操作地耦合到信道ch1的裸片之间载运命令/操作、数据及消息的快闪存储器信道。鉴于fc 255a到非易失性存储装置240中的nvm集260之间的链路是信道特定的,第一独立数据通道从fc 255a到
nvm集260包含两个链路212d及212e。第一独立数据通道仅针对nvm集260且不针对另一nvm集载运命令/操作、数据及消息。
49.沿着nvm集261的i/o路径提供第二独立数据通道。第一独立数据通道包含多个ipc/链路214a、214b、214c、214d及214e。ipc 214a用于将指令、消息及任务从易失性存储器230载运到ftl处理器242。ipc 214b用于在ftl处理器242与fil处理器250a之间载运指令、消息及任务。ipc 214c用于在fil处理器250a与fc 255b之间载运指令、消息及任务。链路214d是用于在fc 255b与nvm集261的操作地耦合到信道ch2的裸片之间载运命令/操作、数据及消息的快闪存储器信道。链路214e是用于在fc 255b与nvm集260的操作地耦合到信道ch3的裸片之间载运命令/操作、数据及消息的快闪存储器信道。鉴于fc 255b到非易失性存储装置240中的nvm集261之间的链路是信道特定的,第一独立数据通道从fc 255b到nvm集261包含两个链路214d及214e。第二独立数据通道仅针对nvm集261且不针对另一nvm集载运命令/操作、数据及消息。
50.沿着nvm集262的i/o路径提供第三独立数据通道。第三独立数据通道包含多个ipc/链路216a、216b、216c、216d及216e。ipc 216a用于将指令、消息及任务从易失性存储器230载运到ftl处理器242。ipc 216b用于在ftl处理器242与fil处理器250b之间载运指令、消息及任务。ipc 216c用于在fil处理器250b与fc 255c之间载运指令、消息及任务。链路216d是用于在fc 255c与nvm集262的操作地耦合到信道ch4的裸片之间载运命令/操作、数据及消息的快闪存储器信道。链路216e是用于在fc 255c与nvm集262的操作地耦合到信道ch5的裸片之间载运命令/操作、数据及消息的快闪存储器信道。鉴于fc 255c到非易失性存储装置240中的nvm集262之间的链路是信道特定的,第三独立数据通道从fc 255c到nvm集262包含链路ipc 216d及216e。第三独立数据通道仅针对nvm集262且不针对另一nvm集载运命令/操作及消息。
51.沿着nvm集263的i/o路径提供第四独立数据通道。第四独立数据通道包含多个ipc/链路218a、218b、218c、218d及218e。ipc 218a用于将指令、消息及任务从易失性存储器230载运到ftl处理器242。ipc 218b用于在ftl处理器242与fil处理器250b之间载运指令、消息及任务。ipc 218c用于在fil处理器250b与fc 255d之间载运指令、消息及任务。链路218d是用于在fc 255d与nvm集263的操作地耦合到信道ch6的裸片之间载运命令/操作、数据及消息的快闪存储器信道。链路218e是用于在fc 255d与nvm集263的操作地耦合到信道ch7的裸片之间载运命令/操作、数据及消息的快闪存储器信道。鉴于fc 255d到非易失性存储装置240中的nvm集263之间的链路是信道特定的,第四独立数据通道从fc 255d到nvm集263包含两个链路218d及218e。第四独立数据通道仅针对nvm集263且不针对另一nvm集载运命令/操作及消息。
52.沿着ipc 212a到212c、214a到214c、216a到216c及218a到218c或在其中展示的方框是指在ipc 212a到212c、214a到214c、216a到216c及218a到218c中的对应者中载运的指令、消息及任务。具有与nvm集260到263中的对应一者的阴影相同的阴影的方框是指与对应nvm集且不与另一nvm集相关的指令、消息及任务。
53.虽然处理器242、246、250a到250b及255a到255d以及存储装置230及240被展示为实体的实例使得可针对每一nvm集建立那些实体中的两者之间的ipc及快闪信道,但每nvm集的ipc及快闪信道方案可同样地针对额外处理器(例如,主机接口110)及存储装置来实
施。
54.如图2中所展示,可在发送方过程与接收方过程之间经由固件建立各自用于nvm集260到263中的不同一者的多个ipc,而不是用于所有nvm集260到263的一个ipc。鉴于每一处理器执行一或多个专用功能(或“工作”或“任务”),针对相同功能建立各自用于nvm集260到263中的不同一者的多个ipc。如此,ssd架构200及特定来说控制器220的布置减少或防止控制器220处因同一ipc中多个nvm集的消息、指令及任务的夹压导致的瓶颈。因此,在所公开实施方案中,当关于nvm集260到263中的一者发生延迟时,仅对应于被延迟nvm集的数据通道受影响。
55.iod驱动器的独立数据通道的实例描述于标题为“iod ssd的独立nvm集数据通道(independent nvm set data lanes for iod ssd)”的代理人案卷第117441-0126号中,所述代理人案卷特此以全文引用的方式并入。
56.控制器(例如,控制器120或220)可准备消息(例如,ipc消息、指令、任务等)。每一消息对应于otpu或在otpu中传递。otpu是经优化以实现控制器的处理器/过程之间经由ipc进行通信的低等待时间的传送与处理单位(也称为ipc处理单位)。otpu可经定义及扩缩以满足非易失性存储器(例如但不限于,非易失性存储器140、非易失性存储装置240等)的驱动器配置及数据布置需要。换句话说,otpu可基于存储器硬件的配置及数据布置来定义。
57.考虑到iod驱动器的处理器被共享使得同一处理器可处置所有nvm集的消息,控制器可准备具有可使得能够高效处理消息并提供低等待时间的特性的消息。举例来说,所有otpu或消息的大小被定义为统一(例如,相同)的,以避免跨越nvm集发生不一致处理时序。另外,otpu或消息可为可针对iod nvm集配置的多个集(包含信道及非iod通用驱动器配置的集合)扩缩的。此外,otpu或消息对于nand及fc操作是兼容且最优的。在一些实例中,otpu的大小可跨越具有多个不同库存单位(sku)的ssd是统一的,所述sku具有不同数目个裸片及信道以及其它差异。更进一步,otpu允许处理器/过程保持短处理时间,因此避免潜在瓶颈。
58.在一些实施方案中,用于具有nand快闪存储器装置的非易失性存储器装置的otpu的数据大小可使用以下表达式定义:
59.size
ipc
=n
×c×
p
ꢀꢀ
(1)。
60.n是非易失性存储器上的nand页的大小,c是操作地耦合到每一fc的接口信道的数目(例如,每fc接口信道的数目),且p是非易失性存储器的每一nand裸片上的平面的数目。在一些实施方案中,控制器(例如,控制器220)通常具有独立地控制nand裸片的集的多个fc(例如,fc 255a到255d)。举例来说,在ssd架构200中,c是2。使用控制器的所有快闪信道的otpu可优化fc使用及总体驱动效率。由fc控制的信道的数目通常取决于控制器设计,且因此是在计算otpu的最优大小时考虑的参数。此外,otpu可经由耦合到每一fc的所有信道传递到非易失性存储器的nvm集。
61.图3是图解说明根据一些实施方案的实例传送与处理单位(例如,otpu 300)的框图。参考图1a到3,otpu 300的大小可由控制器例如使用表达式(1)确定。如所展示,被定义otpu 300的非易失性存储器包含操作地耦合到控制器的每一fc的两个接口信道(例如,ch0及ch1),且非易失性存储器的每一nand裸片具有两个平面(例如,p0及p1)。在一个实例中,非易失性存储器的每一nand页是16kb,otpu 300的大小是64kb。在另一实例中,非易失性存
储器的每一nand页是16kb,且非易失性存储器的每一nand裸片具有四个平面(例如,p0到p4),otpu 300的大小是128kb。otpu 300具有对应于4个nand页301到304的大小。如所描述,就otpu(例如但不限于,otpu 300)来说,固件处理器/过程跨越控制器的所有处理器经由ipc传递消息。非易失性存储器的nvm集的otpu经由对应于所述nvm集的独立数据通道来传递。
62.在一些实施方案中,otpu(例如,otpu 300)可充当构建块,所述构建块可以各种适合方式组装及互锁以针对任何ssd配置(例如但不限于,通用非iod配置、iod配置、流配置等)在ssd驱动器上构造数据。otpu可针对具有不同信道及裸片配置的任何sku扩缩。otpu可针对任一代nand快闪存储器装置(包含三电平单元(tlc)、四电平单元(qlc)等)实施。
63.图4a是图解说明根据一些实施方案具有tlc结构的实例裸片400a的框图。参考图1a到4a,多个otpu 300可经组装及互锁以在tlc裸片400a上构造数据。tlc裸片400a具有三个电平,较低电平(由“l”表示)、中间电平(由“m”表示)及较高电平(由“u”表示)。tlc裸片400a具有操作地耦合到控制器的每一fc的两个信道(例如,ch0及ch1)。tlc裸片400a的较低电平l、中间电平m及较高电平u中的每一者的大小对应于otpu 300的大小。因此,三个otpu 300可经组装及互锁以在tlc裸片400a上构造数据而不需要otpu的任何额外部分。
64.图4b是图解说明根据一些实施方案具有qlc结构的实例裸片400b的框图。参考图1a到4b,多个otpu 300可经组装及互锁以在qlc裸片400b上构造数据。qlc裸片400b具有四个电平,较低电平(由“l”表示)、中间电平(由“m”表示)、较高电平(由“u”表示)及最高电平(由“t”表示)。qlc裸片400b具有操作地耦合到控制器的每一fc的两个信道(例如,ch0及ch1)。qlc裸片400b的较低电平l、中间电平m、较高电平u及最高电平t中的每一者的大小对应于otpu 300的大小。因此,四个otpu 300可经组装及互锁以在qlc裸片400b上构造数据而不需要otpu的任何额外部分。
65.图4c是图解说明根据一些实施方案具有通用配置或流配置的实例裸片400c的框图。参考图1a到4c,多个otpu 300可经组装及互锁以在裸片400c上构造数据而不需要otpu的任何额外部分。裸片400c具有三个电平,较低电平(由“l”表示)、中间电平(由“m”表示)及较高电平(由“u”表示)。裸片400c具有八个信道(例如,ch0到ch7)。两个信道操作地耦合到控制器的每一fc。裸片400c的较低电平l、中间电平m及较高电平u中的每一者的大小对应于多个(例如,四个)otpu 300的大小。
66.图4d是图解说明根据一些实施方案的实例iod nvm集400d的框图。参考图1a到4d,多个otpu 300可经组装及互锁以在iod nvm集400d上构造数据而不需要otpu的任何额外部分。iod nvm集400d包含多个裸片,例如但不限于裸片401d、裸片402d、

、裸片410d。裸片401d到410d中的每一者具有多个(例如,三个)otpu 300的大小。iod nvm集400d具有两个信道(例如,ch0及ch1)。两个信道操作地耦合到控制器的fc。iod nvm集400d可为类似于nvm集260的nvm集。iod nvm集400d的大小对应于多个otpu 300的大小。
67.图5是图解说明根据一些实施方案使用otpu 522a、522b、524、526、528a及528b在控制器500内通信的框图。参考图1a到5,控制器220操作地耦合到非易失性存储装置540。控制器500可为控制器120的实例实施方案。非易失性存储装置540可为非易失性存储器,例如但不限于非易失性存储器140或240或具有架构150的非易失性存储器。
68.非易失性存储装置540包含跨越8个信道(例如,ch0到ch7)布置的非易失性存储器
裸片的阵列,其中三个非易失性存储器裸片耦合到每一信道且每一裸片耦合到两个信道。换句话说,非易失性存储装置540包含nand快闪存储器装置阵列。为了清晰起见未展示信道连接。非易失性存储器裸片中的每一者具有多个平面。所属领域的普通技术人员可了解,任何适合数目个裸片可操作地耦合到任何适合数目个信道,且任何数目个信道可耦合到每一裸片。信道ch0到ch7可各自为物理信道或逻辑信道。
69.非易失性存储装置540的非易失性存储器裸片形成隔离区域(物理上隔离的区域)或nvm集560到563。属于同一nvm集的裸片由相同阴影表示。举例来说,操作地耦合到信道ch0及ch1的裸片形成nvm集560。操作地耦合到信道ch2及ch3的裸片形成nvm集561。操作地耦合到信道ch4及ch5的裸片形成nvm集562。操作地耦合到信道ch6及ch7的裸片形成nvm集563。
70.控制器500包含经配置以执行控制器500的各种过程的各种处理器。举例来说,处理器510可为任何适合处理器,例如但不限于,处理器242、246、250a、250b或另一适合处理器/过程。
71.类似于控制器220的固件,控制器500的固件可配置来自非易失性存储装置540中的裸片的任何适合数目个nvm集且可配置相同数目个独立数据通道。换句话说,控制器220的固件可针对每一经配置nvm集配置独立数据通道。
72.如所展示,沿着nvm集560的i/o路径提供第一独立数据通道。第一独立数据通道包含ipc 512a、512b、512d、512e及未展示的一或多个ipc。鉴于fc 555a到nvm集560之间的链路是信道特定的,提供将fc 555a链接到nvm集560的两个ipc 212d及212e。第一独立数据通道仅针对nvm集560且不针对另一nvm集载运消息。
73.沿着nvm集561的i/o路径提供第二独立数据通道。第二独立数据通道包含ipc 514a、514b、514d、514e及未展示的一或多个ipc。鉴于fc 555b到nvm集561之间的链路是信道特定的,提供将fc 555b链接到nvm集561的两个ipc 214d及214e。第二独立数据通道仅针对nvm集561且不针对另一nvm集载运消息。
74.沿着nvm集562的i/o路径提供第三独立数据通道。第三独立数据通道包含ipc 516a、516b、516d、516e及未展示的一或多个ipc。鉴于fc 555c到nvm集562之间的链路是信道特定的,提供将fc 555c链接到nvm集562的两个ipc 216d及216e。第三独立数据通道仅针对nvm集562且不针对另一nvm集载运消息。
75.沿着nvm集563的i/o路径提供第四独立数据通道。第四独立数据通道包含ipc 518a、518b、518d、518e及未展示的一或多个ipc。鉴于fc 555d到nvm集563之间的链路是信道特定的,提供将fc 555d链接到nvm集563的两个ipc 218d及218e。第四独立数据通道仅针对nvm集563且不针对另一nvm集载运消息。
76.沿着ipc 512a到512e、514a到514e、516a到516e及518a到518e或在其中展示的方框是指在ipc 512a到512e、514a到514e、516a到516e及518a到518e中的对应者中载运的消息(例如,指令、任务等)。具有与nvm集260到263中的对应一者的阴影相同的阴影的方框是指与对应nvm集且不与另一nvm集相关的消息。可例如使用表达式(1)准备所述消息中的一些作为本文中所描述的otpu。
77.举例来说,nvm集560的消息经准备作为otpu 522a及522b且由处理器510经由ipc 512a接收。nvm集561的消息经准备作为otpu 524且由处理器510经由ipc 514a接收。nvm集
562的消息经准备作为otpu 526且由处理器510经由ipc 516a接收。nvm集563的消息经准备作为otpu 528a及528b且由处理器510经由ipc 518a接收。处理器510可在不同时间接收otpu 522a、522b、524、526、528b及528b且在不同时间推送otpu 522a、522b、524、526、528b及528b。围绕otpu 522a、522b、524、526、528b及528b的虚垂直方框用于清晰地图解说明otpu 522a、522b、524、526、528b及528b是沿着时间轴在不同时间被接收及推送出。在所展示的实例中,处理器510以otpu 522a、524、522b、528a、526及528b的次序接收所述otpu。在一些实施方案中,处理器510可将otpu 522a、524、522b、528a、526及528b排队以一次处理一个。处理器510处理otpu 522a、524、522b、528a、526及528b的次序是otpu 522a、524、522b、528a、526及528b被接收的次序。即,处理器510以otpu 522a、524、522b、528a、526及528b的次序处理所述otpu。处理器510可实施公平共享调度器来调度otpu 522a、524、522b、528a、526及528b以供以所述次序处理。如所展示,处理器510以otpu 522a、524、522b、528a、526及528b的次序将所述otpu推送出到控制器500的另一处理器(未展示)。调度及处理消息及otpu的其它实例描述于标题为“用于固态驱动器中的输入输出确定性的两层确定性过程间通信调度器(two-layered deterministic inter-process communication scheduler for input output determinism in solid state drives)”的代理人案卷第117441-0128号中,所述代理人案卷特此以全文引用的方式并入。
78.图6是图解说明根据一些实施方案用于定义传送与处理单位的实例过程600的流程图。参考图1a到6,过程600可由控制器120、220或500的固件实施。不管数目还是功能,硬件组件(例如,设置于soc上的处理器/存储装置230、242、246、248、250a、250b、255a到255d、510、555a到555d)一旦被制造便保持不变。控制硬件的固件可针对同一硬件针对通用非iod ssd配置、iod ssd解决方案、流配置等定义otpu。如此,鉴于ssd产品可能需要iod、流及非iod解决方案,同一硬件可在制造后通过固件配置以便以所描述方式定义otpu。
79.在610处,ssd(例如,其控制器)执行第一通电序列。第一通电序列是ssd制造后的第一个通电序列,且在第一通电序列之前未执行其它通电序列。在一些实施方案中,在第一通电序列期间定义otpu。在其它实施方案中,在另一时间定义otpu。
80.在620处,控制器例如基于ssd的非易失性存储器的特性定义otpu来针对ssd的非易失性存储器的多个nvm集传递消息。在一些实施方案中,非易失性存储器的特性包含nand几何结构及nand类型。nand几何结构包含以下各项中的至少一者:非易失性存储器中的nand页的大小、非易失性存储器的每一nand裸片上的平面的数目,或者表征nand几何结构的一或多个其它适合参数。nand类型包含操作地耦合到非易失性存储器的每一快闪控制器的接口信道的数目及/或表征nand类型的一或多个其它适合参数。在一些实施方案中,针对控制器定义的otpu的大小是统一的。otpu的大小可例如使用表达式(1)来定义。
81.非易失性存储器的特性可通过读取装置配置来确定。举例来说,控制器可在第一通电序列期间读取ssd的装置配置文件以设置ssd,包含定义otpu。非易失性存储器的特性可在制造时存储于装置配置文件中。装置配置文件可存储于控制器的任何适合存储器装置中或可从另一装置接收。在一些实施方案中,在第一通电序列期间,控制器可进一步确定iod nvm集或流的数目并启用所述数目个iod nvm集或流、相同数目个独立数据通道及非易失性存储器的nand快闪存储器装置上的数据放置次序。
82.如所描述,otpu中所含的消息在控制器固件的所有模块之间传递,其中所述模块
在控制器的多个处理器上执行。otpu中的每一者可进一步包含用于跨越所有模块、处理器及过程准备及载运otpu(例如,准备待在nand快闪存储器装置上编程的数据以允许从nand快闪存储器装置读取数据等)的属性。此类属性可在框620处定义。
83.在一些实例中,每一otpu包含唯一地识别控制器内的每一otpu的唯一识别符。换句话说,控制器内的任两个otpu均不具有相同识别符。在一些实例中,otpu的唯一id可经由一或多个ipc传递到各种模块、处理器及过程以及从各种模块、处理器及过程传递,使得模块、处理器及过程可参考其中存储optu的属性的共同共享存储器来存取那些属性。这允许针对本文中所描述的各种配置实施一个固件且避免多个定制固件之间的配置差异问题。
84.在一些实例中,每一otpu包含识别被传递otpu的nvm集的nvm集识别符。例如,otpu 522a及522b中的每一者包含识别nvm集560的同一nvm集识别符。在一些实例中,每一otpu包含识别被传递otpu的流的流识别符。在一些实例中,每一otpu包含与otpu对应的遍布信道及平面的nand页的地址。对应于otpu(例如,otpu 522a及522b)的nand页(以及其信道及平面)是指被传递otpu的nvm集(例如,nvm集560)的nand页。举例来说,otpu 522a及522b中的每一者包含遍布信道ch0及ch1以及nvm集560中的裸片的平面的nand页的地址。换句话说,otpu 522a及522b中的每一者包含nvm集560的nand页的地址。在一些实例中,每一otpu包含与otpu对应的nand页的状态信息及/或状况信息。所述状态信息及/或状况信息指示nand页是否可用、nand页是否忙碌、nand页是否被写入以数据、不良页状态、页地址、页程序类型(例如,slc或tlc)、以奇偶校验帧为单位的页位置、预期在页上的数据类型等。
85.在630处,控制器使用在620处定义的otpu针对非易失性存储装置的nvm集传递消息。举例来说,所述消息中的每一者具有otpu大小。举例来说,跨越所有nvm集,所述消息/otpu的大小是统一的。
86.因此,本文中所描述的实施方案涉及控制器内的固件管理的otpu定义,其用以实现低等待时间过程间通信方案以避免iod驱动器中的“嘈杂邻居”效应、解决导致多个nvm集的i/o之间的冲突的控制器问题,多个nvm集的i/o之间的冲突又导致i/o等待时间,即使nand被分割成经隔离nvm集。
87.同一固件可提供iod ssd的各种不同配置及对针对通用非iod ssd设计的控制器内用于每一iod nvm集的i/o路径的管理。此类实施方案允许按比例扩展设计,以避免竞争的方式划分控制器资源(例如但不限于,cpu、硬件组件、存储器等),这将nvm集中的任一者上的i/o工作负载的等待时间与性能折衷。
88.otpu方案可扩展到各种解决方案,例如但不限于对qlc nand及任何未来nand产品的iod解决方案、具有混合iod与流的主机管理的方案的驱动器、在nand上具有多个隔离分区并要求隔离分区之间的等待时间改进的任何驱动器等。
89.提供先前说明以使得所属领域的技术人员能够实践本文中所描述的各种方面。所属领域的技术人员将容易明了对这些方面的各种修改,且本文中所定义的通用原理可应用于其它方面。因此,权利要求书并不打算限于本文中所展示的方面,而是应被赋予与语言权利要求相一致的全部范围,其中以单数形式对元素的参考并不打算意指“一个且仅一个”(除非具体如此陈述),而是意指“一或多个”。除非另有具体陈述,否则术语“一些”是指一或多个。所属领域的普通技术人员已知的或后来知晓的在先前说明通篇描述的各种方面的元素的所有结构及功能等效物明确地以引用的方式并入本文中且打算由权利要求书涵盖。此
外,本文中所公开的任何内容均不打算致力于公共的,而不管此公开是否明确地叙述于权利要求书中。任何权利要求元素均不应被视为构件加功能,除非使用短语“用于

的构件”明确地表达所述元素。
90.应理解,所公开的过程中的步骤的特定次序或层次是说明性方法的实例。基于设计偏好,应理解,可在保持于先前说明的范围内的同时重新布置过程中的步骤的特定次序或层次。所附方法权利要求以样品次序呈现各种步骤的元素,且并不意在限于所呈现的特定次序或层次。
91.提供所公开实施方案的先前说明以使得所属领域的技术人员能够制作或使用所公开的标的物。所属领域的技术人员将易于明了对这些实施方案的各种修改,且在本文中所定义的通用原理可在不背离先前说明的精神或范围的情况下应用于其它实施方案。因此,先前说明不打算限于本文中所展示的实施方案,而是应被赋予与本文中所公开的原理及新颖特征一致的最宽广范围。
92.所图解说明及描述的各种实例仅提供为实例以图解说明权利要求书的各种特征。然而,关于任一给定实例所展示及描述的特征不必限于相关联实例且可与所展示及描述的其它实例一起使用或与其组合。此外,权利要求书不打算受任一实例限制。
93.前述方法说明及过程流程图仅提供为说明性实例且不打算要求或暗示各种实例的步骤必须以所呈现的次序执行。所属领域的技术人员将了解,前述实例中步骤的次序可以任何次序执行。例如“此后”、“接着”、“接下来”等词语不打算限制步骤的次序;这些词语仅用于引导读者贯穿对方法的说明。此外,以单数形式(例如,使用冠词“一(a)”、“一(an)”或“所述(the)”)对权利要求元素的任何参考不应解释为将所述元素限制为单数。
94.结合本文中所公开的实例描述的各种说明性逻辑块、模块、电路及算法步骤可实施为电子硬件、计算机软件或两者的组合。为了清楚地图解说明硬件与软件的此可互换性,上文大体就各种说明性组件、块、模块、电路及步骤的功能性对其进行了描述。此功能性是实施为硬件还是软件取决于特定应用及对总体系统强加的设计约束。所属领域的技术人员可针对每一特定应用以各种方式实施所描述功能性,但此类实施方案决策不应解释为导致背离本公开的范围。
95.用于结合本文中所公开的实例实施所描述的各种说明性逻辑、逻辑块、模块及电路的硬件可利用以下各项来实施或执行:经设计以执行本文中所描述的功能的通用处理器、dsp、asic、fpga或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件或其任一组合。通用处理器可为微处理器,但在替代方案中,处理器可为任何常规处理器、控制器、微控制器或状态机。处理器也可实施为计算装置的组合,例如,dsp与微处理器的组合、多个微处理器的组合、一或多个微处理器联合dsp核心的组合,或任何其它此类配置。替代地,一些步骤或方法可由特定于给定功能的电路系统执行。
96.在一些示范性实例中,所描述的功能可以硬件、软件、固件或其任一组合实施。如果以软件实施,那么所述功能可作为一或多个指令或代码存储在非暂时性计算机可读存储媒体或非暂时性处理器可读存储媒体上。本文中所公开的方法或算法的步骤可以可驻存于非暂时性计算机可读或处理器可读存储媒体上的处理器可执行软件模块体现。非暂时性计算机可读或处理器可读存储媒体可为可由计算机或处理器存取的任何存储媒体。通过实例但非限制的方式,此类非暂时性计算机可读或处理器可读存储媒体可包含ram、rom、
eeprom、快闪存储器、cd-rom或其它光盘存储装置、磁盘存储装置或其它磁性存储装置或者可用于以指令或数据结构的形式存储所要程序代码且可由计算机存取的任何其它媒体。如本文中所使用,磁盘及光盘包含压缩光盘(cd)、激光光盘、光学光盘、数字通用光盘(dvd)、软磁盘及蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘借助激光以光学方式再现数据。以上各项的组合也包含于非暂时性计算机可读及处理器可读媒体的范围内。另外,方法或算法的操作可作为代码及/或指令中的一者或任一组合或者集驻存于可并入到计算机程序产品中的非暂时性处理器可读存储媒体及/或计算机可读存储媒体上。
97.对所公开实例的前述说明经提供以使得所属领域的技术人员能够制作或使用本公开。所属领域的技术人员将容易地明了对这些实例的各种修改,且本文中所定义的通用原理可在不背离本公开的精神或范围的情况下应用于一些实例。因此,本公开不打算限于本文中所展示的实例,而是应被赋予与所附权利要求书以及本文中所公开的原理及新颖特征一致的最宽广范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1