TWI461910B - Memories and methods for performing atomic memory operations in accordance with configuration information - Google Patents

Memories and methods for performing atomic memory operations in accordance with configuration information Download PDF

Info

Publication number
TWI461910B
TWI461910B TW100137946A TW100137946A TWI461910B TW I461910 B TWI461910 B TW I461910B TW 100137946 A TW100137946 A TW 100137946A TW 100137946 A TW100137946 A TW 100137946A TW I461910 B TWI461910 B TW I461910B
Authority
TW
Taiwan
Prior art keywords
data
memory
command
packet
configuration
Prior art date
Application number
TW100137946A
Other languages
Chinese (zh)
Other versions
TW201232254A (en
Inventor
David Resnick
Original Assignee
Micron Technology Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Micron Technology Inc filed Critical Micron Technology Inc
Publication of TW201232254A publication Critical patent/TW201232254A/en
Application granted granted Critical
Publication of TWI461910B publication Critical patent/TWI461910B/en

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System 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/7821Tightly coupled to memory, e.g. computational memory, smart memory, processor in memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7839Architectures of general purpose stored program computers comprising a single central processing unit with memory
    • G06F15/7842Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers)
    • G06F15/785Architectures 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8053Vector processors
    • G06F15/8076Details on data register access
    • G06F15/8084Special arrangements thereof, e.g. mask or switch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • G11C7/1009Data masking during input/output
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
    • G11C7/109Control signal input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/10Decoders
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Memory System (AREA)
  • Dram (AREA)
  • Executing Machine-Instructions (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

用於依照組態資訊執行原子記憶體操作之記憶體及方法Memory and method for performing atomic memory operations in accordance with configuration information

本發明之實施例一般而言係關於記憶體,且在所圖解說明之實施例中之一或多者中更具體而言係關於具有可操作以在遮罩控制下提供原子記憶體操作之邏輯且具有可變運算元大小之記憶體。Embodiments of the present invention are generally related to memory, and in one or more of the illustrated embodiments, more specifically to logic having operations operable to provide atomic memory under mask control. And a memory with a variable operand size.

記憶體用於電子系統及電路中以儲存可擷取以供(例如)一處理器稍後處理之資料。資料可寫入至記憶體以及稍後可自記憶體讀取該資料。在較先進之記憶體中,可由記憶體自身中之邏輯執行基本操作以使一處理器免於鬚髮出多個記憶體命令至記憶體以及管理該操作。舉例而言,一處理器可發出一單個「讀取-修改-寫入」命令至一記憶體,且該記憶體管理自記憶體擷取資料、對該資料執行操作及將所得資料寫入回至記憶體之步驟。因此,儘管發出一個記憶體命令至該記憶體,但該記憶體自身管理及執行涉及存取儲存於一記憶體中之資料及對該資料執行操作之多個操作。此等命令可稱為「原子記憶體操作」。此等操作稱為「原子的」,乃因其不可分割地執行:如不能中斷或細分之一單個順序。若一處理器須更新一共用記憶體項目,則須在將經更新之資料返回至記憶體之前第一處理器正執行該更新時執行額外操作以防止共用處理器存取及/或修改資料項目。藉由將更新操作更直接地放於記憶體中,可在沒有相干額外負擔且以減少之能量支出之情形下更迅速地更新共用項目。The memory is used in electronic systems and circuits to store data that can be retrieved for processing by, for example, a processor. The data can be written to the memory and later read from the memory. In more advanced memory, basic operations can be performed by logic in the memory itself to free a processor from issuing multiple memory commands to the memory and managing the operation. For example, a processor can issue a single "read-modify-write" command to a memory, and the memory manages to retrieve data from the memory, perform operations on the data, and write the resultant data back. The steps to the memory. Thus, while a memory command is issued to the memory, the memory itself manages and executes a plurality of operations involving accessing data stored in a memory and performing operations on the data. These commands can be referred to as "atomic memory operations." Such operations are referred to as "atomic" because they are performed indivisibly: if one order cannot be interrupted or subdivided. If a processor is required to update a shared memory item, additional operations must be performed to prevent the shared processor from accessing and/or modifying the data item while the first processor is executing the update before returning the updated data to the memory. . By placing the update operation more directly in the memory, the shared project can be updated more quickly without the extra burden of coherence and with reduced energy expenditure.

執行原子記憶體操作之記憶體及控制邏輯可不具有用以適應對不同大小之資料之操作的撓性。亦即,記憶體可經設計以對具有某一長度之資料及某一大小之資料單元執行操作。對較小資料單元執行操作(例如,對一位元組之資料執行一操作,儘管擷取4個位元組之資料)將消耗一整個操作循環,儘管僅期望較小資料單元之結果。摒棄由於對其他資料單元執行操作所得之結果。由於所期望資料可以需要擷取多個不同資料區塊之一方式儲存且不能以一單個簡單順序或高效地執行使用來自不同區塊之資料之操作的事實,對特定資料執行操作亦可需要多個操作。The memory and control logic that performs atomic memory operations may not have the flexibility to accommodate manipulation of data of different sizes. That is, the memory can be designed to perform operations on data having a certain length and data units of a certain size. Performing operations on smaller data units (e.g., performing an operation on a tuple of data, although extracting 4 bytes of data) will consume an entire operational cycle, although only the results of the smaller data units are expected. Discard the results of operations performed on other data units. Since the desired data may need to be retrieved in one of a plurality of different data blocks and cannot be performed in a single simple order or efficiently, the operation of using data from different blocks may require more operations on specific data. Operations.

因此,期望具有能夠執行原子記憶體操作之一記憶體,該記憶體亦獨立於實施特定記憶體操作之方式在運算元及資料大小上提供撓性。Therefore, it is desirable to have a memory capable of performing an atomic memory operation that also provides flexibility in terms of operands and data size independently of the manner in which a particular memory operation is performed.

本發明之實施例可提供能力,因此可藉助一單個命令同時完成多個原子操作。以下列舉某些細節以提供對本發明之實施例之一充分理解。然而,熟習此項技術者將明瞭可在沒有此等特定細節之情形下實踐本發明之實施例。此外,本文中所闡述之本發明之特定實施例以實例方式提供且不應用以將本發明之範疇限制於此等特定實施例。在其他例項中,尚未詳細地展示眾所周知之電路、控制信號、計時協定及軟體操作以便避免不必要地模糊本發明。Embodiments of the present invention can provide capabilities so that multiple atomic operations can be performed simultaneously with a single command. Certain details are set forth below to provide a thorough understanding of one embodiment of the invention. It will be apparent to those skilled in the art, however, that the embodiments of the invention may be practiced without the specific details. In addition, the specific embodiments of the invention set forth herein are provided by way of example only and are not intended to limit the scope of the invention. In other instances, well-known circuits, control signals, timing protocols, and software operations have not been shown in detail in order to avoid unnecessarily obscuring the present invention.

圖1圖解說明依照本發明之一實施例之一記憶體100之一部分。記憶體100包含一IO介面110,IO介面110接收記憶體命令以及其他資訊(諸如相關於與記憶體命令相關聯之資料之組態資訊)以請求記憶體命令之執行。可將記憶體命令及組態資訊以一封包化格式提供至IO介面110。亦即,一命令封包可包含欄位,其中該等欄位中之二進制數字(位元)之組合表示可由一命令解碼器(諸如一封包解碼器120)解碼以判定執行何種命令之資訊,且在某些實施例中表示相關於與該命令封包相關聯之資料之組態資訊。以下將更詳細地闡釋包含相關於該資料之組態資訊之命令封包之實例。Figure 1 illustrates a portion of a memory 100 in accordance with one embodiment of the present invention. The memory 100 includes an IO interface 110 that receives memory commands and other information (such as configuration information related to data associated with memory commands) to request execution of memory commands. Memory commands and configuration information can be provided to the IO interface 110 in a packetized format. That is, a command packet can include fields in which a combination of binary digits (bits) in the fields represents information that can be decoded by a command decoder (such as a packet decoder 120) to determine which command to execute. And in some embodiments, configuration information related to the data associated with the command packet is represented. Examples of command packets containing configuration information related to the data are explained in more detail below.

封包解碼器120自IO介面110接收封包且將該封包解碼以產生內部控制及計時信號來實行所請求之記憶體命令。舉例而言,在圖1之實施例中,封包解碼器120將一封包解碼以產生表示命令、位址、運算元資料、遮罩資訊、長度資訊及資料單元大小資訊之內部信號。位址資訊提供至經組態以儲存資料之記憶體儲存器130以識別可在執行命令期間存取之記憶體位置。可使用各種不同技術(例如,記憶體胞技術(諸如動態隨機存取記憶體胞、靜態隨機存取記憶體胞以及非揮發性記憶體胞)及磁碟技術(諸如磁碟機媒體))實施記憶體儲存器130。Packet decoder 120 receives the packet from IO interface 110 and decodes the packet to generate internal control and timing signals to implement the requested memory command. For example, in the embodiment of FIG. 1, packet decoder 120 decodes a packet to generate an internal signal representative of command, address, operational metadata, mask information, length information, and data unit size information. The address information is provided to a memory store 130 configured to store data to identify memory locations that are accessible during execution of the command. It can be implemented using a variety of different technologies, such as memory cell technology (such as dynamic random access memory cells, static random access memory cells, and non-volatile memory cells) and disk technology (such as disk drive media). Memory storage 130.

記憶體100進一步包含執行記憶體操作(諸如讀取及寫入操作以及可係一原子記憶體操作之部分之其他操作)之操作邏輯140。操作邏輯140由封包解碼器120提供之內部控制及計時信號(例如,命令、位址、運算元資料及遮罩、資料長度及資料單元大小資訊)控制。如以下將更詳細地闡述,操作邏輯140之控制係至少部分地基於在記憶體封包中所接收之資訊。在某些實施例中,操作邏輯140對運算元資料執行各種操作,舉例而言,邏輯操作、算術操作、比較操作。運算元資料可係與控制、功能相關聯之提供至記憶體100之資料及在單獨信號中或具有一命令封包之資料;回應於該命令封包中之一命令而擷取之儲存於記憶體儲存器130中之記憶體資料;或其組合。在回應於一命令封包欲返回資料之情形中,記憶體100中之一封包組合器150自操作邏輯140接收資料且(例如)以一返回資料封包形式準備透過IO介面110欲提供之資料。在某些實施例中,可直接返回資料。資料可係由操作邏輯140執行之操作之結果、自記憶體儲存器130擷取之資料或某一其他資料。Memory 100 further includes operational logic 140 that performs memory operations, such as read and write operations, and other operations that can be part of an atomic memory operation. The operational logic 140 is controlled by the internal control and timing signals (eg, commands, addresses, operational metadata and masks, data lengths, and data unit size information) provided by the packet decoder 120. As will be explained in more detail below, the control of operational logic 140 is based, at least in part, on information received in a memory packet. In some embodiments, operational logic 140 performs various operations on the operational metadata, such as logical operations, arithmetic operations, comparison operations. The operational metadata may be data associated with the control, function, and provided to the memory 100 and in a separate signal or having a command packet; the memory stored in the memory may be retrieved in response to a command in the command packet Memory data in the device 130; or a combination thereof. In response to a command packet to return data, a packet combiner 150 in memory 100 receives the data from operational logic 140 and prepares the data to be provided through IO interface 110, for example, in the form of a return data packet. In some embodiments, the data can be returned directly. The data may be the result of operations performed by operational logic 140, data retrieved from memory storage 130, or some other material.

在本發明之某些實施例中,圖1中所圖解說明之區塊表示經耦合以與表示可彼此獨立地操作之複數個記憶體之一記憶體儲存器通信之記憶體儲存器介面電路。舉例而言,可藉由堆疊全部與區塊110、120、130、140及150通信之複數個記憶體裝置而在一實施例中實施該記憶體儲存器。In some embodiments of the invention, the blocks illustrated in Figure 1 represent memory storage interface circuits coupled to communicate with one of a plurality of memory memories that are operable independently of one another. For example, the memory bank can be implemented in one embodiment by stacking a plurality of memory devices all communicating with blocks 110, 120, 130, 140, and 150.

記憶體100可執行習用記憶體操作,舉例而言,自如由一記憶體位址識別之記憶體儲存器130中之一位置讀取資料及將資料寫入至該位置。記憶體100進一步可操作以執行原子記憶體操作。如先前所論述,原子記憶體操作係呈現為不可由發出記憶體命令之實體分割之記憶體操作,但包含數個內部記憶體操作,舉例而言,多個記憶體儲存器存取操作。儘管發出一個原子記憶體命令至該記憶體,但該記憶體在內部執行數個內部記憶體操作以完成所請求之記憶體操作。舉例而言,IO介面110接收命令封包且封包解碼器120將一記憶體命令解碼以用於一原子記憶體操作。作為回應,封包解碼器120產生用以管理該等多個內部記憶體操作之內部控制及計時信號(例如,表示命令、位址、運算元資料及遮罩、資料長度及資料單元大小資訊之信號)。The memory 100 can perform a conventional memory operation, for example, reading data from a location in the memory bank 130 identified by a memory address and writing the data to the location. Memory 100 is further operable to perform atomic memory operations. As previously discussed, the atomic memory operation is presented as a memory operation that is not separable by the entity that issued the memory command, but includes several internal memory operations, for example, multiple memory storage access operations. Although an atomic memory command is issued to the memory, the memory internally performs a number of internal memory operations to complete the requested memory operation. For example, IO interface 110 receives the command packet and packet decoder 120 decodes a memory command for an atomic memory operation. In response, the packet decoder 120 generates internal control and timing signals for managing the operation of the plurality of internal memories (eg, signals representing commands, addresses, operational metadata and masks, data lengths, and data unit size information). ).

一原子記憶體操作之一實例係包含自一記憶體位置讀取資料、藉助提供至記憶體之一運算元及所讀取之資料執行一算術操作及將結果寫入回至最初讀取該資料之該記憶體位置的一記憶體操作。在本發明之某些實施例中,該原子記憶體操作具有兩個操作版本:一個版本係執行所請求之記憶體操作且將結果寫入回至原始記憶體位置;且另一版本係執行所請求之記憶體操作,且除了將結果重新寫入至原始記憶體位置以外,將該結果提供為自記憶體之一輸出。以下將闡述原子記憶體操作之其他實例。An example of an atomic memory operation includes reading data from a memory location, performing an arithmetic operation by providing an operation element to the memory and the read data, and writing the result back to initially reading the data. A memory operation of the memory location. In some embodiments of the invention, the atomic memory operation has two operational versions: one version performs the requested memory operation and writes the result back to the original memory location; and the other version is the execution The requested memory operates and provides the result as output from one of the memories in addition to rewriting the result to the original memory location. Other examples of atomic memory operations are set forth below.

圖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定義之值可對應於表示該資料總長度之一碼。舉例而言,在本發明之一實施例中可使用以下定義:2 illustrates various portions of a command packet 200 in accordance with an embodiment of the present invention. One of the command portions of the packet 200 can include a command field 210, and one of the configuration portions of the packet 200 can include, for example, a data length field 220, a data unit size field 230, and/or a mask field 240. . The command packet 200 can be provided to a memory (e.g., memory 100 of FIG. 1) to request execution of a memory command, as previously discussed. Command packet 200 may include other portions that are well known or later developed, in addition to those portions of the particular display shown in FIG. However, the specifically identified fields in Figure 2 will be explained in detail herein. It will be appreciated that, although specific examples of the field and the size of the field are set forth below, the invention is not limited thereto, and for example, the field size may be variable without departing from the scope of the invention. Can be bigger or smaller. Command packet 200 includes a command field (CMD) 210. The CMD field 210 is used to provide a command decoded by the command decoder to perform an operation. In the embodiment illustrated in Figure 2, the CMD field 210 is [(N-M) + 1] bits in length. In some embodiments, the CMD field 210 is 6 bits long. The command packet 200 further includes a data length field (LNG) 220 for specifying one of the total lengths of data (not shown) associated with the command packet. In the particular embodiment illustrated in Figure 2, the LNG field 210 is [(P-O) + 1] bits in length. In some embodiments, the LNG field is 5 bits long. The value defined by the LNG field 210 may correspond to a code representing the total length of the data. For example, the following definitions can be used in one embodiment of the invention:

因此,LNG欄位220中之一值1將封包之總資料長度定義為8個位元組長。在由CMD欄位210定義之一記憶體命令不需要資料之情形下,可在LNG欄位220中提供一值0以指示沒有資料與該封包相關聯。Therefore, a value of 1 in the LNG field 220 defines the total data length of the packet as 8 bytes long. In the event that one of the memory commands defined by CMD field 210 does not require data, a value of 0 may be provided in LNG field 220 to indicate that no data is associated with the packet.

命令封包200進一步包含一資料單元大小欄位(SIZ)230。在圖2中所圖解說明之實施例中,SIZ欄位230在長度上係[(R-Q)+1]個位元。在本發明之一實施例中,SIZ欄位230係3個位元長。SIZ欄位230中所包含之值依據位元組之數目來定義(例如)每一資料單元之大小。舉例而言,可在本發明之一實施例中使用以下定義:The command packet 200 further includes a data unit size field (SIZ) 230. In the embodiment illustrated in Figure 2, the SIZ field 230 is [(R-Q) + 1] bits in length. In one embodiment of the invention, the SIZ field 230 is 3 bits long. The value contained in SIZ field 230 is defined by the number of bytes, for example, the size of each data unit. For example, the following definitions can be used in one embodiment of the invention:

因此,SIZ欄位230中之一值3將資料單元大小定義為4個位元組長。亦即,包含於封包內之每一資料單元在長度上係4個位元組。Therefore, a value of 3 in the SIZ field 230 defines the data unit size as 4 bytes long. That is, each data unit contained in the packet is 4 bytes in length.

命令封包200進一步包含一遮罩欄位(MSK)240。在圖2中所圖解說明之實施例中,MSK欄位240在長度上係[(T+S)+1]個位元。在本發明之一實施例中,MSK欄位240係16個位元長。使用MSK欄位240中之位元組合來定義該封包中之哪些資料單元中被遮罩。在某些實施例中,MSK欄位240之一位元位置中之一「1」指示相應資料單元應被遮罩且MSK欄位240之一位元位置中之一「0」指示相應資料單元不應被遮罩。遮罩欄位中之一值「1」防止命令欄位中所定義之操作發生在一各別資料單元上,一「0」值允許該操作發生在該各別資料單元上。The command packet 200 further includes a mask field (MSK) 240. In the embodiment illustrated in Figure 2, the MSK field 240 is [(T+S) + 1] bits in length. In one embodiment of the invention, the MSK field 240 is 16 bits long. The combination of bits in the MSK field 240 is used to define which of the data elements in the packet are masked. In some embodiments, one of the bit positions of the MSK field 240 "1" indicates that the corresponding data unit should be masked and one of the bit positions of the MSK field 240 "0" indicates the corresponding data unit. Should not be masked. A value of "1" in the mask field prevents the operation defined in the command field from occurring on a separate data unit. A value of "0" allows the operation to occur on the respective data unit.

LNG、SIZ及MSK欄位220、230、240個別地且一起提供相關於由CMD欄位210中所提供之記憶體命令對其進行操作之資料之組態資訊。將使用以下非限制性實例來圖解說明該等欄位220、230、240之定義之互動。The LNG, SIZ, and MSK fields 220, 230, 240 individually and together provide configuration information relating to the data that is manipulated by the memory commands provided in the CMD field 210. The following non-limiting examples will be used to illustrate the interaction of the definitions of the fields 220, 230, 240.

假定一實例性命令封包,LNG欄位220中之值係2以以定義16個位元組之一總資料長度,且SIZ欄位230中之值係1以將資料單元之大小定義為1個位元組。因此,具有16個位元組之一總資料長度及1個位元組之一資料單元大小,該實例性封包包含16個資料單元。假定MSK欄位240之一位元組合係:(MSB)1010 1010 1010 1010(LSB),提供為資料之該等16個資料單元經遮罩以使得第一資料單元不被遮罩(第一遮罩位元係一「0」)且第二資料單元被遮罩(第二遮罩位元係一「1」)。剩餘資料單元(亦即,位元組3至位元組16)中之每隔一個資料單元(亦即,位元組4、6、8、10、12、14及16)被遮罩,且其餘該等資料單元(亦即,位元組3、5、7、9、11、13及15)不被遮罩。若所指示之命令係加,則在將該等未遮罩資料位元組重新寫入回至記憶體之前,每一未遮罩資料位元組將一對應資料項目加至記憶體資料位元組。被遮罩之記憶體資料位元組未被修改。Assuming an example command packet, the value in the LNG field 220 is 2 to define a total data length of one of the 16 bytes, and the value in the SIZ field 230 is 1 to define the size of the data unit as 1 Bytes. Thus, there is a total data length of one of 16 bytes and a data unit size of one of the bytes, and the example packet contains 16 data units. Assuming one of the MSK field 240 bit combinations: (MSB) 1010 1010 1010 1010 (LSB), the 16 data elements provided as data are masked such that the first data unit is not masked (first cover) The mask bit is a "0" and the second data unit is masked (the second mask bit is a "1"). Every other data unit (ie, byte groups 4, 6, 8, 10, 12, 14, and 16) of the remaining data units (ie, byte 3 to byte 16) is masked, and The remaining data units (ie, bytes 3, 5, 7, 9, 11, 13, and 15) are not masked. If the command indicated is added, each unmasked data byte adds a corresponding data item to the memory data bit before rewriting the unmasked data bytes back to the memory. group. The masked memory data byte has not been modified.

在另一實施例中,以LSB開始之MASK欄位240之位元對應於如由SIZ欄位230定義之一各別資料單元。舉例而言,假定一實例性命令封包針對LNG欄位220具有一值2以定義16個位元組之一總資料長度,且SIZ欄位230中之值係2以將資料單元大小定義為2個位元組。因此,在具有16個位元組之一總資料長度及2個位元組之一資料單元大小之情形下,該實例性封包包含8個資料單元之資料。假定MSK欄位240之一位元組合係:(MSB)1111 1111 0110 0110(LSB),將提供為資料之該等8個資料單元遮罩以使得第一、第四、第五及第八資料單元不被遮罩且第二、第三、第六及第七資料單元被遮罩。MSK值之最有效8個位元係「1」,但由於該實例性封包之資料單元之數目係8,因此僅MSK值之最不有效8個位元被用於遮罩操作。儘管已闡述了特定實例,但可在不背離本發明之情形下使用相關於該資料之組態資訊之其他配置。In another embodiment, the bit of the MASK field 240 starting with the LSB corresponds to a respective data unit as defined by the SIZ field 230. For example, assume that an example command packet has a value of 2 for the LNG field 220 to define a total data length of one of the 16 bytes, and a value of 2 in the SIZ field 230 to define the data unit size as 2 One byte. Therefore, in the case of having a total data length of one of 16 bytes and a data unit size of one of the two bytes, the example packet contains data of eight data units. Assume that one of the MSK field 240 bits is: (MSB) 1111 1111 0110 0110 (LSB), and the eight data units provided for the data are masked to make the first, fourth, fifth and eighth data The unit is not masked and the second, third, sixth and seventh data units are masked. The most significant 8 bits of the MSK value are "1", but since the number of data units of the example packet is 8, only the least significant 8 bits of the MSK value are used for the masking operation. Although specific examples have been set forth, other configurations relating to configuration information for the data may be used without departing from the invention.

圖3圖解說明依照本發明之實施例之一封包解碼器300。封包解碼器300可用作圖1之記憶體100之封包解碼器120。封包解碼器300自一IO介面(例如,IO介面110)接收一命令封包,除其他之外該命令封包包含一記憶體命令及組態資訊(例如,相關於總資料長度、資料單元大小及遮罩資訊之資訊)。在某些實施例中,封包解碼器300接收圖2之命令封包200。FIG. 3 illustrates a packet decoder 300 in accordance with an embodiment of the present invention. The packet decoder 300 can be used as the packet decoder 120 of the memory 100 of FIG. The packet decoder 300 receives a command packet from an IO interface (eg, the IO interface 110). The command packet includes, among other things, a memory command and configuration information (eg, related to the total data length, data unit size, and masking). Cover information information). In some embodiments, packet decoder 300 receives command packet 200 of FIG.

封包解碼器300接收相關於與命令封包相關聯之資料之資訊,舉例而言,由命令封包200之LNG、SIZ及MSK欄位提供之資訊。封包解碼器300解碼各個欄位中之值且自該封包產生表示命令、位址、運算元資料及資料長度、資料單元大小及遮罩資訊之內部信號。如以下將更詳細地闡述,可使用經解碼之資訊對與命令封包相關聯之資料實行操作。The packet decoder 300 receives information relating to the data associated with the command packet, for example, information provided by the LNG, SIZ, and MSK fields of the command packet 200. The packet decoder 300 decodes the values in the various fields and generates an internal signal representing the command, address, operand data and data length, data unit size, and mask information from the packet. As will be explained in more detail below, the decoded information can be used to perform operations on the data associated with the command packet.

圖4圖解說明依照本發明之一實施例之一操作邏輯400。操作邏輯400可用於圖1之記憶體100之操作邏輯140。操作邏輯400包含經組態以自記憶體儲存器接收所讀取之資料且進一步接收與一命令封包相關聯之位址、資料長度及資料單元大小資訊之一第一選擇器410。第一選擇器410將該所讀取之資料提供至一操作單元420及一第二選擇器430。操作單元420依照欲提供至操作單元420之位址、資料長度及資料單元大小資訊而組態該資料。舉例而言,將由資訊識別之資料之選擇部分提供至操作單元420。同樣經組態之資料亦提供至一第二選擇器430。操作單元420進一步接收運算元資料及與命令封包相關聯之命令且依照該命令對所讀取之資料及/或運算元資料執行各種操作。以下將更詳細地闡述實例性操作。Figure 4 illustrates one of the operational logics 400 in accordance with one embodiment of the present invention. Operational logic 400 can be used for operational logic 140 of memory 100 of FIG. The operational logic 400 includes a first selector 410 configured to receive the read data from the memory store and further receive one of an address, a data length, and a data unit size information associated with a command packet. The first selector 410 provides the read data to an operating unit 420 and a second selector 430. The operating unit 420 configures the data according to the address, data length, and data unit size information to be provided to the operating unit 420. For example, a selected portion of the information identified by the information is provided to the operation unit 420. The same configured data is also provided to a second selector 430. The operation unit 420 further receives the operation metadata and the command associated with the command packet and performs various operations on the read data and/or the operation metadata in accordance with the command. Example operations are set forth in greater detail below.

來自操作單元420之所得資料提供至第二選擇器430。該第二選擇器使用與命令封包相關聯之遮罩、資料長度及資料單元大小資訊來提供用以返回至請求裝置及/或用以儲存於記憶體儲存器中之資料(其中此資料可係所讀取之資料、所得資料或上述資料中之任一者之某一組合或部分)。該資料可提供至記憶體儲存器及/或經準備以透過一IO介面(例如,IO介面110,圖1)返回。在某些實施例中,由第二選擇器430提供哪一資料至少部分地係基於來自命令封包之資訊。舉例而言,若一遮罩位元係「0」,則第二選擇器430提供所得資料之一相應部分,然而對於一「1」,則提供所讀取之資料之一相應部分。在某些實施例中,至少部分地基於如何定義原子操作而將與儲存於記憶體儲存器中之資料不同的資料返回至一請求處理器。The resulting data from the operating unit 420 is provided to the second selector 430. The second selector uses the mask, data length, and data unit size information associated with the command packet to provide information for returning to the requesting device and/or for storage in the memory storage device (wherein the data can be A combination or part of any of the information read, the data obtained, or the above information). The data can be provided to the memory storage and/or prepared to be returned through an IO interface (eg, IO interface 110, Figure 1). In some embodiments, which information is provided by the second selector 430 is based, at least in part, on information from the command packet. For example, if a mask bit is "0", the second selector 430 provides a corresponding portion of the obtained data, whereas for a "1", a corresponding portion of the read data is provided. In some embodiments, data different from the material stored in the memory store is returned to a request processor based at least in part on how the atomic operation is defined.

在圖4中所展示之實施例中,操作單元420可操作以執行算術操作。舉例而言,在本發明之一實施例中,操作單元420可操作以對兩個32位元值執行算術操作。操作單元420可操作以對該資料執行邏輯操作。舉例而言,在本發明之一實施例中,操作單元420可操作以對一64位元值執行邏輯操作。In the embodiment shown in FIG. 4, operating unit 420 is operative to perform arithmetic operations. For example, in one embodiment of the invention, operating unit 420 is operable to perform arithmetic operations on two 32-bit values. The operating unit 420 is operable to perform a logical operation on the material. For example, in one embodiment of the invention, operating unit 420 is operative to perform logical operations on a 64-bit value.

在本發明之一實施例中,操作單元420可操作以執行以下算術操作。In an embodiment of the invention, the operating unit 420 is operative to perform the following arithmetic operations.

在本發明之一實施例中,操作單元420可操作以執行以下邏輯操作。In an embodiment of the invention, operating unit 420 is operative to perform the following logical operations.

操作單元亦可執行其他邏輯操作。舉例而言,可執行比較邏輯操作(諸如交換及儲存操作)以及其他操作。比較邏輯操作比較兩個值且關於該等兩個值中之哪一者較大或較小(或,在某些實施例中,該等兩個值是否相等)而做出一判定。藉助比較及交換邏輯操作,可經選擇以儲存該較大或較小值。The operating unit can also perform other logical operations. For example, comparison logic operations (such as swap and store operations) and other operations can be performed. The comparison logic operation compares the two values and makes a determination as to which of the two values is larger or smaller (or, in some embodiments, whether the two values are equal). By comparing and exchanging logic operations, it can be selected to store the larger or smaller value.

如先前所闡述,在操作中,第一選擇器410使用位址、LNG及SIZ值來組態所讀取之資料以用於由操作單元420進行之操作。舉例而言,假定操作單元420可執行多達兩個32位元資料項之操作,則可使用操作單元420執行如4×1位元組、2×2位元組或1×4位元組操作邏輯之操作。亦即,在資料單元大小係1個位元組之情形下,操作單元420可對兩組4×1位元組運算元進行操作。在另一實例中,在資料單元大小係4個位元組之情形下,操作單元420可對兩組1×4位元組資料運算元進行操作。As previously explained, in operation, the first selector 410 uses the address, LNG, and SIZ values to configure the read data for operation by the operating unit 420. For example, assuming that the operation unit 420 can perform operations of up to two 32-bit data items, the operation unit 420 can be used to perform, for example, 4×1 bytes, 2×2 bytes, or 1×4 bytes. The operation of the operational logic. That is, in the case where the data unit size is 1 byte, the operation unit 420 can operate on two sets of 4×1 byte operands. In another example, in the case where the data unit size is 4 bytes, the operating unit 420 can operate on two sets of 1×4 byte data operands.

如先前進一步所闡述,可使用MSK值來遮罩或不遮罩與一封包相關聯之資料之資料單元,該等資料單元係由SIZ值定義。在操作中,可使用MSK及SIZ值來選擇欲由第二選擇器430提供之資料之特定資料單元。舉例而言,在應用MSK值時,該資料之資料單元可由第二選擇器430選擇性地提供。可藉由考量一先前所闡述之實例來圖解說明此操作。在一先前所闡述之實例中,假定總資料長度係16個位元組且資料單元之大小係1個位元組,從而導致具有包含16個資料單元之資料之相關聯資料之一實例性封包。實例性MSK值未遮罩第一及每隔一個位元組長之資料單元,但遮罩第二及每隔一個位元組長之資料單元。當應用於特定資料單元(16個位元組長單元之資料)之選擇時,第一、第三、第五、第七、第九、第十一、第十三及第十五資料單元(亦即,可能16個位組元長之資料單元中之8個)係由第二選擇器430提供。As explained further above, the MSK value can be used to mask or not mask the data elements of the data associated with a package, which are defined by SIZ values. In operation, the MSK and SIZ values can be used to select a particular data unit of data to be provided by the second selector 430. For example, when an MSK value is applied, the data unit of the material can be selectively provided by the second selector 430. This operation can be illustrated by considering an example as previously explained. In a previously illustrated example, it is assumed that the total data length is 16 bytes and the size of the data unit is 1 byte, resulting in an exemplary packet of associated data having data containing 16 data units. . The instance MSK value does not mask the data unit of the first and every other byte length, but masks the data unit of the second and every other byte length. The first, third, fifth, seventh, ninth, eleventh, thirteenth and fifteenth data units when used in the selection of specific data units (16-bit long units) That is, it is possible that 8 of the data units of the 16-bit group length are provided by the second selector 430.

自上述將明瞭,儘管出於圖解說明之目的本文中已闡述了本發明之特定實施例,但可在不偏離本發明之精神及範疇之情形下做出各種修改。相應地,除隨附申請專利範圍外,本發明不受限制。It will be apparent that the particular embodiments of the invention have been described herein by way of illustration, Accordingly, the invention is not limited except in the scope of the accompanying claims.

100...記憶體100. . . Memory

110...IO介面110. . . IO interface

120...封包解碼器120. . . Packet decoder

130...記憶體儲存器130. . . Memory storage

140...操作邏輯140. . . Operational logic

150...封包組合器150. . . Packet combiner

200...命令封包200. . . Command packet

210(CMD)...命令欄位210 (CMD). . . Command field

220(LNG)...資料長度欄位220 (LNG). . . Data length field

230(SIZ)...資料單元大小欄位230 (SIZ). . . Data unit size field

240(MSK)...遮罩欄位240 (MSK). . . Mask field

300...封包解碼器300. . . Packet decoder

410...第一選擇器410. . . First selector

420...操作單元420. . . Operating unit

430...第二選擇器430. . . Second selector

圖1係依照本發明之一實施例之一記憶體之一方塊圖。1 is a block diagram of a memory in accordance with an embodiment of the present invention.

圖2係依照本發明之一實施例之一命令封包之一部分之一圖解性表示。2 is a diagrammatic representation of one of the portions of a command packet in accordance with an embodiment of the present invention.

圖3係依照本發明之一實施例之一封包解碼器之一方塊圖。3 is a block diagram of a packet decoder in accordance with an embodiment of the present invention.

圖4係依照本發明之一實施例之操作邏輯之一部分之一方塊圖。4 is a block diagram of one of the operational logics in accordance with an embodiment of the present invention.

100...記憶體100. . . Memory

110...IO介面110. . . IO interface

120...封包解碼器120. . . Packet decoder

130...記憶體儲存器130. . . Memory storage

140...操作邏輯140. . . Operational logic

150...封包組合器150. . . Packet combiner

Claims (27)

一種記憶體,其包括:一命令解碼器,其經組態以接收命令封包,該等命令封包中之每一者具有於其中提供一記憶體命令之至少一記憶體命令部分及於其中提供相關於與一命令封包相關聯之資料之組態資訊之一組態部分,該命令解碼器進一步經組態以至少部分地基於該記憶體命令產生該命令控制信號且進一步經組態以至少部分地基於該組態資訊產生一組態控制信號;及操作邏輯,其經組態以自一記憶體儲存器接收與該命令封包相關聯之該資料,且依照該命令控制信號及該組態控制信號對該資料執行一原子操作,該操作邏輯包括:一第一選擇器,其經組態以依照該組態控制信號組態該資料;一操作單元,其經組態以依照該命令控制信號對該經組態的資料執行該原子操作以產生一所得(resultant);及一第二選擇器,其用以自該第一選擇器接收該經組態的資料及自該操作單元接收該所得,及經組態以將未被該組態資訊遮罩之該所得之部分傳遞至一封包組合器以用於傳遞至該記憶體外部之一組件,及經組態以將已被該組態資訊遮罩之該所得之部分傳遞至該記憶體儲存器,其中被發送至該記憶體外部之該組件之 該所得之該部分不同於儲存於該記憶體儲存器中之該所得之該部分。 A memory comprising: a command decoder configured to receive a command packet, each of the command packets having at least one memory command portion in which a memory command is provided and providing a correlation therein And a configuration portion of the configuration information of the data associated with a command packet, the command decoder being further configured to generate the command control signal based at least in part on the memory command and further configured to at least partially Generating a configuration control signal based on the configuration information; and operating logic configured to receive the data associated with the command packet from a memory storage, and control signals and the configuration control signal in accordance with the command Performing an atomic operation on the data, the operational logic comprising: a first selector configured to configure the data in accordance with the configuration control signal; an operating unit configured to control the signal pair in accordance with the command The configured data performs the atomic operation to generate a resultant; and a second selector for receiving the configured from the first selector And receiving the result from the operating unit, and configured to pass the resulting portion that is not masked by the configuration information to a packet combiner for delivery to one of the components external to the memory, and the group Transmitting the resulting portion of the configuration information mask to the memory storage, wherein the component is sent to the external portion of the memory The portion of the resulting portion is different from the portion of the resulting portion stored in the memory reservoir. 如請求項1之記憶體,其中該命令解碼器包括:一封包解碼器,其經組態以接收包含至少遮罩控制資訊作為該組態資訊之命令封包,其中該第二選擇器基於該遮罩控制資訊判定該所得之哪些部分未被遮罩。 The memory of claim 1, wherein the command decoder comprises: a packet decoder configured to receive a command packet including at least mask control information as the configuration information, wherein the second selector is based on the mask The cover control information determines which portions of the result are unmasked. 如請求項2之記憶體,其中該封包解碼器經組態以接收16個位元之遮罩控制資訊。 The memory of claim 2, wherein the packet decoder is configured to receive mask control information of 16 bits. 如請求項2之記憶體,其中該遮罩控制資訊針對來自該原子操作之所得資料之每一資料單元選擇性地啟用一遮罩且其中該操作邏輯經組態以基於該遮罩控制資訊選擇性地提供該所得資料之一資料單元。 The memory of claim 2, wherein the mask control information selectively enables a mask for each data unit from the data obtained from the atomic operation and wherein the operational logic is configured to select information based on the mask control information Information element of one of the obtained materials is provided sexually. 如請求項1之記憶體,其中該命令解碼器包括:一封包解碼器,其經組態以接收至少包含至少部分地定義與一各別命令封包相關聯之該資料之一長度之資料長度資訊之命令封包。 The memory of claim 1, wherein the command decoder comprises: a packet decoder configured to receive data length information including at least partially defining a length of the data associated with a respective command packet The command packet. 如請求項5之記憶體,其中該命令解碼器經組態以接收將該資料長度定義為0個位元組、8個位元組或16個位元組中之一者之資料長度資訊。 The memory of claim 5, wherein the command decoder is configured to receive data length information defining the length of the data as one of 0 bytes, 8 bytes, or 16 bytes. 如請求項1之記憶體,其中該命令解碼器包括:一封包解碼器,其經組態以接收至少包含至少部分地定義與一各別命令封包相關聯之該資料之一資料單元之一大小之資料單元大小資訊之命令封包。 The memory of claim 1, wherein the command decoder comprises: a packet decoder configured to receive a size of at least one of the data units at least partially defining the data associated with a respective command packet The command packet of the data unit size information. 如請求項7之記憶體,其中該命令解碼器經組態以接收 以位元組為單位將該資料單元大小定義為一之資料單元大小資訊。 The memory of claim 7, wherein the command decoder is configured to receive The data unit size is defined as a unit size information in units of bytes. 如請求項8之記憶體,其中該命令解碼器經組態以接收將該等資料單元大小定義為0個位元組、1個位元組、2個位元組、4個位元組、8個位元組或16個位元組之資料單元大小資訊。 The memory of claim 8, wherein the command decoder is configured to receive the data unit size as 0 bytes, 1 byte, 2 bytes, 4 bytes, Data unit size information for 8 or 16 bytes. 如請求項1之記憶體,其中該命令解碼器進一步經組態以接收及解碼該原子記憶體命令且經組態以管理用以執行該原子記憶體命令之多個內部操作。 The memory of claim 1, wherein the command decoder is further configured to receive and decode the atomic memory command and configured to manage a plurality of internal operations to execute the atomic memory command. 如請求項1之記憶體,其中該操作邏輯進一步經組態以至少部分地基於由該命令解碼器提供之該組態控制信號在遮罩控制下對所接收之資料執行操作。 The memory of claim 1, wherein the operational logic is further configured to perform an operation on the received data under mask control based at least in part on the configuration control signal provided by the command decoder. 如請求項11之記憶體,其中該組態控制信號包括若干個組態控制信號且其中該命令解碼器經組態以至少部分地基於資料長度、資料單元大小及資料遮罩資訊產生該等組態控制信號。 The memory of claim 11, wherein the configuration control signal comprises a plurality of configuration control signals and wherein the command decoder is configured to generate the groups based at least in part on data length, data unit size, and data mask information State control signal. 一種記憶體,其包括:操作邏輯,其經組態以關於一命令及運算元資料執行一原子操作以提供所得資料,其中該原子操作依照至少包含一資料大小及一遮罩組態之資料之一組態指令而被執行,該操作邏輯包括:一資料組態單元,其用以接收該資料及該組態指令,及經組態以依照該組態指令組態該資料;一操作單元,其用以自該資料組態單元接收該經組 態的資料及接收該命令及該運算元資料,及經組態以依照該命令對該經組態的資料及該運算元資料執行該原子操作以產生一所得(resultant);及一資料選擇器,其經組態以接收該組態指令及該所得,及進一步經組態以基於該遮罩組態自該所得選擇資料單元,其中該遮罩組態判定該所得之哪些資料單元將被該記憶體儲存,及該資料選擇器進一步經組態以判定該所得之哪些資料單元將被返回至一請求處理器;一命令解碼器,其耦合至該操作邏輯且經組態以接收該命令且進一步經組態以接收相關於該運算元資料及/或該所得資料之組態資訊,該命令解碼器經組態以產生用以執行該原子記憶體操作之內部控制及計時信號;及一封包組合器,其經組態以自該操作邏輯接收將被返回至該請求處理器之該所得之該等資料單元,及進一步經組態以從將被返回至該請求處理器之該所得之該等資料單元中組合一資料封包以發送至該請求處理器,其中該經組合的資料封包不同於由該記憶體儲存之該所得之該等資料單元。 A memory comprising: operation logic configured to perform an atomic operation on a command and an operation metadata to provide the obtained data, wherein the atomic operation is in accordance with at least a data size and a mask configuration. Executing a configuration instruction, the operation logic includes: a data configuration unit for receiving the data and the configuration instruction, and configured to configure the data according to the configuration instruction; an operation unit, It is used to receive the group from the data configuration unit State data and receiving the command and the metadata, and configured to perform the atomic operation on the configured data and the operational metadata in accordance with the command to generate a result; and a data selector Reconfiguring to receive the configuration command and the resulting, and further configured to select a data unit from the resulting mask based on the mask configuration, wherein the mask configuration determines which of the obtained data units are to be Memory storage, and the data selector is further configured to determine which of the obtained data units are to be returned to a request processor; a command decoder coupled to the operational logic and configured to receive the command and Further configured to receive configuration information relating to the operational metadata and/or the resulting data, the command decoder configured to generate internal control and timing signals for performing the atomic memory operation; and a packet a combiner configured to receive from the operational logic the derived data units to be returned to the requesting processor, and further configured to be returned from the request This is obtained from the combination of such data units to send a data packet to the requesting processor, wherein the combined data packet is different from the data obtained from those of the storage unit of the memory. 如請求項13之記憶體,其中該命令及組態資訊以一封包化格式提供至該命令解碼器。 The memory of claim 13, wherein the command and configuration information is provided to the command decoder in a packetized format. 如請求項13之記憶體,其中該操作邏輯進一步經組態以執行一算術操作。 As in the memory of claim 13, wherein the operational logic is further configured to perform an arithmetic operation. 如請求項15之記憶體,其中該操作邏輯經組態以執行以 下算術操作中之至少一者:將1加至自一記憶體儲存器所讀取之資料;從自該記憶體儲存器所讀取之資料減去1;將該運算元資料加至自該記憶體儲存器所讀取之該資料;及從自該記憶體儲存器所讀取之資料減去該運算元資料。 The memory of claim 15, wherein the operational logic is configured to execute At least one of the following arithmetic operations: adding 1 to the data read from a memory storage; subtracting 1 from the data read from the memory storage; adding the operational metadata to the The data read by the memory storage; and subtracting the operational metadata from the data read from the memory storage. 如請求項13之記憶體,其中該操作邏輯進一步經組態以執行一邏輯操作。 As in the memory of claim 13, wherein the operational logic is further configured to perform a logical operation. 如請求項17之記憶體,其中該操作邏輯經組態以執行以下操作中之至少一者:清零位元;設定位元;及切換位元。 The memory of claim 17, wherein the operational logic is configured to perform at least one of: clearing a bit; setting a bit; and switching the bit. 如請求項13之記憶體,其中該操作邏輯進一步經組態以對多達兩個之16位元組資料值執行算術操作。 The memory of claim 13, wherein the operational logic is further configured to perform an arithmetic operation on up to two 16-bit data values. 如請求項13之記憶體,其中該操作邏輯進一步經組態以至少部分地基於一資料單元大小參數對資料執行操作。 The memory of claim 13, wherein the operational logic is further configured to perform an operation on the data based at least in part on a data unit size parameter. 一種執行一原子記憶體操作之方法,其包括:接收一命令封包以用於一原子記憶體操作,其中該命令封包包含至少一命令操作、一記憶體儲存位址及一組態部分;接收與該原子記憶體操作相關聯之遮罩控制資訊,其中該遮罩控制資訊亦包含於該命令封包中; 依照該命令封包之該組態部分組態與該記憶體儲存位址相關聯之資料;依照該命令操作對該經組態的資料執行該原子記憶體操作以產生一結果;基於該遮罩控制資訊將該結果之部分儲存於該記憶體儲存位址中;及自該結果準備一資料封包以提供至一請求處理器,其中該資料封包包含有別於儲存於該記憶體儲存位址中之該所得之不同部分。 A method of performing an atomic memory operation, comprising: receiving a command packet for an atomic memory operation, wherein the command packet includes at least one command operation, a memory storage address, and a configuration portion; receiving and The atomic memory operation is associated with the mask control information, wherein the mask control information is also included in the command packet; Configuring, according to the configuration part, the data associated with the memory storage address according to the configuration part of the command packet; performing the atomic memory operation on the configured data according to the command operation to generate a result; controlling based on the mask The information is stored in the memory storage address; and a data packet is prepared from the result for providing to a request processor, wherein the data packet is different from being stored in the memory storage address Different parts of the income. 如請求項21之方法,其進一步包括組態運算元資料,至少部分地基於該運算元資料之一長度及該運算元資料中之一資料單元之一大小對該運算元資料執行該原子記憶體操作。 The method of claim 21, further comprising configuring the operational metadata to perform the atomic memory on the operational metadata based at least in part on a length of the operational metadata and a size of one of the operational metadata operating. 如請求項22之方法,其進一步包括接收相關於與該命令相關聯之該資料單元之該大小之資訊。 The method of claim 22, further comprising receiving information relating to the size of the data unit associated with the command. 如請求項21之方法,其進一步包括針對該命令提供該運算元資料之該長度及該資料單元之該大小以用於該原子記憶體操作。 The method of claim 21, further comprising providing the length of the operational metadata and the size of the data unit for the command for the atomic memory operation. 如請求項21之方法,其中執行操作包括對運算元資料及自記憶體擷取之資料執行一算術操作。 The method of claim 21, wherein the performing the operation comprises performing an arithmetic operation on the operational metadata and the data retrieved from the memory. 如請求項21之方法,其中執行操作包括對該運算元資料執行一邏輯操作。 The method of claim 21, wherein performing the operation comprises performing a logical operation on the operational metadata. 如請求項21之方法,其中執行操作包括對運算元資料執行比較、交換、儲存或其組合之該等邏輯操作中之至少一者。The method of claim 21, wherein the performing the operation comprises performing at least one of the logical operations of comparing, exchanging, storing, or a combination thereof with the operational metadata.
TW100137946A 2010-10-21 2011-10-19 Memories and methods for performing atomic memory operations in accordance with configuration information TWI461910B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
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

