用本地BMC在结构上NVMe内分配共享资源的系统、设备和方法与流程

文档序号:15615178发布日期:2018-10-09 21:11阅读:287来源:国知局

本申请要求于2017年3月15日提交的标题为“methodforusinglocationbmctoallocatesharedgpuresourcesinsidenvmeoverfabricssystem”的临时专利申请no.62/471,942的优先权。该在先提交的申请的主题通过引用并入本文。

本描述涉及处理数据,并且更具体地,涉及使用本地bmc来在结构上nvme(nvmeoverfabrics)系统内分配共享的gpu资源。



背景技术:

基板管理控制器(bmc)通常是专用服务处理器,其使用传感器监测计算机、网络服务器或其他硬件装置的物理状态,并通过独立的连接与系统管理员通信。bmc通常是智能平台管理接口(ipmi)的一部分,并通常包含在待监测装置的主板或主电路板中。

基板管理控制器(bmc)经常提供ipmi架构中的智能。其通常是嵌入在计算机(通常是服务器)的主板上的专用微控制器。bmc经常管理系统管理软件和平台硬件之间的接口。

通常,内置于计算机系统中的不同类型的传感器向bmc报告诸如温度、冷却风扇速度、电力状态、操作系统(os)状态等参数。bmc经常监测所述传感器,并且如果任何参数不在预设范围内,可以向系统管理员发送警报,指示所述系统的潜在故障。管理员还可以与bmc远程通信,以采取一些纠正动作,诸如为了例如使挂起的操作系统重新运行而重置系统或重新启动系统。这些能力节省了系统的总拥有成本。

快速外围组件互连(peripheralcomponentinterconnect(pci)express,简称为pcie或pci-e)是一种高速串行计算机扩展总线标准,其被设计为取代旧的总线标准。pcie具有对旧标准的大量改进,包括:更高的最大系统总线吞吐量、更低的输入/输出(i/o)引脚数和更小的物理空间、针对总线装置的更好的性能缩放、更详细的错误检测和报告机制(例如,高级错误报告(advancederrorreporting))和本机热插拔功能。pcie标准的较新版本为i/o虚拟化提供硬件支持。pciexpress是基于点对点拓扑结构的,其中独立的串行链路将每个装置连接到根复合体(主机)。在总线协议方面,pciexpress通信通常封装在数据包中。

快速非易失性存储器(non-volatilememory(nvm)express,简称为nvme)或非易失性存储器主机控制器接口规范(nvmhci)是用于访问附着(在原始版本中,附着到pcie总线)的非易失性存储介质的逻辑装置接口规范。非易失性存储器通常是以固态驱动器(ssd)形式出现的闪存。作为逻辑装置接口,nvmexpress从头进行设计,以利用基于闪存的存储装置的低延迟和内部并行性,反映了当代的cpu、平台和应用的并行性。

nvme是用于在主机和外围目标存储装置或系统之间连接和传送数据的小型计算机系统接口(scsi)(或者更具体地,串行连接scsi)标准的替代方案。scsi在1986年成为标准,当时硬盘驱动器(hdd)和磁带是主要的存储介质。nvme被设计用于更快速的介质,如固态驱动器(ssd)和基于后闪存(post-flashmemory)的技术。

nvme和结构上nvme(nvme-of、nvme/f、nvmef或nvmf)之间的主要区别之一是用于发送和接收命令和响应的机制。结构上nvme使用基于消息的模型在主机和目标存储装置之间通信。结构上nvme支持使用替代传输(例如,替代pcie的传输)来扩展nvme主机装置和nvme存储驱动器或子系统可以连接的距离。

nvme的结构传输可以包括:

使用远程直接存储器访问(rdma)的结构上nvme,此类的变型包括会聚以太网上rdma(roce或erdma)和针对以太网和infiniband的互联网广域rdma协议(iwarp);以及

使用光纤通道的结构上nvme(fc-nvme),光纤通道允许在其上有其他协议(如nvme、scsi和ibm的专有光纤连接(ficon))的映射,以在主机和目标存储装置之间发送数据和命令。



技术实现要素:

根据一个基本方面,一种用于处理数据的系统可以包括非易失性存储器(nvm)、资源仲裁电路和共享资源。非易失性存储器可以被配置为存储数据并管理任务的执行。非易失性存储器可以包括:网络接口,其被配置为接收数据和所述任务;nvm处理器,其被配置为确定所述处理器是否将执行所述任务或者所述任务是否将指派给系统内的共享资源;以及本地通信接口,其被配置为与所述系统内的至少一个其他装置通信。资源仲裁电路可以被配置为接收将任务指派给所述共享资源的请求,并且通过所述共享资源管理所述任务的执行。所述共享资源可以被配置为执行所述任务。

根据另一个基本方面,一种用于处理数据的设备可以包括交换结构,其被配置为与多个非易失性存储器装置通信。所述设备可以包括资源仲裁电路,其被配置为从请求非易失性存储器装置接收将任务指派给共享处理器的请求,以及管管理所述共享处理器对所述任务的执行。所述设备还可以包括所述共享处理器,其被配置为执行所述任务。

根据另一个基本方面,一种用于处理数据的方法可以包括由非易失性存储器(nvm)经由结构上快速非易失性存储器协议来接收数据。所述方法可以包括由nvm处理器确定所述数据是否将由所述nvm外部的共享处理器处理。所述方法可以包括:如果是的话,则经由本地扩展总线向所述nvm外部的资源仲裁电路转发所述数据。所述方法可以包括:如果是的话,则由所述共享处理器处理所述数据。所述方法可以包括经由所述本地扩展总线将经处理的数据返回到所述nvm。

在附图和下面的描述中阐述了一个或多个实现的细节。根据说明书和附图以及根据权利要求书,其他特征将是显而易见的。

一种用于处理数据的系统和/或方法,并且更具体地,使用本地bmc在结构上nvme系统内分配共享gpu资源的系统和方法,基本上如在至少一个附图中显示和/或结合至少一个附图描述的,如在权利要求书中更完整地阐述的。

附图说明

图1a是根据所公开的主题的系统的示例实施例的框图。

图1b是根据所公开的主题的系统的示例实施例的框图。

图2是根据所公开的主题的设备的示例实施例的框图。

图3是根据所公开的主题的技术的示例实施例的流程图。

图4是可以包括根据所公开的主题的原理所形成的装置的信息处理系统的示意框图。

在各附图中,相同的附图标记指示相同的元件。

具体实施方式

以下将参照附图来更全面地描述各种示例实施例,在附图中示出了一些示例实施例。然而,本公开的主题可以以许多不同的形式来实施,并且不应该被解释为限于本文阐述的示例实施例。相反,提供这些示例实施例是为了使本公开透彻和完整,并且将本公开主题的范围充分地传达给本领域技术人员。在附图中,为了清楚起见,层和区域的尺寸和相对尺寸可被夸大。

将理解的是,当元件或层被称为“在”另一元件或层“上”、“连接到”或“耦接到”另一元件或层时,其可能直接在另一元件上、直接连接到或直接耦接到另一元件或层,或可存在中间元件或中间层。相反,当元件被称为“直接在”另一元件或层“上”、“直接连接到”或“直接耦接到”另一元件或层时,不存在中间元件或中间层。相同的数字在全文中指代相同的元件。如本文所使用的,术语“和/或”包括所列出的相关联项目中的一个或多个的任意组合和所有组合。

应该理解的是,尽管这里可以使用术语第一、第二、第三等来描述各种元件、组件、区域、层和/或部分,但是这些元件、组件、区域、层和/或部分不应受这些术语的限制。这些术语仅用于将一个元件、组件、区域、层和/或部分与另一元件、组件、区域、层和/或部分进行区分。因此,在不脱离本公开主题的教导的情况下,下面讨论的第一元件、第一组件、第一区域、第一层和/或第一部分可以被称为第二元件、第二组件、第二区域、第二层和/或第二部分。

为便于描述,本文可以使用诸如“之下”、“下方”、“低于”、“上方”、“高于”等空间相对术语来描述附图所示的一个元件或特征与另一个(或一些)元件或特征的关系。应该理解的是,空间相对术语旨在涵盖除了附图中描绘的指向之外的、使用或操作中的装置的不同指向。例如,如果附图中的装置被翻转,则被描述为在其他元件或特征“下方”或“之下”的元件将被指向为在其它元件或特征“上方”。因此,示例性词语“下方”可以涵盖上方和下方这两个指向。装置可以以其他方式来指向(旋转90度或以其他指向),并且相应地解释本文使用的空间相对描述符。

本文使用的术语仅出于描述特定示例实施例的目的,而不旨在限制本公开主题。如本文所使用的,除非上下文另外明确指出,否则单数形式“一”、“一个”和“所述”也旨在包括复数形式。将进一步理解的是,当在本说明书中使用时,术语“包括”和/或“包含”指明了存在所陈述的特征、整体、步骤、操作、元件和/或组件,但是不排除存在或添加一个或多个其他特征、整体,步骤、操作、元件、组件和/或其组合。

本文参照作为理想示例实施例(和中间结构)的示意图的横截面图来描述示例实施例。如此,由于例如制造技术和/或容限的原因,预计会出现与图示形状的变化。因此,示例实施例不应该被解释为限于本文示出的区域的特定形状,而是旨在包括例如由制造引起的形状偏差。例如,示出为矩形的注入区域通常在其边缘具有圆形或弯曲的特征和/或注入浓度梯度,而不是从注入区域到非注入区域的二元变化。类似地,通过注入形成的掩埋区域可能导致在掩埋区域和注入发生的表面之间的区域中的一些注入。因此,附图中示出的区域本质上是示意性的,并且它们的形状并不旨在示出装置的区域的实际形状,并且并不旨在限制本公开主题的范围。

除非另外定义,否则本文使用的所有术语(包括技术术语和科学术语)具有与本公开主题所属领域的普通技术人员通常理解的含义相同含义。应该进一步理解的是,诸如在通常使用的字典中定义的那些术语应该被解释为具有与其在相关领域的上下文中的含义一致的含义,并且将不被解释为理想化或过度正式的意义,除非明确地如此定义。

在下文中,将参考附图来详细地解释示例实施例。

图1a是根据所公开的主题的系统100的示例实施例的框图。系统100可以包括计算装置,例如膝上型计算机、台式计算机、工作站、个人数字助理、智能电话、平板电脑和其他适当的计算机或其虚拟机或虚拟计算装置。系统100可以包括容纳在底盘内的单个机器。可以理解的是,以上仅是一个说明性示例,所公开的主题不限于此。

在这样的实施例中,系统100可以包括主板或组件104、以及一个或多个非易失性存储器(nvm)装置或驱动器106(或者作为多个,nvm108)。在一些实施例中,发起方装置102可以在系统100或机箱的外部(例如,另一台机器)。但是,在另一个实施例中,发起方装置102可以包括系统100内的组件或装置。

在所示实施例中,发起方装置102可以开始或发起要执行的动作或任务135。在各种实施例中,这可以经由在nvme-of网络上发送消息133来完成。在这样的实施例中,nvme-of网络可以包括发起方装置102、交换结构或结构交换机110、以及nvm106。消息133可以包括任务135,并且在一些实施例中,包括在其上执行任务135的一组或一条数据137。消息133还可以包括消息133的目标或目的地(例如,特定的nvm106)。在一些实施例中,消息133可以仅仅包括数据137,并且随后数据137可以由目标nvm106存储。

在所示的实施例中,消息133可以被系统100接收。在这样的实施例中,系统100和主板104可以包括交换结构110。交换结构110可以被配置为连接装置或组件的网络。在所示的实施例中,交换结构110(以及其连接到的网络)可以包括以太网交换机。可以理解的是,以上仅仅是一个说明性示例,所公开的主题不限于此。

在所示实施例中,交换结构110可以在发起方装置102和多个nvm108之间连接并路由数据。虽然在各种实施例中,单个发起方装置102可能仅一次与单个nvm108通信。在各种实施例中,交换结构110还可以与cpu114通信。在所示的实施例中,可以将消息133路由到目标nvm106。

在所示实施例中,nvm106可以包括网络接口132、本地或nvm处理器134、本地或总线接口138、以及存储器136。在这样的实施例中,网络接口132可以被配置为与交换结构的网络通信并接收消息133(例如,数据137和任务135)。

在所示实施例中,网络接口132可以包括以太网接口140;但应当理解的是,以上仅仅是一个说明性示例,所公开的主题不限于此。网络接口132可以包括以太网远程直接存储器访问(rdma)网络接口卡/连接(ernic)142。网络接口132还可以包括nvmf接口144。在这样的实施例中,nvm106可以被配置为在以太网上(或以相应的协议)以数种方式通信,并且可以被称为以太网固态装置(esdd)。可以理解的是,以上仅仅是一个说明性示例,所公开的主题不限于此。

在一些实施例中,可以将来自消息133的数据137存储在存储器136中。在各种实施例中,存储器136可以包括非易失性存储器,例如闪存。在各种实施例中,除了非易失性存储器136之外,nvm106还可以包括易失性存储器139(例如,动态随机存取存储器(dram))。在这样的实施例中,易失性存储器139可以用作nvm处理器134或其他组件的工作存储器或临时存储器;应当理解,以上仅仅是一个说明性示例,所公开的主题不限于此。在一些实施例中,数据137可以已经由存储器136存储,并且任务135可以简单地访问数据137或者与数据137相关联。

在所示实施例中,nvm处理器134可以被配置为根据请求来确定其是否可以或应当执行任务135。在各种实施例中,消息133(数据137或任务135)可以包括字段、标签或部分,所述字段、标签或部分包括向nvm处理器134提示要执行什么类型的任务135的提示。在各种实施例中,该提示信息可以在任务创建期间由软件动态地包括,或者由软件包括为软件编译操作的一部分。可以理解的是,以上仅仅是一个说明性示例,所公开的主题不限于此。

在一些实施例中,nvm处理器134可以能够执行任务135或者最希望执行任务135。在这种情况下,nvm处理器134可以做到这一点。

在另一个实施例中,nvm处理器134可以知道系统100内的其他共享资源(例如,共享处理器118),其能够执行任务135并且可能更好地装备为执行任务135。在这样的实施例中,nvm处理器134可以尝试或请求将任务135的执行卸载到所述共享资源。

在所示实施例中,主板104可以包括cpu114。其还可以包括资源仲裁电路,或者在该特定实施例中包括基板管理控制器(bmc)116。如上所述,传统的bmc116仅轮询系统(例如,系统100)的资源,并且确定它们的能力和一般状态(例如,温度、风扇速度、图形处理单元的存在)。

然而,在所示实施例中,可以以更主动的方式利用bmc116的计算能力。在所示实施例中,bmc116可以被配置为监测、仲裁并分配系统100的活动的存储组件(例如,nvm108)中的共享资源(例如,共享处理器118)的使用。在这样的实施例中,bmc116可以监测共享处理器118的资源使用(例如,空闲周期的数量、百分比容量)。bmc116还可以接收和响应对使用共享资源的请求(例如,来自nvm108的请求),并且确定允许所述请求装置(例如,nvm108)中的哪个(如果有的话)使用共享资源。bmc116还可以被配置为在其各自的任务完成时通知请求装置,并将任何结果传送回请求装置。

在所示实施例中,主板104可以包括用于本地通信的通信系统或总线112。在该上下文中,“本地”意味着在系统100或包围系统100的机箱内。在各种实施例中,如上所述,总线112可以包括pcie总线或pcie交换机。

主板104还可以包括一个或多个共享资源,例如共享处理器118。在这样的实施例中,共享处理器118可以被配置为完成指派给作为整体的系统100的任务135。在一些实施例中,共享资源甚至可以包括cpu114。在所示实施例中,共享处理器118可以包括图形处理单元(gpu)或其他专用处理器(例如,数字信号处理器(dsp)、现场可编程门阵列(fpga)等)。在这样的实施例中,共享处理器118可以具有执行特定类型的任务的能力或专业知识,这是更通用的处理器(例如,cpu114)或有限的处理器(例如,nvm处理器134)可能不具有的、或者可以执行但效率较低的。在这样的实施例中,这些处理器可以是共享的,而通用的处理器或有限的处理器则可以不是共享的。应当理解,以上仅仅是几个说明性示例,所公开的主题不限于此。

在所示实施例中,总线112可以连接bmc116、共享处理器118和nvm108(经由其各自的本地接口138)。在这样的实施例中,bmc116可以在不使用以太网或交换结构网络的情况下与nvm108和共享处理器118通信。在这样的实施例中,总线112可以用于本地通信。在一些实施例中,cpu114可以用作本地网络和远程(即,超出系统100或在系统100之外)网络之间的中介。

返回到任务135以及nvm处理器134的关于任务135可以由共享处理器118执行的决定,在这样的实施例中,nvm106可以经由本地接口138将该卸载请求传输到bmc116。本地接口138可以被配置为与系统100内的其他装置(例如,bmc116)通信。在所示实施例中,本地接口138可以向bmc116发送消息,以请求:任务135应该由共享处理器118执行。

在这样的实施例中,bmc116可以检查共享处理器118的可用性或能力。如果共享处理器118足够空闲(例如,未使用或仅部分使用),则bmc116可以向共享处理器118指派任务135。共享处理器118可以执行任务135,并且任何所需的数据137可以传送到共享处理器118(例如,经由总线112)。一旦共享处理器118完成了该任务135,就可以通知请求nvm106(和bmc116),并且得到的数据137可以由nvm106或任何其他存储介质或驱动器(例如,nvm108、磁性硬盘驱动等中的任何一种)存储,如处理请求偶尔指示的那样。

在各种实施例中,多个nvm108可以请求:它们各自利用共享处理器118。在这样的实施例中,bmc116会不得不在这些竞争的请求之间进行仲裁。在一些实施例中,可以采用先来先服务的模型。在另一个实施例中,bmc116可以向多个请求nvm108分配共享处理器118的部分使用。在又一实施例中,可以采用优先级方案。应当理解,以上仅仅是几个说明性示例,所公开的主题不限于此。

