CN108022615A - 动态随机存取存储器处理单元 - Google Patents

动态随机存取存储器处理单元 Download PDF

Info

Publication number
CN108022615A
CN108022615A CN201710786369.3A CN201710786369A CN108022615A CN 108022615 A CN108022615 A CN 108022615A CN 201710786369 A CN201710786369 A CN 201710786369A CN 108022615 A CN108022615 A CN 108022615A
Authority
CN
China
Prior art keywords
row
dram
computing unit
computing
random access
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201710786369.3A
Other languages
English (en)
Other versions
CN108022615B (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 CN108022615A publication Critical patent/CN108022615A/zh
Application granted granted Critical
Publication of CN108022615B publication Critical patent/CN108022615B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • G11C11/4091Sense or sense/refresh amplifiers, or associated sense circuitry, e.g. for coupled bit-line precharging, equalising or isolating
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/408Address circuits
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/4076Timing circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/408Address circuits
    • G11C11/4087Address decoders, e.g. bit - or word line decoders; Multiple line decoders
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • G11C11/4096Input/output [I/O] data management or control circuits, e.g. reading or writing circuits, I/O drivers or bit-line switches 
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Dram (AREA)
  • Memory System (AREA)
  • Semiconductor Memories (AREA)

Abstract

一种动态随机存取存储器(DRAM)处理单元(DPU)。DPU可包括至少一个计算单元阵列,所述计算单元阵列可包括布置在具有至少一个列的阵列中的多个基于DRAM的计算单元,其中,所述至少一个列可包括至少三个行的基于DRAM的计算单元,所述至少三个行的基于DRAM的计算单元被配置为提供针对所述至少三个行中的第一行和第二行进行运算的逻辑功能,并被配置为将所述逻辑功能的结果存储在所述至少三个行中的第三个行中。

Description

动态随机存取存储器处理单元
相关申请的交叉引用
本专利申请要求于2016年10月28日提交的第62/414,426号美国临时专利申请以及于2017年2月6日提交的第15/425,996号美国专利申请的优先权权益,所述两个专利申请的公开通过引用全部合并于此。
技术领域
本申请涉及一种存储器系统,更为具体地讲,涉及一种基于DRAM的处理单元。
背景技术
图形处理单元(GPU)和张量处理单元(TPU)通常被用于深度学习处理。深度学习处理包括由GPU或TPU不能有效执行的高度并行处理。
发明内容
示例实施例提供了一种动态随机存取存储器(DRAM)处理单元(DPU),该DPU可包括至少一个计算单元阵列,所述至少一个计算单元阵列可包括被布置在具有至少一个列的阵列中的多个基于DRAM的计算单元,其中,所述至少一个列可包括至少三个行的基于DRAM的计算单元,所述至少三个行的基于DRAM的计算单元被配置为提供针对所述至少三个行中的第一行和第二行进行运算的逻辑功能,并被配置为将所述逻辑功能的结果存储在所述至少三个行中的第三行中。在一个实施例中,所述至少一个列的基于DRAM的计算单元中的每个基于DRAM的计算单元包括提供或非逻辑功能的三个晶体管-一个电容器(3T1C)DRAM存储器单元。在另一实施例中,所述至少一个列的基于DRAM的计算单元中的每个基于DRAM的计算单元可包括一个晶体管-一个电容器(1T1C)DRAM存储器单元,所述1T1C DRAM存储器单元可进一步包括结合到所述基于DRAM的计算单元的位线的算术逻辑单元(ALU),其中,所述ALU提供或非逻辑功能。
示例实施例提供了一种动态随机存取存储器(DRAM)处理单元(DPU),该DPU可包括:至少一个计算单元阵列,可包括被布置在具有至少一个列的阵列中的多个基于DRAM的计算单元,其中,所述至少一个列可包括至少三个行的基于DRAM的计算单元,所述至少三个行的基于DRAM的计算单元被配置为提供针对所述至少三个行中的第一行和第二行进行运算的逻辑功能并被配置为将所述逻辑功能的结果存储在所述至少三个行中的第三行中;至少一个数据单元阵列,可包括被布置在至少一个列中的至少一个基于DRAM的存储器单元。在一个实施例中,所述至少一个列的基于DRAM的计算单元中的每个基于DARAM的计算单元包括提供或非逻辑功能的三个晶体管-一个电容器(3T1C)DRAM存储器单元。在另一实施例中,所述至少一个列的基于DRAM的计算单元可包括一个晶体管-一个电容器(1T1C)DRAM存储器单元,所述1T1C DRAM存储器单元可进一步包括结合到基于DRAM的计算单元的位线的算术逻辑单元(ALU),其中,所述ALU提供或非逻辑功能。
示例实施例提供一种动态随机存取存储器(DRAM)处理单元(DPU),可包括:至少一个数据单元阵列,该至少一个数据单元阵列可包括布置在至少一个列中的至少一个基于DRAM的存储器单元;至少一个计算单元阵列,该至少一个计算单元阵列可包括布置在具有至少一个列的阵列中的多个基于DRAM的计算单元,其中,所述至少一个列可包括至少三个行的基于DRAM的计算单元,所述至少三个行的基于DRAM的计算单元被配置为提供针对所述至少三个行中的第一行和第二行进行运算的逻辑功能并被配置为将所述逻辑功能的结果存储所述至少三个行中的第三行中;感测放大器,可包括电结合到所述至少三个行的基于DRAM的计算单元的读位线的输入和电结合到所述至少三个行的基于DRAM的计算单元的写位线的输出;解码器,电结合到所述至少三个行的基于DRAM的计算单元,其中,所述解码器可接收与用于选择所述至少三个行的基于DRAM的计算单元的指令相应的基于DRAM的地址信号,以产生针对第一行和第二行的逻辑功能并将所述逻辑功能的结果存储在第三行中。在一个实施例中,所述至少一个列的基于DRAM的计算单元中的每个基于DRAM的计算单元包括提供或非逻辑功能的三个晶体管-一个电容器(3T1C)DRAM存储器单元。在另一实施例中,所述至少一个列的基于DRAM的计算单元中的每个基于DRAM的计算单元可包括一个晶体管-一个电容器(1T1C)DRAM存储器单元,所述1T1C DRAM存储器单元可进一步包括结合到所述基于DRAM的计算单元的位线的算术逻辑单元(ALU),其中,所述ALU提供或非逻辑功能。
附图说明
在下面的部分中,将参照附图中示出的示例性实施例对本文公开的主题事项的各方面进行描述,其中:
图1示出了根据本文公开的主题事项的基于动态随机存取存储器(DRAM)的处理单元(DPU)的示例实施例的框图;
图2A示出了可用于计算单元阵列中的计算单元的三个晶体管-一个电容器DRAM计算单元布局的示例实施例;
图2B示出了可用于计算单元阵列中的计算单元的一个晶体管-一个电容器DRAM计算单元布图的替代示例实施例;
图3示出了根据本文公开的主题的垫内移位(intra-mat shift)阵列的示例实施例;
图4A示出了根据本文公开的主题的垫间移位(inter-mat shift)阵列的示例实施例;
图4B概念性地示出了根据本文公开的主题的用于左垫间移位的相邻计算单元列中的两个相同位置处的计算单元之间的垫间移位互连配置;
图4C概念性地示出了根据本文公开的主题的用于左垫间移位的相邻计算单元列中的两个不同位置处的计算单元之间的垫间移位互连配置;
图5示出了根据本文公开的主题的垫间转发阵列的实施例;
图6A至图6G示出了根据本文公开的主题的可由DPU提供的基于或非逻辑的运算;
图7示出了根据本文公开的主题的包括随机数据区域的DPU的示例实施例的框图;
图8A和图8B分别示出了用于可被转换为多路复用运算的加法运算以及可被转换为与逻辑运算的乘法运算的随机计算运算;以及
图9示出了根据本文公开的主题事项的包括DPU的系统架构。
具体实施方式
在下面的详细描述中,为了提供对本公开的透彻理解,对许多具体细节进行了阐述。然而,本领域的技术人员将理解,可在没有这些具体细节的情况下,对所公开的方面进行实践。在其他情况下,对公知的方法、处理、组件和电路进行详细描述以不模糊本文公开的主题事项。
贯穿本说明书,参照“一个实施例”或“实施例”意味着与所述实施例有关的描述的特定特征、结构或特性可被包括在本文公开的至少一个实施例中。因此,贯穿本说明书,在各个地方出现的短语“一个实施例”或“实施例”或者“根据一个实施例”(或具有相似含义的其他短语)可无需均指代相同的实施例。此外,所述特定特征、结构或特性可以以任何合适的方式被组合在一个或更多个实施例中。就这一点而言,如本文所使用的,词语“示例性”是指“用作示例、实例或例证”。本文中被描述为“示例性”的任何实施例不被解释为必需比其他实施例优选或有益。此外,根据本文讨论的上下文,单数术语可包括相应的复数形式以及复数形式可包括相应的单数形式。还应注意,本文示出和讨论的各种附图(包括组件示图)仅为了说明的目的,并不是按比例绘制。类似地,仅是为了说明的目的而示出了各种波形和时序图。例如,为了清楚起见,一些元件的尺寸可相对于其他元件被夸大。此外,如果认为适当,则参考标号可在附图中被重复以指示相应的和/或相似的元件。
本文使用的术语仅是为了描述特定示例性实施例的目的,且不意图限制所要求保护的主题事项。如本文所使用的,除非上下文另有明确指示,否则单数形式“一个”和“所述”也意图包括复数形式。还将理解,当在本说明书中被使用时,术语“包括”和/或“包括...的”指明陈述的特征、整体、步骤、操作、元件和/或组件的存在,但不排除一个或更多个其它特征、整体、步骤、操作、元件、组件和/或其组合的存在或添加。如本文所使用的术语“第一”、“第二”等被用作他们领先的名词的标签,但是不意味着任何类型的排序(例如,空间、时间、逻辑等),除非像这样被明确地定义。此外,在两个或更多个附图中可以使用相同的参考标号来表示具有相同或相似功能的部件、组件、块、电路、单元或模块。然而,这样的用法仅是为了简化说明和易于讨论;这不意味着这样的组件或单元的结构或架构细节在所有实施例中是相同的,或者这样的被共同参照的部件/模块是实施本文公开的特定实施例的教导的唯一方式。
除非另有定义,否则本文使用的所有术语(包括技术和科学术语)具有与本主题事项所属领域的普通技术人员通常理解的含义相同的含义。还将理解,像在常用词典中定义的那些这样的词语应当被解释为具有与相关领域的上下文中的含义一致的含义,并且不以理想化或过于形式的含义被解释,除本文这样明确地定义。
本文公开的主题提供了一种基于动态随机存取存储器(DRAM)的处理单元(DPU),所述DPU对于不同的运算(诸如但不限于加法、乘法、移位、最大/最小以及比较)是可编程的且可重构的。在一个实施例中,DPU基于三个晶体管-一个电容器(3T1C)DRAM工艺和结构。在另一实施例中,DPU基于具有小的修改的一个晶体管-一个电容器(1T1C)DRAM工艺和结构。因此,DPU不包含特定的计算逻辑电路(像,加法器),而是使用利用高度并行操作的存储器单元来提供计算。在一个实施例中,DPU可包括随机计算阵列,其中,加法可被转换为多路复用运算以及乘法可被转换为与逻辑运算。
本文公开的主题还提供了一种包括具有框架扩展、库、驱动器、编译器的环境(生态系统)的系统架构以及指令集架构(ISA)来对DPU进行编程和重新配置。
此外,本文公开的主题提供了一种系统架构,所述系统架构适用于数据中心和/或移动应用并为用于二进制和固定点计算二者的机器学习应用提供处理器内存(PIM)方案,所述PIM方案是GPU/ASIC(TPU)/FPGA机器学习应用的替代物。在一个实施例中,本文公开的主题提供了一种提供用于例如二进制权重神经网络的加快的深度学习的高性能、高能量效率且低成本系统。
本文公开的主题涉及一种可使用动态随机存取存储器(DRAM)技术来形成并且是可重新配置且可编程的基于DRAM的处理单元(DPU)。在一个实施例中,DPU可包括基于DRAM的存储器单元阵列和可被配置为执行不同运算(诸如,加法,乘法,分类等)的基于DRAM的计算单元阵列。
DPU的内部架构可以包括连接到子阵列的多个存储体的系统总线。在一个实施例中,系统总线可被配置为提供子阵列的H树连接的存储体。每个子阵列可包括本地控制器,并且每个单独的子阵列可被分别或同时激活。在一个实施例中,基于DRAM的单元可以被划分为两个阵列-数据单元阵列和计算单元阵列。在一个实施例中,计算单元阵列可由基于DRAM的存储器单元来实施。在另一实施例中,计算单元阵列可由具有逻辑电路的基于DRAM的存储器单元来实施。DPU内部架构还可以包括数据移位和数据移动电路。在一些实施例中,存在可被配置用于随机数据计算(stochastic data computations)的第三基于DRAM的单元阵列。
图1示出了根据本文公开的主题的DPU 100的示例实施例的框图。DPU 100可包括一个或更多个存储体101a-101m,图1中仅示出了其中的存储体101a和101b。每个存储体101可包括一个或更多个子阵列102a-102n,图1中仅示出了其中的子阵列102a和102b。每个存储体101还可包括缓冲器103。缓冲器103可结合合到各个子阵列102和系统总线104。缓冲器103可以读取存储体101中的整个行,然后将所述行写回到同一存储体或另一存储体。缓冲器103还可将所述行数据的副本广播到子阵列102中的多个垫(mat)105a-105n。在一个实施例中,存储体101和系统总线104可被配置为提供H树连接的存储体。
每个子阵列102可包括一个或更多个垫(或线路(lane))105,图1中示出了其中的子阵列102a的垫105a-105n。每个垫105是可包括数据单元阵列106、计算单元阵列107和垫内移位阵列108的DPU 100的区域。在图1中,示例垫105被示出为由虚线109包围。每个垫105可与相邻的垫共享数据单元阵列解码器110、计算单元阵列解码器111、垫间移位阵列112和垫间转发阵列113。在一个实施例中,数据单元阵列解码器110、计算单元阵列解码器111和垫间移位阵列112可与子阵列控制器114被交替物理地布置在相邻的垫105之间。在一个实施例中,解码器110和111可作为传统DRAM类型存储解码器来操作。
在一个实施例中,每个垫105可通信地结合到子阵列控制器114。每个子阵列控制器114可被配置为独立于其他子阵列控制器114。子阵列控制器114可从DRAM地址总线接收作为地址(addr)的指令。响应于所述地址(即,地址信号),子阵列控制器114可将解码的地址作为输出而提供给数据单元阵列106和计算单元阵列107中的一个或两者。也就是说,子阵列控制器114可针对相关联的数据单元阵列106输出由数据单元阵列解码器110解码的源/目的地(src/dst)地址,以及在计算单元阵列107的情况下,子阵列控制器114可输出由计算单元阵列解码器111解码的运算/计算(op/calc)地址。子阵列控制器114还可从DRAM总线接收引起两个或更多个子阵列控制器114以协调的方式操作的作为地址的指令。子阵列控制器114还可以控制数据移动电路,诸如控制垫内移位阵列108、垫间移位阵列112和垫间转发阵列113。
每个数据单元阵列106可包括被布置在至少一个列和至少一个行中的一个或更多个动态随机存取存储器(DRAM)单元。在一个实施例中,数据单元阵列106可被配置为传统DRAM单元阵列。在一个实施例中,数据单元阵列106可包括2000个列和16个行。在另一实施例中,数据单元阵列106可包括小于或大于2000个的列和/或小于少或大于16个的行。
每个计算单元阵列107可包括被布置在至少一个列和至少一个行中的一个或更多个计算单元。计算单元阵列107中的列的数量与数据单元阵列106中的列的数量相同。在一个实施例中,计算单元阵列107可包括2000个列和16个行。在另一实施例中,计算单元阵列107可包括小于或大于2000个的列和/或小于或大于16个的行。
图2A示出了可用于计算单元阵列107中的计算单元的三个晶体管-一个电容器(3T1C)DRAM计算单元布局201的示例实施例。如图2A所示,行X中的3T1C计算单元包括第一晶体管T1,所述第一晶体管T1具有电结合到写位线(写BL)的源极端子、电结合到电容器C1的第一端子以及第二晶体管T2的栅极端子二者的漏极端子和电结合到写使能(WEN)线的栅极端子。电容器C1的第二端子电结合到地线。第二晶体管T2包括电结合到地线的源极端子和电结合到第三晶体管T3的源极端子的漏极端子。第三晶体管T3包括电结合到字线(WL)的栅极端子和电结合到读位线(读BL)的漏极端子。3T1C计算单元布局201包括具有电结合到读BL的输入和电结合到写BL的输出端的感测放大器SA。
行Y中的计算单元和行R中的计算单元也都可以包括类似于行X中的计算单元的布置的被布置在3T1C DRAM配置中的三个晶体管T1-T3和一个电容器C。图2A中示出的示例三个计算单元和感测放大器SA被配置为提供或非逻辑运算(即X或非Y逻辑运算),而其结果被存储在行R中。尽管在图2A中仅明确示出了3T1C DRAM计算单元的一个列,但是,应当理解,在另一实施例中,3T1C计算单元可被配置为多个列(即,2000列)。还应当理解,在另一实施例中,可提供多于三个的行。此外,尽管图2A中示出的3T1C DRAM计算单元配置提供或非逻辑运算,但是,应当理解,可利用3T1C DRAM计算单元布局201的或非逻辑运算来提供功能操作,诸如但不限于异或非(XNOR)、加法(ADD)、选择(SET)、MAX、符号(SIGN)、多路复用(MUX)、条件-求和加法逻辑(CSA)、乘法、弹出计数(POPCOUNT)和比较(COMPARE)。移位阵列108和112还提供移位功能。
图2B示出了可用于图1的计算单元阵列107中的计算单元的一个晶体管-一个电容器(1T1C)DRAM计算单元布局202的替代示例实施例。如图2B所示,1T1C DRAM计算单元包括晶体管T4,所述晶体管T4具有电连接到电容器C2的第一端子的源极端子、电连接到位线(BL)的漏极端子以及电连接到字线(WL)的栅极端子。电容器C2的第二端子电结合到地线。位线BL电结合到感测放大器SA的输入。感测放大器SA的输出电结合到多路复用器MUX的第一输入、第五晶体管T5的漏极端子和运算逻辑单元(ALU)的输入。多路复用器MUX的输出电结合到锁存器(LATCH)的输入。第五晶体管T5的源极端子电结合到锁存器LATCH的输出。运算逻辑单元ALU的输出电结合到多路复用器MUX的第二输入。图2B中的第五晶体管T5、多路复用器MUX、锁存器LATCH和运算逻辑单元ALU各自分别从控制器114接收控制信号CNTL1-CNTL4。在一个实施例中,运算逻辑单元ALU可被配置为提供或非(NOR)功能。尽管图2B中的电结合到位线BL的逻辑电路提供或非逻辑运算,但是,应当理解,电结合到位线BL的逻辑电路(即,逻辑运算单元ALU)可提供其他函数运算,例如但不限于异或非(XNOR)、加法(ADD)、选择(SET)、MAX、符号(SIGN)、多路复用(MUX)、条件和加法逻辑(CSA)、乘法、弹出计数(POPCOUNT)和比较(COMPARE)。移位阵列108和112还提供移位功能。应当理解,图2B中仅示出了一个1T1C计算单元,并且可以提供多个列和行的1T1C计算单元。
从图2A和图2B中可以看出,DPU的计算单元不包括特定的、复杂的计算逻辑,而是取而代之地包括提供执行多个、不同类型的计算的能力的具有可再编程性质的相对简单的布局。此外,DPU的布局可被布置为具有存储器结构内在的大量并行性的优点来更快更有效地执行更多的计算。
图3示出了根据本文公开的主题的垫内移位阵列108的示例实施例。为了简化垫内移位阵列108的描述,考虑诸如图3中所示的具有计算单元107的四个列宽的垫105。垫内移位阵列108包括布置在阵列中的多个第六晶体管T6(图3中仅示出了其中的一个晶体管T6)、2n个移位线SL(其中,n是垫105中的计算单元的列的数量)、n+2个移位左控制线SLcL、2个移位右控制线SRcL和n个移位掩模线SML。垫内移位阵列108的第六晶体管T6中的一些第六晶体管T6电连接在写BL和2n个移位线SL之间,并且垫内移位阵列108的其它第六晶体管T6连接在读BL和2n个移位线SL之间。这些第六晶体管T6的栅极电结合到n+2个移位左控制线SLcL和2个移位右控制线SRcL。垫内移位阵列108的其他第六晶体管T6电连接在n个移位掩模线SML和2n个移位线SL之间。垫内移位阵列108的控制被电结合到与垫105相关联的子阵列控制器114。
垫内移位阵列108可通过控制线SLcL和SRcL上的合适信号来在垫105内将数据向左或向右移位。对于向左移位,数据可用符号位来填充,并且每个操作移位1位或(n-1)位,其中,n是每个垫105列的数量。对于向右移位,数据可根据指令的控制而用0或1来填充,并移位20、21、...、2k-1、2k直到每个MAT的列的数量,其中,2k是列的数量。
图4A示出了根据本文公开的主题的垫间移位阵列112的实施例。为了简化垫间移位阵列112的描述,诸如图4A-图4C中所示,考虑垫105为两个列的计算单元107的宽度的配置。也就是说,每个垫105包括计算单元107a的第一个列和计算单元107b的第二个列。垫间移位阵列112包括晶体管T112a和T112b、晶体管T112c和T112d、数据移位线112e和112f以及垫间移位控制线ISLcL。在垫之内,晶体管T112a包括电结合到第一个列的计算单元107a的读BL的源极端子、电结合到数据移位线112e的漏极端子。晶体管T112b包括电结合到第二个列的计算单元107b的读BL的源极端子,电结合到数据移位线112f的漏极端子。数据移位线112e和112f被电结合到缓冲器103(未在图4A中示出)。在不同的垫之间,晶体管T112c包括分别电结合到相邻垫中的数据移位线112e的源极端子和漏极端子。晶体管T112d包括分别电结合到相邻垫中的数据移位线112f的源极端子和漏极端子。晶体管T112c和T112d的栅极分别电结合到各自不同的垫间移位控制线ISLcL。垫间移位阵列112可通过垫间移位控制线ISLcL上的合适的信号,使数据在不同的垫之间向左或向右移位。垫间移位阵列112的控制线电结合到与垫105相关联的子阵列控制器114。
图4B概念性地示出了根据本文公开的主题的用于左垫间移位的相邻计算单元列105a和105b中的两个相同位置处的计算单元之间的垫间移位互连配置。图4B的互连配置可通过强调的可操作的互连节点来被概念性地示出。例如,晶体管T112c和T112d被激活,使得在每个晶体管之间存在导电通路,从而在计算单元列105a(在左边)和105b(在右边)之间连接数据移位线112e和112f。晶体管T112c和T112d的栅极端子电连接到有源垫间移位控制线ISLcL。垫105b中的晶体管T112a和T112b被激活,使得垫105b中的计算单元107a的读BL电连接到垫105b的左边的垫105a中的计算单元107a的写BL,以及使得垫105b中的计算单元107b的读BL电连接到垫105b的左边的垫105a中的计算单元107b的写BL。
图4C概念性地示出了根据本文公开的主题的用于左垫间移位的相邻计算单元列105a和105b中的两个不同位置处的计算单元之间的垫间移位互连配置。通过强调的可操作的节点概念性的示出了图4C的互连配置。例如,晶体管T112c和T112d被激活,使得在每个晶体管之间存在导电通路,从而在计算单元列105a(左边的)和105b(右边的)之间连接数据移位线112e和112f。晶体管T112c和T112d的栅极端子电连接到有源垫间移位控制线ISLcL。垫105a中的晶体管T112a和T112b被激活,使得垫105a中的计算单元107a的读BL电连接到垫105a的右边的垫105b中的计算单元107a的写BL,并使得垫105a中的计算单元107b的读BL电连接到垫105a的右边的垫105b中的计算单元107b的写BL。
图5示出了根据本文公开的主题的垫间转发阵列113的实施例。为了简化垫间转发阵列113的描述,考虑诸如图5所示的垫105是两个列的计算单元107的宽度的配置。也就是说,每个垫105包括的第一列的计算单元107a和第二列的计算单元107b。在垫105之内,垫间转发阵列113包括晶体管T113a和T113b、晶体管T113c和T113d以及晶体管T113e和T113f、2n个转发数据线FDL(其中,n是垫中的计算单元列的数量)、转发控制线FCL以及2m个转发部分(section)线FSL(其中,m是部分的数量)。晶体管T113a和T113b的源极端子分别电连接到第一列的计算单元107a的写BL和读BL。晶体管T113a和T113b的漏极端子电结合到第一数据转发线FDL 113g。晶体管T113c和T113d的源极端子分别电连接到第二列的计算单元107b的写BL和读BL。晶体管T113c和T113d的漏极端子电连接到第二数据转发线FDL 113h。晶体管T113e和T113f的源极端子分别电结合到晶体管T113a和T113b的栅极端子。晶体管T113e和T113f的漏极端子二者结合到相同的转发剖面线FSL。晶体管T113e和T113f的栅极端子分别结合到不同的转发控制线FCL。垫间转发阵列113可通过转发控制线FCL上的合适的信号在垫之间转发数据。垫间转发阵列113的控制线电结合到与在其之间数据将被转发的垫105相关联的子阵列控制器114。
图6A至图6G示出了根据本文公开的主题的可由DPU提供的基于或非逻辑的操作。在图6A至图6G中,第一操作数可被存储在行X中,并且第二操作数可被存储在行Y或行W中。图6A至图6G中的箭头表示用于计算单元的整个行的或非逻辑运算的输入和输出流。例如,图6A中的行X可以表示存储在行X的计算单元中的整个行的操作数。针对存储在行X中的操作数和存储在行Y中的操作数的或非逻辑运算的结果被存储在结果行R中。在一个实施例中,行X和行Y中的操作数可包括例如100个列(即,x1、x2、...、x100和y1、y2、...、y100),并且,结果可被存储在行R中(即,r1、r2、...、r100)。也就是说,xi或非yi=ri,其中,i是列索引。在另一实施例中,行X可仅表示行中的计算单元的被选择的组。
图6B示出了基于前缀Kogge-Stone加法器的用于N位数的示例全加器操作。如图6B中,第一N位操作数被存储在行X中,以及第二N位操作数被存储在行Y中。对于图6B中示出的示例加法操作,中间项G0、P0、G1、P1、G2、P2、...、GlogN+1和PlogN+1被计算。图6B的最上面的块表示使用来自行X和Y的输入操作数来确定G0和P0的五个独立的操作。在第一操作中,最上面的块确定行X的逆(即,~X),~X被存储在行1中。第二操作确定行Y的逆(即,~Y),~Y被存储在行2中。第三操作确定操作行X或非行Y,行X或非行Y被存储在行3中。第四操作确定操作G0=行1或非行2,G0=行1或非行2被存储在行4中。第五操作确定P0=行3或非行4,P0=行3或非行4被存储在行5中。
在图6B的中间块中,来自最上面的块的中间结果G0和P0被用于确定中间结果Gi+1和Pi+1,其中,i是列索引。也就是说,在图6B的最上面的块中确定的中间结果G0和P0被用于确定中间结果G1和P1。中间结果G1和P1被用于确定中间结果G2和P2,以此类推,以确定中间结果GlogN+1和PlogN+1。在图6B的最下面的块中,结果行R1和R2分别存储针对全加器运算的进位结果以及和结果。
图6C示出了可由3T1C DRAM计算单元布局201提供的示例选择器操作。行1存储行X的逆(即,~X)的中间结果。行2存储行Y的逆(即,~Y)的中间结果。行3存储行S的逆(即,~S)的中间结果。行4存储行1或非行3的中间结果。行5存储行2或非行S的中间结果。行6存储行4或非行5的中间结果。行R存储行6的逆的结果,即S?X:Y。
图6D示出了可由3T1C DRAM计算单元布局201提供的替代示例选择器操作。行1存储行X的逆(即,~X)的中间结果。行2存储行S的逆(即,~S)的中间结果。行3存储行1或非行S的中间结果。行4存储行X的逆(即,~X)的中间结果。行R存储行3或非行4的结果,即S?X:~X。
图6E示出了可由3T1C DRAM计算单元布局201提供的示例MAX/MIN操作。行1存储行Y的逆(即,~Y)的中间结果。行2存储行X+(~Y+1)的中间结果。行3存储Cout>>n的中间结果。行4存储Cout?X:Y的中间结果。行R存储MAX(X:Y)的结果。
图6F示出了可以由3T1C DRAM计算单元布局201提供的示例1位乘法操作。行1存储行X或非行W的中间结果。行2存储行X或非行1的中间结果。行3存储行W或非行1的中间结果。结果行R存储行2或非行3的结果,即行X异或非行W的结果。
图6G示出了可由3T1C DRAM计算单元布局201提供的示例多位乘法运算。在图6G的上面的块中,行1存储行W的逆(即,~W)的中间结果。行2存储向左移位2i次的行X的逆(即,~W<<2i)的中间结果,其中,i为索引。行3存储行1或非行2的中间结果,也就是说,PPi=~W或非~X<<2i。在图6G的下部的块中,行1存储行PP0SUM行PPi(即,ΣPPi)的中间结果。行2存储行2或非行Wsign的中间结果。行R存储X*W的结果。
图7示出了根据本文公开的主题的包括随机数据区域715的DPU 700的示例实施例的框图。具有与图1所示的DPU 100的组件相同的参考指示符的DPU 700的各种组件是相似的,并且这里已经省略了对这样的相似组件的描述。DPU 700的子阵列102包括随机数据阵列715和转换器到随机阵列716以及(实数)数据单元阵列106、计算单元阵列107和垫内移位阵列108。
每个随机数据阵列715可包括被布置在至少一个列和至少一个行中的一个或更多个随机计算单元。随机数据阵列715中的列的数量与数据单元阵列106和计算单元阵列107中的列的数量相同。在一个实施例中,随机数据阵列715可包括2000个列和16个行。在另一实施例中,随机数据阵列715可包括小于或大于2000个的列和/或小于或大于16个的行。在随机数据阵列715中,使用存在“1”的概率,并且使用2n比特来表示n位值。转换器到随机阵列716中的随机数发生器可用于将实数转换为随机数。弹出计数(popcount)操作可被用于将随机数转换回实数。
通过使用随机计算方法,可将加法转换为多路复用操作,并可将乘法转换为与逻辑运算。例如,图8A示出了提供随机加法运算作为多路复用操作的电路,图8B示出了提供随机乘法操作作为“与”逻辑运算的电路。用于随机计算的传统技术需要巨大的存储器容量;然而,本文公开的主题可被用于提供高效率的随机计算,因为基于DRAM的DPU能够执行大的并行性AND和MUX操作。使用本文公开的DPU的随机计算也使得加快复杂操作(深度学习是其典型应用)是可能的。
图9示出了根据本文公开的主题的DPU的系统架构900。系统架构900可包括硬件层910、库和驱动器层920、框架层930和应用层940。
硬件层910可包括具有嵌入式DPU(诸如,本文示出的DPU)的硬件装置和/或组件。这种装置和/或组件的一个实施例可以是可包括一个或更多个嵌入式DPU的外围组件互连快速(PCIe)装置911。这种装置和/或组件的另一实施例可以是可包括一个或更多个嵌入式DPU的双列直插存储器模块(DIMM)912。应当理解,系统架构900的硬件层910不限于PCIe装置和/或DIMM,而是可包括片上系统(SOC)装置或可包含DPU的其他存储器类型装置。可在硬件级910嵌入到装置和/或组件中的DPU可被配置为与图1中的DPU 100和/或图7中的DPU700相似。在任何一个实施例中,DPU的特定计算单元阵列可被配置为包括3T1C计算单元布局201(图2A)或1T1C计算单元布局202(图2B)。
系统架构900的库和驱动器层920可包括DPU库921、DPU驱动器922和DPU编译器923。DPU库921可被配置为针对可在应用层940操作的不同的应用提供对于硬件层910中的DPU中的每个子阵列的最佳映射功能、资源分配功能和调度功能。
在一个实施例中,DPU库921可提供针对可包括诸如移动、加、乘等的运算的框架层930的高级应用编程接口(API)。例如,DPU库921还可包括对于标准类型例程的实现,诸如但不限于可适用于加快的深度学习过程的前向和后向卷积、汇集、归一化和激活层。在一个实施例中,DPU库921可包括映射对于卷积神经网络(CNN)的整个卷积层的计算的类API功能。另外,DPU库921可包括用于对卷积层计算至DPU上的映射进行优化的类API功能。
DPU库921还可包括用于通过将任务(批处理、输出通道、像素、输入通道、卷积内核)内的任何单个或多个并行性在芯片、组、子阵列和/或垫级映射到相应的DPU并行性来优化资源分配的类API功能。此外,DPU库921可包括在初始化和/或运行时提供将性能(即,数据移动流)和功耗进行折中的最优的DPU配置的类API功能。由DPU库921提供的其他类API功能可包括设计旋钮类型功能,诸如设置每个组的有源子阵列的数量、每个有源子阵列的输入特征映射的数量、特征映射的分割和/或卷积内核的回用方案。尽管如此,其他类API功能可通过为每个子阵列分配特定任务来提供额外的资源分配优化,诸如卷积计算、信道求和以及/或数据分派。如果要在整数和随机数之间对操作数进行转换,则DPU库921包括在满足精度限制的同时最小化开销的类API函数。在所述精度低于预期的情况下,DPU库921可包括再次使用用于随机表示的额外的位来计算所述值或者将所述任务卸载到诸如CPU的其他硬件的类API函数。
DPU库921还可包括类API功能,所述类API功能同时调度DPU中的激活的子阵列并调度数据移动,使得它被计算操作隐藏。
DPU库921的另一方面包括用于进一步DPU开发的扩展接口。在一个实施例中,DPU库921可提供接口以使用或非和移位逻辑来直接对功能进行编程,使得可提供除标准类型运算(即,加、乘、MAX/MIN等)之外的运算。所述扩展接口还可提供接口,使得DPU库921不特别支持的运算可在库和驱动器层920处卸载到SoC控制器(未示出)、中央处理单元/图形处理单元(CPU/GPU)组件和/或CPU/Tensor处理单元(CPU/TPU)组件。DPU库921的另一方面提供用于在DPU存储器未被用于计算时将DPU存储器用作存储器的扩展的类API功能。
DPU驱动器922可被配置为提供硬件层910的DPU、DPU库921和更高层的操作系统(OS)之间的接口连接,以将所述DPU硬件层集成到系统中。也就是说,DPU驱动器922将DPU显示给系统OS和DPU库921。在一个实施例中,DPU驱动器922可在初始化时提供DPU控制。在一个实施例中,DPU驱动器922可以以DRAM类型地址或DRAM类型地址序列的形式向DPU发送指令,并且可控制数据移入和移出DPU。DPU驱动器922可以提供多DPU通信以及处理DPU-CPU和/或DPU-GPU通信。
DPU编译器923可以将来自DPU库921的DPU代码编译为由DPU驱动器922使用以控制DPU的存储器地址的形式的DPU指令。由DPU编译器923产生的DPU指令可以是针对DPU中的一个行和/或两个行进行操作的单个指令;向量指令和/或收集的向量、读针对操作指令。
框架层930可被配置为将用户友好的接口提供给库和驱动器层920以及硬件层910。在一个实施例中,框架层930可以提供与在应用层940处的应用的宽范围的兼容,并使得DPU硬件层910对于用户是透明的用户友好的接口。在另一实施例中,框架层930可包括将定量功能添加到现有的、传统的方法(诸如,但不限于Torch7类型应用和张量流类型(TensorFlow-type)应用)的框架扩展。在一个实施例中,框架层930可包括将定量函数添加到训练算法。在另一实施例中,框架层930可将存在的除法、乘法以及取平方根的分批归一化方法覆盖为除法、乘法以及取平方根的移位近似的方法。在另一实施例中,框架层930可提供允许用户设置用于计算的位数的扩展。在另一实施例中,框架层930提供将多DPU API从DPU库和驱动器层920卷绕(wrap)到框架层930的能力,使得用户可在硬件层类似于使用多个GPU来使用多个DPU。框架层930的另一特征允许用户将功能分配给硬件层910的DPU或GPU。
应用940可以包括宽范围的应用,诸如但不限于图像标签处理、自驾驶/领航车辆、阿尔法狗类型深层应用和/或言语研究。
如本领域技术人员将认识到的,本文描述的创新性构思可以在宽范围的应用中被修改和改变。因此,所要求保护的主题的范围不应被限于上面讨论的特定示例性教导中的任何一个,而是由所附权利要求来代替进行限定。

Claims (18)

1.一种动态随机存取存储器处理单元,包括:
至少一个计算单元阵列,该至少一个计算单元阵列包括布置在具有至少一个列的阵列中的多个基于动态随机存取存储器DRAM的计算单元,所述至少一个列包括至少三个行的基于DRAM的计算单元,所述至少三个行的基于DRAM的计算单元被配置为提供针对所述至少三个行中的第一行和第二行进行运算的逻辑功能,并被配置为将所述逻辑功能的结果存储在所述至少三个行中的第三行中。
2.如权利要求1所述的动态随机存取存储器处理单元,其中,所述至少一个列的基于DRAM的计算单元中的每个基于DRAM的计算单元包括三个晶体管-一个电容器DRAM存储器单元。
3.如权利要求2所述的动态随机存取存储器处理单元,其中,所述至少一个列的基于DRAM的计算单元提供或非逻辑功能。
4.如权利要求1所述的动态随机存取存储器处理单元,其中,所述至少一个列的基于DRAM的计算单元中的每个基于DRAM的计算单元包括一个晶体管-一个电容器DRAM存储器单元。
5.如权利要求4所述的动态随机存取存储器处理单元,其中,每个基于DRAM的计算单元还包括结合到所述基于DRAM的计算单元的位线的算术逻辑单元,所述算术逻辑单元提供所述逻辑功能。
6.如权利要求5所述的动态随机存取存储器处理单元,其中,所述算术逻辑单元提供或非逻辑功能。
7.如权利要求1所述的动态随机存取存储器处理单元,还包括:
至少一个数据单元阵列,包括布置在至少一个列中的至少一个基于DRAM的存储器单元;以及
感测放大器,包括电结合到所述至少三个行的基于DRAM的计算单元的读位线的输入和电结合到所述至少三个行的基于DRAM的计算单元的写位线的输出。
8.一种动态随机存取存储器处理单元,包括:
至少一个计算单元阵列,该至少一个计算单元阵列包括布置在具有至少一个列的阵列中的多个基于DRAM的计算单元,所述至少一个列包括至少三个行的基于DRAM的计算单元,所述至少三个行的基于DRAM的计算单元被配置为提供针对所述至少三个行中的第一行和第二行进行运算的逻辑功能,并被配置为将所述逻辑功能的结果存储在所述至少三个行中的第三行中;以及
至少一个数据单元阵列,包括布置在至少一个列中的至少一个基于DRAM的存储器单元。
9.如权利要求8所述的动态随机存取存储器处理单元,其中,所述至少一个列的基于DRAM的计算单元中的每个基于DRAM的计算单元包括三个晶体管-一个电容器DRAM存储器单元。
10.如权利要求9所述的动态随机存取存储器处理单元,其中,所述至少一个列的基于DRAM的计算单元提供或非逻辑功能。
11.如权利要求8所述的动态随机存取存储器处理单元,其中,所述至少一个列的基于DRAM的计算单元各自包括一个晶体管-一个电容器DRAM存储器单元。
12.如权利要求11所述的动态随机存取存储器处理单元,其中,每个基于DRAM的计算单元还包括电结合到所述基于DRAM的计算单元的位线的算术逻辑单元,所述算数逻辑单元提供所述逻辑功能。
13.如权利要求12所述的动态随机存取存储器处理单元,其中,所述算数逻辑单元提供或非逻辑功能。
14.一种动态随机存取存储器处理单元,包括:
至少一个数据单元阵列,包括布置在至少一列中的至少一个基于DRAM的存储器单元;
至少一个计算单元阵列,包括布置在具有至少一个列的阵列中的多个基于DRAM的计算单元,所述至少一个列包括至少三个行的基于DRAM的计算单元,所述至少三个行的基于DRAM的计算单元被配置为提供针对所述至少三个行中的第一行和第二行进行运算的逻辑功能并被配置为将所述逻辑功能的结果存储在所述至少三个行中的第三行中;
感测放大器,包括电结合到所述至少三个行的基于DRAM的计算单元的读位线的输入和电结合到所述至少三个行的基于DRAM的计算单元的写位线的输出;以及
解码器,电结合到所述至少三个行的基于DRAM的计算单元,所述解码器接收与用于选择所述至少三个行的基于DRAM的计算单元的指令相应的基于DRAM的地址信号,以针对所述第一行和所述第二行产生所述逻辑功能并将所述逻辑功能的结果存储在所述第三个行中。
15.如权利要求14所述的动态随机存取存储器处理单元,其中,所述至少一个列的基于DRAM的计算单元中的每个基于DRAM的计算单元包括三个晶体管-一个电容器DRAM存储器单元。
16.如权利要求15所述的动态随机存取存储器处理单元,其中,所述至少一个列的基于DRAM的计算单元提供或非逻辑功能。
17.如权利要求14所述的动态随机存取存储器处理单元,其中,所述至少一个列的基于DRAM的计算单元中的每个基于DRAM的计算单元包括一个晶体管-一个电容器DRAM存储器单元。
18.如权利要求17所述的动态随机存取存储器处理单元其中,每个基于DRAM的计算单元还包括电结合到所述基于DRAM的计算单元的位线的算术逻辑单元,所述算数逻辑单元提供或非逻辑功能。
CN201710786369.3A 2016-10-28 2017-09-04 动态随机存取存储器处理单元 Active CN108022615B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201662414426P 2016-10-28 2016-10-28
US62/414,426 2016-10-28
US15/425,996 2017-02-06
US15/425,996 US9922696B1 (en) 2016-10-28 2017-02-06 Circuits and micro-architecture for a DRAM-based processing unit

Publications (2)

Publication Number Publication Date
CN108022615A true CN108022615A (zh) 2018-05-11
CN108022615B CN108022615B (zh) 2023-03-28

Family

ID=61598574

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710786369.3A Active CN108022615B (zh) 2016-10-28 2017-09-04 动态随机存取存储器处理单元

Country Status (5)

Country Link
US (1) US9922696B1 (zh)
JP (1) JP6785738B2 (zh)
KR (1) KR102182217B1 (zh)
CN (1) CN108022615B (zh)
TW (1) TWI713047B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111047026A (zh) * 2018-10-11 2020-04-21 力晶科技股份有限公司 可执行人工智能运算的存储器芯片及其操作方法
US11081149B1 (en) 2020-03-31 2021-08-03 Winbond Electronics Corp. Memory device for artificial intelligence operation

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10180808B2 (en) * 2016-10-27 2019-01-15 Samsung Electronics Co., Ltd. Software stack and programming for DPU operations
US10628295B2 (en) * 2017-12-26 2020-04-21 Samsung Electronics Co., Ltd. Computing mechanisms using lookup tables stored on memory
US10956814B2 (en) * 2018-08-27 2021-03-23 Silicon Storage Technology, Inc. Configurable analog neural memory system for deep learning neural network
CN110414677B (zh) * 2019-07-11 2021-09-03 东南大学 一种适用于全连接二值化神经网络的存内计算电路
US11354383B2 (en) 2019-09-27 2022-06-07 Applied Materials, Inc Successive bit-ordered binary-weighted multiplier-accumulator
KR20220142875A (ko) 2021-04-15 2022-10-24 에스케이하이닉스 주식회사 인메모리 연산을 수행하는 반도체 장치 및 그 동작 방법

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11338767A (ja) * 1998-05-22 1999-12-10 Mitsubishi Heavy Ind Ltd 画像処理用機能メモリ装置
US20050024923A1 (en) * 2003-07-15 2005-02-03 International Business Machines Corporation Gain cell memory having read cycle interlock
US20100164972A1 (en) * 2008-04-02 2010-07-01 Avidan Akerib System, method and apparatus for memory with embedded associative section for computations
CN103907157A (zh) * 2011-10-28 2014-07-02 惠普发展公司,有限责任合伙企业 进行行移位的可移位存储器
US20150357020A1 (en) * 2014-06-05 2015-12-10 Micron Technology, Inc. Apparatuses and methods for performing an exclusive or operation using sensing circuitry
CN105703765A (zh) * 2014-12-16 2016-06-22 三星电子株式会社 基于dram的可重构逻辑

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4955020A (en) * 1989-06-29 1990-09-04 Infotron Systems Corporation Bus architecture for digital communications
CA2158467A1 (en) * 1993-03-17 1994-09-29 Richard D. Freeman Random access memory (ram) based configurable arrays
US6173385B1 (en) 1993-11-19 2001-01-09 Disk Emulation Systems, Inc. Address generator for solid state disk drive
US6195738B1 (en) 1993-12-12 2001-02-27 Associative Computing Ltd. Combined associative processor and random access memory architecture
US5847577A (en) * 1995-02-24 1998-12-08 Xilinx, Inc. DRAM memory cell for programmable logic devices
US5901095A (en) 1997-12-23 1999-05-04 Lsi Logic Corporation Reprogrammable address selector for an embedded DRAM
US6467020B1 (en) * 2000-05-17 2002-10-15 Neomagic Israel Ltd. Combined associate processor and memory architecture
TW514931B (en) 2000-09-29 2002-12-21 Agilent Technologies Inc Apparatus and method for performing conditional calculations
US7299099B1 (en) 2004-02-18 2007-11-20 Divelbiss Corporation Programmable logic controller contained on a chip
JP2006127460A (ja) * 2004-06-09 2006-05-18 Renesas Technology Corp 半導体装置、半導体信号処理装置、およびクロスバースイッチ
US20070226567A1 (en) 2006-03-23 2007-09-27 Gorman Kevin W High speed bist utilizing clock multiplication
CA2645774C (en) * 2006-12-22 2010-01-12 Sidense Corp. A power up detection system for a memory device
US8120989B2 (en) 2007-06-25 2012-02-21 Qualcomm Incorporated Concurrent multiple-dimension word-addressable memory architecture
US8042082B2 (en) 2007-09-12 2011-10-18 Neal Solomon Three dimensional memory in a system on a chip
US8631195B1 (en) * 2007-10-25 2014-01-14 Netlogic Microsystems, Inc. Content addressable memory having selectively interconnected shift register circuits
US8332580B2 (en) * 2008-04-02 2012-12-11 Zikbit Ltd. System, method and apparatus for memory with embedded associative section for computations
US10832746B2 (en) * 2009-07-16 2020-11-10 Gsi Technology Inc. Non-volatile in-memory computing device
US20120246380A1 (en) 2009-10-21 2012-09-27 Avidan Akerib Neighborhood operations for parallel processing
US9026714B2 (en) 2010-06-04 2015-05-05 Cisco Technology, Inc. Memory expansion using rank aggregation
US9673823B2 (en) * 2011-05-18 2017-06-06 Semiconductor Energy Laboratory Co., Ltd. Semiconductor device and method of driving semiconductor device
WO2013115778A1 (en) * 2012-01-30 2013-08-08 Hewlett-Packard Development Company, L.P. Dynamic/static random access memory (d/sram)
KR101990971B1 (ko) 2012-01-30 2019-06-19 삼성전자 주식회사 메모리, 메모리 시스템, 및 메모리에 대한 에러 검출/정정 방법
US9317482B2 (en) 2012-10-14 2016-04-19 Microsoft Technology Licensing, Llc Universal FPGA/ASIC matrix-vector multiplication architecture
US9378181B2 (en) 2012-11-09 2016-06-28 Intel Corporation Scalable computing array
US9197285B2 (en) 2012-12-20 2015-11-24 Deere & Company Methods and apparatus for ameliorating signal reception
US9153305B2 (en) * 2013-08-30 2015-10-06 Micron Technology, Inc. Independently addressable memory array address spaces
US9639458B2 (en) 2013-09-26 2017-05-02 Emu Solutions, Inc. Reducing memory accesses for enhanced in-memory parallel operations
US9934856B2 (en) * 2014-03-31 2018-04-03 Micron Technology, Inc. Apparatuses and methods for comparing data patterns in memory
US9711206B2 (en) * 2014-06-05 2017-07-18 Micron Technology, Inc. Performing logical operations using sensing circuitry
US9847110B2 (en) * 2014-09-03 2017-12-19 Micron Technology, Inc. Apparatuses and methods for storing a data value in multiple columns of an array corresponding to digits of a vector
US20160147667A1 (en) 2014-11-24 2016-05-26 Samsung Electronics Co., Ltd. Address translation in memory
US10996959B2 (en) * 2015-01-08 2021-05-04 Technion Research And Development Foundation Ltd. Hybrid processor
US9697877B2 (en) * 2015-02-05 2017-07-04 The Board Of Trustees Of The University Of Illinois Compute memory

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11338767A (ja) * 1998-05-22 1999-12-10 Mitsubishi Heavy Ind Ltd 画像処理用機能メモリ装置
US20050024923A1 (en) * 2003-07-15 2005-02-03 International Business Machines Corporation Gain cell memory having read cycle interlock
US20100164972A1 (en) * 2008-04-02 2010-07-01 Avidan Akerib System, method and apparatus for memory with embedded associative section for computations
CN103907157A (zh) * 2011-10-28 2014-07-02 惠普发展公司,有限责任合伙企业 进行行移位的可移位存储器
US20150357020A1 (en) * 2014-06-05 2015-12-10 Micron Technology, Inc. Apparatuses and methods for performing an exclusive or operation using sensing circuitry
CN105703765A (zh) * 2014-12-16 2016-06-22 三星电子株式会社 基于dram的可重构逻辑

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111047026A (zh) * 2018-10-11 2020-04-21 力晶科技股份有限公司 可执行人工智能运算的存储器芯片及其操作方法
CN111047026B (zh) * 2018-10-11 2023-08-25 力晶积成电子制造股份有限公司 可执行人工智能运算的存储器芯片及其操作方法
US11081149B1 (en) 2020-03-31 2021-08-03 Winbond Electronics Corp. Memory device for artificial intelligence operation

Also Published As

Publication number Publication date
US9922696B1 (en) 2018-03-20
KR20180046846A (ko) 2018-05-09
TW201816785A (zh) 2018-05-01
TWI713047B (zh) 2020-12-11
CN108022615B (zh) 2023-03-28
KR102182217B1 (ko) 2020-11-25
JP6785738B2 (ja) 2020-11-18
JP2018073452A (ja) 2018-05-10

Similar Documents

Publication Publication Date Title
CN108022615A (zh) 动态随机存取存储器处理单元
CN108010551A (zh) 用于dpu运算的软件栈和编程
CN108008974A (zh) 基于动态随机存取存储器的处理单元架构
TWI757645B (zh) 用於記憶體內乘法及累加運算的電路及其方法
US9224447B2 (en) General structure for computational random access memory (CRAM)
CN107408405A (zh) 用于并行写入到多个存储器装置位置的设备及方法
CN108885887A (zh) 用于数据移动的设备及方法
CN108701473A (zh) 用于数据移动的设备及方法
CN107430874A (zh) 用于数据移动的设备及方法
CN109003640A (zh) 存储器中子阵列之间的数据传送
US7073039B2 (en) Providing a register file memory with local addressing in a SIMD parallel processor
CN102197436A (zh) 用于多电平单元存储器的数据路径,用于存储的方法及用于利用存储器阵列的方法
CN110476212A (zh) 用于存储器中数据交换网络的设备及方法
Zhou et al. Flexidram: A flexible in-dram framework to enable parallel general-purpose computation
Liu et al. Era-bs: Boosting the efficiency of reram-based pim accelerator with fine-grained bit-level sparsity
US20230343373A1 (en) Memory devices including processing-in-memory architecture configured to provide accumulation dispatching and hybrid partitioning
Li Memory-centric architectures: Bridging the gap between compute and memory
KR20230146936A (ko) 스핀 궤도 토크 소자 기반의 프로세싱 인 메모리 장치
Bottleneck mMPU—A Real Processing-in-Memory Architecture to Combat the von

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