CN103222003A - 用于根据配置信息执行原子存储器操作的存储器及方法 - Google Patents
用于根据配置信息执行原子存储器操作的存储器及方法 Download PDFInfo
- Publication number
- CN103222003A CN103222003A CN2011800562145A CN201180056214A CN103222003A CN 103222003 A CN103222003 A CN 103222003A CN 2011800562145 A CN2011800562145 A CN 2011800562145A CN 201180056214 A CN201180056214 A CN 201180056214A CN 103222003 A CN103222003 A CN 103222003A
- Authority
- CN
- China
- Prior art keywords
- data
- memory
- command
- order
- storer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- 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
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
- G06F15/7821—Tightly coupled to memory, e.g. computational memory, smart memory, processor in memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7839—Architectures of general purpose stored program computers comprising a single central processing unit with memory
- G06F15/7842—Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers)
- G06F15/785—Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers) with decentralized control, e.g. smart memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8053—Vector processors
- G06F15/8076—Details on data register access
- G06F15/8084—Special arrangements thereof, e.g. mask or switch
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
-
- 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
- G11C7/1009—Data masking during input/output
-
- 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/1078—Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
- G11C7/109—Control signal input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/10—Decoders
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/22—Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Memory System (AREA)
- Dram (AREA)
- Executing Machine-Instructions (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明揭示用于执行原子存储器操作的存储器及方法,其包含具有存储器存储区、操作逻辑及命令解码器的存储器。操作逻辑可经配置以接收数据且根据内部控制信号对其执行操作。命令解码器可经配置以接收命令包,所述命令包具有其中提供存储器命令的至少一存储器命令部分及其中提供相关于与命令包相关联的数据的配置信息的数据配置部分。所述命令解码器进一步经配置以至少部分地基于所述存储器命令而产生命令控制信号且进一步经配置以至少部分地基于所述配置信息而产生控制信号。
Description
技术领域
本发明的实施例一般来说涉及存储器,且在所图解说明的实施例中的一者或一者以上中更具体来说涉及具有可操作以在掩码控制下提供原子存储器操作的逻辑且具有可变操作数大小的存储器。
背景技术
存储器用于电子系统及电路中以存储可检索以供(举例来说)处理器稍后处理的数据。可将数据写入到存储器以及稍后从存储器读取所述数据。在较高级的存储器中,可由存储器自身中的逻辑执行基本操作以使处理器免于必须向存储器发出多个存储器命令以及管理所述操作。举例来说,处理器可向存储器发出单个“读取-修改-写入”命令,且所述存储器管理从存储器检索数据、对所述数据执行操作及将所得数据写回到存储器的步骤。因此,虽然向存储器发出一个存储器命令,但存储器自身管理且执行涉及存取存储于存储器中的数据及对所述数据执行操作的多个操作。这些命令可称为“原子存储器操作”。这些操作称作“原子的”,这是因为其不可分割地执行:作为不能中断或细分的单个顺序。如果处理器必须更新共享存储器项,那么必须在将经更新的数据返回到存储器之前执行额外操作以防止共享处理器在第一处理器正执行所述更新时存取及/或修改数据项。通过将更新操作更直接地置于存储器中,可在没有相干额外开销的情况下且以减少的能量支出更迅速地更新共享项。
执行原子存储器操作的存储器及控制逻辑可不具有用以适应对不同大小的数据的操作的灵活性。即,存储器可经设计以对具有特定长度的数据及特定大小的数据单元执行操作。对较小数据单元执行操作(例如,对一字节的数据执行操作,但检索4个字节的数据)将消耗整个操作循环,但仅较小数据单元的结果为合意的。摒弃由于对其它数据单元执行操作所得的结果。由于所要数据可以需要检索多个不同数据块的方式存储且不能以单个简单顺序或高效地执行使用来自不同块的数据的操作的事实,因此对特定数据执行操作也可能需要多个操作。
因此,具有能够执行原子存储器操作的存储器为合意的,所述存储器还独立于如何实施特定存储器操作而在操作数及数据大小上提供灵活性。
发明内容
附图说明
图1是根据本发明的实施例的存储器的框图。
图2是根据本发明的实施例的命令包的一部分的图解性表示。
图3是根据本发明的实施例的包解码器的框图。
图4是根据本发明的实施例的操作逻辑的一部分的框图。
具体实施方式
本发明的实施例可提供能力以使得可借助单个命令同时完成多个原子操作。下文陈述特定细节以提供对本发明的实施例的充分理解。然而,所属领域的技术人员将明了可在没有这些特定细节的情况下实践本发明的实施例。此外,本文中所描述的本发明的特定实施例以实例方式提供且不应用以将本发明的范围限制于这些特定实施例。在其它例子中,尚未详细地展示众所周知的电路、控制信号、定时协议及软件操作以便避免不必要地模糊本发明。
图1图解说明根据本发明的实施例的存储器100的一部分。存储器100包含IO接口110,IO接口110接收存储器命令以及其它信息(例如相关于与存储器命令相关联的数据的配置信息)以请求存储器命令的执行。可将存储器命令及配置信息以包化格式提供到IO接口110。即,命令包可包含字段,其中所述字段中的二进制数字(位)的组合表示可由命令解码器(例如包解码器120)解码以确定执行何种命令的信息,且在一些实施例中表示相关于与命令包相关联的数据的配置信息。下文将更详细地解释包含与数据相关的配置信息的命令包的实例。
包解码器120从IO接口110接收包且将所述包解码以产生内部控制及定时信号以实施所请求的存储器命令。举例来说,在图1的实施例中,包解码器120将包解码以产生表示命令、地址、操作数数据、掩码信息、长度信息及数据单元大小信息的内部信号。地址信息提供到经配置以存储数据的存储器存储区130以识别可在执行命令期间存取的存储器位置。可使用各种不同技术(举例来说,存储器单元技术(例如动态随机存取存储器单元、静态随机存取存储器单元以及非易失性存储器单元)及磁盘技术(例如磁驱动器媒体))实施存储器存储区130。
存储器100进一步包含执行存储器操作(例如读取及写入操作以及可为原子存储器操作的一部分的其它操作)的操作逻辑140。操作逻辑140由包解码器120所提供的内部控制及定时信号(例如,命令、地址、操作数数据以及掩码、数据长度及数据单元大小信息)控制。如下文将更详细地描述,操作逻辑140的控制至少部分地基于在存储器包中所接收信息。在一些实施例中,操作逻辑140对操作数数据执行各种操作,举例来说,逻辑运算、算术运算、比较运算。操作数数据可为:与控制、功能相关联的提供到存储器100的数据及在单独信号中或具有命令包的数据;响应于命令包中的命令而检索的存储于存储器存储区130中的存储器数据;或其组合。在将响应于命令包而返回数据的情形中,存储器100中的包组装器150从操作逻辑140接收数据且准备将(举例来说)在返回数据包中经由IO接口110提供的数据。在一些实施例中,可直接返回数据。数据可为由操作逻辑140执行的操作的结果、从存储器存储区130检索的数据或某一其它数据。
在本发明的一些实施例中,图1中所图解说明的框表示经耦合以与表示可彼此独立地操作的多个存储器的存储器存储区通信的存储器存储区接口电路。举例来说,可通过堆叠全部与框110、120、130、140及150通信的多个存储器装置而在实施例中实施存储器存储区。
存储器100可执行常规存储器操作,举例来说,从如由存储器地址识别的存储器存储区130中的位置读取数据及将数据写入到所述位置。存储器100可进一步操作以执行原子存储器操作。如先前所论述,原子存储器操作为表现为不可由发出存储器命令的实体分割的存储器操作,但包含数个内部存储器操作,举例来说,多个存储器存储区存取操作。虽然向存储器发出一个原子存储器命令,但存储器在内部执行数个内部存储器操作以完成所请求的存储器操作。举例来说,IO接口110接收命令包且包解码器120将存储器命令解码以用于原子存储器操作。作为响应,包解码器120产生用以管理多个内部存储器操作的内部控制及定时信号(例如,表示命令、地址、操作数数据以及掩码、数据长度及数据单元大小信息的信号)。
原子存储器操作的实例为包含从存储器位置读取数据、对提供到存储器的操作数及所读取数据执行算术运算及将结果写回到最初读取所述数据的所述存储器位置的存储器操作。在本发明的一些实施例中,原子存储器操作具有两个操作版本:执行所请求的存储器操作且将结果写回到原始存储器位置的一个版本;以及执行所请求的存储器操作,且除了将结果写回到原始存储器位置之外,还将所述结果提供为来自存储器的输出的另一版本。下文将描述原子存储器操作的其它实例。
图2图解说明根据本发明的实施例的命令包200的各个部分。包200的命令部分可包含命令字段210,而包200的配置部分可包含(举例来说)数据长度字段220、数据单元大小字段230及/或掩码字段240。命令包200可提供到存储器(举例来说,图1的存储器100)以请求执行存储器命令,如先前所论述。除图2中具体展示的所述部分之外,命令包200还可包含众所周知或稍后开发的其它部分。然而,本文中将详细地描述图2中具体识别的字段。将了解,虽然下文描述字段及字段大小的特定实例,但本发明并不限制于此,且举例来说,在不背离本发明的范围的情况下所述字段大小可为可变的且可更大或更小。命令包200包含命令字段(CMD)210。CMD字段210用以提供由命令解码器解码以执行操作的命令。在图2中所图解说明的实施例中,CMD字段210在长度上为[(N-M)+1]个位。在一些实施例中,CMD字段210为6个位长。命令包200进一步包含用以规定与命令包相关联的数据的数据总长度(未展示)的数据长度字段(LNG)220。在图2中所图解说明的特定实施例中,LNG字段210在长度上为[(P-O)+1]个位。在一些实施例中,所述LNG字段为5个位长。由LNG字段210界定的值可对应于表示数据总长度的代码。举例来说,可在本发明的实施例中使用以下定义:
LNG | 总操作数大小 |
0 | 0个字节 |
1 | 8个字节 |
2 | 16个字节 |
因此,LNG字段220中的值1将包的总数据长度界定为8个字节长。在由CMD字段210界定的存储器命令不需要数据的情况下,可在LNG字段220中提供值0以指示没有数据与包相关联。
命令包200进一步包含数据单元大小字段(SIZ)230。在图2中所图解说明的实施例中,SIZ字段230在长度上为[(R-Q)+1]个位。在本发明的实施例中,SIZ字段230为3个位长。包含于SIZ字段230中的值依据字节的数目界定(举例来说)每一数据单元的大小。举例来说,可在本发明的实施例中使用以下定义:
SIZ | 数据单元 |
1 | 1个字节 |
2 | 2个字节 |
3 | 4个字节 |
4 | 8个字节 |
5 | 16个字节 |
因此,SIZ字段230中的值3将数据单元大小界定为4个字节长。即,包含于包内的每一数据单元在长度上为4个字节。
命令包200进一步包含掩码字段(MSK)240。在图2中所图解说明的实施例中,MSK字段240在长度上为[(T+S)+1]个位。在本发明的实施例中,MSK字段240为16个位长。MSK字段240中的位组合用以界定掩码包中的哪些数据单元。在一些实施例中,MSK字段240的位位置中的“1”指示应掩码对应数据单元且MSK字段240的位位置中的“0”指示不应掩码对应数据单元。掩码字段中的值“1”防止命令字段中所界定的操作发生在相应数据单元上,“0”值允许所述操作发生在所述相应数据单元上。
LNG字段220、SIZ字段230及MSK字段240个别地且共同提供与由CMD字段210中所提供的存储器命令对其进行操作的数据相关的配置信息。将使用以下非限制性实例来图解说明字段220、230、240的定义的互动。
假设一实例性命令包,LNG字段220中的值为2以界定16个字节的总数据长度,且SIZ字段230中的值为1以将数据单元的大小界定为1个字节。因此,在具有16个字节的总数据长度及1个字节的数据单元大小的情况下,所述实例性包包含16个数据单元。假设MSK字段240的位组合为:(MSB)1010101010101010(LSB),提供为数据的16个数据单元经掩码以使得第一数据单元不被掩码(第一掩码位为“0”)且第二数据单元被掩码(第二掩码位为“1”)。剩余数据单元(即,字节3到字节16)中的每隔一个数据单元(即,字节4、6、8、10、12、14及16)被掩码,且其余数据单元(即,字节3、5、7、9、11、13及15)不被掩码。如果所指示的命令为相加,那么在将未掩码的数据字节重新写回到存储器之前,每一未掩码的数据字节将对应数据项加到存储器数据字节。不修改被掩码的存储器数据字节。
在另一实例中,以LSB开始的MASK字段240的位对应于如由SIZ字段230界定的相应数据单元。举例来说,假设一实例性命令包,其LNG字段220具有值2以界定16个字节的总数据长度,且SIZ字段230中的值为2以将数据单元大小界定为2个字节。因此,在具有16个字节的总数据长度及2个字节的数据单元大小的情况下,所述实例性包包含8个数据单元的数据。假设MSK字段240的位组合为:(MSB)1111111101100110(LSB),提供为数据的8个数据单元经掩码以使得第一、第四、第五及第八数据单元不被掩码且第二、第三、第六及第七数据单元被掩码。MSK值的最高有效8个位为“1”,但由于所述实例性包的数据单元的数目为8,因此仅MSK值的最低有效8个位用于掩码操作。虽然已描述了特定实例,但可在不背离本发明的情况下使用与数据相关的配置信息的其它布置。
图3图解说明根据本发明的实施例的包解码器300。包解码器300可用作图1的存储器100的包解码器120。包解码器300从IO接口(例如,IO接口110)接收命令包,所述命令包包含存储器命令及配置信息(举例来说,与总数据长度、数据单元大小及掩码信息相关的信息)等等。在一些实施例中,包解码器300接收图2的命令包200。
包解码器300接收相关于与命令包相关联的数据的信息,举例来说,由命令包200的LNG、SIZ及MSK字段提供的信息。包解码器300将各个字段中的值解码且从所述包产生表示命令、地址、操作数数据以及数据长度、数据单元大小及掩码信息的内部信号。如下文将更详细地描述,可使用经解码的信息来对与命令包相关联的数据实施操作。
图4图解说明根据本发明的实施例的操作逻辑400。操作逻辑400可用于图1的存储器100的操作逻辑140。操作逻辑400包含第一选择器410,第一选择器410经配置以从存储器存储区接收所读取数据且进一步接收与命令包相关联的地址、数据长度及数据单元大小信息。第一选择器410将所述所读取数据提供到操作单元420及第二选择器430。操作单元420根据将提供到操作单元420的地址、数据长度及数据单元大小信息配置所述数据。举例来说,如由所述信息识别的数据的选择部分被提供到操作单元420。所述经配置的数据还提供到第二选择器430。操作单元420进一步接收操作数数据及与命令包相关联的命令且根据所述命令对所读取数据及/或操作数数据执行各种操作。下文将更详细地描述实例性操作。
来自操作单元420的所得数据被提供到第二选择器430。所述第二选择器使用与命令包相关联的掩码、数据长度及数据单元大小信息来提供用以返回到请求装置及/或用以存储于存储器存储区中的数据(其中此数据可为所读取数据、所得数据或上述数据中的任一者的某一组合或部分)。所述数据可被提供到存储器存储区及/或经准备以经由IO接口(例如,IO接口110,图1)返回。在一些实施例中,由第二选择器430提供哪一数据是至少部分地基于来自命令包的信息。举例来说,如果掩码位为“0”,那么第二选择器430提供所得数据的一对应部分,然而针对“1”,提供所读取数据的一对应部分。在一些实施例中,至少部分地基于如何界定原子操作而将与存储于存储器存储区中的数据不同的数据返回到请求处理器。
在图4中所展示的实施例中,操作单元420可操作以执行算术运算。举例来说,在本发明的实施例中,操作单元420可操作以对两个32位值执行算术运算。操作单元420可操作以对所述数据执行逻辑运算。举例来说,在本发明的实施例中,操作单元420可操作以对64位值执行逻辑运算。
在本发明的实施例中,操作单元420可操作以执行以下算术运算。
名称 | 功能 |
INC | 将1加到存储器字段 |
DEC | 从存储器字段减去1 |
ADD | 将操作数加到存储器字段 |
SUB | 从存储器字段减去操作数 |
在本发明的实施例中,操作单元420可操作以执行以下逻辑运算。
名称 | 功能 |
CB | 清零位/“及” |
SB | 设定位/“或” |
TB | 轮转位/“异或” |
操作单元还可执行其它逻辑运算。举例来说,可执行比较逻辑运算(例如交换及存储操作)以及其它操作。比较逻辑运算比较两个值且关于所述两个值中的哪一者较大或较小(或,在一些实施例中,所述两个值是否相等)做出确定。借助比较及交换逻辑运算,可选择所述较大或较小值来存储。
如先前所描述,在操作中,第一选择器410使用地址、LNG及SIZ值来配置所读取数据以用于由操作单元420进行的操作。举例来说,假设操作单元420可执行多达两个32位数据项的操作,可使用操作单元420来执行如4×1字节、2×2字节或1×4字节操作逻辑的操作。即,在数据单元大小为1个字节的情况下,操作单元420可对两组4×1字节操作数进行操作。在另一实例中,在数据单元大小为4个字节的情况下,操作单元420可对两组1×4字节数据操作数进行操作。
如先前所进一步描述,可使用MSK值来掩码或不掩码与包相关联的数据的数据单元,所述数据单元由SIZ值界定。在操作中,可使用MSK及SIZ值来选择将由第二选择器430提供的数据的特定数据单元。举例来说,在应用MSK值时,所述数据的数据单元可由第二选择器430选择性地提供。可通过考虑先前所描述的实例来图解说明此操作。在先前所描述的实例中,假设总数据长度为16个字节且数据单元的大小为1个字节,从而产生具有包含16个数据单元的数据的相关联数据的实例性包。实例性MSK值未掩码第一及每隔一个字节长的数据单元,但掩码第二及每隔一个字节长的数据单元。当应用于特定数据单元(16字节长的数据单元)的选择时,第一、第三、第五、第七、第九、第十一、第十三及第十五数据单元(即,可能16字节长的数据单元中的8个数据单元)由第二选择器430提供。
从上述内容将了解,虽然本文中已出于图解说明的目的描述了本发明的特定实施例,但可在不偏离本发明的精神及范围的情况下做出各种修改。因此,除受所附权利要求书限制之外,本发明不受其它限制。
Claims (27)
1.一种存储器,其包括:
操作逻辑,其经配置以接收数据且根据命令控制信号对其执行原子操作;
命令解码器,其经配置以接收命令包,所述命令包中的每一者具有其中提供存储器命令的至少一存储器命令部分及其中提供相关于与命令包相关联的数据的配置信息的配置部分,所述命令解码器进一步经配置以至少部分地基于所述存储器命令而产生所述命令控制信号且进一步经配置以至少部分地基于所述配置信息而产生配置控制信号,其中对响应于所述配置控制信号而配置的数据执行所述操作及/或响应于所述配置控制信号而选择性地提供所述操作的所得数据。
2.根据权利要求1所述的存储器,其中所述命令解码器包括:
包解码器,其经配置以接收包含至少掩码控制信息作为所述配置信息的命令包。
3.根据权利要求2所述的存储器,其中所述包解码器经配置以接收16位的掩码控制信息。
4.根据权利要求2所述的存储器,其中所述掩码控制信息针对来自所述原子操作的所得数据的每一数据单元选择性地启用掩码,且其中所述操作逻辑经配置以基于所述掩码控制信息而选择性地提供所述所得数据的数据单元。
5.根据权利要求1所述的存储器,其中所述命令解码器包括:
包解码器,其经配置以接收至少包含数据长度信息的命令包,所述数据长度信息至少部分地界定与相应命令包相关联的所述数据的长度。
6.根据权利要求5所述的存储器,其中所述命令解码器经配置以接收将所述数据长度界定为0个字节、8个字节或16个字节中的一者的数据长度信息。
7.根据权利要求1所述的存储器,其中所述命令解码器包括:
包解码器,其经配置以接收至少包含数据单元大小信息的命令包,所述数据单元大小信息至少部分地界定与相应命令包相关联的所述数据的数据单元的大小。
8.根据权利要求7所述的存储器,其中所述命令解码器经配置以接收将所述数据单元大小界定为以字节为单位中的一者的数据单元大小信息。
9.根据权利要求8所述的存储器,其中所述命令解码器经配置以接收界定0个字节、1个字节、2个字节、4个字节、8个字节或16个字节的所述数据单元大小的数据单元大小信息。
10.根据权利要求1所述的存储器,其中所述命令解码器包括:
经配置以接收并解码所述原子存储器命令且经配置以管理用以执行所述原子存储器命令的多个内部操作的命令解码器。
11.根据权利要求1所述的存储器,其中所述操作逻辑包括
经配置以至少部分地基于由所述命令解码器提供的所述配置控制信号而在掩码控制下对所接收数据执行操作的操作逻辑。
12.根据权利要求11所述的存储器,其中所述配置控制信号包括若干配置控制信号,且其中所述命令解码器经配置以至少部分地基于数据长度、数据单元大小及数据掩码信息而产生所述配置控制信号。
13.一种存储器,其包括:
操作逻辑,其经配置以关于命令及操作数数据执行原子操作以提供所得数据;及
命令解码器,其耦合到所述操作逻辑且经配置以接收所述命令且进一步经配置以接收与所述操作数数据及/或所述所得数据相关的配置信息,所述命令解码器经配置以产生用以执行所述原子存储器操作的内部控制及定时信号。
14.根据权利要求13所述的存储器,其中所述命令及配置信息以包化格式被提供到所述命令解码器。
15.根据权利要求13所述的存储器,其中所述操作逻辑包括:
经配置以执行算术运算的操作逻辑。
16.根据权利要求15所述的存储器,其中所述操作逻辑经配置以执行以下算术运算中的至少一者:
将1加到从存储器存储区读取的数据;
从自所述存储器存储区读取的数据减去1;
将所述操作数数据加到从所述存储器存储区读取的所述数据;及
从自所述存储器存储区读取的数据减去所述操作数数据。
17.根据权利要求13所述的存储器,其中所述操作逻辑包括:
经配置以执行逻辑运算的操作逻辑。
18.根据权利要求17所述的存储器,其中所述操作逻辑经配置以执行以下操作中的至少一者:
将位清零;
设定位;及
双态切换位。
19.根据权利要求13所述的存储器,其中所述操作逻辑包括:
经配置以对多达两个16字节数据值执行算术运算的操作逻辑。
20.根据权利要求13所述的存储器,其中所述操作逻辑包括:
经配置以至少部分地基于数据单元大小参数而对数据执行操作的操作逻辑。
21.一种执行原子存储器操作的方法,其包括:
接收用于原子存储器操作的命令;
接收与所述原子存储器操作相关联的掩码控制信息;及
响应于命令且根据所述掩码控制信息在内部控制多个操作。
22.根据权利要求21所述的方法,其进一步包括配置操作数数据,至少部分地基于所述操作数数据的长度及所述操作数数据中的数据单元的大小而对所述操作数数据执行所述原子存储器操作。
23.根据权利要求22所述的方法,其进一步包括接收相关于与所述命令相关联的所述数据单元的所述大小的信息。
24.根据权利要求21所述的方法,其进一步包括提供所述操作数数据的所述长度及所述命令的所述数据单元的所述大小以用于所述原子存储器操作。
25.根据权利要求21所述的方法,其中执行操作包括:对操作数数据及从存储器检索的数据执行算术运算。
26.根据权利要求21所述的方法,其中执行操作包括:对所述操作数数据执行逻辑运算。
27.根据权利要求21所述的方法,其中执行操作包括:对操作数数据执行比较、交换、存储或其组合的所述逻辑运算中的至少一者。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/909,678 | 2010-10-21 | ||
US12/909,678 US10026458B2 (en) | 2010-10-21 | 2010-10-21 | Memories and methods for performing vector atomic memory operations with mask control and variable data length and data unit size |
PCT/US2011/052093 WO2012054159A1 (en) | 2010-10-21 | 2011-09-19 | Memories and methods for performing atomic memory operations in accordance with configuration information |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103222003A true CN103222003A (zh) | 2013-07-24 |
CN103222003B CN103222003B (zh) | 2017-07-18 |
Family
ID=45973961
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180056214.5A Active CN103222003B (zh) | 2010-10-21 | 2011-09-19 | 用于根据配置信息执行原子存储器操作的存储器及方法 |
Country Status (6)
Country | Link |
---|---|
US (2) | US10026458B2 (zh) |
EP (1) | EP2630642B1 (zh) |
KR (1) | KR101513380B1 (zh) |
CN (1) | CN103222003B (zh) |
TW (1) | TWI461910B (zh) |
WO (1) | WO2012054159A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106886504A (zh) * | 2017-04-05 | 2017-06-23 | 上海矽奥微电子有限公司 | 基于ahb总线的多核soc中实现原子操作系统及方法 |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7822911B2 (en) * | 2007-08-15 | 2010-10-26 | Micron Technology, Inc. | Memory device and method with on-board cache system for facilitating interface with multiple processors, and computer system using same |
US8055852B2 (en) | 2007-08-15 | 2011-11-08 | Micron Technology, Inc. | Memory device and method having on-board processing logic for facilitating interface with multiple processors, and computer system using same |
US8291174B2 (en) | 2007-08-15 | 2012-10-16 | Micron Technology, Inc. | Memory device and method having on-board address protection system for facilitating interface with multiple processors, and computer system using same |
US9779057B2 (en) | 2009-09-11 | 2017-10-03 | Micron Technology, Inc. | Autonomous memory architecture |
US10026458B2 (en) | 2010-10-21 | 2018-07-17 | Micron Technology, Inc. | Memories and methods for performing vector atomic memory operations with mask control and variable data length and data unit size |
KR101975534B1 (ko) | 2012-09-11 | 2019-05-07 | 삼성전자주식회사 | 연산기능을 갖는 반도체 메모리 장치 |
US11074169B2 (en) | 2013-07-03 | 2021-07-27 | Micron Technology, Inc. | Programmed memory controlled data movement and timing within a main memory device |
US9842128B2 (en) * | 2013-08-01 | 2017-12-12 | Sandisk Technologies Llc | Systems and methods for atomic storage operations |
US9779138B2 (en) | 2013-08-13 | 2017-10-03 | Micron Technology, Inc. | Methods and systems for autonomous memory searching |
US9519440B2 (en) | 2013-09-10 | 2016-12-13 | Qualcomm Incorporated | Providing command queuing in embedded memories |
US10003675B2 (en) * | 2013-12-02 | 2018-06-19 | Micron Technology, Inc. | Packet processor receiving packets containing instructions, data, and starting location and generating packets containing instructions and data |
US9710185B2 (en) * | 2014-07-10 | 2017-07-18 | Samsung Electronics Co., Ltd. | Computing system with partial data computing and method of operation thereof |
US20240168876A1 (en) * | 2022-11-22 | 2024-05-23 | Samsung Electronics Co., Ltd. | Solving submission queue entry overflow using metadata or data pointers |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4789925A (en) * | 1985-07-31 | 1988-12-06 | Unisys Corporation | Vector data logical usage conflict detection |
US5678021A (en) * | 1992-08-25 | 1997-10-14 | Texas Instruments Incorporated | Apparatus and method for a memory unit with a processor integrated therein |
US20040193837A1 (en) * | 2003-03-31 | 2004-09-30 | Patrick Devaney | CPU datapaths and local memory that executes either vector or superscalar instructions |
US20090138680A1 (en) * | 2007-11-28 | 2009-05-28 | Johnson Timothy J | Vector atomic memory operations |
US20090138675A1 (en) * | 2005-12-01 | 2009-05-28 | Sony Computer Entertainment Inc. | Atomic compare and swap using dedicated processor |
Family Cites Families (63)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5067071A (en) | 1985-02-27 | 1991-11-19 | Encore Computer Corporation | Multiprocessor computer system employing a plurality of tightly coupled processors with interrupt vector bus |
US4873630A (en) * | 1985-07-31 | 1989-10-10 | Unisys Corporation | Scientific processor to support a host processor referencing common memory |
US4787041A (en) | 1985-08-01 | 1988-11-22 | Honeywell | Data control system for digital automatic flight control system channel with plural dissimilar data processing |
US4796232A (en) | 1987-10-20 | 1989-01-03 | Contel Corporation | Dual port memory controller |
US4975878A (en) | 1988-01-28 | 1990-12-04 | National Semiconductor | Programmable memory data protection scheme |
US5420994A (en) | 1990-08-06 | 1995-05-30 | Ncr Corp. | Method for reading a multiple byte data element in a memory system with at least one cache and a main memory |
US5163139A (en) | 1990-08-29 | 1992-11-10 | Hitachi America, Ltd. | Instruction preprocessor for conditionally combining short memory instructions into virtual long instructions |
US5457482A (en) | 1991-03-15 | 1995-10-10 | Hewlett Packard Company | Method and apparatus for utilizing off-screen memory as a simultaneously displayable channel |
JP3307473B2 (ja) | 1992-09-09 | 2002-07-24 | ソニー エレクトロニクス インコーポレイテッド | 半導体メモリの試験回路 |
US5524225A (en) | 1992-12-18 | 1996-06-04 | Advanced Micro Devices Inc. | Cache system and method for providing software controlled writeback |
EP0681240B1 (en) | 1994-05-03 | 2001-01-10 | Hewlett-Packard Company | Duplicate cache tag memory system |
US5488583A (en) | 1994-09-22 | 1996-01-30 | Micron Technology, Inc. | Memory integrated circuits having on-chip topology logic driver, and methods for testing and producing such memory integrated circuits |
FR2728363A1 (fr) | 1994-12-20 | 1996-06-21 | Sgs Thomson Microelectronics | Dispositif de protection de l'acces a des mots memoires |
US5682344A (en) | 1995-09-11 | 1997-10-28 | Micron Technology, Inc. | Destructive read protection using address blocking technique |
US5802541A (en) | 1996-02-28 | 1998-09-01 | Motorola, Inc. | Method and apparatus in a data processing system for using chip selects to perform a memory management function |
US5835925A (en) | 1996-03-13 | 1998-11-10 | Cray Research, Inc. | Using external registers to extend memory reference capabilities of a microprocessor |
JP3789173B2 (ja) | 1996-07-22 | 2006-06-21 | Necエレクトロニクス株式会社 | 半導体記憶装置及び半導体記憶装置のアクセス方法 |
US6092155A (en) | 1997-07-10 | 2000-07-18 | International Business Machines Corporation | Cache coherent network adapter for scalable shared memory processing systems |
US6026478A (en) * | 1997-08-01 | 2000-02-15 | Micron Technology, Inc. | Split embedded DRAM processor |
US6081876A (en) | 1997-09-22 | 2000-06-27 | Hewlett-Packard Company | Memory error containment in network cache environment via restricted access |
US6049487A (en) | 1998-03-16 | 2000-04-11 | Actel Corporation | Embedded static random access memory for field programmable gate array |
JP2000132969A (ja) | 1998-10-28 | 2000-05-12 | Nec Corp | ダイナミックメモリ装置 |
US6378049B1 (en) | 1998-11-16 | 2002-04-23 | Infineon Technologies A.G. | Universal memory controller |
US6526481B1 (en) | 1998-12-17 | 2003-02-25 | Massachusetts Institute Of Technology | Adaptive cache coherence protocols |
JP3807582B2 (ja) | 1999-02-18 | 2006-08-09 | 株式会社ルネサステクノロジ | 情報処理装置及び半導体装置 |
EP1050884A1 (en) | 1999-05-03 | 2000-11-08 | STMicroelectronics SA | A multiport memory system with write conflict detection |
US6321314B1 (en) | 1999-06-09 | 2001-11-20 | Ati International S.R.L. | Method and apparatus for restricting memory access |
US6563754B1 (en) | 2001-02-08 | 2003-05-13 | Integrated Device Technology, Inc. | DRAM circuit with separate refresh memory |
US6775750B2 (en) | 2001-06-29 | 2004-08-10 | Texas Instruments Incorporated | System protection map |
US7032082B1 (en) | 2001-08-31 | 2006-04-18 | Juniper Networks, Inc. | Centralized memory allocation with write pointer drift correction |
US7085955B2 (en) | 2001-09-14 | 2006-08-01 | Hewlett-Packard Development Company, L.P. | Checkpointing with a write back controller |
US6757784B2 (en) | 2001-09-28 | 2004-06-29 | Intel Corporation | Hiding refresh of memory and refresh-hidden memory |
US7174429B2 (en) | 2001-12-28 | 2007-02-06 | Intel Corporation | Method for extending the local memory address space of a processor |
US7546446B2 (en) | 2002-03-08 | 2009-06-09 | Ip-First, Llc | Selective interrupt suppression |
KR100543447B1 (ko) | 2003-04-03 | 2006-01-23 | 삼성전자주식회사 | 에러정정기능을 가진 플래쉬메모리장치 |
JP4563715B2 (ja) | 2003-04-29 | 2010-10-13 | 三星電子株式会社 | パーシャルコピーバック動作モードを有するフラッシュメモリ装置 |
US7320100B2 (en) | 2003-05-20 | 2008-01-15 | Cray Inc. | Apparatus and method for memory with bit swapping on the fly and testing |
US6868019B2 (en) | 2003-07-02 | 2005-03-15 | Micron Technology, Inc. | Reduced power redundancy address decoder and comparison circuit |
US6903361B2 (en) | 2003-09-17 | 2005-06-07 | Micron Technology, Inc. | Non-volatile memory structure |
US7281079B2 (en) | 2003-12-31 | 2007-10-09 | Intel Corporation | Method and apparatus to counter mismatched burst lengths |
US7082075B2 (en) | 2004-03-18 | 2006-07-25 | Micron Technology, Inc. | Memory device and method having banks of different sizes |
US7437541B2 (en) * | 2004-07-08 | 2008-10-14 | International Business Machiens Corporation | Atomically updating 64 bit fields in the 32 bit AIX kernel |
GB2417577A (en) | 2004-08-25 | 2006-03-01 | Imagination Tech Ltd | Memory controller with randomised bank selection |
JP2006190402A (ja) | 2005-01-07 | 2006-07-20 | Renesas Technology Corp | 半導体装置 |
US20060159170A1 (en) | 2005-01-19 | 2006-07-20 | Ren-Wei Chiang | Method and system for hierarchical search with cache |
US20080189557A1 (en) | 2005-01-19 | 2008-08-07 | Stmicroelectronics S.R.I. | Method and architecture for restricting access to a memory device |
US7209405B2 (en) | 2005-02-23 | 2007-04-24 | Micron Technology, Inc. | Memory device and method having multiple internal data buses and memory bank interleaving |
US7274594B2 (en) | 2005-04-11 | 2007-09-25 | Stmicroelectronics S.R.L. | Non-volatile memory electronic device with NAND structure being monolithically integrated on semiconductor |
JP4989872B2 (ja) | 2005-10-13 | 2012-08-01 | ルネサスエレクトロニクス株式会社 | 半導体記憶装置および演算処理装置 |
US8279877B2 (en) | 2005-11-22 | 2012-10-02 | Freescale Semiconductor, Inc. | Method for processing ATM cells and a device having ATM cell processing capabilities |
US20070150671A1 (en) * | 2005-12-23 | 2007-06-28 | Boston Circuits, Inc. | Supporting macro memory instructions |
KR100782594B1 (ko) | 2006-07-14 | 2007-12-06 | 엠텍비젼 주식회사 | 데이터 처리 기능을 구비한 메모리 장치 |
US9141572B2 (en) * | 2006-12-15 | 2015-09-22 | Microchip Technology Incorporated | Direct memory access controller |
US7574576B2 (en) | 2006-12-22 | 2009-08-11 | Spansion Llc | Semiconductor device and method of controlling the same |
US20080183984A1 (en) | 2007-01-31 | 2008-07-31 | Dale Beucler | Memory system with read-modify-write |
US7797503B2 (en) | 2007-06-26 | 2010-09-14 | International Business Machines Corporation | Configurable memory system and method for providing atomic counting operations in a memory device |
US8291174B2 (en) | 2007-08-15 | 2012-10-16 | Micron Technology, Inc. | Memory device and method having on-board address protection system for facilitating interface with multiple processors, and computer system using same |
US8055852B2 (en) | 2007-08-15 | 2011-11-08 | Micron Technology, Inc. | Memory device and method having on-board processing logic for facilitating interface with multiple processors, and computer system using same |
US7822911B2 (en) | 2007-08-15 | 2010-10-26 | Micron Technology, Inc. | Memory device and method with on-board cache system for facilitating interface with multiple processors, and computer system using same |
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 |
US9342471B2 (en) | 2010-01-29 | 2016-05-17 | Mosys, Inc. | High utilization multi-partitioned serial memory |
US8504777B2 (en) * | 2010-09-21 | 2013-08-06 | Freescale Semiconductor, Inc. | Data processor for processing decorated instructions with cache bypass |
US10026458B2 (en) | 2010-10-21 | 2018-07-17 | Micron Technology, Inc. | Memories and methods for performing vector atomic memory operations with mask control and variable data length and data unit size |
-
2010
- 2010-10-21 US US12/909,678 patent/US10026458B2/en active Active
-
2011
- 2011-09-19 EP EP11834803.6A patent/EP2630642B1/en active Active
- 2011-09-19 CN CN201180056214.5A patent/CN103222003B/zh active Active
- 2011-09-19 WO PCT/US2011/052093 patent/WO2012054159A1/en active Application Filing
- 2011-09-19 KR KR1020137012860A patent/KR101513380B1/ko active IP Right Grant
- 2011-10-19 TW TW100137946A patent/TWI461910B/zh active
-
2018
- 2018-07-16 US US16/036,177 patent/US11183225B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4789925A (en) * | 1985-07-31 | 1988-12-06 | Unisys Corporation | Vector data logical usage conflict detection |
US5678021A (en) * | 1992-08-25 | 1997-10-14 | Texas Instruments Incorporated | Apparatus and method for a memory unit with a processor integrated therein |
US20040193837A1 (en) * | 2003-03-31 | 2004-09-30 | Patrick Devaney | CPU datapaths and local memory that executes either vector or superscalar instructions |
US20090138675A1 (en) * | 2005-12-01 | 2009-05-28 | Sony Computer Entertainment Inc. | Atomic compare and swap using dedicated processor |
US20090138680A1 (en) * | 2007-11-28 | 2009-05-28 | Johnson Timothy J | Vector atomic memory operations |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106886504A (zh) * | 2017-04-05 | 2017-06-23 | 上海矽奥微电子有限公司 | 基于ahb总线的多核soc中实现原子操作系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
EP2630642A1 (en) | 2013-08-28 |
WO2012054159A1 (en) | 2012-04-26 |
TW201232254A (en) | 2012-08-01 |
US20120102275A1 (en) | 2012-04-26 |
KR101513380B1 (ko) | 2015-04-17 |
EP2630642A4 (en) | 2014-06-04 |
KR20130085042A (ko) | 2013-07-26 |
US10026458B2 (en) | 2018-07-17 |
US20180342270A1 (en) | 2018-11-29 |
CN103222003B (zh) | 2017-07-18 |
TWI461910B (zh) | 2014-11-21 |
EP2630642B1 (en) | 2019-11-06 |
US11183225B2 (en) | 2021-11-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103222003A (zh) | 用于根据配置信息执行原子存储器操作的存储器及方法 | |
JP4604144B2 (ja) | 摩耗防止を備えたメモリ制御手段を有する記憶システムとメモリの管理方法 | |
CN103314363A (zh) | 用于设计分级存储器系统的高速存储器系统和方法 | |
US20020004904A1 (en) | Cryptographic data processing systems, computer program products, and methods of operating same in which multiple cryptographic execution units execute commands from a host processor in parallel | |
CN106716334A (zh) | 文件系统卷内的高效数据移动 | |
CN104820580A (zh) | 改进的返回堆栈缓存 | |
CN101111828B (zh) | 用于具有组合行和字访问的存储器的系统和方法 | |
CN111666330A (zh) | 数据的读写方法和装置 | |
US6978358B2 (en) | Executing stack-based instructions within a data processing apparatus arranged to apply operations to data items stored in registers | |
US6694407B1 (en) | Cache memory with data transfer control and method of operating same | |
US7237092B2 (en) | Microprocessor circuit for portable data carriers and method for operating the circuit | |
US6973540B2 (en) | Method and apparatus for selecting cache ways available for replacement | |
US6023750A (en) | Microcontroller having dedicated hardware for memory address space expansion via auxilliary address signal generation | |
JP2008077625A (ja) | ユーザ定義の拡張演算を処理する演算システムおよび方法 | |
US6687821B1 (en) | System for dynamically configuring system logic device coupled to the microprocessor to optimize application performance by reading from selection table located in non-volatile memory | |
US11487469B2 (en) | Apparatus and method for controlling access to memory module | |
CN108293027B (zh) | 数据流送单元和用于操作数据流送单元的方法 | |
US7124261B2 (en) | Access to bit values within data words stored in a memory | |
KR101041710B1 (ko) | 비휘발성 메모리의 섹터 관리 방법 | |
US20040205701A1 (en) | Computer system, virtual machine, runtime representation of object, storage media and program transmission apparatus | |
US20120059998A1 (en) | Bit mask extract and pack for boundary crossing data | |
US7017015B2 (en) | Method and system for coordinating the access of data by two computer processes | |
JP2003196087A (ja) | マイクロコントローラのメモリアドレッシング方法及びページマッピング装置 | |
US20070016752A1 (en) | Efficient data storage | |
WO2006044190A2 (en) | Managing address bits during buffered program operations |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |