CN111159094A - 一种基于risc-v的近数据流式计算加速阵列 - Google Patents
一种基于risc-v的近数据流式计算加速阵列 Download PDFInfo
- Publication number
- CN111159094A CN111159094A CN201911234978.3A CN201911234978A CN111159094A CN 111159094 A CN111159094 A CN 111159094A CN 201911234978 A CN201911234978 A CN 201911234978A CN 111159094 A CN111159094 A CN 111159094A
- Authority
- CN
- China
- Prior art keywords
- microcode
- instruction
- data
- calculation
- risc
- 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.)
- Pending
Links
- 238000004364 calculation method Methods 0.000 title claims abstract description 56
- 230000001133 acceleration Effects 0.000 title claims abstract description 33
- 239000011159 matrix material Substances 0.000 claims description 17
- 238000000034 method Methods 0.000 claims description 17
- 230000008569 process Effects 0.000 claims description 12
- 238000004458 analytical method Methods 0.000 claims description 6
- 230000008859 change Effects 0.000 claims description 6
- 239000002245 particle Substances 0.000 claims description 4
- 239000008187 granular material Substances 0.000 claims 3
- 238000003491 array Methods 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 10
- 238000012545 processing Methods 0.000 description 8
- 238000013461 design Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000011161 development Methods 0.000 description 3
- 238000005265 energy consumption Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004886 process control Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/161—Computing infrastructure, e.g. computer clusters, blade chassis or hardware partitioning
Abstract
本发明提供了一种基于RISC‑V的近数据流式计算加速阵列,包括RSIC‑V内核、以及设置在RSIC‑V周围的由多个协处理器组成的加速阵列,每个协处理器包括NOC路由控制节点、RAM块和乘加算粒,其中,RAM块用于实现待计算数据的缓存,乘加算粒用于实现乘累加计算,NOC路由控制节点一方面实现与相邻其他协处理器的互联,另一方面还与数据RAM块和乘加算粒相连。本发明将待计算数据分散存储在多个ram块中,并将乘加计算算子尽量靠近ram放置。相邻的协处理器采用片上网络结构互联,在计算流程中实现生产者与消费者的关系。这样一个计算流程可经过拆分与映射后,转变为数据流在协处理器加速阵列间流动中进行计算的过程。
Description
技术领域
本发明涉及一种基于RISC-V的近数据流式计算加速阵列。
背景技术
冯诺伊曼架构是计算机的经典架构,同时也是目前计算机以及处理 器芯片的主流架构。在冯诺伊曼架构中,计算/处理单元与存储是两个完 全分离的单元:计算/处理单元从存储器件中读取数据,在计算/处理单 元中完成计算/处理,并存回存储单元中。这是一种典型的以计算为中心 的计算结构。为了实现对数据的计算,需要触发大量的数据搬移动作, 虽然现在计算内核的主频和数量在不断提升,但外围存储器的访问速率 却没有同步提升,数据总线的吞吐量很容易成为系统瓶颈,即所谓的 memory-wall问题。
RISC-V最初是从2010年开始,由UCB的Krste等人开始着手研究 的,并于2015年左右最终开发出了一套完整的新指令集,还包括对应的 编译器和工具链。在近两年的时间里,RISC-V的发展得到了学术界和工 业界的大量关注,UCB已经建立了一个名为Rocket-chip Generator的 开源项目,在国内也成立了开放指令生态联盟。RISC-V的优势在于它真正做到了免费开放,并且其指令集丢弃了历史包袱,支持模块化,可 高效实现各种微结构和大量定制、加速功能,被广泛应用在IoT及边缘 计算领域中。然而从本质上将,RISC-V架构仍然属于冯诺依曼架构的范 畴,memory-wall问题依然存在。
为了解决计算的memory-wall问题,业界提出了多种加速方法,常见的 有GPU、FPGA、专用ASIC等。这几种方法各有优缺点:
GPU通用性强、速度快、效率高,特别适合用在图像领域加速与深度学 习的训练方面,但是能耗比偏低。
FPGA具有低能耗、高性能以及可编程的特性,相对CPU或GPU有明显的 能耗优势,但属于细粒度可重构器件,对使用者要求较高。
ASIC可以针对某一功能需求设计,性能高、功耗低,但其通用性不好, 且有开发成本高开发时间长的缺点。
以上加速方法各有优缺点,其核心主要是利用MAC(乘加计算)加速阵 列来实现硬件加速。在架构设计的过程中,以人工神经网络为代表的计算所 需数据量巨大,内存墙问题严重,因此首先解决的主要矛盾是如何实现尽量 拉近数据存储与运算单元之间的“距离”,并尽量减少计算过程中对存储器 的访问,同时还需要保持一定的灵活性和弹性,以满足未来神经网络算法和 不同信号处理计算场景的多变性需求和弹性部署需求。
发明内容
有鉴于此,本发明旨在提出一种基于RISC-V的近数据流式计算加速阵 列,以解决上述背景技术中提到的问题。
为达到上述目的,本发明的技术方案是这样实现的:
一种基于RISC-V的近数据流式计算加速阵列,包括RSIC-V内核、以及 设置在RSIC-V周围的由多个协处理器组成的加速阵列,每个协处理器包括 NOC路由控制节点、RAM块和乘加算粒,其中,RAM块用于实现待计算数据的 缓存,乘加算粒用于实现乘累加计算,NOC路由控制节点一方面实现与相邻 其他协处理器的互联,另一方面还与数据RAM块和乘加算粒相连。
进一步的,所述NOC路由控制节点包括交换转发模块、帧解析模块、帧 生成模块、RAM读写控制模块、算式间循环控制模块、以及算式内循环控制 模块,其中,
交换转发模块用于实现相邻NOC路由控制节点之间的数据交换;
帧解析模块和帧生成模块用于完成路由控制节点之间传输的数据帧的 解析与生成;
Ram读写控制模块用于根据得到的数据角标,按序从RAM中读取数据, 并送入到乘加算粒中,同时接收乘加算粒返回的结果,并将结果或保存到本 节点的RAM中,或通过帧生成和交换转发模块传输到其他协处理器中;
算式间循环控制模块和算式内循环控制模块用于实现规律性乘加运算 角标的产生。
进一步的,算式间循环控制模块用于实现对计算过程中计算结果的角标 控制,包括内循环计数器、外循环计数器、内循环微码存储器、外循环微码 存储器、指令队列FIFO、Y_i指令执行器、Y_j指令执行器,其中,内循环 计数器的输出端连接内循环微码存储器,外循环计数器的输出端连接外循环 微码存储器,内循环微码存储器、外循环微码存储器通过多路选择器连接指 令队列FIFO,队列FIFO连接Y_i指令执行器、Y_j指令执行器,输出结果。
4、根据权利要求3所述的一种基于RISC-V的近数据流式计算加速阵列, 其特征在于:内循环指令存储器和外循环指令存储器均是由RAM实现,ram 中存储了角标计算的微码指令,微码指令分为两部分,i微码指令用于控制 i角标的变化,j微码指令用于控制j角标的变化,两条微码指令合并为一 条表项存储在内外循环微码存储器中,其中,i微码指令数据格式为X_sel、 X_inv、y_sel、y_inv,A,其中
x_sel和y_sel用于选择x和y的取值;
X_inv和y_inv指示x_sel和y_sel索引的数据在计算时,是否需要将符 号位取反;
A为微码中的立即数。
5、根据权利要求3所述的一种基于RISC-V的近数据流式计算加速阵列, 其特征在于:算式间循环控制模块工作过程如下:
预先在内循环或外循环微码指令存储器中预置多条微码表项,这些微码 表项可与多种计算场景对应,当某一场景需要工作时,通过内外循环微码存 储器的地址,将对应的微码表项读出;
读出的两条微码表项需要经过指令队列FIFO送到i指令执行器和j指 令执行器,如果在同一个时钟周期同时从内循环微码存储器和外循环微码存 储器中读出两个表项,则需要指示这两条表项需要执行的先后顺序,这两条 表项按照先后顺序存入指令队列FIFO中;
最后,i指令执行器和j指令执行器完成角标的计算后,输出具体的计 算结果的i角标和j角标值。
进一步的,RSIC-V内核中设有数据搬移指令、微码表配置指令和运算控 制指令,用于实现系统计算过程与控制的编译,采用32位custom指令的编 码格式,xs1、xs2和xd比特位分别用于控制是否需要读取源寄存器rs1、 rs2和写目标寄存器rd,rs1、rs2和rd为寄存器组的索引地址,funct7作 为额外的编码,用于编码更多的指令。
进一步的,所述数据搬移指令用于实现待计算数据矩阵或计算结果矩阵 在协处理器节点间的移动。
进一步的,所述微码表配置指令用来完成对每个协处理器节点中的微码 表项的配置。
进一步的,所述运算控制指令用来实现对计算启动的控制。
相对于现有技术,本发明所述的一种基于RISC-V的近数据流式计算加 速阵列具有以下优势:
应用本发明描述的逻辑电路,待计算数据分散存储在各协处理器阵列 的节点中,在每个协处理器中算式间循环控制和算式内循环控制器的控制 下,通过将RISC-V的自定义指令与协处理器中的微码表项有机结合,数据 在各协处理器之间通过NOC网络流动中同时完成了计算,实现了有规律乘加 运算的近数据流式计算,从而减少了访存次数。因为将有规律的乘加运算均 放置到协处理器中运行,在RISC-V的仅保留规律运算的过程控制部分,可 以极大减少RISC-V内核的负担。
附图说明
构成本发明的一部分的附图用来提供对本发明的进一步理解,本发明的 示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在 附图中:
图1为本发明实施例所述的RISC-V与协处理器阵列系统结构框图;
图2为本发明实施例所述的数据RAM块中的数据传输帧格式示意图;
图3为本发明实施例所述的NOC路由控制节点内部结构原理图;
图4为本发明实施例所述的算式间循环控制模块的内部逻辑结构示意 图;
图5为本发明实施例所述的算式间循环微码表结构示意图;
图6为本发明实施例所述的数据搬移指令结构示意图;
图7为本发明实施例所述的微码表配置指令结构示意图;
图8为本发明实施例所述的运算控制指令结构示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特 征可以相互组合。
在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、 “上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、 “顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示 的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗 示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此 不能理解为对本发明的限制。此外,术语“第一”、“第二”等仅用于描述 目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征 的数量。由此,限定有“第一”、“第二”等的特征可以明示或者隐含地包 括一个或者更多个该特征。在本发明的描述中,除非另有说明,“多个”的 含义是两个或两个以上。
在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语 “安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也 可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可 以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。 对于本领域的普通技术人员而言,可以通过具体情况理解上述术语在本发明 中的具体含义。
下面将参考附图并结合实施例来详细说明本发明。
传统的冯诺依曼架构的处理方式需要产生大量的数据搬移,带来了额外 的功耗和性能的损失。为此,本文所设计的计算阵列采用近数据流式计算结 构实现,将待计算数据分散存储在多个ram块中,并将乘加计算算子尽量靠 近ram放置。相邻的协处理器采用片上网络(NOC)结构互联,在计算流程 中实现生产者与消费者的关系。这样一个计算流程可经过拆分与映射后,转 变为数据流在协处理器加速阵列间流动中进行计算的过程。
如图1所示为RISC-V与协处理器阵列系统结构框图,图中,以RISC-V 内核为中心,实现对计算过程的控制功能,周围分别放置由多个协处理器组 成的加速阵列,实现规律乘加计算的加速功能。为了表述方便,图1中只画 了四个协处理器、而实际上协处理器的数量可以是多个,并不限制。
如图1所示,每个协处理器由NOC路由控制节点、RAM块和乘加算粒组 成,RAM块实现待计算数据的缓存,乘加算粒实现乘累加计算,NOC路由控 制节点一方面实现与相邻四个协处理器的互联(图1中只画了一部分),另 一方面还需要与数据RAM块和乘加算粒相连。系统中多个协处理器组成一个 协处理器阵列结构,每个协处理器按照它所在的行列位置进行统一编号,如 图1中四个协处理器的编号分别为00、01、10、11。
数据RAM块中可存储多组待计算的数据,假设每组待计算数据均可以以 矩阵形式进行索引,则对某一矩阵中某一元素的寻址可采用mtx.ij的形式 来表示,其中mtx表示数据存储在哪个矩阵中,i与j表示数据在矩阵中的 行列角标。为了实现数据在片上网络中的传输,需要制定如图2所示的数据 传输帧格式,图2中,s_rij表示该帧是从哪个NOC路由控制节点发出的;
d_rij表示该帧需要发往哪个NOC路由控制节点;
Type指示帧类型时请求帧还是响应帧;
rd_wr指示帧操作是读操作还是写操作;
mtx.dij指示元素的具体位置;
dir表示矩阵中的数据在ram块中是按行存储还是按列存储;
d_len指示帧中有效数据的长度;
data为帧中需要传输的数据。
当一个数据帧进入到某个NOC路由控制模块时,首先NOC路由控制模块 判断该帧中的d_rij是否与自己所在的行列号相同,若不相同,则根据d_rij 与自己所在的行列号进行大小判断,从4个与周边协处理器相连的数据通路 中的某一个转发走。若相同,则表明该数据帧是与自己相关的,此时需要根 据mtx_dij和dir的指示转换为ram的物理地址空间。为了实现这一点,还 需要在每个路由控制模块中维护一个矩阵与ram地址的映射关系表,表中包 含矩阵第一个元素在矩阵中的偏移地址,以及矩阵的行列维数、存储方式等 信息。
NOC路由控制节点从功能上讲,既需要实现数据帧的解析与生成,又需 要实现对待计算数据角标的产生与控制,其内部结构如图3所示:
交换转发模块用于实现相邻NOC路由控制节点之间的数据交换,因通常 NOC网络采用2D full-mesh结构,因此一个路由控制节点可与周边四个路由 控制节点产生互联。
帧解析和帧生成模块负责完成路由控制节点之间传输的数据帧的解析与 生成。
Ram读写控制模块根据得到的数据角标,按序从RAM中读取数据,并送入 到乘加算粒中。同时接收乘加算粒返回的结果,并将结果或保存到本节点的 RAM中,或通过帧生成和交换转发模块传输到其他协处理器中。
算式间循环控制模块和算式内循环控制模块实现了规律性乘加运算角标 的产生,可以看出这两个模块是路由控制节点的关键模块。下面详细说明这 两个模块的工作原理。
算式间循环控制模块主要实现对计算过程中计算结果的角标控制,其内 部逻辑结构如图4所示:
内循环计数器模块主要实现内层循环次数控制功能,当检测到start信 号的上升沿后,Loop_in循环计数器模块内的计数器开始自动增加,每增加 一次,向内循环指令存储器中发出一次rd_in读请求信号;当计数值与 loop_in的值相等时,向外循环计数器给出flag_in指示。
Loop_mode控制内外循环之间是否为嵌套关系,当为嵌套关系时,外循 环计数器模块每收到一次flag_in信号加1,同时给出restart信号重新启 动内循环计数器工作。当为非嵌套关系时,外循环计数器收到flag_in之后 会连续增加。外循环计数器每增加1输出一个rd_ex脉冲信号,当外循环计 数器的计数值与loop_ex的值相等时,表明循环控制结束。
内循环指令存储器和外循环指令存储器均是由RAM实现,ram中存储了 角标计算的微码指令,其格式如图5所示。
其中,微码指令分为两部分,i微码指令用于控制i角标的变化。j微 码指令用于控制j角标的变化。两条微码指令合并为一条表项存储在内外循 环微码存储器中。
x_sel和y_sel的用于选择x和y的取值;根据矩阵具体参与的具体运 算而定。但能够明确的是x_sel可以选择上一次元素的i角标、j角标、循 环初值、无效四种状态。
X_inv和y_inv指示x_sel和y_sel索引的数据在计算时,是否需要将符 号位取反;
A为微码中的立即数。
在系统工作时,可预先在内循环或外循环微码指令存储器中预置多条微 码表项,这些微码表项可与多种计算场景对应。当某一场景需要工作时,由 cal_rule作为内外循环微码存储器的地址,将对应的微码表项读出。
读出的两条微码表项需要经过指令队列FIFO送到i指令执行器和j指 令执行器,如果在同一个时钟周期同时从内循环微码存储器和外循环微码存 储器中读出两个表项,则此时需要由loop_seq指示这两条表项需要执行的 先后顺序,这两条表项按照先后顺序存入指令队列FIFO中。
最后,i指令执行器和j指令执行器完成角标的计算后,输出具体的计 算结果的i角标和j角标值。到此算式间循环控制模块的工作过程就介绍完 了。
算式内循环控制主要实现一个计算公式内,乘数a和被乘数b的角标ia、 ja、ib、jb产生的方法,算式内循环控制模块的工作原理与算式间循环控制 类似,其具体内部结构与工作原理在此不再赘述。
RISC-V的指令集支持各种不同的指令长度,以最常用的32位指令集为 例,如表1所示为32位指令集的opcode表,其中,定义了四组custom指 令类型,分别为custom-0/1/2/3,每种custom均有自己的opcode。
表1 RISC-V指令opcode空间划分
本文所采用的32位custom指令的编码格式如下图所示,图中,xs1、 xs2和xd比特位分别用于控制是否需要读取源寄存器rs1、rs2和写目标寄 存器rd,rs1、rs2和rd为寄存器组的索引地址,funct7作为额外的编码, 用于编码更多的指令。鉴于此,本文设计了如下三种指令:
1)数据搬移指令设计
数据搬移指令实现待计算数据矩阵或计算结果矩阵在协处理器节点间的 移动,如图6所示,为微码表配置指令的具体格式:
opcode的值为7’b0001011表示采用custom-0的指令空间。
i_type的值为2’b00,表示该指令为数据搬移指令。
i_len表示数据搬移的数据长度,最多一条指令可搬移32个数据。
xs1和xs2的值均为1,表示数据搬移时,协处理阵列需要用到rs1和rs2 所指示的通用寄存器中的数值。xd的值为0,表示数据搬移时,协处理 器阵列无需返回执行结果。
rs1和rs2所指示的通用寄存器的格式定义相同,rs1指示待搬移数据的 来源,rs2指示待搬移数据的目的。其中的mtx.dij指示待数据元素在哪 个矩阵中的哪个起始位置上,rij表示数据元素在哪个协处理器节点上, dir指示从mtx.dij开始,i分量和j分量是否递增。step指示i分量和 j分量递增的步进值具体是多少,core_f指示数据搬移的源或目的是否 通过RISC-V内核的存储器访问接口进行。
2)微码表配置指令
微码表配置指令用来完成对每个协处理器节点中的微码表项的配置,因 每条微码表配置指令只能配置32bit的表项,而一条微码表项的宽度可达 88bit,因此,一条微码表项有可能需要多条微码指令才能完成配置。其指 令格式如图7所示:
opcode的值为7’b0001011表示采用custom-0的指令空间。
i_type的值为2’b01,表示该指令为微码配置指令。
offset的为5bit的值,表示该条指令需要配置一条微码表项的哪一部 分,因微码表的宽度超过32bit位宽,该字段指示本条微码指令是微码 表项中的第几个32bit。最大可支持的微码宽度为1024bit。
xs1和xs2的值均为1,表示微码表配置时,协处理阵列需要用到rs1和 rs2所指示的通用寄存器中的数值。xd的值为0,表示微码表配置时,协 处理器阵列无需返回执行结果。
rs1所指示的通用寄存器中,rij指示需要配置哪个协处理器节点中的表 项。table_sel用来控制将表项配置到算式内微码存储器、内循环微码存 储器还是外循环微码存储器中。addr指示表项的具体地址。
rs2所指示的通用存储器中,table_content指表项的具体内容。
3)运算控制指令
运算控制指令用来实现对计算启动的控制,其指令格式如图8所示:
opcode的值为7’b0001011表示采用custom-0的指令空间。
i_type的值为2’b10,表示该指令为运算控制指令。
loop_sel用来控制算式间循环控制器内外循环微码指令执行的顺序。
loop_mode用来控制算式间循环控制器内外层循环是否嵌套。
xs1和xs2的值均为1,表示运算控制指令执行时,协处理阵列需要用到
rs1和rs2所指示的通用寄存器中的数值。xd的值为0,表示运算控制指 令执行时,协处理器阵列需要返回执行结果。
rs1中,rij指示需要启动哪个协处理器节点中的计算。loop_in用来控 制算式间循环控制内循环的次数。loop_ex用来控制算式间循环控制器中 外循环的次数。cal_rule用来控制内循环微码存储器和外循环微码存储 器的地址。
rs2中,mtx.dij给出了算式间循环控制器中y_i指令执行器和y_j指令 执行器的初始值。
rd中,finish指示算式间循环控制器的循环是否执行完毕。
本发明设计了由多个协处理器加速阵列,协处理器之间通过片上网络 (NOC)互联,实现数据在协处理器之间的传输,并且协处理器之间是生产 者与消费者的关系,可方便的实现系统的流式计算;本发明在每个协处理器 中设计了算式间循环控制与算式内循环控制逻辑结构,且每个逻辑结构内循 环规则的控制均采用微码表形式实现,实现了硬件逻辑与具体业务的解耦合 设计;本发明在RISC-V处理器中根据custom指令规则,设计了数据搬移指 令、微码表配置指令和运算控制指令,有利于借助RISC-V生态中成熟的工 具链实现系统计算过程与控制的编译。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本 发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在 本发明的保护范围之内。
Claims (9)
1.一种基于RISC-V的近数据流式计算加速阵列,其特征在于:包括RSIC-V内核、以及设置在RSIC-V周围的由多个协处理器组成的加速阵列,每个协处理器包括NOC路由控制节点、RAM块和乘加算粒,其中,RAM块用于实现待计算数据的缓存,乘加算粒用于实现乘累加计算,NOC路由控制节点一方面实现与相邻其他协处理器的互联,另一方面还与数据RAM块和乘加算粒相连。
2.根据权利要求1所述的一种基于RISC-V的近数据流式计算加速阵列,其特征在于:所述NOC路由控制节点包括交换转发模块、帧解析模块、帧生成模块、RAM读写控制模块、算式间循环控制模块、以及算式内循环控制模块,其中,
交换转发模块用于实现相邻NOC路由控制节点之间的数据交换;
帧解析模块和帧生成模块用于完成路由控制节点之间传输的数据帧的解析与生成;
Ram读写控制模块用于根据得到的数据角标,按序从RAM中读取数据,并送入到乘加算粒中,同时接收乘加算粒返回的结果,并将结果或保存到本节点的RAM中,或通过帧生成和交换转发模块传输到其他协处理器中;
算式间循环控制模块和算式内循环控制模块用于实现规律性乘加运算角标的产生。
3.根据权利要求2所述的一种基于RISC-V的近数据流式计算加速阵列,其特征在于:算式间循环控制模块用于实现对计算过程中计算结果的角标控制,包括内循环计数器、外循环计数器、内循环微码存储器、外循环微码存储器、指令队列FIFO、Y_i指令执行器、Y_j指令执行器,其中,内循环计数器的输出端连接内循环微码存储器,外循环计数器的输出端连接外循环微码存储器,内循环微码存储器、外循环微码存储器通过多路选择器连接指令队列FIFO,队列FIFO连接Y_i指令执行器、Y_j指令执行器,输出结果。
4.根据权利要求3所述的一种基于RISC-V的近数据流式计算加速阵列,其特征在于:内循环指令存储器和外循环指令存储器均是由RAM实现,ram中存储了角标计算的微码指令,微码指令分为两部分,i微码指令用于控制i角标的变化,j微码指令用于控制j角标的变化,两条微码指令合并为一条表项存储在内外循环微码存储器中,其中,i微码指令数据格式为X_sel、X_inv、y_sel、y_inv,A,其中
x_sel和y_sel用于选择x和y的取值;
X_inv和y_inv指示x_sel和y_sel索引的数据在计算时,是否需要将符号位取反;
A为微码中的立即数。
5.根据权利要求3所述的一种基于RISC-V的近数据流式计算加速阵列,其特征在于:算式间循环控制模块工作过程如下:
预先在内循环或外循环微码指令存储器中预置多条微码表项,这些微码表项可与多种计算场景对应,当某一场景需要工作时,通过内外循环微码存储器的地址,将对应的微码表项读出;
读出的两条微码表项需要经过指令队列FIFO送到i指令执行器和j指令执行器,如果在同一个时钟周期同时从内循环微码存储器和外循环微码存储器中读出两个表项,则需要指示这两条表项需要执行的先后顺序,这两条表项按照先后顺序存入指令队列FIFO中;
最后,i指令执行器和j指令执行器完成角标的计算后,输出具体的计算结果的i角标和j角标值。
6.根据权利要求1所述的一种基于RISC-V的近数据流式计算加速阵列,其特征在于:RSIC-V内核中设有数据搬移指令、微码表配置指令和运算控制指令,用于实现系统计算过程与控制的编译,采用32位custom指令的编码格式,xs1、xs2和xd比特位分别用于控制是否需要读取源寄存器rs1、rs2和写目标寄存器rd,rs1、rs2和rd为寄存器组的索引地址,funct7作为额外的编码,用于编码更多的指令。
7.根据权利要求6所述的一种基于RISC-V的近数据流式计算加速阵列,其特征在于:所述数据搬移指令用于实现待计算数据矩阵或计算结果矩阵在协处理器节点间的移动。
8.根据权利要求6所述的一种基于RISC-V的近数据流式计算加速阵列,其特征在于:所述微码表配置指令用来完成对每个协处理器节点中的微码表项的配置。
9.根据权利要求6所述的一种基于RISC-V的近数据流式计算加速阵列,其特征在于:所述运算控制指令用来实现对计算启动的控制。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911234978.3A CN111159094A (zh) | 2019-12-05 | 2019-12-05 | 一种基于risc-v的近数据流式计算加速阵列 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911234978.3A CN111159094A (zh) | 2019-12-05 | 2019-12-05 | 一种基于risc-v的近数据流式计算加速阵列 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111159094A true CN111159094A (zh) | 2020-05-15 |
Family
ID=70556453
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911234978.3A Pending CN111159094A (zh) | 2019-12-05 | 2019-12-05 | 一种基于risc-v的近数据流式计算加速阵列 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111159094A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111679857A (zh) * | 2020-06-15 | 2020-09-18 | 上海兆芯集成电路有限公司 | 高效能复杂指令译码的微处理器 |
CN112306660A (zh) * | 2020-11-05 | 2021-02-02 | 山东云海国创云计算装备产业创新中心有限公司 | 一种基于risc-v协处理器的数据处理方法及系统 |
CN113157636A (zh) * | 2021-04-01 | 2021-07-23 | 西安邮电大学 | 协处理器、近数据处理装置和方法 |
WO2022021821A1 (zh) * | 2020-07-30 | 2022-02-03 | 西安紫光国芯半导体有限公司 | 存内计算模块和方法、存内计算网络及构建方法 |
CN114297137A (zh) * | 2021-02-05 | 2022-04-08 | 井芯微电子技术(天津)有限公司 | 一种可重构计算平台的规则控制微码表设计方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130145128A1 (en) * | 2011-12-06 | 2013-06-06 | International Business Machines Corporation | Processing core with programmable microcode unit |
CN109857460A (zh) * | 2019-02-20 | 2019-06-07 | 南京华捷艾米软件科技有限公司 | 基于risc-v架构的矩阵卷积计算方法、接口、协处理器及系统 |
CN109918130A (zh) * | 2019-01-24 | 2019-06-21 | 中山大学 | 一种具有快速数据旁路结构的四级流水线risc-v处理器 |
CN110083569A (zh) * | 2019-04-30 | 2019-08-02 | 芯来智融半导体科技(上海)有限公司 | 一种适用于risc-v架构的协处理器接口 |
CN110532030A (zh) * | 2019-08-01 | 2019-12-03 | 安凯(广州)微电子技术有限公司 | 一种cpu中优化寄存器访问的方法 |
-
2019
- 2019-12-05 CN CN201911234978.3A patent/CN111159094A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130145128A1 (en) * | 2011-12-06 | 2013-06-06 | International Business Machines Corporation | Processing core with programmable microcode unit |
CN109918130A (zh) * | 2019-01-24 | 2019-06-21 | 中山大学 | 一种具有快速数据旁路结构的四级流水线risc-v处理器 |
CN109857460A (zh) * | 2019-02-20 | 2019-06-07 | 南京华捷艾米软件科技有限公司 | 基于risc-v架构的矩阵卷积计算方法、接口、协处理器及系统 |
CN110083569A (zh) * | 2019-04-30 | 2019-08-02 | 芯来智融半导体科技(上海)有限公司 | 一种适用于risc-v架构的协处理器接口 |
CN110532030A (zh) * | 2019-08-01 | 2019-12-03 | 安凯(广州)微电子技术有限公司 | 一种cpu中优化寄存器访问的方法 |
Non-Patent Citations (1)
Title |
---|
雷思磊;: "RISC-V架构的开源处理器及SoC研究综述" * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111679857A (zh) * | 2020-06-15 | 2020-09-18 | 上海兆芯集成电路有限公司 | 高效能复杂指令译码的微处理器 |
CN111679857B (zh) * | 2020-06-15 | 2024-01-23 | 上海兆芯集成电路股份有限公司 | 高效能复杂指令译码的微处理器 |
WO2022021821A1 (zh) * | 2020-07-30 | 2022-02-03 | 西安紫光国芯半导体有限公司 | 存内计算模块和方法、存内计算网络及构建方法 |
CN112306660A (zh) * | 2020-11-05 | 2021-02-02 | 山东云海国创云计算装备产业创新中心有限公司 | 一种基于risc-v协处理器的数据处理方法及系统 |
CN114297137A (zh) * | 2021-02-05 | 2022-04-08 | 井芯微电子技术(天津)有限公司 | 一种可重构计算平台的规则控制微码表设计方法 |
CN114297137B (zh) * | 2021-02-05 | 2023-12-26 | 井芯微电子技术(天津)有限公司 | 一种可重构计算平台的规则控制微码表设计方法 |
CN113157636A (zh) * | 2021-04-01 | 2021-07-23 | 西安邮电大学 | 协处理器、近数据处理装置和方法 |
CN113157636B (zh) * | 2021-04-01 | 2023-07-18 | 西安邮电大学 | 协处理器、近数据处理装置和方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111159094A (zh) | 一种基于risc-v的近数据流式计算加速阵列 | |
US5583990A (en) | System for allocating messages between virtual channels to avoid deadlock and to optimize the amount of message traffic on each type of virtual channel | |
JP2020077298A (ja) | プロセッサおよびプロセッサの制御方法 | |
CN103699360B (zh) | 一种向量处理器及其进行向量数据存取、交互的方法 | |
CN101882127B (zh) | 一种多核心处理器 | |
CN112463719A (zh) | 一种基于粗粒度可重构阵列实现的存内计算方法 | |
CN104699631A (zh) | Gpdsp中多层次协同与共享的存储装置和访存方法 | |
CN103345461A (zh) | 基于fpga的带有加速器的多核处理器片上网络系统 | |
CN111630505A (zh) | 深度学习加速器系统及其方法 | |
EP3729261B1 (en) | A centralized-distributed mixed organization of shared memory for neural network processing | |
CN102402415B (zh) | 一种动态可重构阵列内数据缓存的装置及方法 | |
CN102508803A (zh) | 一种矩阵转置存储控制器 | |
Dave et al. | Hardware acceleration of matrix multiplication on a xilinx fpga | |
CN114297097B (zh) | 一种众核可定义分布式共享存储结构 | |
CN110704109B (zh) | 一种椭圆曲线密码协处理器 | |
CN114356836A (zh) | 基于risc-v的三维互联众核处理器架构及其工作方法 | |
US8032654B2 (en) | System and method for data exchange in multiprocessor computer systems | |
JP4962305B2 (ja) | リコンフィギュラブル回路 | |
Gao et al. | Impact of reconfigurable hardware on accelerating mpi_reduce | |
US20240054081A1 (en) | Controlling access to a memory shared by a cluster of multiple processing elements | |
Rettkowski et al. | Application-specific processing using high-level synthesis for networks-on-chip | |
Liu et al. | DARIC: A Data Reuse-Friendly CGRA for Parallel Data Access via Elastic FIFOs | |
US20230205710A1 (en) | Direct data transfer system | |
Ciobanu et al. | On implementability of polymorphic register files | |
CN117435251A (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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20200515 |
|
WD01 | Invention patent application deemed withdrawn after publication |