Publications (2)

Publication Number Publication Date
TW201232254A TW201232254A (en) 2012-08-01
TWI461910B true TWI461910B (en) 2014-11-21

Family

ID=45973961

Family Applications (1)

Application Number Title Priority Date Filing Date
TW100137946A TWI461910B (en) 2010-10-21 2011-10-19 Memories and methods for performing atomic memory operations in accordance with configuration information

Country Status (6)

Country Link
US (2) US10026458B2 (en)
EP (1) EP2630642B1 (en)
KR (1) KR101513380B1 (en)
CN (1) CN103222003B (en)
TW (1) TWI461910B (en)
WO (1) WO2012054159A1 (en)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
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
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 (en) 2012-09-11 2019-05-07 삼성전자주식회사 Semiconductor memory device with operation functions
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
CN106886504B (en) * 2017-04-05 2020-12-04 上海弘矽半导体有限公司 System and method for realizing atomic operation in multi-core SOC (system on chip) based on AHB (advanced high performance bus)
US20240168876A1 (en) * 2022-11-22 2024-05-23 Samsung Electronics Co., Ltd. Solving submission queue entry overflow using metadata or data pointers

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4789925A (en) * 1985-07-31 1988-12-06 Unisys Corporation Vector data logical usage conflict detection
US20040193837A1 (en) * 2003-03-31 2004-09-30 Patrick Devaney CPU datapaths and local memory that executes either vector or superscalar instructions
TW200622876A (en) * 2004-07-08 2006-07-01 Ibm Atomically updating 64 bit fields in the 32 bit aix kernel
TW200844749A (en) * 2006-12-15 2008-11-16 Microchip Tech Inc Direct memory access controller
US20090138680A1 (en) * 2007-11-28 2009-05-28 Johnson Timothy J Vector atomic memory operations

Family Cites Families (63)

* Cited by examiner, † Cited by third party
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
KR940004434A (en) * 1992-08-25 1994-03-15 윌리엄 이. 힐러 Smart Dynamic Random Access Memory and Its Processing Method
JP3307473B2 (en) 1992-09-09 2002-07-24 ソニー エレクトロニクス インコーポレイテッド Test circuit for semiconductor memory
US5524225A (en) 1992-12-18 1996-06-04 Advanced Micro Devices Inc. Cache system and method for providing software controlled writeback
DE69519816T2 (en) 1994-05-03 2001-09-20 Hewlett-Packard Company (A Delaware Corporation), Palo Alto Duplicate cache tag array arrangement
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 (en) 1994-12-20 1996-06-21 Sgs Thomson Microelectronics DEVICE FOR PROTECTING ACCESS TO MEMORY WORDS
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 (en) 1996-07-22 2006-06-21 Necエレクトロニクス株式会社 Semiconductor memory device and semiconductor memory device access method
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 (en) 1998-10-28 2000-05-12 Nec Corp Dynamic memory device
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 (en) 1999-02-18 2006-08-09 株式会社ルネサステクノロジ Information processing apparatus and semiconductor device
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 (en) 2003-04-03 2006-01-23 삼성전자주식회사 Flash memory with error correction for page copy
JP4563715B2 (en) 2003-04-29 2010-10-13 三星電子株式会社 Flash memory device having partial copyback operation mode
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
GB2417577A (en) 2004-08-25 2006-03-01 Imagination Tech Ltd Memory controller with randomised bank selection
JP2006190402A (en) 2005-01-07 2006-07-20 Renesas Technology Corp Semiconductor device
US20080189557A1 (en) 2005-01-19 2008-08-07 Stmicroelectronics S.R.I. Method and architecture for restricting access to a memory device
CN100403803C (en) 2005-01-19 2008-07-16 威盛电子股份有限公司 Method and system possessing quick access hierarchy search
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 (en) 2005-10-13 2012-08-01 ルネサスエレクトロニクス株式会社 Semiconductor memory device and arithmetic processing unit
US8279877B2 (en) 2005-11-22 2012-10-02 Freescale Semiconductor, Inc. Method for processing ATM cells and a device having ATM cell processing capabilities
US7509463B2 (en) 2005-12-01 2009-03-24 Sony Computer Entertainment, Inc. Cell processor atomic compare and swap using dedicated synergistic processor element
US20070150671A1 (en) * 2005-12-23 2007-06-28 Boston Circuits, Inc. Supporting macro memory instructions
KR100782594B1 (en) 2006-07-14 2007-12-06 엠텍비젼 주식회사 Memory device having data processing function
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
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
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

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4789925A (en) * 1985-07-31 1988-12-06 Unisys Corporation Vector data logical usage conflict detection
US20040193837A1 (en) * 2003-03-31 2004-09-30 Patrick Devaney CPU datapaths and local memory that executes either vector or superscalar instructions
TW200622876A (en) * 2004-07-08 2006-07-01 Ibm Atomically updating 64 bit fields in the 32 bit aix kernel
TW200844749A (en) * 2006-12-15 2008-11-16 Microchip Tech Inc Direct memory access controller
US20090138680A1 (en) * 2007-11-28 2009-05-28 Johnson Timothy J Vector atomic memory operations

Also Published As

Publication number Publication date
CN103222003A (en) 2013-07-24
EP2630642B1 (en) 2019-11-06
KR101513380B1 (en) 2015-04-17
EP2630642A4 (en) 2014-06-04
WO2012054159A1 (en) 2012-04-26
CN103222003B (en) 2017-07-18
US20180342270A1 (en) 2018-11-29
US10026458B2 (en) 2018-07-17
EP2630642A1 (en) 2013-08-28
KR20130085042A (en) 2013-07-26
TW201232254A (en) 2012-08-01
US11183225B2 (en) 2021-11-23
US20120102275A1 (en) 2012-04-26

Similar Documents

Publication Publication Date Title
TWI461910B (en) Memories and methods for performing atomic memory operations in accordance with configuration information
EP3588281B1 (en) Apparatus and method for a tensor permutation engine
TWI403954B (en) Electronic system, microcontrollers with instruction sets and method for executing instruction thererof
US7068545B1 (en) Data processing apparatus having memory protection unit
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
CN100541665C (en) Programmable parallel lookup memory
TWI584305B (en) Byte-addressable non-volatile read-write main memory partitioned into regions including metadata region
TWI713629B (en) Hardware apparatuses and methods to switch shadow stack pointers
TW201638788A (en) Vector cache line write back processors, methods, systems, and instructions
US8417902B2 (en) One-time-programmable memory emulation
WO2009101119A1 (en) A processor
CN107003863A (en) Guide on-chip system device
US8799552B2 (en) Microcontroller with special banking instructions
TWI715672B (en) Apparatus and method for enforcement of reserved bits
US9639362B2 (en) Integrated circuit device and methods of performing bit manipulation therefor
JP7245842B2 (en) Apparatus and method for accessing metadata when debugging a device
US20220171622A1 (en) Multi-dimension dma controller and computer system including the same
WO2001086432A2 (en) Cryptographic data processing systems, computer program products, and methods of operating same, using parallel execution units
ES2951658T3 (en) Systems, apparatus and methods for generating a rank order index and reordering elements based on rank order
JP2005222519A (en) Access to bit value in data word stored in memory
KR102673748B1 (en) Multi-dimension dma controller and computer system comprising the same
TWI647619B (en) Method for performing hardware resource management in an electronic device, and corresponding electronic device
CN105404588B (en) Processor and method for generating one or more addresses of data storage operation therein
JP2002351656A (en) Microprocessor