CN109582911B - 用于实行卷积的计算装置及实行卷积的计算方法 - Google Patents

用于实行卷积的计算装置及实行卷积的计算方法 Download PDF

Info

Publication number
CN109582911B
CN109582911B CN201810827535.4A CN201810827535A CN109582911B CN 109582911 B CN109582911 B CN 109582911B CN 201810827535 A CN201810827535 A CN 201810827535A CN 109582911 B CN109582911 B CN 109582911B
Authority
CN
China
Prior art keywords
data
value
index
data channel
channel
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
Application number
CN201810827535.4A
Other languages
English (en)
Other versions
CN109582911A (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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN109582911A publication Critical patent/CN109582911A/zh
Application granted granted Critical
Publication of CN109582911B publication Critical patent/CN109582911B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/15Correlation function computation including computation of convolution operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/5443Sum of products
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Biophysics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Molecular Biology (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Neurology (AREA)
  • Complex Calculations (AREA)
  • Apparatus For Radiation Diagnosis (AREA)

Abstract

一种用于实行卷积的计算装置包括:第一除法器电路,连接到第一数据通道且被配置成接收具有第一索引的第一数据通道值、从第二数据通道接收与第二数据通道值对应的第二索引、并基于所述第一索引是否等于所述第二索引来选择性地输出第一加法值或所述第一数据通道值;以及第一加法器电路,连接到所述第二数据通道及所述第一除法器电路且被配置成从所述第一除法器电路接收所述第一加法值、接收所述第二数据通道值、并将所述第一加法值加到所述第二数据通道值以产生加法结果。也提供实行卷积的计算方法。

Description

用于实行卷积的计算装置及实行卷积的计算方法
[相关申请的交叉参考]
本申请主张在2017年9月28日在韩国知识产权局提出申请的韩国专利申请第10-2017-0126355号的权利,所述韩国专利申请的公开内容全文并入本申请供参考。
技术领域
本发明概念涉及一种计算装置以及一种计算方法,且更具体来说,涉及一种执行卷积计算的计算装置及计算方法。
背景技术
机器学习是从对图案识别以及计算机学习理论的研究演进出的人工智能领域。机器学习是用于研究及构建基于经验数据来学习、预测及改善本身性能的系统以及所述系统的算法的技术。机器学习的算法通常建立特定模型来基于输入数据导出预测或决定。
在深度学习(一种类型的机器学习)中所利用的卷积神经网络(convolutionalneural network,CNN)是一种人工神经网络,其已在各种领域(例如,图像处理及计算机视觉)中得到研究以用于对图像进行理解以及提取高度抽象的信息或者产生具有新纹理的图像。卷积神经网络是其中将卷积层及子采样层(sub-sampling layer)添加到卷积神经网络中所包括的隐藏层的全连接层(fully connected layer)的神经网络,且卷积神经网络的结构被细分以改善性能。与其他技术相比,使用卷积神经网络的深度学习可提供非常高的准确性。然而,由于卷积神经网络可具有多个神经网络层次结构以及大数目的卷积计算,因此使用卷积神经网络的深度学习可具有非常低的计算速度。
发明内容
本发明概念的一些实施例提供被配置成高效地执行卷积计算的计算装置。另一些实施例提供高效地执行卷积计算的方法。
根据本发明概念的一方面,一种计算装置包括:第一除法器电路,连接到第一数据通道且被配置成接收具有第一索引的第一数据通道值、从第二数据通道接收与第二数据通道值对应的第二索引、并基于所述第一索引是否等于所述第二索引来选择性地输出第一加法值或所述第一数据通道值;以及第一加法器电路,连接到所述第二数据通道及所述第一除法器电路且被配置成从所述第一除法器电路接收所述第一加法值、接收所述第二数据通道值、并将所述第一加法值加到所述第二数据通道值以产生加法结果。
根据本发明概念的另一方面,一种计算装置包括被配置成存储输入数据的第一存储器以及被配置成存储权重数据的第二存储器。多个输入数据处理器单元分别被配置成接收所述输入数据及所述权重数据、基于所述输入数据及所述权重数据来产生与输出数据的数据地址对应的索引、并将所述输入数据及所述权重数据与所述索引一起输出。所述装置还包括计算器电路,所述计算器电路被配置成对通过根据索引将所述输入数据与所述权重数据一起相乘而得到的值进行排序、产生输出数据、对所述输出数据进行累加、并根据索引来产生所累加输出数据。
根据本发明概念的另一方面,计算方法包括接收输入数据及权重数据;产生与所述输入数据的数据地址对应的索引;基于所述输入数据及所述权重数据产生数据通道值;以及基于所述索引是否相等对所述数据通道值进行求和。
附图说明
结合附图阅读以下详细说明,将更清楚地理解本发明概念的实施例,在附图中:
图1是根据一些实施例的计算装置的方块图。
图2A是根据一些实施例的计算装置的方块图。
图2B是根据一些实施例的输入数据处理器的方块图。
图3是示出根据一些实施例的卷积计算的图。
图4是根据一些实施例的操作输入数据处理器单元的方法的流程图。
图5是根据一些实施例的输入数据处理单元的操作的实例的图。
图6是根据一些实施例的求和电路的操作的流程图。
图7是根据一些实施例的求和电路的方块图。
图8是根据一些实施例的求和电路的电路图。
图9是根据一些实施例的求和电路的操作的实例的电路图。
图10是根据一些实施例的求和电路的电路图。
图11是根据一些实施例的求和电路的电路图。
图12A是根据一些实施例的计算器的算法的流程图。
图12B是根据一些实施例的计算器的算法的流程图。
图13是根据一些实施例的计算装置的方块图。
图14是根据一些实施例的电子系统的方块图。
[符号的说明]
10、10d:计算装置;
110、110d:第一存储器;
120、120d:第二存储器;
130、130d:第三存储器;
200、200d:输入数据处理器;
210:输入数据处理器单元;
210_1:第一输入数据处理器单元;
210_2:第二输入数据处理器单元;
210_3:第三输入数据处理器单元;
210_4:第四输入数据处理器单元;
210_5~210_N:第五输入数据处理器单元~第N输入数据处理器单元;
211:提取器;
212:调度器;
300、300d:计算器;
310、310a、310b、310c:求和电路;
311、311a、311c:第一子求和电路;
312、312a、312c:第二子求和电路;
313、313a、313c:第三子求和电路;
314:地址排序器;
320_1:第一累加电路;
320_2~320_M:第二累加电路~第M累加电路;
321:寄存器;
400、400d:后处理器;
500d:矩阵产生器;
1000:电子系统;
1010:处理器;
1020:随机存取存储器;
1030:神经网络装置;
1040:存储器;
1050:传感器模块;
1060:通信模块;
AD:加法器;
AD1:第一加法器;
AD2:第二加法器;
AD3:第三加法器;
AD4:第四加法器;
AOD、AOD':所累加输出数据;
AV1:第一加法值;
AV2:第二加法值;
AV3:第三加法值;
AV4:第四加法值;
AV5:第五加法值;
AV6:第六加法值;
Case1:第一情形;
Case2:第二情形;
Case3:第三情形;
Case4:第四情形;
DA:数据地址;
DA1:第一数据地址;
DA2:第二数据地址;
DA3:第三数据地址;
DA4:第四数据地址;
DT1:第一除法器;
DT2:第二除法器;
DT3:第三除法器;
DT4:第四除法器;
DT5:第五除法器;
DT6:第六除法器;
DTU1:第一除法器单元;
DTU2:第二除法器单元;
DTU3:第三除法器单元;
DTU4:第四除法器单元;
IBL1:第一输入区块;
IBL2:第二输入区块;
IBL3:第三输入区块;
IBL4:第四输入区块;
IBL5:第五输入区块;
ID:输入数据;
ID1:第一输入数据/输入数据;
ID2~IDN:第二输入数据~第N输入数据/输入数据;
idx1:第一索引;
idx2:第二索引;
idx3:第三索引;
idx4:第四索引;
idx5:第五索引;
idx6:第六索引;
idx7:第七索引;
idx8:第八索引;
Idx:索引;
Idx1:第一索引/索引;
Idx2:第二索引/索引;
Idx3:第三索引/索引;
Idx4~IdxN:第四索引~第N索引/索引;
Idxi:第i索引;
LD1:第一通道数据;
LD2:第二通道数据;
LD3:第三通道数据;
LD4:第四通道数据;
LN1:第一通道;
LN2:第二通道;
LN3:第三通道;
LN4:第四通道;
LN5:第五通道;
LN6:第六通道;
LN7:第七通道;
LN8~LNN:第八通道~第N通道;
LV1:第一通道值;
LV2:第二通道值;
LV3:第三通道值;
LV4:第四通道值;
LV5:第五通道值;
LV6:第六通道值;
LV7:第七通道值;
LV8:第八通道值;
LVi:第i通道值;
MP:乘法器;
MUX1:第一多路复用器;
MUX2:第二多路复用器;
MUX3:第三多路复用器;
MUX4:第四多路复用器;
N:预定的常数;
S110、S120、S130、S140、S210、S220、S230、S310、S320、S330、S340、S350、S360、S370、S380、S410、S420、S430、S440、S450、S460、S470、S480、S490:操作;
SD:串流数据;
Vld:有效值;
Vld1:第一有效值;
Vldi:第i有效值;
W1:第一权重数据;
W2~WL:第二权重数据~第L权重数据;
WBL1:第一权重区块;
WBL2:第二权重区块;
WBL3:第三权重区块;
WBL4:第四权重区块;
WD:权重数据;
WD1:第一权重数据/权重数据;
WD2~WDN:第二权重数据~第N权重数据/权重数据。
具体实施方式
图1是根据一些实施例的计算装置10的方块图。参照图1,计算装置10可包括第一存储器110、第二存储器120、第三存储器130、输入数据处理器200、计算器300及后处理器400。计算装置10可接收两个数据并对所述两个数据执行卷积计算。在一些实施例中,计算装置10可接收输入数据ID(例如,通过卷积神经网络(CNN)习得的图像数据)以及用于卷积神经网络的权重数据WD(例如,用于卷积神经网络的滤波器数据),对输入数据ID及权重数据WD执行卷积计算,以及产生所累加输出数据AOD'。
第一存储器110可存储输入数据ID,且第二存储器120可存储权重数据WD。第三存储器130可存储所累积输出数据AOD',即通过对输入数据ID与权重数据WD执行卷积计算得到的结果。第一存储器110、第二存储器120及第三存储器130中的每一者可为易失性存储器装置,例如动态随机存取存储器(dynamic random access memory,DRAM)(例如,双倍数据速率同步动态随机存取存储器(double-data-rate synchronous DRAM,DDR SDRAM)、低功率双倍数据速率(low-power DDR,LPDDR)同步动态随机存取存储器、图形双倍数据速率(graphics DDR,GDDR)同步动态随机存取存储器及兰巴斯动态随机存取存储器(RambusDRAM,RDRAM))、静态随机存取存储器(static RAM,SRAM)、锁存器、触发器及寄存器;或非易失性存储器装置,例如与非闪存存储器(NAND flash memory)、垂直与非(vertical NAND,VNAND)闪存存储器、或非闪存存储器(NOR flash memory)、电阻式随机存取存储器(resistive RAM,RRAM)、相变随机存取存储器(phase-change RAM,PRAM)、磁性随机存取存储器(magnetic RAM,MRAM)、铁电随机存取存储器(ferroelectric RAM,FRAM)及自旋转移矩(spin-transfer torque,STT)随机存取存储器。尽管在本文中假设第一存储器110、第二存储器120及第三存储器130中的每一者是静态随机存取存储器,但本发明概念并非仅限于此。
尽管图1示出其中第一存储器110、第二存储器120及第三存储器130是单独的区块的情形,但本发明概念并非仅限于此。在另一些实施例中,第一存储器110、第二存储器120及第三存储器130中的至少两者可被包括在一个物理存储器中。另外,图1示出其中第一存储器110、第二存储器120及第三存储器130被包括在计算装置10中的情形。然而,本发明概念并非仅限于此,且还可应用于其中第一存储器110、第二存储器120及第三存储器130被包括在位于计算装置10外的存储器中的情形。
输入数据处理器200可接收输入数据ID及权重数据WD并基于输入数据ID及权重数据WD计算索引Idx。在一些实施例中,输入数据处理器200可基于与输入数据ID对应的输出数据的数据地址来计算索引Idx,且索引Idx可对应于输入数据ID以及与输入数据ID对应的输出数据的数据地址。输入数据处理器200可将输入数据ID及权重数据WD和与输入数据ID及权重数据WD对应的索引Idx一起传送到计算器300。
在一些实施例中,输入数据处理器200可产生指示是否需要对输入数据ID及权重数据WD进行计算的有效值,并将所产生的有效值输出到计算器300。在实例中,有效值可指示输入数据ID及权重数据WD中是否有至少一个值为'0',且计算器300可仅当有效值指示输入数据ID及权重数据WD二者均不为'0'时才可执行计算,如以下参照图4将阐述。
计算器300可对输入数据ID及权重数据WD执行乘法累加计算。在实例中,计算器300可用作乘法累加计算器(multiply-accumulation calculator,MAC)。根据本发明概念的一些实施例,计算器300可将输入数据ID与权重数据WD一起相乘并基于索引Idx对所相乘的值进行累加以产生所累加输出数据AOD。计算器300可将所产生的所累加输出数据AOD输出到后处理器400。根据本发明概念的一些实施例,计算器300可具有蝶形结构(butterflystructure),如以下参照图8将阐述。后处理器400可对所累加输出数据AOD进行后处理并将经后处理的所累加输出数据存储在第三存储器130中。
根据本发明概念的一些实施例,由于计算器300是基于索引Idx执行累加计算,因此输入数据处理器200可对与多个索引Idx对应的输入数据ID进行同步处理,从而增大计算速度。计算器300可具有蝶形结构并基于索引Idx执行累加计算以使得累加计算所需要的加法器的数目可减小。
图2A是根据一些实施例的计算装置10的方块图。具体来说,图2A是计算装置10的第一存储器110、第二存储器120、输入数据处理器200及计算器300的方块图。将省略对与图1重复的项的说明。
参照图1及图2A,计算装置10可包括第一存储器110、第二存储器120、输入数据处理器200及计算器300,且输入数据处理器200可包括第一输入数据处理器单元210_1到第N输入数据处理器单元210_N。
第一输入数据处理器单元210_1到第N输入数据处理器单元210_N可从第一存储器110分别接收第一输入数据ID1到第N输入数据IDN并从第二存储器120分别接收第一权重数据WD1到第N权重数据WDN。第一输入数据处理器单元210_1到第N输入数据处理器单元210_N可分别基于第一输入数据ID1到第N输入数据IDN的数据地址来产生第一索引Idx1到第N索引IdxN,并与第一输入数据ID1到第N输入数据IDN以及第一权重数据WD1到第N权重数据WDN一起异步地输出所产生的第一索引Idx1到第N索引IdxN。在实例中,数据地址可指示在全部的数据中由第一输入数据处理器单元210_1到第N输入数据处理器单元210_N中的每一者处理的输入数据占据的位置。
计算器300可包括多个乘法器MP、求和电路310及第一累加电路320_1到第M累加电路320_M。所述多个乘法器MP可将第一输入数据ID1到第N输入数据IDN分别乘以从第一输入数据处理器单元210_1到第N输入数据处理器单元210_N接收到的第一权重数据WD1到第N权重数据WDN,并产生通道数据。通道数据可经由第一通道LN1到第N通道LNN中的每一者被施加到求和电路310。由于通道数据是通过将第一输入数据ID1到第N输入数据IDN乘以第一权重数据WD1到第N权重数据WDN得到的值,因此通道数据可对应于第一索引Idx1到第N索引IdxN。在本说明书中,通道数据是指通过将输入数据ID1到IDN分别乘以权重数据WD1到WDN得到的数值。也就是说,第一通道数据可为通过第一通道LN1接收到的将第一输入数据ID1与第一权重数据WD1一起相乘得到的常数。
求和电路310可连接到乘法器MP以及第一通道LN1到第N通道LNN并通过第一通道LN1到第N通道LNN中的每一者接收通道数据,第一通道LN1到第N通道LNN分别连接到与乘法器MP对应的第一输入数据处理器单元210_1到第N输入数据处理器单元210_N。求和电路310可通过对分别与通道数据对应的索引Idx1到IdxN进行比较来对通道数据进行求和,并根据数据地址来对通过基于索引Idx1到IdxN对通道数据进行排序及求和产生的通道数据的排序。求和电路310可将作为排序结果而产生的M个输出数据输出到第一累加电路320_1到第M累加电路320_M(此处,M是等于或大于1的自然数)。求和电路310将在以下参照图7来进行详细阐述。
第一累加电路320_1到第M累加电路320_M中的每一者可包括加法器AD及寄存器321。加法器AD可从寄存器321接收所累加输出数据并将从求和电路310接收到的输出数据加到所累加输出数据。加法器AD可将被加上所接收到的数据的所累加输出数据存储在寄存器321中。寄存器321可存储所累加输出数据,并输出存储在后处理器400中的所累加输出数据。
图2B是根据一些实施例的输入数据处理器单元210的方块图。将省略对与图2A重复的项的说明。参照图2A及图2B,输入数据处理器单元210可包括提取器211及调度器212。提取器211可从第一存储器110接收输入数据ID并基于输入数据ID产生数据地址DA。提取器211可将输入数据ID以及基于输入数据ID产生的数据地址DA输出到调度器212。调度器212还可从第二存储器120接收权重数据WD并基于权重数据WD产生索引Idx。索引Idx可对应于权重数据WD。调度器212可将输入数据ID及权重数据WD与所产生的索引Idx一起输出到计算器300。
在一些实施例中,调度器212还可产生有效值。有效值可指示是否需要对输入数据ID及权重数据WD进行计算。在实例中,有效值可指示输入数据ID及权重数据WD中是否有至少一个值为'0'。在实例中,调度器212可在输入数据ID及权重数据WD中的至少一者具有数据值'0'时输出'0'作为有效值且在输入数据ID及权重数据WD二者均不为'0'时输出'1'作为有效值。在另一个实例中,调度器212可在输入数据ID及权重数据WD中的至少一者具有数据值'0'时输出'1'作为有效值且在输入数据ID及权重数据WD二者均不为'0'时输出'0'作为有效值。
图3是根据一些实施例的卷积计算的图。参照图1、图2A及图3,计算装置10可接收IH×IW×IC矩阵的输入数据ID以及权WH×WW×WC×WL矩阵的重数据WD,对输入数据ID及权重数据WD执行卷积计算,并产生OH×OW×OC的所累加输出数据AOD。第一输入数据处理器单元210_1到第五输入数据处理器单元210_5可分别提取第一输入区块IBL1到第五输入区块IBL5中包含的数据以对输入数据ID中包括的第一输入区块IBL1到第五输入区块IBL5执行卷积。第一输入数据处理器单元210_1到第五输入数据处理器单元210_5可分别提取与第一输入区块IBL1到第五输入区块IBL5处于相同级别处的第一权重区块WBL1到第四权重区块WBL4中包含的数据,并将所提取的数据输出到计算器300。在实例中,第一输入数据处理器单元210_1可提取第一输入区块IBL1以及与第一输入区块IBL1处于相同级别处的第一权重区块WBL1中包含的数据,并将所提取的数据输出到计算器300。尽管图中未示出,然而也可对第一权重数据W1到第L权重数据WL中所包括的与第一权重区块WBL1处于相同级别处的权重区块进行提取。
第一输入数据处理器单元210_1可产生与通过将第一输入区块IBL1乘以第一权重区块WBL1得到的值对应的所累加输出数据AOD的数据地址,产生与所累加输出数据AOD的数据地址对应的第一索引Idx1,并与第一输入区块IBL1及第一权重区块WBL1一起输出第一索引Idx1。相比之下,第二输入数据处理器单元210_2可产生与通过将第二输入区块IBL2乘以第二权重区块WBL2得到的值对应的所累加输出数据AOD的数据地址,产生与所累加输出数据AOD的数据地址对应的第二索引Idx2,并与第二输入区块IBL2及第二权重区块WBL2一起输出第二索引Idx2。
根据本发明概念的一些实施例,第一输入数据处理器单元210_1到第五输入数据处理器单元210_5中的每一者可产生索引Idx并对输入区块及权重区块进行异步处理。因此,第一输入数据处理器单元210_1到第五输入数据处理器单元210_5可在其他输入数据处理器单元完成对输入区块的处理之前对其他输入区块进行处理。因此,卷积计算的速度可提高。
图4是根据一些实施例的操作输入数据处理器单元的方法的流程图。参照图2A及图4,第一输入数据处理器单元210_1到第N输入数据处理器单元210_N中的每一者可分别从第一存储器110与第二存储器120接收输入数据ID及权重数据WD(S110)。第一输入数据处理器单元210_1到第N输入数据处理器单元210_N中的每一者可产生与所接收的输入数据ID及权重数据WD的数据地址对应的索引Idx(S120)。第一输入数据处理器单元210_1到第N输入数据处理器单元210_N中的每一者可根据输入数据ID及权重数据WD中的每一者是否为'0'来产生有效值Vld(S130)。第一输入数据处理器单元210_1到第N输入数据处理器单元210_N中的每一者可将输入数据ID及权重数据WD与索引Idx及有效值Vld一起输出到计算器300(S140)。
图5是根据一些实施例的输入数据处理器单元的操作的实例的图。参照图4及图5,在第一情形Case1中,第一输入数据处理器单元210_1到第N输入数据处理器单元210_N中的每一者可接收不为'0'的第一输入数据ID1、以及不为'0'的第一权重数据WD1。第一输入数据处理器单元210_1到第N输入数据处理器单元210_N中的每一者可将与第一输入数据ID1及第一权重数据WD1对应的输出数据的数据地址确定为第一数据地址DA1。第一输入数据处理器单元210_1到第N输入数据处理器单元210_N中的每一者可产生'1'作为有效值Vld,这是因为第一输入数据ID1及第一权重数据WD1二者均不为'0'。在实例中,第一输入数据处理器单元210_1到第N输入数据处理器单元210_N中的每一者可执行与(AND)计算来产生有效值Vld。
第一输入数据处理器单元210_1到第N输入数据处理器单元210_N中的每一者可产生第一索引Idx1作为与第一数据地址DA1对应的索引Idx。在实例中,第一输入数据处理器单元210_1到第N输入数据处理器单元210_N可将第一数据地址DA1代入到预定的数值公式中并产生第一索引Idx1。在另一个实例中,第一输入数据处理器单元210_1到第N输入数据处理器单元210_N可将预定的表与第一数据地址DA1进行比对以产生第一索引Idx1。第一输入数据处理器单元210_1到第N输入数据处理器单元210_N中的每一者可将第一输入数据ID1及第一权重数据WD1与所产生的为'1'的有效值Vld以及第一索引Idx1一起输出到计算器300。
在第二情形Case2中,第一输入数据处理器单元210_1到第N输入数据处理器单元210_N中的每一者可接收不为'0'的第二输入数据ID2作为输入数据ID并接收'0'作为权重数据WD。另外,第一输入数据处理器单元210_1到第N输入数据处理器单元210_N中的每一者可将与第二输入数据ID2对应的输出数据的数据地址确定为第二数据地址DA2。第一输入数据处理器单元210_1到第N输入数据处理器单元210_N中的每一者可产生'0'作为有效值Vld,这是因为权重数据WD为'0'。另外,第一输入数据处理器单元210_1到第N输入数据处理器单元210_N中的每一者可产生第二索引Idx2作为与第二数据地址DA2对应的索引Idx。第一输入数据处理器单元210_1到第N输入数据处理器单元210_N中的每一者可将第二输入数据ID2及为'0'的权重数据WD与所产生的为'0'的有效值Vld以及第二索引Idx2一起输出。
在第三情形Case3中,第一输入数据处理器单元210_1到第N输入数据处理器单元210_N中的每一者可接收'0'作为输入数据ID以及不为'0'的第二权重数据WD2作为权重数据WD。另外,第一输入数据处理器单元210_1到第N输入数据处理器单元210_N中的每一者可将输出数据的数据地址确定为第三数据地址DA3,并产生'0'作为有效值Vld,这是因为输入数据ID为'0'。另外,第一输入数据处理器单元210_1到第N输入数据处理器单元210_N中的每一者可产生第三索引Idx3作为与第三数据地址DA3对应的索引Idx。第一输入数据处理器单元210_1到第N输入数据处理器单元210_N中的每一者可将为'0'的输入数据ID及第二权重数据WD2与所产生的为'0'的有效值Vld以及第三索引Idx3一起输出到计算器300。
在第四情形Case4中,第一输入数据处理器单元210_1到第N输入数据处理器单元210_N中的每一者可接收'0'作为输入数据ID并接收'0'作为权重数据WD。另外,第一输入数据处理器单元210_1到第N输入数据处理器单元210_N中的每一者可将输出数据的数据地址确定为第四数据地址DA4,并产生'0'作为有效值Vld,这是因为输入数据ID及权重数据WD中的每一者为'0'。另外,第一输入数据处理器单元210_1到第N输入数据处理器单元210_N中的每一者可产生第四索引Idx4作为与第四数据地址DA4对应的索引Idx。第一输入数据处理器单元210_1到第N输入数据处理器单元210_N中的每一者可将为'0'的输入数据ID及为'0'的权重数据WD与所产生的为'0'的有效值Vld以及第四索引Idx4一起输出到计算器300。
图6是根据一些实施例的操作求和电路310的方法的流程图。参照图2A及图6,求和电路310可接收具有第一索引Idx1的第一通道值LV1以及具有第二索引Idx2的第二通道值LV2(S210)。求和电路310可基于第一索引Idx1是否等于第二索引Idx2来对第一通道值LV1及第二通道值LV2执行计算(S220)。在本说明书中,通道值可指通过每一通道的数据。也就是说,可随后通过由于对索引进行比较而引起的将另一个通道数据加到第一通道值LV1来改变第一通道值LV1的数据值。
在实例中,当第一索引Idx1等于第二索引Idx2时,求和电路310可将第一通道值LV1的数据值加到第二通道值LV2并将第一通道值LV1设定为'0'。在另一个实例中,当第一索引Idx1等于第二索引Idx2时,求和电路310可将第二通道值LV2的数据值加到第一通道值LV1并将第二通道值LV2设定为'0'。当第一索引Idx1不同于第二索引Idx2时,求和电路310可不对第一通道值LV1及第二通道值V2执行计算而是维持第一通道值LV1及第二通道值LV2。
图7是根据一些实施例的求和电路的方块图。具体来说,图7是具有2级蝶形结构的求和电路310的方块图。参照图2A及图7,求和电路310可连接到第一通道LN1到第四通道LN4,且包括第一子求和电路311、第二子求和电路312、第三子求和电路313及地址排序器314。第一子求和电路311可连接到第一通道LN1及第二通道LN2并对从第一通道LN1接收到的第一通道值LV1以及从第二通道LN2接收到的第二通道值LV2执行计算。第二子求和电路312可连接到第三通道LN3及第四通道LN4并对从第三通道LN3接收到的第三通道值LV3以及从第四通道LN4接收到的第四通道值LV4执行计算。第三子求和电路313可连接到第一通道LN1到第四通道LN4并对第一通道值LV1、第二通道值LV2、第三通道值LV3及第四通道值LV4执行计算。
求和电路310可包括具有蝶形结构的电路。在本说明书中,″蝶形结构″可指具有多个级的结构,所述多个级被配置成对子群组的通道执行计算。也就是说,在第一级中,第一子求和电路311可对第一通道值LV1及第二通道值LV2执行计算,且第二子求和电路312可对第三通道值LV3及第四通道值LV4执行计算。由于第一子求和电路311及第二子求和电路312如上所述基于索引执行计算,因此在第一通道值LV1与第二通道值LV2具有相同索引时可执行计算,而在第一通道值LV1与第二通道值LV2具有不同索引时不可执行计算。相似地,在第三通道值LV3及第四通道值LV4具有相同索引时可执行计算,而在第三通道值LV3不同于第四通道值LV4时不可执行计算。
也就是说,在第一级中,第一子求和电路311可不再需要在第一通道值LV1与第二通道值LV2之间执行计算,且第二子求和电路312可不再需要在第三通道值LV3与第四通道值LV4之间执行计算。因此,第二级中包括的第三子求和电路313可不再执行上述计算,而是基于索引执行第一通道值LV1与第三通道值LV3之间的计算、第一通道值LV1与第四通道值LV4之间的计算、第二通道值LV2与第三通道值LV3之间的计算及第二通道值LV2与第四通道值LV4之间的计算。
由于上述操作,基于各个索引进行求和的值可被作为第一通道值LV1到第四通道值LV4来进行计算。因此,由于对第一通道值LV1到第四通道值LV4的计算是根据索引完成的,因此第一通道值LV1的索引到第四通道值LV4的索引可不相互交叠。在本文中,不相互交叠的索引可被称为相互唯一的。根据一些实施例,求和电路310可选择蝶形结构以减少所必需的加法器的数目,如以下参照图8将阐述。
地址排序器314可接收第一通道值LV1到第四通道值LV4,根据数据地址对基于索引接收到的第一通道值LV1到第四通道值LV4进行排序,并将数据作为排序结果输出到累加电路320。地址排序器314可产生输出数据,所述输出数据的数目与所接收到的第一通道值LV1到第四通道值LV4的数目相等或不同。在一些实施例中,地址排序器314可通过将索引代入到调度器212使用的预定数值公式的反演公式中来根据数据地址执行排序操作。在再一些实施例中,地址排序器314可通过从调度器212使用的预定表检索与索引对应的数据地址来根据数据地址执行排序操作。
图8是根据一些实施例的求和电路的电路图。具体来说,图8是具有2级结构的求和电路310a的电路图。将省略与参照图7的说明相同的说明。参照图8,求和电路310a可包括第一子求和电路311a、第二子求和电路312a及第三子求和电路313a。第一子求和电路311a可包括第一除法器DT1及第一加法器AD1,且第二子求和电路312a可包括第二除法器DT2及第二加法器AD2。第三子求和电路313a可包括第三除法器DT3到第六除法器DT6、第一多路复用器MUX1到第二多路复用器MUX2、第三加法器AD3及第四加法器AD4。在一些实施例中,第一除法器DT1到第六除法器DT6中的每一者可通过解多路复用器(demultiplexer)或反相多路复用器(inverter multiplexer)来实施。
第一子求和电路311a可包括连接到第一通道LN1的第一除法器DT1以及连接到第二通道LN2的第一加法器AD1。第一子求和电路311a可接收具有第一索引idx1的第一通道值LV1以及具有第二索引idx2的第二通道值LV2。第一除法器DT1可从第二通道LN2接收第二索引idx2并将第一索引idx1与第二索引idx2进行比较。当第一索引idx1等于第二索引idx2时,第一除法器DT1可将第一加法值AV1设定为第一通道值LV1的数据值并将第一通道值LV1设定为'0'。当第一索引idx1不等于第二索引idx2时,第一除法器DT1可将第一加法值AV1设定为'0'并维持第一通道值LV1的数据值。第一加法器AD1可将第一加法值AV1加到第二通道值LV2。
第二子求和电路312a可包括连接到第三通道LN3的第二除法器DT2以及连接到第四通道LN4的第二加法器AD2。第二子求和电路312a可接收具有第三索引idx3的第三通道值LV3以及具有第四索引idx4的第四通道值LV4。第二除法器DT2可从第四通道LN4接收第四索引idx4并将第三索引idx3与第四索引idx4进行比较。当第三索引idx3等于第四索引idx4时,第二除法器DT2可将第二加法值AV2设定为第三通道值LV3的数据值并将第三通道值LV3设定为'0'。当第三索引idx3不等于第四索引idx4时,第二除法器DT2可将第二加法值AV2设定为'0'并维持第三通道值LV3的数据值。第二加法器AD2可将第二加法值AV2加到第四通道值LV4。
第三除法器DT3可连接到第一通道LN1及第一多路复用器MUX1并从第四通道LN4接收第四索引idx4。第三除法器DT3可将第一索引idx1与第四索引idx4进行比较。当第一索引idx1等于第四索引idx4时,第三除法器DT3可将第三加法值AV3设定为第一通道值LV1的数据值并将第一通道值LV1设定为'0'。当第一索引idx1不等于第四索引idx4时,第三除法器DT3可将第三加法值AV3设定为'0'并维持第一通道值LV1的数据值。
第四除法器DT4可连接到第二通道LN2及第一多路复用器MUX1并从第四通道LN4接收第四索引idx4。第四除法器DT4可将第二索引idx2与第四索引idx4进行比较。当第二索引idx2等于第四索引idx4时,第四除法器DT4可将第四加法值AV4设定为第二通道值LV2的数据值并将第二通道值LV2设定为'0'。当第二索引idx2不等于第四索引idx4时,第四除法器DT4可将第四加法值AV4设定为'0'并维持第二通道值LV2的数据值。
第一多路复用器MUX1可将第三加法值AV3及第四加法值AV4中的任一者输出到第三加法器AD3。由于对第一通道值LV1与第二通道值LV2进行的求和是由第一子求和电路311a基于索引来完成的,因此第一通道值LV1与第二通道值LV2可具有不同的索引。由于只有连接到具有与第四索引idx4相等的索引的通道的加法值具有不为'0'的值,因此第三加法值AV3及第四加法值AV4中的至少一者可为'0'。第一多路复用器MUX1可将第三加法值AV3及第四加法值AV4中的不为'0'的一者输出到第三加法器AD3,并在第三加法值AV3及第四加法值AV4二者均为'0'时将'0'输出到第三加法器AD3。第三加法器AD3可将从第一多路复用器MUX1接收到的值加到第四通道值LV4。
第五除法器DT5可连接到第一通道LN1及第二多路复用器MUX2并从第三通道LN3接收第三索引idx3。第五除法器DT5可将第一索引idx1与第三索引idx3进行比较。当第一索引idx1等于第三索引idx3时,第五除法器DT5可将第五加法值AV5设定为第一通道值LV1的数据值并将第一通道值LV1设定为'0'。当第一索引idx1不等于第三索引idx3时,第五除法器DT5可将第五加法值AV5设定为'0'并维持第一通道值LV1的数据值。
第六除法器DT6可连接到第二通道LN2及第二多路复用器MUX2并从第三通道LN3接收第三索引idx3。第六除法器DT6可将第二索引idx2与第三索引idx3进行比较。当第二索引idx2等于第三索引idx3时,第六除法器DT6可将第六加法值AV6设定为第二通道值LV2的数据值并将第二通道值LV2设定为'0'。当第二索引idx2不等于第三索引idx3时,第六除法器DT6可将第六加法值AV6设定为'0'并维持第二通道值LV2的数据值。
第二多路复用器MUX2可将第五加法值AV5及第六加法值AV6中的任一者输出到第四加法器AD4。如上所述,由于对第一通道值LV1与第二通道值LV2进行的求和是由第一子求和电路311a基于索引来完成的,因此第一通道值LV1及第二通道值LV2可具有不同的索引。因此,第五加法值AV5及第六加法值AV6中的至少一者可为'0'。第二多路复用器MUX2可将第五加法值AV5及第六加法值AV6中的不为'0'的一者输出到第四加法器AD4,并在第五加法值AV5及第六加法值AV6二者均为'0'时将'0'输出到第四加法器AD4。第四加法器AD4可将从第二多路复用器MUX2接收到的值加到第三通道值LV3。
在一些实施例中,求和电路310a还可通过第一通道LN1到第四通道LN4中的每一者来接收指示第一通道值LV1到第四通道值LV4中的每一者的数据值是否为'0'的有效值。除了判断各索引是否相等之外,第一除法器DT1到第六除法器DT6中的每一者还可接收有效值。当有效值为'0'时,第一除法器DT1到第六除法器DT6中的每一者可输出'0'作为加法值且维持通道值。在实例中,第一除法器DT1还可从连接到第一通道LN1的第一输入数据处理器单元接收指示第一通道值LV1的数据值是否为'0'的第一有效值,还从连接到第二通道LN2的第二输入数据处理器单元接收指示第二通道值LV2的数据值是否为'0'的第二有效值,并仅在第一有效值及第二有效值均不为'0'且第一索引idx1等于第二索引idx2时将第一加法值AV1设定为第一通道值LV1的数据值。
如上所述,求和电路310a可具有图8所示蝶形结构并通过根据级对索引进行比较来执行求和。因此,可利用小数目的加法器来执行卷积计算的求和。
图9是根据一些实施例的求和电路310a的操作的实例的电路图。将省略对与图8重复的项的说明。参照图8及图9,求和电路310a可通过第一通道LN1接收第一通道数据LD1作为第一通道值LV1,接收'2'作为与第一通道数据LD1对应的第一索引Idx1,通过第二通道LN2接收第二通道数据LD2作为第二通道值LV2,并接收'2'作为与第二通道数据LD2对应的第二索引Idx2。求和电路310a可通过第三通道LN3接收第三通道数据LD3作为第三通道值LV3,接收'3'作为与第三通道数据LD3对应的第三索引Idx3,通过第四通道LN4接收第四通道数据LD4作为第四通道值LV4,并接收'2'作为与第四通道数据LD4对应的第四索引Idx4。
第一除法器DT1可接收'2'作为第二索引Idx2并将第二索引Idx2与第一索引Idx1进行比较。由于第一索引Idx1为'2'且等于第二索引Idx2,因此第一除法器DT1可将第一加法值AV1设定为第一通道数据LD1并将第一通道值LV1设定为'0'。第一加法器AD1可将第一通道数据LD1加到第二通道值LV2以使第二通道值LV2可变成'LD2+LD1'。
第二除法器DT2可接收'2'作为第四索引Idx4并将第四索引Idx4与第三索引Idx3进行比较。由于第三索引Idx3不同于第四索引Idx4,因此第二除法器DT2可将第二加法值AV2设定为'0'并将第三通道值LV3维持为第三通道数据LD3。第二加法器AD2可将'0'加到第四通道值LV4以使得第四通道值LV4可维持为'LD4'。
第四除法器DT4可接收'2'作为第四索引Idx4并将第四索引Idx4与第二索引Idx2进行比较。由于第二索引Idx2为'2'且等于第四索引Idx4,因此第四除法器DT4可将第四加法值AV4设定为'LD2+LD1'(即,第二通道值LV2的数据值)并将第二通道值LV2设定为'0'。第三除法器DT3可输出'0'作为第三加法值AV3。第一多路复用器MUX1可将不为'0'的第四加法值AV4的数据值输出到第三加法器AD3。第三加法器AD3可将'LD2+LD1'加到第四通道值LV4以使得第四通道值LV4可变成'LD4+LD2+LD1'。
由于第一通道值LV1及第二通道值LV2中的每一者为'0',因此第五除法器DT5及第六除法器DT6可分别输出'0'作为第五加法值AV5及第六加法值AV6,且第二多路复用器MUX2可将'0'输出到第四加法器AD4。因此,第四加法器AD4可将'0'加到第三通道值LV3以使得第三通道值LV3可维持为'LD3'。
如上所述,根据本发明概念一些实施例的求和电路310a可利用相对小数目的加法器根据索引来对通道数据进行求和。
图10是根据一些实施例的求和电路310b的电路图。参照图10,求和电路310b可包括第一除法器DT1到第六除法器DT6以及第一加法器AD1到第三加法器AD3并连接到第一通道LN1到第四通道LN4。求和电路310b可分别通过第一通道LN1到第四通道LN4来接收具有第一索引idx1到第四索引idx4的第一通道值LV1到第四通道值LV4。
连接到第一通道LN1的第一除法器DT1可接收第四索引idx4并将第一索引idx1与第四索引idx4进行比较。当第一索引idx1等于第四索引idx4时,第一除法器DT1可将第一加法值AV1设定为第一通道值LV1的数据值并将第一通道值LV1设定为'0'。当第一索引idx1不等于第四索引idx4时,第一除法器DT1可将第一加法值AV1设定为'0'并维持第一通道值LV1的数据值。
连接到第二通道LN2的第二除法器DT2可接收第四索引idx4并将第二索引idx2与第四索引idx4进行比较。当第二索引idx2等于第四索引idx4时,第二除法器DT2可将第二加法值AV2设定为第二通道值LV2的数据值并将第二通道值LV2设定为'0'。当第二索引idx2不等于第四索引idx4时,第二除法器DT2可将第二加法值AV2设定为'0'并维持第二通道值LV2的数据值。
连接到第三通道LN3的第三除法器DT3可接收第四索引idx4并将第三索引idx3与第四索引idx4进行比较。当第三索引idx3等于第四索引idx4时,第三除法器DT3可将第三加法值AV3设定为第三通道值LV3的数据值并将第三通道值LV3设定为'0'。当第三索引idx3不等于第四索引idx4时,第三除法器DT3可将第三加法值AV3设定为'0'并维持第三通道值LV3的数据值。第一加法器AD1可将所接收到的第一加法值AV1到第三加法值AV3加到第四通道值LV4。
连接到第一通道LN1的第四除法器DT4可接收第三索引idx3并将第一索引idx1与第三索引idx3进行比较。当第一索引idx1等于第三索引idx3时,第四除法器DT4可将第四加法值AV4设定为第一通道值LV1的数据值并将第一通道值LV1设定为'0'。当第一索引idx1不等于第三索引idx3时,第四除法器DT4可将第四加法值AV4设定为'0'并维持第一通道值LV1的数据值。
连接到第二通道LN2的第五除法器DT5可接收第三索引idx3并将第二索引idx2与第三索引idx3进行比较。当第二索引idx2等于第三索引idx3时,第五除法器DT5可将第五加法值AV5设定为第二通道值LV2的数据值并将第二通道值LV2设定为'0'。当第二索引idx2不等于第三索引idx3时,第五除法器DT5可将第五加法值AV5设定为'0'并维持第二通道值LV2的数据值。第二加法器AD2可将所接收到的第四加法值AV4及第五加法值AV5加到第三通道值LV3。
连接到第一通道LN1的第六除法器DT6可接收第二索引idx2并将第一索引idx1与第二索引idx2进行比较。当第一索引idx1等于第二索引idx2时,第六除法器DT6可将第六加法值AV6设定为第一通道值LV1的数据值并将第一通道值LV1设定为'0'。当第一索引idx1不等于第二索引idx2时,第六除法器DT6可将第六加法值AV6设定为'0'并维持第一通道值LV1的数据值。第三加法器AD3可将所接收到的第六加法值AV6加到第二通道值LV2。
如上所述,根据本发明概念一些实施例的求和电路310可将第一通道值LV1到第四通道值LV4作为通过根据索引对通道数据进行相加得到的结果输出到地址排序器(参照图7所示314)。
图11是根据一些实施例的求和电路的电路图。具体来说,图11是具有3级结构的求和电路310c的电路图。将省略对与图8重复的项的说明。参照图11,求和电路310c可包括第一子求和电路311c、第二子求和电路312c及第三子求和电路313c。由于第一子求和电路311c及第二子求和电路312c相同于或相似于图8所示求和电路310a,因此将省略对第一子求和电路311c及第二子求和电路312c的说明。
第三子求和电路313c可从第一子求和电路311c接收第一通道值LV1到第四通道值LV4并从第二子求和电路312c接收第五通道值LV5到第八通道值LV8。如上所述,第一通道值LV1到第四通道值LV4可根据索引来进行求和并因第一子求和电路311c而处于相互唯一的状态,且第五通道值LV5到第八通道值LV8可因第二子求和电路312c而处于相互唯一的状态。因此,第三子求和电路313c可不需要执行第一通道值LV1到第四通道值LV4之间的求和或第五通道值LV5到第八通道值LV8之间的求和。然而,第三子求和电路313c可执行第八通道值LV8与第一通道值LV1到第四通道值LV4之间的求和、第七通道值LV7与第一通道值LV1到第四通道值LV4之间的求和、第六通道值LV6与第一通道值LV1到第四通道值LV4之间的求和、以及第五通道值LV5与第一通道值LV1到第四通道值LV4之间的求和。
第三子求和电路313c可包括第一除法器单元DTU1到第四除法器单元DTU4、第一多路复用器MUX1到第四多路复用器MUX4、及第一加法器AD1到第四加法器AD4。第一除法器单元DTU1可接收第八索引idx8且包括分别连接到第一通道LN1到第四通道LN4的多个除法器。第一除法器单元DTU1可将第八索引idx8与第一索引idx1到第四索引idx4中的每一者进行比较并当所比较的索引相等时将通道值的数据值输出到第一多路复用器MUX1。如上所述,由于第一通道值LV1到第四通道值LV4相互唯一,因此第一索引idx1到第四索引idx4中的至少两者可不等于第八索引idx8。因此,当第一索引idx1到第四索引idx4中的一者等于第八索引idx8时,第一除法器单元DTU1可将不为'0'的任意一个通道值的数据值输出到第一多路复用器MUX1。当第一索引idx1到第四索引idx4中的每一者均不等于第八索引idx8时,第一除法器单元DTU1可将'0'输出到第一多路复用器MUX1。第一多路复用器MUX1可将所接收到的值输出到第一加法器AD1,且第一加法器AD1可将从第一多路复用器MUX1接收到的值加到第八通道值LV8。
第二除法器单元DTU2可接收第七索引idx7且包括分别连接到第一通道LN1到第四通道LN4的多个除法器。第二除法器单元DTU2可将第七索引idx7与第一索引idx1到第四索引idx4中的每一者进行比较并当所比较的索引相等时将通道值的数据值输出到第二多路复用器MUX2。当第一索引idx1到第四索引idx4中的任意一者等于第七索引idx7时,第二除法器单元DTU2可将不为'0'的任意一个通道值的数据值输出到第二多路复用器MUX2。当第一索引idx1到第四索引idx4中的每一者均不等于第七索引idx7时,第二除法器单元DTU2可将'0'输出到第二多路复用器MUX2。第二多路复用器MUX2可将所接收到的值输出到第二加法器AD2,且第二加法器AD2可将从第二多路复用器MUX2接收到的值加到第七通道值LV7。
第三除法器单元DTU3可接收第六索引idx6且包括分别连接到第一通道LN1到第四通道LN4的多个除法器。第三除法器单元DTU3可将第六索引idx6与第一索引idx1到第四索引idx4中的每一者进行比较并当所比较的索引相等时将通道值的数据值输出到第三多路复用器MUX3。当第一索引idx1到第四索引idx4中的任意一者等于第六索引idx6时,第三除法器单元DTU3可将不为'0'的任意一个通道值的数据值输出到第三多路复用器MUX3。当第一索引idx1到第四索引idx4中的每一者均不等于第六索引idx6时,第三除法器单元DTU3可将'0'输出到第三多路复用器MUX3。第三多路复用器MUX3可将所接收到的值输出到第三加法器AD3,且第三加法器AD3可将从第三多路复用器MUX3接收到的值加到第六通道值LV6。
第四除法器单元DTU4可接收第五索引idx5且包括分别连接到第一通道LN1到第四通道LN4的多个除法器。第四除法器单元DTU4可将第五索引idx5与第一索引idx1到第四索引idx4中的每一者进行比较并当所比较的索引相等时将通道值的数据值输出到第四多路复用器MUX4。当第一索引idx1到第四索引idx4中的任意一者等于第五索引idx5时,第四除法器单元DTU4可将不为'0'的任意一个通道值的数据值输出到第四多路复用器MUX4。当第一索引idx1到第四索引idx4中的每一者均不等于第五索引idx5时,第四除法器单元DTU4可将'0'输出到第四多路复用器MUX4。第四多路复用器MUX4可将所接收到的值输出到第四加法器AD4,且第四加法器AD4可将从第四多路复用器MUX4接收到的值加到第五通道值LV5。
尽管在本文中示出了具有2级蝶形结构及3级蝶形结构的计算器,然而本发明概念并非仅限于此且可应用于具有包括四个或更多个级的蝶形结构的计算器。根据一些实施例,具有N级蝶形结构的计算器可包括N/2×log2N个加法器、N/2×(2^(log2N)-1)个除法器及N/2×(log2N-1)个多路复用器(此处,N是等于或大于1的自然数)。
图12A是根据一些实施例的计算器300的算法的流程图。具体来说,图12A是计算器300产生与第一通道值LV1对应的所累加输出数据时使用的算法的流程图。参照图1及图12A,计算器300可接收具有第一索引Idx1的第一通道值LV1(S310)。计算器300可将'2'作为初始值代入到整数”i”中(S320)并判断第一索引Idx1是否等于第i索引Idxi(S330)。当第一索引Idx1等于第i索引Idxi时,计算器300可将第一通道值LV1增大与第i通道值LVi的数据值一样大的值(S340)。当第一索引Idx1不等于第i索引Idxi时,计算器300不可将第i通道值LVi的数据值加到第一通道值LV1。
计算器300可判断整数(i)是否是预定的常数N(S350)。如果整数(i)不是预定的常数N,则可将1加到整数(i)(S360),且可重复进行操作S330到S350。如果整数(i)是预定的常数N,则计算器300可根据数据地址来对第一通道值LV1进行排序(S370)。计算器300可对经排序的输出数据进行累加并产生所累加输出数据(S380)。
图12B是根据一些实施例的计算器300的算法的流程图。具体来说,图12B是计算器300产生与第一通道值LV1对应的所累加输出数据时使用的算法的流程图。参照图1及图12B,计算器300可接收具有第一索引Idx1的第一通道值LV1(S410)。计算器300可将'2'作为初始值代入到整数(i)中(S420)并判断第一有效值Vld1及第i有效值Vldi中的每一者是否为'0'(S430)。第一有效值Vld1可指示第一通道值LV1是否为'0',且第i有效值Vldi可指示第i通道值LVi是否为'0'。
当第一有效值Vld1及第i有效值Vldi为'1'时,可判断第一索引Idx1是否等于第i索引Idxi(S440)。如果第一索引Idx1等于第i索引Idxi,则计算器300可将第一通道值LV1增大与第i通道值LVi的数据值一样大的值(S450)。如果第一索引Idx1不等于第i索引Idxi,则计算器300不可将第i通道值LVi的数据值加到第一通道值LV1。即使第一有效值Vld1及第i有效值Vldi中的至少一者不为'1',计算器300仍不可将第i通道值LVi的数据值加到第一通道值LV1。
计算器300可判断整数(i)是否是预定的常数N(S460)。如果整数(i)不是预定的常数N,则可将1加到整数(i)(S470),且可重复进行操作S430到S460。如果整数(i)是预定的常数N,则计算器300可根据数据地址来对第一通道值LV1进行排序(S480)。计算器300可对经排序的输出数据进行累加并产生所累加输出数据(S490)。
图13是根据一些实施例的计算装置10d的方块图。将省略对与图1重复的项的相同的说明。参照图13,计算装置10d可包括第一存储器110d、第二存储器120d、第三存储器130d、输入数据处理器200d、计算器300d、后处理器400d及矩阵产生器500d。由于第一存储器110d、第二存储器120d、第三存储器130d、输入数据处理器200d、计算器300d及后处理器400d相同或相似于图1所示第一存储器110、第二存储器120、第三存储器130、输入数据处理器200、计算器300及后处理器400,因此将不再对其说明予以详述。
矩阵产生器500d可接收串流数据SD作为串流类型。在本文中,串流可统称为除了矩阵之外的所有数据类型。矩阵产生器500d可将串流数据SD转换成矩阵类型。矩阵产生器500d可对与输入数据ID对应的串流数据SD执行矩阵变换(matrix transformation),且接着将所产生的输入数据ID存储在第一存储器110d中。矩阵产生器500d可对与权重数据WD对应的串流数据SD执行矩阵变换,且接着将所产生的权重数据WD存储在第二存储器120d中。
图14是根据一些实施例的电子系统1000的方块图。参照图14,电子系统1000可基于神经网络实时地分析输入数据,提取有效信息,并基于所提取的信息来对情况进行判定或者对上面安装有电子系统1000的电子装置的组件进行控制。举例来说,电子系统1000可应用于机器人装置(例如,无人机及高级驾驶辅助系统(advanced drivers assistancesystem,ADAS))、智能电视、智能电话、医疗装置、移动装置、图像显示装置、测量装置以及物联网装置或者安装在各种其他类型的电子装置中的至少一种上。
电子系统1000可包括处理器1010、随机存取存储器1020、神经网络装置1030、存储器1040、传感器模块1050及通信模块1060。处理器1010可控制电子系统1000的总体操作。举例来说,处理器1010可执行存储在随机存取存储器1020中的程序并控制神经网络装置1030的功能。随机存取存储器1020可临时地存储程序、数据或指令。
神经网络装置1030可基于所接收到的输入数据执行神经网络的计算并基于计算结果产生信息信号。神经网络装置1030可为使用固定点类型的量化神经网络执行处理操作的硬件且对应于上述计算装置。
存储器1040可为用于存储数据的存储区域。举例来说,存储器1040可存储在由神经网络装置1030执行的计算中产生的各种数据。传感器模块1050可从电子系统1000外部感测或接收信号(例如,图像信号、语音信号、磁性信号、生物信号及触摸信号)并将信号转换成数据。通信模块1060可包括能够与外部装置进行通信的各种有线接口或无线接口。
本发明概念的上述实施例可被写为计算机程序且可使用计算机可读记录媒体在执行所述程序的通用数字计算机中实施。另外,在上述实施例中使用的数据的结构可通过各种单元记录在计算机可读记录媒体上。计算机可读记录媒体的实例可包括存储媒体,例如磁性存储媒体(例如,只读存储器(read-only memory,ROM)、软盘、硬盘等)以及光学记录媒体(例如,只读光盘存储器(compact disc-read only memory,CD-ROM)或数字视频盘(digital video disc,DVD))。
尽管已参照本发明概念的实施例具体示出并阐述了本发明概念,然而应理解,在不背离以上权利要求书的精神及范围的条件下,在本文中可作出形式及细节上的各种改变。

Claims (24)

1.一种计算装置,其特征在于,包括:
第一除法器电路,连接到第一数据通道且被配置成接收具有第一索引的第一数据通道值、从第二数据通道接收与第二数据通道值对应的第二索引、并基于所述第一索引是否等于所述第二索引来选择性地输出第一加法值或所述第一数据通道值;以及
第一加法器电路,连接到所述第二数据通道及所述第一除法器电路且被配置成从所述第一除法器电路接收所述第一加法值、接收所述第二数据通道值、并将所述第一加法值加到所述第二数据通道值以产生加法结果。
2.根据权利要求1所述的计算装置,其特征在于,还包括:
第一乘法器电路,被配置成将通过将经由所述第一数据通道接收的第一权重数据与第一输入数据相乘得到的值作为所述第一数据通道值输出到所述第一除法器电路;以及
第二乘法器电路,被配置成将通过将经由所述第二数据通道一起接收的第二权重数据与第二输入数据相乘得到的值作为所述第二数据通道值输出到所述第一加法器电路。
3.根据权利要求1所述的计算装置,其特征在于,所述第一索引对应于所述第一数据通道值的数据地址,且所述第二索引对应于所述第二数据通道值的数据地址。
4.根据权利要求1所述的计算装置,其特征在于,当所述第一索引等于所述第二索引时,所述第一除法器电路将所述第一数据通道值的数据作为所述第一加法值输出到所述第一加法器电路并输出'0'作为所述第一数据通道值,且其中当所述第一索引不等于所述第二索引时,所述第一除法器电路将'0'作为所述第一加法值输出到所述第一加法器电路并输出所述第一数据通道值的数据作为所述第一数据通道值。
5.根据权利要求4所述的计算装置,其特征在于,还包括:
第二除法器电路,连接到所述第一数据通道且被配置成从所述第一除法器电路接收所述第一数据通道值、从第三数据通道接收与第三数据通道值对应的第三索引、以及基于所述第一索引是否等于所述第三索引来选择性地输出第二加法值或所述第一数据通道值;
第三除法器电路,连接到所述第二数据通道且被配置成从所述第一加法器电路接收所述第二数据通道值、从所述第三数据通道接收所述第三索引、并基于所述第二索引是否等于所述第三索引来选择性地输出第三加法值或所述第二数据通道值;以及
第二加法器电路,连接到所述第三数据通道、所述第二除法器电路及所述第三除法器电路,且被配置成从所述第二除法器电路接收所述第二加法值、从所述第三除法器电路接收所述第三加法值、以及将所述第二加法值及所述第三加法值加到所述第三数据通道值以经由所述第三数据通道输出相加值。
6.根据权利要求5所述的计算装置,其特征在于,当所述第一索引等于所述第三索引时,所述第二除法器电路将所述第一数据通道值的数据作为所述第二加法值输出到所述第二加法器电路且输出'0'作为所述第一数据通道值,其中当所述第一索引不等于所述第三索引时,所述第二除法器电路将'0'作为所述第三加法值输出到所述第二加法器电路并输出所述第一数据通道值的数据作为所述第一数据通道值,其中当所述第二索引等于所述第三索引时,所述第三除法器电路将所述第二数据通道值的数据作为所述第三加法值输出到所述第二加法器电路并输出'0'作为所述第二数据通道值,且其中当所述第二索引不等于所述第三索引时,所述第三除法器电路将'0'作为所述第三加法值输出到所述第二加法器电路并输出所述第二数据通道值的数据作为所述第二数据通道值。
7.根据权利要求6所述的计算装置,其特征在于,当所述第二除法器电路输出所述第一数据通道值的所述数据作为所述第二加法值时,所述第三除法器电路输出'0'作为所述第三加法值,且其中当所述第三除法器电路输出所述第二数据通道值的所述数据作为所述第三加法值时,所述第二除法器电路输出'0'作为所述第二加法值。
8.根据权利要求5所述的计算装置,其特征在于,还包括多路复用器电路,所述多路复用器电路连接到所述第二除法器电路及所述第三除法器电路且被配置成从所述第二除法器电路接收所述第二加法值、从所述第三除法器电路接收所述第三加法值、并选择性地将所述第二加法值或所述第三加法值输出到所述第二加法器电路。
9.根据权利要求8所述的计算装置,其特征在于,所述多路复用器电路将从所述第二加法值及所述第三加法值中选出的不为'0'的加法值输出到所述第二加法器电路。
10.根据权利要求1所述的计算装置,其特征在于,所述第一除法器电路接收指示所述第一数据通道值的数据是否为'0'的第一有效值以及指示所述第二数据通道值的数据是否为'0'的第二有效值,且其中所述第一除法器电路基于所述第一有效值是否等于所述第二有效值以及所述第一索引是否等于所述第二索引来确定所述第一加法值。
11.根据权利要求10所述的计算装置,其特征在于,仅当基于所述第一有效值及第二有效值所述第一数据通道值及所述第二数据通道值二者均不为'0'且所述第一索引等于所述第二索引时,所述第一除法器电路才将所述第一数据通道值的所述数据作为所述第一加法值输出到所述第一加法器电路且输出'0'作为所述第一数据通道值,且其中当基于所述第一有效值及所述第二有效值所述第一数据通道值及所述第二数据通道值中的至少一者为'0'或所述第一索引不等于所述第二索引时,所述第一除法器电路将'0'作为所述第一加法值输出到所述第一加法器电路并输出所述第一数据通道值的所述数据作为所述第一数据通道值。
12.根据权利要求1所述的计算装置,其特征在于,还包括:
第四除法器电路,连接到第三数据通道且被配置成经由所述第三数据通道的输入端子接收具有第三索引的第三数据通道值、从第四数据通道接收与第四数据通道值对应的第四索引、以及基于所述第三索引是否等于所述第四索引来选择性地输出第四加法值或所述第三数据通道值;以及
第三加法器电路,连接到所述第四数据通道及所述第四除法器电路且被配置成从所述第四除法器电路接收所述第四加法值、经由所述第四数据通道的输入端子接收所述第四数据通道值、以及将所述第四加法值加到所述第四数据通道值以产生加法结果。
13.根据权利要求12所述的计算装置,其特征在于,还包括地址排序器电路,所述地址排序器电路被配置成接收所述第一数据通道值到所述第四数据通道值、基于与所述第一索引到所述第四索引对应的数据地址来对所述第一数据通道值到所述第四数据通道值进行排序、并输出经排序的所述第一数据通道值到所述第四数据通道值。
14.根据权利要求13所述的计算装置,其特征在于,还包括多个累加电路,所述多个累加电路被配置成对各自的输出数据进行累加。
15.根据权利要求14所述的计算装置,其特征在于,所述多个累加电路中的每一者包括:
寄存器,被配置成存储所累加输出数据并输出所述所累加输出数据;以及
第四加法器电路,被配置成从所述地址排序器电路接收所述输出数据、从所述寄存器接收所述所累加输出数据、将所述输出数据加到所述所累加输出数据以产生新的所累加输出数据并将所述新的所累加输出数据存储在所述寄存器中。
16.一种计算装置,其特征在于,包括:
矩阵产生器电路,所述矩阵产生器电路被配置成接收第一数据及第二数据、对所述第一数据实行矩阵变换以产生输入数据、并对所述第二数据实行所述矩阵变换以产生权重数据;
第一存储器,被配置成存储所述输入数据;
第二存储器,被配置成存储所述权重数据;
多个输入数据处理器单元,所述多个输入数据处理器单元中的每一者被配置成接收所述输入数据及所述权重数据、基于所述输入数据及所述权重数据来产生与输出数据的数据地址对应的索引、并将所述输入数据及所述权重数据与所述索引一起输出;以及
计算器电路,被配置成对通过根据索引将所述输入数据与所述权重数据一起相乘而得到的值进行排序、产生输出数据、对所述输出数据进行累加、并根据索引来产生所累加输出数据。
17.根据权利要求16所述的计算装置,其特征在于,所述多个输入数据处理器单元中的每一者包括:
提取器,被配置成从所述第一存储器接收第一输入数据并产生与所述第一输入数据对应的所述输出数据的所述数据地址;以及
调度器,被配置成从所述第二存储器接收第一权重数据、从所述提取器接收所述数据地址、基于所述数据地址产生第一索引、并将所述第一输入数据及所述第一权重数据与所述第一索引一起输出到所述计算器电路。
18.根据权利要求16所述的计算装置,其特征在于,所述计算器电路包括:
多个加法器电路,被配置成将通过多个数据通道接收的所述输入数据与所述权重数据相乘并产生多个数据通道值;
求和电路,被配置成将与所述多个数据通道值对应的索引进行比较并基于所述索引的比较来对所述多个数据通道值进行排序及求和;
地址排序器电路,被配置成根据数据地址对所求和的所述数据通道值进行排序,并据此产生输出数据;以及
多个累加器,被配置成对所述输出数据进行累加。
19.根据权利要求18所述的计算装置,其特征在于,所述求和电路包括:
第一除法器电路,连接到第一数据通道且被配置成接收第一索引及第二索引并基于所述第一索引是否等于所述第二索引来选择性地输出第一加法值或第一数据通道值;以及
第一加法器电路,连接到第二数据通道及所述第一除法器电路且被配置成从所述第一除法器电路接收所述第一加法值、将所述第一加法值加到第二数据通道值、并经由所述第二数据通道输出所述加法的结果。
20.根据权利要求16所述的计算装置,其特征在于,还包括:
预处理电路,被配置成接收所述所累加输出数据并对所述所累加输出数据进行预处理;以及
第三存储器,被配置成存储经预处理的所述所累加输出数据。
21.根据权利要求16所述的计算装置,其特征在于,所述输入数据及所述权重数据是矩阵型数据。
22.根据权利要求16所述的计算装置,其特征在于,被配置成卷积神经网络。
23.一种计算方法,其特征在于,包括:
透过连接到第一数据通道的第一除法器电路接收具有第一索引的第一数据;
透过所述第一除法器电路从第二数据通道接收与第二数据通道值对应的第二索引;
基于所述第一索引是否等于所述第二索引来选择性地透过所述第一除法器电路输出第一加法值或所述第一数据通道值;以及
透过连接到所述第二数据通道及所述第一除法器电路的第一加法器电路从所述第一除法器电路接收所述第一加法值、接收所述第二数据通道值、并将所述第一加法值加到所述第二数据通道值以产生加法结果。
24.根据权利要求23所述的计算方法,其特征在于,当所述第一索引等于所述第二索引时,透过所述第一除法器电路将所述第一数据通道值的数据作为所述第一加法值输出到所述第一加法器电路并输出'0'作为所述第一数据通道值,且其中当所述第一索引不等于所述第二索引时,透过所述第一除法器电路将'0'作为所述第一加法值输出到所述第一加法器电路并输出所述第一数据通道值的数据作为所述第一数据通道值。
CN201810827535.4A 2017-09-28 2018-07-25 用于实行卷积的计算装置及实行卷积的计算方法 Active CN109582911B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020170126355A KR102356708B1 (ko) 2017-09-28 2017-09-28 컨볼루션 연산을 수행하는 연산 장치 및 연산 방법
KR10-2017-0126355 2017-09-28

Publications (2)

Publication Number Publication Date
CN109582911A CN109582911A (zh) 2019-04-05
CN109582911B true CN109582911B (zh) 2023-11-21

Family

ID=65807735

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810827535.4A Active CN109582911B (zh) 2017-09-28 2018-07-25 用于实行卷积的计算装置及实行卷积的计算方法

Country Status (4)

Country Link
US (1) US10997497B2 (zh)
KR (1) KR102356708B1 (zh)
CN (1) CN109582911B (zh)
TW (1) TWI814734B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190052893A (ko) 2017-11-09 2019-05-17 삼성전자주식회사 뉴럴 네트워크 연산을 위한 전처리 장치 및 방법
US10929746B2 (en) * 2017-11-27 2021-02-23 Samsung Electronics Co., Ltd. Low-power hardware acceleration method and system for convolution neural network computation

Citations (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR910014830A (ko) * 1990-01-24 1991-08-31 미다 가쓰시게 반도체 메모리를 사용한 뉴럴 네트워크 정보처리 장치
US5432803A (en) * 1992-04-30 1995-07-11 Novatel Communications, Ltd. Maximum likelihood convolutional decoder
US5553196A (en) * 1989-04-05 1996-09-03 Yozan, Inc. Method for processing data using a neural network having a number of layers equal to an abstraction degree of the pattern to be processed
KR19990065181A (ko) * 1998-01-09 1999-08-05 윤종용 다중 운영 체제를 지원하는 마이크로프로세서의 레지스터 제어 장치
US6385635B1 (en) * 1998-04-23 2002-05-07 Nec Corporation Product sum operation device capable of carrying out fast operation
CN1369777A (zh) * 2001-02-05 2002-09-18 三星电子株式会社 时分型矩阵计算器
US6744814B1 (en) * 2000-03-31 2004-06-01 Agere Systems Inc. Method and apparatus for reduced state sequence estimation with tap-selectable decision-feedback
KR20050045766A (ko) * 2003-11-12 2005-05-17 삼성전자주식회사 기지국의 모뎀을 위한 인터리빙 로직 및 인터리빙 방법
CN101697486A (zh) * 2009-09-27 2010-04-21 华中科技大学 一种二维小波变换集成电路结构
CN101874354A (zh) * 2007-11-26 2010-10-27 摩托罗拉公司 用于矢量化turbo解码器的数据交织电路和方法
CN102208005A (zh) * 2011-05-30 2011-10-05 华中科技大学 一种2-d卷积器
CN102484531A (zh) * 2009-08-28 2012-05-30 Lg电子株式会社 用于在无线通信系统中发送导频的方法和装置
CN103323831A (zh) * 2013-05-31 2013-09-25 浙江大学 一种基于czt变换和剪除分裂基快速傅里叶变换的三维摄像声纳波束形成方法
CN103677736A (zh) * 2012-09-04 2014-03-26 亚德诺半导体股份有限公司 数字信号处理器的数据路径电路
CN104301740A (zh) * 2014-10-27 2015-01-21 北京航天自动控制研究所 一种红外图像9/7小波变换硬件加速电路
CN105528191A (zh) * 2015-12-01 2016-04-27 中国科学院计算技术研究所 数据累加装置、方法及数字信号处理装置
CA2911475A1 (en) * 2014-12-17 2016-06-17 Ross Video Limited Methods and systems for intersecting digital images
CN106940815A (zh) * 2017-02-13 2017-07-11 西安交通大学 一种可编程卷积神经网络协处理器ip核
CN107168678A (zh) * 2017-05-09 2017-09-15 清华大学 一种改进的浮点乘加器及浮点乘加计算方法

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5093801A (en) 1990-07-06 1992-03-03 Rockwell International Corporation Arrayable modular FFT processor
KR100313501B1 (ko) 1999-01-12 2001-11-07 김영환 Cbfp알고리즘을 갖는 fft프로세서
US8363535B2 (en) 2003-04-28 2013-01-29 Marvell International Ltd. Frequency domain echo and next cancellation
TWI242949B (en) * 2003-05-10 2005-11-01 Sst Comm Co Apparatus and method for low complexity error concealment for wireless transmission
US7296045B2 (en) 2004-06-10 2007-11-13 Hasan Sehitoglu Matrix-valued methods and apparatus for signal processing
KR100585967B1 (ko) 2004-12-14 2006-06-01 한국전자통신연구원 고속 하다마드 변환을 선택적으로 수행하는 고속 푸리에변환 장치 및 그를 이용한 cck 변/복조 장치
KR100618889B1 (ko) 2005-02-12 2006-09-01 삼성전자주식회사 메모리 사이즈를 감소시킬 수 있는 고속 푸리에 변환 프로세서
US8266196B2 (en) 2005-03-11 2012-09-11 Qualcomm Incorporated Fast Fourier transform twiddle multiplication
KR100668674B1 (ko) 2005-12-10 2007-01-12 한국전자통신연구원 고속 푸리에 변환 장치 및 고속 푸리에 변환 방법
US7907961B2 (en) * 2006-06-07 2011-03-15 Broadcom Corporation Method and apparatus for improving noise power estimate in a WCDMA network
US8001171B1 (en) 2006-05-31 2011-08-16 Xilinx, Inc. Pipeline FFT architecture for a programmable device
KR100890768B1 (ko) 2007-03-21 2009-04-02 (주)카이로넷 데이터 변환 프로세서 및 이를 갖는직교주파수분할다중변조 수신장치
CN101989253B (zh) 2009-07-31 2012-08-29 鸿富锦精密工业(深圳)有限公司 离散余弦转换电路及使用其的影像处理装置
US8817588B2 (en) * 2009-10-28 2014-08-26 Qualcomm Incorporated Multiplexing data and reference information in a wireless communication system
GB2474901B (en) * 2009-10-30 2015-01-07 Advanced Risc Mach Ltd Apparatus and method for performing multiply-accumulate operations
US8194532B1 (en) 2010-01-25 2012-06-05 Xilinx, Inc. Mixed radix discrete fourier transform
JP5577932B2 (ja) * 2010-08-09 2014-08-27 ソニー株式会社 送信回路および通信システム
US8966457B2 (en) 2011-11-15 2015-02-24 Global Supercomputing Corporation Method and system for converting a single-threaded software program into an application-specific supercomputer
KR101345127B1 (ko) 2012-12-28 2013-12-26 전자부품연구원 연산 스킵으로 연산량을 감소시키는 Butterfly 연산 방법 및 이를 적용한 HEVC 시스템
JP2015046715A (ja) * 2013-08-27 2015-03-12 富士通株式会社 通信回路及び情報処理装置
JP6309777B2 (ja) * 2014-02-10 2018-04-11 シナプティクス・ジャパン合同会社 表示装置、表示パネルドライバ、及び、表示パネルの駆動方法
JP6314628B2 (ja) 2014-04-28 2018-04-25 株式会社デンソー 演算処理装置
EP3035204B1 (en) * 2014-12-19 2018-08-15 Intel Corporation Storage device and method for performing convolution operations
JP6700712B2 (ja) 2015-10-21 2020-05-27 キヤノン株式会社 畳み込み演算装置
US9703531B2 (en) * 2015-11-12 2017-07-11 Arm Limited Multiplication of first and second operands using redundant representation
US9735996B2 (en) 2015-11-25 2017-08-15 Electronics And Telecommunications Research Institute Fully parallel fast fourier transformer
KR102433924B1 (ko) * 2016-01-14 2022-08-19 삼성전자주식회사 디스플레이 컨트롤러, 그리고 이를 포함하는 어플리케이션 프로세서
KR101722215B1 (ko) 2016-05-10 2017-03-31 고려대학교 산학협력단 이산 여현 변환 장치 및 방법

Patent Citations (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5553196A (en) * 1989-04-05 1996-09-03 Yozan, Inc. Method for processing data using a neural network having a number of layers equal to an abstraction degree of the pattern to be processed
KR910014830A (ko) * 1990-01-24 1991-08-31 미다 가쓰시게 반도체 메모리를 사용한 뉴럴 네트워크 정보처리 장치
US5432803A (en) * 1992-04-30 1995-07-11 Novatel Communications, Ltd. Maximum likelihood convolutional decoder
KR19990065181A (ko) * 1998-01-09 1999-08-05 윤종용 다중 운영 체제를 지원하는 마이크로프로세서의 레지스터 제어 장치
US6385635B1 (en) * 1998-04-23 2002-05-07 Nec Corporation Product sum operation device capable of carrying out fast operation
US6744814B1 (en) * 2000-03-31 2004-06-01 Agere Systems Inc. Method and apparatus for reduced state sequence estimation with tap-selectable decision-feedback
CN1369777A (zh) * 2001-02-05 2002-09-18 三星电子株式会社 时分型矩阵计算器
KR20050045766A (ko) * 2003-11-12 2005-05-17 삼성전자주식회사 기지국의 모뎀을 위한 인터리빙 로직 및 인터리빙 방법
CN101874354A (zh) * 2007-11-26 2010-10-27 摩托罗拉公司 用于矢量化turbo解码器的数据交织电路和方法
CN102484531A (zh) * 2009-08-28 2012-05-30 Lg电子株式会社 用于在无线通信系统中发送导频的方法和装置
CN101697486A (zh) * 2009-09-27 2010-04-21 华中科技大学 一种二维小波变换集成电路结构
CN102208005A (zh) * 2011-05-30 2011-10-05 华中科技大学 一种2-d卷积器
CN103677736A (zh) * 2012-09-04 2014-03-26 亚德诺半导体股份有限公司 数字信号处理器的数据路径电路
CN103323831A (zh) * 2013-05-31 2013-09-25 浙江大学 一种基于czt变换和剪除分裂基快速傅里叶变换的三维摄像声纳波束形成方法
CN104301740A (zh) * 2014-10-27 2015-01-21 北京航天自动控制研究所 一种红外图像9/7小波变换硬件加速电路
CA2911475A1 (en) * 2014-12-17 2016-06-17 Ross Video Limited Methods and systems for intersecting digital images
CN105528191A (zh) * 2015-12-01 2016-04-27 中国科学院计算技术研究所 数据累加装置、方法及数字信号处理装置
CN106940815A (zh) * 2017-02-13 2017-07-11 西安交通大学 一种可编程卷积神经网络协处理器ip核
CN107168678A (zh) * 2017-05-09 2017-09-15 清华大学 一种改进的浮点乘加器及浮点乘加计算方法

Also Published As

Publication number Publication date
TWI814734B (zh) 2023-09-11
US10997497B2 (en) 2021-05-04
KR20190036896A (ko) 2019-04-05
US20190095782A1 (en) 2019-03-28
CN109582911A (zh) 2019-04-05
TW201915834A (zh) 2019-04-16
KR102356708B1 (ko) 2022-01-27

Similar Documents

Publication Publication Date Title
CN109325591B (zh) 面向Winograd卷积的神经网络处理器
WO2018205708A1 (zh) 应用于二值权重卷积网络的处理系统及方法
US20160093343A1 (en) Low power computation architecture
US11934798B2 (en) Counter-based multiplication using processing in memory
US11544542B2 (en) Computing device and method
CN109993275B (zh) 一种信号处理方法及装置
CN113762493A (zh) 神经网络模型的压缩方法、装置、加速单元和计算系统
US11790232B2 (en) Method and apparatus with neural network data input and output control
CN113469354B (zh) 受存储器限制的神经网络训练
CN109582911B (zh) 用于实行卷积的计算装置及实行卷积的计算方法
JP2022049141A (ja) 演算デバイス、計算機システム、及び演算方法
CN110490317B (zh) 神经网络运算装置及运算方法
EP3444758B1 (en) Discrete data representation-supporting apparatus and method for back-training of artificial neural network
CN109697509B (zh) 处理方法及装置、运算方法及装置
CN111788582B (zh) 电子设备及其控制方法
Zhan et al. Field programmable gate array‐based all‐layer accelerator with quantization neural networks for sustainable cyber‐physical systems
CN114968362B (zh) 异构融合计算指令集以及使用方法
CN112132272B (zh) 神经网络的计算装置、处理器和电子设备
CN109583577B (zh) 运算装置及方法
Theodorakopoulos et al. Parsimonious Inference on Convolutional Neural Networks: Learning and applying on-line kernel activation rules
CN113850370A (zh) 数据处理方法及设备、处理芯片
CN113570053A (zh) 一种神经网络模型的训练方法、装置以及计算设备
CN112906877A (zh) 用于执行神经网络模型的存储器架构中的数据布局有意识处理
CN111198714A (zh) 重训练方法及相关产品
Han et al. A high-throughput scalable BNN accelerator with fully pipelined architecture

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