CN107430877A - 通过存储器中的向量的元素进行数据移位 - Google Patents

通过存储器中的向量的元素进行数据移位 Download PDF

Info

Publication number
CN107430877A
CN107430877A CN201680012924.0A CN201680012924A CN107430877A CN 107430877 A CN107430877 A CN 107430877A CN 201680012924 A CN201680012924 A CN 201680012924A CN 107430877 A CN107430877 A CN 107430877A
Authority
CN
China
Prior art keywords
memory cell
stored
comp
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.)
Granted
Application number
CN201680012924.0A
Other languages
English (en)
Other versions
CN107430877B (zh
Inventor
桑贾伊·蒂瓦里
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 CN107430877A publication Critical patent/CN107430877A/zh
Application granted granted Critical
Publication of CN107430877B publication Critical patent/CN107430877B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/1015Read-write modes for single port memories, i.e. having either a random port or a serial port
    • G11C7/1036Read-write modes for single port memories, i.e. having either a random port or a serial port using data shift registers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • G11C11/4091Sense or sense/refresh amplifiers, or associated sense circuitry, e.g. for coupled bit-line precharging, equalising or isolating
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • G11C11/4096Input/output [I/O] data management or control circuits, e.g. reading or writing circuits, I/O drivers or bit-line switches 
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/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/1012Data reordering during input/output, e.g. crossbars, layers of multiplexers, shifting or rotating

Landscapes

  • Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Dram (AREA)

Abstract

本发明的实例提供用于在存储器中执行移位运算的设备及方法。实例性方法包括:对存储于耦合到存储器阵列的第一存取线及若干个感测线的第一存储器单元群组中的第一元素及存储于耦合到所述存储器阵列的第二存取线及所述若干个感测线的第二存储器单元群组中的第二元素执行移位运算。所述方法可包含:通过执行在不经由输入/输出I/O线传送数据的情况下执行的若干个AND运算、OR运算、SHIFT运算及INVERT运算而将所述第一元素移位由所述第二元素定义的数目个位位置。

Description

通过存储器中的向量的元素进行数据移位
技术领域
本发明一般来说涉及半导体存储器设备及方法,且更特定来说,涉及与在存储器中执行移位运算有关的设备及方法。
背景技术
存储器装置通常经提供为计算机或其它电子系统中的内部半导体集成电路。存在许多不同类型的存储器,包含易失性及非易失性存储器。易失性存储器可需要电力以维持其数据(例如,主机数据、错误数据等)且尤其包含随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、同步动态随机存取存储器(SDRAM)及晶闸管随机存取存储器(TRAM)。非易失性存储器可通过在不被供电时保持所存储数据而提供永久数据,且可尤其包含NAND快闪存储器、NOR快闪存储器及电阻可变存储器(例如相变随机存取存储器(PCRAM))、电阻式随机存取存储器(RRAM)及磁阻式随机存取存储器(MRAM)(例如自旋力矩转移随机存取存储器(STT RAM))。
电子系统通常包含若干个处理资源(例如,一或多个处理器),所述处理资源可检索并执行指令且将所执行指令的结果存储到适合位置。处理器可包括若干个功能单元(例如,本文中称为功能单元电路(FUC)),例如算术逻辑单元(ALU)电路、浮点单元(FPU)电路及/或组合逻辑块,举例来说,所述功能单元可执行指令以对数据(例如,一或多个操作数)执行逻辑运算(例如AND、OR、NOT、NAND、NOR及XOR逻辑运算)。
在将指令提供到功能单元电路以供执行时,可涉及电子系统中的若干个组件。所述指令可(举例来说)由例如控制器及/或主机处理器等处理资源产生。数据(例如,将对其执行指令以执行逻辑运算的操作数)可存储于可由FUC存取的存储器阵列中。可从存储器阵列检索指令及/或数据并在FUC开始对数据执行指令之前对所述数据及指令进行定序及/或缓冲。此外,由于可在一个或多个时钟周期中通过FUC执行不同类型的运算,因此还可对运算及/或数据的中间结果进行定序及/或缓冲。
在许多例子中,处理资源(例如,处理器及/或相关联FUC)可在存储器阵列外部,且数据可经存取(例如,经由处理资源与存储器阵列之间的总线)以执行指令。数据可从存储器阵列经由总线移动到在存储器阵列外部的寄存器。
附图说明
图1是根据本发明的若干个实施例的呈包含存储器装置的计算系统的形式的设备的框图。
图2A图解说明根据本发明的若干个实施例的存储器阵列的一部分的示意图。
图2B是图解说明根据本发明的若干个实施例的感测电路的一部分的示意图。
图3图解说明根据本发明的若干个实施例的存储器阵列的一部分的示意图。
图4A到4C图解说明展示根据本发明的若干个实施例的处于与执行移位运算相关联的特定阶段的阵列的存储器单元的状态的表。
图5A到5D图解说明根据本发明的若干个实施例的与使用感测电路执行若干个逻辑运算相关联的时序图。
图6A到6B图解说明根据本发明的若干个实施例的与使用感测电路执行若干个逻辑运算相关联的时序图。
图7是图解说明根据本发明的若干个实施例的具有可选择逻辑运算选择逻辑的感测电路的示意图。
图8是图解说明根据本发明的若干个实施例的通过感测电路实施的可选择逻辑运算结果的逻辑表。
图9图解说明根据本发明的若干个实施例的与使用感测电路执行逻辑运算及移位运算相关联的时序图。
图10图解说明根据本发明的若干个实施例的与使用感测电路执行逻辑运算及移位运算相关联的时序图。
具体实施方式
本发明包含与执行存储器的移位运算有关的设备及方法。可通过将第一数目个位向量移位由第二数目个位向量定义的数目个位位置来执行移位运算。举例来说,可将由第一位向量定义的第一元素移位由第二元素定义的数目个位位置,所述第二元素是由第二位向量定义。可将所述第一向量存储于耦合到存储器阵列的第一存取线及若干个感测线的存储器单元群组中。可将所述第二向量存储于耦合到所述存储器阵列的第二存取线及所述若干个感测线的存储器单元群组中。移位运算可包含若干个AND运算、OR运算、SHIFT运算及INVERT运算,所述运算是在不经由输入/输出(I/O)线传送数据的情况下执行。
如本文中所使用,第一元素及第二元素可是数值。第一元素可存储于第一位向量中。位向量可是一元素及/或多个元素的二进制表示。将第一元素移位可包含在存储位向量的存储器单元内将所述第一元素的位向量表示移位。可在存储所述位向量的存储器单元内将所述位向量移位若干个位位置。可由不同位向量定义位向量所移位的若干个位位置。
当不同位向量具有至少一个元素(其具有1或更高的十进制值)时,位向量可在存储器单元内移位。举例来说,当第二位向量中的第三元素具有1或更高的十进制值时,第一位向量内的第一元素可在第一数目个存储器单元内移位,且当第二位向量中的第四元素具有1或更高的十进制值时,第二位向量内的第二元素可在第二数目个存储器单元内移位。
在若干个实例中,可通过将表示若干个元素的第一位向量的若干个部分中的每一个移位由第二位向量定义的相关联数目个位位置来将所述第一位向量移位。举例来说,第一位向量的定义第一元素的第一部分可在若干个存储器单元的第一部分内移位第一数目个位位置,且所述第一位向量的定义第二元素的第二部分可在所述若干个存储器单元的第二部分内移位第二数目个位位置。所述第一数目个位位置可由第二位向量的定义第三元素的第一部分定义,且所述第二数目个位位置可由第二位向量的定义第四元素的第二部分定义。
在若干个实例中,元素可表示对象及/或其它结构,其可作为位向量存储于存储器中。作为实例,可执行移位运算以将表示第一数目个对象的位向量移位若干个位位置,所述位位置是由表示第二数目个对象的位向量定义。
本发明的若干个实施例可相对于先前方法而提供在执行若干个移位运算(例如,移位函数)时所涉及的计算次数及/或时间的减少。举例来说,可由于并行(例如,同时)执行所述若干个移位运算的各个部分的能力而减少计算次数及/或时间。与先前方法相比,如本文中所描述地执行若干个移位运算也可减少电力消耗。根据若干个实施例,可对元素(例如,存储于阵列中呈位向量的形式的数据)执行移位运算而不需要经由总线(例如,数据总线、地址总线、控制总线等)将数据传送出存储器阵列及/或感测电路。移位运算可涉及执行若干个运算(例如,AND运算、OR运算、SHIFT运算、INVERT运算及Block_OR运算等)。然而,实施例并不限于这些实例。
在各种先前方法中,待移位的元素(例如,第一值)可经由包括输入/输出(I/O)线的总线从阵列及感测电路传送到若干个寄存器。所述若干个寄存器可由处理资源(例如处理器、微处理器及/或计算引擎)使用,所述处理资源可包括ALU电路及/或经配置以执行适当逻辑运算的其它功能单元电路。然而,通常仅可由ALU电路执行单个移位运算,且经由总线将数据从寄存器传送到存储器/从存储器传送到寄存器可涉及显著电力消耗及时间要求。即使处理资源位于与存储器阵列相同的芯片上,也可在将数据从阵列移出到计算电路(例如,ALU)时消耗显著电力。举例来说,将数据从存储器阵列移动到处理资源可包含:执行感测线地址存取(例如,列解码信号的激发)以便将数据从感测线传送到I/O线上、将数据移动到阵列外围及(举例来说)将数据提供到与执行移位运算相关联的寄存器。此外,并行将元素移位可是困难的且消耗电力及时间。
在本发明的以下详细描述中,参考形成本发明的一部分且其中以图解说明方式展示可如何实践本发明的一或多个实施例的附图。充分详细地描述这些实施例以使所属领域的技术人员能够实践本发明的实施例,且应理解,可利用其它实施例且可在不背离本发明的范围的情况下做出过程、电及/或结构改变。如本文中所使用,尤其相对于图式中的参考编号的标示符“S”、“T”、“U”、“V”、“W”等指示可包含如此标示的若干个特定特征。如本文中所使用,“若干个”特定事物可是指一或多个此类事物(例如,若干个存储器阵列可是指一或多个存储器阵列)。
本文中的各图遵循其中第一个数字或前几个数字对应于图式的图编号且其余数字识别图式中的元件或组件的编号惯例。不同图之间的类似元件或组件可通过使用类似数字来识别。举例来说,在图2中231可指代元件“31”,且在图3中可将类似元件指代为331。如将了解,可添加、交换及/或消除本文中的各种实施例中所展示的元件以便提供本发明的若干个额外实施例。另外,如将了解,各图中所提供的元件的比例及相对缩放比例打算图解说明本发明的特定实施例且不应视为具限制意义。
图1是根据本发明的若干个实施例的呈包含存储器装置120的计算系统100的形式的设备的框图。如本文中所使用,存储器装置120、存储器阵列130及/或感测电路150也可被单独视为“设备”。
系统100包含耦合到存储器装置120的主机110,存储器装置120包含存储器阵列130。主机110可是主机系统,例如个人膝上型计算机、桌上型计算机、数码相机、移动电话或存储器读卡器以及各种其它类型的主机。主机110可包含系统母板及/或底板,且可包含若干个处理资源(例如,一或多个处理器、微处理器或某一其它类型的控制电路)。系统100可包含单独集成电路,或者主机110及存储器装置120两者可位于同一集成电路上。系统100可(举例来说)是服务器系统及/或高性能计算(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及3相关联地描述实例性DRAM阵列。
存储器装置120包含地址电路142以锁存经由I/O总线156(例如,数据总线)通过I/O电路144提供的地址信号。地址信号由行解码器146及列解码器152接收并解码以存取存储器阵列130。可通过使用感测电路150来对感测线上的电压及/或电流改变进行感测而从存储器阵列130读取数据。感测电路150可从存储器阵列130读取并锁存数据页(例如,行)。I/O电路144可用于经由I/O总线156与主机110进行双向数据通信。写入电路148用于将数据写入到存储器阵列130。
控制电路140(例如,存储器控制器)对由控制总线154从主机110提供的信号进行解码。这些信号可包含用于控制对存储器阵列130执行的操作(包含数据读取、数据写入及数据擦除操作)的芯片启用信号、写入启用信号及地址锁存信号。在各种实施例中,控制电路140负责执行来自主机110的指令。控制电路140可是状态机、定序器或某一其它类型的控制器。控制器140可包含移位控制器170,所述移位控制器可控制提供到(举例来说)与执行数据移位相关联的移位电路(例如,结合图2所描述的移位电路223)的信号,如本文中进一步描述。举例来说,可在归约或前缀求和运算期间经由(例如,通过)移位电路将阵列(例如,阵列130)中的数据移位(例如,向右或向左),如将在本文中进一步描述。
下文与图2A及2B相关联地进一步描述感测电路150的实例。举例来说,在若干个实施例中,感测电路150可包括若干个感测放大器及若干个计算组件,所述计算组件可包括充当累加器的锁存器且可用于执行逻辑运算(例如,对与互补感测线相关联的数据执行逻辑运算)。在若干个实施例中,感测电路(例如,150)可用于使用存储于阵列130中的数据作为输入来执行移位运算,且在不经由感测线地址存取传送(例如,不需要激发列解码信号)的情况下将移位运算的结果存储回到阵列130。由此,可使用感测电路150执行移位运算,而非通过在感测电路150外部的处理资源(例如,通过与主机110相关联的处理器及/或位于装置120上(例如,位于控制电路140或别处上)的例如ALU电路等其它处理电路)执行移位运算(及/或除通过所述处理资源执行移位运算以外也使用感测电路150执行移位运算)。
在各种先前方法中,举例来说,将经由感测电路从存储器读取与移位运算相关联的数据且将所述数据提供到外部ALU。外部ALU电路将使用元素(其可称为操作数或输入)执行移位运算且可将结果经由局部I/O线传送回到阵列。相比来说,在本发明的若干个实施例中,感测电路(例如,150)经配置以对存储于存储器阵列130中的存储器单元中的数据执行移位运算,且在不启用耦合到感测电路的局部I/O线的情况下将结果存储回到阵列130。
由此,在若干个实施例中,可不需要在阵列130及感测电路150外部的寄存器及/或ALU来执行移位运算,这是因为感测电路150可经操作以使用存储器阵列130的地址空间执行在执行移位运算时所涉及的适当计算。另外,可在不使用外部处理资源的情况下执行移位运算。
图2A图解说明根据本发明的若干个实施例的存储器阵列230的一部分的示意图。存储器单元(例如,存储器单元201-1、201-2、201-3、201-4、201-5、201-6中的一个)包括存储元件(例如,对应电容器203-1到203-6中的一个)及存取装置(例如,对应晶体管202-1到202-6中的一个)。举例来说,存储器单元201-3包括晶体管202-3及电容器203-3,存储器单元201-4包括晶体管202-4及电容器203-4,存储器单元201-3包括晶体管202-3及电容器203-3以及存储器单元201-4包括晶体管202-4及电容器203-4等。在此实例中,存储器阵列230是1T1C(单晶体管单电容器)存储器单元的DRAM阵列。在若干个实施例中,存储器单元可是破坏性读取存储器单元(例如,读取存储于单元中的数据会破坏数据,使得原本存储于单元中的数据在被读取之后被刷新)。存储器阵列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-3的第一源极/漏极区域可耦合到数据线205-1(D),晶体管202-3的第二源极/漏极区域可耦合到电容器203-3,且晶体管202-3的栅极可耦合到字线204-Y。晶体管202-4的第一源极/漏极区域可耦合到数据线205-2(D_),晶体管202-4的第二源极/漏极区域可耦合到电容器203-4,且晶体管202-4的栅极可耦合到字线204-X。如图2A中所展示,单元板可耦合到电容器203-3及203-4中的每一个。单元板可是共同节点,在各种存储器阵列配置中可将参考电压(例如,接地)施加到所述共同节点。
根据本发明的若干个实施例,存储器阵列230耦合到感测电路250-1、250-2、250-3等。感测电路包括对应于存储器单元的相应列(例如,耦合到相应互补数据线对)的感测放大器及计算组件。在此实例中,感测电路250-1包括对应于存储器单元(例如,耦合到相应互补数据线对的存储器单元201-1及201-4)的相应列的感测放大器206-1及计算组件231-1。感测电路250-2包括对应于存储器单元(例如,耦合到相应互补数据线对的存储器单元201-3及201-4)的相应列的感测放大器206-2及计算组件231-2。感测电路250-3包括对应于存储器单元(例如,耦合到相应互补数据线对的存储器单元201-5及201-6)的相应列的感测放大器206-3及计算组件231-3。感测放大器(例如,感测放大器206-1)可包括交叉耦合锁存器,其在本文中可称为初级锁存器。感测放大器(例如,感测放大器206-1)可(举例来说)如关于图2B所描述地配置。
在图2A中所图解说明的实例中,对应于计算组件231-2的电路包括静态锁存器264及除其它以外实施动态锁存的额外数目个(例如,十个)晶体管。为易于参考,已以扩展格式图解说明计算组件231-2以便描述所述计算组件的运作。额外计算组件(例如,计算组件231-1及231-3)包含计算组件231-2的扩展格式的元件但并未在图2A中图解说明。计算组件231-2的动态锁存器及/或静态锁存器264可在本文中共同地称为次级锁存器,所述次级锁存器可充当累加器。由此,计算组件231-2可作为累加器操作及/或在本文中称为累加器。计算组件231-2可耦合到数据线D 205-1及D_205-2中的每一个,如图2A中所展示。举例来说,计算组件231-2的晶体管可全部是n沟道晶体管(例如,NMOS晶体管)。然而,实施例并不限于此实例。
在此实例中,数据线D 205-1可耦合到晶体管216-1及239-1的第一源极/漏极区域,并且耦合到负载/通过晶体管218-1的第一源极/漏极区域。数据线D_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中的每一个的第二源极/漏极区域可在一起共同耦合到参考电压(例如,接地(GND)291-1)。下拉晶体管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中所展示的电路的功能性并不依赖于将LOAD控制信号提高到大于VDD的电压。
当下拉晶体管207-1、207-2、214-1及214-2在感测放大器206-2被激发之前(例如,在感测放大器206-2的预种(pre-seed)期间)导通时,图2A中所展示的计算组件231-2的配置具有平衡感测放大器的功能性的益处。如本文中所使用,激发感测放大器206-2是指启用感测放大器206-2以设定初级锁存器且随后停用感测放大器206-2以保持所设定初级锁存器。在停用平衡(在感测放大器中)之后但在感测放大器激发之前执行逻辑运算可节省电力使用,这是因为感测放大器的锁存器不必使用全轨电压(例如,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而连续地被启用。在各种实施例中,负载/通过晶体管208-1及208-2可各自具有耦合到LOAD控制信号或PASSD/PASSDB控制信号中的一个的栅极。
根据一些实施例,负载/通过晶体管218-1及218-2的栅极可共同耦合到LOAD控制信号。在其中负载/通过晶体管218-1及218-2的栅极共同耦合到LOAD控制信号的配置中,晶体管218-1及218-2可是负载晶体管。
根据一些实施例,负载/通过晶体管218-1的栅极可耦合到PASSD控制信号,且负载/通过晶体管218-2的栅极可耦合到PASSDB控制信号。在其中晶体管218-1及218-2的栅极分别耦合到PASSD及PASSDB控制信号中的一个的配置中,晶体管218-1及218-2可是通过晶体管。通过晶体管可以不同于负载晶体管的方式操作(例如,在不同时间处及/或在不同电压/电流条件下)。由此,通过晶体管的配置可不同于负载晶体管的配置。如本文中所使用,配置打算意指大小、掺杂水平及过渡类型。
举例来说,负载晶体管可经配置(例如,可经定大小、经掺杂等)以处置与将数据线耦合到局部动态节点S1及S2相关联的加载规定。然而,通过晶体管可经配置以处置与将数据线耦合到邻近累加器(例如,通过邻近计算组件231-3及存储器阵列230中的移位电路223-2,如图2A中所展示)相关联的较重加载。根据一些实施例,负载/通过晶体管218-1及218-2可经配置以适应对应于通过晶体管的较重加载,但是作为负载晶体管而被耦合及操作。举例来说,经配置为通过晶体管的负载/通过晶体管218-1及218-2也可用作负载晶体管。然而,经配置为负载晶体管的负载/通过晶体管218-1及218-2可不能够用作通过晶体管。
在若干个实施例中,包含锁存器264的计算组件231-2可包括若干个晶体管,所述晶体管与其所耦合到的阵列(例如,图2A中所展示的阵列230)的对应存储器单元的晶体管按一定间距形成,其可符合特定特征大小(例如,4F2、6F2等)。根据各种实施例,锁存器264包含四个晶体管208-1、208-2、209-1及209-2,所述四个晶体管通过负载/通过晶体管218-1及218-2耦合到一对互补数据线D 205-1及D_205-2。然而,实施例并不限于此配置。锁存器264可是交叉耦合锁存器。举例来说,一对晶体管(例如n沟道晶体管(例如,NMOS晶体管)209-1及209-2)的栅极与另一对晶体管(例如p沟道晶体管(例如,PMOS晶体管)208-1及208-2)的栅极交叉耦合。如本文中进一步所描述,交叉耦合锁存器264可称为静态锁存器。
可将相应数据线D及D_上的电压或电流提供到交叉耦合锁存器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)或经激活负控制信号电压(例如,接地)中的另一个。
如图2A中所展示,感测放大器206-2及计算组件231-2可经由移位电路223-2耦合到阵列230。在一些实例中,感测电路250-2可包含移位电路223-2及/或感测电路223-1。在此实例中,移位电路223-2包括分别耦合到数据线205-1(D)及205-2(D_)的一对隔离装置(例如,隔离晶体管221-1及221-2)。隔离晶体管221-1及221-2耦合到控制信号222(NORM),当被激活时,所述控制信号启用(例如,接通)隔离晶体管221-1及221-2以将对应感测放大器206-2及计算组件231-2耦合到存储器单元的对应列(例如,耦合到一对对应互补数据线205-1(D)及205-2(D_))。根据各种实施例,隔离晶体管221-1及221-2的导通可称为移位电路223-2的“正常”配置。
在图2A中所图解说明的实例中,移位电路223-2包含耦合到互补控制信号219(SHIFT)的另一(例如,第二)对隔离装置(例如,隔离晶体管221-3及221-4),举例来说,当NORM被撤销激活时,所述互补控制信号可被激活。隔离晶体管221-3及221-4可经操作(例如,经由控制信号219)使得特定感测放大器206-2及计算组件231-2耦合到一对不同互补数据线(例如,不同于隔离晶体管221-1及221-2将特定感测放大器206-2及计算组件231-2耦合到的所述对互补数据线的一对互补数据线),或可将特定感测放大器206-2及计算组件231-2耦合到另一存储器阵列(且将特定感测放大器206-2及计算组件231-2与第一存储器阵列隔离)。根据各种实施例,举例来说,移位电路223-2可经布置为感测放大器206-2的一部分(例如,处于感测放大器206-2内)。
尽管图2A中所展示的移位电路223-2包含用于将特定感测电路250-2(例如,特定感测放大器206-2及对应计算组件231-2)耦合到一对特定互补数据线205-1(D)及205-2(D_)(例如,DIGIT(n)及DIGIT(n)_)的隔离晶体管221-1及221-2,且隔离晶体管221-3及221-4经布置以将特定感测电路250-2沿一个特定方向耦合到一对邻近互补数据线(例如,在图2A中右侧展示的邻近数据线DIGIT(n+1)及DIGIT(n+1)_),但本发明的实施例并不限于此。举例来说,移位电路可包含用于将特定感测电路耦合到一对特定互补数据线(例如,DIGIT(n)及DIGIT(n)_)的隔离晶体管221-1及221-2,以及经布置以便用于将特定感测电路沿另一特定方向耦合到一对邻近互补数据线(例如,在图2A中左侧展示的邻近数据线DIGIT(n-1)及DIGIT(n-1)_)的隔离晶体管221-3及221-4。移位电路223-1可包含用于将特定感测电路250-1耦合到一对特定互补数据线(例如,DIGIT(n-1)及DIGIT(n-1)_)的隔离晶体管,以及经布置以将特定感测电路250-1沿一个特定方向耦合到一对邻近互补数据线(例如,图2A中所展示的邻近数据线DIGIT(n)及DIGIT(n)_)的隔离晶体管。移位电路223-3可包含用于将特定250-3耦合到一对特定互补数据线(例如,DIGIT(n+1)及DIGIT(n+1)_)的隔离晶体管以及经布置以将特定感测电路250-3沿一个特定方向耦合到一对邻近互补数据线(例如,左侧的邻近数据线DIGIT(n)及DIGIT(n)_,以及右侧的DIGIT(n+2)及DIGIT(n+2)_(未展示))的隔离晶体管。
本发明的实施例并不限于图2A中所展示的移位电路223-2的配置。举例来说,确定是否沿特定方向移位以执行移位运算是独立于电路实施方案的。在若干个实施例中,举例来说,可在不经由I/O线(例如,局部I/O线(IO/IO_))将数据传送出感测电路250-2的情况下与执行数学运算(例如加法及减法运算)相关联地操作(例如,联合感测放大器206-2及计算组件231-2)移位电路223-2(例如图2A中所展示的移位电路223-2)。
尽管图2A中未展示,但存储器单元的每一列均可耦合到列解码线,所述列解码线可被激活以经由局部I/O线(例如,图3中的I/O线334)将数据值从对应感测放大器206-2及/或计算组件231-2传送到阵列外部的控制组件(例如外部处理资源(例如,主机处理器及/或其它功能单元电路))。列解码线可耦合到列解码器。然而,如本文中所描述,在若干个实施例中,根据本发明的实施例不需要经由此些I/O线传送数据以便执行逻辑运算。在若干个实施例中,举例来说,可在不将数据传送到阵列外部的控制组件的情况下联合感测放大器206-2及计算组件231-2操作移位电路223-2以便执行逻辑运算。
图2B是图解说明根据本发明的若干个实施例的感测电路的一部分的示意图。根据各种实施例,感测放大器206可包括交叉耦合锁存器。然而,感测放大器206的实施例并不限于交叉耦合锁存器。作为实例,图2B中的感测放大器206可是电流模式感测放大器及/或单端感测放大器(例如,耦合到一个数据线的感测放大器)。并且,本发明的实施例并不限于折叠式数据线架构。
在若干个实施例中,感测放大器(例如,206-2)可包括若干个晶体管,所述晶体管与其所耦合到的阵列(例如,图2A中所展示的230)的对应计算组件231-2及/或存储器单元的晶体管按一定间距形成,其可符合特定特征大小(例如,4F2、6F2等)。感测放大器206-2包括锁存器215,锁存器215包含耦合到一对互补数据线D 205-1及D_205-2的四个晶体管。锁存器215可是交叉耦合锁存器。举例来说,一对晶体管(例如n沟道晶体管(例如,NMOS晶体管)227-1及227-2)的栅极与另一对晶体管(例如p沟道晶体管(例如,PMOS晶体管)229-1及229-2)的栅极交叉耦合。如本文中进一步所描述,包括晶体管227-1、227-2、229-1及229-2的锁存器215可称为初级锁存器。然而,实施例并不限于此实例。
可将相应数据线D及D_上的电压或电流提供到交叉耦合锁存器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-2(其在本文中可称为累加器)可耦合到交叉耦合锁存器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-2也可包含经配置以使数据线D与D_平衡(例如,与使感测放大器准备用于感测操作相关联地)的电路。在此实例中,平衡电路包括具有第一源极/漏极区域的晶体管224,所述第一源极/漏极区域耦合到晶体管225-1的第一源极/漏极区域及数据线D 205-1。晶体管224的第二源极/漏极区域可耦合到晶体管225-2的第一源极/漏极区域及数据线D_205-2。晶体管224的栅极可耦合到晶体管225-1及225-2的栅极。
晶体管225-1及225-2的第二源极/漏极区域耦合到平衡电压238(例如,VDD/2),所述平衡电压可等于VDD/2,其中VDD是与阵列相关联的供应电压。晶体管224、225-1及225-2的栅极可耦合到控制信号226(EQ)。由此,激活EQ会启用晶体管224、225-1及225-2,此将数据线D有效地短接到数据线D_,使得数据线D及D_被平衡到平衡电压VDD/2。根据本发明的若干个实施例,可使用感测放大器206-2及计算组件231-2执行若干个逻辑运算,且可将结果存储于感测放大器及/或计算组件中。
感测电路250-2(例如,图2A中的250-2)可以数种模式操作以执行逻辑运算,包含其中逻辑运算的结果最初存储于感测放大器206-2中的第一模式,及其中逻辑运算的结果最初存储于计算组件231-2中的第二模式。另外关于第一操作模式,感测电路250-2可以预感测模式(例如,在逻辑运算控制信号为有效之前激发感测放大器)及后感测模式(例如,在逻辑运算控制信号为有效之后激发感测放大器)两者操作,其中逻辑运算的结果最初存储于感测放大器206-2中。
如下文进一步描述,感测放大器206-2可联合计算组件231-2操作以使用来自阵列的数据作为输入来执行各种逻辑运算。在若干个实施例中,可在不需要经由数据线地址存取传送数据(例如,不需要激发列解码信号使得数据经由局部I/O线传送到阵列及感测电路外部的电路)的情况下将逻辑运算的结果存储回到阵列。由此,本发明的若干个实施例可使得能够使用少于各种先前方法的电力来执行各种运算(例如,逻辑运算、数学运算等)。另外,由于若干个实施例消除跨越I/O线传送数据以便执行运算(例如,在存储器与离散处理器之间)的需要,因此与先前方法相比,若干个实施例可达成增加的并行处理能力。
图3图解说明根据本发明的若干个实施例的存储器阵列330的一部分的示意图。阵列330包含存储器单元(一般来说称为存储器单元303,且更具体来说称为303-0到303-J),所述存储器单元耦合到存取线行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。存储器阵列330并不限于特定数目个存取线及/或感测线,且术语“行”及“列”的使用并不意指存取线及/或感测线的特定物理结构及/或定向。尽管未进行图示,但存储器单元的每一列均可与一对对应互补感测线(例如,图2A中的互补感测线205-1及205-2)相关联。
每一存储器单元列可耦合到感测电路(例如,图1中所展示的感测电路150)。在此实例中,感测电路包括耦合到相应感测线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经由存取装置(例如,晶体管)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。列解码线310-1到310-W分别耦合到晶体管308-1到308-V的栅极,且可选择性地被激活以将由相应感测放大器306-0到306-U感测及/或存储于相应计算组件331-0到331-X中的数据传送到次级感测放大器312。在若干个实施例中,计算组件331可与其对应列的存储器单元及/或与对应感测放大器306按一定间距形成。
在若干个实施例中,感测电路(例如,计算组件331及感测放大器306)经配置以对存储于阵列330中的元素执行移位运算。作为实例,第一多个元素可存储于耦合到特定存取线(例如,304-0)及若干个感测线(例如,305-0到305-S)的第一存储器单元群组中,且第二多个元素可存储于耦合到不同存取线(例如,304-1)及相应数目个感测线(305-0到305-S)的第二存储器单元群组中。所述第一多个元素中的每一元素可移位由所述第二多个元素中的相应元素定义的数目个位位置,且移位运算的结果可存储(例如,作为位向量)于第三存储器单元群组中,所述第三存储器单元群组耦合到特定存取线(例如,304-0到304-R)及所述若干个感测线(例如,305-0到305-S)。所述第三存储器单元群组可(举例来说)耦合到存取线304-R或耦合到存取线304-0到304-R中的至少一个。举例来说,所述第三存储器单元群组可是与第一存储器单元群组或第二存储器单元群组相同的存储器单元群组(例如,可经由当前所存储元素写入移位运算的结果)。
下文与图4A到4C相关联地描述实例性移位运算,图4A到4C图解说明展示根据本文中所描述的若干个实施例的处于与执行移位运算相关联的若干个特定阶段的阵列(例如,330)的存储器单元的状态的表。图4A到4C中的栏496的参考编号对应于下文所描述的伪码的相应参考编号。表的每一行指示处于移位运算的特定阶段的以下若干个位向量的值:431(COMP_COMP)、433(EFFECTIVE MASK)、435(ELEMENT MASK)、437(SHIFT MASK)、439(TMPSHIFTED MASK)、441(RESULT)、443(SRCA)及445(SRCB),所述位向量可存储于阵列(例如,图3中的330)中的存储器单元的行及/或列中。
图4A到4C中所展示的实例与将前四个元素(存储于耦合到存取线304-0及感测线305-0到305-31的存储器单元中)移位相应第二组四个元素(存储于耦合到存取线304-1及感测线305-0到305-31的存储器单元中)相关联。在下文的实例中,前四个元素是由SRCA443表示(例如,[0000 0100,0000 0101,0000 0110,0000 1001](其中逗号可分隔不同元素),其可用十六进制记法表示为[0x04,05,06,09](其中“0x”记法指示十六进制且逗号可分隔不同元素)且在图4A到4C中展示为“0x04050609”)。第二组四个元素是由SRCB 445表示(例如,[0000 0011,0000 0010,0000 0010,0000 0001],其可用十六进制记法表示为[0x03,02,02,01]且在图4A到4C中展示为“0x03020201”)。将SRCA 443移位SRCB 445中所定义的数目个位位置的所期望结果是RESULT 441[0x20141812]。
在此实例中,SRCA 443及SRCB 445具有32个位的长度,且SRCA 443的“第i”元素移位由SRCA 445的“第i”元素定义的数目个位位置(例如,SRCA 443的第一元素移位由SRCB445的第一元素定义的数目个位位置,SRCA 443的第二元素移位由SRCB445的第二元素定义的数目个位位置等),使得四个移位运算使用四个元素对并行执行。在此实例中,由SRCA443及SRCB 445中的每一个表示的四个元素中的每一个具有八个位的相同向量长度。举例来说,SRCA 443的第一、第二、第三及第四元素以及SRCB445的第一、第二、第三及第四元素由8位向量表示。注意,尽管在图4A到4C中使用十六进制记法,但在移位运算期间位向量作为二进制数据型式存储于阵列中。并且,在本文中所描述的实例中,逗号及/或空格可用于分隔位向量内的个别元素。举例来说,在上文的实例中,位向量443及445各自包括可通过空格分隔的四个元素。实施例并不限于特定元素大小(例如,不限于元素及/或每元素的位的特定数目)。可将移位运算的结果存储于其中存储有包括正被移位的元素的向量的阵列(例如,330)中,及/或可将所述结果传送到阵列外部(例如,传送到主机的功能单元电路)。
使用SRCA 443(例如,以十六进制的[0x04050609])及SRCB 445(例如,以十六进制的[0x03020201])执行移位运算的所期望结果是位向量[0x20141812](例如,441)。如下文进一步描述,可将移位运算的结果作为位向量存储于特定存储器单元群组中。举例来说,在图4A到4C的实例中,对应于RESULT 441的存储器单元用于存储移位运算的结果。由此,在图4A到4C中所描述的实例的结论处,以十六进制的RESULT 441[0x20141812]的值(例如,二进制[0010 0000,0001 0100,0001 1000,0001 0010])表示四个不同移位运算的四个结果。
如下文进一步描述,可与执行移位运算相关联地使用位向量433(EFFECTIVEMASK)、435(ELEMENT MASK)、437(SHIFT MASK)及439(TMPSHIFT MASK)。位向量433、435、437及439可存储于耦合到特定存取线的相应存储器单元群组中,所述存储器单元群组可称为临时存储行。如本文中所使用,存储器单元的临时存储行正存储可在移位运算的各个阶段期间更新的数据。作为实例,位向量433、435、437及439可具有与RESULT 441、SRCA 443及SRCAB 445相同的长度,且可存储于耦合到与SRCA 443及SRCAB 445相同的感测线的单元中。举例来说,位向量433(EFFECTIVE MASK)可具有32个位的长度且可存储于耦合到存取线304-2(未展示)及感测线305-0到305-31的单元群组中,位向量435(ELEMENT MASK)可具有32个位的长度且可存储于耦合到存取线304-3(未展示)及感测线305-0到305-31的单元群组中,位向量437(SHIFT MASK)可具有32个位的长度且可存储于耦合到存取线304-4(未展示)及感测线305-0到305-31的单元群组中,并且位向量439(TMPSHIFT MASK)可具有32个位的长度且可存储于耦合到存取线304-5(未展示)及感测线305-0到305-31的单元群组中。位向量431(COMP_COMP)表示存储于感测电路(例如,计算组件331及/或感测放大器306)中的数据,所述感测电路对应于具有耦合到其、存储正被移位的元素的单元的感测线(例如,此实例中的感测线305-0到305-31)。
在与图4A到4C相关联描述的实例中,SRCA 443的第一元素(例如,最高有效元素位置中的十六进制值“04”)可存储(例如,作为八位位向量[0000 0100])于存储器单元303-0到303-7中,且SRCB 445的第一元素(例如,最高有效元素位置中的十六进制值“03”)可存储(例如,作为八位位向量[0000 0011])于耦合到存取线304-1(例如,行1,未展示)及感测线305-0到305-7的存储器单元中。作为实例,相应位向量的最高有效位(MSB)(例如,[00000100]及[0000 0011)可存储于耦合到感测线305-0的单元中,相应位向量的次MSB可存储于耦合到感测线305-1的单元中,…,且相应位向量的最低有效位(LSB)可存储于耦合到感测线305-7的单元中。如本文中所使用,位向量的最左侧位被视为MSB;然而,实施例并不限于此。
SRCA 443的第二元素(例如,第二最高有效元素位置中的十六进制值“05”)可存储(例如,作为八位位向量[0000 0101])于存储器单元303-8到303-15中,且SRCB 445的第二元素(例如,第二最高有效元素位置中的十六进制值“02”)可存储(例如,作为八位位向量[0000 0010])于耦合到存取线304-1(例如,行1,未展示)及感测线305-8到305-15的存储器单元中。SRCA 443的第三元素(例如,第三最高有效元素位置中的十六进制值“06”)可存储(例如,作为八位位向量[0000 0110])于存储器单元303-16到303-23中,且SRCB 445的第三元素(例如,第三最高有效元素位置中的十六进制值“02”)可存储(例如,作为八位位向量[0000 0010])于耦合到存取线304-1(例如,行1,未展示)及感测线305-16到305-23的存储器单元中。SRCA 443的第四元素(例如,最低有效元素位置中的十六进制值“09”)可存储(例如,作为八位位向量[0000 1001])于存储器单元303-34到303-31中,且SRCB 445的第四元素(例如,最低有效元素位置中的十六进制值“01”)可存储(例如,作为八位位向量[00000001])于耦合到存取线304-1(例如,行1,未展示)及感测线305-24到305-31的存储器单元中。
在若干个实例中,移位运算包含执行若干个AND运算、OR运算、SHIFT运算、INVERT运算及BlockOR运算。移位运算包含执行AND运算、OR运算、SHIFT运算及INVERT运算而不需要经由输入/输出(I/O)线传送数据以将第一元素移位由第二元素定义的数目个位位置。可使用与存储器阵列及与若干列互补感测线中的每一列互补感测线成一定间距的感测电路来执行所述若干个AND运算、OR运算、INVERT运算及SHIFT运算。
下文伪码表示根据本发明的若干个实施例的可执行以在存储器中执行若干个移位运算的指令。使用参考编号1到6来指代实例性伪码,所述参考编号对应于图4A到4C中所展示的表的栏469中所展示的参考编号1到6。举例来说,参考编号一(1)对应于伪码中的“row_to_row(srca,result)”,且参考编号二(2)对应于伪码中的“pgen_impl(1,ELEMENT_WIDTH)”。
在图4A到4C中所图解说明的实例中,以粗体图解说明的位向量值指示位向量的值的改变(例如,存储于存储器单元中对应于SHIFT MASK 437的位向量的值在图4A中以粗体展示以指示从如与参考编号6.c相关联展示的[0x01000001]到如与参考编号6.d.4相关联展示的[0x7F00007F]的改变)。
对应于参考编号1(例如,“row_to_row(SRCA,RESULT)”)的伪码与将SRCA 443(例如,位向量0x04050609)存储于存储RESULT 441的存储器单元中相关联。对应于参考编号2(例如,“pgen_impl(1,ELEMENT_WIDTH)”)的伪码与将位向量0x01010101存储于感测电路(例如,计算组件331及/或感测放大器306)中相关联。位向量0x01010101识别存储为SRCA443的元素中的每一个中的最低有效位(LSB)。举例来说,位向量0x01010101识别存储为SRCA 443的第一元素、第二元素、第三元素及第四元素中的LSB。在若干个实例中,可从主机接收位向量0x01010101及/或可经由以下伪码创建位向量0x01010101:
在图4A到4B中未展示与参考编号2.a到2.f相关联的伪码以保持所提供的实例的清晰。对应于参考编号2.a的伪码(例如,“set_acc()”)与将位向量0xFF,FF,FF,FF存储于感测电路(例如,计算组件331及/或感测放大器306)中相关联。对应于参考编号2.b的伪码(例如,“shift_accip(RIGHT,ZERO,1)”)与对存储于感测电路中的COMP_COMP431执行右移位运算相关联。右移位运算的结果是位向量0x7F,FF,FF,FF(例如,COMP_COMP 431具有值0x7F,FF,FF,FF)。位向量0x7F,FF,FF,FF在感测电路中存储为COMP_COMP 431。
对应于参考编号2.c的伪码(例如,“inv_to_row_acc(EFFECTIVE MASK)”)与对COMP_COMP 431执行反相运算且将所述反相运算的结果存储于存储EEFFECTIVE MASK 433的存储器单元中相关联。对COMP_COMP 431执行反相运算产生位向量,所述位向量识别存储为SRCA 443的多个第一元素及存储为SRCB 445的多个第二元素中的最高有效位。在此实例中,对位向量431(例如,0x7F,FF,FF,FF)执行反相运算产生位向量0x80,00,00,00,所述位向量0x80,00,00,00在用于存储EFFECTIVE MASK 433的存储器单元中被存储为二进制位向量[1000 000,0000 0000,0000 0000,0000 0000]。十六进制位向量0X80,00,00,00(例如,二进制位向量[1000 000,0000 0000,0000 0000,0000 0000])识别所述多个第一元素及所述多个第二元素中的最高有效位。
对应于参考编号2.d的伪码(例如,“for(len_t e=0;e<elements-1;e++)”)与执行“FOR”循环以使用EFFECTIVE MASK 433识别来自所述多个第一元素及所述多个第二元素的每一元素对中的最高有效位相关联。与参考编号2.d相关联的“FOR”循环贯穿元素对(例如,若干元素)的数量而迭代。在若干个实例中,由主机(例如图1中的主机110)提供元素对的数量(例如,所述多个第一元素及/或所述多个第二元素中的元素的数量)。然而,由于先前对所述多个第一元素及所述多个第二元素的MSB(例如,[80,00,00,00])的识别,因此仅需要识别与三个元素对相关联的最高有效位。由此,“FOR”循环使用“e”作为计数器来执行三次迭代。“e”在“FOR”循环的第一迭代中经设定到零(例如,0)且在“FOR”循环的每一后续迭代之前递增(例如,“e++”)一(例如,1)。当“e”大于或等于3(例如,“e<元素-1”)时,“FOR”循环终止(例如,结束)。
对应于参考编号2.d.1的伪码(例如,“shift_accip(RIGHT,ZERO,ELEMENT_WIDTH)”)与在“FOR”循环的每一迭代期间执行与参考编号2.d.1相关联地指代的右移位运算相关联。右移位运算将COMP_COMP 431中的位朝向COMP_COMP431中的LSB移位等于ELEMENT_WIDTH的次数,其在此实例中等于八。举例来说,在“FOR”循环的第一迭代中,与参考编号2.d.1相关联的右移位运算将COMP_COMP 431(例如,0x80,00,00,00)移位,导致位向量0x00,80,00,00作为COMP_COMP 431被存储于感测电路中。在“FOR”循环的第二迭代中,与参考编号2.d相关联的右移位运算将COMP_COMP位向量431 0x80,80,00,00移位,导致位向量0x00,80,80,00作为COMP_COMP 431被存储于感测电路中。在“FOR”循环的第三迭代中,与参考编号2.D相关联的右移位运算将COMP_COMP位向量431 0x80,80,80,00移位,导致位向量0x00,80,80,80作为COMP_COMP 431被存储于感测电路中。
对应于参考编号2.d.2的伪码(例如,“row_OR_accip(EFFECTIVE MASK)”)与对COMP_COMP 431及EFFECTIVE MASK 433执行OR运算相关联。如本文中所使用,对第一及第二位向量执行OR运算可包含对位向量的对应位位置处的相应位中的每一个并行执行所述逻辑运算。作为实例,执行OR运算可包含对第一位向量“a”(例如,[a0 a1 a2 a3 a4 a5 a6 a7])及第二位向量“b”(例如,[b0 b1 b2 b3 b4 b5 b6 b7])执行OR运算。对“a”及“b”执行OR运算产生位向量“c”(例如,[c0 c1 c2 c3 c4 c5 c6 c7]),其中c0=a0 OR b0,c1=a1 OR b1,c2=a2OR b2,c3=a3 OR b3,c4=a4 OR b4,c5=a5 OR b5,c6=a6 OR b6並且c7=a7 OR b7。在图5A到6B中描述执行OR及AND运算的实例。
举例来说,在“FOR”循环的第一迭代中,对COMP_COMP 431(0x00,80,00,00)及EFFECTIVE MASK 433(0x80,00,00,00)执行与参考编号2.d.2相关联的OR运算,导致位向量0x80,80,00,00作为COMP_COMP 431被存储于感测电路中。在“FOR”循环的第二迭代中,对COMP_COMP 431(0x00,80,80,00)及EFFECTIVE MASK 433(0x80,00,00,00)执行与参考编号2.d.2相关联的OR运算,导致位向量0x80,80,80,00作为COMP_CINO431被存储于感测电路中。在“FOR”循环的第三迭代中,对COMP_COMP 431(0x00,80,80,80)及EFFECTIVE MASK 433(0x80,00,00,00)执行与参考编号2.d.2相关联的OR运算,导致位向量0x80,80,80,80作为COMP_COMP 431被存储于感测电路中。
对应于参考编号2.e的伪码(例如,“shift_accip(RIGHT,ZERO,ELEMENT_WIDTH-1)”)与对COMP_COMP 431执行右移位运算以使EFFECTIVE MASK 433准备用于与参考编号6相关联的循环结构中相关联。右移位运算将COMP_COMP 431中的位移位与所述多个第一元素及所述多个第二元素相关联的等于元素宽度减1(例如,ELEMENT_WIDTH-1)的位置量。举例来说,在图4A到4C中所提供的实例中,右移位运算将COMP_COMP 431中的位移位等于七(7)的位置量。COMP_COMP 431在执行右移位运算之前是位向量0x80,80,80,80(例如,二进制[10000000,10000000,10000000,10000000]),且在执行右移位运算之后是位向量0x01,01,01,01(例如,二进制[00000001,00000001,00000001,00000001])。右移位运算的结果作为COMP_COMP 431存储于感测电路中。
对应于参考编号2.f的伪码(例如,“acc_to_row(EFFECTIVE MASK)”)与将存储于感测电路中的数据型式(例如,COMP_COMP 431)写入到存储EFFECTIVE MASK 433的单元以便为执行对应于参考编号6的循环结构做准备相关联。对应于参考编号3的伪码(例如,“acc_to_row(EFFECTIVE MASK)”)与将存储为EFFECTIVE MASK 433的数据型式作为COMP_COMP 431写入到感测电路相关联。
对应于参考编号4的伪码(例如,“shift_accip(LEFT,ZERO,ELEMENT_WIDTH-1)”)与执行LEFT移位运算相关联。左移位运算将COMP_COMP 431中的位朝向COMP_COMP 431中的MSB移位等于七的次数。移位运算的结果是位向量0x80,80,80,80,其作为COMP_COMP 431被存储于感测电路中。对应于参考编号5的伪码(例如,“acc_to_row(ELEMENT MASK)”)与将存储于感测电路中的数据型式(例如,COMP_COMP 431)写入到存储ELEMENT MASK 435的单元相关联。举例来说,将位向量0x80808080(例如,COMP_COMP 431)存储于存储ELEMENT MASK435的存储器单元中。
对应于参考编号6的伪码(例如,“for(len_t c=0;c<max_steps;c++)”)与执行“FOR”循环以执行与执行移位运算相关联的若干个运算相关联。“FOR”循环使用“c”作为计数器来执行若干个运算。“c”在“FOR”循环的第一迭代中经设定到零(例如,0)且在“FOR”循环的每一后续迭代之前递增(例如,“c++”)一(例如,1)。当“c”大于或等于max_steps(例如,“c<max_steps”)时,“FOR”循环终止(例如,结束)。可使用SRCA443及/或SRCB 445中的元素中的每一个的宽度来计算max_steps。举例来说,max_steps可等于log2 ELEMENT_WIDTH(例如,max_steps=log2 ELEMENT_WIDTH)。在图4A到4C中所提供的实例中,max_steps等于三(3)。在若干个实例中,可由图1中的主机110、控制电路140及/或感测电路150提供max_steps。
对应于参考编号6.a的伪码(例如,“row_to_acc(SRCB)”)与将SRCB 445作为COMP_COMP 431写入于感测电路中相关联。对应于参考编号6.b的伪码(例如,“acc_AND_accip(EFFECTIVE MASK)”)与对COMP_COMP 431及EFFECTIVE MASK433执行AND运算以隔离SRCB445中的若干个位相关联。经隔离位将创建SHIFT MASK 437。对位向量0x03020201(例如,SRCB 445)及位向量0x01,01,01,01(例如,EFFECTIVE MASK 433)执行AND运算,导致位向量0x01,00,00,01被存储于感测电路中。
对应于参考编号6.c的伪码(例如,“acc_to_row(SHIFT MASK)”)与将存储于感测电路中的数据型式(例如,COMP_COMP 431)写入到存储SHIFT MASK 437的单元相关联。举例来说,将位向量0x01,00,00,01(例如,COMP_COMP 431)存储于存储SHIFT MASK 437的存储器单元中。
对应于参考编号6.d的伪码(例如,“for(len_t e=0;e<ELEMENT_WIDTH-c-1;e++)”)与执行“FOR”循环(例如,与参考编号6.d相关联)以在与参考编号6相关联的“FOR”循环的每一迭代中执行若干个运算相关联。与参考编号6.d相关联的“FOR”循环使用“e”作为计数器来执行若干个运算。“e”在“FOR”循环的第一迭代中经设定到零(例如,0)且在“FOR”循环的每一后续迭代之前递增(例如,“e++”)一(例如,1)。当“e”大于或等于ELEMENT_WDTH减c减一(例如,“e<ELEMENT_WIDTH-c-1”)时,“FOR”循环终止(例如,结束)。在与参考编号6相关联的“FOR”循环的第一迭代期间,c等于零(0)且由此ELEMENT_WIDTH(8)减零(0)减一(1)等于七。举例来说,与参考编号6d相关联的“FOR”循环在与参考编号6相关联的“FOR”循环的第一迭代期间执行七次运算迭代,在与参考编号6相关联的“FOR”循环的第二迭代期间执行六次运算迭代,且在与参考编号6相关联的“FOR”循环的第三迭代期间执行五次运算迭代。
在图4A中,展示参考编号6.d.4而未展示参考编号6.d.1到6.d.3。参考编号6.d.4展示执行与参考编号6.d.1到6.d.4相关联的“FOR”循环的结果。
对应于参考编号6.d.1的伪码(例如,“shift_accip(LEFT,ZERO,1)”)与执行左移位运算相关联。左移位运算将COMP_COMP 431中的位朝向COMP_COMP 431中的MSB移位。举例来说,在与参考编号6.d相关联的“FOR”循环的第一迭代中,左移位运算将COMP_COMP 431(例如,0x01,00,00,01)移位,导致位向量0x02,00,00,02作为COMP_COMP 431被存储于感测电路中。在与参考编号6.d相关联的“FOR”循环的第二迭代中,左移位运算将COMP_COMP 431(例如,0x03,00,00,03)移位,导致位向量0x06,00,00,06作为COMP_COMP 431被存储于感测电路中。在与参考编号6.d相关联的“FOR”循环的第三迭代中,左移位运算将COMP_COMP 431(例如,0x07,00,00,07)移位,导致位向量0x0E,00,00,0E作为COMP_COMP 431被存储于感测电路中。在与参考编号6.d相关联的“FOR”循环的第四迭代中,左移位运算将COMP_COMP 431(例如,0x0F,00,00,0F)移位,导致位向量0x1E,00,00,1E作为COMP_COMP 431被存储于感测电路中。在与参考编号6.d相关联的“FOR”循环的第五迭代中,左移位运算将COMP_COMP431(例如,0x1F,00,00,1F)移位,导致位向量0x3E,00,00,3E作为COMP_COMP 431被存储于感测电路中。在与参考编号6.d相关联的“FOR”循环的第六迭代中,左移位运算将COMP_COMP 431(例如,0x3F,00,00,3F)移位,导致位向量0x7E,00,00,7E作为COMP_COMP 431被存储于感测电路中。在与参考编号6.d相关联的“FOR”循环的第七迭代中,左移位运算将COMP_COMP 431(例如,0x7F,00,00,7F)移位,导致位向量0xFE,00,00,FE作为COMP_COMP 431被存储于感测电路中。
对应于参考编号6.d.2的伪码(例如,“row_OR_accip(SHIFT MASK)”)与对COMP_COMP 431及SHIFT MASK 437执行OR运算相关联。举例来说,在与参考编号6.d相关联的“FOR”循环的第一迭代中,对位向量0x02,00,00,02(例如,COMP_COMP431)及位向量0x01,00,00,01(例如,SHIFT MASK 437)执行OR运算,导致位向量0x03,00,00,03作为COMP_COMP431被存储于感测电路中。在与参考编号6.d相关联的“FOR”循环的第二迭代中,对位向量0x06,00,00,06(例如,COMP_COMP 431)及位向量0x03,00,00,03(例如,SHIFT MASK 437)执行OR运算,导致位向量0x07,00,00,07作为COMP_COMP 431被存储于感测电路中。在与参考编号6.d相关联的“FOR”循环的第三迭代中,对位向量0x0E,00,00,0E(例如,COMP_COMP431)及位向量0x07,00,00,07(例如,SHIFT MASK 437)执行OR运算,导致位向量0x0F,00,00,0F作为COMP_COMP431被存储于感测电路中。在与参考编号6.d相关联的“FOR”循环的第四迭代中,对位向量0x1E,00,00,1E(例如,COMP_COMP 431)及位向量0x0F,00,00,0F(例如,SHIFT MASK 437)执行OR运算,导致位向量0x1F,00,00,1F作为COMP_COMP 431被存储于感测电路中。在与参考编号6.d相关联的“FOR”循环的第五迭代中,对位向量0x3E,00,00,3E(例如,COMP_COMP 431)及位向量0x1F,00,00,1F(例如,SHIFT MASK437)执行OR运算,导致位向量0x3F,00,00,3F作为COMP_COMP 431被存储于感测电路中。在与参考编号6.d相关联的“FOR”循环的第六迭代中,对位向量0x7E,00,00,7E(例如,COMP_COMP 431)及位向量0x3F,00,00,3F(例如,SHIFT MASK 437)执行OR运算,导致位向量0x7F,00,00,7F作为COMP_COMP 431被存储于感测电路中。在与参考编号6.d相关联的“FOR”循环的第七迭代中,对位向量0xFE,00,00,FE(例如,COMP_COMP 431)及位向量0x7F,00,00,7F(例如,SHIFT MASK437)执行OR运算,导致位向量0xFF,00,00,FF作为COMP_COMP 431被存储于感测电路中。
对应于参考编号6.d.3的伪码(例如,“row_inv_AND_accip(ELEMENT MASK)”)与对ELEMENT MASK 435执行INVERT运算及对所述INVERT运算的结果与COMP_COMP 431执行AND运算相关联。举例来说,在与参考编号6.d相关联的“FOR”循环的第一迭代中,对ELEMENTMASK 435(例如,位向量0x80,80,80,80)执行的INVERT运算产生位向量0x7F,7F,7F,7F。对位向量0x7F,7F,7F,7F(例如,INVERT运算的结果)与位向量0x03,00,00,03(例如,COMP_COMP 431)执行AND运算,导致位向量0x03,00,00,03作为COMP_COMP 431被存储于感测电路中。
在与参考编号6.d相关联的“FOR”循环的第二迭代中,对ELEMENT MASK 435(例如,位向量0x80,80,80,80)进行的INVERT运算产生位向量0x7F,7F,7F,7F。对位向量0x7F,7F,7F,7F(例如,INVERT运算的结果)与位向量0x07000007(例如,COMP_COMP431)执行AND运算,导致位向量0x07,00,00,07作为COMP_COMP 431被存储于感测电路中。
在与参考编号6.d相关联的“FOR”循环的第三迭代中,对ELEMENT MASK 435(例如,位向量0x80,80,80,80)进行的INVERT运算产生位向量0x7F,7F,7F,7F。对位向量0x7F,7F,7F,7F(例如,INVERT运算的结果)与位向量0x0F,00,00,0F(例如,COMP_COMP431)执行AND运算,导致位向量0x0F,00,00,0F作为COMP_COMP 431被存储于感测电路中。
在与参考编号6.d相关联的“FOR”循环的第四迭代中,对ELEMENT MASK 435(例如,位向量0x80,80,80,80)进行的INVERT运算产生位向量0x7F,7F,7F,7F。对位向量0x7F,7F,7F,7F(例如,INVERT运算的结果)与位向量0x1F,00,00,1F(例如,COMP_COMP431)执行AND运算,导致位向量0x1F,00,00,1F作为COMP_COMP 431被存储于感测电路中。
在与参考编号6.d相关联的“FOR”循环的第五迭代中,对ELEMENT MASK 435(例如,位向量0x80,80,80,80)进行的INVERT运算产生位向量0x7F,7F,7F,7F。对位向量0x7F,7F,7F,7F(例如,INVERT运算的结果)与位向量0x3F,00,00,3F(例如,COMP_COMP431)执行AND运算,导致位向量0x3F,00,00,3F作为COMP_COMP 431被存储于感测电路中。
在与参考编号6.d相关联的“FOR”循环的第六迭代中,对ELEMENT MASK 435(例如,位向量0x80,80,80,80)进行的INVERT运算产生位向量0x7F,7F,7F,7F。对位向量0x7F,7F,7F,7F(例如,INVERT运算的结果)与位向量0x7F,00,00,7F(例如,COMP_COMP431)执行AND运算,导致位向量0x7F,00,00,7F作为COMP_COMP 431被存储于感测电路中。
在与参考编号6.d相关联的“FOR”循环的第七迭代中,对ELEMENT MASK 435(例如,位向量0x80,80,80,80)进行的INVERT运算产生位向量0x7F,7F,7F,7F。对位向量0x7F,7F,7F,7F(例如,INVERT运算的结果)与位向量0xFF,00,00,FF(例如,COMP_COMP431)执行AND运算,导致位向量0x7F,00,00,7F作为COMP_COMP 431被存储于感测电路中。
对应于参考编号6.d.4的伪码(例如,“acc_to_row(SHIFT MASK)”)与将存储于感测电路中的数据型式(例如,COMP_COMP 431)写入到存储SHIFT MASK 437的单元相关联。举例来说,在与参考编号6.d相关联的“FOR”循环的第七迭代中,将位向量0x7F00007F(例如,COMP_COMP 431)存储于存储SHIFT MASK 437的存储器单元中。
对应于参考编号6.e的伪码(例如,“for(len_t e=0;e<c;e++)”)与执行“FOR”循环(例如,与参考编号6.e相关联)以在与参考编号6相关联的“FOR”循环的每一迭代中执行若干个运算相关联。与参考编号6.e相关联的“FOR”循环使用“e”作为计数器来执行若干个运算。“e”在“FOR”循环的第一迭代中经设定到零(例如,0)且在“FOR”循环的每一后续迭代之前递增(例如,“e++”)一(例如,1)。当“e”大于或等于c(例如,“e<c”)时,“FOR”循环终止(例如,结束)。在与参考编号6相关联的“FOR”循环的第一迭代期间,c等于零(0),使得在与参考编号6相关联的“FOR”循环的第一迭代中,“FOR”循环在不执行与6.e.1到6.e.4相关联的伪码的情况下终止。然而,为清晰起见,本文中描述与参考编号6.e相关联的伪码。
对应于参考编号6.e.1的伪码(例如,“shift_accip(RIGHT,ZERO,1)”)与执行右移位运算相关联。右移位运算将COMP_COMP 431中的位朝向COMP_COMP 431中的LSB移位且将结果作为COMP_COMP 431存储于感测电路中。对应于参考编号6.e.2的伪码(例如,“row_OR_accip(SHIFT MASK)”)与对COMP_COMP 431及SHIFT MASK 437执行OR运算且将所述OR运算的结果作为COMP_COMP 431存储于感测电路中相关联。
对应于参考编号6.e.3的伪码(例如,“row_inv_AND_accip(ELEMENT MASK)”)与对ELEMENT MASK 435执行INVERT运算,对所述INVERT运算的结果与COMP_COMP 431执行AND运算,及将所述AND运算的结果作为COMP_COMP 431存储于感测电路中相关联。对应于参考编号6.e.4的伪码(例如,“acc_to_row(SHIFT MASK)”)与将存储于感测电路中的数据型式(例如,COMP_COMP 431)写入到存储SHIFT MASK 437的单元相关联。
对应于参考编号6.f的伪码(例如,“row_to_acc(RESULT)”)与将RESULT 441作为COMP_COMP 431写入于感测电路中相关联。对应于参考编号6.g的伪码(例如,“required_shift=pow(2,c)”)与计算SRCA 443所移位的位位置的数目相关联。位位置的数目(例如,required_shift)等于2的c次幂(例如,2c)。在若干个实例中,可由图1中的主机110及/或控制电路140提供2c。也可在图1中的感测电路150中计算2c。c在本文中可称为当前位索引。举例来说,c可用于迭代贯穿与SRCB 445相关联的若干个索引。在与参考编号6相关联的“FOR”循环的第一迭代中,位位置的数目等于1。举例来说,通过SRCA 443的位位置的数目是从SRCB 445中的1位及相关联索引来计算。
来自SRCB 445的每一位与一索引相关联。举例来说,来自SRCB 445中的元素中的每一个的LSB与第一索引(例如,0)相关联而来自SRCB 445中的元素中的每一个的MSB与最后索引相关联。表示SRCB 445中的元素的位向量的第一索引中的1位可被解释为SRCA 443中的相关联元素在与参考编号6相关联的“FOR”循环的第一迭代中朝向MSB移位一个位位置的指示,与第一索引的下一个(例如,1)相关联的1位可被解释为指示SRCA 443中的相关联元素在与参考编号6相关联的“FOR”循环的第二迭代中朝向MSB移位两个位位置,与第一索引的下一个的下一个(例如,2)相关联的1位可被解释为指示SRCA 443中的相关联元素在与参考编号6相关联的“FOR”循环的第三迭代中朝向MSB移位四个位位置等。在若干个实例中,位可朝向LSB移位。
对应于参考编号6.h的伪码(例如,“shift_accip(LEFT,ZERO,required_shift)”)与执行左移位运算相关联。左移位运算将COMP_COMP 431中的位(例如,0x04,05,06,09)朝向COMP_COMP 431中的MSB移位等于required_shift的数目个位位置。在与参考编号6相关联的“FOR”循环的第一迭代中,COMP_COMP 431中的位在朝向MSB内移位一个位位置。将COMP_COMP 431中的位移位可包含将位从第一感测放大器306及/或计算组件331移位到第二感测放大器306及/或计算组件331,其中第一感测放大器306及/或计算组件331与位向量的第一索引相关联且第二感测放大器306及/或计算组件331与第二索引相关联,且其中第一索引与位向量中的第一位相关联,所述第一位是不如与位向量中的第二索引相关联的第二位有效的位。将COMP_COMP 431中的位移位可导致位向量0x080A0C12作为COMP_COMP 431被存储于感测电路中。
对应于参考编号6.i的伪码(例如,“row_AND_accip(SHIFT MASK)”)与对COMP_COMP 431及SHIFT MASK 437执行AND运算以隔离来自SRCA 443的经移位元素(所述经移位元素与具有特定索引中的1位的来自SRCB 445的元素对应)相关联。举例来说,SHIFT MASK437(例如,0x7F,00,00,7F)可用于隔离具有位向量0x08的最高有效元素的经移位元素(所述位向量0x08对应于来自SRCA 443的未经移位位向量0x04(例如,0x04,05,06,09))及具有位向量0x12的最低有效元素的经移位元素(所述位向量0x12对应于来自SRCA 443的未经移位位向量0x09(例如,0x04,05,06,09))。最高有效元素及最低有效元素由于SRCB 445(例如,二进制位向量[0000 0011,0000 0010,0000 0010,0000 0001])具有1位作为最低有效元素及最高有效元素中的LSB而移位,最低有效元素及最高有效元素的1位各自对应于在496-6.b处与SRCB 445(0x03,02,02,01)进行AND运算的EFFECTIVE MASK 433(例如,0x01,01,01,01)中的LSB位置中的1位。对于此第一迭代,最低有效位用于对应于SRCB 445(0x03,02,02,01)。当最低有效位位置包含“0”时,将不对元素进行移位(如下文与下文的6.m相关联地描述),这是因为与EFFECTIVE MASK 533(0x01,01,01,01)进行AND运算的SRCB 445(0x03,02,02,01)产生(0x01,00,00,01)。对COMP_COMP 431(例如,0x08,0A,0C,12)及SHIFTMASK 437(例如,0x7F,00,00,7F)执行AND运算的结果是位向量0x08,00,00,12,所述位向量作为COMP_COMP 431被存储于感测电路中。
对应于参考编号6.j的伪码(例如,“row_inv_AND_accip(ELEMENT MASK)”)与对ELEMENT MASK 435执行INVERT运算及对所述INVERT运算的结果与COMP_COMP431执行AND运算以创建掩码相关联,所述掩码可用于隔离位以防其从一个元素移位到SRCA 443中的不同元素。对ELEMENT MASK 435(例如,位向量0x80,80,80,80)执行的INVERT运算产生位向量0x7F,7F,7F,7F。对位向量0x7F,7F,7F,7F(例如,INVERT运算的结果)与位向量0x08,00,00,12(例如,COMP_COMP 431)执行AND运算,导致位向量0x08,00,00,12作为COMP_COMP 431被存储于感测电路中。
对应于参考编号6.k的伪码(例如,“acc_to_row(TMPSHIFTED MASK)”)与将COMP_COMP 431的位型式存储于存储TMPSHIFTED MASK 439的存储器单元中相关联,以存储来自SRCA 443的与参考编号6.i相关联隔离的经移位元素,同时隔离来自SRCA 443的未经移位元素。举例来说,将位向量0x08,00,00,12(例如,COMP_COMP 431)存储于存储TMPSHIFTEDMASK 439的存储器单元中。由此,TMPSHIFTED MASK 439用于存储与来自SRCA 443的未经移位元素隔离的来自SRCA 443的经移位元素。
对应于参考编号6.l的伪码(例如,“row_inv_to_acc(SHIFT MASK)”)与对SHIFTEDMASK 437执行INVERT运算且将结果作为COMP_COMP 431存储于感测电路中以创建掩码相关联,所述掩码可用于隔离来自SRCA 443的未经移位元素。将位向量0x7F,00,00,7F(例如,SHIFTED MASK 437)反相可导致位向量0x80,FF,FF,80作为COMP_COMP 431被存储于感测电路中。
对应于参考编号6.m的伪码(例如,“row_AND_accip(RESULT)”)与对COMP_COMP431及RESULT 441执行AND运算以隔离来自SRCA 443的未经移位元素(所述未经移位元素与具有特定索引中的0位的来自SRCB 445的元素对应)相关联。举例来说,位向量0x80,FF,FF,80可用于隔离具有来自SRCA 443(例如,0x04,05,06,09)的位向量0x05的未经移位元素及具有来自SRCA 443(例如,0x04,05,06,09)的位向量0x06的未经移位元素,这归因于SRCB 445(例如,二进制位向量[0000 0011,0000 0010,0000 0010,0000 0001])具有位中的0位,其中所述两个元素中的0索引介于最低有效元素与最高有效元素之间。对COMP_COMP 431(例如,0x80,FF,FF,80)与RESULT 441(例如,0x04,05,06,09)执行AND运算的结果是位向量0x00,05,06,00,所述位向量作为COMP_COMP 431被存储于感测电路中。
对应于参考编号6.n的伪码(例如,“row_OR_accip(TMPSHIFTED MASK)”)与对COMP_COMP 431及TMPSHIFTED MASK 439执行OR运算以将其两者彼此隔离的经移位元素与未经移位元素合并相关联。对位向量0x00,05,06,00(例如,COMP_COMP 431)及位向量0x08,00,00,12(例如,TMPSHIFTED MASK 439)执行OR运算,导致位向量0x08,05,06,12作为COMP_COMP 431被存储于感测电路中。
对应于参考编号6.o的伪码(例如,“acc_to_row(RESULT)”)与将COMP_COMP 431的位型式存储于存储RESULT 441的存储器单元中以存储与参考编号6相关联的“FOR”循环的迭代的结果相关联。举例来说,对应于参考编号6.o的伪码存储在与参考编号6相关联的“FOR”循环的第一迭代中将SRCA 443中的位移位第一数目个位位置的结果,存储在与参考编号6相关联的“FOR”循环的第二迭代中将SRCA 443中的位移位第二数目个位位置的结果,及存储在与参考编号6相关联的“FOR”循环的第三迭代中将SRCA443中的位移位第三数目个位位置的结果。位向量0x08,05,06,12被存储于存储RESULT441的存储器单元中。
对应于参考编号6.p至6.r的伪码与更新EFFECTIVE MASK 433相关联。对应于参考编号6.p的伪码(例如,“row_to_acc(EFFECTIVE MASK)”)与将EFFECTIVE MASK 433的位型式存储于感测电路中相关联。举例来说,位向量0x01,01,01,01作为COMP_COMP被存储于感测电路中。对应于参考编号6.q的伪码(例如,“shift_accip(LEFT,ZERO,1)”)与对COMP_COMP 431执行左移位运算以产生可用于识别具有特定索引的位的位向量相关联。将位向量0x01,01,01,01移位会导致位向量0x02,02,02,02作为COMP_COMP 431被存储于感测电路中。对应于参考编号6.r的伪码(例如,“acc_to_row(EFFECTIVE MASK)”)与将COMP_COMP431存储于存储EFFECTIVE MASK 433的存储器单元中相关联。举例来说,位向量0x02,02,02,02(例如,COMP_COMP 431)被存储于存储EFFECTIVE MASK 433的存储器单元中。
在图4B中所展示的与参考编号6相关联的“FOR”循环的第二迭代中,对应于参考编号6的伪码(例如,“for(len_t c=0;c<max_steps;c++)”)将c递增使得c等于一(1)。“FOR”循环由于c小于三(3)而继续。
在参考编号6.a的第二迭代中,位向量0x03,02,02,01作为COMP_COMP 431被存储于感测电路中。在参考编号6.b的第二迭代中,对位向量0x03020201(例如,SRCB 445)及位向量0x02,02,02,02(例如,EFFECTIVE MASK 433)执行AND运算,导致位向量0x02,02,02,00被存储于感测电路中。
在参考编号6.c的第二迭代中,位向量0x02,02,02,00(例如,COMP_COMP 431)被存储于存储SHIFT MASK 437的存储器单元中。在参考编号6.d的第二迭代中,使用“FOR”循环执行若干个运算。在执行与参考编号6d相关联的“FOR”循环之后,位向量0x7E,7E,7E,00(例如,COMP_COMP 431)被存储于存储SHIFT MASK 437的存储器单元中。在参考编号6.e的第二迭代中,使用“FOR”循环执行若干个运算。在执行与参考编号6e相关联的“FOR”循环之后,位向量0x7F,7F,7F,00(例如,COMP_COMP 431)被存储于存储SHIFT MASK 437的存储器单元中。
在参考编号6.e的第二迭代中,与参考编号6.e相关联的“FOR”循环使用“e”作为计数器执行若干个运算。“e”在“FOR”循环的第一迭代中经设定到零(例如,0)且在“FOR”循环的每一后续迭代之前递增(例如,“e++”)一(例如,1)。当“e”大于或等于c(例如,“e<c”)时,“FOR”循环终止(例如,结束)。在与参考编号6相关联的“FOR”循环的第二迭代期间,c等于零(1),使得与参考编号6.e相关联的“FOR”循环在执行与“FOR”循环(其与参考编号6.e相关联)相关联的运算的迭代之后终止。
在参考编号6.f的第二迭代中,位向量0x08,05,06,12(例如,RESULT 441)作为COMP_COMP 431被存储于感测电路中。在参考编号6.g的第二迭代中,required_shift等于2(例如,21=2)。在参考编号6.h的第二迭代中,左移位运算会将COMP_COMP 431(例如,0x08,05,06,12)中的位朝向COMP_COMP 431中的MSB移位等于required_shift的数目个位位置。左移位运算的结果是位向量0x20,14,18,48,其作为COMP_COMP 431被存储于感测电路中。
在参考编号6.i的第二迭代中,对位向量0x20,14,18,48(例如,COMP_COMP 431)及位向量0x7F,7F,7F,00(例如,SHIFT MASK 437)执行AND运算。举例来说,对位向量0x20,14,18,48与0x7F,7F,7F,00进行AND运算以便隔离来自SRCA 443的经移位元素,所述经移位元素与来自SRCB 445的具有特定索引中的1位的元素对应。在此第二迭代中,SHIFT MASK 437(例如,0x7F,7F,7F,00)的值指示SRCB 445(例如,0x03,02,02,01)的值是否对应于第二最低有效位位置(例如,由EFFECTIVE MASK 433[0x02,02,02,02]图解说明)。在此实例中,AND运算的结果是位向量0x20,14,18,00,其作为COMP_COMP431被存储于感测电路中。
在参考编号6.j的第二迭代中,对位向量0x80,80,80,80(例如,ELEMENT MASK435)执行INVERT运算。对位向量0x7F,7F,7F,7F(例如,INVERT运算的结果)及位向量0x20,14,18,00(例如,COMP_COMP 431)执行AND运算,导致位向量0x20,14,18,00作为COMP_COMP431被存储于感测电路中。
在参考编号6.k的第二迭代中,位向量0x20,14,18,00(例如,COMP_COMP 431)被存储于存储TMPSHIFTED MASK 439的存储器单元中。在参考编号6.l的第二迭代中,位向量0x7F,7F,7F,00(例如,SHIFTED MASK 437)被反相,导致位向量0x80,80,80,FF作为COMP_COMP 431被存储于感测电路中。
在参考编号6.m的第二迭代中,对位向量0x80,80,80,FF(例如,COMP_COMP 431)与位向量0x08,05,06,12(例如,RESULT 441)进行AND运算,产生作为COMP_COMP 431被存储于感测电路中的位向量0x00,00,00,12。举例来说,位向量0x80,80,80,FF可用于隔离具有来自RESULT 441(例如,0x08,00,00,12)的位向量0x12的未经移位元素。在参考编号6.n的第二迭代中,对位向量0x00,00,00,12(例如,COMP_COMP 431)及位向量0x20,14,18,00(例如,TMPSHIFTED MASK 439)执行OR运算,导致位向量0x20,14,18,12作为COMP_COMP 431被存储于感测电路中。在参考编号6.o的第二迭代中,位向量0x20,14,18,12(例如,COMP_COMP431)被存储于存储RESULT 441的存储器单元中。
在参考编号6.p的第二迭代中,位向量0x02,02,02,02作为COMP_COMP 431被存储于感测电路中。在参考编号6.q的第二迭代中,位向量0x02,02,02,02(例如,COMP_COMP431)被移位,导致位向量0x04,04,04,04作为COMP_COMP 431被存储于感测电路中。在参考编号6.r的第二迭代中,位向量0x04,04,04,04(例如,COMP_COMP431)被存储于存储EFFECTIVE MASK 433的存储器单元中。
在图4C中所展示的与参考编号6相关联的“FOR”循环的第三迭代中,对应于参考编号6的伪码将c递增使得c等于二(2)。“FOR”循环由于c小于三(3)而继续。
在参考编号6.a的第三迭代中,位向量0x03,02,02,01作为COMP_COMP 431被存储于感测电路中。在参考编号6.b的第三迭代中,对位向量0x03020201(例如,SRCB 445)及位向量0x04,04,04,04(例如,EFFECTIVE MASK 433)执行AND运算,导致位向量0x00,00,00,00被存储于感测电路中。
在参考编号6.c的第三迭代中,位向量0x00,00,00,00(例如,COMP_COMP 431)被存储于存储SHIFT MASK 437的存储器单元中。在参考编号6.d的第三迭代中,使用“FOR”循环执行若干个运算。在执行与参考编号6d相关联的“FOR”循环之后,位向量0x00,00,00,00(例如,COMP_COMP 431)被存储于存储SHIFT MASK 437的存储器单元中。在参考编号6.e的第三迭代中,使用“FOR”循环执行若干个运算。在执行与参考编号6e相关联的“FOR”循环之后,位向量0x00,00,00,00(例如,COMP_COMP 431)被存储于存储SHIFT MASK 437的存储器单元中。在参考编号6.e的第三迭代中,位向量0x00,00,00,00被存储于存储SHIFT MASK 437的存储器单元中。
在参考编号6.f的第三迭代中,位向量0x20,14,18,00(例如,RESULT 441)作为COMP_COMP 431被存储于感测电路中。在参考编号6.g的第三迭代中,required_shift等于4(例如,22=4)。在参考编号6.h的第三迭代中,左移位运算会将位向量0x20,14,18,12(例如,COMP_COMP 431)中的位朝向COMP_COMP 431中的MSB移位等于required_shift的数目个位位置。左移位运算的结果是位向量0x01,41,81,20,其作为COMP_COMP 431被存储于感测电路中。
在参考编号6.i的第三迭代中,对位向量0x01,41,81,20(例如,COMP_COMP 431)及位向量0x00,00,00,00(例如,SHIFT MASK 437)执行AND运算。举例来说,对位向量0x01,41,81,20与0x00,00,00,00进行AND运算以便隔离来自SRCA 443的经移位元素,所述经移位元素与来自SRCB 445的具有特定索引中的1位的元素对应。在此第三迭代中,SHIFT MASK 437(例如,0x00,00,00,00)的值指示SRCB 445(例如,0x03,02,02,01)的值是否对应于第三最低有效位位置(例如,由EFFECTIVE MASK 433[0x04,04,04,04]图解说明)。且由于在此实例中,SRCB 445位向量(0x03,02,02,01)的“1”位均不对应于EFFETIVE MASK 433位向量(0x04,04,04,04),因此AND运算的结果是位向量0x00,00,00,00,其作为COMP_COMP 431被存储于感测电路中。
在参考编号6.j的第三迭代中,对位向量0x80,80,80,80(例如,ELEMENT MASK435)执行INVERT运算。对位向量0x7F,7F,7F,7F(例如,INVERT运算的结果)及位向量0x00,00,00,00(例如,COMP_COMP 431)执行AND运算,导致位向量0x00,00,00,00作为COMP_COMP431被存储于感测电路中。
在参考编号6.k的第三迭代中,位向量0x00,00,00,00(例如,COMP_COMP 431)被存储于存储TMPSHIFTED MASK 439的存储器单元中。在参考编号6.l的第三迭代中,位向量0x00,00,00,00(例如,SHIFTED MASK 437)被反相,导致位向量0xFF,FF,FF,FF作为COMP_COMP 431被存储于感测电路中。
在参考编号6.m的第三迭代中,对位向量0xFF,FF,FF,FF(例如,COMP_COMP 431)与位向量0x20,14,18,12(例如,RESULT 441)进行AND运算,产生作为COMP_COMP 431被存储于感测电路中的位向量0x20,14,18,12。举例来说,位向量0xFF,FF,FF,FF可用于隔离包含来自RESULT 441(例如,0x20,14,18,12)的位向量0x20、0x14、0x18及0x12的未经移位元素。在参考编号6.n的第三迭代中,对位向量0x20,14,18,12(例如,COMP_COMP 431)及位向量0x00,00,00,00(例如,TMPSHIFTED MASK 439)执行OR运算,导致位向量0x20,14,18,00作为COMP_COMP 431被存储于感测电路中。在参考编号6.o的第三迭代中,位向量0x20,14,18,12(例如,COMP_COMP 431)被存储于存储RESULT 441的存储器单元中。
在参考编号6.p的第三迭代中,位向量0x04,04,04,04作为COMP_COMP 431被存储于感测电路中。在参考编号6.q的第三迭代中,位向量0x04,04,04,04(例如,COMP_COMP431)被移位,导致位向量0x08,08,08,08作为COMP_COMP 431被存储于感测电路中。在参考编号6.r的第三迭代中,位向量0x08,08,08,08(例如,COMP_COMP431)被存储于存储EFFECTIVE MASK 433的存储器单元中。
然而,实施例并不限于此实例中的伪码中的指令的序列的次序。举例来说,以特定参考编号参考的若干个运算可在执行以不同参考编号参考的若干个运算之前执行。
在下文描述且在下文的表1中概述关于执行逻辑运算且最初将结果存储于感测放大器206-2中的图2A的感测电路250-2的功能性。与其中结果可最初驻存于计算组件231-2的次级锁存器(例如,累加器)中,且(举例来说)然后随后经传送到感测放大器206-2的先前方法相比,最初将特定逻辑运算的结果存储于感测放大器206-2的初级锁存器中可提供经改善多功能性。
运算 累加器 感测放大器
AND 未改变 结果
OR 未改变 结果
NOT 未改变 结果
SHIFT 未改变 经移位数据
表1
最初将特定运算的结果存储于感测放大器206-2中(例如,不必执行额外运算以将结果从计算组件231-2(例如,累加器)移动到感测放大器206-2)是有利的,这是因为(举例来说)可在不执行预充电周期(例如,在互补数据线205-1及/或205-2上)的情况下将结果写入到行(存储器单元的阵列的行)或写回到累加器中。
图5A图解说明根据本发明的若干个实施例的与使用感测电路执行若干个逻辑运算相关联的时序图。下文描述关于执行逻辑运算且最初将结果存储于计算组件231-2(例如,累加器的次级锁存器)中的图2A的感测电路250-2的功能性。图5A中所展示的时序图图解说明与使用图2A中所图解说明的感测电路来执行逻辑运算(例如,R输入逻辑运算)的第一运算阶段相关联的信号(例如,电压信号)。关于图5A描述的第一运算阶段可是(举例来说)AND、NAND、OR或NOR运算的第一运算阶段。执行图5A中所图解说明的运算阶段可涉及消耗显著少于先前处理方法的能量(例如,约一半),所述先前处理方法可涉及在电压轨之间(例如,在用于存取I/O线的供应器与接地之间)提供全摆动。
在图5a中所图解说明的实例中,对应于互补逻辑值(例如,“1”及“0”)的电压轨是供应电压(VDD)及参考电压(例如,接地(Gnd))。在执行逻辑运算之前,可发生平衡,使得互补数据线D及D_在平衡电压(VDD/2)下短接在一起,如先前所描述。
下文所描述的逻辑运算的第一运算阶段涉及将逻辑运算的第一操作数加载到累加器中。图5A中所展示的时间参考(例如,t1等)未必表示与其它时序图中的类似时间参考相同的绝对或相对时间。
在时间t1处,平衡信号526被撤销激活,且然后选定行(例如,对应于将感测其数据值且将所述数据值用作第一输入的存储器单元的行)被启用。信号504-0表示施加到选定行(例如,图2A中所展示的行Y 204-Y)的电压信号。当行信号504-0达到对应于选定单元的存取晶体管(例如,图2A中所展示的202-3)的阈值电压(Vt)时,存取晶体管接通且将数据线D耦合到选定存储器单元(例如,如果单元是1T1C DRAM单元,那么耦合到图2A中所展示的电容器203-3),此在数据线D与D_(例如,如分别通过数据线上的信号505-1及505-2指示)之间(于时间t2与t3之间)形成差分电压信号。选定单元的电压通过信号503表示。由于能量守恒,因此在数据线D与D_之间形成差分信号(例如,通过将单元耦合到数据线D)并不消耗能量。然而,与启用/停用行信号504-0相关联的能量分散于耦合到所述行的多个存储器单元上。
在时间t3处,感测放大器(例如,图2A中所展示的206-2)被启用。如所展示,正控制信号590(例如,对应于图2B中所展示的ACT 265)变高且负控制信号528(例如,对应于图2B中所展示的RnIF 228)变低。此将数据线D与D_之间的差分信号放大,从而产生处于数据线D上的对应于逻辑“1”的电压(例如,VDD)或对应于逻辑“0”的电压(例如,接地)(及处于互补数据线D_上的另一电压)。由此,所感测数据值被存储于感测放大器206-2的初级锁存器中。在将数据线D(205-1)从平衡电压VDD/2充电到轨电压VDD时发生初级能量消耗。图5A在实例中展示处于数据线D上的对应于逻辑“1”的数据线电压505-1及505-2。
根据一些实施例,感测放大器206-2的初级锁存器可通过相应通过晶体管耦合到互补数据线D及D_(图2A中未展示但在与其中锁存器264通过图2A中所展示的负载/通过晶体管218-1及218-2耦合到数据线D及D_的方式类似的配置中)。Passd控制信号511控制一个通过晶体管。Passdb控制信号控制另一通过晶体管,且此处Passdb控制信号可在此处表现得与Passd控制信号相同。
在时间t4处,可启用通过晶体管(如果存在)(例如,经由施加到耦合到通过晶体管的相应栅极的控制线的相应Passd及Passdb控制信号511变高)。在时间t5处,累加器负控制信号512-1(例如,Accumb)及累加器正控制信号512-2(例如,Accum)经由图2A中所展示的相应控制线212-1及212-2激活。如下文所描述,累加器控制信号ACCUMB512-1及ACCUM 512-2可在后续运算阶段内保持被激活。由此,在此实例中,激活控制信号ACCUMB 512-1及ACCUM512-2会启用图2A中所展示的计算组件231-2的次级锁存器(例如,累加器)。存储于感测放大器206-2中的所感测数据值经传送(例如,经拷贝)到包含动态锁存器及静态锁存器264的次级锁存器,如图2A中所展示。
在时间t6处,Passd控制信号511(及Passdb控制信号)变低,借此关断通过晶体管(如果存在)。然而,由于累加器控制信号ACCUMB 512-1及ACCUM 512-2保持激活,因此经累加结果被存储(例如,被锁存)于次级锁存器(例如,累加器)中。在时间t7处,行信号504-0被撤销激活,且在时间t8处,阵列感测放大器被停用(例如,感测放大器控制信号528及590被撤销激活)。
在时间t9处,数据线D及D_达成平衡(例如,平衡信号526被激活),如通过数据线电压信号505-1及505-2从其相应轨值移动到平衡电压(VDD/2)所图解说明。所述平衡由于能量守恒定律而消耗极少能量。如上文与图2B相关联所描述,平衡可涉及在平衡电压处(其在此实例中是VDD/2)将互补数据线D及D_短接在一起。平衡可(举例来说)在存储器单元感测运算之前发生。
图5B及5C分别图解说明根据本发明的若干个实施例的与使用感测电路执行若干个逻辑运算相关联的时序图。图5B及5C中所展示的时序图图解说明与执行逻辑运算(例如,R输入逻辑运算)的若干个中间运算阶段相关联的信号(例如,电压信号)。举例来说,图5B中所展示的时序图对应于R输入NAND运算或R输入AND运算的若干个中间运算阶段,且图5C中所展示的时序图对应于R输入NOR运算或R输入OR运算的若干个中间运算阶段。举例来说,执行AND或NAND运算可包含在例如关于图5A所描述的初始运算阶段之后一或多次地执行图5B中所展示的运算阶段。类似地,执行OR或NOR运算可包含在例如关于图5A所描述的初始运算阶段之后一或多次地执行关于图5C所展示并描述的运算阶段。
如在图5B及5C中所图解说明的时序图中所展示,在时间t1处,平衡被停用(例如,平衡信号526被撤销激活),且然后选定行(例如,对应于将感测其数据值且将所述数据值用作输入(例如第二输入、第三输入等)的存储器单元的行)被启用。信号504-1表示施加到选定行(例如,图2A中所展示的行Y 204-Y)的电压信号。当行信号504-1达到对应于选定单元的存取晶体管(例如,图2A中所展示的202-3)的阈值电压(Vt)时,存取晶体管接通且将数据线D耦合到选定存储器单元(例如,如果单元是1T1C DRAM单元,那么耦合到电容器203-3),此在数据线D与D_(例如,如分别通过信号505-1及505-2指示)之间(于时间t2与t3之间)形成差分电压信号。选定单元的电压通过信号503表示。由于能量守恒,因此在D与D_之间形成差分信号(例如,通过将单元耦合到数据线D)并不消耗能量。然而,与将行信号504-1激活/撤销激活相关联的能量可摊分(amortized)于耦合到所述行的所述多个存储器单元上。
在时间t3处,感测放大器(例如,图2A中所展示的206-2)被启用(例如,正控制信号590(例如,对应于图2B中所展示的ACT 233)变高,且负控制信号528(例如,图2B中所展示的RnIF 228)变低)。此将D与D_之间的差分信号放大,从而产生处于数据线D上的对应于逻辑1的电压(例如,VDD)或对应于逻辑0的电压(例如,接地)(及处于互补数据线D_上的另一电压)。由此,所感测数据值被存储于感测放大器206-2的初级锁存器中。在将数据线D(205-1)从平衡电压VDD/2充电到轨电压VDD时发生初级能量消耗。
如在图5B及5C中所图解说明的时序图中所展示,在时间t4处(例如,在感测选定单元之后),取决于特定逻辑运算,图5B中所展示的控制信号511-1(Passd)及图5C中所展示的511-2(Passdb)中的仅一个被激活(例如,通过晶体管(如果存在)中的仅一个被启用)。举例来说,由于图5B中所图解说明的时序图对应于NAND或AND运算的中间阶段,因此控制信号511-1(Passd)在时间t4处被激活以接通将初级锁存器耦合到数据线D的通过晶体管,且Passdb控制信号保持撤销激活从而使将初级锁存器耦合到数据线D_的通过晶体管关断。相反地,由于图5C中所图解说明的时序图对应于NOR或OR运算的中间阶段,因此控制信号511-2(Passdb)在时间t4处被激活以接通将初级锁存器耦合到数据线D_的通过晶体管,且控制信号Passd保持撤销激活从而使将初级锁存器耦合到数据线D的通过晶体管关断。回想上文累加器控制信号512-1(Accumb)及512-2(Accum)在关于图5A所描述的初始运算阶段期间被激活,且其在中间运算阶段期间保持激活。
由于先前已启用累加器,因此仅激活Passd(如图5B中所展示的511-1)导致累加对应于图5B中所展示的电压信号505-1(对应于数据线D)的数据值。类似地,仅激活Passdb(如图5C中所展示的511-2)导致累加对应于电压信号505-2(对应于数据线D_)的数据值。举例来说,在于其中仅激活Passd(511-1)的图5B中所图解说明的时序图中所展示的实例性AND/NAND运算中,如果存储于第二选定存储器单元中的数据值是逻辑“0”,那么与次级锁存器相关联的经累加值经断言为低,使得次级锁存器存储逻辑“0”。如果存储于第二选定存储器单元中的数据值并非逻辑“0”,那么次级锁存器保持其所存储第一选定存储器单元数据值(例如,逻辑“1”或逻辑“0”)。由此,在此AND/NAND运算实例中,次级锁存器正充当零(0)累加器。
类似地,在于其中仅激活Passdb 511-2的图5C中所图解说明的时序图中所展示的实例性OR/NOR运算中,如果存储于第二选定存储器单元中的数据值是逻辑“1”,那么与次级锁存器相关联的经累加值经断言为高,使得次级锁存器存储逻辑“1”。如果存储于第二选定存储器单元中的数据值并非逻辑“1”,那么次级锁存器保持其所存储第一选定存储器单元数据值(例如,逻辑“1”或逻辑“0”)。由此,在此OR/NOR运算实例中,由于D_上的电压信号505-2正将累加器的数据值设定为真(例如,“1”),因此次级锁存器正有效地充当一(1)累加器。
在中间运算阶段(例如图5B或5C中所展示的中间运算阶段)结束时,Passd信号511-1(例如,针对AND/NAND)或Passdb信号511-2(例如,针对OR/NOR)被撤销激活(例如,在时间t5处),选定行被停用(例如,在时间t6处),感测放大器被停用(例如,在时间t7处),且发生平衡(例如,在时间t8处)。可重复中间运算阶段(例如图5B或5C中所图解说明的中间运算阶段)以便累加来自若干个额外行的结果。作为实例,图5B及/或5C中所图解说明的时序图的序列可在后一(例如,第二)次对第三存储器单元执行,在后一(例如,第三)次对第四存储器单元执行等。举例来说,对于10输入NOR运算,图5C中所展示的中间阶段可发生9次以提供10输入逻辑运算的9个输入,其中在初始运算阶段(例如,如关于图5A所描述)期间确定第十输入。
图5D图解说明根据本发明的若干个实施例的与使用感测电路执行若干个逻辑运算相关联的时序图。图5D中所图解说明的时序图展示与执行逻辑运算(例如,R输入逻辑运算)的最后运算阶段相关联的信号(例如,电压信号)。举例来说,图5D中所图解说明的时序图对应于R输入AND运算或R输入OR运算的最后运算阶段。
举例来说,执行R输入的最后运算阶段可包含在与图5B及/或5C相关联描述的中间运算阶段的若干次迭代之后执行图5D中所展示的运算阶段。下文所展示的表2指示根据本文中所描述的若干个实施例的对应于与执行若干个R输入逻辑运算相关联的运算阶段的序列的图。
表2
举例来说,可通过以下操作实施NAND运算:将针对AND运算的R-1个迭代的结果存储于感测放大器中,然后在进行最后运算阶段之前反相感测放大器以存储结果(下文所描述)。举例来说,可通过以下操作实施NOR运算:将针对OR运算的R-1个迭代的结果存储于感测放大器中,然后在进行最后运算阶段之前反相感测放大器以存储结果(下文所描述)。
与将R输入逻辑运算的结果存储到阵列(例如,图2A中所展示的阵列230)的行相关联地描述图5D的时序图中所图解说明的最后运算阶段。然而,如上文所描述,在若干个实施例中,除存储回到阵列之外,结果也可存储到适合位置(例如,经由I/O线存储到与控制器及/或主机处理器相关联的外部寄存器,存储到不同存储器装置的存储器阵列等)。
如图5D中所图解说明的时序图中所展示,在时间t1处,平衡被停用(例如,平衡信号526被撤销激活),使得数据线D及D_浮动。在时间t2处,针对AND或OR运算激活Passd控制信号511(及Passdb信号)。
激活Passd控制信号511(及Passdb信号)(例如,与AND或OR运算相关联)会将存储于图2A中所展示的计算组件231-2的次级锁存器中的经累加输出传送到感测放大器206-2的初级锁存器。举例来说,针对AND运算,如果在先前运算阶段(例如,图5A中所图解说明的第一运算阶段及图5B中所图解说明的中间运算阶段的一或多次迭代)中感测的存储器单元中的任一个存储逻辑“0”(例如,如果AND运算的R输入中的任一个是逻辑“0”),那么数据线D_将载运对应于逻辑“1”的电压(例如,VDD)且数据线D将载运对应于逻辑“0”的电压(例如,接地)。针对此AND运算实例,如果在先前运算阶段中感测的存储器单元中的全部均存储逻辑“1”(例如,AND运算的R输入中的全部均是逻辑“1”),那么数据线D_将载运对应于逻辑“0”的电压且数据线D将载运对应于逻辑“1”的电压。在时间t3处,感测放大器206-2的初级锁存器然后被启用(例如,正控制信号590(例如,对应于图2B中所展示的ACT 265)变高且负控制信号528(例如,对应于图2B中所展示的RnIF 228)变低),此将数据线D与D_之间的差分信号放大,使得数据线D现在载运如从在先前运算阶段期间感测的存储器单元确定的相应输入数据值的经AND运算结果。由此,如果输入数据值中的任一个是逻辑“0”,那么数据线D将处于接地,且如果输入数据值中的全部均是逻辑“1”,那么数据线D将处于VDD
针对OR运算,如果在先前运算阶段(例如,图5A的第一运算阶段及图5C中所展示的中间运算阶段的一或多次迭代)中感测的存储器单元中的任一个存储逻辑“1”(例如,如果OR运算的R输入中的任一个是逻辑“1”),那么数据线D_将载运对应于逻辑“0”的电压(例如,接地)且数据线D将载运对应于逻辑“1”的电压(例如,VDD)。针对此OR实例,如果在先前运算阶段中感测的存储器单元中的全部均存储逻辑“0”(例如,OR运算的R输入中的全部均是逻辑“0”),那么数据线D将载运对应于逻辑“0”的电压且数据线D_将载运对应于逻辑“1”的电压。在时间t3处,感测放大器206-2的初级锁存器然后被启用,且数据线D现在载运如从在先前运算阶段期间感测的存储器单元确定的相应输入数据值的经OR运算结果。由此,如果输入数据值中的任一个是逻辑“1”,那么数据线D将处于VDD,且如果输入数据值中的全部是逻辑“0”,那么数据线D将处于接地。
然后,R输入AND或OR逻辑运算的结果可经存储回到图2A中所展示的阵列230的存储器单元。在图5D中所展示的实例中,R输入逻辑运算的结果经存储到存储器单元,所述存储器单元耦合到经启用的最后一行(例如,最后逻辑运算操作数的行)。将逻辑运算的结果存储到存储器单元仅涉及通过启用特定行而启用相关联行存取晶体管。存储器单元的电容器将被驱动到对应于数据线D上的数据值(例如,逻辑“1”或逻辑“0”)的电压,此本质上重写先前存储于选定存储器单元中的无论何种数据值。注意,选定存储器单元可是存储用作逻辑运算的输入的数据值的同一存储器单元。举例来说,逻辑运算的结果可经存储回到存储逻辑运算的操作数的存储器单元。
图5D中所图解说明的时序图展示,在时间t3处正控制信号590及负控制信号528被撤销激活(例如,信号590变高且信号528变低)以停用图2A中所展示的感测放大器206-2。在时间t4处,在时间t2处激活的Passd控制信号511(及Passdb信号)被撤销激活。实施例并不限于此实例。举例来说,在若干个实施例中,图2A中所展示的感测放大器206-2可在时间t4之后(例如,在Passd控制信号511(及Passdb信号)被撤销激活之后)被启用。
如图5D中所展示,在时间t5处,选定行被启用(例如,通过行激活信号504变高),此将选定单元的电容器驱动到对应于存储于累加器中的逻辑值的电压。在时间t6处,选定行被停用。在时间t7处,图2A中所展示的感测放大器206-2被停用(例如,在图5D中正控制信号528及负控制信号590被撤销激活),且在时间t8处发生平衡(例如,信号526被激活且互补数据线505-1(D)及505-2(D_)上的电压达到平衡电压,如图5D中所展示)。
尽管上文关于图5D论述针对执行AND及OR逻辑运算的执行R输入的最后运算阶段的实例,但实施例并不限于这些逻辑运算。举例来说,NAND及NOR运算也可涉及使用控制信号进行存储回到阵列230的存储器单元的R输入的最后运算阶段以操作图2A中所图解说明的感测电路。
先前描述且在下文的表1中再次概述关于执行逻辑运算且最初将结果存储于感测放大器206-2中的图2A的感测电路250-2的功能性。与其中结果可最初驻存于计算组件231-2的次级锁存器(例如,累加器)中,且(举例来说)然后随后经传送到感测放大器206-2的先前方法相比,最初将特定逻辑运算的结果存储于感测放大器206-2的初级锁存器中可提供经改善多功能性。
运算 累加器 感测放大器
AND 未改变 结果
OR 未改变 结果
NOT 未改变 结果
SHIFT 未改变 经移位数据
表1
最初将特定运算的结果存储于感测放大器206-2中(例如,不必执行额外运算以将结果自计算组件231-2(例如,累加器)移动到感测放大器206-2)是有利的,这是因为(举例来说)可在不执行预充电周期(例如,在互补数据线205-1(D)及/或205-2(D_)上)的情况下将结果写入到行(存储器单元的阵列的行)或写回到累加器中。
图6A图解说明根据本发明的若干个实施例的与使用感测电路执行若干个逻辑运算相关联的时序图。图6A图解说明与起始对第一操作数及第二操作数进行AND逻辑运算相关联的时序图。在此实例中,第一操作数存储于耦合到第一存取线(例如,行X)的存储器单元中且第二操作数存储于耦合到第二存取线(例如,行Y)的存储器单元中。尽管所述实例是指对存储于对应于一个特定列的单元中的数据执行AND,但实施例并不限于此。举例来说,整个行的数据值可与不同行的数据值并行进行AND运算。举例来说,如果阵列包括2,048列,那么可并行执行2,048个AND运算。
图6A图解说明与操作感测电路(例如,图2A中的250-2)以执行AND逻辑运算相关联的若干个控制信号。“EQ”对应于施加到感测放大器206-2的平衡信号,“行X”对应于施加到存取线204-X的激活信号,“行Y”对应于施加到存取线204-Y的激活信号,“Act”及“RnIF”对应于施加到感测放大器206-2的相应正有效控制信号及负控制信号,“LOAD”对应于负载控制信号(例如,图2A中所展示的LOAD/PASSD及LOAD/PASSDb),且“AND”对应于图2A中所展示的AND控制信号。图6A也图解说明展示在针对行X及行Y数据值的各种数据值组合的AND逻辑运算期间,数字线D及D_(对应于感测放大器206-2)上及节点S1及S2(对应于计算组件231-2(例如,累加器))上的信号(例如,电压信号)的波形图(例如,对应于相应数据值组合00,10,01,11的图)。下文论述关于与图2A中所展示的电路的AND运算相关联的伪码的特定时序图波形。
与将存储于耦合到行204-X的单元中的第一数据值加载(例如,拷贝)到累加器中相关联的伪码的实例可概述如下:
将行X拷贝到累加器中:
将EQ撤销激活
开启行X
激发感测放大器(在此之后行X数据驻存于感测放大器中)
激活LOAD(感测放大器数据(行X)经传送到累加器的节点S1及S2且动态地驻存于那里)
将LOAD撤销激活
关闭行X
预充电
在上文的伪码中,“将EQ撤销激活”指示对应于感测放大器206-2的平衡信号(图6A中所展示的EQ信号)被停用(例如,使得互补数据线205-1(D)及205-2(D_)不再短接到VDD/2),此在图6A中的t1处图解说明。在平衡被停用之后,选定行(例如,行X)被启用(例如,例如通过激活一信号以选择特定行来选择,开启),如通过伪码中的“开启行X”指示且在图6A中针对信号行X的t2处展示。当施加到行X的电压信号达到对应于选定单元的存取晶体管(例如,202-4)的阈值电压(Vt)时,所述存取晶体管接通且将数据线(例如,205-2(D_))耦合到选定单元(例如,耦合到电容器203-4),此在数据线之间形成差分电压信号。
在行X被启用之后,在上文的伪码中,“激发感测放大器”指示感测放大器206-2经启用以设定初级锁存器(如本文中已描述)且随后被停用。举例来说,如图6A中的t3处所展示,ACT正控制信号(例如,图2B中所展示的265)变高且RnIF负控制信号(例如,图2B中所展示的228)变低,此将205-1(D)与205-2(D_)之间的差分信号放大,从而产生处于数据线205-1(D)上的对应于逻辑1的电压(例如,VDD)或对应于逻辑0的电压(例如,GND)。对应于另一逻辑的电压置于互补数据线205-2(D_)上。所感测数据值被存储于感测放大器206-2的初级锁存器中。在将数据线(例如,205-1(D)或205-2(D_))从平衡电压VDD/2充电到轨电压VDD时发生初级能量消耗。
图6A中所图解说明的四组可能的感测放大器及累加器信号(例如,行X及行Y数据值的每一组合一组感测放大器及累加器信号)展示数据线D及D_上的信号的行为。行X数据值经存储于感测放大器的初级锁存器中。应注意,图2A展示包含存储元素203-4、对应于行X的存储器单元耦合到互补数据线D_,而包含存储元素203-3、对应于行Y的存储器单元耦合到数据线D。然而,如在图2A中可见,存储于存储器单元201-4(对应于行X)中对应于“0”数据值的电荷致使数据线D_(存储器单元201-4耦合到所述数据线D_)上的电压变高且存储于存储器单元201-4中对应于“1”数据值的电荷致使数据线D_上的电压变低,此是数据状态与存储于耦合到数据线D的存储器单元201-4(对应于行Y)中的电荷之间的相反对应。在将数据值写入到相应存储器单元时适当地考虑到将电荷存储于耦合到不同数据线的存储器单元中的这些不同。
在激发感测放大器之后,在上文的伪码中,“激活LOAD”指示LOAD控制信号变高(如在图6A中的t4处所展示),从而致使负载/通过晶体管218-1及218-2导通。以此方式,激活LOAD控制信号启用计算组件231-2的累加器中的次级锁存器。存储于感测放大器206-2中的所感测数据值经传送(例如,经拷贝)到次级锁存器。如针对图6A中所图解说明的四组可能的感测放大器及累加器信号中的每一个所展示,累加器的次级锁存器的输入处的行为指示次级锁存器加载有行X数据值。如图6A中所展示,取决于先前存储于动态锁存器中的数据值,累加器的次级锁存器可翻转(例如,参见行X=“0”且行Y=“0”以及行X=“1”且行Y=“0”的累加器信号),或不翻转(例如,参见行X=“0”且行Y=“1”以及行X=“1”且行Y=“1”的累加器信号)。
在依据存储于感测放大器中(且存在于图2A中的数据线205-1(D)及205-2(D_)上)的数据值设定次级锁存器之后,在上文的伪码中,“将LOAD撤销激活”指示LOAD控制信号变回为低(如图6A中的t5处所展示)以致使负载/通过晶体管218-1及218-2停止导通且借此将动态锁存器与互补数据线隔离。然而,数据值保持动态地存储于累加器的次级锁存器中。
在将数据值存储于次级锁存器上之后,选定行(例如,行X)被停用(例如,例如通过撤销激活特定行的选择信号来撤销选择,关闭),如通过“关闭行X”指示且在图6A中的t6处指示,此可通过存取晶体管关断以将选定单元与对应数据线解耦合来达成。一旦关闭选定行且将存储器单元与数据线隔离,数据线便可经预充电,如通过上文的伪码中的“预充电”所指示。可通过平衡运算达成数据线的预充电,如在图6A中通过EQ信号在t7处变高所指示。如在图6A中的t7处所图解说明的四组可能的感测放大器及累加器信号中的每一个所展示,平衡运算致使数据线D及D_上的电压各自返回到VDD/2。平衡可(举例来说)在存储器单元感测运算或逻辑运算(下文所描述)之前发生。
与对第一数据值(现在存储于图2A中所展示的感测放大器206-2及计算组件231-2的次级锁存器中)及第二数据值(存储于耦合到行Y 204-Y的存储器单元201-3中)执行AND或OR运算相关联的后续运算阶段包含执行特定步骤,所述特定步骤取决于将执行AND还是OR。下文概述与对驻存于累加器中的数据值(例如,存储于耦合到行X 204-X的存储器单元201-4中的第一数据值)及第二数据值(例如,存储于耦合到行Y 204-Y的存储器单元201-3中的数据值)进行“AND运算”及“OR运算”相关联的伪码的实例。与对数据值进行“AND运算”相关联的实例性伪码可包含:
将EQ撤销激活
开启行Y
激发感测放大器(在此之后行Y数据驻存于感测放大器中)
关闭行Y
在下一运算中,逻辑运算的结果将置于感测放大器上,此将重写是有效的任何行。
甚至在行Y被关闭时,感测放大器仍含有行Y数据值。
激活AND
此致使感测放大器被写入为函数的值(例如,行X AND行Y)
如果累加器含有“0”(即,电压在节点S2上对应于“0”及电压在节点S1上对应于“1”),那么感测放大器数据被写入为“0”
如果累加器含有“1”(即,电压在节点S2上对应于“1”及电压在节点S1上对应于“0”),那么感测放大器数据保持未改变(行Y数据)
此运算使累加器中的数据未改变。
将AND撤销激活
预充电
在上文的伪码中,“将EQ撤销激活”指示对应于感测放大器206-2的平衡信号被停用(例如,使得互补数据线205-1(D)及205-2(D_)不再短接到VDD/2),此在图6A中的t8处图解说明。在平衡被停用之后,选定行(例如,行Y)被启用,如在上文的伪码中通过“开启行Y”指示且在图6A中的t9处展示。当施加到行Y的电压信号达到对应于选定单元的存取晶体管(例如,202-3)的阈值电压(Vt)时,存取晶体管接通且将数据线(例如,D_205-2)耦合到选定单元(例如,耦合到电容器203-3),此在数据线之间形成差分电压信号。
在行Y被启用之后,在上文的伪码中,“激发感测放大器”指示感测放大器206-2经启用以将205-1(D)与205-2(D_)之间的差分信号放大,从而产生处于数据线205-1(D)上的对应于逻辑1的电压(例如,VDD)或对应于逻辑0的电压(例如,GND)。对应于另一逻辑状态的电压处于互补数据线205-2(D_)上。如在图6A中的t10处所展示,ACT正控制信号(例如,图2B中所展示的265)变高且RnIF负控制信号(例如,图2B中所展示的228)变低以激发感测放大器。来自存储器单元201-3的所感测数据值被存储于感测放大器206-2的初级锁存器中,如先前所描述。由于动态锁存器未改变,因此次级锁存器仍对应于来自存储器单元201-4的数据值。
在从耦合到行Y的存储器单元201-3感测的第二数据值被存储于感测放大器206-2的初级锁存器中之后,在上文的伪码中,“关闭行Y”指示如果不期望将AND逻辑运算的结果存储回对应于行Y的存储器单元中,那么选定行(例如,行Y)可被停用。然而,图6A展示行Y保持启用,使得逻辑运算的结果可存储回于对应于行Y的存储器单元中。可通过存取晶体管关断以将选定单元201-3与数据线205-1(D)解耦合来达成隔离对应于行Y的存储器单元。
在选定行Y经配置(例如,以隔离存储器单元或不隔离存储器单元)之后,上文的伪码中的“激活AND”指示AND控制信号变高(如图6A中的t11处所展示),从而致使通过晶体管207-1导通。以此方式,激活AND控制信号致使函数值(例如,行X AND行Y)被写入到感测放大器。
在第一数据值(例如,行X)存储于累加器231-2的动态锁存器中且第二数据值(例如,行Y)存储于感测放大器206-2中的情况下,如果计算组件231-2的动态锁存器含有“0”(即,电压在节点S2上对应于“0”及电压在节点S1上对应于“1”),那么感测放大器数据被写入为“0”(不管先前存储于感测放大器中的数据值为何)。因为节点S1上对应于“1”的电压致使晶体管209-1导通,借此通过晶体管209-1、通过晶体管207-1及数据线205-1(D)将感测放大器206-2耦合到接地。当AND运算的任一数据值是“0”时,结果是“0”。此处,当第二数据值(处于动态锁存器中)是“0”时,AND运算的结果是“0”,不管第一数据值的状态为何。因此,感测电路的配置致使“0”结果写入且最初存储于感测放大器206-2中。此运算使累加器中的数据值未改变(例如,来自行X)。
如果累加器的次级锁存器含有“1”(例如,来自行X),那么AND运算的结果取决于存储于感测放大器206-2中的数据值(例如,来自行Y)。如果存储于感测放大器206-2中的数据值(例如,来自行Y)是“1”,那么AND运算的结果也应是“1”,但如果存储于感测放大器206-2中的数据值(例如,来自行Y)是“0”,那么AND运算的结果应是“0”。感测电路250-2经配置使得如果累加器的动态锁存器含有“1”(即,电压在节点S2上对应于“1”及电压在节点S1上对应于“0”),那么晶体管209-1不导通,感测放大器不耦合到接地(如上文所描述),且先前存储于感测放大器206-2中的数据值保持未改变(例如,行Y数据值,因此如果行Y数据值是“1”,那么AND运算结果是“1”,且如果行Y数据值是“0”,那么AND运算结果是“0”)。此运算使累加器中的数据值未改变(例如,来自行X)。
在最初将AND运算的结果存储于感测放大器206-2中之后,上文的伪码中的“将AND撤销激活”指示AND控制信号变低(如在图6A中的t12处所展示),致使通过晶体管207-1停止导通以将感测放大器206-2(及数据线205-1(D))与接地隔离。如果未进行先前操作,那么行Y可被关闭(如在图6A中的t13处所展示)且感测放大器可被停用(如在图6A中的t14处通过ACT正控制信号变低且RnIF负控制信号变高所展示)。在数据线被隔离的情况下,上文的伪码中的“预充电”可致使通过平衡运算进行数据线的预充电,如先前所描述(例如,在图6A中所展示的t14处开始)。
图6A在替代方案中针对涉及操作数(例如,行X/行Y数据值00、10、01及11)的可能组合中的每一个的AND逻辑运算展示耦合到感测放大器(例如,图2A中所展示的206-2)的数据线(例如,图2A中所展示的205-1(D)及205-2(D_))上的电压信号的行为,及计算组件(例如,图2A中所展示的231-2)的次级锁存器的节点S1及S1上的电压信号的行为。
尽管图6A中所图解说明的时序图及上文所描述的伪码指示在开始将第二操作数(例如,行Y数据值)加载到感测放大器中之后起始AND逻辑运算,但可通过在开始将第二操作数(例如,行Y数据值)加载到感测放大器中之前起始AND逻辑运算而成功地操作图2A中所展示的电路。
图6B图解说明根据本发明的若干个实施例的与使用感测电路执行若干个逻辑运算相关联的时序图。图6B图解说明与在开始将第二操作数(例如,行Y数据值)加载到感测放大器中之后起始OR逻辑运算相关联的时序图。图6B图解说明针对第一及第二操作数数据值的各种组合的感测放大器及累加器信号。下文论述关于与图2A中所展示的电路的AND逻辑运算相关联的伪码的特定时序图信号。
后续运算阶段可与对第一数据值(现在存储于感测放大器206-2及计算组件231-2的次级锁存器中)及第二数据值(存储于耦合到行Y 204-Y的存储器单元201-3中)执行OR运算交替地相关联。关于图6B不重复先前关于图6A中所展示的时间t1到t7所描述的将行X数据加载到感测放大器及累加器中的运算。与对数据值进行“OR运算”相关联的实例性伪码可包含:
将EQ撤销激活
开启行Y
激发感测放大器(在此之后行Y数据驻存于感测放大器中)
关闭行Y
当行Y被关闭时,感测放大器仍含有行Y数据值。
激活OR
此致使感测放大器被写入为函数的值(例如,行X OR行Y),此可将先前存储于感测放大器中的来自行Y的数据值重写如下:
如果累加器含有“0”(即,电压在节点S2上对应于“0”及电压在节点S1上对应于“1”),那么感测放大器数据保持未改变(行Y数据)
如果累加器含有“1”(即,电压在节点S2上对应于“1”及电压在节点S1上对应于“0”),那么感测放大器数据被写入为“1”
此运算使累加器中的数据未改变。
将OR撤销激活
预充电
在上文的伪码中所展示的“将EQ撤销激活”(图6B中的t8处所展示),“开启行Y”(图6B中的t9处所展示),“激发感测放大器”(图6B中的t10处所展示)及“关闭行Y”(图6B中的t13处所展示,且此可在起始特定逻辑功能控制信号之前发生)指示与先前关于AND运算伪码所描述相同的功能性。一旦选定行Y的配置经适当地配置(例如,如果将把逻辑运算结果存储于对应于行Y的存储器单元中,那么被启用,或如果不把逻辑运算结果存储于对应于行Y的存储器单元中,那么被关闭以隔离存储器单元),上文的伪码中的“激活OR”便指示OR控制信号变高(如图6B中的t11处所展示),此致使通过晶体管207-2导通。以此方式,激活OR控制信号致使函数的值(例如,行X OR行Y)被写入到感测放大器。
在第一数据值(例如,行X)存储于计算组件231-2的次级锁存器中且第二数据值(例如,行Y)存储于感测放大器206-2中的情况下,如果累加器的动态锁存器含有“0”(即,电压在节点S2上对应于“0”及电压在节点S1上对应于“1”),那么OR运算的结果取决于存储于感测放大器206-2中的数据值(例如,来自行Y)。如果存储于感测放大器206-2中的数据值(例如,来自行Y)是“1”,那么OR运算的结果应是“1”,但如果存储于感测放大器206-2中的数据值(例如,来自行Y)是“0”,那么OR运算的结果也应是“0”。感测电路250-2经配置使得:如果累加器的动态锁存器含有“0”(其中电压在节点S2上对应于“0”),那么晶体管209-2关断且不导通(且通过晶体管207-1也关断,这是因为AND控制信号未经断言),因此感测放大器206-2不耦合到接地(任一侧),且先前存储于感测放大器206-2中的数据值保持未改变(例如,行Y数据值,使得如果行Y数据值是“1”,那么OR运算结果是“1”,且如果行Y数据值是“0”,那么OR运算结果是“0”)。
如果累加器的动态锁存器含有“1”(即,电压在节点S2上对应于“1”及电压在节点S1上对应于“0”),那么晶体管209-2确实导通(通过晶体管207-2同样导通,这是因为OR控制信号被断言),且耦合到数据线205-2(D_)的感测放大器206-2输入耦合到接地,这是因为在节点S2上对应于“1”的电压致使晶体管209-2连同通过晶体管207-2(其也导通,这是因为OR控制信号经断言)导通。以此方式,当累加器的次级锁存器含有“1”时,“1”作为OR运算的结果被最初存储于感测放大器206-2中而不管先前存储于感测放大器中的数据值为何。此运算使累加器中的数据未改变。图6B在替代方案中针对涉及操作数(例如,行X/行Y数据值00、10、01及11)的可能组合中的每一个的OR逻辑运算展示耦合到感测放大器(例如,图2A中所展示的206-2)的数据线(例如,图2A中所展示的205-1(D)及205-2(D_))上的电压信号的行为,及计算组件231-2的次级锁存器的节点S1及S2上的电压信号的行为。
在最初将OR运算的结果存储于感测放大器206-2中之后,上文的伪码中的“将OR撤销激活”指示OR控制信号变低(如在图6B中的t12处所展示),致使通过晶体管207-2停止导通以将感测放大器206-2(及数据线D 205-2)与接地隔离。如果未进行先前操作,那么行Y可被关闭(如在图6B中的t13处所展示)且感测放大器可被停用(如在图4中的t14处通过ACT正控制信号变低且RnIF负控制信号变高所展示)。在数据线被隔离的情况下,上文的伪码中的“预充电”可致使通过平衡运算进行数据线的预充电,如先前所描述且在图6B中的t14处所展示。
图2A中所图解说明的感测电路250-2可提供如下额外逻辑运算灵活性。通过在上文所描述的AND及OR运算中用ANDinv控制信号的运算替代AND控制信号的运算,及/或用ORinv控制信号的运算替代OR控制信号的运算,逻辑运算可从{行X AND行Y}改变到{~行XAND行Y}(其中“~行X”指示行X数据值的相反数,例如,NOT行X)且可从{行X OR行Y}改变到{~行X OR行Y}。举例来说,在涉及经反相数据值的AND运算期间,可替代AND控制信号断言ANDinv控制信号,且在涉及经反相数据值的OR运算期间,可替代OR控制信号断言ORInv控制信号。激活ORinv控制信号致使晶体管214-2导通且激活ANDinv控制信号致使晶体管214-1导通。在每一情形中,断言适当经反相控制信号可使感测放大器翻转且致使最初存储于感测放大器206-2中的结果变成使用经反相行X及真行Y数据值的AND运算的结果或使用经反相行X及真行Y数据值的OR运算的结果。可(举例来说)通过首先加载将被反相的数据值且其次加载将不被反相的数据值而在累加器中使用一个数据值的真或补数版本来执行逻辑运算(例如,AND、OR)。
在类似于上文关于反相上文所描述的AND及OR运算的数据值所描述的方法的方法中,图2A中所展示的感测电路可通过将非反相数据值放到累加器的动态锁存器中且使用所述数据来反相感测放大器206-2中的数据值执行NOT(例如,反相)运算。如先前所提及,激活ORinv控制信号致使晶体管214-2导通且激活ANDinv控制信号致使晶体管214-1导通。在实施NOT函数时使用ORinv及/或ANDinv控制信号,如在下文伪码中所描述:
将行X拷贝到累加器中
将EQ撤销激活
开启行X
激发感测放大器(在此之后行X数据驻存于感测放大器中)
激活LOAD(感测放大器数据(行X)经传送到累加器的节点S1及S2且动态地驻存在那里)
将LOAD撤销激活
激活ANDinv及ORinv(此将补数数据值放在数据线上)
此致使感测放大器中的数据值被反相(例如,感测放大器锁存器被翻转)
此运算使累加器中的数据未改变
将ANDinv及ORinv撤销激活
关闭行X
预充电
在上文的伪码中所展示的“将EQ撤销激活”、“开启行X”、“激发感测放大器”、“激活LOAD”及“将LOAD撤销激活”将相同功能性指示为在用于“将行X拷贝到累加器中”初始运算阶段(上文针对AND运算及OR运算所描述)的伪码中的相同运算。然而,并非是在行X数据经加载到感测放大器206-2中且经拷贝到动态锁存器中之后关闭行X且预充电,累加器的动态锁存器中的数据值的补数版本可置于数据线上且因此经传送到感测放大器206-2。这是通过启用(例如,致使晶体管导通)并停用反相晶体管(例如,ANDinv及ORinv)来进行。此致使感测放大器206-2从先前存储于感测放大器中的真数据值翻转到存储于感测放大器中的补数数据值(例如,经反相数据值)。由此,累加器中的数据值的真或补数版本可基于激活或不激活ANDinv及/或ORinv而传送到感测放大器。此运算使累加器中的数据未改变。
由于图2A中所展示的感测电路250-2最初将AND、OR及/或NOT逻辑运算的结果存储于感测放大器206-2中(例如,存储于感测放大器节点上),因此这些逻辑运算结果可容易且迅速地传达到任一经启用行(在逻辑运算完成之后被激活的任一行),及/或传达到计算组件231-2的次级锁存器中。也可通过在感测放大器206-2激发之前适当地激发AND、OR、ANDinv及/或ORinv控制信号(以及具有耦合到特定控制信号的栅极的对应晶体管的运算)来互换感测放大器206-2以及对AND、OR及/或NOT逻辑运算的定序。
当以此方式执行逻辑运算时,感测放大器206-2可从累加器的动态锁存器预种有数据值以减少所利用的总体电流,这是因为当将累加器功能拷贝到感测放大器206-2时,感测放大器206-2并非处于全轨电压(例如,供应电压或接地/参考电压)。借助经预种感测放大器206-2的运算序列将数据线中的一个驱迫为参考电压(在VDD/2处离开互补数据线),或使互补数据线未改变。当感测放大器206-2激发时,感测放大器206-2将相应数据线拉动到全轨。使用此运算序列将重写经启用行中的数据。
可通过使用DRAM隔离(ISO)方案多路复用(“多路复用传输”)两个邻近数据线互补对来达成SHIFT运算。根据本发明的实施例,移位电路223可用于将存储于通过一对特定互补数据线耦合的存储器单元中的数据值移位到对应于一对不同互补数据线的感测电路250-2(例如,感测放大器206-2)(例如,例如对应于左或右邻近互补数据线对的感测放大器206-2)。如本文中所使用,当隔离晶体管221-1及221-2正导通时,感测放大器206-2对应于所述感测放大器耦合到的所述对互补数据线。SHIFT运算(右或左)不将行X数据值预拷贝到累加器中。可通过以下跟随的伪码概述用以将行X向右移位的运算:
将Norm撤销激活且激活Shift
将EQ撤销激活
开启行X
激发感测放大器(在此之后经移位行X数据驻存于感测放大器中)
激活Norm且将Shift撤销激活
关闭行X
预充电
在上文的伪码中,“将Norm撤销激活且激活Shift”指示NORM控制信号变低,致使移位电路223的隔离晶体管221-1及221-2不导通(例如,将感测放大器与对应对互补数据线隔离)。SHIFT控制信号变高,致使隔离晶体管221-3及221-4导通,借此将感测放大器206-3耦合到左邻近互补数据线对(例如,针对左邻近互补数据线对在非导通隔离晶体管221-1及221-2的存储器阵列侧上)。
在移位电路223经配置之后,在上文的伪码中所展示的“将EQ撤销激活”、“开启行X”及“激发感测放大器”将相同功能性指示为在用于“将行X拷贝到累加器中”初始运算阶段(上文在用于AND运算及OR运算的伪码之前描述)的伪码中的相同运算。在这些运算之后,针对耦合到左邻近互补数据线对的存储器单元的行X数据值向右移位且存储于感测放大器206-3中。
在上文的伪码中,“激活Norm且将Shift撤销激活”指示NORM控制信号变高,致使移位电路223的隔离晶体管221-1及221-2导通(例如,将感测放大器耦合到对应对互补数据线),且SHIFT控制信号变低,致使隔离晶体管221-3及221-4不导通且将感测放大器206-3与左邻近互补数据线对隔离(例如,在左邻近互补数据线对的非导通隔离晶体管221-1及221-2的存储器阵列侧上)。由于行X仍是有效的,因此已向右移位的行X数据值通过隔离晶体管221-1及221-2而传送到所述对应互补数据线对的行X。
在行X数据值向右移位到所述对应互补数据线对之后,选定行(例如,行X)被停用,如通过上文的伪码中的“关闭行X”所指示,此可通过存取晶体管关断以将选定单元与对应数据线解耦合来达成。一旦关闭选定行且将存储器单元与数据线隔离,数据线便可经预充电,如通过上文的伪码中的“预充电”所指示。可通过平衡运算达成数据线的预充电,如上文所描述。
用以将行X向左移位的运算可概述如下:
激活Norm且将Shift撤销激活
将EQ撤销激活
开启行X
激发感测放大器(在此之后行X数据驻存于感测放大器中)
将Norm撤销激活且激活Shift
感测放大器数据(经向左移位的行X)经传送到行X
关闭行X
预充电
在上文的伪码中,“激活Norm且将Shift撤销激活”指示NORM控制信号变高,致使移位电路223的隔离晶体管221-1及221-2导通,且SHIFT控制信号变低,致使隔离晶体管221-3及221-4不导通。此配置将感测放大器206-2耦合到一对对应互补数据线且将感测放大器与右邻近互补数据线对隔离。
在移位电路经配置之后,在上文的伪码中所展示的“将EQ撤销激活”、“开启行X”及“激发感测放大器”将相同功能性指示为在用于“将行X拷贝到累加器中”初始运算阶段(上文在用于AND运算及OR运算的伪码之前描述)的伪码中的相同运算。在这些运算之后,针对耦合到所述对互补数据线(对应于感测电路250-2)的存储器单元的行X数据值被存储于感测放大器206-2中。
在上文的伪码中,“将Norm撤销激活且激活Shift”指示NORM控制信号变低,致使移位电路223的隔离晶体管221-1及221-2不导通(例如,将感测放大器与所述对应互补数据线对隔离),且SHIFT控制信号变高,致使隔离晶体管221-3及221-4导通,从而将感测放大器耦合到左邻近互补数据线对(例如,针对左邻近互补数据线对在非导通隔离晶体管221-1及221-2的存储器阵列侧上)。由于行X仍是有效的,因此已向左移位的行X数据值经传送到左邻近互补数据线对的行X。
在行X数据值向左移位到左邻近互补数据线对之后,选定行(例如,行X)被停用,如通过“关闭行X”所指示,此可通过存取晶体管关断以将选定单元与对应数据线解耦合来达成。一旦关闭选定行且将存储器单元与数据线隔离,数据线便可经预充电,如通过上文的伪码中的“预充电”所指示。可通过平衡运算达成数据线的预充电,如上文所描述。
图7是图解说明根据本发明的若干个实施例的具有可选择逻辑运算选择逻辑的感测电路的示意图。图7展示耦合到相应互补感测线对705-1及705-2的若干个感测放大器706,及经由通过门707-1及707-2耦合到感测放大器706的对应数目个计算组件731(其可对应于图2A中的感测放大器206、感测线205-1及205-2、经由通过门207-1及207-2耦合到感测放大器206的计算组件231)。通过门707-1及707-2的栅极可由逻辑运算选择逻辑信号PASS控制。举例来说,逻辑运算选择逻辑713-6的输出可耦合到通过门707-1及707-2的栅极。
根据图7中所图解说明的实施例,计算组件731可包括经配置以向左及向右移位数据值的可加载移位寄存器的相应级(例如,移位单元)。举例来说,如在图7中所图解说明,移位寄存器的每计算组件731(例如,级)包括一对右移位晶体管781及786、一对左移位晶体管789及790以及一对反相器787及788。信号PHASE 1R、PHASE 2R、PHASE1L及PHASE 2L可施加到相应控制线782、783、791及792以根据本文中所描述的实施例启用/停用与执行逻辑运算及/或将数据移位相关联的对应计算组件731的锁存器上的反馈。下文关于图9及10进一步描述将数据移位(例如,从特定计算组件731到邻近计算组件731)的实例。
逻辑运算选择逻辑713-6包含交换门742,以及用以控制通过门707-1及707-2以及交换门742的逻辑。逻辑运算选择逻辑713-6包含四个逻辑选择晶体管:逻辑选择晶体管762,其耦合于交换晶体管742的栅极与TF信号控制线之间;逻辑选择晶体管752,其耦合于通过门707-1及707-2的栅极与TT信号控制线之间;逻辑选择晶体管754,其耦合于通过门707-1及707-2的栅极与FT信号控制线之间;及逻辑选择晶体管764,其耦合于交换晶体管742的栅极与FF信号控制线之间。逻辑选择晶体管762及752的栅极通过隔离晶体管750-1(具有耦合到ISO信号控制线的栅极)耦合到真实感测线。逻辑选择晶体管764及754的栅极通过隔离晶体管750-2(也具有耦合到ISO信号控制线的栅极)耦合到互补感测线。图9及10图解说明与使用图7中所展示的感测电路执行逻辑运算及移位运算相关联的时序图。
图8是图解说明根据本发明的若干个实施例的通过感测电路(例如,图7中所展示的感测电路750)实施的可选择逻辑运算结果的逻辑表。四个逻辑选择控制信号(例如,TF、TT、FT及FF)联合互补感测线上所存在的特定数据值可用于选择多个逻辑运算中的一个来实施,所述多个逻辑运算涉及存储于感测放大器706及计算组件731中的开始数据值。四个控制信号(例如,TF、TT、FT及FF)联合互补感测线上(例如,节点S及S*上)所存在的特定数据值控制通过门707-1及707-2以及交换晶体管742,此又影响激发之前/之后的计算组件731及/或感测放大器706中的数据值。可选择地控制交换晶体管742的能力促进实施尤其涉及逆数据值(例如,逆操作数及/或逆结果)的逻辑运算。
类似于图10中所图解说明的逻辑表,图8中所图解说明的逻辑表8-1展示存储于计算组件731中的开始数据值(在844处的列A中展示),及存储于感测放大器706中的开始数据值(在845处的列B中展示)。逻辑表8-1中的其它3列标头是指通过门707-1及707-2以及交换晶体管742的状态,其可在ISO控制信号被断言时,取决于四个逻辑选择控制信号(例如,TF、TT、FT及FF)联合所述对互补感测线705-1及705-2上所存在的特定数据值的状态而分别控制为开启或关闭。“未开启(NOT OPEN)”列856对应于通过门707-1及707-2以及交换晶体管742两者均处于非导通条件中,“开启真实(OPEN TRUE)”列870对应于通过门707-1及707-2处于导通条件中,且“开启反相(OPEN INVERT)”列871对应于交换晶体管742处于导通条件中。逻辑表8-1中不反映对应于通过门707-1及707-2以及交换晶体管742两者均处于导通条件中的配置,这是因为此导致感测线被短接在一起。
经由通过门707-1及707-2以及交换晶体管742的选择性控制,逻辑表8-1的上部部分的三个列中的每一个可与逻辑表8-1的下部部分的三个列中的每一个组合以提供对应于九个不同逻辑运算的九个(例如,3x 3)不同结果组合,如通过在875处所展示的各种连接路径所指示。在逻辑表8-2中概述可通过感测电路750实施的九个不同可选择逻辑运算。
逻辑表8-2的列展示包含逻辑选择控制信号(例如,FF、FT、TF、TT)的状态的标头880。举例来说,在行876中提供第逻辑选择控制信号(例如,FF)的状态,在行877中提供第二逻辑选择控制信号(例如,FT)的状态,在行878中提供第三逻辑选择控制信号(例如,TF)的状态,且在行879中提供第四逻辑选择控制信号(例如,TT)的状态。在行847中概述对应于结果的特定逻辑运算。
图9图解说明根据本发明的若干个实施例的与使用感测电路执行逻辑AND运算及移位运算相关联的时序图。图9包含对应于以下信号的波形:EQ、ROW X、ROW Y、SENSE AMP、TF、TT、FT、FF、PHASE 1R、PHASE 2R、PHASE 1L、PHASE 2L、ISO、Pass、Pass*、DIGIT及DIGIT_。EQ信号对应于与感测放大器相关联的平衡信号(例如,图2中所展示的EQ 226)。行X及行Y信号对应于施加到相应存取线(例如,图2中所展示的存取线204-X及204-Y)以存取选定单元(或单元的行)的信号。SENSE AMP信号对应于用以启用/停用感测放大器(例如,感测放大器706)的信号。TF、TT、FT及FF信号对应于逻辑选择控制信号(例如图7中所展示的逻辑选择控制信号)(例如,耦合到逻辑选择晶体管762、752、754及764的信号)。PHASE 1R、PHASE 2R、PHASE 1L及PHASE2L信号对应于提供到图7中所展示的相应控制线782、783、791及792的控制信号(例如,时钟信号)。ISO信号对应于耦合到图7中所展示的隔离晶体管750-1及750-2的栅极的信号。PASS信号对应于耦合到图7中所展示的通过晶体管707-1及707-2的栅极的信号,且PASS*信号对应于耦合到交换晶体管742的栅极的信号。DIGIT及DIGIT_信号对应于相应感测线705-1(例如,DIGIT(n))及705-2(例如,DIGIT(n)_)上所存在的信号。
图9中所展示的时序图与对存储于阵列的第一存储器单元中的数据值及存储于第二存储器单元中的数据值执行逻辑AND运算相关联。存储器单元可对应于阵列的特定列(例如,包括互补的对感测线的列)且可耦合到相应存取线(例如,行X及行Y)。在描述图9中所展示的逻辑AND运算时,将参考图7中所描述的感测电路。举例来说,图9中所描述的逻辑运算可包含:将行X存储器单元的数据值(例如,“行X数据值”)存储于可称为累加器731的对应计算组件731的锁存器中(例如,“A”数据值),将行Y存储器单元的数据值(例如,“行Y数据值”)存储于对应感测放大器706的锁存器中(例如,“B”数据值),以及对行X数据值及行Y数据值执行选定逻辑运算(例如,在此实例中是逻辑AND运算),其中选定逻辑运算的结果被存储于计算组件731的锁存器中。
如图9中所展示,在时间T1处,感测放大器706的平衡被停用(例如,EQ变低)。在时间T2处,行X变高以存取(例如,选择)行X存储器单元。在时间T3处,感测放大器706被启用(例如,SENSE AMP变高),此响应于行X数据值(例如,如通过DIGIT及DIGIT_信号所展示)将互补感测线705-1及705-2驱动到适当轨电压(例如,VDD及GND),且行X数据值被锁存于感测放大器706中。在时间T4处,PHASE 2R及PHASE 2L信号变低,此停用计算组件731的锁存器上的反馈(例如,通过分别关断晶体管786及790),使得可在逻辑运算期间重写存储于计算组件中的值。并且,在时间T4处,ISO变低,此停用隔离晶体管750-1及750-2。在时间T5处,TT及FT被启用(例如,变高),此致使PASS变高(例如,由于晶体管752或754将取决于在ISO于时间T4处被停用时节点ST2或节点SF2中的哪一节点是高的而导通(回想当ISO被停用时,节点ST2及SF2的电压动态地驻存于相应启用晶体管752及754的栅极上))。PASS变高启用通过晶体管707-1及707-2,使得对应于行X数据值的DIGIT及DIGIT_信号经提供到相应计算组件节点ST2及SF2。在时间T6处,TT及FT被停用,此致使PASS变低,此停用通过晶体管707-1及707-2。注意,由于TF及FF信号保持低,因此PASS*在时间T5与T6之间保持低。在时间T7处,行X被停用,且PHASE 2R、PHASE 2L及ISO被启用。在时间T7处启用PHASE 2R及PHASE 2L启用计算组件731的锁存器上的反馈,使得行X数据值被锁存于所述锁存器中。在时间T7处启用ISO再次将节点ST2及SF2耦合到启用晶体管752、754、762及764的栅极。在时间T8处,平衡被启用(例如,EQ变高,使得DIGIT及DIGIT_经驱动到例如VDD/2的平衡电压)且感测放大器706被停用(例如,SENSE AMP变低)。
在行X数据值被锁存于计算组件731中的情况下,平衡被停用(例如,在时间T9处EQ变低)。在时间T10处,行Y变高以存取(例如,选择)行Y存储器单元。在时间T11处,感测放大器706被启用(例如,SENSE AMP变高),此响应于行Y数据值(例如,如通过DIGIT及DIGIT_信号所展示)将互补感测线705-1及705-2驱动到适当轨电压(例如,VDD及GND),且行Y数据值被锁存于感测放大器706中。在时间T12处,PHASE 2R及PHASE 2L信号变低,此停用计算组件731的锁存器上的反馈(例如,通过分别关断晶体管786及790),使得可在逻辑运算期间重写存储于计算组件中的值。并且,在时间T12处,ISO变低,此停用隔离晶体管750-1及750-2。由于此实例中的所期望逻辑运算是AND运算,因此在时间T13处,TT被启用而TF、FT及FF保持被停用(如在表8-2中所展示,FF=0、FT=0、TF=0且TT=1对应于逻辑AND运算)。启用TT是否致使PASS变高取决于当ISO在时间T12处被停用时存储于计算组件731中的值。举例来说,如果当ISO被停用时节点ST2是高的,那么启用晶体管752将导通,且如果当ISO在时间T12处被停用时节点ST2是低的,那么启用晶体管将不导通。
在此实例中,如果PASS在时间T13处变高,那么通过晶体管707-1及707-2经启用使得对应于行Y数据值的DIGIT及DIGIT_信号经提供到相应计算组件节点ST2及SF2。由此,可取决于DIGIT及DIGIT_的值(例如,行Y数据值)翻转存储于计算组件731中的值(例如,行X数据值)。在此实例中,如果PASS在时间T13处保持低,那么通过晶体管707-1及707-2不被启用,使得对应于行Y数据值的DIGIT及DIGIT_信号保持与计算组件731的节点ST2及SF2隔离。由此,计算组件中的数据值(例如,行X数据值)将保持相同。
在时间T14处,TT被停用,此致使PASS变(或保持)低,使得通过晶体管707-1及707-2被停用。注意,由于TF及FF信号保持低,因此PASS*在时间T13与T14之间保持低。在时间T15处,行Y被停用,且PHASE 2R、PHASE 2L及ISO被启用。在时间T15处启用PHASE 2R及PHASE 2L启用计算组件731的锁存器上的反馈,使得AND运算的结果(例如,“A”AND“B”)被锁存于所述锁存器中。在时间T15处启用ISO再次将节点ST2及SF2耦合到启用晶体管752、754、762及764的栅极。在时间T16处,平衡被启用(例如,EQ变高,使得DIGIT及DIGIT_经驱动到平衡电压)且感测放大器706被停用(例如,SENSE AMP变低)。
可经由I/O线将AND运算的结果(在此实例中其最初存储于计算组件731中)传送回到存储器阵列(例如,传送回到耦合到行X、行Y的存储器单元,及/或经由互补感测线的不同行)及/或到外部位置(例如,外部处理组件)。
图9也包含(例如,在901处)与将数据移位(例如,从计算组件731到邻近计算组件731)相关联的发信号。图9中所展示的实例图解说明两次左移位,使得对应于列“N”的存储于计算组件中的数据值向左移位到对应于列“N-2”的计算组件。如在时间T16处所展示,PHASE 2R及PHASE 2L被停用,此停用计算组件锁存器上的反馈,如上文所描述。为执行第一左移位,PHASE 1L在时间T17处被启用且在时间T18处被停用。启用PHASE 1L致使晶体管789导通,此致使节点SF1处的数据值向左移动到左邻近计算组件731的节点SF2。随后,PHASE2L在时间T19处被启用且在时间T20处被停用。启用PHASE 2L致使晶体管790导通,此致使来自节点ST1的数据值向左移动到节点ST2,从而完成左移位。
可重复以上顺序(例如,启用/停用PHASE 1L且随后启用/停用PHASE 2L)以达成所期望数目次左移位。举例来说,在此实例中,通过在时间T21处启用PHASE 1L且在时间T22处停用PHASE 1L来执行第二左移位。随后在时间T23处启用PHASE 2L以完成第二左移位。在第二左移位之后,PHASE 2L保持被启用且PHASE 2R被启用(例如,在时间T24处)使得反馈经启用以将数据值锁存于计算组件锁存器中。
图10图解说明根据本发明的若干个实施例的与使用感测电路执行逻辑XOR运算及移位运算相关联的时序图。图10包含上文图9中所描述的相同波形。然而,图10中所展示的时序图与对行X数据值及行Y数据值执行逻辑XOR运算相关联(例如,与逻辑AND运算相反)。将再次参考图7中所描述的感测电路。
在针对图10的时间T0到t9处所指示的发信号与针对图9的相同且此处将不进行重复。由此,在时间T9处,EQ被停用,其中行X数据值被锁存于计算组件731中。在时间T10处,行Y变高以存取(例如,选择)行Y存储器单元。在时间T11处,感测放大器706被启用(例如,SENSEAMP变高),此响应于行Y数据值(例如,如通过DIGIT及DIGIT_信号所展示)将互补感测线705-1及705-2驱动到适当轨电压(例如,VDD及GND),且行Y数据值被锁存于感测放大器706中。在时间T12处,PHASE 2R及PHASE 2L信号变低,此停用计算组件731的锁存器上的反馈(例如,通过分别关断晶体管786及790),使得可在逻辑运算期间重写存储于计算组件731中的值。并且,在时间T12处,ISO变低,此停用隔离晶体管750-1及750-2。由于此实例中的所期望逻辑运算是XOR运算,因此在时间T13处,TF及FT被启用而TT及FF保持被停用(如在表8-2中所展示,FF=0、FT=1、TF=1且TT=0对应于逻辑XOR(例如,“AXB”)运算)。启用TF及FT是否致使PASS或PASS*变高取决于当ISO在时间T12处被停用时存储于计算组件731中的值。举例来说,如果当ISO被停用时节点ST2是高的,那么启用晶体管762将导通,且如果当ISO在时间T12处被停用时节点ST2是低的,那么启用晶体管762将不导通。类似地,如果当ISO被停用时节点SF2是高的,那么启用晶体管754将导通,且如果当ISO被停用时节点SF2是低的,那么启用晶体管754将不导通。
在此实例中,如果PASS在时间T13处变高,那么通过晶体管707-1及707-2经启用使得对应于行Y数据值的DIGIT及DIGIT_信号经提供到相应计算组件节点ST2及SF2。由此,可取决于DIGIT及DIGIT_的值(例如,行Y数据值)翻转存储于计算组件731中的值(例如,行X数据值)。在此实例中,如果PASS在时间T13处保持低,那么通过晶体管707-1及707-2不被启用,使得对应于行Y数据值的DIGIT及DIGIT_信号保持与计算组件731的节点ST2及SF2隔离。由此,计算组件中的数据值(例如,行X数据值)将保持相同。在此实例中,如果PASS*在时间T13处变高,那么交换晶体管742经启用使得以转置方式将对应于行Y数据值的DIGIT及DIGIT_信号提供到相应计算组件节点ST2及SF2(例如,将把DIGIT(n)上的“真”数据值提供到节点SF2且将把DIGIT(n)_上的“互补”数据值提供到节点ST2)。由此,可取决于DIGIT及DIGIT_的值(例如,行Y数据值)翻转存储于计算组件731中的值(例如,行X数据值)。在此实例中,如果PASS*在时间T13处保持低,那么交换晶体管742不被启用,使得对应于行Y数据值的DIGIT及DIGIT_信号保持与计算组件731的节点ST2及SF2隔离。由此,计算组件中的数据值(例如,行X数据值)将保持相同。
在时间T14处,TF及FT被停用,此致使PASS及PASS*变(或保持)低,使得通过晶体管707-1及707-2以及交换晶体管742被停用。在时间T15处,行Y被停用,且PHASE2R、PHASE 2L及ISO被启用。在时间T15处启用PHASE 2R及PHASE 2L启用计算组件731的锁存器上的反馈,使得XOR运算的结果(例如,“A”XOR“B”)被锁存于所述锁存器中。在时间T15处启用ISO再次将节点ST2及SF2耦合到启用晶体管752、754、762及764的栅极。在时间T16处,平衡被启用(例如,EQ变高,使得DIGIT及DIGIT_经驱动到平衡电压)且感测放大器706被停用(例如,SENSE AMP变低)。
可经由I/O线将XOR运算的结果(在此实例中其最初存储于计算组件731中)传送回到存储器阵列(例如,传送回到耦合到行X、行Y的存储器单元,及/或经由互补感测线的不同行)及/或到外部位置(例如,外部处理组件)。
图10也包含(例如,在1001处)与将数据移位(例如,从计算组件731到邻近计算组件731)相关联的发信号。图10中所展示的实例图解说明两次右移位,使得对应于列“N”的存储于计算组件中的数据值向右移位到对应于列“N+2”的计算组件。如在时间T16处所展示,PHASE 2R及PHASE 2L被停用,此停用计算组件锁存器上的反馈,如上文所描述。为执行第一右移位,PHASE 1R在时间T17处被启用且在时间T18处被停用。启用PHASE 1R致使晶体管781导通,此致使节点ST1处的数据值向右移动到右邻近计算组件731的节点ST2。随后,PHASE2R在时间T19处被启用且在时间T20处被停用。启用PHASE 2R致使晶体管786导通,此致使来自节点SF1的数据值向右移动到节点SF2,从而完成右移位。
可重复以上顺序(例如,启用/停用PHASE 1R且随后启用/停用PHASE 2R)以达成所期望数目次右移位。举例来说,在此实例中,通过在时间T21处启用PHASE 1R且在时间T22处停用PHASE 1R来执行第二右移位。随后在时间T23处启用PHASE 2R以完成第二右移位。在第二右移位之后,PHASE 1R保持被停用,PHASE 2R保持被启用且PHASE 2L被启用(例如,在时间T24处)使得反馈经启用以将数据值锁存于计算组件锁存器中。
尽管图9及10中所描述的实例包含逻辑运算结果被存储于计算组件(例如,731)中,但根据本文中所描述的实施例的感测电路可经操作以执行逻辑运算,使结果最初存储于感测放大器中(例如,如图8中所图解说明)。并且,实施例并不限于分别在图9及10中所描述的“AND”及“XOR”逻辑运算实例。举例来说,根据本发明的实施例的感测电路(例如,图7中所展示的750)可经控制以执行各种其它逻辑运算(例如在表8-2中所展示的逻辑运算)。
根据各种实施例,可在存储器中处理器(PIM)装置的存储器阵列核心(例如(举例来说)以6F^2或4F^2存储器单元大小的每存储器单元一个晶体管(例如,1T1C)配置的DRAM)中达成一般计算。本文中所描述的设备及方法的优点并不就单指令速度来说来实现,而是就可通过并行计算整个数据库而从未将数据传送出存储器阵列(例如,DRAM)或激发列解码而达成的累加速度来说来实现。换句话说,可消除数据传送时间。举例来说,本发明的设备可使用耦合到数据线(例如,16K存储器单元的列)的存储器单元中的数据值并行(例如,同时)执行AND或OR。
与本发明的设备相比,在其中将数据移出以供逻辑运算处理(例如,使用32或64位寄存器)的先前方法感测电路中可并行执行更少运算。以此方式,相比于常规配置(涉及相对于存储器离散的隔开一定间距的处理单元使得数据必须被传送于存储器与处理单元之间),有效地提供显著更高吞吐量。根据本发明的设备及/或若干方法也可比其中逻辑运算从存储器离散的配置使用更少能量/面积。此外,本发明的设备及/或若干方法可由于存储器阵列内逻辑运算消除特定数据值传送而提供额外能量/面积优点。

Claims (30)

1.一种方法,其包括:
对第一元素执行移位运算,所述第一元素存储于耦合到存储器阵列的第一存取线及若干个感测线的第一存储器单元群组中,
其中所述移位运算包含在不经由输入/输出I/O线传送数据的情况下将所述第一元素移位由第二元素定义的数目个位位置,其中所述第二元素存储于耦合到所述存储器阵列的第二存取线及所述若干个感测线的第二存储器单元群组中。
2.根据权利要求1所述的方法,其中执行所述移位运算包括在不进行感测线地址存取的情况下执行若干个AND运算、OR运算、SHIFT运算及INVERT运算。
3.根据权利要求1到2中任一权利要求所述的方法,其进一步包括将所述移位运算的结果存储于耦合到第三存取线的第三存储器单元群组中。
4.根据权利要求3所述的方法,其中将所述移位运算的所述结果存储于耦合到所述第一存取线的所述第一存储器单元群组及耦合到所述第二存取线的所述第二存储器单元群组中的至少一个中。
5.根据权利要求1所述的方法,其中使用耦合到若干列互补感测线中的每一列互补感测线的感测电路来执行所述若干个运算。
6.根据权利要求1所述的方法,其中所述第一存储器单元群组中的每一存储器单元存储所述第一元素的相应位。
7.根据权利要求5到6中任一权利要求所述的方法,其中所述第二存储器单元群组中的每一存储器单元存储所述第二元素的相应位。
8.根据权利要求1所述的方法,其中所述第二元素定义将存储所述第一元素的所述第一存储器单元群组内的若干个位移位的位位置的数目。
9.一种设备,其包括:
第一存储器单元群组,其耦合到第一存取线且经配置以存储表示第一元素的第一数目个位;
第二存储器单元群组,其耦合到所述第一存取线且经配置以存储表示第二元素的第二数目个位;
第三存储器单元群组,其耦合到第二存取线且经配置以存储第三元素;
第四存储器单元群组,其耦合到所述第二存取线且经配置以存储第四元素;及
控制器,其经配置以操作感测电路以通过在不经由输入/输出I/O线传送数据的情况下执行若干个运算而将所述第一存储器单元群组内的所述第一数目个位移位由所述第三元素定义的第一数目个位位置,且将所述第二存储器单元群组内的所述第二数目个位移位由所述第四元素定义的第二数目个位位置。
10.根据权利要求9所述的设备,其中所述感测电路中的每一个包括感测放大器及计算组件。
11.根据权利要求10所述的设备,其中所述感测放大器包括初级锁存器且所述计算组件包括次级锁存器。
12.根据权利要求11所述的设备,其中所述第一数目个位与所述第二数目个位是相同位长度。
13.根据权利要求11所述的设备,其中所述第一元素、所述第二元素、所述第三元素及所述第四元素是以具有相同位长度的位表示。
14.根据权利要求11所述的设备,其中所述控制器经配置以操作所述感测电路以在不经由输入/输出I/O线传送数据的情况下执行所述若干个运算。
15.根据权利要求11所述的设备,其中所述控制器经配置以操作所述感测电路以并行对第一数目个存储器单元内的所述第一数目个位及第二数目个存储器单元内的所述第二数目个位进行移位。
16.根据权利要求11所述的设备,其中当所述第三元素具有为1或更高的第一个十进制值时,所述第一数目个位在所述第一数目个存储器单元内被移位,且当所述第四元素具有为1或更高的第二个十进制值时,所述第二数目个位在所述第二数目个存储器单元内被移位。
17.根据权利要求11到16中任一权利要求所述的设备,其中所述控制器经配置以操作所述感测电路以:
基于存储于第三数目个存储器单元中的第三数目个位而计算所述第一数目个位位置,其中所述第三数目个位表示所述第三元素;且
基于存储于第四数目个存储器单元中的第四数目个位而计算所述第二数目个位位置,其中所述第四数目个位表示所述第四元素。
18.根据权利要求17所述的设备,其中所述第三数目个存储器单元及所述第四数目个存储器单元中的每一个与不同索引相关联。
19.根据权利要求18所述的设备,其中:
存储来自所述第三数目个位及所述第四数目个位的最低有效位LSB的来自所述第三数目个存储器单元的存储器单元及来自所述第四数目个存储器单元的存储器单元与开始索引相关联;且
存储来自所述第三数目个位及所述第四数目个位的最高有效位MSB的来自所述第三数目个存储器单元的存储器单元及来自所述第四数目个存储器单元的存储器单元与最后索引相关联。
20.根据权利要求19所述的设备,其中:
至少使用与所述第三数目个存储器单元相关联的所述开始索引来计算所述第一数目个位位置;且
至少使用在所述开始索引之后的索引来计算所述第二数目个位位置。
21.一种用于执行若干个移位运算的方法,其包括:
对包括第一数目个元素的第一位向量执行移位运算,所述第一位向量存储于耦合到存储器阵列的第一存取线及若干个感测线的第一存储器单元群组中,其中所述移位运算包含在不进行感测线地址存取的情况下将所述第一位向量移位由第二位向量定义的数目个位位置
其中所述第二位向量存储于耦合到所述存储器阵列的第二存取线及所述若干个感测线的第二存储器单元群组中;及
将所述移位运算的结果存储为结果位向量,所述结果位向量存储于耦合到第三存取线的第三存储器单元群组中。
22.根据权利要求21所述的方法,其中若干次运算迭代的数量等于log2(元素宽度),其中元素宽度是表示所述第一元素中的每一个的位的数量。
23.根据权利要求21到22中任一权利要求所述的方法,其中执行所述移位运算包括使用以下各项执行若干次运算迭代:
SHIFT MASK位向量;
TMPSHIFTED MASK位向量;
ELEMENT MASK位向量;及
EFFECTIVE MASK位向量;
其中运算的每一迭代包括确定构成所述第一位向量的所述第一元素中的任一个是否仍具有在所述第一存储器单元群组内移位的相关联位。
24.根据权利要求23所述的方法,其中执行所述移位运算进一步包括:
创建所述ELEMENT MASK位向量;及
创建所述EFFECTIVE MASK位向量。
25.根据权利要求24所述的方法,其中创建所述ELEMENT MASK位向量包括:
将1位作为存储于所述第一位向量中的所述若干个元素中的每一个的最低有效位LSB存储于第一数目个存储器单元中;及
将0位存储于所述第一数目个存储器单元中的剩余存储器单元中。
26.根据权利要求24所述的方法,其中创建所述ELEMENT MASK位向量包括:
将1位作为存储于所述第一位向量中的所述若干个元素中的每一个的最高有效位MSB存储于所述第一数目个存储器单元中;及
将0位存储于所述第一数目个存储器单元中的剩余存储器单元中。
27.根据权利要求22所述的方法,其中执行所述若干次运算迭代包括:
创建SHIFT MASK位向量;
使用所述SHIFT MASK位向量使所述第一位向量的第一部分移位;
将所述第一位向量的所述第一部分与所述第一位向量的第二部分合并;
将所述合并的结果存储为RESULT位向量;及
更新EFFECTIVE mask位向量。
28.根据权利要求24所述的方法,其中创建所述SHIFT MASK位向量包括:
从所述若干个元素识别至少一个元素,所述若干个元素将基于用于迭代遍历所述若干次运算迭代的当前位索引是否使用所述第二位向量来识别所述至少一个元素而被移位。
29.根据权利要求28所述的方法,其中使用所述SHIFT MASK使所述第一位向量的第一部分移位包括:
通过以下操作使所述第一位向量的第一部分移位:
使用所述SHIFT MASK位向量来识别所述第一部分;及
使与所述第一数目个存储器单元内的所述第一位向量的所述第一部分相关联的若干个位移位等于2的当前位索引次幂(2当前位索引)的数目个位位置。
30.一种设备,其包括:
第一数目个存储器单元,其耦合到若干个感测线且耦合到第一存取线,其中所述第一数目个存储器单元经配置以存储第一数目个元素;
第二数目个存储器单元,其耦合到所述若干个感测线且耦合到第二存取线,其中所述第二数目个存储器单元经配置以存储第二数目个元素;及
控制器,其经配置以操作感测电路以:
接收所述第一数目个元素及所述第二数目个元素;
使用若干个运算来将所述第一数目个存储器单元内的所述第一数目个元素中的每一个中的位移位等于对应第二数目个元素的数目个位位置,
其中不为了以下操作而执行感测线地址存取:
接收所述第一数目个元素及所述第二数目个元素;或
使用所述若干个运算中的至少一个进行移位。
CN201680012924.0A 2015-03-11 2016-03-08 通过存储器中的向量的元素进行数据移位 Active CN107430877B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201562131654P 2015-03-11 2015-03-11
US62/131,654 2015-03-11
US15/060,222 US9741399B2 (en) 2015-03-11 2016-03-03 Data shift by elements of a vector in memory
US15/060,222 2016-03-03
PCT/US2016/021359 WO2016144951A1 (en) 2015-03-11 2016-03-08 Data shift by elements of a vector in memory

Publications (2)

Publication Number Publication Date
CN107430877A true CN107430877A (zh) 2017-12-01
CN107430877B CN107430877B (zh) 2020-11-06

Family

ID=56879403

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680012924.0A Active CN107430877B (zh) 2015-03-11 2016-03-08 通过存储器中的向量的元素进行数据移位

Country Status (4)

Country Link
US (2) US9741399B2 (zh)
CN (1) CN107430877B (zh)
TW (1) TWI602191B (zh)
WO (1) WO2016144951A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112997163A (zh) * 2018-10-05 2021-06-18 美光科技公司 动态配置总线的传输线

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US10607665B2 (en) * 2016-04-07 2020-03-31 Micron Technology, Inc. Span mask generation
CN111651199B (zh) * 2016-04-26 2023-11-17 中科寒武纪科技股份有限公司 一种用于执行向量循环移位运算的装置和方法
US9659610B1 (en) * 2016-05-18 2017-05-23 Micron Technology, Inc. Apparatuses and methods for shifting data
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
US10403352B2 (en) 2017-02-22 2019-09-03 Micron Technology, Inc. Apparatuses and methods for compute in data path
US10268389B2 (en) 2017-02-22 2019-04-23 Micron Technology, Inc. Apparatuses and methods for in-memory operations
US10838899B2 (en) 2017-03-21 2020-11-17 Micron Technology, Inc. Apparatuses and methods for in-memory data switching networks
US11222260B2 (en) 2017-03-22 2022-01-11 Micron Technology, Inc. Apparatuses and methods for operating neural networks
US10185674B2 (en) 2017-03-22 2019-01-22 Micron Technology, Inc. Apparatus and methods for in data path compute operations
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
US10152271B1 (en) 2017-06-07 2018-12-11 Micron Technology, Inc. Data replication
US10262701B2 (en) 2017-06-07 2019-04-16 Micron Technology, Inc. Data transfer between subarrays in memory
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
US10741239B2 (en) 2017-08-31 2020-08-11 Micron Technology, Inc. Processing in memory device including a row address strobe manager
US10346092B2 (en) 2017-08-31 2019-07-09 Micron Technology, Inc. Apparatuses and methods for in-memory operations using timing circuitry
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
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
US10769071B2 (en) 2018-10-10 2020-09-08 Micron Technology, Inc. Coherent memory access
US11175915B2 (en) 2018-10-10 2021-11-16 Micron Technology, Inc. Vector registers implemented in memory
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
US10847215B2 (en) * 2019-04-29 2020-11-24 Arm Limited Bitcell shifting technique
US12118056B2 (en) 2019-05-03 2024-10-15 Micron Technology, Inc. Methods and apparatus for performing matrix transformations within a memory array
WO2020229620A1 (en) 2019-05-16 2020-11-19 Xenergic Ab Shiftable memory and method of operating a shiftable memory
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
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
US11449269B2 (en) 2020-07-22 2022-09-20 Micron Technology, Inc. Edge compute components under a memory array
CN114078488B (zh) * 2020-08-21 2024-07-05 长鑫存储技术(上海)有限公司 存储器
KR20230053320A (ko) 2021-10-14 2023-04-21 삼성전자주식회사 비트라인 감지 증폭기 및 이를 포함하는 메모리 장치
US12073110B2 (en) 2022-09-12 2024-08-27 Micron Technology, Inc. Sequence alignment with memory arrays

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5638317A (en) * 1990-08-22 1997-06-10 Texas Instruments Incorporated Hierarchical DRAM array with grouped I/O lines and high speed sensing circuit
US20030196030A1 (en) * 1990-10-18 2003-10-16 Elliott Duncan G. Method and apparatus for an energy efficient operation of multiple processors in a memory
US20100308858A1 (en) * 2004-06-09 2010-12-09 Renesas Technology Corp. Semiconductor device and semiconductor signal processing apparatus
CN102110472A (zh) * 2009-12-23 2011-06-29 海力士半导体有限公司 半导体存储装置及其操作方法

Family Cites Families (275)

* 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
US5222047A (en) * 1987-05-15 1993-06-22 Mitsubishi Denki Kabushiki Kaisha Method and apparatus for driving word line in block access memory
US5201039A (en) 1987-09-30 1993-04-06 Mitsubishi Denki Kabushiki Kaisha Multiple address-space data processor with addressable register and context switching
US4843264A (en) 1987-11-25 1989-06-27 Visic, Inc. Dynamic sense amplifier for CMOS static RAM
US5276643A (en) 1988-08-11 1994-01-04 Siemens Aktiengesellschaft Integrated semiconductor circuit
JPH0713858B2 (ja) 1988-08-30 1995-02-15 三菱電機株式会社 半導体記憶装置
US5023838A (en) 1988-12-02 1991-06-11 Ncr Corporation Random access memory device with integral logic capability
US4958378A (en) 1989-04-26 1990-09-18 Sun Microsystems, Inc. Method and apparatus for detecting changes in raster data
US5253308A (en) 1989-06-21 1993-10-12 Amber Engineering, Inc. Massively parallel digital image data processor using pixel-mapped input/output and relative indexed addressing
DE69132495T2 (de) 1990-03-16 2001-06-13 Texas Instruments Inc., Dallas 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
JPH06103599B2 (ja) 1990-11-16 1994-12-14 三菱電機株式会社 半導体集積回路装置
US5325519A (en) 1991-10-18 1994-06-28 Texas Microsystems, Inc. Fault tolerant computer with archival rollback capabilities
FR2685973B1 (fr) 1992-01-03 1994-02-25 France Telecom Point memoire pour memoire associative.
KR950005095Y1 (ko) 1992-03-18 1995-06-22 문정환 양방향성 그로벌 비트 라인을 갖는 dram
KR940004434A (ko) 1992-08-25 1994-03-15 윌리엄 이. 힐러 스마트 다이나믹 랜덤 억세스 메모리 및 그 처리방법
KR950004854B1 (ko) 1992-10-08 1995-05-15 삼성전자 주식회사 반도체 메모리 장치
US5485373A (en) 1993-03-25 1996-01-16 Taligent, Inc. Language-sensitive text searching system with modified Boyer-Moore process
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
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 株式会社ルネサステクノロジ シングル・チップ・データ処理装置
US5430687A (en) 1994-04-01 1995-07-04 Xilinx, Inc. Programmable logic device including a parallel input device for loading memory cells
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
US5953738A (en) 1997-07-02 1999-09-14 Silicon Aquarius, Inc DRAM with integral SRAM and arithmetic-logic units
US6195734B1 (en) 1997-07-02 2001-02-27 Micron Technology, Inc. System for implementing a graphic address remapping table as a virtual register file in system memory
US6181698B1 (en) 1997-07-09 2001-01-30 Yoichi Hariguchi Network routing table using content addressable memory
US6025221A (en) 1997-08-22 2000-02-15 Micron Technology, Inc. Processing methods of forming integrated circuitry memory devices, methods of forming DRAM arrays, and related semiconductor masks
US5991785A (en) 1997-11-13 1999-11-23 Lucent Technologies Inc. Determining an extremum value and its index in an array using a dual-accumulation processor
US5867429A (en) 1997-11-19 1999-02-02 Sandisk Corporation High density non-volatile flash memory without adverse effects of electric field coupling between adjacent floating gates
US6163862A (en) 1997-12-01 2000-12-19 International Business Machines Corporation On-chip test circuit for evaluating an on-chip signal using an external test signal
JP3488612B2 (ja) 1997-12-11 2004-01-19 株式会社東芝 センス増幅回路
US5986942A (en) 1998-01-20 1999-11-16 Nec Corporation Semiconductor memory device
JPH11260057A (ja) 1998-03-13 1999-09-24 Nec Corp 半導体記憶装置
JPH11265995A (ja) 1998-03-17 1999-09-28 Mitsubishi Electric Corp 半導体記憶装置
JPH11306751A (ja) 1998-04-22 1999-11-05 Toshiba Corp 半導体記憶装置
US6005799A (en) 1998-08-06 1999-12-21 Silicon Aquarius Methods and circuits for single-memory dynamic cell multivalue data storage
US6141286A (en) 1998-08-21 2000-10-31 Micron Technology, Inc. Embedded DRAM architecture with local data drivers and programmable number of data read and data write lines
US7409694B2 (en) 1998-09-09 2008-08-05 Microsoft Corporation Highly componentized system architecture with loadable virtual memory manager
JP2000173269A (ja) 1998-12-08 2000-06-23 Mitsubishi Electric Corp 半導体記憶装置
KR100381968B1 (ko) 1998-12-30 2004-03-24 주식회사 하이닉스반도체 고속동작용디램
US6389507B1 (en) 1999-01-15 2002-05-14 Gigabus, Inc. Memory device search system and method
US5999435A (en) 1999-01-15 1999-12-07 Fast-Chip, Inc. Content addressable memory device
US6134164A (en) 1999-04-22 2000-10-17 International Business Machines Corp. Sensing circuit for a memory cell array
US6741104B2 (en) 1999-05-26 2004-05-25 Micron Technology, Inc. DRAM sense amplifier for low voltages
US6157578A (en) 1999-07-15 2000-12-05 Stmicroelectronics, Inc. Method and apparatus for accessing a memory device
US6208544B1 (en) 1999-09-09 2001-03-27 Harris Corporation Content addressable memory cell providing simultaneous read and compare capability
US6578058B1 (en) 1999-10-06 2003-06-10 Agilent Technologies, Inc. System and method for comparing values from target systems
US7124221B1 (en) 1999-10-19 2006-10-17 Rambus Inc. Low latency multi-level communication interface
US6418498B1 (en) 1999-12-30 2002-07-09 Intel Corporation Integrated system management memory for system management interrupt handler independent of BIOS and operating system
JP4627103B2 (ja) 2000-01-18 2011-02-09 富士通セミコンダクター株式会社 半導体記憶装置及びその制御方法
WO2001057875A1 (fr) 2000-02-04 2001-08-09 Hitachi, Ltd. Dispositif semi-conducteur
WO2001065359A2 (en) 2000-02-29 2001-09-07 Peter Petrov 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
KR100869870B1 (ko) 2000-07-07 2008-11-24 모사이드 테크놀로지스, 인코포레이티드 메모리 소자에서의 읽기 명령 수행 방법 및 dram액세스 방법
US6466499B1 (en) 2000-07-11 2002-10-15 Micron Technology, Inc. DRAM sense amplifier having pre-charged transistor body nodes
US7302582B2 (en) 2000-08-21 2007-11-27 United States Postal Service Delivery point validation system
US6301164B1 (en) 2000-08-25 2001-10-09 Micron Technology, Inc. Antifuse method to repair columns in a prefetched output memory architecture
US6704828B1 (en) 2000-08-31 2004-03-09 Micron Technology, Inc. System and method for implementing data pre-fetch having reduced data lines and/or higher data rates
US6948056B1 (en) 2000-09-28 2005-09-20 Intel Corporation Maintaining even and odd array pointers to extreme values by searching and comparing multiple elements concurrently where a pointer is adjusted after processing to account for a number of pipeline stages
US6304477B1 (en) 2001-01-31 2001-10-16 Motorola, Inc. Content addressable magnetic random access memory
US6563754B1 (en) 2001-02-08 2003-05-13 Integrated Device Technology, Inc. DRAM circuit with separate refresh memory
US6650158B2 (en) 2001-02-21 2003-11-18 Ramtron International Corporation Ferroelectric non-volatile logic elements
US6807614B2 (en) 2001-07-19 2004-10-19 Shine C. Chung Method and apparatus for using smart memories in computing
US7546438B2 (en) 2001-07-19 2009-06-09 Chung Shine C Algorithm mapping, specialized instructions and architecture features for smart memory computing
ITRM20010531A1 (it) 2001-08-31 2003-02-28 Micron Technology Inc Dispositivo rilevatore a bassa potenza e alta tensione per memorie ditipo flash.
US7260672B2 (en) 2001-09-07 2007-08-21 Intel Corporation Using data stored in a destructive-read memory
US6985388B2 (en) * 2001-09-17 2006-01-10 Sandisk Corporation Dynamic column block selection
US7062689B2 (en) 2001-12-20 2006-06-13 Arm Limited Method and apparatus for memory self testing
US7058880B1 (en) 2001-12-26 2006-06-06 Altera Corporation Techniques for programming and verifying data in a programmable circuit
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
AU2003221680A1 (en) 2002-04-09 2003-10-27 The Research Foundation Of State University Of New York 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
US7005338B2 (en) 2002-09-19 2006-02-28 Promos Technologies Inc. Nonvolatile memory cell with a floating gate at least partially located in a trench in a semiconductor substrate
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
AU2002353406A1 (en) 2002-12-27 2004-07-22 Solid State System Co., Ltd. Nonvolatile memory unit with specific cache
US7346903B2 (en) 2003-02-04 2008-03-18 Sun Microsystems, Inc. Compiling and linking modules of a cycle-based logic design
US6768679B1 (en) 2003-02-10 2004-07-27 Advanced Micro Devices, Inc. Selection circuit for accurate memory read operations
US6819612B1 (en) 2003-03-13 2004-11-16 Advanced Micro Devices, Inc. Apparatus and method for a sense amplifier circuit that samples and holds a reference voltage
US6865122B2 (en) 2003-04-11 2005-03-08 Intel Corporation Reclaiming blocks in a block-alterable memory
US7447720B2 (en) 2003-04-23 2008-11-04 Micron Technology, Inc. Method for finding global extrema of a set of bytes distributed across an array of parallel processing elements
US7454451B2 (en) 2003-04-23 2008-11-18 Micron Technology, Inc. Method for finding local extrema of a set of values for a parallel processing element
US7574466B2 (en) 2003-04-23 2009-08-11 Micron Technology, Inc. Method for finding global extrema of a set of shorts distributed across an array of parallel processing elements
US9015390B2 (en) 2003-04-25 2015-04-21 Micron Technology, Inc. Active memory data compression system and method
US7142464B2 (en) 2003-04-29 2006-11-28 Saifun Semiconductors Ltd. Apparatus and methods for multi-level sensing in a memory array
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 ローム株式会社 演算機能付き記憶装置および演算記憶方法
ATE366985T1 (de) 2003-09-04 2007-08-15 Koninkl Philips Electronics Nv Integrierte schaltung und verfahren zum cache- umabbilden
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
US7061817B2 (en) 2004-06-30 2006-06-13 Micron Technology, Inc. Data path having grounded precharge operation and test compression capability
US7116602B2 (en) 2004-07-15 2006-10-03 Micron Technology, Inc. Method and system for controlling refresh to avoid memory cell data losses
US7434024B2 (en) 2004-08-30 2008-10-07 Ati Technologies, Inc. SIMD processor with register addressing, buffer stall and methods
US20060069849A1 (en) 2004-09-30 2006-03-30 Rudelic John C Methods and apparatus to update information in a memory
US7685365B2 (en) 2004-09-30 2010-03-23 Intel Corporation Transactional memory execution utilizing virtual memory
US20060149804A1 (en) 2004-11-30 2006-07-06 International Business Machines Corporation Multiply-sum dot product instruction with mask and splat
US7230851B2 (en) 2004-12-23 2007-06-12 Sandisk Corporation Reducing floating gate to floating gate coupling effect
KR100673901B1 (ko) 2005-01-28 2007-01-25 주식회사 하이닉스반도체 저전압용 반도체 메모리 장치
US7543119B2 (en) 2005-02-10 2009-06-02 Richard Edward Hessel Vector processor
US7624313B2 (en) 2005-03-28 2009-11-24 Hewlett-Packard Development Company, L.P. TCAM BIST with redundancy
US7196928B2 (en) 2005-04-05 2007-03-27 Sandisk Corporation Compensating for coupling during read operations of non-volatile memory
US7187585B2 (en) 2005-04-05 2007-03-06 Sandisk Corporation Read operation for non-volatile storage that includes compensation for coupling
US7193898B2 (en) 2005-06-20 2007-03-20 Sandisk Corporation Compensation currents in non-volatile memory read operations
KR100660871B1 (ko) 2005-07-15 2006-12-26 삼성전자주식회사 연결된 비트라인을 구비하는 반도체 메모리 장치 및 데이터쉬프팅 방법
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
KR100821616B1 (ko) 2006-12-14 2008-04-16 한국과학기술원 반도체 집적회로의 두 숫자 비교기
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
US7808854B2 (en) 2008-02-19 2010-10-05 Kabushiki Kaisha Toshiba Systems and methods for data transfers between memory cells
JP5194302B2 (ja) 2008-02-20 2013-05-08 ルネサスエレクトロニクス株式会社 半導体信号処理装置
US8332580B2 (en) 2008-04-02 2012-12-11 Zikbit Ltd. System, method and apparatus for memory with embedded associative section for computations
US20090254694A1 (en) 2008-04-02 2009-10-08 Zikbit Ltd. Memory device with integrated parallel processing
US7957206B2 (en) 2008-04-04 2011-06-07 Micron Technology, Inc. Read circuitry for an integrated circuit having memory cells and/or a memory cell array, and method of operating same
US8339824B2 (en) 2008-07-02 2012-12-25 Cooke Laurence H Nearest neighbor serial content addressable memory
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
WO2010021682A1 (en) 2008-08-19 2010-02-25 Thomson Licensing Cabac/avc compliant watermarking of syntax elements in compressed video
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
US9076527B2 (en) 2009-07-16 2015-07-07 Mikamonu Group Ltd. Charge sharing in a TCAM array
US8238173B2 (en) 2009-07-16 2012-08-07 Zikbit Ltd Using storage cells to perform computation
JP4951041B2 (ja) 2009-08-06 2012-06-13 株式会社東芝 半導体記憶装置
US8059438B2 (en) 2009-08-28 2011-11-15 International Business Machines Corporation Content addressable memory array programmed to perform logic operations
US8077532B2 (en) 2009-09-02 2011-12-13 Micron Technology, Inc. Small unit internal verify read in a memory device
US8482975B2 (en) 2009-09-14 2013-07-09 Micron Technology, Inc. Memory kink checking
US8495465B1 (en) 2009-10-15 2013-07-23 Apple Inc. Error correction coding over multiple memory pages
US9477636B2 (en) 2009-10-21 2016-10-25 Micron Technology, Inc. Memory having internal processors and data communication methods in memory
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
WO2011137189A1 (en) 2010-04-27 2011-11-03 Cornell Research Foundation 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
US8478969B2 (en) 2010-09-24 2013-07-02 Intel Corporation Performing a multiply-multiply-accumulate instruction
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
US9165023B2 (en) 2011-01-31 2015-10-20 Freescale Semiconductor, Inc. Integrated circuit device and method for determining an index of an extreme value within an array of values
KR20120088973A (ko) 2011-02-01 2012-08-09 삼성전자주식회사 로컬 센스앰프 회로 및 이를 포함하는 반도체 메모리 장치
JP2012174016A (ja) 2011-02-22 2012-09-10 Renesas Electronics Corp データ処理装置およびそのデータ処理方法
JP5259765B2 (ja) 2011-03-29 2013-08-07 株式会社東芝 不揮発性半導体メモリ
US8725730B2 (en) 2011-05-23 2014-05-13 Hewlett-Packard Development Company, L.P. Responding to a query in a data processing system
US8706958B2 (en) 2011-09-01 2014-04-22 Thomas Hein Data mask encoding in data bit inversion scheme
CN103907157B (zh) 2011-10-28 2017-10-17 慧与发展有限责任合伙企业 进行行移位的可移位存储器
US8891297B2 (en) 2011-11-01 2014-11-18 Micron Technology, Inc. Memory cell sensing
KR101321481B1 (ko) 2011-11-04 2013-10-28 에스케이하이닉스 주식회사 반도체 메모리 장치 및 이를 위한 테스트 회로
US9830158B2 (en) 2011-11-04 2017-11-28 Nvidia Corporation Speculative execution and rollback
KR20130052971A (ko) 2011-11-14 2013-05-23 삼성전자주식회사 비휘발성 메모리 장치의 동작 방법
GB2511957B (en) 2011-11-22 2015-02-11 Mips Tech Inc Processor with kernel mode access to user space virtual addresses
US9665371B2 (en) 2011-11-30 2017-05-30 Intel Corporation Providing vector horizontal compare functionality within a vector register
CN104115115B (zh) 2011-12-19 2017-06-13 英特尔公司 用于多精度算术的simd整数乘法累加指令
KR20130072869A (ko) 2011-12-22 2013-07-02 에스케이하이닉스 주식회사 프리차지 회로 및 비휘발성 메모리 장치
WO2013095592A1 (en) 2011-12-22 2013-06-27 Intel Corporation Apparatus and method for vector compute and accumulate
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
US9158667B2 (en) 2013-03-04 2015-10-13 Micron Technology, Inc. Apparatuses and methods for performing logical operations using sensing circuitry
US9424031B2 (en) 2013-03-13 2016-08-23 Intel Corporation Techniques for enabling bit-parallel wide string matching with a SIMD register
US9171153B2 (en) 2013-05-17 2015-10-27 Hewlett-Packard Development Company, L.P. Bloom filter with memory element
US8964496B2 (en) 2013-07-26 2015-02-24 Micron Technology, Inc. Apparatuses and methods for performing compare operations using sensing circuitry
US8971124B1 (en) 2013-08-08 2015-03-03 Micron Technology, Inc. Apparatuses and methods for performing logical operations using sensing circuitry
US9153305B2 (en) 2013-08-30 2015-10-06 Micron Technology, Inc. Independently addressable memory array address spaces
US9019785B2 (en) * 2013-09-19 2015-04-28 Micron Technology, Inc. Data shifting via a number of isolation devices
US9639458B2 (en) 2013-09-26 2017-05-02 Emu Solutions, Inc. Reducing memory accesses for enhanced in-memory parallel operations
US9430191B2 (en) 2013-11-08 2016-08-30 Micron Technology, Inc. Division operations for memory
WO2015171905A1 (en) 2014-05-08 2015-11-12 Micron Technology, Inc. In-memory lightweight coherency
US10838865B2 (en) 2014-05-08 2020-11-17 Micron Technology, Inc. Stacked memory device system interconnect directory-based cache coherence methodology
US9589646B2 (en) * 2014-11-26 2017-03-07 Macronix International Co., Ltd. Page buffer circuit having bias voltage application unit and operating method of same

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5638317A (en) * 1990-08-22 1997-06-10 Texas Instruments Incorporated Hierarchical DRAM array with grouped I/O lines and high speed sensing circuit
US20030196030A1 (en) * 1990-10-18 2003-10-16 Elliott Duncan G. Method and apparatus for an energy efficient operation of multiple processors in a memory
US20100308858A1 (en) * 2004-06-09 2010-12-09 Renesas Technology Corp. Semiconductor device and semiconductor signal processing apparatus
CN102110472A (zh) * 2009-12-23 2011-06-29 海力士半导体有限公司 半导体存储装置及其操作方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112997163A (zh) * 2018-10-05 2021-06-18 美光科技公司 动态配置总线的传输线
US11620241B2 (en) 2018-10-05 2023-04-04 Micron Technology, Inc. Dynamically configuring transmission lines of a bus

Also Published As

Publication number Publication date
CN107430877B (zh) 2020-11-06
US9741399B2 (en) 2017-08-22
TWI602191B (zh) 2017-10-11
TW201703033A (zh) 2017-01-16
WO2016144951A1 (en) 2016-09-15
US20170186468A1 (en) 2017-06-29
US9928887B2 (en) 2018-03-27
US20160267951A1 (en) 2016-09-15

Similar Documents

Publication Publication Date Title
CN107430877A (zh) 通过存储器中的向量的元素进行数据移位
CN106489179B (zh) 存储器中的比较操作
CN107408403A (zh) 存储器中的最长元素长度确定
CN106471582B (zh) 用于使用感测电路来执行逻辑操作的设备及方法
CN106688040B (zh) 存储器中的交换运算
CN106605204B (zh) 用于确定总体计数的设备及方法
TWI623941B (zh) 操作系統之方法、記憶體系統及記憶體裝置
TWI576761B (zh) 記憶體中之乘法運算
CN107004434B (zh) 用于使用感测电路执行异或操作的设备及方法
TWI601149B (zh) 用於執行乘法運算之方法及裝置
CN106663459A (zh) 使用感测电路执行逻辑操作
CN106415726B (zh) 用于比较存储器中数据模式的设备及方法
CN107004433A (zh) 存储器中的比较操作
CN105556607B (zh) 使用感测电路执行逻辑运算的设备及方法
US9898253B2 (en) Division operations on variable length elements in memory
TWI576853B (zh) 使用感測電路執行邏輯操作
CN105814636B (zh) 用于识别存储于存储器单元阵列中的极值的设备及方法
CN105814637B (zh) 用于存储器的除法运算
CN109147842A (zh) 同时进行数据路径中计算操作的设备及方法
CN108885887A (zh) 用于数据移动的设备及方法
CN107683505A (zh) 用于计算启用的高速缓冲存储器的设备及方法
CN107408404A (zh) 用于存储器装置的设备及方法以作为程序指令的存储
TW201633139A (zh) 記憶體中之除法運算
CN110326046A (zh) 用于在数据路径中计算的设备及方法

Legal Events

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