CN103019656B - 可动态重构的多级并行单指令多数据阵列处理系统 - Google Patents
可动态重构的多级并行单指令多数据阵列处理系统 Download PDFInfo
- Publication number
- CN103019656B CN103019656B CN201210512880.1A CN201210512880A CN103019656B CN 103019656 B CN103019656 B CN 103019656B CN 201210512880 A CN201210512880 A CN 201210512880A CN 103019656 B CN103019656 B CN 103019656B
- Authority
- CN
- China
- Prior art keywords
- bit
- array
- unit
- data
- reconstruct
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Abstract
本发明公开了一种可动态重构的多级并行单指令多数据阵列处理系统,包括像素级并行的处理单元PE阵列和行并行的行处理器RP阵列,其中PE阵列主要完成低、中级图像处理中适于以全像素并行执行的线性运算部分,而RP阵列完成低、中级处理中适合以行并行方式完成的运算或者较复杂的非线性运算。特别地,PE阵列还能以极小的性能和面积开销,动态重构为二维自组织映射SOM神经网络,该神经网络可以在RP的配合下实现高速并行在线训练和特征识别等高级图像处理功能,彻底克服了在现有可编程视觉芯片和并行视觉处理器中像素级并行处理阵列无法用于高级图像处理的缺陷,促进了功能完整的低成本、低功耗、智能便携式高速实时片上视觉图像系统的实现。
Description
技术领域
本发明涉及可编程视觉芯片、并行视觉图像处理器、人工神经网络等视觉图像处理技术领域,尤其涉及一种用于高速视觉图像特征提取和特征识别的、可动态重构为自组织映射神经网络的可动态重构的多级并行单指令多数据阵列处理系统。
背景技术
传统的视觉图像处理系统包括分立的摄像头和通用处理器(或数字信号处理器(DSP)),摄像头使用图像传感器获取图像,并在通用处理器或DSP中利用软件对图像进行处理。由于在通用处理器或DSP中利用软件对图像进行处理往往是逐个像素串行进行的,存在串行处理的瓶颈,因此传统的视觉图像系统一般只能达到30帧/秒的速度,远远无法满足高速实时性需求,比如某些工业控制系统中经常要求1000帧/秒的速度。
而视觉芯片和并行视觉处理器的出现有效满足了高速实时处理的需求,其中视觉芯片是在单一芯片上同时集成有图像传感器和图像处理电路的新型片上视觉系统。在可编程视觉芯片和高速并行视觉处理器中,图像处理电路经常采用像素级并行图像处理体系架构,该架构是由相同处理单元组成的二维处理单元阵列,并且工作在单指令多数据模式下,使得低中级图像处理速度得到大幅提升,从而实现1000帧/秒以上的视觉图像特征提取速度。
但是,这种单一的像素级并行处理体系架构存在严重不足,主要表现在:
1)该像素级并行图像处理体系架构中的像素级并行图像处理单元排列成二维阵列,可实现全像素并行的局域处理,但无法实现快速灵活的广域处理;
2)该像素级并行图像处理体系架构支持低级图像处理和部分中级图像处理,因而能实现1000帧/秒的图像特征提取,但缺乏高级图像处理功能,尤其缺乏类似人类脑神经的简单直观的快速特征识别能力,因此仍须借助外部通用处理器才能组成完整的视觉图像系统,而这又会再次引入串行处理瓶颈,完全掩盖了像素级并行处理架构在低中级图像处理中获得的高速实时性,使得视觉图像处理整体过程(包括图像特征提取和图像特征识别)仍无法满足1000帧/秒的高速实时要求。
发明内容
(一)要解决的技术问题
针对以上现有像素级并行图像处理体系架构存在的问题,本发明提供了一种用于高速视觉图像特征提取和特征识别的、可动态重构为自组织映射(SelfOrganizingMap,SOM)神经网络的多级并行单指令多数据(SingleInstructionMultipleData,SIMD)阵列处理系统。
(二)技术方案
为达到上述目的,本发明提供了一种可动态重构的多级并行单指令多数据阵列处理系统,应用于高速片上视觉系统中的高速视觉图像特征提取和特征识别,包括:
可配置图像传感器接口1,用于并行或串行接收来自图像传感器的像素数据,再以行并行的方式将该像素数据输出到后续的可重构并行图像处理单元及自组织映射阵列2;
可重构并行图像处理单元及自组织映射阵列2,用于在图像处理的不同阶段被动态重构为M×M像素级并行的处理单元PE阵列或(M/4)×(M/4)自组织映射SOM神经网络,完成图像特征提取和图像特征识别,其中M为自然数;
行处理器RP阵列5,用于辅助可重构并行图像处理单元及自组织映射阵列2完成各阶段图像处理任务中适于以行并行完成的部分,能够进行快速非线性处理和广域处理,并在系统外部控制下串行移入数据和输出处理结果;以及
阵列控制器8,用于在系统外部驱动控制下,从系统内部变长-超长单指令多数据VVS指令存储器中取出控制所述可重构并行图像处理单元及自组织映射阵列2和所述RP阵列5的控制指令,并连同其自身某些特殊寄存器的值,一起译码后输出到所述可重构并行图像处理单元及自组织映射阵列2和所述RP阵列5作为阵列控制信号。
上述方案中,所述可重构并行图像处理单元及自组织映射阵列2包括M×M个细粒度并行图像处理单元PE3,这些PE单元以像素级并行方式工作在单指令多数据SIMD模式下。所述可重构并行图像处理单元及自组织映射阵列2中的每一块4×4二维PE子阵列4能被重构为SOM神经网络的一个神经元。所述4×4二维PE子阵列4在被重构前,其中的每一个PE单元11都与其最邻近的4个PE单元连接并进行数据通信,带宽为1比特。所述4×4二维PE子阵列4边界上的PE单元与相邻的4×4二维PE子阵列的PE单元连接并进行数据通信。
上述方案中,所述每个PE单元包含一个1比特算术逻辑单元ALU13,一个进位寄存器Creg12和一个位宽1比特、深度W的本地存储器14,其中W为自然数,算术逻辑单元13的操作数来自自身所在PE单元或相邻PE单元的存储器,运算过程中产生的进位输出存储到所在PE单元的进位寄存器中,作为下一次运算的算术逻辑单元的进位输入,从而以“位串”的方式实现多比特运算。
上述方案中,所述4×4二维PE子阵列4在被重构后成为SOM神经网络的一个神经元15,在该神经元15中各个PE单元之间的拓扑连接关系发生改变,每个PE单元代表所在重构后的神经元的一个“比特位切片(bit-slice)”,即每个PE单元都向所在神经元的某个比特位贡献相应的运算资源和存储资源,因而可映射为神经元的某一比特位,此时PE单元只能与映射为邻近比特位的两个PE单元连接并进行数据交互,但带宽升为2比特,包括1bit存储器数据交互和1bit进位数据交互。
上述方案中,所述每个作为“比特位切片”的PE单元中的进位输出不再存储到自身的进位寄存器中,而是直接作为重构后SOM神经元中相邻高位“比特位切片”PE单元中算术逻辑单元的进位输入,这样所有16个PE单元的算术逻辑单元就连接在一起形成了一个16比特算术逻辑单元,该16比特算术逻辑单元的最终进位输出被保存到该神经元的符号标志寄存器17中,并作为后续操作的进位输入或条件操作标志。其中,每个SOM神经元都是由16个PE单元重构而成的,一个SOM神经元可以操作16bit数据,相当于位宽16bit,而每个PE单元位宽只有1bit。因此1个SOM神经元相当于16个PE单元在逻辑上依次排列而成,每个PE单元相当于SOM神经元中特定的“1bit”,因此某个PE单元的“相邻高位”PE单元,就是相对于SOM神经元中该PE单元所在bit的相邻下一个“较高bit位”所在的PE单元。
上述方案中,该16比特算术逻辑单元的各比特操作数同时来自于所有PE单元16的存储器,因此该神经元15相当于拥有一个位宽16比特、深度W的本地存储器20,并且PE单元16的存储器数据通信功能可等效为神经元15的数据移位功能。所述由4×4二维PE子阵列4重构得到的该神经元15能够与左右两侧的神经元进行数据通信,通信带宽为1比特,该神经元15的等效视图包含:一个16比特ALU18、一个移位控制单元19、一个位宽16比特深度W的第二本地存储器20以及多个附加的标志寄存器,如Sflag寄存器等。
上述方案中,所述PE单元的具体电路结构包括:一个1比特ALU单元23,一个第一操作数选择器26、一个第二操作数选择器25、一个深度W位宽1比特的本地双端口存储器28、一个条件选择器29、一个进位寄存器22、一个临时寄存器24,以及多个与重构有关的二输入多路选择器,这些与重构有关的二输入多路选择器的两个输入端分别被标记为PE和SOM,表示可实现与重构相关的数据选择功能。
上述方案中,为了重构实现自组织映射神经网络,每个4×4二维PE子阵列4中的各PE单元还共享一个额外的标志寄存器文件31,该标志寄存器文件31由4个1比特标志寄存器构成,分别为重构标志寄存器Rflag32、获胜标志寄存器Wflag33、符号标志寄存器Sflag34和溢出标志寄存器OVflag35,该标志寄存器文件31的标志输出到PE单元作为某些选择控制信号,而其本身的值能够被某些PE单元的输出和/或外部控制信号所更新。
上述方案中,所述重构标志寄存器Rflag32通过控制重构多路选择器改变PE单元之间的拓扑连接关系来实现动态重构,当Rflag为0时,各重构多路选择器选择“PE”端的输入数据,此时整个阵列工作在像素级并行处理器模式下,而当Rflag为1时,各重构多路选择器选择“SOM”端的输入数据,此时整个阵列工作在二维SOM神经网络模式下。
上述方案中,所述获胜标志寄存器Wflag33、符号标志寄存器Sflag34和溢出标志寄存器OVflag35只有在二维SOM神经网络模式下才能起作用。
上述方案中,所述PE单元和标志寄存器文件31的控制信号来自于阵列控制器中的指令存储器和某些特殊寄存器的组合输出译码。
上述方案中,所述PE单元的数据输入输出依赖于其所在SOM神经元比特位切片的不同比特位置索引k而有所不同,具体体现在:
在第一操作数选择器所连接的重构相关的二输入多路选择器中,对于k=15,算术高位应接本PE单元自身的输出,而逻辑高位应接其所在神经元的西侧神经元最低有效位(LSB)输出,而对于其它k值,算术高位和逻辑高位均接向所在神经元的相邻高比特位切片PE的输出;
在第一操作数选择器所连接的重构相关的二输入多路选择器中,对于k=0,逻辑低位应接其所在神经元的东侧神经元最高有效位(MSB)输出,而对于其它k值,逻辑高位均接向所在神经元的相邻低比特位切片PE的输出;
在第二操作数选择器所连接的重构相关的二输入多路选择器27中,若k小于12,则其SOM端的输入数据为OVflag,否则为0;
对于k=12,其ALU的结果可用于更新OVflag的值,而对于其它k值则不能;
对于k=15,其ALU输出进位可用于更新Sflag的值,而对于其它k值,ALU进位输出均作为所在神经元的相邻高比特位切片PE单元在SOM模式下的ALU进位输入;
对于k=0,其SOM模式下的ALU进位输入为Sflag,而对于其它k值,该进位输入为所在神经元的相邻低比特位切片PE单元ALU的进位输出。
上述方案中,所述PE单元根据重构标志寄存器Rflag32的不同值,使整个可重构并行图像处理单元及自组织映射阵列2工作在像素级并行处理器模式(等效视图见图4a)或二维SOM神经网络模式(等效视图见图4b)。
上述方案中,所述可重构并行图像处理单元及自组织映射阵列2工作在像素级并行处理器模式下时,每个PE单元接收相同的控制指令,但处理本地1比特位宽存储器40中的不同数据,PE单元可在单个时钟周期中基于“读取数据-操作数据-写回数据(read-modify-write)”的存储器访问方式完成基本的1比特求和、求反、求与、求或算术逻辑操作,低中级图像处理中的定点多比特算术逻辑运算正是通过分解为上述基本1比特运算在像素级并行处理PE单元的1比特-ALU37上快速实现的,运算过程中的进位存储在Creg寄存器38中,若运算所需的两个操作数均来自与本地存储器,则需要在每一比特数据进行运算之前将其中一个复制到临时寄存器Treg39之中,以便使其作为ALU的第二操作数参与运算;PE单元的数据可与其东、南、西、北的相邻的PE单元以1比特带宽进行通信,通过多次的邻近处理单元数据通信,阵列中的任意两个PE单元之间可以传递任意比特的数据;在像素级并行处理模式下,所有PE单元功能都是完全一致的,与比特位切片索引k无关,且相关标志寄存器文件31不起作用。
上述方案中,所述可重构并行图像处理单元及自组织映射阵列2工作在二维SOM神经网络模式下时,每个神经元内部存储的参考向量和外部输入向量包括8比特整数部分和4比特小数部分,均为无符号定点数,当参考向量存储在16比特位宽的存储器中41时,高位多出的部分被置为0,为了不使运算中间结果溢出,所支持的最高向量维数为16;输入向量由系统外部按分量顺序依次给出,每个分量都同时广播到所有的神经元。
上述方案中,假设每个神经元通过某种方式已经获得了参考向量并存储在16比特位宽的存储器41中,对于在SOM神经网络训练和识别过程中共有的神经元获胜判断阶段,首先每个神经元同时计算输入向量和自身参考向量之间的街区距离,即这两个向量每个对应分量之间绝对差值之和(SAD),计算绝对差值可利用ALU的按位取反、求和功能并配合Sflag标志寄存器的操作来实现;每个分量的绝对差值计算完成之后再累加就得到了最终的距离,这是一个16比特无符号定点数;之后将每个神经元计算得到的距离以行并行方式输入RP阵列进行大小比较,最终提取出参考向量和输入向量距离最小的神经元所在的坐标用于最终分类判断或参考向量调整;
对于仅存在于训练过程中的参考向量调整阶段,首先系统外部处理器根据获胜神经元坐标和当前训练邻域半径,将处于获胜邻域内所有神经元的Wflag标志寄存器置1,并将所有神经元的Wflag作为后续操作的执行条件,该执行条件即为存储器写使能信号,这样只有处于获胜邻域内的神经元才能更新参考向量;更新时,对每个参考向量的分量,根据本次分类的结果正确与否,面向或背向输入向量方向进行调整,调整的大小与输入向量和参考向量在该分量上的差成正比,比例系数限制为2的负整数次幂,以利于通过硬件移位快速实现所需乘法操作,而硬件移位是通过映射为神经元相邻比特位的PE单元的重构后拓扑连接关系来完成的;参考向量调整过程涉及到的加法和减法操作是利用ALU42的按位取反、求和功能并配合Sflag标志寄存器来实现;调整后的参考向量若不处于0~256之间,需要截断归一化操作,该截断归一化操作是将所有负数强制置为为0,而所有大于等于256的数强制置为(256-1/16),这样才能保证下一轮获胜判断阶段的SAD求和结果不会超过16比特,截断归一化操作需要Sflag和OVflag标志寄存器的配合。
上述方案中,所述RP阵列5用于实现灰度形态学操作,图像特征提取,以及配合重构后的SOM神经元阵列提取获胜神经元坐标,包括一个8比特-ALU46、一个8比特缓冲移位寄存器43、两个操作数选择器(44-45)、一个基于二输入与门的条件生成器47、以及一个深度为V位宽为8比特的通用寄存器文件48。
上述方案中,在该RP阵列5中,每个行并行的行处理器RP单元10用于完成8比特的算术操作,包括加法、减法、求绝对值、算术/逻辑移位、以及比较大小,大于8比特的数据操作能够被分解为若干个小于或等于8比特的操作以“字节串行”方式完成;RP单元支持条件操作,条件标志来自于上一次ALU46的计算结果标志,并作为寄存器文件48的写使能信号。
上述方案中,在该RP阵列5中,每个RP单元均能够与其上下方的RP单元进行数据交互,其中有些RP单元还能够与其上下方相隔S行的行RP单元进行数据交互,这些RP单元构成RP跳跃链,以快速完成广域处理功能。
上述方案中,每个RP中的8比特缓冲移位寄存器43串联起来能够实现十字移位,该十字移位是垂直方向的字并行移位和水平方向的比特串行移位,从而与PE阵列和系统外部交互实现数据的输入输出。
(三)有益效果
从上述技术方案可以看出,本发明具有以下有益效果:
1、本发明提供的这种可动态重构的多级并行单指令多数据阵列处理系统,以像素级并行图像处理单元阵列为核心,同时具备局域处理和广域处理功能,支持灵活快速的低、中级图像处理以实现图像特征提取;该系统还能以极小的性能和面积开销动态重构为二维SOM神经网络,该神经网络支持高速并行在线训练和特征识别等高级图像处理功能。对于大多数典型视觉图像处理应用,使用该系统完成包括图像特征提取和特征识别在内的完整视觉图像处理过程的速度可以超过1000帧/秒。
2、本发明提供的这种可动态重构的多级并行单指令多数据阵列处理系统,重构后的SOM神经网络支持高速并行在线训练和特征识别等高级图像处理功能,首次实现了高级处理所消耗的时间接近低、中级处理,为低成本、单芯片的视觉芯片和视觉处理器实现完整、高速的视觉图像处理过程提供了解决方案;
3、本发明提供的这种可动态重构的多级并行单指令多数据阵列处理系统,具有高速度、高集成、低功耗、低成本、可重构的优势,可应用于多种嵌入式高速实时视觉图像处理系统,实现包括高速目标追踪、自然人机交互、环境监控、智能交通、机器人视觉等在内的各种高速智能视觉图像应用。
4、本发明提供的这种可动态重构的多级并行单指令多数据阵列处理系统,PE阵列还能以极小的性能和面积开销,动态重构为二维SOM神经网络,该神经网络可以在RP的配合下实现高速并行在线训练和特征识别等高级图像处理功能,彻底克服了在现有可编程视觉芯片和并行视觉处理器中像素级并行处理阵列无法实现高级图像处理的缺陷,促进了功能完整的低成本、低功耗、智能便携式高速实时片上视觉图像系统的实现。
附图说明
图1是依照本发明实施例的可动态重构的多级并行单指令多数据阵列处理系统的示意图。
图2是本发明实施例中4×4PE子阵列重构前后的拓扑连接示意图。
图3是本发明实施例中PE单元的结构示意图。
图4a是本发明实施例中像素级并行模式下的PE单元等效电路视图。
图4b是本发明实施例中SOM模式下的神经元(4×4PE子阵列)等效电路视图。
图5是本发明实施例中行处理器RP结构的示意图。
图6是本发明实施例中基于可重构PE/SOM阵列系统的高速智能视觉芯片体系架构的示意图。
图7是本发明实施例中视觉芯片上1000fps高速手势追踪及识别算法的流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
需要说明的是,在附图或说明书描述中,相似或相同的部分都使用相同的图号。在附图中,未绘示或描述的元件或实现方式,为所属技术领域中普通技术人员所知的形式。另外,虽然本文可提供包含特定值的参数的示范,但应了解,参数无需确切等于相应的值,而是可在可接受的误差容限或设计约束内近似于相应的值。
在本发明的一个示例性实施例中,提供了一种可动态重构的多级并行单指令多数据阵列处理系统。如图1所示,该可动态重构的多级并行单指令多数据阵列处理系统支持像素级并行处理单元阵列动态重构为自组织映射SOM神经网络,从而能够应用于高速片上视觉系统中高速视觉图像特征提取和特征识别,该架构包括可配置图像传感器接口1、可重构PE/SOM阵列2、行并行的行处理器(RowProcessor,RP)阵列5和阵列控制器8。
在图1所示的实施例中,可配置图像传感器接口1用于并行或串行接收来自图像传感器的像素数据,再以行并行的方式输出到后续多级并行处理模块进行处理。该接口可通过参数配置灵活实现对原始图像数据流的区域选择和亚采样。
可重构PE/SOM阵列2用于在图像处理的不同阶段动态重构为M×M像素级并行的处理单元(ProcessingElement,PE)阵列或(M/4)×(M/4)自组织映射(SOM)神经网络,前者可完成低、中级图像处理(图像特征提取),而后者可完成高级图像处理(图像特征识别)。
行并行的RP阵列5用于辅助配合可重构PE/SOM阵列完成各阶段图像处理任务中适于以行并行完成的部分,具有快速非线性处理和广域处理功能,该阵列还可与系统外部进行数据交互。
阵列控制器8用于在系统外部驱动控制下,从系统内部变长-超长单指令多数据(VariableVLIW-SIMD,VVS)指令存储器中取出控制所述可重构PE/SOM阵列2和所述行并行的RP阵列5的控制指令,并连同该控制器中的某些特殊寄存器的值,一起译码后输出到所述可重构PE/SOM阵列2和所述行并行的RP阵列5作为阵列控制信号;这些指令可以是32bit的PE/SOM阵列或RP阵列单独工作的指令序列,也可以是64bit的PE/SOM阵列和RP阵列协同工作的超长指令字(VeryLongInstructionWord,VLIW)序列,其类型可以在程序执行过程中动态切换以满足各种算法需求。
在图1所示的实施例中,所述可重构PE/SOM阵列2包括M×M个细粒度处理单元(PE)3,这些PE单元以像素级并行方式工作在单指令多数据(SIMD)模式下,也可以动态重构为(M/4)×(M/4)的自组织映射(SOM)人工神经网络。所述可重构PE/SOM阵列2中的每一块4×4二维PE子阵列4可重构为SOM神经网络的一个神经元,重构后邻近PE单元的拓扑连接关系由图1中的实线双向箭头变为虚线双向箭头所示。
如图2所示,所述重构前的4×4PE子阵列10中,每一个PE单元11都和其最邻近的4个PE单元连接(子阵列边界上的PE单元与相邻子阵列的最近PE单元相连)进行数据通信,带宽为1bit。每个PE单元主要包含一个1bit算术逻辑单元(ALU)13,一个进位寄存器(Creg)12和一个位宽1bit、深度W的本地存储器14,其中ALU的操作数来自自身所在PE单元或相邻PE单元的存储器,运算过程中产生的进位输出存储到所在PE单元的进位寄存器中,作为下一次运算的ALU进位输入,从而以“位串”的方式实现多比特运算。
所述基于4×4PE子阵列重构后的SOM神经元15中,各个PE单元16之间的拓扑连接关系发生改变,每个PE单元代表所在重构后的神经元的一个“比特位切片(bit-slice)”,即每个PE单元都向所在神经元的某个比特位贡献相应的运算资源和存储资源,因而可映射为神经元的某一比特位,此时PE单元只能与映射为邻近比特位的两个PE单元连接(代表所在神经元最高bit和最低bit的PE单元与左右相邻神经元的相应PE单元连接)进行数据交互,但带宽升为2比特,包括1bit存储器数据交互和1bit进位数据交互,这种连接方式可以独立于ALU之外实现移位操作,从而实现快速乘除运算以及参考向量和识别结果载入/载出整个神经网络。另外,每个“比特位切片”PE单元中的进位输出也不再存储到所在PE单元的进位寄存器中,而是直接作为相邻“高位”PE单元中ALU的进位输入,这样所有16个PE单元的ALU就连接在一起形成了一个16bitALU,该16bitALU的最终进位输出被保存到该神经元的符号标志寄存器(Sflag)17中,并作为后续步骤的进位输入或条件操作标志;由于该16bit的各bit操作数同时来自于所有PE单元的存储器,因此该神经元就相当于拥有一个位宽16bit、深度W的本地存储器;
所述由4×4PE子阵列重构得到的整个SOM神经元可以等效为图2右下方的结构视图:该神经元包含一个16bitALU18,一个移位控制单元19,一个位宽16bit、深度W的本地存储器20,以及少量标志寄存器(比如符号标志寄存器Sflag);该神经元可以和左右两侧的神经元进行数据通信,通信带宽仍为1bit。
图2中,所述PE单元21的具体电路结构包括:一个1bitALU单元23,一个第一操作数选择器26,一个第二操作数选择器25,一个深度W、位宽1bit的局部双端口存储器28,一个条件选择器29,一个进位寄存器(Creg)22,一个临时寄存器(Treg)24,以及多个与重构有关的二输入多路选择器,这些重构多路选择器的两个输入端分别被标记为“PE”和“SOM”,表示可实现与重构相关的数据选择功能,具体如图3PE单元中灰色部分(27、30等)所示。
为了重构实现SOM神经网络功能,每个4×4PE子阵列还共享一个额外的标志寄存器文件31,该寄存器文件由4个1bit标志寄存器构成,分别为重构标志(Rflag)32、获胜标志(Wflag)33,符号标志(Sflag)34和溢出标志(OVflag)35,该寄存器文件的标志输出到PE单元作为某些选择控制信号,而其本身的值也可被某些PE单元的输出和/或外部控制信号所更新;其中,Rflag通过控制重构多路选择器改变PE之间的拓扑连接关系来实现动态重构,当Rflag为0时,各重构多路选择器选择“PE”端的输入数据,此时整个阵列工作在像素级并行处理器模式下,而当Rflag为1时,各重构多路选择器选择“SOM”端的输入数据,此时整个阵列工作在二维SOM神经网络模式下,Wflag、Sflag和OVflag只有在SOM神经网络模式下才能起作用;PE单元和标志寄存器文件的控制信号(图3中的斜体字)来自于阵列控制器中的指令存储器和某些特殊寄存器的组合输出译码。由于PE单元中和重构有关的多路选择器所占的总面积只有整个PE的4%,因此重构的面积开销是很小的。
其中,所述PE单元的数据输入输出依赖于其所在SOM神经元比特位切片的不同比特位置索引k而有所不同,具体体现在:
1)在第一操作数选择器所连接的重构相关的二输入多路选择器中,对于k=15,算术高位应接本PE单元自身的输出,而逻辑高位应接其所在神经元的西侧神经元最低有效位(LSB)输出(如图2所示),而对于其它k值,算术高位和逻辑高位均接向所在神经元的相邻高bit位切片PE的输出;
2)在第一操作数选择器所连接的重构相关的二输入多路选择器中,对于k=0,逻辑低位应接其所在神经元的东侧神经元最高有效位(MSB)输出(如图2所示),而对于其它k值,逻辑高位均接向所在神经元的相邻低bit位切片PE的输出;
3)在第二操作数选择器所连接的重构相关的二输入多路选择器27中,若k小于12,则其“SOM”端的输入数据为OVflag,否则为0;
4)对于k=12,其ALU的结果可用于更新OVflag的值,而对于其它k值则不能;
5)对于k=15,其ALU输出进位可用于更新Sflag的值,而对于其它k值,ALU进位输出均作为所在神经元的相邻高bit位切片PE单元在SOM模式下的ALU进位输入;
6)对于k=0,其SOM模式下的ALU进位输入为Sflag,而对于其它k值,该进位输入为所在神经元的相邻低bit位切片PE单元ALU的进位输出。
所述PE单元根据重构标志寄存器Rflag的不同值,可以使整个PE/SOM阵列工作在像素级并行处理器模式或二维SOM神经网络模式下,在这两种模式下的等效电路视图分别如图4a和图4b所示。
其中,图4a是在像素级并行处理器模式下的单个PE单元的等效电路视图,此时的“等效”PE单元阵列工作在像素级并行的单指令多数据(SIMD)方式下,每个PE单元接收相同的控制指令,但处理本地1bit位宽存储器40中的不同数据,PE单元可在单个时钟周期中基于read-modify-write的存储器访问方式完成基本的1比特求和、求反、求与、求或等算术逻辑操作,低中级图像处理中的定点多比特算术逻辑运算正是通过分解为上述基本1比特运算在像素级并行处理PE单元的1bit-ALU37上快速实现的,运算过程中的进位存储在Creg寄存器38中,若运算所需的两个操作数均来自与本地存储器,则需要在每一bit数据进行运算之前将其中一个复制(可以通过将该bit数据和立即数1在1bitALU中相与来实现,此时ALU的第一操作数选择该bit数据,而第二操作数选择立即数1,ALU功能选择“相与”,同时存储器写使能置为0,而Treg写使能置为1)到临时寄存器(Treg)39之中,以便使其作为ALU的第二操作数参与运算;PE单元的数据可与其东、南、西、北的相邻的PE单元以1bit带宽进行通信,通过多次的邻近处理单元数据通信,阵列中的任意两个PE单元之间可以传递任意bit的数据;在像素级并行处理模式下,所有PE单元功能都是完全一致的,与“比特位切片”索引k无关,且相关标志寄存器文件31不起作用。
所述PE/SOM阵列在SOM神经网络模式下由4×4PE子阵列及相应的共享标志寄存器文件构成的SOM神经元的等效电路视图如图4b。该神经元的操作方式非常类似于重构前PE单元的操作,只不过运算和存储数据的位宽是16bit,同时需要更复杂的基于标志位的操作,典型情况下,每个神经元内部存储的参考向量和外部输入向量包括8bit整数部分和4bit小数部分,均为无符号定点数,当参考向量存储在16bit位宽的存储器中41时,高位多出的部分被置为0,为了不使运算中间结果溢出,规定所支持的最高向量维数为16。输入向量由系统外部按分量顺序依次给,每个分量都同时广播到所有的神经元。
下面结合具体的SOM神经网络的训练和识别过程来详细说明该神经元的工作原理,假设每个神经元通过某种方式已经获得了参考向量并存储在16bit位宽的存储器41中,则:
对于在SOM神经网络训练和识别过程中共有的神经元获胜判断阶段,首先每个神经元同时计算输入向量和自身参考向量之间的街区距离,即这两个向量每个对应分量之间绝对差值之和(SAD),计算绝对差值可利用ALU的按位取反、求和功能并配合Sflag标志寄存器的操作来实现;每个分量的绝对差值计算完成之后再累加就得到了最终的距离,这是一个16比特无符号定点数;之后将每个神经元计算得到的距离以行并行方式输入RP阵列进行大小比较,最终提取出参考向量和输入向量距离最小的神经元所在的坐标用于最终分类判断或参考向量调整。
对于仅存在于训练过程中的参考向量调整阶段,首先系统外部处理器根据获胜神经元坐标和当前训练邻域半径,将处于获胜邻域内所有神经元的Wflag标志寄存器置1,并将所有神经元的Wflag作为后续操作的执行条件,该执行条件即为存储器写使能信号,这样只有处于获胜邻域内的神经元才能更新参考向量;更新时,对每个参考向量的分量,根据本次分类的结果正确与否,面向或背向输入向量方向进行调整,调整的大小与输入向量和参考向量在该分量上的差成正比,比例系数限制为2的负整数次幂,以利于通过硬件移位快速实现所需乘法操作,而硬件移位是通过映射为神经元相邻比特位的PE单元的重构后拓扑连接关系来完成的;参考向量调整过程涉及到的加法和减法操作可利用ALU42的按位取反、求和功能并配合Sflag标志寄存器来实现;调整后的参考向量若不处于0~256之间,需要截断归一化操作:即把所有负数强制置为为0,而所有大于等于256的数强制置为(256-1/16),这样才能保证下一轮获胜判断阶段的SAD求和结果不会超过16比特,截断归一化操作需要Sflag和OVflag标志寄存器的配合。
所述RP行处理器的电路结构如图5所示,包括一个8比特ALU46、一个8比特缓冲移位寄存器43、两个操作数选择器44-45、一个基于二输入与门的条件生成器47、以及一个深度为V位宽为8比特的通用寄存器文件48。每个行并行的行处理器RP单元10用于完成8比特的算术操作,包括加法、减法、求绝对值、算术/逻辑移位、以及比较大小,大于8比特的数据操作可被分解为若干个小于/等于8比特的操作以“字节串行”方式完成;RP单元支持条件操作,条件标志来自于上一次ALU46的计算结果标志,并作为寄存器文件48的写使能信号。每个RP单元均能够与其上下方的RP单元进行数据交互,其中有些RP单元还能够与其上下方相隔S行的行RP单元进行数据交互,这些RP单元构成RP跳跃链,以快速完成广域处理功能。
每个RP中的8比特缓冲移位寄存器43串联起来能够实现十字移位(即垂直方向的字并行移位和水平方向的比特串行移位),从而与PE阵列和系统外部交互实现数据的输入输出。RP阵列主要用于实现灰度形态学操作,图像特征提取,以及配合重构后的SOM神经元阵列提取获胜神经元坐标。
下面进一步结合高速智能视觉芯片和1000fps高速手势追踪及识别对本发明提供的这种可动态重构的多级并行单指令多数据阵列处理系统进一步详细说明。
(一)高速智能视觉芯片
参照图1是所述的实施例,其中PE阵列大小为64×64(等效的,SOM神经元阵列大小为16×16),每个PE单元包含一个64×1bit(即W=64)的本地存储器,RP阵列大小为64×1,每个RP处理器包含一个16×8bit的通用寄存器文件(即V=16),阵列控制器中的VVS指令存储器容量为1024×64bit。
图6是集成了本发明所述系统的高速智能视觉芯片,它除了包含图1所示的可重构PE/SOM阵列、RP阵列、图像传感器接口和VVS阵列控制器外,还有相应的CMOS图像传感器(包括256×256大小的4管像素单元阵列、256×1高速并行模数转换器(ADC)阵列、图像传感器控制器)、嵌入式双核系统(包括双RISC核以及相应的数据存储器和RISC程序存储器)以及定时器/随机数发生器(用于双核RISC进程监控、进程切换以及随机初始化SOM神经元参考向量)。该视觉芯片能满足绝大多数高速智能视觉图像处理应用的图像分辨率和性能要求。
在本实施例中,高速CMOS图像传感器以低于80μs的帧间隔高速捕获图像数据,并转化为8bit或10bit数字信号后以行并行方式输入到PE阵列,然后在PE阵列和RP阵列中以全像素并行和行并行方式快速完成低、中级处理提取图像特征,之后PE阵列重构为SOM神经网络,以矢量并行方式处理所获得的特征向量(学习和识别),最后将计算结果输入到双核处理系统进一步处理后以得到最终的识别结果。双核处理系统工作在线程级并行方式下,主要用于特征识别以外的高级处理、反馈调整图像传感器参数、以及协调控制全系统各部分同步工作。
数字处理部分所消耗的时间,在100MHz的时钟频率下,对不同的应用,一般在20μs~800μs之间(其中SOM神经网络上的特征识别过程不超过15μs),因此整个系统可以工作在1000fps以上,对于某些较简单的应用甚至可以达到10000fps以上。
(二)1000fps高速手势追踪及识别
如图7所示,是基于本实施例视觉芯片的高速手势追踪及识别算法流程。本发明所提出的手势识别算法可实现四类手势的识别,主要用于基于自然人机交互的PPT手势控制系统。
该手势识别算法中,手势追踪部分包括从背景更新到二值形态学修整这六步,可以在像素级并行PE阵列和行并行RP阵列上快速完成,其中二值形态学修整是指在PE阵列中利用二值形态学区域修整算法去除小的杂散区域和填补大块区域中小的孔洞,最后的大块完整区域就是待识别手势所在的区域。之后属于手势识别阶段,重构后的SOM神经网络必须经过充分的训练才能用于识别,训练时首先由RP阵列提取手势识别区域的归一化致密度特征,具体算法为:将手势所在区域平均分为若干行和若干列,分别统计每一行和每一列激活像素(即二值图像中值为1的像素)的个数占该区域总面积的比值,这些比值组成一组向量,学习过程可以在SOM神经网络上高速在线完成(对于16维的特征向量,每轮训练不超过5ms)。
学习完成之后就是识别过程,注意到待识别手势中的两种特殊情况(即没有待识别区域的“空白”手势和只有一根指头的特殊鼠标移动手势),为了加快特征识别速度,算法采用了基于简单区域特征结合SOM神经网络的级联分类器,该分类器首先提取待识别区域的简单特征(比如激活像素总数、形状参数、顶点坐标等)在RISC核上尝试识别出上述特殊手势,若不成功再进一步提取较复杂的完整归一化致密度特征并利用SOM神经网络进行统一识别,最后输出识别出的手势类别代码以及手势顶点坐标(顶点坐标用于具体控制鼠标移动的位置和方向)。
由于典型应用过程中的大部分时间都是所述两种特殊手势,因此整个处理速度可以得到很大提升,该系统的平均帧率可以达到1000帧以上。高帧率有利于进一步采用RISC核对识别结果进行基于软件的时域低通滤波,抑制环境噪声和手势抖动对识别结果造成的干扰。实际上,可以定义更多的手势类别以满足更加丰富的应用需求,并且不会增加识别过程所消耗的时间,这是由SOM神经网络运行的本质所决定的。更进一步的,该性质实际上决定了对不同的应用,其特征识别过程所消耗的时间只和特征向量的维数成正比。由于低、中级处理的时间一般较短,因此对于不同的应用,都能够很好地预测其最终的帧率,而不必事先知道具体的算法。
综上所述,本发明提供的这种可动态重构的多级并行单指令多数据阵列处理系统,以像素级并行图像处理单元阵列为核心,同时具备局域处理和广域处理功能,支持灵活快速的低、中级图像处理以实现图像特征提取;该系统还能以极小的性能和面积开销动态重构为二维SOM神经网络,该神经网络支持高速并行在线训练和特征识别等高级图像处理功能。对于大多数典型视觉图像处理应用,使用该系统完成包括图像特征提取和特征识别在内的完整视觉图像处理过程的速度可以超过1000帧/秒。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (24)
1.一种可动态重构的多级并行单指令多数据阵列处理系统,应用于高速片上视觉系统中的高速视觉图像特征提取和特征识别,其特征在于,包括:
可配置图像传感器接口(1),用于并行或串行接收来自图像传感器的像素数据,再以行并行的方式将该像素数据输出到后续的可重构并行图像处理单元及自组织映射阵列(2);
可重构并行图像处理单元及自组织映射阵列(2),用于在图像处理的不同阶段动态被重构为M×M像素级并行的处理单元阵列或(M/4)×(M/4)自组织映射SOM神经网络,完成图像特征提取和图像特征识别,其中M为自然数;
行处理器RP阵列(5),用于辅助可重构并行图像处理单元及自组织映射阵列(2)完成各阶段图像处理任务中适于以行并行完成的部分,能够进行快速非线性处理和广域处理,并在系统外部控制下串行移入数据和输出处理结果;以及
阵列控制器(8),用于在系统外部驱动控制下,从系统内部变长-超长单指令多数据VVS指令存储器中取出控制所述可重构并行图像处理单元及自组织映射阵列(2)和所述RP阵列(5)的控制指令,并连同阵列控制器(8)内部某些特殊寄存器的值,一起译码后输出到所述可重构并行图像处理单元及自组织映射阵列(2)和所述RP阵列(5)作为阵列控制信号。
2.根据权利要求1所述的可动态重构的多级并行单指令多数据阵列处理系统,其特征在于,所述可重构并行图像处理单元及自组织映射阵列(2)包括M×M个细粒度并行图像处理单元(3),这些处理单元以像素级并行方式工作在单指令多数据SIMD模式下。
3.根据权利要求2所述的可动态重构的多级并行单指令多数据阵列处理系统,其特征在于,所述可重构并行图像处理单元及自组织映射阵列(2)中的每一块4×4二维处理单元子阵列(4)能被重构为SOM神经网络的一个神经元。
4.根据权利要求3所述的可动态重构的多级并行单指令多数据阵列处理系统,其特征在于,所述4×4二维处理单元子阵列(4)在被重构前,其中的每一个处理单元(11)都与其最邻近的4个处理单元连接并进行数据通信,带宽为1比特。
5.根据权利要求4所述的可动态重构的多级并行单指令多数据阵列处理系统,其特征在于,所述4×4二维处理单元子阵列(4)边界上的处理单元与相邻的4×4二维处理单元子阵列的处理单元连接并进行数据通信。
6.根据权利要求4或5所述的可动态重构的多级并行单指令多数据阵列处理系统,其特征在于,所述处理单元包含一个1比特算术逻辑单元ALU(13),一个进位寄存器Creg(12)和一个位宽1比特、深度W的本地存储器(14),其中W为自然数,算术逻辑单元(13)的操作数来自自身所在处理单元或相邻处理单元的存储器,运算过程中产生的进位输出存储到所在处理单元的进位寄存器中,作为下一次运算的算术逻辑单元的进位输入,从而以“位串”的方式实现多比特运算。
7.根据权利要求3所述的可动态重构的多级并行单指令多数据阵列处理系统,其特征在于,所述4×4二维处理单元子阵列(4)在被重构后成为SOM神经网络的一个神经元(15),在该神经元(15)中各个处理单元之间的拓扑连接关系发生改变,每个处理单元代表所在重构后的神经元的一个“比特位切片(bit-slice)”,即每个处理单元都向所在神经元的某个比特位贡献相应的运算资源和存储资源,因而可映射为神经元的某一比特位,此时处理单元只能与映射为邻近比特位的两个处理单元连接并进行数据交互,但带宽升为2比特,包括1bit存储器数据交互和1bit进位数据交互。
8.根据权利要求7所述的可动态重构的多级并行单指令多数据阵列处理系统,其特征在于,每个作为“比特位切片”的所述处理单元中的进位输出不再存储到自身的进位寄存器中,而是直接作为重构后SOM神经元中相邻高位“比特位切片”处理单元中算术逻辑单元的进位输入,这样所有16个处理单元的算术逻辑单元就连接在一起形成了一个16比特算术逻辑单元,该16比特算术逻辑单元的最终进位输出被保存到该神经元的符号标志寄存器(17)中,并作为后续操作的进位输入或条件操作标志。
9.根据权利要求8所述的可动态重构的多级并行单指令多数据阵列处理系统,其特征在于,该16比特算术逻辑单元的各比特操作数同时来自于所有处理单元的存储器,因此该神经元(15)拥有一个位宽16比特、深度W的本地存储器(20)。
10.根据权利要求9所述的可动态重构的多级并行单指令多数据阵列处理系统,其特征在于,由4×4二维处理单元子阵列(4)重构得到的该神经元(15)能够与左右两侧的神经元进行数据通信,通信带宽为1比特,该神经元(15)包含:一个16比特ALU(18)、一个移位控制单元(19)、一个位宽16比特深度W的本地存储器(20)以及多个附加的标志寄存器。
11.根据权利要求1所述的可动态重构的多级并行单指令多数据阵列处理系统,其特征在于,所述处理单元的具体电路结构包括:一个1比特ALU单元(23),一个第一操作数选择器(26)、一个第二操作数选择器(25)、一个深度W位宽1比特的本地双端口存储器(28)、一个条件选择器(29)、一个进位寄存器(22)、一个临时寄存器(24),以及多个与重构有关的二输入多路选择器,这些与重构有关的二输入多路选择器的两个输入端分别被标记为处理单元和SOM,表示可实现与重构相关的数据选择功能。
12.根据权利要求11所述的可动态重构的多级并行单指令多数据阵列处理系统,其特征在于,为了重构实现自组织映射神经网络,每个4×4二维处理单元子阵列(4)中的各处理单元还共享一个额外的标志寄存器文件(31),该标志寄存器文件(31)由4个1比特标志寄存器构成,分别为重构标志寄存器Rflag(32)、获胜标志寄存器Wflag(33)、符号标志寄存器Sflag(34)和溢出标志寄存器OVflag(35),该标志寄存器文件(31)的标志输出到处理单元作为某些选择控制信号,而其本身的值能够被某些处理单元的输出和/或外部控制信号所更新。
13.根据权利要求12所述的可动态重构的多级并行单指令多数据阵列处理系统,其特征在于,所述重构标志寄存器Rflag(32)通过控制重构多路选择器改变处理单元之间的拓扑连接关系来实现动态重构,当Rflag为0时,各重构多路选择器选择“处理单元”端的输入数据,此时整个阵列工作在像素级并行处理器模式下,而当Rflag为1时,各重构多路选择器选择“SOM”端的输入数据,此时整个阵列工作在二维SOM神经网络模式下。
14.根据权利要求12所述的可动态重构的多级并行单指令多数据阵列处理系统,其特征在于,所述获胜标志寄存器Wflag(33)、符号标志寄存器Sflag(34)和溢出标志寄存器OVflag(35)只有在二维SOM神经网络模式下才能起作用。
15.根据权利要求12、13或14所述的可动态重构的多级并行单指令多数据阵列处理系统,其特征在于,所述处理单元和标志寄存器文件(31)的控制信号来自于阵列控制器中的指令存储器和某些特殊寄存器的组合输出译码。
16.根据权利要求12、13或14所述的可动态重构的多级并行单指令多数据阵列处理系统,其特征在于,所述处理单元的数据输入输出依赖于其所在SOM神经元比特位切片的不同比特位置索引k而有所不同,具体体现在:
在第一操作数选择器所连接的重构相关的二输入多路选择器中,对于k=15,算术高位应接本处理单元自身的输出,而逻辑高位应接其所在神经元的西侧神经元最低有效位(LSB)输出,而对于其它k值,算术高位和逻辑高位均接向所在神经元的相邻高比特位切片处理单元的输出;
在第一操作数选择器所连接的重构相关的二输入多路选择器中,对于k=0,逻辑低位应接其所在神经元的东侧神经元最高有效位(MSB)输出,而对于其它k值,逻辑高位均接向所在神经元的相邻低比特位切片处理单元的输出;
在第二操作数选择器所连接的重构相关的二输入多路选择器(27)中,对于k小于12,其SOM端的输入数据为OVflag的当前值,否则为0;
对于k=12,其ALU的结果可用于更新OVflag的值,而对于其它k值则不能;
对于k=15,其ALU输出进位可用于更新Sflag的值,而对于其它k值,ALU进位输出均作为所在神经元的相邻高比特位切片处理单元在SOM模式下的ALU进位输入;
对于k=0,其SOM模式下的ALU进位输入为Sflag的当前值,而对于其它k值,该进位输入为所在神经元的相邻低比特位切片处理单元ALU的进位输出。
17.根据权利要求12或13所述的可动态重构的多级并行单指令多数据阵列处理系统,其特征在于,所述处理单元根据重构标志寄存器Rflag(32)的不同值,使整个可重构并行图像处理单元及自组织映射阵列(2)工作在像素级并行处理器模式或二维SOM神经网络模式。
18.根据权利要求17所述的可动态重构的多级并行单指令多数据阵列处理系统,其特征在于,所述可重构并行图像处理单元及自组织映射阵列(2)工作在像素级并行处理器模式下时,每个处理单元接收相同的控制指令,但处理本地1比特位宽存储器(40)中的不同数据,处理单元可在单个时钟周期中基于“读取数据—操作数据—写回数据(read-modify-write)”的存储器访问方式完成基本的1比特求和、求反、求与、求或算术逻辑操作,低中级图像处理中的定点多比特算术逻辑运算正是通过分解为上述基本1比特运算在像素级并行处理处理单元的1比特-ALU(37)上快速实现的,运算过程中的进位存储在进位寄存器Creg(38)中,对于运算所需的两个操作数均来自于本地存储器,需要在每一比特数据进行运算之前将其中一个复制到临时寄存器Treg(39)之中,以便使其作为ALU的第二操作数参与运算;处理单元的数据可与其东、南、西、北的相邻的处理单元以1比特带宽进行通信,通过多次的邻近处理单元数据通信,阵列中的任意两个处理单元之间可以传递任意比特的数据;在像素级并行处理模式下,所有处理单元功能都是完全一致的,与比特位切片索引k无关,且相关标志寄存器文件(31)不起作用。
19.根据权利要求17所述的可动态重构的多级并行单指令多数据阵列处理系统,其特征在于,所述可重构并行图像处理单元及自组织映射阵列(2)工作在二维SOM神经网络模式下时,每个神经元内部存储的参考向量和外部输入向量包括8比特整数部分和4比特小数部分,均为无符号定点数,当参考向量存储在16比特位宽的存储器中(41)时,高位多出的部分被置为0,为了不使运算中间结果溢出,所支持的最高向量维数为16;输入向量由系统外部按分量顺序依次给出,每个分量都同时广播到所有的神经元。
20.根据权利要求19所述的可动态重构的多级并行单指令多数据阵列处理系统,其特征在于,假设每个神经元通过某种方式已经获得了参考向量并存储在16比特位宽的存储器(41)中,对于在SOM神经网络训练和识别过程中共有的神经元获胜判断阶段,首先每个神经元同时计算输入向量和自身参考向量之间的街区距离,即这两个向量每个对应分量之间绝对差值之和,计算绝对差值是利用ALU的按位取反、求和功能并配合Sflag标志寄存器的操作来实现;每个分量的绝对差值计算完成之后再累加就得到了最终的距离,这是一个16比特无符号定点数;之后将每个神经元计算得到的距离以行并行方式输入RP阵列进行大小比较,最终提取出参考向量和输入向量距离最小的神经元所在的坐标用于最终分类判断或参考向量调整;
对于仅存在于训练过程中的参考向量调整阶段,首先系统外部处理器根据获胜神经元坐标和当前训练邻域半径,将处于获胜邻域内所有神经元的Wflag标志寄存器置1,并将所有神经元的Wflag作为后续操作的执行条件,该执行条件为存储器写使能信号,这样只有处于获胜邻域内的神经元才能更新参考向量;更新时,对每个参考向量的分量,根据本次分类的结果正确与否,面向或背向输入向量方向进行调整,调整的大小与输入向量和参考向量在该分量上的差成正比,比例系数限制为2的负整数次幂,以利于通过硬件移位快速实现所需乘法操作,而硬件移位是通过映射为神经元相邻比特位的处理单元的重构后拓扑连接关系来完成的;参考向量调整过程涉及到的加法和减法操作是利用ALU(42)的按位取反、求和功能并配合Sflag标志寄存器来实现;对于调整后的参考向量不处于0~256之间,需要截断归一化操作,该截断归一化操作是将所有负数强制置为0,而所有大于等于256的数强制置为(256-1/16),这样才能保证下一轮获胜判断阶段的绝对差值之和不会超过16比特,截断归一化操作需要Sflag和OVflag标志寄存器的配合。
21.根据权利要求1所述的可动态重构的多级并行单指令多数据阵列处理系统,其特征在于,所述RP阵列(5)用于实现灰度形态学操作,图像特征提取,以及配合重构后的SOM神经元阵列提取获胜神经元坐标,包括一个8比特-ALU(46)、一个8比特缓冲移位寄存器(43)、两个操作数选择器(44-45)、一个基于二输入与门的条件生成器(47)、以及一个深度为V位宽为8比特的通用寄存器文件(48)。
22.根据权利要求21所述的可动态重构的多级并行单指令多数据阵列处理系统,其特征在于,在该RP阵列(5)中,每个行并行的行处理器RP单元(10)用于完成8比特的算术操作,包括加法、减法、求绝对值、算术/逻辑移位、以及比较大小,大于8比特的数据操作能够被分解为若干个小于或等于8比特的操作以“字节串行”方式完成;RP单元支持条件操作,条件标志来自于上一次ALU(46)的计算结果标志,并作为寄存器文件(48)的写使能信号。
23.根据权利要求21所述的可动态重构的多级并行单指令多数据阵列处理系统,其特征在于,在该RP阵列(5)中,每个RP单元均能够与其上下方的RP单元进行数据交互,其中有些RP单元还能够与其上下方相隔S行的行RP单元进行数据交互,这些RP单元构成RP跳跃链,以快速完成广域处理功能。
24.根据权利要求21所述的可动态重构的多级并行单指令多数据阵列处理系统,其特征在于,每个RP中的8比特缓冲移位寄存器(43)串联起来能够实现十字移位,该十字移位是垂直方向的字并行移位和水平方向的比特串行移位,从而与处理单元阵列和系统外部交互实现数据的输入输出。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210512880.1A CN103019656B (zh) | 2012-12-04 | 2012-12-04 | 可动态重构的多级并行单指令多数据阵列处理系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210512880.1A CN103019656B (zh) | 2012-12-04 | 2012-12-04 | 可动态重构的多级并行单指令多数据阵列处理系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103019656A CN103019656A (zh) | 2013-04-03 |
CN103019656B true CN103019656B (zh) | 2016-04-27 |
Family
ID=47968298
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210512880.1A Active CN103019656B (zh) | 2012-12-04 | 2012-12-04 | 可动态重构的多级并行单指令多数据阵列处理系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103019656B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109558170A (zh) * | 2018-11-06 | 2019-04-02 | 海南大学 | 一种支持数据级并行和多指令融合的二维数据通路架构 |
Families Citing this family (63)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105122278B (zh) * | 2013-03-15 | 2017-03-22 | Hrl实验室有限责任公司 | 神经网络及编程方法 |
GB2516288B (en) * | 2013-07-18 | 2015-04-08 | Imagination Tech Ltd | Image processing system |
GB2516995B (en) * | 2013-12-18 | 2015-08-19 | Imagination Tech Ltd | Task execution in a SIMD processing unit |
CN104112053B (zh) * | 2014-07-29 | 2017-09-15 | 中国航天科工集团第三研究院第八三五七研究所 | 一种面向图像处理的可重构架构平台设计方法 |
US9965824B2 (en) | 2015-04-23 | 2018-05-08 | Google Llc | Architecture for high performance, power efficient, programmable image processing |
US10291813B2 (en) * | 2015-04-23 | 2019-05-14 | Google Llc | Sheet generator for image processor |
US9769356B2 (en) | 2015-04-23 | 2017-09-19 | Google Inc. | Two dimensional shift array for image processor |
CN106155776B (zh) * | 2015-06-03 | 2019-12-03 | 上海红神信息技术有限公司 | 可重构系统中可重构资源并行构建方法和系统 |
JP6771018B2 (ja) * | 2015-07-23 | 2020-10-21 | マイヤプリカ テクノロジー エルエルシー | 二次元配列プロセッサの性能向上 |
CN105718993B (zh) * | 2015-07-29 | 2019-02-19 | 上海磁宇信息科技有限公司 | 细胞阵列计算系统以及其中的通信方法 |
CN105718379B (zh) * | 2015-07-29 | 2018-09-14 | 上海磁宇信息科技有限公司 | 细胞阵列计算系统以及其中细胞间群发通信方法 |
CN105718994B (zh) * | 2015-07-29 | 2019-02-19 | 上海磁宇信息科技有限公司 | 细胞阵列计算系统 |
CN105719227B (zh) * | 2015-07-29 | 2019-02-01 | 上海磁宇信息科技有限公司 | 一种摄像系统以及图像识别系统 |
CN105718990B (zh) * | 2015-07-29 | 2019-01-29 | 上海磁宇信息科技有限公司 | 细胞阵列计算系统以及其中细胞之间的通信方法 |
CN105718992B (zh) * | 2015-07-29 | 2019-02-19 | 上海磁宇信息科技有限公司 | 细胞阵列计算系统 |
CN105740946B (zh) * | 2015-07-29 | 2019-02-12 | 上海磁宇信息科技有限公司 | 一种应用细胞阵列计算系统实现神经网络计算的方法 |
CN105718380B (zh) * | 2015-07-29 | 2019-06-04 | 上海磁宇信息科技有限公司 | 细胞阵列计算系统 |
CN105718996B (zh) * | 2015-07-29 | 2019-02-19 | 上海磁宇信息科技有限公司 | 细胞阵列计算系统以及其中的通信方法 |
CN105718991B (zh) * | 2015-07-29 | 2019-02-19 | 上海磁宇信息科技有限公司 | 细胞阵列计算系统 |
CN106485319B (zh) * | 2015-10-08 | 2019-02-12 | 上海兆芯集成电路有限公司 | 具有神经处理单元可动态配置以执行多种数据尺寸的神经网络单元 |
CN106599992B (zh) * | 2015-10-08 | 2019-04-09 | 上海兆芯集成电路有限公司 | 以处理单元群组作为时间递归神经网络长短期记忆胞进行运作的神经网络单元 |
CN108427990B (zh) * | 2016-01-20 | 2020-05-22 | 中科寒武纪科技股份有限公司 | 神经网络计算系统和方法 |
US10204396B2 (en) * | 2016-02-26 | 2019-02-12 | Google Llc | Compiler managed memory for image processor |
CN105844330B (zh) * | 2016-03-22 | 2019-06-28 | 华为技术有限公司 | 神经网络处理器的数据处理方法及神经网络处理器 |
CN105892989B (zh) * | 2016-03-28 | 2017-04-12 | 中国科学院计算技术研究所 | 一种神经网络加速器及其运算方法 |
CN107291209B (zh) * | 2016-04-01 | 2021-02-09 | 上海磁宇信息科技有限公司 | 细胞阵列计算系统 |
WO2017185335A1 (zh) * | 2016-04-29 | 2017-11-02 | 北京中科寒武纪科技有限公司 | 一种用于执行batch normalization运算的装置和方法 |
CN106203617B (zh) * | 2016-06-27 | 2018-08-21 | 哈尔滨工业大学深圳研究生院 | 一种基于卷积神经网络的加速处理单元及阵列结构 |
US10515302B2 (en) * | 2016-12-08 | 2019-12-24 | Via Alliance Semiconductor Co., Ltd. | Neural network unit with mixed data and weight size computation capability |
US11144820B2 (en) | 2017-02-28 | 2021-10-12 | Microsoft Technology Licensing, Llc | Hardware node with position-dependent memories for neural network processing |
US10896367B2 (en) * | 2017-03-07 | 2021-01-19 | Google Llc | Depth concatenation using a matrix computation unit |
KR102258414B1 (ko) * | 2017-04-19 | 2021-05-28 | 상하이 캠브리콘 인포메이션 테크놀로지 컴퍼니 리미티드 | 처리 장치 및 처리 방법 |
CN107169560B (zh) * | 2017-04-19 | 2020-10-16 | 清华大学 | 一种自适应可重构的深度卷积神经网络计算方法和装置 |
CN108733348B (zh) * | 2017-04-21 | 2022-12-09 | 寒武纪(西安)集成电路有限公司 | 融合向量乘法器和使用其进行运算的方法 |
CN107403028B (zh) * | 2017-06-12 | 2020-07-21 | 广东工业大学 | 故障点驱动的vlsi阵列重构方法 |
EP3637272A4 (en) | 2017-06-26 | 2020-09-02 | Shanghai Cambricon Information Technology Co., Ltd | DATA-SHARING SYSTEM AND RELATED DATA-SHARING PROCESS |
CN110413551B (zh) | 2018-04-28 | 2021-12-10 | 上海寒武纪信息科技有限公司 | 信息处理装置、方法及设备 |
CN110502330A (zh) * | 2018-05-16 | 2019-11-26 | 上海寒武纪信息科技有限公司 | 处理器及处理方法 |
CN109214616B (zh) | 2017-06-29 | 2023-04-07 | 上海寒武纪信息科技有限公司 | 一种信息处理装置、系统和方法 |
CN109426553A (zh) | 2017-08-21 | 2019-03-05 | 上海寒武纪信息科技有限公司 | 任务切分装置及方法、任务处理装置及方法、多核处理器 |
CN109144470B (zh) * | 2017-06-27 | 2022-01-25 | 上海寒武纪信息科技有限公司 | 一种计算装置及方法 |
CN107341544B (zh) * | 2017-06-30 | 2020-04-10 | 清华大学 | 一种基于可分割阵列的可重构加速器及其实现方法 |
CN107632965B (zh) * | 2017-10-17 | 2019-11-29 | 中国科学院计算技术研究所 | 可重构的s型运算装置及运算方法 |
CN107977662B (zh) * | 2017-11-06 | 2020-12-11 | 清华大学深圳研究生院 | 一种实现高速处理计算机视觉图像的分层计算方法 |
CN108256638B (zh) * | 2018-01-05 | 2021-06-22 | 上海兆芯集成电路有限公司 | 微处理器电路以及执行神经网络运算的方法 |
CN108256644B (zh) * | 2018-01-05 | 2021-06-22 | 上海兆芯集成电路有限公司 | 微处理器电路以及执行神经网络运算的方法 |
TWI659324B (zh) * | 2018-02-14 | 2019-05-11 | 倍加科技股份有限公司 | 電路規劃結果產生方法與系統 |
CN108647773B (zh) * | 2018-04-20 | 2021-07-23 | 复旦大学 | 一种可重构卷积神经网络的硬件互连系统 |
CN110929855B (zh) * | 2018-09-20 | 2023-12-12 | 合肥君正科技有限公司 | 一种数据交互方法和装置 |
CN109741237B (zh) * | 2018-12-28 | 2020-10-23 | 中国科学院半导体研究所 | 大规模图像数据处理系统及方法 |
CN110321816B (zh) * | 2019-06-19 | 2021-04-09 | 北京清微智能科技有限公司 | 图像识别方法及装置 |
TWI767304B (zh) * | 2019-08-22 | 2022-06-11 | 美商谷歌有限責任公司 | 用於編譯針對同步處理器之程式之方法及系統 |
CN110738310B (zh) * | 2019-10-08 | 2022-02-01 | 清华大学 | 一种稀疏神经网络加速器及其实现方法 |
CN110837891B (zh) * | 2019-10-23 | 2022-05-17 | 南京大学 | 基于simd架构的自组织映射方法及系统 |
CN113867792A (zh) * | 2020-06-30 | 2021-12-31 | 上海寒武纪信息科技有限公司 | 计算装置、集成电路芯片、板卡、电子设备和计算方法 |
CN113867791B (zh) * | 2020-06-30 | 2023-09-26 | 上海寒武纪信息科技有限公司 | 一种计算装置、芯片、板卡、电子设备和计算方法 |
IN202011029150A (zh) | 2020-07-09 | 2020-08-21 | ||
CN111860818B (zh) * | 2020-07-23 | 2022-11-08 | 哈尔滨工业大学(威海) | 基于智能芯片的som神经网络算法处理方法 |
CN112559442A (zh) * | 2020-12-11 | 2021-03-26 | 清华大学无锡应用技术研究院 | 一种基于软件定义硬件的阵面数字信号处理系统 |
WO2021227552A1 (zh) * | 2020-12-28 | 2021-11-18 | 西安交通大学 | 一种多功能的数据重组网络 |
CN112863432B (zh) * | 2021-04-23 | 2021-08-13 | 杭州视芯科技有限公司 | Led显示系统及其显示控制方法 |
CN113900713B (zh) * | 2021-12-09 | 2022-06-07 | 江苏清微智能科技有限公司 | 一种粗粒度可重构阵列并行指令配置装置及处理器 |
CN117057400B (zh) * | 2023-10-13 | 2023-12-26 | 芯原科技(上海)有限公司 | 视觉图像处理器、神经网络处理器及图像卷积计算方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102131059A (zh) * | 2011-04-20 | 2011-07-20 | 中国科学院半导体研究所 | 面向实时视觉芯片的高速行并行图像传感器 |
CN102665049A (zh) * | 2012-03-29 | 2012-09-12 | 中国科学院半导体研究所 | 基于可编程视觉芯片的视觉图像处理系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4334672B2 (ja) * | 1999-05-21 | 2009-09-30 | 浜松ホトニクス株式会社 | 高速視覚センサ装置 |
KR200451055Y1 (ko) * | 2008-01-18 | 2010-11-22 | 다폰 일렉트로닉스 코퍼레이션 | 백라이트 장치 |
-
2012
- 2012-12-04 CN CN201210512880.1A patent/CN103019656B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102131059A (zh) * | 2011-04-20 | 2011-07-20 | 中国科学院半导体研究所 | 面向实时视觉芯片的高速行并行图像传感器 |
CN102665049A (zh) * | 2012-03-29 | 2012-09-12 | 中国科学院半导体研究所 | 基于可编程视觉芯片的视觉图像处理系统 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109558170A (zh) * | 2018-11-06 | 2019-04-02 | 海南大学 | 一种支持数据级并行和多指令融合的二维数据通路架构 |
CN109558170B (zh) * | 2018-11-06 | 2021-05-04 | 极芯通讯技术(南京)有限公司 | 一种支持数据级并行和多指令融合的二维数据通路架构 |
Also Published As
Publication number | Publication date |
---|---|
CN103019656A (zh) | 2013-04-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103019656B (zh) | 可动态重构的多级并行单指令多数据阵列处理系统 | |
EP3531349B1 (en) | Acceleration unit for a deep learning engine | |
US20230153621A1 (en) | Arithmetic unit for deep learning acceleration | |
US9449257B2 (en) | Dynamically reconstructable multistage parallel single instruction multiple data array processing system | |
CN110197276B (zh) | 用于深度学习加速的数据体雕刻器 | |
CN110458279B (zh) | 一种基于fpga的二值神经网络加速方法及系统 | |
Gholami et al. | Squeezenext: Hardware-aware neural network design | |
CN102665049B (zh) | 基于可编程视觉芯片的视觉图像处理系统 | |
Boroumand et al. | Google neural network models for edge devices: Analyzing and mitigating machine learning inference bottlenecks | |
EP3346426B1 (en) | Reconfigurable interconnect, corresponding system and method | |
CN107844826B (zh) | 神经网络处理单元及包含该处理单元的处理系统 | |
CN103020890B (zh) | 基于多层次并行处理的视觉处理装置 | |
CN109388777A (zh) | 一种用于经优化的Winograd卷积加速器的系统和方法 | |
US20190026626A1 (en) | Neural network accelerator and operation method thereof | |
CN107423816B (zh) | 一种多计算精度神经网络处理方法和系统 | |
CN109993683A (zh) | 任意神经网络的机器学习稀疏计算机制、用于训练机制的算术计算微架构以及稀疏性 | |
CN107085562B (zh) | 一种基于高效复用数据流的神经网络处理器及设计方法 | |
CN109478144A (zh) | 一种数据处理装置和方法 | |
CN105681628A (zh) | 一种卷积网络运算单元及可重构卷积神经网络处理器和实现图像去噪处理的方法 | |
CN108665063A (zh) | 用于bnn硬件加速器的双向并行处理卷积加速系统 | |
CN104112053A (zh) | 一种面向图像处理的可重构架构平台设计方法 | |
CN110163358A (zh) | 一种计算装置及方法 | |
CN114356836A (zh) | 基于risc-v的三维互联众核处理器架构及其工作方法 | |
CN115314343A (zh) | 一种源荷储资源聚合控制网关装置及负荷和出力预测方法 | |
Geng et al. | CQNN: a CGRA-based QNN framework |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |