CN106688040B - 存储器中的交换运算 - Google Patents

存储器中的交换运算 Download PDF

Info

Publication number
CN106688040B
CN106688040B CN201580047645.3A CN201580047645A CN106688040B CN 106688040 B CN106688040 B CN 106688040B CN 201580047645 A CN201580047645 A CN 201580047645A CN 106688040 B CN106688040 B CN 106688040B
Authority
CN
China
Prior art keywords
stored
memory cell
bit vector
coupled
row
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
CN201580047645.3A
Other languages
English (en)
Other versions
CN106688040A (zh
Inventor
凯尔·B·惠勒
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 CN106688040A publication Critical patent/CN106688040A/zh
Application granted granted Critical
Publication of CN106688040B publication Critical patent/CN106688040B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0207Addressing or allocation; Relocation with multidimensional access, e.g. row/column, matrix
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0625Power saving in storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/4076Timing circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/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
    • 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
    • G11C7/065Differential amplifiers of latching type
    • 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
    • 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
    • G11C7/1009Data masking during input/output
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/12Bit line control circuits, e.g. drivers, boosters, pull-up circuits, pull-down circuits, precharging circuits, equalising circuits, for bit lines
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30032Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本发明的实例提供与在存储器中执行交换运算有关的设备及方法。实例设备可包含第一群组的存储器单元,其耦合到第一感测线且经配置以存储第一元素。实例设备还可包含第二群组的存储器单元,其耦合到第二感测线且经配置以存储第二元素。实例设备还可包含控制器,其经配置以致使在无需经由输入/输出I/O线来传送数据的情况下通过控制感测电路以执行若干运算而将所述第一元素存储于所述第二群组的存储器单元中且将所述第二元素存储于所述第一群组的存储器单元中。

Description

存储器中的交换运算
技术领域
本发明大体上涉及半导体存储器设备及方法,且更特定地说,本发明涉及与在存储器中执行交换运算有关的设备及方法。
背景技术
存储器装置通常提供为计算机或其它电子系统中的内部半导体集成电路。存在许多不同类型的存储器,其包含易失性存储器及非易失性存储器。易失性存储器可需要电力来维持其数据(例如主机数据、错误数据等等)且尤其可包含随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、同步动态随机存取存储器(SDRAM)与晶闸管随机存取存储器(TRAM)。非易失性存储器可通过在未被供电时保持存储数据而提供永久性数据,且可尤其包含与非(NAND)快闪存储器、或非(NOR)快闪存储器及电阻可变存储器(例如相变随机存取存储器(PCRAM)、电阻性随机存取存储器 (RRAM)及磁阻性随机存取存储器(MRAM),例如自旋力矩转移随机存取存储器(STT RAM))。
电子系统通常包含若干处理资源(例如一或多个处理器),其可检索及执行指令且将所执行指令的结果存储到适合位置。处理器可包括若干功能单元(例如,在本文中称为功能单元电路(FUC)),例如算术逻辑单元(ALU)电路、浮点单元(FPU)电路及/或组合逻辑块),例如,其可执行指令以对数据(例如一或多个操作数)执行逻辑运算(例如“与”、“或”、“非”、“与非”、“或非”及“互斥或”逻辑运算)。
电子系统中的若干组件可涉及将指令提供到功能单元电路来执行。可由(例如)处理资源(例如控制器及/或主机处理器)产生指令。可将数据(例如将对其执行指令以执行逻辑运算的操作数)存储于可由FUC存取的存储器阵列中。可从存储器阵列检索指令及/或数据且可在FUC开始对数据执行指令之前排序及/或缓冲指令及/或数据。此外,因为可通过FUC而在一或多个时钟周期中执行不同类型的运算,所以还可排序及/或缓冲运算及/ 或数据的中间结果。
在许多实例中,处理资源(例如处理器及/或相关联的FUC)可位于存储器阵列的外部,且可(例如经由处理资源与存储器阵列之间的总线)存取数据以执行指令。数据可经由总线从所述存储器阵列移动到所述存储器阵列外部的寄存器。
附图说明
图1是根据本发明的若干实施例的呈包含存储器装置的计算系统的形式的设备的框图。
图2A说明根据本发明的若干实施例的存储器阵列的部分的示意图。
图2B说明根据本发明的若干实施例的存储器阵列的部分的示意图。
图3说明根据本发明的若干实施例的存储器阵列的部分的示意图。
图4A到4Q说明根据本发明的若干实施例的与执行交换运算相关联的若干特定阶段中的阵列的部分的存储器单元的状态。
图5说明根据本发明的若干实施例的与使用感测电路来执行若干逻辑运算相关联的时序图。
图6说明根据本发明的若干实施例的与使用感测电路来执行若干逻辑运算相关联的时序图。
图7说明根据本发明的若干实施例的与使用感测电路来执行若干逻辑运算相关联的时序图。
图8说明根据本发明的若干实施例的与使用感测电路来执行若干逻辑运算相关联的时序图。
图9说明根据本发明的若干实施例的与使用感测电路来执行若干逻辑运算相关联的时序图。
图10说明根据本发明的若干实施例的与使用感测电路来执行若干逻辑运算相关联的时序图。
图11是说明根据本发明的若干实施例的具有可选逻辑运算选择逻辑的感测电路的示意图。
图12是说明根据本发明的若干实施例的由感测电路实施的可选逻辑运算结果的逻辑表。
具体实施方式
本发明可包含与在存储器中执行交换运算有关的设备及方法。可对第一元素(例如,第一向量)及第二元素(例如,第二向量)执行交换运算。元素可存储于耦合到感测线的一群组的存储器单元中。举例来说,耦合到第一感测线的第一群组的存储器单元可经配置以存储第一元素。耦合到第二感测线的第二群组的存储器单元可经配置以存储第二元素。所述交换运算可在无需经由输入/输出(I/O)线来传送数据的情况下通过执行若干运算而将所述第一元素存储于所述第二群组的存储器单元中且将所述第二元素存储于所述第一群组的存储器单元中。
如本文中所使用,第一元素及第二元素可为可存储于(例如,作为位向量)阵列中的数值。如本文中所使用,交换可指将第一元素(其起初(例如,最初)存储于第一群组的存储器单元中)存储于第二群组的存储器单元(第二元素起初存储于其中)中,且将所述第二元素(其起初存储于所述第二群组的存储器单元中)存储于所述第一群组的存储器单元中。
在若干实例中,元素可表示目标及/或其它构造,其可由位向量表示。作为实例,交换运算可经执行以交换表示相应目标的位向量。
本发明的若干实施例可提供比先前方法少的执行若干交换运算(例如交换函数)所涉及的运算量(例如,计算、函数等等)及/或时间。举例来说,可归因于并行(例如,同时)执行各种交换运算的能力而减少计算量及/或时间。如本文中所描述那样执行若干交换运算还可比先前方法减少电力消耗。根据若干实施例,可在无需经由总线(例如数据总线、地址总线、控制总线等等)而从存储器阵列及/或感测电路传送出数据的情况下对元素(例如呈存储于阵列中的位向量的形式的数据)执行交换运算,这可减少将数据传送到主机以执行所述交换运算所需的时间及/或电力。可将所述交换运算的结果提供到(例如)其它单指令多数据(SIMD)运算(例如,位向量除法)及/或高级模式搜索应用。交换运算可涉及:执行若干逻辑运算(例如“与”运算、“或”运算、“移位”运算及“反相”运算等等)。然而,实施例不受限于这些实例。如本文中所使用,SIMD运算可经定义为对多个元素并行(例如,同时)执行相同运算。
在各种先前方法中,可经由包括输入/输出(I/O)线的总线而将待交换的元素(例如,存储于特定群组的存储器单元中的数据及存储于不同特定群组的存储器单元中的数据) 从阵列及感测电路传送到若干寄存器。可由处理资源(例如处理器、微处理器及/或计算引擎)使用所述若干寄存器,所述处理资源可包括经配置以执行适当逻辑运算以交换所述元素及存储结果的ALU电路及/或其它功能单元电路。然而,在给定时间所述ALU电路通常仅可执行单个交换运算,且经由总线将数据从寄存器传送到存储器/从存储器传送到寄存器可涉及大量电力消耗及时间需求。即使所述处理资源位于与存储器阵列相同的芯片上,但在将数据从阵列移出到计算电路(例如ALU)时也会消耗大量电力,其可涉及:执行感测线地址存取(例如,触发列解码信号)以将数据从感测线传送到I/O线上;将数据移动到阵列外围;及将数据提供到(例如)与执行交换运算相关联的寄存器。
在本发明的下列详细描述中,参考构成本发明的部分的附图,且在附图中通过说明而展示可如何实践本发明的一或多个实施例。这些实施例经足够详细地描述以使所属领域的一般技术人员能够实践本发明的所述实施例,且应了解:可利用其它实施例;及可在不脱离本发明的范围的情况下作出过程变化、电变化及/或结构变化。如本文中所使用,标示符“M”、“N”、“J”、“R”、“S”、“U”、“V”、“X”、“Y”及“W”(尤其是相对于图式中的参考数字的标示符)指示:可包含若干所标示的特定特征。如本文中所使用,“若干”特定事物可指此类事物中的一或多者(例如,若干存储器阵列可指一或多个存储器阵列)。
本文中的图遵循编号惯例,其中第一个或前几个数字对应于图号且剩余数字识别图式中的元件或组件。可通过使用类似数字而识别不同图之间的类似元件或组件。举例来说,130可指图1中的元件“30”,且可将图2中的类似元件称为230。应了解,本文中的各种实施例中所展示的元件可经新增、经交换及/或经消除以便提供本发明的若干额外实施例。另外,应了解,图中所提供的元件的比例及相对尺度意在说明本发明的某些实施例,且不应被视为意指限制。
图1是根据本发明的若干实施例的呈包含存储器装置120的计算系统100的形式的设备的框图。如本文中所使用,存储器装置120、存储器阵列130及/或感测电路150还可被单独视为“设备”。
系统100可包含主机110,其耦合到可包含存储器阵列130的存储器装置120。主机110 可为主机系统,例如个人膝上型计算机、台式计算机、数码相机、移动电话或存储器卡读取器以及各种其它类型的主机。主机110可包含系统主板及/或背板且可包含若干处理资源(例如一或多个处理器、微处理器或某一其它类型的控制电路)。系统100可包含单独集成电路,或主机110及存储器装置120两者可位于同一集成电路上。系统100可为(例如) 服务器系统及/或高性能计算(HPC)系统及/或所述HPC系统部分。虽然图1中所展示的实例说明具有冯·诺伊曼(Von Neumann)架构的系统,但本发明的实施例可实施于非冯·诺伊曼架构(例如图灵机(Turing machine))(其可不包含通常与冯·诺伊曼架构相关联的一或多个组件(例如CPU、ALU等等))中。
为清楚起见,系统100已被简化以聚焦于与本发明特定相关的特征。存储器阵列130 可为(例如)DRAM阵列、SRAM阵列、STT RAM阵列、PCRAM阵列、TRAM阵列、RRAM 阵列、NAND快闪存储器阵列及/或NOR快闪存储器阵列。阵列130可包括布置成由存取线(其在本文中可指代字线或选择线)耦合的行及由感测线(其在本文中可指代数字线或数据线)耦合的列的存储器单元。虽然图1中展示单个阵列130,但实施例不受限于此。举例来说,存储器装置120可包含若干阵列130(例如若干DRAM单元库)。将结合图2描述实例DRAM阵列。
存储器装置120包含用于锁存经由I/O总线156(例如数据总线)通过I/O电路144而提供的地址信号的地址电路142。地址信号由行解码器146及列解码器152接收及解码以存取存储器阵列130。可通过使用感测电路150来感测所述感测线上的电压及/或电流变化而从存储器阵列130读取数据。感测电路150可从存储器阵列130读取一页数据(例如一行数据)且锁存所述页数据。I/O电路144可用于经由I/O总线156而与主机110进行双向数据通信。写入电路148用于将数据写入到存储器阵列130。
控制器140解码由控制总线154从主机110提供的信号。这些信号可包含用于控制对存储器阵列130执行的操作(其包含数据读取操作、数据写入操作及数据擦除操作)的芯片启用信号、写入启用信号及地址锁存信号。在各种实施例中,控制器140负责执行来自主机110的指令。控制器140可为状态机、序列发生器或某一其它类型的控制电路。
下文结合图2进一步描述感测电路150的实例。举例来说,在若干实施例中,感测电路150可包括若干感测放大器及若干计算组件,其可包括累加器且可用于结合根据本文中所描述的实施例的执行交换运算而(例如,对与互补感测线相关联的数据)执行逻辑运算。在若干实施例中,感测电路(例如,150)可用于对存储于阵列130中的数据执行交换运算且将交换运算的结果存储回到阵列130,无需经由感测线地址存取来传送数据(例如,无需触发列解码信号)。因而,不同于通过感测电路150外部的处理资源(例如,由与主机 110相关联的处理器及/或位于装置120上(例如,位于控制器140上或别处)的其它处理电路,例如ALU电路)执行交换运算及/或除此之外,可使用感测电路150来执行交换运算。
在各种先前方法中,与(例如)交换运算相关联的数据将经由感测电路而从存储器读取,且被提供到外部ALU。所述外部ALU电路将执行交换运算,且结果可经由局部I/O 线而传送回到阵列。相比而言,在本发明的若干实施例中,感测电路(例如,150)经配置以对存储于存储器阵列130中的存储器单元中的数据执行交换运算且将结果存储回到阵列130,而无需启用耦合到感测电路的局部I/O线。
因而,在若干实施例中,可无需阵列130及感测电路150外部的寄存器及/或ALU来执行所述交换运算,这是因为感测电路150可执行使用存储器阵列130的地址空间来执行交换运算中所涉及的适当计算。另外,可在不使用外部处理资源的情况下执行交换运算。
图2A说明根据本发明的若干实施例的包含感测电路250的存储器阵列230的部分的示意图。在图2A中,存储器单元包括存储元件(例如电容器)及存取装置(例如晶体管)。举例来说,第一存储器单元包括晶体管202-1及电容器203-1,且第二存储器单元包括晶体管202-2及电容器203-2。在此实例中,存储器阵列230是DRAM阵列的1T1C(一个晶体管一个电容器)存储器单元;然而,实施例不受限于此。在若干实施例中,存储器单元可为破坏性读取存储器单元(例如,读取存储于存储器单元中的数据破坏数据,使得最初存储于存储器单元中的数据在被读取之后被刷新)。将存储器阵列230的单元布置成由字线 204-X(行X)、204-Y(行Y)等等耦合的行及由若干对互补数据线(例如, DIGIT(n-1)/DIGIT(n-1)_、DIGIT(n)/DIGIT(n)_、DIGIT(n+1)/DIGIT(n+1)_)耦合的列。对应于每一对互补数据线的个别数据线还可分别指代数据线205-1(D)及205-2(D_)。虽然图2A中仅展示三对互补数据线,但本发明的实施例不受限于此,且存储器单元阵列可包含额外存储器单元列及/或数据线(例如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。如图2A中所展示,存储器单元板可耦合到电容器203-1及203-2中的每一者。存储器单元板可为可在各种存储器阵列配置中将参考电压 (例如接地)施加到其的共用节点。
根据本发明的若干实施例,存储器阵列230耦合到感测电路250。在此实例中,感测电路250包括对应于存储器单元的相应列(例如,耦合到相应互补数据线对)的感测放大器206及计算组件231。感测放大器206可包括交叉耦合锁存器,其在本文中可指代初级锁存器。可(例如)如相对于图2B所描述那样配置感测放大器206。
在图2A所说明的实例中,对应于计算组件231的电路包括静态锁存器264及尤其实施动态锁存器的额外10个晶体管。计算组件231的动态锁存器及/或静态锁存器在本文中可统称为次级锁存器,其可用作累加器。因而,计算组件231可操作为累加器及/或在本文中指代累加器。计算组件231可耦合到数据线205-1(D)及205-2(D_)中的每一者,如图2A 中所展示。然而,实施例不受限于此实例。计算组件231的晶体管可全部为n沟道晶体管 (例如NMOS晶体管);然而,实施例不受限于此。
在此实例中,数据线205-1可耦合到晶体管216-1及239-1的第一源极/漏极区域,以及耦合到负载/通路晶体管218-1的第一源极/漏极区域。数据线205-2可耦合到晶体管216-2 及239-2的第一源极/漏极区域,以及耦合到负载/通路晶体管218-2的第一源极/漏极区域。
负载/通路晶体管218-1及218-2的栅极可共同耦合到LOAD控制信号,或分别耦合到 PASSD/PASSDB控制信号,如下文将进一步讨论。负载/通路晶体管218-1的第二源极/漏极区域可直接耦合到晶体管216-1及239-2的栅极。负载/通路晶体管218-2的第二源极/漏极区域可直接耦合到晶体管216-2及239-1的栅极。
晶体管216-1的第二源极/漏极区域可直接耦合到下拉晶体管214-1的第一源极/漏极区域。晶体管239-1的第二源极/漏极区域可直接耦合到下拉晶体管207-1的第一源极/漏极区域。晶体管216-2的第二源极/漏极区域可直接耦合到下拉晶体管214-2的第一源极/漏极区域。晶体管239-2的第二源极/漏极区域可直接耦合到下拉晶体管207-2的第一源极/漏极区域。下拉晶体管207-1、207-2、214-1及214-2中的每一者的第二源极/漏极区域可一起共同耦合到参考电压线291-1(例如接地(GND))。下拉晶体管207-1的栅极可耦合到AND控制信号线,下拉晶体管214-1的栅极可耦合到ANDinv控制信号线213-1,下拉晶体管 214-2的栅极可耦合到ORinv控制信号线213-2,且下拉晶体管207-2的栅极可耦合到OR控制信号线。
晶体管239-1的栅极可指代节点S1,且晶体管239-2的栅极可指代节点S2。图2A中所展示的电路将累加器数据动态地存储于节点S1及S2上。激活LOAD控制信号致使负载/ 通路晶体管218-1及218-2导通,且由此将互补数据加载到节点S1及S2上。可将LOAD控制信号升高到大于VDD的电压以使全VDD电平传到S1/S2。然而,将LOAD控制信号升高到大于VDD的电压是任选的,且图2A中所展示的电路的功能性不取决于升高到大于VDD的电压的LOAD控制信号。
图2A中所展示的计算组件231的配置具有下列益处:当下拉晶体管207-1、207-2、214-1及214-2在触发感测放大器206之前(例如,在感测放大器206的预接种期间)导通时,使感测放大器的功能性平衡。如本文中所使用,触发感测放大器206是指:启用感测放大器206以设置初级锁存器,且随后停用感测放大器206以保持经设置的初级锁存器。在停用平衡(在感测放大器中)之后但在感测放大器触发之前执行逻辑运算可节约电力使用,这是因为不必使用全导轨电压(例如VDD、GND)来“翻转”感测放大器的锁存器。
使晶体管反相可在执行某些逻辑运算时下拉相应数据线。举例来说,与晶体管214-1 (其具有耦合到ANDinv控制信号线213-1的栅极)串联的晶体管216-1(其具有耦合到动态锁存器的S2的栅极)可经操作以下拉数据线205-1(D),且与晶体管214-2(其具有耦合到 ORinv控制信号线213-2的栅极)串联的晶体管216-2(其具有耦合到动态锁存器的S1的栅极)可经操作以下拉数据线205-2(D_)。
锁存器264可通过耦合到有源负控制信号线212-1(ACCUMB)及有源正控制信号线212-2(ACCUM)而可控地启用,而非经配置以通过耦合到接地及VDD而连续地启用。在各种实施例中,负载/通路晶体管218-1及218-2可各自具有耦合到LOAD控制信号或 PASSD/PASSDB控制信号中的一者的栅极。
根据一些实施例,负载/通路晶体管218-1的栅极可耦合到PASSD控制信号,且负载/ 通路晶体管218-2的栅极可耦合到PASSDb控制信号。在其中晶体管218-1及218-2的栅极分别耦合到PASSD控制信号及PASSDb控制信号中的一者的配置中,晶体管218-1及218-2可为通路晶体管。可不同于负载晶体管而操作通路晶体管(例如,在不同时间及/或在不同电压/电流条件下)。因而,通路晶体管的配置可不同于负载晶体管的配置。
举例来说,负载晶体管可经构造以处置与将数据线耦合到局部动态节点S1及S2相关联的负载,且通路晶体管可经构造以处置与将数据线耦合到相邻累加器(例如,通过移位电路223,如图2A中所展示)相关联的较重负载。根据一些实施例,负载/通路晶体管218-1及218-2可经配置以适应对应于通路晶体管的较重负载,但经耦合且经操作为负载晶体管。经配置为通路晶体管的负载/通路晶体管218-1及218-2也可用作负载晶体管。然而,经配置为负载晶体管的负载/通路晶体管218-1及218-2无法用作通路晶体管。
在若干实施例中,包含锁存器264的计算组件231可包括与其所耦合到的阵列(例如图 2A中所展示的阵列230)的对应存储器单元的晶体管依照节距(on pitch)形成的若干晶体管,所述存储器单元可遵从特定特征大小(例如4F2、6F2等等)。根据各种实施例,锁存器264包含通过负载/通路晶体管218-1及218-2而耦合到一对互补数据线205-1及205-2的四个晶体管208-1、208-2、209-1及209-2。然而,实施例不受限于此配置。锁存器264可为交叉耦合锁存器(例如,一对晶体管(例如n沟道晶体管(例如NMOS晶体管)209-1及 209-2)的栅极与另一对晶体管(例如p沟道晶体管(例如PMOS晶体管)208-1及208-2)的栅极交叉耦合)。如本文中将进一步描述,交叉耦合锁存器264可指代静态锁存器。
可将相应数据线205-1及205-2上的电压或电流提供到交叉耦合锁存器264的相应锁存器输入217-1及217-2(例如次级锁存器的输入)。在此实例中,锁存器输入217-1耦合到晶体管208-1及209-1的第一源极/漏极区域以及耦合到晶体管208-2及209-2的栅极。类似地,锁存器输入217-2可耦合到晶体管208-2及209-2的第一源极/漏极区域以及耦合到晶体管208-1及209-1的栅极。
在此实例中,晶体管209-1及209-2的第二源极/漏极区域共同耦合到负控制信号线 212-1(例如类似于图2B中相对于初级锁存器所展示的控制信号RnIF的接地(GND)或ACCUMB控制信号)。晶体管208-1及208-2的第二源极/漏极区域共同耦合到正控制信号线212-2(例如类似于图2B中相对于初级锁存器所展示的控制信号ACT的VDD或ACCUM 控制信号)。正控制信号212-2可提供供应电压(例如VDD)且负控制信号212-1可为参考电压 (例如接地)以启用交叉耦合锁存器264。根据一些实施例,晶体管208-1及208-2的第二源极/漏极区域共同直接耦合到所述供应电压(例如VDD)且晶体管209-1及209-2的第二源极/ 漏极区域共同直接耦合到所述参考电压(例如接地)以便连续启用锁存器264。
经启用的交叉耦合锁存器264操作以放大锁存器输入217-1(例如第一共用节点)与锁存器输入217-2(例如第二共用节点)之间的差分电压,使得锁存器输入217-1被驱动到经激活的正控制信号电压(例如VDD)或经激活的负控制信号电压(例如接地),且锁存器输入217-2被驱动到经激活的正控制信号电压(例如VDD)或经激活的负控制信号电压(例如接地)中的互补者(例如,另一者)。
图2B说明根据本发明的若干实施例的存储器阵列的部分的示意图。根据各种实施例,感测放大器206可包括交叉耦合锁存器。然而,感测放大器206的实施例不受限于交叉耦合锁存器。作为实例,感测放大器206可为电流模式感测放大器及/或单端感测放大器(例如耦合到一个数据线的感测放大器)。此外,本发明的实施例不受限于折叠数据线架构。
在若干实施例中,感测放大器(例如206)可包括与其所耦合到的阵列(例如图2A中所展示的230)的对应计算组件231及/或存储器单元的晶体管依照节距形成的若干晶体管,所述存储器单元可遵从特定特征大小(例如4F2、6F2等等)。感测放大器206包括锁存器 215,其包含耦合到一对互补数据线205-1及205-2的四个晶体管。锁存器215可为交叉耦合锁存器(例如,一对晶体管(例如n沟道晶体管(例如NMOS晶体管)227-1及227-2)的栅极与另一对晶体管(例如p沟道晶体管(例如PMOS晶体管)229-1及229-2)的栅极交叉耦合)。如本文中将进一步描述,包括晶体管227-1、227-2、229-1及229-2的锁存器215可指代初级锁存器。然而,实施例不受限于此实例。
可将相应数据线205-1及205-2上的电压及/或电流提供到交叉耦合锁存器215的相应锁存器输入233-1及233-2(例如次级锁存器的输入)。在此实例中,锁存器输入233-1耦合到晶体管227-1及229-1的第一源极/漏极区域以及耦合到晶体管227-2及229-2的栅极。类似地,锁存器输入233-2可耦合到晶体管227-2及229-2的第一源极/漏极区域以及耦合到晶体管227-1及229-1的栅极。计算组件231(例如,累加器)可耦合到交叉耦合锁存器215的锁存器输入233-1及233-2,如图中所展示;然而,实施例不受限于图2B中所展示的实例。
在此实例中,晶体管227-1及227-2的第二源极/漏极区域共同耦合到有源负控制信号 228(RnIF)。晶体管229-1及229-2的第二源极/漏极区域共同耦合到有源正控制信号265 (ACT)。ACT信号265可为供应电压(例如VDD)且RnIF信号可为参考电压(例如接地)。激活信号228及265启用交叉耦合锁存器215。
经启用的交叉耦合锁存器215操作以放大锁存器输入233-1(例如第一共用节点)与锁存器输入233-2(例如第二共用节点)之间的差分电压,使得锁存器输入233-1被驱动到ACT信号电压及RnIF信号电压中的一者(例如,被驱动到VDD及接地中的一者),且锁存器输入233-2被驱动到ACT信号电压及RnIF信号电压中的另一者。
感测放大器206还可包含经配置以使数据线205-1及205-2平衡(例如,结合使感测放大器准备感测操作)的电路。在此实例中,所述平衡电路包括晶体管224,其具有耦合到晶体管225-1的第一源极/漏极区域及数据线205-1的第一源极/漏极区域。晶体管224的第二源极/漏极区域可耦合到晶体管225-2的第一源极/漏极区域及数据线205-2。晶体管224 的栅极可耦合到晶体管225-1及225-2的栅极。
晶体管225-1及225-2的第二源极/漏极区域耦合到可等于VDD/2的平衡电压238(例如 VDD/2),其中VDD是与阵列相关联的供应电压。晶体管224、225-1及225-2的栅极可耦合到控制信号226(EQ)。因而,激活EQ启用晶体管224、225-1及225-2,其使数据线205-1 有效地短接到数据线205-2,使得数据线205-1及205-2平衡到平衡电压VDD/2。根据本发明的各种实施例,可使用感测放大器来执行若干逻辑运算,且将结果存储于计算组件(例如累加器)中。
如图2A中所展示,感测放大器206及计算组件231可经由移位电路223而耦合到阵列 230。在此实例中,移位电路223包括分别耦合到数据线205-1及205-2的一对隔离装置(例如隔离晶体管221-1及221-2)。隔离晶体管221-1及221-2耦合到控制信号222(NORM),控制信号222在被激活时启用(例如,接通)隔离晶体管221-1及221-2以将对应感测放大器206及计算组件231耦合到存储器单元的对应列(例如,耦合到一对对应互补数据线205-1及205-2)。根据各种实施例,隔离晶体管221-1及221-2的导通可指代移位电路223的“正常”配置。
在图2A所说明的实例中,移位电路223包含耦合到互补控制信号219(SHIFT)的另一对(例如第二对)隔离装置(例如隔离晶体管221-3及221-4),其可(例如)在解除激活NORM时被激活。隔离晶体管221-3及221-4可经操作(例如,经由控制信号219)使得特定感测放大器206及计算组件231耦合到一对不同互补数据线(例如不同于隔离晶体管221-1及 221-2将特定感测放大器206及计算组件231耦合到其互补数据线对的一对互补数据线),或可将特定感测放大器206及计算组件231耦合到另一存储器阵列(且使特定感测放大器 206及计算组件231与第一存储器阵列隔离)。根据各种实施例,例如,移位电路223可经布置为感测放大器206的部分(例如,布置于感测放大器206内)。
虽然图2A中所展示的移位电路223包含用于将特定感测电路250(例如特定感测放大器206及对应计算组件231)耦合到一对特定互补数据线205-1及205-2(例如DIGIT(n)及DIGIT(n)_)的隔离晶体管221-1及221-2且隔离晶体管221-3及221-4经布置以在特定方向上将特定感测电路250耦合到一对相邻互补数据线(例如展示于图2A中的右边的相邻数据线DIGIT(n+1)及DIGIT(n+1)_),但本发明的实施例不受限于此。举例来说,移位电路可包含:隔离晶体管221-1及221-2,其用于将特定感测电路耦合到一对特定互补数据线 (例如DIGIT(n)及DIGIT(n)_);及隔离晶体管221-3及221-4,其经布置以便用于在另一特定方向上将特定感测电路耦合到一对相邻互补数据线(例如展示于图2A中的左边的相邻数据线DIGIT(n-1)及DIGIT(n-1)_)。
本发明的实施例不受限于图2A中所展示的移位电路223的配置。在若干实施例中,可在(例如)不经由I/O线(例如图3中所展示的I/O线334)而从感测电路250传送出数据的情况下结合执行各种运算(例如逻辑运算及/或算术运算)(例如,结合感测放大器206及计算组件231)而操作移位电路223,例如图2A中所展示的移位电路。虽然移位电路223经展示为与感测电路250(例如,图1中的感测电路150)分离,但是移位电路223可视作感测电路 250(例如,图1中的感测电路150)的部分。
虽然图2A中未展示,但存储器单元的每一列可耦合到列解码线(例如,图3中所展示的解码线310-0到310-W),所述列解码线可经激活以经由局部I/O线(例如,图3中所展示的I/O线334)而将数据值从对应感测放大器206及/或计算组件231传送到阵列外部的控制组件,例如外部处理资源(例如,主机处理器及/或其它功能单元电路)。所述列解码线可耦合到列解码器(例如,图1中所展示的列解码器152)。然而,如本文中所描述,在若干实施例中,无需经由此类I/O线而传送数据以根据本发明的实施例而执行逻辑运算。在若干实施例中,可结合感测放大器206及计算组件231而操作移位电路223以(例如)在不将数据传送到阵列外部的控制组件的情况下执行各种运算(例如,结合执行减法、加法、乘法、除法等等的逻辑运算)。
可在若干模式中操作感测电路250以执行逻辑运算,所述若干模式包含:第二模式,其中逻辑运算的结果最初存储于感测放大器206中;及第一模式,其中逻辑运算的结果最初存储于计算组件231中。下文相对于图5及6而描述感测电路250在第一模式中的操作,且下文相对于图7到10而描述感测电路250在第二模式中的操作。另外,关于第一操作模式,可在感测前模式(例如,在逻辑运算控制信号激活之前触发感测放大器)及感测后模式(例如,在逻辑运算控制信号激活之后触发感测放大器)两者中操作感测电路250,其中逻辑运算的结果最初存储于感测放大器206中。
如下文将进一步描述,感测放大器206可结合计算组件231而操作以执行各种逻辑运算(使用来自阵列的数据作为输入)。在若干实施例中,可在无需经由数据线地址存取而传送数据的情况下(例如,无需触发列解码信号,使得数据经由局部I/O线而从阵列及感测电路传送到外部电路)将逻辑运算的结果存储回到阵列。因而,本发明的若干实施例可能够使用比各种先前方法少的电力来执行逻辑运算。另外,因为若干实施例无需横跨I/O 线而传送数据(例如,在存储器与分立处理器之间)以执行各种运算(例如计算函数),所以若干实施例可实现比先前方法有所增强的并行处理能力。
图3说明根据本发明的若干实施例的存储器阵列330的部分的示意图。阵列330可包含耦合到存取线304-0、304-1、304-2、304-3、304-4、304-5、304-6…304-R的行及感测线305-0、305-1、305-2、305-3、305-4、305-5、305-6、305-7…305-S的列(其可统称为存取线304及感测线305)的存储器单元303-0、303-1、303-2、303-3、303-4、303-5、303-6、 303-7、303-8…303-J(例如,统称为存储器单元303)。存储器阵列330不受限于特定数目个存取线及/或感测线,且术语“行”及“列”的使用不意指存取线及/或感测线的特定物理结构及/或定向。虽然图中未描绘,但存储器单元的每一列可与一对对应互补感测线 (例如图2A中的互补感测线205-1及205-2)相关联。
存储器单元的每一列可耦合到感测电路(例如图1中所展示的感测电路150及2A中所展示的感测电路250)。在此实例中,所述感测电路包括耦合到相应感测线305-0、305-1、305-2、305-3、305-4、305-5、305-6、305-7…305-S的若干感测放大器306-0、306-1、306-2、306-3、306-4、306-5、306-6、306-7…306-U(例如,统称为感测放大器306)。感测放大器306经由存取装置(例如晶体管)308-0、308-1、308-2、308-3、308-4、308-5、308-6、 308-7…308-V而耦合到输入/输出(I/O)线334(例如局部I/O线)。在此实例中,所述感测电路还包括耦合到相应感测线的若干计算组件331-0、331-1、331-2、331-3、331-4、331-5、 331-6、331-7…331-X(例如,统称为计算组件331)。列解码线310-0到310-W分别耦合到晶体管308-0到308-V的栅极,且可经选择性地激活以将由相应感测放大器306-0到306-U 感测及/或存储于相应计算组件331-0到331-X中的数据传送到次级感测放大器312及/或 (例如,经由I/O线334)传送到阵列330外部的处理资源。在若干实施例中,计算组件331 可与其对应列的存储器单元及/或与对应感测放大器306依照节距形成。
所述感测电路(例如,计算组件331及感测放大器306)经配置以根据本文中所描述的若干实施例执行交换运算。结合图4A到4Q所描述的实例说明可如何对存储于阵列(例如阵列330)中的元素执行交换运算。如下文所描述,元素可经存储使得若干元素中的每一者(例如,对应于逻辑“1”或逻辑“0”的数据)存储于共同耦合到相应若干感测线(例如, 305-0到305-S)中的一者的存储器单元中。举例来说,第一元素可存储于耦合到感测线 305-0的一群组的存储器单元中,而第二元素可存储于耦合到感测线305-1的一群组的存储器单元中等等。在若干实施例中,可对选定相邻元素对(例如,选定元素对各自包括存储于耦合到偶数感测线的存储器单元中的第一元素及存储于耦合到相邻奇数感测线的存储器单元中的第二元素)执行交换运算。所述被交换的元素还可共同耦合到若干存取线 (例如,304-0到304-R)。举例来说,考虑六个元素,每一元素存储于共同耦合到感测线 305-0到305-5中的一者的一群组的三个存储器单元中。在此实例中,对应于所述相应元素中的每一者的第一存储器单元可共同耦合到第一存取线(例如,304-0),对应于所述相应元素中的每一者的第二存储器单元可共同耦合到第二存取线(例如,304-1),且对应于所述相应元素中的每一者的第三存储器单元可共同耦合到第三存取线(例如,304-2)。
图4A到4Q说明根据本发明的若干实施例的与执行交换运算相关联的若干特定阶段中的阵列430的部分的存储器单元的状态(例如,逻辑值)。阵列430可为例如图3中所描述的阵列330的阵列。图4A到4Q说明耦合到若干存取线404-0(行0)、404-1(行1)、404-2(行2)、404-3(掩码行)、404-4(经移位掩码行)、404-5(暂时行1)及404-6(暂时行2)且耦合到若干感测线405-0(列0)、405-1(列1)、405-2(列2)、405-3(列3)、405-4(列4)及405-5(列 5)的存储器单元的状态(例如,逻辑“1”或逻辑“0”)。图4A到4Q还说明在交换运算的各种阶段(例如,与执行下文所描述的实例伪码相关联的各种阶段)期间耦合到相应感测线405-0到405-5的感测电路450(例如,图3中所展示的计算组件331及/或感测放大器306) 的状态。
图4A到4Q的实例可包含六个元素,每一元素存储于共同耦合到感测线405-0到405-5 中的一者的一群组的存储器单元中。所述六个元素是值(例如,十进制值)且作为二进制位向量488-0、488-1、488-2、488-3、488-4及488-5(统称为位向量488)而存储于阵列430 中。在此实例中,所述元素中的每一者存储于耦合到特定感测线及存取线404-0、404-1及404-2的三个存储器单元中。举例来说,由位向量488-0(例如,[011])表示的元素存储于耦合到感测线405-0及存取线404-0到404-2的存储器单元中,由位向量488-1(例如,[001])表示的元素存储于耦合到感测线405-1及存取线404-0到404-2的存储器单元中,由位向量488-2(例如,[010])表示的元素存储于耦合到感测线405-2及存取线404-0到404-2的存储器单元中,由位向量488-3(例如,[100])表示的元素存储于耦合到感测线405-3及存取线404-0到404-2的存储器单元中,由位向量488-4(例如,[100])表示的元素存储于耦合到感测线405-4及存取线404-0到404-2的存储器单元中,且由位向量488-5(例如,[010])表示的元素存储于耦合到感测线405-5及存取线404-0到404-2的存储器单元中。图4A到 4Q还指示由相应位向量488-0到488-5表示的元素的值(例如,十进制值)489-0到489-5(统称为值489)。举例来说,如图4A中所展示,位向量488-0(例如,[011])对应于值489-0(例如,十进制值3),位向量488-1(例如,[001])对应于值489-1(例如,十进制值1),位向量 488-2(例如,[010])对应于值489-2(例如,十进制值2),位向量488-3(例如,[100])对应于值489-3(例如,十进制值4),位向量488-4(例如,[100])对应于值489-4(例如,十进制值4),且位向量488-5(例如,[010])对应于值489-5(例如,十进制值2)。
虽然,在图4A到4Q的实例中,所述元素存储于耦合到相应感测线的三个存储器单元中使得其由3位的位向量表示,但是实施例不受限于此。举例来说,所述元素可存储于三个以上或三个以下存储器单元中。此外,在图4A到4Q中,位向量488-0到488-5的LSB (最低有效位)存储于耦合到存取线404-0的存储器单元中,下一LSB存储于耦合到存取线 404-1的存储器单元中,且MSB(最高有效位)存储于耦合到存取线404-2的存储器单元中;然而,实施例不受限于特定位顺序。此外,可由特定位向量(例如,488-0到488-5)表示多个元素。举例来说,感测线405-0可耦合到存储多个元素(其可与存储于耦合到不同感测线(例如,405-1)的存储器单元中的对应元素交换)的存储器单元。
图4A到4Q中所描述的实例涉及使选定相邻元素对(例如,选定元素对各自包括存储于耦合到特定感测线的存储器单元中的元素及存储于耦合到相邻感测线的存储器单元中的元素)交换。明确地说,图4A到4Q的实例涉及交换经存储为位向量488-0及488-1(例如,第一元素对)的元素及交换经存储为位向量488-2及488-3(例如,第二元素对)的元素。在此实例中,不交换经存储为位向量488-4及488-5(例如,第三元素对)的元素。因而,结合图4A到4Q所描述的交换运算导致起初存储于耦合到感测线405-0的存储器单元中的元素(例如,表示十进制值3的位向量[011])存储于耦合到感测线405-1的存储器单元中,且起初存储于耦合到感测线405-1的存储器单元中的元素(例如,表示十进制值1的位向量 [001])存储于耦合到感测线405-0的存储器单元中,使得继交换之后,位向量488-0是[001] 且位向量488-1是[011]。类似地,结合图4A到4Q所描述的交换运算导致起初存储于耦合到感测线405-2的存储器单元中的元素(例如,表示十进制值2的位向量[010])存储于耦合到感测线405-3的存储器单元中,且起初存储于耦合到感测线405-3的存储器单元中的元素(例如,表示十进制值4的位向量[100])存储于耦合到感测线405-2的存储器单元中,使得继交换之后,位向量488-2是[100]且位向量488-3是[010]。在若干实施例中,交换运算可经执行使得所述被交换元素对的交换并行发生。
在若干实施例中,共同耦合到特定存取线(404)的存储器单元的状态表示对应于位向量的经存储数据模式(例如,位模式)。举例来说,在图4A到4Q的实例中,共同耦合到存取线404-0(行0)及感测线405-0到405-5的存储器单元表示对应于位向量474-0(例如,如图4A中所展示的[110000])(可称其为“行0位向量”)的经存储数据模式。共同耦合到存取线404-1(行1)及感测线405-0到405-5的存储器单元表示对应于位向量474-1(例如,如图4A中所展示的[101001])(可称其为“行1位向量”)的经存储数据模式。共同耦合到存取线404-2(行2)及感测线405-0到405-5的存储器单元表示对应于位向量474-2(例如,如图4A中所展示的[000110])(可称其为“行2位向量”)的经存储数据模式。因而,位向量 474-0包括相应位向量488的LSB,位向量474-1包括相应位向量488的下一LSB,且位向量 474-2包括相应位向量488的MSB(例如,表示对应于相应感测线405-0到405-5的元素的位向量)。在此实例中,位向量488的LSB可与指数“0”(例如,n=0)相关联,位向量488的下一LSB可与指数“1”(例如,n=1)相关联,且位向量488的MSB可与指数“2”(例如, n=2)相关联。
在若干实施例中,除存储元素(例如,由位向量488表示的元素)的若干群组的存储器单元之外的若干群组的存储器单元可用于执行交换运算。额外群组的存储器单元可为共同耦合到相应存取线及对应于经存储元素的感测线(例如,图4A到4Q的实例中的感测线405-0到405-5)的若干群组的存储器单元。作为实例,第一额外群组的存储器单元可用于存储位模式,所述位模式可用作可定义交换哪些元素对的掩码。在图4A到4Q中所展示的实例中,耦合到存取线404-3(掩码行)及感测线405-0到405-5的存储器单元用作可定义交换哪些元素对的掩码。掩码行404-3的存储器单元的状态表示对应于位向量476(其可称为“掩码行位向量”)的经存储数据模式。第二额外群组的存储器单元还可用于存储位模式,所述位模式结合执行交换运算时可用作掩码。在图4A到4Q中所展示的实例中,耦合到存取线404-4(经移位掩码行)及感测线405-0到405-5的存储器单元在交换运算期间用作掩码。经移位掩码行404-4的存储器单元的状态表示对应于位向量478(其可称为“经移位掩码行位向量”)的经存储数据模式。在此实例中且如图4B中所展示,对应于经移位掩码行位向量的数据模式是对应于所述掩码行位向量向右位移一位位置的数据模式。若干额外群组的存储器单元结合执行交换运算时可用作暂时存储器。图4A到4Q中所展示的实例可包含耦合到存取线404-5(暂时行1)及感测线405-0到405-5的用作暂时存储器的额外群组的存储器单元及耦合到存取线404-6(暂时行2)及感测线405-1到405-5的用作暂时存储器的额外群组的存储器单元。暂时行1 404-5的存储器单元的状态表示对应于位向量480(其可称为“暂时行1位向量”)的经存储数据模式,且暂时行2 404-6的存储器单元的状态表示对应于位向量482(其可称为“暂时行2位向量”)的经存储数据模式。在若干实施例中,掩码行404-3、经移位掩码行404-4、暂时行1 404-5及暂时行2 404-6对用户而言是不可寻址的(例如,耦合到所述存取线的存储器单元可不为阵列430的可寻址空间的部分)。
图4A到4Q还说明在交换运算的各种阶段期间耦合到相应感测线405-0到405-5的感测电路450(例如,图3中所展示的计算组件331及/或感测放大器306)的状态。感测电路450 的状态(例如,经锁存逻辑值)表示对应于位向量483的经存储数据模式。
如下文所描述,在若干实施例中,交换存储于阵列(例如,阵列430)中的选定元素可包含执行若干逻辑运算,例如“与”运算、“或”运算、“非”运算、“与非”运算、“或非”运算及/或“移位”运算。举例来说,可使用存储于所述阵列中的数据作为输入而执行所述逻辑运算,且可在不经由I/O线从所述阵列传送数据的情况下执行所述逻辑运算。在若干实施例中,位向量474-0、474-1、474-2、476、478、480、482及483结合交换选定元素时用作所述逻辑运算的操作数。
下列伪码表示可执行以根据本发明的若干实施例而在存储器中执行若干交换运算的指令。使用参考数字1到4来指代实例伪码。举例来说,参考数字一(1)对应于如下列伪码中所展示的“readRow(掩码行)”,参考数字二(2)对应于如下列伪码中所展示的“shift(向右)”等等。
1.readRow(掩码行);
2.shift(向右);
3.writeRow(经移位掩码行);
4.for(n=0;n<元素宽度;n++)do:
a.readRow(行(n));
b.writeRow(暂时行1);
c.shift(向右);
d.andRow(经移位掩码行);
e.writeRow(暂时行2);
f.readRow(经移位掩码行);
g.inv();
h.andRow(行(n));
i.orRow(暂时行2);
j.writeRow(行(n));
k.readRow(暂时行1);
l.andRow(经移位掩码行);
m.shift(向左);
n.writeRow(暂时行2);
o.readRow(掩码行);
p.inv();
q.andRow(行(n));
r.orRow(暂时行2);
s.writeRow(行(n));
为了讨论,会将上述伪码分成设置阶段及迭代阶段。在此实例中,图4A及4B及由参考数字1到3指代的伪码对应于设置阶段。
图4C到4Q及由参考数字4(例如,4.a到4.s)指代的伪码对应于迭代阶段。与迭代阶段相关联的迭代(例如,“For”循环)中的每一者可进一步分成第一阶段、第二阶段、第三阶段、第四阶段及第五阶段,其中所述第一阶段对应于由参考数字4.a及4.b指代的伪码,所述第二阶段对应于由参考数字4.c到4.e指代的伪码,所述第三阶段对应于由参考数字 4.f到4.j指代的伪码,所述第四阶段对应于由参考数字4.k到4.n指代的伪码,且所述第五阶段对应于由参考数字4.o到4.s指代的伪码。在迭代阶段的执行期间对应于位向量474-0、 474-1、474-2、476、478、480、482及483的数据模式展示于图4C到4Q 中。
迭代阶段可包含执行若干运算迭代。举例来说,对应于参考数字4(例如,for(n=0;n< 元素宽度;n++)do:)的伪码表示与指数n相关联的“For”循环。指数n最初可被设置成零(例如,n=0)且在每次迭代之后(例如,在“For”循环的每次迭代之后)递增(例如,n++)。在此实例中,当n的值等于表示被交换元素的位向量488的宽度时(例如,在此实例中,当n=3 时),“For”循环终止。因而,所述“For”循环所执行的次数(例如,迭代次数)等于位向量488的宽度(例如,在此实例中是3位)。实施例不受限于特定类型的循环结构。举例来说,除其它可行循环结构外,参考数字4可表示“while”循环。
如下文进一步描述,在此实例中,图4C到4G对应于迭代阶段的第一迭代(例如,对应于由4.a到4.s指代的伪码的“For”循环的初始执行),图4H到4L对应于所述迭代阶段的第二迭代,且图4M到4Q对应于所述迭代阶段的第三迭代。
如上文所描述,图4A说明作为位向量488-0到488-5而存储于阵列430中(例如,在交换运算之前)的若干元素。掩码行位向量476可定义待被交换的选定相邻元素对。举例来说,可从主机提供掩码行位向量476。在此实例中,可通过耦合到偶数感测线的掩码行 404-3的存储器单元是否存储逻辑“1”而定义待被交换的元素对。举例来说,在对应于偶数感测线的位向量476的位位置中的逻辑“1”指示对应元素(例如,存储于耦合到所述特定偶数感测线的存储器单元中的元素)将与相邻元素(例如,存储于耦合到相邻奇数感测线的存储器单元中的元素)交换。举例来说,在图4A中,位向量476是[101000],其指示“1”存储于对应于偶数感测线405-0及405-2的存储器单元中且“0”存储于对应于偶数感测线405-4的存储器单元中。因而,掩码行位向量476将待被交换的元素对定义为耦合到感测线405-0及405-1的元素及耦合到感测线405-2及405-3的元素(例如,最初存储于耦合到感测线405-0的存储器单元中的元素与最初存储于耦合到感测线405-1的存储器单元中的元素交换,且最初存储于耦合到感测线405-2的存储器单元中的元素与最初存储于耦合到感测线405-3的存储器单元中的元素交换)。如本文中所使用,“偶数交换元素”可指待被交换且存储于耦合到偶数感测线(例如,偶数列)的存储器单元中的元素,且“奇数交换元素”可指待被交换且存储于耦合到奇数感测线(例如,奇数列)的存储器单元中的对应相邻元素。因而,在此实例中,由位向量488-0及488-2表示的元素可称为偶数交换元素,且由位向量488-1及488-3表示的元素可称为奇数交换元素。
在图4A到4Q中,对应于位向量474-0、474-1、474-2、476、478、480、482及483的存储器单元的状态的变化经加粗指示。举例来说,在图4B中,对应于位向量478(例如,耦合到存取线404-4及感测线405-0到405-5的存储器单元)的数据模式经加粗展示以指示对应于位向量476的逻辑值在交换运算的阶段期间已改变。
结合图4A到4Q所描述的交换运算的设置阶段可包含执行对应于参考数字1到3的伪码。对应于参考数字1到3的伪码与产生经移位掩码并将其存储于阵列430中(例如,将其作为位向量478而存储于经移位掩码行404-4中)相关联。经移位掩码可用于隔离奇数交换元素(例如,在此实例中,对应于奇数感测线405-1及405-3且由相应位向量488-1及488-3表示的元素)。
对应于参考数字1(例如,“readRow(掩码行)”)的伪码涉及将经存储为掩码行位向量 476(例如,[101000])的数据模式读取到对应于位向量483的感测电路450(例如,计算组件331-0到331-5及/或感测放大器306-0到306-5)中。如本文中所使用,将位向量存储于感测电路中是定义为将所述位向量存储于与所述感测电路相关联的若干计算组件中及/或存储于与所述感测电路相关联的若干感测放大器中。
对应于参考数字2(例如,“shift(向右)”)的伪码与对位向量483执行“移位”运算相关联。所述“移位”运算将存储于感测电路450中的位向右位移一位位置。在此实例中,在所述“移位”运算之前,位向量483是[101000](例如,对应于掩码行位向量476(其已被读取到对应于位向量483的感测电路450中)的数据模式)。在所述“移位”运算之后且如图4B中所展示,位向量483是[010100]。
对应于参考数字3(例如,“writeRow(暂时行1)”)的伪码与将存储于感测电路450中 (例如,作为位向量483)的数据模式写入到存储经移位掩码行位向量478的存储器单元相关联。如下文进一步描述,举例来说,可通过激活存取线404-4而将对应于位向量483的数据模式从感测电路450复制到存储位向量478的存储器单元(例如,耦合到存取线404-4 的存储器单元)。如图4B中所展示,对应于位向量483(例如,[010100])的数据模式(其是对对应于位向量476(例如,[101000])的数据模式执行“移位”运算的结果)存储于对应于经移位掩码行478的存储器单元中。举例来说,经移位掩码行位向量478是[010100]。
图4C到4G对应于迭代阶段的第一迭代(例如,对应于由4.a到4.s指代的伪码的“For”循环的初始执行且对于所述第一迭代,指数n是0)。第一迭代的第一阶段对应于由参考数字4.a及4.b指代的伪码及4C且与将“行n位向量”的数据模式存储于对应于暂时行1位向量480的存储器单元中相关联。举例来说,存储于包括待被交换数据的第一行存储器单元(例如,耦合到存取线404-0的存储器单元)中的数据的副本是存储于对应于暂时行1位向量480的存储器单元中。对于此迭代(例如,第一迭代),指数“n”是0(例如,对于“For”循环的第一迭代,n=0)。在伪码的参考数字4.a处(例如,“readRow(行(n))”),将对应于“行n位向量”的数据模式读取到对应于位向量483的感测电路中。因为对于“For”循环的第一迭代,n=0,所以将对应于行0位向量474-0(例如,[110000])的数据模式读取到感测电路450中,使得位向量483是[110000],如图4C中所展示。在参考数字4.b处(例如,“writeRow(暂时行1)”),将对应于位向量483的数据模式复制到存储暂时行1位向量480 的存储器单元。因而,暂时行1位向量480是[110000],如图4C中所展示。
图4D及由参考数字4.c到4.e指代的伪码对应于迭代阶段的第二阶段且与下列各者相关联:对位向量483执行“移位”运算、将经移位位向量及经移位掩码行位向量478进行“与”及将所得数据模式存储到对应于暂时行2位向量482的存储器单元。在伪码的参考数字4.c处(例如,“shift(向右)”),将经存储为位向量483的数据模式向右位移一位位置,使得位向量483是[011000],其是先前位向量483(例如,[110000])向右位移一位位置。在参考数字4.d处(例如,“andRow(经移位掩码行)”),对位向量478(例如,[010100])及位向量483(例如,[011000])执行“与”运算。
如本文中所使用,对第一位向量及第二位向量执行逻辑运算可包含在所述位向量的对应位位置处对相应位中的每一者并行地执行所述逻辑运算。作为实例,对第一位向量“a”(例如,[a0 a1 a2 a3])及第二位向量“b”(例如,[b0 b1 b2 b3])执行逻辑“或”运算的结果是位向量“c”(例如,[c0 c1 c2 c3]),其中c0=a0“或”b0、c1=a1“或”b1、c2=a2“或” b2、且c3=a3“或”b3。举例来说,对位向量[1110]及对位向量[1000]执行“或”运算将导致位向量[1110](例如,所得位向量的最左边位是“1”,这是因为“1”“1”的“或”运算结果是“1”;下一位是“1”,这是因为“1”“0”的“或”运算结果是“1”;下一位是“1”,这是因为“1”“0”的“或”运算结果是“1”;且最右边位是“0”,这是因为“0”“0”的“或”运算结果是“0”)。
在此实例中,将位向量478及483进行“与”(例如,[010100]“与”[011000])导致[010000]),其经存储为位向量483(例如,所述“与”运算的结果存储于感测电路450中)。因而,位向量483是[010000],如图4D中所展示。在参考数字4.e处(例如,“writeRow(暂时行2)”),将对应于位向量483的数据模式复制到存储暂时行2位向量482的存储器单元。因而,暂时行2位向量482是[010000],如图4D中所展示。应注意,可通过使位向量483(其存储对应于列0位向量474-0的数据模式)及掩码行位向量476进行“与”且接着在复制到暂时行2位向量482之前对位向量483执行向右移位而获得所述第二阶段的相同结果。
图4E及由参考数字4.f到4.j指代的伪码对应于迭代阶段的第三阶段且与下列各者相关联:对对应于经移位掩码行位向量478的数据模式执行“反相”运算、对所述“反相”运算的结果及行n位向量(例如,对于此迭代是474-0)执行“与”运算、对所述“与”运算的结果及暂时行2位向量482执行“或”运算及将所述“或”运算的结果写入回到存储所述行n位向量的存储器单元。在伪码的参考数字4.f处(例如,“readRow(经移位掩码行)”),将经存储为位向量478的数据模式读取到感测电路450中使得位向量483是 [010100]。在参考数字4.g处(例如,“inv()”),对位向量483执行“反相”运算使得位向量483存储[101011](例如,其先前数据模式的反相)。在参考数字4.h处(例如,“andRow(行 (n))”),对位向量483(例如,[101011])及位向量474-0(例如,[110000])执行“与”运算,结果保存于感测电路450中使得位向量483是[100000]。所述“与”运算的结果(例如, [100000])(其经存储为位向量483)与暂时行2位向量482(例如,[010000])进行“或”运算,其中结果(例如,[110000])作为位向量483而保存于感测电路450中。将所述“或”运算的结果(例如,[110000])复制到存储位向量474-0的存储器单元。因而,如图4E中所展示,在所述第三阶段之后,位向量474-0及483是[110000]。
图4F及由参考数字4.k到4.n指代的伪码对应于迭代阶段的第四阶段且与下列各者相关联:对经移位掩码行位向量478及暂时行1位向量480执行“与”运算、将所述“与”运算的结果向左位移一位位置及将向左移位的结果写入到存储暂时行2位向量482的存储器单元。在伪码的参考数字4.k处(例如,“readRow(暂时行1)”),将经存储为位向量480 的数据模式读取到感测电路450中使得位向量483是[110000]。在参考数字4.l处(例如,“andRow(经移位掩码行)”),对位向量483(例如,[110000])及位向量478(例如,[010100]) 执行“与”运算,结果保存于感测电路450中使得位向量483是[010000]。在参考数字4.m 处(例如,“shift(向左)”),将所述“与”运算的结果(例如,[010000])(其经存储为位向量 483)向左位移一位位置,使得位向量483是[100000]。在参考数字4.n处(例如,“writeRow(暂时行2)”),将向左移位运算的结果(例如,[100000])复制到存储位向量482 的存储器单元。因而,如图4F中所展示,在所述第四阶段之后,位向量482及483是 [100000]。
图4G及由参考数字4.o到4.s指代的伪码对应于迭代阶段的第五阶段且与下列各者相关联:对对应于掩码行位向量476的数据模式执行“反相”运算、对所述“反相”运算的结果及行n位向量(例如,对于此迭代是474-0)执行“与”运算、对所述“与”运算的结果及暂时行2位向量482执行“或”运算及将所述“或”运算的结果写入回到存储所述行n位向量的单元。在伪码的参考数字4.o处(例如,“readRow(掩码行)”),将经存储为位向量476的数据模式读取到感测电路450中使得位向量483是[101000]。在参考数字4.p处 (例如,“inv()”),对位向量483执行“反相”运算使得位向量483存储[010111](例如,其先前数据模式的反相)。在参考数字4.q处(例如,“andRow(行(n))”),对位向量483(例如, [010111])及位向量474-0(例如,[110000])执行“与”运算,结果保存于感测电路450中使得位向量483是[010000]。所述“与”运算的结果(例如,[010000])(其经存储为位向量483) 与暂时行2位向量482(例如,[100000])进行“或”运算,其中结果(例如,[110000])作为位向量483而保存于感测电路450中。将所述“或”运算的结果(例如,[110000])复制到存储位向量474-0的单元。因而,如图4G中所展示,在所述第五阶段之后,位向量474-0及 483是[110000]。
图4G展示在与参考数字4相关联的“For”循环的第一迭代之后阵列430的存储器单元的状态。在所述“For”循环的第一迭代之后,来自位向量488-0(例如,位向量[011]) 的1位与来自位向量488-1(例如,位向量[001])的1位交换,且来自位向量488-2(例如,位向量[010])的0位与来自位向量488-3(例如,位向量[100])的0位交换。图4H到4L展示在与参考数字4相关联的“For”循环的第二迭代之后阵列430的存储器单元的状态。
图4H到4L对应于迭代阶段的第二迭代。对于此迭代(例如,第二迭代),指数“n”是1(例如,对于“For”循环的第二迭代,n=1)。第二迭代的第一阶段对应于由参考数字4.a及4.b指代的伪码及4H。在伪码的参考数字4.a处(例如,“readRow(行(n))”),将对应于“行n位向量”的数据模式读取到对应于位向量483的感测电路中。因为对于“For”循环的第二迭代,n=1,所以将对应于行1位向量474-1(例如,[101001])的数据模式读取到感测电路450中,使得位向量483是[101001],如图4H中所展示。在参考数字4.b处,将对应于位向量483的数据模式复制到存储暂时行1位向量480的存储器单元。因而,暂时行1位向量480是[101001],如图4H中所展示。在参考数字4.b处,暂时行1位向量480是 [101001],如图4H中所展示。
图4I及由参考数字4.c到4.e指代的伪码对应于第二迭代的第二阶段。在参考数字4.c 处,将经存储为位向量483的数据模式向右位移一位位置,使得位向量483是[010100],其为先前位向量483(例如,[101001])向右位移一位位置。在参考数字4.d处,对位向量478(例如,[010100])及位向量483(例如,[010100])执行“与”运算。所述“与”的结果(例如,[010100])作为位向量483而存储于感测电路450中。因而,位向量483是[010100],如图4I中所展示。在参考数字4.e处,将位向量483复制到存储暂时行2位向量482的存储器单元。因而,暂时行2位向量482是[010100],如图4I中所展示。
图4J及由参考数字4.f到4.j指代的伪码对应于第二迭代的第三阶段。在参考数字4.f 处,将经存储为位向量478的数据模式读取到感测电路450中使得位向量483是[010100]。在参考数字4.g处(例如,“inv()”),对位向量483执行“反相”运算使得位向量483存储 [101011](例如,其先前数据模式的反相)。在参考数字4.h处,对位向量483(例如,[101011]) 及位向量474-1(例如,[101001])执行“与”运算,结果保存于感测电路450中使得位向量483是[101001]。所述“与”运算的结果(例如,[101001])(其经存储为位向量483)与暂时行2位向量482(例如,[010100])进行“或”运算,其中结果(例如,[111101])作为位向量483而保存于感测电路450中。将所述“或”运算的结果(例如,[111101])复制到存储位向量474-1的存储器单元。因而,如图4J中所展示,在所述第三阶段之后,位向量474-1 及483是[111101]。
图4K及由参考数字4.k到4.n指代的伪码对应于第二迭代的第四阶段。在参考数字4.k 处,将经存储为位向量480的数据模式读取到感测电路450中使得位向量483是[101001]。在参考数字4.l处,对位向量483(例如,[101001])及位向量478(例如,[010100])执行“与”运算,结果保存于感测电路450中使得位向量483是[000000]。在参考数字4.m处,将所述“与”运算的结果(例如,[000000])(其经存储为位向量483)向左位移一位位置,使得位向量483是[000000]。在参考数字4.n处,将向左移位运算的结果(例如,[000000])复制到存储位向量482的单元。因而,如图4K中所展示,在所述第四阶段之后,位向量482及483 是[000000]。
图4L及由参考数字4.o到4.s指代的伪码对应于第二迭代的第五阶段。在参考数字4.o 处,将经存储为位向量476的数据模式读取到感测电路450中使得位向量483是[101000]。在参考数字4.p处,对位向量483执行“反相”运算使得位向量483存储[010111](例如,其先前数据模式的反相)。在参考数字4.q处,对位向量483(例如,[010111])及位向量474-1 (例如,[111101])执行“与”运算,结果保存于感测电路450中使得位向量483是[010101]。所述“与”运算的结果(例如,[010101])(其经存储为位向量483)与暂时行2位向量482(例如,[000000])进行“或”运算,其中结果(例如,[010101])作为位向量483而保存于感测电路450中。将所述“或”运算的结果(例如,[010101])复制到存储位向量474-1的单元。因而,如图4L中所展示,在所述第五阶段之后,位向量474-1及483是[010101]。
图4L展示在与参考数字4相关联的“For”循环的第二迭代之后阵列430的存储器单元的状态。在所述“For”循环的第二迭代之后,来自位向量488-0(例如,在所述第二迭代之前为[011])的1位与来自位向量488-1(例如,在所述第二迭代之前为[001])的0位交换,且来自位向量488-2(例如,在所述第二迭代之前为[010])的1位与来自位向量488-3(例如,在所述第二迭代之前为[100])的0位交换。图4M到4Q展示在与参考数字4相关联的所述“For”循环的第三迭代之后阵列430的存储器单元的状态。
图4M到4Q对应于迭代阶段的第三迭代(例如,对应于由4.a到4.s指代的伪码的“For”循环的初始执行且对于所述第三迭代,指数n是2)。第三迭代的第一阶段对应于由参考数字4.a及4.b指代的伪码及4M,且与将所述“行n位向量”的数据模式存储于对应于暂时行 1位向量480的存储器单元中相关联。举例来说,存储于包括待被交换数据的第三行存储器单元(例如,耦合到存取线404-2的存储器单元)中的数据的副本是存储于对应于暂时行1位向量480的存储器单元中。对于此迭代(例如,第三迭代),指数“n”是2(例如,对于“For”循环的第三迭代,n=2)。在伪码的参考数字4.a处(例如,“readRow(行(n))”),将对应于“行n位向量”的数据模式读取到对应于位向量483的感测电路中。因为对于“For”循环的第三迭代,n=2,所以将对应于行2位向量474-2(例如,[000110])的数据模式读取到感测电路450中,使得位向量483是[000110],如图4M中所展示。在参考数字4.b处,将对应于位向量483的数据模式复制到存储暂时行1位向量480的存储器单元。因而,暂时行1位向量480是[000110],如图4M中所展示。
图4N及由参考数字4.c到4.e指代的伪码对应于第三迭代的第二阶段。在参考数字4.c 处,将经存储为位向量483的数据模式向右位移一位位置,使得位向量483是[000011],其是先前位向量483(例如,[000110])向右位移一位位置。在参考数字4.d处,对位向量478(例如,[010100])及位向量483(例如,[000011])执行“与”运算。将位向量478及483进行“与”运算(例如,[010100]“与”[000011])导致[000000],其经存储为位向量483(例如,所述“与”运算的结果存储于感测电路450中)。因而,位向量483是[000000],如图 4N中所展示。在参考数字4.e处,将对应于位向量483的数据模式复制到存储暂时行2位向量482的单元。因而,暂时行2位向量482是[000000],如图4N中所展示。
图4O及由参考数字4.f到4.j指代的伪码对应于第三迭代的第三阶段。在参考数字4.f 处,将经存储为位向量478的数据模式读取到感测电路450中使得位向量483是[010100]。在参考数字4.g处,对位向量483执行“反相”运算使得位向量483存储[101011](例如,其先前数据模式的反相)。在参考数字4.h处,对位向量483(例如,[101011])及位向量474-2 (例如,[000110])执行“与”运算,结果保存于感测电路450中使得位向量483是[000010]。所述“与”运算的结果(例如,[000010])(其经存储为位向量483)与暂时行2位向量482(例如,[000000])进行“或”运算,其中结果(例如,[000010])作为位向量483而保存于感测电路450中。将所述“或”运算的结果(例如,[000010])复制到存储位向量474-2的存储器单元。因而,如图4O中所展示,在所述第三阶段之后,位向量474-2及483是[000010]。
图4P及由参考数字4.k到4.n指代的伪码对应于第三迭代的第四阶段。在参考数字4.k 处,将经存储为位向量480的数据模式读取到感测电路450中使得位向量483是[000110]。在参考数字4.l处,对位向量483(例如,[000110])及位向量478(例如,[010100])执行“与”运算,结果保存于感测电路450中使得位向量483是[000100]。在参考数字4.m处,将所述“与”运算的结果(例如,[000100])(其经存储为位向量483)向左位移一位位置,使得位向量483是[001000]。在参考数字4.n处,将向左移位运算的结果(例如,[001000])复制到存储位向量482的存储器单元。因而,如图4P中所展示,在所述第四阶段之后,位向量 482及483是[001000]。
图4Q及由参考数字4.o到4.s指代的伪码对应于第三迭代的第五阶段。在参考数字4.o 处,将经存储为位向量476的数据模式读取到感测电路450中使得位向量483是[101000]。在参考数字4.p处,对位向量483执行“反相”运算使得位向量483存储[010111](例如,其先前数据模式的反相)。在参考数字4.q处,对位向量483(例如,[010111])及位向量474-2 (例如,[001010])执行“与”运算,结果保存于感测电路450中使得位向量483是[000010]。将所述“与”运算的结果(例如,[000010])(其经存储为位向量483)与暂时行2位向量482(例如,[001000])进行“或”运算,其中结果(例如,[000110])作为位向量483而保存于感测电路450中。将所述“或”运算的结果(例如,[000110])复制到存储位向量474-2的存储器单元。因而,如图4Q中所展示,在所述第五阶段之后,位向量474-2及483是[000110]。
图4Q展示在与参考数字4相关联的“For”循环的第三迭代之后阵列430的存储器单元的状态。在所述“For”循环的第三迭代之后,来自位向量488-0(例如,在所述第一迭代之前为[011])的0位与来自位向量488-1(例如,在所述第一迭代之前为[001])的0位交换,且来自位向量488-2(例如,在所述第一迭代之前为[010])的0位与来自位向量488-3(例如,在所述第一迭代之前为[100])的1位交换。
对具有不同于元素宽度3的元素宽度的元素,可执行比本文实例中所展示的运算迭代更多或更少的运算迭代。举例来说,如果元素488具有元素宽度4而非3,那么可执行4个运算迭代。
进一步地说,交换运算可交换4个以上元素(例如,交换位向量488-0及位向量488-1 且交换位向量488-2及位向量488-3)。举例来说,交换运算可交换6个元素、8个元素、10个元素等等。
然而,实施例不受限于此实例中的伪码中的指令序列顺序。举例来说,可在执行参考数字4.k到4.q中的若干运算参考项之前执行参考数字4.c到4.j中的若干运算参考项。
下文描述图2A的感测电路250的功能性且下文在表1中相对于执行逻辑运算且将结果最初存储于感测放大器206中而概述图2A的感测电路250的功能性。将特定逻辑运算的结果最初存储于感测放大器206的初级锁存器中可提供比先前方法(其中结果可最初驻存于计算组件231的次级锁存器(例如累加器),且接着随后被传送到(例如)感测放大器206)改进的多功能性。
<u>运算</u> <u>累加器</u> <u>感测放大器</u>
“与” 不变 结果
“或” 不变 结果
“非” 不变 结果
“移位” 不变 经移位的数据
表1
将特定运算的结果最初存储于感测放大器206中(例如,不必执行额外操作来将结果从计算组件231(例如累加器)移动到感测放大器206)是有利的,这是因为(例如)可在不执行预充电周期(例如,不对互补数据线205-1(D)及/或205-2(D_)执行预充电周期)的情况下将结果写入到行(存储器单元阵列的行)或写回到累加器中。
图5说明根据本发明的若干实施例的与使用感测电路来执行若干逻辑运算相关联的时序图。图5说明与对第一操作数及第二操作数初始化“与”逻辑运算相关联的时序图。在此实例中,将所述第一操作数存储于耦合到第一存取线(例如行X)的存储器单元中且将所述第二操作数存储于耦合到第二存取线(例如行Y)的存储器单元中。虽然实例涉及对存储于对应于特定列的存储器单元中的数据执行“与”运算,但实施例不受限于此。举例来说,可使整行的数据值与不同行的数据值进行并行“与”运算。举例来说,如果阵列包括2,048个列,那么可并行执行2,048个“与”运算。
图5说明与操作感测电路(例如250)来执行“与”逻辑运算相关联的若干控制信号。“EQ”对应于施加到感测放大器206的平衡信号,“行X”对应于施加到存取线204-X的激活信号,“行Y”对应于施加到存取线204-Y的激活信号,“Act”及“RnIF”对应于施加到感测放大器206的相应有源正控制信号及有源负控制信号,“LOAD”对应于负载控制信号(例如图2A中所展示的LOAD/PASSD及LOAD/PASSDb),且“AND”对应于图2A 中所展示的AND控制信号。图5还说明波形图,其展示行X数据值及行Y数据值的各种数据值组合的“与”逻辑运算期间对应于感测放大器206的数字线D及D_上及对应于计算组件231(例如Accum)的节点S1及S2上的信号(例如电压信号)(例如,图式对应于相应数据值组合00、10、01、11)。下文相对于与图2A中所展示的电路的“与”运算相关联的伪码而讨论特定时序图波形。
可将与将存储于耦合到行204-X的存储器单元中的第一数据值加载(例如,复制)到累加器中相关联的伪码的实例概述如下:
将行X复制到累加器中:
解除激活EQ;
打开行X;
触发感测放大器(此后,行X数据驻存于感测放大器中);
激活LOAD(感测放大器数据(行X)被传送到累加器的节点S1及S2且动态地驻存于节点S1及S2上);
解除激活LOAD;
关闭行X;
预充电;
在上述伪码中,“解除激活EQ”指示:在t1处停用对应于感测放大器206的平衡信号(图5中所展示的EQ信号),如图5中所展示(例如,使得互补数据线(例如205-1(D)及205-2(D_))不再短接到VDD/2)。在停用平衡之后,启用(例如,选择、打开,例如,通过激活信号来选择特定行)选定行(例如行X),如由伪码中的“打开行X”所指示且如图5的信号行 X的t2处所展示。当施加到行X的电压信号达到对应于选定存储器单元的存取晶体管(例如202-2)的阈值电压(Vt)时,存取晶体管接通且将数据线(例如205-2(D_))耦合到选定存储器单元(例如,耦合到电容器203-2),其在数据线之间产生差分电压信号。
在启用(例如激活)行X之后,上述伪码中的“触发感测放大器”指示:感测放大器206经启用以设置初级锁存器,且随后被停用。举例来说,如图5中的t3处所展示,ACT 正控制信号(例如图2B中所展示的265)升到高态且RnIF负控制信号(例如如图2B中所展示的228)降为低态,其放大205-1(D)与D_205-2之间的差分信号以导致对应于逻辑1的电压(例如VDD)或对应于逻辑0的电压(例如GND)作用于数据线205-1(D)上(且对应于另一逻辑状态的电压作用于互补数据线205-2(D_)上)。将所感测的数据值存储于感测放大器206的初级锁存器中。主要能量消耗发生于将数据线(例如205-1(D)或205-2(D_))从平衡电压VDD/2充电到导轨电压VDD时。
图5中所说明的四组可行感测放大器及累加器信号(例如行X数据值及行Y数据值的每一组合的一组信号)展示数据线D及D_上的信号的行为。将行X数据值存储于感测放大器的初级锁存器中。应注意,图2A展示:对应于行X的存储器单元(其包含存储元件203-2 及存取晶体管202-2)耦合到互补数据线D_,而对应于行Y的存储器单元(其包含存储元件203-1及存取晶体管202-1)耦合到数据线D。然而,如图2A中可见,对应于“0”数据值的存储于包括存取晶体管202-2的存储器单元(其对应于行X)中的电荷致使数据线D_(存取晶体管202-2耦合到其)上的电压升到高态且对应于“1”数据值的存储于包括存取晶体管202-2的存储器单元中的电荷致使数据线D_上的电压降为低态,其与数据状态与存储于对应于行Y(其耦合到数据线D)的存储器单元(其包括存取晶体管202-1)中的电荷之间的对应性相反。当将数据值写入到相应存储器单元时,适当地解释在耦合到不同数据线的存储器单元中存储电荷的这些差异。
在触发感测放大器之后,上述伪码中的“激活LOAD”指示:LOAD控制信号升到高态(如图5中的t4处所展示),从而致使负载/通路晶体管218-1及218-2导通。以此方式,激活LOAD控制信号以启用计算组件231的累加器中的次级锁存器。将存储于感测放大器 206中的所感测数据值传送(例如,复制)到次级锁存器。如图5中所说明的四组可行感测放大器及累加器信号中的每一者所展示,累加器的次级锁存器的输入处的行为指示:次级锁存器加载有行X数据值。如图5中所展示,累加器的次级锁存器可根据先前存储于动态锁存器中的数据值而翻转(例如,参阅行X=“0”且行Y=“0”及行X=“1”且行Y=“0”时的累加器信号)或不翻转(例如,参阅行X=“0”且行Y=“1”及行X=“1”且行Y=“1”时的累加器信号)。
在从存储于感测放大器中(且呈现于数据线205-1(D)及205-2(D_)上)的数据值设置次级锁存器之后,上述伪码中的“解除激活LOAD”指示:LOAD控制信号变回为低态(如图5中的t5处所展示),从而致使负载/通路晶体管218-1及218-2停止导通且由此使动态锁存器与互补数据线隔离。然而,数据值保持动态地存储于累加器的次级锁存器中。
在将数据值存储于次级锁存器上之后,停用(例如,不选、关闭,例如,通过解除激活特定行的选择信号)选定行(例如行X),如由“关闭行X”所指示且如图5中的t6处所指示,其可通过存取晶体管切断以使选定存储器单元与对应数据线解耦合而完成。一旦关闭选定行且使存储器单元与数据线隔离,可对数据线预充电,如由上述伪码中的“预充电”所指示。可通过平衡操作而完成数据线的预充电,如图5中通过EQ信号在t7处升到高态所指示。如图5中的t7处所说明的四组可行感测放大器及累加器信号中的每一者所展示,平衡操作致使数据线D及D_上的电压各自恢复到VDD/2。平衡可发生于(例如)存储器单元感测操作或逻辑运算之前(如下文将描述)。
与对第一数据值(现存储于感测放大器206及计算组件231的次级锁存器中)及第二数据值(存储于耦合到行Y 204-Y的存储器单元202-1中)执行“与”或“或”运算相关联的随后操作阶段可包含:执行取决于是否将执行“与”运算或“或”运算的特定步骤。下文概述与对驻存于累加器中的数据值(例如存储于耦合到行X 204-X的存储器单元202-2 中的第一数据值)及第二数据值(例如存储于耦合到行Y 204-Y的存储器单元202-1中的数据值)进行“与”运算及“或”运算相关联的伪码的实例。与对数据值进行“与”运算相关联的实例伪码可包含:
解除激活EQ;
打开行Y;
触发感测放大器(此后,行Y数据驻存于感测放大器中);
关闭行Y;
在下一操作中,逻辑运算的结果将被放置于感测放大器上,其将覆写激活的任何行;
即使当关闭行Y时,感测放大器仍含有行Y数据值;
激活“与”运算;
这导致感测放大器被写入函数(例如行X“与”行Y)的值;
如果累加器含有“0”(即,节点S2上对应于“0”的电压及节点S1上对应于“1”的一电压),那么感测放大器数据被写入“0”;
如果累加器含有“1”(即,节点S2上对应于“1”的电压及节点S1上对应于“0”的电压),那么感测放大器数据保持不变(行Y数据);
此操作使累加器中的数据不变;
解除激活“与”运算;
预充电;
在上述伪码中,“解除激活EQ”指示:停用对应于感测放大器206的平衡信号(例如,使得互补数据线205-1(D)及205-2(D_)不再短接到VDD/2),如图5中的t8处所说明。在停用平衡后,启用选定行(例如行Y),如由上述伪码中的“打开行Y”所指示且如图5中的 t9处所展示。当施加到行Y的电压信号达到对应于选定存储器单元的存取晶体管(例如 202-1)的阈值电压(Vt)时,存取晶体管接通且将数据线(例如D 205-1)耦合到选定存储器单元(例如,耦合到电容器203-1),其在数据线之间产生差分电压信号。
在启用行Y之后,上述伪码中的“触发感测放大器”指示:感测放大器206经启用以放大205-1(D)与205-2(D_)之间的差分信号,从而导致对应于逻辑1的电压(例如VDD)或对应于逻辑0的电压(例如GND)作用于数据线205-1(D)上(且对应于另一逻辑状态的电压作用于互补数据线205-2(D_)上)。如图5中的t10处所展示,ACT正控制信号(例如图2B中所展示的265)升到高态且RnIF负控制信号(例如图2B中所展示的228)降为低态以触发感测放大器。将来自存储器单元202-1的所感测数据值存储于感测放大器206的初级锁存器中,如先前所描述。次级锁存器仍对应于来自存储器单元202-2的数据值,这是因为动态锁存器未被改变。
在将从耦合到行Y的存储器单元202-1感测的第二数据值存储于感测放大器206的初级锁存器中之后,上述伪码中的“关闭行Y”指示:如果不期望将“与”逻辑运算的结果存储回对应于行Y的存储器单元中,那么可停用选定行(例如行Y)。然而,图5展示:行Y经保持启用使得逻辑运算的结果可存储回对应于行Y的存储器单元中。可通过存取晶体管切断以使选定存储器单元202-1与数据线205-1(D)解耦合而完成使对应于行Y的存储器单元隔离。在选定行Y经配置(例如,以隔离存储器单元或不隔离存储器单元)之后,上述伪码中的“激活“与”运算”指示:AND控制信号升到高态(如图5中的t11处所展示),从而致使下拉晶体管207-1导通。以此方式,激活AND控制信号致使函数(例如行 X“与”行Y)的值写入到感测放大器。
在第一数据值(例如行X)存储于累加器231的动态锁存器中且第二数据值(例如行Y) 存储于感测放大器206中之后,如果计算组件231的动态锁存器含有“0”(即,节点S2上对应于“0”的电压及节点S1上对应于“1”的电压),那么感测放大器数据被写入“0” (不管先前存储于感测放大器中的数据值如何),这是因为节点S1上对应于“1”的电压致使晶体管209-1导通,由此通过晶体管209-1、下拉晶体管207-1及数据线205-1(D)而将感测放大器206耦合到接地。当“与”运算的任一数据值是“0”时,结果是“0”。此处,当第二数据值(在动态锁存器中)是“0”时,不管第一数据值的状态如何,“与”运算的结果是“0”,因此,感测电路的配置致使“0”结果被写入且最初存储于感测放大器206 中。此操作使累加器中的数据值保持不变(例如,来自行X)。
如果累加器的次级锁存器含有“1”(例如,来自行X),那么“与”运算的结果取决于存储于感测放大器206中的数据值(例如,来自行Y)。如果存储于感测放大器206中的数据值(例如,来自行Y)也为“1”,那么“与”运算的结果应为“1”,但如果存储于感测放大器206中的数据值(例如,来自行Y)也为“0”,那么“与”运算的结果应为“0”。感测电路250经配置使得如果累加器的动态锁存器含有“1”(即,节点S2上对应于“1”的电压及节点S1上对应于“0”的电压),那么晶体管209-1不导通,感测放大器不耦合到接地(如上文所描述),且先前存储于感测放大器206中的数据值保持不变(例如行Y数据值,因此,如果行Y数据值是“1”,那么“与”运算结果是“1”,且如果行Y数据值是“0”,那么“与”运算结果是“0”)。此操作使累加器中的数据值保持不变(例如,来自行X)。
在将“与”运算的结果最初存储于感测放大器206中之后,上述伪码中的“解除激活“与”运算”指示:AND控制信号降为低态(如图5中的t12处所展示),从而致使下拉晶体管207-1停止导通以使感测放大器206(及数据线205-1(D))与接地隔离。如果先前未解除激活“与”运算,那么可关闭行Y(如图5中的t13处所展示)且可停用感测放大器(如在图5中的t14处通过ACT正控制信号降为低态且RnIF负控制信号升到高态所展示)。在使数据线隔离之后,上述伪码中的“预充电”可通过平衡操作而致使数据线预充电,如先前所描述(例如,开始于图5中所展示的t14处)。
替代地,图5展示针对“与”逻辑运算(其涉及操作数的可行组合(例如行X/行Y数据值00、10、01及11)中的每一者)的耦合到感测放大器(例如图2A中所展示的206)的数据线(例如图2A中所展示的205-1(D)及205-2(D_))上的电压信号的行为及计算组件(例如图 2A中所展示的231)的次级锁存器的节点S1及S2上的电压信号的行为。
虽然图5中所说明的时序图及上文所描述的伪码指示在开始将第二操作数(例如行Y 数据值)加载到感测放大器中之后初始化“与”逻辑运算,但可通过在开始将第二操作数 (例如行Y数据值)加载到感测放大器中之前初始化“与”逻辑运算而成功地操作图2A中所展示的电路。
图6说明根据本发明的若干实施例的与使用感测电路来执行若干逻辑运算相关联的时序图。图6说明与在开始将第二操作数(例如行Y数据值)加载到感测放大器中之后初始化“或”逻辑运算相关联的时序图。图6说明用于第一操作数数据值及第二操作数数据值的各种组合的感测放大器信号及累加器信号。下文相对于与图2A中所展示的电路的“与”逻辑运算相关联的伪码而讨论特定时序图信号。
随后操作阶段可交替地与对第一数据值(现存储于感测放大器206及计算组件231的次级锁存器中)及第二数据值(存储于耦合到行Y 204-Y的存储器单元202-1中)执行“或”运算相关联。未相对于图6而重复先前相对于图5中所展示的时间t1到t7所描述的将行X数据加载到感测放大器及累加器中的操作。与对数据值进行“或”运算相关联的实例伪码可包含:
解除激活EQ;
打开行Y;
触发感测放大器(此后,行Y数据驻存于感测放大器中);
关闭行Y;
当关闭行Y时,感测放大器仍含有行Y数据值;
激活“或”运算;
此导致感测放大器被写入函数(例如行X“或”行Y)的值,其可如下所述那样覆写来自先前存储于感测放大器中的行Y的数据值:
如果累加器含有“0”(即,节点S2上对应于“0”的电压及节点S1上对应于“1”的电压),那么感测放大器数据保持不变(行Y数据);
如果累加器含有“1”(即,节点S2上对应于“1”的电压及节点S1上对应于“0”的电压),那么感测放大器数据被写入“1”;
此操作使累加器中的数据保持不变;
解除激活“或”运算;
预充电;
上述伪码中所展示的“解除激活EQ”(图6中的t8处所展示)、“打开行Y”(图6中的t9处所展示)、“触发感测放大器”(图6中的t10处所展示)及“关闭行Y”(图6中的t13处所展示,且其可发生于初始化特定逻辑函数控制信号之前)指示与先前相对于“与”运算伪码所描述的功能性相同的功能性。一旦适当地配置选定行Y的配置(例如,如果逻辑运算结果将存储于对应于行Y的存储器单元中,那么启用选定行Y,或如果逻辑运算结果将不存储于对应于行Y的存储器单元中,那么关闭选定行Y以隔离存储器单元),上述伪码中的“激活“或”运算”指示:OR控制信号升到高态,如图6中的t11处所展示,其致使下拉晶体管207-2导通。以此方式,激活OR控制信号致使函数(例如行X“或”行Y)的值写入到感测放大器。
在第一数据值(例如行X)存储于计算组件231的次级锁存器中且第二数据值(例如行 Y)存储于感测放大器206中之后,如果累加器的动态锁存器含有“0”(即,节点S2上对应于“0”的电压及节点S1上对应于“1”的电压),那么“或”运算的结果取决于存储于感测放大器206中的数据值(例如,来自行Y)。如果存储于感测放大器206中的数据值(例如,来自行Y)是“1”,那么“或”运算的结果应为“1”,但如果存储于感测放大器206 中的数据值(例如,来自行Y)也为“0”,那么“或”运算的结果应为“0”。感测电路250 经配置使得如果累加器的动态锁存器含有“0”(即,节点S2上对应于“0”的电压),那么晶体管209-2切断且不导通(且下拉晶体管207-1还切断,这是因为未断言AND控制信号),因此感测放大器206不耦合到接地(任一侧),且先前存储于感测放大器206中的数据值保持不变(例如行Y数据值,使得如果行Y数据值是“1”,那么“或”运算结果是“1”,且如果行Y数据值是“0”,那么“或”运算结果是“0”)。
如果累加器的动态锁存器含有“1”(即,节点S2上对应于“1”的电压及节点S1上对应于“0”的电压),那么晶体管209-2导通(下拉晶体管207-2也导通,这是因为已断言 OR控制信号),且耦合到数据线205-2(D_)的感测放大器206的输入耦合到接地,这是因为节点S2上对应于“1”的电压致使晶体管209-2与下拉晶体管207-2(其因为已断言OR控制信号而也导通)一起导通。以此方式,不管先前存储于感测放大器中的数据值如何,当累加器的次级锁存器含有“1”时,将“1”最初存储于感测放大器206中作为“或”运算的结果。此操作使累加器中的数据保持不变。替代地,图6展示针对“或”逻辑运算(其涉及操作数的可行组合(例如行X/行Y数据值00、10、01及11)中的每一者)的耦合到感测放大器(例如图2A中所展示的206)的数据线(例如图2A中所展示的205-1(D)及205-2(D_)) 上的电压信号的行为及计算组件231的次级锁存器的节点S1及S2上的电压信号的行为。
在将“或”运算的结果最初存储于感测放大器206中之后,上述伪码中的“解除激活“或”运算”指示:OR控制信号降为低态(如图6中的t12处所展示),从而致使下拉晶体管207-2停止导通以使感测放大器206(及数据线D_205-2)与接地隔离。如果先前未解除激活“或”运算,那么可关闭行Y(如图6中的t13处所展示)且可停用感测放大器(如图6中的t14处通过ACT正控制信号降为低态且RnIF负控制信号升到高态所展示)。在隔离数据线之后,上述伪码中的“预充电”可通过平衡操作而致使数据线的预充电,如先前所描述且如图6中的t14处所展示。
图2A中所说明的感测电路250可提供如下额外逻辑运算灵活性。通过在上文所描述的“与”运算及“或”运算中用AND控制信号的操作替代ANDinv控制信号的操作及/或用OR控制信号的操作替代ORinv控制信号的操作,逻辑运算可从{行X“与”行Y}改变为{~行X“与”行Y}(其中“~行X”指示行X数据值的相反者,例如“非”行X)且可从{行 X“或”行Y}改变为{~行X“或”行Y}。举例来说,在涉及反相数据值的“与”运算期间,可断言ANDinv控制信号而非AND控制信号,且在涉及反相数据值的“或”运算期间,可断言ORInv控制信号而非OR控制信号。激活ORinv控制信号致使晶体管214-1导通且激活ANDinv控制信号致使晶体管214-2导通。在每一情况中,断言适当反相控制信号可翻转感测放大器且致使最初存储于感测放大器206中的结果成为使用反相行X数据值及真行Y数据值的“与”运算的结果或使用反相行X数据值及真行Y数据值的“或”运算的结果。数据值的真或互补版本可用于累加器中以(例如)通过首先加载待反相的数据值且接着加载不被反相的数据值而执行逻辑运算(例如“与”、“或”)。
在类似于上文相对于使上文所描述的“与”运算及“或”运算的数据值反相所描述的方法的方法中,图2A中所展示的感测电路可通过将未反相数据值放置到累加器的动态锁存器中且使用所述数据来使感测放大器206中的数据值反相而执行“非”(例如反相) 运算。如先前所提及,激活ORinv控制信号致使晶体管214-1导通且激活ANDinv控制信号致使晶体管214-2导通。ORinv及/或ANDinv控制信号用于实施“非”函数,如下文将进一步描述:
将行X复制到累加器中;
解除激活EQ;
打开行X;
触发感测放大器(此后,行X数据驻存于感测放大器中);
激活LOAD(感测放大器数据(行X)被传送到累加器的节点S1及S2且动态地驻存于节点S1及S2上);
解除激活LOAD;
激活ANDinv及ORinv(其将互补数据值放置于数据线上);
这导致感测放大器中的数据值反相(例如,感测放大器锁存器翻转);
此操作使累加器中的数据保持不变;
解除激活ANDinv及ORinv;
关闭行X;
预充电;
上述伪码中所展示的“解除激活EQ”、“打开行X”、“触发感测放大器”、“激活LOAD”及“解除激活LOAD”指示与“与”运算及“或”运算的伪码之前的上文所描述的“将行X复制到累加器中”初始操作阶段的伪码中的相同操作相同的功能性。然而,并非在将行X数据加载到感测放大器206中且复制到动态锁存器中之后关闭行X且预充电,而是累加器的动态锁存器中的数据值的互补版本可放置于数据线上且因此通过启用(例如,致使晶体管导通)及停用反相晶体管(例如ANDinv及ORinv)而传送到感测放大器206。这导致感测放大器206从先前存储于感测放大器中的真数据值翻转到存储于感测放大器中的互补数据值(例如反相数据值)。举例来说,可通过激活及解除激活ANDinv及ORinv而将累加器中的数据值的真或互补版本传送到感测放大器。此操作使累加器中的数据保持不变。
因为图2A中所展示的感测电路250将“与”、“或”及“非”逻辑运算的结果最初存储于感测放大器206中(例如,存储于感测放大器节点上),所以可将这些逻辑运算结果容易且快速地传达到任何启用行,传达到逻辑运算完成之后所激活的任何行,及/或传达到计算组件231的次级锁存器中。还可通过在感测放大器206触发之前适当触发AND、OR、 ANDinv及/或ORinv控制信号(且操作使栅极耦合到特定控制信号的对应晶体管)而使“与”、“或”及/或“非”逻辑运算的感测放大器206及定序互换。
当以此方式执行逻辑运算时,可使感测放大器206预接种有来自累加器的动态锁存器的数据值以减小所利用的总电流,这是因为:当将累加器函数复制到感测放大器206时,感测放大器206不具有全导轨电压(例如供应电压或接地/参考电压)。使用预接种感测放大器206的操作序列迫使数据线中的一者达到参考电压(使互补数据线具有VDD/2)或使互补数据线保持不变。当感测放大器206触发时,感测放大器206将相应数据线拉到全导轨。使用此操作序列将覆写启用行中的数据。
可通过使用传统DRAM隔离(ISO)方案来多路传输(“muxing”)两个相邻数据线互补对而完成“移位”运算。根据本发明的实施例,移位电路223可用于使存储于耦合到一对特定互补数据线的存储器单元中的数据值移位到对应于一对不同互补数据线的感测电路250(例如感测放大器206)(例如(例如)对应于一对左边或右边相邻互补数据线的感测放大器206)。如本文中所使用,感测放大器206对应于当隔离晶体管221-1及221-2导通时所述感测放大器耦合到其互补数据线对。“移位”运算(右移或左移)不将行X数据值预复制到累加器中。可将使行X右移的操作概述如下:
解除激活常态且激活移位;
解除激活EQ;
打开行X;
触发感测放大器(此后,经移位的行X数据驻存于感测放大器中);
激活常态且解除激活移位;
关闭行X;
预充电;
在上述伪码中,“解除激活常态且激活移位”指示:NORM控制信号降为低态,从而致使移位电路223的隔离晶体管221-1及221-2不导通(例如,使感测放大器与对应互补数据线对隔离)。SHIFT控制信号升到高态,从而致使隔离晶体管221-3及221-4导通,由此将感测放大器206耦合到左边相邻互补数据线对(例如,在用于左边相邻互补数据线对的非导通隔离晶体管221-1及221-2的存储器阵列侧上)。
在配置移位电路223之后,上述伪码中所展示的“解除激活EQ”、“打开行X”及“触发感测放大器”指示与“与”运算及“或”运算的伪码之前的上文所描述的“将行X复制到累加器中”初始操作阶段的伪码中的相同操作相同的功能性。在这些操作之后,耦合到左边相邻互补数据线对的存储器单元的行X数据值右移且存储于感测放大器206中。
在上述伪码中,“激活常态且解除激活移位”指示:NORM控制信号升到高态,从而致使移位电路223的隔离晶体管221-1及221-2导通(例如,将感测放大器耦合到对应互补数据线对),且SHIFT控制信号降为低态,从而致使隔离晶体管221-3及221-4不导通且使感测放大器206与左边相邻互补数据线对隔离(例如,在用于左边相邻互补数据线对的非导通隔离晶体管221-1及221-2的存储器阵列侧上)。因为仍启用行X,所以通过隔离晶体管221-1及221-2而将已右移的行X数据值传送到对应互补数据线对的行X。
在使行X数据值右移到对应互补数据线对之后,停用选定行(例如行X),如由上述伪码中的“关闭行X”所指示,其可通过存取晶体管切断以使选定存储器单元与对应数据线解耦合而完成。一旦关闭选定行且使存储器单元与数据线隔离,可对数据线预充电,如由上述伪码中的“预充电”所指示。可通过平衡操作而完成数据线的预充电,如上文所描述。可将使行X左移的操作概述如下:
激活常态且解除激活移位;
解除激活EQ;
打开行X;
触发感测放大器(此后,行X数据驻存于感测放大器中);
解除激活常态且激活移位;
将感测放大器数据(经左移的行X)传送到行X;
关闭行X;
预充电;
在上述伪码中,“激活常态且解除激活移位”指示:NORM控制信号升到高态,从而致使移位电路223的隔离晶体管221-1及221-2导通,且SHIFT控制信号降为低态,从而致使隔离晶体管221-3及221-4不导通。此配置将感测放大器206耦合到一对对应互补数据线且使感测放大器与右边相邻互补数据线对隔离。
在配置移位电路之后,上述伪码中所展示的“解除激活EQ”、“打开行X”及“触发感测放大器”指示与“与”运算及“或”运算的伪码之前的上文所描述的“将行X复制到累加器中”初始操作阶段的伪码中的相同操作相同的功能性。在这些操作之后,将耦合到对应于感测电路250的互补数据线对的存储器单元的行X数据值存储于感测放大器 206中。
在上述伪码中,“解除激活常态且激活移位”指示:NORM控制信号降为低态,从而致使移位电路223的隔离晶体管221-1及221-2不导通(例如,使感测放大器与对应互补数据线对隔离),且SHIFT控制信号升到高态,从而致使隔离晶体管221-3及221-4导通以将感测放大器耦合到左边相邻互补数据线对(例如,在用于左边相邻互补数据线对的非导通隔离晶体管221-1及221-2的存储器阵列侧上)。因为仍启用行X,所以将已左移的行X 数据值传送到左边相邻互补数据线对的行X。
在使行X数据值左移到左边相邻互补数据线对之后,停用选定行(例如行X),如由“关闭行X”所指示,其可通过存取晶体管切断以使选定存储器单元与对应数据线解耦合而完成。一旦关闭选定行且使存储器单元与数据线隔离,可对数据线预充电,如由上述伪码中的“预充电”所指示。可通过平衡操作而完成数据线的预充电,如上文所描述。
根据各种实施例,可在存储器中处理器(PIM)装置的存储器阵列核心中实现一般计算,例如(例如)6F^2或4F^2存储器单元大小的DRAM每存储器单元一个晶体管(例如1T1C)配置。本文中所描述的设备及方法的潜在优点可不按照单指令速度实现,而可以累加速度实现,累加速度可通过在无需从存储器阵列(例如DRAM)传送出数据或无需触发列解码的情况下并行计算整个数据库而实现。换句话来说,可减少或消除数据传送时间。例如,本发明的设备可使用耦合到数据线的存储器单元(例如一列的16K个存储器单元)中的数据值来同时执行“与”或“或”运算。
在先前方法的感测电路(其中移出用于逻辑运算处理的数据(例如,使用32或64位寄存器))中,可并行执行比本发明的设备少的操作。以此方式,有效地提供比涉及中央处理单元(CPU)(其与存储器分立,使得数据必须传送于CPU与存储器之间)的常规配置显著更高的产量。根据本发明的设备及/或方法还可使用比其中CPU与存储器分立的配置少的能量/面积。此外,本发明的设备及/或方法可基于较少能量/面积优点而改进,这是因为存储器阵列中逻辑运算通过消除某些数据值传送而节约能量。
图7说明根据本发明的若干实施例的与使用感测电路来执行若干逻辑运算相关联的时序图。下文相对于执行逻辑运算且将结果最初存储于计算组件231(例如累加器的次要锁存器)中而描述图2A的感测电路250的功能性。图7中所展示的时序图说明与使用图2A 中所说明的感测电路来执行逻辑运算(例如,R输入逻辑运算)的第一操作阶段相关联的信号(例如电压信号)。相对于图7所描述的第一操作阶段可为(例如)“与”、“与非”、“或”或“或非”运算的第一操作阶段。执行图7中所说明的操作阶段可涉及:消耗比先前处理方法(其可涉及:在导轨电压之间(例如,在供应电压与接地之间)提供全摆动)显著更少的能量(例如,约一半)。
在图7所说明的实例中,对应于互补逻辑值(例如“1”及“0”)的导轨电压是供应电压(VDD)及参考电压(例如接地(Gnd))。在执行逻辑运算之前,平衡可发生,使得互补数据线D及D_在平衡电压(VDD/2)处短接在一起,如先前所描述。
下文将描述的逻辑运算的第一操作阶段涉及:将所述逻辑运算的第一操作数载入到累加器中。图7中所展示的时间参考(例如t1等等)未必表示与其它时序图中的类似时间参考相同的绝对或相对时间。
在时间t1处,解除激活平衡信号726,且接着启用选定行(例如对应于存储器单元(其数据值将被感测且用作第一输入)的行)。信号704-0表示施加到选定行(例如,图2A中所展示的行Y 204-Y)的电压信号。当行信号704-0达到对应于选定存储器单元的存取晶体管(例如,图2A中所展示的202-1)的阈值电压(Vt)时,存取晶体管接通且将数据线D耦合到选定存储器单元(例如,如果存储器单元是1T1C DRAM存储器单元,那么耦合到2A中所展示的电容器203-1),其在时间t2与t3之间产生数据线D及D_之间的差分电压信号(例如分别由数据线上的信号705-1及705-2所指示)。由信号703表示选定存储器单元的电压。归因于能量守恒,在数据线D与D_之间产生差分信号(例如,通过将存储器单元耦合到数据线D)不消耗能量,这是因为可将与启用/停用行信号704-0相关联的能量摊销于耦合到行的多个存储器单元上。
在时间t3处,激活感测放大器(例如图2A中所展示的206)(例如,正控制信号765(例如对应于图2B中所展示的ACT 265)升到高态且负控制信号728(例如对应于图2B中所展示的RnIF 228)降为低态),所述感测放大器放大数据线D与D_之间的差分信号以导致对应于逻辑“1”的电压(例如VDD)或对应于逻辑“0”的电压(例如接地)作用于数据线D上(且另一电压作用于互补数据线D_上),使得所感测的数据值存储于感测放大器206的初级锁存器中。主要能量消耗发生于将数据线D(205-1)从平衡电压VDD/2充电到导轨电压VDD时。在此实例中,图7展示对应于数据线D上的逻辑“1”的数据线电压705-1及705-2。
根据一些实施例,感测放大器206的初级锁存器可通过相应通路晶体管而耦合到互补数据线D及D_(图2B中未展示,但呈类似于锁存器264通过图2A中所展示的负载/通路晶体管218-1及218-2而耦合到数据线D及D_的方式的配置)。Passd控制信号711控制通路晶体管。Passdb控制信号控制另一通路晶体管,此处,Passdb控制信号可表现为与Passd 控制信号相同。
在时间t4处,可启用通路晶体管(如果存在)(例如,经由施加到控制线(其耦合到通路晶体管的相应栅极)的相应Passd及Passdb控制信号711升到高态)。在时间t5处,经由图2A 中所展示的相应控制线212-1及212-2而激活累加器正控制信号712-1(例如Accumb)及累加器正控制信号712-2(例如Accum)。如下文将描述,累加器控制信号ACCUMB 712-1及ACCUM 712-2可保持激活以用于随后操作阶段。因而,在此实例中,激活控制信号 ACCUMB712-1及ACCUM 712-2以启用图2A中所展示的计算组件231的次要锁存器(例如累加器)。将存储于感测放大器206中的所感测数据值传送(例如,复制)到次要锁存器(其包含动态锁存器及锁存器264)。
在时间t6处,Passd控制信号711(及Passdb控制信号)降为低态,由此切断通路晶体管 (如果存在)。然而,因为累加器控制信号ACCUMB 712-1及ACCUM 712-2保持激活,所以将累加结果存储(例如,锁存)于次要锁存器(例如累加器)中。在时间t7处,解除激活行信号704-0,且在时间t8处停用阵列感测放大器(例如,解除激活感测放大器控制信号728 及765)。
在时间t9处,平衡数据线D及D_(例如,激活平衡信号726),如通过数据线电压信号705-1及705-2从其相应导轨值移动到平衡电压(VDD/2)所说明。归因于能量守恒定律,平衡几乎不消耗能量。如上文结合图2B所描述,平衡可涉及:在平衡电压(在此实例中,其是VDD/2)处将互补数据线D及D_短接在一起。平衡可发生于(例如)存储器单元感测操作之前。
图8及9分别说明根据本发明的若干实施例的与使用感测电路来执行若干逻辑运算相关联的时序图。图8及9中所展示的时序图说明与执行逻辑运算(例如R输入逻辑运算)的若干中间操作阶段相关联的信号(例如电压信号)。例如,图8中所展示的时序图对应于 R输入“与非”运算或R输入“与”运算的若干中间操作阶段,且图9中所展示的时序图对应于R输入“或非”运算或R输入“或”运算的若干中间操作阶段。例如,执行“与”或“与非”运算可包含:在初始操作阶段(例如相对于图7所描述的初始操作阶段)之后一或多次执行图8中所展示的操作阶段。类似地,执行“或”或“或非”运算可包含:在初始操作阶段(例如相对于图7所描述的初始操作阶段)之后一或多次执行相对于图9中所展示及所描述的操作阶段。
如图8及9中所说明的时序图中所展示,在时间t1处,停用平衡(例如,解除激活平衡信号826/926),且接着启用选定行(例如对应于存储器单元(其数据值将被感测且用作输入,例如第二输入、第三输入等等)的行)。信号804-1/904-1表示施加到选定行(例如图2A中所展示的行Y 204-Y)的电压信号。当行信号804-1达到对应于选定存储器单元的存取晶体管(例如图2A中所展示的202-1)的阈值电压(Vt)时,存取晶体管接通且将数据线D耦合到选定存储器单元(例如,如果存储器单元是1T1C DRAM存储器单元,那么耦合到电容器203-1),其在时间t2与t3之间产生数据线D与D_之间的差分电压信号(例如分别由信号 805-1/905-1及805-2/905-2所指示)。由信号803/903表示选定存储器单元的电压。归因于能量守恒,在D与D_之间产生差分信号(例如,通过将存储器单元耦合到数据线D)不消耗能量,这是因为可将与启用/停用行信号804-1/904-1相关联的能量摊销于耦合到所述行的多个存储器单元上。
在时间t3处,启用感测放大器(例如图2A中所展示的206)(例如,正控制信号865/965 (例如,对应于图2B中所展示的ACT 265)升到高态,且负控制信号828/928(例如图2B中所展示的RnIF 228)降为低态),所述感测放大器放大D与D_之间的差分信号以导致对应于逻辑“1”的电压(例如VDD)或对应于逻辑“0”的电压(例如接地)作用于数据线D上(且另一电压作用于互补数据线D_上),使得所感测的数据值存储于感测放大器206的初级锁存器中。主要能量消耗发生于将数据线D(205-1)从平衡电压VDD/2充电到导轨电压VDD时。
如图8及9中所说明的时序图中所展示,在时间t4处(例如,在感测选定存储器单元之后),根据特定逻辑运算而激活图8中所展示的控制信号811-1(Passd)及9中所展示的控制信号911-2(Passdb)中的仅一者(例如,启用通路晶体管(如果存在)中的仅一者)。举例来说,因为图8中所说明的时序图对应于“与非”或“与”运算的中间阶段,所以在时间t4处激活控制信号811-1(Passd)以接通将初级锁存器耦合到数据线D的通路晶体管且 Passdb控制信号保持解除激活以使将初级锁存器耦合到数据线D_的通路晶体管保持切断。相反地,因为图9中所说明的时序图对应于“或非”或“或”运算的中间阶段,所以在时间t4处激活控制信号911-2(Passdb)以接通将初级锁存器耦合到数据线D_的通路晶体管且控制信号Passd保持解除激活以使将初级锁存器耦合到数据线D的通路晶体管保持切断。从上文回想到,在相对于图7所描述的最初操作阶段期间激活累加器控制信号 712-1(Accumb)及712-2(Accum),且累加器控制信号712-1(Accumb)及712-2(Accum)在 (若干)中间操作阶段期间保持激活。
因为先前已启用累加器,所以仅激活Passd(如图8中所展示的811-1)导致对应于图8 中所展示的电压信号805-1(其对应于数据线D)的数据值累加。类似地,仅激活Passdb(如图9中所展示的911-2)导致对应于电压信号905-2(其对应于数据线D_)的数据值累加。例如,在图8中所说明的时序图中所展示的实例“与”/“与非”运算(其中仅激活Passd(811-1)) 中,如果存储于第二选定存储器单元中的数据值是逻辑“0”,那么与次级锁存器相关联的累加值被断言为低态,使得次级锁存器存储逻辑“0”。如果存储于第二选定存储器单元中的数据值并非为逻辑“0”,那么次级锁存器保持其存储的第一选定存储器单元数据值(例如逻辑“1”或逻辑“0”)。因而,在此“与”/“与非”运算实例中,次级锁存器用作“零(0)”累加器。
类似地,在图9中所说明的时序图中所展示的实例“或”/“或非”运算(其中仅激活Passdb 911-2)中,如果存储于第二选定存储器单元中的数据值是逻辑“1”,那么与次级锁存器相关联的累加值被断言为高态,使得次级锁存器存储逻辑“1”。如果存储于第二选定存储器单元中的数据值并非为逻辑“1”,那么次级锁存器保持其存储的第一选定存储器单元数据值(例如逻辑“1”或逻辑“0”)。因而,在此“或”/“或非”运算实例中,次级锁存器有效地用作“一(1)”累加器,这是因为D_上的电压信号905-2设置累加器的真数据值。
在中间操作阶段(例如图8或9中所展示的中间操作阶段)结束时,解除激活Passd信号 811-1(例如,用于“与”/“与非”运算)或Passdb信号911-2(例如,用于“或”/“或非”运算)(例如,在时间t5处),停用选定行(例如,在时间t6处),停用感测放大器(例如,在时间t7处),且平衡发生(例如,在时间t8处)。中间操作阶段(例如图8或9中所说明的中间操作阶段)可经重复以累加来自若干额外行的结果。作为实例,可在随后(例如,第二)时间对第三存储器单元执行图8及/或9中所说明的时序图的序列,在随后(例如,第三)时间对第四存储器单元执行图8及/或9中所说明的时序图的序列,等等。举例来说,对于10输入“或非”运算,图9中所展示的中间阶段可发生9次以提供10输入逻辑运算的9个输入,其中在初始操作阶段(例如相对于图7所描述)期间确定第十输入。
图10说明根据本发明的若干实施例的与使用感测电路来执行若干逻辑运算相关联的时序图。图10中所说明的时序图展示与执行逻辑运算(例如R输入逻辑运算)的最后操作阶段相关联的信号(例如电压信号)。举例来说,图10中所说明的时序图对应于R输入“与”运算或R输入“或”运算的最后运算阶段。
举例来说,执行R输入的最后运算阶段可包含:在结合图8及/或9所描述的(若干)中间操作阶段的若干迭代之后,执行图10中所展示的操作阶段。下文所展示的表2指示对应于与根据本文中所描述的若干实施例执行若干R输入逻辑运算相关联的操作阶段的序列的图。
运算 图7 图8 图9 图10
“与” 第一阶段 R-1次迭代 最后阶段
“与非” 第一阶段 R-1次迭代
“或” 第一阶段 R-1次迭代 最后阶段
“或非” 第一阶段 R-1次迭代
表2
可(例如)通过将“与”运算的R-1次迭代的结果存储于感测放大器中,接着在进行最后操作阶段以存储结果之前使感测放大器反相而实施“与非”运算(如下文将描述)。可(例如)通过将“或”运算的R-1次迭代的结果存储于感测放大器中,接着在进行最后操作阶段以存储结果之前使感测放大器反相而实施“或非”运算(如下文将描述)。
结合将R输入逻辑运算的结果存储到阵列(例如图2A中所展示的阵列230)的行而描述图10的时序图中所说明的最后操作阶段。然而,如上文所描述,在若干实施例中,可将结果存储到适合位置而非存储回到阵列(例如,经由I/O线而存储到与控制器及/或主机处理器相关联的外部寄存器,存储到不同存储器装置的存储器阵列,等等)。
如图10中所说明的时序图中所展示,在时间t1处,平衡经停用(例如,平衡信号1026 经解除激活)使得数据线D及D_浮动。在时间t2处,Passd控制信号1011(及Passdb信号)经激活以用于“与”或“或”运算。
激活Passd控制信号1011(及Passdb信号)(例如,与“与”或“或”运算相关联)以将存储于图2A中所展示的计算组件231的次级锁存器中的累加输出传送到感测放大器206 的初级锁存器。举例来说,对于“与”运算,如果先前操作阶段(例如图7中所说明的第一操作阶段及8中所说明的中间操作阶段的一或多个迭代)中所感测的存储器单元中的任何者存储逻辑“0”(例如,如果“与”运算的R输入中的任何者是逻辑“0”),那么数据线D_将携带对应于逻辑“1”的电压(例如VDD)且数据线D将携带对应于逻辑“0”的电压 (例如接地)。对于此“与”运算实例,如果先前操作阶段中所感测的全部存储器单元存储逻辑“1”(例如,如果“与”运算的全部R输入是逻辑“1”),那么数据线D_将携带对应于逻辑“0”的电压且数据线D将携带对应于逻辑“1”的电压。接着,在时间t3处,启用感测放大器206的初级锁存器(例如,正控制信号1065(例如,对应于图2B中所展示的ACT 265)升到高态且负控制信号1028(例如,对应于图2B中所展示的RnIF 228)降为低态),感测放大器206放大数据线D与D_之间的差分信号,使得数据线D此时携带相应输入数据值的“与”运算结果,如从先前操作阶段期间所感测的存储器单元所确定。因而,如果输入数据值中的任何者是逻辑“0”,那么数据线D将处于接地,且如果全部输入数据值是逻辑“1”,那么数据线D将处于VDD
对于“或”运算,如果先前操作阶段(例如图7的第一操作阶段及9中所展示的中间操作阶段的一或多个迭代)中所感测的存储器单元的中任何者存储逻辑“1”(例如,如果“或”运算的R输入中的任何者是逻辑“1”),那么数据线D_将携带对应于逻辑“0”的电压(例如接地)且数据线D将携带对应于逻辑“1”的电压(例如VDD)。对于此“或”运算实例,如果先前操作阶段中所感测的全部存储器单元存储逻辑“0”(例如,如果“或”运算的全部R输入是逻辑“0”),那么数据线D将携带对应于逻辑“0”的电压且数据线D_将携带对应于逻辑“1”的电压。接着,在时间t3处,启用感测放大器206的初级锁存器且数据线D此时携带相应输入数据值的“或”运算结果,如从先前操作阶段期间所感测的存储器单元所确定。因而,如果输入数据值中的任何者是逻辑“1”,那么数据线D将处于VDD,且如果全部输入数据值是逻辑“0”,那么数据线D将处于接地。
接着,可将R输入“与”或“或”逻辑运算的结果存储回到2A中所展示的阵列230 的存储器单元。在图10所展示的实例中,将R输入逻辑运算的结果存储到耦合到最后启用行(例如最后逻辑运算操作数的列)的存储器单元。将逻辑运算的结果存储到存储器单元仅涉及:通过启用特定行而启用相关联的行存取晶体管。将存储器单元的电容器驱动到数据线D上对应于数据值(例如逻辑“1”或逻辑“0”)的电压,其本质上覆写先前存储于选定存储器单元中的任何数据值。应注意,选定存储器单元可为相同存储器单元,其存储用作逻辑运算的输入的数据值。举例来说,可将逻辑运算的结果存储回到存储逻辑运算的操作数的存储器单元。
图10中所说明的时序图展示:在时间t7处,正控制信号1065及负控制信号1028经解除激活(例如,信号1065降为低态且信号1028升到高态)以停用图2A中所展示的感测放大器206。在时间t4处,解除激活在时间t2处激活的Passd控制信号1011(及Passdb信号)。实施例不受限于此实例。举例来说,在若干实施例中,可在时间t4之后(例如,在解除激活 Passd控制信号1011(及Passdb信号)之后)启用图2A中所展示的感测放大器206。
如图10中所展示,在时间t5处,启用选定行(例如,通过行激活信号1004升到高态,其将选定存储器单元的电容器驱动到对应于存储于累加器中的逻辑值的电压)。在时间t6处,停用选定行。在时间t7处,停用图2A中所展示的感测放大器206(例如,解除激活负控制信号1028及正控制信号1065),且在时间t8处,平衡发生(例如,激活信号1026且使互补数据线1005-1(D)及1005-2(D_)上的电压达到平衡电压)。
虽然上文相对于用于执行“与”及“或”逻辑运算的图10而讨论执行R输入的最后操作阶段的实例,但实施例不受限于这些逻辑运算。例如,“与非”及“或非”运算还可涉及存储回到阵列230的存储器单元的R输入的最后运算阶段,其使用控制信号来操作图2A中所说明的感测电路。
图11是说明根据本发明的若干实施例的具有可选逻辑运算选择逻辑的感测电路的示意图。图11展示耦合到一对互补感测线1105-1及1105-2的感测放大器1106及经由通路门1193-1及1193-2而耦合到感测放大器1106的计算组件1131。通路门1193-1及1193-2的栅极可由可从逻辑运算选择逻辑1113-5输出的逻辑运算选择逻辑信号PASS控制。图11展示标记为“A”的计算组件1131及标记为“B”的感测放大器1106以指示:存储于计算组件 1131中的数据值是“A”数据值且存储于感测放大器1106中的数据值是“B”数据值,如相对于图12所说明的逻辑表中所展示。
图11中所说明的感测电路1150可包含逻辑运算选择逻辑1113-5。在此实例中,逻辑 1113-5包括由逻辑运算选择逻辑信号PASS*控制的交换门1142。逻辑运算选择逻辑1113-5 还包括四个逻辑选择晶体管:逻辑选择晶体管1162,其耦合于交换晶体管1142的栅极与 TF信号控制线之间;逻辑选择晶体管1152,其耦合于通路门1193-1及1193-2的栅极与TT 信号控制线之间;逻辑选择晶体管1154,其耦合于通路门1193-1及1193-2的栅极与FT信号控制线之间;及逻辑选择晶体管1164,其耦合于交换晶体管1142的栅极与FF信号控制线之间。逻辑选择晶体管1162及1152的栅极通过隔离晶体管1150-1(其具有耦合到ISO信号控制线的栅极)而耦合到真感测线(例如,1105-1),且逻辑选择晶体管1164及1154的栅极通过隔离晶体管1150-2(其还具有耦合到ISO信号控制线的栅极)而耦合到互补感测线 (例如1105-2)。
逻辑选择晶体管1152及1154分别类似于晶体管207-1(耦合到“与”信号控制线)及晶体管207-2(耦合到“或”信号控制线)而布置,如图2A中所展示。逻辑选择晶体管1152 及1154的操作是类似地基于TT及FT选择信号的状态及断言ISO信号时相应互补感测线上的数据值。逻辑选择晶体管1162及1164还以类似于控制(例如,通过接通而启用或通过切断而停用)交换晶体管1142的方式操作。举例来说,为启用(例如,接通)交换晶体管 1142,激活TF控制信号(例如,呈高态)(其中真感测线上的数据值是“1”),或激活FF 控制信号(例如,呈高态)(其中互补感测线上的数据值是“1”)。如果相应控制信号或对应感测线(例如特定逻辑选择晶体管的栅极耦合到其的感测线)上的数据值不呈高态,那么不会由特定逻辑选择晶体管启用交换晶体管1142。
PASS*控制信号未必与PASS控制信号互补。举例来说,可同时激活PASS控制信号及PASS*控制信号两者或可同时解除激活PASS控制信号及PASS*控制信号两者。然而,同时激活PASS控制信号及PASS*控制信号两者使互补感测线对DIGIT(n)/DIGIT(n)_短接在一起,其可为待避免的破坏性配置。图12中所说明的逻辑表中汇总图11中所说明的感测电路的逻辑运算结果。
图12是说明根据本发明的若干实施例的可由图11中所展示的感测电路实施的可选逻辑运算结果的逻辑表。四个逻辑选择控制信号(例如,TF、TT、FT及FF)可与呈现于互补感测线上的特定数据值一起用于选择实施涉及存储于感测放大器1106及计算组件 1131中的起始数据值的复数逻辑运算中的一者。四个控制信号(例如,TF、TT、FT及FF) 与呈现于互补感测线上的特定数据值一起控制通路门1193-1及1193-2及交换晶体管 1142,其继而影响触发之前/之后的计算组件1131及/或感测放大器1106中的数据值。可选地控制交换晶体管1142的能力尤其促进实施涉及反相数据值(例如,反相操作数及/或反相结果)的逻辑运算。
图12中所说明的逻辑表展示1244处的列A中所展示的存储于计算组件1131中的起始数据值及1245处的列B中所展示的存储于感测放大器1106中的起始数据值。图12的逻辑表中的其它3个顶部行标头(“不打开”1256、“打开真”1270及“打开反相”1271)是指通路门1193-1及1193-2及交换晶体管1142的状态,通路门1193-1及1193-2及交换晶体管1142可根据四个逻辑选择控制信号(例如TF、TT、FT及FF)的状态以及断言ISO控制信号时呈现于互补感测线对1105-1及1105-2上的特定数据值而分别被控制为“打开”或“关闭”。“不打开”行对应于通路门1193-1及1193-2及交换晶体管1142两者处于非导通(例如,切断)条件中,“打开真”对应于通路门1193-1及1193-2处于导通(例如,接通)条件中,且“打开反相”对应于交换晶体管1142处于导通条件中。图12的逻辑表中未反映对应于通路门1193-1及1193-2及交换晶体管1142两者处于导通条件中的配置,这是因为这导致感测线短接在一起。
经由通路门1193-1及1193-2及交换晶体管1142的选择性控制,图12的逻辑表的上部分的第一组的两行的三列中的每一者可与第一组下方的第二组的两行的三列中的每一者结合以提供3×3=9个不同结果组合以对应于9个不同逻辑运算,如由1275处所展示的各种连接路径所指示。图12中所说明的逻辑表中汇总可由感测电路1150实施的9个不同可选逻辑运算。
图12中所说明的逻辑表的下部分的行展示可包含逻辑选择控制信号的状态的标头 1280。举例来说,将第一逻辑选择控制信号(例如FF)的状态提供于行1276中,将第二逻辑选择控制信号(例如FT)的状态提供于行1277中,将第三逻辑选择控制信号(例如TF)的状态提供于行1278中,且将第四逻辑选择控制信号(例如TT)的状态提供于行1279中。行 1247中汇总对应于结果的特定逻辑运算。
因而,图11中所展示的感测电路可用于执行如图12中所展示的各种逻辑运算。举例来说,感测电路1150可经操作以执行与根据本发明的若干实施例在存储器中执行交换运算相关联的各种逻辑运算(例如,“与”逻辑运算及“或”逻辑运算)。
本发明可包含与在存储器中执行交换运算有关的设备及方法。实例设备可包含第一群组的存储器单元,其耦合到第一感测线且经配置以存储第一元素。实例设备还可包含第二群组的存储器单元,其耦合到第二感测线且经配置以存储第二元素。实例设备还可包含控制器,其经配置以在无需经由输入/输出(I/O)线来传送数据的情况下通过控制感测电路以执行若干运算而致使第一元素存储于第二群组的存储器单元中及致使第二元素存储于第一群组的存储器单元中。
虽然本文中已说明及描述特定实施例,但所属领域的一般技术人员应了解,可用经计算以实现相同结果的布置替代所展示的特定实施例。本发明意在涵盖本发明的一或多个实施例的调适或变动。应了解,已以说明性方式而非限制性方式进行以上描述。所属领域的技术人员将在检视以上描述之后明白上述实施例的组合及本文中未明确描述的其它实施例。本发明的一或多个实施例的范围可包含其中使用上述结构及方法的其它应用。因此,应参考所附权利要求书以及此类权利要求书授权的等效物的全范围来确定本发明的一或多个实施例的范围。
在实施方式中,为简化本发明,将一些特征一起分组于单个实施例中。本发明的方法不应被解译为反映下列意图:本发明的所揭示实施例必须使用比每一权利要求中清楚叙述的特征更多的特征。而是,如所附权利要求书所反映,发明标的物倾向于少于单个所揭示实施例的全部特征。因此,所附权利要求书特此并入到实施方式中,其中每一权利要求自身作为单独实施例。

Claims (22)

1.一种方法,其包括:
使存储于耦合到存储器单元阵列的第一感测线(405-0)及若干存取线(404-0、404-1、404-2)的第一群组的存储器单元中的第一元素(488-0)与存储于耦合到第二感测线(405-1)及所述若干存取线(404-0、404-1、404-2)的第二群组的存储器单元中的第二元素(488-1)交换,使得继所述交换之后,所述第一元素(488-0)存储于所述第二群组的存储器单元中且所述第二元素(488-1)存储于所述第一群组的存储器单元中;
将第一暂时位向量(482)存储于耦合到一不同的存取线及多个第三感测线的第三群组的存储器单元中,所述第一暂时位向量(482)包含与来自多个所述第一元素及多个所述第二元素中的每一者的若干个指数中的特定指数相关联的多个位;及
将所述第一暂时位向量存储于多个计算组件(231;1131)中以交换所述第一元素和所述第二元素;
其中所述第一元素和所述第二元素是第一元素对;及
其中执行交换运算包括并行交换多个元素对,并且所述多个元素对中的每个元素对的元素存储于耦合到不同的感测线的存储器单元中。
2.根据权利要求1所述的方法,其中在所述交换之前,所述第一元素(488-0)作为第一位向量存储于所述第一群组的存储器单元中,其中所述第一群组的存储器单元中的每一存储器单元存储所述第一位向量的相应位。
3.根据权利要求2所述的方法,其中在所述交换之前,所述第二元素(488-1)作为第二位向量存储于所述第二群组的存储器单元中,其中所述第二群组的存储器单元中的每一存储器单元存储所述第二位向量的相应位。
4.根据权利要求3所述的方法,其中继所述交换之后,所述第一位向量存储于所述第二群组的存储器单元中且所述第二位向量存储于所述第一群组的存储器单元中。
5.根据权利要求1所述的方法,其中在所述交换之前:
所述第一元素(488-0)作为包括若干位的第一位向量存储于所述第一群组的相应若干存储器单元中;及
所述第二元素(488-1)作为第二位向量存储于所述第二群组的相应若干存储器单元中,所述第二位向量与所述第一位向量同样包括若干位;及
其中具有与所述第二位向量的位相同的位位置的所述第一位向量的位存储于耦合到所述若干存取线的相同存取线的存储器单元中;及
其中使所述第一元素(488-0)与所述第二元素交换包括:使具有相同位位置且存储于耦合到相同存取线的存储器单元中的所述第一位向量及所述第二位向量的一对位交换,使得继所述交换之后,所述第一元素(488-0)作为所述第一位向量存储于所述第二群组的所述相应若干存储器单元中,且所述第二元素(488-1)作为所述第二位向量存储于所述第一群组的所述相应若干存储器单元中。
6.根据权利要求1所述的方法,其中在无需经由输入/输出I/O线而传送对应于所述第一元素及所述第二元素的数据的情况下执行所述交换。
7.一种设备,其包括:
多个第一群组的存储器单元(303-0到303-J),其耦合到多个第一感测线(405-0到405-5)且经配置以存储多个第一元素(488-0到488-5);
多个第二群组的存储器单元(303-0到303-J),其耦合到多个第二感测线(405-0到405-5)且经配置以存储多个第二元素(488-0到488-5);及
控制器(140),其经配置以控制感测电路(150;250;1150)以:
将所述多个第一元素(488-0到488-5)存储于所述多个第二群组的存储器单元中;且
将所述多个第二元素(488-0到488-5)存储于所述多个第一群组的存储器单元中;
其中存储所述多个第一元素及所述多个第二元素包括并行存储多个元素对,其中所述多个第一元素及所述多个第二元素包括所述多个元素对,所述多个元素对中的相应一者存储于耦合到不同的感测线的存储器单元中。
8.根据权利要求7所述的设备,其中所述多个第一感测线的数量是与所述多个第二感测线的数量相同的数量。
9.根据权利要求8所述的设备,其中所述多个第二感测线中的每一者相邻于存储器阵列的所述多个第一感测线中的不同者。
10.根据权利要求9所述的设备,其中所述多个第二感测线中的任意两者均不是彼此相邻。
11.根据权利要求10所述的设备,其中在无需经由输入/输出I/O线传送数据的情况下执行存储所述多个第一元素和所述多个第二元素。
12.一种用于执行交换运算的方法,其包括:
将多个第一元素(488-0到488-5)存储于多个第一群组的存储器单元(303-0到303-J)中,其中来自所述多个第一群组的每一存储器单元群组耦合到来自多个第一感测线(405-0到405-5)的不同感测线及若干存取线(404-0、404-1、404-2);
将多个第二元素存储于多个第二群组的存储器单元(303-0到303-J)中,其中来自所述多个第二群组的每一存储器单元群组耦合到来自多个第二感测线(405-0到405-5)的不同感测线及所述若干存取线(404-0、404-1、404-2);
将所述多个第一元素(488-0到488-5)存储于所述多个第二群组的存储器单元中;及
将所述多个第二元素(488-0到488-5)存储于所述多个第一群组的存储器单元中;
其中所述多个第一元素及所述多个第二元素包括多个元素对;及
其中将所述多个第一元素存储于所述多个第二群组的存储器单元中以及将所述多个第二元素存储于所述多个第一群组的存储器单元中进一步包括并行存储所述多个元素对,所述多个元素对中的相应一者存储于耦合到不同的感测线的存储器单元中。
13.根据权利要求12所述的方法,其中所述多个第一元素(488-0到488-5)及所述多个第二元素(488-0到488-5)中的每一者由若干位组成。
14.根据权利要求13所述的方法,其中所述多个第一元素(488-0到488-5)及所述多个第二元素(488-0到488-5)中的每一者中的所述若干位中的每一者与对应于所述若干位的位位置的若干指数中的一者相关联,且其中来自具有相同相关联指数的对应元素的位存储于耦合到来自所述若干存取线的相同存取线的存储器单元中。
15.根据权利要求14所述的方法,其中所述若干存取线(404-0、404-1、404-2)中的每一者与所述若干指数中的不同者相关联。
16.根据权利要求15所述的方法,其进一步包括:识别通过下列步骤而对所述多个第一元素及所述多个第二元素执行所述交换运算:
将掩码行位向量(476)存储于耦合到第一存取线及多个第三感测线的第一群组的存储器单元中;
其中所述多个第三感测线包含所述多个第一感测线及所述多个第二感测线;及
将经移位掩码行位向量(478)存储于耦合到第二存取及所述多个第三感测线的第二群组的存储器单元中;
其中所述掩码行位向量及所述经移位掩码行位向量识别来自所述多个第一元素及所述多个第二元素的元素中的哪些元素用于所述交换运算中。
17.根据权利要求16所述的方法,其进一步包括执行若干运算迭代,其中每一运算迭代与所述若干指数中的一者相关联。
18.根据权利要求17所述的方法,其中所述若干运算迭代中的每一运算迭代进一步包括:
将第一暂时行位向量(482)存储于耦合到第三存取线及所述多个第三感测线的第三群组的存储器单元中,所述第一暂时行 位向量包含与来自所述多个第一元素及所述多个第二元素中的每一者的所述若干指数中的特定指数相关联的多个位;及
将所述第一暂时行位向量存储于多个计算组件(231;1131)中。
19.根据权利要求18所述的方法,其中所述若干运算迭代中的每一运算迭代进一步包括:
将存储于所述多个计算组件中的位向量向右移位;
对存储于所述多个计算组件中的所述位向量及所述经移位掩码行位向量执行第一“及”运算;及
将所述第一“及”运算的结果作为第二暂时行位向量存储于第四群组的存储器单元中;
其中所述第四群组的存储器单元耦合到第四存取线及所述多个第三感测线。
20.根据权利要求19所述的方法,其中所述若干运算迭代中的每一运算迭代进一步包括:
将所述经移位掩码行位向量存储于所述多个计算组件中;
对存储于所述多个计算组件中的所述经移位掩码行位向量执行第一“反相”运算;
对与来自所述多个第一元素及所述多个第二元素中的每一者的所述若干指数中的所述特定指数相关联的所述多个位及对存储于所述多个计算组件中的所述经移位掩码行位向量执行第二“及”运算;
对所述第二“及”运算的结果及对所述第二暂时行位向量执行第一“或”运算;
将所述第一“或”运算的结果存储于耦合到与所述特定指数相关联的存取线及所述若干感测线的存储器单元中。
21.根据权利要求20所述的方法,其中所述若干运算迭代中的每一运算迭代进一步包括:
将所述第一暂时行位向量存储于所述多个计算组件中;
对存储于所述多个计算组件中的所述第一暂时行位向量及对所述经移位掩码行位向量执行第三“及”运算;
将所述第三“及”运算的结果存储于所述计算组件中;
将所述计算组件中的所述第一暂时行位向量向左移位;
将所述计算组件中的所述第一暂时行位向量存储于所述第四群组的存储器单元中。
22.根据权利要求21所述的方法,其中所述若干运算迭代中的每一运算迭代进一步包括:
将所述掩码行位向量存储于所述多个计算组件中;
对存储于所述多个计算组件中的所述掩码行位向量执行第二“反相”运算;
对存储于所述多个计算组件中的所述掩码行位向量及与来自所述多个第一元素及所述多个第二元素中的每一者的所述若干指数中的所述特定指数相关联的所述多个位执行第四“及”运算;
对所述第四“及”运算的结果及所述第二暂时行位向量执行第二“或”运算;
将所述第二“或”运算的结果存储于耦合到与所述特定指数相关联的所述存取线及所述若干感测线的存储器单元中。
CN201580047645.3A 2014-09-03 2015-09-03 存储器中的交换运算 Active CN106688040B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201462045193P 2014-09-03 2014-09-03
US62/045,193 2014-09-03
US14/836,555 2015-08-26
US14/836,555 US9740607B2 (en) 2014-09-03 2015-08-26 Swap operations in memory
PCT/US2015/048251 WO2016036913A1 (en) 2014-09-03 2015-09-03 Swap operations in memory

