CN110462738B - 用于数据路径内计算操作的设备及方法 - Google Patents

用于数据路径内计算操作的设备及方法 Download PDF

Info

Publication number
CN110462738B
CN110462738B CN201880020103.0A CN201880020103A CN110462738B CN 110462738 B CN110462738 B CN 110462738B CN 201880020103 A CN201880020103 A CN 201880020103A CN 110462738 B CN110462738 B CN 110462738B
Authority
CN
China
Prior art keywords
logical
row
compute
sub
data
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
CN201880020103.0A
Other languages
English (en)
Other versions
CN110462738A (zh
Inventor
P·V·莱亚
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.)
Micron Technology Inc
Original Assignee
Micron Technology Inc
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 Micron Technology Inc filed Critical Micron Technology Inc
Publication of CN110462738A publication Critical patent/CN110462738A/zh
Application granted granted Critical
Publication of CN110462738B publication Critical patent/CN110462738B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/06Sense amplifiers; Associated circuits, e.g. timing or triggering 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
    • G06F13/1689Synchronisation and timing concerns
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0615Address space extension
    • G06F12/063Address space extension for I/O modules, e.g. memory mapped I/O
    • 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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • 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/409Read-write [R-W] circuits 
    • G11C11/4093Input/output [I/O] data interface arrangements, e.g. data buffers
    • 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
    • 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/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • G06F15/7821Tightly coupled to memory, e.g. computational memory, smart memory, processor in memory

Landscapes

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

Abstract

本发明包含用于数据路径内计算操作的设备及方法。一种实例设备包含存储器单元阵列。感测电路可选择地耦合到所述阵列。多个共享输入/输出I/O线提供数据路径。所述多个共享I/O线将所述阵列的行的第一子行经由所述感测电路可选择地耦合到所述数据路径中的第一计算组件以将第一数据值从所述第一子行移动到所述第一计算组件且将相应行的第二子行经由所述感测电路可选择地耦合到第二计算组件以将第二数据值从所述第二子行移动到所述第二计算组件。使用所述第一计算组件对来自所述第一子行的所述第一数据值执行运算,大体上同时将所述第二数据值从所述第二子行移动到所述第二计算组件。

Description

用于数据路径内计算操作的设备及方法
技术领域
本发明大体上涉及半导体存储器及方法,且更特定来说,涉及用于数据路径内计算操作的设备及方法。
背景技术
存储器装置通常提供为计算机或其它电子系统中的内部半导体集成电路。存在许多不同类型的存储器,包含易失性存储器及非易失性存储器。易失性存储器可需要电力来维持其数据(例如,主机数据、错误数据等),且包含随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、同步动态随机存取存储器(SDRAM)与晶闸管随机存取存储器(TRAM)等。非易失性存储器可在未供电时通过留存存储数据而提供永久性数据,且可包含NAND快闪存储器、NOR快闪存储器及电阻可变存储器(例如相变随机存取存储器(PCRAM))、电阻性随机存取存储器(RRAM)及磁阻性随机存取存储器(MRAM),例如自旋力矩转移随机存取存储器(STT RAM)等。
电子系统通常包含数个处理资源(例如,一或多个处理器),所述处理资源可检索及执行指令且将所述经执行指令的结果存储到合适位置。处理器可包括数个功能单元(例如算术逻辑单元(ALU)电路、浮点单元(FPU)电路及组合逻辑块),举例来说,所述功能单元可用于通过对数据(例如,一或多个操作数)执行运算而执行指令。如本文中所使用,运算可为(例如)布尔(Boolean)运算(例如AND、OR、NOT、NOT、NAND、NOR及XOR),及/或其它运算(例如,反相、移位、算术、统计以及许多其它可能运算)。举例来说,功能单元电路可用于经由数个运算对操作数执行算术运算,例如加法、减法、乘法及除法。
在提供指令到功能单元电路以供执行时可涉及电子系统中的数个组件。可例如通过处理资源(例如控制器及/或主机处理器)执行所述指令。数据(例如,将对其执行指令的操作数)可存储于可通过功能单元电路存取的存储器阵列中。可从所述存储器阵列检索指令及/或数据,且可在功能单元电路开始对所述数据执行指令之前序列化及/或缓冲所述指令及/或数据。此外,由于可通过功能单元电路以一或多个时钟循环执行不同类型的运算,所以还可序列化及/或缓冲所述指令及/或数据的中间结果。在一或多个时钟循环中完成运算的序列可被称为运算循环。就计算设备及/或系统的处理及计算性能及电力消耗来说,完成运算循环所消耗的时间成本较高。
在许多例子中,处理资源(例如,处理器及相关联功能单元电路)可在存储器阵列外部,且可经由所述处理资源与所述存储器阵列之间的总线存取数据以执行指令集。可改进其中可在存储器内部及/或附近(例如,直接在与存储器阵列相同的芯片上)实施处理及/或逻辑资源的存储器中处理(PIM)装置中的处理性能。存储器中处理(PIM)装置可通过减小及消除外部通信而节省时间且还可节约电力。
附图说明
图1A是根据本发明的数个实施例的呈包含存储器装置的计算系统的形式的设备的框图。
图1B是根据本发明的数个实施例的呈包含存储器装置(其具有在阵列的存储器库区段本地的数据路径中的共享输入/输出(I/O)线)的计算系统的形式的设备的另一框图。
图2是说明根据本发明的数个实施例的存储器装置的电路的示意图,所述电路包含感测放大器及计算组件,其可包含于感测电路及/或逻辑条中。
图3是说明根据本发明的数个实施例的用于阵列的数据路径中的多个共享I/O线的电路的示意图。
图4是说明根据本发明的数个实施例的通过在阵列本地的数据路径中的多个共享I/O线耦合到具有多个逻辑条的计算单元的所述阵列的多个区段的框图。
图5是说明根据本发明的数个实施例的存储器装置的控制器的实例的框图。
图6是说明根据本发明的数个实施例的存储器装置的控制器的另一实例的框图,所述控制器使用共享I/O线控制数据值到具有多个逻辑条的计算单元的移动。
图7是说明根据本发明的数个实施例的逻辑条的计算组件的示意图。
图8是说明根据本发明的数个实施例的通过图7中所展示的计算组件实施的可选择逻辑运算结果的逻辑表。
图9A到9C是说明根据本发明的数个实施例的用于在存储器装置中对数据值执行运算的数个调度策略的实施方案的示意图。
具体实施方式
本发明包含用于数据路径内计算操作的设备及方法。在至少一个实施例中,设备包含具有存储器单元阵列的存储器装置及可选择地耦合到所述存储器单元阵列的感测电路。在各种实施例中,存储器装置可为存储器中处理(PIM)装置且感测电路可包含感测放大器。多个输入/输出(I/O)线共享为用于与阵列相关联的数据路径内计算操作的数据路径(例如,感测电路可选择地耦合到存储器单元列及/或共享I/O线)。
多个共享I/O线将阵列的行的第一子行经由感测电路可选择地耦合到数据路径中的第一计算组件以将第一数据值从第一子行移动到第一计算组件。如本文中所使用,“子行”希望意味着存储预定数目个数据值的阵列的行的预定存储器单元子集。举例来说,行的一个子行可为具有16,384(16K)个存储器单元的行的预定1024(1K)个存储器单元,借此导致所述行的16个子行(例如,如在428-1、428-2、…、428-16处展示且结合图4及本文中其它处描述)。多个共享I/O线将相应行的第二子行经由感测电路可选择地耦合到数据路径中的第二计算组件以将第二数据值从第二子行移动到第二计算组件。使用第一计算组件对来自第一子行的第一数据值执行运算(例如,如通过控制器引导),大体上同时将第二数据值从第二子行移动到第二计算组件。
例如第一及第二的序数在本文中用于协助关联及/或区分类似及/或可选择地耦合的组件(例如,存储器单元子阵列、数据值及相关联计算组件、存储器单元子行及相关联计算组件、逻辑条及相关联计算组件、连接电路及相关联计算组件及/或逻辑条等)且并非用于指示组件之间的特定排序及/或关系,除非上下文另有明确规定(例如,通过使用例如相邻等的术语)。
举例来说,第一数据值从存储器阵列的第一行经由共享I/O线到第一逻辑条的第一计算组件的移动希望指示来自特定行的特定子行(例如,其可为(但未必)子行序列中的第一子行)的特定数据值可移动到特定逻辑条的特定计算组件(例如,其中的每一者可为(但未必)计算组件及/或逻辑条序列中的第一者)。类似地,来自第一行的第二子行(其可为相邻于先前提及的第一子行的下一子行但可为(但未必)子行序列中的第二子行)的第二数据值的移动希望指示来自相同行的第二子行的特定数据值可移动到不同逻辑条的特定计算组件。举例来说,参考第二数据值移动到第二逻辑条的第二计算组件是用于使第二数据值与不同于先前称为此类组件的第一者的计算组件及/或逻辑条相关联。因而,第二计算组件可为(但未必)第二逻辑条的计算组件序列中的第一计算组件及/或第二逻辑条可为(但未必)逻辑条序列中的第二逻辑条。
类似地,如本文中所描述,控制器经配置以在第一操作循环中引导第一子行的数个多个数据值到第一逻辑条的对应数目个多个第一计算组件的第一并行移动(例如,经由共享I/O线)希望指示控制器可在特定操作循环中(例如,在约2纳秒(ns)到60纳秒(ns)的时间帧中)引导对应于第一子行的多个数据值的特定数目个数据值到第一逻辑条的相同数目个计算组件的移动的执行。控制器经配置以在第二操作循环中引导第二子行的数个多个数据值到第二逻辑条的对应数目个多个第二计算组件的第二并行移动希望指示控制器可在第二操作循环中(例如,其可为(但未必)下一(例如,相邻)2ns到60ns时间帧)引导对应于第二子行的多个数据值的特定数目个数据值到第二逻辑条的相同数目个计算组件的移动的执行。第二子行的多个数据值及/或第二逻辑条的第二计算组件的特定数目可为(但未必)与第一子行的数据值及/或第一逻辑条的第一计算组件的数目相同的数目。
共享I/O线(例如,如在155处展示且结合图1B及本文中其它处描述)用作与存储器阵列(例如,如在130处展示且结合图1A及本文中其它处描述)相关联的数据路径。共享I/O线将感测电路(例如,如在150处展示且结合图1A及本文中其它处描述)耦合到共享I/O线的数据路径中的计算组件(例如,如在231处展示且结合图2及本文中其它处描述)。与共享I/O线的数据路径相关联的计算组件具有等于数据路径的间距的间距且所述间距依据存储器单元阵列的数字线(例如,如在205处展示且结合图2及本文中其它处描述)的间距而变化。举例来说,计算组件具有间距,其是存储器单元阵列的数字线的间距的整数倍。
如本文中所使用,“共享I/O线”希望意味着在数据路径中的阵列本地的I/O线,所述数据路径具有依据存储器单元阵列的间距而变化的间距。共享I/O可定位于存储器阵列的存储器库(例如,如在121-1处展示且结合图1B及本文中其它处描述)上且可经多路复用到所述阵列的多个列(例如,DRAM阵列的互补数字线)。共享I/O不同且相异于与阵列相关联的I/O电路,其希望根据阵列协议(例如DDR4)往返于阵列移动数据及/或结合主机(例如,如在110处展示且结合图1A及本文中其它处描述)将数据移到及移出存储器装置(例如,如在120处展示且结合图1A及本文中其它处描述)。
在一些实施例中,计算组件可在与数据的共享I/O线相关联的逻辑条(例如,如在124-1、124-2、…、124-N处展示且结合图1B及本文中其它处描述)中。阵列可具有用于阵列本地的数据路径的多个共享I/O线且每一逻辑条可具有多个计算组件(例如,如在431-1、431-2、…、431-Z处展示且结合图4及本文中其它处描述)。多个计算组件中的每一者与数据路径的多个共享I/O线中的至少一者相关联。在一些实施例中,多个计算组件中的每一者中的一者可与数据路径的多个共享I/O线中的特定一者相关联。
在各种实施例中,多个计算组件中的每一者可移位到数据路径的多个共享I/O线中的另一者。举例来说,行(例如,如在319处展示且结合图3及本文中其它处描述)的数个列及/或存储器单元(例如,16,384个列及/或存储器单元以及其它可能配置)可经多路复用,使得例如通过选择耦合到所述列中的连续多个行及/或存储器单元且经由多个共享I/O线(例如,1024个个别共享I/O线)并行移动数据而获得16个子行(16个子行各具有1024个相邻行及/或存储器单元,如在图4中所展示),使得来自连续存储器单元的数据值(例如,1024个数据值)可并行移动。替代地或另外,所述列的数个行及/或存储器单元可经多路复用,例如使得可通过选择耦合到所述行中的每十六个列及/或存储器单元且经由共享I/O线并行移动数据值而获得16个子行,使得来自每十六个存储器单元的数据值(例如,1024个数据值)可并行移动。在一些实施例中,阵列可为DRAM阵列且用于感测及/或放大选定存储器单元中的数据值的感测电路可包含感测放大器及/或计算组件。
存储器装置120包含控制器(例如,如在140处展示且结合图1A及本文中其它处描述)。除其它功能以外,控制器140还可经配置以引导数据值从阵列中的存储器单元行(例如,其选定子行)到与数据路径的多个共享I/O线中的一者相关联的计算组件的移动(例如,经由与控制器相关联的移动组件171)。
如下文更详细描述,实施例可允许主机系统分配一或多个DRAM存储器库中的数个位置(例如,阵列、子阵列及/或子阵列的部分,例如行及其子行)以保持(例如,存储)及/或处理数据。主机系统及控制器可对整个块的程序指令(例如,PIM命令指令)及数据执行地址解析且引导(例如,控制)数据及命令分配、存储及/或移动(例如,流动)到目的地(例如,目标)存储器库内的经分配位置(例如,子阵列及子阵列的部分)中。在DRAM阵列中写入及/或读取数据及/或执行命令(例如,移动数据值以用于通过逻辑条执行运算,如本文中所描述)可利用DRAM装置的正常DRAM读取/写入路径。如读者将了解,虽然关于在本文中提呈的数据路径内计算操作的实例论述PIM装置的DRAM型存储器阵列,但实施例不限于PIM DRAM实施方案。
本文中所描述的存储器装置可使用针对子阵列的存储器库的数个控制器、针对个别子阵列的控制器及/或针对锁存器组件的控制器(例如,每一控制器为序列发生器、状态机、微控制器、子处理器、ALU电路或某一其它类型的控制器)来执行指令集以对数据(例如,一或多个操作数)执行运算。如本文中所使用,运算可为例如布尔逻辑运算(例如AND、OR、NOT、NOT、NAND、NOR及XOR),及/或其它运算(例如,反相、移位、算术、统计以及许多其它可能运算)。举例来说,功能单元电路可用于经由数个逻辑运算对操作数执行算术运算,例如加法、减法、乘法及除法。
本发明描述实现对通过存储器单元存储的数据值(例如,在移动到计算组件时,如本文中所描述)执行数据路径内计算操作(例如,PIM运算,例如AND、OR、刷新、行复制、移位、加法、乘法等),大体上同时对来自相同存储器库、所述相同存储器库中的相同子阵列及/或所述相同子阵列中的相同行(例如,在DRAM阵列中,以及其它类型的存储器阵列中)的数据值执行例如读取及/或写入操作。举例来说,可对存储于子阵列的行中的存储器单元子行中的数据值执行移动操作,大体上同时如控制器及/或主机引导那样对先前移动到数据路径中的计算组件(例如,到选定逻辑条)的相同数据值执行例如逻辑运算,如本文中所描述。
因此,当子行经激活以在阵列中经感测时,通过所述子行的存储器单元存储的多个数据值(例如,整个行的数据值)可移动(例如,复制、传送及/或输送)到与阵列相关联的数据路径中的对应多个计算组件(例如,其各自形成计算单元(例如,如在460处展示且结合图4及本文中其它处描述)中的逻辑条424的至少部分)。多个共享I/O线将数据值耦合到数据路径中的多个计算组件。在一些实施例中,计算单元中的数个逻辑条的多个计算组件可与阵列的存储器库的每一存储器库区段相关联。与共同I/O相关联的计算组件可经配置以耦合(例如,直接或间接连接,如本文中所描述)到阵列本地的共享I/O的数据路径。在一些实施例中,计算组件431、逻辑条424及/或计算单元460可进一步耦合到连接到存储器装置外部的主机110的数据总线及/或耦合到将阵列的存储器库连接到存储器装置上的阵列的另一存储器库的数据总线。
在一些实施例中,本发明描述在感测行时,所述行中的数据值(例如,来自所述行中的所有16,384(16K)个存储器单元的数据值)可经移动以存储(例如,高速缓冲存储)于锁存器组件(例如,感测放大器)中以进一步在共享I/O线上移动到阵列本地的共享I/O的数据路径中的计算单元中的逻辑条。在一些实施例中,2048(2K)个共享I/O线可经配置为2K位宽共享I/O线。根据一些实施例,可通过将与阵列中的存储器单元行交叉的阵列中的列数除以多个共享I/O线的2K位宽度而确定用于将数据从源位置中的第一行移动到目的地位置中的第二行的循环数目。举例来说,阵列(例如,存储器库、存储器库区段或其子阵行)可具有16K个列,其可对应于行中的16K个数据值,其在除以与行交叉的多个共享I/O线的2K位宽度时可产生八个循环,每一单独循环处于用于移动行中的数据的每一2K位分率的大体上相同时间点(例如,并行),使得在完成八个循环之后移动行中的所有16K个数据位。举例来说,源位置的感测电路350中的多个(例如,八的子集,如在图3中展示)感测放大器306或计算组件331中的仅一者可同时耦合到相应共享I/O线355。在具有16K个共享I/O线的实施例中,可并行移动所有16K个数据位。
在一个实例中,2K个数据值可通过八路多路复用器通过2K个共享I/O线从16K个列(例如,数字线对)的2K个感测放大器同时(例如,并行)多路复用到计算单元的每一逻辑条中的2K个计算组件(例如,每一逻辑条具有2K个计算组件)(例如,以存储及/或处理总共2K个位)。在一些实施例中,计算单元可具有八个逻辑条以每逻辑条存储2K个数据值,借此每计算单元能够存储已在八个循环中通过2K个共享I/O线移动的16K个数据值。在另一实例中,1K个数据值可通过十六路多路复用器通过1K个共享I/O线从16K个列的1K个感测放大器同时多路复用到计算单元的逻辑条中的1K个计算组件(例如,每一逻辑条具有1K个计算组件)(例如,以存储及/或处理总共1K个位)。在一些实施例中,计算单元(例如,如在460处展示且结合图4描述)可具有十六(16)个逻辑条以每逻辑条存储1K个数据值,借此每计算单元能够存储已在16个循环中通过1K个共享I/O线移动的16K个数据值。举例来说,16个逻辑条(例如,在424-1、424-2、…、424-N处展示且结合图4描述)中的每一者及每一逻辑条中的1K个计算组件(例如,如在431-1、431-2、…、431-Z处展示且结合图4描述)可对应于通过相应1K个共享I/O线从其移动(例如,多路复用)1K个数据值的子行(例如,如在428-1、428-2、…、424-16处展示且结合图4描述)。
因而,从其移动数据值的存储器库、子阵列、行及/或子行中的存储器单元可用于(例如,通过使原始数据值移动到阵列本地的共享I/O的数据路径中的计算单元中的逻辑条而)对存储于其中的其它数据值执行运算。在各种实施例中,每一逻辑条可包含对应于数个计算组件(例如,与其相同或其整数倍)的数个多个锁存器以存储从另一存储器库、子阵列、行及/或子行移动的多个数据值以能够对通过与计算组件相关联的锁存器存储的数据值执行数个运算(例如,逻辑运算)。
如本文中所使用,数据移动是包含性术语,其包含例如将数据值从源位置复制、传送及/或输送到目的地位置。举例来说,数据可从子阵列的感测电路的感测放大器移动到阵列本地的共享I/O线的数据路径中的逻辑条中的计算组件。复制数据值可指示存储(高速缓冲存储)于感测放大器中的数据值经复制及移动到阵列本地的共享I/O线的数据路径中的逻辑条中的计算组件且存储于行的子行中的原始数据值可保持不变。传送数据值可指示存储(高速缓冲存储)于感测放大器中的数据值经复制及移动到阵列本地的共享I/O线的数据路径中的逻辑条中的计算组件且存储于行的子行中的原始数据值中的至少一者可改变(例如,通过经擦除及/或通过后续写入操作,如本文中所描述)。输送数据值可用于指示借以使经复制及/或经传送的数据值移动(例如,通过将数据值从源位置放置于共享I/O线上且输送到目的地位置)的过程。
用于数据路径内计算操作的DRAM架构的实施方案可在感测放大器及计算组件层级处(例如,在逻辑条中)执行处理。用于数据路径内计算操作的DRAM架构的实施方案可允许仅有限数目个存储器单元(例如,1K个存储器单元,如上文一个实例中给出)连接到共享I/O线的数据路径中的逻辑条中的计算组件。阵列可包含从约8K到约16K个列(数字线对)及相关联感测放大器。在一些实施例中(例如,如在图4中展示),阵列的存储器库区段423可划分成四个象限且每一象限可具有多个子阵列(例如,32个子阵列)。每一子阵列可具有多个行(例如,512个行)且可耦合到16K个列。如本文中所描述,每一行可包含各自具有1K个存储器单元的16个子行(例如,所述存储器单元的选择构成通过多路复用确定的经由感测电路耦合到特定共享I/O线的1K个存储器单元)。然而,实施例不限于此阐释性实例。
在一些实施例中,作为计算单元的部分的多个逻辑条可与每一象限相关联。举例来说,共享I/O线的数据路径中的计算单元中的每一逻辑条可与存储器库的每一象限中的子阵列相关联。因此,在以上实例中,在阵列本地的共享I/O线的数据路径中的计算单元可具有128个逻辑条(4个象限,一个逻辑条针对每象限32个子阵列中的每一者)。然而,实施例不限于此阐释性实例。在一些实施例中,存储器(例如,DRAM阵列中的存储器单元)的存储器库可包含DRAM的64K个行×16K个列以提供约千兆位的存储器。
本发明描述在阵列本地的共享I/O线的数据路径中的计算组件,其可包含用作感测放大器以存储(高速缓冲存储)从与所述阵列相关联的感测电路移动(例如,复制、传送及/或输送)的数据值的多个锁存器。计算组件可在阵列本地的多个共享I/O线的数据路径中的计算单元中的多个逻辑条中使得所述多个逻辑条各自包含总数目个计算组件的子集。逻辑条424-1、…、424-N的计算组件431-1、…、431-Z(例如,如结合图4展示及描述)可具有等于在阵列的存储器库121-1本地的多个共享I/O线455的数据路径的间距的间距。在一些实施例中,多个共享I/O线455的数据路径的间距可依据存储器单元阵列的数字线(例如,如在图2中的205-1及205-2及图3中的305-1及305-2处展示)的间距而变化。计算组件431-1、…、431-Z及/或逻辑条424-1、…、424-N可通过感测电路150(例如,感测电路的感测放大器206)及/或额外锁存器170(如图1A中所展示)耦合到多个共享I/O线455的数据路径。
因而,用于数据路径内计算操作的架构可促进存储于阵列的行的子行中的数据值移动(例如,复制、传送及/或输送)到阵列本地的多个共享I/O线的数据路径中的计算组件431-1、…、431-Z及/或逻辑条424-1、…、424-N。具有感测放大器的感测电路150(其在一些实施例中还可包含如图2中所展示的计算组件)可将来自阵列中的存储器单元的经多路复用列的存储器单元耦合到多个共享I/O线455的数据路径中的计算单元中的计算组件431-1、…、431-Z及/或逻辑条424-1、…、424-N。以此方式,计算组件431-1、…、431-Z及/或逻辑条424-1、…、424-N可经由操作为多路复用器的列选择电路(例如,如在358处展示且结合图3描述)及相关联选择逻辑(如结合图3到7所论述)通过多个共享I/O线455间接耦合到列的存储器单元。
本文中所描述的存储器阵列架构可提供除刚描述的益处以外的数个益处。可通过例如与执行其它运算(例如,执行DDR4I/O运算)并行地实现对通过存储器单元存储的数据执行的PIM运算而增大整体处理速度。举例来说,可在阵列本地的共享I/O线455的数据路径中的具有多个计算组件431-1、…、431-Z及/或逻辑条424-1、…、424-N的计算单元中执行PIM运算。通过实例且非限制地,一旦将数据值从阵列的子行加载到计算单元中的多个计算组件431-1、…、431-Z及/或逻辑条424-1、…、424-N,便可在计算单元中以2ns的速度(相较于触发阵列中的行所需的60ns的实例时间)控制计算操作而无需将所述数据值移动回到所述行中。以此方式,计算组件431-1、…、431-Z及/或逻辑条424-1、…、124-N(连同相关联锁存器)可提供经移动数据值的存储以执行特定函数(例如,AND、OR、NOR、XOR、加法、减法、乘法、除法等),同时可将子行的原始数据值保存回到行,保存于别处及/或改写。如结合图5及6更多论述,可通过存储器库121的控制器140引导多个共享I/O线的数据路径中的计算单元中的计算组件431-1、…、431-Z及/或逻辑条424-1、…、424-N的操作。
在本发明的以下详细描述中,参考形成本发明的部分的附图,且在附图中通过图解展示可如何实践本发明的一或多个实施例。这些实施例经足够详细描述以使所属领域的技术人员能够实践本发明的实施例,且应理解,可利用其它实施例且可在不脱离本发明的范围的情况下作出过程、电及结构改变。
如本文中所使用,指定符例如“X”、“Y”、“Z”、“N”、“M”等(尤其关于图式中的元件符号)指示可包含如此指定的数个特定特征。还应理解,本文中所使用的术语仅出于描述特定实施例的目的,且并不希望限制。如本文中所使用,除非上下文另有明确规定,否则单数形式“一”及“所述”可包含单数及多个参考物两者。另外,“数个”、“至少一个”及“一或多个”(例如,数个存储器阵列)可是指一或多个存储器阵列,而“多个”意指一个以上此类事物。此外,贯穿此申请案在允许意义上(即,在本文中所描述的至少一些实施例中有可能及/或能够)而非在强制意义上(即,必须)使用字词“可(can及may)”。术语“包含”及其衍生词意味着“包含(但不限于)”。术语“耦合(couple、coupled及coupling)”意味着直接或间接物理连接或用于命令及/或数据的存取及移动(传输),视上下文而定。术语“数据”及“数据值”在本文中可互换使用且可具有相同含义,视上下文而定。
如本文中所描述,多个共享I/O线455可经由耦合到每一阵列的选择逻辑而由多个子阵列、存储器库区段、象限、行、子行及/或存储器单元的特定列可选择地共享。举例来说,包含感测放大器及用于多路复用数个列的可选择数目个子集(例如,总数目个列的8个、16个等列子集)中的每一者的选择逻辑的感测电路150及/或额外锁存器170可选择地耦合到多个共享I/O线455中的每一者以使数据值移动到多个共享I/O线455的数据路径中的计算单元460中的多个计算组件431-1、…、431-Z及/或逻辑条424-1、…、424-N。在一些实施例中,可选择地耦合到多个共享I/O线455中的每一者的多个计算组件431-1、…、431-Z可对应于可选择地耦合到多个共享I/O线的列数(例如,1K、2K等)。因为单数形式“一”及“所述”在本文中可包含单数及多个参考物两者,所以除非上下文另有明确规定,否则“共享I/O线”可用于指代“一对互补共享I/O线”。此外,“共享I/O线”是“多个共享I/O线”的缩写。
本文中的图遵循编号惯例,其中首位数字或前几位数字对应于图号且剩余数字识别图中的元件或组件。可通过使用类似数字识别不同图之间的类似元件或组件。举例来说,108可指代图1A中的元件“08”,且类似元件可在图2中指代为208。如将了解,可添加、交换及/或消除本文中的各个实施例中所展示的元件,以便提供本发明的数个额外实施例。另外,图中所提供的元件的比例及/或相对尺度希望说明本发明的某些实施例,且不应被视作限制意义。
图1A是根据本发明的数个实施例的呈包含存储器装置120(其包含存储器阵列130)的计算系统100的形式的设备的框图。如本文中所使用,存储器装置120、控制器140、存储器阵列130、感测电路150及/或数个额外锁存器170还可被单独视作“设备”。
如本文中所使用,额外锁存器意味着感测、耦合及/或移动(例如,读取、存储、高速缓存)阵列中的存储器单元的数据值且相异于图3到4及6到7中所展示的多个共享I/O线455的数据路径中的计算单元460中的多个计算组件431-1、…、431-Z及/或逻辑条424-1、…、424-N的额外功能性(例如,放大器、选择逻辑)。如图1B中所展示,在阵列本地的多个共享I/O线155的数据路径中的逻辑条124-1、…、124-N可与存储器库121-1中的存储器单元的各种存储器库区段123-1、…、123-N相关联。存储器库121-1可为存储器装置120上的多个存储器库中的一者。
图1A中的系统100包含耦合(例如,连接)到存储器装置120的主机110。主机110可为主机系统,例如个人膝上型计算机、桌上型计算机、数码相机、智能电话或存储卡读取器以及各种其它类型的主机。主机110可包含系统主板及/或底板,且可包含数个处理资源(例如,一或多个处理器、微处理器或某一其它类型的控制电路)。系统100可包含单独集成电路,或主机110及存储器装置120两者可在相同集成电路上。系统100可为例如服务器系统及/或高性能计算(HPC)系统及/或其部分。尽管图1A中所展示的实例说明具有冯·诺伊曼(Von Neumann)架构的系统,但本发明的实施例还可实施于非冯·诺伊曼架构中,其可不包含通常与冯·诺伊曼架构相关联的一或多个组件(例如,CPU、ALU等)。
为清楚起见,系统100已经简化以聚焦于与本发明特定相关的特征。存储器阵列130可为DRAM阵列、SRAM阵列、STT RAM阵列、PCRAM阵列、TRAM阵列、RRAM阵列、NAND快闪阵列及/或NOR快闪阵列以及其它类型的阵列。阵列130可包含布置成通过存取线(其在本文中可被称为字线或选择线)耦合的行及通过感测线(其在本文中可被称为数据线或数字线)耦合的列的存储器单元。尽管图1A中展示单个阵列130,但实施例不限于此。举例来说,存储器装置120可包含数个阵列130(例如,DRAM单元、NAND快闪单元的数个存储器库等)。
存储器装置120可包含寻址电路142以锁存通过I/O电路144经由数据总线156(例如,连接到主机110的I/O总线)提供的地址信号(例如,经由局部I/O线及全局I/O线提供到外部ALU电路及/或DRAM DQ)。如本文中所使用,DRAM DQ可能够经由总线(例如,数据总线156)将数据输入到存储器库及/或从存储器库输出数据(例如,从控制器140及/或主机110输出数据及/或将数据输入到控制器140及/或主机110)。在写入操作期间,可将电压(高=1、低=0)施加到DQ(例如,引脚)。此电压可转变成适当信号且通过选定存储器单元存储。在读取操作期间,一旦完成存取,从选定存储器单元读取的数据值便可出现于DQ处且(例如,通过输出启用信号为低)启用输出。在其它时间,DQ可处于高阻抗状态中,使得DQ未流出或汲入电流且未向系统呈现信号。当两个或两个以上装置(例如,存储器库)共享经组合数据总线时,这还可减少DQ争用,如本文中所描述。此类DQ是单独的且相异于在阵列130本地的数据路径中的多个共享I/O线155(在图1B中)。
状态及异常信息可(例如)通过频带外(OOB)总线157(例如,高速接口(HSI))从存储器装置120的控制器140提供到信道控制器143,又可从信道控制器143提供到主机110。信道控制器143可包含逻辑组件以将多个位置(例如,针对子阵列的控制器)分配于相应存储器库的阵列中以存储与多个存储器装置120中的每一者的操作相关联的各种存储器库的存储器库命令、应用程序指令(例如,针对运算序列)及自变量(PIM命令)。信道控制器143可将命令(例如,PIM命令)分派给多个存储器装置120以将所述程序指令存储于存储器装置120的给定存储器库121(例如,图1B的121-1)内。
通过寻址电路142接收地址信号且通过行解码器146及列解码器152解码所述地址信号以存取存储器阵列130。可通过使用感测电路150的如本文中所描述的数个感测放大器感测在感测线(数字线)上的电压及/或电流变化而从存储器阵列130感测(读取)数据。感测放大器可从存储器阵列130读取及锁存页(例如,行)数据。如本文中所描述,额外计算电路可耦合到感测电路150且可结合感测放大器一起用于感测、存储(例如,高速缓冲存储及/或缓冲)、执行计算功能(例如,运算)及/或移动数据。可使用I/O电路144以经由数据总线156(例如,64位宽数据总线)与主机110进行双向数据通信。可使用写入电路148以将数据写入到存储器阵列130。
控制器140(例如,图5中所展示的存储器库控制逻辑、序列发生器及时序电路)可解码通过控制总线154从主机110提供的信号(例如,命令)。这些信号可包含芯片启用信号、写入启用信号及/或地址锁存信号,所述信号可用于控制对存储器阵列130执行的操作,包含数据感测、数据存储、数据移动(例如,复制、传送及/或输送数据值)、数据写入及/或数据擦除操作以及其它操作。在各个实施例中,控制器140可负责执行来自主机110的指令及/或存取存储器阵列130。控制器140可为状态机、序列发生器或某一其它类型的控制器。控制器140可控制使数据在阵列(例如,存储器阵列130)的行中移位(例如,向右或向左)及执行微码指令以执行例如计算操作的运算(例如,AND、OR、NOR、XOR、加法、减法、乘法、除法等)。
下文(例如,在图2及3中)进一步描述感测电路150的实例。举例来说,在一些实施例中,感测电路150可包含数个感测放大器。在一些实施例中,感测电路150可包含数个感测放大器及对应数目个计算组件,其可用作累加器且可用于在每一子阵列中(例如,对与互补感测线相关联的数据)执行运算以及本文中所描述的数据路径内计算操作。
在一些实施例中,感测电路150可用于使用通过存储器阵列130存储的数据作为输入执行操作且参与将用于复制、传送、输送、写入、逻辑及/或存储操作的数据移动到存储器阵列130中及/或逻辑条124中的不同位置而不经由感测线地址存取传送数据(例如,未触发列解码信号)。因而,在一些实施例中,各种计算功能可使用感测电路150且在感测电路150内执行而非通过感测电路150外部的处理资源(例如,通过与主机110相关联的处理器及/或定位于装置120上(例如定位于控制器140上或别处)的其它处理电路,例如ALU电路)执行(或与由处理资源执行相关联)。然而,另外,本文中所描述的实施例可对从阵列的行移动到计算单元中的多个计算组件131-1、131-2、…、131-M及/或逻辑条124-1、…、124-N的数据值执行数据路径内计算功能及/或操作。且作为实例,根据一些实施例,可在所述计算单元中以2ns的速度(相较于触发阵列中的行所需的60ns)的实例时间)控制计算操作而无需将所述数据值移动回到所述行中。
在各种先前方法中,(例如)与操作数相关联的数据将经由感测电路从存储器读取且经由I/O线(例如,经由局部I/O线及/或全局I/O线)提供到外部ALU电路。外部ALU电路可包含数个寄存器且将使用操作数执行计算功能且结果将经由I/O电路144传送回到阵列。
相比来说,本文中的实施例在阵列本地的数据路径中的计算单元中对经由多个共享I/O线155从阵列的行及/或子行移动到多个计算组件131-1、131-2、…、131-M及/或逻辑条124-1、…、124-N的数据值执行计算功能。另外,感测电路150可经配置以对通过存储器阵列130存储的数据执行运算且在未启用耦合到感测电路150的I/O线(例如,局部I/O线)的情况下将结果存储回到存储器阵列130。然而,一旦经加载,便可在计算单元中更快(例如,以2ns的速度)(相较于触发阵列中的行所需的(例如)60ns的实例时间)地控制计算操作而无需将所述数据值移动回到行及/或子行中。感测电路150可形成于与阵列的存储器单元的间距上。与多个共享I/O线155的数据路径相关联的多个计算组件131-1、131-2…、131-M及/或逻辑条124-1、…、124-N可具有等于所述数据路径的间距的间距且所述间距依据存储器单元阵列的数字线的间距而变化。
举例来说,本文中所描述的感测电路150可形成于与一对互补感测线(例如,数字线)相同的间距上。作为实例,一对互补存储器单元可具有拥有6F2间距(例如,3F×2F)的单元大小,其中F是特征大小。如果互补存储器单元的一对互补感测线的间距是3F,那么感测电路在间距上指示感测电路(例如,每相应对的互补感测线的感测放大器及/或对应计算组件)经形成以装配于互补感测线的3F间距内。同样地,与多个共享I/O线155的数据路径相关联的逻辑条124-1、…、124-N的计算组件131-1、131-2、…、131-M具有依据互补感测线的3F间距而变化的间距。举例来说,逻辑条124-1、…、124-N的计算组件131-1、131-2…、131-M可具有存储器单元阵列的数字线的3F间距的整数倍的间距,所述间距还可对应于多个共享I/O线155的间距。
相比来说,各种先前系统的处理资源(例如,计算引擎,例如ALU)的电路可不符合与存储器阵列相关联的间距规则。举例来说,存储器阵列的存储器单元可具有4F2或6F2单元大小。因而,与先前系统的ALU电路相关联的装置(例如,逻辑门)可不能够形成于与存储器单元的间距上(例如,形成于与感测线相同的间距上),举例来说,此可影响芯片大小及/或存储器密度。在一些计算系统及子系统(例如,中央处理单元(CPU))的背景内容中,可在并不处于与存储器(例如,阵列中的存储器单元)的间距上及/或具有存储器的芯片上的位置中处理数据,如本文中所描述。举例来说,可通过与主机相关联的处理资源(例如,而非在与存储器的间距上)处理数据。
因而,在数个实施例中,不需要在阵列130及感测电路150外部的电路来执行计算功能,因为感测电路150可在不使用外部处理资源的情况下执行适当操作以执行此类计算功能或可在阵列本地的多个共享I/O线的数据路径中执行此类操作。因此,感测电路150及/或多个共享I/O线155的数据路径中的计算单元中的多个计算组件131-1、131-2、…、131-M及/或逻辑条124-1、…、124-N可用于至少在一定程度上补充或取代此外部处理资源(或此外部处理资源的至少带宽消耗)。在一些实施例中,感测电路150及/或多个共享I/O线155的数据路径中的计算单元中的多个计算组件131-1、131-2、…、131-M及/或逻辑条124-1、…、124-N可用于执行除了通过外部处理资源(例如,主机110)执行的操作以外的操作(例如,执行指令)。举例来说,主机110及/或感测电路150可限于仅执行特定操作及/或特定数目个操作。
本文中所描述的操作可包含与具备PIM能力的装置相关联的操作。具备PIM能力的装置操作可使用基于位向量的操作。如本文中所使用,术语“位向量”意味着位向量存储器装置(例如,PIM装置)上的物理上连续或非连续存储于存储器单元阵列的行中的数个位。因此,如本文中所使用,“位向量操作”意味着对位向量(其是(例如,通过PIM装置使用的)虚拟地址空间的连续或非连续部分)执行的操作。举例来说,所述PIM装置中的虚拟地址空间的行可具有16K个位的位长度(例如,对应于DRAM配置中的16K对互补存储器单元)。如本文中所描述,用于此16K位行的感测电路150可包含形成于与可选择地耦合到16位行中的对应存储器单元的感测线的间距上的对应16K个感测放大器及/或处理元件(例如,计算组件231)。PIM装置的感测电路及/或逻辑条中的计算组件可作为单位元处理元件(PE)而对通过感测电路150感测(例如,通过感测放大器感测及/或存储,如本文中所描述)的存储器单元的行或子行的位向量的单个位进行操作。类似地,多个共享I/O线155的数据路径中的计算单元中的逻辑条124-1、…、124-N的多个计算组件131-1、131-2、…、131-M各自可作为单位元PE而对在阵列中感测的存储器单元的行及/或子行的位向量的单个位进行操作。
启用I/O线可包含启用(例如,接通、激活)具有耦合到解码信号(例如,列解码信号)的栅极及/或耦合到所述I/O线的源极/漏极的晶体管。然而,实施例不限于不启用I/O线。例如,在数个实施例中,感测电路(例如,150)可用于在不启用阵列的列解码线的情况下执行操作。
然而,可启用多个共享I/O线155以便将数据值加载到所述多个共享I/O线155的数据路径中的计算单元中的多个计算组件131-1、131-2、…、131-M及/或逻辑条124-1、…、124-N(其中可更快地控制计算操作)。举例来说,在计算单元中的多个计算组件131-1、131-2、…、131-M及/或逻辑条124-1、…、124-N中,可以2ns的速度执行计算操作。此速度增强可归因于无需凭借用于触发阵列中的行的相关联时间(例如,60ns)将数据值移动回到行及/或子行中。
图1B是根据本发明的数个实施例的呈包含存储器装置(其具有在阵列的存储器库区段123-1、123-2、…、123-N本地的数据路径中的共享I/O线155)的计算系统的形式的设备的另一框图。举例来说,存储器库121-1可表示存储器装置120的实例存储器库。如图1B中所展示,存储器库121-1可包含多个主存储器列(水平展示为X)(例如,在实例DRAM存储器库中的16,384个列)。另外,存储器库121-1可划分成存储器库区段(例如,32个子阵列的象限)123-1、123-2、…、123-N。每一存储器库区段可与多个共享I/O线155的数据路径中的计算单元中的逻辑条124-1、…、124-N中的多个计算组件131-1、131-2、…、131-M相关联。存储器库区段123-1、…、123-N中的每一者可包含多个行(垂直展示为Y)(例如,每一区段可为实例DRAM存储器库中的包含32个子阵列的象限,每一子阵列各自可包含512行且每行包含16个子行)。实例实施例不限于本文所描述的列及行及子行的实例水平及/或垂直定向或所述列及行及子行的实例数目。
在一些实施例中,每一存储器库区段可具有与其相关联的多个共享I/O线155的数据路径中的计算单元中的多个计算组件131-1、131-2、…、131-M及逻辑条124-1、…、124-N。存储器库121-1可包含与每一存储器区段及/或子阵列相关联以引导对加载到多个共享I/O线155的数据路径中的计算单元中的逻辑条124-1、…、124-N中的多个计算组件131-1、131-2、…、131-M的数据值的移动(例如,经由移动组件171)及/或操作的控制器140及/或数个控制器。
图2是说明根据本发明的数个实施例的存储器装置120的电路的示意图,所述电路包含感测放大器206及计算组件231,其在各种实施例中各自可包含于感测电路250及/或逻辑条124中。感测电路250可对应于图1A中所展示的感测电路150。
如图2的实例实施例中所展示,存储器单元可包含存储元件(例如,电容器)及存取装置(例如,晶体管)。举例来说,第一存储器单元可包含晶体管202-1及电容器203-1,且第二存储器单元可包含晶体管202-2及电容器203-2等。在此实施例中,存储器阵列230是1T1B(一个晶体管一个电容器)存储器单元的DRAM阵列,但可使用其它配置的实施例(例如,每存储器单元具有两个晶体管及两个电容器的2T2C)。在数个实施例中,存储器单元可为破坏性读取存储器单元(例如,读取通过单元存储的数据损毁所述数据使得最初通过单元存储的数据在被读取之后刷新)。
存储器阵列230的单元可布置成通过存取(字)线204-X(行X)、204-Y(行Y)等耦合的行及通过互补感测线对(例如,图2中所展示的数字线DIGIT(D)及DIGIT(D)_)耦合的行。对应于每一对互补感测线的个别感测线还可分别被称为数字线205-1DIGIT(D)及205-2DIGIT(D)_或图3中的对应元件符号。尽管图2中展示仅一对互补数字线,但本发明的实施例不限于此,且存储器单元阵列可包含额外列的存储器单元及数字线(例如,4,096、8,192、16,384等)。
尽管行及列是说明为正交定向在平面中,但实施例不限于此。举例来说,行及列可相对于彼此以任何可行三维配置定向。举例来说,行及列可相对于彼此定向成任何角度,可定向于大体上水平平面中或大体上垂直平面中,及/或可定向成折叠拓扑以及其它可能三维配置。
存储器单元可耦合到不同数字线及字线。举例来说,晶体管202-1的第一源极/漏极区域可耦合到数字线205-1(D),晶体管202-1的第二源极/漏极区域可耦合到电容器203-1且晶体管202-1的栅极可耦合到字线204-Y。晶体管202-2的第一源极/漏极区域可耦合到数字线205-2(D_),晶体管202-2的第二源极/漏极区域可耦合到电容器203-2且晶体管202-2的栅极可耦合到字线204-X。如图2中所展示的单元板可耦合到电容器203-1及203-2中的每一者。单元板可为共同节点,在各种存储器阵列配置中可将参考电压(例如,接地)施加到所述共同节点。
根据本发明的数个实施例,存储器阵列230经配置以耦合到感测电路250。在此实施例中,感测电路250包括对应于相应存储器单元列(例如,耦合到相应互补数字线对)的感测放大器206及计算组件231。然而,在一些实施例中,用于通过逻辑条的计算组件执行的数据路径内计算操作的感测电路250可不包含感测电路250中的计算组件。感测放大器206可耦合到互补数字线对205-1及205-2。如果存在,那么计算组件231可经由传递门207-1及207-2耦合到感测放大器206。传递门207-1及207-2的栅极可耦合到运算选择逻辑213。
运算选择逻辑213可经配置以包含:传递门逻辑,其用于控制传递门以将未转置的互补数字线对耦合于感测放大器206与计算组件231之间;及交换门逻辑,其用于控制交换门以将经转置的互补数字线对耦合于感测放大器206与计算组件231之间。运算选择逻辑213还可耦合到互补数字线对205-1及205-2。运算选择逻辑213可经配置以基于选定操作控制传递门207-1及207-2的连续性。
感测放大器206可经操作以确定通过选定存储器单元存储的数据值(例如,逻辑状态)。感测放大器206可包括交叉耦合锁存器(其在本文中可被称为主要锁存器)。在图2中所说明的实例中,对应于感测放大器206的电路包括锁存器215,锁存器215包含耦合到一对互补数字线D 205-1及(D)_205-2的四个晶体管。然而,实施例不限于此实例。锁存器215可为交叉耦合锁存器(例如,例如n沟道晶体管(例如,NMOS晶体管)227-1及227-2的一对晶体管的栅极经由节点217-1及217-2与例如p沟道晶体管(例如,PMOS晶体管)229-1及229-2的另一对晶体管的栅极交叉耦合)。包括晶体管227-1、227-2、229-1及229-2的交叉耦合锁存器215可被称为主要锁存器。
在操作中,当感测(例如,读取)存储器单元时,数字线205-1(D)或205-2(D)_中的一者上的电压将略大于数字线205-1(D)或205-2(D)_中的另一者上的电压。可驱使ACT信号及RNL*信号降低以启用(例如,触发)感测放大器206。具有较低电压的数字线205-1(D)或205-2(D)_将接通PMOS晶体管229-1或229-2中的一者到大于PMOS晶体管229-1或229-2中的另一者的程度,借此驱使具有较高电压的数字线205-1(D)或205-2(D)_升高到大于另一数字线205-1(D)或205-2(D)_经驱使而升高的程度。
类似地,具有较高电压的数字线205-1(D)或205-2(D)_将接通NMOS晶体管227-1或227-2中的一者到大于NMOS晶体管227-1或227-2中的另一者的程度,借此驱使具有较低电压的数字线205-1(D)或205-2(D)_降低到大于另一数字线205-1(D)或205-2(D)_经驱使而降低的程度。因此,在短暂延迟后,具有略大电压的数字线205-1(D)或205-2(D)_通过源极晶体管驱动到供应电压VCC的电压,且另一数字线205-1(D)或205-2(D)_通过耗散晶体管驱动到参考电压(例如,接地)的电压。因此,交叉耦合NMOS晶体管227-1及227-1及PMOS晶体管229-1及229-2用作感测放大器对,其放大数字线205-1(D)及205-2(D)_上的差分电压且操作以锁存从选定存储器单元感测的数据值。
实施例不限于图2中所说明的感测放大器206配置。作为实例,感测放大器206可为电流模式感测放大器及单端感测放大器(例如,耦合到一个数字线的感测放大器)。此外,本发明的实施例不限于折叠数字线架构(例如图2中所展示的架构)。
感测放大器206可连同计算组件231一起操作以使用来自阵列的数据作为输入而执行各种运算。在数个实施例中,可在不经由数字线地址存取传送数据的情况下(例如,在未触发列解码信号使得经由局部I/O线将数据传送到阵列及感测电路外部的电路的情况下)将运算的结果存储回到阵列。因而,本发明的数个实施例可能够使用少于各种先前方法的功率执行运算及与所述运算相关联的计算功能。另外,因为数个实施例无需跨局部及全局I/O线传送数据以便执行计算功能(例如,在存储器与离散处理器之间),所以相较于先前方法,数个实施例可实现增大(例如,更快)的处理能力。
感测放大器206可进一步包含平衡电路214,平衡电路214可经配置以使数字线205-1(D)及205-2(D)_平衡。在此实例中,平衡电路214包括耦合于数字线205-1(D)与205-2(D)_之间的晶体管224。平衡电路214还包括各自具有耦合到平衡电压(例如,VDD/2)的第一源极/漏极区域的晶体管225-1及225-2,其中VDD是与阵列相关联的供应电压。晶体管225-1的第二源极/漏极区域可耦合到数字线205-1(D),且晶体管225-2的第二源极/漏极区域可耦合到数字线205-2(D)_。晶体管224、225-1及225-2的栅极可耦合在一起且耦合到平衡(EQ)控制信号线226。因而,激活EQ启用晶体管224、225-1及225-2,这将数字线205-1(D)及205-2(D)_有效地短接在一起且短接到平衡电压(例如,VCC/2)。
尽管图2展示包括平衡电路214的感测放大器206,但实施例不限于此,且平衡电路214可与感测放大器206离散地实施,以与图2中所展示的配置不同的配置实施,或完全不实施。
如下文进一步描述,在数个实施例中,感测电路250(例如,感测放大器206及计算组件231)可经操作以执行选定运算且在不经由局部或全局I/O线传送来自感测电路的数据的情况下(例如,在不经由例如激活列解码信号执行感测线地址存取的情况下)首先将结果存储于感测放大器206或计算组件231中的一者中。
然而,进一步关于本文中所描述的实施例,具有感测放大器206的感测电路250(其在一些实施例中还可包含如图2中所展示的计算组件231)还可将来自阵列中的存储器单元的经多路复用列的存储器单元耦合到如结合图4所论述的在阵列本地的多个共享I/O线455的数据路径中的计算单元460中的计算组件431-1、…、431-Z及/或逻辑条424-1、…、424-N。以此方式,计算组件431-1、…、431-Z及/或逻辑条424-1、…、424-N可经由选择逻辑(结合图3到7所论述)通过多个共享I/O线455间接耦合到列的存储器单元。
运算(例如,涉及数据值的布尔逻辑运算)的执行是基本且常用的。布尔逻辑运算用于许多更高阶运算中。因此,可通过改进运算实现的速度及/或功率效率可转变成更高阶功能性的速度及/或功率效率。
如图2中所展示,计算组件231还可包括锁存器(其在本文中可被称为次要锁存器264)。次要锁存器264可以类似于上文关于主要锁存器215所描述的方式的方式配置及操作,唯以下除外:包括在次要锁存器中的交叉耦合的p沟道晶体管(例如,PMOS晶体管)对可具有耦合到供应电压212-2(例如,VDD)的其相应源极,且次要锁存器的交叉耦合的n沟道晶体管(例如,NMOS晶体管)对可具有可选择地耦合到参考电压212-1(例如,接地“GND”)的其相应源极,使得连续地启用次要锁存器。计算组件231的配置不限于图2中所展示的配置且各种其它实施例是可行的,例如用作结合图4的逻辑条424-1、…、424-N描述的计算组件431-1、…、431-Z。
如本文中所描述,存储器装置(例如,图1A中的120)可经配置以经由数据总线(例如,156)及控制总线(例如,154)耦合到主机(例如,110)。存储器装置120中的存储器库121可包含存储器单元的多个存储器库区段(图1B中的123-1、…、123-N)。存储器库121可包含经由存储器单元的多个列(图1B)耦合到多个阵列的感测电路(例如,图1A中的150及图2及3中的对应元件符号)。感测电路可包含耦合到列中的每一者的感测放大器及/或计算组件(例如,在图2中分别为206及231)。
每一存储器库区段123可与在阵列230本地的多个共享I/O线(图1B中的155)的数据路径中的计算单元中的多个逻辑条(例如,图1B中的124-0、124-1、…、124-N-1)相关联。耦合到存储器库的控制器(例如,图1A及1B中的140)可经配置以如本文中所描述那样引导数据值移动到阵列230本地的共享I/O线355/455(图3及4)的数据路径中的计算单元360/460(图3及4)中的逻辑条424(图4)中的计算组件431(图4)。
存储器装置可包含具有各自可对应于子行(例如,图4中的428-1、…、428-16)中的存储器单元的多个列(图1B)的数目的多个计算组件(例如,图4中的431-1、…、431-Z)的逻辑条(例如,图1B中的124及图4中的424)。如结合图3进一步论述,感测电路250中的数个感测放大器206及/或计算组件231可(例如,经由图3中的列选择电路358-1及358-2多路复用)可选择地耦合到多个共享I/O线355(图3)。列选择电路可经配置以通过可选择地耦合到多个(例如,四个、八个及十六个及其它可能性)感测放大器及/或计算组件而可选择地感测阵列的存储器单元的特定列中的数据。
在一些实施例中,存储器库中的多个逻辑条(例如,图1B中的124-1、…、124-N)的数目可对应于所述存储器库中的图1B中的存储器库区段123-1、…、123-N(例如,具有多个子阵列的象限)的数目。替代地或另外,存储器库中的多个逻辑条的数目可对应于DRAM阵列的行中的多个子行的数目。逻辑条可包含在阵列230本地的共享I/O线455(图4)的数据路径中的多个计算组件431-1、…、431-Z(图4),其可如同图2中所展示的计算组件231那样配置及/或操作。如图3中将展示,从阵列的行或子行感测的数据值可通过列选择逻辑经由多个共享I/O线355(图3)并行移动到多个共享I/O线355/455(图3及4)的数据路径的计算单元360/460(图3及4)中的多个计算组件431(图4)。在一些实施例中,数据量可对应于多个共享I/O线的1K位宽度,其还可对应于子行的存储器单元及/或数据值的数目。
在各种实施例中,连接电路232-1可例如在217-1处耦合且连接电路232-2可在217-1处耦合到主要锁存器215(例如,感测放大器206用作与逻辑条中的计算组件231相关联的锁存器)以用于移动逻辑条的已对其执行运算的经感测、经存储及/或数据值。数据值可直接(例如,作为位串行链路)经由连接电路232-1及232-2移动到另一逻辑条中的选定锁存器及/或计算组件231(例如,未经由共享I/O线移动)。
尽管图2将连接电路232-1及232-2展示为分别在主要锁存器215的217-1及217-2处耦合,但实施例不限于此。举例来说,连接电路232-1及232-2可例如耦合到次要锁存器264(例如,计算组件231)以用于将数据值经由连接电路232-1及232-2移动到另一逻辑条中的选定锁存器及/或计算组件231。举例来说,此类连接电路232-1及232-2可实现(例如,如通过控制器140引导)从第一逻辑条中的锁存器及/或计算组件到第二逻辑条中的对应锁存器及/或计算组件的数据值(位)的级联以用于在多个逻辑条中执行脉动运算序列(例如,如结合图9C描述)。
如本文中所描述,存储器单元阵列可包含DRAM存储器单元的实施方案,其中控制器经配置以响应于命令而经由共享I/O线将数据从源位置移动(例如,复制、传送及/或输送)到目的地位置。在各个实施例中,所述源位置可在第一存储器库中且所述目的地位置可在阵列230本地的共享I/O线355(图3)的数据路径中的计算单元360(图3)中。
如图3中所描述,设备可经配置以将数据从包含与第一数目个感测放大器及计算组件相关联的特定行(例如,图3中的319)及列地址的源位置移动(例如,复制、传送及/或输送)到共享I/O线(例如,图3中的355)。另外,设备可经配置以将数据移动到包含与共享I/O线355(图3)的数据路径中的计算单元360(图3)相关联的特定逻辑条424(图4)的目的地位置。如读者将了解,每一共享I/O线355(图3)可为单个线或可包含一对互补共享I/O线(例如,图3中的共享I/O线及共享I/O线*)。在一些实施例中,2K个共享I/O线(例如,互补共享I/O线对)可经配置为2K位宽共享I/O线。在一些实施例中,1K个共享I/O线(例如,互补共享I/O线对)可经配置为1K位宽共享I/O线。
图3是说明根据本发明的数个实施例的用于阵列的数据路径中的多个共享I/O线的电路的示意图。图3展示各自耦合到相应互补共享I/O线355对(例如,共享I/O线及共享I/O线*)的八个感测放大器(例如,分别在306-0、306-1、…、306-7处展示的感测放大器0、1、…、7)。图3还展示各自经由相应传递门307-1及307-2以及数字线305-1及305-2耦合到相应感测放大器(例如,如对于感测放大器0以306-0展示)的八个计算组件(例如,在331-0、331-1、…、331-7处展示的计算组件0、1、…、7)。传递门可如图2中所展示那样连接且可通过运算选择信号Pass加以控制。举例来说,选择逻辑的输出可耦合到传递门307-1及307-2的栅极以及数字线305-1及305-2。在一些实施例中,对应感测放大器及计算组件对可促进形成在350-0、350-1、…、350-7处指示的感测电路。
可将存在于所述对互补数字线305-1及305-2上的数据值加载到感测放大器306-0中,如结合图2所描述。在一些实施例中,当启用传递门307-1及307-2时,可将所述对互补数字线305-1及305-2上的数据值从感测放大器传递到计算组件(例如,306-0到331-0)。当触发感测放大器306-0时所述对互补数字线305-1及305-2上的数据值可为通过感测放大器306-0存储的数据值。
图3中的感测放大器306-0、306-1、…、306-7可各自对应于图2中所展示的感测放大器206。图3中所展示的计算组件331-0、331-1、…、331-7可各自对应于图2中所展示的计算组件231。单独感测放大器、一个感测放大器与一个计算组件的组合可促成耦合到共享I/O线355(其由共享I/O线355的数据路径中的计算组件360的数个逻辑条共享)的DRAM存储器子阵列325的部分的感测电路(例如,350-0、350-1、…、350-7)。
图3中所说明的实施例的配置是为清楚目的而展示且不限于此类配置。例如,图3中所说明的用于感测放大器306-0、306-1、…、306-7连同计算组件331-0、331-1、…、331-7及共享I/O线355的配置不限于感测电路的感测放大器306-0、306-1、…、306-7及/或计算组件331-0、331-1、…、331-7的组合的一半形成于存储器单元列322(未展示)上方且一半形成于存储器单元列322下方。形成经配置以耦合到共享I/O线的感测电路的感测放大器及/或计算组件的此类组合的数目还不限于八个。举例来说,当每行的子行数目及/或逻辑条的数目是16个时,形成经配置以耦合到共享I/O线的感测电路的感测放大器及/或计算组件的数目可为16个。另外,共享I/O线355的配置不限于分成单独耦合两组互补数字线305-1及305-2中的每一者的两个部分,共享I/O线355还不限于定位于形成感测电路的感测放大器及/或计算组件的组合的中间(例如,而非定位于感测放大器与计算组件的组合的任一端处)。
图3中所说明的电路还展示列选择电路358-1及358-2,其经配置以通过相对于子阵列325的特定列322、与其相关联的互补数字线305-1及305-2以及共享I/O线355多路复用而实施数据移动操作(例如,如通过图1A及1B中所展示的控制器140引导)。举例来说,列选择电路358-1具有经配置以与对应列(例如列0(332-0)、列2、列4及列6)耦合的选择线0、2、4及6。列选择电路358-2具有经配置以与对应列(例如列1、列3、列5及列7)耦合的选择线1、3、5及7。在各个实施例中,结合图3所描述的列选择电路358可表示通过多路复用器(例如,8路多路复用器、16路多路复用器等)体现及包含在多路复用器中的功能性的至少部分。
控制器140可耦合到列选择电路358以控制选择线(例如,选择线0)以存取通过感测放大器、计算组件存储及/或存在于互补数字线对(例如,305-1及305-2,当经由来自选择线0的信号激活选择晶体管359-1及359-2时)上的数据值。激活选择晶体管359-1及359-2(例如,如通过控制器140引导)实现列0(322-0)的感测放大器306-0、计算组件331-0及/或互补数字线305-1及305-2的耦合以将数字线0及数字线0*上的数据值移动到共享I/O线355。举例来说,所述经移动的数据值可为来自存储(高速缓冲存储)于感测放大器306-0及/或计算组件331-0中的特定行319的数据值。类似地可通过控制器140激活适当选择晶体管而选择来自列0到列7中的每一者的数据值。
此外,启用(例如,激活)选择晶体管(例如,选择晶体管359-1及359-2)可启用特定感测放大器及/或计算组件(例如,分别为306-0及/或331-0)以与共享I/O线355耦合使得可将通过放大器及/或计算组件存储的数据值移动到共享I/O线355(例如,放置于共享I/O线355上及/或传送到共享I/O线355)。在一些实施例中,每次选择一个列(例如,列322-0)以耦合到特定共享I/O线355以移动(例如,复制、传送及/或输送)经存储数据值。在图3的实例配置中,共享I/O线355是说明为共享、差分I/O线对(例如,共享I/O线及共享I/O线*)。因此,选择列0(322-0)可从行(例如,行319)的子行产生两个数据值(例如,具有值0及/或1的两个位)及/或可产生如通过与互补数字线305-1及305-2相关联的感测放大器及/或计算组件存储的两个数据值。这些数据值可并行输入到共享差分I/O线355的每一共享、差分I/O对(例如,共享I/O线及共享I/O线*)。
图4是说明根据本发明的数个实施例的通过在阵列130(图1A)本地的数据路径中的多个共享I/O线455耦合到具有多个逻辑条424-1、…、424-Z的计算单元460的阵列130的存储器库区段423的框图。在图4的实施例中,存储器库区段423(例如,具有多个存储器库象限)经展示为每象限具有多个子阵列425-1、…、425-32。在图4中,存储器库象限1中说明32个子阵列。然而,实施例不限于此实例。此实例将存储器库区段423展示为具有16K个列,其可(例如,经由在358-1及358-2处展示且结合图3描述的列选择电路)通过每行的16个子行428-1、…、428-16多路复用到共享I/O线455。在一些实施例中,每十六个列及经耦合存储器单元可提供可作为子行作为1K个位的群组并行移动到计算单元460的数据值。替代地或另外,连续1K个列及经耦合存储器单元可提供可作为子行作为1K个位的群组并行移动到计算单元460的1K个数据值。在任一实施例中,除其它可能实施例以外,还可在16个循环中通过共享I/O线455将1K个位的群组循序移动到16个指定逻辑条424-1、…、424-N的1K个指定计算组件431-1、…、431-Z。
举例来说,来自第一子行428-1的序列中的第一感测放大器及/或存储器单元的位可经引导(例如,通过控制器140)以通过第一逻辑条424-1中的计算组件序列中的第一计算组件431-1或相关联锁存器存储。举例来说,来自第一子行428-1的序列中的第二感测放大器及/或存储器单元的位可经引导以通过第一逻辑条424-1中的计算组件序列中的第二计算组件431-2或相关联锁存器存储。此外,来自第二子行428-2的序列中的第一感测放大器及/或存储器单元的位可经引导以通过第二逻辑条424-2中的计算组件序列中的第一计算组件431-1或相关联锁存器存储。来自第二子行428-2的序列中的第二感测放大器及/或存储器单元的位可经引导以通过第二逻辑条424-2中的计算组件序列中的第二计算组件或相关联锁存器存储。对应于每行的子行428-2、428-1、…、428-16的序列中的每一感测放大器及/或存储器单元的位可类似地经指定以通过逻辑条424-1、…、424-N的序列中的对应计算组件或相关联锁存器存储(例如,来自子行428-1的数据值移动到逻辑条424-1,来自子行428-2的数据值移动到逻辑条424-2,等等)。移动可经由共享I/O线455引导到指定逻辑条,其可提供计算单元460的1K位宽数据路径。
在图4的实例中,每一逻辑条424-1、…、424-N可具有多个计算组件431-1、…、431-Z,如本文中已结合图2的感测电路250描述的计算组件231。在一些实施例中,多个逻辑条424-1、…、424-N中的每一者可经配置以使用多个计算组件431-1、…、431-Z执行计算功能。在一些实施例中,多个逻辑条424-1、…、424-Z中的每一者可使用多个计算组件431-1、…、431-Z执行不同逻辑运算。举例来说,多个逻辑条424-1、…、424-Z中的至少一者可经配置以执行AND运算且多个逻辑条424-1、…、424-Z中的至少一者可经配置以执行NOR运算以及逻辑运算的各种组合及/或序列。
在一些实施例中,与存储器库区段相关联的控制器140(图1A)可执行微码指令以引导1K个数据值从与特定经存取子行连接的多个子阵列425-1、…、425-32中的对应1K个经多路复用列并行移动到计算单元460中的特定逻辑条424-1、…、424-N的特定计算组件431-1、…、431-Z。
在一些实施例中,可使用共享I/O线以将1K个数据值连接到多个逻辑条424-1、…、424-N中的相应一者中的多个计算组件431-1、…、431-Z中的相应一者。通过实例且非限制地,可将1K位的数据值并行移动到与每一子行相关联的特定逻辑条。在各种实施例中,例如可存在与存储器库区段423的4个象限中的每一者中的32个子阵列425-1、…、425-32中的每一者相关联的计算单元460或计算单元可在子阵列、象限及/或存储器库区段的各种组合之间共享。可根据来自控制器140(图1A)的微码指令对加载到计算单元460的逻辑条424-1、…、424-N中的多个计算组件431-1、…、431-Z的数据值进行操作以对所述数据值执行运算(例如,AND、OR、NOR、XOR、加法、减法、乘法、除法等),如本文中已结合图2的感测电路250描述。
如本文中所描述,举例来说,一旦第一子行428-1的1K个数据值移动(例如,加载)到计算单元460的第一逻辑条424-1,便可在数据值从第二子行428-2移动到计算单元460的第二逻辑条424-2之前及/或大体上同时对此类数据值开始计算操作。可根据通过控制器140(图1A)执行的微码指令更快地(例如,以约2ns的速度)控制在计算单元的逻辑条中执行的此类操作而无需将所述数据值移动回到阵列130(图1A)的行中。举例来说,可使用计算单元460以更快速度(相较于触发及存取阵列130(图1A)中的行所需的实例时间(例如,约60ns))执行计算操作。如结合图2描述,连接电路232-1及232-2可能够在逻辑条之间移动逻辑条的已对其执行运算的经感测、经存储及/或数据值而未经由共享I/O线移动
因此,在各种实施例中,存储器装置120可包含共享为用于与存储器单元阵列130相关联的数据路径内计算操作的数据路径的多个I/O线。多个共享I/O线可将阵列的行的第一子行(例如,428-1)经由感测电路(例如,350)可选择地耦合到数据路径中的第一计算组件(例如,431-1)以将第一数据值从第一子行移动到第一计算组件。多个共享I/O线可将相应行的第二子行(例如,428-2)经由感测电路可选择地耦合到数据路径中的第二计算组件(例如,对应于第一逻辑条中的第一计算组件的位置的计算组件)以将第二数据值从第二子行移动到第二计算组件。举例来说,第一逻辑条(例如,424-1)可包含第一计算组件且第二逻辑条(例如,424-2)可包含第二计算组件。如本文中所描述,可使用第一计算组件对来自第一子行的第一数据值执行运算,大体上同时将第二数据值从第二子行移动到第二计算组件。
在各种实施例中,数据路径可进一步包含:第一逻辑条(例如,424-1),其可包含对应于第一子行(例如,428-1)的数个多个存储器单元(未展示)的数个多个第一计算组件(例如,431-1、…、431-Z);及第二逻辑条(例如,424-2),其可包含对应于第二子行(例如,428-2)的数个多个存储器单元的数个多个第二计算组件。多个逻辑条(例如,424-1、…、424-N)的数目可对应于相应行的多个子行(例如,428-1、…、428-16)的数目。计算单元(例如,460)可包含多个逻辑条(例如,424-1、…、424-N),其可各自包含多个计算组件(例如,431-1、…、431-Z),其中多个计算组件中的每一者可与阵列本地的多个共享I/O线455中的至少一者相关联(例如,可选择地耦合到其)。多个共享I/O线的数目可对应于相应行的子行的多个存储器单元的数目(例如,子行或行的每8或16个存储器单元及/或列单独共享I/O线以及其它可能配置)。逻辑条(例如,424-1)可包含对应于耦合到相应逻辑条的子行的数个多个存储器单元的数个多个计算组件(例如,431-1、…、431-Z)。
图5是说明根据本发明的数个实施例的存储器装置520的控制器540的实例的框图。在一些实施方案中,图5的框图提供具备PIM能力的装置(例如图1A及1B中的存储器装置120)的一个实例的部分的更多细节。在图5的实例中,控制器540-1、…、540-7(通称为控制器540)可与具备PIM能力的装置520的每一存储器库521-1、…、521-7(通称为存储器库521)相关联。在图5的实例中展示八个存储器库。然而,实施例不限于此实例数目。举例来说,控制器540可表示图1A中所展示的控制器140。每一存储器库可包含一或多个存储器单元阵列(未展示)。举例来说,每一存储器库可包含一或多个阵列(例如图1A中的阵列130)且可包含如图1A中所展示的解码器、其它电路及/或寄存器。在图5中所展示的实例存储器装置520中,控制器540-1、…、540-7经展示为具有控制逻辑531-1、…、531-7、序列发生器532-1、…、532-7及时序电路533-1、…、533-7作为存储器装置520的一或多个存储器库521上的控制器540的部分。具备PIM能力的装置520可表示图1A中所展示的存储器装置120的部分。
如图5中所展示,存储器装置520可包含用以在具备PIM能力的装置520处接收数据、地址、控制信号及/或命令的高速接口(HSI)541。在各个实施例中,HSI 541可耦合到与具备PIM能力的装置520相关联的存储器库仲裁器545。HSI 541可经配置以从主机(例如,图1A中的110)接收命令及/或数据。如图5中所展示,存储器库仲裁器545可耦合到多个存储器库521-1、…、521-7。
在图5中所展示的实例中,控制逻辑531-1、…、531-7可呈负责提取及执行来自每一存储器库521-1、…、521-7的部分的存储器单元阵列(例如,图1A中的阵列130)的机器指令(例如,微码指令)的微码引擎的形式。序列发生器532-1、…、532-7还可呈微码引擎的形式。替代性地,控制逻辑531-1、…、531-7可呈特大指令字(VLIW)类型处理资源的形式且序列发生器532-1、…、532-7及时序电路533-1、…、533-7可呈状态机及晶体管电路的形式。
控制逻辑531-1、…、531-7可将微码指令解码成通过序列发生器532-1、…、532-7实施的函数调用(例如,微码函数调用(uCODE))。图6说明在图6中展示为642的控制器540的另一实施例,其说明根据本发明的实施例的序列发生器的更详细部分。微码函数调用可为序列发生器532-1、…、532-7接收及执行以引起存储器装置520使用感测电路(例如图1A中的感测电路150)或使用分别在图4及6中所展示的计算单元460及660的计算组件431-1、…、431-Z及631-1、…、631-Z执行特定逻辑运算的操作。时序电路533-1、…、533-7可提供时序以通过分别在图4及6中所展示的计算单元460及660的逻辑条424-1、…、424-N及624-1、…、624-N协调逻辑运算的执行及/或负责提供对阵列(例如图1A中的阵列130)的无冲突存取。
如结合图1A所描述,控制器540-1、…、540-7可经由图5中展示为555-1、…、555-7的控制线及数据路径耦合到与存储器单元阵列相关联的感测电路150、计算单元460/660及/或额外逻辑电路170(包含高速缓冲存储器、缓冲器、感测放大器、扩展行地址(XRA)锁存器及/或寄存器(图5中所示为550/570-1、…、550/570-7))。因而,图1A、4及6中所展示的感测电路150、计算单元460/660及逻辑170可(例如,使用在图5中的555-1、…、555-7处展示的共享I/O线及/或其它I/O电路)与存储器单元阵列130相关联。控制器540-1、…、540-7可控制阵列的正规DRAM操作(例如读取、写入、复制及/或擦除操作等)。另外,然而,通过控制逻辑531-1、…、531-7检索及执行的微码指令及通过序列发生器532-1、…、532-7接收及执行的微码函数调用引起图1A、4及6中所展示的感测电路150及/或计算单元460/660执行额外逻辑运算(例如加法、乘法或(作为更特定实例)布尔运算,例如AND、OR、XOR等),其不同于常规DRAM读取及写入操作(例如,比常规DRAM读取及写入操作更复杂)。因此,在此实例存储器装置520中,可在具备PIM能力的装置的存储器库521-1、…、521-7上执行微码指令执行及/或逻辑运算。
在各种实施例中,控制逻辑531-1、…、531-7、序列发生器532-1、…、532-7及时序电路533-1、…、533-7可操作以针对DRAM阵列产生操作循环序列及/或引导存储器装置520上(例如,存储器库521-1、…、521-7上,包含在共享I/O线455-1、…、455-7的数据路径中的计算单元460/660中)的运算(例如,逻辑运算)的执行。在具备PIM能力的装置实例中,每一序列可经设计以执行一起实现特定功能的运算(例如布尔逻辑运算AND、OR、XOR等)。举例来说,运算序列可重复执行(1)位加法的逻辑运算以计算多位总和。在另一实例中,用于运算序列的指令可经执行以执行数个α混合图形操作以及各种其它类型的操作。可将每一运算序列馈送到耦合到时序电路533-1、…、533-7的先进/先出(FIFO)缓冲器中以提供与和图1A中所展示的存储器单元阵列130(例如,DRAM阵列)相关联的感测电路150、计算单元460/660及/或额外逻辑电路170的时序协调。
在图5中所展示的实例具备PIM能力的存储器装置520中,时序电路533-1、…、533-7可提供时序且可从四(4)个FIFO队列提供对阵列的无冲突存取及/或可协调计算单元460/660中的运算的时序。在此实例中,一个FIFO队列可支持阵列计算,一个FIFO队列用于微码(例如,Ucode)指令提取,一个FIFO队列可用于与共享I/O线、逻辑条、计算单元、连接电路等相关的数据路径的控制,且一个FIFO队列用于DRAMI/O。控制逻辑531-1、…、531-7及序列发生器532-1、…、532-7两者都可产生可经由FIFO接口投送回到存储器库仲裁器545的状态信息。存储器库仲裁器545可汇总此状态数据且例如经由HSI 541将其报告回到主机110。
图6是说明存储器装置520(图5)的控制器642的部分的另一实例的框图。除其它功能以外,控制器642还经配置以根据本发明的数个实施例使用在阵列130(图1A)本地的数据路径中的共享I/O线655控制数据值到具有多个逻辑条624-1、…、624-N的计算单元660的移动。在图6的实例中,控制器642的部分是控制器的序列发生器部分(例如图5中的序列发生器532)的实例。
在图6的实例实施例中,控制器642的序列发生器部分可对三种类别的微码指令(阵列操作、计算组件操作及控制操作)操作。如601处所展示,位值可提供为子阵列掩模的部分以识别存储器库区段的象限中的特定子阵列,如上文所描述。在602-1及602-2处,与如结合图2的感测电路250描述且在图7中更详细展示为731(A)及706(B)的主要锁存器及次要锁存器相关联的A及B地址指针提供阵列130(图1A)中的数据值的物理地址的指针。在603处,位值可另外提供到阵列130(图1A)中的额外索引。如图6的实例中所展示,地址指针602-1及602-2以及索引603用于存取阵列130(图1A)的特定行及感测线(例如,对行字线及位线)。
本文中所描述的多个共享I/O线655可将阵列130(图1A)连接到在阵列本地的共享I/O 655的数据路径中的计算单元660。将指令从控制器642提供到所述计算单元以将来自共享I/O线655的数据值加载到所述计算单元660的给定逻辑条624-1、…、624-N中的给定计算组件631-1、…、631-Z。计算单元660的掩模条641可能够选择感测线及计算组件值以用于读取或写入。
在604处,来自布线或(wired OR)逻辑配置的条件代码可提供运用计算单元660的布线或运算的位值结果。在611处,位值可提供寄存器地址作为用于计算组件操作指令的第二寄存器源的指针。在612处,位值可指示计算单元660的逻辑条624-1、…、624-N的寄存器索引以及用于计算组件操作指令的第二寄存器源的寄存器地址指针611。
图7是说明根据本发明的数个实施例的逻辑条(例如,如在124、424及624处展示且结合图1B、4及6描述)的计算组件731的示意图。图7还为说明根据本发明的数个实施例的能够实施逻辑运算的计算单元460/660电路的示意图。
在一些实施例中,图7展示直接耦合到一对互补共享I/O线755-1及755-2(例如,如结合图3中的共享I/O线355展示及描述)的锁存器706及/或逻辑运算选择逻辑713及经由传递门707-1及707-2耦合到锁存器706的计算组件731。通过图解且非限制地,锁存器706在图7中展示为直接耦合到所述对互补共享I/O线755-1及755-2。举例来说,共享I/O线可为单个共享I/O线755或可包含图7中所展示的所述对互补共享I/O线。在各种实施例中,共享I/O线的任一实施例可选择地及/或直接耦合到锁存器706以载入(例如,存储)来自阵列的第一行的第一子行的第一数据值及/或可选择地及/或直接耦合到计算组件731以加载(例如,存储)来自第二行的第二子行的第二数据值以能够通过计算组件731使用两个经存储数据值执行逻辑运算。
在一些实施例中,可存在与计算组件731相关联的多个锁存器706,使得锁存器可在各种实施例中可选择地、直接及/或间接耦合到共同I/O线以将数据值加载到锁存器中的每一者,数据值可接着(例如,如通过控制器引导)通过相关联计算组件可选择地用于执行多个逻辑运算(例如,如通过锁存器数目的平方而确定)。因此,传递门707-1及707-2可在各种实施例中用于将锁存器706、计算组件731及/或逻辑运算选择逻辑713直接及/或间接耦合到彼此及/或将共享I/O线755间接连接到锁存器706、计算组件731及/或逻辑运算选择逻辑713。
图7中所展示的锁存器706可以类似于结合图2展示及描述的如与感测电路250相关联的感测放大器206(例如,主要锁存器)的方式运作。图7中所展示的计算组件731可类似于图2中所展示的如与感测电路250相关联的计算组件231(例如,次要锁存器)运作。图7中所展示的逻辑运算选择逻辑713可类似于图2中所展示的与感测电路250相关联的逻辑运算选择逻辑213运作。传递门707-1及707-2的栅极可由逻辑运算选择逻辑713信号(例如,Pass)加以控制。举例来说,逻辑运算选择逻辑713的输出可耦合到传递门707-1及707-2的栅极。此外,计算组件731可包括经配置以使数据值向左及向右移位的可载入移位寄存器。
根据图7中所说明的实施例,计算组件731可包括经配置以使数据值向左及向右移位的可载入移位寄存器的相应阶段(例如,移位单元)。举例来说,如图7中所说明,移位寄存器的每一计算组件731(例如,级)包括一对右移位晶体管781及786、一对左移位晶体管789及790以及一对反相器787及788。可将信号PHASE 1R、PHASE2R、PHASE 1L及PHASE 2L施加到相应控制线782、783、791及792以启用/停用对应计算组件731的锁存器上与根据本文中所描述的实施例执行逻辑运算及/或移位数据相关联的反馈。
图7中所展示的计算单元460/660电路展示耦合到数个逻辑选择控制输入控制线(包含ISO、TF、TT、FT及FF)的运算选择逻辑713。从逻辑选择控制输入控制线上的逻辑选择控制信号的条件以及在经由断言ISO控制信号启用隔离晶体管750-1及750-2时存在于互补共享I/O线对755-1及755-2上的数据值而确定从多个逻辑运算的逻辑运算选择。
根据各个实施例,运算选择逻辑713可包含四个逻辑选择晶体管:耦合于交换晶体管742的栅极与TF信号控制线之间的逻辑选择晶体管762、耦合于传递门707-1及707-2的栅极与TT信号控制线之间的逻辑选择晶体管752、耦合于传递门707-1及707-2的栅极与FT信号控制线之间的逻辑选择晶体管754及耦合于交换晶体管742的栅极与FF信号控制线之间的逻辑选择晶体管764。逻辑选择晶体管762及752的栅极通过隔离晶体管750-1(其具有耦合到ISO信号控制线的栅极)耦合到真感测线。逻辑选择晶体管764及754的栅极通过隔离晶体管750-2(其还具有耦合到ISO信号控制线的栅极)耦合到互补感测线。
可经由传递门707-1及707-2将存在于互补共享I/O线对755-1及755-2上的数据值加载到计算组件731中。计算组件731可包括可加载移位寄存器。当传递门707-1及707-2开启时,互补共享I/O线对755-1及755-2上的数据值(“A”)经传递到计算组件731且借此经载入到所述可载入移位寄存器中。互补共享I/O线对755-1及755-2上的数据值可为在触发感测放大器706时通过感测放大器存储的数据值(“B”)。在此实例中,逻辑运算选择逻辑信号Pass为高以开启传递门707-1及707-2。
ISO、TF、TT、FT及FF控制信号可操作以基于感测放大器706中的数据值(“B”)及计算组件731中的数据值(“A”)选择逻辑函数进行实施。特定来说,ISO、TF、TT、FT及FF控制信号经配置以独立于存在于互补共享I/O线对755-1及755-2上的数据值而选择逻辑函数进行实施(尽管经实施逻辑运算的结果可取决于存在于互补共享I/O线对755-1及755-2上的数据值)。举例来说,ISO、TF、TT、FT及FF控制信号直接选择逻辑运算进行实施,这是因为存在于互补共享I/O线对755-1及755-2上的数据值并未传递通过用以操作传递门707-1及707-2的栅极的逻辑。
另外,图7展示经配置以在感测放大器706与计算组件731之间交换互补共享I/O线对755-1及755-2的定向的交换晶体管742。当交换晶体管742开启时,交换晶体管742的感测放大器706侧上的互补共享I/O线对755-1及755-2上的数据值相反耦合(oppositely-couple)到交换晶体管742的计算组件731侧上的互补共享I/O线对755-1及755-2,且借此加载到计算组件731的可加载移位寄存器中。
当ISO控制信号线被激活且TT控制信号在真共享I/O线上的数据值为“1”的情况下被激活(例如,为高)或FT控制信号在互补共享I/O线上的数据值为“1”的情况下被激活(例如,为高)时,逻辑运算选择逻辑713信号Pass可经激活(例如,为高)以开启传递门707-1及707-2(例如,传导)。
真共享I/O线上的数据值是“1”开启逻辑选择晶体管752及762。互补共享I/O线上的数据值是“1”开启逻辑选择晶体管754及764。如果ISO控制信号或对应共享I/O线(例如,特定逻辑选择晶体管的栅极耦合到的共享I/O线)上的相应TT/FT控制信号或数据值并非为高,那么传递门707-1及707-2将不会由特定逻辑选择晶体管开启。
当ISO控制信号线经激活且TF控制信号在真共享I/O线上的数据值为“1”的情况下经激活(例如,为高)或FF控制信号在互补共享I/O线上的数据值为“1”的情况下经激活(例如,为高)时,逻辑运算选择逻辑信号Pass*可经激活(例如,为高)以开启交换晶体管742(例如,传导)。如果对应共享I/O线(例如,特定逻辑选择晶体管的栅极耦合到的共享I/O线)上的相应控制信号或数据值并非为高,那么交换晶体管742将不会由特定逻辑选择晶体管开启。
Pass*控制信号不一定与Pass控制信号互补。可同时激活或撤销激活Pass及Pass*控制信号两者。然而,Pass及Pass*控制信号两者的同时激活使互补共享I/O对短接在一起,这可为应避免的破坏性配置。
图7中所说明的计算单元460/660电路经配置以从四个逻辑选择控制信号直接选择多个逻辑运算中的一者来实施(例如,逻辑运算选择并不取决于存在于互补共享I/O线对上的数据值)。逻辑选择控制信号的一些组合可引起传递门707-1及707-2及交换晶体管742两者同时开启,这将互补共享I/O线对755-1及755-2短接在一起。根据本发明的数个实施例,可通过图7中所说明的计算单元460/660电路实施的逻辑运算可为图8中展示的逻辑表中概述的逻辑运算。
图8是说明根据本发明的数个实施例的通过图7中所展示的计算组件731及相关联电路实施的可选择逻辑运算结果的逻辑表。可通过图7中所展示的多个共享I/O线755-1及755-2的数据路径中的计算单元460/660电路实施可选择逻辑运算结果。四个逻辑选择控制信号(例如,TF、TT、FT及FF)连同存在于互补共享I/O线上的特定数据值一起可用于选择多个逻辑运算中的一者进行实施,这涉及通过计算单元460/660电路的感测放大器706(例如,主要锁存器)及计算组件731(例如,次要锁存器)存储的起始数据值(“A”及“B”)。所述四个控制信号连同存在于互补共享I/O线上的特定数据值一起控制传递门707-1及707-2以及交换晶体管742的连续性,此又影响在触发之前/之后在计算组件731及/或感测放大器706中的数据值。可选择地控制交换晶体管742的连续性的能力促进实施涉及反相数据值(例如,反相操作数及/或反相结果)等的逻辑运算。
图8中所说明的逻辑表8-1展示在844处的栏A中所展示的通过计算组件731(例如,次要锁存器)存储的起始数据值及在845处的栏B中所展示的通过锁存器(例如,作为主要锁存器的感测放大器706)存储的起始数据值。逻辑表8-1中的其它3栏标头是指传递门707-1及707-2以及交换晶体管742的连续性,其可取决于四个逻辑选择控制信号(例如,TF、TT、FT及FF)的状态以及存在于互补共享I/O线对755-1及755-2上的特定数据值而分别控制为开启或关闭。“Not Open”栏对应于传递门707-1及707-2以及交换晶体管742都处于非传导条件,“Open True”对应于传递门707-1及707-2处于传导条件下且“Open Invert”对应于交换晶体管742处于传导条件。在逻辑表8-1中未反映对应于传递门707-1及707-2以及交换晶体管742都处于传导条件的配置,这是因为此导致感测线短接在一起。
经由传递门707-1及707-2以及交换晶体管742的连续性的选择性控制,逻辑表8-1的上部分的三个栏中的每一者可与逻辑表8-1的下部分的三个栏中的每一者组合以提供对应于九个不同逻辑运算的3×3=9个不同结果组合,如通过875处所展示的各种连接路径所指示。在图8中所说明的逻辑表8-2中概述可通过计算单元460/660电路实施的九个不同可选择逻辑运算(包含AND、OR、NOT、NOT、NAND、NOR及XOR逻辑运算)。
图8中所说明的逻辑表8-2的栏展示包含逻辑选择控制信号的状态的标头880。举例来说,在表8-2的行876中提供第一逻辑选择控制信号的状态,在表8-2的行877中提供第二逻辑选择控制信号的状态,在表8-2的行878中提供第三逻辑选择控制信号的状态且在表8-2的行879中提供第四逻辑选择控制信号的状态。在表8-2的行847中概述对应于结果的特定逻辑运算。
图9A到9C是说明根据本发明的数个实施例的用于在存储器装置中对数据值执行运算的数个调度策略的实施方案的示意图。图9A到9C中所说明的实施例希望说明经由共享I/O线及/或连接电路移动到在图中从上到下的连续时间帧(操作循环)中指示的计算单元960的数个逻辑条924的数据值(位)的配置。
在一些实施例中,操作循环可对应于先前描述为使用共享I/O线从对应于数个逻辑条的数个子行移动数据值的循序循环。因而,操作循环(在此期间通过一个子行的逻辑条的计算组件执行运算)的每一部分可例如持续约2ns,在此时间帧期间可针对下一操作循环起始从其它子行移动数据值。图9A及9B在924-1、924-2、…、924-16处说明16个逻辑条(其标记为L1、L2、…、L16),且在特定操作循环期间保持(存储)经移动数据值的每一逻辑条的1K个计算组件及/或锁存器由所述操作循环处所展示的整数1指示。
如本文中所描述,存储器装置(例如,图1A及1B中的120)可包含存储器单元阵列(例如,图1A中的130)及可选择地耦合到存储器单元阵列的感测电路(例如,图1A及2中的150及250)。存储器装置可进一步包含共享为用于与阵列相关联的数据路径内计算操作的数据路径的多个I/O线(例如,图1及3到7中分别为155、355、455、555、655、755)。多个共享I/O线可将感测电路可选择地耦合到共享I/O线的数据路径中的计算组件(例如,图2到4及6到7中的231、331、431、631、731)。
控制器(例如,图1A及1B中的140)可与阵列相关联。控制器140可经配置以经由感测电路引导第一数据值从阵列的第一行的第一子行(例如,图4中的428-1)经由共享I/O线移动到数据路径中的第一逻辑条(例如,图4中的424-1)的第一计算组件(例如,图4中的431-1)且经由感测电路引导第二数据值从第一行的第二子行(例如,图4中的428-2)经由共享I/O线移动到数据路径中的第二逻辑条(例如,图4中的424-2)的第二计算组件(例如,图4中的431-1)。
控制器140可经配置以在第一操作循环中引导第一数据值从第一子行(例如,图4中的428-1)移动且在第二操作循环中引导从第二子行(例如,图4中的428-2)移动第二数据值。举例来说,控制器可经配置以在第一操作循环中引导第一子行的数个多个数据值到第一逻辑条的对应数目个多个第一计算组件的经由共享I/O线的第一并行移动。控制器可经进一步配置以在第二操作循环中引导第二子行的数个多个数据值到第二逻辑条的对应数目个多个第二计算组件的经由共享I/O线的第二并行移动。控制器140可经配置以在第一操作循环中引导起始通过数个多个第一计算组件对并行移动到第一逻辑条的第一子行的对应数目个多个数据值执行运算(例如,逻辑运算)且在第二操作循环中引导起始通过数个多个第二计算组件对并行移动到第二逻辑条的第二子行的对应数目个多个数据值执行运算。
如图9A中所说明,控制器可经配置以实施“时钟同步(lockstep)”调度。因而,控制器可经配置以在第二操作循环中引导起始通过第一逻辑条(例如,逻辑条924-1)的计算组件执行运算,大体上同时起始通过第二逻辑条(例如,逻辑条924-2)的计算组件执行运算。举例来说,可在操作循环完成且逻辑条的所有计算组件及/或锁存器已使数据值从对应子行(例如,图4中的428-1、428-2、…、428-16)经由共享I/O线移动到其之后起始通过逻辑条L1、L2、…、L16中的计算组件执行运算。
替代地或另外,如图9B中所说明,控制器可经配置以实施“管线”调度。因而,控制器可经配置以在第一操作循环中引导起始通过第一逻辑条(例如,逻辑条924-1)的计算组件对第一子行(例如,图4中的428-1)的数个多个数据值执行运算,大体上同时在第二操作循环中将第二子行(例如,图4中的428-2)的数个多个数据值移动到第二逻辑条(例如,逻辑条924-1)。
举例来说,可在第一操作循环中将数据值从第一子行加载(存储)到逻辑条L1的计算组件及/或锁存器完成之后但在随后操作循环中起始对应于随后子行的逻辑条中的运算之前起始通过逻辑条L1中的计算组件执行运算。然而,在各种实施例中,在对逻辑条L1中的数据值执行运算的期间,可针对在第二操作循环中对第二逻辑条中的数据值执行运算而起始从下一子行移动数据值。
在特定操作循环中通过图9B中的特定逻辑条的计算组件及/或锁存器存储数据值之后,原始数据值及/或对两个原始数据值的逻辑运算的结果可保持于逻辑条中,如由整数1指示。因而,控制器可引导对存储及/或移动到相同逻辑条的数据值执行运算序列(例如,AND、OR、NOT、NOT、NAND、NOR及XOR逻辑运算的任何数目及/或组合),如在图9A及9B中所展示的任一时钟同步或管线调度中所展示。
因此,由于在L2中起始运算之前的一个操作循环在L1中起始运算且在L3中起始运算之前的一个操作循环在L2中起始运算等等,所以运算序列的执行的完成可交错。举例来说,如针对图9B的底部处的最后操作循环所展示,通过L1执行的运算序列在通过L2执行的运算序列完成之前的一个操作循环完成且通过L2执行的运算序列在通过L3执行的运算序列完成之前的一个操作循环完成,等等。
因此,控制器140可经配置以引导使用单个逻辑条的多个计算组件执行循序多个运算。可对从阵列的子行移动到逻辑条的数个多个数据值执行循序多个运算,所述逻辑条在完成循序多个运算中的最后一者之前对应于数个多个计算组件及/或循序多个运算的部分完成结果。
控制器140可经配置以应用调度策略(例如,本文中所描述的时钟同步、管线及/或脉动调度策略)以用于对第一数据值执行第一运算及对第二数据值执行第二运算。特定调度策略的应用可是基于通过第一逻辑条的第一计算组件存储第一数据值的预期时序(例如,如通过控制器540的序列发生器532及/或时序电路533引导)及通过第二逻辑条的第二计算组件存储第二数据值的时序。在各种实施例中,第一运算(例如,第一运算序列)可为相同于第二运算(例如,第二运算序列)的运算或第一运算可不同于第二运算。控制器可经配置以基于特定调度策略引导使用第一逻辑条的第一计算组件对第一数据值执行第一运算且基于调度策略引导使用第二逻辑条的第二计算组件对第二数据值执行第二运算。
在一些实施例中,第一逻辑条的第一计算组件可与第一锁存器相关联。因此,控制器可经配置以经由感测电路引导第三数据值从阵列的第二行的第三子行(例如,不同行的任何子行)经由共享I/O线移动到第一逻辑条的第一锁存器且引导对通过第一计算组件存储的来自第一行的第一数据值及通过第一锁存器存储的来自第二行的第三数据值执行逻辑运算。在一些实施例中,第一锁存器可包含或可为感测放大器(例如,结合图2及本文中其它处展示及描述的感测放大器206)以存储第三数据值。
本文中所描述的多个共享I/O线可如通过控制器引导那样配置以可选择地耦合到感测电路以经由多路复用器(例如,其可包含或可为在358处展示且结合图3描述的列选择电路)可选择地实现通过感测电路存储的对应于第一行的第一子行的数个多个存储器单元的数个多个数据值的并行移动。多路复用器可经配置以将数个多个数据值移动到第一逻辑条的对应数目个多个第一计算组件,如本文中所描述。第一子行(例如,428-1)的多个存储器单元的数目可对应于第一逻辑条(例如,424-1)的多个第一计算组件(例如,431-1)的数目。
替代地或另外,如图9C中所说明,控制器可经配置以实施“脉动”调度。如本文中所使用,脉动希望意味着数据经输入以流动通过硬接线数据路径内处理器节点(例如,逻辑条中的计算组件,如本文中所描述)的网络以将从存储器阵列(例如,130处展示的DRAM型阵列)的行及/或子行输入的数据组合、处理、合并及/或分类成经导出最终结果。每一节点可独立计算部分结果,将部分结果存储于自身内且向下游移动(例如,传送及/或复制)部分结果以用于进一步处理部分结果直到获得经导出最终结果的计算及输出(例如,用于存储于存储器阵列的数个行及/或子行中)。脉动阵列可被称为多指令多数据(MIMD)架构。
已输入到例如六个逻辑条的序列(例如,区域924-A)中的第一逻辑条(例如,图9C中的逻辑条924-1的计算组件及锁存器)中的第一批未处理数据可经处理及移动(例如,传送及/或复制)到另一(例如,第二)逻辑条(例如,逻辑条924-2的计算组件及锁存器)以供脉动处理。在一些实施例中,第二批未处理数据可输入到第一逻辑条中,在第二批已移动(例如,传送及/或复制)到第二逻辑条且第一批已移动(例如,传送及/或复制)到第三逻辑条时其后接着第三批,以此类推。
如本文中所描述,延迟希望意味着将第一批未处理数据输入到第一逻辑条以用于执行第一运算与将第一批输出为经完全处理的数据之间的时段。举例来说,当已执行六个指令的序列且已在六个操作循环之后(例如,在执行六个运算的序列中的第六运算之后)输出经处理数据时,来自六个逻辑条的序列的输出延迟已过期。
因而,由于在一些实施例中可在每一操作循环之后输入额外批数据,所以存储器装置在延迟之后的每一操作循环可输出一批经完全处理的数据。在一些实施例中,例如当大体上同时使用逻辑条的多个区域(例如,如通过图9C中的区域924-A、924-B及924-C所展示)时,每操作循环可输出超过一批经完全处理的数据。
在一些实施例中,一批新、未处理数据(例如,两个数据值)可在经过数个操作循环(例如,经过在已执行六个运算的序列中的第一运算之后的1到5个操作循环)之后输入到区域的第一逻辑条中,而非在已在序列中执行每一运算且结果数据值已移动到下一逻辑条之后将未处理数据输入到序列中的第一逻辑条中。将数据值输入到第一逻辑条中的此延迟可在逻辑条之间引入缓冲,举例来说,其中已在六个逻辑条中进行先前提出的六个逻辑运算的序列中的第一OR运算以用于执行序列中的其它逻辑运算且将新数据值引入到第一逻辑条中以用于执行第一OR运算以开始另一运算序列。可通过例如用于执行序列中的不同逻辑运算的时间及/或用于对经由共享I/O线从存储器阵列的子行移动到第一逻辑条的数据值执行运算的时间对用于对先前通过与逻辑条的计算组件相关联的多个锁存器存储的数据值执行运算的时间的可能变化及/或不可预测性的因素以及其它可能因素确定包含于此缓冲中的操作循环数目。
通过实例且非限制地,区域924-A、924-B及924-C各自展示为包含六个逻辑条(例如,区域924-A中的逻辑条924-1(L1)、…、924-6(L6)、区域924-B中的逻辑条924-7(L7)、…、924-12(L12)及区域924-C中的逻辑条924-13(L13)、…、924-18(L18))以各自执行六个逻辑运算的序列中的逻辑运算。举例来说,每一区域可包含多于或少于六个逻辑条以执行具有多于或少于六个逻辑运算的序列及/或可存在多于或少于三个区域,使得计算单元960中可存在多于或少于总共18个逻辑条(例如,924-1、…、924-18),如图9C中所展示。
许多应用可涉及输入冗长及/或连续数据流以供数据处理。举例来说,此类应用可包含信号处理、图像处理、语音识别、包检测、逗号分隔值(CSV)剖析、α混合图形操作、矩阵乘法及神经网络以及可对冗长及/或连续数据流进行操作的其它应用。在一些实施例中,如图9C中所展示,此未处理数据可输入到逻辑条阵列(例如,计算单元960)的图像左侧中且可通过在连续逻辑条中执行指令序列而处理数据,且可在逻辑条序列的图像左侧处输出结果。
因此,如本文中所描述,存储器装置(例如,图1A及1B中的120)可包含存储器单元阵列(例如,图1A中的130)及可选择地耦合到存储器单元阵列的感测电路(例如,图1A及2中的150及250)。在各种实施例中,感测电路可包含数个感测放大器(例如,如在206处展示且结合图2及本文中其它处描述)。存储器装置可包含共享为用于与阵列相关联的数据路径内计算操作的数据路径的多个I/O线(例如,图1及3到7中分别为155、355、455、555、655、755)。多个共享I/O线可将感测电路可选择地耦合到共享I/O线的数据路径中的计算组件(例如,图2到4及6到7中的231、331、431、631、731)。存储器装置可包含数据路径中的多个逻辑条(例如,924-1、…、924-18)。多个逻辑条可包含第一逻辑条(例如,924-1),第一逻辑条可包含对应于阵列的行(例如,319)的第一子行(例如,428-1)的数个多个存储器单元(未展示)的数个多个第一计算组件(例如,631-1、…、631-Z)。
控制器(例如,图1A及1B中的140)可与阵列相关联。控制器140可经配置以经由感测电路引导第一数据值从阵列的第一行的第一子行(例如,428-1)经由共享I/O线移动到数据路径中的第一逻辑条(例如,L1)的第一计算组件。控制器140可经进一步配置以引导使用第一计算组件对来自第一子行的第一数据值执行第一运算且引导由执行第一运算所获得的第二数据值从第一逻辑条(例如,L1)经由连接电路(例如,232)移动到数据路径中的第二逻辑条(例如,L2)的第二计算组件(例如,对应于第一逻辑条中的第一计算组件的位置的计算组件)。
控制器可经配置以引导使用第二逻辑条(例如,L2)的第二计算组件对第二数据值执行第二运算。控制器可经配置以引导由执行第二运算所获得的第三数据值从第二逻辑条(例如,L2)经由连接电路(例如,232)移动到第三逻辑条(例如,L3)的第三计算组件(例如,对应于第一逻辑条中的第一计算组件的位置及第二逻辑条中的第二计算组件的位置的计算组件)。
因此,控制器可经配置以通过通过对应数目个多个逻辑条(例如,区域924-A中的L1、…、L6、区域924-B中的L7、…、L12及区域924-C中的L13、…、L18)脉动地移动逻辑运算结果而引导执行数个多个逻辑运算序列(例如,在每一区域924-A、924-B及/或924-C中从上到下展示的数个操作循环)。可使用对应数目个多个逻辑条的对应数目个多个计算组件计算数个多个逻辑运算结果。举例来说,区域(例如,924-A)中的第一逻辑条(例如,L1)或所有逻辑条(例如,L1、…、L6)中的计算组件(例如,631-1、…、631-Z)的数目可对应于(例如,从逻辑条L6输出的)逻辑运算结果的数目。
在各种实施例中,多个逻辑运算序列(例如,区域924-A、924-B及924-C中所展示)可各自为相同逻辑运算序列(例如,OR、AND、XOR、OR、AND及NOT的序列)或多个逻辑运算序列可包含不同于其它逻辑运算序列的至少一个逻辑运算序列。举例来说,多个逻辑条可经配置为对应于数个多个逻辑运算序列的数个多个区域(例如,924-A、924-B及924-C)。在一些实施例中,控制器可经配置以引导大体上同时起始多个逻辑运算序列,其中多个逻辑运算序列中的每一者经引导以在多个区域中的不同者中执行。多个区域(例如,三个区域924-A、924-B及924-C)的数目可对应于阵列的行的多个子行(例如,子行428-1、…、428-18)的数目除以多个逻辑运算序列(例如,三个区域924-A、924-B及924-C中的三个逻辑运算序列)的数目。
控制器可经配置以在第一操作循环(例如,来自第一区域924-A的顶部的第一操作循环)中引导起始通过第一区域中的对应数目个多个逻辑条上的数个多个第一计算组件(例如,每一逻辑条中的计算组件631-1)对来自第一子行(例如,428-1)的第一数据值执行第一逻辑运算序列。控制器可经配置以在第二操作循环(例如,来自第一区域924-A的顶部的第二操作循环)中引导起始通过第二区域(例如,区域924-B)中的对应数目个多个逻辑条上的数个多个第二计算组件(例如,每一逻辑条中的计算组件631-1)对来自第二子行(例如,428-2)的第二数据值执行第二逻辑运算序列。
控制器可经配置以在第一操作循环中引导通过第一区域中的逻辑条的计算组件对第一数据值执行第一逻辑运算序列。控制器可经进一步配置以在第二操作循环中引导第一数据值从第一子行经由共享I/O线移动到第一区域中的第一计算组件,大体上同时将第二数据值从第二子行经由共享I/O线移动到第二区域中的第二计算组件。
控制器可经配置以在第二操作循环中引导通过第一区域(例如,区域924-A)中的逻辑条(例如,L1、…、L6)的计算组件对第一数据值执行第一逻辑运算序列,大体上同时通过第二区域(例如,区域924-B)中的逻辑条(例如,L7、…、L12)的计算组件对第二数据值执行第二逻辑运算序列。类似地,在第三操作循环中,控制器可经配置以引导通过第一区域(例如,区域924-A)中的逻辑条(例如,L1、…、L6)的计算组件对第一数据值执行第一逻辑运算序列,大体上同时通过第二区域(例如,区域924-B)中的逻辑条(例如,L7、…、L12)的计算组件对第二数据值执行第二逻辑运算序列且通过第三区域(例如,区域924-C)中的逻辑条(例如,L13、…、L18)的计算组件对第三数据值执行第三逻辑运算序列。
因此,由于在区域924-B的L7中起始逻辑运算序列之前的一个操作循环在区域924-A的L1中起始逻辑运算序列且在L13中起始运算之前的一个操作循环在L7中起始逻辑运算序列,所以逻辑运算序列的执行的完成可交错。举例来说,如针对图9C的底部处的最后操作循环所展示,通过L1起始的运算序列在通过L7起始的运算序列完成之前的一个操作循环完成且通过L7起始的运算序列在通过L13起始的运算序列完成之前的一个操作循环完成。
通过实例且非限制地展示在图9A、9B及9C中从上到下说明的数个操作循环。举例来说,尽管数个操作循环经展示为在每一图中不同,但图中的一或多者中的数个操作循环可相同于或不同于另一图中的数个操作循环。
本文中所描述的用于数据路径内计算操作的设备及方法包含对例如PIM DRAM实施方案的控制器的操作的数个改变。举例来说,控制器可协调将用于运算序列的分开运算的指令指派到数个子控制器(未展示),使得每一子控制器可引导关于存储于例如存储器库121、存储器库区段423、子阵列425-1、…、425-32、计算组件660、逻辑条924-1、…、924-18及/或区域924-A、924-B、924-C中的每一者中的数据值的分开运算。举例来说,对于每逻辑条具有1K个计算组件的逻辑条,可潜在地(例如,大体上同时)起始1K个不同逻辑运算序列,如通过控制器140及/或对应数目个子控制器所引导。
举例来说,子控制器可经配置以(例如,通过执行指令而)引导输入数据从行的子行经由感测电路移动(例如,传送及/或复制)到特定计算单元中的特定逻辑条中的特定计算组件。子控制器可经配置以在序列的逻辑运算的每一执行之后引导所得经处理数据值从其中执行运算的逻辑条移动(例如,传送及/或复制)到另一(例如,下一)逻辑条中的对应计算组件以用于执行运算序列(例如,脉动序列)中的下一运算。
本文中所描述的用于数据路径内计算操作的脉动数据移动的优点可包含如此配置的存储器装置可有效利用大量并行化及计算能力。举例来说,存储器装置可延伸其计算及执行能力,以便大体上同时执行运算序列中的多个、独立及/或独特运算,同时将经处理数据值从一个运算并行输出到下一运算。
因此,本文中所描述的实施例提供一种用于操作用于通过使用处理资源执行非暂时性指令而执行的数据路径内计算操作(例如,通过脉动数据移动,如本文中所描述)的存储器装置的方法。如本文中所描述,所述方法可包含对从存储器单元阵列的第一行中的第一子行中的存储器单元移动到第一逻辑条的数据值执行第一运算,所述数据值经由通过所述阵列及数据路径中的多个逻辑条共享的I/O线而移动。所述方法还可包含在已对数据值执行第一运算之后将数据值经由可选择地耦合第一逻辑条与选定第二逻辑条的连接电路移动到第二逻辑条且对移动到第二逻辑条的数据值执行第二运算。
所述方法可进一步包含通过执行非暂时性指令集而执行第一运算,移动数据值及执行第二运算。如本文中所描述,可通过控制器及/或子控制器经由用于阵列的处理资源、共享I/O线、多个逻辑条及/或连接电路以及其它组件执行非暂时性指令集。
所述方法可进一步包含使用第一逻辑条的第一计算组件执行第一运算且使用第二逻辑条的第二计算组件(例如,对应于第一逻辑条中的第一计算组件的位置的计算组件)执行第二运算。在各种实施例中,可如通过控制器及/或子控制器引导那样执行第一运算及第二运算。第一运算及第二运算可经执行为对应于数个多个逻辑条(例如,区域924-A中的L1、…、L6、区域924-B中的L7、…、L12及区域924-C中的L13、…、L18)的数个多个逻辑运算(例如,逻辑运算序列中的六个逻辑运算)中的前两个运算。多个逻辑运算可为经执行以产生不同于从第一子行中的存储器单元移动的数据值的结果的循序多个逻辑运算。
所述方法可进一步包含经由共享I/O线将循序多个逻辑运算的最后运算的完成结果从最后逻辑条(例如,区域924-A中的L6、区域924-B中的L12及/或区域924-C中的L18)移动到阵列的行中的选定存储器单元。最后逻辑条希望意味着其中执行循序多个逻辑运算的最后运算的逻辑条。在各种实施例中,用于存储结果的阵列的行可为存储器库、存储器库区段、象限及/或子阵列中(例如,DRAM存储器装置中)的相对于先前从其移动输入数据值的行的子行或若干行的子行相同或不同的行。
本发明的实施例可通过使用DRAM实施方案的经改进数据路径(例如,共享I/O线)增大PIM阵列中的数据移动的速度、速率及/或效率。如本文中所描述,存储器装置中的一对存储器库位置中的源位置与目的地位置可经配置以经由多个共享I/O线耦合。如本文中所描述,所述存储器装置中的存储器库包含存储器单元阵列、经由多个感测线耦合到所述阵列的感测电路(所述感测电路包含感测放大器及计算组件)及经由多个共享I/O线耦合到所述阵列及所述感测电路的计算单元电路(所述计算单元电路包含具有经配置以实施运算的感测放大器及计算组件的多个逻辑条)。控制器耦合到所述阵列、所述感测电路及所述计算单元电路。
可从所述控制器接收命令以将来自阵列中的源位置的数据值移动(例如,复制、传送及/或输送)到计算单元电路中的目的地位置。可使用感测放大器及/或计算组件经由多个共享I/O线将所述数据值从所述源位置移动到所述目的地位置。
虽然在本文中已说明及描述包含感测电路、感测放大器、计算组件、锁存器、逻辑条、共享I/O线、列选择电路、连接电路、多路复用器等的各种组合及配置的实例实施例,但本发明的实施例不限于本文中明确叙述的所述组合。本文中所揭示的感测电路、感测放大器、计算组件、锁存器、逻辑条、共享I/O线、列选择电路、连接电路、多路复用器等的其它组合及配置是明确包含于本发明的范围内。
尽管在本文中已说明及描述特定实施例,但所属领域的技术人员将了解,经计算以实现相同结果的布置可替代所展示的特定实施例。本发明希望涵盖本发明的一或多个实施例的调适或变化。应理解,已以阐释性方式且非限制性方式作出上文描述。所属领域的技术人员在审阅上文描述之后将明白在本文中未具体描述的上述实施例的组合及其它实施例。本发明的一或多个实施例的范围包含其中使用上述结构及过程的其它应用。因此,应参考所附权利要求书以及此类权利要求书所授权的等效物的全范围而确定本发明的一或多个实施例的范围。
在前述具体实施方式中,出于简化本发明的目的,将一些特征集中于单个实施例中。本发明的此方法不应解释为反映本发明的所揭示实施例必须使用多于每一权利要求中明确叙述的特征的意图。而是,如所附权利要求书所反映,本发明目标在于少于单个所揭示实施例的所有特征。因此,所附权利要求书特此并入具体实施方式中,其中每一权利要求自身独立地作为单独实施例。

Claims (20)

1.一种设备,其包括:
多个共享输入/输出I/O线,其经配置以可选择地经由感测电路:
将存储器单元阵列的行的第一子行耦合到数据路径中的第一计算组件以将第一数据值从所述第一子行移动到所述第一计算组件;及
将所述相应行的第二子行耦合到所述数据路径中的第二计算组件以将第二数据值从所述第二子行移动到所述第二计算组件;及
控制器,其经配置以引导所述第一计算组件对从所述第一子行移动的所述第一数据值执行计算操作,大体上同时将所述第二数据值从所述第二子行移动到所述第二计算组件;
其中,在所述第一计算操作完成之前移动所述第二数据值。
2.根据权利要求1所述的设备,其中所述数据路径进一步包括:
第一逻辑条,其包含对应于所述第一子行的数个多个存储器单元的数目个多个第一计算组件;及
第二逻辑条,其包含对应于所述第二子列的数个多个存储器单元的数个多个第二计算组件。
3.根据权利要求1所述的设备,其中所述数据路径进一步包括:
计算单元,其包含各自包含多个计算组件的多个逻辑条;
其中所述多个计算组件中的每一者与所述阵列本地的所述多个共享I/O线中的至少一者相关联。
4.根据权利要求1所述的设备,其中所述数据路径进一步包括对应于所述相应行的数个多个子行的数个多个逻辑条。
5.根据权利要求1所述的设备,其中所述数据路径进一步包括:
对应于所述相应行的子行的数个多个存储器单元的数个所述多个共享I/O线;
其中逻辑条包括对应于耦合到相应逻辑条的所述子行的所述数个所述多个存储器单元的数个多个计算组件。
6.一种系统,其包括:
主机,其经配置以产生指令;
存储器装置,其耦合到所述主机且包括:
存储器单元阵列,其经配置以存储操作数;以及
在数据路径中且用于数据路径内计算操作的多个逻辑条,其包含第一逻辑条,所述第一逻辑条包括对应于所述阵列的行的第一子行的数个多个存储器单元的数个多个第一计算组件;
控制电路,其经配置以执行来自所述主机的指令以引导:
经由作为数据路径共享的输入/输出I/O线,将第一数据值从所述阵列的第一行的第一子行移动到所述数据路径中的第一逻辑条的第一计算组件;
使用所述第一计算组件对来自所述第一子行的所述第一数据值执行第一运算;及
将由执行所述第一运算所获得的第二数据值从所述第一逻辑条经由连接电路移动到所述数据路径中的第二逻辑条的第二计算组件;
经由所述阵列的感测电路,将来自所述阵列的第二行的第二子行的第三数据值,经由用于执行计算操作的作为数据路径共享的输入/输出I/O线,
移动到所述数据路径中的所述第二逻辑条的第三计算组件;以及
使用所述I/O线的所述数据路径中的所述第二逻辑条的所述计算组件对来自所述第二子行的所述第三数据值执行第二运算;
其中在所述第一运算完成之前移动所述第三数据值。
7.根据权利要求6所述的系统,其中所述主机包括经配置以产生所述指令的处理资源。
8.根据权利要求6所述的系统,其中所述控制电路包括状态机。
9.根据权利要求6所述的系统,其中所述控制电路包括序列发生器。
10.根据权利要求6所述的系统,其中所述控制电路包括移位控制器,所述移位控制器经配置以控制所述存储器装置中的数据移位。
11.根据权利要求6所述的系统,其进一步包含控制总线,所述控制总线经配置以提供待由所述控制电路解码的来自所述主机的信号。
12.根据权利要求6所述的系统,其中所述控制电路位于所述存储器装置本地并且位于所述主机外部。
13.根据权利要求6所述的系统,其中所述控制电路进一步经配置以执行来自所述主机的指令,以引导使用所述第二逻辑条的所述第二计算组件对所述第二数据值执行第二运算。
14.根据权利要求6所述的系统,其中所述控制电路进一步经配置以执行来自所述主机的指令,以引导将由执行所述第二运算所获得的第三数据值从所述第二逻辑条经由所述连接电路移动到第三逻辑条的第三计算组件。
15.根据权利要求6所述的系统,其中所述控制电路进一步经配置以执行来自所述主机的指令以引导:
通过对应数目个多个逻辑条脉动地移动逻辑运算结果来执行数个多个逻辑运算序列;
其中使用所述对应数目个多个逻辑条的对应数目个多个计算组件计算数个多个所述逻辑运算结果。
16.根据权利要求6所述的系统,其中:
所述多个逻辑条包括对应于数个多个逻辑运算序列的数个多个区域;
所述控制电路经进一步配置以执行来自所述主机的指令以引导大体上同时起始所述多个逻辑运算序列;且
所述多个逻辑运算序列中的每一者经引导以在所述多个区域中的不同区域中执行。
17.一种用于操作存储器装置的方法,其包括:
对从存储器单元阵列的第一行中的第一子行中的存储器单元移动到第一逻辑条以用于数据路径内计算操作的数据值执行第一运算;以及
经由连接电路将执行所述第一运算而产生的第二数据值移动到所选择的第二逻辑条,以使得能够对所述第二数据值执行第二运算,所述连接电路可选择地耦合所述第一逻辑条和所述所选择的第二逻辑条;
对从所述存储器单元阵列的第二行中的第二子行中的第二存储器单元移动到数据路径内的第三逻辑条以用于数据路径内计算操作的第三数据值执行第三运算;以及
经由所述连接电路而非共享输入/输出线将执行所述第三运算而产生的第三数据值移动到所述数据路径中的所选择的第四逻辑条以使得能够对所述第三数据值执行第四运算,所述连接电路可选择地耦合所述第三逻辑条和所述所选择的第四逻辑条;
其中在完成所述第一运算之前移动所述第三数据值。
18.根据权利要求17所述的方法,其中所述方法进一步包括:
使用所述第一逻辑条的第一计算组件执行所述第一运算;以及
使用所述第二逻辑条的第二计算组件执行所述第二运算。
19.根据权利要求17所述的方法,其中所述方法进一步包括:
执行所述第一运算和所述第二运算,作为与数个所述多个逻辑条相对应的数个多个逻辑运算中的前两个运算;
其中所述多个逻辑运算是对从所述第一子行中的所述存储器单元移出的数据值和数个输出数据值执行的循序多个逻辑运算,以产生结果数据值。
20.根据权利要求17所述的方法,其中所述方法进一步包括:
将循序多个逻辑运算的最后运算的完成结果从最后逻辑条移动到所述阵列的行中的选定存储器单元;
其中所述最后逻辑条是其中执行所述最后运算的逻辑条。
CN201880020103.0A 2017-03-22 2018-03-12 用于数据路径内计算操作的设备及方法 Active CN110462738B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/466,477 US10185674B2 (en) 2017-03-22 2017-03-22 Apparatus and methods for in data path compute operations
US15/466,477 2017-03-22
PCT/US2018/021931 WO2018175129A1 (en) 2017-03-22 2018-03-12 Apparatus and methods for in data path compute operations

Publications (2)

Publication Number Publication Date
CN110462738A CN110462738A (zh) 2019-11-15
CN110462738B true CN110462738B (zh) 2021-12-07

Family

ID=63582613

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880020103.0A Active CN110462738B (zh) 2017-03-22 2018-03-12 用于数据路径内计算操作的设备及方法

Country Status (7)

Country Link
US (5) US10185674B2 (zh)
EP (1) EP3583597A4 (zh)
JP (1) JP6791522B2 (zh)
KR (2) KR20190121873A (zh)
CN (1) CN110462738B (zh)
TW (1) TWI659427B (zh)
WO (1) WO2018175129A1 (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10185674B2 (en) * 2017-03-22 2019-01-22 Micron Technology, Inc. Apparatus and methods for in data path compute operations
KR20190073102A (ko) * 2017-12-18 2019-06-26 삼성전자주식회사 비트 라인 감지 증폭기, 반도체 메모리 장치, 그리고 그것의 멀티 비트 데이터의 센싱 방법
US11094371B2 (en) 2019-03-11 2021-08-17 Samsung Electronics Co., Ltd. Memory device for processing operation and method of operating the same
US11769043B2 (en) 2019-10-25 2023-09-26 Samsung Electronics Co., Ltd. Batch size pipelined PIM accelerator for vision inference on multiple images
KR102299020B1 (ko) * 2020-05-11 2021-09-07 윈본드 일렉트로닉스 코포레이션 인공지능 동작을 위한 메모리 장치
US11262949B2 (en) * 2020-05-28 2022-03-01 Advanced Micro Devices, Inc. Command throughput in PIM-enabled memory using available data bus bandwidth
US11152056B1 (en) * 2020-09-14 2021-10-19 Micron Technology, Inc. Integrated assemblies
TWI773106B (zh) * 2021-01-28 2022-08-01 華邦電子股份有限公司 具有運算功能的記憶體裝置及其操作方法
CN113625994B (zh) * 2021-10-12 2022-01-04 华控清交信息科技(北京)有限公司 一种数据处理方法和处理核
US11836128B1 (en) * 2023-07-21 2023-12-05 Sadram, Inc. Self-addressing memory

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101681672A (zh) * 2007-05-24 2010-03-24 美光科技公司 具有本地列选择线的存储器架构
WO2016144726A1 (en) * 2015-03-12 2016-09-15 Micron Technology, Inc. Apparatuses and methods for data movement
CN105990333A (zh) * 2015-03-16 2016-10-05 台湾积体电路制造股份有限公司 存储器电路的跨接结构

Family Cites Families (321)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4380046A (en) 1979-05-21 1983-04-12 Nasa Massively parallel processor computer
JPS6032911B2 (ja) 1979-07-26 1985-07-31 株式会社東芝 半導体記憶装置
US4435792A (en) 1982-06-30 1984-03-06 Sun Microsystems, Inc. Raster memory manipulation apparatus
US4727474A (en) 1983-02-18 1988-02-23 Loral Corporation Staging memory for massively parallel processor
EP0214718A3 (en) 1985-07-22 1990-04-04 Alliant Computer Systems Corporation Digital computer
US5201039A (en) 1987-09-30 1993-04-06 Mitsubishi Denki Kabushiki Kaisha Multiple address-space data processor with addressable register and context switching
US4843264A (en) 1987-11-25 1989-06-27 Visic, Inc. Dynamic sense amplifier for CMOS static RAM
US5276643A (en) 1988-08-11 1994-01-04 Siemens Aktiengesellschaft Integrated semiconductor circuit
JPH0713858B2 (ja) 1988-08-30 1995-02-15 三菱電機株式会社 半導体記憶装置
US5023838A (en) 1988-12-02 1991-06-11 Ncr Corporation Random access memory device with integral logic capability
US4958378A (en) 1989-04-26 1990-09-18 Sun Microsystems, Inc. Method and apparatus for detecting changes in raster data
US5253308A (en) 1989-06-21 1993-10-12 Amber Engineering, Inc. Massively parallel digital image data processor using pixel-mapped input/output and relative indexed addressing
EP0446721B1 (en) 1990-03-16 2000-12-20 Texas Instruments Incorporated Distributed processing memory
JP2979584B2 (ja) * 1990-05-28 1999-11-15 日本電気株式会社 半導体記憶装置の読み出し方法
US5034636A (en) 1990-06-04 1991-07-23 Motorola, Inc. Sense amplifier with an integral logic function
US5210850A (en) 1990-06-15 1993-05-11 Compaq Computer Corporation Memory address space determination using programmable limit registers with single-ended comparators
JP3361825B2 (ja) 1990-08-22 2003-01-07 テキサス インスツルメンツ インコーポレイテツド メモリ・アレイ・アーキテクチャ
JPH06103599B2 (ja) 1990-11-16 1994-12-14 三菱電機株式会社 半導体集積回路装置
US5325519A (en) 1991-10-18 1994-06-28 Texas Microsystems, Inc. Fault tolerant computer with archival rollback capabilities
FR2685973B1 (fr) 1992-01-03 1994-02-25 France Telecom Point memoire pour memoire associative.
KR950005095Y1 (ko) 1992-03-18 1995-06-22 문정환 양방향성 그로벌 비트 라인을 갖는 dram
KR940004434A (ko) 1992-08-25 1994-03-15 윌리엄 이. 힐러 스마트 다이나믹 랜덤 억세스 메모리 및 그 처리방법
KR950004854B1 (ko) 1992-10-08 1995-05-15 삼성전자 주식회사 반도체 메모리 장치
US5440482A (en) 1993-03-25 1995-08-08 Taligent, Inc. Forward and reverse Boyer-Moore string searching of multilingual text having a defined collation order
US5485373A (en) 1993-03-25 1996-01-16 Taligent, Inc. Language-sensitive text searching system with modified Boyer-Moore process
US5754478A (en) 1993-04-20 1998-05-19 Micron Technology, Inc. Fast, low power, write scheme for memory circuits using pulsed off isolation device
US5369622A (en) 1993-04-20 1994-11-29 Micron Semiconductor, Inc. Memory with isolated digit lines
JP2663838B2 (ja) 1993-07-27 1997-10-15 日本電気株式会社 半導体集積回路装置
JP3252306B2 (ja) 1993-08-10 2002-02-04 株式会社日立製作所 半導体不揮発性記憶装置
JP3904244B2 (ja) 1993-09-17 2007-04-11 株式会社ルネサステクノロジ シングル・チップ・データ処理装置
JP3251421B2 (ja) 1994-04-11 2002-01-28 株式会社日立製作所 半導体集積回路
US5655113A (en) 1994-07-05 1997-08-05 Monolithic System Technology, Inc. Resynchronization circuit for a memory system and method of operating same
JPH0831168A (ja) 1994-07-13 1996-02-02 Hitachi Ltd 半導体記憶装置
US5481500A (en) 1994-07-22 1996-01-02 International Business Machines Corporation Precharged bit decoder and sense amplifier with integrated latch usable in pipelined memories
US5615404A (en) 1994-10-31 1997-03-25 Intel Corporation System having independently addressable bus interfaces coupled to serially connected multi-ported signal distributors generating and maintaining frame based polling schedule favoring isochronous peripherals
US5638128A (en) 1994-11-08 1997-06-10 General Instrument Corporation Of Delaware Pixel interpolation filters for video decompression processor
US5724366A (en) 1995-05-16 1998-03-03 Mitsubishi Denki Kabushiki Kaisha Semiconductor memory device
KR0146530B1 (ko) 1995-05-25 1998-09-15 김광호 단속제어회로를 구비한 반도체 메모리 장치와 제어방법
US7301541B2 (en) 1995-08-16 2007-11-27 Microunity Systems Engineering, Inc. Programmable processor and method with wide operations
US6385634B1 (en) 1995-08-31 2002-05-07 Intel Corporation Method for performing multiply-add operations on packed data
JP2812262B2 (ja) 1995-08-31 1998-10-22 日本電気株式会社 連想記憶装置
JP2817836B2 (ja) 1995-11-30 1998-10-30 日本電気株式会社 半導体メモリ装置
JP3356612B2 (ja) 1996-02-29 2002-12-16 インターナショナル・ビジネス・マシーンズ・コーポレーション 高速な輪郭スムージング方法及び装置
US6092186A (en) 1996-05-07 2000-07-18 Lucent Technologies Inc. Apparatus and method for aborting un-needed instruction fetches in a digital microprocessor device
US5915084A (en) 1996-09-30 1999-06-22 Advanced Micro Devices, Inc. Scannable sense amplifier circuit
US5991209A (en) 1997-04-11 1999-11-23 Raytheon Company Split sense amplifier and staging buffer for wide memory architecture
JP3592887B2 (ja) 1997-04-30 2004-11-24 株式会社東芝 不揮発性半導体記憶装置
US6510098B1 (en) 1997-05-28 2003-01-21 Cirrus Logic, Inc. Method and apparatus for transferring data in a dual port memory
JPH1115773A (ja) 1997-06-24 1999-01-22 Matsushita Electron Corp 半導体集積回路、コンピュータシステム、データ処理装置及びデータ処理方法
US5935263A (en) 1997-07-01 1999-08-10 Micron Technology, Inc. Method and apparatus for memory array compressed data testing
US6195734B1 (en) 1997-07-02 2001-02-27 Micron Technology, Inc. System for implementing a graphic address remapping table as a virtual register file in system memory
US6181698B1 (en) 1997-07-09 2001-01-30 Yoichi Hariguchi Network routing table using content addressable memory
US6025221A (en) 1997-08-22 2000-02-15 Micron Technology, Inc. Processing methods of forming integrated circuitry memory devices, methods of forming DRAM arrays, and related semiconductor masks
US5991785A (en) 1997-11-13 1999-11-23 Lucent Technologies Inc. Determining an extremum value and its index in an array using a dual-accumulation processor
US5867429A (en) 1997-11-19 1999-02-02 Sandisk Corporation High density non-volatile flash memory without adverse effects of electric field coupling between adjacent floating gates
US6163862A (en) 1997-12-01 2000-12-19 International Business Machines Corporation On-chip test circuit for evaluating an on-chip signal using an external test signal
JP3488612B2 (ja) 1997-12-11 2004-01-19 株式会社東芝 センス増幅回路
US5986942A (en) 1998-01-20 1999-11-16 Nec Corporation Semiconductor memory device
JPH11260057A (ja) 1998-03-13 1999-09-24 Nec Corp 半導体記憶装置
JPH11265995A (ja) 1998-03-17 1999-09-28 Mitsubishi Electric Corp 半導体記憶装置
JPH11306751A (ja) 1998-04-22 1999-11-05 Toshiba Corp 半導体記憶装置
US6005799A (en) 1998-08-06 1999-12-21 Silicon Aquarius Methods and circuits for single-memory dynamic cell multivalue data storage
US6141286A (en) 1998-08-21 2000-10-31 Micron Technology, Inc. Embedded DRAM architecture with local data drivers and programmable number of data read and data write lines
US7409694B2 (en) 1998-09-09 2008-08-05 Microsoft Corporation Highly componentized system architecture with loadable virtual memory manager
JP2000173269A (ja) 1998-12-08 2000-06-23 Mitsubishi Electric Corp 半導体記憶装置
KR100381968B1 (ko) 1998-12-30 2004-03-24 주식회사 하이닉스반도체 고속동작용디램
US6389507B1 (en) 1999-01-15 2002-05-14 Gigabus, Inc. Memory device search system and method
US5999435A (en) 1999-01-15 1999-12-07 Fast-Chip, Inc. Content addressable memory device
US6134164A (en) 1999-04-22 2000-10-17 International Business Machines Corp. Sensing circuit for a memory cell array
US6741104B2 (en) 1999-05-26 2004-05-25 Micron Technology, Inc. DRAM sense amplifier for low voltages
US6157578A (en) 1999-07-15 2000-12-05 Stmicroelectronics, Inc. Method and apparatus for accessing a memory device
US6208544B1 (en) 1999-09-09 2001-03-27 Harris Corporation Content addressable memory cell providing simultaneous read and compare capability
US6578058B1 (en) 1999-10-06 2003-06-10 Agilent Technologies, Inc. System and method for comparing values from target systems
US7124221B1 (en) 1999-10-19 2006-10-17 Rambus Inc. Low latency multi-level communication interface
US6418498B1 (en) 1999-12-30 2002-07-09 Intel Corporation Integrated system management memory for system management interrupt handler independent of BIOS and operating system
JP4627103B2 (ja) 2000-01-18 2011-02-09 富士通セミコンダクター株式会社 半導体記憶装置及びその制御方法
WO2001057875A1 (fr) 2000-02-04 2001-08-09 Hitachi, Ltd. Dispositif semi-conducteur
AU2001239907A1 (en) 2000-02-29 2001-09-12 Stephen J. Guerreri Method and apparatus for building a memory image
US7028170B2 (en) 2000-03-08 2006-04-11 Sun Microsystems, Inc. Processing architecture having a compare capability
JP3983969B2 (ja) 2000-03-08 2007-09-26 株式会社東芝 不揮発性半導体記憶装置
US6678678B2 (en) 2000-03-09 2004-01-13 Braodcom Corporation Method and apparatus for high speed table search
JP3822412B2 (ja) 2000-03-28 2006-09-20 株式会社東芝 半導体記憶装置
US6965648B1 (en) 2000-05-04 2005-11-15 Sun Microsystems, Inc. Source synchronous link integrity validation
KR100816915B1 (ko) 2000-07-07 2008-03-26 모사이드 테크놀로지스, 인코포레이티드 일정한 액세스 레이턴시를 지닌 고속 dram 및 메모리 소자
US6466499B1 (en) 2000-07-11 2002-10-15 Micron Technology, Inc. DRAM sense amplifier having pre-charged transistor body nodes
US7302582B2 (en) 2000-08-21 2007-11-27 United States Postal Service Delivery point validation system
US6301164B1 (en) 2000-08-25 2001-10-09 Micron Technology, Inc. Antifuse method to repair columns in a prefetched output memory architecture
US6704828B1 (en) 2000-08-31 2004-03-09 Micron Technology, Inc. System and method for implementing data pre-fetch having reduced data lines and/or higher data rates
US6948056B1 (en) 2000-09-28 2005-09-20 Intel Corporation Maintaining even and odd array pointers to extreme values by searching and comparing multiple elements concurrently where a pointer is adjusted after processing to account for a number of pipeline stages
US6304477B1 (en) 2001-01-31 2001-10-16 Motorola, Inc. Content addressable magnetic random access memory
US6563754B1 (en) 2001-02-08 2003-05-13 Integrated Device Technology, Inc. DRAM circuit with separate refresh memory
US6650158B2 (en) 2001-02-21 2003-11-18 Ramtron International Corporation Ferroelectric non-volatile logic elements
US6807614B2 (en) 2001-07-19 2004-10-19 Shine C. Chung Method and apparatus for using smart memories in computing
US7546438B2 (en) 2001-07-19 2009-06-09 Chung Shine C Algorithm mapping, specialized instructions and architecture features for smart memory computing
ITRM20010531A1 (it) 2001-08-31 2003-02-28 Micron Technology Inc Dispositivo rilevatore a bassa potenza e alta tensione per memorie ditipo flash.
US7260672B2 (en) 2001-09-07 2007-08-21 Intel Corporation Using data stored in a destructive-read memory
US7062689B2 (en) 2001-12-20 2006-06-13 Arm Limited Method and apparatus for memory self testing
US20040073773A1 (en) 2002-02-06 2004-04-15 Victor Demjanenko Vector processor architecture and methods performed therein
US6707729B2 (en) 2002-02-15 2004-03-16 Micron Technology, Inc. Physically alternating sense amplifier activation
WO2003088033A1 (en) 2002-04-09 2003-10-23 University Of Rochester Multiplier-based processor-in-memory architectures for image and graphics processing
JP2003331598A (ja) 2002-05-13 2003-11-21 Mitsubishi Electric Corp 半導体記憶装置
US7406494B2 (en) 2002-05-14 2008-07-29 Texas Instruments Incorporated Method of generating a cycle-efficient bit-reverse index array for a wireless communication system
JP2003346484A (ja) 2002-05-23 2003-12-05 Mitsubishi Electric Corp 不揮発性半導体記憶装置
US6789099B2 (en) 2002-06-10 2004-09-07 International Business Machines Corporation Sense-amp based adder with source follower evaluation tree
US7450438B1 (en) * 2002-06-20 2008-11-11 Cisco Technology, Inc. Crossbar apparatus for a forwarding table memory in a router
US7054178B1 (en) 2002-09-06 2006-05-30 Etron Technology, Inc. Datapath architecture for high area efficiency
US6987693B2 (en) 2002-09-24 2006-01-17 Sandisk Corporation Non-volatile memory and method with reduced neighboring field errors
US7079407B1 (en) 2002-10-18 2006-07-18 Netlogic Microsystems, Inc. Content addressable memory (CAM) device including match line sensing
US6765834B2 (en) 2002-11-19 2004-07-20 Hewlett-Packard Development Company, L.P. System and method for sensing memory cells of an array of memory cells
US6731542B1 (en) 2002-12-05 2004-05-04 Advanced Micro Devices, Inc. Circuit for accurate memory read operations
KR100546307B1 (ko) 2002-12-05 2006-01-26 삼성전자주식회사 글로벌 입출력라인을 프리차지 및/또는 이퀄라이징하기위한 프리차지 회로를 구비하는 반도체 장치 및프리차지 및/또는 이퀄라이즈하는 트랜지스터의 레이아웃
US6888372B1 (en) 2002-12-20 2005-05-03 Altera Corporation Programmable logic device with soft multiplier
AU2002353406A1 (en) 2002-12-27 2004-07-22 Solid State System Co., Ltd. Nonvolatile memory unit with specific cache
US7346903B2 (en) 2003-02-04 2008-03-18 Sun Microsystems, Inc. Compiling and linking modules of a cycle-based logic design
US6768679B1 (en) 2003-02-10 2004-07-27 Advanced Micro Devices, Inc. Selection circuit for accurate memory read operations
US6819612B1 (en) 2003-03-13 2004-11-16 Advanced Micro Devices, Inc. Apparatus and method for a sense amplifier circuit that samples and holds a reference voltage
US6865122B2 (en) 2003-04-11 2005-03-08 Intel Corporation Reclaiming blocks in a block-alterable memory
US7447720B2 (en) 2003-04-23 2008-11-04 Micron Technology, Inc. Method for finding global extrema of a set of bytes distributed across an array of parallel processing elements
US7454451B2 (en) 2003-04-23 2008-11-18 Micron Technology, Inc. Method for finding local extrema of a set of values for a parallel processing element
US7574466B2 (en) 2003-04-23 2009-08-11 Micron Technology, Inc. Method for finding global extrema of a set of shorts distributed across an array of parallel processing elements
US9015390B2 (en) 2003-04-25 2015-04-21 Micron Technology, Inc. Active memory data compression system and method
DE10319271A1 (de) 2003-04-29 2004-11-25 Infineon Technologies Ag Speicher-Schaltungsanordnung und Verfahren zur Herstellung
JP3898152B2 (ja) 2003-05-27 2007-03-28 ローム株式会社 演算機能付き記憶装置および演算記憶方法
WO2005024843A1 (en) 2003-09-04 2005-03-17 Koninklijke Philips Electronics N.V. Integrated circuit and a method of cache remapping
US6956770B2 (en) 2003-09-17 2005-10-18 Sandisk Corporation Non-volatile memory and method with bit line compensation dependent on neighboring operating modes
US7177183B2 (en) 2003-09-30 2007-02-13 Sandisk 3D Llc Multiple twin cell non-volatile memory array and logic block structure and method therefor
KR100546385B1 (ko) * 2003-09-30 2006-01-26 삼성전자주식회사 입출력라인 감지증폭기와 입출력라인 드라이버 제어방법및 이를 이용하는 반도체 메모리장치
US7913125B2 (en) 2003-11-04 2011-03-22 Lsi Corporation BISR mode to test the redundant elements and regular functional memory to avoid test escapes
US6950771B1 (en) 2003-12-09 2005-09-27 Xilinx, Inc. Correlation of electrical test data with physical defect data
US7631236B2 (en) 2004-01-29 2009-12-08 International Business Machines Corporation Hybrid built-in self test (BIST) architecture for embedded memory arrays and an associated method
US7401281B2 (en) 2004-01-29 2008-07-15 International Business Machines Corporation Remote BIST high speed test and redundancy calculation
JP4819316B2 (ja) 2004-02-23 2011-11-24 ルネサスエレクトロニクス株式会社 半導体装置
US7088606B2 (en) 2004-03-10 2006-08-08 Altera Corporation Dynamic RAM storage techniques
US7020017B2 (en) 2004-04-06 2006-03-28 Sandisk Corporation Variable programming of non-volatile memory
US7120063B1 (en) 2004-05-07 2006-10-10 Spansion Llc Flash memory cell and methods for programming and erasing
US8522205B2 (en) 2004-05-18 2013-08-27 Oracle International Corporation Packaging multiple groups of read-only files of an application's components into multiple shared libraries
JP2006127460A (ja) 2004-06-09 2006-05-18 Renesas Technology Corp 半導体装置、半導体信号処理装置、およびクロスバースイッチ
US7061817B2 (en) 2004-06-30 2006-06-13 Micron Technology, Inc. Data path having grounded precharge operation and test compression capability
US7116602B2 (en) 2004-07-15 2006-10-03 Micron Technology, Inc. Method and system for controlling refresh to avoid memory cell data losses
US7434024B2 (en) 2004-08-30 2008-10-07 Ati Technologies, Inc. SIMD processor with register addressing, buffer stall and methods
US20060069849A1 (en) 2004-09-30 2006-03-30 Rudelic John C Methods and apparatus to update information in a memory
US7685365B2 (en) 2004-09-30 2010-03-23 Intel Corporation Transactional memory execution utilizing virtual memory
US20060149804A1 (en) 2004-11-30 2006-07-06 International Business Machines Corporation Multiply-sum dot product instruction with mask and splat
US7230851B2 (en) 2004-12-23 2007-06-12 Sandisk Corporation Reducing floating gate to floating gate coupling effect
KR100673901B1 (ko) 2005-01-28 2007-01-25 주식회사 하이닉스반도체 저전압용 반도체 메모리 장치
US7543119B2 (en) 2005-02-10 2009-06-02 Richard Edward Hessel Vector processor
US7624313B2 (en) 2005-03-28 2009-11-24 Hewlett-Packard Development Company, L.P. TCAM BIST with redundancy
US7196928B2 (en) 2005-04-05 2007-03-27 Sandisk Corporation Compensating for coupling during read operations of non-volatile memory
US7187585B2 (en) 2005-04-05 2007-03-06 Sandisk Corporation Read operation for non-volatile storage that includes compensation for coupling
US7193898B2 (en) 2005-06-20 2007-03-20 Sandisk Corporation Compensation currents in non-volatile memory read operations
KR100720644B1 (ko) 2005-11-17 2007-05-21 삼성전자주식회사 메모리 장치 및 메모리 그 동작 방법
JP4804479B2 (ja) 2005-12-13 2011-11-02 スパンション エルエルシー 半導体装置およびその制御方法
JP5129450B2 (ja) 2006-01-16 2013-01-30 ルネサスエレクトロニクス株式会社 情報処理装置
US8077533B2 (en) 2006-01-23 2011-12-13 Freescale Semiconductor, Inc. Memory and method for sensing data in a memory using complementary sensing scheme
JP4989900B2 (ja) 2006-01-31 2012-08-01 ルネサスエレクトロニクス株式会社 並列演算処理装置
US7400532B2 (en) 2006-02-16 2008-07-15 Micron Technology, Inc. Programming method to reduce gate coupling interference for non-volatile memory
KR100755370B1 (ko) 2006-04-17 2007-09-04 삼성전자주식회사 반도체 메모리 장치
TW200828333A (en) 2006-04-28 2008-07-01 Samsung Electronics Co Ltd Sense amplifier circuit and sense amplifier-based flip-flop having the same
US7752417B2 (en) 2006-06-05 2010-07-06 Oracle America, Inc. Dynamic selection of memory virtualization techniques
US7372715B2 (en) 2006-06-14 2008-05-13 Micron Technology, Inc. Architecture and method for NAND flash memory
US8069377B2 (en) 2006-06-26 2011-11-29 Micron Technology, Inc. Integrated circuit having memory array including ECC and column redundancy and method of operating the same
US7724559B2 (en) 2006-07-14 2010-05-25 International Business Machines Corporation Self-referenced match-line sense amplifier for content addressable memories
US7885119B2 (en) 2006-07-20 2011-02-08 Sandisk Corporation Compensating for coupling during programming
US7443729B2 (en) 2006-07-20 2008-10-28 Sandisk Corporation System that compensates for coupling based on sensing a neighbor using coupling
US7692466B2 (en) 2006-08-18 2010-04-06 Ati Technologies Ulc Sense amplifier based flip-flop
US7805587B1 (en) 2006-11-01 2010-09-28 Nvidia Corporation Memory addressing controlled by PTE fields
US8151082B2 (en) 2007-12-06 2012-04-03 Fusion-Io, Inc. Apparatus, system, and method for converting a storage request into an append data storage command
US7471536B2 (en) 2006-12-08 2008-12-30 Texas Instruments Incorporated Match mismatch emulation scheme for an addressed location in a CAM
US7460387B2 (en) 2007-01-05 2008-12-02 International Business Machines Corporation eDRAM hierarchical differential sense amp
US7743303B2 (en) 2007-01-22 2010-06-22 Micron Technology, Inc. Defective memory block remapping method and system, and memory device and processor-based system using same
US7937535B2 (en) 2007-02-22 2011-05-03 Arm Limited Managing cache coherency in a data processing apparatus
US7804718B2 (en) 2007-03-07 2010-09-28 Mosaid Technologies Incorporated Partial block erase architecture for flash memory
WO2008131058A2 (en) 2007-04-17 2008-10-30 Rambus Inc. Hybrid volatile and non-volatile memory device
US7492640B2 (en) 2007-06-07 2009-02-17 Sandisk Corporation Sensing with bit-line lockout control in non-volatile memory
JP2009009665A (ja) 2007-06-29 2009-01-15 Elpida Memory Inc 半導体記憶装置
US7996749B2 (en) 2007-07-03 2011-08-09 Altera Corporation Signal loss detector for high-speed serial interface of a programmable logic device
US7489543B1 (en) 2007-07-25 2009-02-10 Micron Technology, Inc. Programming multilevel cell memory arrays
US7694195B2 (en) 2007-08-14 2010-04-06 Dell Products L.P. System and method for using a memory mapping function to map memory defects
US7869273B2 (en) 2007-09-04 2011-01-11 Sandisk Corporation Reducing the impact of interference during programming
US7787319B2 (en) 2007-09-06 2010-08-31 Innovative Silicon Isi Sa Sense amplifier circuitry for integrated circuit having memory cell array, and method of operating same
US8042082B2 (en) 2007-09-12 2011-10-18 Neal Solomon Three dimensional memory in a system on a chip
US7965564B2 (en) 2007-09-18 2011-06-21 Zikbit Ltd. Processor arrays made of standard memory cells
US7663928B2 (en) 2007-10-09 2010-02-16 Ememory Technology Inc. Sense amplifier circuit having current mirror architecture
WO2009052527A1 (en) 2007-10-19 2009-04-23 Virident Systems, Inc. Managing memory systems containing components with asymmetric characteristics
US7924628B2 (en) 2007-11-14 2011-04-12 Spansion Israel Ltd Operation of a non-volatile memory array
US7979667B2 (en) 2007-12-10 2011-07-12 Spansion Llc Memory array search engine
US7755960B2 (en) 2007-12-17 2010-07-13 Stmicroelectronics Sa Memory including a performance test circuit
US8495438B2 (en) 2007-12-28 2013-07-23 Texas Instruments Incorporated Technique for memory imprint reliability improvement
US7808854B2 (en) 2008-02-19 2010-10-05 Kabushiki Kaisha Toshiba Systems and methods for data transfers between memory cells
JP5194302B2 (ja) 2008-02-20 2013-05-08 ルネサスエレクトロニクス株式会社 半導体信号処理装置
US8332580B2 (en) 2008-04-02 2012-12-11 Zikbit Ltd. System, method and apparatus for memory with embedded associative section for computations
US20090254694A1 (en) 2008-04-02 2009-10-08 Zikbit Ltd. Memory device with integrated parallel processing
US7957206B2 (en) 2008-04-04 2011-06-07 Micron Technology, Inc. Read circuitry for an integrated circuit having memory cells and/or a memory cell array, and method of operating same
US8339824B2 (en) 2008-07-02 2012-12-25 Cooke Laurence H Nearest neighbor serial content addressable memory
US8555037B2 (en) 2008-08-15 2013-10-08 Apple Inc. Processing vectors using wrapping minima and maxima instructions in the macroscalar architecture
US8417921B2 (en) 2008-08-15 2013-04-09 Apple Inc. Running-min and running-max instructions for processing vectors using a base value from a key element of an input vector
US8259509B2 (en) 2008-08-18 2012-09-04 Elpida Memory, Inc. Semiconductor memory device and method with auxiliary I/O line assist circuit and functionality
ITRM20080543A1 (it) 2008-10-09 2010-04-10 Micron Technology Inc Architettura e metodo per la programmazione di memorie.
KR101596283B1 (ko) 2008-12-19 2016-02-23 삼성전자 주식회사 개선된 로컬 입출력라인 프리차아지 스킴을 갖는 반도체 메모리 장치
KR101622922B1 (ko) 2009-03-06 2016-05-20 삼성전자 주식회사 개선된 로컬 입출력라인 프리차아지 스킴을 갖는 반도체 메모리 장치
US8484276B2 (en) 2009-03-18 2013-07-09 International Business Machines Corporation Processing array data on SIMD multi-core processor architectures
KR20100134235A (ko) 2009-06-15 2010-12-23 삼성전자주식회사 반도체 메모리 장치
US7898864B2 (en) 2009-06-24 2011-03-01 Sandisk Corporation Read operation for memory with compensation for coupling based on write-erase cycles
US8412985B1 (en) 2009-06-30 2013-04-02 Micron Technology, Inc. Hardwired remapped memory
US8412987B2 (en) 2009-06-30 2013-04-02 Micron Technology, Inc. Non-volatile memory to store memory remap information
US8238173B2 (en) 2009-07-16 2012-08-07 Zikbit Ltd Using storage cells to perform computation
US9076527B2 (en) 2009-07-16 2015-07-07 Mikamonu Group Ltd. Charge sharing in a TCAM array
JP4951041B2 (ja) 2009-08-06 2012-06-13 株式会社東芝 半導体記憶装置
US8059438B2 (en) 2009-08-28 2011-11-15 International Business Machines Corporation Content addressable memory array programmed to perform logic operations
US8077532B2 (en) 2009-09-02 2011-12-13 Micron Technology, Inc. Small unit internal verify read in a memory device
US8482975B2 (en) 2009-09-14 2013-07-09 Micron Technology, Inc. Memory kink checking
US8495465B1 (en) 2009-10-15 2013-07-23 Apple Inc. Error correction coding over multiple memory pages
US9477636B2 (en) 2009-10-21 2016-10-25 Micron Technology, Inc. Memory having internal processors and data communication methods in memory
US20120246380A1 (en) 2009-10-21 2012-09-27 Avidan Akerib Neighborhood operations for parallel processing
US8650232B2 (en) 2009-10-26 2014-02-11 Via Technologies, Inc. System and method for determination of a horizontal minimum of digital values
KR101634340B1 (ko) 2009-11-03 2016-06-28 삼성전자주식회사 반도체 메모리 장치의 프로그램 방법
US8583896B2 (en) 2009-11-13 2013-11-12 Nec Laboratories America, Inc. Massively parallel processing core with plural chains of processing elements and respective smart memory storing select data received from each chain
KR20110054773A (ko) 2009-11-18 2011-05-25 삼성전자주식회사 비트라인 디스털번스를 개선하는 반도체 메모리 장치
US8089815B2 (en) 2009-11-24 2012-01-03 Sandisk Technologies Inc. Programming memory with bit line floating to reduce channel-to-floating gate coupling
US8605015B2 (en) 2009-12-23 2013-12-10 Syndiant, Inc. Spatial light modulator with masking-comparators
JP2011146102A (ja) 2010-01-15 2011-07-28 Elpida Memory Inc 半導体装置及びデータ処理システム
CN102141905B (zh) 2010-01-29 2015-02-25 上海芯豪微电子有限公司 一种处理器体系结构
US8164942B2 (en) 2010-02-01 2012-04-24 International Business Machines Corporation High performance eDRAM sense amplifier
US8533245B1 (en) 2010-03-03 2013-09-10 Altera Corporation Multipliers with a reduced number of memory blocks
EP2564306A4 (en) 2010-04-27 2017-04-26 Cornell University System and methods for mapping and searching objects in multidimensional space
KR101119371B1 (ko) 2010-04-29 2012-03-06 주식회사 하이닉스반도체 반도체 메모리 장치 및 이의 동작 방법
US8559232B2 (en) 2010-05-03 2013-10-15 Aplus Flash Technology, Inc. DRAM-like NVM memory array and sense amplifier design for high temperature and high endurance operation
US8351278B2 (en) 2010-06-23 2013-01-08 International Business Machines Corporation Jam latch for latching memory array output data
KR101143471B1 (ko) 2010-07-02 2012-05-11 에스케이하이닉스 주식회사 센스앰프 및 이를 포함하는 반도체 장치
US20120017039A1 (en) 2010-07-16 2012-01-19 Plx Technology, Inc. Caching using virtual memory
US8462532B1 (en) 2010-08-31 2013-06-11 Netlogic Microsystems, Inc. Fast quaternary content addressable memory cell
US8347154B2 (en) 2010-09-21 2013-01-01 International Business Machines Corporation Use of hashing function to distinguish random and repeat errors in a memory system
US8904115B2 (en) 2010-09-28 2014-12-02 Texas Instruments Incorporated Cache with multiple access pipelines
US8332367B2 (en) 2010-10-20 2012-12-11 International Business Machines Corporation Parallel data redundancy removal
KR101148352B1 (ko) 2010-11-02 2012-05-21 에스케이하이닉스 주식회사 반도체 메모리 장치 및 그의 동작 방법
JP5528987B2 (ja) 2010-11-11 2014-06-25 ピーエスフォー ルクスコ エスエイアールエル 半導体装置
US8553482B2 (en) 2010-11-29 2013-10-08 Apple Inc. Sense amplifier and sense amplifier latch having common control
WO2012104674A1 (en) 2011-01-31 2012-08-09 Freescale Semiconductor, Inc. Integrated circuit device and method for determining an index of an extreme value within an array of values
KR20120088973A (ko) 2011-02-01 2012-08-09 삼성전자주식회사 로컬 센스앰프 회로 및 이를 포함하는 반도체 메모리 장치
JP2012174016A (ja) 2011-02-22 2012-09-10 Renesas Electronics Corp データ処理装置およびそのデータ処理方法
JP5259765B2 (ja) 2011-03-29 2013-08-07 株式会社東芝 不揮発性半導体メモリ
US8725730B2 (en) 2011-05-23 2014-05-13 Hewlett-Packard Development Company, L.P. Responding to a query in a data processing system
US8706958B2 (en) 2011-09-01 2014-04-22 Thomas Hein Data mask encoding in data bit inversion scheme
KR20140085468A (ko) 2011-10-28 2014-07-07 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. 행 시프팅 시프트가능 메모리
US8891297B2 (en) 2011-11-01 2014-11-18 Micron Technology, Inc. Memory cell sensing
KR101321481B1 (ko) 2011-11-04 2013-10-28 에스케이하이닉스 주식회사 반도체 메모리 장치 및 이를 위한 테스트 회로
US9830158B2 (en) 2011-11-04 2017-11-28 Nvidia Corporation Speculative execution and rollback
KR20130052971A (ko) 2011-11-14 2013-05-23 삼성전자주식회사 비휘발성 메모리 장치의 동작 방법
WO2013078085A1 (en) 2011-11-22 2013-05-30 Mips Technologies, Inc. Processor with kernel mode access to user space virtual addresses
WO2013081588A1 (en) 2011-11-30 2013-06-06 Intel Corporation Instruction and logic to provide vector horizontal compare functionality
CN104011657B (zh) 2011-12-22 2016-10-12 英特尔公司 用于向量计算和累计的装置和方法
KR20130072869A (ko) 2011-12-22 2013-07-02 에스케이하이닉스 주식회사 프리차지 회로 및 비휘발성 메모리 장치
US20130286705A1 (en) 2012-04-26 2013-10-31 David B. Grover Low power content addressable memory hitline precharge and sensing circuit
US8938603B2 (en) 2012-05-31 2015-01-20 Samsung Electronics Co., Ltd. Cache system optimized for cache miss detection
US20130332707A1 (en) 2012-06-07 2013-12-12 Intel Corporation Speed up big-number multiplication using single instruction multiple data (simd) architectures
US9442854B2 (en) * 2012-11-15 2016-09-13 Elwha Llc Memory circuitry including computational circuitry for performing supplemental functions
KR102062301B1 (ko) 2013-01-03 2020-01-03 삼성전자주식회사 메모리 장치의 페이지 복사 방법 및 메모리 시스템의 페이지 관리 방법
EP2755138B1 (en) * 2013-01-11 2018-11-28 Fujitsu Limited Testing implementation parameters of a computer program in a distributed environment
US20140215185A1 (en) 2013-01-29 2014-07-31 Atmel Norway Fetching instructions of a loop routine
US9158667B2 (en) 2013-03-04 2015-10-13 Micron Technology, Inc. Apparatuses and methods for performing logical operations using sensing circuitry
US9171153B2 (en) 2013-05-17 2015-10-27 Hewlett-Packard Development Company, L.P. Bloom filter with memory element
US8964496B2 (en) 2013-07-26 2015-02-24 Micron Technology, Inc. Apparatuses and methods for performing compare operations using sensing circuitry
US8971124B1 (en) 2013-08-08 2015-03-03 Micron Technology, Inc. Apparatuses and methods for performing logical operations using sensing circuitry
US9153305B2 (en) 2013-08-30 2015-10-06 Micron Technology, Inc. Independently addressable memory array address spaces
US9019785B2 (en) 2013-09-19 2015-04-28 Micron Technology, Inc. Data shifting via a number of isolation devices
US9536577B2 (en) 2013-09-26 2017-01-03 Intel Corporation Data movement in memory devices
US9449675B2 (en) 2013-10-31 2016-09-20 Micron Technology, Inc. Apparatuses and methods for identifying an extremum value stored in an array of memory cells
US9430191B2 (en) 2013-11-08 2016-08-30 Micron Technology, Inc. Division operations for memory
US20150270015A1 (en) 2014-03-19 2015-09-24 Micron Technology, Inc. Memory mapping
US9934856B2 (en) 2014-03-31 2018-04-03 Micron Technology, Inc. Apparatuses and methods for comparing data patterns in memory
JP6637906B2 (ja) 2014-05-08 2020-01-29 マイクロン テクノロジー,インク. ハイブリッドメモリキューブシステム相互接続ディレクトリベースキャッシュコヒーレンス方法
CN106415522B (zh) 2014-05-08 2020-07-21 美光科技公司 存储器内轻量一致性
US9704540B2 (en) 2014-06-05 2017-07-11 Micron Technology, Inc. Apparatuses and methods for parity determination using sensing circuitry
US9830999B2 (en) 2014-06-05 2017-11-28 Micron Technology, Inc. Comparison operations in memory
US9455020B2 (en) 2014-06-05 2016-09-27 Micron Technology, Inc. Apparatuses and methods for performing an exclusive or operation using sensing circuitry
US9496023B2 (en) 2014-06-05 2016-11-15 Micron Technology, Inc. Comparison operations on logical representations of values in memory
US9449674B2 (en) 2014-06-05 2016-09-20 Micron Technology, Inc. Performing logical operations using sensing circuitry
US9786335B2 (en) 2014-06-05 2017-10-10 Micron Technology, Inc. Apparatuses and methods for performing logical operations using sensing circuitry
US9779019B2 (en) 2014-06-05 2017-10-03 Micron Technology, Inc. Data storage layout
US9910787B2 (en) 2014-06-05 2018-03-06 Micron Technology, Inc. Virtual address table
US9711206B2 (en) 2014-06-05 2017-07-18 Micron Technology, Inc. Performing logical operations using sensing circuitry
US9711207B2 (en) 2014-06-05 2017-07-18 Micron Technology, Inc. Performing logical operations using sensing circuitry
US10074407B2 (en) 2014-06-05 2018-09-11 Micron Technology, Inc. Apparatuses and methods for performing invert operations using sensing circuitry
US9740607B2 (en) 2014-09-03 2017-08-22 Micron Technology, Inc. Swap operations in memory
US9747961B2 (en) 2014-09-03 2017-08-29 Micron Technology, Inc. Division operations in memory
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
US9589602B2 (en) 2014-09-03 2017-03-07 Micron Technology, Inc. Comparison operations in memory
US9898252B2 (en) 2014-09-03 2018-02-20 Micron Technology, Inc. Multiplication operations in memory
US9904515B2 (en) 2014-09-03 2018-02-27 Micron Technology, Inc. Multiplication operations in memory
US10068652B2 (en) 2014-09-03 2018-09-04 Micron Technology, Inc. Apparatuses and methods for determining population count
US9940026B2 (en) 2014-10-03 2018-04-10 Micron Technology, Inc. Multidimensional contiguous memory allocation
US9836218B2 (en) 2014-10-03 2017-12-05 Micron Technology, Inc. Computing reduction and prefix sum operations in memory
US10163467B2 (en) 2014-10-16 2018-12-25 Micron Technology, Inc. Multiple endianness compatibility
US10147480B2 (en) 2014-10-24 2018-12-04 Micron Technology, Inc. Sort operation in memory
US9779784B2 (en) 2014-10-29 2017-10-03 Micron Technology, Inc. Apparatuses and methods for performing logical operations using sensing circuitry
US9747960B2 (en) 2014-12-01 2017-08-29 Micron Technology, Inc. Apparatuses and methods for converting a mask to an index
US10073635B2 (en) 2014-12-01 2018-09-11 Micron Technology, Inc. Multiple endianness compatibility
US10061590B2 (en) 2015-01-07 2018-08-28 Micron Technology, Inc. Generating and executing a control flow
US10032493B2 (en) 2015-01-07 2018-07-24 Micron Technology, Inc. Longest element length determination in memory
US9583163B2 (en) 2015-02-03 2017-02-28 Micron Technology, Inc. Loop structure for operations in memory
US9741399B2 (en) 2015-03-11 2017-08-22 Micron Technology, Inc. Data shift by elements of a vector in memory
US9898253B2 (en) 2015-03-11 2018-02-20 Micron Technology, Inc. Division operations on variable length elements in memory
US10146537B2 (en) 2015-03-13 2018-12-04 Micron Technology, Inc. Vector population count determination in memory
US10049054B2 (en) 2015-04-01 2018-08-14 Micron Technology, Inc. Virtual register file
US10140104B2 (en) 2015-04-14 2018-11-27 Micron Technology, Inc. Target architecture determination
US9959923B2 (en) 2015-04-16 2018-05-01 Micron Technology, Inc. Apparatuses and methods to reverse data stored in memory
US10073786B2 (en) 2015-05-28 2018-09-11 Micron Technology, Inc. Apparatuses and methods for compute enabled cache
US9704541B2 (en) 2015-06-12 2017-07-11 Micron Technology, Inc. Simulating access lines
US9921777B2 (en) 2015-06-22 2018-03-20 Micron Technology, Inc. Apparatuses and methods for data transfer from sensing circuitry to a controller
US9996479B2 (en) 2015-08-17 2018-06-12 Micron Technology, Inc. Encryption of executables in computational memory
US9697876B1 (en) 2016-03-01 2017-07-04 Micron Technology, Inc. Vertical bit vector shift in memory
US10379772B2 (en) * 2016-03-16 2019-08-13 Micron Technology, Inc. Apparatuses and methods for operations using compressed and decompressed data
US9659605B1 (en) 2016-04-20 2017-05-23 Micron Technology, Inc. Apparatuses and methods for performing corner turn operations using sensing circuitry
KR102617843B1 (ko) * 2016-05-13 2023-12-27 에스케이하이닉스 주식회사 메모리 시스템 및 이의 동작 방법
US9659610B1 (en) 2016-05-18 2017-05-23 Micron Technology, Inc. Apparatuses and methods for shifting data
US9825647B1 (en) * 2016-09-28 2017-11-21 Intel Corporation Method and apparatus for decompression acceleration in multi-cycle decoder based platforms
US9761300B1 (en) 2016-11-22 2017-09-12 Micron Technology, Inc. Data shift apparatuses and methods
US10838899B2 (en) * 2017-03-21 2020-11-17 Micron Technology, Inc. Apparatuses and methods for in-memory data switching networks
US10185674B2 (en) * 2017-03-22 2019-01-22 Micron Technology, Inc. Apparatus and methods for in data path compute operations
US9997212B1 (en) 2017-04-24 2018-06-12 Micron Technology, Inc. Accessing data in memory
US10068664B1 (en) 2017-05-19 2018-09-04 Micron Technology, Inc. Column repair in memory

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101681672A (zh) * 2007-05-24 2010-03-24 美光科技公司 具有本地列选择线的存储器架构
WO2016144726A1 (en) * 2015-03-12 2016-09-15 Micron Technology, Inc. Apparatuses and methods for data movement
CN105990333A (zh) * 2015-03-16 2016-10-05 台湾积体电路制造股份有限公司 存储器电路的跨接结构

Also Published As

Publication number Publication date
TW201839759A (zh) 2018-11-01
US20190121757A1 (en) 2019-04-25
US20210326281A1 (en) 2021-10-21
US11048652B2 (en) 2021-06-29
JP6791522B2 (ja) 2020-11-25
EP3583597A1 (en) 2019-12-25
US10452578B2 (en) 2019-10-22
US20180276151A1 (en) 2018-09-27
US20210042249A1 (en) 2021-02-11
KR20200060778A (ko) 2020-06-01
US10185674B2 (en) 2019-01-22
CN110462738A (zh) 2019-11-15
US20200050563A1 (en) 2020-02-13
KR102306034B1 (ko) 2021-10-01
US11550742B2 (en) 2023-01-10
JP2020512653A (ja) 2020-04-23
KR20190121873A (ko) 2019-10-28
WO2018175129A1 (en) 2018-09-27
EP3583597A4 (en) 2020-03-04
US10817442B2 (en) 2020-10-27
TWI659427B (zh) 2019-05-11

Similar Documents

Publication Publication Date Title
CN109147842B (zh) 同时进行数据路径中计算操作的设备及方法
CN110462738B (zh) 用于数据路径内计算操作的设备及方法
CN108701473B (zh) 用于数据移动的设备及方法
CN108885595B (zh) 用于高速缓冲存储操作的设备及方法
CN110326046B (zh) 用于在数据路径中计算的设备及方法
CN110476212B (zh) 用于存储器中数据交换网络的设备及方法
CN110476210B (zh) 用于存储器内操作的设备及方法
CN112802517B (zh) 用于存储器内操作的设备及方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant