CN108780432B - 用于高速缓存无效的设备及方法 - Google Patents
用于高速缓存无效的设备及方法 Download PDFInfo
- Publication number
- CN108780432B CN108780432B CN201780015908.1A CN201780015908A CN108780432B CN 108780432 B CN108780432 B CN 108780432B CN 201780015908 A CN201780015908 A CN 201780015908A CN 108780432 B CN108780432 B CN 108780432B
- Authority
- CN
- China
- Prior art keywords
- cache
- bit vector
- memory
- bit
- invalidate command
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital 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/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/409—Read-write [R-W] circuits
- G11C11/4091—Sense or sense/refresh amplifiers, or associated sense circuitry, e.g. for coupled bit-line precharging, equalising or isolating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0817—Cache consistency protocols using directory methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0891—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1028—Power efficiency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/62—Details of cache specific to multiprocessor cache arrangements
- G06F2212/621—Coherency control relating to peripheral accessing, e.g. from DMA or I/O device
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital 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/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/409—Read-write [R-W] circuits
- G11C11/4097—Bit-line organisation, e.g. bit-line layout, folded bit lines
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2207/00—Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
- G11C2207/22—Control and timing of internal memory operations
- G11C2207/2245—Memory devices with an internal cache buffer
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1006—Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明包含用于高速缓存无效的设备及方法。实例性设备包括可位向量运算的存储器装置及耦合到所述存储器装置的通道控制器。所述通道控制器经配置以响应于接收到位向量运算请求而使得整体无效命令发送到高速缓存存储器系统。
Description
技术领域
本发明大体上涉及半导体存储器及方法,且更特定来说,涉及用于高速缓存无效的设备及方法。
背景技术
存储器装置通常提供为计算系统中的内部半导体集成电路。存在许多不同类型的存储器,包含易失性及非易失性存储器。易失性存储器可需要电力来保存其数据(例如,主机数据、误差数据等)且包含随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、同步动态随机存取存储器(SDRAM)与晶闸管随机存取存储器(TRAM)等。非易失性存储器可通过当不被供电时保存所存储数据而提供持久性数据且可包含NAND快闪存储器、NOR快闪存储器及电阻可变存储器,例如尤其是相变随机存取存储器(PCRAM)、电阻随机存取存储器(RRAM)及磁阻随机存取存储器(MRAM),例如自旋力矩转移随机存取存储器(STT RAM)。
计算系统通常包含多个处理资源(例如,一或多个处理器),所述计算系统可检索及执行指令且将所执行指令的结果存储到适合位置。处理资源(例如,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”,且类似元件可在图3中标记为306。将明白,可添加、交换及/或消除本文的各种实施例中展示的元件以提供本发明的多个额外实施例。另外,将明白,图中提供的元件的比例及相对尺寸意在说明本发明的特定实施例,且不应被视为具有限制意义。
图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。在这个结构中,LLC 113-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)中展示的实例说明具有冯·诺依曼(Von Neumann)架构的系统,但本发明的实施例可在非冯·诺依曼架构中实施,所述非冯·诺依曼架构可不包含通常与冯·诺依曼架构相关联的一或多个组件(例如,CPU、ALU等)。
存储器阵列130可为(例如)DRAM阵列、SRAM阵列、STT RAM阵列、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阵列、STT RAM阵列、PCRAM阵列、TRAM阵列、RRAM阵列、3D XPoint阵列、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处,与LLC 113-N相关联的无效引擎可根据基于目录的高速缓存一致性协议对整体无效命令184操作以使LLC 113-N中的相关高速缓存线无效且进一步将整体无效命令184发送(例如,分配)到下级高速缓存(例如,113-3等)。实施例不限于这些实例。
在至少一个实施例中,通道控制器143可经配置有响应于接收到“加法”位向量运算请求而按以下方式生成整体无效命令184的逻辑。通道控制器143可从主机及/或从含有信息字段的位向量运算存储器装置(例如,PIM装置)接收指令包。在一个实例中,信息字段可包含ADDVEC DEST、SOURCE0、SOURCE1及VECLEN。指令包中的ADDVEC DEST、SOURCE0、SOURCE1及VECLEN字段可在长度上为可变数目的位且表示将在运算(例如,位向量运算)中使用的各种地址。在这个实例中,含有ADDVEC DEST、SOURCE0、SOURCE1及VECLEN字段的包可表示由位向量运算存储器装置(例如,PIM装置)接收的减加位向量指令,所述指令使定位在PIM装置中的SOURCE0及SOURCE1虚拟地址处的SOURCE0及SOURCE1位向量值相加且将加法运算中的所得值存储到由ADDVEC DEST字段中到指令包的地址指示的目的地位向量虚拟地址。
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)的状态而开启或闭合。“不开启”列456对应于处于非导通状态的通过门307-1及307-2以及交换晶体管342,“真实开启”列470对应于处于导通状态的通过门307-1及307-2,且“逆开启”列471对应于处于导通状态的交换晶体管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中概述对应于结果的特定逻辑运算。
虽然已在本文中说明及描述包含感测电路、感测放大器、计算组件、动态锁存器、隔离装置及/或移位电路的各种组合及配置的实例性实施例,但本发明的实施例不限于本文明确所述的那些组合。本文揭示的感测电路、感测放大器、计算组件、动态锁存器、隔离装置及/或移位电路的其它组合及配置明确包含在本发明的范围内。
尽管在本文中已说明及描述具体实施例,但所属领域的一般技术人员将明白,经计算以达成相同结果的布置可替换所展示的具体实施例。本发明希望涵盖本发明的一或多个实施例的调适或变动。应了解,已按说明性方式而非限制性方式进行上文描述。所属领域的技术人员在检视上文描述后将明白上述实施例及本文中未具体描述的其它实施例的组合。本发明的一或多个实施例的范围包含其中使用上述结构及方法的其它应用。因此,应参考所附权利要求书以及本权利要求书所授权的等效物的全范围来确定本发明的一或多个实施例的范围。
在前文的具体实施方式中,出于简化本发明的目的,将一些特征组合在单个实施例中。这种发明方法不应被解译为反应本发明的所揭示实施例必须使用比在每一权利要求中明确所述更多的特征的希望。相反,如下文权利要求书所反映,本发明标的物在于少于单个揭示实施例的所有特征。因此,下文权利要求书在本文中并入到[具体实施方式]中,其中每一权利要求独立作为单独实施例。
Claims (20)
1.一种用于执行存储器运算的设备,其包括:
可位向量运算的存储器装置(120),其经配置以:
将位向量长度转化为将无效的高速缓存线的数目;
生成整体无效命令,所述整体无效命令使用将无效的高速缓存线的所述数目作为自变量,且其中所述可位向量运算的存储器装置包括:
存储器单元阵列(130);及
感测电路(250),其经耦合到所述阵列,所述感测电路包含感测放大器(206)及计算组件(231),所述计算组件(231)经配置以实施位向量运算作为逻辑运算,其中对为虚拟地址空间的连续部分的位向量执行所述位向量运算;及
通道控制器(143),其经耦合到所述存储器装置且经配置以响应于接收到位向量运算请求(182)而使得整体无效命令(184)发送到高速缓存存储器系统,其中所述整体无效命令包含用于将高速缓存条目标记为无效的指令。
2.根据权利要求1所述的设备,其中所述通道控制器经配置以将所述整体无效命令发送到所述高速缓存存储器系统中的所有高速缓存级(113)。
3.根据权利要求1到2中任一权利要求所述的设备,其中所述通道控制器经配置以将所述整体无效命令发送到所述高速缓存存储器系统中的末级高速缓存LLC(113-N)且根据基于目录的高速缓存一致性协议,所述LLC进一步将所述整体无效命令发送到高速缓存存储器的另一级。
4.根据权利要求3所述的设备,其中与所述LLC相关联的无效引擎(116)经配置以进一步将所述整体无效命令发送到高速缓存存储器的另一级。
5.一种用于执行存储器运算的设备,其包括:
通道控制器(143),其经配置以:
接收存储器中处理器PIM位向量运算请求(182);
使得整体无效命令(184)发送到高速缓存存储器系统;
接收高速缓存无效运算已完成的确认(187),其中所述整体无效命令包含用于将高速缓存条目标记为无效的指令;及
响应于接收到所述确认而使得存储器装置(120)执行PIM位向量运算,其中对为虚拟地址空间的连续部分的位向量执行所述PIM位向量运算。
6.根据权利要求5所述的设备,其中所述通道控制器经配置以从基础地址及与将在所述PIM位向量运算中使用的位向量相关联的长度生成所述整体无效命令。
7.根据权利要求5所述的设备,其中所述通道控制器经配置以将位向量的长度转换为与所述高速缓存存储器系统中的高速缓存线尺寸地址有关的高速缓存线(160)的数目。
8.根据权利要求5所述的设备,其中所述通道控制器经配置以使用基础地址及高速缓存线的数目作为所述整体高速缓存无效命令的自变量来生成所述整体高速缓存无效命令。
9.根据权利要求5到8中任一权利要求所述的设备,其中所述高速缓存存储器系统包括耦合到所述存储器装置的主机(110)中的末级高速缓存LLC且所述高速缓存存储器系统具有基于目录的高速缓存一致性协议。
10.一种用于执行存储器运算的设备,其包括:
通道控制器(143),其经配置以:
接收位向量运算请求;
将整体无效命令发送到高速缓存存储器系统以腾出在所述高速缓存存储器系统中的空间而由所述位向量运算使用,其中对为虚拟地址空间的连续部分的位向量执行所述位向量运算,且其中所述整体无效命令包含用于将高速缓存条目标记为无效的指令;
在基于位向量位长度的运算与基于高速缓存线位长度的运算之间转换,其中所述位长度对应于由耦合到存储器单元阵列(130)的感测电路(150)对其执行如基于位向量的运算的多个逻辑运算的多个数据位;及
根据高速缓存一致性协议使得整体无效命令(184)发送到高速缓存存储器系统。
11.根据权利要求10所述的设备,其中所述通道控制器经耦合到主机(110)且所述通道控制器整合到存储器装置(120)。
12.根据权利要求10到11中任一权利要求所述的设备,其中所述通道控制器经配置以将所述整体无效命令发送到主机中的末级高速缓存LLC(113-N)。
13.一种用于操作设备的方法,其包括:
将位向量位长度转换为将无效的高速缓存线(160)的数目,其中所述位长度对应于由耦合到存储器单元阵列(130)的感测电路(150)对其执行如基于位向量的运算的多个逻辑运算的多个数据位,其中对为虚拟地址空间的连续部分的位向量执行所述基于位向量的运算;及
根据高速缓存存储器系统的高速缓存一致性协议生成整体无效命令(184),其中所述整体无效命令包含用于将高速缓存条目标记为无效的指令,且其中所述整体无效命令使用将无效的高速缓存线(160)的所述数目作为自变量。
14.根据权利要求13所述的方法,其进一步包括将所述位向量的地址转换为关于所述高速缓存存储器系统的高速缓存线尺寸地址,其中所述整体无效命令使用所述高速缓存线尺寸地址作为基础地址。
15.根据权利要求13到14中任一权利要求所述的方法,其中生成所述整体无效命令包括提供基础地址及将无效的高速缓存线的数目作为发送到所述高速缓存存储器系统的包字段中的自变量。
16.一种用于操作存储器装置(120)的方法,其包括:
接收存储器中处理器PIM位向量运算请求(182),其中所述请求是针对由耦合到所述存储器装置的存储器单元阵列(130)的感测电路(250)执行PIM位向量运算,其中对为虚拟地址空间的连续部分的位向量执行所述PIM位向量运算;及
使得整体无效命令(184)发送到高速缓存存储器系统,其中所述整体无效命令包含用于将高速缓存条目标记为无效的指令;
其中所述感测电路包括感测放大器(206)及计算组件(231),所述计算组件(231)经配置以实施PIM位向量运算作为逻辑运算。
17.根据权利要求16所述的方法,其中所述方法进一步包括:
接收无效确认(187);及
响应于接收到所述无效确认而使得所述存储器装置执行与所述PIM位向量运算请求相关联的PIM位向量运算。
18.一种用于操作设备的方法,其包括:
接收位向量运算请求(182),其中所述请求是针对由耦合到存储器装置(120)的存储器单元阵列(130)的感测电路(250)执行位向量运算,其中对为虚拟地址空间的连续部分的位向量执行所述位向量运算;
响应于接收到所述位向量运算请求而将整体无效命令(184)发送到高速缓存存储器系统以在所述高速缓存存储器系统中腾出由位向量运算使用的空间,其中所述整体无效命令包含用于将高速缓存条目标记为无效的指令;
其中所述感测电路包括感测放大器(206)及计算组件(231),所述计算组件(231)经配置以实施位向量运算作为逻辑运算;及
当执行所述位向量运算时允许读取对所述高速缓存存储器系统的无效部分的存取。
19.根据权利要求18所述的方法,其进一步包括:
修改与所述高速缓存存储器系统相关联的高速缓存一致性协议的行为以响应高速缓存请求;及
追踪响应于接收到所述位向量运算请求而执行的所述位向量运算。
20.根据权利要求18到19中任一权利要求所述的方法,其进一步包括:
随后停止所述位向量运算以允许执行后来接收到的高速缓存运算请求;
重新调度所述位向量运算;
暂时提供对与所述后来接收到的高速缓存运算请求相关联的所请求高速缓存数据的存取;及
在完成所述后来接收到的高速缓存运算请求后,使得新整体无效命令发送到所述高速缓存存储器系统以恢复所述位向量运算。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/066,674 US10262721B2 (en) | 2016-03-10 | 2016-03-10 | Apparatuses and methods for cache invalidate |
US15/066,674 | 2016-03-10 | ||
PCT/US2017/021041 WO2017155915A1 (en) | 2016-03-10 | 2017-03-07 | Apparatuses and methods for cache invalidate |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108780432A CN108780432A (zh) | 2018-11-09 |
CN108780432B true CN108780432B (zh) | 2021-11-02 |
Family
ID=59786579
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780015908.1A Active CN108780432B (zh) | 2016-03-10 | 2017-03-07 | 用于高速缓存无效的设备及方法 |
Country Status (5)
Country | Link |
---|---|
US (3) | US10262721B2 (zh) |
EP (1) | EP3427156B1 (zh) |
CN (1) | CN108780432B (zh) |
TW (1) | TWI620063B (zh) |
WO (1) | WO2017155915A1 (zh) |
Families Citing this family (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8971124B1 (en) * | 2013-08-08 | 2015-03-03 | Micron Technology, Inc. | Apparatuses and methods for performing logical operations using sensing circuitry |
US9997232B2 (en) | 2016-03-10 | 2018-06-12 | Micron Technology, Inc. | Processing in memory (PIM) capable memory device having sensing circuitry performing logic operations |
US10268580B2 (en) * | 2016-09-30 | 2019-04-23 | Intel Corporation | Processors and methods for managing cache tiering with gather-scatter vector semantics |
CN207637499U (zh) | 2016-11-08 | 2018-07-20 | 美光科技公司 | 用于形成在存储器单元阵列上方的计算组件的设备 |
KR20180058328A (ko) * | 2016-11-24 | 2018-06-01 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그의 동작 방법 |
US10846230B2 (en) * | 2016-12-12 | 2020-11-24 | Intel Corporation | Methods and systems for invalidating memory ranges in fabric-based architectures |
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 |
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 |
US11216373B2 (en) | 2020-05-29 | 2022-01-04 | Advanced Micro Devices, Inc. | Memory access commands with near-memory address generation |
US11227641B1 (en) | 2020-07-21 | 2022-01-18 | Micron Technology, Inc. | Arithmetic operations in memory |
US11151032B1 (en) | 2020-12-14 | 2021-10-19 | Coupang Corp. | System and method for local cache synchronization |
US20220188233A1 (en) * | 2020-12-16 | 2022-06-16 | Advanced Micro Devices, Inc. | Managing cached data used by processing-in-memory instructions |
US11947456B2 (en) | 2021-09-30 | 2024-04-02 | Advanced Micro Devices, Inc. | Weak cache line invalidation requests for speculatively executing instructions |
US11977783B2 (en) | 2021-10-28 | 2024-05-07 | Silicon Motion, Inc. | Method and apparatus for performing data access control of memory device with aid of predetermined command |
US20230137938A1 (en) * | 2021-10-28 | 2023-05-04 | Silicon Motion, Inc. | Method and apparatus for performing data access control of memory device with aid of predetermined command |
CN114064517A (zh) | 2021-11-19 | 2022-02-18 | 上海兆芯集成电路有限公司 | 指定密钥进行高速缓存写回且无效的计算机系统及方法 |
CN114064518A (zh) | 2021-11-19 | 2022-02-18 | 上海兆芯集成电路有限公司 | 指定密钥辨识码进行转译后备缓冲区清除的处理器和方法 |
US11934310B2 (en) * | 2022-01-21 | 2024-03-19 | Centaur Technology, Inc. | Zero bits in L3 tags |
US20230325317A1 (en) * | 2022-04-12 | 2023-10-12 | Advanced Micro Devices, Inc. | Reducing probe filter accesses for processing in memory requests |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1841342A (zh) * | 2005-03-31 | 2006-10-04 | 国际商业机器公司 | 数据处理系统和方法 |
CN101030171A (zh) * | 2006-02-28 | 2007-09-05 | 国际商业机器公司 | 减少无效一致状态的数据处理系统、高速缓存系统和方法 |
CN101189590A (zh) * | 2005-03-29 | 2008-05-28 | 国际商业机器公司 | 使用流寄存器过滤监听请求的方法和装置 |
CN101546282A (zh) * | 2008-03-28 | 2009-09-30 | 国际商业机器公司 | 用于在处理器中执行写拷贝的方法和设备 |
CN102880558A (zh) * | 2011-06-09 | 2013-01-16 | 苹果公司 | 用于高速缓存块一致性的系统、方法和设备 |
CN103229152A (zh) * | 2010-11-26 | 2013-07-31 | 国际商业机器公司 | 高速缓存一致性控制方法、系统和程序 |
CN104317737A (zh) * | 2014-10-10 | 2015-01-28 | 浪潮集团有限公司 | 一种不需要硬件支持实现基于程序同步点高速缓存一致性的方法 |
Family Cites Families (317)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4380046A (en) | 1979-05-21 | 1983-04-12 | Nasa | Massively parallel processor computer |
JPS6032911B2 (ja) | 1979-07-26 | 1985-07-31 | 株式会社東芝 | 半導体記憶装置 |
US4435792A (en) | 1982-06-30 | 1984-03-06 | Sun Microsystems, Inc. | Raster memory manipulation apparatus |
US4727474A (en) | 1983-02-18 | 1988-02-23 | Loral Corporation | Staging memory for massively parallel processor |
EP0214718A3 (en) | 1985-07-22 | 1990-04-04 | Alliant Computer Systems Corporation | Digital computer |
US5201039A (en) | 1987-09-30 | 1993-04-06 | Mitsubishi Denki Kabushiki Kaisha | Multiple address-space data processor with addressable register and context switching |
US4843264A (en) | 1987-11-25 | 1989-06-27 | Visic, Inc. | Dynamic sense amplifier for CMOS static RAM |
US5276643A (en) | 1988-08-11 | 1994-01-04 | Siemens Aktiengesellschaft | Integrated semiconductor circuit |
JPH0713858B2 (ja) | 1988-08-30 | 1995-02-15 | 三菱電機株式会社 | 半導体記憶装置 |
US5023838A (en) | 1988-12-02 | 1991-06-11 | Ncr Corporation | Random access memory device with integral logic capability |
US4958378A (en) | 1989-04-26 | 1990-09-18 | Sun Microsystems, Inc. | Method and apparatus for detecting changes in raster data |
US5253308A (en) | 1989-06-21 | 1993-10-12 | Amber Engineering, Inc. | Massively parallel digital image data processor using pixel-mapped input/output and relative indexed addressing |
US5307477A (en) * | 1989-12-01 | 1994-04-26 | Mips Computer Systems, Inc. | Two-level cache memory system |
EP0446721B1 (en) | 1990-03-16 | 2000-12-20 | Texas Instruments Incorporated | Distributed processing memory |
US5034636A (en) | 1990-06-04 | 1991-07-23 | Motorola, Inc. | Sense amplifier with an integral logic function |
US5210850A (en) | 1990-06-15 | 1993-05-11 | Compaq Computer Corporation | Memory address space determination using programmable limit registers with single-ended comparators |
JP3361825B2 (ja) | 1990-08-22 | 2003-01-07 | テキサス インスツルメンツ インコーポレイテツド | メモリ・アレイ・アーキテクチャ |
JPH06103599B2 (ja) | 1990-11-16 | 1994-12-14 | 三菱電機株式会社 | 半導体集積回路装置 |
JPH04353949A (ja) * | 1991-05-31 | 1992-12-08 | Nec Corp | キャッシュメモリ制御方式 |
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 |
EP0584783A3 (en) | 1992-08-25 | 1994-06-22 | Texas Instruments Inc | Method and apparatus for improved processing |
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 |
US5754478A (en) | 1993-04-20 | 1998-05-19 | Micron Technology, Inc. | Fast, low power, write scheme for memory circuits using pulsed off isolation device |
US5369622A (en) | 1993-04-20 | 1994-11-29 | Micron Semiconductor, Inc. | Memory with isolated digit lines |
JP3230898B2 (ja) * | 1993-06-02 | 2001-11-19 | シャープ株式会社 | データ駆動型情報処理システム |
JP2663838B2 (ja) | 1993-07-27 | 1997-10-15 | 日本電気株式会社 | 半導体集積回路装置 |
JP3252306B2 (ja) | 1993-08-10 | 2002-02-04 | 株式会社日立製作所 | 半導体不揮発性記憶装置 |
JP3904244B2 (ja) | 1993-09-17 | 2007-04-11 | 株式会社ルネサステクノロジ | シングル・チップ・データ処理装置 |
JP3251421B2 (ja) | 1994-04-11 | 2002-01-28 | 株式会社日立製作所 | 半導体集積回路 |
US5655113A (en) | 1994-07-05 | 1997-08-05 | Monolithic System Technology, Inc. | Resynchronization circuit for a memory system and method of operating same |
JPH0831168A (ja) | 1994-07-13 | 1996-02-02 | Hitachi Ltd | 半導体記憶装置 |
US5481500A (en) | 1994-07-22 | 1996-01-02 | International Business Machines Corporation | Precharged bit decoder and sense amplifier with integrated latch usable in pipelined memories |
US5615404A (en) | 1994-10-31 | 1997-03-25 | Intel Corporation | System having independently addressable bus interfaces coupled to serially connected multi-ported signal distributors generating and maintaining frame based polling schedule favoring isochronous peripherals |
US5638128A (en) | 1994-11-08 | 1997-06-10 | General Instrument Corporation Of Delaware | Pixel interpolation filters for video decompression processor |
US5724366A (en) | 1995-05-16 | 1998-03-03 | Mitsubishi Denki Kabushiki Kaisha | Semiconductor memory device |
KR0146530B1 (ko) | 1995-05-25 | 1998-09-15 | 김광호 | 단속제어회로를 구비한 반도체 메모리 장치와 제어방법 |
US7301541B2 (en) | 1995-08-16 | 2007-11-27 | Microunity Systems Engineering, Inc. | Programmable processor and method with wide operations |
JP2812262B2 (ja) | 1995-08-31 | 1998-10-22 | 日本電気株式会社 | 連想記憶装置 |
US6385634B1 (en) | 1995-08-31 | 2002-05-07 | Intel Corporation | Method for performing multiply-add operations on packed data |
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 |
US5961628A (en) * | 1997-01-28 | 1999-10-05 | Samsung Electronics Co., Ltd. | Load and store unit for a vector processor |
US5991209A (en) | 1997-04-11 | 1999-11-23 | Raytheon Company | Split sense amplifier and staging buffer for wide memory architecture |
JP3592887B2 (ja) | 1997-04-30 | 2004-11-24 | 株式会社東芝 | 不揮発性半導体記憶装置 |
US6510098B1 (en) | 1997-05-28 | 2003-01-21 | Cirrus Logic, Inc. | Method and apparatus for transferring data in a dual port memory |
JPH1115773A (ja) | 1997-06-24 | 1999-01-22 | Matsushita Electron Corp | 半導体集積回路、コンピュータシステム、データ処理装置及びデータ処理方法 |
US5935263A (en) | 1997-07-01 | 1999-08-10 | Micron Technology, Inc. | Method and apparatus for memory array compressed data testing |
US6195734B1 (en) | 1997-07-02 | 2001-02-27 | Micron Technology, Inc. | System for implementing a graphic address remapping table as a virtual register file in system memory |
US6181698B1 (en) | 1997-07-09 | 2001-01-30 | Yoichi Hariguchi | Network routing table using content addressable memory |
US6025221A (en) | 1997-08-22 | 2000-02-15 | Micron Technology, Inc. | Processing methods of forming integrated circuitry memory devices, methods of forming DRAM arrays, and related semiconductor masks |
US5991785A (en) | 1997-11-13 | 1999-11-23 | Lucent Technologies Inc. | Determining an extremum value and its index in an array using a dual-accumulation processor |
US5867429A (en) | 1997-11-19 | 1999-02-02 | Sandisk Corporation | High density non-volatile flash memory without adverse effects of electric field coupling between adjacent floating gates |
US6163862A (en) | 1997-12-01 | 2000-12-19 | International Business Machines Corporation | On-chip test circuit for evaluating an on-chip signal using an external test signal |
JP3488612B2 (ja) | 1997-12-11 | 2004-01-19 | 株式会社東芝 | センス増幅回路 |
US5986942A (en) | 1998-01-20 | 1999-11-16 | Nec Corporation | Semiconductor memory device |
JPH11260057A (ja) | 1998-03-13 | 1999-09-24 | Nec Corp | 半導体記憶装置 |
JPH11265995A (ja) | 1998-03-17 | 1999-09-28 | Mitsubishi Electric Corp | 半導体記憶装置 |
JPH11306751A (ja) | 1998-04-22 | 1999-11-05 | Toshiba Corp | 半導体記憶装置 |
US6005799A (en) | 1998-08-06 | 1999-12-21 | Silicon Aquarius | Methods and circuits for single-memory dynamic cell multivalue data storage |
US6141286A (en) | 1998-08-21 | 2000-10-31 | Micron Technology, Inc. | Embedded DRAM architecture with local data drivers and programmable number of data read and data write lines |
US7409694B2 (en) | 1998-09-09 | 2008-08-05 | Microsoft Corporation | Highly componentized system architecture with loadable virtual memory manager |
JP2000173269A (ja) | 1998-12-08 | 2000-06-23 | Mitsubishi Electric Corp | 半導体記憶装置 |
KR100381968B1 (ko) | 1998-12-30 | 2004-03-24 | 주식회사 하이닉스반도체 | 고속동작용디램 |
US5999435A (en) | 1999-01-15 | 1999-12-07 | Fast-Chip, Inc. | Content addressable memory device |
US6389507B1 (en) | 1999-01-15 | 2002-05-14 | Gigabus, Inc. | Memory device search system and method |
US6134164A (en) | 1999-04-22 | 2000-10-17 | International Business Machines Corp. | Sensing circuit for a memory cell array |
US6741104B2 (en) | 1999-05-26 | 2004-05-25 | Micron Technology, Inc. | DRAM sense amplifier for low voltages |
US6157578A (en) | 1999-07-15 | 2000-12-05 | Stmicroelectronics, Inc. | Method and apparatus for accessing a memory device |
US6208544B1 (en) | 1999-09-09 | 2001-03-27 | Harris Corporation | Content addressable memory cell providing simultaneous read and compare capability |
US6578058B1 (en) | 1999-10-06 | 2003-06-10 | Agilent Technologies, Inc. | System and method for comparing values from target systems |
US7124221B1 (en) | 1999-10-19 | 2006-10-17 | Rambus Inc. | Low latency multi-level communication interface |
US6418498B1 (en) | 1999-12-30 | 2002-07-09 | Intel Corporation | Integrated system management memory for system management interrupt handler independent of BIOS and operating system |
JP4627103B2 (ja) | 2000-01-18 | 2011-02-09 | 富士通セミコンダクター株式会社 | 半導体記憶装置及びその制御方法 |
AU2000224587A1 (en) | 2000-02-04 | 2001-08-14 | Hitachi Ltd. | Semiconductor device |
WO2001065359A2 (en) | 2000-02-29 | 2001-09-07 | Peter Petrov | Method and apparatus for building a memory image |
JP3983969B2 (ja) | 2000-03-08 | 2007-09-26 | 株式会社東芝 | 不揮発性半導体記憶装置 |
US7028170B2 (en) | 2000-03-08 | 2006-04-11 | Sun Microsystems, Inc. | Processing architecture having a compare capability |
US6678678B2 (en) | 2000-03-09 | 2004-01-13 | Braodcom Corporation | Method and apparatus for high speed table search |
JP3822412B2 (ja) | 2000-03-28 | 2006-09-20 | 株式会社東芝 | 半導体記憶装置 |
US6965648B1 (en) | 2000-05-04 | 2005-11-15 | Sun Microsystems, Inc. | Source synchronous link integrity validation |
CN1307647C (zh) | 2000-07-07 | 2007-03-28 | 睦塞德技术公司 | 动态随机存取存储器、存储器器件及其执行读命令的方法 |
US6466499B1 (en) | 2000-07-11 | 2002-10-15 | Micron Technology, Inc. | DRAM sense amplifier having pre-charged transistor body nodes |
US6915388B1 (en) * | 2000-07-20 | 2005-07-05 | Silicon Graphics, Inc. | Method and system for efficient use of a multi-dimensional sharing vector in a computer system |
AU2001285161A1 (en) | 2000-08-21 | 2002-03-04 | United States Postal Services | Delivery point validation system |
US6301164B1 (en) | 2000-08-25 | 2001-10-09 | Micron Technology, Inc. | Antifuse method to repair columns in a prefetched output memory architecture |
US6704828B1 (en) | 2000-08-31 | 2004-03-09 | Micron Technology, Inc. | System and method for implementing data pre-fetch having reduced data lines and/or higher data rates |
US6948056B1 (en) | 2000-09-28 | 2005-09-20 | Intel Corporation | Maintaining even and odd array pointers to extreme values by searching and comparing multiple elements concurrently where a pointer is adjusted after processing to account for a number of pipeline stages |
US6304477B1 (en) | 2001-01-31 | 2001-10-16 | Motorola, Inc. | Content addressable magnetic random access memory |
US6563754B1 (en) | 2001-02-08 | 2003-05-13 | Integrated Device Technology, Inc. | DRAM circuit with separate refresh memory |
US6650158B2 (en) | 2001-02-21 | 2003-11-18 | Ramtron International Corporation | Ferroelectric non-volatile logic elements |
US6701417B2 (en) * | 2001-04-11 | 2004-03-02 | Sun Microsystems, Inc. | Method and apparatus for supporting multiple cache line invalidations per cycle |
US6725337B1 (en) | 2001-05-16 | 2004-04-20 | Advanced Micro Devices, Inc. | Method and system for speculatively invalidating lines in a cache |
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 |
US6961804B2 (en) * | 2001-07-20 | 2005-11-01 | International Business Machines Corporation | Flexible techniques for associating cache memories with processors and main memory |
ITRM20010531A1 (it) | 2001-08-31 | 2003-02-28 | Micron Technology Inc | Dispositivo rilevatore a bassa potenza e alta tensione per memorie ditipo flash. |
US7260672B2 (en) | 2001-09-07 | 2007-08-21 | Intel Corporation | Using data stored in a destructive-read memory |
US7062689B2 (en) | 2001-12-20 | 2006-06-13 | Arm Limited | Method and apparatus for memory self testing |
US20040073773A1 (en) | 2002-02-06 | 2004-04-15 | Victor Demjanenko | Vector processor architecture and methods performed therein |
US6707729B2 (en) | 2002-02-15 | 2004-03-16 | Micron Technology, Inc. | Physically alternating sense amplifier activation |
WO2003088033A1 (en) | 2002-04-09 | 2003-10-23 | University Of Rochester | Multiplier-based processor-in-memory architectures for image and graphics processing |
JP2003331598A (ja) | 2002-05-13 | 2003-11-21 | Mitsubishi Electric Corp | 半導体記憶装置 |
US7406494B2 (en) | 2002-05-14 | 2008-07-29 | Texas Instruments Incorporated | Method of generating a cycle-efficient bit-reverse index array for a wireless communication system |
JP2003346484A (ja) | 2002-05-23 | 2003-12-05 | Mitsubishi Electric Corp | 不揮発性半導体記憶装置 |
US6789099B2 (en) | 2002-06-10 | 2004-09-07 | International Business Machines Corporation | Sense-amp based adder with source follower evaluation tree |
US6785879B2 (en) | 2002-06-11 | 2004-08-31 | Numerical Technologies, Inc. | Model-based data conversion |
US6813694B2 (en) | 2002-08-08 | 2004-11-02 | International Business Machines Corporation | Local invalidation buses for a highly scalable shared cache memory hierarchy |
US7054178B1 (en) | 2002-09-06 | 2006-05-30 | Etron Technology, Inc. | Datapath architecture for high area efficiency |
US6987693B2 (en) | 2002-09-24 | 2006-01-17 | Sandisk Corporation | Non-volatile memory and method with reduced neighboring field errors |
US7079407B1 (en) | 2002-10-18 | 2006-07-18 | Netlogic Microsystems, Inc. | Content addressable memory (CAM) device including match line sensing |
US6765834B2 (en) | 2002-11-19 | 2004-07-20 | Hewlett-Packard Development Company, L.P. | System and method for sensing memory cells of an array of memory cells |
US20040103251A1 (en) * | 2002-11-26 | 2004-05-27 | Mitchell Alsup | Microprocessor including a first level cache and a second level cache having different cache line sizes |
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 |
US20050015557A1 (en) | 2002-12-27 | 2005-01-20 | Chih-Hung Wang | Nonvolatile memory unit with specific cache |
US7346903B2 (en) | 2003-02-04 | 2008-03-18 | Sun Microsystems, Inc. | Compiling and linking modules of a cycle-based logic design |
US6768679B1 (en) | 2003-02-10 | 2004-07-27 | Advanced Micro Devices, Inc. | Selection circuit for accurate memory read operations |
US6819612B1 (en) | 2003-03-13 | 2004-11-16 | Advanced Micro Devices, Inc. | Apparatus and method for a sense amplifier circuit that samples and holds a reference voltage |
US6865122B2 (en) | 2003-04-11 | 2005-03-08 | Intel Corporation | Reclaiming blocks in a block-alterable memory |
US7574466B2 (en) | 2003-04-23 | 2009-08-11 | Micron Technology, Inc. | Method for finding global extrema of a set of shorts distributed across an array of parallel processing elements |
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 |
US9015390B2 (en) | 2003-04-25 | 2015-04-21 | Micron Technology, Inc. | Active memory data compression system and method |
DE10319271A1 (de) | 2003-04-29 | 2004-11-25 | Infineon Technologies Ag | Speicher-Schaltungsanordnung und Verfahren zur Herstellung |
JP3898152B2 (ja) | 2003-05-27 | 2007-03-28 | ローム株式会社 | 演算機能付き記憶装置および演算記憶方法 |
US7065614B1 (en) * | 2003-06-20 | 2006-06-20 | Unisys Corporation | System and method for maintaining memory coherency within a multi-processor data processing system |
EP1665286B8 (en) | 2003-09-04 | 2007-09-12 | Nxp B.V. | Integrated circuit and a method of cache remapping |
US6956770B2 (en) | 2003-09-17 | 2005-10-18 | Sandisk Corporation | Non-volatile memory and method with bit line compensation dependent on neighboring operating modes |
US7177183B2 (en) | 2003-09-30 | 2007-02-13 | Sandisk 3D Llc | Multiple twin cell non-volatile memory array and logic block structure and method therefor |
US7913125B2 (en) | 2003-11-04 | 2011-03-22 | Lsi Corporation | BISR mode to test the redundant elements and regular functional memory to avoid test escapes |
US6950771B1 (en) | 2003-12-09 | 2005-09-27 | Xilinx, Inc. | Correlation of electrical test data with physical defect data |
US7631236B2 (en) | 2004-01-29 | 2009-12-08 | International Business Machines Corporation | Hybrid built-in self test (BIST) architecture for embedded memory arrays and an associated method |
US7401281B2 (en) | 2004-01-29 | 2008-07-15 | International Business Machines Corporation | Remote BIST high speed test and redundancy calculation |
JP4819316B2 (ja) | 2004-02-23 | 2011-11-24 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
US7088606B2 (en) | 2004-03-10 | 2006-08-08 | Altera Corporation | Dynamic RAM storage techniques |
US7020017B2 (en) | 2004-04-06 | 2006-03-28 | Sandisk Corporation | Variable programming of non-volatile memory |
US7120063B1 (en) | 2004-05-07 | 2006-10-10 | Spansion Llc | Flash memory cell and methods for programming and erasing |
US8522205B2 (en) | 2004-05-18 | 2013-08-27 | Oracle International Corporation | Packaging multiple groups of read-only files of an application's components into multiple shared libraries |
JP2006127460A (ja) | 2004-06-09 | 2006-05-18 | Renesas Technology Corp | 半導体装置、半導体信号処理装置、およびクロスバースイッチ |
US7061817B2 (en) | 2004-06-30 | 2006-06-13 | Micron Technology, Inc. | Data path having grounded precharge operation and test compression capability |
US7116602B2 (en) | 2004-07-15 | 2006-10-03 | Micron Technology, Inc. | Method and system for controlling refresh to avoid memory cell data losses |
US7434024B2 (en) | 2004-08-30 | 2008-10-07 | Ati Technologies, Inc. | SIMD processor with register addressing, buffer stall and methods |
US7685365B2 (en) | 2004-09-30 | 2010-03-23 | Intel Corporation | Transactional memory execution utilizing virtual memory |
US20060069849A1 (en) | 2004-09-30 | 2006-03-30 | Rudelic John C | Methods and apparatus to update information in a memory |
US20060149804A1 (en) | 2004-11-30 | 2006-07-06 | International Business Machines Corporation | Multiply-sum dot product instruction with mask and splat |
US7230851B2 (en) | 2004-12-23 | 2007-06-12 | Sandisk Corporation | Reducing floating gate to floating gate coupling effect |
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 |
US7187585B2 (en) | 2005-04-05 | 2007-03-06 | Sandisk Corporation | Read operation for non-volatile storage that includes compensation for coupling |
US7196928B2 (en) | 2005-04-05 | 2007-03-27 | Sandisk Corporation | Compensating for coupling during read operations of non-volatile memory |
US7193898B2 (en) | 2005-06-20 | 2007-03-20 | Sandisk Corporation | Compensation currents in non-volatile memory read operations |
KR100720644B1 (ko) | 2005-11-17 | 2007-05-21 | 삼성전자주식회사 | 메모리 장치 및 메모리 그 동작 방법 |
JP4804479B2 (ja) | 2005-12-13 | 2011-11-02 | スパンション エルエルシー | 半導体装置およびその制御方法 |
US20070143550A1 (en) * | 2005-12-19 | 2007-06-21 | Intel Corporation | Per-set relaxation of cache inclusion |
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 | ルネサスエレクトロニクス株式会社 | 並列演算処理装置 |
US7366847B2 (en) * | 2006-02-06 | 2008-04-29 | Azul Systems, Inc. | Distributed cache coherence at scalable requestor filter pipes that accumulate invalidation acknowledgements from other requestor filter pipes using ordering messages from central snoop tag |
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 |
US7836258B2 (en) | 2006-11-13 | 2010-11-16 | International Business Machines Corporation | Dynamic data cache invalidate with data dependent expiration |
US8151082B2 (en) | 2007-12-06 | 2012-04-03 | Fusion-Io, Inc. | Apparatus, system, and method for converting a storage request into an append data storage command |
US7471536B2 (en) | 2006-12-08 | 2008-12-30 | Texas Instruments Incorporated | Match mismatch emulation scheme for an addressed location in a CAM |
US7460387B2 (en) | 2007-01-05 | 2008-12-02 | International Business Machines Corporation | eDRAM hierarchical differential sense amp |
US7743303B2 (en) | 2007-01-22 | 2010-06-22 | Micron Technology, Inc. | Defective memory block remapping method and system, and memory device and processor-based system using same |
US7937535B2 (en) | 2007-02-22 | 2011-05-03 | Arm Limited | Managing cache coherency in a data processing apparatus |
KR100820781B1 (ko) | 2007-02-23 | 2008-04-11 | 주식회사 하이닉스반도체 | 비트라인 감지증폭기를 포함하는 반도체메모리소자 및구동방법 |
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 | ルネサスエレクトロニクス株式会社 | 半導体信号処理装置 |
US20090254694A1 (en) | 2008-04-02 | 2009-10-08 | Zikbit Ltd. | Memory device with integrated parallel processing |
US8332580B2 (en) | 2008-04-02 | 2012-12-11 | Zikbit Ltd. | System, method and apparatus for memory with embedded associative section for computations |
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 |
US9513695B2 (en) * | 2008-06-24 | 2016-12-06 | Virident Systems, Inc. | Methods of managing power in network computer systems |
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 |
ITRM20080543A1 (it) | 2008-10-09 | 2010-04-10 | Micron Technology Inc | Architettura e metodo per la programmazione di memorie. |
KR101596283B1 (ko) | 2008-12-19 | 2016-02-23 | 삼성전자 주식회사 | 개선된 로컬 입출력라인 프리차아지 스킴을 갖는 반도체 메모리 장치 |
KR101622922B1 (ko) | 2009-03-06 | 2016-05-20 | 삼성전자 주식회사 | 개선된 로컬 입출력라인 프리차아지 스킴을 갖는 반도체 메모리 장치 |
US8484276B2 (en) | 2009-03-18 | 2013-07-09 | International Business Machines Corporation | Processing array data on SIMD multi-core processor architectures |
KR20100134235A (ko) | 2009-06-15 | 2010-12-23 | 삼성전자주식회사 | 반도체 메모리 장치 |
US7898864B2 (en) | 2009-06-24 | 2011-03-01 | Sandisk Corporation | Read operation for memory with compensation for coupling based on write-erase cycles |
US8412987B2 (en) | 2009-06-30 | 2013-04-02 | Micron Technology, Inc. | Non-volatile memory to store memory remap information |
US8412985B1 (en) | 2009-06-30 | 2013-04-02 | Micron Technology, Inc. | Hardwired remapped memory |
US8238173B2 (en) | 2009-07-16 | 2012-08-07 | Zikbit Ltd | Using storage cells to perform computation |
US9076527B2 (en) | 2009-07-16 | 2015-07-07 | Mikamonu Group Ltd. | Charge sharing in a TCAM array |
JP4951041B2 (ja) | 2009-08-06 | 2012-06-13 | 株式会社東芝 | 半導体記憶装置 |
JP5568133B2 (ja) | 2009-08-18 | 2014-08-06 | ダウ コーニング コーポレーション | 多層経皮パッチ |
US8059438B2 (en) | 2009-08-28 | 2011-11-15 | International Business Machines Corporation | Content addressable memory array programmed to perform logic operations |
US8077532B2 (en) | 2009-09-02 | 2011-12-13 | Micron Technology, Inc. | Small unit internal verify read in a memory device |
US8482975B2 (en) | 2009-09-14 | 2013-07-09 | Micron Technology, Inc. | Memory kink checking |
US8495465B1 (en) | 2009-10-15 | 2013-07-23 | Apple Inc. | Error correction coding over multiple memory pages |
US20120246380A1 (en) | 2009-10-21 | 2012-09-27 | Avidan Akerib | Neighborhood operations for parallel processing |
US9477636B2 (en) | 2009-10-21 | 2016-10-25 | Micron Technology, Inc. | Memory having internal processors and data communication methods in memory |
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 |
US8639885B2 (en) * | 2009-12-21 | 2014-01-28 | Oracle America, Inc. | Reducing implementation costs of communicating cache invalidation information in a multicore processor |
US8605015B2 (en) | 2009-12-23 | 2013-12-10 | Syndiant, Inc. | Spatial light modulator with masking-comparators |
JP2011146102A (ja) | 2010-01-15 | 2011-07-28 | Elpida Memory Inc | 半導体装置及びデータ処理システム |
CN102141905B (zh) | 2010-01-29 | 2015-02-25 | 上海芯豪微电子有限公司 | 一种处理器体系结构 |
US8164942B2 (en) | 2010-02-01 | 2012-04-24 | International Business Machines Corporation | High performance eDRAM sense amplifier |
US8533245B1 (en) | 2010-03-03 | 2013-09-10 | Altera Corporation | Multipliers with a reduced number of memory blocks |
EP2564306A4 (en) | 2010-04-27 | 2017-04-26 | Cornell University | System and methods for mapping and searching objects in multidimensional space |
KR101119371B1 (ko) | 2010-04-29 | 2012-03-06 | 주식회사 하이닉스반도체 | 반도체 메모리 장치 및 이의 동작 방법 |
US8559232B2 (en) | 2010-05-03 | 2013-10-15 | Aplus Flash Technology, Inc. | DRAM-like NVM memory array and sense amplifier design for high temperature and high endurance operation |
US8351278B2 (en) | 2010-06-23 | 2013-01-08 | International Business Machines Corporation | Jam latch for latching memory array output data |
KR101143471B1 (ko) | 2010-07-02 | 2012-05-11 | 에스케이하이닉스 주식회사 | 센스앰프 및 이를 포함하는 반도체 장치 |
US20120017039A1 (en) | 2010-07-16 | 2012-01-19 | Plx Technology, Inc. | Caching using virtual memory |
US8462532B1 (en) | 2010-08-31 | 2013-06-11 | Netlogic Microsystems, Inc. | Fast quaternary content addressable memory cell |
US8347154B2 (en) | 2010-09-21 | 2013-01-01 | International Business Machines Corporation | Use of hashing function to distinguish random and repeat errors in a memory system |
US8904115B2 (en) | 2010-09-28 | 2014-12-02 | Texas Instruments Incorporated | Cache with multiple access pipelines |
US8332367B2 (en) | 2010-10-20 | 2012-12-11 | International Business Machines Corporation | Parallel data redundancy removal |
KR101148352B1 (ko) | 2010-11-02 | 2012-05-21 | 에스케이하이닉스 주식회사 | 반도체 메모리 장치 및 그의 동작 방법 |
JP5528987B2 (ja) | 2010-11-11 | 2014-06-25 | ピーエスフォー ルクスコ エスエイアールエル | 半導体装置 |
US8553481B2 (en) | 2010-11-29 | 2013-10-08 | Apple Inc. | Sense amplifier latch with integrated test data multiplexer |
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 | 株式会社東芝 | 不揮発性半導体メモリ |
US9432298B1 (en) | 2011-12-09 | 2016-08-30 | P4tents1, LLC | System, method, and computer program product for improving memory systems |
US8725730B2 (en) | 2011-05-23 | 2014-05-13 | Hewlett-Packard Development Company, L.P. | Responding to a query in a data processing system |
US8706958B2 (en) | 2011-09-01 | 2014-04-22 | Thomas Hein | Data mask encoding in data bit inversion scheme |
KR20140085468A (ko) | 2011-10-28 | 2014-07-07 | 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. | 행 시프팅 시프트가능 메모리 |
US8891297B2 (en) | 2011-11-01 | 2014-11-18 | Micron Technology, Inc. | Memory cell sensing |
KR101321481B1 (ko) | 2011-11-04 | 2013-10-28 | 에스케이하이닉스 주식회사 | 반도체 메모리 장치 및 이를 위한 테스트 회로 |
US9830158B2 (en) | 2011-11-04 | 2017-11-28 | Nvidia Corporation | Speculative execution and rollback |
KR20130052971A (ko) | 2011-11-14 | 2013-05-23 | 삼성전자주식회사 | 비휘발성 메모리 장치의 동작 방법 |
WO2013078085A1 (en) | 2011-11-22 | 2013-05-30 | Mips Technologies, Inc. | Processor with kernel mode access to user space virtual addresses |
JP5803614B2 (ja) * | 2011-11-29 | 2015-11-04 | ソニー株式会社 | 不揮発性キャッシュメモリ、不揮発性キャッシュメモリの処理方法、コンピュータシステム |
US9665371B2 (en) | 2011-11-30 | 2017-05-30 | Intel Corporation | Providing vector horizontal compare functionality within a vector register |
KR20130072869A (ko) | 2011-12-22 | 2013-07-02 | 에스케이하이닉스 주식회사 | 프리차지 회로 및 비휘발성 메모리 장치 |
US20140108480A1 (en) | 2011-12-22 | 2014-04-17 | Elmoustapha Ould-Ahmed-Vall | Apparatus and method for vector compute and accumulate |
US20130173834A1 (en) * | 2011-12-30 | 2013-07-04 | Advanced Micro Devices, Inc. | Methods and apparatus for injecting pci express traffic into host cache memory using a bit mask in the transaction layer steering tag |
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 |
US9069684B2 (en) | 2012-07-16 | 2015-06-30 | Nvidia Corporation | System, method, and computer program product for invalidatng cache lines |
US20140095801A1 (en) * | 2012-09-28 | 2014-04-03 | Devadatta V. Bodas | System and method for retaining coherent cache contents during deep power-down operations |
US9223717B2 (en) * | 2012-10-08 | 2015-12-29 | Wisconsin Alumni Research Foundation | Computer cache system providing multi-line invalidation messages |
US20140173216A1 (en) * | 2012-12-18 | 2014-06-19 | Advanced Micro Devices, Inc. | Invalidation of Dead Transient Data in Caches |
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 |
US10133678B2 (en) * | 2013-08-28 | 2018-11-20 | Advanced Micro Devices, Inc. | Method and apparatus for memory management |
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 |
US9449675B2 (en) | 2013-10-31 | 2016-09-20 | Micron Technology, Inc. | Apparatuses and methods for identifying an extremum value stored in an array of memory cells |
US9430191B2 (en) | 2013-11-08 | 2016-08-30 | Micron Technology, Inc. | Division operations for memory |
US20150270015A1 (en) | 2014-03-19 | 2015-09-24 | Micron Technology, Inc. | Memory mapping |
US9665153B2 (en) * | 2014-03-21 | 2017-05-30 | Intel Corporation | Selecting a low power state based on cache flush latency determination |
US9934856B2 (en) | 2014-03-31 | 2018-04-03 | Micron Technology, Inc. | Apparatuses and methods for comparing data patterns in memory |
EP3140749B1 (en) | 2014-05-08 | 2021-01-13 | Micron Technology, INC. | In-memory lightweight coherency |
JP6637906B2 (ja) | 2014-05-08 | 2020-01-29 | マイクロン テクノロジー,インク. | ハイブリッドメモリキューブシステム相互接続ディレクトリベースキャッシュコヒーレンス方法 |
US9910787B2 (en) | 2014-06-05 | 2018-03-06 | Micron Technology, Inc. | Virtual address table |
US9786335B2 (en) | 2014-06-05 | 2017-10-10 | Micron Technology, Inc. | Apparatuses and methods for performing logical operations using sensing circuitry |
US9496023B2 (en) | 2014-06-05 | 2016-11-15 | Micron Technology, Inc. | Comparison operations on logical representations of values in memory |
US9779019B2 (en) | 2014-06-05 | 2017-10-03 | Micron Technology, Inc. | Data storage layout |
US10074407B2 (en) | 2014-06-05 | 2018-09-11 | Micron Technology, Inc. | Apparatuses and methods for performing invert operations using sensing circuitry |
US9711207B2 (en) | 2014-06-05 | 2017-07-18 | Micron Technology, Inc. | Performing logical operations using sensing circuitry |
US9830999B2 (en) | 2014-06-05 | 2017-11-28 | Micron Technology, Inc. | Comparison operations in memory |
US9711206B2 (en) | 2014-06-05 | 2017-07-18 | Micron Technology, Inc. | Performing logical operations using sensing circuitry |
US9449674B2 (en) | 2014-06-05 | 2016-09-20 | Micron Technology, Inc. | Performing logical operations using sensing circuitry |
US9455020B2 (en) | 2014-06-05 | 2016-09-27 | Micron Technology, Inc. | Apparatuses and methods for performing an exclusive or operation using sensing circuitry |
US9704540B2 (en) | 2014-06-05 | 2017-07-11 | Micron Technology, Inc. | Apparatuses and methods for parity determination using sensing circuitry |
JP5811245B1 (ja) | 2014-07-24 | 2015-11-11 | 日本電気株式会社 | 情報処理装置、メモリ順序保障方法、及び、プログラム |
US9747961B2 (en) | 2014-09-03 | 2017-08-29 | Micron Technology, Inc. | Division operations in memory |
US9740607B2 (en) | 2014-09-03 | 2017-08-22 | Micron Technology, Inc. | Swap operations in memory |
US9904515B2 (en) | 2014-09-03 | 2018-02-27 | Micron Technology, Inc. | Multiplication operations in memory |
US9898252B2 (en) | 2014-09-03 | 2018-02-20 | Micron Technology, Inc. | Multiplication operations in memory |
US9589602B2 (en) | 2014-09-03 | 2017-03-07 | Micron Technology, Inc. | Comparison operations in memory |
US10068652B2 (en) | 2014-09-03 | 2018-09-04 | Micron Technology, Inc. | Apparatuses and methods for determining population count |
US9847110B2 (en) | 2014-09-03 | 2017-12-19 | Micron Technology, Inc. | Apparatuses and methods for storing a data value in multiple columns of an array corresponding to digits of a vector |
US9836277B2 (en) * | 2014-10-01 | 2017-12-05 | Samsung Electronics Co., Ltd. | In-memory popcount support for real time analytics |
US9811464B2 (en) * | 2014-12-11 | 2017-11-07 | Intel Corporation | Apparatus and method for considering spatial locality in loading data elements for execution |
US20160188341A1 (en) * | 2014-12-24 | 2016-06-30 | Elmoustapha Ould-Ahmed-Vall | Apparatus and method for fused add-add instructions |
US9659605B1 (en) | 2016-04-20 | 2017-05-23 | Micron Technology, Inc. | Apparatuses and methods for performing corner turn operations using sensing circuitry |
-
2016
- 2016-03-10 US US15/066,674 patent/US10262721B2/en active Active
-
2017
- 2017-03-07 EP EP17763851.7A patent/EP3427156B1/en active Active
- 2017-03-07 CN CN201780015908.1A patent/CN108780432B/zh active Active
- 2017-03-07 WO PCT/US2017/021041 patent/WO2017155915A1/en active Application Filing
- 2017-03-10 TW TW106108061A patent/TWI620063B/zh active
-
2018
- 2018-08-24 US US16/112,563 patent/US10199088B2/en active Active
-
2019
- 2019-02-01 US US16/265,623 patent/US10878883B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101189590A (zh) * | 2005-03-29 | 2008-05-28 | 国际商业机器公司 | 使用流寄存器过滤监听请求的方法和装置 |
CN1841342A (zh) * | 2005-03-31 | 2006-10-04 | 国际商业机器公司 | 数据处理系统和方法 |
CN101030171A (zh) * | 2006-02-28 | 2007-09-05 | 国际商业机器公司 | 减少无效一致状态的数据处理系统、高速缓存系统和方法 |
CN101546282A (zh) * | 2008-03-28 | 2009-09-30 | 国际商业机器公司 | 用于在处理器中执行写拷贝的方法和设备 |
CN103229152A (zh) * | 2010-11-26 | 2013-07-31 | 国际商业机器公司 | 高速缓存一致性控制方法、系统和程序 |
CN102880558A (zh) * | 2011-06-09 | 2013-01-16 | 苹果公司 | 用于高速缓存块一致性的系统、方法和设备 |
CN104317737A (zh) * | 2014-10-10 | 2015-01-28 | 浪潮集团有限公司 | 一种不需要硬件支持实现基于程序同步点高速缓存一致性的方法 |
Non-Patent Citations (1)
Title |
---|
Reducing Ownership Overhead for Load-Store Sequences in Cache-Coherent Multiprocessors;Jim Nilsson etc.;《IEEE Xplore》;20020806;全文 * |
Also Published As
Publication number | Publication date |
---|---|
US20170262369A1 (en) | 2017-09-14 |
US10878883B2 (en) | 2020-12-29 |
EP3427156B1 (en) | 2021-05-05 |
US10199088B2 (en) | 2019-02-05 |
US20180366180A1 (en) | 2018-12-20 |
EP3427156A1 (en) | 2019-01-16 |
TW201738755A (zh) | 2017-11-01 |
TWI620063B (zh) | 2018-04-01 |
CN108780432A (zh) | 2018-11-09 |
EP3427156A4 (en) | 2019-11-06 |
WO2017155915A1 (en) | 2017-09-14 |
US20190164592A1 (en) | 2019-05-30 |
US10262721B2 (en) | 2019-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108780432B (zh) | 用于高速缓存无效的设备及方法 | |
US11599475B2 (en) | Apparatuses and methods for compute enabled cache | |
US11915741B2 (en) | Apparatuses and methods for logic/memory devices | |
US11106389B2 (en) | Apparatuses and methods for data transfer from sensing circuitry to a controller | |
US10482948B2 (en) | Apparatuses and methods for data movement | |
CN107408404B (zh) | 用于存储器装置的设备及方法以作为程序指令的存储 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |