用于ssd任务的主机定义的带宽分配

文档序号:1270527 发布日期:2020-08-25 浏览:1次 >En<

阅读说明:本技术 用于ssd任务的主机定义的带宽分配 (Host-defined bandwidth allocation for SSD tasks ) 是由 S.巴希拉特 J.鲁德利克 M.古德曼 M.阿利森 于 2020-02-19 设计创作,主要内容包括:半导体设备的实施例可包括这样的技术:响应于主机查询将放置选项信息提供给主机;以及基于主机提供的隔离粒度信息创建访问持久存储介质的命名空间。公开并且要求保护其它实施例。(Embodiments of a semiconductor device may include techniques to: providing placement option information to the host in response to a host query; and creating a namespace for accessing the persistent storage media based on the host-provided isolation granularity information. Other embodiments are disclosed and claimed.)

具体实施方式

本文中描述的各种实施例可包括存储器组件和/或到存储器组件的接口。此类存储器组件可包括易失性和/或非易失性(NV)存储器。易失性存储器可以是这样的存储介质,其要求功率来维持由该介质存储的数据的状态。易失性存储器的非限制性示例可包括各种类型的随机存取存储器(RAM),诸如动态RAM(DRAM)或静态RAM(SRAM)。可在存储器模块中使用的一种特定类型的DRAM是同步动态RAM(SDRAM)。在特定实施例中,存储器组件的DRAM可遵守由联合电子装置工程委员会(JEDEC)颁布的标准,诸如对于双倍数据速率(DDR)SDRAM的JESD79F、对于DDR2 SDRAM的JESD79-2F、对于DDR3 SDRAM的JESD79-3F、对于DDR4 SDRAM的JESD79-4A、对于低功率DDR(LPDDR)的JESD209、对于LPDDR2的JESD209-2、对于LPDDR3的JESD209-3、以及对于LPDDR4的JESD209-4(这些标准可在jedec.org上得到)。此类标准(和类似标准)可称为基于DDR的标准,并且实现此类标准的存储装置的通信接口可称为基于DDR的接口。

NVM可以是这样的存储介质,其不需要功率来维持由该介质存储的数据的状态。在一个实施例中,该存储器装置可包括块可寻址存储器装置,诸如基于NAND或NOR技术的那些存储器装置。存储器装置还可包括未来一代非易失性装置,诸如三维(3D)交叉点存储器装置或其它字节可寻址就地写入(write-in-place)非易失性存储器装置。在一个实施例中,存储器装置可以是或者可包括:使用硫系玻璃、多阈值电平(multi-threshold level)NAND闪速存储器、NOR闪速存储器、单电平或多电平相变存储器(PCM)、电阻式存储器、纳米线存储器、铁电晶体管RAM(FeTRAM)、反铁电存储器、结合忆阻器技术的磁阻RAM(MRAM)存储器、包括金属氧化物基、氧空位基(oxygen vacancy base)和导电桥RAM(CB-RAM)的电阻式存储器、或自旋转移力矩(STT)-MRAM的存储器装置、基于自旋电子磁结存储器的装置、基于磁隧道化结(MTJ)的装置、基于DW(畴壁)和SOT(自旋轨道转移)的装置、基于晶闸管(thiristor)的存储器装置、或以上任何项的组合或其它存储器。存储器装置可以指管芯本身和/或指封装的存储器产品。在特定实施例中,具有非易失性存储器的存储器组件可遵守由JEDEC颁布的一个或多个标准,诸如JESD218、JESD219、JESD220-1、JESD223B、JESD223-1或其它合适的标准(本文中引用的JEDEC标准可在jedec.org上得到)。

现在转到图1,电子存储系统10的实施例可包括持久存储介质12、通信地耦合到持久存储介质12的控制器11以及逻辑13,逻辑13通信地耦合到控制器11以:响应于主机查询将放置选项信息提供给主机,并基于主机提供的隔离粒度(isolation granularity)信息创建访问持久存储介质12的命名空间。例如,主机提供的隔离粒度信息可对应于以下项之一:通道、管芯或带隔离信息。在一些实施例中,逻辑13还可被配置成:将数据放置信息传递给主机、基于主机提供的间接粒度信息为命名空间设置间接模式、将无效信息传递给主机、和/或将碎片整理带宽要求信息传递给主机。在本文中的实施例中的任何实施例中,持久存储介质12可包括NAND介质。在一些实施例中,逻辑13可位于各种组件中或与其共置,所述各种组件包括控制器11(例如,在相同管芯上)。

以上控制器11、持久存储介质12、逻辑13和其它系统组件中的每个组件的实施例均可在硬件、软件或其任何合适的组合中实现。例如,硬件实现可包括:可配置逻辑,诸如例如可编程逻辑阵列(PLA)、现场可编程门阵列(FPGA)、复杂可编程逻辑装置(CPLD);或使用诸如例如专用集成电路(ASIC)、互补金属氧化物半导体(CMOS)或晶体管-晶体管逻辑(TTL)技术的电路技术的固定功能性逻辑硬件;或其任何组合。控制器11的实施例可包括通用控制器、专用控制器、存储控制器、存储管理器、存储器控制器、微控制器、通用处理器、专用处理器、中央处理器单元(CPU)等。

备选地或附加地,这些组件中的所有或部分组件可作为存储在机器-或计算机-可读存储介质(诸如随机存取存储器(RAM)、只读存储器(ROM)、可编程ROM(PROM)、固件、闪速存储器等)中要由处理器或计算装置执行的逻辑指令集在一个或多个模块中被实现。例如,实行组件操作的计算机程序代码可以以一个或多个操作系统(OS)适用的/适当的编程语言的任何组合来编写,所述编程语言包括面向对象的编程语言(诸如PYTHON、PERL、JAVA、SMALLTALK、C++、C#或诸如此类)以及常规的过程编程语言(诸如“C”编程语言或类似的编程语言)。例如,持久存储介质12或其它系统存储器可存储指令集,该指令集在由控制器11执行时使系统10实现系统10的一个或多个组件、特征或方面(例如,逻辑13,响应于主机查询将放置选项信息提供给主机,基于主机提供的隔离粒度信息创建访问持久存储介质12的命名空间等)。

现在转到图2,半导体设备20的实施例可包括一个或多个衬底21以及耦合到所述一个或多个衬底21的逻辑22,其中逻辑22至少部分地在可配置逻辑和固定功能性硬件逻辑中的一个或多个中被实现。耦合到一个或多个衬底21的逻辑22可配置成:响应于主机查询将放置选项信息提供给主机,并基于主机提供的隔离粒度信息创建访问持久存储介质的命名空间。例如,主机提供的隔离粒度信息可对应于以下项之一:通道、管芯或带隔离信息。在一些实施例中,逻辑22还可被配置成:将数据放置信息传递给主机、基于主机提供的间接粒度信息为命名空间设置间接模式、将无效信息传递给主机、和/或将碎片整理带宽要求信息传递给主机。在本文中的实施例中的任何实施例中,持久存储介质可包括NAND介质。在一些实施例中,耦合到一个或多个衬底21的逻辑22可包括位于一个或多个衬底21内的晶体管沟道区域。

设备20的其它组件和逻辑22的实施例可以在硬件、软件或其任何组合(至少包括硬件中的部分实现)中被实现。例如,硬件实现可包括:可配置逻辑,诸如例如PLA、FPGA、CPLD;或使用诸如例如ASIC、CMOS或TTL技术的电路技术的固定功能性逻辑硬件;或者其任何组合。附加地,这些组件的部分可作为存储在机器-或计算机-可读存储介质(诸如RAM、ROM、PROM、固件、闪速存储器等)中将由处理器或计算装置来执行的逻辑指令集在一个或多个模块中被实现。例如,实行组件操作的计算机程序代码可以以一个或多个OS适用的/适当的编程语言的任何组合来编写,所述编程语言包括面向对象的编程语言(诸如PYTHON、PERL、JAVA、SMALLTALK、C++、C#或诸如此类)以及常规的过程编程语言(诸如“C”编程语言或类似的编程语言)。

设备20可实现方法30(图3A到3C)的一个或多个方面或本文中论述的实施例中的任何实施例。在一些实施例中,所图示的设备20可包括一个或多个衬底21(例如,硅、蓝宝石、砷化镓)以及耦合到所述(一个或多个)衬底21的逻辑22(例如,晶体管阵列和其它集成电路/IC组件)。逻辑22可至少部分地在可配置逻辑或固定功能性逻辑硬件中实现。在一个示例中,逻辑22可包括位于(例如,嵌入)(一个或多个)衬底21内的晶体管沟道区域。因此,逻辑22和(一个或多个)衬底21之间的界面可能不是突变结。逻辑22还可被认为包括在(一个或多个)衬底21的初始晶圆上生长的外延层。

现在转到图3A到3C,管理存储设备的方法30的实施例可包括:在方框31,响应于主机查询将放置选项信息提供给主机;以及在方框32,基于主机提供的隔离粒度信息创建访问持久存储介质的命名空间。例如,在方框33,主机提供的隔离粒度信息可对应于以下项之一:通道、管芯或带隔离信息。方法30的一些实施例还可包括:在方框34,将数据放置信息传递给主机;在方框35,基于主机提供的间接粒度信息为命名空间设置间接模式;在方框36,将无效信息传递给主机;和/或在方框37,将碎片整理带宽要求信息传递给主机。在本文中的实施例中的任何实施例中,在方框38,持久存储介质可包括NAND介质。

方法30的实施例可在系统、设备、计算机、装置等(例如诸如本文中所描述的那些)中被实现。更特定地,方法30的硬件实现可包括:可配置逻辑,诸如例如PLA、FPGA、CPLD;或使用诸如例如ASIC、CMOS或TTL技术的电路技术的固定功能性逻辑硬件;或者其任何组合。备选地或附加地,方法30可作为存储在机器-或计算机-可读存储介质(诸如RAM、ROM、PROM、固件、闪速存储器等)中将由处理器或计算装置来执行的逻辑指令集在一个或多个模块中被实现。例如,实行组件操作的计算机程序代码可以以一个或多个OS适用的/适当的编程语言的任何组合来编写,所述编程语言包括面向对象的编程语言(诸如PYTHON、PERL、JAVA、SMALLTALK、C++、C#或诸如此类)以及常规的过程编程语言(诸如“C”编程语言或类似的编程语言)。

例如,方法30可在如下文结合示例23至29描述的计算机可读介质上被实现。方法30的实施例或部分可以在固件、应用(例如,通过应用编程接口(API))中或操作系统(OS)上运行的驱动器软件中被实现。附加地,逻辑指令可包括汇编程序(assembler)指令、指令集架构(ISA)指令、机器指令、与机器相关的指令、微代码、状态设置数据、用于集成电路的配置数据、个性化电子电路和/或硬件固有的其它结构组件(例如,主机处理器、中央处理单元/CPU、微控制器等)的状态信息。

一些实施例可有利地提供高级数据管理,其包括用于垃圾收集、介质管理任务和数据放置选择的主机定义的NAND通道带宽分配。一些实施例可克服关于架构集中(architectural convergence)的问题。例如,在常规SSD中,各种各样的技术可解决SSD中具有明显重叠的各种问题,并且着重于解决诸如服务质量(QoS)和耐久性管理的问题的部分。例如,NVMe集、IO确定性(determinism)控制和直接放置是解决QoS和/或耐久性管理的技术的示例。

IO确定性将驱动装置置于确定性模式中,但是不允许任何垃圾收集或介质管理任务。IO确定性是对NVMe集的特征的添加。NVMe集使嘈杂的相邻效应最小化。然而,这些特征以二进制模式(例如,全有或全无)利用SSD能力,并且不能在独立的基础上工作。

在实际的工作负载变化的情况下,预测分配到确定性模式的时间可能是困难的。随机的工作负载将需要更多的碎片整理(defrag)。顺序工作负载(sequential workload)将不需要很多的碎片整理。混合工作负载将具有不同的计时。在将驱动装置置于非确定性模式之后,碎片整理可能不以最佳方式消耗后端带宽。

直接放置导致在CPU级维护(maintain)表映射和文件转换层(FTL)算法的主机开销,这降低应用使用的CPU带宽。一些客户对开放通道是乐观的,而其他客户则在等待行业采用。

实际上,管理SSD的技术远比简单地知道工作负载类型更高级和复杂。一些最终用户可能更喜欢用他们自己的方式来解决各种SSD问题。各种特征集可以用自顶向下的方式解决一些SSD问题。例如,其它技术的数量、开放通道(例如,OCSSD)、耐久性群组、集、命名空间、流和区可能着重于减少或最小化写入放大并提高QoS。这些解决方案中的许多解决方案是重叠的,并且相对于彼此以正交方式工作。

现在转到图4,说明性表格示出与保证SSD QoS和最大化SSD耐久性有关的各种SSD管理特征,其中在表格条目中由交叉阴影图案指示各种特征之间的相关性重叠(dependency overlap)。如图4中所示,在多个特征之间可存在明显的重叠。改变一个特征中的属性可能影响另一个特征。例如,耐久性群组是集的函数,命名空间可能与IO确定性有关等等。一些其它技术可能要求主机完全负责控制驱动行为(例如,OCSSD:主机将数据物理地放置到管芯,集:主机将数据物理地放置到通道中等),或者可将数据放置完全隔离到SSD。关于开放通道技术的一问题是管理数据放置和NAND介质管理所需的复杂性和增加的主机CPU资源利用率。关于隔离的SSD技术的一问题是:主机将数据物理地放置在可用NAND管芯拓扑内的依赖性可能导致不可预测的性能。图4中标识的各种特征解决了各种特定问题,但是可能不够灵活以解决其它问题或各种各样并发的、竞争的需要(例如,客户A:寻找集,客户B:寻找流,客户C:寻找FTL精简版(lite),客户D:寻找流等)。

有利地,一些实施例可提供单个且简单的解决方案来解决以上问题中的一个或多个。例如,一些实施例可提供在主机或装置级运行FTL的选项,从而有利地提供由主机控制数据放置和碎片整理的灵活性。特别地,一些实施例可提供这样的技术,该技术通过允许主机控制介质管理任务的后端带宽来控制碎片整理和介质管理任务。一些实施例还可包括使得装置和主机能够交换信息的技术,其能够实现关于可在所有级别保证装置性能的碎片整理和主机带宽分配的智能决策做出过程。一些其它系统可提供各种NAND管理特征,其中在主机级维护FTL(例如,着重于介质管理)。相比之下,一些实施例可能够实现在装置或主机级执行FTL,并且可着重于数据管理。

现在转到图5,电子处理系统50的实施例可包括主机51、存储装置52(例如,SSD)以及通信地耦合在主机51和装置52之间的高级数据管理53模块。在一些实施例中,高级数据管理53可提供装置52到主机51通信通道以用于高级数据管理,所述高级数据管理包括例如:1)随时间的无效率;2)基于a)读取要求、b)写入要求、c)数据寿命和/或d)隔离要求的最佳数据放置选项;和/或3)对于a)主机、b)碎片整理和/或c)介质管理的带宽分配。

