CN111078287B - 一种向量运算协处理方法与装置 - Google Patents
一种向量运算协处理方法与装置 Download PDFInfo
- Publication number
- CN111078287B CN111078287B CN201911088816.3A CN201911088816A CN111078287B CN 111078287 B CN111078287 B CN 111078287B CN 201911088816 A CN201911088816 A CN 201911088816A CN 111078287 B CN111078287 B CN 111078287B
- Authority
- CN
- China
- Prior art keywords
- vector
- instruction
- module
- operation instruction
- processing
- 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.)
- Active
Links
- 238000003672 processing method Methods 0.000 title claims description 18
- 238000012545 processing Methods 0.000 claims abstract description 155
- 230000004044 response Effects 0.000 claims abstract description 28
- 238000000034 method Methods 0.000 claims abstract description 20
- 238000013473 artificial intelligence Methods 0.000 description 6
- 238000004590 computer program Methods 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000013527 convolutional neural network Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
Images
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
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Advance Control (AREA)
Abstract
本发明公开了一种向量运算协处理方法与装置包括:使总线接口通过处理核心的指令接口从处理核心接收运算指令并存储于指令缓存中;响应于指令缓存中存在未读取的运算指令,而使译码模块读取和解析运算指令,并将解析过的运算指令发送至向量处理模块;响应于向量处理模块接收到解析过的运算指令,而使向量处理模块根据运算指令中的向量地址和向量长度执行向量运算操作,并将操作结果回写到输入输出缓存;响应于输入输出缓存中存在未反馈的操作结果,而使总线接口从输入输出缓存通过处理核心的数据接口将操作结果反馈到处理核心。本发明能够使用协处理的方式利用RISC‑V指令集进行向量运算,降低成本和功耗、并延长硬件使用寿命。
Description
技术领域
本发明涉及负载均衡领域,更具体地,特别是指一种向量运算协处理方法与装置。
背景技术
最近几年人工智能在各个领域开始普及开来,随着AI(人工智能)研究的兴起,AI技术特别是训练阶段对计算力的需求越来越高,而目前应用最广泛的AI算法是基于卷积神经网络的算法,该算法的基础最终可归纳为向量运算,包括向量的乘法运算和加法运算。RISC-V架构由美国加州大学伯克利分校的开发人员开发的一套新的指令集架构,并且是完全开源免费的,可以被任何学术机构或者商业组织自由使用。RISC-V指令集架构总结了多年来计算机体系结构的成熟技术,具备了后发优势,结构清晰而简单,模块化的设计可根据需要随意搭配,灵活方便,可移植性强,功耗很低,并且由于其BSD协议的开放性,越来越多的国家和企业投入到RSIC-V领域的研究。但RISC-V指令集占用资源较多,开发成本较高,而卷积神经网络等算法只对个别向量指令具有依赖,因此该向量指令集在进行卷积神经网络计算时使用效率不高。
针对现有技术中RISC-V指令集进行卷积神经网络的向量运算过于臃肿的问题,目前尚无有效的解决方案。
发明内容
有鉴于此,本发明实施例的目的在于提出一种向量运算协处理方法与装置,能够使用协处理的方式利用RISC-V指令集进行向量运算,降低成本和功耗、并延长硬件使用寿命。
基于上述目的,本发明实施例的第一方面提供了一种向量运算协处理方法,包括执行以下步骤:
使总线接口通过处理核心的指令接口从处理核心接收运算指令并存储于指令缓存中;
响应于指令缓存中存在未读取的运算指令,而使译码模块读取和解析运算指令,并将解析过的运算指令发送至向量处理模块;
响应于向量处理模块接收到解析过的运算指令,而使向量处理模块根据运算指令中的向量地址和向量长度执行向量运算操作,并将操作结果回写到输入输出缓存;
响应于输入输出缓存中存在未反馈的操作结果,而使总线接口从输入输出缓存通过处理核心的数据接口将操作结果反馈到处理核心。
在一些实施方式中,运算指令包括向量加载指令,向量处理模块包括向量加载模块;
使向量处理模块根据运算指令中的向量地址和向量长度执行向量运算操作包括:使向量加载模块根据向量加载指令中的向量地址和向量长度通过总线接口和处理核心的数据接口从处理核心中读取待加载的向量数据并回写到输入输出缓存。
在一些实施方式中,运算指令包括向量存储指令,向量处理模块包括向量存储模块;
使向量处理模块根据运算指令中的向量地址和向量长度执行向量运算操作包括:使向量存储模块根据向量存储指令中的向量地址和向量长度将输入输出缓存中的待存储的向量数据通过总线接口和处理核心的数据接口回写到处理核心。
在一些实施方式中,运算指令包括向量乘加指令,向量处理模块包括向量乘加模块;
使向量处理模块根据运算指令中的向量地址和向量长度执行向量运算操作包括:使向量乘加模块根据向量乘加指令中的向量地址和向量长度从输入输出缓存中读取待乘加的向量数据进行乘加,并将乘加后的向量数据回写到输入输出缓存。
在一些实施方式中,方法还包括:使总线接口通过处理核心的控制接口从处理核心接收并执行控制命令。
本发明实施例的第二方面提供了一种向量运算协处理装置,包括:
处理器;和
存储器,存储有处理器可运行的程序代码,程序代码在被运行时执行以下步骤:
使总线接口通过处理核心的指令接口从处理核心接收运算指令并存储于指令缓存中;
响应于指令缓存中存在未读取的运算指令,而使译码模块读取和解析运算指令,并将解析过的运算指令发送至向量处理模块;
响应于向量处理模块接收到解析过的运算指令,而使向量处理模块根据运算指令中的向量地址和向量长度执行向量运算操作,并将操作结果回写到输入输出缓存;
响应于输入输出缓存中存在未反馈的操作结果,而使总线接口从输入输出缓存通过处理核心的数据接口将操作结果反馈到处理核心。
在一些实施方式中,运算指令包括向量加载指令,向量处理模块包括向量加载模块;
使向量处理模块根据运算指令中的向量地址和向量长度执行向量运算操作包括:使向量加载模块根据向量加载指令中的向量地址和向量长度通过总线接口和处理核心的数据接口从处理核心中读取待加载的向量数据并回写到输入输出缓存。
在一些实施方式中,运算指令包括向量存储指令,向量处理模块包括向量存储模块;
使向量处理模块根据运算指令中的向量地址和向量长度执行向量运算操作包括:使向量存储模块根据向量存储指令中的向量地址和向量长度将输入输出缓存中的待存储的向量数据通过总线接口和处理核心的数据接口回写到处理核心。
在一些实施方式中,运算指令包括向量乘加指令,向量处理模块包括向量乘加模块;
使向量处理模块根据运算指令中的向量地址和向量长度执行向量运算操作包括:使向量乘加模块根据向量乘加指令中的向量地址和向量长度从输入输出缓存中读取待乘加的向量数据进行乘加,并将乘加后的向量数据回写到输入输出缓存。
在一些实施方式中,方法还包括:使总线接口通过处理核心的控制接口从处理核心接收并执行控制命令。
本发明具有以下有益技术效果:本发明实施例提供的向量运算协处理方法与装置,通过使总线接口通过处理核心的指令接口从处理核心接收运算指令并存储于指令缓存中;响应于指令缓存中存在未读取的运算指令,而使译码模块读取和解析运算指令,并将解析过的运算指令发送至向量处理模块;响应于向量处理模块接收到解析过的运算指令,而使向量处理模块根据运算指令中的向量地址和向量长度执行向量运算操作,并将操作结果回写到输入输出缓存;响应于输入输出缓存中存在未反馈的操作结果,而使总线接口从输入输出缓存通过处理核心的数据接口将操作结果反馈到处理核心的技术方案,能够使用协处理的方式利用RISC-V指令集进行向量运算,降低成本和功耗、并延长硬件使用寿命。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的向量运算协处理方法的流程示意图;
图2为本发明提供的向量运算协处理方法的硬件原理图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
基于上述目的,本发明实施例的第一个方面,提出了一种能够使用协处理的方式利用RISC-V指令集进行向量运算的方法的一个实施例。图1示出的是本发明提供的向量运算协处理方法的流程示意图。
所述向量运算协处理方法,如图1所示,包括执行以下步骤:
步骤S101:使总线接口通过处理核心的指令接口从处理核心接收运算指令并存储于指令缓存中;
步骤S103:响应于指令缓存中存在未读取的运算指令,而使译码模块读取和解析运算指令,并将解析过的运算指令发送至向量处理模块;
步骤S105:响应于向量处理模块接收到解析过的运算指令,而使向量处理模块根据运算指令中的向量地址和向量长度执行向量运算操作,并将操作结果回写到输入输出缓存;
步骤S107:响应于输入输出缓存中存在未反馈的操作结果,而使总线接口从输入输出缓存通过处理核心的数据接口将操作结果反馈到处理核心。
本发明实施例利用了RISC-V模块化设计、开源、低功耗的特点,公开了一种具有低功耗、资源占用率少、且适合进行一定的AI计算的RISC-V协处理方法,解决了目前智能终端设备中的处理器的高功耗、计算能力有限的技问题。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(ROM)或随机存储记忆体(RAM)等。所述计算机程序的实施例,可以达到与之对应的前述任意方法实施例相同或者相类似的效果。
在一些实施方式中,运算指令包括向量加载指令,向量处理模块包括向量加载模块;
使向量处理模块根据运算指令中的向量地址和向量长度执行向量运算操作包括:使向量加载模块根据向量加载指令中的向量地址和向量长度通过总线接口和处理核心的数据接口从处理核心中读取待加载的向量数据并回写到输入输出缓存。
在一些实施方式中,运算指令包括向量存储指令,向量处理模块包括向量存储模块;
使向量处理模块根据运算指令中的向量地址和向量长度执行向量运算操作包括:使向量存储模块根据向量存储指令中的向量地址和向量长度将输入输出缓存中的待存储的向量数据通过总线接口和处理核心的数据接口回写到处理核心。
在一些实施方式中,运算指令包括向量乘加指令,向量处理模块包括向量乘加模块;
使向量处理模块根据运算指令中的向量地址和向量长度执行向量运算操作包括:使向量乘加模块根据向量乘加指令中的向量地址和向量长度从输入输出缓存中读取待乘加的向量数据进行乘加,并将乘加后的向量数据回写到输入输出缓存。
在一些实施方式中,方法还包括:使总线接口通过处理核心的控制接口从处理核心接收并执行控制命令。
根据本发明实施例公开的方法还可以被实现为由CPU执行的计算机程序,该计算机程序可以存储在计算机可读存储介质中。在该计算机程序被CPU执行时,执行本发明实施例公开的方法中限定的上述功能。上述方法步骤以及系统单元也可以利用控制器以及用于存储使得控制器实现上述步骤或单元功能的计算机程序的计算机可读存储介质实现。
下面根据如图2所示的具体实施例来进一步阐述本发明的具体实施方式。如图2所示,协处理器与RISC-V核心通过RoCC接口连接(RoCC接口RISC-V的协处理器专用接口),RoCC接口中包含指令接口、数据接口和控制接口,协处理器中包含总线接口、指令缓存、输入输出缓存、指令译码模块、向量加载模块、向量存储模块、向量乘加模块。
总线接口是协处理器对外连接的主要模块,该模块通过RoCC接口与RISC-V核心连接,可以与外部的L1数据缓存、L2缓存、DDR等通信,发起对数据读取和写回的操作,包括向量加载、向量存储、向量乘加的结果写回等,总线接口接收到的数据都存入输入输出缓存中。总线接口还将接收由RISC-V发起的指令并存入到指令缓存中去。指令缓存负责缓存RISC-V核心发送的指令,并依次送给译码模块进行译码。译码模块在指令缓存中有新的指令时从中读取新的一条指令,并判断操作类型,并控制指令执行模块执行。向量加载模块和向量存储模块完成对向量数据的加载和存储,向量乘加模块则完成对向量乘的运算。
当RISC-V核心接收到向量操作的指令时,判断该指令是否需要从外部存储器中读取操作数,如果需要则会将数据读取到RISC-V核心的L1数据缓存中,等待协处理器读取。然后,RISC-V核心通过RoCC接口中的指令接口,将该指令发送给协处理器进行处理,此时将暂停读取新的指令并等待协处理器进行返回处理结果数据。当协处理器中的总线接口模块接收到指令后,直接将指令压入到指令缓存中,此时指令译码模块发现指令缓存中出现新的指令,则从指令缓存中读取该指令以进行译码。如果是向量加载指令,则将需要加载的向量的首地址和向量长度发送给向量加载模块,执行向量加载操作;如果是向量存储指令,则将存储首地址和向量长度发送给存储模块,执行向量存储操作;如果是向量乘加指令,则将相乘的两个向量地址和长度发送给向量乘加模块,执行向量乘加操作。向量加载模块接收到指令后,将向总线接口模块发起读取数据的请求,总线接口模块则根据向量首地址和长度,通过RoCC接口中的数据接口,从RISC-V核心中的L1数据缓存中读取向量数据,存入到输入输出缓存中,并通知向量加载模块操作完成。向量存储模块接收到指令后,向总线接口模块发起存储数据的请求,总线接口模块则根据向量首地址和长度,通过RoCC接口中的数据接口,将输入输出缓存中的数据写入到RISC-V核心的L1数据缓存中。向量乘加模块接收到指令后,则从输入输出缓存中读取向量数据,进行乘加操作,并将结果写回到输入输出缓存。
从上述实施例可以看出,本发明实施例提供的向量运算协处理方法,通过使总线接口通过处理核心的指令接口从处理核心接收运算指令并存储于指令缓存中;响应于指令缓存中存在未读取的运算指令,而使译码模块读取和解析运算指令,并将解析过的运算指令发送至向量处理模块;响应于向量处理模块接收到解析过的运算指令,而使向量处理模块根据运算指令中的向量地址和向量长度执行向量运算操作,并将操作结果回写到输入输出缓存;响应于输入输出缓存中存在未反馈的操作结果,而使总线接口从输入输出缓存通过处理核心的数据接口将操作结果反馈到处理核心的技术方案,能够使用协处理的方式利用RISC-V指令集进行向量运算,降低成本和功耗、并延长硬件使用寿命。
需要特别指出的是,上述向量运算协处理方法的各个实施例中的各个步骤均可以相互交叉、替换、增加、删减,因此,这些合理的排列组合变换之于向量运算协处理方法也应当属于本发明的保护范围,并且不应将本发明的保护范围局限在所述实施例之上。
基于上述目的,本发明实施例的第二个方面,提出了一种能够使用协处理的方式利用RISC-V指令集进行向量运算的装置的一个实施例。向量运算协处理装置包括:
处理器;和
存储器,存储有处理器可运行的程序代码,程序代码在被运行时执行以下步骤:
使总线接口通过处理核心的指令接口从处理核心接收运算指令并存储于指令缓存中;
响应于指令缓存中存在未读取的运算指令,而使译码模块读取和解析运算指令,并将解析过的运算指令发送至向量处理模块;
响应于向量处理模块接收到解析过的运算指令,而使向量处理模块根据运算指令中的向量地址和向量长度执行向量运算操作,并将操作结果回写到输入输出缓存;
响应于输入输出缓存中存在未反馈的操作结果,而使总线接口从输入输出缓存通过处理核心的数据接口将操作结果反馈到处理核心。
在一些实施方式中,运算指令包括向量加载指令,向量处理模块包括向量加载模块;
使向量处理模块根据运算指令中的向量地址和向量长度执行向量运算操作包括:使向量加载模块根据向量加载指令中的向量地址和向量长度通过总线接口和处理核心的数据接口从处理核心中读取待加载的向量数据并回写到输入输出缓存。
在一些实施方式中,运算指令包括向量存储指令,向量处理模块包括向量存储模块;
使向量处理模块根据运算指令中的向量地址和向量长度执行向量运算操作包括:使向量存储模块根据向量存储指令中的向量地址和向量长度将输入输出缓存中的待存储的向量数据通过总线接口和处理核心的数据接口回写到处理核心。
在一些实施方式中,运算指令包括向量乘加指令,向量处理模块包括向量乘加模块;
使向量处理模块根据运算指令中的向量地址和向量长度执行向量运算操作包括:使向量乘加模块根据向量乘加指令中的向量地址和向量长度从输入输出缓存中读取待乘加的向量数据进行乘加,并将乘加后的向量数据回写到输入输出缓存。
在一些实施方式中,方法还包括:使总线接口通过处理核心的控制接口从处理核心接收并执行控制命令。
从上述实施例可以看出,本发明实施例提供的向量运算协处理装置,通过使总线接口通过处理核心的指令接口从处理核心接收运算指令并存储于指令缓存中;响应于指令缓存中存在未读取的运算指令,而使译码模块读取和解析运算指令,并将解析过的运算指令发送至向量处理模块;响应于向量处理模块接收到解析过的运算指令,而使向量处理模块根据运算指令中的向量地址和向量长度执行向量运算操作,并将操作结果回写到输入输出缓存;响应于输入输出缓存中存在未反馈的操作结果,而使总线接口从输入输出缓存通过处理核心的数据接口将操作结果反馈到处理核心的技术方案,能够使用协处理的方式利用RISC-V指令集进行向量运算,降低成本和功耗、并延长硬件使用寿命。
需要特别指出的是,上述向量运算协处理装置的实施例采用了所述向量运算协处理方法的实施例来具体说明各模块的工作过程,本领域技术人员能够很容易想到,将这些模块应用到所述向量运算协处理方法的其他实施例中。当然,由于所述向量运算协处理方法实施例中的各个步骤均可以相互交叉、替换、增加、删减,因此,这些合理的排列组合变换之于所述向量运算协处理装置也应当属于本发明的保护范围,并且不应将本发明的保护范围局限在所述实施例之上。
以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上所述的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。
Claims (10)
1.一种向量运算协处理方法,其特征在于,包括执行以下步骤:
使总线接口通过处理核心的指令接口从处理核心接收运算指令并存储于指令缓存中;
响应于所述指令缓存中存在未读取的所述运算指令,而使译码模块读取和解析所述运算指令,并将解析过的所述运算指令发送至向量处理模块;
响应于所述向量处理模块接收到解析过的所述运算指令,而使所述向量处理模块根据所述运算指令中的向量地址和向量长度执行向量运算操作,并将操作结果回写到输入输出缓存;
响应于所述输入输出缓存中存在未反馈的所述操作结果,而使总线接口从所述输入输出缓存通过所述处理核心的数据接口将所述操作结果反馈到所述处理核心。
2.根据权利要求1所述的方法,其特征在于,所述运算指令包括向量加载指令,所述向量处理模块包括向量加载模块;
使所述向量处理模块根据所述运算指令中的向量地址和向量长度执行向量运算操作包括:使所述向量加载模块根据所述向量加载指令中的向量地址和向量长度通过所述总线接口和所述处理核心的所述数据接口从所述处理核心中读取待加载的向量数据并回写到所述输入输出缓存。
3.根据权利要求1所述的方法,其特征在于,所述运算指令包括向量存储指令,所述向量处理模块包括向量存储模块;
使所述向量处理模块根据所述运算指令中的向量地址和向量长度执行向量运算操作包括:使所述向量存储模块根据所述向量存储指令中的向量地址和向量长度将所述输入输出缓存中的待存储的向量数据通过所述总线接口和所述处理核心的所述数据接口回写到所述处理核心。
4.根据权利要求1所述的方法,其特征在于,所述运算指令包括向量乘加指令,所述向量处理模块包括向量乘加模块;
使所述向量处理模块根据所述运算指令中的向量地址和向量长度执行向量运算操作包括:使所述向量乘加模块根据所述向量乘加指令中的向量地址和向量长度从所述输入输出缓存中读取待乘加的向量数据进行乘加,并将乘加后的向量数据回写到所述输入输出缓存。
5.根据权利要求1所述的方法,其特征在于,还包括:使总线接口通过所述处理核心的控制接口从处理核心接收并执行控制命令。
6.一种向量运算协处理装置,其特征在于,包括:
处理器;和
存储器,存储有处理器可运行的程序代码,所述程序代码在被运行时执行以下步骤:
使总线接口通过处理核心的指令接口从处理核心接收运算指令并存储于指令缓存中;
响应于所述指令缓存中存在未读取的所述运算指令,而使译码模块读取和解析所述运算指令,并将解析过的所述运算指令发送至向量处理模块;
响应于所述向量处理模块接收到解析过的所述运算指令,而使所述向量处理模块根据所述运算指令中的向量地址和向量长度执行向量运算操作,并将操作结果回写到输入输出缓存;
响应于所述输入输出缓存中存在未反馈的所述操作结果,而使总线接口从所述输入输出缓存通过所述处理核心的数据接口将所述操作结果反馈到所述处理核心。
7.根据权利要求6所述的装置,其特征在于,所述运算指令包括向量加载指令,所述向量处理模块包括向量加载模块;
使所述向量处理模块根据所述运算指令中的向量地址和向量长度执行向量运算操作包括:使所述向量加载模块根据所述向量加载指令中的向量地址和向量长度通过所述总线接口和所述处理核心的所述数据接口从所述处理核心中读取待加载的向量数据并回写到所述输入输出缓存。
8.根据权利要求6所述的装置,其特征在于,所述运算指令包括向量存储指令,所述向量处理模块包括向量存储模块;
使所述向量处理模块根据所述运算指令中的向量地址和向量长度执行向量运算操作包括:使所述向量存储模块根据所述向量存储指令中的向量地址和向量长度将所述输入输出缓存中的待存储的向量数据通过所述总线接口和所述处理核心的所述数据接口回写到所述处理核心。
9.根据权利要求6所述的装置,其特征在于,所述运算指令包括向量乘加指令,所述向量处理模块包括向量乘加模块;
使所述向量处理模块根据所述运算指令中的向量地址和向量长度执行向量运算操作包括:使所述向量乘加模块根据所述向量乘加指令中的向量地址和向量长度从所述输入输出缓存中读取待乘加的向量数据进行乘加,并将乘加后的向量数据回写到所述输入输出缓存。
10.根据权利要求6所述的装置,其特征在于,还包括:使总线接口通过所述处理核心的控制接口从处理核心接收并执行控制命令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911088816.3A CN111078287B (zh) | 2019-11-08 | 2019-11-08 | 一种向量运算协处理方法与装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911088816.3A CN111078287B (zh) | 2019-11-08 | 2019-11-08 | 一种向量运算协处理方法与装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111078287A CN111078287A (zh) | 2020-04-28 |
CN111078287B true CN111078287B (zh) | 2022-07-19 |
Family
ID=70310741
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911088816.3A Active CN111078287B (zh) | 2019-11-08 | 2019-11-08 | 一种向量运算协处理方法与装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111078287B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112130901A (zh) * | 2020-09-11 | 2020-12-25 | 山东云海国创云计算装备产业创新中心有限公司 | 基于risc-v的协处理器、数据处理方法及存储介质 |
CN112633505B (zh) | 2020-12-24 | 2022-05-27 | 苏州浪潮智能科技有限公司 | 一种基于risc-v的人工智能推理方法和系统 |
CN112860320A (zh) * | 2021-02-09 | 2021-05-28 | 山东英信计算机技术有限公司 | 基于risc-v指令集进行数据处理的方法、系统、设备及介质 |
CN116149603A (zh) * | 2021-11-23 | 2023-05-23 | 广东跃昉科技有限公司 | 运算指令处理方法及系统、主处理器和协处理器 |
WO2023122899A1 (zh) * | 2021-12-27 | 2023-07-06 | 华为技术有限公司 | 一种基于向量计算的处理方法及装置 |
CN114138342B (zh) * | 2022-01-25 | 2022-04-26 | 北京大学 | Rocc协处理器接口模型及其自动生成工具和实现方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5603047A (en) * | 1995-10-06 | 1997-02-11 | Lsi Logic Corporation | Superscalar microprocessor architecture |
CN106940815A (zh) * | 2017-02-13 | 2017-07-11 | 西安交通大学 | 一种可编程卷积神经网络协处理器ip核 |
CN108845828A (zh) * | 2018-05-29 | 2018-11-20 | 深圳市国微电子有限公司 | 一种协处理器、矩阵运算加速方法及系统 |
CN109857460A (zh) * | 2019-02-20 | 2019-06-07 | 南京华捷艾米软件科技有限公司 | 基于risc-v架构的矩阵卷积计算方法、接口、协处理器及系统 |
-
2019
- 2019-11-08 CN CN201911088816.3A patent/CN111078287B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5603047A (en) * | 1995-10-06 | 1997-02-11 | Lsi Logic Corporation | Superscalar microprocessor architecture |
CN106940815A (zh) * | 2017-02-13 | 2017-07-11 | 西安交通大学 | 一种可编程卷积神经网络协处理器ip核 |
CN108845828A (zh) * | 2018-05-29 | 2018-11-20 | 深圳市国微电子有限公司 | 一种协处理器、矩阵运算加速方法及系统 |
CN109857460A (zh) * | 2019-02-20 | 2019-06-07 | 南京华捷艾米软件科技有限公司 | 基于risc-v架构的矩阵卷积计算方法、接口、协处理器及系统 |
Non-Patent Citations (2)
Title |
---|
基于FPGA的RISC CPU设计;龙惠民等;《兵工自动化》;20061228(第12期);全文 * |
精简指令集计算机协处理器设计;李辉楷等;《计算机工程》;20121205(第23期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111078287A (zh) | 2020-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111078287B (zh) | 一种向量运算协处理方法与装置 | |
US9606797B2 (en) | Compressing execution cycles for divergent execution in a single instruction multiple data (SIMD) processor | |
US7739530B2 (en) | Method and program for generating execution code for performing parallel processing | |
WO2022170997A1 (zh) | 基于risc-v指令集进行数据处理的方法、系统、设备及介质 | |
CN112395247A (zh) | 数据的处理方法、存算一体芯片 | |
CN112633505B (zh) | 一种基于risc-v的人工智能推理方法和系统 | |
CN105164637B (zh) | 用于执行循环的方法、系统、装置和处理器以及机器可读介质 | |
CN113312283B (zh) | 一种基于fpga加速的异构图学习系统 | |
US20230297375A1 (en) | Hardware accelerator, data processing method, system-level chip, and medium | |
CN112799726A (zh) | 数据处理装置、方法及相关产品 | |
CN111860773A (zh) | 处理装置和用于信息处理的方法 | |
CN108549935B (zh) | 一种实现神经网络模型的装置及方法 | |
Su et al. | Accelerating inclusion-based pointer analysis on heterogeneous CPU-GPU systems | |
US20190272460A1 (en) | Configurable neural network processor for machine learning workloads | |
US20220172044A1 (en) | Method, electronic device, and computer program product for deploying machine learning model | |
CN112988238A (zh) | 一种基于可扩展指令集cpu内核的扩展运算装置及方法 | |
CN103019657B (zh) | 支持数据预取与重用的可重构系统 | |
CN115600664B (zh) | 算子处理方法、电子设备及存储介质 | |
CN114840886B (zh) | 一种基于数据流架构的可安全读写存储装置、方法及设备 | |
CN110990151A (zh) | 一种基于异构计算平台的业务处理方法 | |
JP2014215624A (ja) | 演算処理装置 | |
CN102467410B (zh) | 一种通用流程调度引擎的控制方法、装置及终端 | |
JP2010140233A (ja) | エミュレーションシステム及びエミュレーション方法 | |
JPH01255036A (ja) | マイクロプロセッサ | |
US20230205530A1 (en) | Graph Instruction Processing Method and Apparatus |
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 |