CN113127407A - 基于nvm进行ai计算的芯片架构 - Google Patents
基于nvm进行ai计算的芯片架构 Download PDFInfo
- Publication number
- CN113127407A CN113127407A CN202110541351.3A CN202110541351A CN113127407A CN 113127407 A CN113127407 A CN 113127407A CN 202110541351 A CN202110541351 A CN 202110541351A CN 113127407 A CN113127407 A CN 113127407A
- Authority
- CN
- China
- Prior art keywords
- nvm
- data
- neural network
- calculation
- nvm array
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7839—Architectures of general purpose stored program computers comprising a single central processing unit with memory
- G06F15/7842—Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers)
- G06F15/7846—On-chip cache and off-chip main memory
-
- 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/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/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)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Computer Hardware Design (AREA)
- Neurology (AREA)
- Advance Control (AREA)
Abstract
本发明提供的一种基于NVM进行AI计算的芯片架构,包括通过总线通信连接的NVM阵列、外部接口模块、NPU和MCU;采用NPU和NVM相结合进行AI神经网络计算,神经网络的权重参数数字化存储在NVM阵列中,MCU接收外部的AI运算指令控制NPU及NVM阵列实现神经网络计算,MCU控制NVM阵列加载其内部存储的神经网络的权重参数,通过运行的程序和神经网络模型来进行AI计算,与现有各类采用NVM进行模拟运算的存算方案相比,数字存储与运算方式运算结构灵活,可靠性好、精度高、读取准确度高,故此本发明在突破采用片外NVM存储速度瓶颈以及降低外部输入功耗的同时,又具备高度的可实施性、灵活性以及可靠性。
Description
技术领域
本发明涉及AI(Artificial Intelligence,人工智能)技术领域,特别涉及一种基于NVM(non-volatile memory,非易失性存储)进行AI计算的芯片架构。
背景技术
AI的算法来源于人脑的结构的启示。人脑是一个由大量神经元复杂连接的网络,每个神经元通过大量的树突连接大量的其他神经元,接收信息,每一个连接点叫突触(Synapse)。在外部刺激积累到一定程度后,产生一个刺激信号,通过轴突传送出去。轴突有大量的末梢,通过突触,连接到大量其他神经元的树突。就是这样一个由简单功能的神经元组成的网络,实现了人类所有的智能活动。人的记忆和智能,普遍被认为存储在每一个突触的不同的耦合强度里。
从上世纪60年代兴起的神经网络算法,用一个函数来模仿神经元的功能。函数接受多个来自其他神经元的输入,每个输入有不同的权重,输出是每一个输入与相应的神经元连接权重相乘再求和。函数输出再输入到下一层其他的神经元,组成一个神经网络。
常见的AI芯片在算法上针对网络计算优化了矩阵并行计算,但因为AI计算需要极高的存储读取带宽,把处理器和内存、存储分离的架构遇到了读取速度的瓶颈,也受限于外部存储读取功耗。业界已经开始广泛研究存储内计算(in-memory-computing)的架构。
目前采用NVM的存储内计算的方案,都是利用NVM采用模拟信号的形式存储神经网络中的权重,把神经网络的计算通过模拟信号加乘的方法实现,具体范例参见公开号为CN109086249A的中国专利申请。这类方案已经有了不少科研成果,但实际应用仍有困难。因为实用的神经网络基本都有很多的层和非常复杂的连接结构,模拟信号在实现神经网络计算过程中在层间的传递、进行各种信号处理时非常不方便,模拟计算阵列结构僵化,不利于支持灵活的神经网络结构。另外,模拟信号的存储、读写与计算中各种噪音和误差会影响到存储的神经网络模型的可靠性和计算的准确性受限。
发明内容
本发明的目的是提供一种基于NVM进行AI计算的芯片架构,克服现有的存储内计算的方案利用NVM采用模拟信号的形式存储神经网络中的权重时,模拟信号在实现神经网络计算过程中在层间的传递、进行各种信号处理时非常不方便,模拟计算阵列结构僵化,不利于支持灵活的神经网络结构,以及模拟信号的存储、读写与计算中各种噪音和误差会影响到存储的神经网络模型的可靠性和计算的准确性受限的缺陷,提供一种在突破了外部存储的速度瓶颈及降低外部输入的功耗的同时又具有更好的灵活性、高度的可实施性以及可靠性的基于NVM进行AI计算的芯片架构。
为了达到上述目的,本发明提供一种基于NVM进行AI计算的芯片架构,包括通过总线通信连接的NVM阵列、外部接口模块、NPU(嵌入式神经网络处理器)和MCU(Microcontroller Unit,微控制单元);
所述NVM阵列用于片内存储数字化的神经网络的权重参数、所述MCU运行的程序以及神经网络模型;
所述NPU用于神经网络的数字域加速计算;
所述外部接口模块用于接收外部的AI运算指令、输入数据以及向外输出AI计算的结果;
所述MCU用于基于所述AI运算指令执行所述程序,以控制所述NVM阵列和所述NPU对所述输入数据进行AI计算,以得到所述AI计算的结果。
本方案提供的芯片架构中NPU和NVM相结合进行AI神经网络计算,其中神经网络的权重参数数字化的存储在芯片内部的NVM阵列中,神经网络计算也是数字域计算,具体通过MCU基于外部的AI运算指令控制NPU及NVM阵列实现,MCU控制NVM阵列包括加载其内部存储的神经网络的权重参数、所述MCU运行的程序以及神经网络模型来进行AI计算,与现有各类采用NVM进行模拟运算的存算方案相比,数字存储与运算方式运算结构灵活,NVM存储的信息相比于模拟信号的多能级存储可靠性好、精度高、读取准确度高,故此本方案在突破采用片外NVM存储速度瓶颈以及降低外部输入功耗的同时,又具备高度的可实施性、灵活性以及可靠性。
进一步的,所述芯片架构还包括高速数据读取通道,所述NPU通过高速数据读取通道从所述NVM阵列读取所述权重参数。
本方案除了包括片内总线之外,在NPU和NVM阵列之间还设立高速数据读取通道,用于支持NPU进行数字域运算时对于神经网络的权重参数即权重数据的高速读取的带宽要求。
进一步的,所述NVM阵列设有读通道,所述读通道为N路,N为正整数,在一个读周期内所述读通道共读取N比特数据,所述NPU用于通过所述高速数据读取通道经所述读通道从所述NVM阵列读取所述权重参数。
本方案设立读通道,读通道为N路,优选的,N取128~512,一个读周期(通常30-40纳秒)可以读取N比特的数据。NPU通过高速数据读取通道经读通道从NVM阵列读取神经网络的权重参数,此带宽远高于片外NVM可支持的读取速度,能够支持常用神经网络推理计算所需的参数读取速度需求。
进一步的,所述高速数据读取通道的位宽为m比特,m为正整数;所述芯片架构还包括数据转换单元,所述数据转换单元包括缓存模块和顺序读取模块,所述缓存模块用于按周期依次缓存经所述读通道输出的权重参数,所述缓存模块的容量为N*k比特,k表示周期数;所述顺序读取模块用于将所述缓存模块中的缓存数据转换成m比特位宽后经所述高速数据读取通道输出至所述NPU,其中N*k为m的整数倍。
本方案还包括一数据转换单元,针对读通道的数量同高速数据读取通道的位宽不一致和/或频率异步的情况,数据转换单元用于把数据转换成同高速数据读取通道相同比特宽度的数据的组合,通常为小宽度(例如32比特)的字的组合。NPU以自身的时钟频率(可达1GHz以上)经高速数据读取通道从数据转换单元读取数据。
本方案提供的数据转换单元包含一个含N*k比特的缓存和一个一次输出m比特的顺序读取器,N*k是m的整数倍;读通道连接NVM阵列,每个周期内可以输出N比特,缓存内可以存入k个周期数据;高速数据读取通道宽度是m比特。其中,高速数据读取通道可以包含读写指令(CMD)和回复(ACK)信号,与NVM阵列读取控制电路连接。读操作完成后,ACK信号通知高速数据读取通道,还可以同时通知芯片内总线,高速数据读取通道通过顺序读取模块分多次异步把缓存中的数据输入NPU。
进一步的,所述芯片架构还包括SRAM(Static Random-Access Memory,静态随机存取存储器),所述SRAM通过所述总线与所述NVM阵列、所述外部接口模块、所述NPU以及所述MCU通信连接;所述SRAM用于缓存所述MCU执行所述程序过程中的数据,所述NPU运算过程中的数据以及神经网络模型运算的输入输出数据。
本方案提供的芯片架构包含一块嵌入式SRAM,作为芯片内部系统运行与计算所需缓存使用,用于存储输入、输出数据和计算产生的中间数据等。具体可以包括MCU执行程序过程中的缓存,存储MCU运行时的可执行程序、系统配置参数、计算网络结构配置参数等;NPU运算缓存,并存储经神经网络模型运算时的输入输出数据。
进一步的,所述NVM阵列中存储多种神经网络模型,所述AI运算指令包括算法选择指令,所述算法选择指令用于选择多个所述神经网络模型中的一个作为进行AI计算的算法。
本方案中的神经网络模型是数字化的存储在NVM阵列中,且根据应用场景的数量的情况可以为多个,对于多种应用场景对应多种神经网络模型的情况,MCU根据外部输入的算法选择指令能够灵活选择其中的任何一种预存的神经网络模型进行AI计算,克服了现有的存算一体的方案中采用模拟计算阵列结构僵化,不利于支持灵活的神经网络结构的问题。
进一步的,所述NVM阵列采用闪存工艺、MRAM(Magnetoresistive Random AccessMemory,非挥发性的磁性随机存储器)工艺、RRAM(阻变式存储器)工艺、MTP(Multiple TimeProgramming,可多次编程)工艺、OTP(One Time Programming,一次性可编程)工艺中的一种,和/或,所述外部接口模块的接口标准为SPI(Serial Peripheral Interface,串行外设接口)、QPI(Quad SPI)以及并行接口中的至少一种。
进一步的,所述MCU还用于通过所述外部接口模块接收外部用于操作所述NVM阵列的数据访问指令,所述MCU还用于基于所述数据访问指令完成对所述NVM阵列的基本操作的逻辑控制。
进一步的,所述NVM阵列采用SONOS(一种闪存工艺)闪存工艺、Floating Gate(一种闪存工艺)闪存工艺、Split Gate(一种闪存工艺)闪存工艺中的一种,所述外部接口模块的接口标准为SPI和/或QPI;
所述数据访问指令为标准的闪存操作指令;所述AI运算指令与所述数据访问指令采用相同的指令格式和规则;所述AI运算指令包括操作码,所述AI运算指令还包括地址部分和/或数据部分,所述AI运算指令的操作码与所述标准的闪存操作指令的操作码不同。
本方案提供的芯片架构,在传统闪存芯片架构的基础上进行改进,具体为在闪存芯片内部嵌入MCU以及NPU,并通过片内总线通信连接,片内总线可以为AHB(Advanced HighPerformance Bus,高级高性能总线),也可以为其它符合要求的通信总线,在此不做限定。本方案中NPU和NVM相结合,即计算与存储都在片内,其中神经网络的权重参数数字化的存储在NVM阵列中,神经网络计算也是数字域计算,具体通过MCU基于外部的AI运算指令控制NPU及NVM阵列实现,由此突破了采用片外NVM存储速度瓶颈以及降低外部输入功耗的同时,又具备高度的可实施性、灵活性以及可靠性。
本方案基于MCU实现了对NVM阵列数字化的操作,具体可以包括读写擦等闪存的基本操作,外部数据访问指令与外部接口可采用标准闪存芯片格式,易于芯片灵活简单地应用。本方案中内嵌的MCU作为NVM的逻辑控制单元,取代了标准闪存中的逻辑状态机,简化了芯片结构,节省了芯片面积。
本方案中的NVM阵列除了存储所述神经网络模型、所述权重参数以及所述芯片内部系统运行的程序之外,还可用于存储外部输入的不限于与AI计算相关的数据,即还可以用于存储外部输入的与AI计算相关的其他数据,以及外部输入的与AI计算无关的数据,无关的数据具体包括外部设备或者系统的系统参数、配置和/或代码等信息;所述基本操作除了包括对所述神经网络模型、所述权重参数以及所述内部系统运行的程序的读写擦等操作之外,还包括对存储的外部输入的数据直接在所述NVM阵列中的存储读写及擦除等操作。
本方案用于NVM直接操作的指令和用于AI计算处理的指令采用相同的指令格式和规则。以SPI和QPI接口为例,在传统的SPI、QPI闪存操作指令op_code的基础上,挑选未被闪存操作使用的op_code用于表达AI指令,在地址部分传递更多的信息,在数据交换周期里实施AI数据传递。只需要扩展指令解码器实现接口的复用,以及增加若干状态寄存器和配置寄存器即可实现AI计算。
进一步的,所述芯片架构还包括DMA(Direct Memory Access,直接存储器访问)通道,所述DMA通道用于外部设备直接读写所述SRAM。
本发明的积极进步效果在于:
本发明提供的一种基于NVM进行AI计算的芯片架构,采用NPU和NVM相结合进行AI神经网络计算,其中神经网络的权重参数数字化的存储在芯片内部的NVM阵列中,神经网络计算也是数字域计算,具体通过MCU基于外部的AI运算指令控制NPU及NVM阵列实现,MCU控制NVM阵列加载其内部存储的神经网络的权重参数、MCU运行的程序和神经网络模型来进行AI计算,与现有各类采用NVM进行模拟运算的存算方案相比,数字存储与运算方式运算结构灵活,NVM存储的信息相比于模拟信号的多能级存储可靠性好、精度高、读取准确度高,故此本发明在突破采用片外NVM存储速度瓶颈以及降低外部输入功耗的同时,又具备高度的可实施性、灵活性以及可靠性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是现有技术的AI算法中的神经元图;
图2是现有技术的三层神经网络图;
图3是现有技术的卷积神经网络图;
图4是现有技术的采用在标准NVM阵列内添加电路进行AI计算的原理图;
图5是本申请的一种基于NVM进行AI计算的芯片架构的示意图;
图6是本申请的芯片构架的数据转换单元的示意图;
图7是本申请的芯片构架调用NVM读写操作的指令运行流程图;
图8是基于本申请的芯片架构运行AI运算指令的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
本申请先就神经网络与人工智能、非易失性存储及存储内计算的基本架构与关系进行说明。
如前所述:人工智能(AI)算法是模仿人脑结构所产生,通过神经元之间的突触,连接到大量其他神经元的树突,形成具有简单功能的神经元网络,实现了人类所有的智能活动。人的记忆和智能,普遍被认为存储在每一个突触的不同的耦合强度里。
从20世纪60年代兴起的神经网络算法,用一个函数来模仿神经元的功能。函数接受多个输入,每个输入有不同的权重,输出是每一个输入与权重相乘再求和,如图1所示的范例性的AI算法中的神经元图。学习训练的过程就是调整各个权重。函数输出到很多其他的神经元,组成一个网络。这类算法,已经取得了丰富的成果,得到广泛应用。实用神经网络都有分层结构,同一层的神经元内部没有交流,每一个神经元的输入连接之前一层的多个或者所有的神经元的输出,如图2所示的三层神经网络图,其包括input layer(输入层)、hidden layer(隐藏层)以及output layer(输出层),输入层和隐藏层分别包括784个和15个neurons(神经元)。神经网络的不同层之间,有着不同的连接方式,此为一种全连接的网络。
更常见的是如图3所示的卷积神经网络图,此卷积神经网络在输入(input)、输出(output)都有二维结构(图像),只在临近的点有连接。
然而,一个实用的神经网络,往往有很多层组成,其中选择性的包括卷积层、缩减图像尺寸的层、全连接层中一者或多者形成的网络结构。
非易失性存储:
非易失性存储(NVM)是一种能够在断电后保持内容的半导体存储介质。常见的NVM包括闪存、EEPROM(Electrically Erasable Programmable read only memory,带电可擦可编程只读存储器)、MRAM、RRAM、FeRAM(FerroelectricRAM,铁电随机存取存储器)、MTP、OTP等。当前应用最为广泛的NVM是闪存(Flash Memory),其中的NOR闪存结构相比NAND闪存结构具有更高的可靠性和更快的读取速度,常用于系统代码、参数、算法等的存储。在具体的应用中,系统可以采用外接的独立式NVM或内嵌于系统内的嵌入式NVM。嵌入式NVM通常和CMOS(Complementary Metal-Oxide-Semiconductor,互补金属氧化物半导体)半导体工艺兼容,可以和逻辑计算的芯片集成在一起,在系统内有较快的读取速度。
与其他NVM相比,当前闪存在成本与容量上都比较有优势。目前市场上的多种闪存技术已具有存储多比特的能力。闪存擦写速度较慢(毫秒级),但读出的速度快很多(纳秒级),闪存与其他NVM的读取速度可以支撑神经网络计算所需的高带宽。
存储内计算(In-Memory-computing)
因为AI计算需要极高的存储带宽,把处理器和内存/存储分离的架构遇到了读取速度不够的瓶颈。业界已经开始广泛研究存算一体即存储内计算的架构。例如,如图4所示的现有技术的采用在标准NVM阵列内添加电路进行AI计算的原理图,即进行神经网络计算的架构,其是利用非易失存储器来存储神经网络计算需要的权重,用模拟电路进行向量乘法,大规模的乘法和加法可以平行进行,其能够提高运算速度并且节省功耗。
现有技术采用NVM的存储内计算,都是利用非易失存储器存储神经网络中的权重,把神经网络的计算通过模拟方法实现,但因为实用的神经网络基本都有很多的层和非常复杂的连接结构,模拟信号在层间的传递、进行各种处理时非常不方便,不利于支持灵活的神经网络结构,造成整体神经元网络模型的实现与应用相当的困难,而且模拟信号的存储、读写与计算中各种噪音和误差明显的影响模型的可靠性和计算的准确性。
图5为本发明的一种基于NVM进行AI计算的芯片架构图。如图5所示,本发明的一种基于NVM进行AI计算的芯片架构包括通过总线4通信连接的NVM阵列7、外部接口模块2、SRAM5、NPU6和MCU1。MCU1通过总线4读写SRAM5和内部NVM阵列7,并与NPU6通信。NVM阵列7用于片内存储数字化的神经网络的权重参数、MCU1运行的程序以及神经网络模型。NPU6用于神经网络的数字域加速计算。外部接口模块2用于接收外部的AI运算指令、输入数据以及向外输出AI计算的结果。MCU1用于基于外部AI运算指令执行NVM阵列7存储的程序,以控制NVM阵列7和NPU6对输入数据进行AI计算,以得到AI计算的结果。
SRAM5作为芯片内部系统运行与计算所需缓存使用,用于存储输入、输出数据和计算产生的中间数据等。具体可以包括MCU1执行程序过程中的缓存,存储MCU1运行时的可执行程序、系统配置参数、计算网络结构配置参数等;NPU6运算缓存,并存储经神经网络模型运算时的输入输出数据。
本实施例提供的芯片架构中NPU6和NVM相结合进行AI神经网络计算,其中神经网络的权重参数数字化的存储在芯片内部的NVM阵列7中,神经网络计算也是数字域计算,具体通过MCU1基于外部的AI运算指令控制NPU6及NVM阵列7实现,MCU1控制NVM阵列7包括加载其内部存储的神经网络的权重参数、MCU1运行的程序以及神经网络模型来进行AI计算,与现有各类采用NVM进行模拟运算的存算方案相比,数字存储与运算方式运算结构灵活,NVM存储的信息相比于模拟信号的多能级存储可靠性好、精度高、读取准确度高,故此本实施例提供的方案在突破采用片外NVM存储速度瓶颈以及降低外部输入功耗的同时,又具备高度的可实施性、灵活性以及可靠性。
在一个实施例中,神经网络模型通过数字化的方式存储于NVM阵列7中,NVM阵列7中存储的神经网络模型可为多种。外部AI运算指令中包括有算法选择指令,通过算法选择指令选择多个神经网络模型中的一个作为进行AI计算的算法。
本实施例中的神经网络模型是数字化的存储在NVM阵列7中,且根据应用场景的数量的情况可以为多个,对于多种应用场景对应多种神经网络模型的情况,MCU1根据外部输入的算法选择指令能够灵活选择其中的任何一种预存的神经网络模型进行AI计算,克服了现有技术中采用存算一体的模拟计算阵列结构僵化,不利于支持灵活的神经网络结构的问题。
在一个实施例中,NVM阵列7采用但不限于闪存、MRAM、RRAM、MTP、OTP中的一种。外部接口模块2的接口标准为SPI、QPI以及并行接口中的至少一种。
在其他的实施例中,NVM阵列7采用但不限于SONOS闪存、Floating Gate闪存、Split Gate闪存工艺中的一种。外部接口模块2的接口标准为SPI和/或QPI。
本实施例提供的芯片架构,在传统闪存芯片架构的基础上进行改进,具体为在闪存芯片内部嵌入MCU1以及NPU6,并通过片内总线4通信连接,片内总线4可以为AHB总线,也可以为其它符合要求的通信总线,在此不做限定。本实施例提供的方案中NPU6和NVM相结合,即计算与存储都在片内,其中神经网络的权重参数数字化的存储在NVM阵列7中,神经网络计算也是数字域计算,具体通过MCU1基于外部的AI运算指令控制NPU6及NVM阵列7实现,由此突破了采用片外NVM存储速度瓶颈以及降低外部输入功耗的同时,又具备高度的可实施性、灵活性以及可靠性。
在一个实施例中,除片内的总线4通信外,芯片架构还包括高速数据读取通道;具体为在NPU6和NVM阵列7之间设立高速数据读取通道,NPU6还用于通过高速数据读取通道从NVM阵列7读取权重参数。本实施例中,高速数据读取通道用于支持NPU6进行数字域运算时对于神经网络的权重参数即权重数据的高速读取的带宽要求。高速数据读取通道的位宽为m比特,且m为正整数。
此外,NVM阵列7设有读通道,该读通道为N路,N为正整数,在一个读周期内读通道共读取N比特数据,NPU6用于通过高速数据读取通道经读通道从NVM阵列7读取权重参数。优选的,N取128~512,在一个读周期内(通常30-40纳秒),NPU6以m比特位宽通过高速数据读取通道经读通道从NVM阵列7读取神经网络的权重参数。与现有技术片外NVM可支持的读取速度相比,本发明带宽远远高出,能够支持常用神经网络推理计算所需的参数读取速度需求。
在一个实施例中,本芯片架构还包括数据转换单元。数据转换单元针对读通道的数量同高速数据读取通道的位宽不一致和/或频率异步的情况,数据转换单元用于把数据转换成同高速数据读取通道相同比特宽度的数据的组合,通常为小宽度(例如32比特)的字的组合。NPU6以自身的时钟频率(可达1GHz以上)经高速数据读取通道从数据转换单元读取数据。
图6是本申请的芯片构架的数据转换单元的示意图。如图6所示,数据转换单元包括缓存模块和顺序读取模块,缓存模块用于按周期依次缓存经读通道从NVM阵列7输出的N比特数据,缓存模块的容量为N*k比特,k表示周期数。顺序读取模块用于将缓存模块中的缓存数据转换成m比特位宽后经高速数据读取通道输出至NPU6,其中N*k为m的整数倍。
其中,数据转换单元包含一个含N*k比特的缓存模块和一个一次输出m比特的顺序读取器,即顺序读取模块,N*k是m的整数倍;读通道连接NVM阵列7,每个周期内可以输出N比特,缓存内可以存入k个周期数据;高速数据读取通道宽度是m比特。高速数据读取通道可以包含读写指令(CMD)和回复(ACK)信号,与NVM阵列7读取控制电路连接。读操作完成后,ACK信号通知高速数据读取通道,还可以同时通知芯片内总线,高速数据读取通道通过顺序读取模块分多次异步把缓存中的数据输入NPU6。
在一个实施例中,MCU1还用于通过外部接口模块2接收外部用于操作NVM阵列7的数据访问指令,MCU1还用于基于数据访问指令完成对NVM阵列7的基本操作的逻辑控制,所述数据访问指令为标准的闪存操作指令;所述AI运算指令与所述数据访问指令采用相同的指令格式和规则;所述AI运算指令包括操作码,所述AI运算指令还包括地址部分和/或数据部分,所述AI运算指令的操作码与所述标准的闪存操作指令的操作码不同。
本实施例中用于NVM直接操作的指令和用于AI计算处理的指令采用相同的指令格式和规则。以SPI和QPI接口为例,在传统的SPI、QPI闪存操作指令op_code的基础上,挑选未被闪存操作使用的op_code用于表达AI指令,在地址部分传递更多的信息,在数据交换周期里实施AI数据传递。只需要扩展指令解码器实现接口的复用,以及增加若干状态寄存器和配置寄存器即可实现AI计算。
MCU1实现了对NVM阵列7数字化的操作,具体可以包括读写擦等闪存的基本操作,外部数据访问指令与外部接口可采用标准闪存芯片格式,易于芯片灵活简单地应用。本芯片内嵌的MCU1作为NVM的逻辑控制单元,取代了标准闪存中的逻辑状态机,简化了芯片结构,节省了芯片面积。
本实施例中的NVM阵列7除了存储神经网络模型、权重参数以及芯片内部系统运行的程序之外,还可用于存储外部输入的不限于与AI计算相关的数据,即还可以用于存储外部输入的与AI计算相关的其他数据,以及外部输入的与AI计算无关的数据,无关的数据具体包括外部设备或者系统的系统参数、配置和/或代码等信息;基本操作除了包括对神经网络模型、权重参数以及内部系统运行的程序的读写擦等操作之外,还包括对存储的外部输入的数据直接在NVM阵列7中的存储读写及擦除等操作。
具体实施过程中,MCU1接受外部用于NVM阵列7读写等操作的指令,完成NVM基本操作的逻辑控制。这些基本操作包括对AI运算模型算法、参数得存储读写,也可以用于系统参数、配置、代码等直接在NVM阵列7中得存储读写。MCU1还接受外部AI运算指令,控制内部运算逻辑与输入输出,同时还用于内部控制AI的算法逻辑。
图7是本申请的芯片构架调用NVM读写操作的指令运行流程图。如图7所示,指令运行流程如下:
步骤S101、外部设备启动NVM所在芯片,MCU1上电。
步骤S102、无需外部指令,MCU1运行所需代码与参数从NVM阵列7载入SRAM5,芯片处于待机状态。
步骤S103、外部设备发送NVM操作指令,MCU1接受并处理该指令,NVM操作指令格式及处理方式与传统标准NVM相同。
在一个实施例中,芯片架构还包括DMA通道3,DMA通道3用于外部设备直接读写SRAM5。外部接口模块2实现了数据和指令的复用,通过DMA通道3实现了外部设备对芯片内SRAM5的直接读写操作,提高了数据传输效率。外部设备也可以通过DMA通道3将SRAM5作为系统内存资源进行调用,增加了芯片应用的灵活性。
图8是基于本申请的芯片构架运行AI运算指令的流程图。如图8所示,AI运算指令运行流程包括:
步骤S201、外部设备启动NVM所在芯片,MCU1上电。
步骤S202、无需外部指令,MCU1运行所需代码与参数从NVM阵列7载入SRAM5,芯片处于待机状态。
步骤S203、外部设备发送算法选择指令选择存储在芯片的NVM阵列7中的某个神经网络模型。
步骤S204、MCU1处理该指令,内部相应存储模块上电、寻址。
步骤S205、外部设备发送AI运算指令与输入数据,该数据被缓存在SRAM5中。
步骤S206、MCU1启动NPU6,根据AI运算指令对输入数据进行识别处理。
步骤S207、NPU6从NVM阵列7中读取神经网络模型对应的权重参数数据用于计算。
步骤S208、外部设备通过外部接口模块2从芯片中读取AI计算的结果。
其中,步骤S205~S208可以往复循环,连续进行数据输入、计算与输出。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于NVM进行AI计算的芯片架构,其特征在于,包括通过总线通信连接的NVM阵列、外部接口模块、NPU和MCU;
所述NVM阵列用于片内存储数字化的神经网络的权重参数、所述MCU运行的程序以及神经网络模型;
所述NPU用于神经网络的数字域加速计算;
所述外部接口模块用于接收外部的AI运算指令、输入数据以及向外输出AI计算的结果;
所述MCU用于基于所述AI运算指令执行所述程序,以控制所述NVM阵列和所述NPU对所述输入数据进行AI计算,以得到所述AI计算的结果。
2.如权利要求1所述的基于NVM进行AI计算的芯片架构,其特征在于,所述芯片架构还包括高速数据读取通道;所述NPU还用于通过所述高速数据读取通道从所述NVM阵列读取所述权重参数。
3.如权利要求2所述的基于NVM进行AI计算的芯片架构,其特征在于,所述NVM阵列设有读通道,所述读通道为N路,N为正整数,在一个读周期内所述读通道共读取N比特数据,所述NPU用于通过所述高速数据读取通道经所述读通道从所述NVM阵列读取所述权重参数。
4.如权利要求3所述的基于NVM进行AI计算的芯片架构,其特征在于,所述高速数据读取通道的位宽为m比特,m为正整数;所述芯片架构还包括数据转换单元,所述数据转换单元包括缓存模块和顺序读取模块,所述缓存模块用于按周期依次缓存经所述读通道输出的权重参数,所述缓存模块的容量为N*k比特,k表示周期数;所述顺序读取模块用于将所述缓存模块中的缓存数据转换成m比特位宽后经所述高速数据读取通道输出至所述NPU,其中N*k为m的整数倍。
5.如权利要求1所述的基于NVM进行AI计算的芯片架构,其特征在于,所述芯片架构还包括SRAM,所述SRAM通过所述总线与所述NVM阵列、所述外部接口模块、所述NPU以及所述MCU通信连接;所述SRAM用于缓存所述MCU执行所述程序过程中的数据,所述NPU运算过程中的数据以及神经网络模型运算的输入输出数据。
6.如权利要求1所述的基于NVM进行AI计算的芯片架构,其特征在于,所述NVM阵列中存储多种神经网络模型,所述AI运算指令包括算法选择指令,所述算法选择指令用于选择多个所述神经网络模型中的一个作为进行AI计算的算法。
7.如权利要求1所述的基于NVM进行AI计算的芯片架构,其特征在于,所述NVM阵列采用闪存工艺、MRAM工艺、RRAM工艺、MTP工艺、OTP工艺中的一种,和/或,所述外部接口模块的接口标准为SPI、QPI以及并行接口中的至少一种。
8.如权利要求7所述的基于NVM进行AI计算的芯片架构,其特征在于,所述MCU还用于通过所述外部接口模块接收外部用于操作所述NVM阵列的数据访问指令,所述MCU还用于基于所述数据访问指令完成对所述NVM阵列的基本操作的逻辑控制。
9.如权利要求8所述的基于NVM进行AI计算的芯片架构,其特征在于,所述NVM阵列采用SONOS闪存工艺、Floating Gate闪存工艺、Split Gate闪存工艺中的一种,所述外部接口模块的接口标准为SPI和/或QPI;
所述数据访问指令为标准的闪存操作指令;所述AI运算指令与所述数据访问指令采用相同的指令格式和规则;所述AI运算指令包括操作码,所述AI运算指令还包括地址部分和/或数据部分,所述AI运算指令的操作码与所述标准的闪存操作指令的操作码不同。
10.如权利要求5所述的基于NVM进行AI计算的芯片架构,其特征在于,所述芯片架构还包括DMA通道,所述DMA通道用于外部设备直接读写所述SRAM。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110541351.3A CN113127407A (zh) | 2021-05-18 | 2021-05-18 | 基于nvm进行ai计算的芯片架构 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110541351.3A CN113127407A (zh) | 2021-05-18 | 2021-05-18 | 基于nvm进行ai计算的芯片架构 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113127407A true CN113127407A (zh) | 2021-07-16 |
Family
ID=76782712
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110541351.3A Pending CN113127407A (zh) | 2021-05-18 | 2021-05-18 | 基于nvm进行ai计算的芯片架构 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113127407A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114897150A (zh) * | 2022-04-01 | 2022-08-12 | 中国科学技术大学苏州高等研究院 | 一种ai智能模组的可靠性设计方法 |
WO2023016030A1 (zh) * | 2021-08-11 | 2023-02-16 | 华为技术有限公司 | 神经网络参数部署方法、ai集成芯片及其相关装置 |
-
2021
- 2021-05-18 CN CN202110541351.3A patent/CN113127407A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023016030A1 (zh) * | 2021-08-11 | 2023-02-16 | 华为技术有限公司 | 神经网络参数部署方法、ai集成芯片及其相关装置 |
CN114897150A (zh) * | 2022-04-01 | 2022-08-12 | 中国科学技术大学苏州高等研究院 | 一种ai智能模组的可靠性设计方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12087386B2 (en) | Parallel access to volatile memory by a processing device for machine learning | |
CN110390385B (zh) | 一种基于bnrp的可配置并行通用卷积神经网络加速器 | |
CN110990060B (zh) | 一种存算一体芯片的嵌入式处理器、指令集及数据处理方法 | |
CN107169563B (zh) | 应用于二值权重卷积网络的处理系统及方法 | |
CN109409510B (zh) | 神经元电路、芯片、系统及其方法、存储介质 | |
CN110738316B (zh) | 基于神经网络的操作方法、装置及电子设备 | |
CN113127407A (zh) | 基于nvm进行ai计算的芯片架构 | |
CN108446764B (zh) | 一种新型神经形态芯片架构 | |
CN110176260A (zh) | 支持跳跃计算模式的存储器器件及其操作方法 | |
CN112633505B (zh) | 一种基于risc-v的人工智能推理方法和系统 | |
CN111433758A (zh) | 可编程运算与控制芯片、设计方法及其装置 | |
CN111860773B (zh) | 处理装置和用于信息处理的方法 | |
CN112988082B (zh) | 基于nvm进行ai计算的芯片系统及其运行方法 | |
Dazzi et al. | Accelerating inference of convolutional neural networks using in-memory computing | |
CN110232441B (zh) | 一种基于单向脉动阵列的堆栈式自编码系统及方法 | |
CN113065643A (zh) | 一种用于执行多任务卷积神经网络预测的装置和方法 | |
CN113157638B (zh) | 一种低功耗存储器内计算处理器和处理运算方法 | |
KR20220142333A (ko) | 데이터 재사용이 가능한 신경 프로세싱 유닛 및 그 방법 | |
CN214846708U (zh) | 基于nvm进行ai计算的芯片架构 | |
CN112748876A (zh) | 存储装置、存储控制器和操作神经处理器的方法 | |
CN117234720A (zh) | 动态可配置的存算融合数据缓存结构、处理器及电子设备 | |
KR20210060022A (ko) | 인공 지능 기능이 탑재된 스토리지 장치 및 이를 포함하는 스토리지 시스템 | |
CN116339680A (zh) | 一种实时的多端口并行读写近存处理器 | |
CN117539823A (zh) | 芯片算力控制方法、芯片及存储介质 | |
CN109147839B (zh) | 一种兼具伊辛计算和随机存储访问功能的装置及系统 |
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 |