CN112988238A - 一种基于可扩展指令集cpu内核的扩展运算装置及方法 - Google Patents
一种基于可扩展指令集cpu内核的扩展运算装置及方法 Download PDFInfo
- Publication number
- CN112988238A CN112988238A CN202110487516.3A CN202110487516A CN112988238A CN 112988238 A CN112988238 A CN 112988238A CN 202110487516 A CN202110487516 A CN 202110487516A CN 112988238 A CN112988238 A CN 112988238A
- Authority
- CN
- China
- Prior art keywords
- unit
- instruction
- extended
- chip
- cpu
- 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
- 238000000034 method Methods 0.000 title claims abstract description 22
- 238000012545 processing Methods 0.000 claims abstract description 62
- 239000013598 vector Substances 0.000 claims abstract description 44
- 239000011159 matrix material Substances 0.000 claims abstract description 39
- 230000008878 coupling Effects 0.000 claims abstract description 15
- 238000010168 coupling process Methods 0.000 claims abstract description 15
- 238000005859 coupling reaction Methods 0.000 claims abstract description 15
- 230000006870 function Effects 0.000 claims description 14
- 238000013528 artificial neural network Methods 0.000 abstract description 18
- 238000011161 development Methods 0.000 abstract description 10
- 238000013461 design Methods 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000012356 Product development Methods 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 230000035899 viability Effects 0.000 description 1
- 239000002023 wood Substances 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/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- 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/3001—Arithmetic instructions
-
- 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/30029—Logical and Boolean instructions, e.g. XOR, NOT
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
一种基于可扩展指令集CPU内核的扩展运算装置及方法,所述装置包括运算处理芯片和集成在运算处理芯片里的CPU内核、片上存储器、片外存储器及与三者连接的系统总线,还包括与系统总线和CPU内核连接的扩展指令执行单元;所述扩展指令执行单元包括下列子单元:与CPU内核连接的指令译码及控制单元,与所述系统总线连接的直接内存快速访存单元;与直接内存快速访存单元和缓存管理单元连接的紧耦合缓存单元;与向量矩阵运算单元和紧耦合缓存单元连接的缓存管理单元;向量矩阵运算单元。本发明通过扩展指令执行单元的各个子单元支持向量或矩阵运算,避免了芯片为支持神经网络运算还要单独设计神经网络内核和多核并行架构,降低了成本和开发的复杂度。
Description
技术领域
本发明属于集成电路技术领域,涉及运算方法,具体涉及一种基于可扩展指令集CPU内核的扩展运算装置及方法。
背景技术
现阶段集成电路技术发展迅速,特别是CPU内核,从Intel的X86架构,发展到嵌入式的ARM架构,再到现在比较热门的RISC-V开源指令集架构,其性能不断得到提升,已经广泛应用在电脑、手机、家电、工业等各类领域。人工智能技术随着集成电路技术的进步也在不断发展,其中最重要的是信号处理计算技术,需要硬件能够支撑神经网络计算来解决图像识别、语音识别、大数据处理、机器人智能控制等各类应用。
传统的CPU内核更多基于标量计算,而神经网络计算中大量存在复杂的向量甚至矩阵类型的运算,传统的CPU内核不太适合神经网络计算,因此在当前技术发展中,出现了不少专用的神经网络处理器内核,来解决人工智能所需的神经网络计算问题。该种方式一般是需要在集成电路芯片中放入多个神经网络处理内核(NPU),CPU内核解决基本功能和控制问题,神经网络处理器内核解决神经网络计算问题,然后再利用多核并行架构,解决多核间的通信和协同,实现功能和应用。
该方法虽然能兼顾CPU内核应用编程的灵活性,和神经网络计算对芯片算力的要求,但由于采用多核,多个CPU内核与单核相比在面积、成本与CPU内核数量成倍数增长,同时多核系统还存在任务调度、核间通信等问题,不同的核处理不同的问题,还需要根据任务强度调整工作频率及电压以保证整机系统的功耗;完成任务后还需将结果告知主控的CPU内核,存在控制信号及数据的异步处理。在多核系统设计时,要提前预判和设想系统的应用场景,根据需求进行存储、总线、时钟和CPU内核数量的设计,开发周期长、市场生命周期依赖于对未来市场的判断,而且要预留冗余设计以保证应对未来市场的需求;多核设计架构较为复杂,数据间通信如果没处理好,容易引起系统锁死、程序跑飞等问题,后期设计难度大;同时,采用多核比较占用芯片面积,会造成成本的增加;最后,多核导致用户开发程序代码时,需要为不同的核设计不同的应用程序,开发调试较为复杂,增加了产品应用难度。
发明内容
为克服现有方案技术存在的缺陷,本发明公开了一种基于可扩展指令集CPU内核的扩展运算装置及方法。
本发明所述基于可扩展指令集CPU内核的扩展运算装置,包括运算处理芯片和集成在运算处理芯片里的CPU内核,还包括片上存储器、片外存储器及与三者连接的系统总线,还包括与系统总线和CPU内核连接的扩展指令执行单元;
所述扩展指令执行单元集成在运算处理芯片内,包括下列子单元:
与CPU内核连接的指令译码及控制单元,实现以下功能:完成自定义扩展指令的译码,并控制直接内存快速访存单元、缓存管理单元及向量矩阵运算单元完成扩展指令;
与所述系统总线连接的直接内存快速访存单元;
与直接内存快速访存单元和缓存管理单元连接的紧耦合缓存单元;
与向量矩阵运算单元和紧耦合缓存单元连接的缓存管理单元;
向量矩阵运算单元,实现以下功能:接收指令译码及控制单元发送的译码后的扩展指令,实现向量或矩阵的算术和逻辑运算。
优选的:所述紧耦合缓存单元有多个。
优选的:所述扩展指令执行单元的实现方式为:利用Verilog代码硬件编程设计,并在所述运算处理芯片中的部分空间内实现的单独硬件结构。
优选的:所述自定义扩展指令存储在片上存储器。
优选的,还包括与系统总线连接的片外存储器,所述自定义扩展指令存储在片外存储器。
本发明还公开了一种基于可扩展指令集CPU内核的扩展运算方法,包括如下步骤:
S1. CPU内核判断接收指令是否为扩展指令;是则进入步骤S2,否则自行处理;
S2. 启动扩展指令执行单元,CPU内核将扩展指令发送到扩展指令执行单元中的指令译码及控制单元,指令译码及控制单元将该扩展指令译码并控制相应扩展子单元进行运算;
S3. 直接内存快速访存单元根据译码的结果,从片上存储或片外存储直接读取相应的数据放入紧耦合缓存单元对应的位置或直接将紧耦合缓存单元的结果写出到片上存储器或片外存储器;
S4. 向量矩阵运算单元调用紧耦合缓存单元的数据并根据译码结果进行相应的运算;运算完成的结果存入紧耦合缓存单元,完成扩展指令运算。
本发明相对传统的多核CPU内核架构设计,具备如下优越性:
一. 扩展指令执行单元采用片外-片上-紧耦合缓存单元的多级缓存设计,相对传统CPU内核都需要从总线存储或总线缓存中读写数据的架构,可以有效解决向量或矩阵运算对数据吞吐量大时传统方式处理效率不高的问题,极大提高运算单元的处理效率;
二. 通过扩展指令集的设计,即可以沿用现有CPU内核进行常规标量处理,也可根据应用需要实现对扩展指令集各个子单元的功能更改,大大提升开发效率,降低为兼容信号处理计算而修改原本程序的风险;当无需进行向量或矩阵等运算时,数据处理方式和传统CPU内核单一处理方式相同,增强了应用的兼容性;
三. 通过扩展指令的各个子单元支持向量或矩阵运算,避免了芯片为支持神经网络运算还要单独设计神经网络内核和多核并行架构,降低了成本和开发的复杂度。
附图说明
图1是本发明所述扩展运算装置的一个具体实施方式示意图;
图2是本发明所述扩展运算方法的一个具体实施方式示意图。
具体实施方式
下面对本发明的具体实施方式作进一步的详细说明。
本发明所述基于可扩展指令集CPU内核的扩展运算装置,如图1所示,包括运算处理芯片和集成在运算处理芯片里的CPU内核,还包括片上存储器、片外存储器及与三者连接的系统总线,还包括与系统总线和CPU内核连接的扩展指令执行单元;
所述扩展指令执行单元集成在运算处理芯片内,包括下列子单元:
与CPU内核连接的指令译码及控制单元,实现以下功能:完成自定义扩展指令的译码,并控制直接内存快速访存单元、缓存管理单元及向量矩阵运算单元完成扩展指令;
与所述系统总线连接的直接内存快速访存单元;
与直接内存快速访存单元和缓存管理单元连接的紧耦合缓存单元;
与向量矩阵运算单元和紧耦合缓存单元连接的缓存管理单元;
向量矩阵运算单元,实现以下功能:接收指令译码及控制单元发送的译码后的扩展指令,实现扩展指令的运算。
本发明基于现有可扩展指令集的CPU内核,增加自定义扩展指令集;并增加了一种扩展指令执行单元,包括以下子单元:
指令译码及控制单元:应用于实现所述自定义扩展指令的译码,并控制直接内存快速访存单元、缓存管理单元及向量矩阵运算单元完成指定的多数据的批运算或其他超越函数运算;
直接内存快速访存单元:实现直接对接系统总线,对片上存储或片外存储进行无需CPU内核参与的访问;
紧耦合缓存单元:受缓存管理单元控制,为向量矩阵运算单元提供高速缓存,用于存放待处理的源数据或结果;
缓存管理单元:和向量矩阵运算单元连接,按照向量矩阵运算单元的要求指定合适的紧耦合缓存单元读写操作;
向量矩阵运算单元:接收指令译码及控制单元的控制,实现向量、矩阵的常规运算,以满足各类信号在时域实数和频域复数的向量运算需求,和神经网络所需的矩阵运算。
所述扩展指令执行单元的实现方式为:利用Verilog代码硬件编程设计,并在所述运算处理芯片中的部分空间内实现的单独硬件结构。
在运算处理芯片的生产过程中,芯片制造厂商根据Verilog代码在所述运算处理芯片的一部分空间生成电路硬件结构以实现Verilog代码所定义的功能,从而实现在运算处理芯片内集成扩展指令执行单元。
扩展指令执行单元可以运行用户编写的扩展指令,扩展指令可由用户编写的C代码通过编译器编译后产生并存储在片上或片外存储器等存储设备中。
扩展指令执行单元及各个子单元通过设计合适的运算粒度,可通过不需要CPU内核的硬件电路实现;类似堆积木方式,设计一系列的功能子单元,根据系统应用需求将所需的子单元配置在CPU内核指令流水线上,形成CPU内核的附属运算单元集,不同的CPU内核扩展指令会启动不同的子单元实现所需运算处理,具有高度灵活性,形成了可软件定义的硬件单元集;
通过软件编译在运算处理芯片内形成扩展指令执行单元作为运算处理芯片的又一指令执行单元,在本发明中仅受CPU内核指挥并处理扩展指令集,扩展指令集通常为语音识别中常见的向量运算指令。
增加扩展指令执行单元后,并不会显著影响CPU内核性能或降低CPU内核的数据处理速度。由于CPU内核原本可以处理的运算在增加扩展单元后仍旧可以用内核处理,甚至可以用扩展单元处理,实际降低了CPU的工作负荷;其次,扩展单元的工作频率与CPU内核是相同频率,所以CPU的数据处理速度没有降低和影响;最后,扩展单元的运算相当于在CPU原有的流水线上进行一个分支,但保留了原有的流水线级数,扩展的指令执行单元不会降低CPU内核性能。
采用这种在运算处理芯片内增加子单元和扩展指令集组合的方式,仅需维护和增强所述硬件单元集和与之对应的指令集;不同项目和系统仅根据需求对CPU内核单核的性能进行扩展和增强。较多核而言,各个子单元所需的硬件单元面积及开发成本非常小,灵活性较高,产品开发周期短、市场生存能力更强;应用开发人员仅需通过扩展指令进行启动对应的硬件单元完成指定处理,编程、调试更友好;由于扩展指令执行单元直接编译形成在运算处理芯片内,无需增加新的DSP、CPLD等外围元件。
所述紧耦合缓存单元为扩展指令执行单元的内存,适配于扩展指令执行单元的工作速度。
基于上述扩展运算装置,本发明公开了一种基于可扩展指令集CPU内核的扩展运算方法,如图2所示,包括如下步骤:
S1. CPU内核判断接收指令是否为扩展指令;是则进入步骤S2,否则自行处理;
S2. 启动扩展指令执行单元,CPU内核将扩展指令发送到扩展指令执行单元中的指令译码及控制单元,指令译码及控制单元将该扩展指令译码;
S3. 直接内存快速访存单元根据译码的结果,从片上存储或片外存储直接读取相应的数据放入紧耦合缓存单元对应的位置,或直接将紧耦合缓存单元的结果写出到片上存储器或片外存储器;
S4. 向量矩阵运算单元调用紧耦合缓存单元的数据并根据译码结果进行相应的运算;运算完成的结果存入紧耦合缓存单元,完成扩展指令运算。
芯片系统正常运行时,由CPU内核处理应用程序指令,当该应用程序为常规标量程序时,由CPU内核直接处理;
当发现应用程序需要进行向量或矩阵运算时,由CPU内核执行相应的扩展指令集,具体为:
启动扩展指令执行单元,CPU内核将该扩展指令发送到扩展指令执行单元中的指令译码及控制单元,该单元将该扩展指令译码后,根据译码的结果控制向量矩阵运算单元、缓存管理单元、直接内存快速访存单元完成指定的多数据的批运算或其他超越函数运算。
向量矩阵运算单元根据译码结果进行相应的运算,该预算中所需的缓存由缓存管理单元控制紧耦合缓存提供。
同时,直接内存快速访存单元根据译码的结果,从片上存储或片外存储直接读取相应的数据放入紧耦合缓存对应的位置,用于向量矩阵运算单元的运算;运算完成的结果存入紧耦合缓存对应位置后,也会有直接内存快速访存单元将该结果直接存入片上存储或片外存储相应的位置,完成一次扩展指令运算。
一个实际操作过程如下:
例如将本发明应用于一款智能语音芯片作为运算处理芯片,采用Risc-V可扩展指令集CPU内核,再根据语音神经网络处理技术特点设计相应的扩展指令执行单元,扩展指令执行单元中的扩展指令可以包括乘累加、FFT、向量乘、矩阵乘等神经网络处理和语音信号处理所需的复杂向量或矩阵运算,各个运算可在单指令周期执行。
实际应用中,当语音芯片即运算处理芯片执行常规控制指令时,无需调用扩展指令执行单元,用自带的基本指令由CPU内核进行处理。
语音信号处理大多为向量运算,可以通过指令是否为向量运算区分,需要进行向量运算的信号处理可利用扩展指令集中的扩展指令启动扩展子单元完成处理运算;调用各个子单元完成处理,而不再使用CPU内核自身的标量处理单元进行处理。
当语音芯片进行语音信号处理计算时,由CPU内核调用对应的乘累加或FFT等扩展指令,启动扩展指令执行单元,将对应的扩展指令发送到指令译码及控制单元,该单元将该扩展指令译码后,根据译码的结果控制向量矩阵运算单元、缓存管理单元、直接内存快速访存单元完成指定的多数据的批运算或其他超越函数运算。
向量矩阵运算单元根据扩展指令的译码结果进行相应的运算,该预算中所需的缓存由缓存管理单元控制紧耦合缓存单元提供。
同时,直接内存快速访存单元根据译码的结果,从片上存储器或片外存储器直接读取相应的数据放入紧耦合缓存单元对应的位置,用于向量矩阵运算单元的运算;运算完成的结果存入紧耦合缓存单元对应位置后,也会有直接内存快速访存单元将该结果直接存入片上存储器或片外存储器相应的位置,完成一次扩展指令运算。
上述扩展指令运算过程中,除由CPU内核判断出为扩展指令外,后续全部操作不再需要CPU内核参与,CPU内核可以待机或进行不是扩展指令的其他操作。
例如子单元在运行时,若CPU内核为单发射CPU内核, 即对“取指令→执行→取指令→执行”的顺序有限制时,顺序执行的CPU内核,一次仅读取一条指令,然后执行,待执行完成后再取下一条指令执行;当执行扩展指令集中的指令时,CPU内核内部的逻辑运算单元空闲待机,由扩展子单元执行指令;同理,当CPU内核执行正常指令时,扩展子单元空闲待机;若CPU内核为多发射CPU内核,即对“取指令→执行→取指令→执行”的顺序没有特别限制时,一次可以读取多条指令,然后并行执行,任一个执行完成后继续取指令、执行,多条流水线并行进行,根据CPU内核读取的指令,可实现CPU内核内部的逻辑运算单元与外部扩展的子单元并行处理。
本发明具备如下优越性:
一. 扩展指令执行单元采用片外-片上-紧耦合缓存单元的多级缓存设计,相对传统CPU内核都需要从总线存储或总线缓存中读写数据的架构,可以有效解决向量或矩阵运算对数据吞吐量大时传统方式处理效率不高的问题,极大提高运算单元的处理效率;
二. 通过扩展指令集的设计,即可以沿用现有CPU内核进行常规标量处理,也可根据应用需要实现对扩展指令集各个子单元的功能更改,大大提升开发效率,降低为兼容信号处理计算而修改原本程序的风险;当无需进行向量或矩阵等运算时,数据处理方式和传统CPU内核单一处理方式相同,增强了应用的兼容性;
三. 通过扩展指令的各个子单元支持向量或矩阵运算,避免了芯片为支持神经网络运算还要单独设计神经网络内核和多核并行架构,降低了成本和开发的复杂度。
前文所述的为本发明的各个优选实施例,各个优选实施例中的优选实施方式如果不是明显自相矛盾或以某一优选实施方式为前提,各个优选实施方式都可以任意叠加组合使用,所述实施例以及实施例中的具体参数仅是为了清楚表述发明人的发明验证过程,并非用以限制本发明的专利保护范围,本发明的专利保护范围仍然以其权利要求书为准,凡是运用本发明的说明书内容所作的等同结构变化,同理均应包含在本发明的保护范围内。
Claims (6)
1.一种基于可扩展指令集CPU内核的扩展运算装置,包括运算处理芯片和集成在运算处理芯片里的CPU内核,还包括片上存储器、片外存储器及与三者连接的系统总线,其特征在于,还包括与系统总线和CPU内核连接的扩展指令执行单元;
所述扩展指令执行单元集成在运算处理芯片内,包括下列子单元:
与CPU内核连接的指令译码及控制单元,实现以下功能:完成自定义扩展指令的译码,并控制直接内存快速访存单元、缓存管理单元及向量矩阵运算单元完成扩展指令;
与所述系统总线连接的直接内存快速访存单元;
与直接内存快速访存单元和缓存管理单元连接的紧耦合缓存单元;
与向量矩阵运算单元和紧耦合缓存单元连接的缓存管理单元;
向量矩阵运算单元,实现以下功能:接收指令译码及控制单元发送的译码后的扩展指令,实现向量或矩阵的算术和逻辑运算。
2.根据权利要求1所述的基于可扩展指令集CPU内核的扩展运算装置,其特征在于:所述紧耦合缓存单元有多个。
3.根据权利要求1所述的基于可扩展指令集CPU内核的扩展运算装置,其特征在于:所述扩展指令执行单元的实现方式为:利用Verilog代码硬件编程设计,并在所述运算处理芯片中的部分空间内实现的单独硬件结构。
4.根据权利要求1所述的基于可扩展指令集CPU内核的扩展运算装置,其特征在于:所述自定义扩展指令存储在片上存储器。
5.根据权利要求1所述的基于可扩展指令集CPU内核的扩展运算装置,其特征在于,还包括与系统总线连接的片外存储器,所述自定义扩展指令存储在片外存储器。
6.一种基于可扩展指令集CPU内核的扩展运算方法,其特征在于,包括如下步骤:
S1. CPU内核判断接收指令是否为扩展指令;是则进入步骤S2,否则自行处理;
S2. 启动扩展指令执行单元,CPU内核将扩展指令发送到扩展指令执行单元中的指令译码及控制单元,指令译码及控制单元将该扩展指令译码并控制相应扩展子单元进行运算;
S3. 直接内存快速访存单元根据译码的结果,从片上存储或片外存储直接读取相应的数据放入紧耦合缓存单元对应的位置或直接将紧耦合缓存单元的结果写出到片上存储器或片外存储器;
S4. 向量矩阵运算单元调用紧耦合缓存单元的数据并根据译码结果进行相应的运算;运算完成的结果存入紧耦合缓存单元,完成扩展指令运算。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110487516.3A CN112988238A (zh) | 2021-05-06 | 2021-05-06 | 一种基于可扩展指令集cpu内核的扩展运算装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110487516.3A CN112988238A (zh) | 2021-05-06 | 2021-05-06 | 一种基于可扩展指令集cpu内核的扩展运算装置及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112988238A true CN112988238A (zh) | 2021-06-18 |
Family
ID=76336977
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110487516.3A Pending CN112988238A (zh) | 2021-05-06 | 2021-05-06 | 一种基于可扩展指令集cpu内核的扩展运算装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112988238A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113742266A (zh) * | 2021-09-10 | 2021-12-03 | 中科寒武纪科技股份有限公司 | 集成电路装置、电子设备、板卡和计算方法 |
CN117290279A (zh) * | 2023-11-24 | 2023-12-26 | 深存科技(无锡)有限公司 | 基于共享紧耦合的通用型计算加速器 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109284823A (zh) * | 2017-04-20 | 2019-01-29 | 上海寒武纪信息科技有限公司 | 一种运算装置及相关产品 |
CN109857460A (zh) * | 2019-02-20 | 2019-06-07 | 南京华捷艾米软件科技有限公司 | 基于risc-v架构的矩阵卷积计算方法、接口、协处理器及系统 |
CN111324294A (zh) * | 2018-12-17 | 2020-06-23 | 地平线(上海)人工智能技术有限公司 | 存取张量数据的方法和装置 |
CN111340185A (zh) * | 2020-02-16 | 2020-06-26 | 苏州浪潮智能科技有限公司 | 一种卷积神经网络加速方法、系统、终端及存储介质 |
CN111507336A (zh) * | 2020-03-18 | 2020-08-07 | 杭州电子科技大学 | 基于risc-v的卷积神经网络的文字识别方法 |
CN112130901A (zh) * | 2020-09-11 | 2020-12-25 | 山东云海国创云计算装备产业创新中心有限公司 | 基于risc-v的协处理器、数据处理方法及存储介质 |
CN112199322A (zh) * | 2020-09-30 | 2021-01-08 | 中国电力科学研究院有限公司 | 一种电力智能控制终端及其基于risc-v的soc电力芯片架构 |
CN212460600U (zh) * | 2020-07-03 | 2021-02-02 | 中用科技有限公司 | 一种数据处理系统 |
CN112667289A (zh) * | 2020-12-21 | 2021-04-16 | 苏州浪潮智能科技有限公司 | 一种cnn推理加速系统、加速方法及介质 |
CN112748929A (zh) * | 2021-01-15 | 2021-05-04 | 苏州浪潮智能科技有限公司 | 基于risc-v的格密码处理系统、方法、设备及存储介质 |
-
2021
- 2021-05-06 CN CN202110487516.3A patent/CN112988238A/zh active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109284823A (zh) * | 2017-04-20 | 2019-01-29 | 上海寒武纪信息科技有限公司 | 一种运算装置及相关产品 |
CN111324294A (zh) * | 2018-12-17 | 2020-06-23 | 地平线(上海)人工智能技术有限公司 | 存取张量数据的方法和装置 |
CN109857460A (zh) * | 2019-02-20 | 2019-06-07 | 南京华捷艾米软件科技有限公司 | 基于risc-v架构的矩阵卷积计算方法、接口、协处理器及系统 |
CN111340185A (zh) * | 2020-02-16 | 2020-06-26 | 苏州浪潮智能科技有限公司 | 一种卷积神经网络加速方法、系统、终端及存储介质 |
CN111507336A (zh) * | 2020-03-18 | 2020-08-07 | 杭州电子科技大学 | 基于risc-v的卷积神经网络的文字识别方法 |
CN212460600U (zh) * | 2020-07-03 | 2021-02-02 | 中用科技有限公司 | 一种数据处理系统 |
CN112130901A (zh) * | 2020-09-11 | 2020-12-25 | 山东云海国创云计算装备产业创新中心有限公司 | 基于risc-v的协处理器、数据处理方法及存储介质 |
CN112199322A (zh) * | 2020-09-30 | 2021-01-08 | 中国电力科学研究院有限公司 | 一种电力智能控制终端及其基于risc-v的soc电力芯片架构 |
CN112667289A (zh) * | 2020-12-21 | 2021-04-16 | 苏州浪潮智能科技有限公司 | 一种cnn推理加速系统、加速方法及介质 |
CN112748929A (zh) * | 2021-01-15 | 2021-05-04 | 苏州浪潮智能科技有限公司 | 基于risc-v的格密码处理系统、方法、设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
阎强: ""卷积神经网络处理器的设计与实现"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113742266A (zh) * | 2021-09-10 | 2021-12-03 | 中科寒武纪科技股份有限公司 | 集成电路装置、电子设备、板卡和计算方法 |
CN113742266B (zh) * | 2021-09-10 | 2024-02-06 | 中科寒武纪科技股份有限公司 | 集成电路装置、电子设备、板卡和计算方法 |
CN117290279A (zh) * | 2023-11-24 | 2023-12-26 | 深存科技(无锡)有限公司 | 基于共享紧耦合的通用型计算加速器 |
CN117290279B (zh) * | 2023-11-24 | 2024-01-26 | 深存科技(无锡)有限公司 | 基于共享紧耦合的通用型计算加速器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9639365B2 (en) | Indirect function call instructions in a synchronous parallel thread processor | |
US8782645B2 (en) | Automatic load balancing for heterogeneous cores | |
US6532530B1 (en) | Data processing system and method for performing enhanced pipelined operations on instructions for normal and specific functions | |
US20120066668A1 (en) | C/c++ language extensions for general-purpose graphics processing unit | |
CN112486312B (zh) | 一种低功耗的处理器 | |
EP2480979A1 (en) | Unanimous branch instructions in a parallel thread processor | |
CN112988238A (zh) | 一种基于可扩展指令集cpu内核的扩展运算装置及方法 | |
CN112580792B (zh) | 一种神经网络多核张量处理器 | |
US8572355B2 (en) | Support for non-local returns in parallel thread SIMD engine | |
CN112381220A (zh) | 一种神经网络张量处理器 | |
US20230084523A1 (en) | Data Processing Method and Device, and Storage Medium | |
CN111078287A (zh) | 一种向量运算协处理方法与装置 | |
US20240103912A1 (en) | Inter-Thread Communication in Multi-Threaded Reconfigurable Coarse-Grain Arrays | |
CN114035916A (zh) | 计算图的编译、调度方法及相关产品 | |
US6178499B1 (en) | Interruptable multiple execution unit processing during operations utilizing multiple assignment of registers | |
CN112465133A (zh) | 运算方法、装置、计算机设备和存储介质 | |
US20100305937A1 (en) | Coprocessor support in a computing device | |
US20120151145A1 (en) | Data Driven Micro-Scheduling of the Individual Processing Elements of a Wide Vector SIMD Processing Unit | |
CN115600664B (zh) | 算子处理方法、电子设备及存储介质 | |
US20030120905A1 (en) | Apparatus and method for executing a nested loop program with a software pipeline loop procedure in a digital signal processor | |
JP4800582B2 (ja) | 演算処理装置 | |
CN112948001A (zh) | 设定张量硬件配置的方法、可读存储介质及装置 | |
CN113407240B (zh) | 一种C64x+ DSP软件流水循环缓冲机制的模拟方法 | |
CN111522600B (zh) | 一种在dsp上的异构计算框架构建方法及系统 | |
JP2004516572A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210618 |
|
RJ01 | Rejection of invention patent application after publication |