CN118171707A - 一种基于卷积神经网络微处理器的虚拟原型平台 - Google Patents

一种基于卷积神经网络微处理器的虚拟原型平台 Download PDF

Info

Publication number
CN118171707A
CN118171707A CN202410068475.8A CN202410068475A CN118171707A CN 118171707 A CN118171707 A CN 118171707A CN 202410068475 A CN202410068475 A CN 202410068475A CN 118171707 A CN118171707 A CN 118171707A
Authority
CN
China
Prior art keywords
instruction
module
matrix operation
vector
microprocessor
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
Application number
CN202410068475.8A
Other languages
English (en)
Inventor
郑欣
刘合明
林贤
高怀恩
詹瑞典
蔡述庭
熊晓明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangdong University of Technology
Original Assignee
Guangdong University of Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guangdong University of Technology filed Critical Guangdong University of Technology
Priority to CN202410068475.8A priority Critical patent/CN118171707A/zh
Publication of CN118171707A publication Critical patent/CN118171707A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/345Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Biophysics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (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)
  • Mathematical Physics (AREA)
  • Neurology (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

本发明公开了一种基于卷积神经网络微处理器的虚拟原型平台,该平台在现有的RISC‑V虚拟原型平台的基础上,进行以下设置:一是通过内联汇编的方法,为编译工具添加向量扩展和矩阵运算两条指令扩展,使编译工具编译时识别向量扩展和矩阵运算两条指令,成功编译成对应机器码给CPU硬件模型执行;二是通过改变RISC‑V虚拟原型处理器硬件模型的流水通道,在通道上增加向量加载模块和矩阵运算模块这两个SystemC模块,从而实现对CNN微处理器的虚拟原型平台的搭建。本发明可以解决CNN微处理器设计过程中实现软硬件协同设计等问题。

Description

一种基于卷积神经网络微处理器的虚拟原型平台
技术领域
本发明涉及卷积神经网络(CNN)及SoC设计领域的电子系统级设计技术领域,特别涉及采用SystemC和C++对硬件进行硬件建模的一种基于卷积神经网络微处理器的虚拟原型平台。
背景技术
在摩尔定律的推动下,集成电路的规模以每年扩大一倍的速度增长,但随着集成电路的规模增加,集成电路的设计复杂性也不同以往,而这种复杂性带来的是集成电路的研发周期延长,在市场竞争下,如何延续摩尔定律,以更快的时间来迭代芯片产品已成为关键问题。在SoC领域,传统的先硬件后软件的串行开发模式所带来较长的研发周期,已经难以满足现代SoC快速上市需求。以虚拟原型为基础的电子系统级设计方法,允许在SoC设计早期对设计进行模型建立,支持软件硬件并行仿真,让软硬件并行设计成为可能,缩短了SoC的设计周期。
随着人工智能的发展,物联网(IoT)终端与人工智能的结合带来了更广阔的应用空间,人工智能结合物联网终端,在计算机视觉,语音识别等方面对抗击疫情起到了巨大作用,但依托云端来处理IoT的海量推理运算数据量是不可行的,所以需要IoT设备进行边缘计算,故此对物联网终端的推理运算能力也提出了更高的要求。但传统的硬件加速核外设集成方式带来数百毫瓦的功耗和较大的面积对于IoT设备而言还是难以承受,所以需要从指令集入手,进行更为精细的软硬件划分,进行算子或者其他操作的指令扩展,并配合优化软件设计,以最小的资源消耗来达到不错的推理加速效果。
发明内容
本发明的目的是提供一种基于卷积神经网络微处理器的虚拟原型平台,以解决CNN微处理器设计过程中实现软硬件协同设计等问题。
为了实现上述任务,本发明以下技术方案:
一种基于卷积神经网络微处理器的虚拟原型平台,该平台在现有的RISC-V虚拟原型平台的基础上,进行以下设置:
一是通过内联汇编的方法,为编译工具添加向量扩展和矩阵运算两条指令扩展,使编译工具编译时识别向量扩展和矩阵运算两条指令,成功编译成对应机器码给CPU硬件模型执行;
二是通过改变RISC-V虚拟原型处理器硬件模型的流水通道,在通道上增加向量加载模块和矩阵运算模块这两个SystemC模块,从而实现对CNN微处理器的虚拟原型平台的搭建,其中:
向量加载模块用于接收CNN微处理器硬件模型中译码模块发来的向量加载指令,根据当前指令包含的操作数rs1,rs2进行操作;rs1代表要存入向量寄存器的地址,rs2为要存入的数据,向量加载模块结合这两个操作数,从而完成将特定数据存入特地地址的功能;
矩阵运算模块用于接收CNN微处理器硬件模型中译码模块发来的向量加载指令,根据当前指令包含的操作数rs1,rs2进行操作;矩阵运算模块首先会根据rs1和rs2,来判断当前是执行矩阵运算功能还是配置矩阵运算单元功能;当为配置矩阵运算单元功能时,矩阵运算模块会根据两个操作数来配置矩阵运算单元的大小;当执行矩阵运算功能时,矩阵运算模块会根据rs1中指向的掩膜权重地址提取向量寄存器中在向量加载指令期间提前存入的数据,将其与rs2中存入的输入特征图送入矩阵运算单元中进行运算,从而实现卷积神经网络中掩膜权重和输入特征图的矩阵运算。
进一步地,所述矩阵运算模块会根据两个操作数来配置矩阵运算单元的大小,包括:
根据要运算的矩阵单元为rs1行rs2列,即配置矩阵运算单元需要rs1*rs2个乘法器。
进一步地,所述虚拟原型平台包括CNN微处理器硬件模型和软件编译工具链,其中:
软件编译工具链用于将软件代码编译成CPU硬件模型可以识别的机器指令,让软件代码可以在CPU硬件模型里运行;
CNN微处理器硬件模型用于模拟真实的CNN微处理器的功能,读取编译好的机器指令,执行软件代码;CNN微处理器硬件的各模块与真实CNN微处理器对应,包括取指模块,译码模块,执行模块,写回模块;但有所区别的是,在译码模块和执行模块增加了额外的扩展指令集通道,所扩展的指令为矩阵乘法指令和向量加载指令。
进一步地,CNN微处理器硬件模型还设置有直接访问内存模块,内存模块,总线模块作为CNN微处理器外设配合使用。
进一步地,所述向量扩展和矩阵运算两条指令扩展的工作流程包括:
(1)在译码阶段,当CNN微处理器硬件模型识别到扩展指令时,会进入扩展指令专属的扩展指令集通道;
(2)在执行阶段初始,CNN微处理器硬件模型会根据扩展指令,将对应的操作数rs1和rs2从虚拟原型的内存模块内取出,送到向量加载模块和矩阵运算模块进行运算处理;
(3)运行向量加载指令时,首先会判断是否为向量加载指令,如果不是向量加载指令,会置零输入使能,向量加载模块不会进行工作;当是向量加载指令时,会对输入控制器输入使能,输入控制器接受到使能后,会将指令中的两个操作数rs1,rs2取出,根据rs1提供的向量寄存器地址,将rs2存入向量寄存器的对应地址中;这个操作结束后,向量加载模块会对CNN微处理器硬件模型返回一个结束信号,表示当前向量加载指令执行完毕,请求CNN微处理器硬件模型执行下一条指令;
(4)运行矩阵运算指令时,首先矩阵运算模块会判断当前是否执行矩阵运算功能,当执行配置矩阵运算单元功能时,首先会对矩阵运算单元读取控制器使能置零,然后会将从指令中取来的rs1作为行配置,rs2作为列配置,定义了矩阵为rs1行rs2列,在执行完成后会返回一个结束信号;当执行矩阵运算功能时,首先会对读取控制器使能,读取控制器会根据rs1将向量寄存器中的数据取出来,给矩阵乘加单元结合rs2进行运算,并将结果存入结果寄存器中,并将结果输出返回;
(5)在写回阶段,写回模块会根据矩阵乘法指令提供的目标寄存器地址,将矩阵乘法运算结果写回到目标寄存器地址并进行输出。
与现有技术相比,本发明具有以下技术特点:
1.定义了一种新的CNN微处理器架构,硬件资源利用率更高,弥补了基于CNN处理器的虚拟原型平台的空缺,克服因为这一空缺而导致无法在CNN微处理器设计过程中实现软硬件协同设计引发的设计周期长的挑战,而且克服了传统设计方法在CNN微处理器设计前期无法权衡功耗、面积、性能和灵活性的挑战。
2.采用更高抽象级硬件描述语言SystemC设计CNN微处理器架构,仿真速度更快。
3.使用指令集扩展的方式来定制CNN微处理器架构,资源消耗更小。
4.采用了软硬件划分方式设计新的扩展指令集,平台整合度更高。
附图说明
图1为基于卷积神经网络微处理器的虚拟原型平台示意图;
图2为CNN微处理器模型架构;
图3为向量加载指令的硬件原理图;
图4为矩阵乘法指令的硬件原理图。
具体实施方式
Tiny32-vp是Vladimir Herdt等人基于SystemC设计的RISC-V虚拟原型平台,具有开源、可扩展、可配置等特点,可以根据不同应用领域对其进行定制。本发明一种基于CNN微处理器的虚拟原型平台设计便是以其作为基本框架,通过软硬件协同设计方法学,进行软硬件划分,以指令集扩展的方法改变微处理器架构,通过改变处理器流水线,集成扩展指令,从而实现基于CNN微处理器的虚拟原型平台的搭建。
本发明对现有的RISC-V虚拟原型平台进行指令集的扩展,其中扩展了向量加载和矩阵运算指令,从而达到对CNN微处理器的虚拟原型平台的搭建;其在虚拟原型上的改进有两点。
一是通过内联汇编的方法,为编译工具添加了向量扩展和矩阵运算两条指令扩展,使编译工具编译时可以识别向量扩展和矩阵运算两条指令,成功编译成对应机器码给CPU硬件模型执行。
二是通过改变RISC-V虚拟原型处理器硬件模型的流水通道,在通道上增加向量加载模块和矩阵运算模块这两个SystemC模块,从而实现对CNN微处理器的虚拟原型平台的搭建,其中:
向量加载模块,该模块的功能是接收CNN微处理器硬件模型中译码模块发来的向量加载指令,根据当前指令包含的操作数rs1,rs2进行操作,rs1在向量加载指令中代表要存入向量寄存器的地址,rs2在向量加载指令中为要存入的数据。向量加载模块结合这两个操作数,从而完成将特定数据存入特地地址的功能。
矩阵运算模块,该模块的功能是接收CNN微处理器硬件模型中译码模块发来的向量加载指令,根据当前指令包含的操作数rs1,rs2进行操作。模块首先会根据rs1和rs2,来判断当前是执行矩阵运算功能还是配置矩阵运算单元功能,当为配置矩阵运算单元功能时,矩阵运算模块会根据两个操作数来配置矩阵运算单元的大小(根据要运算的矩阵单元为rs1行rs2列,即配置矩阵运算单元需要rs1*rs2个乘法器);当执行矩阵运算功能时,矩阵运算模块会根据rs1提取向量寄存器中在向量加载指令期间提前存入的数据(掩膜权重),将其与输入的rs2(输入特征图)送入矩阵运算单元中进行运算,从而实现卷积神经网络中掩膜权重和输入特征图的矩阵运算。
通过使用向量加载指令将卷积神经网络中卷积层需要的权重数据,提前存入向量加载模块中的向量寄存器中,可以使得后面在进行卷积矩阵运算时,矩阵运算指令需要输入输入特征图的数据和向量寄存器的读地址。从而实现了卷积神经网络加速。另外矩阵运算模块中会根据操作数rs1,rs2判断当前需要运算的矩阵单元大小,从而配置矩阵运算单元的大小,说明矩阵运算模块是一个可配置模块。
附图1是本方案定义的一种新的CNN微处理器的架构,下面将在解释架构的同时阐述本方案设计的基于CNN微处理器的虚拟原型平台是如何运行的。
1.虚拟原型平台组成:
虚拟原型平台组成主要包括CNN微处理器硬件模型和软件编译工具链,附图1虚线上方为软件编译工具链,其主要作用是将软件代码编译成CPU可以识别的机器指令,让软件代码可以在CPU硬件模型里运行。附图1虚线下的是CNN微处理器硬件模型,用于模拟真实的CNN微处理器功能,读取软件编译好的机器指令,执行软件代码,其各模块与真实CNN微处理器对应,可以用于进行软硬件的联合仿真和开发,另外有直接访问内存(DMA),内存(Memory),总线(TLM2.0)等模块作为CNN微处理器外设配合使用。
2.CNN微处理器模型架构:
CNN微处理器模型架构如附图2所示,其与真实CPU的架构相同,分为取指,译码,执行,写回这几个模块,但有所区别的是,由于本发明通过扩展指令集的方式对CNN应用进行加速,所以在译码模块和执行模块增加了额外的扩展指令集通道,所扩展的指令为矩阵乘法指令和向量加载指令。
3.扩展指令的工作原理和硬件结构:
rs1和rs2是一条指令内包含的两个操作数,其一般是作为输入,这里说明一条RISC-V指令最多只有两个输入数。
向量加载模块的硬件原理如附图3所示,其作用是将软件里的一个向量加载到向量加载模块里一个名叫向量寄存器(LOAD_REG)的特定寄存器里面;矩阵运算模块的硬件原理如附图4所示,其作用有两个,一个是配置使用矩阵乘法器阵列的大小,第二个是对加载好的向量,结合输入的输入特征图数据进行乘加运算,从而实现卷积矩阵运算。硬件实现流程具体如下:
3.1在译码阶段,当CNN微处理器硬件模型识别到扩展指令时,会进入扩展指令专属的扩展指令集通道。
3.2在执行阶段初始,CNN微处理器硬件模型会根据扩展指令,将对应的操作数rs1和rs2从虚拟原型的内存(Memory)内取出,送到扩展指令专属的向量加载模块和矩阵运算进行运算处理。
3.3运行向量加载指令时,首先会判断是否为向量加载指令,如果不是向量加载指令,会置零输入使能,向量加载模块不会进行工作。当是向量加载指令时,会对输入控制器输入使能,输入控制器接受到使能后,会将指令中的两个操作数rs1,rs2取出,根据rs1提供的向量寄存器地址,将rs2存入向量寄存器的对应地址中。这个操作结束后,向量加载模块会对CNN微处理器硬件模型返回一个结束信号,表示当前向量加载指令执行完毕,请求CNN微处理器硬件模型执行下一条指令。
3.4运行矩阵运算指令时,首先矩阵运算模块会判断当前是否执行矩阵运算功能,当执行配置矩阵运算单元功能时,首先会对矩阵运算单元读取控制器使能置零,然后会将从指令中取来的rs1作为行配置(X_REG),rs2作为列配置(Y_REG),定义了矩阵为rs1行rs2列,在执行完成后会返回一个结束信号;当执行矩阵运算功能时,首先会对读取控制器使能,读取控制器会根据rs1(权重读地址)将向量寄存器(LOAD_REG)中的数据取出来,给矩阵乘加单元结合rs2(输入特征图数据)进行运算,并将结果存入结果寄存器(RESULT_REG)中,并将结果输出返回。
3.5在写回阶段,写回模块会根据矩阵乘法指令提供的rd(目标寄存器地址),将矩阵乘法运算结果写回到rd,再返回给软件。
4.基于CNN微处理器的虚拟原型平台的运行方式如下:
CNN微处理器通过修改原Tiny32-vp内核流水架构形成。应用程序(C/C++program)中通过内联汇编的方式调用扩展指令集,与C/C++标准库(C/C++Standard library)通过RISC-V交叉编译器(Cross-compile and link)生成RISC-V可执行ELF文件(ExecutableRISC-VELF file),并将其作为虚拟原型平台的输入。RISC-V可执行ELF文件将被加载到主内存中,并在虚拟原型平台上运行。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

Claims (5)

1.一种基于卷积神经网络微处理器的虚拟原型平台,其特征在于,该平台在现有的RISC-V虚拟原型平台的基础上,进行以下设置:
一是通过内联汇编的方法,为编译工具添加向量扩展和矩阵运算两条指令扩展,使编译工具编译时识别向量扩展和矩阵运算两条指令,成功编译成对应机器码给CPU硬件模型执行;
二是通过改变RISC-V虚拟原型处理器硬件模型的流水通道,在通道上增加向量加载模块和矩阵运算模块这两个SystemC模块,从而实现对CNN微处理器的虚拟原型平台的搭建,其中:
向量加载模块用于接收CNN微处理器硬件模型中译码模块发来的向量加载指令,根据当前指令包含的操作数rs1,rs2进行操作;rs1代表要存入向量寄存器的地址,rs2为要存入的数据,向量加载模块结合这两个操作数,从而完成将特定数据存入特地地址的功能;
矩阵运算模块用于接收CNN微处理器硬件模型中译码模块发来的向量加载指令,根据当前指令包含的操作数rs1,rs2进行操作;矩阵运算模块首先会根据rs1和rs2,来判断当前是执行矩阵运算功能还是配置矩阵运算单元功能;当为配置矩阵运算单元功能时,矩阵运算模块会根据两个操作数来配置矩阵运算单元的大小;当执行矩阵运算功能时,矩阵运算模块会根据rs1中指向的掩膜权重地址提取向量寄存器中在向量加载指令期间提前存入的数据,将其与rs2中存入的输入特征图送入矩阵运算单元中进行运算,从而实现卷积神经网络中掩膜权重和输入特征图的矩阵运算。
2.根据权利要求1所述的基于卷积神经网络微处理器的虚拟原型平台,其特征在于,所述矩阵运算模块会根据两个操作数来配置矩阵运算单元的大小,包括:
根据要运算的矩阵单元为rs1行rs2列,即配置矩阵运算单元需要rs1*rs2个乘法器。
3.根据权利要求1所述的基于卷积神经网络微处理器的虚拟原型平台,其特征在于,所述虚拟原型平台包括CNN微处理器硬件模型和软件编译工具链,其中:
软件编译工具链用于将软件代码编译成CPU硬件模型可以识别的机器指令,让软件代码可以在CPU硬件模型里运行;
CNN微处理器硬件模型用于模拟真实的CNN微处理器的功能,读取编译好的机器指令,执行软件代码;CNN微处理器硬件的各模块与真实CNN微处理器对应,包括取指模块,译码模块,执行模块,写回模块;但有所区别的是,在译码模块和执行模块增加了额外的扩展指令集通道,所扩展的指令为矩阵乘法指令和向量加载指令。
4.根据权利要求3所述的基于卷积神经网络微处理器的虚拟原型平台,其特征在于,CNN微处理器硬件模型还设置有直接访问内存模块,内存模块,总线模块作为CNN微处理器外设配合使用。
5.根据权利要求1所述的基于卷积神经网络微处理器的虚拟原型平台,其特征在于,所述向量扩展和矩阵运算两条指令扩展的工作流程包括:
(1)在译码阶段,当CNN微处理器硬件模型识别到扩展指令时,会进入扩展指令专属的扩展指令集通道;
(2)在执行阶段初始,CNN微处理器硬件模型会根据扩展指令,将对应的操作数rs1和rs2从虚拟原型的内存模块内取出,送到向量加载模块和矩阵运算模块进行运算处理;
(3)运行向量加载指令时,首先会判断是否为向量加载指令,如果不是向量加载指令,会置零输入使能,向量加载模块不会进行工作;当是向量加载指令时,会对输入控制器输入使能,输入控制器接受到使能后,会将指令中的两个操作数rs1,rs2取出,根据rs1提供的向量寄存器地址,将rs2存入向量寄存器的对应地址中;这个操作结束后,向量加载模块会对CNN微处理器硬件模型返回一个结束信号,表示当前向量加载指令执行完毕,请求CNN微处理器硬件模型执行下一条指令;
(4)运行矩阵运算指令时,首先矩阵运算模块会判断当前是否执行矩阵运算功能,当执行配置矩阵运算单元功能时,首先会对矩阵运算单元读取控制器使能置零,然后会将从指令中取来的rs1作为行配置,rs2作为列配置,定义了矩阵为rs1行rs2列,在执行完成后会返回一个结束信号;当执行矩阵运算功能时,首先会对读取控制器使能,读取控制器会根据rs1将向量寄存器中的数据取出来,给矩阵乘加单元结合rs2进行运算,并将结果存入结果寄存器中,并将结果输出返回;
(5)在写回阶段,写回模块会根据矩阵乘法指令提供的目标寄存器地址,将矩阵乘法运算结果写回到目标寄存器地址并进行输出。
CN202410068475.8A 2024-01-17 2024-01-17 一种基于卷积神经网络微处理器的虚拟原型平台 Pending CN118171707A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410068475.8A CN118171707A (zh) 2024-01-17 2024-01-17 一种基于卷积神经网络微处理器的虚拟原型平台

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410068475.8A CN118171707A (zh) 2024-01-17 2024-01-17 一种基于卷积神经网络微处理器的虚拟原型平台

Publications (1)

Publication Number Publication Date
CN118171707A true CN118171707A (zh) 2024-06-11

Family

ID=91351713

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410068475.8A Pending CN118171707A (zh) 2024-01-17 2024-01-17 一种基于卷积神经网络微处理器的虚拟原型平台

Country Status (1)

Country Link
CN (1) CN118171707A (zh)

Similar Documents

Publication Publication Date Title
Rokicki et al. What you simulate is what you synthesize: Designing a processor core from c++ specifications
US8725486B2 (en) Apparatus and method for simulating a reconfigurable processor
Prakash et al. Cfu playground: Full-stack open-source framework for tiny machine learning (tinyml) acceleration on fpgas
US11734480B2 (en) Performance modeling and analysis of microprocessors using dependency graphs
Liang et al. FlexCL: A model of performance and power for OpenCL workloads on FPGAs
Park et al. Roofline-model-based design space exploration for dataflow techniques of CNN accelerators
US11934825B2 (en) Event-driven design simulation
JP5146451B2 (ja) ハードウエアエミュレーションシステムのプロセッサを同期化する方法及び装置
US11275582B2 (en) Event-driven design simulation
CN103440373A (zh) 一种多dsp系统的互联配置模拟方法
US6775810B2 (en) Boosting simulation performance by dynamically customizing segmented object codes based on stimulus coverage
Yang et al. An approach to build cycle accurate full system VLIW simulation platform
Biancolin et al. Accessible, FPGA resource-optimized simulation of multiclock systems in firesim
CN118171707A (zh) 一种基于卷积神经网络微处理器的虚拟原型平台
JP2663893B2 (ja) アーキテクチャ・シミュレータ
Spencer et al. Expanding hardware accelerator system design space exploration with gem5-SALAMv2
Bachrach et al. Cyclist: Accelerating hardware development
Shahsavani et al. Efficient compilation and mapping of fixed function combinational logic onto digital signal processors targeting neural network inference and utilizing high-level synthesis
Cong et al. Designing Application-Specific Heterogeneous Architectures from Performance Models
US20240354479A1 (en) Peformance analysis using architecture model of processor architecture design
RU2819403C1 (ru) Векторное вычислительное ядро
Bartolo et al. Domain-Specific Accelerator Design & Profiling for Deep Learning Applications
US20030140054A1 (en) Processor composing apparatus, system LSI composing apparatus, processor composing method, system LSI composing method, and program therefor
Shaji et al. Analysis of Optimization on Sparse Matrix Vector Multiplication Model Application in Digital Signal Processing
JPH0916642A (ja) データ処理装置のアーキテクチャ評価方法

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