Publications (2)

Publication Number Publication Date
CN106688040A CN106688040A (zh) 2017-05-17
CN106688040B true CN106688040B (zh) 2019-08-06

Family

ID=55402525

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580047645.3A Active CN106688040B (zh) 2014-09-03 2015-09-03 存储器中的交换运算

Country Status (6)

Country Link
US (2) US9740607B2 (zh)
EP (1) EP3195315B1 (zh)
KR (1) KR101889238B1 (zh)
CN (1) CN106688040B (zh)
TW (1) TWI620058B (zh)
WO (1) WO2016036913A1 (zh)

Families Citing this family (87)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10147480B2 (en) 2014-10-24 2018-12-04 Micron Technology, Inc. Sort operation in memory
CN107430874B (zh) 2015-03-12 2021-02-02 美光科技公司 用于数据移动的设备及方法
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
US9704541B2 (en) 2015-06-12 2017-07-11 Micron Technology, Inc. Simulating access lines
US9997232B2 (en) 2016-03-10 2018-06-12 Micron Technology, Inc. Processing in memory (PIM) capable memory device having sensing circuitry performing logic operations
US10262721B2 (en) 2016-03-10 2019-04-16 Micron Technology, Inc. Apparatuses and methods for cache invalidate
US10379772B2 (en) 2016-03-16 2019-08-13 Micron Technology, Inc. Apparatuses and methods for operations using compressed and decompressed data
US9910637B2 (en) 2016-03-17 2018-03-06 Micron Technology, Inc. Signed division in memory
US11074988B2 (en) 2016-03-22 2021-07-27 Micron Technology, Inc. Apparatus and methods for debugging on a host and memory device
US10388393B2 (en) 2016-03-22 2019-08-20 Micron Technology, Inc. Apparatus and methods for debugging on a host and memory device
US10120740B2 (en) 2016-03-22 2018-11-06 Micron Technology, Inc. Apparatus and methods for debugging on a memory device
US10977033B2 (en) 2016-03-25 2021-04-13 Micron Technology, Inc. Mask patterns generated in memory from seed vectors
US10474581B2 (en) 2016-03-25 2019-11-12 Micron Technology, Inc. Apparatuses and methods for cache operations
US10074416B2 (en) 2016-03-28 2018-09-11 Micron Technology, Inc. Apparatuses and methods for data movement
US10430244B2 (en) 2016-03-28 2019-10-01 Micron Technology, Inc. Apparatuses and methods to determine timing of operations
US10453502B2 (en) 2016-04-04 2019-10-22 Micron Technology, Inc. Memory bank power coordination including concurrently performing a memory operation in a selected number of memory regions
US10607665B2 (en) 2016-04-07 2020-03-31 Micron Technology, Inc. Span mask generation
US9818459B2 (en) 2016-04-19 2017-11-14 Micron Technology, Inc. Invert operations using sensing circuitry
US10153008B2 (en) 2016-04-20 2018-12-11 Micron Technology, Inc. Apparatuses and methods for performing corner turn operations using sensing circuitry
US9659605B1 (en) 2016-04-20 2017-05-23 Micron Technology, Inc. Apparatuses and methods for performing corner turn operations using sensing circuitry
US10042608B2 (en) 2016-05-11 2018-08-07 Micron Technology, Inc. Signed division in memory
US9659610B1 (en) 2016-05-18 2017-05-23 Micron Technology, Inc. Apparatuses and methods for shifting data
US10049707B2 (en) 2016-06-03 2018-08-14 Micron Technology, Inc. Shifting data
US10387046B2 (en) 2016-06-22 2019-08-20 Micron Technology, Inc. Bank to bank data transfer
US10037785B2 (en) 2016-07-08 2018-07-31 Micron Technology, Inc. Scan chain operation in sensing circuitry
US10388360B2 (en) 2016-07-19 2019-08-20 Micron Technology, Inc. Utilization of data stored in an edge section of an array
US10733089B2 (en) 2016-07-20 2020-08-04 Micron Technology, Inc. Apparatuses and methods for write address tracking
US10387299B2 (en) 2016-07-20 2019-08-20 Micron Technology, Inc. Apparatuses and methods for transferring data
US9767864B1 (en) 2016-07-21 2017-09-19 Micron Technology, Inc. Apparatuses and methods for storing a data value in a sensing circuitry element
US9972367B2 (en) 2016-07-21 2018-05-15 Micron Technology, Inc. Shifting data in sensing circuitry
US10303632B2 (en) 2016-07-26 2019-05-28 Micron Technology, Inc. Accessing status information
US10468087B2 (en) 2016-07-28 2019-11-05 Micron Technology, Inc. Apparatuses and methods for operations in a self-refresh state
US9990181B2 (en) 2016-08-03 2018-06-05 Micron Technology, Inc. Apparatuses and methods for random number generation
US11029951B2 (en) 2016-08-15 2021-06-08 Micron Technology, Inc. Smallest or largest value element determination
KR20180021510A (ko) 2016-08-22 2018-03-05 삼성전자주식회사 메모리 장치 및 중앙 처리 장치
US10606587B2 (en) 2016-08-24 2020-03-31 Micron Technology, Inc. Apparatus and methods related to microcode instructions indicating instruction types
US10466928B2 (en) 2016-09-15 2019-11-05 Micron Technology, Inc. Updating a register in memory
US10387058B2 (en) 2016-09-29 2019-08-20 Micron Technology, Inc. Apparatuses and methods to change data category values
US10014034B2 (en) 2016-10-06 2018-07-03 Micron Technology, Inc. Shifting data in sensing circuitry
US10529409B2 (en) 2016-10-13 2020-01-07 Micron Technology, Inc. Apparatuses and methods to perform logical operations using sensing circuitry
US9805772B1 (en) 2016-10-20 2017-10-31 Micron Technology, Inc. Apparatuses and methods to selectively perform logical operations
US10373666B2 (en) 2016-11-08 2019-08-06 Micron Technology, Inc. Apparatuses and methods for compute components formed over an array of memory cells
US10423353B2 (en) 2016-11-11 2019-09-24 Micron Technology, Inc. Apparatuses and methods for memory alignment
US9761300B1 (en) 2016-11-22 2017-09-12 Micron Technology, Inc. Data shift apparatuses and methods
US10402340B2 (en) 2017-02-21 2019-09-03 Micron Technology, Inc. Memory array page table walk
US10268389B2 (en) 2017-02-22 2019-04-23 Micron Technology, Inc. Apparatuses and methods for in-memory operations
US10403352B2 (en) 2017-02-22 2019-09-03 Micron Technology, Inc. Apparatuses and methods for compute in data path
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
US11222260B2 (en) 2017-03-22 2022-01-11 Micron Technology, Inc. Apparatuses and methods for operating neural networks
US10049721B1 (en) 2017-03-27 2018-08-14 Micron Technology, Inc. Apparatuses and methods for in-memory operations
US10147467B2 (en) 2017-04-17 2018-12-04 Micron Technology, Inc. Element value comparison in memory
US10043570B1 (en) 2017-04-17 2018-08-07 Micron Technology, Inc. Signed element compare in memory
US9997212B1 (en) 2017-04-24 2018-06-12 Micron Technology, Inc. Accessing data in memory
US10942843B2 (en) 2017-04-25 2021-03-09 Micron Technology, Inc. Storing data elements of different lengths in respective adjacent rows or columns according to memory shapes
US10236038B2 (en) 2017-05-15 2019-03-19 Micron Technology, Inc. Bank to bank data transfer
US10068664B1 (en) 2017-05-19 2018-09-04 Micron Technology, Inc. Column repair in memory
US10013197B1 (en) 2017-06-01 2018-07-03 Micron Technology, Inc. Shift skip
US10262701B2 (en) 2017-06-07 2019-04-16 Micron Technology, Inc. Data transfer between subarrays in memory
US10152271B1 (en) 2017-06-07 2018-12-11 Micron Technology, Inc. Data replication
US10318168B2 (en) 2017-06-19 2019-06-11 Micron Technology, Inc. Apparatuses and methods for simultaneous in data path compute operations
US10162005B1 (en) 2017-08-09 2018-12-25 Micron Technology, Inc. Scan chain operations
US10534553B2 (en) 2017-08-30 2020-01-14 Micron Technology, Inc. Memory array accessibility
US10346092B2 (en) 2017-08-31 2019-07-09 Micron Technology, Inc. Apparatuses and methods for in-memory operations using timing circuitry
US10741239B2 (en) 2017-08-31 2020-08-11 Micron Technology, Inc. Processing in memory device including a row address strobe manager
US10416927B2 (en) 2017-08-31 2019-09-17 Micron Technology, Inc. Processing in memory
US10409739B2 (en) 2017-10-24 2019-09-10 Micron Technology, Inc. Command selection policy
KR102034152B1 (ko) * 2017-10-25 2019-10-18 한양대학교 산학협력단 반도체 메모리 장치 및 반도체 메모리 장치의 로우 버퍼
US10522210B2 (en) 2017-12-14 2019-12-31 Micron Technology, Inc. Apparatuses and methods for subarray addressing
US10332586B1 (en) 2017-12-19 2019-06-25 Micron Technology, Inc. Apparatuses and methods for subrow addressing
US10614875B2 (en) 2018-01-30 2020-04-07 Micron Technology, Inc. Logical operations using memory cells
US10437557B2 (en) 2018-01-31 2019-10-08 Micron Technology, Inc. Determination of a match between data values stored by several arrays
US11194477B2 (en) 2018-01-31 2021-12-07 Micron Technology, Inc. Determination of a match between data values stored by three or more arrays
US10725696B2 (en) 2018-04-12 2020-07-28 Micron Technology, Inc. Command selection policy with read priority
US10440341B1 (en) 2018-06-07 2019-10-08 Micron Technology, Inc. Image processor formed in an array of memory cells
US11175915B2 (en) 2018-10-10 2021-11-16 Micron Technology, Inc. Vector registers implemented in memory
US10769071B2 (en) 2018-10-10 2020-09-08 Micron Technology, Inc. Coherent memory access
US10483978B1 (en) 2018-10-16 2019-11-19 Micron Technology, Inc. Memory device processing
US11184446B2 (en) 2018-12-05 2021-11-23 Micron Technology, Inc. Methods and apparatus for incentivizing participation in fog networks
KR20200118311A (ko) * 2019-04-05 2020-10-15 삼성전자주식회사 데이터를 스왑하기 위한 메모리 장치 및 메모리 장치의 동작 방법
US10867655B1 (en) 2019-07-08 2020-12-15 Micron Technology, Inc. Methods and apparatus for dynamically adjusting performance of partitioned memory
US11360768B2 (en) 2019-08-14 2022-06-14 Micron Technolgy, Inc. Bit string operations in memory
US11436071B2 (en) 2019-08-28 2022-09-06 Micron Technology, Inc. Error control for content-addressable memory
US11449577B2 (en) 2019-11-20 2022-09-20 Micron Technology, Inc. Methods and apparatus for performing video processing matrix operations within a memory array
US11853385B2 (en) 2019-12-05 2023-12-26 Micron Technology, Inc. Methods and apparatus for performing diversity matrix operations within a memory array
US11227641B1 (en) 2020-07-21 2022-01-18 Micron Technology, Inc. Arithmetic operations in memory

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5276643A (en) * 1988-08-11 1994-01-04 Siemens Aktiengesellschaft Integrated semiconductor circuit
US7808854B2 (en) * 2008-02-19 2010-10-05 Kabushiki Kaisha Toshiba Systems and methods for data transfers between memory cells
CN102792382A (zh) * 2010-03-09 2012-11-21 美光科技公司 存储器装置中的感测操作
CN103985410A (zh) * 2014-04-30 2014-08-13 北京世纪东方国铁科技股份有限公司 一种存储装置及用于存储装置的数据访问方法

Family Cites Families (269)

* 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
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
DE69132495T2 (de) 1990-03-16 2001-06-13 Texas Instruments Inc Verteilter Verarbeitungsspeicher
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
JPH06215160A (ja) 1992-08-25 1994-08-05 Texas Instr Inc <Ti> データ処理方法および装置
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
US5369622A (en) 1993-04-20 1994-11-29 Micron Semiconductor, Inc. Memory with isolated digit lines
US5754478A (en) 1993-04-20 1998-05-19 Micron Technology, Inc. Fast, low power, write scheme for memory circuits using pulsed off isolation device
JP2663838B2 (ja) 1993-07-27 1997-10-15 日本電気株式会社 半導体集積回路装置
JP3252306B2 (ja) 1993-08-10 2002-02-04 株式会社日立製作所 半導体不揮発性記憶装置
JP3904244B2 (ja) 1993-09-17 2007-04-11 株式会社ルネサステクノロジ シングル・チップ・データ処理装置
US20010052062A1 (en) * 1994-03-01 2001-12-13 G. Jack Lipovski Parallel computer within dynamic random access memory
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 주식회사 하이닉스반도체 고속동작용디램
US5999435A (en) 1999-01-15 1999-12-07 Fast-Chip, Inc. Content addressable memory device
US6389507B1 (en) 1999-01-15 2002-05-14 Gigabus, Inc. Memory device search system and method
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
CN1307647C (zh) 2000-07-07 2007-03-28 睦塞德技术公司 动态随机存取存储器、存储器器件及其执行读命令的方法
US6466499B1 (en) 2000-07-11 2002-10-15 Micron Technology, Inc. DRAM sense amplifier having pre-charged transistor body nodes
WO2002017262A2 (en) 2000-08-21 2002-02-28 United States Postal Services 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
US7546438B2 (en) 2001-07-19 2009-06-09 Chung Shine C Algorithm mapping, specialized instructions and architecture features for smart memory computing
US6807614B2 (en) 2001-07-19 2004-10-19 Shine C. Chung Method and apparatus for using smart memories in 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
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
KR100546307B1 (ko) 2002-12-05 2006-01-26 삼성전자주식회사 글로벌 입출력라인을 프리차지 및/또는 이퀄라이징하기위한 프리차지 회로를 구비하는 반도체 장치 및프리차지 및/또는 이퀄라이즈하는 트랜지스터의 레이아웃
US6731542B1 (en) 2002-12-05 2004-05-04 Advanced Micro Devices, Inc. Circuit for accurate memory read operations
US6888372B1 (en) 2002-12-20 2005-05-03 Altera Corporation Programmable logic device with soft multiplier
WO2004059651A2 (en) 2002-12-27 2004-07-15 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
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
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
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
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 ローム株式会社 演算機能付き記憶装置および演算記憶方法
EP1665286B8 (en) 2003-09-04 2007-09-12 Nxp B.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
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
US20050278505A1 (en) 2004-05-19 2005-12-15 Lim Seow C Microprocessor architecture including zero impact predictive data pre-fetch mechanism for pipeline data memory
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
JP4594666B2 (ja) 2004-07-12 2010-12-08 富士通株式会社 再構成可能な演算装置
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
US7685365B2 (en) 2004-09-30 2010-03-23 Intel Corporation Transactional memory execution utilizing virtual memory
US20060069849A1 (en) 2004-09-30 2006-03-30 Rudelic John C Methods and apparatus to update information in a 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
US7212440B2 (en) 2004-12-30 2007-05-01 Sandisk Corporation On-chip data grouping and alignment
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
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
US8156299B2 (en) 2007-10-19 2012-04-10 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
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
US8281053B2 (en) * 2008-07-21 2012-10-02 International Business Machines Corporation Performing an all-to-all data exchange on a plurality of data buffers by performing swap operations
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
US8555037B2 (en) 2008-08-15 2013-10-08 Apple Inc. Processing vectors using wrapping minima and maxima instructions in the macroscalar architecture
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
US8412987B2 (en) 2009-06-30 2013-04-02 Micron Technology, Inc. Non-volatile memory to store memory remap information
US8412985B1 (en) 2009-06-30 2013-04-02 Micron Technology, Inc. Hardwired remapped memory
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 株式会社東芝 半導体記憶装置
JP5568133B2 (ja) 2009-08-18 2014-08-06 ダウ コーニング コーポレーション 多層経皮パッチ
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
WO2011048522A2 (en) 2009-10-21 2011-04-28 Zikbit Ltd. 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
EP2727114B1 (en) 2011-06-28 2020-04-22 Hewlett-Packard Enterprise Development LP Shiftable memory
US8706958B2 (en) 2011-09-01 2014-04-22 Thomas Hein Data mask encoding in data bit inversion scheme
US20140247673A1 (en) 2011-10-28 2014-09-04 Naveen Muralimanohar Row shifting shiftable memory
US8891297B2 (en) 2011-11-01 2014-11-18 Micron Technology, Inc. Memory cell sensing
US9830158B2 (en) 2011-11-04 2017-11-28 Nvidia Corporation Speculative execution and rollback
KR101321481B1 (ko) 2011-11-04 2013-10-28 에스케이하이닉스 주식회사 반도체 메모리 장치 및 이를 위한 테스트 회로
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
CN105955704B (zh) 2011-11-30 2018-12-04 英特尔公司 用于提供向量横向比较功能的指令和逻辑
US20140108480A1 (en) 2011-12-22 2014-04-17 Elmoustapha Ould-Ahmed-Vall Apparatus and method for vector compute and accumulate
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
KR102062301B1 (ko) 2013-01-03 2020-01-03 삼성전자주식회사 메모리 장치의 페이지 복사 방법 및 메모리 시스템의 페이지 관리 방법
US20140215185A1 (en) 2013-01-29 2014-07-31 Atmel Norway Fetching instructions of a loop routine
US9244683B2 (en) * 2013-02-26 2016-01-26 Nvidia Corporation System, method, and computer program product for implementing large integer operations on a graphics processing unit
US9158667B2 (en) 2013-03-04 2015-10-13 Micron Technology, Inc. Apparatuses and methods for performing logical operations using sensing circuitry
US9177646B2 (en) * 2013-05-06 2015-11-03 International Business Machines Corporation Implementing computational memory from content-addressable memory
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
US9430191B2 (en) 2013-11-08 2016-08-30 Micron Technology, Inc. Division operations for memory
KR20150091918A (ko) * 2014-02-04 2015-08-12 삼성전자주식회사 저장 장치 및 그것의 동작 방법
US9740659B2 (en) * 2014-03-19 2017-08-22 International Business Machines Corporation Merging and sorting arrays on an SIMD processor
CN106415522B (zh) 2014-05-08 2020-07-21 美光科技公司 存储器内轻量一致性
EP3140743B1 (en) 2014-05-08 2021-11-24 Micron Technology, INC. Hybrid memory cube system interconnect directory-based cache coherence methodology

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5276643A (en) * 1988-08-11 1994-01-04 Siemens Aktiengesellschaft Integrated semiconductor circuit
US7808854B2 (en) * 2008-02-19 2010-10-05 Kabushiki Kaisha Toshiba Systems and methods for data transfers between memory cells
CN102792382A (zh) * 2010-03-09 2012-11-21 美光科技公司 存储器装置中的感测操作
CN103985410A (zh) * 2014-04-30 2014-08-13 北京世纪东方国铁科技股份有限公司 一种存储装置及用于存储装置的数据访问方法

Also Published As

Publication number Publication date
US9740607B2 (en) 2017-08-22
EP3195315A4 (en) 2018-03-21
US20160062672A1 (en) 2016-03-03
CN106688040A (zh) 2017-05-17
KR101889238B1 (ko) 2018-08-16
WO2016036913A1 (en) 2016-03-10
TW201633055A (zh) 2016-09-16
US20170337128A1 (en) 2017-11-23
EP3195315A1 (en) 2017-07-26
KR20170049553A (ko) 2017-05-10
TWI620058B (zh) 2018-04-01
US10157126B2 (en) 2018-12-18
EP3195315B1 (en) 2021-01-20

Similar Documents

Publication Publication Date Title
CN106688040B (zh) 存储器中的交换运算
CN106489179B (zh) 存储器中的比较操作
TWI601149B (zh) 用於執行乘法運算之方法及裝置
TWI609264B (zh) 記憶體中之除法運算
TWI596619B (zh) 記憶體中之比較運算
CN106663459B (zh) 使用感测电路执行逻辑操作的方法和设备
CN106605204B (zh) 用于确定总体计数的设备及方法
CN107408403A (zh) 存储器中的最长元素长度确定
TWI576761B (zh) 記憶體中之乘法運算
CN106471582A (zh) 用于使用感测电路来执行逻辑操作的设备及方法
CN107004434B (zh) 用于使用感测电路执行异或操作的设备及方法
CN107430877A (zh) 通过存储器中的向量的元素进行数据移位
TWI623941B (zh) 操作系統之方法、記憶體系統及記憶體裝置
CN105814637B (zh) 用于存储器的除法运算
CN106462497A (zh) 虚拟地址表
CN109147842A (zh) 同时进行数据路径中计算操作的设备及方法
CN107683505A (zh) 用于计算启用的高速缓冲存储器的设备及方法
CN107408405A (zh) 用于并行写入到多个存储器装置位置的设备及方法
CN106663460A (zh) 使用感测电路执行逻辑操作
CN109003640A (zh) 存储器中子阵列之间的数据传送
CN109003635A (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