CN118171707A - 一种基于卷积神经网络微处理器的虚拟原型平台 - Google Patents
一种基于卷积神经网络微处理器的虚拟原型平台 Download PDFInfo
- 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
Links
- 238000013527 convolutional neural network Methods 0.000 title claims abstract description 75
- 239000011159 matrix material Substances 0.000 claims abstract description 105
- 238000000034 method Methods 0.000 claims abstract description 10
- 230000006870 function Effects 0.000 claims description 30
- 238000012545 processing Methods 0.000 claims description 5
- 230000002093 peripheral effect Effects 0.000 claims description 4
- 239000000284 extract Substances 0.000 claims description 3
- 238000013461 design Methods 0.000 abstract description 16
- 238000012938 design process Methods 0.000 abstract description 3
- 238000011161 development Methods 0.000 description 4
- 230000001133 acceleration Effects 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 3
- 238000004088 simulation Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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
- 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/30098—Register arrangements
-
- 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/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/345—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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/0464—Convolutional networks [CNN, ConvNet]
-
- 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)
- 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)在写回阶段,写回模块会根据矩阵乘法指令提供的目标寄存器地址,将矩阵乘法运算结果写回到目标寄存器地址并进行输出。
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) |
-
2024
- 2024-01-17 CN CN202410068475.8A patent/CN118171707A/zh active Pending
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 |