用于高速缓存无效的设备及方法与流程

文档序号:15884339发布日期:2018-11-09 18:33阅读:301来源:国知局
用于高速缓存无效的设备及方法与流程

本发明大体上涉及半导体存储器及方法,且更特定来说,涉及用于高速缓存无效的设备及方法。

背景技术

存储器装置通常提供为计算系统中的内部半导体集成电路。存在许多不同类型的存储器,包含易失性及非易失性存储器。易失性存储器可需要电力来保存其数据(例如,主机数据、误差数据等)且包含随机存取存储器(ram)、动态随机存取存储器(dram)、静态随机存取存储器(sram)、同步动态随机存取存储器(sdram)与晶闸管随机存取存储器(tram)等。非易失性存储器可通过当不被供电时保存所存储数据而提供持久性数据且可包含nand快闪存储器、nor快闪存储器及电阻可变存储器,例如尤其是相变随机存取存储器(pcram)、电阻随机存取存储器(rram)及磁阻随机存取存储器(mram),例如自旋力矩转移随机存取存储器(sttram)。

计算系统通常包含多个处理资源(例如,一或多个处理器),所述计算系统可检索及执行指令且将所执行指令的结果存储到适合位置。处理资源(例如,cpu)可包括多个功能单元,举例来说(例如)算术逻辑单元(alu)电路、浮点单元(fpu)电路及/或组合逻辑块,可通过对数据(例如,一或多个运算元)执行逻辑运算(例如and、or、not、nand、nor及xor)及反相(例如,反转)逻辑运算而使用所述功能单元来执行指令。例如,可使用功能单元电路以经由多个逻辑运算对运算元执行算术运算,例如加、减、乘及/或除。

在将指令提供到功能单元电路以供执行时可涉及计算系统中的多个组件。可(例如)由处理资源(例如,控制器及/或主机处理器)执行指令。可将数据(例如,将对其执行指令的运算元)存储在可由功能单元电路存取的存储器阵列中。指令及/或数据可从存储器阵列检索且在功能单元电路开始对数据执行指令之前定序及/或缓冲。此外,由于可通过功能单元电路在一或多个时钟周期中执行不同类型的运算,所以还可定序及/或缓冲指令及/或数据的中间结果。在一或多个时钟周期中完成运算的序列可称为运算周期。就处理资源来说,完成运算周期所耗费的时间需要付出计算性能及电力消耗的代价。

在许多实例中,处理资源(例如,处理器及/或相关联功能单元电路)可在存储器阵列外部,且经由处理资源与存储器阵列之间的总线存取数据以执行一组指令。可在存储器中处理器(pim)装置中改善处理性能,其中可在存储器内部及/或附近(例如,直接在与存储器阵列相同的芯片上)实施处理器。如本文所使用,pim装置希望意指其中在存储器内部及/或附近实施处理能力的装置。pim装置可通过减少及/或消除外部通信而节省时间且还可节约电力。pim运算可涉及基于位向量的运算。在虚拟地址空间中对连续位(也称为“分块”)执行基于位向量的运算。例如,虚拟地址空间分块可具有256个位的连续位长度。虚拟地址空间的连续分块可或可不物理连续。

典型高速缓存架构(完全关联、组关联或直接映射)使用由处理器生成的地址的部分来定位高速缓存(在本文中也称为“高速缓存块”)中的数据块的放置且可具有描述描述高速缓存块的状态的一些元数据(例如,有效位及非正常位)。高速缓存标签是用于高速缓存中的数据组的唯一识别符。末级高速缓存架构可基于3d集成存储器,其中标签及元数据存储在sram中的芯片上且高速缓存数据块存储在快速存取的dram中。在此架构中,使用芯片上sram标签进行匹配且由相对快的封装上dram(与封装下解决方案相比)加快存储器存取。

高速缓存架构可具有使用多个处理资源(处理器核心)操作的多级高速缓存。例如,膝上型计算机可具有两个处理核心及两级高速缓存,一个用于指令且一个用于数据。第二级高速缓存(l2)可称为末级高速缓存(llc)且能够存储256千字节数据。服务器可具有三级或三级以上高速缓存。在三级高速缓存中,第三级高速缓存(l3)可充当末级高速缓存(llc)。所有处理核心应具有相同存储器视图。因此,基于高速缓存的存储器系统将使用某种形式的高速缓存一致性协议(例如,mesi(修改、独有、共享、无效)或基于目录的高速缓存一致性协议),以维持对处理核心之间的高速缓存存储器系统中的准确数据的存取。

在处理核心上运行的代码可想要存取位向量运算装置(例如,pim装置)以执行基于位向量的运算。主机中的处理资源通常知道其自身的高速缓存线位长度(高速缓存线在本文中也可称为“高速缓存块”)以维持其高速缓存一致性。然而,pim装置中基于位向量的运算可作用于完全不同位长度的位向量。用于执行基于位向量的运算且同时维持软件中的高速缓存一致性的典型使用模式可涉及整个高速缓存的昂贵清空或使特定页变得不可高速缓存(在高速缓存中不可使用)。清空高速缓存存储器涉及将高速缓存条目的整个块回写到存储器且删除高速缓存条目以腾出在高速缓存存储器中使用的空间。清空整个高速缓存存储器可能会不必要地从高速缓存存储器中移除可以使用的高速缓存条目且在执行运算时消耗大量电力及时间。

相比之下,将高速缓存条目标记为无效(也称为“无效”高速缓存条目或“高速缓存无效”)涉及标记具体高速缓存条目(例如,具体高速缓存线)且仅删除那些高速缓存条目以腾出在高速缓存存储器中出于另一目的而使用的空间。因此,将具体高速缓存条目(例如,高速缓存线)回写到存储器且出于另一目的删除高速缓存存储器中的高速缓存条目的高速缓存无效命令消耗的电力及时间比清空操作更少。高速缓存无效运算是一种用于确保数据在主机装置与存储器装置之间一致的技术。然而,使pim装置完全知道高速缓存一致性协议将十分昂贵及复杂。

附图说明

图1a是根据本发明的多个实施例的呈包含存储器装置的计算系统的形式的设备的框图。

图1b是说明使用具有块选择及子行选择以存储及/或检索阵列中的高速缓存块的框图。

图1c是说明可重复用于高速缓存线的块选择及子行选择结构以允许在高速缓存块、阵列及/或存储器装置内不同地划分及放置高速缓存线。

图1b是根据本发明的多个实施例的呈包含存储器装置的计算系统的形式的设备的另一框图。

图1c是说明根据本发明的多个实施例的位向量运算装置、通道控制器与具有一或多个处理资源及多个高速缓存级的主机之间的消息交换的框图。

图1d是根据本发明的多个实施例的到存储器装置的存储体的框图。

图1e是根据本发明的多个实施例的到存储器装置的存储体的另一框图。

图2是说明根据本发明的多个实施例的到存储器装置的感测电路的示意图。

图3是说明根据本发明的多个实施例的到存储器装置的感测电路的示意图。

图4是说明根据本发明的多个实施例的由图3中展示的感测电路实施的可选逻辑运算结果的逻辑表。

具体实施方式

本发明包含用于高速缓存无效的设备及方法。本文描述的高速缓存无效实施例可使基于位向量的运算请求能够在位向量运算存储器装置(例如,存储器中处理器(pim)装置)上执行,且在具有与位向量位长度不同的高速缓存线位长度的单独装置(例如,“主机”处理资源)上更有效地与基于高速缓存的存储器系统互动。例如,基于高速缓存的存储器系统中的高速缓存线的实例可具有128字节(一千位)位长度,包含元数据及标签以及高速缓存块数据。相比之下,位向量运算存储器装置(例如,pim装置)可对与dram阵列中的块宽度等效或等于不同选定位宽度(取决于特定设计实施方案)的“分块”中的数据块运算。在一个实施例中,分块可选择为具有256个位的位宽度以匹配特定接口带宽的宽度。因此,在基于高速缓存的存储器系统中,四(4)个分块可总共对应于128个字节的高速缓存线位长度。

