CN112819134B - 包括神经网络处理电路的存储器装置 - Google Patents
包括神经网络处理电路的存储器装置 Download PDFInfo
- Publication number
- CN112819134B CN112819134B CN202010671608.2A CN202010671608A CN112819134B CN 112819134 B CN112819134 B CN 112819134B CN 202010671608 A CN202010671608 A CN 202010671608A CN 112819134 B CN112819134 B CN 112819134B
- Authority
- CN
- China
- Prior art keywords
- data
- calculation
- pieces
- input
- block
- 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
- 238000012545 processing Methods 0.000 title claims abstract description 275
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 97
- 238000004364 calculation method Methods 0.000 claims abstract description 535
- 238000012546 transfer Methods 0.000 claims abstract description 61
- 210000004460 N cell Anatomy 0.000 claims abstract description 31
- 210000004027 cell Anatomy 0.000 claims abstract description 13
- 230000004044 response Effects 0.000 claims description 79
- 230000005540 biological transmission Effects 0.000 claims description 12
- 125000004122 cyclic group Chemical group 0.000 claims description 11
- 102100025450 DNA replication factor Cdt1 Human genes 0.000 description 36
- 101000914265 Homo sapiens DNA replication factor Cdt1 Proteins 0.000 description 36
- 239000010410 layer Substances 0.000 description 26
- 101150077079 RDT1 gene Proteins 0.000 description 24
- 210000002569 neuron Anatomy 0.000 description 15
- 238000010586 diagram Methods 0.000 description 13
- 102100021215 Denticleless protein homolog Human genes 0.000 description 10
- 101000968287 Homo sapiens Denticleless protein homolog Proteins 0.000 description 10
- 238000000034 method Methods 0.000 description 9
- 210000000225 synapse Anatomy 0.000 description 5
- 101150005545 CDT3 gene Proteins 0.000 description 4
- 239000002356 single layer Substances 0.000 description 3
- 238000013527 convolutional neural network Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 101100134058 Caenorhabditis elegans nth-1 gene Proteins 0.000 description 1
- 238000001530 Raman microscopy Methods 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000005294 ferromagnetic effect Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000005291 magnetic effect Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 230000003068 static effect Effects 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
- 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/045—Combinations of networks
-
- 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/0207—Addressing or allocation; Relocation with multidimensional access, e.g. row/column, matrix
-
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0284—Multiple user address space allocation, e.g. using different base addresses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- 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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1051—Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1078—Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Human Computer Interaction (AREA)
- Neurology (AREA)
- Memory System (AREA)
- Image Processing (AREA)
- Complex Calculations (AREA)
Abstract
本公开涉及一种存储器装置,包括:N个单元阵列区域;计算处理块,适用于通过对输入数据执行网络级操作来生成计算完成数据,该网络级操作表示在循环中重复M次层级操作的操作,该层级操作表示并行地执行N次神经网络计算的操作;数据操作块,适用于将输入数据和(M*N)条神经网络处理信息存储在N个单元阵列区域中,并且通过数据传送缓冲器输出计算完成数据;以及操作控制块,适用于控制计算处理块和数据操作块。
Description
相关申请的交叉引用
本申请要求于2019年11月18日提交的申请号为10-2019-0147555的韩国专利申请的优先权,该韩国专利申请的公开内容通过引用整体并入本文。
技术领域
示例性实施例涉及一种存储器系统,更特别地,涉及一种包括神经网络处理电路的存储器装置。
背景技术
神经网络是通过对人脑的神经元建模来配置的,也被称为ANN(人工神经网络),这旨在强调神经元不是真实神经元的事实。
神经网络处理操作是用于卷积神经网络(CNN)或递归神经网络(RNN)的基本技术,其对应于机器学习技术之中的深度学习技术。神经网络处理操作可以用于处理多层感知(MLP)。
参照图1,用于处理MLP的神经网络可以包括多个层1至5,多个层1至5中的一层可以包括多个神经元。也就是说,可以对每个神经元进行数学建模,可以通过根据所需算法对多个神经元进行分组来配置一个层1、2、3、4或5,并且可以通过根据所需算法对多个层1至5进行分组来配置神经网络。
通常,起始处的层1可以被称为“输入层”,末端处的层5可以被称为“输出层”,并且输入层1和输出层5之间的层(该示例中的层2至4)可以被称为“隐藏层”。
彼此相邻的不同层中包括的神经元可以通过突触以各种方式连接,并且可以将权重赋予每个突触。此外,可以根据输入数据来确定输入层1中的神经元的值。此外,可以根据先前层中的神经元和突触来计算隐藏层2至4中的每一个和输出层5中的神经元的值。
发明内容
各个实施例涉及一种包括能够执行神经网络处理的神经网络处理电路的存储器装置。
在实施例中,一种存储器装置可以包括:N个单元阵列区域;计算处理块,适用于在计算模式的计算时段期间通过对输入数据执行网络级操作来生成计算完成数据,该网络级操作表示在循环中重复M次层级操作的操作,该层级操作表示从N个单元阵列区域并行地加载N条神经网络处理信息并且并行地执行N次神经网络计算的操作;数据操作块,适用于在输入时段将通过数据传送缓冲器输入的输入数据和(M*N)条神经网络处理信息存储在N个单元阵列区域中,并且在输出时段通过数据传送缓冲器输出计算完成数据;以及操作控制块,适用于响应于通过输入缓冲器输入的命令和地址,控制进入和退出输入时段、计算时段和输出时段,并且控制计算处理块和数据操作块,其中N和M可以是等于或大于2的自然数。
在正常模式下,数据操作块在写入操作期间将通过数据传送缓冲器输入的数据存储在N个单元阵列区域中,并可以在读取操作期间读取N个单元阵列区域中的数据并且通过数据传送缓冲器输出所读取的数据,并且操作控制块可以响应于通过输入缓冲器输入的命令和地址而控制进入和退出正常模式以及控制数据操作块。
(M*N)条神经网络处理信息可以包括(M*N)条权重信息和(M*N)条计算信息,并且操作控制块在输入时段可以控制数据操作块,以将M条权重信息和M条计算信息存储在各个N个单元阵列区域中。
操作控制块可以响应于通过输入缓冲器输入的计算输入命令进入输入时段,并且可以响应于通过输入缓冲器输入的地址,控制数据操作块将输入数据、M条权重信息和M条计算信息存储在各个N个单元阵列区域中。
操作控制块可以响应于通过输入缓冲器输入的计算开始命令而退出输入时段,然后进入计算时段,可以响应于通过输入缓冲器输入的地址而控制层级操作和网络级操作,并且可以响应于从计算处理块传送的计算完成信号而控制数据操作块将计算完成数据存储在N个单元阵列区域中。
操作控制块可以响应于通过输入缓冲器输入的计算完成命令而退出计算时段,然后进入输出时段,可以响应于通过输入缓冲器输入的地址,控制数据操作块从N个单元阵列区域读取计算完成数据,并且可以通过数据传送缓冲器输出所读取的计算完成数据。
在进入计算时段之后,操作控制块可以重复加载操作M次以对应于网络级操作,该加载操作表示以下操作:控制数据操作块从N个单元阵列区域并行地读取N个单元阵列区域中存储的(M*N)条权重信息和(M*N)条计算信息之中的N条权重信息和N条计算信息,以对应于层级操作,然后可以将所读取的信息加载到计算处理块。
操作控制块可以响应于进入计算时段而执行第一加载操作,并且可以分别响应于从计算处理块传送的中间完成信号而执行第二至第M加载操作。
输入数据可以包括N条第一输入数据,并且计算完成数据可以包括N条第一计算完成数据,在进入输入时段之后,操作控制块可以控制数据操作块将N条第一输入数据以一条第一输入数据的方式而存储在各个N个单元阵列区域中。
操作控制块可以控制数据操作块:响应于进入计算时段,将从各个N个单元阵列区域并行地读取的N条第一输入数据加载到计算处理块,当从计算处理块输出计算完成信号和N条第一计算完成数据时,将N条第一计算完成数据以一条第一计算完成数据的方式而存储在各个N个单元阵列区域中。
操作控制块可以控制数据操作块:响应于进入输出时段,从N个单元阵列区域并行地读取N条第一计算完成数据,并且通过数据传送缓冲器输出所读取的N条第一计算完成数据。
计算处理块可以通过对响应于进入计算时段而加载的N条第一输入数据并行地执行第一层级操作中包括的N次神经网络计算来生成N条循环数据,在第二至第M层级操作中的每个期间,该计算处理块可以在当前层级操作中加载作为先前层级操作的结果而生成的N条循环数据,并可以并行地执行N次神经网络计算,该计算处理块可以将作为第M层级操作的结果而生成的N条循环数据作为N条第一计算完成数据输出到该数据操作块,N条第一计算完成数据是网络级操作的结果。
计算处理块可以对层级操作完成的次数进行计数;每当计数值增加1时,计算处理块可以生成中间完成信号并且可以将中间完成信号输出到操作控制块,直到计数值变为(M-1)为止;当计数值变为M时,计算处理块可以生成计算完成信号,并且可以将计算完成信号输出到操作控制块。
输入数据可以包括(K*N)条第二输入数据,并且计算完成数据可以包括(K*N)条第二计算完成数据;在进入输入时段之后,操作控制块可以控制数据操作块在N个单元阵列区域的每个中存储K条第二输入数据;计算处理块可以通过对(K*N)条第二输入数据之中的N条第二输入数据执行一次网络级操作,生成(K*N)条第二计算完成数据之中的N条第二计算完成数据,并且可以通过对(K*N)条第二输入数据执行扩展网络级操作来生成(K*N)条第二计算完成数据,该扩展网络级操作表示在计算时段连续执行K次网络级操作的操作,其中K可以是等于或大于2的自然数。
在进入计算时段之后,操作控制块可以重复K次扩展加载操作以对应于扩展网络级操作,扩展加载操作表示以下操作:控制数据操作块以将从N个单元阵列区域并行地读取以对应于网络级操作的N条第二输入数据加载到计算处理模块,当响应于网络级操作而从计算处理块输出计算完成信号和(K*N)条第二计算完成数据中的N条第二计算完成数据时,操作控制块可以重复K次扩展存储操作以对应于扩展网络级操作,该扩展存储操作表示以下操作:控制数据操作块在N个单元阵列区域中的每个中存储一条第二计算完成数据。
操作控制块可以重复K次扩展读取操作,并且可以重复K次扩展输出操作,该扩展读取操作可以表示响应于进入输出时段而从N个单元阵列区域并行地读取N条第二计算完成数据的操作,该扩展输出操作可以表示控制数据操作块以通过数据传送缓冲器输出通过扩展读取操作读取的N条第二计算完成数据的操作。
在进入计算时段之后,计算处理块可以通过对(K*N)条第二输入数据之中的所加载的N条第二输入数据并行地执行第一层级操作中包括的N次神经网络计算来生成N条数据,在第二至第M层级操作中的每个期间,该计算处理块可以在当前层级操作中加载作为先前层级操作的结果而生成的N条数据,并且可以并行地执行N次神经网络计算,该计算处理块可以将作为第M层级操作的结果而生成的N条数据作为N条第二计算完成数据输出到该数据操作块,N条第二计算完成数据是网络级操作的结果。
计算处理块可以对层级操作完成的次数进行计数;每当计数值增加1时,计算处理块可以生成中间完成信号并且可以将中间完成信号输出到操作控制块,直到计数值变为(M-1)为止;当计数值变为M时,计算处理块可以生成计算完成信号,可以将计算完成信号输出到操作控制块,并且可以重置计数值。
计算处理块可以包括与各个N个单元阵列区域相对应的N个计算处理单元,该N个计算处理单元中的每个可以包括:数据加载单元,适用于加载通过数据操作模块输入的权重信息和计算信息、以及通过数据操作模块输入的数据和内部反馈循环数据中的任一数据;计算单元,适用于使用权重信息和计算信息,对从数据加载单元加载的数据和从除了相应计算处理单元以外的其他(N-1)个计算处理单元传送的数据执行神经网络计算,并且生成结果;选择传送单元,适用于当指示结果的值等于或大于参考值时,将结果作为循环数据反馈给数据加载单元,并且当结果值小于参考值时,生成固定为特定值的循环数据,并且将循环数据反馈给数据加载单元;以及计数单元,适用于对选择传送单元将循环数据传送到数据加载单元的次数进行计数,根据计数值生成中间完成信号或计算完成信号,并且将所生成的信号输出到操作控制块。
数据操作块可以包括与各个N个单元阵列区域相对应的N个数据操作单元,该N个数据操作单元中的每个可以包括:读取/写入操作单元,适用于响应于从操作控制块输入的第一控制信号,将数据写入单元阵列区域或从单元阵列区域读取数据;以及路径选择器,适用于响应于从操作控制块输入的第二控制信号,选择在读取/写入操作单元、数据传送缓冲器和计算处理单元之间传送的数据的路径。
在实施例中,一种存储器装置可以包括:N个存储介质,适用于分别存储N条输入数据IDT1至IDTN、N条权重信息W1至WN以及N条计算信息S1至SN,其中N条权重信息W1至WN中的每一条具有M个位L1至LM,N条计算信息S1至SN中的每一条具有M个位L1至LM;以及计算块,适用于执行迭代的神经网络计算,以生成各个N条计算完成数据CDT1至CDTN,以各个N条权重信息的M位的序列和各个N条计算信息的M位的序列对各个N条输入数据执行M次层级操作,该N个存储介质可以进一步适用于分别存储N条计算完成数据。
根据本实施例,神经网络处理电路可以被包括在存储器装置中,并且存储器装置可以在进入计算模式之后对其自身执行神经网络处理。
此外,存储器装置中包括的存储体(每个存储体包括多个存储器单元)和神经网络处理电路可以共享数据输入/输出缓冲器,并且控制是否激活神经网络处理电路,从而选择存储器装置的使用。
附图说明
图1是用于描述神经网络处理的示图。
图2是示出根据实施例的存储器装置的框图。
图3是用于描述根据实施例的在神经网络处理中使用的神经网络处理信息的示图。
图4是诸如图2所示的存储器装置的详细框图。
图5A至图5F是用于描述根据实施例的存储器装置的计算模式操作的示例的示图。
图6A至图6C是用于描述根据实施例的存储器装置的计算模式操作的另一示例的示图。
图7是用于描述根据实施例的存储器装置的正常模式操作的示图。
具体实施方式
以下参照附图更详细地描述本公开的各个示例。然而,可以以不同的方式实施本发明的各方面和各特征以形成其他实施例,包括任何所公开实施例的变型。因此,本发明不限于本文阐述的实施例。相反,提供这些实施例使得本公开将是彻底且完整的,并且将向本发明所属领域的技术人员完全传达本公开。在整个公开中,相同的附图标记在整个本公开的各个附图和示例中表示相同的部件。注意的是,对“实施例”,“另一实施例”等的引用不一定仅指一个实施例,并且对任何这种短语的不同引用不一定针对相同的实施例。
将理解的是,虽然在本文可使用术语“第一”、“第二”、“第三”等以识别各个元件,但是这些元件不受这些术语的限制。这些术语用于将一个元件与在其它情况下具有相同或相似的名称的另一元件区分开。因此,在一种情况下的第一元件可以在另一情况下被称为第二元件或第三元件,而不指示元件本身的任何改变。
附图不一定按比例绘制,并且在一些情况下,为了清楚地示出实施例的特征,可能已经夸大了比例。当元件被称为连接或联接到另一元件时,应当理解的是,前者可直接连接或联接到后者,或者经由一个或多个中间元件电连接或联接到后者。另外,还将理解的是,当元件被称为在两个元件“之间”时,该元件可以是两个元件之间仅有的元件或也可存在一个或多个中间元件。
本文使用的术语的仅用于描述特定实施例的目的,而不旨在限制本发明。如本文使用的,除非上下文另有明确说明,否则单数形式也旨在包括复数形式,反之亦然。类似地,术语“一”和“一个”表示一个或多个,除非从语言或上下文中可以清楚看出仅意指一个。
将进一步理解的是,当在本说明书中使用术语“包括”、“包括有”、“包含”和“包含有”时,其说明所陈述元件的存在,并不排除一个或多个其它元件的存在或添加。如本文所使用的,短语“和/或”包括相关所列项目中的一个或多个的任意和全部组合。
除非另有定义,否则本文使用的包括技术术语和科学术语的所有术语具有与本发明所属领域的普通技术人员基于本公开所通常理解的含义相同的含义。将进一步理解的是,诸如在常用字典中定义的那些术语的术语应当被解释为具有与其在本公开和相关技术语境中的含义一致的含义,并且不以理想化或过于正式的意义来解释,除非本文中明确地这样定义。
在下面的描述中,为了提供对本发明的全面理解,描述了大量具体细节。本发明可在没有一些或全部这些具体细节的情况下被实施。在其它情况下,为了避免不必要地模糊本发明,未详细地描述公知的进程结构和/或进程。
还注意的是,在一些情况下,如对于相关领域的技术人员显而易见的是,除非另有明确说明,否则结合一个实施例所述的特征或元件可单独使用或与另一个实施例的其它特征或元件组合使用。
下面参照附图详细描述本公开的实施例,其中相同的附图标记指代相同的元件。
图2是示出根据实施例的存储器装置的框图。
图3是用于描述根据实施例的在神经网络处理中使用的神经网络处理信息的示图。
首先,参照图2,存储器装置10可以包括N个存储体101至10N、计算处理块20<1:N>、数据操作块30<1:N>、操作控制块40<1:N>、命令输入缓冲器11、地址输入缓冲器12和数据传送缓冲器13。
具体地,存储器装置10可以被实施为诸如DRAM(动态随机存取存储器)或SRAM(静态RAM)的易失性存储器装置或诸如ROM(只读存储器)、MROM(掩码ROM)、PROM(可编程ROM)、EPROM(可擦除ROM)、EEPROM(电可擦除ROM)、FRAM(铁磁ROM)、PRAM(相变RAM)、MRAM(磁性RAM)、RRAM(电阻RAM)或闪速存储器的非易失性存储器装置。
计算处理块20<1:N>可以通过对输入数据执行“网络级操作”来生成计算完成数据,该网络级操作表示在一个循环中重复执行M次“层级操作”的操作,层级操作表示在计算模式的计算时段期间,从N个存储体101至10N并行地加载N条神经网络处理信息并且并行地执行N次神经网络计算的操作。也就是说,计算处理块20<1:N>可以通过对输入数据执行网络级操作来生成计算完成数据,并且该网络级操作可以表示在循环中重复执行M次层级操作。可以在正常模式下将计算处理块20<1:N>停用,因此不执行操作。
参照图1和图2,由计算处理块20<1:N>执行的层级操作中包括的N次神经网络计算中的每一次可以对应于一个神经元。由计算处理块20<1:N>执行的单次层级操作可以对应于一个层1、2、3、4或5。因此,当计算处理块20<1:N>执行层级操作时,可以表示计算处理块20<1:N>对包括N个神经元的一个层1、2、3、4或5执行神经网络计算操作。类似地,当计算处理块20<1:N>执行网络级操作时,可以表示计算处理块20<1:N>在循环中重复执行M次网络级操作中包括的层级操作,并且执行包含M层的神经网络计算操作。也就是说,如图1所示,当存在针对5个层1至5的神经网络计算操作时,M可以设置为5。此处,N和M可以是大于2的自然数。
数据操作块30<1:N>可以在计算模式的输入时段期间,将(M*N)条神经网络处理信息和通过数据传送缓冲器13输入的输入数据存储在N个存储体101至10N中。数据操作块30<1:N>可以在计算模式的输出时段期间,通过数据传送缓冲器13输出由计算处理块20<1:N>生成的计算完成数据。
可以在通过数据操作块30<1:N>将输入数据和(M*N)条神经网络处理信息存储在N个存储体101至10N中之后,执行计算处理块20<1:N>的上述操作。每当执行层级操作时,都可以加载N条神经网络处理信息,并且当对输入数据执行在循环中重复M次层级操作的网络级操作时,生成计算完成数据。因此,计算处理块20<1:N>可能需要(M*N)条神经网络处理信息,以便通过对输入数据执行网络级操作来生成计算完成数据。
在正常模式下的写入操作期间,数据操作块30<1:N>可以将通过数据传送缓冲器13输入的数据存储在N个存储体101至10N中。在正常模式下的读取操作期间,数据操作块30<1:N>可以读取N个存储体101至10N的数据,并通过数据传送缓冲器13输出所读取的数据。
操作控制块40<1:N>可以包括存储器寄存器组(MRS)。因此,操作控制块40<1:N>可以响应于通过命令输入缓冲器11输入的命令和通过地址输入缓冲器12输入的地址,来控制进入和退出计算模式的输入时段、计算时段和输出时段以及正常模式中的每一个,并且控制计算处理块20<1:N>和数据操作块30<1:N>。计算模式和正常模式可以是区分的互斥模式。
参照图2和图3,(M*N)条神经网络处理信息可以包括(M*N)条权重信息W1<L1:LM>至WN<L1:LM>和(M*N)条计算信息S1<L1:LM>至SN<L1:LM>。也就是说,一条神经网络处理信息可以包括一条权重信息和一条计算信息。
参照图1至图3,神经网络处理信息包括权重信息的配置可以对应于将权重赋予突触的配置,该突触用于连接彼此相邻的不同层中包括的多个神经元。此外,神经网络处理信息包括计算信息的配置可以对应于对每个神经元进行数学建模的配置。
具体地,在输入时段,操作控制块40<1:N>可以控制数据操作块30<1:N>将M条权重信息和M条计算信息存储在各个N个存储体101至10N中。
例如,在输入时段,操作控制块40<1:N>可以控制数据操作块30<1:N>将第一M条权重信息W1<L1:LM>和第一M条计算信息S1<L1:LM>存储在第一存储体101中,并且将第二M条权重信息W2<L1:LM>和第二M条计算信息S2<L1:LM>存储在第二存储体102中。通过这种方式,操作控制块40<1:N>可以控制数据操作块30<1:N>以将M条权重信息和M条计算信息存储在各个N个存储体101至10N中。
在计算时段,操作控制块40<1:N>可以控制数据操作块30<1:N>从各个N个存储体101至10N中读取M条权重信息和M条计算信息,并且将所读取的信息传送到计算处理块20<1:N>。
例如,在计算时段,操作控制块40<1:N>可以控制数据操作块30<1:N>从第一存储体101中读取第一M条权重信息W1<L1:LM>和第一M条计算信息S1<L1:LM>,并且从第二存储体102中读取第二M条权重信息W2<L1:LM>和第二M条计算信息S2<L1:LM>。通过这种方式,操作控制块40<1:N>可以控制数据操作块30<1:N>从各个N个存储体101至10N中读取M条权重信息和M条计算信息,并且将所读取的信息传送到计算处理块20<1:N>。
在计算处理块20<1:N>在计算时段完成神经网络计算之后,操作控制块40<1:N>可以响应于从计算处理块20<1:N>传送的计算完成信号,控制数据操作块30<1:N>将从计算处理块20<1:N>传送的计算完成数据存储在N个存储体101至10N中。
在输出时段,操作控制块40<1:N>可以控制数据操作块30<1:N>从各个N个存储体101至10N读取计算完成数据,并且通过数据传送缓冲器13输出所读取的数据。
图4是图2所示的存储器装置的详细框图。
图4示出了图2所示的存储器装置10的组件之中的操作控制块40<1:N>、数据操作块30<1:N>和计算处理块20<1:N>的详细配置。图4所示的配置基于存储器装置10是DRAM的假设。当存储器装置10是不同类型的存储器装置时,可以改变其详细配置。
具体地,N个存储体101至10N中的每一个可以包括以阵列方式联接到多个字线(未示出)和多个位线(未示出)的多个存储器单元(未示出),并且存储器单元中的每一个可在其中存储一位数据或多位数据。也就是说,可以将N个存储体101至10N中的每一个视为包括阵列形式的多个存储器单元的“单元阵列区域”。因此,术语“N个存储体”基于存储器装置10是DRAM的假设。当存储器装置10是不同类型的存储器装置时,可以使用术语“N个单元阵列区域”来代替“N个存储体”。
计算处理块20<1:N>可以包括分别对应于N个存储体101至10N的N个计算处理单元201至20N。操作控制块40<1:N>可以包括分别与N个存储体101至10N相对应的N个操作控制单元401至40N和MRS(见图2)。数据操作块30<1:N>可以包括分别与N个存储体101至10N相对应的N个数据操作单元301至30N。由于操作控制块40<1:N>中包括的MRS(参见图2)是可以与N个操作控制单元401至40N分开地被包括的组件,因此在图4中未示出MRS。
N个操作控制单元401至40N可以被实施为以类似方式操作的电路。N个数据操作单元301至30N可以被实施为以类似方式操作的电路。N个计算处理单元201至20N可以被实施为以类似方式操作的电路。
因此,可以选择N个操作控制单元401至40N中的第一操作控制单元401、N个数据操作单元301至30N中的第一数据操作单元301和N个计算处理单元201至20N中的第一计算处理单元201作为代表性单元,下面将描述所选择的单元的详细配置。
第一操作控制单元401可以包括地址控制器和地址/数据流控制器。具体地,第一操作控制单元401可以响应于通过命令输入缓冲器11和地址输入缓冲器12输入的命令和地址以及从第一计算处理单元201输入的计算处理相关信号CF或MF,来生成用于控制第一数据操作单元301的各种控制信号。
例如,第一操作控制单元401中包括的地址控制器可以响应于通过地址输入缓冲器12输入的地址来生成行地址和列地址。第一操作控制单元401中包括的地址/数据流控制器可以响应于通过命令输入缓冲器11和地址输入缓冲器12输入的命令和地址,来生成读取操作信号、写入操作信号和路径选择信号。
第一数据操作单元301可以包括行解码器、列解码器、感测放大器、写入驱动器和数据路径选择器。第一数据操作单元301中包括的行解码器、列解码器、感测放大器和写入驱动器可以用作用于将数据写入到第一存储体101或从第一存储体101读取数据的组件,即读取/写入操作单元。例如,第一数据操作单元301中包括的读取/写入操作单元可以响应于从第一操作控制单元401输入的第一控制信号,例如行地址、列地址、读取操作信号和写入操作信号,而在第一存储体101中包括的多个存储器单元之中选择一个或多个单元,然后从所选择的一个或多个单元中读取数据或向所选择的单元写入数据。
第一数据操作单元301中包括的数据路径选择器可以用作用于选择在读取/写入操作单元、数据传送缓冲器13和第一计算处理单元201之间传送的数据的路径的组件,即路径选择器。例如,第一数据操作单元301中包括的路径选择器可以响应于从第一操作控制单元401输入的第二控制信号,例如路径选择信号,来选择在读取/写入操作单元、第一计算处理单元201和数据传送缓冲器13之间传送的数据的路径。
第一计算处理单元201可以包括数据加载单元211、计算单元221、选择传送单元231和计数单元241。
第一计算处理单元201中包括的数据加载单元211可以加载:通过第一数据操作单元301输入的权重信息W1和计算信息S1;以及通过第一数据操作单元301输入的输入数据IDT1和内部反馈循环数据LDT1之中的任一数据IDT1或LDT1。
第一计算处理单元201中包括的计算单元221可以使用权重信息W1和计算信息S1,对通过数据加载单元211加载的数据IDT1或LDT1以及从第二至第N计算处理单元202至20N传送的传送数据TDT<2:N>执行神经网络计算,并且生成结果数据RDT1作为结果。例如,计算单元221可以通过根据计算信息S1,对通过将由数据加载单元211加载的数据IDT1或LDT1乘以权重信息W1的值而获得的值和从第二至第N计算处理单元202至20N传送的传送数据TDT<2:N>的值进行求和,来生成结果数据RDT1。
当将第一计算处理单元201中包括的计算单元221使用从第二至第N计算处理单元202至20N传送的传送数据TDT<2:N>来执行神经网络计算的操作生成为N个计算处理单元201至20N的操作时,该操作可以表示N个计算处理单元201至20N中的每一个使用从除其自身之外的其他(N-1)个计算处理单元传送的数据来执行神经网络计算。例如,第二计算处理单元202中包括的计算单元(未示出)可以使用从第一计算处理单元201和第三至第N计算处理单元203至20N传送的传送数据TDT<1,3:N>来执行神经网络计算。类似地,第N计算处理单元20N中包括的计算单元(未示出)可以使用从第一计算处理单元201至第N-1计算处理单元20N-1传送的传送数据TDT<1:N-1>来执行神经网络计算。
参照图1和图4,N个计算处理单元201至20N中的每一个使用从其他(N-1)个计算处理单元传送的数据来执行神经网络计算的操作可以是多个神经元通过突触以各种方式连接的操作。
当通过计算单元221生成的结果数据RDT1的值等于或大于参考值时,第一计算处理单元201中包括的选择传送单元231可以将相应的结果数据RDT1作为循环数据LDT1反馈给数据加载单元211。另一方面,当通过计算单元221生成的结果数据RDT1的值小于参考值时,选择传送单元231可以忽略相应的结果数据RDT1,生成固定为特定值的循环数据LDT1,并且将循环数据LDT1反馈给数据加载单元211。分别用作N个计算处理单元201至20N中包括的选择传送单元的操作参考值的N个“参考值”,可以由操作控制块40<1:N>中包括的MRS根据神经网络计算的目的而预先设置,并且每当执行神经网络计算时可由用户更改。
第一计算处理单元201中包括的计数单元241可以对选择传送单元231将循环数据LDT1传送到数据加载单元211的次数进行计数,根据计数值而生成中间完成信号MF1或计算完成信号CF1,并且将所生成的信号作为计算处理相关信号CF1或MF1输出到第一操作控制单元401。例如,第一计算处理单元201中包括的计数单元241可以生成中间完成信号MF1,并且将所生成的中间完成信号MF1输出到第一操作控制单元401,直到通过对选择传送单元231将循环数据LDT1传送到数据加载单元211的次数进行计数而获得的计数值变为预定值为止。当计数值变为预定值时,计数单元241可以生成计算完成信号CF1,并且将所生成的计算完成信号CF1输出到第一操作控制单元401。
作为参考,已经描述了计算处理单元被配置成与各个存储体一一对应,即,存储体的数量等于计算处理单元的数量。但是,可以根据系统或设计考虑因素以不同的方式实施配置。
例如,计算处理单元可以被配置成对应于一些存储体,但是不对应于其他存储体。也就是说,计算处理单元的数量可以小于存储体的数量。在这种情况下,不对应于计算处理单元的其他存储体可以被配置成仅在正常模式下操作。对应于被配置成仅在正常模式下操作的存储体的数据操作单元可以不需要用于选择数据的传送路径的数据路径选择器。类似地,对应于被配置成仅在正常模式下操作的存储体的操作控制单元可能不需要执行用于选择数据的传送路径的控制操作。
对于另一示例,两个或更多个计算处理单元可以对应于一个存储体。该配置可以表示如下情况:一次可从一个存储体读取的数据的大小,即权重信息和计算信息的大小,大于可以由一个计算处理单元处理的数据的大小。对应于一个存储体的两个或更多个计算处理单元可以将一次可从一个存储体读取的数据划分为两个或更多个数据,并且并行地处理该两个或更多个数据。也就是说,即使两个或更多个计算处理单元在物理上彼此分离,对应于一个存储体的两个或更多个计算处理单元也可以像一个计算处理单元一样操作。
图5A至图5F是用于描述根据实施例的存储器装置的计算模式操作的示例的示图。
图2至图4以及图5A至图5F可以基于这样的假设:将N条输入数据IDT1至IDTN输入到存储器装置10并且分别存储在N个存储体101至10N中。此外,图2至图4和图5A至图5F可以基于这样的假设:计算处理块20<1:N>通过对存储在各个N个存储体101至10N中的N条输入数据IDT1至IDTN在一个循环中重复执行M次层级操作,或者执行一次网络级操作,来生成N条计算完成数据CDT1至CDTN。
参照图2至图5A,操作控制块40<1:N>中包括的MRS可以响应于通过命令输入缓冲器11输入的计算输入命令(未示出)而进入输入时段。
在输入时段,操作控制块40可以响应于通过地址输入缓冲器12输入的地址,控制数据操作块30将通过数据传送缓冲器13输入的N条输入数据IDT1至IDTN、(N*M)条权重信息W1<L1:LM>至WN<L1:LM>和(N*M)条计算信息S1<L1:LM>至SN<L1:LM>存储在N个存储体101至10N中。
具体地,第一操作控制单元401可以在输入时段控制第一数据操作单元301,以将通过数据传送缓冲器13输入的第一输入数据IDT1、第一M条权重信息W1<L1:LM>和第一M条计算信息S1<L1:LM>存储在第一存储体101中。类似地,第二操作控制单元402可以在输入时段控制第二数据操作单元302,以将通过数据传送缓冲器13输入的第二输入数据IDT2、第二M条权重信息W2<L1:LM>和第二M条计算信息S2<L1:LM>存储在第二存储体102中。通过这种方式,第三至第N操作控制单元403至40N可以在输入时段控制第三至第N数据操作单元303至30N,以将通过数据传送缓冲器13输入的第三至第N输入数据IDT3至IDTN、第三至第N M条权重信息W3<L1:LM>至WN<L1:LM>和第三至第N M条计算信息S3<L1:LM>至SN<L1:LM>分别存储在第三至第N存储体103至10N。
参照图2至图4以及图5A和图5B,响应于通过命令输入缓冲器11输入的计算开始命令(未示出),操作控制块40中包括的MRS可以从输入时段退出,然后进入计算时段。
在计算时段,响应于通过地址输入缓冲器12输入的地址,操作控制块40可以控制数据操作块30读取N个存储体101至10N中存储的N条输入数据IDT1至IDTN、(N*M)条权重信息W1<L1:LM>至WN<L1:LM>和(N*M)条计算信息S1<L1:LM>至SN<L1:LM>,并将所读取的数据和信息传送到计算处理块20<1:N>。
具体地,在进入计算时段之后,操作控制块40可以重复M次“加载操作”以对应于计算处理块20<1:N>的网络级操作,单次加载操作对应于计算处理块20的单次层级操作并且表示如下操作:控制数据操作块30<1:N>从N个存储体101至10N并行地读取(N*M)条权重信息W1<L1:LM>至WN<L1:LM>和(N*M)条计算信息S1<L1:LM>至SN<L1:LM>之中的N条权重信息W1<Lx>至WN<Lx>和N条计算信息S1<Lx>至SN<Lx>,然后控制数据操作块30将所读取的信息W1<Lx>至WN<Lx>和S1<Lx>至SN<Lx>加载到计算处理块20<1:N>,其中x是从1到M的任何数字。
在进入计算时段之后,操作控制块40<1:N>可以控制数据操作块30<1:N>从N个存储体101至10N并行地读取N个存储体101至10N中存储的N条输入数据IDT1至IDTN,然后将所读取的N条输入数据IDT1至IDTN加载到计算处理块20<1:N>。
响应于进入计算时段,操作控制块40可以执行被重复M次以对应于计算处理块20<1:N>的网络级操作的加载操作之中的第一加载操作。响应于从计算处理块20<1:N>传送的中间完成信号MF<1:N>,操作控制块40<1:N>可以执行被重复M次以对应于计算处理块20<1:N>的网络级操作的加载操作之中的第二至第M加载操作。
当计算处理块20<1:N>输出计算完成信号CF<1:N>和N条计算完成数据CDT1至CDTN作为网络级操作的结果时,操作控制块40<1:N>可以控制数据操作块30<1:N>将N条计算完成数据CDT1至CDTN分别存储在N个存储体101至10N中。
更具体地,第一操作控制单元401可以响应于进入计算时段,控制第一数据操作单元301读取存储在第一存储体101中的第一输入数据IDT1、第一条第一权重信息W1<L1>和第一条第一计算信息S1<L1>,并且将所读取的数据和信息传送到第一计算处理单元201。类似地,第二操作控制单元402可以响应于进入计算时段,控制第二数据操作单元302读取存储在第二存储体102中的第二输入数据IDT2、第二条第一权重信息W2<L1>和第二条第一计算信息S2<L1>,并且将所读取的数据和信息传送到第二计算处理单元202。通过这种方式,第三至第N操作控制单元403至40N可以响应于进入计算时段,控制第三至第N数据操作单元303至30N分别读取存储在第三至第N存储体103至10N中的第三至第N条输入数据IDT3至IDTN、第三至第N条第一权重信息W3<L1>至WN<L1>和第三至第N条第一计算信息S3<L1>至SN<L1>,并且将所读取的数据和信息分别传送到第三至第N计算处理单元203至20N。如上所述,操作控制块40可以响应于进入计算时段,对N条输入数据IDT1至IDTN执行被重复M次以对应于计算处理块20<1:N>的网络级操作的加载操作之中的第一加载操作。
然后,第一操作控制单元401可以响应于从第一计算处理单元201传送的中间完成信号MF1,控制第一数据操作单元301读取第一存储体101中存储的第一条第二权重信息W1<L2>和第一条第二计算信息S1<L2>,并将所读取的信息传送到第一计算处理单元201。类似地,第二操作控制单元402可以响应于从第二计算处理单元202传送的中间完成信号MF2,控制第二数据操作单元302读取第二存储体102中存储的第二条第二权重信息W2<L2>和第二条第二计算信息S2<L2>,并将所读取的信息传送到第二计算处理单元202。通过这种方式,第三至第N操作控制单元403至40N可以响应于从第三至第N计算处理单元203到20N传送的中间完成信号MF<3:N>,控制第三至第N数据操作单元303至30N读取分别存储在第三至第N存储体103至10N中的第三至第N条第二权重信息W3<L2>至WN<L2>和第三第N条第二计算信息S3<L2>至SN<L2>,并将所读取的信息分别传送到第三至第N计算处理单元203至20N。如上所述,操作控制块40可以响应于从计算处理块20<1:N>传送的中间完成信号MF<1:N>,执行被重复M次以对应于计算处理块20<1:N>的网络级操作的加载操作之中的第二加载操作。可以以与第二加载操作相同的方式执行第三至第M加载操作。
然后,当从第一计算处理单元201输出了计算完成信号CF1和第一计算完成数据CDT1时,第一操作控制单元401可以控制第一数据操作单元301将第一计算完成数据CDT1存储在第一存储体101中。类似地,当从第二计算处理单元202输出计算完成信号CF2和第二计算完成数据CDT2时,第二操作控制单元402可以控制第二数据操作单元302将第二计算完成数据CDT2存储在第二存储体102中。通过这种方式,当分别从第三至第N计算处理单元203至20N输出计算完成信号CF<3:N>和第三至第N计算完成数据CDT3至CDTN时,第三至第N操作控制单元403至40N可以分别控制第三至第N数据操作单元303至30N,以将第三至第N计算完成数据CDT3至CDTN分别存储在第三至第N存储体103至10N中。如上所述,当计算处理块20<1:N>输出计算完成信号CF<1:N>和N条计算完成数据CDT1至CDTN作为网络级操作的结果时,操作控制块40<1:N>可以控制数据操作块30<1:N>将N条计算完成数据CDT1至CDTN分别存储在N个存储体101至10N中。
参照图2至图4和图5A至图5E,将更详细地描述参照图5B描述计算处理块20<1:N>在计算时段中的操作。
图5C详细示出了计算处理块20<1:N>中包括的第一计算处理单元201的操作。尽管未示出,但是第二至第N计算处理单元202至20N可以以与第一计算处理单元201相似的方式操作。
具体地,第一计算处理单元201中包括的数据加载单元211可以响应于进入计算时段,加载从第一数据操作单元301输入的第一输入数据IDT1、第一条第一权重信息W1<L1>和第一条第一计算信息S1<L1>。
然后,第一计算处理单元201中包括的计算单元221可以使用第一条第一权重信息W1<L1>和第一条第一计算信息S1<L1>对第一输入数据IDT1执行神经网络计算,并且生成第一条第一结果数据RDT1<L1>作为结果。例如,第一计算单元221可以通过根据第一条第一计算信息S1<L1>,对通过将第一输入数据IDT1乘以第一条第一权重信息W1<L1>而获得的值和从第二至第N计算处理单元202至20N传送的传送数据TDT<2:N>的值进行求和,来生成第一条第一结果数据RDT1<L1>。这种情况对应于以下情况:计算处理块20<1:N>并行地对N条输入数据IDT1至IDTN执行第一层级操作中包括的N次神经网络计算。因此,从第二至第N计算处理单元202至20N传送以用于第一计算处理单元201的神经网络计算处理的传送数据TDT<2:N>可以是第二至第N条输入数据IDT2到IDTN。
然后,当通过第一计算单元221生成的第一条第一结果数据RDT1<L1>的值等于或大于参考值时,第一计算处理单元201中包括的第一选择传送单元231可以将第一条第一结果数据RDT1<L1>作为第一条第一循环数据LDT1<L1>反馈给第一数据加载单元211。此外,当通过第一计算单元221生成的第一条第一结果数据RDT1<L1>的值小于参考值时,第一选择传送单元231可以忽略第一条第一结果数据RDT1<L1>,生成固定为特定值的第一条第一循环数据LDT1<L1>,并将所生成的数据反馈给第一数据加载单元211。
第一计算处理单元201中包括的计数单元241可以对第一选择传送单元231将循环数据LDT1<L1>传送到第一数据加载单元211的次数进行计数。当计数值小于M时,计数单元241可以生成中间完成信号MF1,并且将所生成的信号输出到第一操作控制单元401。当计数值变为M时,计数单元241可以将计算完成信号CF1输出到第一操作控制单元401。由于计算处理块20<1:N>并行地执行第一层级操作中包括的N次神经网络计算,因此计数值可以是比M小的“1”。因此,第一计数单元241可以生成中间完成信号MF1,并将所生成的信号输出到第一操作控制单元401。
如上所述,可以将第一计算处理单元201的操作应用为第二至第N计算处理单元202至20N的操作。因此,计算处理块20<1:N>可以使用N条第一权重信息W1<L1>至WN<L1>和N条第一计算信息S1<L1>至SN<L1>,对响应于进入计算时段而加载的N条第一输入数据IDT1至IDTN并行地执行N次神经网络计算,然后生成N条第一循环数据LDT1<L1>至LDTN<L1>作为结果。也就是说,计算处理块20<1:N>可以对响应于进入计算时段而加载的N条第一输入数据IDT1至IDTN并行地执行第一层级操作中包括的N次神经网络计算,然后生成N条第一循环数据LDT1<L1>至LDTN<L1>作为结果。
图5D详细示出了计算处理块20<1:N>中包括的第一计算处理单元201的操作。尽管未示出,但是第二至第N计算处理单元202至20N可以以与第一计算处理单元201相似的方式操作。
具体地,第一计算处理单元201中包括的数据加载单元211可以加载从第一数据操作单元301输入的第一条第二权重信息W1<L2>和第一条第二计算信息S1<L2>。
然后,第一计算处理单元201中包括的计算单元221可以使用第一条第二权重信息W1<L2>和第一条第二计算信息S1<L2>对第一条第一循环数据LDT1<L1>执行神经网络计算,并且生成第一条第二结果数据RDT1<L2>作为结果。例如,第一计算单元221可以通过根据第一条第二计算信息S1<L2>,对通过将第一条第一循环数据LDT1<L1>乘以第一条第二权重信息W1<L2>而获得的值和从第二至第N计算处理单元202至20N传送的传送数据TDT<2:N>的值进行求和,来生成第一条第二结果数据RDT1<L2>。该情况对应于如下情况:计算处理块20<1:N>并行地执行第一层级操作中包括的N次神经网络计算,然后对作为第一层级操作中的N次神经网络计算的结果而生成的N条第一循环数据LDT1<L1>至LDTN<L1>并行地执行第二层级操作中包括的N次神经网络计算。因此,从第二到第N计算处理单元202到20N传送以用于第一计算处理单元201的神经网络计算的传送数据TDT<2:N>可以是第二至第N第一循环数据LDT2<L1>至LDTN<L1>。
然后,当通过第一计算单元221生成的第一条第二结果数据RDT1<L2>的值等于或大于参考值时,第一计算处理单元201中包括的第一选择传送单元231可以将第一条第二结果数据RDT1<L2>作为第一条第二循环数据LDT1<L2>反馈给第一数据加载单元211。此外,当通过第一计算单元221生成的第一条第二结果数据RDT1<L2>的值小于参考值时,第一选择传送单元231可以忽略第一条第二结果数据RDT1<L2>,生成固定为特定值的第一条第二循环数据LDT1<L2>,并将所生成的数据反馈给第一数据加载单元211。
第一计算处理单元201中包括的计数单元241可以对第一选择传送单元231将循环数据LDT1<L2>传送到第一数据加载单元211的次数进行计数。当计数值小于M时,计数单元241可以生成中间完成信号MF1,并且将所生成的信号输出到第一操作控制单元401。当计数值变为M时,计数单元241可以将计算完成信号CF1输出到第一操作控制单元401。由于计算处理块20<1:N>并行地执行第二层级操作中包括的N次神经网络计算,因此计数值可以是比M小的“2”。因此,第一计数单元241可以生成中间完成信号MF1,并且将所生成的信号输出到第一操作控制单元401。
如上所述,第一计算处理单元201的操作可以应用为第二至第N计算处理单元202至20N的操作。因此,计算处理块20<1:N>可以使用N条第二权重信息W1<L2>至WN<L2>和N条第二计算信息S1<L2>至SN<L2>,对作为第一层级操作的结果而生成的N条第一循环数据LDT1<L1>至LDTN<L1>并行地执行N次神经网络计算,然后生成N条第二循环数据LDT1<L2>至LDTN<L2>作为结果。也就是说,计算处理块20<1:N>可以对作为第一层级操作的结果而生成的N条第一循环数据LDT1<L1>至LDTN<L1>并行地执行第二层级操作中包括的N次神经网络计算,然后生成N条第二循环数据LDT1<L2>至LDTN<L2>作为结果。
以与参照图5D描述的相同方式,计算处理块20<1:N>可以并行地执行第三至第M层级操作中的每一个层级操作中包括的N次神经网络计算,然后生成N条相应的循环数据LDT1<Lx>至LDTN<Lx>(其中,3≤x≤M)作为结果。简而言之,当执行第一至第M层级操作中的每一个层级操作时,计算处理块20<1:N>可以加载作为先前层级操作的结果而生成的N条循环数据,并且使用先前层级操作的N条循环数据来并行地执行N次神经网络计算,以生成当前层级操作的N条循环数据。
图5E详细示出了计算处理块20<1:N>中包括的第一计算处理单元201的操作。尽管未示出,但是第二至第N计算处理单元202至20N可以以与第一计算处理单元201相似的方式操作。
具体地,第一计算处理单元201中包括的数据加载单元211可以加载从第一数据操作单元301输入的第一条第M权重信息W1<LM>和第一条第M计算信息S1<LM>。
然后,第一计算处理单元201中包括的计算单元221可以使用第一条第M权重信息W1<LM>和第一条第M计算信息S1<LM>,对第一条第<M-1>循环数据LDT1<LM-1>执行神经网络计算,并且生成第一条第M结果数据RDT1<LM>作为结果。例如,第一计算单元221可以通过根据第一条第M计算信息S1<LM>,对通过将第一条第(M-1)循环数据LDT1<LM-1>乘以第一条第M权重信息W1<LM>而获得的值与从第二至第N计算处理单元202至20N传送的传送数据TDT<2:N>的值进行求和,来生成第一条第M结果数据RDT1<LM>。该情况对应于如下情况:计算处理块20<1:N>并行地执行第M-1层级操作中包括的N次神经网络计算,然后对作为第M-1层级操作中的N次神经网络计算的结果而生成的N条第M-1循环数据LDT1<LM-1>至LDTN<LM-1>并行地执行第M层级操作中包括的N次神经网络计算。因此,从第二至第N计算处理单元202到20N传送以用于第一计算处理单元201的神经网络计算的传送数据TDT<2:N>可以是第二至第N条第<M-1>循环数据LDT2<LM-1>至LDTN<LM-1>。
然后,当通过第一计算单元221生成的第一条第M结果数据RDT1<LM>的值等于或大于参考值时,第一计算处理单元201中包括的第一选择传送单元231可以将第一条第M结果数据RDT1<LM>作为第一条第M循环数据LDT1<LM>反馈给第一数据加载单元211。此外,当通过第一计算单元221生成的第一条第M结果数据RDT1<LM>的值小于参考值时,第一选择传送单元231可以忽略第一条第M结果数据RDT1<LM>,生成固定为特定值的第一条第M循环数据LDT1<LM>,并且将所生成的数据反馈给第一数据加载单元211。
第一计算处理单元201中包括的计数单元241可以对第一选择传送单元231将循环数据LDT1<LM>传送到第一数据加载单元211的次数进行计数。当计数值小于M时,计数单元241可以生成中间完成信号MF1,并且将所生成的信号输出到第一操作控制单元401。当计数值变为M时,计数单元241可以将计算完成信号CF1输出到第一操作控制单元401。由于计算处理块20<1:N>并行地执行第M层级操作中包括的N次神经网络计算,因此计数值可以是M。因此,第一计数单元241可以生成计算完成信号CF1,并且将所生成的信号输出到第一操作控制单元401。
由于第一计数单元241已经生成了计算完成信号CF1并且将所生成的信号输出到第一操作控制单元401,所以第一操作控制单元401可以识别到反馈给第一数据加载单元211的第一条第M循环数据LDT1<LM>是第一计算完成数据CDT1。因此,第一操作控制单元401可以接收反馈给第一数据加载单元211的第一条第M循环数据LDT1<LM>作为第一计算完成数据CDT1。
如上所述,第一计算处理单元201的操作可以应用为第二至第N计算处理单元202至20N的操作。因此,计算处理块20<1:N>可以使用N条第M权重信息W1<LM>至WN<LM>和N条第M计算信息S1<LM>至SN<LM>,对作为第(M-1)层级操作的结果而生成的N条第(M-1)循环数据LDT1<LM-1>至LDTN<LM-1>并行地执行N次神经网络计算,然后生成N条第M循环数据LDT1<LM>至LDTN<LM>作为结果。此外,计算处理块20<1:N>可以生成计算完成信号CF1,并且将所生成的信号输出到操作控制块40<1:N>,使得操作控制块40<1:N>接收通过计算处理块20生成的N条第M循环数据LDT1<LM>至LDTN<LM>作为N条计算完成数据CDT1至CDTN。也就是说,计算处理块20<1:N>可以对作为第(M-1)层级操作的结果而生成的N条第(M-1)循环数据LDT1<LM-1>至LDTN<LM-1>,并行地执行第M层级操作中包括的N次神经网络计算,生成作为第M层级操作的结果的N条第M循环数据LDT1<LM>至LDTN<LM>,然后输出N条第M循环数据LDT1<LM>至LDTN<LM>作为N条计算完成数据CDT1至CDTN。
简而言之,计算处理块20<1:N>可以在循环中对N条输入数据IDT1至IDTN重复执行M次层级操作,或者执行一次网络级操作,然后输出N条计算完成数据CDT1至CDTN作为M次层级操作或单次网络级操作的结果。
因此,操作控制块40可以响应于通过地址输入缓冲器12输入的地址和从计算处理块20<1:N>传送的计算完成信号CF<1:N>,控制数据操作块30将从计算处理块20<1:N>传送的N条计算完成数据CDT1至CDTN分别存储在N个存储体101至10N中。
参照图2至图4以及图5A至图5F,操作控制块40<1:N>中包括的MRS可以响应于通过命令输入缓冲器11输入的计算完成命令(未示出),从计算时段退出,然后进入输出时段。
具体地,在输出时段,操作控制块40可以响应于通过地址输入缓冲器12输入的地址,控制数据操作块30读取N个存储体101至10N中存储的N条计算完成数据CDT1至CDTN,并且通过数据传送缓冲器13输出所读取的数据。
图6A至图6C是用于描述根据实施例的存储器装置的计算模式操作的另一示例的示图。
与图5A至图5F的实施例相比,在图6A至图6C的实施例中,输入数据IDTy(其中1≤y≤N)可以具有表示为IDTy<1:K>的K条数据。
类似地,在图5A至图5F的实施例中的计算完成数据CDTy可以具有在图6A至图6C的实施例中表示为CDTy<1:K>的K条数据。
在图6A至图6C的实施例中,网络级操作可以以N条输入数据IDT1<z>至IDTN<z>(其中,1≤z≤K)为单位顺序地重复K次,以顺序地生成N条计算完成数据CDT1<z>至CDTN<z>。
在基于从N条输入数据IDT1<1>至IDTN<1>到N条输入数据IDT1<K>至IDTN<K>的K组数据(K groups)完成了K次网络级操作(或者单次扩展网络级操作,这将在稍后描述)时,可以生成从N条计算完成数据CDT1<1>至CDTN<1>到N条计算完成数据CDT1<K>至CDTN<K>的K组数据。
图2至图4以及图6A至图6C是基于这样的假设:将从N条输入数据IDT1<1>至IDTN<1>到N条输入数据IDT1<K>至IDTN<K>的K组数据输入到存储器装置10并且以K组的输入数据IDTy<1>至IDTy<K>的方式而存储在各个N个存储体101至10N中。此外,图2至图4和图6A至图6C基于以下假设:以K组的输入数据IDTy<1>至IDTy<K>而存储在各个N个存储体101至10N中的、从N条输入数据IDT1<1>至IDTN<1>到N条输入数据IDT1<K>至IDTN<K>的K组数据被以N条输入数据IDT1<z>至IDTN<z>的方式并行地重复读取K次(即,通过第一次重复读取IDT1<1>、IDT2<1>、……、IDTN<1>,通过第二次重复读取IDT1<2>、IDT2<2>、……、IDTN<2>,……,通过第K次重复读取IDT1<K>、IDT2<K>、……、IDTN<K>);以及计算处理单元20<1:N>通过每当读取N条输入数据IDT1<z>至IDTN<z>时在循环中重复M次层级操作或执行一次网络级操作,来生成N条计算完成数据CDT1<z>至CDTN<z>,并且通过执行扩展网络级操作来生成从N条计算完成数据CDT1<1>至CDTN<1>到N条计算完成数据CDT1<K>至CDTN<K>的K组数据,该扩展网络级操作表示连续执行K次网络级操作的操作。
参照图2至图4和图6A,操作控制块40<1:N>中包括的MRS可以响应于通过命令输入缓冲器11输入的计算输入命令(未示出)而进入输入时段。
在输入时段,操作控制块40<1:N>可以响应于通过地址输入缓冲器12输入的地址,控制数据操作块30<1:N>将通过数据传送缓冲器13输入的、从N条输入数据IDT1<1>至IDTN<1>到N条输入数据IDT1<K>至IDTN<K>的K组数据、(N*M)条权重信息W1<L1:LM>至WN<L1:LM>和(N*M)条计算信息S1<L1:LM>至SN<L1:LM>存储在N个存储体101至10N中。
具体地,第一操作控制单元401可以在输入时段控制第一数据操作单元301,将通过数据传送缓冲器13输入的第一条K组输入数据IDT1<1>至IDT1<K>、第一M条权重信息W1<L1:LM>和第一M条计算信息S1<L1:LM>存储在第一存储体101中。类似地,第二操作控制单元402可以在输入时段控制第二数据操作单元302,以将通过数据传送缓冲器13输入的第二条K组输入数据IDT2<1>至IDT2<K>、第二M条权重信息W2<L1:LM>和第二M条计算信息S2<L1:LM>存储在第二存储体102中。通过这种方式,第三至第N操作控制单元403至40N可以在输入时段控制第三至第N数据操作单元303至30N,以分别将通过数据传送缓冲器13输入的第三条K组输入数据IDT3<1>至IDT3<K>到第N条K组输入数据IDTN<1>至IDTN<K>、第三至第N M条权重信息W3<L1:LM>至WN<L1:LM>和第三至第N M条计算信息S3<L1:LM>至SN<L1:LM>存储在第三至第N存储体103至10N中。
参照图2至图4以及图6B,响应于通过命令输入缓冲器11输入的计算开始命令(未示出),操作控制块40<1:N>中包括的MRS可以从输入时段退出,然后进入计算时段。
操作控制块40可以在计算时段响应于通过地址输入缓冲器12输入的地址,控制数据操作块30<1:N>读取存储在N个存储体101至10N中的从N条输入数据IDT1<1>至IDTN<1>到N条输入数据IDT1<K>至IDTN<K>的K组数据、(N*M)条权重信息W1<L1:LM>至WN<L1:LM>和(N*M)条计算信息S1<L1:LM>至SN<L1:LM>,并且将所读取的数据和信息传送到计算处理块20<1:N>。
具体地,在进入计算时段之后,操作控制块40<1:N>可以重复M次加载操作以对应于计算处理块20<1:N>的网络级操作,其中单次加载操作对应于计算处理块20的单次层级操作,并且表示如下操作:控制数据操作块30<1:N>从N个存储体101到10N并行地读取(N*M)条权重信息W1<L1:LM>至WN<L1:LM>和(N*M)条计算信息S1<L1:LM>至SN<L1:LM>之中的N条权重信息W1<Lx>至WN<Lx>和N条计算信息S1<Lx>至SN<Lx>,然后控制数据操作模块30将所读取的信息W1<Lx>至WN<Lx>和S1<Lx>至SN<Lx>加载到计算处理单元20<1:N>,其中x是从1到M的任何数字。
此外,在进入计算时段之后,操作控制块40<1:N>可以重复K次扩展加载操作以对应于计算处理块20<1:N>的扩展网络级操作,其中单次扩展加载操作表示如下操作:控制数据操作块30<1:N>将存储在N个存储体101至10N中的从N条输入数据IDT1<1>至IDTN<1>到N条输入数据IDT1<K>至IDTN<K>的K组数据之中的N条输入数据IDT1<z>至IDTN<z>加载到计算处理块20,其中从N个存储体101至10N中并行地读取N条输入数据IDT1<z>至IDTN<z>以对应于计算处理块20<1:N>的网络级操作。
操作控制块40<1:N>可以响应于从N个存储体101至10N并行地读取的N条输入数据IDT1<z>至IDTN<z>,来执行被重复M次以对应于计算处理块20<1:N>的网络级操作的加载操作之中的第一加载操作。响应于分别从计算处理块20<1:N>传送的中间完成信号MF<1:N>,操作控制块40<1:N>可以执行被重复M次以对应于计算处理块20<1:N>的网络级操作的加载操作之中的第二至第M加载操作。
当计算完成信号CF<1:N>和N条计算完成数据CDT1<z>至CDTN<z>由计算处理块20<1:N>作为网络级操作的结果而输出时,操作控制块40<1:N>可以重复执行K次扩展存储操作以对应于扩展网络级操作,该扩展存储操作表示以下操作:控制数据操作块30<1:N>将N条计算完成数据CDT1<z>至CDTN<z>分别存储在N个存储体101至10N中。通过该操作,操作控制块40<1:N>可以控制数据操作块30<1:N>,以将从N条计算完成数据CDT1<1>至CDTN<1>到N条计算完成数据CDT1<K>至CDTN<K>的K组数据,以K组的计算完成数据CDTy<1>至CDTy<K>的方式分别存储在N个存储体101至10N中,从N条计算完成数据CDT1<1>至CDTN<1>到N条计算完成数据CDT1<K>至CDTN<K>的K组数据对应于通过计算处理块20<1:N>重复执行K次网络级操作而获得的结果数据,即,通过执行一次扩展网络级操作而获得的结果数据。
更具体地,在进入计算时段之后,第一操作控制单元401可以控制第一数据操作单元301读取第一存储体101中存储的第一条第一输入数据IDT1<1>、第一条第一权重信息W1<L1>和第一条第一计算信息S1<L1>,并且将所读取的数据和信息传送到第一计算处理单元201。类似地,响应于进入计算时段,第二操作控制单元402可以控制第二数据操作单元302读取存储在第二存储体102中的第二条第一输入数据IDT2<1>、第二条第一权重信息W2<L1>和第二条第一计算信息S2<L1>,并且将所读取的数据和信息传送到第二计算处理单元202。通过这种方式,响应于进入计算时段,第三至第N操作控制单元403至40N可以控制第三至第N数据操作单元303至30N读取第三至第N存储体103至10N中存储的第三至第N条第一输入数据IDT3<1>至IDTN<1>、第三至第N条第一权重信息W3<L1>至WN<L1>和第三至第N条第一计算信息S3<L1>至SN<L1>,并且将所读取的数据和信息分别传送到第三至第N计算处理单元203至20N。如上所述,操作控制块40<1:N>可以响应于进入计算时段,对N条第一输入数据IDT1<1>至IDTN<1>执行被重复M次以对应于计算处理块20<1:N>的网络级操作的加载操作之中的第一加载操作。
然后,第一操作控制单元401可以响应于从第一计算处理单元201传送的中间完成信号MF1,控制第一数据操作单元301读取第一存储体101中存储的第一条第二权重信息W1<L2>和第一条第二计算信息S1<L2>,并将所读取的信息传送到第一计算处理单元201。类似地,第二操作控制单元402可以响应于从第二计算处理单元202传送的中间完成信号MF2,控制第二数据操作单元302读取第二存储体102中存储的第二条第二权重信息W2<L2>和第二条第二计算信息S2<L2>,并将所读取的信息传送到第二计算处理单元202。通过这种方式,第三至第N操作控制单元403至40N可以响应于从第三至第N计算处理单元203到20N传送的中间完成信号MF<3:N>,控制第三至第N数据操作单元303至30N读取第三至第N存储体103至10N中存储的第三至第N条第二权重信息W3<L2>至WN<L2>和第三第N条第二计算信息S3<L2>至SN<L2>,并将所读取的信息分别传送到第三至第N计算处理单元203至20N。如上所述,操作控制块40<1:N>可以响应于从计算处理块20<1:N>传送的中间完成信号MF<1:N>,执行被重复M次以对应于计算处理块20<1:N>的网络级操作的加载操作之中的第二加载操作。可以以与第二加载操作相同的方式执行第三至第M加载操作。
然后,当从第一计算处理单元201输出了计算完成信号CF1和第一条第一计算完成数据CDT1<1>时,第一操作控制单元401可以控制第一数据操作单元301将第一条第一计算完成数据CDT1<1>存储在第一存储体101中。类似地,当从第二计算处理单元202输出计算完成信号CF2和第二条第一计算完成数据CDT2<1>时,第二操作控制单元402可以控制第二数据操作单元302将第二条第一计算完成数据CDT2<1>存储在第二存储体102中。通过这种方式,当分别从第三至第N计算处理单元203至20N输出计算完成信号CF<3:N>和第三至第N条第一计算完成数据CDT3<1>至CDTN<1>时,第三至第N操作控制单元403至40N可以控制第三至第N数据操作单元303至30N将第三至第N条第一计算完成数据CDT3<1>至CDTN<1>分别存储在第三至第N存储体103至10N中。如上所述,当计算处理块20<1:N>输出计算完成信号CF<1:N>和N条第一计算完成数据CDT1<1>至CDTN<1>作为网络级操作的结果时,操作控制块40<1:N>可以控制数据操作块30<1:N>将N条第一计算完成数据CDT1<1>至CDTN<1>分别存储在N个存储体101至10N中。
每当操作控制块40执行以下的扩展加载操作时,可以重复计算处理块20的上述网络级操作,并且执行K次网络级操作:分别从N个存储体101到10N并行地读取从N条输入数据IDT1<1>至IDTN<1>到N条输入数据IDT1<K>至IDTN<K>的K组数据之中的N条输入数据IDT1<z>至IDTN<z>。换言之,计算处理块20<1:N>可以通过重复执行K次网络级操作来执行一次扩展网络级操作。计算处理块20<1:N>可以在重复K次的网络级操作期间,冗余地使用(N*M)条权重信息W1<L1:LM>至WN<L1:LM>和(N*M)条计算信息S1<L1:LM>至SN<L1:LM>。例如,计算处理块20<1:N>可以在第一网络级操作期间,使用(N*M)条权重信息W1<L1:LM>至WN<L1:LM>和(N*M)条计算信息S1<L1:LM>到SN<L1:LM>来执行神经网络计算,然后即使在第一网络级操作之后的第二网络级操作期间,也通过冗余地使用(N*M)条权重信息W1<L1:LM>至WN<L1:LM>和(N*M)条计算信息S1<L1:LM>至SN<L1:LM>来执行神经网络计算。通过这种方式,计算处理块20<1:N>可以通过冗余地使用(N*M)条权重信息W1<L1:LM>至WN<L1:LM>和(N*M)条计算信息S1<L1:LM>至SN<L1:LM>来执行神经网络计算,直到第K网络级操作为止。
参照图2至图4和图6C,响应于通过命令输入缓冲器11输入的计算完成命令(未示出),操作控制块40<1:N>中包括的MRS可以从计算时段退出,然后进入输出时段。
具体地,操作控制块40<1:N>可以在输出时段重复K次扩展读取操作(CDT1<1>、CDT2<1>、……、CDTN<1>、CDT1<2>、CDT2<2>、……、CDTN<2>、CDT1<K>、CDT2<K>、……、CDTN<K>)并且重复K次扩展输出操作(CDT1<1>、CDT2<1>、……、CDTN<1>、CDT1<2>、CDT2<2>、……、CDTN<2>、CDT1<K>、CDT2<K>、……、CDTN<K>)。扩展读取操作可以表示如下操作:响应于通过地址输入缓冲器12输入的地址,以N条计算完成数据CDT1<z>至CDTN<z>的方式来并行地读取存储在N个存储体101至10N中的、从N条计算完成数据CDT1<1>至CDTN<1>到N条计算完成数据CDT1<K>至CDTN<K>的K组数据,并且扩展输出操作可以表示以下操作:控制数据操作块30<1:N>通过数据传送缓冲器13输出通过扩展读取操作读取的N条计算完成数据CDT1<z>至CDTN<z>。
图7是用于描述根据实施例的存储器装置的正常模式操作的示图。
参照图7,操作控制块40<1:N>中包括的MRS可以响应于通过命令输入缓冲器11输入的正常启动命令(未示出)而从计算模式退出,然后进入正常模式。
具体地,在正常模式下,当通过命令输入缓冲器11、地址输入缓冲器12和数据传送缓冲器13分别输入写入命令、写入地址和写入数据NDT<1:N>时,操作控制块40<1:N>可以控制数据操作块30<1:N>执行将写入数据NDT<1:N>存储在N个存储体101至10N之中的对应于写入地址的存储器单元中的写入操作。
此外,在正常模式下,当分别通过命令输入缓冲器11和地址输入缓冲器12输入读取命令和读取地址时,操作控制块40<1:N>可以控制数据操作块30<1:N>读取N个存储体101至10N之中的对应于读取地址的存储器单元中存储的数据NDT<1:N>,并且通过数据传送缓冲器13输出所读取的数据。
操作控制块40<1:N>可以在正常模式下控制数据操作块30<1:N>不向计算处理块20<1:N>输入数据/不从计算处理块20<1:N>输出数据。通过该操作,可以在正常模式下停用计算处理块20<1:N>,并且不执行操作。
根据实施例,神经网络处理电路可以被包括在存储器装置中,并且因此使得存储器装置能够在进入计算模式之后对其自身执行神经网络计算,而没有主机或存储器控制器的干预。
此外,由于存储器装置中包括的存储体(包括多个存储器单元)和神经网络处理电路共享数据输入/输出缓冲器,因此可以通过控制是否激活神经网络处理电路的操作来选择存储器装置的使用。
尽管已经示出和描述了各个实施例,但是对于本领域技术人员来说显而易见的是,在不脱离所附权利要求限定的本发明的精神和范围的情况下,可以进行各种改变和修改。本发明包括落入权利要求范围内的所有这些变化和修改。
Claims (19)
1.一种存储器装置,包括:
N个单元阵列区域;
计算处理块,在计算模式的计算时段期间通过对输入数据执行网络级操作来生成计算完成数据,所述网络级操作表示在循环中重复M次层级操作的操作,所述层级操作表示从所述N个单元阵列区域并行地加载N条神经网络处理信息并且并行地执行N次神经网络计算的操作;
数据操作块,在输入时段将通过数据传送缓冲器输入的所述输入数据和(M*N)条神经网络处理信息存储在所述N个单元阵列区域中,并且在输出时段通过所述数据传送缓冲器输出所述计算完成数据;以及
操作控制块,响应于通过输入缓冲器输入的命令和地址,控制进入和退出所述输入时段、所述计算时段和所述输出时段,并且控制所述计算处理块和所述数据操作块,其中N和M是等于或大于2的自然数,
其中所述(M*N)条神经网络处理信息包括(M*N)条权重信息和(M*N)条计算信息,并且
其中所述操作控制块在所述输入时段控制所述数据操作块,以将M条权重信息和M条计算信息存储在各个所述N个单元阵列区域中。
2.根据权利要求1所述的存储器装置,
其中在正常模式下,所述数据操作块在写入操作期间将通过所述数据传送缓冲器输入的数据存储在所述N个单元阵列区域中,以及在读取操作期间读取所述N个单元阵列区域中的数据并且通过所述数据传送缓冲器输出所读取的数据,并且
其中所述操作控制块响应于通过所述输入缓冲器输入的命令和地址而控制进入和退出所述正常模式以及控制所述数据操作块。
3.根据权利要求1所述的存储器装置,其中所述操作控制块响应于通过所述输入缓冲器输入的计算输入命令而进入所述输入时段,并且响应于通过所述输入缓冲器输入的地址,控制所述数据操作块将所述输入数据、所述M条权重信息和所述M条计算信息存储在各个所述N个单元阵列区域中。
4.根据权利要求3所述的存储器装置,其中所述操作控制块响应于通过所述输入缓冲器输入的计算开始命令而退出所述输入时段,然后进入所述计算时段,响应于通过所述输入缓冲器输入的地址而控制所述层级操作和所述网络级操作,并且响应于从所述计算处理块传送的计算完成信号而控制所述数据操作块将所述计算完成数据存储在所述N个单元阵列区域中。
5.根据权利要求4所述的存储器装置,其中所述操作控制块响应于通过所述输入缓冲器输入的计算完成命令而退出所述计算时段,然后进入所述输出时段,响应于通过所述输入缓冲器输入的地址而控制所述数据操作块从所述N个单元阵列区域读取所述计算完成数据,并且通过所述数据传送缓冲器输出所读取的计算完成数据。
6.根据权利要求5所述的存储器装置,其中在进入所述计算时段之后,所述操作控制块重复M次加载操作以对应于所述网络级操作,所述加载操作表示以下操作:控制所述数据操作块从所述N个单元阵列区域并行地读取所述N个单元阵列区域中存储的所述(M*N)条权重信息和所述(M*N)条计算信息之中的N条权重信息和N条计算信息,以对应于所述层级操作,然后将所读取的信息加载到所述计算处理块。
7.根据权利要求6所述的存储器装置,其中所述操作控制块响应于进入所述计算时段而执行第一加载操作,并且分别响应于从所述计算处理块传送的中间完成信号而执行第二加载操作至第M加载操作。
8.根据权利要求7所述的存储器装置,
其中所述输入数据包括N条第一输入数据,并且所述计算完成数据包括N条第一计算完成数据,
其中在进入所述输入时段之后,所述操作控制块控制所述数据操作块将所述N条第一输入数据以一条第一输入数据的方式而存储在各个所述N个单元阵列区域中。
9.根据权利要求8所述的存储器装置,其中所述操作控制块控制所述数据操作块:
响应于进入所述计算时段,将从各个所述N个单元阵列区域并行地读取的所述N条第一输入数据加载到所述计算处理块,并且
当从所述计算处理块输出所述计算完成信号和所述N条第一计算完成数据时,将所述N条第一计算完成数据以一条第一计算完成数据的方式而存储在各个所述N个单元阵列区域中。
10.根据权利要求9所述的存储器装置,其中所述操作控制块控制所述数据操作块:
响应于进入所述输出时段,从所述N个单元阵列区域并行地读取所述N条第一计算完成数据,并且
通过所述数据传送缓冲器输出所读取的N条第一计算完成数据。
11.根据权利要求9所述的存储器装置,
其中所述计算处理块通过对响应于进入所述计算时段而加载的所述N条第一输入数据并行地执行第一层级操作中包括的N次神经网络计算,来生成N条循环数据,
其中在第二至第M层级操作中的每个期间,所述计算处理块在当前层级操作中加载作为先前层级操作的结果而生成的N条循环数据,并且并行地执行所述N次神经网络计算,
其中所述计算处理块将作为所述第M层级操作的结果而生成的N条循环数据作为所述N条第一计算完成数据输出到所述数据操作块,所述N条第一计算完成数据是所述网络级操作的结果。
12.根据权利要求11所述的存储器装置,
其中所述计算处理块对层级操作完成的次数进行计数,
其中每当计数值增加1时,所述计算处理块生成所述中间完成信号,并且将所述中间完成信号输出到所述操作控制块,直到所述计数值变为(M-1)为止;
其中当所述计数值变为M时,所述计算处理块生成所述计算完成信号,并且将所述计算完成信号输出到所述操作控制块。
13.根据权利要求7所述的存储器装置,
其中所述输入数据包括(K*N)条第二输入数据,并且所述计算完成数据包括(K*N)条第二计算完成数据,
其中在进入所述输入时段之后,所述操作控制块控制所述数据操作块在所述N个单元阵列区域的每个中存储K条第二输入数据;
其中所述计算处理块通过对所述(K*N)条第二输入数据之中的N条第二输入数据执行一次网络级操作,来生成所述(K*N)条第二计算完成数据之中的N条第二计算完成数据,并且通过对所述(K*N)条第二输入数据执行扩展网络级操作来生成所述(K*N)条第二计算完成数据,所述扩展网络级操作表示在所述计算时段期间连续执行K次所述网络级操作的操作,其中K是等于或大于2的自然数。
14.根据权利要求13所述的存储器装置,其中在进入所述计算时段之后,所述操作控制块重复K次扩展加载操作以对应于所述扩展网络级操作,所述扩展加载操作表示以下操作:控制所述数据操作块将从所述N个单元阵列区域并行地读取以对应于所述网络级操作的所述N条第二输入数据加载到所述计算处理模块,
其中当响应于所述网络级操作而从所述计算处理块输出所述计算完成信号和所述(K*N)条第二计算完成数据中的所述N条第二计算完成数据时,所述操作控制块重复K次扩展存储操作以对应于所述扩展网络级操作,所述扩展存储操作表示以下操作:控制所述数据操作块在所述N个单元阵列区域中的每个中存储一条第二计算完成数据。
15.根据权利要求14所述的存储器装置,其中所述操作控制块重复K次扩展读取操作并且重复K次扩展输出操作,其中所述扩展读取操作表示响应于进入所述输出时段而从所述N个单元阵列区域并行地读取N条第二计算完成数据的操作,所述扩展输出操作表示控制所述数据操作块以通过所述数据传送缓冲器输出通过所述扩展读取操作读取的所述N条第二计算完成数据的操作。
16.根据权利要求13所述的存储器装置,
其中在进入所述计算时段之后,所述计算处理块通过对所述(K*N)条第二输入数据之中的所加载的N条第二输入数据并行地执行第一层级操作中包括的N次神经网络计算,来生成N条数据,
其中在第二至第M层级操作中的每个期间,所述计算处理块在当前层级操作中加载作为先前层级操作的结果而生成的N条数据,并且并行地执行所述N次神经网络计算,
其中所述计算处理块将作为所述第M层级操作的结果而生成的N条数据作为所述N条第二计算完成数据输出到所述数据操作块,所述N条第二计算完成数据是所述网络级操作的结果。
17.根据权利要求16所述的存储器装置,
其中所述计算处理块对层级操作完成的次数进行计数,
其中每当计数值增加1时,所述计算处理块生成所述中间完成信号并且将所述中间完成信号输出到所述操作控制块,直到所述计数值变为(M-1)为止;
其中当所述计数值变为M时,所述计算处理块生成所述计算完成信号,将所述计算完成信号输出到所述操作控制块,并且重置所述计数值。
18.根据权利要求7所述的存储器装置,
其中所述计算处理块包括与各个所述N个单元阵列区域相对应的N个计算处理单元,
其中所述N个计算处理单元中的每个包括:
数据加载单元,加载通过所述数据操作块输入的权重信息和计算信息、以及通过所述数据操作块输入的数据和内部反馈循环数据中的任一数据;
计算单元,使用所述权重信息和所述计算信息,对从所述数据加载单元加载的数据和从除了相应计算处理单元以外的其他(N-1)个计算处理单元传送的数据执行神经网络计算,并且生成结果;
选择传送单元,当指示结果的值等于或大于参考值时,将所述结果作为循环数据反馈给所述数据加载单元,并且当所述结果的值小于所述参考值时,生成固定为特定值的循环数据并且将所述循环数据反馈给所述数据加载单元;以及
计数单元,对所述选择传送单元将所述循环数据传送到所述数据加载单元的次数进行计数,根据计数值生成所述中间完成信号或所述计算完成信号,并且将所生成的信号输出到所述操作控制块。
19.根据权利要求1所述的存储器装置,
其中所述数据操作块包括与各个所述N个单元阵列区域相对应的N个数据操作单元,
其中所述N个数据操作单元中的每个包括:
读取/写入操作单元,响应于从所述操作控制块输入的第一控制信号,将数据写入单元阵列区域或从单元阵列区域读取数据;以及
路径选择器,响应于从所述操作控制块输入的第二控制信号,选择在所述读取/写入操作单元、所述数据传送缓冲器和所述计算处理单元之间传送的数据的路径。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2019-0147555 | 2019-11-18 | ||
KR1020190147555A KR20210060024A (ko) | 2019-11-18 | 2019-11-18 | 신경망 처리 회로를 포함하는 메모리 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112819134A CN112819134A (zh) | 2021-05-18 |
CN112819134B true CN112819134B (zh) | 2024-04-05 |
Family
ID=75683895
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010671608.2A Active CN112819134B (zh) | 2019-11-18 | 2020-07-14 | 包括神经网络处理电路的存储器装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11501149B2 (zh) |
JP (1) | JP7568434B2 (zh) |
KR (1) | KR20210060024A (zh) |
CN (1) | CN112819134B (zh) |
DE (1) | DE102020205623A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11372585B2 (en) * | 2020-05-05 | 2022-06-28 | Micron Technology, Inc. | Asynchronous process topology in a memory device |
TWI773106B (zh) * | 2021-01-28 | 2022-08-01 | 華邦電子股份有限公司 | 具有運算功能的記憶體裝置及其操作方法 |
US20240281397A1 (en) * | 2023-02-17 | 2024-08-22 | Stmicroelectronics International N.V. | Reconfigurable, streaming-based clusters of processing elements, and multi-modal use thereof |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5014235A (en) * | 1987-12-15 | 1991-05-07 | Steven G. Morton | Convolution memory |
US5165009A (en) * | 1990-01-24 | 1992-11-17 | Hitachi, Ltd. | Neural network processing system using semiconductor memories |
US5524175A (en) * | 1992-10-29 | 1996-06-04 | Hitachi, Ltd. | Neuro-computer system for executing a plurality of controlling algorithms |
CN105007012A (zh) * | 2015-07-16 | 2015-10-28 | 湖北三江航天万峰科技发展有限公司 | 一种车载转台控制系统及方法 |
KR20170023695A (ko) * | 2015-08-24 | 2017-03-06 | (주)뉴로컴즈 | 다중 계층 신경망 컴퓨팅 장치 및 방법 |
CN107578098A (zh) * | 2017-09-01 | 2018-01-12 | 中国科学院计算技术研究所 | 基于脉动阵列的神经网络处理器 |
CN107977704A (zh) * | 2017-11-10 | 2018-05-01 | 中国科学院计算技术研究所 | 权重数据存储方法和基于该方法的神经网络处理器 |
CN110462642A (zh) * | 2017-04-04 | 2019-11-15 | 海露科技有限公司 | 包括计算元件和本地存储器元件的神经网络处理元件 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012195478A (ja) | 2011-03-17 | 2012-10-11 | Toshiba Corp | 半導体記憶装置 |
US9747546B2 (en) * | 2015-05-21 | 2017-08-29 | Google Inc. | Neural network processor |
US10664751B2 (en) * | 2016-12-01 | 2020-05-26 | Via Alliance Semiconductor Co., Ltd. | Processor with memory array operable as either cache memory or neural network unit memory |
US10437483B2 (en) | 2015-12-17 | 2019-10-08 | Samsung Electronics Co., Ltd. | Computing system with communication mechanism and method of operation thereof |
US10395165B2 (en) | 2016-12-01 | 2019-08-27 | Via Alliance Semiconductor Co., Ltd | Neural network unit with neural memory and array of neural processing units that collectively perform multi-word distance rotates of row of data received from neural memory |
KR102534917B1 (ko) | 2017-08-16 | 2023-05-19 | 에스케이하이닉스 주식회사 | 신경망 처리 회로를 구비하는 메모리 장치 및 이를 포함하는 메모리 시스템 |
WO2019049686A1 (ja) | 2017-09-07 | 2019-03-14 | パナソニック株式会社 | 半導体記憶素子を用いたニューラルネットワーク演算回路及び動作方法 |
KR102312178B1 (ko) * | 2017-10-30 | 2021-10-14 | 에스케이하이닉스 주식회사 | 트윈 셀 모드를 가지는 메모리 장치 및 그의 리프레쉬 방법 |
US20190180183A1 (en) | 2017-12-12 | 2019-06-13 | Amazon Technologies, Inc. | On-chip computational network |
KR102408858B1 (ko) * | 2017-12-19 | 2022-06-14 | 삼성전자주식회사 | 비휘발성 메모리 장치, 이를 포함하는 메모리 시스템 및 비휘발성 메모리 장치의 동작 방법 |
KR102385569B1 (ko) | 2018-01-03 | 2022-04-12 | 삼성전자주식회사 | 메모리 장치 |
KR102530072B1 (ko) * | 2018-01-10 | 2023-05-08 | 삼성전자주식회사 | 이미지 센서, 촬상 장치 및 이미지 센서 칩 패키지의 제조 방법 |
JP2019139300A (ja) | 2018-02-06 | 2019-08-22 | 国立大学法人北海道大学 | ニューラル電子回路 |
US11340936B2 (en) * | 2018-05-04 | 2022-05-24 | Apple Inc. | Compiling and scheduling transactions in neural network processor |
US10970205B2 (en) * | 2018-05-31 | 2021-04-06 | Micron Technology, Inc. | Logical-to-physical data structures for tracking logical block addresses indicative of a collision |
US11620358B2 (en) | 2019-05-14 | 2023-04-04 | Intel Corporation | Technologies for performing macro operations in memory |
-
2019
- 2019-11-18 KR KR1020190147555A patent/KR20210060024A/ko not_active Application Discontinuation
-
2020
- 2020-05-05 DE DE102020205623.4A patent/DE102020205623A1/de active Pending
- 2020-05-06 US US16/868,181 patent/US11501149B2/en active Active
- 2020-07-13 JP JP2020119606A patent/JP7568434B2/ja active Active
- 2020-07-14 CN CN202010671608.2A patent/CN112819134B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5014235A (en) * | 1987-12-15 | 1991-05-07 | Steven G. Morton | Convolution memory |
US5165009A (en) * | 1990-01-24 | 1992-11-17 | Hitachi, Ltd. | Neural network processing system using semiconductor memories |
US5524175A (en) * | 1992-10-29 | 1996-06-04 | Hitachi, Ltd. | Neuro-computer system for executing a plurality of controlling algorithms |
CN105007012A (zh) * | 2015-07-16 | 2015-10-28 | 湖北三江航天万峰科技发展有限公司 | 一种车载转台控制系统及方法 |
KR20170023695A (ko) * | 2015-08-24 | 2017-03-06 | (주)뉴로컴즈 | 다중 계층 신경망 컴퓨팅 장치 및 방법 |
CN110462642A (zh) * | 2017-04-04 | 2019-11-15 | 海露科技有限公司 | 包括计算元件和本地存储器元件的神经网络处理元件 |
CN107578098A (zh) * | 2017-09-01 | 2018-01-12 | 中国科学院计算技术研究所 | 基于脉动阵列的神经网络处理器 |
CN107977704A (zh) * | 2017-11-10 | 2018-05-01 | 中国科学院计算技术研究所 | 权重数据存储方法和基于该方法的神经网络处理器 |
Also Published As
Publication number | Publication date |
---|---|
US11501149B2 (en) | 2022-11-15 |
JP2021082246A (ja) | 2021-05-27 |
US20210150318A1 (en) | 2021-05-20 |
JP7568434B2 (ja) | 2024-10-16 |
KR20210060024A (ko) | 2021-05-26 |
DE102020205623A1 (de) | 2021-05-20 |
CN112819134A (zh) | 2021-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112819134B (zh) | 包括神经网络处理电路的存储器装置 | |
KR102608248B1 (ko) | 신경망 하드웨어 가속기 아키텍처 및 그 동작 방법 | |
CN102971754B (zh) | 用于神经处理器中的可替代突触权重存储的方法和系统 | |
CN111052154B (zh) | 使用非易失性半导体存储元件的神经网络运算电路 | |
US8892487B2 (en) | Electronic synapses for reinforcement learning | |
CN110782028A (zh) | 具有差分二进制非易失性存储器单元结构的可配置精密神经网络 | |
US11217302B2 (en) | Three-dimensional neuromorphic device including switching element and resistive element | |
CN110729011B (zh) | 用于类神经网路的存储器内运算装置 | |
US9548114B2 (en) | Resistive semiconductor memory capable of performing incremental step pulse programming (ISPP) based on digital code values of memory cells | |
KR20210059815A (ko) | 메모리 기반의 뉴로모픽 장치 | |
US10249360B1 (en) | Method and circuit for generating a reference voltage in neuromorphic system | |
CN114121086A (zh) | 存储器中的贝叶斯网络 | |
CN113261062A (zh) | 经配置以产生用于神经网络的加权输入的存储器单元 | |
CN114724595B (zh) | 一种卷积运算加速器及卷积运算方法 | |
US11694065B2 (en) | Spiking neural unit | |
US11556765B2 (en) | Neuromorphic system and operating method thereof | |
CN111554333B (zh) | 用于存储器架构的解码器结构 | |
US20230385616A1 (en) | Spike neural network circuit and method of operation thereof | |
KR20230106484A (ko) | 스파이킹 신경망 장치, 불휘발성 메모리 장치 및 그것의 동작 방법 | |
TW202032433A (zh) | 類比計算的方法 | |
CN117933326A (zh) | 基于储备池计算的图灵机架构 | |
CN116710931A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |