TWI461910B - 用於依照組態資訊執行原子記憶體操作之記憶體及方法 - Google Patents
用於依照組態資訊執行原子記憶體操作之記憶體及方法 Download PDFInfo
- 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
Links
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)
Description
本發明之實施例一般而言係關於記憶體,且在所圖解說明之實施例中之一或多者中更具體而言係關於具有可操作以在遮罩控制下提供原子記憶體操作之邏輯且具有可變運算元大小之記憶體。
記憶體用於電子系統及電路中以儲存可擷取以供(例如)一處理器稍後處理之資料。資料可寫入至記憶體以及稍後可自記憶體讀取該資料。在較先進之記憶體中,可由記憶體自身中之邏輯執行基本操作以使一處理器免於鬚髮出多個記憶體命令至記憶體以及管理該操作。舉例而言,一處理器可發出一單個「讀取-修改-寫入」命令至一記憶體,且該記憶體管理自記憶體擷取資料、對該資料執行操作及將所得資料寫入回至記憶體之步驟。因此,儘管發出一個記憶體命令至該記憶體,但該記憶體自身管理及執行涉及存取儲存於一記憶體中之資料及對該資料執行操作之多個操作。此等命令可稱為「原子記憶體操作」。此等操作稱為「原子的」,乃因其不可分割地執行:如不能中斷或細分之一單個順序。若一處理器須更新一共用記憶體項目,則須在將經更新之資料返回至記憶體之前第一處理器正執行該更新時執行額外操作以防止共用處理器存取及/或修改資料項目。藉由將更新操作更直接地放於記憶體中,可在沒有相干額外負擔且以減少之能量支出之情形下更迅速地更新共用項目。
執行原子記憶體操作之記憶體及控制邏輯可不具有用以適應對不同大小之資料之操作的撓性。亦即,記憶體可經設計以對具有某一長度之資料及某一大小之資料單元執行操作。對較小資料單元執行操作(例如,對一位元組之資料執行一操作,儘管擷取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欄位220中之一值1將封包之總資料長度定義為8個位元組長。在由CMD欄位210定義之一記憶體命令不需要資料之情形下,可在LNG欄位220中提供一值0以指示沒有資料與該封包相關聯。
命令封包200進一步包含一資料單元大小欄位(SIZ)230。在圖2中所圖解說明之實施例中,SIZ欄位230在長度上係[(R-Q)+1]個位元。在本發明之一實施例中,SIZ欄位230係3個位元長。SIZ欄位230中所包含之值依據位元組之數目來定義(例如)每一資料單元之大小。舉例而言,可在本發明之一實施例中使用以下定義:
因此,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、SIZ及MSK欄位220、230、240個別地且一起提供相關於由CMD欄位210中所提供之記憶體命令對其進行操作之資料之組態資訊。將使用以下非限制性實例來圖解說明該等欄位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)不被遮罩。若所指示之命令係加,則在將該等未遮罩資料位元組重新寫入回至記憶體之前,每一未遮罩資料位元組將一對應資料項目加至記憶體資料位元組。被遮罩之記憶體資料位元組未被修改。
在另一實施例中,以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個位元被用於遮罩操作。儘管已闡述了特定實例,但可在不背離本發明之情形下使用相關於該資料之組態資訊之其他配置。
圖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將該所讀取之資料提供至一操作單元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可操作以執行以下算術操作。
在本發明之一實施例中,操作單元420可操作以執行以下邏輯操作。
操作單元亦可執行其他邏輯操作。舉例而言,可執行比較邏輯操作(諸如交換及儲存操作)以及其他操作。比較邏輯操作比較兩個值且關於該等兩個值中之哪一者較大或較小(或,在某些實施例中,該等兩個值是否相等)而做出一判定。藉助比較及交換邏輯操作,可經選擇以儲存該較大或較小值。
如先前所闡述,在操作中,第一選擇器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提供。
自上述將明瞭,儘管出於圖解說明之目的本文中已闡述了本發明之特定實施例,但可在不偏離本發明之精神及範疇之情形下做出各種修改。相應地,除隨附申請專利範圍外,本發明不受限制。
100...記憶體
110...IO介面
120...封包解碼器
130...記憶體儲存器
140...操作邏輯
150...封包組合器
200...命令封包
210(CMD)...命令欄位
220(LNG)...資料長度欄位
230(SIZ)...資料單元大小欄位
240(MSK)...遮罩欄位
300...封包解碼器
410...第一選擇器
420...操作單元
430...第二選擇器
圖1係依照本發明之一實施例之一記憶體之一方塊圖。
圖2係依照本發明之一實施例之一命令封包之一部分之一圖解性表示。
圖3係依照本發明之一實施例之一封包解碼器之一方塊圖。
圖4係依照本發明之一實施例之操作邏輯之一部分之一方塊圖。
100...記憶體
110...IO介面
120...封包解碼器
130...記憶體儲存器
140...操作邏輯
150...封包組合器
Claims (27)
- 一種記憶體,其包括:一命令解碼器,其經組態以接收命令封包,該等命令封包中之每一者具有於其中提供一記憶體命令之至少一記憶體命令部分及於其中提供相關於與一命令封包相關聯之資料之組態資訊之一組態部分,該命令解碼器進一步經組態以至少部分地基於該記憶體命令產生該命令控制信號且進一步經組態以至少部分地基於該組態資訊產生一組態控制信號;及操作邏輯,其經組態以自一記憶體儲存器接收與該命令封包相關聯之該資料,且依照該命令控制信號及該組態控制信號對該資料執行一原子操作,該操作邏輯包括:一第一選擇器,其經組態以依照該組態控制信號組態該資料;一操作單元,其經組態以依照該命令控制信號對該經組態的資料執行該原子操作以產生一所得(resultant);及一第二選擇器,其用以自該第一選擇器接收該經組態的資料及自該操作單元接收該所得,及經組態以將未被該組態資訊遮罩之該所得之部分傳遞至一封包組合器以用於傳遞至該記憶體外部之一組件,及經組態以將已被該組態資訊遮罩之該所得之部分傳遞至該記憶體儲存器,其中被發送至該記憶體外部之該組件之 該所得之該部分不同於儲存於該記憶體儲存器中之該所得之該部分。
- 如請求項1之記憶體,其中該命令解碼器包括:一封包解碼器,其經組態以接收包含至少遮罩控制資訊作為該組態資訊之命令封包,其中該第二選擇器基於該遮罩控制資訊判定該所得之哪些部分未被遮罩。
- 如請求項2之記憶體,其中該封包解碼器經組態以接收16個位元之遮罩控制資訊。
- 如請求項2之記憶體,其中該遮罩控制資訊針對來自該原子操作之所得資料之每一資料單元選擇性地啟用一遮罩且其中該操作邏輯經組態以基於該遮罩控制資訊選擇性地提供該所得資料之一資料單元。
- 如請求項1之記憶體,其中該命令解碼器包括:一封包解碼器,其經組態以接收至少包含至少部分地定義與一各別命令封包相關聯之該資料之一長度之資料長度資訊之命令封包。
- 如請求項5之記憶體,其中該命令解碼器經組態以接收將該資料長度定義為0個位元組、8個位元組或16個位元組中之一者之資料長度資訊。
- 如請求項1之記憶體,其中該命令解碼器包括:一封包解碼器,其經組態以接收至少包含至少部分地定義與一各別命令封包相關聯之該資料之一資料單元之一大小之資料單元大小資訊之命令封包。
- 如請求項7之記憶體,其中該命令解碼器經組態以接收 以位元組為單位將該資料單元大小定義為一之資料單元大小資訊。
- 如請求項8之記憶體,其中該命令解碼器經組態以接收將該等資料單元大小定義為0個位元組、1個位元組、2個位元組、4個位元組、8個位元組或16個位元組之資料單元大小資訊。
- 如請求項1之記憶體,其中該命令解碼器進一步經組態以接收及解碼該原子記憶體命令且經組態以管理用以執行該原子記憶體命令之多個內部操作。
- 如請求項1之記憶體,其中該操作邏輯進一步經組態以至少部分地基於由該命令解碼器提供之該組態控制信號在遮罩控制下對所接收之資料執行操作。
- 如請求項11之記憶體,其中該組態控制信號包括若干個組態控制信號且其中該命令解碼器經組態以至少部分地基於資料長度、資料單元大小及資料遮罩資訊產生該等組態控制信號。
- 一種記憶體,其包括:操作邏輯,其經組態以關於一命令及運算元資料執行一原子操作以提供所得資料,其中該原子操作依照至少包含一資料大小及一遮罩組態之資料之一組態指令而被執行,該操作邏輯包括:一資料組態單元,其用以接收該資料及該組態指令,及經組態以依照該組態指令組態該資料;一操作單元,其用以自該資料組態單元接收該經組 態的資料及接收該命令及該運算元資料,及經組態以依照該命令對該經組態的資料及該運算元資料執行該原子操作以產生一所得(resultant);及一資料選擇器,其經組態以接收該組態指令及該所得,及進一步經組態以基於該遮罩組態自該所得選擇資料單元,其中該遮罩組態判定該所得之哪些資料單元將被該記憶體儲存,及該資料選擇器進一步經組態以判定該所得之哪些資料單元將被返回至一請求處理器;一命令解碼器,其耦合至該操作邏輯且經組態以接收該命令且進一步經組態以接收相關於該運算元資料及/或該所得資料之組態資訊,該命令解碼器經組態以產生用以執行該原子記憶體操作之內部控制及計時信號;及一封包組合器,其經組態以自該操作邏輯接收將被返回至該請求處理器之該所得之該等資料單元,及進一步經組態以從將被返回至該請求處理器之該所得之該等資料單元中組合一資料封包以發送至該請求處理器,其中該經組合的資料封包不同於由該記憶體儲存之該所得之該等資料單元。
- 如請求項13之記憶體,其中該命令及組態資訊以一封包化格式提供至該命令解碼器。
- 如請求項13之記憶體,其中該操作邏輯進一步經組態以執行一算術操作。
- 如請求項15之記憶體,其中該操作邏輯經組態以執行以 下算術操作中之至少一者:將1加至自一記憶體儲存器所讀取之資料;從自該記憶體儲存器所讀取之資料減去1;將該運算元資料加至自該記憶體儲存器所讀取之該資料;及從自該記憶體儲存器所讀取之資料減去該運算元資料。
- 如請求項13之記憶體,其中該操作邏輯進一步經組態以執行一邏輯操作。
- 如請求項17之記憶體,其中該操作邏輯經組態以執行以下操作中之至少一者:清零位元;設定位元;及切換位元。
- 如請求項13之記憶體,其中該操作邏輯進一步經組態以對多達兩個之16位元組資料值執行算術操作。
- 如請求項13之記憶體,其中該操作邏輯進一步經組態以至少部分地基於一資料單元大小參數對資料執行操作。
- 一種執行一原子記憶體操作之方法,其包括:接收一命令封包以用於一原子記憶體操作,其中該命令封包包含至少一命令操作、一記憶體儲存位址及一組態部分;接收與該原子記憶體操作相關聯之遮罩控制資訊,其中該遮罩控制資訊亦包含於該命令封包中; 依照該命令封包之該組態部分組態與該記憶體儲存位址相關聯之資料;依照該命令操作對該經組態的資料執行該原子記憶體操作以產生一結果;基於該遮罩控制資訊將該結果之部分儲存於該記憶體儲存位址中;及自該結果準備一資料封包以提供至一請求處理器,其中該資料封包包含有別於儲存於該記憶體儲存位址中之該所得之不同部分。
- 如請求項21之方法,其進一步包括組態運算元資料,至少部分地基於該運算元資料之一長度及該運算元資料中之一資料單元之一大小對該運算元資料執行該原子記憶體操作。
- 如請求項22之方法,其進一步包括接收相關於與該命令相關聯之該資料單元之該大小之資訊。
- 如請求項21之方法,其進一步包括針對該命令提供該運算元資料之該長度及該資料單元之該大小以用於該原子記憶體操作。
- 如請求項21之方法,其中執行操作包括對運算元資料及自記憶體擷取之資料執行一算術操作。
- 如請求項21之方法,其中執行操作包括對該運算元資料執行一邏輯操作。
- 如請求項21之方法,其中執行操作包括對運算元資料執行比較、交換、儲存或其組合之該等邏輯操作中之至少一者。
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 (zh) | 2014-11-21 |
Family
ID=45973961
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW100137946A TWI461910B (zh) | 2010-10-21 | 2011-10-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) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
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 |
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 |
CN106886504B (zh) * | 2017-04-05 | 2020-12-04 | 上海弘矽半导体有限公司 | 基于ahb总线的多核soc中实现原子操作***及方法 |
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 |
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)
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 |
JPH06215160A (ja) * | 1992-08-25 | 1994-08-05 | Texas Instr Inc <Ti> | データ処理方法および装置 |
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 |
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 | 半導体装置 |
US8276185B2 (en) | 2005-01-19 | 2012-09-25 | Micron Technology, Inc. | Enhanced security memory access method and architecture |
TWI370691B (en) | 2005-01-19 | 2012-08-11 | Via Tech Inc | A method and system for hierarchical search with cache |
US7209405B2 (en) | 2005-02-23 | 2007-04-24 | Micron Technology, Inc. | Memory device and method having multiple internal data buses and memory bank interleaving |
US8824205B2 (en) | 2005-04-11 | 2014-09-02 | Micron Technology, Inc. | Non-volatile electronic memory device with NAND structure being monolithically integrated on semiconductor |
JP4989872B2 (ja) | 2005-10-13 | 2012-08-01 | ルネサスエレクトロニクス株式会社 | 半導体記憶装置および演算処理装置 |
WO2007059800A1 (en) | 2005-11-22 | 2007-05-31 | Freescale Semiconductor, Inc. | A method for processing atm cells and a device having atm cell processing capabilites |
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 (ko) | 2006-07-14 | 2007-12-06 | 엠텍비젼 주식회사 | 데이터 처리 기능을 구비한 메모리 장치 |
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 |
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 |
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 |
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 KR KR1020137012860A patent/KR101513380B1/ko active IP Right Grant
- 2011-09-19 WO PCT/US2011/052093 patent/WO2012054159A1/en active Application Filing
- 2011-09-19 EP EP11834803.6A patent/EP2630642B1/en active Active
- 2011-09-19 CN CN201180056214.5A patent/CN103222003B/zh active Active
- 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 |
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 |
---|---|
WO2012054159A1 (en) | 2012-04-26 |
TW201232254A (en) | 2012-08-01 |
EP2630642B1 (en) | 2019-11-06 |
CN103222003B (zh) | 2017-07-18 |
US20120102275A1 (en) | 2012-04-26 |
US20180342270A1 (en) | 2018-11-29 |
US10026458B2 (en) | 2018-07-17 |
EP2630642A4 (en) | 2014-06-04 |
KR20130085042A (ko) | 2013-07-26 |
EP2630642A1 (en) | 2013-08-28 |
KR101513380B1 (ko) | 2015-04-17 |
US11183225B2 (en) | 2021-11-23 |
CN103222003A (zh) | 2013-07-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI461910B (zh) | 用於依照組態資訊執行原子記憶體操作之記憶體及方法 | |
US10719318B2 (en) | Processor | |
EP3588281B1 (en) | Apparatus and method for a tensor permutation engine | |
TWI403954B (zh) | 具有指令集之電子系統、微控制器及其指令執行方法 | |
US7068545B1 (en) | Data processing apparatus having memory protection unit | |
CN100541665C (zh) | 可编程并行查找存储器 | |
TWI584305B (zh) | 分割成包括元資料區域之多個區域的位元組可定址非依電性讀寫主記憶體 | |
TW201638788A (zh) | 向量快取線回寫處理器、方法、系統及指令 | |
TWI713629B (zh) | 切換影堆疊指標的硬體設備以及方法 | |
KR20140118924A (ko) | 마스킹된 전체 레지스터 액세스들을 이용한 부분적 레지스터 액세스들을 구현하기 위한 프로세서들, 방법들 및 시스템들 | |
US8417902B2 (en) | One-time-programmable memory emulation | |
CN107003863A (zh) | 引导片上***器件 | |
US8799552B2 (en) | Microcontroller with special banking instructions | |
TWI715672B (zh) | 用於保留位元的強制執行的裝置及方法 | |
US9639362B2 (en) | Integrated circuit device and methods of performing bit manipulation therefor | |
JP7245842B2 (ja) | デバイスをデバッグするときにメタデータにアクセスするための装置及び方法 | |
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 (es) | Sistemas, aparatos y métodos para generar un índice por orden de clasificación y reordenar elementos basándose en el orden de clasificación | |
JP2005222519A (ja) | メモリに記憶されたデータワード内のビット値へのアクセス | |
KR102673748B1 (ko) | 다차원 직접 메모리 접근 컨트롤러 및 그것을 포함하는 컴퓨터 시스템 | |
TWI647619B (zh) | 用來於一電子裝置中進行硬體資源管理之方法以及對應的電子裝置 | |
CN105404588B (zh) | 处理器和其中生成数据存储操作的一个或多个地址的方法 | |
JP2002351656A (ja) | マイクロプロセッサ |