TWI759397B - 用於比較並交換異動的裝置、主機設備及方法 - Google Patents
用於比較並交換異動的裝置、主機設備及方法 Download PDFInfo
- Publication number
- TWI759397B TWI759397B TW107100298A TW107100298A TWI759397B TW I759397 B TWI759397 B TW I759397B TW 107100298 A TW107100298 A TW 107100298A TW 107100298 A TW107100298 A TW 107100298A TW I759397 B TWI759397 B TW I759397B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- transaction
- data value
- compare
- value
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
-
- 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/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- 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/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/526—Mutual exclusion algorithms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Executing Machine-Instructions (AREA)
- Memory System (AREA)
Abstract
比較並交換異動可藉由主機設備發出以請求處理單元取決於比較資料值是否匹配讀取自儲存位置之目標資料值來選擇是否將交換資料值寫入對應於目標位址的儲存位置。比較並交換資料值在比較並交換異動之資料欄位內傳送。比較資料值經打包進資料欄位之第一區域中,該第一區域係取決於目標位址之偏移部分並且在資料欄位內具有對應於儲存位置內之目標資料值之位置的位置。這減少了用於處理比較並交換異動之處理單元處所需之等待時間及電路系統。
Description
本發明之技術係關於資料處理之領域。
資料處理裝置可以支援一比較並交換異動,該比較並交換異動觸發:自記憶體或快取記憶體中之儲存位置之資料值的讀取;讀取資料值與比較資料值之比較;以及如若比較資料值匹配目標資料值,則觸發交換資料值至儲存位置之寫入。這可能對於其中不同過程具有對共用資源之存取的實例有用。例如,藉由比較並交換異動靶向之位置可以儲存鎖定變數,該鎖定變數決定過程是否具有對共用資料之存取。比較並交換異動可執行鎖定變數與給定值之比較以檢查鎖定當前是否由另一過程設定,並且如若鎖定當前並未設定,則將交換資料值寫入至儲存位置以主張鎖定。使用共用資源之後續處理隨後可取決於成功執行以主張鎖定的比較並交換異動。
至少一些實例提供一種裝置,該裝置包含:主機設備,用以發出指定目標位址且包含用於傳送至少一個運算元值之資料欄位的異動,其中主機設備經配置以發出比較並交換異動,該比較並交換異動之該至少一個運算元值包含比較資料值及交換資料值;以及處理單元,回應於比較並交換異動,用以取決於比較資料值是否匹配讀取自儲存位置之目標資料值而選擇是否將交換資料值寫入至對應於目標位址之儲存位置,目標位址之偏移部分指示在儲存位置內之目標資料值的位置; 其中當發出比較並交換異動時,主機設備經配置以將比較資料值打包進該資料欄位之第一區域中,該第一區域根據目標位址之該偏移部分選擇並且在該資料欄位內具有對應於儲存位置內之目標資料值之位置的位置。
至少一些實例提供一種主機設備,該主機設備包含: 異動發出電路系統,用以發出指定目標位址且包含用於傳送至少一個運算元值之資料欄位的異動; 其中異動發出電路系統經配置以發出比較並交換異動,該比較並交換異動之該至少一個運算元值包含比較資料值及交換資料值,該比較並交換異動用於控制處理單元以取決於比較資料值是否匹配讀取自儲存位置之目標資料值來選擇是否將交換資料值寫入至對應於目標位址之儲存位置,該目標位址之偏移部分指示儲存位置內之目標資料值的位置; 其中當發出比較並交換異動時,異動發出電路系統經配置以將比較資料值打包進該資料欄位之第一區域中,該第一區域取決於目標位址之該偏移部分選擇並且在該資料欄位內具有對應於該儲存位置內之目標資料值之位置的位置。
至少一些實例提供一種處理單元,該處理單元包含: 異動接收電路系統,用以接收指定目標位址且包含用於傳送至少一個運算元值之資料欄位的異動,其中該異動接收電路系統經配置以接收比較並交換異動,該比較並交換異動之該至少一個運算元值包含比較資料值及交換資料值; 資料存取電路系統,回應於比較並交換異動以讀取對應於目標位址之儲存位置,該目標位址之偏移部分指示儲存位置內之目標資料值的位置;以及 處理電路系統,回應於比較並交換異動,用以取決於比較資料值是否匹配目標資料值來選擇資料存取電路系統是否將交換資料值寫入至該儲存位置; 其中處理電路系統經配置以將比較資料值置於該資料欄位之第一區域內,該第一區域根據目標位址之該偏移部分選擇並且在資料欄位內具有對應於儲存位置內之目標資料值之位置的位置。
至少一些實例提供一種資料處理方法,該方法包含: 發出比較並交換異動,該比較並交換異動指定目標位址且包含用於傳送比較資料值及交換資料值之資料欄位;以及 回應於比較並交換異動,取決於比較資料值是否匹配讀取自儲存位置之目標資料值而選擇是否將交換資料值寫入至對應於目標位址之儲存位置,該目標位址之偏移部分指示在儲存位置內之目標資料值的位置; 其中在比較並交換異動中,將比較資料值打包進該資料欄位之第一區域中,該第一區域根據目標位址之該偏移部分選擇並且在該資料欄位內具有對應於儲存位置內之目標資料值之位置的位置。
本方法之進一步態樣、特徵及優勢將在結合附圖閱讀時自實例之以下描述中顯而易見。
主機設備支援一或多個類型之異動,該異動指定目標位址且包含用於傳送至少一個運算元值的資料欄位。異動係藉由處理單元處理。經支援之一種類型之異動為比較並交換異動,該異動之資料欄位傳送至少兩個運算元,包括比較資料值及交換資料值。回應於比較並交換異動,處理單元取決於比較資料值是否匹配讀取自儲存位置之目標資料值來選擇是否將交換資料值寫入至對應於目標位址的儲存位置。
目標位址之偏移部分識別儲存位置內之目標資料值的位置。當發出比較並交換異動時,主機設備將比較資料值打包進資料欄位之第一區域中,該第一區域取決於偏移部分選擇,以便第一區域在資料欄位內具有對應於儲存位置內之目標資料值的位置的位置。藉由取決於正存取之特定位址改變資料欄位內之比較資料值的位置,比較資料值已經與儲存位置內之目標資料值的位置對齊,並因此於在比較資料值與目標資料值之間執行比較之前不需要進一步移位資料欄位。這藉由允許比較操作更快速地開始、減少與執行比較並交換異動關聯之總體等待時間而提高效能,並且亦有助於藉由消除移位器而減少處理電路系統中的電路額外負擔。
交換資料值可經打包進鄰近於第一區域之資料欄位的第二區域。不同於指定在資料欄位中傳送之單個運算元的其他類型異動,對於比較並交換異動將傳送至少兩個運算元。人們通常期待應定義異動,以便運算元在資料欄位中以某種固定順序打包以簡化編碼及解碼。然而,發明者認為對於每次異動以相同順序編碼比較資料值及交換資料值將使得對齊比較資料值與目標資料值同時仍維持資料大小對齊變得很難(處理系統可通常更有效地處理資料,如若給定大小之資料區塊與為該大小之倍數的位址對齊)。
反之,比較資料值及交換資料值之相對順序可取決於位址之偏移部分而變化。第一區域及第二區域可以形成資料欄位之組合部分,該組合部分在資料欄位內之偏移處開始,該偏移對應於該組合部分之大小的倍數。當目標位址相對於比較資料及交換資料值之組合大小之倍數對齊時,交換資料值可以打包進在資料欄位中之第一區域之後的第二區域中。當目標位址相對於組合大小之倍數不對齊時,主機設備可將交換資料值打包進在資料欄位中之第一區域之前的第二區域中。因此,交換資料值及比較資料值之順序可取決於正存取之特定位址及其相對於組合大小之倍數對齊而變化。儘管這可能看起來像可更好地避免的複雜性(例如,而不是可總是將交換資料值置於比較資料值之前或之後),但可變順序編碼具有以下優勢,比較資料值位於與儲存位置中之目標資料值之位置對齊的位置中,而包含比較資料值及交換資料值之整個資料區塊仍然與資料大小邊界對齊。將運算元區塊與資料大小邊界對齊可幫助提高處理異動之效率,例如緩衝器、多工器、處理邏輯等等可在某種大小之塊中處理資料,並且因此可更有效地運行,如若含有比較/交換資料值之區塊對應於對齊之區塊。
處理單元可以具有算術邏輯單元(arithmetic logic unit; ALU),該算術邏輯單元用以對提取自資料欄位之比較資料值及讀取自儲存位置之目標資料值執行比較操作。在比較操作中,ALU可以接收比較並交換異動之資料欄位之不移位版本作為其輸入之一者。上述對於與儲存位置中之目標資料值之位置對齊的比較值的編碼意謂在ALU之前的移位不必要且可忽略該移位以節省時間及減少電路額外負擔。
移位器可仍然設置在處理單元中,該處理單元用於執行移位操作以移位資料欄位,以將交換資料值與儲存位置內之目標資料值之位置對齊。針對交換值之移位操作可與執行比較操作之ALU並行執行,以便隱藏與移位交換資料值關聯的等待時間。因為在處理單元可決定是否將移位交換資料值寫入至儲存位置之前需要比較操作之結果,所以比較操作對整個處理等待時間的影響大於移位操作,並且因此藉由編碼異動之資料欄位以有助減少與比較操作關聯之等待時間,所以比較並交換操作之總體等待時間可減少。
主機設備亦可支援至少一個其他類型之異動,該異動之資料欄位用以傳送單個運算元值。其他類型之異動可觸發處理單元以使用取決於至少單個運算元資料值的值更新儲存位置。對於一些形式之異動,寫入至儲存位置之值亦可取決於讀取自儲存位置的值。例如,處理單元可藉由對傳送運算元及儲存位置之上述值執行算術/邏輯操作(例如,添加或減去值,或使用邏輯操作,諸如AND、OR等等將其組合)而生成新值。
對於至少一個其他類型之異動,單個運算元資料值可經打包進資料欄位之相同第一區域中,該第一區域基於位址之偏移部分選擇,該位址之偏移部分將用於傳送比較並交換操作之比較資料值。因此,藉由使用此第一區域傳送單個運算元,運算元與儲存位置內之目標值的位置對齊,如此簡化另一處理。因此,將單個運算元異動及比較並交換異動編碼,使得ALU可使用在接收之異動之資料欄位與ALU的輸入之一者之間的相同映射,而不管接收之異動是否為單個運算元異動或比較並交換異動之一者。藉由對於ALU而不管異動類型使用相同輸入運算元映射,這消除了對用以在不同選項之間選擇以用於輸入至ALU之額外多工邏輯的需要,如此減少了處理單元處之電路系統數量並且減少了等待時間。
具有如上文論述之資料欄位的異動可包含原子異動,該原子異動用於控制處理單元以對儲存位置中之資料執行不可分割地觀察到的操作組。原子異動可在其中多個過程共用對共用資料之存取的情況下尤其有用。例如,與快取記憶體/記憶體關聯之邏輯可藉由阻止對正處理之相同位址的其他存取直到與原子異動關聯之全部操作完成而實現原子性。產生異動原子有助於避免由來自多個過程之不適當的定時存取引起的誤差。例如,在與鎖定變數之設定關聯的比較並交換操作之情況下,如若此作為單獨的非原子讀取、比較及寫入操作實施,則第二過程可嘗試在第一過程已讀取鎖定變數之後但在第一過程已寫入鎖定變數以主張鎖定之前主張鎖定,因此藉由第二過程觸發之讀取可偵測到仍然未主張鎖定,從而導致第二過程寫入鎖定以主張鎖定本身。因此,這可導致第一過程及第二過程兩者相信其保持該鎖定,其可由於對由鎖定控制之關聯共用資源平行存取而導致錯誤。藉由產生異動原子,可避免此種誤差,因為如若第一過程首先啟動其異動,則繼續第二過程的異動是不可能的。共用對共用資料之存取的過程可為在系統之不同主機設備上執行的過程,或在相同設備(例如,在相同硬體設備上運行之不同虛擬機器,或在多線程環境中的不同線程)上執行的過程。
用於處理異動之處理單元可為在主機設備本身內之處理電路系統。然而,效能可藉由使用處理單元提高,該處理單元更靠近其中儲存目標資料之記憶體或快取記憶體。例如,處理單元可設置在用於維持主機設備與至少一個其他主機設備或快取記憶體之間相干性的互連內,或用於控制對記憶體之存取的記憶體控制器內。藉由執行靠近快取記憶體或記憶體之原子異動,不僅與異動關聯之等待時間藉由避免由讀出資料值至主機設備、在主機設備中執行ALU操作隨後將結果寫回至記憶體而導致之延遲減少,而且對於原子異動實現異動之原子性更簡單。
第1圖示意地圖示資料處理裝置2之實例,資料處理裝置2包括共用對記憶體系統之存取的若干主機設備4、主機設備6。在此實例中,主機設備包括中央處理單元(central processing unit; CPU)4及圖形處理單元(graphics processing unit; GPU)6,但應將理解,亦可提供其他類型之主機設備,例如網路介面控制器或顯示器控制器。CPU 4及GPU 6每個具有用於自記憶體系統快取資料之至少一個快取記憶體8。記憶體系統經由相干性互連10存取,其管理主機設備4、主機設備6中之各別快取記憶體8與系統中之任意其他快取記憶體(例如,耦接至互連之系統級快取記憶體12,該互連未指定至任一特定主機)之間的相干性。當在其局部快取記憶體8中存取資料時,主機設備4、主機設備6可以將相干性異動發送至相干性互連10。回應於異動,如若決定彼等快取記憶體可保存來自對應位址之資料,則互連10將探聽請求傳送至其他快取記憶體,以取決於正採用之相干性協定之要求,定位所需資料之最新副本並觸發過時資料之失效或將更改過之資料寫回至記憶體(如若需要)。如若資料需要自主記憶體14擷取,則相干性互連10可經由一或多個記憶體控制16觸發對記憶體14之讀取請求,以及類似地寫入至主記憶體可藉由相干性互連10觸發。主機設備每個具有異動介面18,其負責生成發送至互連10之異動及接收來自互連之回應,以及回應於由其他主機發出之異動而處理藉由互連觸發之探聽請求。介面18可看作用於產生異動之異動發出電路系統。
除了相干性協定(其可致使資料得以讀取至快取記憶體8中或寫入至記憶體)之常規讀取或寫入異動以外,系統亦可支援藉由靠近儲存之資料的位置處的處理單元20處理之原子異動。如第2圖所示,通常原子異動涉及:資料存取電路系統32,自藉由目標位址識別之快取記憶體12或記憶體14中的儲存位置讀取值;算術/邏輯單元(arithmetic/logic unit; ALU)34,對由請求主機設備提供之讀取資料值及運算元執行算術或邏輯操作(儘管對於下述原子交換操作,可略過ALU);以及資料存取電路系統32,將結果值寫回至經定址儲存位置。在執行原子異動之前儲存在儲存位置中之舊值,或者回應於原子異動由ALU 34產生的新值,亦返回至請求主機設備。讀取、ALU操作及寫入以原子方式發生,以便其作為不可分割的一系列操作處理,該等操作無法部分地完成或與對記憶體或快取記憶體執行之其他操作交錯完成。
當在系統快取記憶體12中儲存原子異動之目標資料時,異動可以使用互連內之處理單元20處理。當目標資料儲存在主記憶體14中時,原子異動可藉由對應記憶體控制器16內之處理單元20處理。應理解,用於處理原子異動之處理單元20亦可位於系統2中之其他位置。
因此,每個原子異動可能需要一個或兩個運算元跨互連10自主機設備傳送至處理單元20。對於原子加載、儲存及交換操作,將傳送單個運算元;但對於原子比較操作,將傳送兩個運算元:比較資料值及交換資料值。如在第3圖中所示,異動可以包括:資料欄位22,用於傳送該一個或兩個運算元;及控制欄位24,提供待存取之儲存位置之目標位址及任意其他控制資訊,諸如指定待執行之原子操作的類型或指定用於原子加載/儲存異動之ALU操作的類型的資訊(例如,ALU操作可自大量應用中選出,例如加、減、乘、AND、OR、NAND、NOR、XOR等等之一者)。
運算元值打包進資料欄位影響用於在處理單元20處執行原子操作的邏輯的複雜性。第4圖圖示說明打包資料欄位之另一方式的比較實例。系統可以支援處理不同大小之數值的原子操作,例如運算元值可例如為1位元組值、2位元組值或4位元組值。另一方面,對快取記憶體或記憶體之讀取可返回可具有更大大小(例如8或16位元組)之資料的整個快取列。因此,目標資料值可僅位於讀取快取列之一部分內。為了避免需要在將資料欄位與自位址儲存位置讀取之資料值組合之前移位資料欄位,對於諸如原子加載、原子儲存及原子交換之非比較原子操作,將單個運算元(D)打包進與位址儲存位置內之目標資料值之位置對齊的資料欄位的區域中可能是有用的。例如,在第4圖中,當位址具有指示目標資料啟動經定址位置之最低有效位元組的偏移部分0×0時,資料值D可位於在資料欄位中之偏移0處啟動的區域內。在第4圖之右手側圖示之實例中,當位址偏移為0×2時,資料值D與資料欄位內之偏移2對齊,以便在將資料欄位與目標值組合之前不再需要移位資料欄位。取決於正使用之運算元的大小,可以執行ALU之適宜遮蔽,以保證不含有目標資料值之儲存位置的其他部分不會由原子操作之結果改寫。
然而,對於原子比較並交換操作,將傳送兩個資料值:比較值(C)及交換值(S)。在此情況下,比較並交換資料值之至少一者可能位於與資料欄位之區域中,該區域與位址儲存位置中之目標資料值之位置對齊。為提高處理異動之效率,通常期望將待傳送之資料區塊與資料大小邊界對齊,該資料大小邊界對應於比較並交換資料值之組合大小的倍數。例如,在第4圖中,組合資料大小為4位元組,因此最好將運算元資料之組合區塊在偏移0處或在偏移4處啟動,而不是相對於4位元組資料大小邊界錯開區塊。第4圖圖示實例,其中比較資料置於運算元區塊之下部中;及交換資料置於上部中,而不管正存取之特定位址。
然而,如在第5圖圖示,當如第4圖所示之打包資料欄位時,在處理單元20內需要移位器50以移位比較值C來在將移位值輸入至ALU 34之前將其與經定址儲存位置內之目標資料值的位置對齊。同時,因為由於資料值D已與目標值A對齊,非比較並交換異動不需要移位,所以提供多工器52以當將第二運算元供應至ALU 34時在資料欄位之移位與非移位版本之間選擇。移位器50及多工器52需要額外電路系統並且亦增大與操作關聯之等待時間,因為比較操作無法啟動直到移位之結果生效。
第6圖圖示資料欄位之編碼,其中比較並交換資料值之順序取決於目標位址之偏移部分。在此實例中,比較資料值C經打包進資料欄位之第一區域中,該第一區域基於目標位址之偏移部分選擇且對應於儲存位置內之位址目標資料A的位置。交換資料置於運算元資料之對齊區塊的另一半中,該運算元資料與對應於交換並比較值之組合大小的資料大小邊界對齊。
因此,如若目標位址與對應於彼組合大小之資料大小邊界對齊,則比較資料值將在資料欄位中之交換資料值之前,其中比較資料值正處於第一區域中,該第一區域對應於比包含交換資料值之第二區域更少之偏移。例如,第6圖之左手側圖示實例,其中兩個運算元之組合大小為2位元組,以及此種情況下之位址偏移為0×2,其為組合大小之整倍數。因此,比較資料C在2位元組對齊區塊中之較低位置(偏移2)處,該2位元組對齊區塊與目標位址之偏移部分對齊,以及交換資料S在偏移3處之上部位置中。
另一方面,如第6圖之右手部分圖示,當位址偏移不是組合資料大小之整倍數時,包含交換資料S之第二區域在包含比較資料C之第一區域之前。例如,對於不是2位元組之倍數的位址偏移0×5,比較資料C經打包進在偏移5處之2位元組對齊區塊的上部中,以及交換資料置於偏移4處之對齊區塊的另一半中。因此,比較資料C可仍然與位址儲存位置內之目標資料的位置對齊,以及運算元資料之組合區塊仍然與組合資料大小邊界對齊。
第7圖圖示打包不同大小運算元之資料欄位的進一步實例。第7圖之實例A)及實例B)圖示以下情況,其中運算元大小為2位元組,且因此運算元資料之4位元組組合區塊與4位元組邊界對齊,即置於偏移0或偏移4處。當如實例A)中之位址偏移0×0與4位元組邊界對齊時,比較資料C在區塊之下半部之偏移0處以及交換資料S在上半部之偏移2處。在實例B)中,當位址偏移0x2相對於4位元組資料結構邊界不對齊時,比較資料在四個位元組區塊之上半部之第一區域中(在偏移2處)及交換資料在下半部中之第二區域中(在偏移0處)。實例C)及實例D)圖示四個位元組運算元之類似實例。儘管第6圖及第7圖中之全部實例圖示包含資料之8位元組欄位的實例,但應理解這不是必需的並且可以提供其他大小資料欄位。同時,資料欄位不需要在異動內之單個微片中傳送以及在一些實例中資料欄位可分成兩個或更多個微片(單獨的資料在更狹小之匯流排中傳送),該等微片組合形成表示異動之整個分包。
如在第8圖中圖示,當用於比較及交換操作之交換及比較資料以第6圖及第7圖中論述之方式打包時,則此藉由消除對第5圖中所示之移位器50及多工器52的需要而簡化處理單元20。因為比較資料C已經與位址儲存位置內之目標資料A的位置對齊,所以不需要在可啟動ALU操作之前移位。同時,因為對ALU 34之第二運算元在資料欄位之相同區域中,而不管操作為比較並交換操作還是另一類型之原子操作,所以不需要多工器52,因為資料欄位與ALU之第二運算元之間的映射對於上述之所有類型之原子異動來說相同。亦即,為比較並交換操作及非比較並交換原子操作兩者而送至ALU中的運算元來自相同位元組之資料包。儘管交換資料值S與目標資料值A不對齊,並且因此經歷由處理單元20內之移位器54執行的移位操作,但與移位操作54關聯之等待時間可離開關鍵路徑,因為當處理比較及交換操作時移位可與由ALU 34執行之比較並行執行。因此,此方法除減小邏輯大小以外消除了處理原子操作中的等待時間。注意,不但對於比較及交換操作的等待時間減少,而且對於其他類型之原子操作的等待時間亦減少,因為不需要穿過多工器52。
對於比較,第9圖圖示若干其他方式,其中原子比較及交換操作可在資料欄位內編碼同時考慮資料與大小邊界對齊。選項2圖示實例,其中交換資料與經定址目標資料對齊,以及比較資料經打包至大小對齊區塊之另一半中。選項3圖示實例,其中比較資料置於大小對齊區塊之較低位址位置中,而不管目標位址與組合大小對齊之位址邊界是否對齊。選項4圖示實例,其中交換資料置於較低位址位置處,而不管目標位址。選項5圖示實例,其可藉由在單獨之資料微片中傳送比較及交換資料值,使待傳送之比較及交換資料兩者與儲存位置內之目標資料值A的位置對齊。
下表圖示第9圖中圖示之選項所需的不同移位:
情形A)指當目標位址與對應於交換及比較值之組合大小的大小邊界對齊的情形,以及情形B)指當目標位址相對組合資料大小邊界不對齊的情形。儘管不管選擇哪個選項,看起來可能仍然需要相等量之移位(比較值及交換值之一者或另一者將必須移位),但在第6圖中所示之建議方法的優勢為對於比較操作不需要移位,其使得移位等待時間在與執行比較之ALU關聯的等待時間下被隱藏。相反,對比較值之移位將必須與ALU操作按順序地執行。建議之選項允許完全消除移位器50。同時,資料欄位22與對ALU之輸入之間的映射可能對於比較並交換操作及其他類型之原子異動兩者相同,從而消除多工器52。儘管選項5不需要對比較並交換資料值之任何額外邏輯運算,但它將具有為原子比較異動所用兩倍之出站資料帶寬的缺點,並且亦可能需要藉由互連10之特殊處理,因為原子比較並交換異動之格式將與其他原子異動不同。
第10圖圖示在請求主機設備4、請求主機設備6處產生原子異動的方法。在步驟100處,決定待產生之原子異動的類型。如若異動為非比較並交換異動,則在步驟102處,異動之運算元經打包進資料欄位之第一區域中,該第一區域基於目標位址之偏移部分選擇,以便第一區域與位址儲存位置中之目標值的位置對齊。在步驟104處,隨後發出異動。
另一方面,如若原子異動為比較並交換異動,則在步驟106處,比較值經打包進資料欄位之第一區域中,該第一區域以步驟102中相同之方式選擇。在步驟108處,決定目標位址是否與比較及交換資料值之組合大小之倍數對齊。如若對齊位址,則在步驟110處,交換資料值經打包進資料欄位之第二區域中,該第二區域在用於比較值之第一區域之後;然而如若位址不與組合資料大小之倍數對齊,則在步驟112處,交換資料值經打包進第二區域中,該第二區域在含有比較資料值之第一區域之前。步驟108、步驟110及步驟112之效應是整個運算元資料區塊為與組合資料大小之適宜倍數對齊的資料大小,但比較資料值之位置變化,以將其與具有交換值之位址儲存位置內之目標值的位置對齊,隨後填充資料之組合區塊之剩餘部分。另外,在步驟104處,異動隨後藉由主機內之異動發出介面18發出至互連10。
第11圖圖示在處理單元20處處理原子異動的方法。在步驟120處,原子異動係藉由異動接收電路系統(第2圖中之介面36)接收。在步驟122處,由目標位址識別之儲存位置由資料存取電路系統32讀取。在步驟124處,來自異動之資料欄位的不移位版本及讀取自記憶體14或快取記憶體12之快取列經提供為對ALU 34之輸入運算元。在步驟126處,控制電路36決定待執行之異動類型。如若異動為非比較並交換異動,則在步驟128處,ALU 34對資料欄位及讀取值執行算術運算,屏蔽運算元之部分或在含有所需資料之部分之外的結果,隨後在步驟130處,將結果寫入至位址儲存位置。對於原子交換操作,ALU操作之結果等於在資料欄位中傳送之運算元,所以其獨立於自儲存位置讀取之值(或者可繞過ALU 34)。在步驟132處,讀取儲存位置中之舊值或由ALU 34產生之新值中之任一者取決於異動之類型返回至請求器。
對於比較並交換異動,在步驟126之後,在步驟134處,ALU執行比較操作以比較資料欄位與讀取自快取記憶體或記憶體之值。比較值位於資料欄位之第一區域中,該第一區域基於目標位址之偏移部分選擇,以與儲存位置內之目標資料值之位置對齊。因此,在比較期間,例如基於位元遮罩,可忽略不包含目標值之資料欄位的部分及讀取快取列。同時,與比較並列地,在步驟136處,移位器54移位資料欄位以將交換值與目標資料值對齊。在步驟138處,基於ALU 34之結果決定比較資料值與目標資料值之間是否存在匹配,並且如若是,則在步驟140處,移位之交換值經寫入至位址儲存位置。如若ALU偵測到比較值與目標資料值不匹配,則忽略步驟140。在步驟132處,對於比較並交換異動,在步驟122處自儲存位置讀取之舊值返回至請求器。
在本申請案中,使用用詞「經配置以……」意謂裝置元件具有能執行經定義操作之配置。在上下文中,「配置」意味硬體或軟體之排列或互連方式。例如,裝置可以具有提供經定義運算之專用硬體,或處理器或其他處理設備可以經程式化以執行功能。「經配置以」並未暗示裝置元件需要以任意方式改變以便提供所定義之操作。
儘管已參考所附圖式詳細地描述本發明之說明性實施例,但應理解,本發明並不限於彼等精確實施例且熟習此項技術者可在不背離如隨附申請專利範圍所定義之本發明之範疇及精神的情況下在其中實施各種改變及修改。
2‧‧‧資料處理裝置4‧‧‧主機設備6‧‧‧主機設備8‧‧‧快取記憶體10‧‧‧互連12‧‧‧快取記憶體14‧‧‧主記憶體16‧‧‧記憶體控制器18‧‧‧異動發出介面20‧‧‧處理單元22‧‧‧資料欄位24‧‧‧控制欄位32‧‧‧資料存取電路系統34‧‧‧ALU36‧‧‧控制電路50‧‧‧移位器52‧‧‧多工器54‧‧‧移位操作100‧‧‧步驟102‧‧‧步驟104‧‧‧步驟106‧‧‧步驟108‧‧‧步驟110‧‧‧步驟112‧‧‧步驟120‧‧‧步驟122‧‧‧步驟124‧‧‧步驟126‧‧‧步驟128‧‧‧步驟130‧‧‧步驟132‧‧‧步驟134‧‧‧步驟136‧‧‧步驟138‧‧‧步驟140‧‧‧步驟
第1圖圖示支援比較並交換異動之裝置的實例;
第2圖示意地圖示處理原子異動的實例;
第3圖圖示原子異動之示例性編碼;
第4圖圖示用於比較之打包原子異動之資料欄位的另一方法;
第5圖圖示用於當如第4圖中所示編碼時處理原子異動的處理電路系統的實例;
第6圖圖示編碼比較並交換異動以便比較資料值打包進資料欄位中對應於儲存位置中之目標資料值的位置之區域中的實例;
第7圖圖示不同資料大小之資料欄位的進一步實例;
第8圖圖示用於當如第6圖中所示編碼時處理比較並交換異動的處理電路系統的實例;
第9圖圖示用於比較之用於編碼資料欄位的若干替換方案;
第10圖為圖示在請求主機設備處產生原子異動的方法的流程圖;以及
第11圖為圖示在處理單元處處理原子異動的方法的流程圖。
國內寄存資訊 (請依寄存機構、日期、號碼順序註記) 無
國外寄存資訊 (請依寄存國家、機構、日期、號碼順序註記) 無
Claims (17)
- 一種用於比較並交換異動的裝置,包含:一主機設備,用以發出指定一目標位址且包含用於傳送至少一個運算元值之一資料欄位的異動,其中該主機設備經配置以發出一比較並交換異動,該比較並交換異動之該至少一個運算元值包含一比較資料值及一交換資料值;以及一處理單元,回應於該比較並交換異動,用以取決於該比較資料值是否匹配讀取自該儲存位置之一目標資料值而選擇是否將該交換資料值寫入對應於該目標位址之一儲存位置,該目標位址之一偏移部分指示在該儲存位置內之該目標資料值的該位置;其中當發出該比較並交換異動時,該主機設備經配置以將該比較資料值打包進該資料欄位之一第一區域中,該第一區域根據該目標位址之該偏移部分選擇並且在該資料欄位內具有對應於該儲存位置內之該目標資料值之該位置的一位置。
- 如請求項1所述之裝置,其中該主機設備經配置以將該交換資料值打包進該資料欄位之一第二區域,該第二區域鄰近於該第一區域。
- 如請求項2所述之裝置,其中該第一區域及該第二區域形成在該資料欄位內之一偏移處開始的該 資料欄位之一組合部分,該偏移對應於該組合部分之一大小的一倍數。
- 如請求項1所述之裝置,其中當該目標位址相對於該比較資料值及該交換資料值之一組合大小之一倍數對齊時,該主機設備經配置以將該交換資料值打包進在該資料欄位中之該第一區域之後的一第二區域中;以及當該目標位址相對於該組合大小之一倍數不對齊時,該主機設備經配置以將該交換資料值打包進在該資料欄位中之該第一區域之前的一第二區域中。
- 如請求項1所述之裝置,其中該處理單元包含一算術邏輯單元,該算術邏輯單元用以對提取自該資料欄位之該比較資料值及讀取自該儲存位置之該目標資料值執行一比較操作。
- 如請求項5所述之裝置,其中在該比較操作中,該算術邏輯單元經配置以接收該比較並交換異動之該資料欄位之一不移位版本作為其輸入運算元之一者。
- 如請求項5所述之裝置,其中該處理單元包含一移位器,該移位器用以執行一移位操作以移位該資料欄位,以將該交換資料值與該儲存位置內之該目標資料值的該位置對齊。
- 如請求項7所述之裝置,其中該移位器經配置以與執行該比較操作之該算術邏輯單元並行地執行該移位操作。
- 如請求項1所述之裝置,其中該主機設備經配置以發出至少一個其他類型之異動,該異動之該資料欄位包含一單個運算元資料值,以及該處理單元回應於該至少一個其他類型之異動,以使用取決於至少該單個運算元資料值之一值更新對應於該目標位址的該儲存位置;其中對於該至少一個其他類型之異動,該主機設備經配置以將該單個運算元資料值打包進該資料欄位之該第一區域中。
- 如請求項9所述之裝置,其中該處理單元包含一算術邏輯單元,該算術邏輯單元用於回應於一給定異動產生待寫入該儲存位置的一值,以及該給定異動之該資料欄位與至該算術邏輯單元之該等輸入之一者之間的一映射對於該比較並交換異動及該至少一個其他類型之異動兩者來說相同。
- 如請求項1所述之裝置,其中包含該資料欄位之該等異動包含用於控制該處理單元以執行一不可分割地觀察到之操作組的原子異動。
- 如請求項1所述之裝置,包含每個經配置 以發出該等異動之複數個主機設備。
- 如請求項1所述之裝置,包含一互連,該互連用以維持該主機設備與至少一個其他主機設備或快取記憶體之間的相干性,其中該互連包含該處理單元。
- 如請求項1所述之裝置,包含用以控制對一記憶體之存取的一記憶體控制器,其中該記憶體控制器包含該處理單元。
- 一種主機設備,包含:異動發出電路系統,用以發出指定一目標位址且包含用於傳送至少一個運算元值之一資料欄位的異動;其中該異動發出電路系統經配置以發出一比較並交換異動,該比較並交換異動之該至少一個運算元值包含一比較資料值及一交換資料值,該比較並交換異動用於控制一處理單元以取決於該比較資料值是否匹配讀取自該儲存位置之一目標資料值來選擇是否將該交換資料值寫入至對應於該目標位址之一儲存位置,該目標位址之一偏移部分指示該儲存位置內之該目標資料值的該位置;其中當發出該比較並交換異動時,該異動發出電路系統經配置以將該比較資料值打包進該資料欄位之一第一區域中,該第一區域取決於該目標位址之該偏移 部分選擇並且在該資料欄位內具有對應於該儲存位置內之該目標資料值之該位置的一位置。
- 一種處理單元,包含:異動接收電路系統,用以接收指定一目標位址且包含用於傳送至少一個運算元值之一資料欄位的異動,其中該異動接收電路系統經配置以接收一比較並交換異動,該比較並交換異動之該至少一個運算元值包含一比較資料值及一交換資料值;資料存取電路系統,回應於該比較並交換異動以讀取對應於該目標位址之一儲存位置,該目標位址之一偏移部分指示該儲存位置內之一目標資料值的該位置;以及處理電路系統,回應於該比較並交換異動,用以取決於該比較資料值是否匹配該目標資料值來選擇該資料存取電路系統是否將該交換資料值寫入至該儲存位置;其中該處理電路系統經配置以將該比較資料值置於該資料欄位之一第一區域內,該第一區域取決於該目標位址之該偏移部分選擇並且在該資料欄位內具有對應於該儲存位置內之該目標資料值之該位置的一位置。
- 一種資料處理方法,包含以下步驟: 發出一比較並交換異動,該比較並交換異動指定一目標位址且包含用於傳送一比較資料值及一交換資料值之一資料欄位;以及回應於該比較並交換異動,根據該比較資料值是否匹配讀取自該儲存位置之一目標資料值而選擇是否將該交換資料值寫入對應於該目標位址之一儲存位置,該目標位址之一偏移部分指示在該儲存位置內之該目標資料值的該位置;其中在該比較並交換異動中,將該比較資料值打包進該資料欄位之一第一區域中,該第一區域根據該目標位址之該偏移部分選擇且在該資料欄位內具有對應於該儲存位置內之該目標資料值之該位置的一位置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/427,335 US10223002B2 (en) | 2017-02-08 | 2017-02-08 | Compare-and-swap transaction |
US15/427,335 | 2017-02-08 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201830248A TW201830248A (zh) | 2018-08-16 |
TWI759397B true TWI759397B (zh) | 2022-04-01 |
Family
ID=60937794
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107100298A TWI759397B (zh) | 2017-02-08 | 2018-01-04 | 用於比較並交換異動的裝置、主機設備及方法 |
Country Status (8)
Country | Link |
---|---|
US (1) | US10223002B2 (zh) |
EP (1) | EP3580657B1 (zh) |
JP (1) | JP7158390B2 (zh) |
KR (1) | KR102558103B1 (zh) |
CN (1) | CN110235107B (zh) |
IL (1) | IL268320B (zh) |
TW (1) | TWI759397B (zh) |
WO (1) | WO2018146439A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10331500B2 (en) | 2017-04-05 | 2019-06-25 | Cavium, Llc | Managing fairness for lock and unlock operations using operation prioritization |
US10248420B2 (en) * | 2017-04-05 | 2019-04-02 | Cavium, Llc | Managing lock and unlock operations using active spinning |
US20210373975A1 (en) * | 2020-05-29 | 2021-12-02 | Advanced Micro Devices, Inc. | Workgroup synchronization and processing |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5889983A (en) * | 1997-01-21 | 1999-03-30 | Intel Corporation | Compare and exchange operation in a processing system |
US6480845B1 (en) * | 2000-06-14 | 2002-11-12 | Bull Hn Information Systems Inc. | Method and data processing system for emulating virtual memory working spaces |
US20030182515A1 (en) * | 2000-12-15 | 2003-09-25 | Zahir Achmed Rumi | Memory-to-memory copy and compare/exchange instructions to support non-blocking synchronization schemes |
TW200746657A (en) * | 2005-11-02 | 2007-12-16 | Qualcomm Inc | Arithmethic logic and shifting device for use in a processor |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0039227A3 (en) * | 1980-04-25 | 1982-09-01 | Data General Corporation | Data processing system |
JPS6285372A (ja) * | 1985-10-09 | 1987-04-18 | Nec Corp | マルチプロセツサシステムにおけるコンペアアンドスワツプ方式 |
US5241635A (en) * | 1988-11-18 | 1993-08-31 | Massachusetts Institute Of Technology | Tagged token data processing system with operand matching in activation frames |
US7447869B2 (en) * | 2005-04-07 | 2008-11-04 | Ati Technologies, Inc. | Method and apparatus for fragment processing in a virtual memory system |
US20080184019A1 (en) | 2007-01-30 | 2008-07-31 | International Business Machines Corporation | Method for embedding short rare code sequences in hot code without branch-arounds |
US8103764B2 (en) * | 2008-10-14 | 2012-01-24 | CacheIQ, Inc. | Method and apparatus for matching trigger pattern |
US20110010522A1 (en) * | 2009-06-12 | 2011-01-13 | Cray Inc. | Multiprocessor communication protocol bridge between scalar and vector compute nodes |
US8601242B2 (en) * | 2009-12-18 | 2013-12-03 | Intel Corporation | Adaptive optimized compare-exchange operation |
US8645404B2 (en) * | 2011-10-21 | 2014-02-04 | International Business Machines Corporation | Memory pattern searching via displaced-read memory addressing |
US9304940B2 (en) * | 2013-03-15 | 2016-04-05 | Intel Corporation | Processors, methods, and systems to relax synchronization of accesses to shared memory |
US9524242B2 (en) * | 2014-01-28 | 2016-12-20 | Stmicroelectronics International N.V. | Cache memory system with simultaneous read-write in single cycle |
JP2016157399A (ja) | 2015-02-26 | 2016-09-01 | 富士通株式会社 | 情報処理装置、情報処理システム及び排他制御プログラム |
US9749266B2 (en) * | 2015-08-28 | 2017-08-29 | International Business Machines Corporation | Coalescing messages using a network interface controller |
-
2017
- 2017-02-08 US US15/427,335 patent/US10223002B2/en active Active
- 2017-12-20 CN CN201780085426.3A patent/CN110235107B/zh active Active
- 2017-12-20 WO PCT/GB2017/053827 patent/WO2018146439A1/en unknown
- 2017-12-20 JP JP2019541737A patent/JP7158390B2/ja active Active
- 2017-12-20 KR KR1020197024439A patent/KR102558103B1/ko active IP Right Grant
- 2017-12-20 EP EP17825915.6A patent/EP3580657B1/en active Active
-
2018
- 2018-01-04 TW TW107100298A patent/TWI759397B/zh active
-
2019
- 2019-07-29 IL IL268320A patent/IL268320B/en unknown
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5889983A (en) * | 1997-01-21 | 1999-03-30 | Intel Corporation | Compare and exchange operation in a processing system |
US6480845B1 (en) * | 2000-06-14 | 2002-11-12 | Bull Hn Information Systems Inc. | Method and data processing system for emulating virtual memory working spaces |
US20030182515A1 (en) * | 2000-12-15 | 2003-09-25 | Zahir Achmed Rumi | Memory-to-memory copy and compare/exchange instructions to support non-blocking synchronization schemes |
TW200746657A (en) * | 2005-11-02 | 2007-12-16 | Qualcomm Inc | Arithmethic logic and shifting device for use in a processor |
Also Published As
Publication number | Publication date |
---|---|
EP3580657B1 (en) | 2021-02-24 |
JP2020506483A (ja) | 2020-02-27 |
JP7158390B2 (ja) | 2022-10-21 |
IL268320A (en) | 2019-09-26 |
CN110235107A (zh) | 2019-09-13 |
US10223002B2 (en) | 2019-03-05 |
US20180225047A1 (en) | 2018-08-09 |
WO2018146439A9 (en) | 2019-08-01 |
CN110235107B (zh) | 2023-12-26 |
EP3580657A1 (en) | 2019-12-18 |
WO2018146439A1 (en) | 2018-08-16 |
TW201830248A (zh) | 2018-08-16 |
KR102558103B1 (ko) | 2023-07-21 |
IL268320B (en) | 2021-09-30 |
KR20190112019A (ko) | 2019-10-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101097545B (zh) | 独占所有权探听过滤器 | |
US6725343B2 (en) | System and method for generating cache coherence directory entries and error correction codes in a multiprocessor system | |
US6832282B2 (en) | System and method for providing forward progress and avoiding starvation and livelock in a multiprocessor computer system | |
US20150261535A1 (en) | Method and apparatus for low latency exchange of data between a processor and coprocessor | |
US9595075B2 (en) | Load/store operations in texture hardware | |
TW201107974A (en) | Cache coherent support for flash in a memory hierarchy | |
JP2012038293A5 (zh) | ||
TW201007453A (en) | Snoop filtering mechanism | |
TWI759397B (zh) | 用於比較並交換異動的裝置、主機設備及方法 | |
US11023410B2 (en) | Instructions for performing multi-line memory accesses | |
EP3885918B1 (en) | System, apparatus and method for performing a remote atomic operation via an interface | |
US20230195633A1 (en) | Memory management device | |
US20060212652A1 (en) | Information processing device and data control method in information processing device | |
US10121220B2 (en) | System and method for creating aliased mappings to minimize impact of cache invalidation | |
GB2502858A (en) | A method of copying data from a first memory location and storing it in a cache line associated with a different memory location | |
JP2004240616A (ja) | メモリコントローラ及びメモリアクセス制御方法 | |
JPH05158793A (ja) | 並列キャッシュメモリ | |
CN109791521B (zh) | 提供数据访问的原子集的装置及方法 | |
JP6565729B2 (ja) | 演算処理装置、制御装置、情報処理装置及び情報処理装置の制御方法 | |
JPH04260157A (ja) | マルチプロセッサシステム |