用于图像处理的附加卡、内容递送网络服务器及执行方法与流程

文档序号:11234825阅读:238来源:国知局
用于图像处理的附加卡、内容递送网络服务器及执行方法与流程

本申请要求2016年03月02日提交美国专利商标局、申请号为15/058530、发明名称为“asolidstatestoragelocalimageprocessingsystemandmethod”的美国发明专利申请的优先权,其全部内容通过引用结合在本申请中。

本发明涉及信息处理和存储领域。具体涉及一种用于图像处理并选择性地存储信息的附加卡,由内容递送网络服务器执行的方法以及内容递送网络服务器。



背景技术:

诸如数字计算机、计算器、音频设备、视频设备和电话系统的诸多电子技术有助于在商业、科学、教育和娱乐的大多数领域中分析和传达数据和信息,从而提高生产力并降低成本。这些活动通常涉及大量信息的通信和存储,并且执行这些活动的网络和系统的复杂性和成本通常是巨大的。由于许多设备的庞大网络是互连的(例如在物联网(iot)中),所以存在可能不利地影响性能的许多问题。

一种常规环境涉及在相对较少的服务器(称为源服务器)上处理和创建内容以及经由互联网将结果传递到许多终端使用设备或终端。终端使用设备通常对多种不同格式和配置的信息进行操作。例如,可以请求具有许多视觉效果(例如,各种分辨率、放大/缩小等)的不同格式(例如,jpeg、webp等)的图像信息。常规上,终端使用设备或终端通常请求特定格式和配置的信息。源服务器执行相应的处理并转发结果。

在常规系统中,对源服务器施加了重大的负担或责任。例如,在常规系统中,源服务器必须经常保持通用以执行许多不同的必要任务(例如,直接控制功能、图像处理、数据库处理、存储管理等)。在常规环境中,通常有大量的终端使用设备分布在广阔的地理区域。终端使用设备转发对大量信息的大量请求,并且倾向于在相对较少的源服务器处创建长队列。源服务器本质上成为可能导致响应延迟和不利地影响最终用户体验的瓶颈或检查点。

一些常规方法包括内容递送网络(cdn)服务器,以试图提高性能。然而,cdn服务器通常在减轻瓶颈问题的能力方面是有限的。例如,常规的cdn服务器对于需要额外处理的请求不太有帮助,因为需要额外处理的这些请求必须被转发到源服务器。对未存储在cdn服务器上的图像的请求也必须转发到源服务器。即使所请求的图像在cdn服务器上本地存储,cdn服务器也通常基于对大小一致的相对小量的信息的逻辑寻址来使用文件管理系统。常规文件管理系统通常涉及相对大量的管理操作,这减慢了响应时间。



技术实现要素:

本发明便于高效和有效的信息存储装置操作。在一个实施方式中,一种用于图像处理和选择性地存储信息的附加卡包括:处理部件,其在附加卡上本地执行图像处理,并且使用唯一标签来引导基于选择性图像对原始图像信息和图像处理结果的存储;固态存储装置,其选择性地存储原始图像信息和图像处理结果;以及通信端口,其接收原始图像信息,并且选择性转发原始图像信息和对原始图像信息的图像处理结果。所述处理部件:确定是否需要图像处理以响应对图像信息的请求;如果需要图像处理,则获取原始图像信息;对原始图像信息进行图像处理;并且响应于对图像信息的请求转发图像处理的结果。所述唯一标签或密钥是针对逐个图像生成的,并且用于定位对应的原始图像信息以便加载、处理和保存。处理的结果产生了附加图像信息,并且还可以逐个图像地将附加的唯一标签与附加图像信息相关联。所述存储装置可以使用所述附加的唯一标签来选择性地存储附加图像信息。无需文件系统存储管理或逻辑块地址层即可对图像信息进行存储。

在一个实施方式中,一种cdn服务器方法包括以下步骤:评估图像信息访问触发;根据所述评估访问图像信息;以及在内容递送网络服务器中本地处理所述图像信息;包括对图像信息的选择性存储。处理包括将原始图像信息选择性地存储在基于图像的存储系统中。处理包括将处理过的图像信息选择性地存储在基于图像的存储系统中,其中,处理过的图像信息包括处理的结果。评估图像信息访问触发可以包括评估信息被存储在何处。评估图像信息访问触发还可以包括确定用户请求是否针对原始图像信息。评估图像信息访问触发包括确定用户请求否针对处理过的图像信息。访问包括:如果评估表明信息被本地存储,则获取本地存储的图像信息。访问包括:如果评估表明信息未本地存储,则从远程存储器获取图像信息。该处理包括响应于请求而转发图像信息。该方法还可以包括生成与处理过的信息相对应的唯一密钥。

在一个实施方式中,一种内容递送网络服务器包括多个nand芯片(die),其包括多个页缓冲器和现场可编程门阵列(fpga)。当页缓冲器对于正常存储传送是活动时,页缓冲器保持要写入nand芯片的数据,并且当页缓冲器对于正常存储传送是非活动时,页缓冲器用于存储中间信息。现场可编程门阵列(fpga)执行图像处理和存储控制器操作,包括控制多个本地nand芯片中的信息存储。内部缓冲器可以是nand闪存lun内的内部页缓冲器。

附图说明

包括在本说明书中并且形成本说明书一部分的附图被包括进来用于对本发明的原理进行示例性说明,不旨在将本发明限制于其中所示的特定实施方式。除非另有明确说明,否则附图不按比例绘制。

图1是根据一个实施方式的示例性网络的图示。

图2是根据一个实施方式的示例性网络的图示。

图3是根据一个实施方式的另一本地cdn服务器处理和存储方法的示例性流程图。

图4是根据一个实施方式的典型的常规图像处理和存储方法的示例性流程图。

图5是根据一个实施方式的附加卡硬件结构的一个示例的图示。

图6示出了根据一个实施方式的闪存控制器的示例。

图7a示出了用于数据中心中的常规文件存储的常规io路径。

图7b是根据一个实施方式的处理存储io路径的本地cdn服务器。

图8a是常规存储系统设计方案。

图8b是根据一个实施方式的基于本地cdn服务器处理图像的存储系统。

图9示出了根据一个实施方式的基于cdn服务器图像的存储系统拓扑的一个示例。

图10是根据一个实施方式的使用页缓存和nand的示例性无dram本地cdn服务器处理环境的框图。

具体实施方式

现在将详细参考本发明的优选实施方式,其示例在附图中示出。虽然将结合优选实施方式来描述本发明,但是将理解的是,并不旨在将本发明限于这些实施方式。相反,本发明旨在覆盖可以包括在由所附权利要求限定的本发明的主旨和范围内的替代、修改和等同物。此外,在本发明的以下详细描述中,阐述了许多具体细节以便提供对本发明的透彻理解。然而,对本领域普通技术人员显而易见的是,本发明可以在没有这些具体细节的情况下实施。在其他情况下,没有详细描述公知的方法、过程、部件和电路,以免不必要地模糊本发明的各方面。

在一个实施方式中,本地cdn服务器处理和存储创新地增强了图像处理计算和存储效率。图像计算引擎和存储控制器在cdn服务器中本地实现。引擎被实现在位于靠近闪存介质的本地存储控制场可编程门阵列(fpga)中。fpga可以被认为是设计成响应于图像处理需求的内存计算的格式。该系统可以包括用于高效图像处理和存储控制的fpga、用于图像寻址的唯一标记方法、无dram低成本设计以及高容量nand闪存。

图1是根据一个实施方式的示例性网络100的图示。该示例性网络100包括:源服务器111、112和119;交换机121和127;本地图像处理内容递送网络服务器131,132,138和139;互联网151;和终端使用设备或终端141,142,143和144。可以存在多种终端使用设备,包括个人计算机、平板电脑、智能电话、膝上型计算机等。源服务器执行处理并存储初始或原始图像。交换机在源服务器和内容交付网络服务器之间路由信息。本地图像处理cdn服务器执行处理并选择性地存储图像信息。存储的图像信息可以包括所选择的接收信息(例如,原始图像信息、从源服务器接收的信息等)和从cdn服务器执行的图像处理得到的选择信息。由cdn服务器执行的处理可以包括与用户请求相关联的处理(例如,放大、缩小等)。互联网在内容递送网络服务器和终端使用设备之间传递信息。终端使用设备是用户交互的平台。在一个示例性实现中,网络100涉及用于iot云环境的图像处理系统。

在一个实施方式中,cdn服务器中最初没有存储图像。cdn服务器从源服务器接收原始图像。cdn服务器执行原始图像和处理过的图像的选择性本地存储。在一种示例性实现中,cdn服务器自动识别更可能在将来被访问的原始图像和处理过的图像,并且基于图像标签寻址利用本地存储器将它们缓存。通常,cdn服务器基于地理、经济和许多其他目的而分布,并且cdn服务器基于用户的需求扩展到许多区域。当用户请求处理过的图像时,与如果处理结果先前没有存储在cdn服务器中而回到源服务器进行处理的常规方法不同,本地cdn服务器处理存储系统能够将图像处理计算负载从源服务器的cpu卸载到cdn服务器的fpga。通过这样做,无需保持一个图像的多个处理结果,cdn服务器就可以存储原始图像并在本地执行图像处理。响应于用户的请求,使用cdn服务器fpga以实时方式处理原始图像,并将结果发送回给用户。

图2是根据一个实施方式的示例性本地cdn服务器处理和存储方法200的流程图。

在块210中,对图像信息访问触发进行评估。该触发可以是用户对图像信息的请求。确定该请求是否是针对与原始图像相关联的信息。

在块220中,根据所述评估来访问图像信息。如果请求不是针对原始图像,则确定cdn服务器上是否本地存储有满足该请求的处理过的图像。如果本地存储有处理过的图像,则对处理过的图像信息进行本地访问并且转发到块230进行操作。如果本地没有存储处理过的图像或者如果请求是针对原始图像的,则确定原始图像先前是否被本地存储在cdn服务器上。原始图像先前是否被本地存储在cdn服务器上的确定可以被引导到与处理过的图像相关联的原始图像。如果该确定表明原始图像被本地存储,则本地访问该图像并将其转发到块230进行操作。如果该确定表明原始图像未被本地存储,则从远程存储器获取图像并且转发到块230进行操作。如果本地没有,则可以从源服务器加载原始图像并将其传送到cdn服务器。

在块230中,根据所述评估,在cdn服务器中对图像信息进行本地处理,包括对图像信息进行选择性存储。在访问原始图像信息之后,cdn服务器的fpga处理器执行相应的图像处理,并且将处理结果反映给用户,而不是cdn服务器中的cpu。cdn服务器选择性地决定是否保持或存储图像信息(例如,原始图像、处理过的图像等)。在cdn服务器上本地执行图像处理进一步加速了图像传送,增强了用户体验。

但是,这种本地cdn服务器处理和存储系统不仅仅是cdn服务器cpu的助手。本地cdn服务器处理存储系统还可以通过将处理过的文件结果直接加载到本地存储资源中来选择性地将图像存储在本地以满足用户的未来请求。这是通过本地cdn服务器根据不同图像请求场景处理存储机制来实现的。

cdn服务器根据各种标准做出选择性地存储图像信息的决定。基于应对图像请求特性的经验,cdn服务器尝试预测未来的请求,并且常规的cdn服务器决定是否将处理过的图像本地存储在其存储设备中。然而,常规方法的困境在于与增大的存储容量或网络和计算资源占用相关联的成本。常规的cdn服务器通常仅作为以常规方式存储的高速缓存级别工作,并且常规源服务器提供计算和原始图像。虽然常规系统可以依赖cdn服务器和源服务器来形成基础设施层次结构,但是由源服务器而不是cdn服务器来执行图像处理。当用户发送处理图像的请求时,cdn服务器搜索先前由源服务器cpu处理并存储在cdn服务器中的图像的结果或版本。然而,对cdn服务器内的结果的成功定位取决于两个因素。先前由源服务器cpu执行了完全相同的处理,并且处理结果被存储在cdn服务器上以供将来使用。如果这两个条件都存在,则处理过的图像结果从cdn服务器发送,而不必返回到源服务器。

对处理过的图像信息的请求通常被发送回源服务器,因为它们很少在本地得到常规cdn服务器的满意。多个用户请求和相应的处理结果完全匹配的可能性相对较低。此外,考虑到大量可能的原始图像和可以从原始图像导出的不同处理结果的指数数量,作出存储所有图像结果的决定的可能性非常低。常规cdn服务器通常不具有存储所有图像的能力。常规系统为了具有高cdn服务器命中率,需要大的存储容量来保持来自同一个原始图像的尽可能多的不同版本的处理过的图像。如果cdn服务器经历丢失或cdn服务器不能找到所请求的处理过的图像结果的版本,则常规系统通常必须返回到源服务器来加载原始图像。将原始图像处理为请求的结果(格式等)的图像处理是在源服务器上运行的。处理过的图像结果被发送回cdn服务器,cdn服务器进而响应于用户请求转发处理过的图像结果。

与常规方法不同,本地cdn服务器处理存储系统促成了一种流线型高效方案。本地cdn服务器图像处理能够使用较少的存储资源和/或通信带宽来实现更有效的响应。在用户频繁地上传新图像但请求需要处理的有限的不同版本的区域中,本地cdn服务器处理系统可以存储数量庞大的原始图像。在这种情况下,用户的偏好主要用于归档或低频访问。由于许多原始图像被本地存储在cdn服务器上,所以降低了边界网关协议(bgp)带宽。主要是保留原始版本,fpga进行图像处理(主要是满足调整类似于来自不同终端的访问的需求,例如,将同一个图像调整为用于pc、平板电脑和智能手机的各个版本,但这些版本可以根据用户请求即时生成)。

在其他情况下,许多不同版本的处理过的图像被请求(例如,在某些用户提供诸如照片增强、3d可视化、漫画制作、图像分析等服务的情况下)。这种使用的策略可以包括本地存储一些处理过的版本。存储的内容可以包括用户频繁请求的图像处理结果以及用户频繁请求的多个热图像处理结果的中间结果。当频繁请求图像处理结果时,缓存机制识别再次出现的可能性高的请求(例如,使用诸如最近访问等公知算法)。根据累积的知识或经验(例如,来自请求、社交事件等),一些处理的结果被存储在cdn服务器的附加卡的nand闪存介质中。在请求中间结果的情况下,主要在相对较大和复杂的项目中,获得结果的工作量是已知的,并且可能不期望每次都从头(例如,从原始图像)开始。可以存储除最终结果之外的信息。分析可以指示某些项目共享了子模块和某个中间阶段。基于这些观察,存储中间数据库或断点,并且从那里开始本地图像处理以获得最终结果,同时与常规方法相比加速了向用户的总体传送。

图3是根据一个实施方式的另一本地cdn服务器处理和存储方法300的示例性流程图。同样,处理是在cdn服务器中本地执行的。在块301中,接收用户请求。在块302中,确定图像是否本地存储在cdn服务器中。如果是,则处理进行到块321。如果图像没有被本地存储在cdn服务器中,则处理进行到块303。在块303中,确定找到的图像是否是原始图像。如果找到的图像是原始图像,则处理进行到块307。如果发现的图像不是原始图像,则处理进行到块304。在块304中,从源服务器加载原始图像,并将其发送到cdn服务器。在块305中,原始图像被选择性地存储在本地cdn服务器处理系统中。在块307中,cdn服务器加载原始图像。在块308中,确定是否需要处理。如果不需要处理,则处理进行到块310。如果需要处理,则处理进行到块309。在块309中,板载fpga将原始图像处理成所请求的格式。在块310中,确定图像是否将被本地存储。在块311中,处理过的图像被本地存储。在块312中,文件被临时保存并被下一个文件覆盖。在块321中,从cdn服务器的pcie设备加载图像。在块331中,将所请求的图像转发给用户。

图4是典型的常规图像处理和存储方法400的示例性流程图。如该流程图中所示,如果图像在cdn服务器中不可用,则将其转发到源服务器进行处理。在块401中,接收用户请求。在块402中,确定图像是否被本地存储在cdn服务器中。如果是,则处理进行到块421。如果图像没有被本地存储在cdn服务器中,则处理进行到块403。在块403中,在源服务器中加载原始图像。在块404中,源服务器将原始图像处理为所请求的格式。在块405中,将处理后的图像发送到cdn服务器。在块410中,确定图像是否将被本地存储在cdn服务器中。在块411中,处理后的图像被本地存储。在块412中,文件被临时保存并被下一个文件覆盖。在块421中,从cdn服务器加载图像。在块430中,将所请求的图像转发给用户。

常规方法通常涉及对通常位于网络部署的中心部分中的源服务器群集的频繁访问,并且cdn服务器群集通常在地理上更广泛地分布,所以在bgp资源上花费很多。常规cdn服务器必须将涉及处理的请求转发回源服务器来执行处理,这引入了延迟并占用了大量的通信带宽。在一个实施方式中,本地cdn服务器处理方案重新组织了架构并且改变了图像处理服务的责任分配。图像处理操作从源服务器的cpu移到具有fpga处理器的cdn服务器的附加卡。原始图像的副本选择性地被存储在cdn服务器的附加卡的本地存储器上。本地cdn处理系统第一次访问源服务器以加载图像的原始版本,由cdn集群本身生成后续的处理过的版本,这也使得对用户的响应更快速。更重要的是,昂贵的网络带宽不会被过度占用。此外,可以优化高速缓存算法,并且兼顾存储容量占用和计算负载/响应时间来选择性地选择处理过的图像以存储在cdn服务器上。

这种本地cdn服务器处理存储方案在该系统中将fpga既作为图像处理器又作为存储控制器使用。图5是根据一个实施方式的附加卡硬件结构500的一个示例的图示。附加卡是本地cdn服务器处理存储系统中的主要模块。附加卡插入在cdn服务器中。可以使用pcie插槽。在接收从源服务器(例如,通过通信网络、以太网等)传送的原始图像之后,fpga处理器处理所接收的数据。在接收和存储数据之后不久,处理过的图像由fpga本地产生并且准备好(例如,通过通信网络、以太网连接等)发送给用户。除了fpga的被分配用于图像处理的资源之外,fpga的剩余资源可以被设计为固态存储器的控制器。附加卡的形状因数可以根据多个标准(例如,服务器机箱设计、吞吐量要求、容量期望、热耗散等)而不同。卡不限于特定形状。

图5示出了根据一个实施方式的附加卡的一个示例性硬件结构和外形或形状因数。附加卡可以包括多个封装的nand快闪集成电路(ic)521至554、fpga控制器和协处理器510以及连接器或通信端口571。为了确保存储容量,可以使用高容量封装。在一个示例性实施方式中,8个或16个芯片被分组在同一ic中。为了进一步加速读写吞吐量并减少延迟,可以使用4平面nand闪存代替2平面或单平面nand。

在一个实施方式中,不同于处理器形式的存储驱动器、存储器和服务器的常规系统,该系统在单个附加卡上实现。图5中的附加卡将图像处理和闪存设备集成在一起。通过pcie总线,这种附加卡可以直接与网卡进行以太网传输,本地cdn系统可以通过以太网直接接收和发送其他节点的图像,实现现有系统中整个服务器的功能。

这种附加卡可以在多种环境中使用。在一个示例性实现中,这种附加卡在数据中心环境中使用。从数据中心操作的角度来看,附加卡提高了效率,并降低了总体拥有成本(tco)。这种附加卡可以帮助降低功耗。常规上,一台服务器的消耗超过500w,cpu本身消耗约120w或更多。但是,这种基于本地cdn服务器处理存储的系统功率可以控制在较低的功耗以下。在一个示例中,附加卡的功率为25w。附加卡还可以增强或增加机架密度特性。本地cdn服务器处理附加卡的低功耗不仅有助于满足机架功率预算,而且还使热学设计更容易。可以使用标准pcie形状因数(例如,hhhl),因此,每个附加卡都占据非常小的空间。更多节点可以部署在同一机架中,这可以帮助减少机架的总数。需要建立更少的数据中心来达到相同的规模并提供相同水平的服务。本地cdn服务器图像处理存储系统不仅仅是通用的协处理器(如gpu或通用fpga)。这种本地cdn服务器图像处理存储系统为下一代图像服务基础设施提供了革命性的系统,其特征在于高吞吐量、低延迟、低功耗、低网络流量,因而低tco。

图6示出了根据一个实施方式的闪存控制器600的示例。闪存控制器600包括ftl610、nand接口620、pcie接口640、ecc编码器651、加密引擎652和crc模块653、ecc解码器671、解密引擎672和crc模块654。闪存控制器的内部模块由图像处理器所在的单个fpga上的资源实现。闪存控制器技术已经成熟,它处理图像加载和存储操作。在一个实施方式中,fpga与pcie闪存控制器架构相兼容。

在一个实施方式中,本地cdn图像处理存储系统还通过绕过文件系统提高了总体效率。常规上,文件系统将用户空间中的文件划分为相等大小的逻辑单元,并将数据转换为指向读/写驱动器的io操作。常规方案增加了软件栈开销,增加了响应时间,并使控制机制复杂化。在社交媒体、电子商务和其他商业应用中,图像尺寸变得越来越大(例如,几mb)。常规文件系统,如ext4,把信息分成小到4kb的逻辑单元。常规文件系统的一个缺点是其与nand闪存特性不匹配,因此导致闪存的低效率使用。

在一个实施方式中,确定处理是否是逐个文件内容进行的,如果是,则基于文件用标签来寻址该信息。在一个示例中,图像信息被逐个图像地处理,并且分配地址标签。图像可以是独立的标识,并且相关处理是逐个图像进行的。因此,为了寻址图像文件,基于图像的存储器绕过文件系统,为每个图像文件直接分配一个不可重复的索引或标签。通过这种独特的标记系统,能够以减少的延迟找到各个图像进行加载、处理和保存。

图7a示出了用于数据中心中的常规文件存储的常规io路径。常规io路径包括常规存储应用711、虚拟文件系统712、通用文件系统713和存储设备714。

图7b是根据一个实施方式的本地cdn服务器处理存储io路径。本地cdn服务器处理存储io路径包括图像存储应用721、通信结构722以及图像处理和存储设备723。不存在类似常规虚拟文件系统712的文件系统。本地处理cdn服务器为每个要存储的图像生成唯一密钥。图像可以包括原始图像或本地图像处理结果。唯一密钥可以由自开发软件来实现。cdn服务器保存密钥库,并将图像及其密钥都发送到图像处理和存储设备。在一个示例性实现中,该过程包括确定是否存储原始图像。同时,如果图像被请求进一步处理,则由fpga生成处理过的图像,其中也生成处理过的图像的密钥。然后,将处理过的图像发送给用户。此外,如果处理过的图像被选择性地存储,则将其存储并且将其密钥发送到密钥库。

应当理解,存在多种独特的标记方法。在一个实施方式中,文件被赋予被认为是唯一的名称或标签。与图像相关的一组信息(如文件的名称、目录、创建日期、修改日期、版本号、分辨率等)被级联以形成字符串。字符串可以由标识符(例如,string_concat等)表示。应用哈希函数以生成哈希值(例如,string_concat等)。为了减少哈希冲突的可能性,使用多个哈希函数来生成密钥,这些密钥随后组合在一起以形成唯一标签。创建一个库来跟踪或维护哈希值和图像文件。

图8a和8b示出了存储系统设计方案。图8a是常规存储系统设计方案,图8b是根据一个实施方式的基于本地cdn服务器处理图像的存储系统。常规存储系统设计810包括应用811、系统调用层812、文件系统用户模块813、文件系统存储管理814、逻辑块地址(lba)层815、io调度器816和存储介质817。基于本地cdn服务器图像的系统设计的包括应用821、系统调用层822、文件系统用户模块823、基于图像的存储管理824、io调度器816和存储介质827。

在常规存储系统中,驱动器被划分为相同大小的块,表示为scf。并行地,要存储的文件也被划分为大小为scf的小块。通用存储满足所有文件的特性,可广泛应用。因此,scf通常很小,从而浪费较少的驱动器空间。当一个文件或其模数部分小于一个块(在一些情况下被称为逻辑扇区)时,该块的未占用部分用某个固定模式(例如,全-1,全0,1和0的其他组合等)。粒度越细,文件系统管理就越复杂。图像大小通常比文件系统块大几十倍。此外,图像的访问风格使用每个图像而不是等大小的扇区为单位。因此,与常规存储相比,基于图像的存储提高了效率。基于图像的存储保持了较少的元数据,并且还丢弃了穿过如图8a和8b的比较中所示的路径的lba层。

在这种基于图像的存储系统中,图像文件通过系统调用和用户模块接口传递。然后,基于图像的存储管理包括其中每个文件用唯一id标记的层。当图像被写入存储器时,物理介质中的唯一id和偏移一起工作用于寻址,并且寻址信息用作本地cdn服务器处理系统中的元数据。因此,当观看媒体时,所看到的是各种尺寸的图像,并且它们一个接一个地存储在一起。并行地,主机可以存储和管理元数据以用于数据控制目的。用于生成唯一标签的信息可以包括许多不同类型的数据,这增加了标签的唯一性。例如,创建时间、用户ip、文件大小、分辨率、修改时间、cdnid等都被连接在一起,甚至还有在线生成的随机数。该长串进一步用形成唯一id的哈希函数(例如,sha-3,murmur等)进行编码。在一个示例性实现中,冲突可能性低于10-120,并且实际上多个文件不共享同一个id。

图9示出了根据一个实施方式的基于cdn图像的存储系统拓扑900的一个示例。示出了基于cdn图像的处理和存储系统的机制和流程以及如何将其部署在基础设施中。系统900包括:客户端911,912和917;防火墙921,922和927;cdn服务器集群931,932和937;元数据服务器940;源服务器集群950。在一个实施方式中,客户端911,912和917类似于图1所示的用户设备141,142,143和144。类似于图1中的源服务器111,112和119,元数据服务器940和源服务器集群950远离cdn服务器。cdn服务器既用作高速缓存,又用于生成图像文件的元数据。图像的原始版本进入源服务器并存储在那里,而相应的元数据存储在元数据服务器中。如果cdn服务器对原始图像执行图像处理,则判断是否将图像处理的结果存储在cdn服务器上。这个新图像也被唯一标记。其元数据由元数据服务器生成和管理,并且存储图像处理的结果。

当某个图像被请求时,元数据服务器检查该查询以定位文件并且将其连同位置信息一起返回。如果该版本的图像已经被存储,则通过具体的物理位置,该图像被加载并发送给用户。另一方面,如果此版本不存在,则由fpga处理器加载和处理原始图像。

当存储的内容被分离成元数据和用户数据时,每个图像的元数据通常是相同长度的,并且元数据的总量与图像的数量而不是总绝对文件大小成比例。因此,即使图像信息大小增加(例如,更高的分辨率等),元数据所需的驱动器空间也不会改变太多。然而,常规文件系统必须使其元数据量与用户数据的大小成比例地增加。随着图像大小变得越来越大(从几十kb到几mb),元数据大小增加变得更有问题(更复杂、消耗更多的存储资源和带宽,减缓了系统下降等)。这种基于图像的存储系统使得能够使用先进技术,而常规方法到达了实际极限,特别是关于形式大小(高级小型相机,其不断演进生成高分辨率,但常规方法需要复杂的大存储,不可能保持很小)。

本地cdn服务器处理系统还可以启用基于nand页缓冲器的无dram操作。在一个实施方式中,pcie附加卡不具有板载dram。相反,它使用每个nand闪存逻辑单元号(lun)中的页缓冲器来临时保存数据。lun表示存储单元。高容量pcie附加卡具有数百个lun,每个lun具有多个平面,每个平面都具有页缓存(例如,4kb,8kb等)。因此,来自并行lun的页缓存的分配空间足够大以容纳要处理的图像以及中间结果。这样,避免了dimm和pcie设备之间的数据移动。这可以有助于节省cpu资源使用或dma开发工作。由于数据加载、处理和存储发生在单个pcie设备中,所以简化了操作协议,缩短了数据路径,并且提高了效率。此外,对于未被非常频繁访问的某些数据,其也被临时放入闪存中(而该数据通常位于dram中)。这又进一步使得能够减少dram使用。

在无dram设计的一个实施方式中,存储系统可以被认为具有驱动数十个闪存芯片的控制器。在包括数十个集成闪存芯片的pcb板上可以实现相对高的存储容量。在一个示例性实施方式中,封装的闪存芯片包括8至16个nand裸片,并且nand裸片具有4个平面。也就是说,控制器能够并行访问数百个平面。在许多常规固态驱动器(ssd)中,完成从控制器到nand闪存单元的整个编程需要相当长的时间并且消耗相当大的功率。编程操作是不可逆的,因此相同的编程和验证动作被重复多次以实现一个编程操作。

也可以使用增量步进脉冲编程(ispp)。编程电压以小步长逐渐增加以将电荷拉到nand闪存的浮动栅极中,因此修改实际选通电压以导通/截止每一个晶体管。每个小编程之后是读操作,以检查一些位线或一些单元是否已经达到要编程的值。如果是,则那些位线被关闭,编程完成。ispp继续,直到页面中的单元格被正确编程。这种复杂性使得nand闪存需要数百微秒甚至更长的时间来编程。

图10是根据一个实施方式的使用页缓存和nand的示例性无dram本地cdn服务器处理环境1000的框图。示例性的无dram本地cdn服务器处理环境1000包括fpga控制器和协处理器1010、lun1021,1022和1023以及包括页缓冲器1035的平面1030。如图10所示,每个nand闪存平面具有用于保存要写入数据的页缓冲器。将数据从fpga控制器传输到nand闪存页缓冲器的延迟远远短于要写入nand闪存的数据。在一个示例性实现中,在每一时刻,只有少数闪存通道是活动的。因此,非活动页缓冲器可以用于存储器目的以保存中间数据。保持中间数据工作由位于相同pcie附加卡中的fpga图像处理器使用,并且处理器具有用于图像处理的高吞吐量和低等待时间。因此,页面缓冲器被快速占用和释放,这不与nand闪存使用形成冲突。通过使用页缓冲器,图像处理和存储系统不需要频繁地通过pcie总线与服务器的dram进行通信,而是继续在本地完成处理。这避免了cpu与pcie设备之间的交互,并直接节省了中断或轮询的响应时间和cpu资源使用。

内存计算还可以确保数据一致性,并有助于防止电源故障时的数据丢失。常规方法是在服务器中使用dram,并与cpu处理器一起工作以获得处理过的图像。然而,常规系统通常不能提供数据保护。只要电源关闭或不稳定,dram中的数据就会消失。另一方面,pcie附加卡通过板载超级电容器实现了电源故障保护。如果服务器电源故障或被中断,超级电容器就提供足够的电荷以将数据从nand闪存页缓冲器写入到作为非易失性存储器的nand闪存中。

将图像处理器和存储控制器集成到接近nand闪存的同一fpga中实现了内存计算的概念。没有通过cpu复杂的数据传递,cpu和存储器资源利用率降低。在cdn服务器本地执行图像处理的快速方法有助于克服几个常规问题。常规系统通常引起几个问题。从源服务器获取处理过的图像结果消耗或占用了网络带宽,这相当于增加了tco。bgp带宽通常不是免费的,基础设施公司通常需要支付费用。此外,频繁访问源服务器会在网络上造成更多的传输负担,并对流量造成不利影响。对于诸如图像处理的特定类型的计算的另一个问题是试图使用cpu来运行软件(这在专门任务中通常不是非常有效的)。考虑到昂贵的cpu资源和高功耗,用cpu处理图像通常需要长的等待时间来完成任务,并且浪费计算资源。

因此,所呈现的本地cdn处理系统和方法便于有效的图像处理和存储。本地cdn处理系统和方法使得能够更快地响应用户图像请求,减少网络带宽的消耗和减少源服务器cpu使用。fpga资源由pcie闪存设备中的存储控制器和图像处理器操作来共享。这允许从源服务器cpu卸载处理负担,并降低cpu复杂(包括总线、内存、操作系统等)的开销。原始图像可以选择性地复制到cdn服务器上,稍后关于原始图像的请求(包括与原始图像相关联的处理过的图像的请求)可以由cdn服务器完成。因此,减少了对该服务的网络带宽利用。图像处理服务的文件访问粒度基于单个图像而不是相同大小的块。图像的唯一索引可以用于图像操作。这种唯一索引分配了不可重复的索引并确保图像具有其各自的索引。因此,文件管理得以简化,因此,在绕过常规文件系统之后,对图像的访问得以显著加速,并且减少了在文件系统构建和维护上花费的开销。此外,无dram设计可以利用每个闪存lun内的内部页缓冲器资源,并且提供类似于在附加卡上使用的常规dram缓存的数据缓冲功能,而不实际使用dram。促进dram的移除可以进一步降低附加卡的成本、功率消耗和系统设计复杂度。开发用于处理过的图像的缓存算法以平衡存储容量与在线fpga处理负载。

以上详细描述的一些部分是针对在计算机存储器内的数据位上执行的操作的过程、逻辑块、处理和其他符号表示来呈现的。这些描述和表示是数据处理领域的技术人员通常使用的用于将他们的工作的实质有效地传达给本领域的其他技术人员的手段。这里的过程、逻辑块、处理等通常被设想为导致期望结果的步骤或指令的自相一致的序列。步骤包括物理量的物理操纵。通常,尽管不是必须的,这些量采取能够在计算机系统中存储、传送、组合、比较和以其他方式操纵的电、磁、光或量子信号的形式。已经证明,主要出于公共使用的原因,有时将这些信号称为比特、值、元素、符号、字符、术语、数字等是方便的。

然而,应当记住,这些术语和类似术语与适当的物理量相关联,并且仅仅是应用于这些量的方便的标记。除非特别声明,否则从以下讨论中显而易见,应当理解,在整个申请中,使用诸如“处理”、“计算”、“确定”、“显示”等术语的讨论是指计算机系统或类似处理设备(例如,电、光或量子计算设备)的动作和过程,其操纵和变换表示为物理(例如,电子)量的数据。这些术语是指将计算机系统的部件(例如寄存器、存储器、其他这样的信息存储、传输或显示设备等)内的物理量操纵或变换成类似地表示为物理量的其他数据的处理设备的动作和过程在其他部件内。

已经出于说明和描述的目的呈现了本发明的具体实施方式的前述描述。它们不是穷尽的或将本发明限制到所公开的精确形式,并且显然,根据上述教导,许多修改和变化是可能的。选择和描述实施方式是为了最好地解释本发明的原理及其实际应用,从而使得本领域的其他技术人员能够最佳地利用本发明和具有适合于预期的特定用途的各种修改的各种实施方式。意图是本发明的范围由所附的权利要求及其等同物限定。方法权利要求中的步骤的列表不意味着执行步骤的任何特定顺序,除非在权利要求中明确说明。

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