有利地,一些实施例可提供对于主机透明的(transparent)FTL实现。一些实施例可包括这样的技术,该技术允许主机通过指定隔离粒度(例如,基于应用要求)将数据物理地放置在命名空间中。主机可通过使用日志页来查询可用的放置选项。然后,主机可选择通道、管芯或带隔离。存储装置可将数据放置细节传回给主机。在一些实施例中,主机可在以上命名空间中指定间接粒度(例如,管芯级间接、带级间接、4K间接、64K间接等)。在一些实施例中,装置可将无效和碎片整理带宽要求传递给主机。主机可利用来自装置的数据来优化数据放置,并为碎片整理分配特定带宽。然后,装置可在主机定义的带宽级别上限制(throttle)主机输入/输出(I/O)和碎片整理。

一些实施例可有利地消除对主机维护完整FTL的需要。一些实施例还可消除对多个特征的组合的依赖性或需要以满足特定需要。一些实施例可为主机提供直接控制数据放置和碎片整理以达到不同的系统级要求的技术。一些实施例可使得主机能够着重于优化数据放置而不是管理整个SSD。一些实施例可包括允许装置引导主机做出最佳数据放置决策的技术。一些实施例还可维护SSD利用多个其它技术(诸如分区命名空间和开放通道)的益处的能力。在一些实施例中,主机不必选择直接放置,而是可将选择推迟到装置,并且装置将向主机提供放置信息。如果需要,主机可维护到主机的小型映射表或查询信息。一些实施例可有利地创建传输系统,该传输系统仍然允许SSD和主机使用它们自己各自的优势来提供进一步创新。