如本文所使用,术语“位向量”希望意指物理连续数目的位。物理连续数目的位可存在(例如,存储)于位向量存储器装置(例如,pim装置)上,不论是位向量存储器装置上的存储器单元阵列中的行中的物理连续(例如,水平定向)还是列中的物理连续(例如,垂直定向)。如本文所使用,“位向量运算”希望意指对为(例如)由pim装置使用的虚拟地址空间的连续部分(也称为“分块”)的位向量执行的运算。在虚拟地址空间中,分块与其它分块可或可不物理连续。

在一个实例性实施例中,设备包括具有存储器单元阵列及耦合到所述阵列的感测电路的存储器装置。所述感测电路包含感测放大器及经配置以实施逻辑运算的计算组件。存储器控制器经耦合到所述阵列及所述感测电路且经配置以接收位向量运算请求。通道控制器经耦合到所述存储器装置且经配置以响应于接收到位向量运算请求而使得整体无效命令发送到高速缓存存储器系统。如本文所使用,高速缓存存储器系统(也称为“基于高速缓存的存储器系统”)希望意指与特定高速缓存一致性协议相关联的设备,例如组件、装置、系统等。如本文所使用,术语“整体无效”希望意指在多个位置(例如,多个高速缓存线)中对无效信息寻址及操作而无须将无效指令单独寻址及传达到多个位置中的每一者的能力。如上述,将高速缓存条目标记为无效(也称为“无效”高速缓存条目或“高速缓存无效”)包括删除高速缓存条目的内容以腾出在高速缓存存储器中使用的空间。在本文描述的一些实施例中,高速缓存无效操作在高速缓存存储器中腾出与正在pim装置上执行的运算搭配使用的空间。

在本发明的下文详细描述中,参考形成本发明的部分的附图,且其中以说明方式展示可如何实践本发明的一或多个实施例。充分详细地描述这些实施例以使所属领域的一般技术人员能够实践本发明的实施例,且应理解,可利用其它实施例且可在不背离本发明的范围的情况下做出过程、电及/或结构改变。如本文所使用,例如“n”、“m”等的标示符(尤其关于附图中的参考符号)指示可包含如此标示的多个特定特征。如本文所使用,“多个”特定事物可指此类事物中的一或多者(例如,多个存储器阵列可指一或多个存储器阵列)。“多个”希望是指此类事物中的一者以上。

本文中的图遵循其中(若干)第一数字对应于附图图号且剩余数字标识附图中的元件或组件的编号惯例。可通过使用类似数字来标识不同图之间的类似元件或组件。例如,206可指图2中的参考元件“06”,且类似元件可在图6中标记为606。将明白,可添加、交换及/或消除本文的各种实施例中展示的元件以提供本发明的多个额外实施例。另外,将明白,图中提供的元件的比例及相对尺寸意在说明本发明的特定实施例,且不应被视为具有限制意义。

图1a是根据本发明的多个实施例的呈包含存储器装置的计算系统的形式的设备的框图。如图1a中展示,主机110可包含逻辑及/或处理资源112(例如,计算组件)。如本文所使用,逻辑希望意指例如晶体管电路及/或一或多个专用集成电路(asic)的硬件且还可包含固件。在至少一个实施例中,逻辑资源112可包含逻辑资源112(有时也称为“逻辑层”)上的静态随机存取存储器(sram)存储器。如图1a的实例性实施例中展示,逻辑资源112可在主机110上耦合到主机110上的高速缓存存储器113,举例来说,例如3d集成存储器中的封装上(也称为芯片上及/或裸片上)。逻辑组件112可经由宽接口114(例如,256位接口)耦合到高速缓存存储器113。这个接口可包含硅通孔(tsv)作为具有堆栈在逻辑裸片上的多个存储器裸片的3d集成存储器的部分。

在一或多个实施例中,高速缓存存储器113可具有多个高速缓存级、阵列、存储器层、存储体、存储体区段、子阵列、行等113-1、113-2、...、113-n。实施例不限于此。在至少一个实施例中,高速缓存存储器113的部分可充当到高速缓存存储器113的末层高速缓存(llc)部分(级),例如113-n。在这个结构中,llc113-n可控制块数据对齐,且从本文描述将明白,可减少逻辑及/或3d集成存储器芯片的高速缓存存储器113的总数据尺寸。

如图1a中展示,可提供高速缓存控制器115,高速缓存控制器115可包含呈固件及/或硬件(例如,专用集成电路(asic))及/或软件(例如,存储在存储器中且由逻辑及/或处理资源112执行的指令)形式的逻辑。根据实施例,由高速缓存控制器115使用的固件及/或软件可包含与高速缓存存储器113的高速缓存一致性协议相关联的无效引擎116。在一些实施例中,高速缓存控制器115可例如通过执行指令及/或执行逻辑运算来配置以维持与高速缓存存储器113中的高速缓存线(也称为“高速缓存块”)相关联的高速缓存一致性协议。高速缓存一致性协议可为mesi(修改、独有、共享、无效)或基于目录的高速缓存一致性协议等。实施例可不限于这些实例。如本文所使用,高速缓存线(“高速缓存块”)希望意指用于高速缓存存储的基础单元且可含有多个数据字节/字组。在一或多个实施例中,高速缓存控制器可将元数据(例如块选择元数据及/或子行选择元数据)添加到高速缓存线。例如,块选择元数据可实现到高速缓存线的偏移且子行选择元数据可实现到组相关高速缓存的多个组。在一个实施例中,块选择提供到动态随机存取存储器(dram)中的页的偏移。

为明白用于实施此些技术的所改善系统操作技术及设备,后文论述位向量运算存储器装置(例如,pim装置)及相关联主机。根据各种实施例,可将指令(例如,pim命令(微代码指令))发送到具有实施逻辑运算的pim能力的存储器装置。pim装置可将pim命令存储在存储器阵列内且可由存储器装置上的控制器执行而无须利用主机通过总线向来回转移命令。可在存储器装置上执行pim命令以在存储器装置上执行逻辑运算,其可比在主机上执行逻辑运算用时更少且使用更少电力来完成。另外,可通过减少围绕计算系统移动以处理所请求存储器阵列操作(例如,读取、写入等)的数据量来实现时间及电力节省优势。

本发明的多个实施例与先前系统(例如先前pim系统及具有外部处理器(例如,定位在存储器阵列外部,(例如)位于单独集成电路芯片上的处理资源)的系统)相比可提供与执行计算功能相关联的所改善平行性及/或所减少电力消耗。例如,多个实施例可在(例如)未将数据经由总线(例如,数据总线、地址总线、控制总线)转移到存储器阵列及感测电路外的情况下提供执行完全完整的计算功能,例如整加、整减、整乘、整除及cam(内容可寻址存储器)。此些计算功能可涉及执行多个逻辑运算(例如逻辑功能,例如and、or、not、nor、nand、xor等)。然而,实施例不限于这些实例。例如,执行逻辑运算可包含执行多个非布尔(boolean)逻辑运算,例如复制、比较、销毁等。

在先前方法中,可将数据从阵列及感测电路(例如,经由包括输入/输出(i/o)线的总线)转移到可包括alu电路及/或经配置以执行适当逻辑运算的其它功能单元电路的处理资源,例如处理器、微处理器及/或计算引擎。然而,将数据从存储器阵列及感测电路转移到此(些)处理资源可涉及显著电力消耗。即使处理资源经定位在与存储器阵列相同的芯片上,在将阵列外的数据移动到计算电路中时仍可消耗显著电力,这可涉及执行感测线(在本文中可称为数字线或数据线)、地址存取(例如,触发行解码信号)以将数据从感测线转移到i/o线(例如,局部i/o线)上,从而将数据移动到阵列外围,且将数据提供到计算功能。

此外,(若干)处理资源(例如,计算引擎)的电路可不符合与存储器阵列相关联的节距规则。例如,存储器阵列的单元可具有4f2或6f2单元尺寸,其中“f”是对应于单元的特征尺寸。因而,与先前pim系统的alu电路相关联的装置(例如,逻辑门)可不能够与存储器单元形成在节距上,这可例如影响芯片尺寸及/或存储器密度。本发明的多个实施例包含与存储器单元阵列形成在节距上且能够执行计算功能的感测电路。

而且,图1a是根据本发明的多个实施例的呈包含存储器装置120的计算系统100的形式的设备的框图。上文已详细论述主机110、逻辑资源112、高速缓存存储器113及高速缓存控制器。图1a中展示的存储器装置120可包含存储器控制器140、具有感测电路150及/或逻辑电路170的存储器阵列130。本文使用的这些元件中的每一者还可单独称为“设备”。

图1a展示包含耦合(例如,连接)到存储器装置120的主机110的系统100,存储器装置120包含存储器阵列130。主机110可为主机系统,例如个人膝上型计算机、台式计算机、数码相机、智能电话或存储卡读卡器以及各种其它类型的主机。主机110可包含系统母板及/或背板且可包含多个处理资源(例如,一或多个处理器、微处理器或一些其它类型的控制电路)。系统100可包含单独集成电路或主机110及存储器装置120两者可位于相同集成电路上。系统100可为(例如)服务器系统及/或高性能计算(hpc)系统及/或其部分。尽管图1a(及后面的图1b)中展示的实例说明具有冯·诺依曼(vonneumann)架构的系统,但本发明的实施例可在非冯·诺依曼架构中实施,所述非冯·诺依曼架构可不包含通常与冯·诺依曼架构相关联的一或多个组件(例如,cpu、alu等)。

存储器阵列130可为(例如)dram阵列、sram阵列、sttram阵列、pcram阵列、tram阵列、rram阵列、nand快闪阵列及/或nor快闪阵列。阵列130可包括布置成由存取线(在本文中可称为字线或选择线)耦合的行及由感测线(在本文中可称为数据线或数字线)耦合的列的存储器单元。尽管在图1中展示单个阵列130,但实施例不限于此。例如,存储器装置120可包含多个阵列130(例如,dram单元、nand快闪单元等的多个存储体)。

存储器装置120包含锁存透过数据总线156(例如,i/o总线)通过i/o电路144提供的地址信号的地址电路142。可将状态及/或异常状态信息从存储器装置120上的存储器控制器140提供到包含频带外总线157(图1b中展示)的通道控制器143(图1b中展示),继而可将状态及/或异常状态信息从存储器装置120提供到主机110。地址信号通过地址电路142接收且由行解码器146及列解码器152解码以存取存储器阵列130。通过使用感测电路150感测数据线上的电压及/或电流变化而从存储器阵列130读取数据。感测电路150可从存储器阵列130读取且锁存数据页(例如,行)。i/o电路144可用于通过数据总线156与主机110进行双向数据通信。使用写入电路148来将数据写入到存储器阵列130。

存储器控制器140(例如,存储体控制逻辑及/或定序器)解码来自主机110、由控制总线154(例如,地址及控制(a/c)总线)提供的信号。这些信号可包含用来控制在存储器阵列130上执行的操作(包含数据读取、数据写入及数据擦除操作)的芯片启用信号、写入启用信号及地址锁存信号。在各种实施例中,存储器控制器140负责用于执行来自主机110的指令。存储器控制器140可为状态机、定序器或一些其它类型的控制器。控制器140可控制阵列(例如,存储器阵列130)中偏移数据(例如,向右或向左)。

下文进一步描述感测电路150的实例。例如,在多个实施例中,感测电路150可包括多个感测放大器及多个计算组件,所述多个计算组件可充当且在本文中称为累加器且可用来(例如,对与互补数据线相关联的数据)执行逻辑运算。

在多个实施例中,可使用感测电路150以利用存储在阵列130中的数据作为输入来执行逻辑运算,且将逻辑运算的结果存储回到阵列130,而非经由感测线地址存取转移数据(例如,不触发列解码信号)。因而,可使用感测电路150且在感测电路150内而非(或联合)由所述感测电路外部的处理资源执行各种计算功能。例如,可在不使用与主机110及/或位于装置120上(例如,位于控制器140或其它地方上)的其它处理电路(例如alu电路)相关联的处理器的情况下执行计算功能。

在各种先前方法中,例如,可经由感测电路从存储器读取与运算元相关联的数据,且经由i/o线(例如,经由局部i/o线及/或全局i/o线)将数据提供到外部alu电路。外部alu电路可包含多个寄存器并将使用运算元执行计算功能,且将结果经由i/o线转移回到阵列。相比之下,在本发明的多个实施例中,感测电路150经配置以对存储在存储器阵列130中的数据执行逻辑运算,且将结果存储回到存储器阵列130,而不启用耦合到感测电路150的i/o线(例如,局部i/o线)。感测电路150可与阵列的存储器单元形成在节距上。额外外围感测放大器、寄存器、高速缓存及/或数据缓冲(例如逻辑电路170)可耦合到感测电路150,且可用来存储(例如,高速缓存及/或缓冲)本文描述的运算的结果。

因而,在多个实施例中,阵列130及感测电路150外部的电路无需执行计算功能,因为感测电路150可执行适当逻辑运算,以在不使用外部处理资源的情况下执行此些计算功能。因此,可使用感测电路150以在至少一定程度上互补及/或替换此外部处理资源(或至少此外部处理资源的带宽消耗)。实际上,在存储器控制器120对具有块选择162及子行选择163元数据结构的高速缓存线160接收且操作后,阵列130及感测电路可根据实施例用作计算启用高速缓存。

然而,在多个实施例中,可使用感测电路150来执行除由外部处理资源(例如,主机110)执行的逻辑运算外的逻辑运算(例如,以执行指令)。例如,主机110及/或感测电路150可限于仅执行某些逻辑运算及/或特定数目的逻辑运算。

启用i/o线可包含启用(例如,接通)具有耦合到解码信号(例如,列解码信号)的栅极及耦合到i/o线的源极/漏极的晶体管。然而,实施例不限于不启用i/o线。例如,在多个实施例中,可使用感测电路(例如150)来执行逻辑运算而不启用阵列的列解码线;然而,可启用(若干)局部i/o线以将结果转移到适合位置而非返回到阵列130(例如,到外部寄存器)。

图1b是根据本发明的多个实施例的呈包含经由通道控制器143耦合到主机110的多个存储器装置120-1、...、120-n的计算系统100的形式的另一设备架构的框图。如本文所使用,通道控制器143希望包含具有硬件(例如,呈专用集成电路(asic)的形式)及/或固件的逻辑以实施一或多个特定功能。通道控制器的一个实例可包含状态机。另一实例可包含嵌入式处理资源。通道控制器143包含处置到装置的输入/输出(i/o)任务的逻辑。

在至少一个实施例中,通道控制器143可以集成方式且以模块118(例如,与多个存储器装置120-1、...、120-n形成在相同芯片上)的形式耦合到多个存储器装置120-1、...、120-n。在替代实施例中,通道控制器143可与(例如)形成在与多个存储器装置120-1、...、120-n分离的芯片上的主机110(由虚线111说明)集成。通道控制器143可经由控制总线154耦合到多个存储器装置120-1、...、120-n中的每一者,如图1a中描述,通道控制器143继而可耦合到主机110。通道控制器143还可经由数据总线156耦合到多个存储器装置120-1、...、120-n中的每一者,如图1a中描述,通道控制器143继而可耦合到主机110。另外,通道控制器143可经由与高速接口(hsi)141相关联的界外(oob)总线157耦合到多个存储器装置120-1、...、120-n中的每一者,高速接口(hsi)141经配置以将状态、异常状态及其它数据信息报告到通道控制器143以与主机110。

根据各种实施例,通道控制器143经耦合到多个存储器装置120-1、...、120-n且经配置以响应于接收到位向量运算请求而使得将整体无效命令发送到高速缓存存储器系统。在至少一个实施例中,通道控制器143包含经配置以响应于接收到位向量运算请求而生成整体无效命令的逻辑160。另外,通道控制器143可从与多个存储器装置120-1、...、120-n中的每一者中的存储体仲裁器145相关联的高速接口(hsi)(在本文中也称为状态通道接口)141接收状态及异常状态信息。在图1b的实例中,多个存储器装置120-1、...、120-n中的每一者可包含存储体仲裁器145以定序与多个存储体(例如,存储体零(0)、存储体一(1)、...、存储体六(6)、存储体七(7)等)有关的控制及数据。多个存储体(存储体0、...、存储体7)中的每一者可包含存储器控制器140及其它组件,包含存储器单元阵列130及感测电路150、逻辑电路170等,如结合图1a描述。

例如,多个存储器装置120-1、...、120-n中的多个存储体(例如,存储体0、...、存储体7)中的每一者可包含锁存通过控制总线154提供的地址信号的地址电路142且可包含接收通过数据总线156提供的数据的i/o电路144。可将状态及/或异常状态信息从存储器装置120上的存储器控制器140提供到通道控制器143。通道控制器143经配置以响应于接收到位向量运算请求而使得整体无效命令发送到高速缓存存储器系统且可使用控制总线154及/或oob总线157在多个存储器装置120-1、...、120-n与主机110之间通信。

对于多个存储体(例如,存储体0、...、存储体7)中的每一者,地址信号可通过地址电路142接收且由行解码器146及列解码器152解码以存取存储器阵列130。通过使用感测电路150感测数据线上的电压及/或电流变化而从存储器阵列130读取数据。感测电路150可从存储器阵列130读取且锁存数据页(例如,行)。i/o电路144可用于通过数据总线156与主机110进行双向数据通信。使用写入电路148将数据写入到存储器阵列130且可使用oob总线157将状态、异常状态及其它数据信息报告到通道控制器143。

通道控制器143可包含一或多个局部缓冲器161以存储指令且可包含逻辑160以分配每一相应存储体阵列中的多个位置(例如,子阵列或子阵列的部分)以存储与多个存储器装置120-1、...、120-n中的每一者的运算相关联的各种存储体的存储体命令及自变量(pim命令)。通道控制器143可将命令(例如,pim命令)发送到多个存储器装置120-1、...、120-n以存储存储器装置的给定存储体内的那些程序指令。

根据实施例,通道控制器143可包含逻辑160以将具有由位向量运算存储器装置(例如,pim装置)使用的位长度的位向量地址转换为具有由高速缓存存储器系统使用的不同位长度的高速缓存线地址。此外,通道控制器143可包含逻辑160以使得整体无效命令发送到高速缓存存储器系统。由与主机110相关联的高速缓存存储器113、逻辑资源112、高速缓存控制器115及/或无效引擎116表示高速缓存存储器系统(如本文使用的术语)的实例,如图1a中展示。如上述,术语“整体无效”希望意指在多个位置(例如,多个高速缓存线)中对无效信息寻址且操作而无须将无效指令单独寻址且传达到多个位置中的每一者的能力。整体无效命令包含使得高速缓存存储器系统将高速缓存条目标记为无效(也称为“无效”高速缓存条目或“高速缓存无效”操作)的指令。

使高速缓存条目或整个高速缓存线无效包括删除高速缓存条目或线的内容以腾出空间用于高速缓存存储器中的其它用途,例如以保存与pim运算相关联的pim命令及/或pim数据。在本文描述的一些实施例中,高速缓存无效操作在高速缓存存储器中腾出与正在pim装置上执行的运算搭配使用的空间。如上述,使高速缓存条目或整个高速缓存线无效在时间、电力及资源使用上比清空高速缓存线或整个高速缓存存储器更便宜。而且,清空高速缓存存储器涉及将高速缓存条目回写到存储器且接着删除高速缓存条目以腾出空间用于高速缓存存储器中的其它用途,例如pim运算。另外,使高速缓存条目或整个高速缓存线无效比将特定页标记为不可高速缓存(在高速缓存存储器中不可使用)更便宜,这仅消耗高速缓存存储器系统上的有价值空间。

例如,本文揭示的实施例可有利地允许使用单个整体无效命令使多级高速缓存存储器系统中的多个高速缓存线无效,所述单个整体无效命令经配置以由高速缓存存储器系统接收。在一个实例中,末级高速缓存(llc)可接收可由每一高速缓存级内的无效引擎共享且操作的整体无效命令以使可位于那个高速缓存级中的任何高速缓存线无效。以这种方式,可保留带宽资源、可增加操作速度且可减少电力消耗。另外,以这种方式,可遵循由高速缓存存储器系统使用的高速缓存一致性协议(例如,mesi(修改、独有、共享、无效)或基于目录的高速缓存一致性协议),同时避免浪费地及昂贵地(在高速缓存资源、电力消耗及时间方面)清空整个高速缓存级及/或避免由高速缓存存储器系统使用的软件、固件及/或逻辑将整页高速缓存标记为“不可高速缓存”。此外,实施例可避免研发努力将具有一个位长度的位向量的基于位向量的运算装置(例如,pimram装置)链接到具有不同位长度的高速缓存线尺寸的高速缓存存储器系统的昂贵架构。例如,根据许多各种高速缓存一致性协议及系统将pimram架构标记为完全知道高速缓存一致性协议可为十分复杂及昂贵的架构设计问题(具体问题具体分析)。

如上文结合图1a描述,存储器阵列130可为(例如)dram阵列、sram阵列、sttram阵列、pcram阵列、tram阵列、rram阵列、3dxpoint阵列、nand快闪阵列及/或nor快闪阵列。阵列130可包括布置成由存取线(在本文中可称为字线或选择线)耦合的行及由感测线(在本文中可称为数据线或数字线)耦合的列的存储器单元。

如在图1a中,与给定存储器装置120-1、...、120-n中的任何特定存储体(存储体0、...、存储体7)相关联的存储器控制器140(例如,存储体控制逻辑及/或定序器)可解码来自主机110、由控制总线154提供的信号。这些信号可包含用来控制对存储在存储器阵列130中的存储器单元上的数据执行的运算(包含数据读取、数据写入及数据擦除操作以及逻辑布尔运算(例如and、or、xor等))的芯片启用信号、写入启用信号及地址锁存信号。在各种实施例中,存储器控制器140可负责用于执行来自主机110及/或存储器装置120上其它地方的指令。而且,如上述,存储器控制器140可为状态机、定序器或一些其它类型的控制器。例如,控制器140可控制阵列(例如,存储器阵列130)中的偏移数据(例如,向右或向左)。

图1c是根据本发明的多个实施例的说明pim装置120、通道控制器143与具有多个处理资源112-1、...、112-m及多个高速缓存级113-1、...、113-n的主机110之间的消息交换的框图。图1c中展示的实例说明“m”个处理核心,其中每一处理核心具有第一级高速缓存,例如113-1-1、...、113-1-m。然而,实施例不限于特定数目的处理核心或与那些处理核心相关联的第一级高速缓存。仅出于说明目的给出可变“m”且可变“m”可与其它变数表示(“n”)相同或不同。如上述,每一级高速缓存可与高速缓存控制器(例如,图1a及1b中展示的115)介接且给定高速缓存级可与那级高速缓存的硬件(如专用集成电路(asic))及/或固件中提供的无效引擎(例如,状态机)116-1、...、116-n相关联。在图1c的实例中,对于与处理核心112-1、...、112-m相关联的每一级一个高速缓存(l1)展示无效引擎116-1、...、116-n。

如图1c的实例中展示,通道控制器143可耦合到主机110且耦合到存储器装置120。通道控制器143可包含与上文结合图1b描述相同的通道控制器143。存储器装置120可包含可位向量运算的存储器装置(例如,pim装置120),所述存储器装置包含存储器单元阵列130及与结合本文实施例描述相同的存储器控制器140。

如图1c中展示,通道控制器143可从主机110及/或从位向量运算存储器装置(例如,pim装置)接收基于位向量的运算请求182(例如,pim命令、pim向量运算指令)。通道控制器143经配置以具有呈硬件及/或固件形式的逻辑(例如,图1b中展示的逻辑160)以寻找用于基于位向量的运算请求中涉及的位向量(例如,源位向量及目的地位向量)的基础地址。例如,通道控制器143可使用逻辑来识别用于接收为位向量运算请求182的部分的在包的字段中含有的位向量运算存储器装置的位向量虚拟地址。通道控制器143可进一步经配置以基于所识别位向量虚拟地址而使用逻辑来使得整体无效命令184发送到与主机110相关联的高速缓存存储器系统。根据本文描述的实施例,整体无效命令184可由通道控制器143生成且包括基础地址及关于基于高速缓存的存储器系统的长度。

在一些实施例中,如图1c的实例中展示,通道控制器143经配置有根据mesi(修改、独有、共享、无效)高速缓存一致性协议将整体无效命令184发送186(例如,广播)到与主机110相关联的所有高速缓存级113-1、...、113-n的逻辑。在接收整体无效命令184后,与每一高速缓存级113-1、...、113-n相关联的无效引擎116-1、...、116-n将对整体无效命令操作以使相应高速缓存级中的相关高速缓存线无效。以这种方式,单个高速缓存无效请求可使主机110的高速缓存存储器系统中的高速缓存存储器的各种高速缓存级113-1、...、113-n处的多个连续高速缓存线无效,主机110含有表示pim装置120中的位向量或形状的信息,例如数据。

在替代实施例中,通道控制器143可经配置以将整体无效命令184发送到与主机110相关联的末级高速缓存(llc)113-n,在主机110处,与llc113-n相关联的无效引擎可根据基于目录的高速缓存一致性协议对整体无效命令184操作以使llc113-n中的相关高速缓存线无效且进一步将整体无效命令184发送(例如,分配)到下级高速缓存(例如,113-3等)。实施例不限于这些实例。

在至少一个实施例中,通道控制器143可经配置有响应于接收到“加法”位向量运算请求而按以下方式生成整体无效命令184的逻辑。通道控制器143可从主机及/或从含有信息字段的位向量运算存储器装置(例如,pim装置)接收指令包。在一个实例中,信息字段可包含addvecdest、source0、source1及veclen。指令包中的addvecdest、source0、source1及veclen字段可在长度上为可变数目的位且表示将在运算(例如,位向量运算)中使用的各种地址。在这个实例中,含有addvecdest、source0、source1及veclen字段的包可表示由位向量运算存储器装置(例如,pim装置)接收的减加位向量指令,所述指令使定位在pim装置中的source0及source1虚拟地址处的source0及source1位向量值相加且将加法运算中的所得值存储到由addvecdest字段中到指令包的地址指示的目的地位向量虚拟地址。

source0、source1、dest字段可均含有表示位向量运算存储器装置(例如,pim装置)中与位向量运算请求相关联的位向量的起始位置地址的位向量“基础地址”。在至少一个实例性实施例中,veclen可为表示与位向量运算请求相关联的位向量的位长度的整数。根据各种实施例,由veclen给出的整数可以字节、元(其中元具有固定或可变位长度)、行(例如,pim装置阵列中的行,所述行可具有已知位长度)为单位,或以高速缓存线(例如,与主机或与pim装置高速缓存存储器系统相关联的高速缓存线,其中所述高速缓存线可具有已知位长度)为单位。实施例不限于这些实例。

在一个实例性实施例中,通道控制器143包括经配置以生成关于与位向量运算请求相关联的每一位向量的整体无效命令的逻辑(例如,图1b中展示的逻辑160)。例如,在上文给出的“加法”位向量运算请求实例中,参考dest位向量、source0位向量及source1位向量,与通道控制器143相关联的逻辑可经配置以生成三(3)个整体无效命令且将那些整体无效命令发送到主机110及/或位向量运算存储器装置(例如,pim装置)以由在主机110及/或位向量运算存储器装置上使用的高速缓存一致性协议使用,以将主机110的基于高速缓存的系统或其它装置链接到位向量运算存储器装置120上的基于位向量的运算。例如,其它装置可为对与高速缓存存储器系统的高速缓存线位长度不同的位向量长度操作的装置。

为此,与通道控制器143相关联的逻辑可将位向量运算请求中含有的dest、source0及source1位向量地址尺寸转换为关于给定高速缓存存储器系统的高速缓存线尺寸地址。高速缓存存储器系统可为主机的高速缓存存储器系统或另一高速缓存存储器系统,例如位向量运算存储器装置120上的高速缓存存储器系统。实施例不限于与基于特定高速缓存的存储器系统相关联的特定高速缓存线地址尺寸。例如,主机可具有128字节(一千位(1k))高速缓存线地址尺寸。这个实例还可表达为128字节高速缓存线地址尺寸。在这个实例中,位向量运算存储器装置120(例如,pim装置)可具有64位虚拟地址空间。为转换pim装置120的dest、source0及source1位向量地址尺寸,通道控制器可使用0xffffffffffffff80的六边形掩码值对位向量基础地址的每一位值执行逻辑and运算以生成正确高速缓存线地址尺寸。

而且,这是有利的,因为如果多个高速缓存线上的高速缓存存储器系统中含有位向量,则高速缓存存储器系统将无须清空整个高速缓存或将特定页标记为“不可高速缓存”,这在运算时间、电力及带宽消耗方面是昂贵的。

可将表示位长度值(在这个实例中是“字节”)的veclen整数值转换为将基于上述对齐无效的多个高速缓存线。给定位向量地址addr(在这个实例中是dest、source0或source1),那么可(例如)由与通道控制器相关联的逻辑根据以下算式运算将无效的多个高速缓存线:

如果(((veclen%128)==0)且(addr&0xffffffffffffff80)==0))

那么numlines=veclen/128;

否则

numlines=veclen/128+1;

接着,通道控制器143可使用基础地址addr(例如,用于dest、source0或source1的基础地址)及numlines作为自变量来生成整体无效命令以发送到(例如)与主机110、pim装置高速缓存系统等相关联的基于给定高速缓存的存储器系统的高速缓存一致性协议方案中的例程。在向量不是高速缓存线数目的倍数的情况中,numlines允许为向量的部分的每个高速缓存线无效。可将这个整体无效命令发送到可为高速缓存存储器(例如,另一装置、pim装置等)的任何高速缓存存储器系统。与接收整体无效命令的处理资源相关联的每一高速缓存级113-1、...、113-n可使用相关联无效引擎(例如,状态机)116-1、...、116-n来生成用于可在那个相应高速缓存级113-1、...、113-n中高速缓存的任何线的高速缓存无效。举例来说且不限于,

其中(i=0;i<numlines;i++{如果(m(addr+i*128)是在这个高速缓存中){无效且如果应高速缓存一致性协议政策需要,那么清空线(例如,如果所述线是非正常的)}}

如图1c中展示,根据高速缓存存储器系统的高速缓存一致性协议,在无效运算结束时,(例如)主机110上的高速缓存存储器系统可以用无效已完成的确认187对通道控制器143做出响应。根据一些实施例,响应于通道控制器143接收到所有无效已完成的确认187,通道控制器143可在188处指导位向量运算存储器装置120执行与由通道控制器143接收的位向量运算请求相关联的位向量运算。例如,所述通道控制器可将指令188发送到位向量运算存储器装置120(例如,pim装置)上的存储器控制器140(例如,定序器)以开始位向量运算请求中指示的位向量运算(例如,pim向量运算)。在各种实施例中,通道控制器143可使用如图1b中展示的控制器154及/或数据总线156指导pim装置120开始位向量运算。

读者将明白,在至少一个替代实施例中,通道控制器143可生成整体无效命令且通过在基于高速缓存的存储器系统中计算地址范围以使其无效来发送整体无效命令以由高速缓存一致性协议使用以将基于高速缓存的存储器系统链接到位向量运算存储器装置上的基于位向量的运算。这个方法的一个实例性实施例可包括根据以下计算生成地址范围以使其无效的通道控制器。

(包含)(addr/高速缓存线尺寸)...((addr+veclen+1)/高速缓存线尺寸)(不包含)。

在额外实施例中,可使用与通道控制器143相关联的逻辑(例如,图1b中的160)来追踪位向量运算存储器装置120上的进行中的位向量运算以操作为基于交易的存储器。例如,通道控制器143可通过位向量(例如,上述实例中的addr到addr+(veclen*128))追踪进行中的pim运算以根据高速缓存一致性协议修改响应对高速缓存存储器系统的存取请求的行为。

因此,根据各种揭示的实施例,一种用于操作存储器的方法可包含由通道控制器生成且发送到高速缓存存储器系统的整体无效命令,包括到高速缓存存储器系统的暂时拒绝“独有存取”(例如,在mesi高速缓存一致性协议中)或当执行pim位向量运算时更新对高速缓存存储器的无效部分的请求的指令。整体无效命令指令还可包含暂停对高速缓存存储器的无效部分的独有存取或更新请求直到pim位向量运算完成或可中断的指令。

此外,整体无效命令指令可包含当执行pim位向量运算时允许读取对高速缓存存储器的无效部分的存取的指令。整体无效命令指令可包含将元数据添加到高速缓存存储器系统的高速缓存一致性协议且将高速缓存线标记为在任何地方使用且不共享的指令。整体无效命令指令可包含停止pim位向量运算以允许完成高速缓存操作的指令。而且,整体无效命令指令可包含停止pim位向量运算、重新调度pim位向量运算、暂时提供对所请求高速缓存数据的存取且生成对高速缓存存储器系统的新整体无效命令以恢复pim位向量运算的指令。然而,实施例不限于这些实例。

图1d是根据本发明的多个实施例的到存储器装置的存储体121-1的框图。例如,存储体121-1可表示到存储器装置的实例性存储体,例如图1b中展示的存储体0、...、存储体7(121-0、...、121-7)。如图1d中展示,存储体架构可包含多个主要存储器列(水平展示为x),例如实例性dram存储体中的16,384个行。另外,存储体121-1可分成由数据路径的放大区域分离的区段123-1、123-2、...、123-n。存储体区段123-1、...、123-n中的每一者可包含多个行(垂直展示为y),例如,每一区段在实例性dram存储体中可包含16,384个行。实例性实施例不限于本文描述的列及行的实例性水平及/或垂直定向或其实例性数字。

如图1d中展示,存储体架构可包含耦合到存储体区段123-1、...、123-n的逻辑电路170,包含感测放大器、寄存器、高速缓存及数据缓冲。逻辑电路170可提供与存储器控制器140相关联的另一形式的高速缓存,举例来说,与如图1a中展示的感测电路150及阵列130相关联的逻辑电路170。此外,如图1d中展示,存储体架构可与存储体控制器(例如,存储器控制器140)相关联。在实例中,图1d中展示的存储体控制器可表示由图1a及图1b中展示的存储器控制器140体现且含有的功能的至少部分。

图1e是根据本发明的多个实施例的到存储器装置的存储体121的另一框图。例如,存储体121可表示到存储器装置的实例性存储体,例如图1b中展示的存储体0、...、存储体7(121-0、...、121-7)。如图1e中展示,存储体架构可包含地址/控制(a/c)路径,例如,耦合到控制器140的控制总线153。而且,图1e中展示的控制器140在实例中可表示由图1a及1b中展示的存储器控制器140体现且含有的功能的至少部分。而且,如图1c中展示,存储体架构可包含在指令(例如,程序指令(pim命令))中耦合到多个控制/数据寄存器的数据路径(例如,总线155)、读取路径且耦合到多个存储体区段,例如特定存储体121中的存储体区段123。

如图1e中展示,存储体区段123可进一步细分成多个子阵列125-1、125-2、...、125-n,所述多个子阵列再次被如图1a中展示且进一步结合图2到4描述的多个感测电路及逻辑150/170分离。在一个实例中,存储体区段121可分成十六(16)个子阵列。然而,实施例不限于这个实例性数字。

图1e说明耦合到写入路径149且耦合到存储体123中的子阵列125-1、...、125-n中的每一者的存储体控制器/定序器140。替代地或另外,图1a中展示的逻辑电路170可用作指令高速缓存,例如用来高速缓存及/或重新高速缓存特定存储体本地(“节距上”)的已检索指令。在至少一个实施例中,多个子阵列125-1、...、125-n及/或多个子阵列的部分可称为用于将程序指令(例如,pim命令)及/或常数数据存储到存储器装置中的存储体123的多个位置。

根据本发明的实施例,存储器控制器140(例如,图1b中展示的存储体控制器/定序器140)经配置以从主机(例如,图1a中的主机110)接收指令及/或常数数据的块。替代地,指令及/或常数数据的块可从通道控制器143接收到存储器控制器140,通道控制器143与主机110集成或分离,例如以模块118的形式与多个存储器装置120-1、...、120-n集成,如图1b中展示。

指令及/或数据的块可包含一组程序指令,例如pim命令及/或常数数据(例如,对于pim计算设置的数据)。根据实施例,存储器控制器140经配置以存储来自主机110及/或通道控制器143的指令及/或常数数据的块,主机110及/或通道控制器143与阵列(例如,图1a中展示的阵列130)及/或存储体(例如,图1b、1d及1e中展示的存储体121-0、...、121-7)的存储体区段123(图1d/1e中展示)相关联。存储器控制器140进一步经配置(例如,包含呈硬件电路及/或专用集成电路(asic)形式的逻辑)以将程序指令路由到感测电路(包含计算组件,例如图1a中展示为150的感测电路以及图2及3中的计算组件231及331)以执行逻辑功能及/或运算,例如如本文描述的程序指令执行。

如图1e中展示,在至少一个实施例中,存储器控制器140经配置以使用dram协议及dram逻辑及电接口以从主机110及/或通道控制器143接收程序指令及/或常数数据且将程序指令及/或常数数据路由到感测电路150、250及/或350的计算组件。接收到存储器控制器140的程序指令及/或常数数据可由程序员预先解决(例如,预先定义)及/或提供到主机110及/或通道控制器143。

在一些实施例中,如图1b中所见,存储器单元阵列(图1a中的130)包含多个存储器单元存储体120-1、...、120-n且存储器装置120包含耦合到多个存储体120-1、...、120-n中的每一者的存储体仲裁器145。在这些实施例中,每一存储体仲裁器经配置以从存储体仲裁器145接收关于特定存储体的程序指令及/或常数数据的指令块。接着,存储器控制器140可将所接收指令块中的指令及/或常数数据存储到由主机110及/或通道控制器143分配的特定存储体的多个位置。例如,主机110及/或通道控制器143经配置以地址平移存储体仲裁器145的多个位置以将多个位置指派到存储器装置120的存储体。

在至少一个实施例中,如图1e中展示,多个位置包含dram存储体121-1、...、121-7中的多个子阵列125-1、...、125-n及/或多个子阵列的部分。根据实施例,每一存储器控制器140可经配置以(例如)在a/c总线154上从主机110及/或通道控制器143接收高速缓存线160以存储接收到给定存储体121-1、...、121-7的高速缓存块。接着,存储器控制器140经配置以(例如)在具有控制及数据寄存器151的读取数据路径155上从特定存储体的多个位置检索高速缓存块数据且使用感测电路150的计算组件来执行。存储器控制器140可高速缓存特定存储体(例如,阵列130、存储体区段123及/或子阵列125)本地的所检索高速缓存块以处置支路、回路、指令块执行内含有的逻辑及数据运算。而且,存储器控制器140可根据需要重新高速缓存所检索指令。因此,dram部分上的专属指令存储器(高速缓存)的尺寸无须对于pim系统增大。

在一些实施例中,多个存储器装置120-1、...、120-n经耦合到主机110及/或通道控制器143。在本文中,主机110及/或通道控制器143可(例如)通过数据总线156将高速缓存块发送到多个存储器装置120-1、...、120-n的适当存储体仲裁器145-1、...、145-n。

此外,根据实施例,存储器控制器140经配置使得存储体121可接收后续高速缓存线160,后续高速缓存线160与关于特定存储体的另一高速缓存块相关联且当(例如)存储器控制器140对另一先前检索的高速缓存块平行操作时使用所接收高速缓存线160中的块选择162及子行选择163元数据数据结构来将高速缓存块存储且存取到特定存储体的多个位置及/或从特定存储体的多个位置存储且存取高速缓存块。因此,本文描述的实施例避免需要等待将从主机110及/或通道控制器143接收的未来或下一组高速缓存块存取指令,例如pim命令。相反,本文描述的设备及方法装置促进存储器装置120用作高速缓存块的dram部分中的末层高速缓存(llc)且可促进直接位于芯片上且与pim系统中的存储器装置120(例如,pimram)有一定节距的运算启用高速缓存。

读者将明白且如在图2到4的实例中更详细描述,存储器控制器140经配置以通过控制感测电路150(包含计算组件251及/或351)而控制程序指令(例如,pim命令)的执行以实施逻辑功能,例如and、or、not、nand、nor及xor逻辑功能。另外,存储器控制器140经配置以控制感测电路150执行非布尔逻辑运算(包含复制、比较及擦除操作)作为执行程序指令(例如,pim命令)的部分。

图2是说明根据本发明的多个实施例的感测电路250的示意图。感测电路250可对应于图1a中展示的感测电路150。存储器单元包括存储元件(例如,电容器)及存取装置(例如,晶体管)。例如,第一存储器单元包括晶体管202-1及电容器203-1,且第二存储器单元包括晶体管202-2及电容器203-2等。在这个实例中,存储器阵列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_)。尽管在图2中仅展示一对互补数据线,但本发明的实施例不限于此,且存储器单元的阵列可包含存储器单元的额外列及/或数据线(例如4,096、8,192、16,384等)。

存储器单元可耦合到不同数据线及/或字线。例如,晶体管202-1的第一源极/漏极区域可耦合到数据线205-1(d),晶体管202-1的第二源极/漏极区域可耦合到电容器203-1,且晶体管202-1的栅极可耦合到字线204-y。晶体管202-2的第一源极/漏极区域可耦合到数据线205-2(d_),晶体管202-2的第二源极/漏极区域可耦合到电容器203-2,且晶体管202-2的栅极可耦合到字线204-x。如图2中展示的单元板可耦合到电容器203-1及203-2中的每一者。单元板可为在各种存储器阵列配置中可被施加参考电压(例如,接地)施加的共同节点。

根据本发明的多个实施例,存储器阵列230经耦合到感测电路250。在这个实例中,感测电路250包括对应于相应存储器单元列(例如,耦合到相应互补数据线对)的感测放大器206及计算组件231。感测放大器206可耦合到互补感测线对205-1及205-2。计算组件231可经由通过门207-1及207-2耦合到感测放大器206。通过门207-1及207-2的栅极可耦合到逻辑运算选择逻辑213。

逻辑运算选择逻辑213可经配置以包含:通过门逻辑,其用于控制耦合未在感测放大器206与计算组件231(如图2中展示)之间转置的互补感测线对的通过门;及/或交换门逻辑,其用于控制耦合感测放大器206与计算组件231之间转置的互补感测线对的交换门。逻辑运算选择逻辑213还可耦合到互补感测线对205-1及205-2。逻辑运算选择逻辑213可经配置以基于选定逻辑运算来控制通过门207-1及207-2的连续性,如下文对于逻辑运算选择逻辑213的各种配置详细描述。

感测放大器206可经操作以确定存储在选定存储器单元中的数据值(例如,逻辑状态)。感测放大器206可包括交叉耦合锁存器(在本文中可称为主锁存器)。在图2中说明的实例中,对应于感测放大器206的电路包括锁存器215,锁存器215包含耦合到互补数据线对d205-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可称为主锁存器。

在操作中,当感测(例如,读取)存储器单元时,数据线205-1(d)或205-2(d_)中的一者上的电压将稍大于数据线205-1(d)或205-2(d_)中的另一者上的电压。可将act信号及rnl*信号驱动为低以启用(例如,触发)感测放大器206。具有较低电压的数据线205-1(d)或205-2(d_)将接通pmos晶体管229-1或229-2中的一者,接通程度比pmos晶体管229-1或229-2中的另一者更大,借此将具有较高电压的数据线205-1(d)或205-2(d_)驱动为高,驱动程度比将其它数据线205-1(d)或205-2(d_)驱动为高更大。

类似地,具有较高电压的数据线205-1(d)或205-2(d_)将接通nmos晶体管227-1或227-2中的一者,接通程度比nmos晶体管227-1或227-2中的另一者更大,借此将具有较低电压的数据线205-1(d)或205-2(d_)驱动为低,驱动程度比将其它数据线205-1(d)或205-2(d_)驱动为低更大。因此,在短暂延迟之后,通过源极晶体管211将具有稍大电压的数据线205-1(d)或205-2(d_)驱动为电源电压vcc的电压,且通过漏型晶体管213将其它数据线205-1(d)或205-2(d_)驱动为参考电压(例如,接地)的电压。因此,交叉耦合的nmos晶体管227-1及227-2以及pmos晶体管229-1及229-2充当放大数据线205-1(d)及205-2(d_)上的差分电压且进行操作以锁存从选定存储器单元感测的数据值的感测放大器对。

实施例不限于图2中说明的感测放大器206配置。举例来说,感测放大器206可为电流模式感测放大器及/或单端感测放大器(例如,一个数据线耦合到感测放大器)。而且,本发明的实施例不限于例如图2中展示的折叠式数据线架构。

感测放大器206可结合计算组件231操作以使用来自阵列的数据作为输入而执行各种逻辑运算。在多个实施例中,可将逻辑运算的结果存储回到阵列而不经由数据线地址存取转移数据(例如,不触发列解码信号使得数据经由局部i/o线转移到来自阵列及感测电路外部的电路)。因而,本发明的多个实施例可实现使用比各种先前方法更少的电力来执行逻辑运算及与其相关联的计算功能。另外,由于多个实施例消除跨i/o线转移数据以执行计算功能(例如,在存储器与离散处理器之间)的需要,所以多个实施例与先前方法相比可实现增加的平行处理能力。

感测放大器206可进一步包含可经配置以平衡数据线205-1(d)及205-2(d_)的平衡电路214。在这个实例中,平衡电路214包括耦合在数据线205-1(d)与205-2(d_)之间的晶体管224。平衡电路214还包括晶体管225-1及225-2,每一晶体管具有耦合到平衡电压(例如,vdd/2)的第一源极/漏极区域,其中vdd是与阵列相关联的电源电压。晶体管225-1的第二源极/漏极区域可耦合数据线205-1(d),且晶体管225-2的第二源极/漏极区域可耦合数据线205-2(d_)。晶体管224、225-1及225-2的栅极可耦合在一起且经耦合到平衡(eq)控制信号线226。因而,启动eq可启用晶体管224、225-1及225-2,这有效地将数据线205-1(d)及205-2(d_)短接在一起且短接到平衡电压(例如,vdd/2)。

尽管图2展示包括平衡电路214的感测放大器206,但实施例不限于此,且平衡电路214可与感测放大器206离散地实施,在与图2中展示的配置不同的配置中实施或根本不实施。

如下文进一步描述,在多个实施例中,感测电路250(例如,感测放大器206及计算组件231)可经操作以执行选定逻辑运算且最初将结果存储在感测放大器206或计算组件231中一者中而不经由i/o线转移来自所述感测电路的数据(例如,不经由启动(例如)列解码信号而执行数据线地址存取)。

逻辑运算(例如,涉及数据值的布尔逻辑功能)的性能是基础及常用的。在许多较高级功能中使用布尔逻辑功能。因此,可利用改善式逻辑运算实现的速度及/或功率效率可转化成较高级功能的速度及/或功率效率。

如图2中展示,计算组件231还可包括在本文中可称为副锁存器264的锁存器。副锁存器264可以与上文关于主锁存器215描述的方式类似的方式配置且操作,但包括副锁存器的交叉耦合p通道晶体管对(例如,pmos晶体管)可具有耦合到电源电压(例如,vdd)的相应源极,且副锁存器的交叉耦合n通道晶体管对(例如,nmos晶体管)可具有选择性地耦合到参考电压(例如,接地)的相应源极,使得连续启用副锁存器。计算组件的配置不限于图2中的231处展示的配置,且下文进一步描述各种其它实施例。

图3是说明根据本发明的多个实施例的能够实施xor逻辑运算的感测电路的示意图。图3展示耦合到互补感测线对305-1及305-2的感测放大器306、及经由通过门307-1及307-2耦合到感测放大器306的计算组件331。图3中展示的感测放大器306可对应于图2中展示的感测放大器206。图3中展示的计算组件331可对应于感测电路150,包含图1a中展示的计算组件。图3中展示的逻辑运算选择逻辑313可对应于图2中展示的逻辑运算选择逻辑213。

通过门307-1及307-2的栅极可受逻辑运算选择逻辑信号pass控制。例如,逻辑运算选择逻辑的输出可耦合到通过门307-1及307-2的栅极。计算组件331可包括经配置以使数据值左右移位的可加载移位寄存器。

图3中展示的感测电路还展示耦合到多个逻辑选择控制输入控制线(包含iso、tf、tt、ft及ff)的逻辑运算选择逻辑313。当经由确证iso控制信号而启用隔离晶体管350-1及350-2时,从逻辑选择控制输入线上的逻辑选择控制信号的状态以及互补感测线对305-1及305-2上存在的数据值确定多个逻辑运算中的逻辑运算的选择。

根据各种实施例,逻辑运算选择逻辑313可包含四个逻辑选择晶体管:逻辑选择晶体管362,其经耦合在交换晶体管342的栅极与tf信号控制线之间;逻辑选择晶体管352,其经耦合在通过门307-1及307-2的栅极与tt信号控制线之间;逻辑选择晶体管354,其经耦合在通过门307-1及307-2的栅极与ft信号控制线之间;及逻辑选择晶体管364,其经耦合在交换晶体管342的栅极与ff信号控制线之间。逻辑选择晶体管362及352的栅极通过隔离晶体管350-1(具有耦合到iso信号控制线的栅极)耦合到真实感测线。逻辑选择晶体管364及354的栅极通过隔离晶体管350-2(还具有耦合到iso信号控制线的栅极)耦合到互补感测线。

互补感测线对305-1及305-2上存在的数据值可经由通过门307-1及307-2加载到计算组件331中。计算组件331可包括可加载移位寄存器。当通过门307-1及307-2开启时,互补感测线对305-1及305-2上的数据值传递到计算组件331且借此加载到可加载移位寄存器中。当触发感测放大器时,互补感测线对305-1及305-2上的数据值可为存储在感测放大器306中的数据值。逻辑运算选择逻辑信号pass为高的以开启通过门307-1及307-2。

iso、tf、tt、ft及ff控制信号可操作以基于感测放大器306中的数据值(“b”)及计算组件331中的数据值(“a”)来选择实施逻辑功能。特定来说,iso、tf、tt、ft及ff控制信号经配置以独立于互补感测线对305-1及305-2上存在的数据值来选择实施逻辑功能(尽管所实施逻辑运算的结果可取决于互补感测线对305-1及305-2上存在的数据值)。例如,iso、tf、tt、ft及ff控制信号选择直接实施逻辑运算,因为互补感测线对305-1及305-2上存在的数据值不通过逻辑传递以操作通过门307-1及307-2的栅极。

另外,图3展示经配置以在感测放大器306与计算组件331之间交换互补感测线对305-1及305-2的定向的交换晶体管342。当交换晶体管342开启时,交换晶体管342的感测放大器306侧上的互补感测线对305-1及305-2上的数据值相对地耦合到交换晶体管342的计算组件331上的互补感测线对305-1及305-2,且借此加载到计算组件331的可加载移位寄存器中。

当启动iso控制信号线并且启动tt控制信号(例如,高)且真实感测线上的数据值是“1”或启动ft控制信号(例如,高)且互补感测线上的数据值是“1”时,可启动逻辑运算选择逻辑信号pass(例如,高)以开启通过门307-1及307-2(例如,导通)。

真实感测线上的数据值是“1”开启逻辑选择晶体管352及362。互补感测线上的数据值是“1”开启逻辑选择晶体管354及364。如果iso控制信号或相应tt/ft控制信号或对应感测线(例如,特定逻辑选择晶体管的栅极所耦合的感测线)上的数据值不高,那么通过门307-1及307-2将不由特定逻辑选择晶体管来开启。

当启动iso控制信号线且启动tf控制信号(例如,高)(其中真实感测线上的数据值是“1”)或启动ff控制信号(例如,高)(其中互补感测线上的数据值是“1”)时,可启动逻辑运算选择逻辑信号pass*(例如,高)以开启交换晶体管342(例如,导通)。如果相应控制信号或对应感测线(例如,特定逻辑选择晶体管的栅极所耦合的感测线)上的数据值不高,那么交换晶体管342将不由特定逻辑选择晶体管来开启。

pass*控制信号不必与pass控制信号互补。同时启动或撤销pass及pass*控制信号两者是可能的。然而,同时启动pass及pass*控制信号两者使互补感测线对短接在一起,这可为将避免的毁灭性配置。

图3中说明的感测电路经配置以直接从四个逻辑选择控制信号选择实施多个逻辑运算中的一者(例如,逻辑运算选择不取决于互补感测线对上存在的数据值)。逻辑选择控制信号的一些组合可使得通过门307-1及307-2两者及交换晶体管342同时开启,这使互补感测线对305-1及305-2短接在一起。根据本发明的多个实施例,可由图3中说明的感测电路实施的逻辑运算可为图4中展示的逻辑表中概述的逻辑运算。

图4是说明根据本发明的多个实施例的由图3中展示的感测电路实施的可选逻辑运算结果的逻辑表。可使用结合互补感测线上存在的特定数据值的四个逻辑选择控制信号(例如,tf、tt、ft及ff)来选择实施多个逻辑运算中的一者,这涉及起始存储在感测放大器306及计算组件331中的数据值。四个控制信号结合互补感测线上存在的特定数据值控制通过门307-1及307-2以及交换晶体管342的连续性,继而影响触发前/后的计算组件331及/或感测放大器306中的数据值。可选地控制交换晶体管342的连续性的能力促进实施尤其涉及逆数据值(例如,逆运算元及/或逆结果)的逻辑运算。

图4中说明的逻辑表4-1展示存储在444的列a中展示的计算组件331中的起始数据值及存储在445的列b中展示的感测放大器306中的起始数据值。逻辑表4-1中的其它3列标题是指通过门307-1及307-2以及交换晶体管342的连续性,通过门307-1及307-2以及交换晶体管342可分别经控制以结合互补感测线对305-1及305-2上存在的特定数据值、取决于四个逻辑选择控制信号(例如,tf、tt、ft及ff)的状态而开启或闭合。“不开启”列对应于处于非导通状态的通过门307-1及307-2以及交换晶体管342,“真实开启”对应于处于导通状态的通过门307-1及307-2,且“逆开启”对应于处于导通状态的交换晶体管342。对应于均处于导通状态的通过门307-1及307-2以及交换晶体管342的配置未在逻辑表4-1中反映,因为感测线中的这个结果短接在一起。

逻辑表4-1的上部分的三列中的每一者可经由通过门307-1及307-2以及交换晶体管342的连续性的选择控制而与逻辑表4-1的下部分的三列中的每一者组合以提供3x3=9个不同结果组合,这对应于如由475处展示的各种连接路径指示的九个不同逻辑运算。在图4中说明的逻辑表4-2中概述可由感测电路(例如,图1a中的150)实施的九个不同可选择逻辑运算,包含xor逻辑运算。

图4中说明的逻辑表4-2的列展示包含逻辑选择控制信号的状态的标题480。例如,行476中提供第一逻辑选择控制信号的状态,行477中提供第二逻辑选择控制信号的状态,行478中提供第三逻辑选择控制信号的状态,且行479中提供第四逻辑选择控制信号的状态。行447中概述对应于结果的特定逻辑运算。

虽然已在本文中说明及描述包含感测电路、感测放大器、计算组件、动态锁存器、隔离装置及/或移位电路的各种组合及配置的实例性实施例,但本发明的实施例不限于本文明确所述的那些组合。本文揭示的感测电路、感测放大器、计算组件、动态锁存器、隔离装置及/或移位电路的其它组合及配置明确包含在本发明的范围内。

尽管在本文中已说明及描述具体实施例,但所属领域的一般技术人员将明白,经计算以达成相同结果的布置可替换所展示的具体实施例。本发明希望涵盖本发明的一或多个实施例的调适或变动。应了解,已按说明性方式而非限制性方式进行上文描述。所属领域的技术人员在检视上文描述后将明白上述实施例及本文中未具体描述的其它实施例的组合。本发明的一或多个实施例的范围包含其中使用上述结构及方法的其它应用。因此,应参考所附权利要求书以及本权利要求书所授权的等效物的全范围来确定本发明的一或多个实施例的范围。

在前文的具体实施方式中,出于简化本发明的目的,将一些特征组合在单个实施例中。这种发明方法不应被解译为反应本发明的所揭示实施例必须使用比在每一权利要求中明确所述更多的特征的希望。相反,如下文权利要求书所反映,本发明标的物在于少于单个揭示实施例的所有特征。因此,下文权利要求书在本文中并入到[具体实施方式]中,其中每一权利要求独立作为单独实施例。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1