CN110007961A - 一种基于risc-v的边缘计算硬件架构 - Google Patents
一种基于risc-v的边缘计算硬件架构 Download PDFInfo
- Publication number
- CN110007961A CN110007961A CN201910104636.3A CN201910104636A CN110007961A CN 110007961 A CN110007961 A CN 110007961A CN 201910104636 A CN201910104636 A CN 201910104636A CN 110007961 A CN110007961 A CN 110007961A
- Authority
- CN
- China
- Prior art keywords
- module
- instruction
- data
- risc
- fetching
- 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.)
- Granted
Links
- 238000004364 calculation method Methods 0.000 title claims abstract description 22
- 238000004891 communication Methods 0.000 claims abstract description 60
- 238000012545 processing Methods 0.000 claims description 23
- 238000013481 data capture Methods 0.000 claims description 21
- 230000002093 peripheral effect Effects 0.000 claims description 15
- 238000013507 mapping Methods 0.000 claims description 12
- 238000004458 analytical method Methods 0.000 claims description 4
- 238000012546 transfer Methods 0.000 claims description 4
- 241001269238 Data Species 0.000 claims description 2
- 102000008297 Nuclear Matrix-Associated Proteins Human genes 0.000 claims description 2
- 108010035916 Nuclear Matrix-Associated Proteins Proteins 0.000 claims description 2
- 210000000299 nuclear matrix Anatomy 0.000 claims description 2
- 238000013461 design Methods 0.000 abstract description 6
- 238000013473 artificial intelligence Methods 0.000 abstract description 4
- 238000000034 method Methods 0.000 abstract description 4
- 238000003860 storage Methods 0.000 description 11
- 239000011159 matrix material Substances 0.000 description 5
- 230000006399 behavior Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 235000013399 edible fruits Nutrition 0.000 description 2
- 238000009991 scouring Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- 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
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Advance Control (AREA)
Abstract
本发明公开了一种基于RISC‑V的边缘计算硬件架构,包括:基于RISC‑V指令集的边缘计算控制器,用于实现对CNN硬件加速器的控制,对CNN硬件加速器运算的结果进行处理;一种通信协议接口,实现了基于RISC‑V的控制器与CNN硬件加速器之间的数据通信;CNN硬件加速器,用于实现对指定存储器中的数据进行卷积处理,将CNN加速器运算后的结果发送给控制器。本公开的技术方案借助RISC‑V指令集的开放免费,简洁和模块化的特点,解决了在边缘计算设备端对设备的低功耗,低面积和低成本的高需求问题,同时由于RISC‑V指令集具有独立扩展性和良好的向后兼容性,将基于RISC‑V指令集设计的处理器应用在移动边缘设备端可以解决传统的MCU由于编程性的限制而无法进行轻量级人工智能处理的问题。
Description
技术领域
本发明涉及计算机领域,更具体的,涉及一种基于RISC-V的边缘计算硬件架构。
背景技术
随着互联网的快速发展,以互联网为核心的物联网应用也得到了快速发展。大量的物联网设备分布在边缘端,这些边缘设备每时每刻都会产生大量的数据,并将这些庞大的数据传输至云端进行处理。而云数据中心通常难以处理海量边缘设备传来的数据,同时也很难满足边缘端对实时性的需求,从而导致物联网设备出现网络阻塞,高延时和低服务质量等问题。
而边缘计算,是为了应对传统的云计算在边缘设备应用中面临的问题而产生的。边缘计算在数据源端提供计算、存储、网络带宽等服务,通过将部分或者全部的处理数据放到数据源端,能够减少大规模分布式站点给应用程序带来的影响,从而将数据的价值实现最大化。
边缘计算的引入,也使得对边缘设备具有较高的要求,具体的技术问题如下:
1、成本高:目前市面主流的处理器芯片都价格不菲,如果边缘设备进行人工智能处理,再引入GPU,成本将非常昂贵。
2、面积大和功耗高:由于边缘设备的应用场景,使得边缘设备对低功耗和小面积等性能具有很高的要求。而现有的处理器需要兼顾以前的版本,同时由于使用的指令集,与同性能RISC-V指令集设计的处理器相比,需要消耗更多的逻辑电路。进而在功耗和面积上的代价更高。
3、在移动边缘设备端,传统的MCU和嵌入式CPU由于其片内存储和外设限制等问题,并不能完成人工智能应用。
发明内容
为了解决现有技术边缘计算对边缘设备具有较高的要求的不足,本发明提供了一种基于RISC-V的边缘计算硬件架构。
为实现以上发明目的,采用的技术方案是:
一种基于RISC-V的边缘计算硬件架构,包括基于RISC-V指令集的处理器、CNN硬件加速器以及通信协议接口;所述的基于RISC-V指令集的处理器与通信协议接口相连接,所述的通信协议接口与CNN硬件加速器相连接;所述的基于RISC-V指令集的处理器用于实现对CNN硬件加速器的控制,同时对CNN计算完的结果进行处理;所述的CNN硬件加速器用于接收基于RISC-V指令集的处理器的命令,对数据进行卷积计算,并将计算结果传送给基于RISC-V指令集的处理器;所述的通信协议接口用于实现所述RISC-V指令集的处理器与CNN硬件加速器之间的通信。
优选的,所述的基于RISC-V指令集的处理器包括:取指模块、执行模块、访存模块、数据存储器模块以及外设通信模块;
所述的执行模块分别与取指模块和访存模块相连接,所述的数据存储器模块以及外设通信模块分别与访存模块相连接,所述的外设通信模块与通信协议接口相连接;
所述的取指模块用于对指令进行部分译码,进行分支预测和生成下个取指地址;
所述的执行模块用于对取指阶段过来的指令进行译码和派遣到不同的运算单元执行,将运算的结果写回到寄存器;
所述的访存模块用于将要访存的指令进行仲裁,决定指令访问的存储器和外设;
所述的数据存储器模块用于存储指令需要访存的数据信息;
所述的外设通信模块用于与外部CNN硬件加速器实现通信。
优选的,所述的取指模块包括:指令取指模块、指令取指控制模块以及指令存储器;
所述的指令存储器与指令取指控制模块相连接,所述的指令取指模块的第一端口与指令取指控制模块相连接,所述的指令取指控制模块的第二端口以及第三端口分别与执行模块相连接;
指令取指模块,用于下条指令的地址的生成,用于对指令进行部分译码和简单预测;
指令取指控制模块,用于对指令取指模块传来的指令地址进行操作,向指令存储器发起取指操作;
指令存储器,用于存储指令,根据指令取指控制模块发过来的操作信息,返回相应的指令。
优选的,所述的执行模块包括:译码模块、指令派遣模块、长指令相关性模块、运算单元、指令交付模块、状态寄存器模块、指令写回模块,所述的运算单元分别与指令交付模块、状态寄存器模块、指令写回模块、指令派遣模块以及访存模块相连接,所述的译码模块分别与指令取指模块的第二端口以及指令派遣模块相连接;所述的长指令相关性模块分别与指令派遣模块以及指令写回模块相连接,所述的指令写回模块分别与访存模块以及指令交付模块相连接,所述的指令交付模块分别与指令取指模块的第三端口、状态寄存器模块相连接;
译码模块,用于对指令进行译码,将译码出的信息发送给派遣模块;
指令派遣模块,用于对指令译码出的信息分析,将信息派遣到不同的运算单元。
长指令相关性模块,用于记录长指令的相关信息,判断当前指令是否存在数据冲突,并将判断结果返回给派遣模块;
运算单元模块,用于负责具体指令执行控制和运算,并将运算结果发送给指定单元;
指令交付模块,用于负责指令执行中的分支预测,异常和中断处理,决定是否将处理后的信息发送给取指模块;
状态寄存器模块,用于定义控制和状态寄存器,记录运行状态,决定是否将相关信息发送给交付模块;
指令写回模块,用于将指令写回信息写回给相关寄存器,并将执行结果发送给指定模块。
优选的,所述的CNN硬件加速器包括:通信控制模块、数据抓取模块、特征映射存储器、FIFO模块、卷积核存储器以及处理引擎模块;
所述的通信控制模块分别与通信协议接口、数据抓取模块以及处理器引擎模块相连接;所述的FIFO模块分别与数据抓取模块以及处理器引擎模块相连接,所述的数据抓取模块与特征映射存储器相连接,所述的处理器引擎模块与卷积核存储器相连接;
通信控制模块,用于接收来自通信协议接口发送过来的数据信息,将数据解析并配置相应寄存器的值,同时接收处理引擎模块发送过来的反馈信息,决定是否向通信协议接口反馈使能信息和数据;
数据抓取模块,用于获取所述基于RISC-V处理器传来的指令,对其译码,向特征映射存储器获取数据,将数据传送给FIFO模块;
特征映射存储器,用于对图片视频等多维数据按照指定格式存储于存储器中;
FIFO模块,用于存储数据抓取模块传来的数据,并将先存储的数据发送给处理引擎模块执行;
卷积核存储器,用于将卷积核矩阵按照特定的格式存储,并按要求将数据传输给处理引擎模块;
处理引擎模块,用于将所述FIFO模块和所述卷积核存储器传来的数据进行点乘运算,并将运算结果传回所述基于RISC-V处理器。
与现有技术相比,本发明的有益效果是:
本发明基于RISC-V指令集设计的处理器,都是以低功耗,小面积的的性能需求而设计的,具体体现在分支预测的方式,独立的时钟门控,寄存器组的设计,执行模块的数据通路复用,数据和指令存储器的使用等方面。同时由于RISC-V简洁的特点,以及在指令集设计时规避了多年来处理器设计常见的问题和不用考虑向后兼容等问题,使得在所述RISC-V处理器设计中节省了大量的电路,大大降低了功耗和减少了面积。
在移动边缘设备端,相对于传统的MCU,本发明可以实现在低功耗的情况下控制CNN硬件加速器进行人工智能处理。
附图说明
图1为本发明一种基于RISC-V的边缘计算硬件架构的框图;
图2为本发明一种基于RISC-V的边缘计算硬件架构的内部连接框图。
具体实施方式
附图仅用于示例性说明,不能理解为对本专利的限制;
以下结合附图和实施例对本发明做进一步的阐述。
实施例1
如图1所示,一种基于RISC-V的边缘计算硬件架构100包括:基于RISC-V指令集的处理器110、与基于RISC-V指令集的处理器110连接的通信协议接口120以及与通信协议接口120连接的CNN硬件加速器130。
基于RISC-V指令集的处理器110可用于对从高级语言编译出来的指令进行处理和执行,如果指令中有需要对CNN硬件加速器进行操作和控制,则会以访存的形式通过通信协议接口120对CNN硬件加速器130进行控制和操作。
通信协议接口120可用于实现基于RISC-V指令集的处理器110与CNN硬件加速器130之间的通信,通信协议有两个数据通道,一个是基于RISC-V指令集的处理器110对CNN硬件加速器130的命令通道。一个是CNN硬件加速器130执行完毕,通知基于RISC-V指令集的处理器110过来取数据的反馈通道。
CNN硬件加速器130可用于对基于RISC-V指令集的处理器110传过来的数据进行解析,根据译码信息,来决定是否进行卷积运算,从哪个存储器取数据。并将卷积结果通过通信协议接口120发送给基于RISC-V指令集的处理器110。
实施例2
如图2所示,一种基于RISC-V指令集的处理器110包括取指模块111、执行模块112,访存模块113,数据存储器模块114,外设通信模块115。
取指模块111可用于获得指令,判断指令是否需要进行分支预测,生成下个指令的地址,并将指令值,地址,预测等信息传输给执行模块112。
取指模块111包括指令取指模块1111,指令取指控制模块1112,指令存储器1113。
指令取指模块1111可用于生成指令地址,对从指令取指控制模块1112传回来的指令值进行部分译码,译码出是否是跳转指令,对于跳转指令则要进行分支预测,根据分支预测的结果来生成下一条指令的地址,并将指令的地址和信息传输给执行模块122。同时也会接收来自执行模块112传输过来的冲刷信息,冲刷掉指令信息,并从冲刷信息中取出重新开始执行的指令信息。指令取指控制模块1112可用于控制对指令取指模块1111传输过来的指令地址进行判断是否去指令存储器1113取出相应的指令值。同时还会判断是否将取出的指令值传输给指令取指模块111。指令存储器1113用于与指令取指控制模块1112进行通信。存储要执行的指令值,根据指令取指控制模块1112传输过来的指令地址取出对应的指令值,并将指令值反馈给取指控制模块1112。
执行模块112分别与指令取指模块1111与访存模块113连接,其可用于对指令取指模块1111传过来的指令进行译码,从相应的寄存器中取出值,并根据指令译码结果进行相关运算。同时对于要访问内存的指令,将译码出的指令信息传输至访存模块113进行访存操作。
实施例3
如图2所示,本实施例中执行模块112还包括译码模块1121,指令派遣模块1122,长指令相关性模块1123。
其中,译码模块1121与指令取指模块1111连接,可用于接收指令取指模块1111传来的指令信息,对指令信息进行译码,并根据译码出的结果决定是否要去寄存器取出对应的值。同时将本次指令译码出的结果信息传输给指令派遣模块1122,由指令派遣模块1122决定将信息派遣至运算单元模块1124执行。指令派遣模块1122可用于将译码模块1121传输过来的译码信息进行分析,来决定是否进行派遣。指令派遣模块1122会将指令信息派发给长指令相关性模块1123,由长指令相关性模块1123判断是否具有数据相关性冲突。长指令相关性模块1123与指令派遣模块1122连接,可用于对指令派遣模块1122传输过来的指令信息与已经记录的非单周期指令信息进行数据冲突判断,并将判断结果反馈给指令派遣模块1122。同时,对于非单周期指令,长指令相关性模块1123也会将其指令信息记录下来。
此外,执行模块112还包括运算单元模块1124,指令交付模块1125,状态寄存器模块1126,指令写回模块1127。
运算单元模块1124与指令派遣模块1122连接。该运算单元模块1124接收派遣模块1122派遣过来的信息,对其进行判断,决定进行哪种运算操作,具体的运算操作有单周期运算,多周期运算,访存地址生成,分支预测解析和状态寄存器控制五类。同时会将运算结果信息传输给指令交付模块1125。指令交付模块1125与运算单元模块1124连接,该指令交付模块1125主要负责指令执行中的分支预测,异常和中断处理,根据其处理结果,决定是否将处理后的信息发送给指令取指模块1111。状态寄存器模块1126分别与运算单元模块1124和指令交付模块1125连接,该状态寄存器模块1126主要是记录中断和异常相关的寄存器指令,用于配置或记录运行的状态。同时该状态寄存器模块1126对运算单元模块1124传输过来的寄存器控制信息进行寄存器读写操作。指令写回模块1127分别与长指令相关性模块1123,运算单元模块1124和指令交付模块1125连接。用于对单周期和非单周期需要写回的指令将写回信息写回给对应的寄存器,并将非单周期指令执行结果发送给长指令相关性模块1123。该指令写回模块1127同时也接收运算单元模块1124完成运算需要写回的结果信息。
实施例4
如图2所示,本实施例中访存模块113分别与运算单元模块1124,指令写回模块1127连接。该访存模块113接收运算单元模块1124的访存地址信息,并会对地址信息进行判断,决定是去数据存储器模块114还是外设通信模块115,去写或读数据。该访存模块113对外设通信模块115进行写或读数据来控制CNN硬件加速器130进行数据处理。同时该访存模块113会将访存得到的信息写回给指令写回模块1127或数据存储器模块114。
实施例5
如图2所示,本实施例中,数据存储器模块114与访存模块113连接,该数据存储器模块114用于存储指令需要访存的数据信息。同时接收访存模块113传来的地址信息,根据地址信息写或读取对应的数据。
外设通信模块115分别与访存模块113和通信协议接口120连接,该外设通信模块115接收来自访存模块113地址信息和控制信息。同时该外设通信模块115对地址判断,来决定访问哪个外部设备,并将判断结果信息和地址信息发送给通信协议接口120。
实施例6
如图2所示,本实施例中CNN硬件加速器130包括通信控制模块131,数据抓取模块132,特征映射存储器133,FIFO模块134。
其中,通信控制模块131分别与通信协议接口120,数据抓取模块132和处理引擎模块136连接,该通信控制模块131接收来自通信协议接口120发送过来的数据信息,将数据解析并配置相应寄存器的值。同时该通信控制模块131将译码信息发送给数据抓取模块132,该通信控制模块131也会接收来自数据抓取模块132和处理引擎模块发送过来的反馈信息,决定是否向通信协议接口120反馈使能信息和数据。数据抓取模块132接收来自通信控制模块131的译码信息,根据译码信息和寄存器的信息来生成访问特征映射存储器133的地址,并根据寄存器的值来决定是否开始卷积操作。同时该数据抓取模块132将来自特征映射存储器133的数据,经掩码转换后发送给FIFO模块134。特征映射存储器133与数据抓取模块132连接,接收数据抓取模块132发送过来的地址信息,根据地址信息取出相应的数据反馈给数据抓取模块132。值得说明的是,该特征映射存储器133存储数据的规则是将3维的矩阵数据转换成一维数据进行存储的。转换格式是先存储矩阵深度K方向的数据,然后存储矩阵高度H方向的数据,最后存储宽度W方向的数据。目的是为了将卷积运算转换成矩阵点乘运算。FIFO模块134与数据抓取模块132连接,可用于接收来自数据抓取模块132的数据,FIFO模块134根据先进先出的顺序依次将数据发送给处理引擎模块,以每8行数据为一轮。值得说明的是,该FIFO模块134有两个输入口,分别接收来自数据抓取模块132传输过来的奇数行和偶数行的数据。因此每个周期中,FIFO模块134能够接受两行来自数据抓取模块132的数据,每行数据64位。因此,8行为一轮,一轮下来FIFO模块134需要四个周期接收完这8行数据。
此外,CNN硬件加速器130还包括卷积核存储器135和处理引擎模块136。
其中,卷积核存储器135在卷积运算开始前,会存储好卷积运算的卷积核数据,并在卷积开始时将数据发送给处理引擎模块136。值得说明的是,卷积核存储器存储的格式是先存储8个卷积核中的每个卷积核数据的各一行,每一行数据为64位,8个卷积核的8行数据存储完毕后,然后再存储这8个卷积核接下来的行数据,每个卷积核的行数据是按照先矩阵的深度再高度最后宽度的顺序存储的。以8个卷积核为一组,当8个卷积核存储完毕,卷积核存储器135会继续按照规则存储剩余的卷积核数据。同时,该卷积核存储器135以8行数据为一轮,每周期发送两行数据给处理引擎模块136。
处理引擎模块136分别与FIFO模块134,卷积核存储器135和通信控制模块131连接,接收FIFO模块134和卷积核存储器135的行数据并进行点乘累加运算,同时会根据寄存器的配置来决定是否进行relu操作。如果需要进行relu操作,该处理引擎模块136会将点乘运算后的结果做relu和转8bit操作,最后运算结束,会反馈给通信控制模块131并将每个结果寄存器的值传输给通信控制模块131。值得注意的是,该处理引擎模块136有8个运算单元,每个运算单元有8个结果寄存器,FIFO模块134传输过来的每行数据会广播给这8个运算单元。8个运算单元也会分别存储卷积核存储器135发送过来的8个不同的卷积核行数据。8个运算单元并行的进行点乘累加运算,最后当一个卷积窗口的点乘运算完成后,也就说明8*8=64个不同的卷积窗口运算完成。最后该处理引擎模块136中的每个运算单元的8个结果寄存器,分别存储的是8个卷积窗口的结果值,最后会通知通信控制模块131来取结果数据。
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。
Claims (5)
1.一种基于RISC-V的边缘计算硬件架构,其特征在于,包括基于RISC-V指令集的处理器、CNN硬件加速器以及通信协议接口;所述的基于RISC-V指令集的处理器与通信协议接口相连接,所述的通信协议接口与CNN硬件加速器相连接;所述的基于RISC-V指令集的处理器用于实现对CNN硬件加速器的控制,同时对CNN计算完的结果进行处理;所述的CNN硬件加速器用于接收基于RISC-V指令集的处理器的命令,对数据进行卷积计算,并将计算结果传送给基于RISC-V指令集的处理器;所述的通信协议接口用于实现所述RISC-V指令集的处理器与CNN硬件加速器之间的通信。
2.根据权利要求1中所述的一种基于RISC-V的边缘计算硬件架构,其特征在于,所述的基于RISC-V指令集的处理器包括:取指模块、执行模块、访存模块、数据存储器模块以及外设通信模块;
所述的执行模块分别与取指模块和访存模块相连接,所述的数据存储器模块以及外设通信模块分别与访存模块相连接,所述的外设通信模块与通信协议接口相连接;
所述的取指模块用于对指令进行部分译码,进行分支预测和生成下个取指地址;
所述的执行模块用于对取指阶段过来的指令进行译码和派遣到不同的运算单元执行,将运算的结果写回到寄存器;
所述的访存模块用于将要访存的指令进行仲裁,决定指令访问的存储器和外设;
所述的数据存储器模块用于存储指令需要访存的数据信息;
所述的外设通信模块用于与外部CNN硬件加速器实现通信。
3.根据权利要求2中所述的一种基于RISC-V的边缘计算硬件架构,其特征在于,所述的取指模块包括:指令取指模块、指令取指控制模块以及指令存储器;
所述的指令存储器与指令取指控制模块相连接,所述的指令取指模块的第一端口与指令取指控制模块相连接,所述的指令取指控制模块的第二端口以及第三端口分别与执行模块相连接;
指令取指模块,用于下条指令的地址的生成,用于对指令进行部分译码和简单预测;
指令取指控制模块,与指令取指模块连接,用于对指令取指模块传来的指令地址进行操作,向指令存储器发起取指操作;
指令存储器,与指令取指控制模块连接,用于存储指令,根据指令取指控制模块发过来的操作信息,返回相应的指令。
4.根据权利要求3中所述的一种基于RISC-V的边缘计算硬件架构,其特征在于,所述的执行模块包括:译码模块、指令派遣模块、长指令相关性模块、运算单元、指令交付模块、状态寄存器模块、指令写回模块;
所述的运算单元分别与指令交付模块、状态寄存器模块、指令写回模块、指令派遣模块以及访存模块相连接,所述的译码模块分别与指令取指模块的第二端口以及指令派遣模块相连接;所述的长指令相关性模块分别与指令派遣模块以及指令写回模块相连接,所述的指令写回模块分别与访存模块以及指令交付模块相连接,所述的指令交付模块分别与指令取指模块的第三端口、状态寄存器模块相连接;
译码模块,用于对指令进行译码,将译码出的信息发送给派遣模块;
指令派遣模块,用于对指令译码出的信息分析,将信息派遣到不同的运算单元;
长指令相关性模块,用于记录长指令的相关信息,判断当前指令是否存在数据冲突,并将判断结果返回给派遣模块;
运算单元模块,用于负责具体指令执行控制和运算,并将运算结果发送给指定单元;
指令交付模块,用于负责指令执行中的分支预测,异常和中断处理,决定是否将处理后的信息发送给取指模块;
状态寄存器模块,用于记录运行状态,决定是否将相关信息发送给交付模块;
指令写回模块,用于将指令写回信息写回给相关寄存器,并将执行结果发送给指定模块。
5.根据权利要求1中所述的一种基于RISC-V的边缘计算硬件架构,其特征在于,所述的CNN硬件加速器包括:通信控制模块、数据抓取模块、特征映射存储器、FIFO模块、卷积核存储器以及处理引擎模块;
所述的通信控制模块分别与通信协议接口、数据抓取模块以及处理器引擎模块相连接;所述的FIFO模块分别与数据抓取模块以及处理器引擎模块相连接,所述的数据抓取模块与特征映射存储器相连接,所述的处理器引擎模块与卷积核存储器相连接;
通信控制模块,用于接收来自通信协议接口发送过来的数据信息,将数据解析并配置相应寄存器的值,同时接收处理引擎模块发送过来的反馈信息,决定是否向通信协议接口反馈使能信息和数据;
数据抓取模块,用于获取所述基于RISC-V处理器传来的指令,对其译码,向特征映射存储器获取数据,将数据传送给FIFO模块;
特征映射存储器,用于对图片视频等多维数据按照指定格式存储于存储器中;
FIFO模块,用于存储数据抓取模块传来的数据,并将先存储的数据发送给处理引擎模块执行;
卷积核存储器,用于将卷积核矩阵按照特定的格式存储,并按要求将数据传输给处理引擎模块;
处理引擎模块,用于将所述FIFO模块和所述卷积核存储器传来的数据进行点乘运算,并将运算结果传回所述基于RISC-V处理器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910104636.3A CN110007961B (zh) | 2019-02-01 | 2019-02-01 | 一种基于risc-v的边缘计算硬件架构 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910104636.3A CN110007961B (zh) | 2019-02-01 | 2019-02-01 | 一种基于risc-v的边缘计算硬件架构 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110007961A true CN110007961A (zh) | 2019-07-12 |
CN110007961B CN110007961B (zh) | 2023-07-18 |
Family
ID=67165680
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910104636.3A Active CN110007961B (zh) | 2019-02-01 | 2019-02-01 | 一种基于risc-v的边缘计算硬件架构 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110007961B (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110443214A (zh) * | 2019-08-12 | 2019-11-12 | 山东浪潮人工智能研究院有限公司 | 一种基于risc-v的人脸识别加速电路系统及加速方法 |
CN110536299A (zh) * | 2019-09-04 | 2019-12-03 | 电子科技大学 | 基于边缘计算和离散随机卷积的数据包合法性确认方法 |
CN110737473A (zh) * | 2019-09-24 | 2020-01-31 | 北京小米移动软件有限公司 | 数据处理方法及装置、终端、存储介质 |
CN111177067A (zh) * | 2019-12-13 | 2020-05-19 | 广东高云半导体科技股份有限公司 | 一种片上系统 |
CN111783958A (zh) * | 2020-07-03 | 2020-10-16 | 中用科技有限公司 | 一种数据处理系统、方法、装置和存储介质 |
CN112259071A (zh) * | 2020-09-22 | 2021-01-22 | 北京百度网讯科技有限公司 | 语音处理系统、语音处理方法、电子设备和可读存储介质 |
CN112257843A (zh) * | 2020-09-23 | 2021-01-22 | 浙江大学 | 一种基于MobileNetV1网络推理任务的扩展指令集的系统 |
CN113241848A (zh) * | 2021-04-20 | 2021-08-10 | 深圳供电局有限公司 | 配电网综合监控系统 |
CN113329358A (zh) * | 2021-04-29 | 2021-08-31 | 广州中国科学院软件应用技术研究所 | 一种基于risc-v指令集的aiot多制式边缘网关通信系统及设备 |
WO2022134729A1 (zh) * | 2020-12-24 | 2022-06-30 | 苏州浪潮智能科技有限公司 | 一种基于risc-v的人工智能推理方法和系统 |
WO2022151854A1 (zh) * | 2021-01-15 | 2022-07-21 | 苏州浪潮智能科技有限公司 | 基于risc-v的格密码处理系统、方法、设备及存储介质 |
WO2022170997A1 (zh) * | 2021-02-09 | 2022-08-18 | 山东英信计算机技术有限公司 | 基于risc-v指令集进行数据处理的方法、系统、设备及介质 |
CN117634569A (zh) * | 2023-11-24 | 2024-03-01 | 浙江大学 | 一种基于risc-v扩展指令的量化神经网络加速处理器 |
CN118279125A (zh) * | 2024-06-04 | 2024-07-02 | 山东浪潮科学研究院有限公司 | 一种轻量化通用图形处理器的实现方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107657581A (zh) * | 2017-09-28 | 2018-02-02 | 中国人民解放军国防科技大学 | 一种卷积神经网络cnn硬件加速器及加速方法 |
CN108197705A (zh) * | 2017-12-29 | 2018-06-22 | 国民技术股份有限公司 | 卷积神经网络硬件加速装置及卷积计算方法及存储介质 |
CN109144573A (zh) * | 2018-08-16 | 2019-01-04 | 胡振波 | 基于risc-v指令集的二级流水线架构 |
-
2019
- 2019-02-01 CN CN201910104636.3A patent/CN110007961B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107657581A (zh) * | 2017-09-28 | 2018-02-02 | 中国人民解放军国防科技大学 | 一种卷积神经网络cnn硬件加速器及加速方法 |
CN108197705A (zh) * | 2017-12-29 | 2018-06-22 | 国民技术股份有限公司 | 卷积神经网络硬件加速装置及卷积计算方法及存储介质 |
CN109144573A (zh) * | 2018-08-16 | 2019-01-04 | 胡振波 | 基于risc-v指令集的二级流水线架构 |
Non-Patent Citations (1)
Title |
---|
ERIC FLAMAND: ""GAP-8: A RISC-V SoC for AI at the Edge of the IoT"", 《2018 IEEE 29TH INTERNATIONAL CONFERENCE ON APPLICATION-SPECIFIC SYSTEMS, ARCHITECTURES AND PROCESSORS (ASAP)》 * |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110443214A (zh) * | 2019-08-12 | 2019-11-12 | 山东浪潮人工智能研究院有限公司 | 一种基于risc-v的人脸识别加速电路系统及加速方法 |
CN110443214B (zh) * | 2019-08-12 | 2022-03-01 | 山东浪潮科学研究院有限公司 | 一种基于risc-v的人脸识别加速电路系统及加速方法 |
CN110536299A (zh) * | 2019-09-04 | 2019-12-03 | 电子科技大学 | 基于边缘计算和离散随机卷积的数据包合法性确认方法 |
CN110737473A (zh) * | 2019-09-24 | 2020-01-31 | 北京小米移动软件有限公司 | 数据处理方法及装置、终端、存储介质 |
CN111177067A (zh) * | 2019-12-13 | 2020-05-19 | 广东高云半导体科技股份有限公司 | 一种片上系统 |
CN111177067B (zh) * | 2019-12-13 | 2023-09-19 | 广东高云半导体科技股份有限公司 | 一种片上系统 |
CN111783958A (zh) * | 2020-07-03 | 2020-10-16 | 中用科技有限公司 | 一种数据处理系统、方法、装置和存储介质 |
CN112259071A (zh) * | 2020-09-22 | 2021-01-22 | 北京百度网讯科技有限公司 | 语音处理系统、语音处理方法、电子设备和可读存储介质 |
CN112257843A (zh) * | 2020-09-23 | 2021-01-22 | 浙江大学 | 一种基于MobileNetV1网络推理任务的扩展指令集的系统 |
CN112257843B (zh) * | 2020-09-23 | 2022-06-28 | 浙江大学 | 一种基于MobileNetV1网络推理任务的扩展指令集的系统 |
US11880684B2 (en) | 2020-12-24 | 2024-01-23 | Inspur Suzhou Intelligent Technology Co., Ltd. | RISC-V-based artificial intelligence inference method and system |
WO2022134729A1 (zh) * | 2020-12-24 | 2022-06-30 | 苏州浪潮智能科技有限公司 | 一种基于risc-v的人工智能推理方法和系统 |
WO2022151854A1 (zh) * | 2021-01-15 | 2022-07-21 | 苏州浪潮智能科技有限公司 | 基于risc-v的格密码处理系统、方法、设备及存储介质 |
WO2022170997A1 (zh) * | 2021-02-09 | 2022-08-18 | 山东英信计算机技术有限公司 | 基于risc-v指令集进行数据处理的方法、系统、设备及介质 |
CN113241848A (zh) * | 2021-04-20 | 2021-08-10 | 深圳供电局有限公司 | 配电网综合监控系统 |
CN113329358A (zh) * | 2021-04-29 | 2021-08-31 | 广州中国科学院软件应用技术研究所 | 一种基于risc-v指令集的aiot多制式边缘网关通信系统及设备 |
CN117634569A (zh) * | 2023-11-24 | 2024-03-01 | 浙江大学 | 一种基于risc-v扩展指令的量化神经网络加速处理器 |
CN118279125A (zh) * | 2024-06-04 | 2024-07-02 | 山东浪潮科学研究院有限公司 | 一种轻量化通用图形处理器的实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110007961B (zh) | 2023-07-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110007961A (zh) | 一种基于risc-v的边缘计算硬件架构 | |
Gupta et al. | System-level synthesis using re-programmable components | |
US11544545B2 (en) | Structured activation based sparsity in an artificial neural network | |
US11615297B2 (en) | Structured weight based sparsity in an artificial neural network compiler | |
US11893424B2 (en) | Training a neural network using a non-homogenous set of reconfigurable processors | |
US9552206B2 (en) | Integrated circuit with control node circuitry and processing circuitry | |
CN105426160B (zh) | 基于sprac v8指令集的指令分类多发射方法 | |
US20240020134A1 (en) | Overflow detection and correction in state machine engines | |
US11551028B2 (en) | Structured weight based sparsity in an artificial neural network | |
CN110088737A (zh) | 将并发程序转换为可部署在基于fpga的云基础设施上的硬件的综合路径 | |
Del Cuvillo et al. | FAST: A functionally accurate simulation toolset for the Cyclops64 cellular architecture | |
US11281967B1 (en) | Event-based device performance monitoring | |
CN112381220B (zh) | 一种神经网络张量处理器 | |
CN112580792B (zh) | 一种神经网络多核张量处理器 | |
CN108133452A (zh) | 一种统一染色器阵列的指令发射处理电路 | |
US20170249282A1 (en) | Configurable pre-processing array | |
US10846201B1 (en) | Performance debug for networks | |
US20210326189A1 (en) | Synchronization of processing elements that execute statically scheduled instructions in a machine learning accelerator | |
US8027828B2 (en) | Method and apparatus for synchronizing processors in a hardware emulation system | |
US20230195478A1 (en) | Access To Intermediate Values In A Dataflow Computation | |
CN103218344A (zh) | 采用数据驱动机制多处理器间数据通信电路 | |
US20220222397A1 (en) | Parallel memory model for distributed functional simulations | |
Suvorova | An approach for development of RISC-V based transport layer controller | |
US20240112076A1 (en) | Synchronization of compute elements executing statically scheduled instructions for a machine learning accelerator | |
Du et al. | Breaking the interaction wall: A DLPU-centric deep learning computing system |
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 |