CN115577762A - 一种基于risc-v的ai计算异构系统 - Google Patents
一种基于risc-v的ai计算异构系统 Download PDFInfo
- Publication number
- CN115577762A CN115577762A CN202211301024.1A CN202211301024A CN115577762A CN 115577762 A CN115577762 A CN 115577762A CN 202211301024 A CN202211301024 A CN 202211301024A CN 115577762 A CN115577762 A CN 115577762A
- Authority
- CN
- China
- Prior art keywords
- instruction
- risc
- module
- sram
- nice
- 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
Images
Classifications
-
- 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
-
- 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
-
- 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/08—Learning methods
-
- 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)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Neurology (AREA)
- Advance Control (AREA)
Abstract
本发明属于集成电路领域,具体涉及一种基于RISC‑V的AI计算异构系统。该系统主要包括:具有多种外设接口,用于发送自定义扩展指令的基于RISC‑V指令集的处理器;用于执行自定义扩展指令的NICE(Nuclei Instruction Co‑unit Extension,核指令协同单元扩展)协处理器模块;用于暂存参数的寄存器表模块;用于外部SRAM控制的SRAM控制器模块;包含仲裁模块和PE(Processing Elements,处理单元)计算单元,用于实现神经网络硬件加速计算的PE阵列计算模块。RISC‑V处理器通过NICE总线传输自定义扩展指令到NICE核协处理器,根据配置参数控制、调度PE阵列完成高效计算,大幅度减少了对存储空间的访问,降低功耗。同时该系统能够改变配置参数重构PE阵列,提升了通用性和灵活性。
Description
技术领域
本发明属于集成电路领域,具体涉及一种基于RISC-V的AI计算异构系统。
背景技术
AI(Artificial Intelligence,人工智能)的提出是为通过机器模拟人脑思考并解决问题。其在近三十年发展迅速,在诸如语音识别、智能机器人等诸多领域受到了极大的关注,并得到了广泛的应用。AI计算作为AI领域的研究核心,通过从自然界获取的灵感,模仿生物智能,解决复杂问题。
神经网络作为AI计算的重要研究内容,正逐渐向着更加复杂的拓扑连接和更加多元的网络结构发展,不同类型网络在不同应用的性能差异也在不断增大。因此AI计算需求更强的计算能力和更灵活的计算架构,适应更多的应用场景、执行更复杂的计算。而当今时代基于冯诺依曼的通用计算,由于存储墙、功耗墙瓶颈等问题,难以满足高性能AI计算的需求。而且在AI计算中,往往需要频繁地对大量参数进行访问,数据访存的功耗开销远超计算。因此,降低大规模数据访存的功耗也是AI计算一大难题。
为了解决上述问题,人工智能领域迫切需要一个可重构的AI计算系统。一个可重构的AI计算系统,可以兼容不同类型网络,并根据不同网络的特点实现对性能和功耗的权衡。在计算过程中,系统可以通过重构硬件连接来实现更高的硬件资源利用率、提高计算效率。
RISC-V是基于RISC精简指令集的开源指令集架构。由于传统的架构如x86以及ARM架构复杂度相对较高,而且开发、使用成本高昂,因此,研发人员提出了一种精简的开源指令集架构RISC-V。其相比于x86和ARM更为简洁,指令集更加规整简单。基于RISC-V的CPU(Central Processing Unit,中央处理器)内核面积少,功耗较低。其支持模块化设计,具有扩展性,同时也支持扩展指令,用户能够根据需求,定制所需要的指令集。此外,由于RISC-V的开源特性,任何有能力有想法的人都可以参与其开发,设计、使用成本较低。结合RISC-V的异构系统十分灵活,具有可配置性,开发人员几乎可以通过多对指令集的组合或者拓展,设计应用于任何领域的微型处理器的构建。
如今人工智能高速发展,AI计算的算力需求指数型增长,不断挑战算力极限。AI计算硬件平台需要更高效的控制架构。而基于RISC-V的CPU虽然没有特定的控制AI计算的指令,但它具有极强的可拓展性,因此人们可以基于RISC-V的可拓展性,自主设计控制AI计算的特定指令,实现对AI计算的高效控制,提高AI计算效率。
发明内容
传统的AI计算系统架构需要大量的并口,数据传输复杂,而且其无法灵活调度计算单元完成高效计算,导致功耗较高。然而,基于RISC-V的CPU具有拓展性强、功耗低的特点,其能够与其他处理器结合实现异构系统,灵活配置AI计算网络,重构硬件连接。因此,本发明基于RISC-V,根据NICE(Nuclei Instruction Co-unit Extension,核指令协同单元扩展)总线协议设计NICE核协处理器,与PE(Processing Elements,处理单元)阵列结合,提出一种异构的AI计算系统架构,用于解决在AI计算中遇到的网络结构多样、频繁访问存储空间、功耗高等问题。
本发明提出了一种基于RISC-V的AI计算异构系统架构,所述架构包括以下模块:
基于RISC-V指令集的处理器,定义为RISC-V处理器,用于发送自定义扩展指令,并具有多种外设接口;
NICE核协处理器,用于执行自定义扩展指令,包含指令译码模块、指令执行模块、顶层控制模块;
寄存器表,用于暂存RISC-V处理器通过自定义扩展指令传输的各类配置参数;
第一SRAM控制器,用于控制第一外部SRAM;
第二SRAM控制器,用于控制第二外部SRAM;
PE阵列计算模块,用于实现神经网络硬件加速计算,包含仲裁模块和PE计算单元;
其中,所述RISC-V处理器通过NICE总线接口与NICE核协处理器连接,RISC-V处理器接收上位机基于AI计算内容所生成的配置参数,该配置参数是以自定义扩展指令形式下载到RISC-V处理器,RISC-V处理器通过NICE总线接口将参数传递到NICE核协处理器;
所述NICE核协处理器分别与第一SRAM控制器、寄存器表、PE阵列计算模块连接,NICE核协处理器通过指令译码模块处理接收到的自定义扩展指令,将其转化为相应功能的使能信号,所述指令执行模块用于接收使能信号,并执行指令功能,所述顶层控制模块用于控制PE阵列计算模块的参数调度;所述自定义扩展指令包括写SRAM、读SRAM、初始化网络配置、初始化计算配置以及启动网络计算;
所述寄存器表分别与PE阵列计算模块和RISC-V处理器连接,寄存器表接收并缓存PE阵列的配置参数和输入数据,所述配置参数包括PE阵列网络配置参数、权重、仲裁模块配置参数;寄存器表还接收PE阵列计算模块得到的最终计算结果,并通过RISC-V处理器回传到上位机;
所述第一SRAM控制器分别连接第一外部SRAM和NICE核协处理器,第一SRAM控制器控制第一外部SRAM进行配置参数的读写;
所述第二SRAM控制器分别连接第二外部SRAM和PE阵列计算模块,第二SRAM控制器控制第二外部SRAM进行计算参数的读写。
进一步,所述的一种基于RISC-V的AI计算异构系统的数据处理流程包括:
步骤1、确定AI计算内容,在上位机使用脚本文件根据数据集生成对应的配置参数,配置参数包含网络配置参数、权重、仲裁模块配置参数、输入激活参数;
步骤2、在软件层自定义扩展指令,并将其下载到RISC-V,实现代码功能重构;上位机通过串口将配置参数传输到RISC-V处理器,RISC-V处理器以NICE总线为桥梁,将参数传递给NICE核协处理器;
步骤3、NICE核协处理器接收RISC-V处理器发送的写SRAM指令,通过选择器完成指令译码,在指令执行模块执行写SRAM指令,使用第一SRAM控制器,将配置参数写入第一外部SRAM;在AI计算中,需要重复执行写SRAM指令,直到将全部参数写入外接的第一外部SRAM;
步骤4、NICE核协处理器接收来自RISC-V处理器的初始化网络配置指令,配置PE计算单元模块;具体为在NICE核协处理器中顶层控制模块的控制下,通过第一SRAM控制器读取第一外部SRAM中的网络配置参数,并传输到寄存器表,根据网络配置参数使能参与计算的PE单元;
步骤5、NICE核协处理器接收来自RISC-V处理器的初始化计算配置指令,从第一外部SRAM中读取权重、仲裁模块参数,传输到寄存器表,仲裁模块参数配置PE阵列的通信网络架构;
步骤6、NICE核协处理器接收来自RISC-V处理器的启动网络计算指令,从第一外部SRAM中读取输入激活参数,传输到寄存器表,NICE核协处理器中的顶层控制模块向PE阵列计算模块发出取参信号,PE阵列计算模块从寄存器表中取出输入激活参数进行网络计算,并将计算参数写入第二外部SRAM,最后通过寄存器表保存最终结果并传回上位机。
本发明的优点主要包括:
1.本发明具有灵活可重构的AI计算系统架构:在软件层编程并下载实现RISC-V的代码功能重构,灵活配置AI计算架构的寄存器参数,对PE阵列的通信网络进行重构,从而形成更高效的AI计算通信方案。最终减少对存储空间的访问,降低功耗,提高了计算效率。
2.本发明设计了专用于控制AI计算的NICE核协处理器:根据RISC-V提供的NICE总线协议,设计了适配的NICE核协处理器,用于扩展RISC-V指令和控制AI计算,形成了高效的AI计算控制架构。
3.本发明允许系统级拓展:该系统架构允许多系统的拓展,通过配置RISC-V程序实现多系统的互联、协同和扩展。
4.本发明采用软硬件协同方式:通过上位机发送不同指令,执行不同的功能,具有极高的灵活度。同时其可返回部分计算结果至上位机,便于功能测试。
附图说明
图1为传统的AI计算系统框架图;
图2为本发明提出的一种基于RISC-V的AI计算异构系统的系统框架图;
图3为本发明提出的一种基于RISC-V的AI计算异构系统的NICE核模块具体结构图;
图4为本发明提出的一种基于RISC-V的AI计算异构系统的伪指令使用格式和32位R类型NICE核扩展指令格式图;
图5为本发明提出的一种基于RISC-V的AI计算异构系统的NICE核扩展指令接口时序图;
图6为本发明提出的一种基于RISC-V的AI计算异构系统的指令数据流传输示意图;
图7为本发明提出的一种基于RISC-V的AI计算异构系统的RISC-V可拓展外设图;
图8为本发明提出的一种基于RISC-V的AI计算异构系统的系统级拓展示意图。
具体实施方式
下面结合附图和实施例对本发明进行详细的描述。
图1为传统的AI计算系统框架图。针对AI计算所设计的传统架构,对于PE阵列的每个PE计算单元,在计算时都需要控制其与外部系统如FPGA(Field Programmable GateArray,现场可编程逻辑门阵列)进行交互,PE计算单元通过FPGA获得计算输入数据,计算完成的结果同样需要传回FPGA。这样的数据传输模式使用了大量的并口,资源开销很大。同时其无法独立完成,始终需要通过FPGA不断发送控制信号推动整个计算过程的运行。由于进行AI计算的PE阵列结构不具有可重构性,无法灵活配置,因此它对存储空间无法实现灵活的访问,浪费资源。同时该系统架构缺少能实现多系统间交互协同的模块,因此难以实现系统级的扩展。
而本发明的主要实施方式是使用RISC-V与自主开发的NICE核协处理器结合,使用异构系统控制AI计算,配置参数重构神经网络结构。满足了AI计算对实现多元的网络计算、降低功耗、减少硬件资源浪费的需求。
实施例
本例在Xilinx公司的Zynq XC7Z035 FPGA上实现,以采用脉冲神经网络实现心电信号识别为例,对本发明的实施方法进行详细的描述。
本发明提出的一种基于RISC-V的AI计算异构系统框架图如图2所示。该系统主要由通过NICE总线连接的RISC-V和NICE核、寄存器表、控制两个外部SRAM的SRAM控制器、以及进行AI计算的PE阵列组成。上位机1向RISC-V处理器2下载程序。NICE核3是配合RISC-V处理器2进行指令扩展的协处理器,能够实现对PE阵列4的高效控制。PE阵列由仲裁模块5和多个计算单元PE组成,具有灵活可重构的特点。SRAM控制器6、7控制外部SRAM。SRAM_1外设8负责配置参数存储,SRAM_2外设9负责计算参数存储。寄存器表10负责缓存配置参数和输入数据。
该实施例的起始输入为通过心电传感器采集好的心电信号数据集。由于采集的数据集格式与PE阵列的计算方式不匹配,因此需要将数据在PC通过软件进行预处理,把数据集格式处理为双通道输入数据。心电信号数据集的整个计算流程为:第1通道输入640个数据,在PE阵列中完成640*512*64结构的二层脉冲神经网络计算,得到64个输出数据。第2通道输入16个数据,与第一个脉冲神经网络的输出合并得到80个输入数据,之后在PE阵列中完成80*96*4结构的二层脉冲神经网络进行计算,最终得到4分类心电信号识别输出结果,完成心电信号数据集的推理。
由于对不同的数据集进行AI计算需要不同的计算架构,但大部分的神经网络硬件加速器具有固定的结构,无法灵活重构计算单元。因此,本发明采用了具有NICE总线的RISC-V处理器控制计算单元,自主设计了专用于控制AI计算的NICE核协处理器3。NICE总线连接RISC-V和NICE核协处理器,使系统能够根据扩展指令完成对AI计算单元的灵活重构。设计的NICE核模块总体结构如图3所示,其中指令译码模块11和指令执行模块12完成对本发明在软件层设计的扩展指令的解析和执行,顶层控制模块13负责调度AI计算的相关参数调度。指令译码模块11由MUX选择器构成,接收RISC-V处理器2传输的7位instr包数据,其根据instr包内容选择本发明在NICE核3预设的指定功能,向指令执行模块12传输指定功能的使能信号。NICE协处理器的接口信号主要包含请求req通道和反馈rsp通道。指令执行模块12在请求握手信号req_valid和req_ready以及反馈握手信号rsp_valid和rsp_ready的控制下传输数据,其在指定功能的使能信号的控制下,处理从RISC-V处理器2传输的数据。RISC-V处理器2首先发出req_valid信号,代表发送指令请求,NICE核3的指令执行模块12返回req_ready表示接收指令请求,完成握手后,NICE核3接收源操作数rs1和rs2数据。然后NICE核3的指令执行模块12发出rsp_valid信号,代表发送反馈请求,RISC-V处理器2返回rsp_ready表示接收反馈请求。最后NICE核3在rsp通道信号握手成功时将rdat数据返回RISC-V处理器2,从而完成一次扩展指令控制的从RISC-V处理器2到NICE核3的完整数据传输。
本发明需要使用NICE核协处理器控制AI计算,而AI计算的数据量大,因此本设计采用512KB*16大小的外部SRAM进行参数存储,可根据需求进一步扩大。同时由于本发明可重构可配置的特性,需要具有对顶层控制模块以及PE计算阵列灵活控制的能力。因此将参数存储的SRAM分为网络配置参数部分,计算配置参数部分以及心电信号输入数据部分。根据此实施方案,本发明设计写SRAM,读SRAM,初始化网络配置,初始化计算配置以及启动网络计算共5条扩展指令实现对系统的高效控制。NICE核扩展指令需要在上位机通过软件根据NICE总线协议使用伪指令.insn构建5条扩展指令,并在NICE核设计5条指令的指令译码和指令执行模块。伪指令.insn按照R类型指令编码的使用格式如图4(1)所示,其中.insn用于告知编译器指令形式,而r表示指令类型为R型,其他部分对应于图4(2)的32位NICE指令编码格式各部分。NICE核协处理器指令译码模块是根据RISC-V的R类型NICE指令格式进行指令译码,本发明设计的NICE核扩展指令如图4(2)的32位R类型NICE指令格式所示。32位编码由额外的编码空间、源寄存器1、源寄存器2、目的寄存器、控制三个寄存器的使能比特位以及操作码这六部分组成。额外的编码空间func7共有7位,对应RISC-V发送的instr包的数据,代表预设的功能序号,最多可扩展128条指令。源寄存器1和源寄存器2是RISC-V发送的数据,目的寄存器是返回RISC-V的数据。其中x0代表使用的是x0整数寄存器,是为常数0预留的,表示硬件零。“%0”、“%1”等代表指令的操作数,或称为占位符,在内嵌汇编中,变量按照出现顺序与“%0”、“%1”等占位符对应关联。{xd,xs1,xs2}比特位为三个寄存器的使能信号,用于控制是否需要读寄存器rs1、rs2和写目标寄存器rd。如果xs1位的数值为1,则表示该指令需要读取rs1寄存器中的操作数1,rs2同理,如果xd位的数值为1,则表示该指令需要写回结果到xd指定的目标寄存器。操作码opcode段对应使用的是哪个custom预定义指令组空间,共有4组custom预定义指令组,每个预定义指令组都有其自己的操作码,最多可扩展512条指令。如图4所示,本发明扩展指令使用的都是custom-3指令组,操作码0x7b为该指令组指定编码,可通过更改操作码使用其他custom指令组。写SRAM指令使用了源寄存器1(rs1)和源寄存器2(rs2),因此func3的{xd,xs1,xs2}的值为{011}。其发送instr包的数据为“1”,选择预设的功能1,执行写SRAM,从源寄存器1(rs1)接收地址,从源寄存器2(rs2)接收数据。通过NICE核控制SRAM控制器向SRAM指定地址写入数据。读SRAM指令使用源寄存器1(rs1)和目的寄存器(rd),因此func3的{xd,xs1,xs2}的值为{110}。发送instr包的数据为“2”,选择预设的功能2,执行读SRAM,从源寄存器1接收地址,通过NICE核控制SRAM控制器读出SRAM指定地址的数据,从目的寄存器返回读取的结果。而初始化网络配置,初始化计算配置,启动网络计算三条指令功能只使用了源寄存器1(rs1),因此func3的{xd,xs1,xs2}的值为{010}。发送instr包的数据为“3、4、5”,执行预设的功能3、4、5。上述本发明使用的NICE核扩展指令接口时序图如图5所示,其中读SRAM指令仅供调试使用。
为实现对参数的灵活配置,本发明通过串口从上位机1将参数传输给RISC-V处理器2。RISC-V处理器2发送写SRAM指令,经由NICE核3指令译码解析,指令执行接收数据,在SRAM_1控制器6的控制下,将所有输入参数写入SRAM_1外设8中。然后RISC-V处理器2发送初始化网络配置指令,控制SRAM_1控制器6从SRAM_1外设8中读取网络配置参数,传输到顶层控制13模块,进而配置到寄存器表。接着RISC-V处理器2发送初始化计算配置指令,从SRAM_1外设8中读取权重、仲裁模块配置参数,传输到顶层控制13模块并缓存到寄存器表10。最后RISC-V处理器2发送启动网络计算指令,从SRAM_1外设8中读取输入激活参数,传输到顶层控制13模块并配置到寄存器表10。RISC-V处理器2对进行AI计算的PE阵列4发出取参信号,从寄存器表10读取参数。PE阵列按照心电识别网络参数启动,开始心电信号识别计算,最终得到推理结果。心电信号识别中,两个二层脉冲神经网络根据配置使用4个PE单元。在PE单元内,系统按顺序读取输入激活和权重进行神经元的计算。每一个神经元计算完毕,顶层控制模块13会控制SRAM_2控制器7将当前神经元的计算结果参数写入SRAM_2外设9。在PE单元间,一层神经网络使用1个PE单元计算完毕后,顶层控制模块13会控制下一层神经网络读取上一层神经网络的计算结果作为输入,使用第二个PE单元进行计算。第1个脉冲神经网络计算完毕后,顶层控制模块13会将输出结果与第二通道数据合并作为输入,传输到第2个脉冲神经网络,继续使用两个PE单元完成两层脉冲神经网络计算。在此期间PE单元根据仲裁参数使用仲裁模块5实现数据交互。得到的心电识别计算结果在顶层控制模块13的控制下存入寄存器表10,并通过RISC-V处理器2传输到上位机1。上述关于本发明的数据流向如图6的指令数据流传输示意图所示。其中未提到的读SRAM操作对本发明仅供调试使用。
现阶段芯片的应用场景更加复杂,而大部分芯片在流片之后无法拓展新功能,难以满足需求。而基于RISC-V的处理器可解决这个问题,其作为独立完整的CPU,集成了多种外设功能,其可拓展的外设如图7所示。RISC-V处理器的硬件部分包含I2C、GPIO、PWM、UART等外设,使用外部设备总线模块14对外设进行控制,能灵活选择不同的外设配置,便于实现不同类型的AI计算或添加额外的功能。因此,本发明可在上位机1调用指定函数编写相应的程序,使能指定外设实现多样的功能。除此之外,在加载上位机程序时,可根据需求由上位机1发送选择信号,使用BOOT选择通过FLASH或者RAM进行代码存储。默认使用的RAM模式优点是执行速度快,缺点是掉电程序消失,需要每次上电重复下载。而使用FLASH模式优的点是可以保存编写的程序,可以脱机运行,可满足应用需求。
除此之外,AI计算规模不断增大,未来的系统对可兼容性和大规模数据处理也愈发重视,而使用RISC-V处理器能够完成系统级拓展。因此,本发明提出如图8所示的结合RISC-V的系统级拓展架构。由于本发明采用RISC-V与AI计算结合,因此多个系统可通过RISC-V处理器与片外总线15进行交互,通过片外总线15实现互联、协同和扩展,从而实现系统级拓展。每个系统都需要独立的SRAM执行功能,更多的系统联合能够提升算力,配置大规模的神经网络,进行大规模数据处理,满足不同用户的使用需求。同时多系统能够提升拓展能力,增强整体的灵活性。
Claims (2)
1.一种基于RISC-V的AI计算异构系统,其特征在于,包括:
基于RISC-V指令集的处理器,定义为RISC-V处理器,用于发送自定义扩展指令,并具有多种外设接口;
NICE核协处理器,用于执行自定义扩展指令,包含指令译码模块、指令执行模块、顶层控制模块;
寄存器表,用于暂存RISC-V处理器通过自定义扩展指令传输的各类配置参数;
第一SRAM控制器,用于控制第一外部SRAM;
第二SRAM控制器,用于控制第二外部SRAM;
PE阵列计算模块,用于实现神经网络硬件加速计算,包含仲裁模块和PE计算单元;
其中,所述RISC-V处理器通过NICE总线接口与NICE核协处理器连接,RISC-V处理器接收上位机基于AI计算内容所生成的配置参数,该配置参数是以自定义扩展指令形式下载到RISC-V处理器,RISC-V处理器通过NICE总线接口将参数传递到NICE核协处理器;
所述NICE核协处理器分别与第一SRAM控制器、寄存器表、PE阵列计算模块连接,NICE核协处理器通过指令译码模块处理接收到的自定义扩展指令,将其转化为相应功能的使能信号,所述指令执行模块用于接收使能信号,并执行指令功能,所述顶层控制模块用于控制PE阵列计算模块的参数调度;所述自定义扩展指令包括写SRAM、读SRAM、初始化网络配置、初始化计算配置以及启动网络计算;
所述寄存器表分别与PE阵列计算模块和RISC-V处理器连接,寄存器表接收并缓存PE阵列的配置参数和输入数据,所述配置参数包括PE阵列网络配置参数、权重、仲裁模块配置参数;寄存器表还接收PE阵列计算模块得到的最终计算结果,并通过RISC-V处理器回传到上位机;
所述第一SRAM控制器分别连接第一外部SRAM和NICE核协处理器,第一SRAM控制器控制第一外部SRAM进行配置参数的读写;
所述第二SRAM控制器分别连接第二外部SRAM和PE阵列计算模块,第二SRAM控制器控制第二外部SRAM进行计算参数的读写。
2.根据权利要求1所述的一种基于RISC-V的AI计算异构系统,其特征在于,所述AI计算异构系统的数据处理流程为:
步骤1、确定AI计算内容,在上位机使用脚本文件根据数据集生成对应的配置参数,配置参数包含网络配置参数、权重、仲裁模块配置参数、输入激活参数;
步骤2、在软件层自定义扩展指令,并将其下载到RISC-V,实现代码功能重构;上位机通过串口将配置参数传输到RISC-V处理器,RISC-V处理器以NICE总线为桥梁,将参数传递给NICE核协处理器;
步骤3、NICE核协处理器接收RISC-V处理器发送的写SRAM指令,通过选择器完成指令译码,在指令执行模块执行写SRAM指令,使用第一SRAM控制器,将配置参数写入第一外部SRAM;在AI计算中,需要重复执行写SRAM指令,直到将全部参数写入外接的第一外部SRAM;
步骤4、NICE核协处理器接收来自RISC-V处理器的初始化网络配置指令,配置PE计算单元模块;具体为在NICE核协处理器中顶层控制模块的控制下,通过第一SRAM控制器读取第一外部SRAM中的网络配置参数,并传输到寄存器表,根据网络配置参数使能参与计算的PE单元;
步骤5、NICE核协处理器接收来自RISC-V处理器的初始化计算配置指令,从第一外部SRAM中读取权重、仲裁模块参数,传输到寄存器表,仲裁模块参数配置PE阵列的通信网络架构;
步骤6、NICE核协处理器接收来自RISC-V处理器的启动网络计算指令,从第一外部SRAM中读取输入激活参数,传输到寄存器表,NICE核协处理器中的顶层控制模块向PE阵列计算模块发出取参信号,PE阵列计算模块从寄存器表中取出输入激活参数进行网络计算,并将计算参数写入第二外部SRAM,最后通过寄存器表保存最终结果并传回上位机。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211301024.1A CN115577762A (zh) | 2022-10-24 | 2022-10-24 | 一种基于risc-v的ai计算异构系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211301024.1A CN115577762A (zh) | 2022-10-24 | 2022-10-24 | 一种基于risc-v的ai计算异构系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115577762A true CN115577762A (zh) | 2023-01-06 |
Family
ID=84586594
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211301024.1A Pending CN115577762A (zh) | 2022-10-24 | 2022-10-24 | 一种基于risc-v的ai计算异构系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115577762A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116739061A (zh) * | 2023-08-08 | 2023-09-12 | 北京京瀚禹电子工程技术有限公司 | 一种基于risc-v指令操作的神经形态计算芯片 |
-
2022
- 2022-10-24 CN CN202211301024.1A patent/CN115577762A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116739061A (zh) * | 2023-08-08 | 2023-09-12 | 北京京瀚禹电子工程技术有限公司 | 一种基于risc-v指令操作的神经形态计算芯片 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7015249B2 (ja) | 再構成可能アルゴリズムによるパイプラインコアおよびアルゴリズムマッチングパイプラインコンパイラを有するプロセッサ | |
Jouppi et al. | Motivation for and evaluation of the first tensor processing unit | |
US5815715A (en) | Method for designing a product having hardware and software components and product therefor | |
CN110689138A (zh) | 运算方法、装置及相关产品 | |
CN101344899B (zh) | 一种片上系统的仿真测试方法及仿真测试系统 | |
JP2007272895A (ja) | コンピュータプロセッサアレイの操作方法および装置 | |
WO2006017482A2 (en) | Programmable processor architecture hierarchical compilation | |
Gokhale et al. | FPGA computing in a data parallel C | |
Abnous et al. | The pleiades architecture | |
EP2523120A1 (en) | Microcomputer architecture for low power efficient baseband processing | |
CN112580792B (zh) | 一种神经网络多核张量处理器 | |
CN114035916A (zh) | 计算图的编译、调度方法及相关产品 | |
CN115577762A (zh) | 一种基于risc-v的ai计算异构系统 | |
JP2022541899A (ja) | 畳み込みニューラルネットワークを実装するための構成可能なプロセッサ | |
CN105760137B (zh) | 一种可配置的微控制器内核的使用方法 | |
US6012138A (en) | Dynamically variable length CPU pipeline for efficiently executing two instruction sets | |
CN112988238A (zh) | 一种基于可扩展指令集cpu内核的扩展运算装置及方法 | |
US7200703B2 (en) | Configurable components for embedded system design | |
WO2006136943A2 (en) | High-level language processor apparatus and method | |
Gaudiot et al. | The TX 16: A highly programmable multi-microprocessor architecture. | |
CN115048334A (zh) | 可编程阵列处理器控制装置 | |
Gao et al. | LiteAIR5: a system-level framework for the design and modeling of AI-extended RISC-V cores | |
US6389528B2 (en) | Processor with a control instruction for sending control signals without interpretation for extension of instruction set | |
Lesser | Dynamic control structures and their use in emulation. | |
Friedrich et al. | Active cells: A computing model for rapid construction of on-chip multi-core systems |
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 |