将使用所公开的主题不限于其的具体示例来示出可以使用系统100的可能方式。深度神经网络(网)、机器学习、或人工智能应用通常需要具有不明显的i/o等待的大量计算周期,并且中间数据通常只对一次迭代有用。因此,不需要将其存储在持久性存储器中。在该说明性实施例中,发起方装置102可以请求执行神经网络任务(例如,在一系列照片中发现黑狗)。

在这样的实施例中,可以将任务135指派给给定的nvm106。nvm处理器134可以确定:由于任务135涉及大量的迭代计算,所述迭代计算中的许多可以并行执行,因此任务135可以由gpu或共享处理器118更高效地执行。通常,gpu包括被设计为并行地执行迭代计算的大量的核。应当理解,上述标准(例如,迭代任务、并行计算)仅仅是一些说明性示例,所公开的主题不限于此。

在这样的实施例中,nvm106可以向bmc116询问gpu或共享处理器118是否是可用的。如果是,则神经网络任务135可以指派给gpu或共享处理器118并由gpu或共享处理器118执行。在一个实施例中,数据137可以保存在存储器136中并且可以从存储器136访问。在另一个实施例中,可以将数据137传送到主板(未示出)上的存储器或主板更易于访问的存储器。在任一情况下,一旦神经网络任务135完成,则可以将结果(例如,数据137的修改版本、具有黑狗的图片的列表、单个值)传送回nvm106。应当理解,以上仅仅是一些说明性示例,所公开的主题不限于此。

图1b是根据所公开的主题的系统101的示例实施例的框图。系统101可以非常类似于如上所述的系统100。

如图1a中的系统100一样,系统101可以包括主板104和多个nvm108。如上所述,任务135可以经由资源指派电路或bmc116卸载到共享资源(例如,共享处理器118)。

在所示的实施例中,系统101可以利用或使用总线112或pcie交换机上的额外端口。在这样的实施例中,系统101可以支持机箱中的额外的资源(例如,处理器、存储器)卡180。在这样的实施例中,bmc116可以管理nvm处理器134可用的额外的共享资源188。

在一个这样的实施例中,通过在主板104或交换板或底板(未示出)上提供边缘连接器或垂直转接卡,可以安装额外的共享资源188。在一个实施例中,这可以经由pcie转接卡以堆叠方式(即,一个位于另一个之上)完成。在一个这样的实施例中,系统101可以支持一个机箱中的四个gpu(每个资源卡180两个)。可以理解的是,以上仅仅是一个说明性示例,所公开的主题不限于此。

在这样的实施例中,可以将共享资源188的池添加到系统101。在这样的实施例中,bmc116可以仲裁和指派这些共享资源188和共享处理资源(例如,共享处理器118)的使用。在一些实施例中,可以不使用共享处理器118,并且可以仅使用由资源卡180提供的共享资源188。在另一实施例中,共享处理资源可以包括多个异构计算资源。应当理解,以上仅仅是几个说明性示例,所公开的主题不限于此。

在各种实施例中,可以对共享处理器118和共享资源188进行分区,并且每个分区仅由nvm108的特定部分可访问。在各种实施例中,可以采用其他分配方案。应当理解,以上仅仅是几个说明性示例,所公开的主题的不限于此。

图2是根据所公开的主题的设备200的示例实施例的框图。在各种实施例中,设备200可以包括资源仲裁电路,所述资源仲裁电路被配置为从请求非易失性存储器装置接收将任务指派给共享处理器的请求,以及管理共享处理器对所述任务的执行,如上所述。在一些实施例中,设备200可以包括基板管理控制器。

在图示的实施例中,设备200可以包括总线接口202。总线接口202可以被配置为从与设备200相同的系统中的其他装置接收消息并且向其发送消息。例如,如果设备200是bmc,则总线接口202可以轮询系统中的各种装置并报告其状态或存在(例如,温度、风扇速度)。在所示的实施例中,总线接口202还可以接收对使用共享资源的请求,并响应这些请求(例如,准许或拒绝所述分配、向共享资源分配任务、报告关于任务的完成)。

在各种实施例中,总线接口202可以与本地通信总线耦合。在一些实施例中,所述本地通信总线可以是pcie总线或高速串行计算机扩展总线。在一些实施例中,设备200可以使用第一总线接口(和第一总线协议,例如,举例来说,i2c或smbus串行总线)来传输装置状态信息(例如,温度、风扇速度),并随后使用第二总线接口202(和第二总线协议,例如pcie)来处理共享资源仲裁事件。应理解的是,以上仅仅是一个说明性示例,所公开的主题不限于此。

在所示实施例中,设备200可以包括处理器204(例如,bmc处理器)。在各种实施例中,如上所述,处理器204可以被配置为监测共享资源、分配共享资源的使用、仲裁针对共享资源的请求。在各种实施例中,处理器204可以通过发布和处理经由总线接口202发送/接收的消息来做到这一点。

在所示实施例中,用于管理共享资源的一种方式可以包括存储和维护多个表203、206和208。在各种实施例中,设备200可以包括用于这些表203、206和208的存储器。在另一个实施例中,所述表可以存储在设备200外部的存储器中。在一些实施例中,可以将两个或多个表格组合成单个数据结构。

在一个实施例中,能力表203可以被配置为存储由bmc收集的传统数据(例如,gpu的存在、存储量、总线速度)。在所示出的实施例中,能力表203还可以被配置为存储关于系统中被共享的资源的信息,例如,举例来说,gpu是否被共享、处理器具有多少着色器或核、所述资源是否是分组或分区的一部分等等。在一个这样的实施例中,能力表203可以包括系统中的装置的列表、以及指示该装置是否是共享资源的字段。应当理解,以上仅仅是几个说明性示例,所公开的主题不限于此。

在各种实施例中,设备200可以包括可用性表206。在这样的实施例中,可用性表206可以被配置为指示共享资源的可用性状态。在一个实施例中,可用性表206可以指示在给定时间共享资源可以具有的可用性的百分比(例如,已使用100%,已使用50%、8个编码变换单元空闲、已使用14个矢量处理器,等等)。在另一个实施例中,可用性表206还可以包括关于共享资源何时将在接下来可用的预测或其他基于时间的测量。在这样的实施例中,可以检查可用性表206,以查看是否可以满足资源使用请求。如果是,则随后可以(例如,由bmc处理器204)更新可用性表206以指示给定资源的更新后的可用性。在一些实施例中,该更新可以包括:对所述资源进行轮询;或者仅仅将整个资源标记为不可用,直到指派的任务完成。应当理解,以上仅仅是几个说明性示例,所公开的主题不限于此。

在所示的实施例中,设备200可以包括请求方表208。在各种实施例中,请求方表208可以被配置为将任务与请求相应任务的执行的非易失性存储器装置相关联。在这样的实施例中,一旦给定的任务完成,则bmc处理器204可以知道要联系哪个nvm。在另一个实施例中,向nvm通知任务完成的任务可以落在共享资源上,而不是设备200上。在一个实施例中,一旦所请求的任务已经指派给共享资源,则处理器204可以修改请求方表208并且向请求nvm通知已成功地分配了该请求nvm的任务。以上仅仅是几个说明性示例,所公开的主题不限于此。

图3是根据所公开的主题的技术300的示例实施例的流程图。在各种实施例中,技术300可以由诸如图1a、图1b或图2中的系统那样的系统来使用或生产。但应当理解,以上仅仅是几个说明性示例,所公开的主题不限于此。应该理解,所公开的主题不限于由技术300所示的动作的顺序或数量。

框302示出了在一个实施例中,如上所述,可以经由nvmef网络来接收数据和/或任务。在各种实施例中,如上所述,由该框示出的一个或多个动作可以由图1a或图1b的设备或系统、图1a或图1b的交换结构110、nvm106或网络接口132来执行。

框304示出了在一个实施例中,如上所述,可以做出关于是否由共享资源或处理器来处理所述数据的确定。在各种实施例中,如上所述,可以做出关于是否要由nvm内的或nvm本地的处理器来处理所述数据的确定。在一些实施例中,这个决定可以至少部分地基于与数据相关联的提示信息。在一个这样的实施例中,如上所述,所述决定可以基于对所述数据的处理是否包括机器学习。在各种实施例中,如上所述,由该框示出的一个或多个动作可以由图1a或图1b中的设备或系统、图1a或图1b中的nvm106或nvm处理器134来执行。

框305示出了在一个实施例中,如上所述,如果做出使得数据不由共享资源来处理的决定,则本地nvm处理器134可以执行所述任务或处理所述数据。在各种实施例中,如上所述,处理可由nvm的本地处理器执行。在各种实施例中,如上所述,由该框示出的一个或多个动作可以由图1a或图1b中的设备或系统、图1a或1b中的nvm106或nvm处理器134来执行。

框306示出了在一个实施例中,如上所述,如果做出使得数据由共享资源来处理的决定,则可以将所述数据和/或任务转发或传送到资源仲裁电路(例如,bmc)。在各种实施例中,如上所述,该请求可以在本地通信总线(例如,pcie总线)上进行。在各种实施例中,如上所述,由该框示出的一个或多个动作可以由图1a或图1b中的设备或系统、图1a或图1b中的nvm106、总线112或bmc116来执行。

框308示出了在一个实施例中,如上所述,资源仲裁电路可以确定所请求的共享资源(例如,处理器)是否是可用的。在各种实施例中,这可以包括使用上述的表格和轮询机制。在这样的实施例中,这可以包括使用本地总线(例如,pcie总线)与共享资源通信,而不是使用通过其将数据首先传送到nvm(例如,nvmef协议)的远程或网络接口。在各种实施例中,如上所述,由该框示出的一个或多个动作可以由图1a或图1b中的设备或系统、图1a或图1b中的共享处理器118和共享资源188、总线112或bmc116、图2中的表203、206或208来执行。

框308还示出了在一个实施例中,如果所请求的共享资源是不可用的,则所述任务可以简单地停顿或循环直到该共享资源是可用的。在另一个实施例中,可以替换另一个足够等效的资源(例如,另一个gpu)。在又一个实施例中,对使用共享资源的请求可以被拒绝,并且nvm可以自己处理任务。在各种实施例中,可以采用这些或其他技术的组合(例如,在时间限制约束下进行循环)。应当理解,以上仅仅是几个说明性示例,所公开的主题不限于此。

框310示出了在一个实施例中,如上所述,所述任务可以由共享资源来执行或实行。在各种实施例中,如上所述,由该框示出的一个或多个动作可以由图1a或图1b中的设备或系统、图1a或图1b中的共享处理器118和共享资源188来执行。

框312示出了在一个实施例中,如上所述,可以将经处理的数据或结果返回到请求nvm。在一个这样的实施例中,可以经由本地总线(例如,pcie总线)返回所述数据,而不是经由通过其将数据首先传送至所述nvm(例如,nvmef协议)的远程或网络接口。在各种实施例中,由该框示出的一个或多个动作可以由图1a或图1b中的设备或系统、图1a或图1b中的共享处理器118和共享资源188、总线112或bmc116、图2中的表203、206或208来执行。

图4是信息处理系统400的示意性框图,所述信息处理系统400可以包括根据所公开的主题的原理形成的半导体装置。

参考图4,信息处理系统400可以包括根据所公开的主题的原理构建的一个或多个装置。在另一个实施例中,信息处理系统400可以采用或执行根据所公开的主题的原理的一种或多种技术。

在各种实施例中,信息处理系统400可以包括计算装置,例如,举例来说,膝上型计算机、台式计算机、工作站、服务器、刀片式服务器、个人数字助理、智能手机、平板电脑以及其他适当的计算机或虚拟机或其虚拟计算装置。在各种实施例中,信息处理系统400可以由用户(未示出)使用。

根据所公开的主题的信息处理系统400还可以包括中央处理单元(cpu)、逻辑器件或处理器410。在一些实施例中,处理器410可以包括一个或多个功能单元框(fub)或组合逻辑框(clb)415。在这样的实施例中,组合逻辑框可以包括各种布尔逻辑操作(例如,与非(nand)、或非(nor)、非(not)、异或(xor))、稳定逻辑器件(例如,触发器、锁存器)、其他逻辑器件或其组合。这些组合逻辑操作可以以简单或复杂的方式被配置为处理输入信号以实现期望的结果。应该理解,虽然描述了同步组合逻辑操作的一些说明性示例,但是所公开的主题不限于此,并且可以包括异步操作或其混合。在一个实施例中,组合逻辑操作可以包括多个互补金属氧化物半导体(cmos)晶体管。在各种实施例中,可以将这些cmos晶体管布置在执行所述逻辑操作的门中;但应理解的是,可以使用其他技术并且所述技术在所公开的主题的范围内。

根据所公开的主题的信息处理系统400可以进一步包括易失性存储器420(例如,随机存取存储器(ram))。根据所公开的主题的信息处理系统400还可以包括非易失性存储器430(例如,硬盘驱动、光存储器、nand或闪存)。在一些实施例中,易失性存储器420、非易失性存储器430、或其组合或其部分可以被称为“存储介质”。在各种实施例中,易失性存储器420和/或非易失性存储器430可以被配置为以半永久或基本永久的形式来存储数据。

在各种实施例中,信息处理系统400可以包括一个或多个网络接口440,其被配置为允许信息处理系统400成为通信网络的一部分并经由通信网络来通信。wi-fi协议的示例可以包括(但不限于)电气和电子工程师协会(ieee)802.11g、ieee802.11n。蜂窝协议的示例可以包括(但不限于):ieee802.16m(也被称为先进的无线-man(城域网)、先进的长期演进(lte)、用于gsm(全球移动通信系统)的增强型数据速率演进(edge)、演进的高速分组接入(hspa+)。有线协议的示例可以包括(但不限于):ieee802.3(也被称为以太网)、光纤通道、电力线通信(例如homeplug、ieee1901)。应当理解,以上仅仅是几个说明性示例,所公开的主题不限于此。

根据所公开的主题的信息处理系统400还可以包括用户接口单元450(例如,显示器适配器、触觉接口、人机接口装置)。在各种实施例中,该用户接口单元450可以被配置为接收来自用户的输入和/或向用户提供输出。也可以使用其他类型的装置来提供与用户的交互,例如,提供给用户的反馈可以是任何形式的感官反馈(例如视觉反馈、听觉反馈或触觉反馈);并且可以以任何形式来接收来自用户的输入,包括声音输入、语音输入或触觉输入。

在各种实施例中,信息处理系统400可以包括一个或多个其他装置或硬件组件460(例如,显示器或监测器、键盘、鼠标、照相机、指纹读取器、视频处理器)。应当理解,以上仅仅是几个说明性示例,所公开的主题不限于此。

根据所公开的主题的信息处理系统400还可以包括一个或多个系统总线405。在这样的实施例中,系统总线405可以被配置为将处理器410、易失性存储器420、非易失性存储器430、网络接口440、用户接口单元450、以及一个或多个硬件组件460通信地耦接。由处理器410处理的数据或从非易失性存储器430外部输入的数据可以存储在非易失性存储器430或易失性存储器420中。

在各种实施例中,信息处理系统400可以包括或执行一个或多个软件组件470。在一些实施例中,软件组件470可以包括操作系统(os)和/或应用。在一些实施例中,os可以被配置为向应用提供一个或多个服务,以及管理或充当在应用和信息处理系统400的各种硬件组件(例如,处理器410、网络接口440)之间的中介。在这样的实施例中,信息处理系统400可以包括一个或多个本地应用,其可以被在本地(例如,在非易失性存储器430内)安装并被配置为由处理器410直接执行并且直接与os交互。在这样的实施例中,本地应用可以包括预编译的机器可执行代码。在一些实施例中,本地应用可以包括将源代码或目标代码翻译成随后由处理器410执行的可执行代码的脚本解释器(例如,cshell(csh)、applescript、autohotkey)或虚拟执行机(vm)(例如,java虚拟机、microsoft公共语言运行环境(microsoftcommonlanguageruntime))。

上面描述的半导体装置可以使用各种封装技术来封装。例如,可以使用以下各项中的任一种来封装根据所公开主题的原理构造的半导体装置:堆叠式封装(pop)技术、球栅阵列(bga)技术、芯片级封装(csp)技术、塑料引线芯片载体(plcc)技术、塑料双列直插封装(pdip)技术、华夫包装式裸片(adieinwafflepack)技术、晶圆式裸片技术、板上芯片(chiponboard,cob)技术、陶瓷双列直插封装(cerdip)技术、塑料标准方形扁平封装(pmqfp)技术、塑料方形扁平封装(pqfp)技术、小外形封装(soic)技术、缩小的小外形封装(ssop)技术、薄型小外形封装(tsop)技术、薄型四方扁平封装(tqfp)技术、封装内系统(sip)技术、多芯片封装(mcp)技术、晶圆级制造封装(wfp)技术、晶圆级处理堆叠封装(wsp)技术、或本领域技术人员已知的其它技术。

方法步骤可以通过以下方式执行:由一个或多个可编程处理器执行计算机程序,以通过对输入数据进行操作并生成输出来执行功能。方法步骤也可以由专用逻辑电路(例如,fpga(现场可编程门阵列)或asic(专用集成电路))来执行,并且设备可以实现为专用逻辑电路(例如,fpga(现场可编程门阵列)或asic(专用集成电路))。

在各种实施例中,计算机可读介质可以包括当被执行时使得装置执行方法步骤的至少一部分的指令。在一些实施例中,计算机可读介质可以被包括在磁介质、光介质、其他介质或者其组合(例如,cd-rom、硬盘驱动器、只读存储器、闪存驱动器)中。在这样的实施例中,计算机可读介质可以是有形地且非暂时地实施的制造物品。

虽然已经参考示例性实施例描述了所公开的主题的原理,但是对于本领域技术人员来说显而易见的是,在不脱离这些公开的构思的精神和范围的情况下,可以对其进行各种改变和修改。因此,应当理解的是,上述实施例不是限制性的,而仅仅是说明性的。因此,所公开的概念的范围将由所附权利要求书及其等同物的最宽泛的可允许的解释来确定,并且不应该被前面的描述所限制或限定。因此,应当理解的是,所附权利要求旨在覆盖落入实施例的范围内的所有这样的修改和变化。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1