如上文所论述,一些实施例可与开放通道SSD的技术能力兼容以提供主机可管理的FTL。这使得主机能够为了QoS、耐久性、写入放大(WA)和数据隔离益处而完美地放置数据。附加地,一些实施例不要求主机维护完整FTL,但是,有利地提供管理数据放置和带宽分配的益处。

现在转到图6,电子处理系统60的实施例可包括主机部分61、存储装置部分62(例如,SSD)以及通信地耦合在主机部分61和装置部分62之间的高级数据管理接口63。主机部分61可包括工作负载优化引擎64。装置部分可包括主机控制和访问管理技术65、装置访问API技术66和装置功能性开放通道技术67。装置部分62还可包括数据管理技术68(包括对主机透明的FTL)以及装置管理的FTL介质管理技术69。如图6中所图示的,虚线上方的主机部分61可包括主机驱动器和包括工作优化引擎64(例如,包括数据放置优化引擎)的主机应用软件。引擎64可做出利用高级数据管理接口63来达到最佳性能的决策。

工作优化引擎64可包括这样的决策,诸如对于具有500 MB失效率的顺序写入密集型应用,该应用不要求碎片整理带宽。装置部分62可通过接口63为最佳数据放置提供选项(例如,诸如群组、并行单元(PU)、大块(chunk)和容量),并且主机部分61可启动数据命令。对于另一个读取密集型的应用,主机部分61可选择提供与其它应用的通道隔离。在任何耐久性管理操作的情况下,装置部分62可为数据重定位要求和选项提供建议。

例如,接口63可包括用于以下方面的技术:1)主机部分61获取关于当前可用的放置选项的日志页;2)装置部分62通过日志数据提供当前选项;主机部分61可维护该数据,并对于接下来的放置利用该数据以最小化管理命令;3)主机部分61将命名空间与属性(例如,工作负载类型、主机I/O的预期带宽、碎片整理的预期带宽等)附连在一起;4)如果需要更多的碎片整理带宽,则装置部分62向主机部分61发送异步事件;5)主机数据放置优化引擎(例如,引擎64的一部分)查询当前的失效表和速率以优化未来的数据放置;6)在主机部分61利用在运行的(on the fly)读取和写入隔离(例如,因为主机部分61可查询物理数据放置);7)使过度供应(over provisioning)需求对主机部分61可见,并且可执行主机级优化;8)针对最佳数据放置决策,装置部分62与主机部分61共享编程/擦除(P/E)循环;以及9)主机部分61为命名空间或区定义间接模式。

现在转到图7,说明性存储映射的实施例示出可如何在单个存储装置中组织不同应用的示例。每个块对应于任意的存储单元。例如,每个块可对应于管芯或管芯群组。如所图示的,顺序应用可映射到一个存储单元。包括具有高过度供应的随机数据的应用可映射到两个存储单元。要求高性能带宽的应用可映射到四个存储单元。高带宽要求的读取密集型应用可映射到四个存储单元。低带宽要求的写入密集型应用可映射到两个存储单元。应用中的每个可彼此逻辑地和物理地隔离。

有利地,一些实施例包括这样的技术,该技术允许主机着重于应用要求并优化放置和带宽而不是管理整个SSD。图7示出主机可如何优化不同的应用要求的示例,其中不同类型的应用以非常灵活的方式映射到管芯或管芯群组。

本文中论述的技术可在各种计算系统(例如,包括:诸如桌上型计算机、工作站、服务器、机架系统(rack system)等的非移动计算装置;诸如智能电话、平板、超级移动个人计算机(UMPC)、膝上型计算机、ULTRABOOK计算装置、智能手表、智能眼镜、智能手环等的移动计算装置;和/或诸如物联网(IoT)装置(例如,传感器、相机等)的客户端/边缘装置)中被提供。

现在转到图8,计算系统100的实施例可包括一个或多个处理器102-1到102-N(本文中一般称为“处理器(processors或processor)102”)。处理器102可经由互连或总线104通信。每个处理器102可包括各种组件,为清楚起见,仅参考处理器102-1来论述所述组件中的一些。因此,剩余处理器102-2到102-N中的每个可包括参考处理器102-1论述的相同或类似的组件。

在一些实施例中,处理器102-1可包括一个或多个处理器核106-1到106-M(本文中称为“核(cores)106”或更一般地称为“核(core)106”)、高速缓存108(在各种实施例中,其可以是共享高速缓存或专用高速缓存)和/或路由器110。处理器核106可在单个集成电路(IC)芯片上实现。此外,该芯片可包括一个或多个共享和/或专用高速缓存(诸如高速缓存108)、总线或互连(诸如总线或互连112)、逻辑170、存储器控制器或其它组件。

在一些实施例中,路由器110可用来在系统100和/或处理器102-1的各种组件之间通信。此外,处理器102-1可包括多于一个路由器110。此外,众多路由器110可通信以能够实现处理器102-1内部或外部的各种组件之间的数据路由。

高速缓存108可存储由处理器102-1的一个或多个组件(诸如核106)利用的数据(例如,包括指令)。例如,高速缓存108可在本地缓存存储在存储器114中的数据以用于由处理器102的组件更快速地访问。如图8中所示,存储器114可经由互连104与处理器102通信。在一些实施例中,高速缓存108(其可被共享)可具有各种级别,例如,高速缓存108可以是中间级高速缓存和/或最后一级高速缓存(LLC)。而且,核106中的每个可包括1级(L1)高速缓存(116-1)(本文中一般称为“L1高速缓存116”)。处理器102-1的各种组件可通过总线(例如,总线112)和/或存储器控制器或集线器直接与高速缓存108通信。

如图8中所示,存储器114可通过存储器控制器120耦合到系统100的其它组件。存储器114可包括易失性存储器,并且可互换地称为主存储器。尽管存储器控制器120被示为耦合在互连104和存储器114之间,但是存储器控制器120也可位于系统100中的其它位置。例如,在一些实施例中,存储器控制器120或其部分可在处理器102之一内被提供。

系统100可经由网络接口128与其它装置/系统/网络通信(例如,系统100经由有线或无线接口与计算机网络和/或云129通信)。例如,网络接口128可包括天线(未示出)以与网络/云129无线地(例如,经由电气和电子工程师协会(IEEE)802.11接口(包括IEEE802.11a/b/g/n/ac等)、蜂窝接口、3G、4G、LTE、蓝牙(BLUETOOTH)等)通信。

