当前位置: 首页 > 专利查询>福州大学专利>正文

一种基于FPGA的跨步访问数据流检测电路及方法技术

技术编号:26597221 阅读:27 留言:0更新日期:2020-12-04 21:19
本发明专利技术涉及一种基于FPGA的跨步访问数据流检测电路及方法。第一数据寄存器输入端、减法器第一输入端相连接作为整个电路的数据输入端,第一数据寄存器输出端与减法器第二输入端相连接,减法器的输出端与数据差值寄存器的输入端连接,数据差值寄存器的输出端与数据存储器的第一输入端连接,数据存储器的第二输入端与计数器的输入端、计数器的输出端连接,数据存储器的的输出端与比较器的输入端连接,比较器的输出端与与门的第一输入端、信号计数器的输入端连接,信号计数器的输出端与第二数据寄存器的输入端连接,第二数据寄存器的输出端与与门的第二输入端连接,与门的输出端作为整个电路的信号输出端。本发明专利技术能判断输入数据流是否为跨步访存数据。

【技术实现步骤摘要】
一种基于FPGA的跨步访问数据流检测电路及方法
本专利技术应用于数据流检测领域,具体涉及一种基于FPGA的跨步访问数据流检测电路及方法。
技术介绍
近年来,深度学习算法和数字信号处理广泛应用于各个领域,如计算机视觉、图像识别、矩阵计算、卷积计算、快速傅里叶变换FFT等,其中的卷积神经网络算法CNN(ConvolutionalNeuralNetworks)是深度学习算法中使用最广的算法之一。CNN算法简单、并行程度高,但其数据计算量大,有大量的卷积计算操作,而卷积计算的读写方式主要是跨步访问。所以提高系统的带宽和数据流检测的准确率,对于改善系统的性能有着重要意义。如何准确的检测跨步数据流是解决访存冲突的重要途经之一,有利提高存储系统的带宽和效率。目前数据访存主要基于软件仿真平台和linux操作系统,通过对跨步数据访存预读或预取算法。预读算法通常是通过模式匹配的启发式检测算法,该类算法对用户程序透明,但是能监测到的预读模式比较单一。linux操作系统适用于顺序预读算法,并不针对其它数据的访问类型。FPGA是一种可编程逻辑门器件,具有集成度高、处理速度快等特点,易于维护和移植,方便让研究人员有足够的设计空间来定制专用的数据流检测硬件电路,可以利用跨步访存的特性设计数据流检测电路和方法。
技术实现思路
本专利技术的目的在于提供一种基于FPGA的跨步访问数据流检测电路及方法,本专利技术资源及功耗较低,检测效果良好,能准确判断输入数据流是否为跨步访存数据。为实现上述目的,本专利技术的技术方案是:一种基于FPGA的跨步访问数据流检测电路,包括第一数据寄存器、减法器、数据差值寄存器、数据存储器、计数器、比较器、信号计数器、第二数据寄存器、与门;第一数据寄存器的输入端、减法器的第一输入端相连接作为整个电路的数据输入端,第一数据寄存器的输出端与减法器的第二输入端相连接,减法器的输出端与数据差值寄存器的输入端连接,数据差值寄存器的输出端与数据存储器的第一输入端连接,数据存储器的第二输入端与计数器的输入端、计数器的输出端连接,数据存储器的的输出端与比较器的输入端连接,比较器的输出端与与门的第一输入端、信号计数器的输入端连接,信号计数器的输出端与第二数据寄存器的输入端连接,第二数据寄存器的输出端与与门的第二输入端连接,与门的输出端作为整个电路的信号输出端;第一数据寄存器的使能端、数据差值寄存器的使能端、数据存储器的使能端、计数器的使能端、信号计数器的使能端相连接作为整个电路的使能端,第一数据寄存器的时钟端、数据存储器的时钟端、计数器的时钟端、信号计数器的时钟端、第二数据寄存器的时钟端相连接作为整个电路的时钟端,第一数据寄存器的复位端、数据存储器的复位端、计数器的复位端、信号计数器的复位端、第二数据寄存器的复位端相连接作为整个电路的复位端。在本专利技术一实施例中,所述比较器包括第一比较单元、第二比较单元、第三比较单元;其中,第一比较单元与数据存储器中的data_ram[kernel-1]数据块相连,第二比较单元与数据存储器中的data_ram[kernel_size-1]数据块和data_ram[kernel-kernel_size-1]数据块相连,第三比较单元与数据存储器中剩下的data_ram数据块相连,其中kernel、kernel_size为常数。在本专利技术一实施例中,所述第一比较单元由一个比较器电路构成,第一比较单元的比较器电路第一输入端与GND连接,第一比较单元的比较器电路第二输入端与数据存储器中的data_ram[kernel-1]数据块输出端连接,第一比较单元的比较器电路输出端与第二比较单元连接;第二比较单元由两个比较器电路和两个与门电路构成,第二比较单元的第一个比较器电路两输入端分别与数据存储器中的data_ram[kernel_size-1]数据块输出端和data_ram[kernel-kernel_size-1]数据块输出端相连,第二比较单元的第一个比较器电路输出端与第二比较单元的第一与门第一输入端连接,第二比较单元的第二个比较器电路第一输入端与系统设定值连接,第二比较单元的第二个比较器电路第二输入端与数据存储器中的data_ram[kernel_size-1]数据块输出端或data_ram[kernel-kernel_size-1]数据块输出端连接,第二比较单元的第二个比较器电路输出端与第二比较单元的第二与门电路第一输入端连接,第二比较单元的第一与门电路第二输入端与第一比较单元的比较器电路输出端连接,第二比较单元的第一与门电路输出端与第二比较单元的第二与门电路第二输入端连接,第二比较单元的第二与门电路输出端与第三比较单元连接。在本专利技术一实施例中,所述第三比较单元由kernel-kernel_size-2个比较器电路和kernel-kernel_size-2与门电路构成,第三比较单元的kernel-kernel_size-2个比较器电路用于实现数据存储器中剩余data_ram数据块输出端输出值的比较,第三比较单元的kernel-kernel_size-2与门电路用于实现第三比较单元的kernel-kernel_size-2个比较器电路输出端输出值、第二比较单元的第二与门电路输出端输出值的与逻辑比较。本专利技术还提供了一种基于上述所述的基于FPGA的跨步访问数据流检测电路的跨步访问数据流检测方法,包括如下步骤:步骤一:根据跨步访问数据流的特点,定义系统变量Image_width、kernel_size、kernel、Stride;步骤二:输入数据data_in存入第一数据寄存器,输入使能信号enable延时一个时钟周期;步骤三:第一数据寄存器存储的前一刻时钟数据与数据data_in的后一刻时钟数据在减法器做减法得到的差值数据并存入数据差值寄存器;步骤四:计数器从零开始计数,计数存入数据差值寄存器的数据的个数并计数到kernel-1后,将kernel个数据记为一组;步骤五:比较器判断每组数据的第[kernel-1]个数据是否小于0且判断每组数据的第[kernel_size-1]个数据和第[kernel-kernel_size-1]个数据==Image_width-kernel_size+1,若是,则比较器判断每组数据除上述外的数据是否相等,若是,执行步骤六;步骤六:比较器输出信号vld_r=’d1;步骤七:信号计数器计数信号vld_r值为’d1的个数并输出计数值vld_num给第二数据寄存器;步骤八:第二数据寄存器判断((Image_withe-kernel_size+stride)/stride)2==vld_num是否成立,若等式成立则第二数据寄存器输出信号vld_d=‘d1;步骤九:与门计算data_vld=vld_r&&vld_d的值,并输出信号data_vld;其中Image_width、kernel、kernel_size、Stride为常数。相较于现有技术,本专利技术具有以下有益效果:本专利技术基于veril本文档来自技高网...

【技术保护点】
1.一种基于FPGA的跨步访问数据流检测电路,其特征在于,包括第一数据寄存器、减法器、数据差值寄存器、数据存储器、计数器、比较器、信号计数器、第二数据寄存器、与门;第一数据寄存器的输入端、减法器的第一输入端相连接作为整个电路的数据输入端,第一数据寄存器的输出端与减法器的第二输入端相连接,减法器的输出端与数据差值寄存器的输入端连接,数据差值寄存器的输出端与数据存储器的第一输入端连接,数据存储器的第二输入端与计数器的输入端、计数器的输出端连接,数据存储器的的输出端与比较器的输入端连接,比较器的输出端与与门的第一输入端、信号计数器的输入端连接,信号计数器的输出端与第二数据寄存器的输入端连接,第二数据寄存器的输出端与与门的第二输入端连接,与门的输出端作为整个电路的信号输出端;第一数据寄存器的使能端、数据差值寄存器的使能端、数据存储器的使能端、计数器的使能端、信号计数器的使能端相连接作为整个电路的使能端,第一数据寄存器的时钟端、数据存储器的时钟端、计数器的时钟端、信号计数器的时钟端、第二数据寄存器的时钟端相连接作为整个电路的时钟端,第一数据寄存器的复位端、数据存储器的复位端、计数器的复位端、信号计数器的复位端、第二数据寄存器的复位端相连接作为整个电路的复位端。/n...

