CN111047026A - 可执行人工智能运算的存储器芯片及其操作方法 - Google Patents

可执行人工智能运算的存储器芯片及其操作方法 Download PDF

Info

Publication number
CN111047026A
CN111047026A CN201910216548.2A CN201910216548A CN111047026A CN 111047026 A CN111047026 A CN 111047026A CN 201910216548 A CN201910216548 A CN 201910216548A CN 111047026 A CN111047026 A CN 111047026A
Authority
CN
China
Prior art keywords
data
artificial intelligence
memory
intelligence engine
feature map
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.)
Granted
Application number
CN201910216548.2A
Other languages
English (en)
Other versions
CN111047026B (zh
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.)
Powerchip Technology Corp
Original Assignee
Powerchip Technology Corp
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 Powerchip Technology Corp filed Critical Powerchip Technology Corp
Publication of CN111047026A publication Critical patent/CN111047026A/zh
Application granted granted Critical
Publication of CN111047026B publication Critical patent/CN111047026B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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

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)
  • Neurology (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Image Analysis (AREA)
  • Memory System (AREA)
  • Advance Control (AREA)
  • Multi Processors (AREA)
  • Feedback Control In General (AREA)

Abstract

本发明提出一种可执行人工智能运算的存储器芯片及其操作方法。存储器芯片包括存储器阵列、存储器控制器以及人工智能引擎。存储器阵列包括多个存储器区域。所述多个存储器区域用以储存数字化输入数据以及权重数据。存储器控制器经由专属于人工智能引擎的总线来耦接至存储器阵列。人工智能引擎经由存储器控制器以及总线来存取存储器阵列,以取得数字化输入数据以及权重数据。人工智能引擎依据数字化输入数据以及权重数据来执行神经网络运算。

Description

可执行人工智能运算的存储器芯片及其操作方法
技术领域
本发明有关于一种存储器架构,且特别是有关于一种可执行人工智能(Artificial Intelligence,AI)运算的存储器芯片及其操作方法。
背景技术
随着人工智能(Artificial Intelligence,AI)运算的演进,人工智能运算的应用越来越广泛,例如经由神经网络模型来进行图像(image)分析、语音(voice)分析、自然语言(natural language)处理等神经网络运算。并且,随着神经网络的运算复杂度越来越高,目前用于执行人工智能运算的计算机设备已逐渐无法应付当前的神经网络运算需求,来提供有效且快速的运算性能。
对此,一般增进人工智能指令周期方式例如是利用现场可编程逻辑门阵列(FieldProgrammable Gate Array,FPGA)架构、特殊应用集成电路(Application-SpecificIntegrated Circuit,ASIC)架构或图形处理器(Graphics Processing Unit,GPU)架构来分担处理器(Central Processing Unit,CPU)执行高运算负载的相关神经网络运算任务,以达到加速运算的效果。然而,上述这些方式仍受限于存储器墙(memory wall)的屏障,因此其运算效能仍无法有显著的提升。有鉴于此,如何设计一种能快速执行人工智能运算的处理架构,以下将提出几个实施例的解决方案。
发明内容
本发明提供一种可执行人工智能(Artificial Intelligence,AI)运算的存储器芯片及其操作方法,可藉由整合在存储器芯片当中的人工智能引擎来直接读取储存在存储器芯片当中的数字化输入数据以及权重数据,以使人工智能引擎可快速地执行神经网络(neural network)运算。
本发明的可执行人工智能运算的存储器芯片包括存储器阵列、存储器控制器以及人工智能引擎。存储器阵列包括多个存储器区域。所述多个存储器区域用以储存数字化输入数据以及权重数据。存储器控制器经由专属于人工智能引擎的总线来耦接至存储器阵列。人工智能引擎耦接存储器控制器,以经由存储器控制器以及总线来存取存储器阵列,以取得数字化输入数据以及权重数据。人工智能引擎依据数字化输入数据以及权重数据来执行神经网络运算。
在本发明的一实施例中,上述的多个存储器区域包括多个数据缓冲区。人工智能引擎以及外部处理器交替地存取所述多个数据缓冲区,以使当人工智能引擎存取所述多个数据缓冲区的其中一个的数字化输入数据时,外部处理器同时存取所述多个数据缓冲区的其中另一个的另一数字化输入数据。
在本发明的一实施例中,上述的人工智能引擎包括第一快取单元。人工智能引擎藉由第一快取单元来预先读取所述多个存储器区域的多个数据缓冲区的其中一个的数字化输入数据。
在本发明的一实施例中,上述的总线的总线宽度大于或等于所述多个存储器区域各别的多个存储器库的各别的一整行的数据数。
在本发明的一实施例中,上述的权重数据的多个权重值或特征图数据的多个特征值依据列、库、行组合编码的地址来依序储存在所述多个存储器区域各别的多个存储器库当中。人工智能引擎依序且交错地读取所述多个存储器区域各别的所述多个存储器库的每一行,以依序取得权重数据的所述多个权重值或特征图数据的所述多个特征值。
在本发明的一实施例中,上述的多个存储器区域包括权重数据区。人工智能引擎依序且交错地读取权重数据区的多个存储器库,以取得权重数据。
在本发明的一实施例中,上述的人工智能引擎包括第二快取单元。第二快取单元的多个快取线用以预先管线式地读取所述多个存储器库的权重数据。人工智能引擎将储存在第二快取单元的所述多个快取线的权重数据依序读出,以执行神经网络运算。
在本发明的一实施例中,上述的多个存储器区域包括两个特征图数据区。人工智能引擎轮替地存取两个特征图数据区。人工智能引擎以轮替地从两个特征图数据区的其中一个的多个存储器库读取特征图数据,并且储存人工智能引擎在进行神经网络运算的过程中所产生的另一特征图数据至所述两个特征图数据区的其中另一个的多个存储器库。
在本发明的一实施例中,上述的人工智能引擎包括第三快取单元。第三快取单元的多个快取线用以预先管线式地读取所述两个特征图数据区的其中一个的所述多个存储器库的特征图数据。人工智能引擎将储存在第三快取单元的所述多个快取线的特征图数据依序读出,以执行神经网络运算。
在本发明的一实施例中,上述的人工智能引擎包括第四快取单元。第四快取单元的多个快取线用以预先储存人工智能引擎在进行神经网络运算的过程中所产生的所述另一特征图数据。人工智能引擎以管线式地将储存在第四快取单元的所述多个快取线的特征图数据依序读出,并储存至所述两个特征图数据区的其中另一个的所述多个存储器库。
本发明的可执行人工智能运算的存储器芯片的操作方法包括以下步骤:藉由人工智能引擎经由存储器控制器以及专属于人工智能引擎的总线来存取存储器阵列的多个存储器区域,以取得数字化输入数据以及权重数据;以及藉由人工智能引擎依据数字化输入数据以及权重数据来执行神经网络运算。
在本发明的一实施例中,上述的取得数字化输入数据的步骤包括:当人工智能引擎存取所述多个存储器区域的多个数据缓冲区的其中一个的数字化输入数据时,藉由外部处理器同时存取所述多个数据缓冲区的其中另一个的另一数字化输入数据。
在本发明的一实施例中,上述的取得数字化输入数据的步骤包括:藉由人工智能引擎的第一快取单元来预先读取所述多个存储器区域的多个数据缓冲区的其中一个的数字化输入数据。
在本发明的一实施例中,上述的总线的总线宽度大于或等于所述多个存储器区域各别的多个存储器库的各别的一整行的数据数。
在本发明的一实施例中,上述的权重数据的多个权重值或特征图数据的多个特征值依据列、库、行组合编码的地址来依序储存在所述多个存储器区域各别的多个存储器库当中。上述的取得权重数据的步骤包括:藉由人工智能引擎依序且交错地读取所述多个存储器区域各别的所述多个存储器库的每一行,以依序取得权重数据的所述多个权重值或特征图数据的所述多个特征值。
在本发明的一实施例中,上述的取得权重数据的步骤包括:藉由人工智能引擎依序且交错地读取所述多个存储器区域的权重数据区的多个存储器库,以取得权重数据。
在本发明的一实施例中,上述的人工智能引擎包括第二快取单元。第二快取单元的多个快取线用以预先管线式地读取所述多个存储器库的权重数据。上述的执行神经网络运算的步骤包括:藉由人工智能引擎将储存在第二快取单元的所述多个快取线的权重数据依序读出,以执行神经网络运算。
在本发明的一实施例中,上述的多个存储器区域包括两个特征图数据区。人工智能引擎轮替地存取所述两个特征图数据区。上述的操作方法还包括以下步骤:藉由人工智能引擎以轮替地从所述两个特征图数据区的其中一个的多个存储器库读取特征图数据,并且储存人工智能引擎在进行神经网络运算的过程中所产生的另一特征图数据至所述两个特征图数据区的其中另一个的所述多个存储器库。
在本发明的一实施例中,上述的人工智能引擎包括第三快取单元。第三快取单元的多个快取线用以预先管线式地读取所述两个特征图数据区的其中一个的所述多个存储器库的特征图数据。上述的执行神经网络运算的步骤包括:藉由人工智能引擎将储存在第三快取单元的所述多个快取线的特征图数据依序读出,以执行神经网络运算。
在本发明的一实施例中,上述的人工智能引擎包括第四快取单元。第四快取单元的多个快取线用以预先储存人工智能引擎在进行神经网络运算的过程中所产生的所述另一特征图数据。上述的执行神经网络运算的步骤包括:藉由人工智能引擎管线式地将储存在第四快取单元的所述多个快取线的特征图数据依序读出,并储存至所述两个特征图数据区的其中另一个的所述多个存储器库。
基于上述,本发明的可执行人工智能运算的存储器芯片及其操作方法,可藉由将人工智能引擎整合在存储器芯片当中,以使当人工智能引擎执行神经网络运算时,人工智能引擎可经由具有较大宽度的专属于人工智能引擎的总线来快速地读取存储器阵列的特定存储器区域的多个存储器库,以快速地取得执行神经网络运算所需的数字化输入数据以及权重数据。因此,本发明的可执行人工智能运算的存储器芯片及其操作方法,可提供快速的人工智能运算效能。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。
附图说明
图1是依照本发明的一实施例的存储器芯片的功能方块图。
图2是依照本发明的一实施例的存储器芯片的操作架构图。
图3是依照本发明的一实施例的人工智能引擎存取存储器区域的示意图。
图4是依照本发明的另一实施例的存储器芯片的操作架构图。
图5是依照本发明的一实施例的存储器芯片的操作方法的流程图。
符号说明
30:处理器
40:通用的存储器总线
100、200、400:存储器芯片
110、210、310、410:人工智能引擎
120:存储器控制器
130:存储器阵列
140、150:总线
231、232、431、432:数据缓冲区
233、333、433:权重数据区
311、411、412、413、414:快取
311A、311B、311C:快取线
333_1~331_N:存储器库
334_1~334_N:字线缓冲器
434、435:特征图数据区
D1、D2:数字化输入数据
W:权重数据
F1、F2:特征图数据
S510、S520:步骤
具体实施方式
为了使本发明的内容可以被更容易明了,以下特举实施例作为本发明确实能够据以实施的范例。另外,凡可能之处,在附图及实施方式中使用相同标号的元件/构件/步骤,代表相同或类似部件。
图1是依照本发明的一实施例的存储器芯片的功能方块图。参考图1,存储器芯片100包括人工智能(Artificial Intelligence,AI)引擎110、存储器控制器120以及存储器阵列130。人工智能引擎110与存储器控制器120之间通过总线(bus)140进行数据传输,并且存储器控制器120通过总线150来存取存储器阵列130。在本实施例中,存储器阵列130分为多个存储器区域,并且所述多个存储器区域各别包括多个存储器库(memory bank)。所述多个存储器区域各别用以储存特定数据(或称数据集(dataset))。并且,在一实施例中,存储器控制器120还可进一步包括多个专属存储器控制单元。所述多个专属存储器控制单元以一对一地对应于所述多个存储器区域,来分别执行数据存取动作。
在本实施例中,总线140、150为专属于人工智能引擎110,并且总线140、150的总线宽度(width)可等于或大于所述多个存储器库的各别的第一行(row)的数据数,以使总线140、150每一次存取存储器库可一次存取存储器库的第一行的每一列(column)的数据,但本发明并不限于此。在一实施例中,总线140、150的总线宽度可依据人工智能引擎110的架构设计或存储器阵列130的数据储存格式来对应设计。
在本实施例中,人工智能引擎110可例如是由控制逻辑、运算逻辑以及快取(cache)单元等诸如此类的电路元件所建构而成的存储器内运算(Processing In Memory,PIM)架构。人工智能引擎110可整合在存储器芯片100的周边电路区域,以直接通过专属的存储器控制器120以及总线140、150来存取存储器阵列130的所述多个存储器库。并且,人工智能引擎100是预先设计以具有执行特定的神经网络(neural network)运算的特征。此外,本实施例的存储器芯片100可为一种动态随机存取存储器(Dynamic Random AccessMemory,DRAM)芯片,或是基于动态随机存取存储器芯片的架构所设计而成的芯片,本发明并不限于此。
在本实施例中,当人工智能引擎110执行神经网络运算时,人工智能引擎110通过直接存取储存在存储器阵列130当中的数字化输入数据以及权重(weight)数据,并且依据数字化输入数据以及权重数据来快速执行神经网络运算。此外,本实施例所述神经网络运算可例如是执行深度学习网络(Deep Neural Networks,DNN)运算或卷积神经网络(Convolutional Neural Networks,CNN)运算等,本发明并不加以限制。
图2是依照本发明的一实施例的存储器芯片的操作架构图。参考图2,存储器芯片200可具有如图1实施例的存储器芯片100的架构。在本实施例中,存储器芯片200经由通用的存储器总线40与处理器30进行数据传输。存储器芯片200的存储器阵列的多个存储器区域分类为数据缓冲区231、232以及权重数据区233,并且数据缓冲区231、232以及权重数据区233各别对应于存储器阵列的不同的多个存储器库。也就是说,数据缓冲区231、232以及权重数据区233各别地被执行存取操作。
在本实施例中,通用的存储器总线40由于受限于通用的数据传输条件,以致于其总线宽度与带宽有限。然而,本实施例的人工智能引擎210无须通过包括与外部处理器30耦接的通用的存储器总线40来存取存储器阵列,而是通过存储器芯片200内部的专属总线来存取料缓冲区231、232以及权重数据区233。因此,本实施例的存储器控制器120可依据特定的数据存取模式来快速地存取存储器阵列130。
在本实施例中,处理器30设置于存储器芯片200外,并且可例如是中央处理单元(Central Processing Unit,CPU),或是其他可编程的一般用途或特殊用途的图像信号处理器(Image Signal Processor,ISP)、微处理器(Microprocessor)、数字信号处理器(Digital Signal Processor,DSP)、可编程控制器、特殊应用集成电路(ApplicationSpecific Integrated Circuits,ASIC)、可编程逻辑设备(Programmable Logic Device,PLD)、其他类似处理器或这些处理器电路的组合。
以处理器30为一种图像信号处理器为例,数据缓冲区231、232储存的数字化输入数据D1、D2可为图像数据,并且人工智能引擎210预先设计为可执行相应的特定神经网络运算。人工智能引擎210可对经由处理器30提供的图像数据进行神经网络运算,以分析图像数据当中的特定内容信息。因此,当人工智能引擎210执行神经网络运算时,人工智能引擎210读取数据缓冲区231以及权重数据区233,以取得对应于当前的图像数据的数字化输入数据D1以及执行神经网络运算所需的权重数据W。同时,处理器30储存对应于下一笔图像数据的数字化输入数据D2至数据缓冲区232。接着,当处理器30完成储存动作后,人工智能引擎210立即接续读取数据缓冲区232来取得对应于下一笔图像数据的数字化输入数据D2,以接续进行运算,并且处理器30也立即转换为对数据缓冲区231内的数据进行更新。
也就是说,由于处理器30是通过通用的存储器总线40来存取存储器芯片200的存储器阵列中的数据缓冲区232,而人工智能引擎210是通过专属的总线来直接读取数据缓冲区231。处理器30与人工智能引擎210可进行并行处理(parallel processing)操作,而无须共享同一条总线以致需等待对方完成存取动作后才能分别接续执行存取。因此,本实施例的人工智能引擎210以及外部的处理器30交替地存取数据缓冲区231、232,以快速地且连续地执行神经网络运算,并且可有效节省数据存取的总线等待时间。
图3是依照本发明的一实施例的人工智能引擎存取存储器区域的示意图。参考图3,人工智能引擎310包括快取单元311。快取单元311包括快取线(cache line)311A~311C,但本发明各实施例所述的快取单元的快取线的数量并不限于图3。存储器区域333包括存储器库333_1~333_N,其中N为大于1的正整数。存储器库333_1~333_N分别包括字线缓冲器(word line buffer)334_1~334_N。在本实施例中,快取单元311的快取线311A~311C用以经由预先读取存储器库333_1~333_N的字线缓冲器334_1~334_N来取得数据。对此,存储器区域333可例如储存用于执行深度学习网络运算或深度神经网络运算所需的数据,如数字化输入数据、权重数据或特征图(feature map)数据等,并且数字化输入数据、权重数据或特征图数据是依序储存在存储器库311_1~311_N当中。
值得注意的是,神经网络运算所需的权重数据的多个权重值以及特征图数据的多个特征值皆具有特定的存取顺序特性来读入神经网络模型当中。因此,存储器控制器可利用此特性将权重数据以及特征图数据以有序的形式储存在存储器阵列中,来加速存储器存取并进一步隐藏存储器延迟。对此,如以下表1地址编码原则所示,权重数据的权重值w0~w11以及特征图数据的特征值f0~f11依序放置于连续地址空间中,但因依其地址编码原则,地址编码中的高位部分、中位部分以及低位部分分别代表了所要存放于存储器中列(column)地址、库(Bank)地址以及行(Row)地址。如此,存储器控制器就会依照顺序来依序储存于各别的权重数据区的对应存储器库的对应行的对应列中。
以权重数据为例,权重数据的连续权重值w0~w11可依据表1的地址编码原则所示将列、库、行组合编码成为地址来依序储存于权重数据区333的存储器库333_1~333_3当中。需说明的是,以下表1的库地址000、001、010依序对应于存储器库333_1~333_3。在此例中,权重值w0~w3依据列、库、行组合编码地址的顺序先储存在权重数据区333的存储器库333_1的第一行(对应于行地址000)的每一列(对应于列地址00、01、10、11)中,然后权重值w4~w7储存在存储器库333_2的第一行(对应于行地址000)的每一列(对应于列地址00、01、10、11)中,再来w8~w11储存在存储器库333_3的第一行(对应于行地址000)的每一列(对应于列地址00、01、10、11)中。
Figure BDA0002002249940000091
表1
在此例中,每一个存储器库333_1~333_3可被单独执行存取操作,因此当人工智能引擎310执行神经网络运算时,人工智能引擎310的快取单元311可基于存储器交错(memory interleaving)存取机制以及依据相对应的地址顺序(如表1所示的地址顺序)以管线式(pipelining)地依序读取存储器库333_1~333_3(对应于库地址000、001、010)中的一整行(此例中对应于行地址000)数据,以依序取得执行神经网络运算所需的权重值w0~w11。
进一步而言,存储器库333_1~333_3的字线缓冲器334_1~334_3会预先将存储器库333_1~333_3各自的第一行(此例中对应于行地址000)的数据读出,以使快取线311A、311B、311C可预先交错地取得存储器库333_1~333_3各别第一行的权重数据(权重值w0~w11)。换言之,人工智能引擎310是通过具有较大宽度的专属的总线以及专属的存储器控制器来读取权重数据区333,并且所述专属的总线的宽度可等于或大于存储器库333_1~333_N的各别一整行的数据数。接着,人工智能引擎310将储存在快取单元311的这些快取线311A、311B、311C的权重数据(权重值w0~w11)依序读出,以执行神经网络运算。
再举例而言,当权重数据(权重值w0~w11)被交错的搬至快取线311A~B并被人工智能引擎310陆续使用时,存储器库333_4~333_6的字线缓冲器334_4~334_6会预先由存储器库333_4~333_6读出各自的一整行的数据(延续表1,例如是权重值w12~w23)。以此类推,人工智能引擎310可依神经网络运算模式来有效率地且准确地读取权重数据,以达到可快速执行神经网络运算的效果。更重要的是,本实施例的人工智能引擎310藉由交错的读取存储器区域的多个存储器库的方式,可有效地克服行地址至列地址延迟时间(RAS-to-CASDelay,tRCD)以及行地址预充电时间(RAS Precharge Time,tRP)的时间延迟影响。
另外,本实施例所述的特征图数据亦可如同以上述权重数据的方式来储存以及读取,因此不再赘述。并且,表1仅用于表示部分权重数据以及部分特征图数据的一种地址编码顺序方式,而本发明的权重数据以及特征图数据的数据量以及地址编码的长度与顺序并不限于表1所示。
图4是依照本发明的另一实施例的存储器芯片的操作架构图。参考图4,存储器芯片400可具有如图1实施例的存储器芯片100的架构。在本实施例中,存储器芯片400经由通用的存储器总线与外部的处理器进行数据传输。存储器芯片400的存储器阵列的多个存储器区域分类为数据缓冲区431、432、权重数据区433以及特征图数据区434、435。在本实施例中,数据缓冲区431、432、权重数据区433以及特征图数据区434、435各别对应于存储器阵列的不同的多个存储器库。也就是说,数据缓冲区431、432、权重数据区433以及特征图数据区434、435各别地被执行存取操作。
在本实施例中,人工智能引擎410可例如执行卷积神经网络运算。人工智能引擎410经由专属的存储器控制器以及专属的总线来存取数据缓冲区431、432、权重数据区433以及特征图数据区434、435,其中人工智能引擎410轮替地存取特征图数据区434、435。举例而言,首先,当人工智能引擎410读取数据缓冲区431的数字化输入数据D1来进行卷积(convolution)神经网络运算后,人工智能引擎410产生第一笔特征图数据F1。人工智能引擎410将第一笔特征图数据F1储存至特征图数据区434。接着,当人工智能引擎410执行下一步池化(pooling)神经网络运算时,人工智能引擎410读取特征图数据区434的第一笔特征图数据F1来进行运算,并且产生第二笔特征图数据F2。人工智能引擎410将第二笔特征图数据F2储存至特征图数据区435。以此类推,人工智能引擎410轮替地从特征图数据区434或435的多个存储器库读取先前经运算所取得的特征图数据,然后储存在进行神经网络运算的过程中所产生的当前特征图数据至相对应的特征图数据区435或434的多个存储器库。此外,在本实施例中,数据缓冲区432可同时被外部的处理器储存或读取数字化输入数据D2。本实施并不仅限于卷积(convolution)神经网络,本实施亦可应用于其它类型网络。
在本实施例中,人工智能引擎410可包括多个快取单元411~414。快取单元411用以预先读取数据缓冲区431的数字化输入数据D1或数据缓冲区432的数字化输入数据D2。快取单元412用以预先管线式地读取权重数据区433的权重数据W。快取单元413、414用以预先管线式地读取特征图数据区434、435的其中一个的特征图数据F1。换言之,人工智能引擎410藉由设置多个快取单元411~414来预先管线式地读取数据,以加快神经网络运算的速度。值得注意的是,权重数据W的多个权重值可如上述表1的地址编码方式来储存在权重数据区433的多个存储器库当中,并且人工智能引擎410的快取单元412依据同样的地址编码顺序来依序预先管线式地读取权重数据区433的所述多个存储器库,以依序取得权重数据W的所述多个权重值。
特征图数据F1的多个特征值可同样如上述表1的地址编码方式来储存在特征图数据区434的多个存储器库当中,并且人工智能引擎410的快取单元413依据同样的地址编码顺序来依序预先管线式地读取特征图数据区434的所述多个存储器库,以依序取得特征图数据F1的所述多个特征值。并且,人工智能引擎410将在执行神经网络运算的过程中所产生的特征图数据F2依序预先储存至快取单元414,并且以管线式地将储存在快取单元414的多个快取线的特征图数据依序读出,并储存至特征图数据区435。
换言之,本实施例的人工智能引擎410轮替地从特征图数据区434、435的多个存储器库读取先前产生的特征图数据以及储存人工智能引擎410在进行神经网络运算的过程中所产生的当前特征图数据。因此,本实施例的人工智能引擎410可快速地取得数字化输入数据D1以及权重数据W。并且,在执行神经网络运算的过程中,人工智能引擎410可快速地且连续地存取特征图数据区434、435,以达到可快速地进执行神经网络运算的功效。
另外,关于本实施例的存储器芯片400的其他内部元件特征、实施方式、相关技术特征可参照上述图1~图3的各个实施例的说明,而获致足够的教示、建议以及实施说明,因此不再赘述。
图5是依照本发明的一实施例的存储器芯片的操作方法的流程图。图5的操作流程可例如适用于图1、图2以及图4实施例的存储器芯片100、200、400。参考图1以及图5,以图1的存储器芯片100为例,存储器芯片100可执行步骤S510、S520。在步骤S510中,存储器芯片100的人工智能引擎110经由存储器控制器120以及专属于人工智能引擎110的总线来存取存储器阵列130的多个存储器区域,以取得数字化输入数据以及权重数据。在步骤S520中,存储器芯片100的人工智能引擎110依据数字化输入数据以及权重数据来执行神经网络运算。因此,本实施例的存储器芯片的操作方法可实现藉由整合在存储器芯片100中的人工智能引擎110来快速地执行神经网络运算的功效。
另外,关于本实施例的存储器芯片100的其他内部元件特征、实施方式、相关技术特征可参照上述图1~图4的各个实施例的说明,而获致足够的教示、建议以及实施说明,因此不再赘述。
综上所述,本发明的可执行人工智能运算的存储器芯片及其操作方法,可藉由将人工智能引擎整合在存储器芯片当中,并且可通过专属于人工智能引擎的存储器控制器以及总线以神经网络运算专有的运算模式来快速地存取存储器阵列的多个存储器区域,其中本发明的专属于人工智能引擎的总线宽度不受限于通用的总线宽度规范,而可提供较高的数据传输效能。并且,本发明的人工智能运算所需的数据的存取方式可依据特定的地址顺序来存取在对应的存储器区域的多个存储器库当中,以有效地克服行地址至列地址延迟时间以及行地址预充电时间的时间延迟影响。因此,本发明的可执行人工智能运算的存储器芯片及其操作方法,可提供快速的人工智能运算效能。
虽然本发明已以实施例揭露如上,然其并非用以限定本发明,任何所属技术领域中的普通技术人员,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,故本发明的保护范围当视所附的权利要求所界定者为准。

Claims (20)

1.一种可执行人工智能运算的存储器芯片,包括:
一存储器阵列,包括多个存储器区域,其中所述多个存储器区域用以储存一数字化输入数据以及一权重数据;
一存储器控制器,经由专属于所述人工智能引擎的一总线来耦接至所述存储器阵列;以及
一人工智能引擎,耦接所述存储器控制器,并且用以经由所述存储器控制器以及所述总线来存取所述多个存储器区域,以取得所述数字化输入数据以及所述权重数据,
其中所述人工智能引擎依据所述数字化输入数据以及所述权重数据来执行一神经网络运算。
2.如权利要求1所述的存储器芯片,其中所述多个存储器区域包括多个数据缓冲区,并且所述人工智能引擎以及一外部处理器交替地存取所述多个数据缓冲区,以使当所述人工智能引擎存取所述多个数据缓冲区的其中一个的所述数字化输入数据时,所述外部处理器同时存取所述多个数据缓冲区的其中另一个的另一数字化输入数据。
3.如权利要求1所述的存储器芯片,其中所述人工智能引擎包括一第一快取单元,并且所述人工智能引擎藉由所述第一快取单元来预先读取所述多个存储器区域的多个数据缓冲区的其中一个的所述数字化输入数据。
4.如权利要求1所述的存储器芯片,其中所述总线的一总线宽度大于或等于所述多个存储器区域各别的多个存储器库的各别的一整行的数据数。
5.如权利要求1所述的存储器芯片,其中所述权重数据的多个权重值或一特征图数据的多个特征值依据列、库、行组合编码的地址的顺序来依序储存在所述多个存储器区域各别的多个存储器库当中,并且所述人工智能引擎依序且交错地读取所述多个存储器区域各别的所述多个存储器库的每一行,以依序取得所述权重数据的所述多个权重值或所述特征图数据的所述多个特征值。
6.如权利要求1所述的存储器芯片,其中所述多个存储器区域包括一权重数据区,并且所述人工智能引擎依序且交错地读取所述权重数据区的多个存储器库,以取得所述权重数据。
7.如权利要求6所述的存储器芯片,其中所述人工智能引擎包括一第二快取单元,并且所述第二快取单元的多个快取线用以预先管线式地读取所述多个存储器库的所述权重数据,
其中所述人工智能引擎将储存在所述第二快取单元的所述多个快取线的所述权重数据依序读出,以执行所述神经网络运算。
8.如权利要求1所述的存储器芯片,其中所述多个存储器区域包括两个特征图数据区,并且所述人工智能引擎轮替地存取所述两个特征图数据区,
其中所述人工智能引擎以轮替地从所述两个特征图数据区的其中一个的多个存储器库读取一特征图数据,并且储存所述人工智能引擎在进行所述神经网络运算的过程中所产生的另一特征图数据至所述两个特征图数据区的其中另一个的多个存储器库。
9.如权利要求8所述的存储器芯片,其中所述人工智能引擎包括一第三快取单元,并且所述第三快取单元的多个快取线用以预先管线式地读取所述两个特征图数据区的其中一个的所述多个存储器库的所述特征图数据,
其中所述人工智能引擎将储存在所述第三快取单元的所述多个快取线的所述特征图数据依序读出,以执行所述神经网络运算。
10.如权利要求8所述的存储器芯片,其中所述人工智能引擎包括一第四快取单元,并且所述第四快取单元的多个快取线用以预先储存所述人工智能引擎在进行所述神经网络运算的过程中所产生的所述另一特征图数据,
其中所述人工智能引擎以管线式地将储存在所述第四快取单元的所述多个快取线的所述特征图数据依序读出,并储存至所述两个特征图数据区的其中另一个的所述多个存储器库。
11.一种可执行人工智能运算的存储器芯片的操作方法,包括:
藉由一人工智能引擎经由一存储器控制器以及专属于所述人工智能引擎的一总线来存取一存储器阵列的多个存储器区域,以取得一数字化输入数据以及一权重数据;以及
藉由所述人工智能引擎依据所述数字化输入数据以及所述权重数据来执行一神经网络运算。
12.如权利要求11所述的操作方法,其中取得所述数字化输入数据的步骤包括:
当所述人工智能引擎存取所述多个存储器区域的多个数据缓冲区的其中一个的所述数字化输入数据时,藉由一外部处理器同时存取所述多个数据缓冲区的其中另一个的另一数字化输入数据。
13.如权利要求11所述的操作方法,其中取得所述数字化输入数据的步骤包括:
藉由所述人工智能引擎的一第一快取单元来预先读取所述多个存储器区域的多个数据缓冲区的其中一个的所述数字化输入数据。
14.如权利要求11所述的操作方法,其中所述总线的一总线宽度大于或等于所述多个存储器区域各别的多个存储器库的各别的一整行的数据数。
15.如权利要求11所述的操作方法,其中所述权重数据的多个权重值或一特征图数据的多个特征值依据列、库、行组合编码的地址的顺序来依序储存在所述多个存储器区域各别的多个存储器库当中,并且取得所述权重数据的步骤包括:
藉由所述人工智能引擎依序且交错地读取所述多个存储器区域各别的所述多个存储器库的每一行,以依序取得所述权重数据的所述多个权重值或所述特征图数据的所述多个特征值。
16.如权利要求11所述的操作方法,其中取得所述权重数据的步骤包括:
藉由所述人工智能引擎依序且交错地读取所述多个存储器区域的一权重数据区的多个存储器库,以取得所述权重数据。
17.如权利要求16所述的操作方法,其中所述人工智能引擎包括一第二快取单元,并且所述第二快取单元的多个快取线用以预先管线式地读取所述多个存储器库的所述权重数据,
其中执行所述神经网络运算的步骤包括:
藉由所述人工智能引擎将储存在所述第二快取单元的所述多个快取线的所述权重数据依序读出,以执行所述神经网络运算。
18.如权利要求11所述的操作方法,其中所述多个存储器区域包括两个特征图数据区,并且所述人工智能引擎轮替地存取所述两个特征图数据区,
其中所述操作方法还包括:
藉由所述人工智能引擎以轮替地从所述两个特征图数据区的其中一个的多个存储器库读取一特征图数据,并且储存所述人工智能引擎在进行所述神经网络运算的过程中所产生的另一特征图数据至所述两个特征图数据区的其中另一个的所述多个存储器库。
19.如权利要求18所述的操作方法,其中所述人工智能引擎包括一第三快取单元,并且所述第三快取单元的多个快取线用以预先管线式地读取所述两个特征图数据区的其中一个的所述多个存储器库的所述特征图数据,
其中执行所述神经网络运算的步骤包括:
藉由所述人工智能引擎将储存在所述第三快取单元的所述多个快取线的所述特征图数据依序读出,以执行所述神经网络运算。
20.如权利要求18所述的操作方法,其中所述人工智能引擎包括一第四快取单元,并且所述第四快取单元的多个快取线用以预先储存所述人工智能引擎在进行所述神经网络运算的过程中所产生的所述另一特征图数据,
其中执行所述神经网络运算的步骤包括:
藉由所述人工智能引擎管线式地将储存在所述第四快取单元的所述多个快取线的所述特征图数据依序读出,并储存至所述两个特征图数据区的其中另一个的所述多个存储器库。
CN201910216548.2A 2018-10-11 2019-03-21 可执行人工智能运算的存储器芯片及其操作方法 Active CN111047026B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201862744140P 2018-10-11 2018-10-11
US62/744,140 2018-10-11

Publications (2)

Publication Number Publication Date
CN111047026A true CN111047026A (zh) 2020-04-21
CN111047026B CN111047026B (zh) 2023-08-25

Family

ID=70231305

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201910216548.2A Active CN111047026B (zh) 2018-10-11 2019-03-21 可执行人工智能运算的存储器芯片及其操作方法
CN201910288360.9A Active CN111045979B (zh) 2018-10-11 2019-04-11 基于存储器处理器的多处理架构及其操作方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201910288360.9A Active CN111045979B (zh) 2018-10-11 2019-04-11 基于存储器处理器的多处理架构及其操作方法

Country Status (2)

Country Link
CN (2) CN111047026B (zh)
TW (2) TWI714003B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111149166A (zh) * 2017-07-30 2020-05-12 纽罗布拉德有限公司 基于存储器的分布式处理器架构

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112214447B (zh) * 2020-10-10 2024-09-10 声龙(新加坡)私人有限公司 工作量证明运算芯片集群数据动态重构方法、系统和装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102667752A (zh) * 2009-10-21 2012-09-12 美光科技公司 具有内部处理器的存储器及存储器中的数据通信方法
US20170277659A1 (en) * 2016-03-23 2017-09-28 Gsi Technology Inc. In memory matrix multiplication and its usage in neural networks
CN107704922A (zh) * 2017-04-19 2018-02-16 北京深鉴科技有限公司 人工神经网络处理装置
US20180075339A1 (en) * 2016-09-09 2018-03-15 SK Hynix Inc. Neural network hardware accelerator architectures and operating method thereof
CN108022615A (zh) * 2016-10-28 2018-05-11 三星电子株式会社 动态随机存取存储器处理单元

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7614053B2 (en) * 2004-02-20 2009-11-03 Sony Computer Entertainment Inc. Methods and apparatus for task management in a multi-processor system
JP2006031480A (ja) * 2004-07-16 2006-02-02 Sony Corp 情報処理システム及び情報処理方法、並びにコンピュータプログラム
US7209405B2 (en) * 2005-02-23 2007-04-24 Micron Technology, Inc. Memory device and method having multiple internal data buses and memory bank interleaving
CN101165655A (zh) * 2006-10-20 2008-04-23 国际商业机器公司 多处理器计算系统及其任务分配方法
CN103473181B (zh) * 2007-01-26 2017-06-13 英特尔公司 分级式不可变内容可寻址存储器处理器
JP5084310B2 (ja) * 2007-03-16 2012-11-28 日本電気株式会社 複数プロセッサに分散されたデータを再配置可能なデータベースサーバ、再配置方法、およびプログラム
US8418181B1 (en) * 2009-06-02 2013-04-09 Amazon Technologies, Inc. Managing program execution based on data storage location
US20120151232A1 (en) * 2010-12-12 2012-06-14 Fish Iii Russell Hamilton CPU in Memory Cache Architecture
US9836277B2 (en) * 2014-10-01 2017-12-05 Samsung Electronics Co., Ltd. In-memory popcount support for real time analytics
EP3035249B1 (en) * 2014-12-19 2019-11-27 Intel Corporation Method and apparatus for distributed and cooperative computation in artificial neural networks
US9747546B2 (en) * 2015-05-21 2017-08-29 Google Inc. Neural network processor
US20170046102A1 (en) * 2015-08-14 2017-02-16 Marvell World Trade Ltd. Flexible interface for nand flash memory
US20180115496A1 (en) * 2016-10-21 2018-04-26 Advanced Micro Devices, Inc. Mechanisms to improve data locality for distributed gpus
TWI634490B (zh) * 2016-11-14 2018-09-01 美商耐能股份有限公司 卷積運算裝置及卷積運算方法
CN106934457B (zh) * 2017-03-08 2019-12-06 杭州领芯电子有限公司 一种可灵活时分复用的脉冲神经元实现架构

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102667752A (zh) * 2009-10-21 2012-09-12 美光科技公司 具有内部处理器的存储器及存储器中的数据通信方法
US20170277659A1 (en) * 2016-03-23 2017-09-28 Gsi Technology Inc. In memory matrix multiplication and its usage in neural networks
US20180075339A1 (en) * 2016-09-09 2018-03-15 SK Hynix Inc. Neural network hardware accelerator architectures and operating method thereof
CN108022615A (zh) * 2016-10-28 2018-05-11 三星电子株式会社 动态随机存取存储器处理单元
CN107704922A (zh) * 2017-04-19 2018-02-16 北京深鉴科技有限公司 人工神经网络处理装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111149166A (zh) * 2017-07-30 2020-05-12 纽罗布拉德有限公司 基于存储器的分布式处理器架构
CN111149166B (zh) * 2017-07-30 2024-01-09 纽罗布拉德有限公司 基于存储器的分布式处理器架构

Also Published As

Publication number Publication date
TWI690848B (zh) 2020-04-11
TWI714003B (zh) 2020-12-21
CN111045979B (zh) 2023-12-19
TW202014882A (zh) 2020-04-16
CN111045979A (zh) 2020-04-21
TW202014937A (zh) 2020-04-16
CN111047026B (zh) 2023-08-25

Similar Documents

Publication Publication Date Title
CN109598338B (zh) 一种基于fpga的计算优化的卷积神经网络加速器
JP6912535B2 (ja) 人工知能動作を実行できるメモリチップおよびその方法
US10990524B2 (en) Memory with processing in memory architecture and operating method thereof
CN108765247A (zh) 图像处理方法、装置、存储介质及设备
CN112667528A (zh) 一种数据预取的方法及相关设备
CN111008040A (zh) 缓存装置及缓存方法、计算装置及计算方法
JP7201802B2 (ja) 3次元画像処理におけるデータの読み書き方法とシステム、記憶媒体及び端末
CN111047026B (zh) 可执行人工智能运算的存储器芯片及其操作方法
CN110738317A (zh) 基于fpga的可变形卷积网络运算方法、装置和系统
WO2021158776A1 (en) Interleaving memory requests to accelerate memory accesses
CN111753962B (zh) 一种加法器、乘法器、卷积层结构、处理器及加速器
KR20230081697A (ko) 팽창 컨볼루션 계산 가속화 방법 및 장치
CN114925001A (zh) 处理器、页表预取方法、电子设备
Kim et al. ComPreEND: Computation pruning through predictive early negative detection for ReLU in a deep neural network accelerator
CN110490312B (zh) 一种池化计算方法和电路
US20230385258A1 (en) Dynamic random access memory-based content-addressable memory (dram-cam) architecture for exact pattern matching
CN111047029B (zh) 具有存储器内运算架构的存储器及其操作方法
CN109800867B (zh) 一种基于fpga片外存储器的数据调用方法
CN113128688B (zh) 通用型ai并行推理加速结构以及推理设备
US12094531B2 (en) Caching techniques for deep learning accelerator
CN109816093B (zh) 一种单路式卷积实现方法
CN113095024A (zh) 一种张量数据的区域化并行载入装置及方法
CN113407258A (zh) 一种存算一体架构的自适应资源配置布局布线方法及系统
CN116438525A (zh) 将数据从数据存储器加载到数据缓存的方法和计算装置
Wijeratne et al. Programmable fpga-based memory controller

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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20230719

Address after: Hsinchu Science Industrial Park, Taiwan, China

Applicant after: Powerchip Technology Corp.

Address before: Hsinchu Science Industrial Park, Taiwan, China

Applicant before: Powerchip Technology Corp.

GR01 Patent grant
GR01 Patent grant