系统100还可包括非易失性(NV)存储装置,诸如经由SSD控制器逻辑125耦合到互连104的SSD 130。因此,逻辑125可控制由系统100的各种组件对SSD 130的访问。此外,尽管在图8中将逻辑125示为直接耦合到互连104,但是逻辑125可备选地经由存储总线/互连(诸如SATA(串行高级技术附件)总线、外围组件互连(PCI)(或PCI EXPRESS(PCIe)接口)、NVMEXPRESS(NVMe)等)与系统100的一个或多个其它组件通信(例如,其中存储总线经由像总线桥、芯片集等的一些其它逻辑耦合到互连104)。附加地,在各种实施例中,逻辑125可结合到存储器控制器逻辑(诸如,参考图9论述的那些逻辑)中或在相同集成电路(IC)装置上被提供(例如,在与SSD 130相同的IC装置上或在与SSD 130相同的外壳中)。SSD 130可以是OCSSD兼容的,或者可以以其它方式包括这样的技术,该技术允许主机/租户/应用直接访问NAND管芯和/或更细粒度控制数据放置。

此外,逻辑125和/或SSD 130可耦合到一个或多个传感器(未示出)以接收指示一个或多个传感器的状态或由一个或多个传感器检测的值的信息(例如,以一个或多个位或信号的形式)。可邻近于系统100(或本文中论述的其它计算系统)的组件提供(这个或这些)传感器以感测影响系统/平台的功率/热行为的各种因素(诸如温度、操作频率、操作电压、功耗和/或核间通信活动等)的变化,所述组件包括逻辑160、逻辑125、SATA总线、SSD总线、SSD 130、处理器102外部的组件、互连104或112、核106等。

如图8中所图示的,SSD 130可包括逻辑160,逻辑160可在与SSD 130相同的外壳中和/或完全集成在SSD 130的印刷电路板(PCB)上。系统100可包括SSD 130外部的另外的逻辑170。有利地,逻辑160和/或逻辑170可包括这样的技术,该技术实现方法30(图3A到3C)的一个或多个方面、系统50、系统60和/或本文中论述的高级数据管理特征中的任何高级数据管理特征。例如,逻辑160可包括这样的技术,该技术响应于来自处理器102的查询将放置选项信息提供给处理器102并基于由处理器102提供的隔离粒度信息创建访问SSD 130的命名空间。例如,隔离粒度信息可对应于以下项之一:通道、管芯或带隔离信息。在一些实施例中,逻辑160可进一步配置成:将数据放置信息传递给处理器102,基于由处理器102提供的间接粒度信息为命名空间设置间接模式,将无效信息传递给处理器102,和/或将碎片整理带宽要求信息传递给处理器102。例如,逻辑170可包括这样的技术,该技术实现本文中描述的各种实施例的主机装置/计算机系统/代理方面(例如,从SSD 130请求信息、向SSD 130传递信息等)。

在其它实施例中,可以用任何合适的持久存储技术/介质来替换SSD 130。在一些实施例中,逻辑160/170可耦合到一个或多个衬底(例如,硅、蓝宝石、砷化镓、印刷电路板(PCB)等),并且可包括位于所述一个或多个衬底内的晶体管沟道区域。在其它实施例中,SSD 130可包括两种或更多种类型的持久存储介质,并且可视为混合SSD。例如,存储设备的主体(bulk)可以是NAND,并且SSD可进一步包括一些更快速的、更小粒度的可访问(例如,字节可寻址)NVM,诸如INTEL 3DXP介质(例如,可利用它来实现传输缓冲器)。备选地或附加地,SSD 130可包括持久的易失性存储器(例如,电池或电容器备份的DRAM或SRAM)。例如,一些SSD可包括具有储能电容器的功率损失迫近(POWER LOSS IMMINENT)(PLI)技术。储能电容器可提供足够的能量(功率)以完成正在进行中的任何命令,并确保将DRAM/SRAM中的任何数据提交给非易失性NAND介质。电容器可充当SSD的备用电池。如图8中所示,逻辑160和/或逻辑170的特征或方面可分布在整个系统100中,和/或与系统100的各种组件共置/集成。

图9图示了根据实施例的SSD 130的各种组件的框图。如图9中所图示的,逻辑160可位于诸如SSD 130或控制器382等内部的各种位置中,并且可包括如结合图8论述的类似技术。SSD 130包括控制器382(控制器382又包括一个或多个处理器核或处理器384以及存储器控制器逻辑386)、高速缓存138、RAM 388、固件存储设备390和一个或多个存储器模块或管芯392-1至392-N(它们可包括NAND闪存、NOR闪存或其它类型的非易失性存储器)。存储器模块392-1至392-N经由一个或多个存储器通道或总线耦合到存储器控制器逻辑386。而且,SSD 130经由接口(诸如SATA、SAS、PCIe、NVMe等接口)与逻辑125通信。参考图1-8论述的特征/方面/操作中的一个或多个可由图9的组件中的一个或多个执行。处理器384和/或控制器382可压缩/解压缩(或以其它方式引起压缩/解压缩)写入到存储器模块392-1至392-N或从存储器模块392-1至392-N读取的数据。而且,可将图1-8的特征/方面/操作中的一个或多个编程到固件390中。此外,SSD控制器逻辑125也可包括逻辑160。

