CN111696025B - 基于可重构内存计算技术的图像处理装置及方法 - Google Patents
基于可重构内存计算技术的图像处理装置及方法 Download PDFInfo
- Publication number
- CN111696025B CN111696025B CN202010526627.6A CN202010526627A CN111696025B CN 111696025 B CN111696025 B CN 111696025B CN 202010526627 A CN202010526627 A CN 202010526627A CN 111696025 B CN111696025 B CN 111696025B
- Authority
- CN
- China
- Prior art keywords
- pim
- unit
- reram
- image data
- image
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Processing (AREA)
Abstract
本发明公开一种基于可重构内存计算技术的图像处理装置及方法,本发明的装置使用新型ReRAM器件,以及PIM技术,将数据处理与存储整合在同一个装置中,并引入可重配运算技术。本发明的方法的步骤是设计内存计算PIM指令集,对PIM程序进行编译,利用高层次综合HLS工具编写程序代码,将程序代码放到相应位置,采取两种方式对两种不同的图像处理任务进行处理。本发明有效的解决了“存储墙”问题,使得本发明装置的片内总线带宽大,传输速度快,功耗低,集成度高。本发明的方法可以在不降低图像分辨率的前提下,提高图像处理的并行度和系统的灵活性,进而达到快速图像处理的目的。
Description
技术领域
本发明属于物理技术领域,更进一步涉及图像数据处理技术领域中的一种基于可重构内存计算技术的图像处理装置及方法。本发明可用于图像处理进行采集图像信息,预处理,提取特征值,输出结果。
背景技术
目前,图像处理在各领域中的应用十分广泛,比如遥感图像、雷达信号、场景识别、目标追踪等。但是由于图像处理算法越来越复杂,对平台的计算能力要求不断提高,且很多应用场景对实时性要求较高。现在基于CPU+GPU、CPU+FPGA或DSP架构的图像处理加速平台是目前常见的解决方法。将现有图像处理算法移植到GPU、FPGA或DSP平台中,利用此类处理器的大并行度,以及高性能的算术运算能力,相较于以往的CPU处理,有很大的优势。但是随着图像分辨率的提高,以上架构通常以冯诺依曼架构为基础,因此数据存储在内存中,运算又在处理器中,需要数据的频繁读取,造成了很大的功耗浪费,而由于内存速度与处理器差距越来越大,这造成了严重的“存储墙”问题,“存储墙”已经严重制约了上述图像处理平台的效能,内存计算(Process in Memory,PIM)被认为是有效的解决“存储墙”瓶颈的新型计算架构。PIM将计算单元与存储单元紧密地耦合在一起,从而消除访存带宽瓶颈的限制以及计算单元与存储单元的偏见数据迁移所产生的开销,具有极高的存储密度以及带宽。然而,传统的PIM灵活性较差,设计复杂度和制造成本都比较高,且以往的PIM只能完成特定的处理功能,由于新兴的数据密集型应用可能会随着时间的推移而涉及,这些架构中缺乏可编程性和灵活的存储器接口使得适应未来市场/技术引起的工作负载变化具有挑战性。所以,PIM没有得到广泛的应用。
电阻式随机存取存储器(ReRAM)是一类通过改变单元(cell)电阻来实现非易失性存储的随机访问存储器。其结构非常简单,两侧电极将金属氧化物包夹于中间,这简化了制造工艺,由于其拥有诸多优良特性,如数据掉电不丢失,低功耗,高速度等,使得在数据存储与逻辑计算领域有重要意义。
炬芯(珠海)科技有限公司在其申请的专利文献“一种图像处理系统、方法及装置”(申请日:2014.02.25,申请号201410064914.4,公开号CN104869381B)中公开了一种图像处理系统、方法及装置。该方法直接通过将图像传感器采集到的图像数据通过采样存储在存储器中,通过ISP模块进行图像处理。该方法的优点是当图片分辨率较低时,可一次读取多张图片进行处理,而且通过采样,可以很好的完成对各种分辨率图像的处理。但是,该方法仍然存在的不足之处是,在待处理图像的图像分辨率中的行分辨率大于预设的最大行分辨率时,采用小于或等于1:N的比例对所述视频图像进行采样,此处N为待处理图像的图像分辨率中的行分辨率与预设的最大行分辨率的商,这种处理过程使用了图像压缩的方法,降低了图像的分辨率,必然会造成图像处理结果误差的增大。该装置包括图像传感器、采样模块、图像信号处理器ISP模块以及存储器。其中图像传感器与采样模块和存储器相连接,用于将获取的视频图像发送至所述采样模块,以及将获取的静态图像直接发送至所述存储器;采样模块,与ISP模块相连接,用于对接收的所述视频图像进行采样,并将采样后的视频图像发送至所述ISP模块;ISP模块,与存储器相连接,用于接收视频图像,并对所述视频图像进行图像处理,以及将处理后的视频图像发送至所述存储器;还用于根据所述ISP模块处理的最大行分辨率,读取所述存储器中当前存储的静态图像,并对所述静态图像进行图像处理,以及将处理后的静态图像发送至所述存储器。该装置的优点是能够灵活地处理各种分辨率低于ISP模块最大行分辨率的图像,解决了ISP模块处理的图像大小兼容性差的问题。但是,该装置仍然存在的不足之处是,由于在传感器,采样模块,ISP模块及存储器中相互传输和处理的图像数据量比较大,面临“存储墙”问题,并且ISP模块属于固定逻辑,灵活性较差,无法进行功能配置,导致该装置的图像处理功能比较单一。
南通使爱智能科技有限公司在其申请的专利文献“一种可扩展智能图像处理加速装置和加速方法”(申请日:2017.12.18,申请号201711360637.1,公开号CN108881709A)中公开了一种可扩展智能图像处理加速装置和加速方法。该加速装置包括镜头、智能图像采集单元、智能图像处理单元、智能图像处理驱动单元、网络通信单元。该装置的优点是,利用了异构系统的优势,使用FPGA、DSP等硬件自身的并行性提高处理性能,降低了功耗。但是,该装置仍然存在的不足之处是,图像处理模块中FPGA、DSP等使用了片外总线连接,由于片外总线的带宽限制问题,对性能有一定的影响。该方法的步骤包括:根据原始数据、需执行的图像处理任务以及所采用的图像处理算法生成具体配置信息;加载图像处理算法,并根据具体配置信息设置加速处理过程;输入所述原始数据,并执行智能图像的加速处理;输出加速处理后的结果。该方法的优点是通过对图像数据做压缩,减少了运算过程中对内存访问的带宽需求和延时。但是,该方法仍然存在的不足之处是由于FPGA、DSP中所使用的编程语言差异较大,编程复杂,工作量大。
发明内容
本发明的目的在于针对上述已有技术的不足,提出了一种基于可重构内存计算技术的图像处理装置及方法,解决了目前图像处理装置在处理图像过程中所面临的“存储墙”问题及数据处理中并行度低、灵活性差的问题。
实现本发明的思路是:在实际工程中实现图像处理算法时,数据的传输占用了大量的带宽和时间,图像处理装置固有的结构造成并行度低、灵活性差,本发明装置和方法,使用新型ReRAM器件,以及PIM技术,将数据处理与存储整合在同一个装置中,并引入可重配运算技术,有效的解决了“存储墙”问题,提高了图像处理的并行度并提高了系统的灵活性,进而达到快速图像处理的目的。
本发明的图像处理装置包含图像数据采集模块和图像数据处理模块,所述的图像数据处理模块包括一个电阻式随机存取存储器-内存计算ReRAM-PIM单元,一个可重配运算单元,一个内存计算PIM控制单元,一个内存计算PIM高速接口单元,以及一个电阻式随机存取存储器-内存计算ReRAM-PIM高速接口;所述ReRAM-PIM单元通过片内高速总线与可重配运算单元连接,可重配运算单元通过片内高速总线与PIM控制单元连接,PIM控制单元通过片内高速总线与ReRAM-PIM单元连接,PIM高速接口单元通过片内高速总线与PIM控制单元连接,PIM高速接口单元通过片外高速总线与图像数据采集模块连接,图像数据采集单元通过片外高速总线与ReRAM-PIM高速接口相连,ReRAM-PIM高速接口通过片内总线与ReRAM-PIM单元相连;所述的ReRAM-PIM单元由4G个电阻式随机存取存储器ReRAM组成,所述的可重配运算单元由125K个可配置逻辑块CLB和400个数字信号处理器DSP组成;其中:
所述图像数据采集单元,用于采集自然图像;
所述PIM高速接口单元,基于PCI-E4.0协议,最大支持16通道,兼容16、8、4、1通道的PCI-E4.0、PCI-E3.0协议,且该PIM高速接口单元提供一个USB3.1gen2接口,用于传输图像数据采集单元与PIM控制单元的图像数据;
所述PIM控制单元,包含64个512位的向量寄存器,用于接收图像数据采集单元发送的自然图像,并按照PIM控制单元中编译生成的可执行文件,将图片通过片内高速总线发送到可重配运算单元,完成相应的图像处理任务;
所述可重配运算单元,由125K个可配置逻辑块CLB和400个数字信号处理器DSP组成,用于通过片内高速总线接收PIM控制发送的发送图像数据或ReRAM-PIM单元发送的完成预处理的图像数据,对图像数据进行相应处理工作;
所述ReRAM-PIM高速接口,用于传输图像数据采集单元与ReRAM-PIM单元的图像数据;
所述ReRAM-PIM单元,包括64K个以8×8的交叉互联结构的电阻式随机存取存储器ReRAM和16K个路由单元,每个路由单元拥有一个唯一的16位地址,每个路由单元管理4个8×8交叉互联结构的电阻式随机存取存储器ReRAM,用于通过访问相应的路由地址对路由进行操作,将相应的ReRAM-PIM单元配置为存储区和运算区两种形式。
本发明的图像处理方法的步骤如下:
步骤1,设计内存计算PIM指令集:
将PIM指令集设置为定长指令集,每个指令的长度设置为32位,将指令的0到6位设置为指令操作码字段,7到12位设置为第一源操作数寄存器地址字段,13到18位设置为第二源操作数寄存器地址字段,19到24位设置为目的寄存器地址字段,25到31位设置为保留字段;
步骤2,对PIM程序进行编译:
对源程序代码根据预设的词法分析规则进行词法分析处理,生成词法分析结果;
对词法分析结果根据预设语法语义分析规则进行语法语义分析,生成语法语义分析结果;
根据步骤1中所设计的PIM指令集,对语法语义分析结果进行目标代码分析,生成二进制可执行文件;
步骤3,利用高层次综合HLS工具编写程序代码:
分析图像处理任务,利用高层次综合HLS工具编写相应C或C++代码,实现需要加速的运算功能,并调用ReRAM-PIM单元的网络之间的互联协议IP,配置IP,将ReRAM-PIM单元按照存储和运算需求,划分成合适大小的存储区和运算区;
利用高层次综合HLS自动生成硬件信息和比特流文件,硬件信息包括可重配运算单元的接口和ReRAM-PIM单元的配置文件;
将图像处理任务按照步骤2生成二进制的可执行文件;
步骤4,将程序代码放到相应位置:
将步骤3中生成的比特流文件烧写到可重配运算单元中,配置可重配运算区功能,可执行文件烧写到PIM控制单元中,配置PIM控制单元功能;
通过PIM控制单元对ReRAM-PIM单元做初始化,对于存储区域配置相应路由地址,将ReRAM块做统一编址,对运算区域向ReRAM中写入初始值;
步骤5,采取两种方式对两种不同的图像处理任务进行处理:
图像数据采集模块以30帧/秒的采集速度采集自然图像,每幅图像包括分辨率、位深度、图像大小及每个像素点的RGB信息,其中图像大小等于分辨率与位深度的乘积,分辨率至少1×1,位深度至少8位;
若在采集图像的同时对每一帧图像做处理,图像数据采集模块通过片外高速接口将图像数据传输给PIM高速接口,PIM控制器将图像数据缓存在控制器内的缓存中,PIM控制单元按照步骤4所配置的功能,将图像数据实时发送的相应的可重配运算区和ReRAM-PIM运算区,完成相应的图像处理任务,最后将处理结果返回到ReRAM-PIM单元;
若对采集结束后的所有图像按照下述方式同时做同样的处理,图像数据采集模块通过片外高速总线将图像数据传输给ReRAM-PIM高速接口,将图像数据存储在ReRAM-PIM单元中的存储区中,当存储的图像数据满足运算区所需的数据量时,PIM控制单元通过控制ReRAM-PIM路由,将图像数据通过片内高速总线传输到相应的可重配运算区和ReRAM-PIM运算区,完成相应的图像处理任务,最后将后将处理结果返回到ReRAM-PIM单元中的存储区。
本发明与现有技术相比具有以下优点:
第一,由于本发明的装置采用了ReRAM-PIM单元通过片内高速总线与可重配运算单元连接,可重配运算单元通过片内高速总线与PIM控制单元连接,PIM控制单元通过片内高速总线与ReRAM-PIM单元连接,PIM高速接口单元通过片内高速总线与PIM控制单元连接,克服了现有技术中图像处理模块中FPGA、DSP等模块使用了片外总线连接,由于片外总线的带宽限制,对性能有一定的影响的问题,使得本发明的装置的片内总线带宽大,传输速度快,功耗低,集成度高。
第二,本发明的装置采用了可重配运算单元,通过片内高速总线接收PIM控制器发送的实时图像数据或ReRAM-PIM单元发送的完成预处理的静态图像数据,对图像数据进行相应处理工作。克服了现有技术ISP模块属于固定逻辑,灵活性较差,无法进行功能配置。使得本发明的装置能够按照图像处理需求,灵活配置,能够有效提高性能,并降低功耗。
第三,本发明的方法根据设计内存计算PIM指令集,对两种不同的图像分别采取两种不同方式处理任务,克服了现有技术使用图像压缩的方法,降低了图像的分辨率,必然会造成图像处理结果误差的增大的问题,使得本发明的方法可以在不降低图像分辨率的前提下,能够快速的得到图像处理的结果。
第四,本发明的方法利用高层次综合HLS工具编写程序代码,克服了现有技术中FPGA、DSP中所使用的编程语言差异较大,编程复杂,工作量大的问题,使得本发明的方法有效的降低了编程复杂度,提高了程序开发速度。
附图说明
图1为本发明装置的电原理图;
图2(a)、(b)、(c)分别为本发明基于电阻式随机存取存储器的内存计算单元的逻辑信号、真值表及表达式;
图3为本发明方法的流程图。
具体实施方式
下面结合附图对本发明做进一步的详细描述。
参照附图1,对本发明的装置做进一步的详细描述。
本发明的图像处理装置,包含图像数据采集模块和图像数据处理模块。
所述的图像数据处理模块包括一个电阻式随机存取存储器-内存计算ReRAM-PIM单元,一个可重配运算单元,一个内存计算PIM控制单元,一个内存计算PIM高速接口单元,以及一个电阻式随机存取存储器-内存计算ReRAM-PIM高速接口。
所述ReRAM-PIM单元通过片内高速总线与可重配运算单元连接,可重配运算单元通过片内高速总线与PIM控制单元连接,PIM控制单元通过片内高速总线与ReRAM-PIM单元连接,PIM高速接口单元通过片内高速总线与PIM控制单元连接,PIM高速接口单元通过片外高速总线与图像数据采集单元连接,图像数据采集单元通过片外高速总线与ReRAM-PIM高速接口相连,ReRAM-PIM高速接口通过片内总线与ReRAM-PIM单元相连。所述的ReRAM-PIM单元由4G个电阻式随机存取存储器ReRAM组成,所述的可重配运算单元由125K个可配置逻辑块CLB和400个数字信号处理器DSP组成;其中:
所述图像数据采集单元,用于采集自然图像;
所述PIM高速接口单元,用于连接图像数据采集单元和PIM控制单元,该高速接口基于PCI-E4.0协议,最大支持16通道,能够为外部处理器和PIM控制单元提供最大约31GB/s的通信带宽,并且为了最大程度考虑兼容性,该高速接口能够分别兼容16、8、4、1通道的PCI-E4.0、PCI-E3.0协议,且高速接口提供一个USB3.1gen2接口,能最大提供10GB/s的理论传输速度。
所述PIM控制单元包含64个512位的向量寄存器,当指令中数据地址为8位时,可以一次性指定最多64个数据地址,当指令中数据地址为16位时,可以一次性指定最多32个数据地址,当指令中数据地址为32位时,可以一次性指定最多16个数据地址,当指令中数据地址为64位时,可以一次性指定最多8个数据地址,使得一条指令可以完成多个数据操作,用于接收图像数据采集单元发送的自然图像,并按照PIM控制单元中编译生成的可执行文件,将图片通过片内高速总线发送到可重配运算单元,完成相应的图像处理任务。
所述可重配运算单元,由125K个可配置逻辑块CLB和400个数字信号处理器DSP组成,用于通过片内高速总线接收PIM控制发送的发送图像数据或ReRAM-PIM单元发送的完成预处理的图像数据,对图像数据进行相应处理工作。
所述ReRAM-PIM高速接口,基于非易失性内存主机控制器接口规范NVMe,其实质是基于PCI-E技术实现的,用于完成图像数据采集单元与ReRAM-PIM的图像数据传输,NVMe能够充分利用PCI-E通道的低延时及并行性,能够达到3.938GB/S的数据传输速度。
所述ReRAM-PIM单元,包括64K个以8×8的交叉互联结构的电阻式随机存取存储器ReRAM和16K个路由单元,每个路由单元拥有一个唯一的16位地址,每个路由单元管理4个8×8交叉互联结构的电阻式随机存取存储器ReRAM,PIM控制器通过访问相应的路由地址来访问控制和访问ReRAM-PIM阵列,PIM控制单元通过对路由进行操作,可以将相应的ReRAM-PIM配置为存储区和运算区两种形式,存储区可以通过获取ReRAM-PIM高速接口的数据,存储静态图像,或者通过片内总线获取可重配运算单元的图片数据,存储完成处理的实时图片数据,运算区通过对ReRAM-PIM中的忆阻器写入高低电平,能够完成与、或、非、异或及移位等基本逻辑运算,运算区可通过路由直接获得存储区的静态图像数据,完成图像的简单预处理。
参照附图2,本发明中主要是开发了基于电阻式随机存取存储器ReRAM交叉开关网络的内存可重配置架构来替代传统意义上的内存结构,可以将其配置为运算器或者按需配置为普通存储器,从而真正的实现了内存计算的概念。
本发明所采用的电阻式随机存取存储器进行逻辑计算时,通常具有三个信号:(1)访问控制信号(记为A),用于对存储单元进行访问控制;(2)写入信号(记为B);(3)当前存储的数据(记为Ci)。根据这三个信号,存储的下一个数据(记为Ci+1)可以表示为图2(a)、(b)、(c)所示为相应的逻辑信号、真值表及表达式。可以看出,写入信号B可以看作逻辑功能选择信号,决定了逻辑计算的功能函数,当B等于“0”,“1”,或者时,存储单元下一个存储的数据Ci+1分别等于/>(“与”运算逻辑),A+Ci(“或”运算逻辑)或者/>(“异或”异或逻辑)。最终逻辑计算的结果(即Ci+1)直接存储在存储单元内。其逻辑计算操作与存储器的正常读写操作一致。
下面结合附图3,对本发明的方法做进一步地描述。
本发明的基于可重构内存计算技术的图像处理方法,设计内存计算PIM指令集,利用高层次综合HLS工具编写程序代码,采取两种方式对两种不同的图像处理任务进行处理。
步骤1,设计内存计算PIM指令集。
将PIM指令集设置为定长指令集,每个指令的长度设置为32位,将指令的0到6位设置为指令操作码字段,7到12位设置为第一源操作数寄存器地址字段,13到18位设置为第二源操作数寄存器地址字段,19到24位设置为目的寄存器地址字段,25到31位设置为保留字段。
步骤2,对PIM程序进行编译。
对源程序代码根据预设的词法分析规则进行词法分析处理,生成词法分析结果。
对词法分析结果根据预设语法语义分析规则进行语法语义分析,生成语法语义分析结果。
根据步骤1中所设计的PIM指令集,对语法语义分析结果进行目标代码分析,生成二进制可执行文件。
所述的源程序代码包括下述至少一种源程序代码:梯形图语言、功能流程图语言、指令表语言、结构化文本语言及BASIC语言。
所述预设的词法分析规则包括下述至少一种:标识符类别规则、注释类别规则、常量类别规则、运算符类别规则、分界符类别规则或关键字类别规则。
所述的预设语法语义分析规则是指:采用程序组织单元模型对所述软件模型的语法语义分析结果进行程序组织单元模型的语法语义分析,生成程序组织单元模型的语法语义分析结果,其中,所述程序组织单元模型的定义包括:功能、功能块以及程序的定义。
步骤3,利用高层次综合HLS工具编写程序代码。
分析图像处理任务利用高层次综合HLS工具编写相应C或C++代码,实现需要加速的运算功能,并调用ReRAM-PIM单元的网络之间的互联协议IP,配置IP,将ReRAM-PIM单元按照存储和运算需求,划分成合适大小的存储区和运算区。
利用高层次综合HLS自动生成硬件信息和比特流文件,硬件信息包括可重配运算单元的接口和ReRAM-PIM单元的配置文件。
将图像处理任务按照步骤2生成二进制的可执行文件。
步骤4,将程序代码放到相应位置。
将步骤3中生成的比特流文件烧写到可重配运算单元中,配置可重配运算区功能,可执行文件烧写到PIM控制单元中,配置PIM控制单元功能。
通过PIM控制单元对ReRAM-PIM单元做初始化,对于存储区域配置相应路由地址,将ReRAM-PIM单元做统一编址,对运算区域向ReRAM-PIM单元中写入初始值。
步骤5,对两种不同的图像分别采取两种不同方式处理任务。
图像数据采集模块以30帧/秒的采集速度采集自然图像,每幅图像包括分辨率、位深度、图像大小及每个像素点的RGB信息,其中图像大小等于分辨率与位深度的乘积,分辨率至少1×1,位深度至少8位。
若在采集图像的同时对每一帧图像做处理,图像数据采集模块通过片外高速接口将图像数据传输给PIM高速接口,PIM控制单元将图像数据缓存在控制器内的缓存中,PIM控制单元按照步骤4所配置的功能,将图像数据实时发送的相应的可重配运算区和ReRAM-PIM运算区,完成相应的图像处理任务,最后将处理结果返回到ReRAM-PIM单元。
若对采集结束后的所有图像按照下述方式同时做同样的处理,图像数据采集模块通过片外高速总线将图像数据传输给ReRAM-PIM高速接口,将图像数据存储在ReRAM-PIM单元中的存储区中,当存储的图像数据满足运算区所需的数据量时,PIM控制单元通过控制ReRAM-PIM路由,将图像数据通过片内高速总线传输到相应的可重配运算区和ReRAM-PIM运算区,完成相应的图像处理任务,最后将后将处理结果返回到ReRAM-PIM单元中的存储区。
下面结合实施例,对本发明的方法做进一步地描述。
本发明实施例中使用了VGG-16用作手写数字识别。本发明实施例中所用的视觉几何组VGG(Visual Geometry Group)卷积神经网络是牛津大学在2014年(Very DeepConvolutional Networks for Large Scale Image Recognition)提出来的模型。该模型在图像分类和目标检测任务中都表现出非常好的结果,VGG-16作为VGG模型中最受欢迎的一种模型,是一个其由13个卷积层和3个全连接层共16层组成的模型。输入数据维度为224×224×3。手写数字图像分辨率为224×224。
步骤1,网络模型训练。
通过深度学习框架Caffe(Convolution Architecture For FeatureExtraction),使用C++语言实现VGG-16模型,根据准确度要求,确定模型训练中的参数量化位数,最大为64位、或32、16、8、4、1位。并通过手写数字图像数据集,训练模型,达到要求的准确度。
步骤2,网络模型移植。
由于高层次综合HLS(high-level synthesis)支持C++,因此可以方便将在Caffe上训练好的网络模型,移植到HLS平台上,并导入ReRAM-PIM IP,若模型中参数量化位数为64或32位,则将ReRAM-PIM单元配置为64位或32位存储器模式,作为图像数据的存储器和模型的参数存储;若模型参数量化位数为16、8、4或1位时,将ReRAM-PIM单元配置为混合模式,一部分完成数据存储,一部分作为运算单元完成相应位数的加法、并行乘法运算,此方法可以防止DSP单元的资源浪费,和能量消耗。并通过HLS工具生成可重配运算区的比特流文件,以及ReRAM-PIM单元的配置文件。
步骤3,导入PIM配置文件,编写控制器代码。
通过将PIM配置文件导入PIM控制单元中,PIM控制单元通过配置文件信息,自动生成PIM控制单元与可重配运算区、ReRAM-PIM单元的高速通信协议、ReRAM-PIM单元的路由配置、以及ReRAM-PIM单元中忆阻器的初始化。若模型中参数量化位数为64或32位,则通过路由器将ReRAM-PIM单元配置为能够存储64或32位数据的存储器;若模型参数量化位数为16、8、4或1位时,则通过路由器将一部分ReRAM-PIM单元配置为能够存储16、8、4或1位数据的存储器,并通过路由为作为运算单元的剩下的ReRAM-PIM单元中的忆阻器写入初值,完成运算功能的配置。并编写PIM控制单元代码,完成图像数据的采集、存储、处理。并编译生成PIM控制单元所能执行的二进制文件。
步骤4,代码烧写。
将步骤3中生成的比特流文件通过JTAG接口烧写到可重配运算区中;将二进制文件烧写如PIM控制单元中。
步骤5、图像采集与处理。
首先通过图像数据采集单元采集手写数字图像数据,并通过ReRAM-PIM高速接口,将数据存储到ReRAM-PIM单元中。同时,若模型中参数量化位数为64或32位,则PIM控制单元按照编写的程序,控制可重配运算区通过片内高速总线读取存储在ReRAM-PIM单元相应地址的图像数据,可重配运算区通过训练好的VGG-16模型对图像数据进行分类处理,完成手写数字的识别,并将识别结果存储在ReRAM-PIM单元中;若模型参数量化位数为16、8、4或1位时,则PIM控制单元通过控制ReRAM-PIM路由,将数据存储区的数据读取到运算区,进行相应的图像分类计算,并将数据写回存储区。
Claims (5)
1.一种基于可重构内存计算技术的图像处理装置,包含图像数据采集模块和图像数据处理模块,其特征在于,所述的图像数据处理模块包括一个电阻式随机存取存储器-内存计算ReRAM-PIM单元,一个可重配运算单元,一个内存计算PIM控制单元,一个内存计算PIM高速接口单元,以及一个电阻式随机存取存储器-内存计算ReRAM-PIM高速接口;所述ReRAM-PIM单元通过片内高速总线与可重配运算单元连接,可重配运算单元通过片内高速总线与PIM控制单元连接,PIM控制单元通过片内高速总线与ReRAM-PIM单元连接,PIM高速接口单元通过片内高速总线与PIM控制单元连接,PIM高速接口单元通过片外高速总线与图像数据采集单元连接,图像数据采集单元通过片外高速总线与ReRAM-PIM高速接口相连,ReRAM-PIM高速接口通过片内总线与ReRAM-PIM单元相连;所述的ReRAM-PIM单元由4G个电阻式随机存取存储器ReRAM组成,所述的可重配运算单元由125K个可配置逻辑块CLB和400个数字信号处理器DSP组成;其中:
所述图像数据采集单元,用于采集自然图像;
所述PIM高速接口单元,基于PCI-E4.0协议,最大支持16通道,兼容16、8、4、1通道的PCI-E4.0、PCI-E3.0协议,且该PIM高速接口单元提供一个USB3.1gen2接口,用于传输图像数据采集单元与PIM控制单元的图像数据;
所述PIM控制单元,包含64个512位的向量寄存器,用于接收图像数据采集单元发送的自然图像,并按照PIM控制单元中编译生成的可执行文件,将图片通过片内高速总线发送到可重配运算单元,完成相应的图像处理任务;
所述可重配运算单元,由125K个可配置逻辑块CLB和400个数字信号处理器DSP组成,用于通过片内高速总线接收PIM控制发送的发送图像数据或ReRAM-PIM单元发送的完成预处理的图像数据,对图像数据进行相应处理工作;
所述ReRAM-PIM高速接口,用于传输图像数据采集单元与ReRAM-PIM单元的图像数据;
所述ReRAM-PIM单元,包括64K个以8×8的交叉互联结构的电阻式随机存取存储器ReRAM和16K个路由单元,每个路由单元拥有一个唯一的16位地址,每个路由单元管理4个8×8交叉互联结构的电阻式随机存取存储器ReRAM,用于通过访问相应的路由地址对路由进行操作,将相应的ReRAM-PIM单元配置为存储区和运算区两种形式。
2.一种基于可重构内存计算技术的图像处理方法,其特征在于,设计内存计算PIM指令集,利用高层次综合HLS工具编写程序代码,采取两种方式对两种不同的图像处理任务进行处理,该方法的步骤包括如下:
步骤1,设计内存计算PIM指令集:
将PIM指令集设置为定长指令集,每个指令的长度设置为32位,将指令的0到6位设置为指令操作码字段,7到12位设置为第一源操作数寄存器地址字段,13到18位设置为第二源操作数寄存器地址字段,19到24位设置为目的寄存器地址字段,25到31位设置为保留字段;
步骤2,对PIM程序进行编译:
对源程序代码根据预设的词法分析规则进行词法分析处理,生成词法分析结果;
对词法分析结果根据预设语法语义分析规则进行语义语法分析,生成语法语义分析结果;
根据步骤1中所设计的PIM指令集,对语义语法分析结果进行目标代码分析,生成二进制可执行文件;
步骤3,利用高层次综合HLS工具编写程序代码:
分析图像处理任务,利用高层次综合HLS工具编写相应C或C++代码,实现需要加速的运算功能,并调用ReRAM-PIM单元的网络之间的互联协议IP,配置IP,将ReRAM-PIM单元按照存储和运算需求,划分成合适大小的存储区和运算区;
利用高层次综合HLS自动生成硬件信息和比特流文件,硬件信息包括可重配运算单元的接口和ReRAM-PIM单元的配置文件;
将图像处理任务按照步骤2生成二进制的可执行文件;
步骤4,将程序代码放到相应位置:
将步骤3中生成的比特流文件烧写到可重配运算单元中,配置可重配运算区功能,可执行文件烧写到PIM控制单元中,配置PIM控制单元功能;
通过PIM控制单元对ReRAM-PIM单元做初始化,对于存储区域配置相应路由地址,将ReRAM块做统一编址,对运算区域向ReRAM中写入初始值;
步骤5,对两种不同的图像分别采取两种不同方式处理任务:
图像数据采集模块以30帧/秒的采集速度采集自然图像,每幅图像包括分辨率、位深度、图像大小及每个像素点的RGB信息,其中图像大小等于分辨率与位深度的乘积,分辨率至少1×1,位深度至少8位;
若在采集图像的同时对每一帧图像做处理,图像数据采集模块通过片外高速接口将图像数据传输给PIM高速接口,PIM控制器将图像数据缓存在控制器内的缓存中,PIM控制单元按照步骤4所配置的功能,将图像数据实时发送的相应的可重配运算区和ReRAM-PIM运算区,完成相应的图像处理任务,最后将处理结果返回到ReRAM-PIM单元;
若对采集结束后的所有图像按照下述方式同时做同样的处理,图像数据采集模块通过片外高速总线将图像数据传输给ReRAM-PIM高速接口,将图像数据存储在ReRAM-PIM单元中的存储区中,当存储的图像数据满足运算区所需的数据量时,PIM控制单元通过控制ReRAM-PIM路由,将图像数据通过片内高速总线传输到相应的可重配运算区和ReRAM-PIM运算区,完成相应的图像处理任务,最后将后将处理结果返回到ReRAM-PIM单元中的存储区。
3.根据权利要求2所述的一种基于可重构内存计算技术的图像处理方法,其特征在于,步骤2中所述的源程序代码包括下述至少一种源程序代码:梯形图语言、功能流程图语言、指令表语言、结构化文本语言及BASIC语言。
4.根据权利要求2所述的一种基于可重构内存计算技术的图像处理方法,其特征在于,步骤2中所述预设的词法分析规则包括下述至少一种:标识符类别规则、注释类别规则、常量类别规则、运算符类别规则、分界符类别规则或关键字类别规则。
5.根据权利要求2所述的一种基于可重构内存计算技术的图像处理方法,其特征在于,步骤2中所述的预设语法语义分析规则是指:采用程序组织单元模型对软件模型的语法语义分析结果进行程序组织单元模型的语法语义分析,生成程序组织单元模型的语法语义分析结果,其中,所述程序组织单元模型的定义包括:功能、功能块以及程序的定义。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202010526627.6A CN111696025B (zh) | 2020-06-11 | 2020-06-11 | 基于可重构内存计算技术的图像处理装置及方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202010526627.6A CN111696025B (zh) | 2020-06-11 | 2020-06-11 | 基于可重构内存计算技术的图像处理装置及方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN111696025A CN111696025A (zh) | 2020-09-22 |
| CN111696025B true CN111696025B (zh) | 2023-03-24 |
Family
ID=72480322
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202010526627.6A Active CN111696025B (zh) | 2020-06-11 | 2020-06-11 | 基于可重构内存计算技术的图像处理装置及方法 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN111696025B (zh) |
Families Citing this family (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN112184536B (zh) * | 2020-09-24 | 2022-09-30 | 成都海光集成电路设计有限公司 | 基于gemm处理图像数据的方法、装置、设备和介质 |
| CN114945916B (zh) * | 2020-10-27 | 2025-04-25 | 北京苹芯科技有限公司 | 使用存内处理进行矩阵乘法的装置和方法 |
| CN112700810B (zh) * | 2020-12-22 | 2023-06-30 | 电子科技大学 | 一种融合忆阻器的cmos感存算一体电路结构 |
| CN112990444B (zh) * | 2021-05-13 | 2021-09-24 | 电子科技大学 | 一种混合式神经网络训练方法、系统、设备及存储介质 |
| CN113850780A (zh) * | 2021-09-26 | 2021-12-28 | 北京航空航天大学 | 一种基于hls的快速高精度光条中心提取方法及装置 |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN102665049A (zh) * | 2012-03-29 | 2012-09-12 | 中国科学院半导体研究所 | 基于可编程视觉芯片的视觉图像处理系统 |
| CN104112053A (zh) * | 2014-07-29 | 2014-10-22 | 中国航天科工集团第三研究院第八三五七研究所 | 一种面向图像处理的可重构架构平台设计方法 |
| CN110418061A (zh) * | 2019-08-26 | 2019-11-05 | Oppo广东移动通信有限公司 | 图像处理方法、图像处理器、拍照装置及电子设备 |
| CN110751676A (zh) * | 2019-10-21 | 2020-02-04 | 中国科学院空间应用工程与技术中心 | 一种基于目标检测的异构计算系统、方法和可读存储介质 |
| CN111028134A (zh) * | 2019-11-29 | 2020-04-17 | 杭州依图医疗技术有限公司 | 图像处理方法、装置、系统及介质 |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20010036322A1 (en) * | 2000-03-10 | 2001-11-01 | Bloomfield John F. | Image processing system using an array processor |
| US7073158B2 (en) * | 2002-05-17 | 2006-07-04 | Pixel Velocity, Inc. | Automated system for designing and developing field programmable gate arrays |
| US10375196B2 (en) * | 2016-07-29 | 2019-08-06 | Microsoft Technology Licensing, Llc | Image transformation in hybrid sourcing architecture |
| CN110058883B (zh) * | 2019-03-14 | 2023-06-16 | 梁磊 | 一种基于opu的cnn加速方法及系统 |
-
2020
- 2020-06-11 CN CN202010526627.6A patent/CN111696025B/zh active Active
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN102665049A (zh) * | 2012-03-29 | 2012-09-12 | 中国科学院半导体研究所 | 基于可编程视觉芯片的视觉图像处理系统 |
| CN104112053A (zh) * | 2014-07-29 | 2014-10-22 | 中国航天科工集团第三研究院第八三五七研究所 | 一种面向图像处理的可重构架构平台设计方法 |
| CN110418061A (zh) * | 2019-08-26 | 2019-11-05 | Oppo广东移动通信有限公司 | 图像处理方法、图像处理器、拍照装置及电子设备 |
| CN110751676A (zh) * | 2019-10-21 | 2020-02-04 | 中国科学院空间应用工程与技术中心 | 一种基于目标检测的异构计算系统、方法和可读存储介质 |
| CN111028134A (zh) * | 2019-11-29 | 2020-04-17 | 杭州依图医疗技术有限公司 | 图像处理方法、装置、系统及介质 |
Non-Patent Citations (3)
| Title |
|---|
| 可重构系统原型设计及动态重构技术实现;高鑫等;《科技创新与应用》;20160528(第15期);全文 * |
| 基于OpenCL与FPGA异构模式的Sobel算法研究;鲍云峰等;《计算机测量与控制》;20180125(第01期);全文 * |
| 基于PCI总线的电视图像处理仿真系统设计;董雪峰等;《现代电子技术》;20101015(第20期);全文 * |
Also Published As
| Publication number | Publication date |
|---|---|
| CN111696025A (zh) | 2020-09-22 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN111696025B (zh) | 基于可重构内存计算技术的图像处理装置及方法 | |
| US11928590B2 (en) | Methods and systems for power management in a pattern recognition processing system | |
| US12346790B2 (en) | Methods and devices for programming a state machine engine | |
| Chen et al. | Eyeriss v2: A flexible accelerator for emerging deep neural networks on mobile devices | |
| US11836081B2 (en) | Methods and systems for handling data received by a state machine engine | |
| US10733508B2 (en) | Methods and systems for data analysis in a state machine | |
| US9535861B2 (en) | Methods and systems for routing in a state machine | |
| US10671295B2 (en) | Methods and systems for using state vector data in a state machine engine | |
| US20240095202A1 (en) | Custom compute cores in integrated circuit devices | |
| US20150324129A1 (en) | Results generation for state machine engines | |
| US10430210B2 (en) | Systems and devices for accessing a state machine | |
| US11947979B2 (en) | Systems and devices for accessing a state machine | |
| CN118918132A (zh) | 一种基于算法-硬件协同设计的高效遥感图像处理方法 | |
| CN116954550A (zh) | 数据排序筛选装置和控制方法、装置及计算机设备 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PB01 | Publication | ||
| PB01 | Publication | ||
| SE01 | Entry into force of request for substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| GR01 | Patent grant | ||
| GR01 | Patent grant |