CN114341826A - 基于非易失性存储器的处理器和数据流技术 - Google Patents

基于非易失性存储器的处理器和数据流技术 Download PDF

Info

Publication number
CN114341826A
CN114341826A CN202080062011.6A CN202080062011A CN114341826A CN 114341826 A CN114341826 A CN 114341826A CN 202080062011 A CN202080062011 A CN 202080062011A CN 114341826 A CN114341826 A CN 114341826A
Authority
CN
China
Prior art keywords
computational
circuits
volatile memory
processor
processing elements
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202080062011.6A
Other languages
English (en)
Inventor
张振亚
M·施丹
孟繁萱
C·刘
J·博蒂默尔
T·韦斯利
卢伟
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.)
Mamrix
Original Assignee
Mamrix
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 Mamrix filed Critical Mamrix
Publication of CN114341826A publication Critical patent/CN114341826A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0207Addressing or allocation; Relocation with multidimensional access, e.g. row/column, matrix
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • 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
    • G06F17/153Multidimensional correlation or convolution
    • 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/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • 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/30032Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3893Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator
    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • 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
    • 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
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/44Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
    • G06V10/443Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components by matching or filtering
    • G06V10/449Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters
    • G06V10/451Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters with interaction between the filter responses, e.g. cortical complex cells
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/94Hardware or software architectures specially adapted for image or video understanding
    • G06V10/955Hardware or software architectures specially adapted for image or video understanding using specific electronic processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/48Indexing scheme relating to groups G06F7/48 - G06F7/575
    • G06F2207/4802Special implementations
    • G06F2207/4818Threshold devices
    • G06F2207/4824Neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1028Power efficiency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/205Hybrid memory, e.g. using both volatile and non-volatile memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7207Details relating to flash memory management management of metadata or control data
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Biophysics (AREA)
  • Databases & Information Systems (AREA)
  • Algebra (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Multimedia (AREA)
  • Computational Linguistics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Neurology (AREA)
  • Biodiversity & Conservation Biology (AREA)
  • Computer Hardware Design (AREA)
  • Image Processing (AREA)
  • Advance Control (AREA)
  • Logic Circuits (AREA)
  • Medical Informatics (AREA)

Abstract

一种单片集成电路(IC),其包括一个或更多个计算电路、一个或更多个非易失性存储器电路、一个或更多个通信信道以及一个或更多个通信接口。所述一个或更多个通信信道可以将所述一个或更多个计算电路、所述一个或更多个非易失性存储器电路和所述一个或更多个通信接口通信地耦合在一起。所述一个或更多个通信接口可以将所述单片集成电路的一个或更多个电路通信地耦合到所述单片集成电路外部的一个或更多个电路。

Description

基于非易失性存储器的处理器和数据流技术
相关申请的交叉引用
本申请要求2020年6月8日提交的美国专利申请No.16/894,588和2019年7月9日提交的美国临时专利申请No.62/872,147的权益,其全部内容合并于此。
背景技术
参考图1,示出了根据常规技术的计算系统。计算系统100可包括处理器110和片外存储器120。处理器110可以是包括一个或更多个计算电路130和一个或更多个易失性存储器电路140的单片集成电路(IC)。一个或更多个通信信道可以将一个或更多个计算电路130耦合到一个或更多个易失性存储器电路140。单片IC处理器110还可以包括用于将一个或更多个易失性存储器电路140耦合至片外存储器120的一个或更多个通信接口160。
在一个实现方式中,该一个或更多个易失性存储器电路140可以是在常规技术中通常被称为片上处理器高速缓存的静态随机存取存储器(SRAM)。在诸如人工智能、机器学习、神经网络等的应用中,片上易失性存储器电路140仅高速缓存权重、内核函数等的一部分。相反,权重、内核函数等被存储在片外存储器120中。权重、内核函数等的各部分被从片外存储器120读入至易失性存储器电路140,其当前正由计算电路130处理。然后,计算电路130的计算结果被写出到片外存储器120。向片外存储器120读取和写入数据(诸如权重、内核函数等)消耗易失性存储器电路140与片外存储器之间的大量通信带宽。此外,易失性存储器电路140与片外存储器之间的数据(诸如权重、内核函数等)传输占计算系统100的功耗的很大部分,并且传输可能花较长的延迟。此外,即使当数据没有被写入易失性存储器电路140和从易失性存储器电路140读取时,易失性存储器电路140也消耗电力。
因此,持续需要降低单片IC处理器110与片外存储器120之间的带宽利用率。同样地,持续需要降低计算系统100中的单片IC处理器110和片外存储器120的功耗。
发明内容
通过参照以下描述和附图可以最好地理解本技术,这些附图用于示出针对本文中的基于非易失性存储器的处理器和数据流技术的本技术的实施例。
在一个实施例中,处理器可以包括在单片集成电路上的多个处理元件。每个处理元件可包括一个或更多个处理电路和一个或更多个非易失性存储器电路。相应处理元件的计算电路可被配置为执行一个或更多个相应计算或计算的部分。相应处理元件的非易失性存储器电路可被配置为存储相应组的权重、内核函数等。多个处理元件可被配置为在处理元件之间传递数据。
在另一个实施例中,处理器配置方法可以包括接收计算模型,该计算模型包括多个节点、将该多个节点中的各个节点耦合在一起的边、以及各个节点的权重。多个处理元件的计算电路可以基于该多个节点中的相应节点来配置。此外,可以基于边来配置经配置的处理元件之间的数据流。此外,各个节点的权重可以被加载到相应处理元件的非易失性存储器电路中。
提供本发明内容以便以简化形式介绍将在以下详细说明中进一步描述的一些概念。本发明内容并不旨在确定所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。
附图说明
在附图中通过举例而非限制的方式示出了本技术的多个实施例,并且其中,相同的参考数字指代类似的元件,并且其中:
图1示出了根据常规技术的计算系统。
图2示出了根据本技术的各方面的计算系统。
图3示出了根据本技术的各方面的处理器及其示例性配置。
图4示出了根据本技术的各方面的示例性计算模型。
图5示出了根据本技术的各方面的处理器配置方法。
图6示出了根据本技术的各方面的示例性计算模型。
图7示出了根据本技术的各方面的处理器及其示例性配置。
具体实施方式
现在将详细参考本技术的实施例,其示例在附图中示出。尽管将结合这些实施例描述本技术,然而,应当理解的是,其并不旨在将本技术局限于这些实施例。相反,本发明旨在覆盖可被包括在由所附权利要求限定的本发明的范围内的替代、修改和等同物。此外,在本技术的以下详细描述中,阐述了许多具体细节以便提供对本技术的透彻理解。然而,应当理解,本技术可以在没有这些具体细节的情况下实施。在其他实例中,未详细描述众所周知的方法、过程、组件和电路,以免不必要地模糊本技术的各方面。
以下本技术的一些实施例是按照例程、模块、逻辑块以及对一个或更多个电子设备内的数据的操作的其他符号表示来呈现的。描述和表示是本领域的技术人员为了将其工作的实质最有效地传达给本领域的其他技术人员所使用的手段。例程、模块、逻辑块和/或类似物在本文中并且通常被设想为导致期望结果的过程或指令的自洽序列。这些过程是包括对物理量的物理操纵的那些过程。通常,尽管不是必需的,但是这些物理操纵采取能够在电子设备中存储、传送、比较和以其他方式操纵的电或磁信号的形式。为了方便起见,并且参考共同使用,参照本技术的实施例,这些信号被称为数据、位、值、元素、符号、字符、术语、数字、字符串等。
然而,应当牢记,这些术语应被解释为参考物理操作和数量并且仅仅是方便的标签并且鉴于本领域中常用的术语被进一步解释。除非另有具体说明,否则如从以下讨论中显而易见的,应当理解的是,通过本技术的讨论,利用诸如“接收”等术语的讨论是指诸如操纵和变换数据的电子计算设备的电子设备的动作和处理。该数据被表示为电子设备的逻辑电路、寄存器、存储器等内的物理(例如,电子)量,并且被转换成类似地被表示为电子设备内的物理量的其他数据。
在本申请中,析取词的使用旨在包括连接词。定冠词或不定冠词的使用不旨在指示基数。具体地,提及“该”物体或“一个”物体旨在还表示可能的多个此类物体中的一个。术语“包括(comprises)”、“包括(comprising)”、“包括(includes)”、“包括(including)”等的使用指定所述要素的存在,但不排除一个或更多个其他要素和/或其组的存在或添加。还应理解的是,虽然在本文中可使用术语第一、第二等来描述各种元件,但是这种元件不应受这些术语限制。这些术语在本文中用于区分一个元件与另一个元件。例如,在不背离本实施例的范围的情况下,第一元件可以被称为第二元件,并且类似地,第二元件可以被称为第一元件。还应理解的是,当元件被称为“耦合”至另一元件时,该元件可直接或间接地连接至另一元件,或者可存在中间元件。相反,当元件被称为“直接连接”至另一元件时,则不存在中间元件。还应理解的是,术语“和/或”包括一个或更多个相关元件的任何和所有组合。还应理解的是,本文中使用的措辞和术语用于描述的目的,并且不应被视为限制性的。
参考图2,根据本技术的各方面的计算系统。计算系统200可以包括耦合到一个或更多个片外存储器220的一个或更多个处理器210。一个或更多个处理器210可包括但不限于一个或更多个中央处理单元(CPU)、一个或更多个图形处理单元(GPU)、一个或更多个张量处理单元(TPU)、一个或更多个人工智能(AI)加速器或一个或更多个存储器处理单元。处理器210可以是包括一个或更多个计算电路230、一个或更多个非易失性存储器电路240、一个或更多个通信信道250和一个或更多个通信接口260的单片集成电路(IC)。在示例性实施方式中,一个或更多个非易失性存储器电路240可以是一个或更多个处理器210的片上非易失性处理器高速缓存。一个或更多个非易失性存储器电路240可以包括但不限于电阻式随机存取存储器(ReRAM)、磁性随机存取存储器(MRAM)、闪存(FLASH)或相变随机存取存储器(PCRAM)中的一个或更多个。一个或更多个通信信道250可以将一个或更多个计算电路230通信地耦合到一个或更多个非易失性存储器电路240。
一个或更多个通信接口260可以提供用于一个或更多个非易失性存储器电路240与一个或更多个片外存储器220之间的一个或更多个通信信道的接口。该一个或更多个片外存储器220可以是独立的并且在该一个或更多个处理器210的单片集成电路(IC)外部(例如,片外)的一个或更多个单片集成电路存储器。一个或更多个处理器210可包括一个或更多个各个其他电路,这些电路与本技术的各方面的理解并不密切相关,因此在本文中不再进一步讨论。类似地,计算系统200可以包括一个或更多个各个其他电路,这些电路与本技术的各方面的理解不是密切相关的,因此在此不进一步讨论。
一个或更多个处理器210的一个或更多个非易失性存储器电路240可以是被配置为存储权重、内核函数等的密集存储。例如,一个或更多个非易失性存储器电路240可以存储权重,诸如但不限于人工智能(AI)权重、机器学习(ML)权重和神经网络(NN)权重。可以跨一个或更多个通信信道250从一个或更多个非易失性存储器电路240读取权重。通常,权重被写至一个或更多个非易失性存储器电路240一次以用于计算模型、计算图等。为了便于讨论,计算模型、计算图等将一般被称为计算模型。计算模型可以是但不限于人工智能(AI)模型、机器学习(ML)模型和神经网络模型。可以从一个或更多个非易失性存储器电路240中反复读取权重以供一个或更多个计算电路230在计算模型中使用。对于给定的计算模型,重写权重通常不是必需的,并且因此避免了重写一个或更多个非易失性存储器电路240中的权重。
此外,非易失性存储器电路240(如电阻式随机存取存储器(ReRAM)、磁性随机存取存储器(MRAM)、闪存(FLASH)或相变随机存取存储器(PCRAM))可以比常规处理器110的常规易失性存储器电路140(如静态随机存取存储器(SRAM))更致密。与静态随机存取存储器(SRAM)相比,诸如电阻式随机存取存储器(ReRAM)、磁性随机存取存储器(MRAM)、闪存(FLASH)或相变随机存取存储器(PCRAM)的非易失性存储器电路240可以消耗更少的待机功率。因为不需要重写一个或更多个非易失性存储器电路240中的权重来执行给定的计算模型,所以可以减少通常与非易失性存储器电路240相关联的访问延迟、功耗、损耗和其他这样的参数损失。
再次,可以从片外存储器220中读入这些权重一次并将其存储在一个或更多个非易失性存储器电路240中。存储在一个或更多个非易失性存储器电路240中的权重可以用作由计算电路230执行的计算的操作数。此外,由计算电路230中的一个或更多个计算电路执行的一个或更多个计算的结果可以作为操作数被传递到计算电路230中的一个或更多个其他计算电路以执行一个或更多个其他计算,而无需在结果作为由一个或更多个其他计算电路执行的一个或更多个其他计算的操作数被读取之前被写回到一个或更多个非易失性存储器电路240。例如,非易失性存储器电路240中的一个或更多个权重可以由第一计算电路230用作由第一计算电路230执行的计算的操作数。计算的结果从计算电路230传递到另一个计算电路230,而不是被写回非易失性存储器电路240。
相比之下,在根据常规技术的处理器110中,数据被从片外存储器120读入至片上易失性存储器电路140,计算电路130对该数据执行给定计算,并且结果被写回至片上易失性存储器电路140。当结果被写回非易失性存储器电路240时,用易失性存储器电路140替换常规处理器中的非易失性存储器电路240是不实际的。例如,与易失性存储器电路140相比,非易失性存储器电路遭受磨损,这将在将计算结果从计算电路130写回到非易失性存储器电路时不起作用。此外,对非易失性存储器电路的写入比写回到易失性存储器电路140花更长的时间,这将在将来自计算的结果从计算电路130写回到非易失性存储器电路时增加延迟。
然而,通过将权重的写入限制为初始写入、重新使用这些权重、以及在计算电路之间传递计算结果而非写回到存储器,非易失性存储器电路240可以有利地用于处理器210的片上存储器。非易失性存储器电路240可以具有足够的密度来存储大多数计算模型所需的所有权重。通过在初始写入中写入权重,非易失性存储器电路240还可以有利地减少向片外存储器220读出数据。减少向片外存储器220读出数据可减少通信接口260的带宽利用率并且减少计算系统200中的片外存储器220的功耗。
现在参见图3,根据本技术的各方面的处理器。处理器300可包括多个处理元件310。每个处理元件可以包括计算电路320和非易失性存储器电路330。非易失性存储器电路330可以包括但不限于电阻式随机存取存储器(ReRAM)、磁性随机存取存储器(MRAM)、闪存(FLASH)或相变随机存取存储器(PCRAM)中的一个或更多个。非易失性存储器电路330可以是被配置为存储权重、内核函数等的密集存储。例如,权重可以包括但不限于人工智能(AI)权重、机器学习(ML)权重和神经网络(NN)权重。在一个实现方式中,多个处理元件310可以布置在一组或更多组阵列中,包括布置成一列或更多列和一行或更多行的处理元件310。尽管示例性处理器300被示出为包括十六个处理元件310,但是处理器300可以包括任何数量的处理元件310。
根据本技术的各方面,将参照示出了示例性计算模型的图4来进一步解释处理器的配置和操作。示例性计算模型仅用于说明性目的并且不一定表示特定计算模型,并且不旨在限制任何计算模型的任何方面。示例性计算模型400可以包括被布置在多个层424-434中的多个节点402-422,其中,各个节点402-422通过各个边436-464耦合在一起。
可以基于计算模型400的节点402-422之间的边436-464来配置多个处理元件310之间的数据流。在一个实现方式中,一个或更多个处理元件310的输入340可以被配置为接收计算模型400的相应输入。一个或更多个处理元件310之间的数据流可以被配置为基于计算模型400的相应边在相应的计算电路320之间传递数据。一个或更多个处理元件310的输出346可被配置成输出计算模型400的相应网络输出464。例如,进入第一行和第一列中的第一处理元件310-a中的数据流340可以基于进入计算模型400的第一层424中的第一节点402中的输入边436来配置。可基于计算模型400的第一节点402和第二节点404之间的相应边438来配置第一处理元件310-a的输出和第一行和第二列中的第二处理元件310-b的输入之间的数据流342。第一处理元件310-a的输出和第二行和第二列中的第三处理元件310-f的输入之间的数据流344可以基于计算模型400的第一节点402和第三节点406之间的相应边440来配置。数据流配置可针对计算模型400的每个边类似地进行,直至基于模型400的输出边464来配置从第二行和第四列中的处理元件出来的输出数据流346。
可以基于计算模型400的多个节点来配置相应处理器元件310的非易失性存储器电路330。在一个实现方式中,各个节点的相应权重可以加载到相应的非易失性存储器电路330中。例如,计算模型400的第一节点402的权重可被加载到处理元件310-a的非易失性存储器电路330-a中。第二节点404的权重可以被加载到处理元件310-b的非易失性存储器电路330-b中。可以针对计算模型400的每个节点类似地进行配置,直至将最后节点422的权重加载到非易失性存储器电路330-h中。
可以基于计算模型400的多个节点来配置处理器300的多个处理元件310。在一个实现方式中,相应的处理元件可以被配置为执行计算模型400的相应节点的计算操作。例如,第一行和第一列中的第一处理元件310-a的计算电路320-a可被配置成执行计算模型400的第一层中的第一节点402的计算操作(OP 1)。第一行和第二列中的计算电路320-b可以被配置为执行第二节点404的计算操作(OP 2a),并且第二行和第二列中的第三计算电路320-f可以被配置为执行第三节点406的计算操作(OP 2b)。配置可以针对计算模型400的每个节点类似地进行,直至配置第二行和第四列中的计算电路320-h,其被配置为执行计算模型的第十一节点422的计算操作(OP 6)。
在配置处理元件的计算功能、处理元件之间的数据流以及处理元件的权重之后,模型可以响应于每个接收的输入而由处理器300执行以便从中生成结果。在一个实现方式中,相应的计算电路320可以被配置为从对应的非易失性存储器电路330检索权重,将权重应用于相应的计算电路320的相应的数据流输入,对乘积求和并且将用于相应的节点的激活函数应用于该和,以及根据相应节点的对应的计算操作生成处理元件310的输出。
现在参见图5,根据本技术的各方面的处理器配置方法。配置处理器的方法可以在510处开始于接收计算模型。计算模型可以包括多个节点、将各个节点耦合在一起的边、相应节点的计算操作以及相应节点的权重。
在520处,可以基于计算模型的多个节点中的相应节点来配置相应处理元件的多个处理电路。在一个实现方式中,相应的处理电路可被配置为执行计算模型的相应节点的计算操作。
在530处,可以基于模型的边来配置相应处理元件的经配置的处理电路之间的数据流。在一个实现方式中,一个或更多个处理电路的输入可被配置为接收计算模型的相应输入。一个或更多个处理电路之间的数据流可以被配置为基于计算模型的相应边在相应的计算电路之间传递数据。一个或更多个处理电路的输出可被配置为输出计算模型的相应输出。
在540处,相应节点的权重可以被加载到相应处理元件的非易失性存储器电路中。在一种实现方式中,可以将相应节点的相应权重加载到相应的非易失性存储器电路中。520-540处的配置可按任何次序执行,或甚至并行地执行两个或两个以上。
在运行时执行期间,在550处,计算模型可以在经配置的处理元件上执行。在一个实现方式中,经配置的处理元件可响应于对应的输入560来生成结果570。计算模型可在经配置的处理元件上执行任意次数580以针对新输入560生成对应的结果570。
现在参见图6,示出了根据本技术的各方面的示例性计算模型。计算模型600可以包括第一节点610的第一卷积函数、第二节点620的第一子采样函数、第三节点630的第二卷积函数、第四节点640的第二子采样函数、第五节点650的第一全连接函数、第六节点660的第二全连接函数和第七节点670的高斯连接函数。第一节点610的第一卷积函数可以接收输入图像。在一个实现方式中,输入图像可为32X32位像素图像帧。第一节点610的第一卷积函数可生成多个特征图。在一个实现方式中,多个特征图可包含28x28特征值的六个帧。多个特征图可被输入至第二节点620的第一子采样函数。第二节点620的第一子采样函数可生成特征值的输入帧的子采样。在一个实现方式中,可对28x28特征值的六个帧进行子采样以产生14x14特征值的六个帧。可将多个子采样的特征图输入到第三节点630的第二卷积函数。第三节点630的第二卷积函数可生成多个特征图。在一种实现方式中,14x14特征值的六个帧可以被卷积以生成10x10特征值的十六个帧。第四节点640的第二子采样函数可生成多个子采样的特征图。在一个实现方式中,可对10x10特征值的十六个帧进行下采样以生成5x5特征值的十六个帧。第五节点650的第一全连接函数可生成第一层。在一个实现方式中,第五节点650的第一全连接函数可生成120输出层。第六节点660的第二全连接函数可生成第二层。在一种实现方式中,第六节点660的第二全连接函数可以生成84输出层。第七节点670的高斯连接函数可以产生输出层。在一个实现方式中,第七节点670的高斯连接函数可产生10输出层。示例性计算模型仅用于说明性目的并且不一定表示特定计算模型,并且不旨在限制任何计算模型的任何方面。
现在参见图7,示出了根据本技术各方面的处理器及其示例性配置。处理器700可包括多个处理元件310。每个处理元件310可以包括计算电路320和非易失性存储器电路330。非易失性存储器电路330可以包括但不限于电阻式随机存取存储器(ReRAM)、磁性随机存取存储器(MRAM)、闪存(FLASH)或相变随机存取存储器(PCRAM)中的一个或更多个。非易失性存储器电路330可以是被配置为存储权重、内核函数等的密集存储。例如,权重可以包括但不限于人工智能(AI)权重、机器学习(ML)权重和神经网络(NN)权重。
将参照以上参考图6描述的计算模型进一步解释处理器的配置和操作。可以基于计算模型600的多个节点中的一个或更多个节点来配置相应处理元件310的计算电路320。此外,可以基于计算模型600的多个节点中的一个节点来配置相应处理元件310的多个计算电路320。例如,第一计算电路320-a可以被配置为执行第一节点610的第一卷积函数和第二节点620的第一子采样函数。第二计算电路320-b可以被配置为执行第三节点630的第二卷积函数和第四节点640的第二子采样函数。第三计算电路320-e可以被配置成执行第五节点650的第一全连接函数。第四计算电路320-g和第五计算电路320-h可以被配置为分担第六节点660的第二全连接函数的执行。第六计算电路320-i可以被配置成执行第七节点670的高斯连接函数。对应的非易失性存储器电路330-a、330-c、330-e、330-g、330-h和330-i可以被配置为存储计算模型的对应节点610-670的对应权重。此外,可以基于计算模型的对应边来配置对应计算电路310-a、310-c、310-e、310-g、310-h和310-i之间的数据流。计算电路310之间的数据流可通过可编程互连(诸如复用器/解复用器)、通过通信总线等来实现。
出于说明和描述的目的,已经呈现了本技术的特定实施例的前述描述。它们不旨在是详尽的或将本发明技术限制于所公开的精确形式,并且显然根据上述教导,许多修改和变化是可能的。选择和描述实施例以便最好地解释本技术的原理及其实际应用,从而使本领域的其他技术人员能够最好地利用本技术和具有适合于预期的特定用途的各种修改的各种实施例。本发明的范围由所附权利要求及其等同物限定。

Claims (20)

1.一种计算芯片,包括:
单片集成电路的一个或更多个计算电路;
所述单片集成电路的一个或更多个非易失性存储器电路;
所述单片集成电路的一个或更多个通信接口,所述一个或更多个通信接口被配置为将所述单片集成电路的一个或更多个电路通信地耦合到所述单片集成电路外部的一个或更多个电路;以及
所述单片集成电路的一个或更多个通信信道,所述一个或更多个通信信道可配置为将所述一个或更多个计算电路、所述一个或更多个非易失性存储器电路和所述一个或更多个通信接口通信地耦合在一起。
2.根据权利要求1所述的计算芯片,其中所述一个或更多个非易失性存储器电路包括从由电阻式随机存取存储器(ReRAM)、磁性随机存取存储器(MRAM)、闪存(FLASH)以及相变随机存取存储器(PCRAM)组成的组中选择的存储器。
3.根据权利要求1所述的计算芯片,其中所述一个或更多个计算电路可配置为执行计算模型的计算操作。
4.根据权利要求3所述的计算芯片,其中所述一个或更多个非易失性存储器电路可配置为存储用于由所述一个或更多个计算电路基于所述计算模型而执行的计算操作的相应组权重或内核函数。
5.根据权利要求4所述的计算芯片,还包括:
多个处理元件,其中所述多个处理元件中的相应处理元件包括相应的计算电路和相应的非易失性存储器电路。
6.根据权利要求5所述的计算芯片,其中所述一个或更多个通信信道可进一步配置为基于所述计算模型将所述多个处理元件的相应计算电路通信地耦合在一起。
7.一种处理器,包括:
单片集成电路的多个处理元件,其中;
每个处理元件包括处理电路和非易失性存储器电路;
相应处理元件的计算电路可配置为执行相应计算;
相应处理元件的非易失性存储器电路可配置为存储相应组权重或内核函数;以及
所述多个处理元件可配置为在处理元件之间传递数据。
8.根据权利要求7所述的处理器,其中所述多个处理元件包括从由中央处理单元(CPU)、图形处理单元(GPU)、张量处理单元(TPU)、人工智能(AI)加速器和存储器处理单元组成的组中选择的处理器。
9.根据权利要求7所述的处理器,其中所述非易失性存储器电路包括从由电阻式随机存取存储器(ReRAM)、磁性随机存取存储器(MRAM)、闪存(FLASH)和相变随机存取存储器(PCRAM)组成的组中选择的存储器。
10.根据权利要求7所述的处理器,其中所述多个处理元件的所述计算电路可配置为执行计算模型的相应的计算操作。
11.根据权利要求10所述的处理器,其中所述多个处理元件的所述计算电路可配置为基于所述计算模型的计算操作在处理元件之间传递所述数据。
12.根据权利要求11所述的处理器,其中所述多个处理元件的所述非易失性存储器电路可配置为存储基于所述计算模型的相应组权重或内核函数。
13.根据权利要求12所述的处理器,还包括:
数据链路,其可配置为基于所述计算模型的边耦合所述多个处理元件。
14.一种处理器配置方法,包括:
接收计算模型,所述计算模型包括多个节点、将所述多个节点中的各个节点耦合在一起的边、以及各个节点的权重;
基于所述多个节点中的相应节点来配置多个处理元件的计算电路;
基于所述边来配置在经配置的处理元件之间的数据流;以及
将相应节点的所述权重加载到相应处理元件的非易失性存储器电路中。
15.根据权利要求14所述的处理器配置方法,还包括:
响应于一个或更多个输入在经配置的计算元件上执行所述计算模型以生成一个或更多个输出。
16.根据权利要求14所述的处理器配置方法,其中所述处理元件包括从由中央处理单元(CPU)、图形处理单元(GPU)、张量处理单元(TPU)、人工智能(AI)加速器和存储器处理单元组成的组中选择的片上处理器。
17.根据权利要求14所述的处理器配置方法,其中所述非易失性存储器电路包括从由电阻式随机存取存储器(ReRAM)、磁性随机存取存储器(MRAM)、闪存(FLASH)和相变随机存取存储器(PCRAM)组成的组中选择的片上存储器。
18.根据权利要求14所述的处理器配置方法,还包括从片外存储器读入所述一个或更多个输入。
19.根据权利要求18所述的处理器配置方法,还包括将所述一个或更多个输出写到所述片外存储器。
20.根据权利要求14所述的处理器配置方法,其中基于所述边配置在经配置的处理元件之间的数据流包括:基于所述计算模型的边配置在所述多个处理元件之间的数据链路。
CN202080062011.6A 2019-07-09 2020-06-25 基于非易失性存储器的处理器和数据流技术 Pending CN114341826A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201962872147P 2019-07-09 2019-07-09
US62/872,147 2019-07-09
US16/894,588 2020-06-05
US16/894,588 US11537535B2 (en) 2019-07-09 2020-06-05 Non-volatile memory based processors and dataflow techniques
PCT/US2020/039634 WO2021007042A1 (en) 2019-07-09 2020-06-25 Non-volatile memory based processors and dataflow techniques

Publications (1)

Publication Number Publication Date
CN114341826A true CN114341826A (zh) 2022-04-12

Family

ID=74101791

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202080056836.7A Pending CN114222970A (zh) 2019-07-09 2020-06-25 处理系统中的矩阵数据重用技术
CN202080062011.6A Pending CN114341826A (zh) 2019-07-09 2020-06-25 基于非易失性存储器的处理器和数据流技术

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202080056836.7A Pending CN114222970A (zh) 2019-07-09 2020-06-25 处理系统中的矩阵数据重用技术

Country Status (4)

Country Link
US (2) US20210011732A1 (zh)
EP (2) EP3997585A4 (zh)
CN (2) CN114222970A (zh)
WO (2) WO2021007037A1 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190392287A1 (en) 2018-06-22 2019-12-26 Samsung Electronics Co., Ltd. Neural processor
US11671111B2 (en) 2019-04-17 2023-06-06 Samsung Electronics Co., Ltd. Hardware channel-parallel data compression/decompression
US11880760B2 (en) 2019-05-01 2024-01-23 Samsung Electronics Co., Ltd. Mixed-precision NPU tile with depth-wise convolution
US20210182025A1 (en) * 2019-12-12 2021-06-17 Samsung Electronics Co., Ltd. Accelerating 2d convolutional layer mapping on a dot product architecture
US11663471B2 (en) * 2020-06-26 2023-05-30 Sandisk Technologies Llc Compute-in-memory deep neural network inference engine using low-rank approximation technique
KR20220021704A (ko) * 2020-08-14 2022-02-22 삼성전자주식회사 중복성 감축 기반의 컨볼루션 연산 처리 방법 및 장치
WO2022040643A1 (en) * 2020-08-21 2022-02-24 Fu Zhi Sing Processing unit architectures and techniques for reusable instructions and data
US11570257B1 (en) * 2020-08-25 2023-01-31 Neureality Ltd. Communication protocol, and a method thereof for accelerating artificial intelligence processing tasks
JP2022103693A (ja) * 2020-12-28 2022-07-08 京セラドキュメントソリューションズ株式会社 画像認識方法、画像認識装置、および画像認識プログラム

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100174848A1 (en) * 2009-01-06 2010-07-08 Andrew Hana Data processing apparatus
US9928884B1 (en) * 2017-05-01 2018-03-27 International Business Machines Corporation Elastic memory expansion chip architecture
US20180095930A1 (en) * 2016-10-03 2018-04-05 The Regents Of The University Of Michigan Field-Programmable Crossbar Array For Reconfigurable Computing
CN108734285A (zh) * 2017-04-24 2018-11-02 英特尔公司 神经网络的计算优化
CN108734271A (zh) * 2017-04-14 2018-11-02 三星电子株式会社 神经形态权重单元及其形成的方法以及人工神经网络
US20180329650A1 (en) * 2016-03-31 2018-11-15 Intel Corporation Fabric resiliency support for atomic writes of many store operations to remote nodes
US20190056885A1 (en) * 2018-10-15 2019-02-21 Amrita MATHURIYA Low synch dedicated accelerator with in-memory computation capability
CN109544440A (zh) * 2018-12-29 2019-03-29 北京知存科技有限公司 一种图像处理芯片、系统与方法
US20190103162A1 (en) * 2017-09-29 2019-04-04 Crossbar, Inc. Computing memory architecture
TW201921282A (zh) * 2017-09-07 2019-06-01 日商松下電器產業股份有限公司 使用非揮發性半導體記憶元件之類神經網路運算電路
CN109886416A (zh) * 2019-02-01 2019-06-14 京微齐力(北京)科技有限公司 集成人工智能模块的系统芯片及机器学习方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003084993A (ja) 2001-09-10 2003-03-20 Seiko Epson Corp フラッシュメモリを備える処理装置およびデバッグ装置
US7242218B2 (en) 2004-12-02 2007-07-10 Altera Corporation Techniques for combining volatile and non-volatile programmable logic on an integrated circuit
JP5002719B1 (ja) 2011-03-10 2012-08-15 株式会社東芝 情報処理装置、外部記憶装置、ホスト装置、中継装置、制御プログラム及び情報処理装置の制御方法
TWI497511B (zh) 2012-11-08 2015-08-21 Ind Tech Res Inst 具嵌入式非揮發性記憶體之晶片及其測試方法
US9805303B2 (en) 2015-05-21 2017-10-31 Google Inc. Rotating data for neural network computations
US20170357894A1 (en) 2016-06-10 2017-12-14 Apple Inc. Data packing for convolution of artificial neural networks
CN106250103A (zh) 2016-08-04 2016-12-21 东南大学 一种卷积神经网络循环卷积计算数据重用的系统
KR102631381B1 (ko) 2016-11-07 2024-01-31 삼성전자주식회사 컨볼루션 신경망 처리 방법 및 장치
US10671349B2 (en) 2017-07-24 2020-06-02 Tesla, Inc. Accelerated mathematical engine
EP4187539B1 (en) * 2017-07-30 2024-06-05 NeuroBlade Ltd. A memory-based distributed processor architecture
CN108765247B (zh) * 2018-05-15 2023-01-10 腾讯科技(深圳)有限公司 图像处理方法、装置、存储介质及设备

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100174848A1 (en) * 2009-01-06 2010-07-08 Andrew Hana Data processing apparatus
US20180329650A1 (en) * 2016-03-31 2018-11-15 Intel Corporation Fabric resiliency support for atomic writes of many store operations to remote nodes
US20180095930A1 (en) * 2016-10-03 2018-04-05 The Regents Of The University Of Michigan Field-Programmable Crossbar Array For Reconfigurable Computing
CN108734271A (zh) * 2017-04-14 2018-11-02 三星电子株式会社 神经形态权重单元及其形成的方法以及人工神经网络
CN108734285A (zh) * 2017-04-24 2018-11-02 英特尔公司 神经网络的计算优化
US9928884B1 (en) * 2017-05-01 2018-03-27 International Business Machines Corporation Elastic memory expansion chip architecture
TW201921282A (zh) * 2017-09-07 2019-06-01 日商松下電器產業股份有限公司 使用非揮發性半導體記憶元件之類神經網路運算電路
US20190103162A1 (en) * 2017-09-29 2019-04-04 Crossbar, Inc. Computing memory architecture
US20190056885A1 (en) * 2018-10-15 2019-02-21 Amrita MATHURIYA Low synch dedicated accelerator with in-memory computation capability
CN109544440A (zh) * 2018-12-29 2019-03-29 北京知存科技有限公司 一种图像处理芯片、系统与方法
CN109886416A (zh) * 2019-02-01 2019-06-14 京微齐力(北京)科技有限公司 集成人工智能模块的系统芯片及机器学习方法

Also Published As

Publication number Publication date
EP3997585A1 (en) 2022-05-18
US11537535B2 (en) 2022-12-27
WO2021007037A1 (en) 2021-01-14
WO2021007042A1 (en) 2021-01-14
EP3997594A1 (en) 2022-05-18
EP3997594A4 (en) 2023-08-09
US20210011732A1 (en) 2021-01-14
US20210011863A1 (en) 2021-01-14
CN114222970A (zh) 2022-03-22
EP3997585A4 (en) 2023-08-02

Similar Documents

Publication Publication Date Title
CN114341826A (zh) 基于非易失性存储器的处理器和数据流技术
US11520581B2 (en) Vector processing unit
JP6773568B2 (ja) 演算システムおよびニューラルネットワークの演算方法
KR20200143685A (ko) 연산을 가속하기 위한 방법 및 가속기 장치
KR20200143686A (ko) 연산을 가속하기 위한 가속기 및 시스템
CN111465943B (zh) 一种集成电路和用于神经网络处理的方法
KR20220041224A (ko) 시스템 온 칩과 메모리 칩을 연결하는 가속기 칩
US11995529B2 (en) Lossless tiling in convolution networks—tiling configuration for a sequence of sections of a graph
US11934343B2 (en) Lossless tiling in convolution networks-backward pass
US11921814B2 (en) Method and device for matrix multiplication optimization using vector registers
CN114402308B (zh) 连接单芯片系统与加速器芯片的存储器芯片
CN115668125A (zh) 存储器处理单元架构映射技术
US20210248073A1 (en) System and method for memory management
CN113077042B (zh) 卷积神经网络的数据重用与高效处理方法
CN114072778A (zh) 存储器处理单元架构
CN112906877A (zh) 用于执行神经网络模型的存储器架构中的数据布局有意识处理
US11741043B2 (en) Multi-core processing and memory arrangement
US11915138B2 (en) Method and device for reducing a size of a neural network model
CN107861689B (zh) 一种芯片面积与功耗优化方法及系统
CN116843006A (zh) 点积计算硬件装置、方法、芯片及计算设备
CN113344178A (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