附加注释和示例:

示例1包括一种供持久存储介质使用的半导体设备,该半导体设备包括一个或多个衬底,以及耦合到所述一个或多个衬底的逻辑,其中所述逻辑至少部分地在可配置逻辑和固定功能性硬件逻辑中的一个或多个中被实现,所述逻辑耦合到所述一个或多个衬底以:响应于主机查询将放置选项信息提供给主机,并基于主机提供的隔离粒度信息创建访问持久存储介质的命名空间。

示例2包括示例1和3至8中的任何示例的设备,其中主机提供的隔离粒度信息对应于以下项之一:通道、管芯或带隔离信息。

示例3包括示例1至2和4至8中的任何示例的设备,其中逻辑进一步要将数据放置信息传递给主机。

示例4包括示例1至3和5至8中的任何示例的设备,其中逻辑进一步要基于主机提供的间接粒度信息为命名空间设置间接模式。

示例5包括示例1至4和6至8中的任何示例的设备,其中逻辑进一步要将无效信息传递给主机。

示例6包括示例1至5和7至8中的任何示例的设备,其中逻辑进一步要将碎片整理带宽要求信息传递给主机。

示例7包括示例1至6和8中的任何示例的设备,其中持久存储介质包括NAND介质。

示例8包括示例1至7中的任何示例的设备,其中耦合到一个或多个衬底的逻辑包括位于一个或多个衬底内的晶体管沟道区域。

示例9包括一种电子存储系统,该电子存储系统包括:持久存储介质;通信地耦合到持久存储介质的控制器;以及逻辑,该逻辑通信地耦合到控制器以:响应于主机查询将放置选项信息提供给主机,并基于主机提供的隔离粒度信息创建访问持久存储介质的命名空间。

示例10包括示例9和11至15中的任何示例的系统,其中主机提供的隔离粒度信息对应于以下项之一:通道、管芯或带隔离信息。

示例11包括示例9至10和12至15中的任何示例的系统,其中逻辑进一步要将数据放置信息传递给主机。

示例12包括示例9至11和13至15中的任何示例的系统,其中逻辑进一步要基于主机提供的间接粒度信息为命名空间设置间接模式。

示例13包括示例9至12和14至15中的任何示例的系统,其中逻辑进一步要将无效信息传递给主机。

示例14包括示例9至13和15中的任何示例的系统,其中逻辑进一步要将碎片整理带宽要求信息传递给主机。

示例15包括示例9至14中的任何示例的系统,其中持久存储介质包括NAND介质。

示例16包括一种管理存储设备的方法,该方法包括:响应于主机查询将放置选项信息提供给主机;以及基于主机提供的隔离粒度信息创建访问持久存储介质的命名空间。

示例17包括示例16和18至22中的任何示例的方法,其中主机提供的隔离粒度信息对应于以下项之一:通道、管芯或带隔离信息。

示例18包括示例16至17和19至22中的任何示例的方法,进一步包括将数据放置信息传递给主机。

示例19包括示例16至18和20至22中的任何示例的方法,进一步包括基于主机提供的间接粒度信息为命名空间设置间接模式。

示例20包括示例16至19和21至22中的任何示例的方法,进一步包括将无效信息传递给主机。

示例21包括示例16至20和22中的任何示例的方法,其中逻辑进一步要将碎片整理带宽要求信息传递给主机。

示例22包括示例16至21中的任何示例的方法,其中持久存储介质包括NAND介质。

示例23包括至少一个计算机可读存储介质,所述至少一个计算机可读存储介质包括指令集,该指令集在由计算装置执行时促使计算装置响应于主机查询将放置选项信息提供给主机并基于主机提供的隔离粒度信息创建访问持久存储介质的命名空间。

示例24包括示例23和25至29中的任何示例的至少一个计算机可读存储介质,其中主机提供的隔离粒度信息对应于以下项之一:通道、管芯或带隔离信息。

示例25包括示例23至24和26至29中的任何示例的至少一个计算机可读存储介质,所述至少一个计算机可读存储介质包括进一步的指令集,该进一步的指令集在由计算装置执行时促使计算装置将数据放置信息传递给主机。

示例26包括示例23至25和27至29中的任何示例的至少一个计算机可读存储介质,所述至少一个计算机可读存储介质包括进一步的指令集,该进一步的指令集在由计算装置执行时促使计算装置基于主机提供的间接粒度信息为命名空间设置间接模式。

示例27包括示例23至26和28至29中的任何示例的至少一个计算机可读存储介质,所述至少一个计算机可读存储介质包括进一步的指令集,该进一步的指令集在由计算装置执行时促使计算装置将无效信息传递给主机。

示例28包括示例23至27和29中的任何示例的至少一个计算机可读存储介质,所述至少一个计算机可读存储介质包括进一步的指令集,该进一步的指令集在由计算装置执行时促使计算装置将碎片整理带宽要求信息传递给主机。

示例29包括示例23至28中的任何示例的至少一个计算机可读存储介质,其中持久存储介质包括NAND介质。

示例30包括一种存储管理设备,该存储管理设备包括:用于响应于主机查询将放置选项信息提供给主机的部件;以及用于基于主机提供的隔离粒度信息创建访问持久存储介质的命名空间的部件。

示例31包括示例30和32至36中的任何示例的存储管理设备,其中主机提供的隔离粒度信息对应于以下项之一:通道、管芯或带隔离信息。

示例32包括示例30至31和33至36中的任何示例的存储管理设备,该存储管理设备进一步包括用于将数据放置信息传递给主机的部件。

示例33包括示例30至32和34至36中的任何示例的存储管理设备,该存储管理设备进一步包括用于基于主机提供的间接粒度信息为命名空间设置间接模式的部件。

示例34包括示例30至33和35至36中的任何示例的存储管理设备,该存储管理设备进一步包括用于将无效信息传递给主机的部件。

示例35包括示例30至34和36中的任何示例的存储管理设备,该存储管理设备进一步包括用于将碎片整理带宽要求信息传递给主机的部件。

示例36包括示例30至35中的任何示例的存储管理设备,其中持久存储介质包括NAND介质。

实施例适用于供所有类型的半导体集成电路(“IC”)芯片使用。这些IC芯片的示例包括但不限于处理器、控制器、芯片集组件、可编程逻辑阵列(PLA)、存储器芯片、网络芯片、片上系统(SoC)、SSD/NAND控制器ASIC以及诸如此类。另外,在附图中的一些中,用线表示信号导体线(signal conductor line)。一些可能不同,以指示更多组成的信号路径,具有数字标号,以指示多个组成信号路径,和/或在一个或多个端部具有箭头,以指示主要信息流方向。然而,这不应以限制性方式来理解。相反,此类添加的细节可结合一个或多个示例性实施例使用以便于更容易地理解电路。不管是否具有附加信息,任何表示的信号线实际上都可包括一个或多个信号,所述一个或多个信号可在多个方向中行进,并且可以用任何合适类型的信号方案来实现,例如用差分对(differential pair)实现的数字的或模拟的线、光纤线和/或单端线。

可能已经给出了示例尺寸/模型/值/范围,然而实施例不限于此。由于制造技术(例如,光刻法(photolithography))随时间日益成熟,预期可能制造出更小尺寸的装置。另外,为了说明和论述的简单,并且为了不混淆实施例的某些方面,可或可不在图内示出到IC芯片和其它组件的众所周知的功率/地连接。此外,可以以框图的形式示出布置以免混淆实施例,并且还考虑到以下事实:关于此类框图布置的实现的详情(specifics)高度地依赖于实施例要在其内被实现的平台,即,此类详情应该完全在本领域技术人员的知识范围(purview)内。在阐述特定细节(例如,电路)以便描述示例实施例的情况下,对本领域技术人员来说应该显而易见的是,能在没有这些特定细节或有这些特定细节的变化的情况下实践实施例。因此,本描述应视为是说明性的而不是限制性的。

术语“耦合”在本文中可用来指所讨论的(in question)组件之间的任何类型的(直接或间接)关系,并且可适用于电的、机械的、流体的、光的、电磁的、电机的或其它的连接。另外,术语“第一”、“第二”等在本文中可仅被用来便于论述,并且除非另有指示,否则不带特定时间的或按时间顺序的意义。

如在本申请中和在权利要求中所使用的,通过术语“……中的一个或多个”连接的项目列表可意指所列项目的任何组合。例如,短语“A、B和C中的一个或多个”和短语“A、B或C中的一个或多个”两者都可意指:A;B;C;A和B;A和C;B和C;或A、B和C。

本领域技术人员将从以上描述领会到,能以各种形式来实现实施例的广泛技术。因此,尽管已经结合实施例的特定示例描述了实施例,但是实施例的真实范围不应被如此限制,因为依据对附图、说明书和以下权利要求的研究,其它修改对技术从业人员而言将变得显而易见。

22页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:虚拟化超大规模环境中的数据管理的装置和方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类