【技术特征摘要】
1.一种基于FPGA的跨步访问数据流检测电路,其特征在于,包括第一数据寄存器、减法器、数据差值寄存器、数据存储器、计数器、比较器、信号计数器、第二数据寄存器、与门;第一数据寄存器的输入端、减法器的第一输入端相连接作为整个电路的数据输入端,第一数据寄存器的输出端与减法器的第二输入端相连接,减法器的输出端与数据差值寄存器的输入端连接,数据差值寄存器的输出端与数据存储器的第一输入端连接,数据存储器的第二输入端与计数器的输入端、计数器的输出端连接,数据存储器的的输出端与比较器的输入端连接,比较器的输出端与与门的第一输入端、信号计数器的输入端连接,信号计数器的输出端与第二数据寄存器的输入端连接,第二数据寄存器的输出端与与门的第二输入端连接,与门的输出端作为整个电路的信号输出端;第一数据寄存器的使能端、数据差值寄存器的使能端、数据存储器的使能端、计数器的使能端、信号计数器的使能端相连接作为整个电路的使能端,第一数据寄存器的时钟端、数据存储器的时钟端、计数器的时钟端、信号计数器的时钟端、第二数据寄存器的时钟端相连接作为整个电路的时钟端,第一数据寄存器的复位端、数据存储器的复位端、计数器的复位端、信号计数器的复位端、第二数据寄存器的复位端相连接作为整个电路的复位端。


2.根据权利要求1所述的一种基于FPGA的跨步访问数据流检测电路,其特征在于,所述比较器包括第一比较单元、第二比较单元、第三比较单元;其中,第一比较单元与数据存储器中的data_ram[kernel-1]数据块相连,第二比较单元与数据存储器中的data_ram[kernel_size-1]数据块和data_ram[kernel-kernel_size-1]数据块相连,第三比较单元与数据存储器中剩下的data_ram数据块相连,其中kernel、kernel_size为常数。


3.根据权利要求2所述的一种基于FPGA的跨步访问数据流检测电路,其特征在于,所述第一比较单元由一个比较器电路构成,第一比较单元的比较器电路第一输入端与GND连接,第一比较单元的比较器电路第二输入端与数据存储器中的data_ram[kernel-1]数据块输出端连接,第一比较单元的比较器电路输出端与第二比较单元连接;第二比较单元由两个比较器电路和两个与门电路构成,第二比较单元的第一个比较器电路两输入端分别与数据存储器中的data_ram[kernel_size-1]数据块输出端和data_ram[kernel-kernel_size-1]数据块输出端相连,第二比较单元的第一个比较器电路输出端与第二比较单元的第一与门第一输入端连接,第二比较单元的第二个比较器电路第一输入端与系统设定值连接,第二比较单元的第二个比较器电路第二输入端与数据存储器中的data_ram[kernel_size-1]数据块输出端或data_ra...

【专利技术属性】
技术研发人员:魏榕山李晨嘉范裕阳
申请(专利权)人:福州大学
类型:发明
国别省市:福建;35

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1