一种具有图像处理功能的智能存储设备技术领域
本发明涉及计算机硬件存储技术领域以及深度学习(Deep
Learning)的卷积神经网络(ConvolutionalNeuralNetworks,CNN)
的人工智能技术领域,尤其涉及一种具有图像处理功能的智能存
储设备。
背景技术
卷积神经网络(CNN)是一个广为人知的深度学习架构,它
拓展于人工神经网络并在视频监控、移动机器人视觉、图像搜索
引擎等领域里被广泛使用。CNN的设计灵感来源于生物的视觉神
经,通过处理具有多层神经链接特性的数据来达到图像识别的高
精度要求。最近基于深度学习算法的急速需求也极大地推动了深
度卷积神经网络(DeepCNN)的研究。由于CNN特殊的运算模
式,通用处理器(CPU)很难有效地实现CNN算法并满足较高的
性能需求。如此一来,基于可编程门阵列器件(FPGA)、显卡(GPU)
甚至专用集成电路(ASIC)等各种加速模块也被设计用来改善
CNN的运算性能。由于FPGA具有高性能、高能效、开发周期短
和可重构等特点,FPGA的加速模块也广泛地被研究者关注。
另一方面,随着信息传播的爆发式增长,数据存储也遇到容
量和速度的挑战。近年来,固态硬盘(SSD)的技术日趋成熟,因
其特有的存取速度优势,传统的磁碟硬盘正在逐步被速度更快的
SSD所取代。例如,在互联网、安全防护、刑事侦查等领域中,
大规模图像数据的分类及检索功能的应用需求日益增多。目前常
用的解决方法是利用服务器的CPU运算能力或者是独立的加速板
卡例如GPU或者FPGA实现图像的高速分类和检索。然而,这几
种做法都有或多或少的缺陷,一种需要倚靠服务器本身CPU的强
大计算能力。另外一种的加速板卡方式需要占用服务器的扩展插
槽,一般为PCIe。而服务器本身的插槽位数有限,在引入附加成
本的同时,扩展性也收到了限制。如果存储设备本身已经具备了
图片分类及检索功能之后,以上的问题就可以得到很好的解决。
发明内容
针对现有技术中的大规模图像数据的分类及检索时所存在的
上述缺陷,本发明提供了一种基于卷积神经网络的具有图像处理
功能的智能存储设备。
依据本发明的一个方面,提供了一种具有图像处理功能的智
能存储设备,包括:
一集成电路,包括一主机控制器、一设备控制器、一第一逻
辑单元和一第二逻辑单元,其中所述第一逻辑单元与所述第二逻
辑单元相互独立;
一主机,电性耦接至所述主机控制器,所述主机通过所述主
机控制器与所述集成电路进行双向数据传输;以及
一固态硬盘,电性耦接至所述设备控制器,所述固态硬盘通
过所述设备控制器与所述集成电路进行双向数据传输,
其中,所述智能存储设备藉由所述第一逻辑单元和所述第二
逻辑单元对应地实现图像分类和图像检索。
在其中的一实施例,所述集成电路为一现场可编程门阵列。
在其中的一实施例,所述主机控制器和所述设备控制器均为
SATA接口电路。
在其中的一实施例,所述第一逻辑单元为CNN加速模块,用
于接收来自所述主机的图片,对所述图片进行分类,并将分类结
果存储于所述固态硬盘。
在其中的一实施例,所述CNN加速模块的分类结果包括分类
标识码和索引节点地址,所述分类标识码用于生成图片目录文件,
所述索引节点地址用于生成索引节点地址列表。
在其中的一实施例,所述第二逻辑单元为向量比对加速模块,
用于根据来自所述主机的图片检索信息,对所述固态硬盘中的图
片文件进行特征提取和向量比对,并依据相似度的高低生成检索
目录文件。
在其中的一实施例,所述向量比对加速模块使用所述集成电
路中的数据处理模块对目标向量和图片特征进行欧式距离计算,
以获得图片相似度的高低。
在其中的一实施例,所述CNN加速模块包括多个处理单元、
片上缓存器、片外存储器和片内/片外交互单元,其中,所述片外
存储器用于存储待处理的图片数据,所述片内/片外交互单元用于
处理单元与片外存储器之间的数据通信,所述片上缓存器用于在
所述处理单元进行卷积运算之前对所述待处理的图片数据进行高
速缓存。
在其中的一实施例,所述CNN加速模块电性耦接至中断控制
器和控制总线,其中,所述CNN加速模块通过所述控制总线向数
据处理模块发送交互指令,所述数据处理模块根据所述交互指令
并通过数据总线与片外存储器进行数据通信。
在其中的一实施例,所述数据处理模块的工作频率为
100MHz,所述片外存储器的数据带宽为400MB/s。
采用本发明的具有图像处理功能的智能存储设备,其包括集
成电路、主机和固态硬盘。该集成电路包括主机控制器、设备控
制器、第一逻辑单元和第二逻辑单元。该主机电性耦接至上述主
机控制器,主机通过主机控制器与集成电路进行双向数据传输。
固态硬盘电性耦接至设备控制器,并通过设备控制器与集成电路
进行双向数据传输。本发明的智能存储设备藉由第一逻辑单元和
第二逻辑单元对应地实现图像分类和图像检索。相比于现有技术,
本发明将诸如FPGA芯片的集成电路实现CNN硬件加速功能、向
量比对功能,并透过与固态硬盘的数据通信来实现图片存取过程
中的高速分类存储以及图片读取时的快速检索功能。如此一来,
本发明通过集成电路的深度流水设计,在性能上完全能够满足高
速存取的应用场景,并且集成电路和固态硬盘的功耗较低,因此
可有效提高单位设备的运算能效比。此外,诸如服务器的主机CPU
只需要负责通信和存储的控制调度,不必具备强大的计算性能;
服务器允许的硬盘接入数目高于PCIe插槽的配置数目,在数据存
储方面具有更好的扩展性。
附图说明
读者在参照附图阅读了本发明的具体实施方式以后,将会更
清楚地了解本发明的各个方面。其中,
图1示出依据本发明的一实施方式,具有图像处理功能的智
能存储设备的结构示意图;
图2示出图1的智能存储设备中的集成电路的结构示意图;
图3示出图2的集成电路中的CNN加速模块的结构示意图;
图4示出图2的集成电路中,CNN加速模块与其它功能模块
的数据交互示意图;
图5示出采用图1的智能存储设备进行图片分类的示意图;
以及
图6示出采用图1的智能存储设备进行图片检索的示意图。
具体实施方式
为了使本申请所揭示的技术内容更加详尽与完备,可参照附
图以及本发明的下述各种具体实施例,附图中相同的标记代表相
同或相似的组件。然而,本领域的普通技术人员应当理解,下文
中所提供的实施例并非用来限制本发明所涵盖的范围。此外,附
图仅仅用于示意性地加以说明,并未依照其原尺寸进行绘制。
下面参照附图,对本发明各个方面的具体实施方式作进一步
的详细描述。
图1示出依据本发明的一实施方式,具有图像处理功能的智
能存储设备的结构示意图。图2示出图1的智能存储设备中的集
成电路的结构示意图。
参照图1和图2,在该实施方式中,本发明的具有图像处理功
能的智能存储设备包括一主机、一集成电路和一固态硬盘。其中,
集成电路包括一主机控制器、一设备控制器、一第一逻辑单元和
一第二逻辑单元。第一逻辑单元与第二逻辑单元相互独立。例如,
第一逻辑单元处于主机—集成电路—固态硬盘的数据通路上,用
来实现图片分类存储操作。又如,第二逻辑单元处于固态硬盘—
集成电路—主机的数据通路上,用来实现图片检索和读取操作。
主机电性耦接至集成电路中的主机控制器。主机通过主机控
制器与集成电路进行双向数据传输。固态硬盘电性耦接至设备控
制器。固态硬盘通过设备控制器与集成电路进行双向数据传输。
因此,智能存储设备藉由第一逻辑单元和第二逻辑单元对应地实
现图像分类和图像检索。较佳地,集成电路为一现场可编程门阵
列(FPGA)芯片。主机控制器和设备控制器均为SATA接口电路。
在此,简要描述一下SATA数据通信的主要操作流程:首先从主机
端接收FIS命令数据,然后解码并执行ATA命令,接着发送FIS
命令数据给固态硬盘,然后等待来自固态硬盘发回的FIS状态数
据,最后将该FIS状态数据返回至主机端。在FPGA芯片中,数
据处理模块负责转发FIS数据至主机端或固态硬盘。
在一具体实施例,第一逻辑单元为CNN加速模块,用于接收
来自主机的图片,对图片进行分类并将分类结果存储于固态硬盘。
进一步,CNN加速模块的分类结果包括分类标识码(分类id)和
索引节点地址(inode地址),分类标识码用于生成图片目录文件,
索引节点地址用于生成索引节点地址列表。后续将结合图5进行
具体描述。
在一具体实施例,第二逻辑单元为向量比对加速模块,用于
根据来自主机的图片检索信息,对固态硬盘中的图片文件进行特
征提取和向量比对,并依据相似度的高低生成检索目录文件。进
一步,向量比对加速模块使用集成电路中的数据处理模块(诸如
DSP)对目标向量和图片特征进行欧式距离计算,以获得图片相似
度的高低。后续将结合图6进行具体描述。
由上述可知,相比于现有技术,本发明将诸如FPGA芯片的
集成电路实现CNN硬件加速功能和向量比对功能,并透过与固态
硬盘的数据通信来实现图片存取过程中的高速分类存储以及图片
读取时的快速检索功能。由于本发明采用集成电路的深度流水设
计,在性能上完全能够满足高速存取的应用场景,并且集成电路
和固态硬盘的功耗较低,因此可有效提高单位设备的运算能效比。
此外,诸如服务器的主机CPU只需要负责通信和存储的控制调度,
不必具备强大的计算性能;服务器允许的硬盘接入数目高于PCIe
插槽的配置数目,在数据存储方面具有更好的扩展性。
图3示出图2的集成电路中的CNN加速模块的结构示意图。
图4示出图2的集成电路中,CNN加速模块与其它功能模块的数
据交互示意图。
参照图3和图4,在一示意性实施例中,CNN加速模块包括
多个处理单元(ProcessElement,PE)、片上缓存器(On-chip
Memory)、片外存储器(Off-chipMemory)和片内/片外交互单元。
其中,片外存储器用于存储待处理的图片数据。片内/片外交互单
元用于处理单元与片外存储器之间的数据通信。片上缓存器用于
在处理单元进行卷积运算之前对待处理的图片数据进行高速缓
存。此外,CNN加速模块内还包括片内互连单元,专门用于各个
处理单元与片内缓存器之间的数据通信。
在图4中,CNN加速模块还电性耦接至中断控制器和控制总
线(controlbus)。其中,CNN加速模块通过控制总线向处理器(如,
数据处理模块)发送交互指令。处理器根据交互指令并通过数据
总线(databus)、DDR控制器与片外存储器(如,DDR存储器)
进行数据通信。例如,数据处理模块的工作频率为100MHz,片外
存储器的数据带宽为400MB/s。
图5示出采用图1的智能存储设备进行图片分类的示意图。
参照图5,当主机通过其自身内存将图片传入SATA接口,并通过
FPGA芯片内部集成的CNN加速模块对图片进行分类判断。根据
得到的分类结果,图片会存入初始化过程中根据模型的信息预先
建立的图片目录文件中。例如,CNN加速模块进行分类时,其分
类结果包括分类标识码(分类id)和索引节点地址(inode地址)。
分类标识码分别对应分类1、分类2、分类3、…分类n,从而生
成输出结果中的图片目录文件。索引节点地址用于生成索引节点
地址列表(inode列表)。
此外,图片分类操作对应于主机—集成电路—固态硬盘的数
据通路,且集成电路利用主机控制器一侧的SATA接口以及设备控
制器一侧的SATA接口分别同主机和固态硬盘进行数据通信。相应
地,其SATA数据通信的图片分类操作流程为:首先从FIS命令数
据中解码数据总大小,创建并发送DMAFIS数据到主机端,准备
传输;然后等待主机端返回数据;接着用户指定LBA地址将转发
数据到固态硬盘;在重复上述步骤以完成数据传输之后,等待固
态硬盘返回FIS状态数据信息,并由FPGA芯片将FIS状态数据信
息发送回主机端。
图6示出采用图1的智能存储设备进行图片检索的示意图。
参照图6,当主机输入目标检测对象(可支持以模型ID的形式输
入)时,FPGA芯片通过设备控制器一侧的SATA接口遍历分类后
模型ID对应的目录文件,对目录文件中的图片文件进行特征提取
及向量比对。根据计算欧式距离的结果,将检索目标文件进行相
似度从高到低的排序,并存入检索目录文件内,然后将该检索目
录文件发送返回主机端。
类似地,图片检索操作对应于固态硬盘—集成电路—主机的
数据通路,且集成电路利用主机控制器一侧的SATA接口以及设备
控制器一侧的SATA接口分别同主机和固态硬盘进行数据通信。其
SATA数据通信的图片检索操作流程为:首先从FIS命令数据中解
码数据总大小,并转发FIS命令数据到固态硬盘;然后等待来自固
态硬盘发送的数据,若数据较多,数据处理模块可将FIS数据通过
DDR缓存后再发送;在重复上述步骤后,等待固态硬盘返回FIS
状态数据信息,并由FPGA芯片将FIS状态数据信息发回主机端。
采用本发明的具有图像处理功能的智能存储设备,其包括集
成电路、主机和固态硬盘。该集成电路包括主机控制器、设备控
制器、第一逻辑单元和第二逻辑单元。该主机电性耦接至上述主
机控制器,主机通过主机控制器与集成电路进行双向数据传输。
固态硬盘电性耦接至设备控制器,并通过设备控制器与集成电路
进行双向数据传输。本发明的智能存储设备藉由第一逻辑单元和
第二逻辑单元对应地实现图像分类和图像检索。相比于现有技术,
本发明将诸如FPGA芯片的集成电路实现CNN硬件加速功能、向
量比对功能,并透过与固态硬盘的数据通信来实现图片存取过程
中的高速分类存储以及图片读取时的快速检索功能。如此一来,
本发明通过集成电路的深度流水设计,在性能上完全能够满足高
速存取的应用场景,并且集成电路和固态硬盘的功耗较低,因此
可有效提高单位设备的运算能效比。此外,诸如服务器的主机CPU
只需要负责通信和存储的控制调度,不必具备强大的计算性能;
服务器允许的硬盘接入数目高于PCIe插槽的配置数目,在数据存
储方面具有更好的扩展性。
上文中,参照附图描述了本发明的具体实施方式。但是,本
领域中的普通技术人员能够理解,在不偏离本发明的精神和范围
的情况下,还可以对本发明的具体实施方式作各种变更和替换。
这些变更和替换都落在本发明权利要求书所限定的范围内。