基于RISC-V处理器的卷积神经网络加速SoC
发布时间:2021-08-18 15:58
近年来,随着处理器性能的快速发展以及存储器容量的不断提升,模拟人体大脑的神经网络算法成为了目前最流行的算法。该算法在很多领域表现出比传统算法更优越的性能,例如在网页搜索,图像分析,语音识别等方面。卷积神经网络(CNN)是针对图像分析所提出的一种神经网络算法,在2012年的Image-Net LargeScale Vision Recognition Challenge(ILSVRC)中,卷积神经网络算法击败传统图像算法获得第一名;2018年,在围棋领域,依靠卷积神经网络算法的AlphaGo击败了李世石,展现了卷积神经网络算法强大的潜力。但是,由于卷积神经网络参数多,运算量大,目前,该算法大多数情况下依赖图形处理器(GPU)进行运算。GPU虽然运算快,但是功耗较大,并不适合在嵌入式领域中应用,并且随着摩尔定律的失效,将神经网络算法移植到硬件实现的期望也越来越迫切。现场可编程门阵列(FPGA)具有更为灵活的硬件实现和比GPU更低的功耗,非常适合作为卷积神经网络的一种硬件实现设计。在实现方面,基于处理器和加速器外设实现的片上系统(SoC)与单纯使用加速器相比更具有灵活性。本文致力于实现一款低...
【文章来源】:吉林大学吉林省 211工程院校 985工程院校 教育部直属院校
【文章页数】:81 页
【学位级别】:硕士
【部分图文】:
跳转指令引发的流水线控制信号
第二章RISC-V处理器的硬件设计11行阶段送至CSR模块内部执行,并且读取CSR寄存器指令所读取到的读数应正确地参与指令相关性检测并写回到寄存器组中。因此,CSR模块与ALU模块并列,共同存在于流水线中的执行一级。CSR寄存器组分为两个种类,一种是与处理器中计数器和定时器有关的三个寄存器。这三个寄存器经常参与处理器性能测试,并且提供精准的时间。这三个寄存器分别是用以存储当前运行时钟周期的cycle寄存器,存储实时时钟的time寄存器和存储执行指令数目的寄存器instret寄存器。尽管处理器为32位,但这三个寄存器较为特殊,根据RISC-V协议为64位[20],分为高32位和低32位分别处理。对于驱动方式,cycle寄存器直接由系统时钟进行驱动,而instret寄存器因为与处理器流水线息息相关,所以根据流水线运行、暂停或者冲刷的状态生成驱动信号,如图2.5所示的instret信号变为生成的驱动信号。time寄存器由SoC提供的实时时钟驱动,由于时钟不同步还要进行同步处理。图2.5生成的instret驱动信号实时时钟time寄存器需使用独立的时钟驱动,在很多处理器中该时钟通过片外晶振输入。晶振频率多数为32.768kHz,即为215,这样可以提供精准的时钟。在本文中利用时钟资源PLL与分频器的组合实现该时钟,输入时钟为100MHz,PLL无法直接输出频率过低的时钟,因而采用MMCM输出8.388MHz时钟并且使用256分频器将时钟频率分为32.768kHz。CSR寄存器的另一种为异常与中断相关寄存器,例如IE、IP寄存器。IP寄存器用以存储中断等待,RISC-V架构要求实现的中断包括软件中断、定时器中断和外部中断。这些中断产生后处理器并不会马上响应,还需要中断使能开启。IE寄存器和status两个寄存器控制着中断使能。IE寄存器控制具体种类的中断
第二章RISC-V处理器的硬件设计13RISC-V架构规定了14种异常,如图2.6所示。在本文中,大多数异常并不会被使用。按照实际需求,实现了无效指令异常和机器模式级别的系统调用。对于RISC-V结构,执行指令ecall时候便进入系统调用。当ecall指令进入到流水线中的执行阶段时,处理器将对其响应从而进入中断模式。然而,由于处理器EPC寄存器保存的地址为执行阶段地址,当处理器退出中断后,依旧会执行ecall指令从而造成无限循环。针对这种情况,在设计相应函数时,对该异常进行特殊的处理,即读取EPC寄存器的地址,并将该数字加4(下一个指令地址)同时存入EPC寄存器中以便处理器正确地从中断退出。图2.6RISC-V架构规定的异常指令错误异常处理程序中,首先打印错误指令产生的地址以便于调试。为了不带来后续影响,处理程序将会进入死循环,使得处理器不会再继续运行。2.2.4乘除法器在RISCV指令集下,如果实现了对基本指令集的支持,那么便可以实现绝大多数运算操作,便包括乘除法运算。基本指令集里是不包含对乘除法指令的支持,乘除法的指令为RISC-V指令集的“M”扩展部分。但是乘除法器仍然作为高性能处理器必要的实现。本节对比处理器采用标准指令集实现乘法运算和用乘法指令运算的性能,进而添加一个高性能的乘除法器。
【参考文献】:
期刊论文
[1]基于FPGA加速的卷积神经网络识别系统[J]. 林志文,林志贤,郭太良,林珊玲. 电子技术应用. 2020(02)
[2]五级流水线RISC-V处理器软硬件协同仿真验证[J]. 李东泽,曹凯宁,曲明,王富昕. 吉林大学学报(信息科学版). 2017(06)
本文编号:3350189
【文章来源】:吉林大学吉林省 211工程院校 985工程院校 教育部直属院校
【文章页数】:81 页
【学位级别】:硕士
【部分图文】:
跳转指令引发的流水线控制信号
第二章RISC-V处理器的硬件设计11行阶段送至CSR模块内部执行,并且读取CSR寄存器指令所读取到的读数应正确地参与指令相关性检测并写回到寄存器组中。因此,CSR模块与ALU模块并列,共同存在于流水线中的执行一级。CSR寄存器组分为两个种类,一种是与处理器中计数器和定时器有关的三个寄存器。这三个寄存器经常参与处理器性能测试,并且提供精准的时间。这三个寄存器分别是用以存储当前运行时钟周期的cycle寄存器,存储实时时钟的time寄存器和存储执行指令数目的寄存器instret寄存器。尽管处理器为32位,但这三个寄存器较为特殊,根据RISC-V协议为64位[20],分为高32位和低32位分别处理。对于驱动方式,cycle寄存器直接由系统时钟进行驱动,而instret寄存器因为与处理器流水线息息相关,所以根据流水线运行、暂停或者冲刷的状态生成驱动信号,如图2.5所示的instret信号变为生成的驱动信号。time寄存器由SoC提供的实时时钟驱动,由于时钟不同步还要进行同步处理。图2.5生成的instret驱动信号实时时钟time寄存器需使用独立的时钟驱动,在很多处理器中该时钟通过片外晶振输入。晶振频率多数为32.768kHz,即为215,这样可以提供精准的时钟。在本文中利用时钟资源PLL与分频器的组合实现该时钟,输入时钟为100MHz,PLL无法直接输出频率过低的时钟,因而采用MMCM输出8.388MHz时钟并且使用256分频器将时钟频率分为32.768kHz。CSR寄存器的另一种为异常与中断相关寄存器,例如IE、IP寄存器。IP寄存器用以存储中断等待,RISC-V架构要求实现的中断包括软件中断、定时器中断和外部中断。这些中断产生后处理器并不会马上响应,还需要中断使能开启。IE寄存器和status两个寄存器控制着中断使能。IE寄存器控制具体种类的中断
第二章RISC-V处理器的硬件设计13RISC-V架构规定了14种异常,如图2.6所示。在本文中,大多数异常并不会被使用。按照实际需求,实现了无效指令异常和机器模式级别的系统调用。对于RISC-V结构,执行指令ecall时候便进入系统调用。当ecall指令进入到流水线中的执行阶段时,处理器将对其响应从而进入中断模式。然而,由于处理器EPC寄存器保存的地址为执行阶段地址,当处理器退出中断后,依旧会执行ecall指令从而造成无限循环。针对这种情况,在设计相应函数时,对该异常进行特殊的处理,即读取EPC寄存器的地址,并将该数字加4(下一个指令地址)同时存入EPC寄存器中以便处理器正确地从中断退出。图2.6RISC-V架构规定的异常指令错误异常处理程序中,首先打印错误指令产生的地址以便于调试。为了不带来后续影响,处理程序将会进入死循环,使得处理器不会再继续运行。2.2.4乘除法器在RISCV指令集下,如果实现了对基本指令集的支持,那么便可以实现绝大多数运算操作,便包括乘除法运算。基本指令集里是不包含对乘除法指令的支持,乘除法的指令为RISC-V指令集的“M”扩展部分。但是乘除法器仍然作为高性能处理器必要的实现。本节对比处理器采用标准指令集实现乘法运算和用乘法指令运算的性能,进而添加一个高性能的乘除法器。
【参考文献】:
期刊论文
[1]基于FPGA加速的卷积神经网络识别系统[J]. 林志文,林志贤,郭太良,林珊玲. 电子技术应用. 2020(02)
[2]五级流水线RISC-V处理器软硬件协同仿真验证[J]. 李东泽,曹凯宁,曲明,王富昕. 吉林大学学报(信息科学版). 2017(06)
本文编号:3350189
本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/3350189.html