TWI257552B - A data processing system and a method within the data processing system for enabling concurrent, over-lapping data movement associated with separate data clone operations of separate memory cloners - Google Patents

A data processing system and a method within the data processing system for enabling concurrent, over-lapping data movement associated with separate data clone operations of separate memory cloners Download PDF

Info

Publication number
TWI257552B
TWI257552B TW092133871A TW92133871A TWI257552B TW I257552 B TWI257552 B TW I257552B TW 092133871 A TW092133871 A TW 092133871A TW 92133871 A TW92133871 A TW 92133871A TW I257552 B TWI257552 B TW I257552B
Authority
TW
Taiwan
Prior art keywords
data
memory
destination
address
replicator
Prior art date
Application number
TW092133871A
Other languages
English (en)
Other versions
TW200424867A (en
Inventor
Ravi Kumar Arimilli
Benjiman Lee Goodman
Jody Bern Joyner
Original Assignee
Ibm
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 Ibm filed Critical Ibm
Publication of TW200424867A publication Critical patent/TW200424867A/zh
Application granted granted Critical
Publication of TWI257552B publication Critical patent/TWI257552B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

1257552 玖、發明說明: 【發明所屬之技術領域】 本發明-般關係於數據處理系統及較具體地係關係於數 據處理系統之處理器内的數據操作。更具體言之,本發明 關係於一種能在數據處理系統的鏈結上重疊操作之方法及 糸統。 【先前技術】 參考相關申請 下列共同待審的申請案與本發明共享申請規格及圖式: 申凊案 09/----^------------(委託案號 AUS920020 147US1) 「使用裸快取線寫入操作的數據處理系統」(Data Processing System With Naked Cache Line Write
Operations);中請案〇9/___________________(委託案號 AUS920020148US1)「經由無鎖多處理器機制的高速記憶體 複衣 β又備」(High Speed Memory Cloning Facility Via a Lockless Multiprocessor Mechanism); 申請案 097-----------:_________(委託案號 AUS920020149US1) 經相關完成機制的高速記憶體複製設備」(High Speed
Memory Cloning Facility Via a Coherently Done
Mechanism);巾請案〇9/____________________(委託案號 AUS920020150US1)「具有高速記憶體複製器的多處理器系 統的動態軟體存取性」(Dynamic Software Accessibility to a
Microprocessor System With a High Speed Memory Cloner);巾請案〇9/____________________(委託案號 89729.doc 1257552 AUS920020146US1)「數據處理系統内的高速記憶體複製 器」(High Speed Memory Cloner Within a Data Processing
System);巾請案09/____________________(委託案號 AUS920020152US1)「經由起源地/目的地交換機制的高速 記憶體複製設備」(High Speed Memory Cloning Facility Via A Source/Destination Switching Mechanism);申請 09/____________________(委託案號 AUS920020153US1) 「具有延長快取相關性協定及回應的高速記憶體複製器」 (High Speed Memory Cloner With Extended Cache
Coherency Protocols and Responses);及申請 09/ --------------------(委託案號 AUS920020602US1)「記 憶體複製操作期間不準確快取線保護機制」(Imprecise Cache Line Protection Mechanism During a Memory Clone Operation)。共同待審申請案的内容以提示方式併入本文。 需要快速及較少硬體密集的數據處理及數據操作己經成 為數據處理系統領域看得見的改善推動力量。近來傾向已 發展較快速、較小及更複雜的處理器並構成多處理器配 置,以便使多互連處理器能同時執行已知任務的各部份。 1 成多處理器配置以外,已發展具有更有效記憶體存取的 刀放式圮憶體系統。同樣,配置開 ^ , 同關型互連(或開關)以取代 傳統匯流排互連。 八 該分散式記憶體能儲存數據於 ,^ 後数個分離記憶體模組及 加強多處理器配置的記憶體存 、及 統的各'㈣直接…接…提:=:::: 89729.doc 1257552 信及組件之間的數據傳輸。 圖1為一具有分散式記憶體及開關型互連(開關)的傳統 夕處理态系統的方塊圖。如所示,多處理器數據處理系统 100包括多處理器晶片101A_101D,經開關1〇3彼此互 接其他系統組件。其他系統組件包括分散式記憶體105、 _和記憶體控制器1()6、⑽相關聯),及輸人/輸出陶 組件1〇4。額外組件(未顯示)也經開關103互連顯示的組件。 處理為曰曰片101A-1〇 1D各包括兩處理器核心(處理器)順序 標示為P1-PN。哈了未x田抑^ ^ 矛、了處理态P1-PN以外,處理器晶片 101A-101D包括額外組件/與處理器ρι_ρΝ—起控制數據處 理系統10G内的處理操作之邏輯。顯示—組件,硬體引 擎111,其功能如下說明。 在如圖1所示的多處理器數據處理系統中,一或更多記憶 體。己U體換組-般存取多處理器(或處理器操作),及記情 體-般共享處理資源。因為各處理資源獨立作用,系統: 會發生共享記憶體資源競爭。例如,一第二處理器嘗試寫 入(或。讀取)一特定記憶體位址,其間該記憶體位址已由第1 2理存取。如果先前存取正在執行時發生後來的存取申 Μ後來的巾請必須延後或防止直到先前巾請^成。如此, :了讀取或寫入數據從/至特定記憶體位置(或位址),處理 π必須在特定記憶體位址鎖住直到讀取/寫入操作確實完 成。如此避免當系統不知情處理不正確(例:失效)數據時而 發生錯誤。 另外,較快較複雜的多處理㈣統同時發出多數據申請 89729.doc 1257552 及存在於各完成階段。除了相關性的考慮外,處理器必須 確保特定數據區塊的操作順序不變。例如,如果處理器p i 申明於位址A寫入數據區塊及處理器p2必須讀取相同數據 區塊,及如果依程式順序讀取在寫入之前發生,所以為了 正確結果保持兩操作的次序非常重要。 數據處理系統的標準操作要求數據的存取及移動或處理 由處理組件(或其他組件)執行。數據一般儲存在記憶體中及 由特疋處理為使用發佈的命令執行程式碼存取/讀取、檢 索、運用、儲存/寫入及/或簡單移動。 數據移動刼作不涉及改變/修改數據的值/内容。或者,數 據移動操作從-具有第—實體位址的記憶體位置轉移數據 至具有不同實體位;止的另外位置。纟分散式記憶體系統 中,數據可從一記憶體模組移到另一記憶體模組,雖然也 可能在單一記憶體/記憶體模組内移動。 為了完成本系統内任一種移動,須完成下到步驟.:(1)處 里·«引擎發佈載入及儲存指令,結果快取線(CL)讀取從處 理器晶片、經開關/互連傳送至記憶體控㈣器;(2)記憶體控制 器獲得目的地記憶體位置的鎖;(3)指定處理器鎖住目的地 記憶體位置(藉由記憶體控制器);⑷傳送數據從記憶體(起 源地位置)經開關/互連至處理器晶片(引擎);(5)傳送數據從 處理器引擎經開關/互連至目的地位置的記憶體控制器;⑹ 寫入數據至目的地位置;及(7)鬆開用於其他處理器之目的 地鎖。本方法具有固有從起源地記憶體位置轉移數據至處 理器晶片及從處理器晶片轉移數據至目的地記憶體位置的 89729.do« 1257552 等候時間,即使已使用開關。 一般’各載入及儲存择作孩說 。/ 一 — 杯作移動一8位兀組數據區塊。為了 几成本移動需要快取轉動 y 便用轉換旁視緩衝器(TLB)以執 仃有效讀取位址轉移,及 乂而要使用處理器及其他硬 以接收及轉遞數據。至少一處理器系統具有插入硬 立加速載人線及館存線及TLB以使位於位元組層的各快取 線同步操作。 圖1顯示由處理器P1從記憶體内的一區/位置(即是,實體 位址)移動數據至其他位置。 —— 置如圖1所不及前頭標示路徑1及 在數據移域作期間,數據從記憶體Η)5的位址位置a 藉由將數據放置於一匯流排(或開關ι〇3)沿數據路徑i移動 至處理A B日片1G1A。然後傳送數據從處理器晶片⑻A沿數 據路徑2經開關1G3至記憶體1()7内的所需位址位置B。 為了完成上述數據移動操作’目前(及先前)系統係利用 硬體引擎(即是’硬體模式)及/或軟體程式模式(或介面)。 在硬體引擎構造中,利用虛擬位址及硬體引擎iu控制數 據移動操作及接收移動的數據。硬體引擎叫也稱為硬體 加速器)起動一鎖住獲取方法,以在數據開始移動之前獲得 起源地及目的地記憶體位址的鎖以避免多處理器同時存取 吞亥§己憶體位址的數攄。取彳轰、A * 像取代傳运數據至處理器,數據傳送 至更體引莩11 1。硬體引擎"J使用快取線讀取及致動能以 管線方式完成之寫人。最後結果為更快的移動操作。 在軟體程式構造中’軟體通知位置A及位置B的處理器硬 體’然後處理器硬體完成移動。在本方法中,可利用真實 89729.doc -10 - 1257552 位址(即疋’非虛擬位址)。因此,上述硬體模式需要用於虛 被對真貫位址轉換(或歷史圖案相配)的額外時間可以避 免。另外在本軟體模式中,位址包括偏移(即是,位址8偏 移數個位元組)。 精由處理裔P 1執行標準偽碼順序以完成本數據移動操作 如下:
LOCK DST LOCK SRC LD A(位元粗〇) ST B(位元組〇) INC CMP BC SYNC RL LOCK 鎖住目的地 鎖住起源地 Ab〇 (4B 或 8B 量) B B〇 (4B/8B) 增量位元組數 完成後之比較 未完成之分支 執行同步化 釋放鎖 增加位元組數(BO、B 1、B2)等直到所有儲存在記憶體區 内標識位址A的數據移到標識位址b的記憶體區内。鎖住及 釋放操作由記憶體控制器及匯流排仲裁器完成,分配暫時 存取及控制特定位址予獲得該鎖的申請處理器。 數據移動操作後,處理器P1必須在處理器能繼續處理其 他後續操作之前接收一完成回應(或信號)表示所有數據己 經實際移動到記憶體B。碟保處理單元中存有相關性及維持 數據的相關性。該完成信號為一對SYNC操作的回應,由處 理器P1在數據移動操作後於鏈結上發佈以確保所有處理器 S9729.doc 1257552 接收數據移動操作的通知(及確認)。 如此於圖1中,由處理器P1發佈的指令啟動從位置A至位 置B的數據移動。由處理器pl發佈sYNc,及如果最後數據 區塊已移到位置B,傳送一表示實際移動已經完成的信號至 處理器P1。回應中,處理器P1鬆開位址B的鎖,及處理器 P1能繼續處理其他指令。 必須了解,因為處理器P1必須在開始移動操作之前獲得 記憶體位置BAA的肖,完成信號也傳訊該鎖釋放及讓其: 處理器嘗試存取記憶體位置A及B以獲得任何一位址的鎖。 雖j各硬體及軟體模式提供不同功能優點,但兩種處理 都有限制。例如,硬體及軟體模式從記憶體(起源地)下載數 據至處理器晶片及從處理器晶片回載至記憶體(目的地)都 具有等候時間。另夕卜,使用兩種模式,處理器必須等候直 到全部移動完成及完成在處理器能繼續處理後續指令/操 作之前從記憶體控制器產生之回應。 ^ 所以本發明實現提供-種更有效率數據移動操作的方法 及糸統。-種最受歡迎的改良方法及系統能在數據處理夺 統的鏈結上致動多且同時的複製操作。本發明提供上述及 L贺、明内容】 本文揭示一種數據處理系統内 八# J万法,其用於同時重 刀肖隹記憶體複製器的數據複製操作。 仏故— F ^弟一記憶體複製 毛布一弟一修改讀取操作至移動的 5 ^ α I艨起源地。數據移 至弟一目的地及修改讀取操作包括 ^ 目的地之位址作 89729.doc -12- 1257552 數據的路由位址。由第-讀取操作路由的數據標示第—目 的地之位址以識別該數據及經鏈結傳送該數據之目的地標 籤。 第二數據同時地或後續地經該鏈結路由至下-目的地, 其間第-數據仍在該鏈結上傳輸。第二數據也附加指定之 目的地標籤’ g目的地標籤與由該第—讀取操作路由之數 據的目的地標籤不同。如此,兩數據複製操作在鏈結上重 疊但各用其個自專用目的地標籤加以識別。 在另外具體實施例中’除了個自目的地標籤外,第一及 第二數據均附加起動特定複製操作的記憶體複製器相關的 個自專用識別項⑽)。專用ID包括附加至數據轉移操作的 = 立兀,該等位元係用來追蹤複製操作的序號。指定各 複衣操作^續序號。重複使用專㈣及選擇專⑽的位 =致ΐ弟—序號的複製操作在需要—專用1D的新複製操 作之W完成。 【實施方式】 A.概說 本發明提供一 憶體複製器及一 數據複製操作的 請繼續處理操作 而完成,不需要 和處理器(或處理器-晶片)相關聯之高速記 種利用高速記憶體複製器提供的特徵完成 方法。記憶體複製器能使處理器根據一: =移動數據從第-記憶體位址至另外位址 貫際移動數據。 本發明具有移動操作的結 器提供的功能特心… 成狀恶。由記刪 4寸试包括純寫人操作、高相關性操作^ 89729.doc -13 - 1257552 、吨寫入及直接記憶體對記憶體數據移冑,指令集結構内的 新指令(如,經由管線發佈指令不中斷而修改合併指令集), 及用於在數據處理的真貫及虛擬定址模式之間動態交換的 模式位元。丨發明也提供數據處理系统的另外高級操作功 月&特徵。 本發明具有目前處理系統的開關拓樸的優點及記憶體控 制器的功能性。不像目前用於完成移動操作的硬體型或軟 體型模式’需要將數據相申請處理器模組及然後從處理 器模組傳送至目的地,本發明構成的合併軟體模^及硬體 模式具有額外特徵容許數據直接路由至目的地。本發明的 構造較理想利用設言十具有記憶體複製器的處理器並包括下 列各種硬體及軟體邏輯/組件。 一本文提供—些新名詞,其中重要㈣「複製」操作,由 尚速記憶體複製器執行。如本文使用,複製操作係指所有 毛生在同速圮憶體複製器内、鏈結上 '及在記憶體位置處 月匕成為…構丨生兀成狀怨及數據實際移動的操作。數據從點a 移到點B,但與所知的完成數據移動操作的方法大不相同。 爹考數據「移動」特別表示從處理器發佈至高速記憶體控 制&'的指令。在某些例子中,名㈣「移動」係用來特別表 不作為數據複製操作之一部份數據的實際移動。如此,例 如,認定實際數據移動之完成為該數據複製操作之一部份。 B.硬體特徵 現在芩考附圖,特別是圖2,顯示一多處理器開關連接實 本务明之數據處理系統2〇〇。數據處理系統2〇〇包括複數 89729.doc -14- 1257552 個處理态模組/晶片,其中顯示兩晶片2〇丨八及2〇 ID。處理器 曰曰片201A及201D各包括一或更多處理器(pl、p2等)。在至 少一處理器晶片中(如,顯示的處理器晶片2〇1)為記憶體複 製器211,參考圖3的說明。處理器晶片2〇1八及2〇1〇經開關 203彼此互連及至數據處理系統2⑻的額外組件。該額外組 件包括分散式記憶體模組,其中顯示兩記憶體2〇5及2〇7, 刀別各具有個自記憶體控制器206及208。和記憶體控制器 208相關聯的係記憶體快取213,其功能性參考下列純寫入 操作的說明。 執灯數據複製操作期間,數據經由開關2〇3直接從記憶體 205的記憶體位置a移動至記憶體2〇7的記憶體位置b。數據 沿不包括在處理器或處理器模組的直接路徑3傳遞。即是, 移動的數據首先並不傳送至記憶體複製器2ιι或處理器 p卜數據的實際移動分別由記憶體控制器2〇6及控制(或 根據下述相關性模式由快取控制器控制),也分別控制存取 記憶體2〇5及2〇7,其間完成實際移動。 叫、μ妖诹爽理糸統内的處理 ,^-口口 /八口U Ί思腊直只 為解說用。熟悉本技術去A I Α ηα ,、 议衡者明白本發明的各種功能特徵完 適合系統配置包括非分散式愔 。 月又式。己f思體及/或早處理器/處理 晶片。本文所述的功能柯^ 〖生特被應用於不同配置的數據處 糸統’只要數據處理李綠4 4丄A rh ” '、先匕括咼速記丨思體複製器及/或能 成本交所述的各種功能性特徵的相似組件。 高速記憶體複製器 記憶體複製器211包括石更 體及軟體組件 其用來控制及/ 89729.doc -15 - 1257552 或啟動本發明的方法。較特別地係,如圖3所示,記憶體複 衣杰211包括控制邏輯3〇3及轉換旁視緩衝器(TLB)3i9。記 十思體複製器211也包括一些暫存器,其包括SRC位址暫存器 3〇5、DST位址暫存器307、CNT暫存器3〇9、結構性完成狀 恶暫存态3 1 3、及複製完成暫存器3丨7。模式位元3丨5也包括 在記憶體複製器内。記憶體複製器211的各組件的功能性的 說明參考文件的相關章節。 庄思,不像硬體加速器或相似組件,記憶體複製器接收 及/、發佈#作位址。本發明的實施可使用每晶片一單記憶 體複製器。或者,各微處理器可存取一個自的記憶體複製 器。 TLB 319包括一虛擬位址緩衝器321及一真實位址緩衝器 323。由處理器七、P2等從MLBmB分離的 319 為固定及與ί-丁 LB及D-TLB協調操作。緩衝器32i及323由〇§ 在起動時下載及較理想由QS儲存所有參考位址的轉換及處 理’以致在記憶體中不必讀取OS頁表。 SRC、DST及CNT暫存器 在圖3所示的具體實施例中,記憶體複製器2ιι包括起源 地(SRC)位址暫存器305、目的地(DST)位址暫存器—及計 數(CNT)暫存器309。如其名稱含義,目的地位址暫存器3〇7 及起源地位址暫存器3G5分別儲存移動數據的記憶體位置 的目的地及起㈣㈣。計㈣存㈣9儲存在數據複製操 作中轉換的快取線數。 從記憶體(X及Y)的使隸置讀取目的地及起源地位址以 89729.doc -16 - 1257552 儲存數據複製操作的目的地及起源地位址。由處理器(如 1)毛佈一或更多指令觸發的起源地及目的地位址讀取造 成記憶體複製器啟動數據複製操作,如以下說明。、& C·數據複製操作的一般處理方法 圖5A顯示本發明利用上述硬體組件完成總處王里的-些主 要步驟。本方法自步驟5〇1開始,然後處理器ρι執行申請從 記憶體位置A至記憶體位置B複製數據的指令,如步驟^ 所不。記憶體複製器接收數據複製中冑,擷取虛擬起源地 及目的地位址,查找相對真實位址及啟動純界以操作,如步 驟505所示。純WR操作在鏈結上執行及記憶體複製器監視 結構性完成狀態,如步驟507所示。根據顯示複製操作為結 構性完成及記憶體複製器傳訊該處理器複製操作完成,及 如果數據移動實際己經完成,則處理器繼續處理,如步驟 5〇9所示。然後,記憶體複製器完成實際數據移動如步驟 所示,及圮憶體複製器執行必要的快取線保護其間數據實 際移動。然後本方法結束如步驟513所示。以下參考本文其 他流程圖擴大說明由圖5八各方塊表示的處理步驟。 ^ 參考圖5B,其中顯示一些圖5八步驟5〇5的完成步驟。本 方法自步驟521開始然後移動至步驟523,顯示申請數據複 製操作的目的地及起源地位址係從記憶體位置乂及Y取回 及放在記憶體複製器的各暫存器内。計數值(即是,數據快 取線數)也放在CNT暫存器内,如步驟525所示。然後完成 起源地及目的地標記操作,如步驟526所示。接著將純CL WRS放在鏈結上,如步驟527所示。各純CLWR從記憶體控 89729.doc -17- 1257552 制器接收鏈結上的回應。步驟529完成決定是否該回應為 NULL。如果該回應不是NULL,重試純CL WR操作,如步 驟531所示。不過,如果該回應*NULL,純CL wr標示在 記憶體複製器211内完成,如步驟533所示。圖化各步驟的 詳細說明如下。 移動運算元及擷取移動位址 為了明瞭本發明,數據複製操作的執行的說明參考程式 碼的小區塊及複製從記憶體位置A (虛擬位址A及真實位址 A1)至另外記憶 據。如此 ’例如 果複製從記憶體 ST X ST Y ST CNT SYNC ADD 上述樣品指令 結 下: (位址X保留虛擬起源地位址A) (位址Y保留虛擬目的地位址B) (CNT為複製數據線數) σ 由記憶體複製器從處理器接收以啟動複 ▲乍利用ADD指令作為範例指令,在數據複製操作完 月J地里不執仃。尸、要上述指令順序達到從處理器接 S Y N C記憶體複製器便啟動數據複製操作。在記㈣ 執行上述指令順序造成虛擬起源地及目的地位^ 體複製器及提俾梦紅# # 6 + /、私動數據線數。在該具體實施例中CNT> 寺於記憶體—百βη / /丄丄 # ^ 、内的線數,及複製操作為複製位於位址/ 的數據單頁。 89729.doc -18- 1257552 圖4A顯示記憶體405’其可為記憶體子系統内的任何記憶 體205,207,具有用於駐留數據複製操作的起源地及目的 地位址A及B之標示為X及γ記憶體位置之區塊。在一具體實 施例中,數據複製操作的位址A&B由處理器在較早執行日^ 間儲存在X及Y記憶體位置内。各位置包括32位元的位址數 據後接1 2預留位元。根據本具體實施例,由數據處理系統 的狀態機利用額外的12位元的前5位元選擇已申請/存取的 起源地或目的地頁位址範圍内32可能頁數之一。 如圖4A所示,X及γ位址為儲存A&B虛擬位址的記憶體 位置,及如果包括在儲存申請(3丁)内,指示處理器及記愴 體複製器該申請為數據複製操作(而非傳統儲存操作)。虛擬 位址A及B相對數據複製操作的起源地及目的地的真實記 憶體位址A1及B1並儲存在記憶體複製器21丨的sRC位址暫 存态305及DS 丁位址暫存器307内。在以下記憶體複製操作 的說明中,A及B表示位址,為記憶體複製器内儲存的數據 位址’其間A1及B 1表示發佈至鏈結的真實記憶體位址(即 是,在開關外)。A及A1與B及B1各表示數據複製操作的起 源地記憶體位置及目的地記憶體位置。 在本具體實施例中,如果記憶體複製器211接收處理器及 後接SYNC之ST命令的序列,TLB 3 19從虛擬位址(X及γ)分 別查找真實位址Χ1&γΐ(ίΧ1&γ1為記憶體位置指示用來儲 存記憶體複製操作的起源地及目的地位址。記憶體複製器 211發佈操作經開關(即是,鏈結上)至記憶體外,及該操作 存取各位置及退回目的地及起源地位址至記憶體複製器 89729.doc -19- 1257552 211。記憶體複製器211分別從位置幻及¥1接收起源地(a) 及目的地(B)的虛擬位址。實際位址提供為第一頁記憶體位 址。 記憶體複製器211分別儲存目的地及起源地位址及自處 理器P1接收的快取線量於暫存器305、307、309中。根據儲 存在CNT暫存器309内的值,記憶體複製器211利用12保留 位元的前5附屬位元能產生從sRC暫存器3〇5及DST暫存器 307内的位址開始之序列位址,順序編號從〇至3 i。 例如,複製操作中128位元組線數據的4尺位元組頁從記憶 體位址A1 (具有4 K對準位址)移動至記憶體位址B丨(也具有 4K對準位址),計數值32儲存在〇^^丁暫存器3〇9相對狀態機 位址擴充〇〇〇〇〇至milm加在前5位元的起源地位址。位址 擴充可由狀態機設定(即是,由記憶體複製器使用的計數器) 及識別頁内哪個位址區塊移動。 另外,本發明的額外特徵除全部頁外也能複製部份記憶 體頁。本特徵關係於例如其中具有不同尺寸快取線的記憶 版組件之間產生移動操作之具體實施例。 回應接收虛擬起源地及目的地位址,記憶體複製器2 j工 執行功此(1)儲存起源地位址(即是,位址A)於SRC暫存器 5中及(2)儲存目的地位址(即是,位址B)於DST暫存器 7中。圮憶體複製器2 11也儲存從處理器接收的cnt值於 曰存的309中。健存的起源地及目的地位址為先前處理 期間, 口' ^ 裔產生的虛擬位址。然後由TLB 3 1 9查找這些位址 、决疋相對記憶體内的真實位址,然後使用該位址完成下 S9729.d〇( -20- 1257552 述數據複製操作。 D ·付§己操作
現在回到步驟526,開始記憶體複製的寫入及讀取操作之 丽,記憶體複製器發佈一組符記(或位址佔有期),在本具體 實施例中稱為起源地(SRC)符記及目的地(DST)符記。SRC 符記:鏈結上的一操作,詢問系統查看是否有其他記憶體 稷製器正在利用SRC頁位址。同樣,DST符記為鏈結上的一 私作’珣問系統查看是否有其他記憶體複製器正在 DST頁位址。 在㈣啟動複製操作的操作之前由記憶體複製器在鍵結 上發佈SRC及DST符記。各記憶體複製器的符記由系統内所 有記憶體複製器(或處理器)健。各该查器根據侦查器正在 使用的任何位址檢查符記的起源地及目的地位 U债查裔傳运合覆告訴發佈符記的記憶體複製器其位址是 告被以摘查為使用。付§己操作確保不會有兩記憶體複製器 I试頃取/寫入相同位詈您 々U位置付屺刼作也確保有記憶體位址空 間可用於數據複製操作。 體:ΓΓ止多記憶體複製器同時寫入數據於相同記憶 :: 立置。除了防止多重不同操作同時更新記憶體位置外’ :二呆:也協助避免活鎖,及確保維持記憶體内的相關 τ 明也提供另外方法確保處理器不被活鎖,如以下 所示。 器在開始一系列之 址的空位信號。一 利用符記位址運算元能使記憶體潜 寫入操作之前接收一起源地及目的对 89729.doc -21 - 1257552 二己fe體稷製态從符記接收一空位信號,記憶體複製器能 糟由發佈純快取線(CL)寫入(WR)操作及cl讀取(rd)操 作,便能開始複製操作。 然後從接收起源地及目的地位址產生符記操作,及發佈 符記操作以確保空位回應以存取各記憶體位置。在鏈^上 發佈的SRC及DST符記操作以決定是否複製器冑申請記憶 體位置(即是,目前未被其他處理器或記憶體複製器等利用) 及保留有效位址直到複製操作完成。一旦退回的術符記 及SRC付記操作具有空位,記憶體複製器藉由偵查存取該 位址空間的其他中請開始保護相關位址空間,如下所述。 注意’在-具體實施例中,一旦麟符記的回應表示該 目的地位址為空位用於複製操作(即1吏未接收SRC符記為空 位),便容許開始複製操作。本具體實施例能使數據同時來 自相同的位址及因而容許使用相同起源地位址同時多複製 操作。這種構造的一主要理由為不像傳統移動操作,由記 憶體複製器控制的複製操作以一系列的純寫入操作開始至 目的地位址,詳細如以下所述。 以下為根據符記利用尋找可能數據源操作的例子。在本 例中,「A」表示數據來源的起源地位址。「B」表示完成記 憶體複製的目的地位址’「〇」表示分別嘗試存取相對位址 A或B的位置A或B的另外處理(如,複製操作)的記憶體位 址。如果數據來自A至B,數據也同時來自A至〇。不過,數 據複製時不可能有#他組合。此外的其他組合為:A至B及 〇至B; A至至0;八至8及〇至八。注意,在各組合中, 89729.doc -22- 1257552 饭叹s為數據來源的位址。如此,本發明容 ^ 6 r-η 私7 夕兄憶 體末自相同記憶體位置。不過,如果目的地位址盘 起源地位址相同,#杳哭奸 、一的 偵查的根據何者先接收發佈重 的SRC符記及DST符記。 飞主衝大 E ·純寫入操作 純寫人 參考圖5B的步驟527,本發明介紹一種新 體複製器内相關回應組。本操作為無數據期限的快取= 入(也無作純寫'入)因為操作為只有位址操作不包括數據期 限(所以稱為「純」)。純寫人由記憶體複製器發佈以開始數 據稷製操作及由包括數據移動的目的地記憶體位置的Μ 體之記憶體控制器接收。記憶體控制器產生一回應至純^ 入,及送回該回應至記憶體複製器。 記憶體複製器發佈無數據寫入命令(也稱為純寫入),放 在鏈、上及啟動數據移動的目的地緩衝器等的分配。記憶 體複製态發佈3 2純寫入由第一目纟 ^目的地位址開始,相當位址Β 加其他3 1順序頁每頁屛& ^ 、曰、 擴充。純寫入及相關回應等 的管線如圖4Β所示。 記憶體複製器發佈管線序列的clwr。管線式方法為
腿CL WR HO,因為數據直接寫入記憶體。該32 CL W R操作為獨立及在鍵結上重疊。 回應純CL寫入 圖4B顯示快取線〔cl)沒fwd m 72 & ()5貝取(RD)及寫入(WR)操作及在鏈 結上傳輸的相對頁(即是,A〇_A3i及β〇_β3ι)的模擬線段。各 89729.doc -23 - 1257552 操作接收相關性回應如下述。如顯示,不需要任何實際數 據傳輸便可發佈純CL寫入。一旦發佈純CL寫入,各純寫入 產生相關性回應表示是否記憶體位置6為空位可接收移動 數據。回應可以為Null* Retry,根據特定目的地記憶體位 置的記憶體控制器是否能分配緩衝器接收移動數據而定。 在本具體實施例中,緩衝器代表目的地記憶體2〇7的記憶 體快取213的快取線。在標準記憶體操作期間,傳送至記憶 體的數據首先儲存在記憶體快取2丨3内及然後該數據移動 至貫體記憶體207中。如此,記憶體控制器檢查用來儲存特 定純CL WR操作的記憶體位址的數據的特定快取線。名詞 「緩衝器」有時可與快取線互換,雖然本發明的配置也可 以不構成緩衝器的正式記憶體快取鏈結。 相關性回應送回記憶體複製器。該回應提供指示至記憶 體複製器是否即時開始數據轉移(根據相關性檢查及起源 地位址的有效性而定)。如果,記憶體控制器能分配緩衝器 予、、、屯CL WR,分配該緩衝器及記憶體控制器等候接收〔乙的 數據。除了 NullVRetrw應以外,也提供各純CL職一目的 地ID標籤如圖4B所示。目的地⑴的使用說明參考圖π的 CLR操作。 F.結構性完成狀態 圖5<^、、員不產生結構性完成狀態及處理器回應該結構性完 成狀悲的步驟。該步驟由步驟55丨開始及記憶體複製器監視 毛佈至純CL WR操作的Null回應,如步驟553所示。步驟 、疋疋否所有發佈的純CL WRs都接收一來自記憶體控制 89729.doc -24- 1257552 器的NuI1回應。如果記憶體控制器發佈-null回應至所有 純以職操作,便認定總移動為厂結構性完成狀態」,如步 知557所不’及§己憶體複製器傳訊申請處理器數據複製操作 已完成即使移動數據未從記憶體子系統讀取。然後,本方 法在步驟559結束。處理器繼續執行後續指令(如,在範例 指令序列中跟在SYNC之後的ADD指令)。 結構性完成狀態的配置可以完成因為數據並不由處理哭 或記憶體複製器接收。即是,數據移動不需要傳輸至處理 裔晶片或記憶體複製器,代之從記憶體位置A直接傳送至記 fe、體位置B。一旦系統不再提供「舊」目的地數據至處理器, 處理器接收-複製操作已經結構性完成的指示。 如此二從處理器的透視圖看出,即使在任何數據線實際 移動之,’複製操作接近完成(根據有效頻寬、數據區段尺 寸、重疊移動數、及其他經過開關的處理等多快可以完成 實際移動而定)。如果達到結構性完成狀態,所有目的地位 址緩衝器已經分配接收數據及記憶體複製器發佈相對讀取 操作觸發數據移動至目的地位址。根據系統同步透視圖, 雖然亚非所有數據已經開始移動或完成移動,通知處理器 複製操作完成及處理器假設處理器發佈SYNC操作已接收 表示該複製操作完成的一 ACK回應。 完成結構性完成狀態的優點為處理器免除記憶體等候及 系統拓樸因為不必等候直到實際數據複製操作完成。如 此,處理|§貧源分配於數據複製操作及防止處理後續指令 直到迅速釋放接收ACK回應接收以在數據複製指令傳送至 89729.doc -25 - 1257552 記憶體複製器後繼續處理具有最小延遲的其他操作 結構性完成狀態之暫存器型追縱 在一具體實施例中,配置軟體或硬體接收的暫存器型追 蹤Null回應。暫存器位於記憶體複製器211内如圖2所示。 例如使用CNT值32,記憶體複製器211具有32位元軟體暫存 器313以追蹤已接收Null回應的32純CL寫入之一。圖7b顯示 複 製 利用一32位元暫存器313提供指示至記憶體複製器為 操作至少部份完成或結構性完成。暫存器作為由記憶體複 製器監視的進度尺標。取代執行SYNC操作,記憶體複製器 利用313監視/記錄已接收的Null回應。一旦接收相對數純 CL寫入操作的Null回應,各位元設定為…。根據顯示的 具體實施例’具有位元卜2及4的目的地記憶體位址的純π 寫入操作完成’將Π」放在暫存器313的相對位元位置作 為證明。 曰ir收^ ,儿yu从;^'笪·文令 μ元設u⑴(或未設定)以成結構性完成狀態的 疋。另外的例子關係保留在暫存器的各位元中的〇 r i η旦僅 體實施财,在純寫人的所有回應⑽吨後記憶體 ^傳Μ歧態的處理器。如果所有位元值為1,確認 完成狀態及由記憶體複製器傳送-指示至申請處 斋。然後,全部暫存器313重設為〇。 在本具體實施 回應的純寫入,其 佈的最大寫入數 例中’利用⑽元暫存器追蹤已接收Null 中N為設計參數大収以涵蓋複製操作發 不過,某些情況下,處理器只知道是否 89729.doc -26- 1257552 斗寸疋快取線為結構性完成。在這種情況下,只有具有這種 快取線的特定暫存器位置為讀取或檢查,及一旦這些特定 快取線為結構性完成,記憶體複製器傳訊該處理器以繼續 操作。 G·經目的地id標籤的記憶體至記憶體直接移動 讀取申請 現在回到圖4B,參考圖5D流程圖,所示為發佈讀取操作 績接純寫入操作的步驟。本方法從步驟57丨開始及記憶體複 製态監視對純CLWR的NULL回應如步驟573所示。步驟575 决疋疋否接收NULL回應。記憶體複製器重試所有未接收 Null回應的純CL…以直到各純CL WR接收一 NuU回應。如步 ^ 577所不,如果記憶體複製器接收一 Null回應,立刻在鏈 、'σ上t佈相對(位址)CL讀取操作至起源地記憶體位置,其 中田月ίΐ駐滘數據區段移動。例如,收到純cl wr(b〇)的 回應造成clrD(Aq)放置在鏈結上及其餘如圖4β所示。起源 也屺L、體位置的圯憶體控制器檢查起源地記憶體内特定位 址的有效率至由CL讀取操作申請的起源地數據(即是,是否 位址位置或數據未被其他處理利用)。檢查結果為㈣回應 (或 Retry)。 /、體A %例中,如果複製的數據源對Cl 操作無 ^,CI;、RD操作排隊等候直到該來源變為有效。因此,^ :不過對於提供重試而非排隊等候RD操作 的具體實施例,傳訊該記情
U ®復製态以重試指定的CL RD 操作。 89729.doc -27- 1257552 鏈結上的目的地ID標籤 如圖4 B所示,由目的地記憶體的記憶體控制器發佈的目 的地ID標籤隨Null回應至純CL WR。然後將產生的目的地 ID標籤貼在或插入CL RD操作内(而非或額外處理器的 ID)。根據本具體實施例,使用各CLRD申請將目的地⑴標 籤放在鏈結上。目的地ID標籤為路由標籤提供CL rd申請 以識別退回讀取操作中請數據的位置。較特別地係,目的 地ID標籤識別記憶體緩衝器(分配純CL WR操作)以接收由 相關CL RD操作移動的數據。 圖7A顯示讀取及寫入位址操作7〇5隨鏈結上傳送的目的 地ID標籤701(包括記憶體複製器標籤7〇3)。使用二分別在 鏈結上重疊的多複製操作。如圖7A所示,位址操作7〇5包括 32位元起源地(SRC)或目的地(DST)頁層位址及額外a保留 位元,其中包括由記憶體複製器211的控制邏輯3〇3使用的$ 位元以提供頁層定址。 關係位址操作705的目的地lD標籤7〇1包括發佈操作的記 fe體複製器的ID,操作的種類(即是,WR、RD、符記(src) 或符記(DST))、計數值(CNT),及目的地單元的⑴則專送操 作的回應/數據。如所示,寫入操作使用㈣的記憶體複製 器位址最初送出如圖7A的WR標籤所示。在RD操作中以實 際目的地記憶體位址更換SRC位置如圖7人的]1〇標籤。Λ 起源地至目的地直接移動 為了完成記憶體至記憶體的直接移動,而非經中請處理 器(或記憶體複製器)路由’記憶體複製器用目的地記憶體位 89729.doc -28- 1257552 置(B)的真實記憶體位址(即是,目的地ID)更換cl RD操作 的^籤的貫體處理為ID。因而能直接傳送數據至記憶體位 置B(不必經記憶體複製器路由)如下述。 在目前系統中,發佈讀取申請的處理器或處理器晶片的 ID包括在讀取申請内或作為一標籤至讀取申請以識別退回 數據的組件。即是,ID參考讀取操作的起源地及數據移動 的非最後目的地。 記憶體控制器自動路由數據至目的地標籤内的位置。如 此,利用目前系統,傳送數據至處理器。不過,根據本具 體實施例,因為路由位址為最後目的地(記憶體),起源地記 fe體控制器需要路由數據直接至目的地記憶體。數據從起 源地記憶體經開關直接轉移至目的地記憶體。數據不經過 處理器或記憶體複製器傳送,從處理器拆除數據路由操 作。注意,在本具體實施例中,如果數據在相同實體記憶 體區塊内移動,不必將數據送出至外部開關鏈結便可完成 數據複製。 數據複製操作完成追蹤
追蹤根據何時所有讀取位址操作接收Nuu回 ,在-具體實施例中,&了記憶體複製器知道何時完成複 製操作’提供_軟體致動複製完成暫存器以追縱那個快取 線(或多少數據部份)完成複製操作。因為發佈位址的時間及 記憶體複 應的實際 4間之間的時間不定,利用負 σ十數在記憶體位置Β〇··.Βη接收 在—具體實施例中,記憧體適 89729.doc -29- 1257552 移動完成表示所有數據在鏈 置。 移動至目的地記憶體位 在使用敕體暫存器的另外且 ^ ^ ^ . /、體只知例中,暫存界包括相 寺的位兀數作為CNT值。夂 节仔m已括相 m ^ η ^ 口 相對移動數據頁的一特定 4又(或CL粒)。複製完成暫存 份如糾- ύ心體稷製态的組件部 伤如圖3所不,及利用複製完 進度直到所有複f m 17追蹤複製操作的 置。 W作的數據已經複製至目的地記憶體位 H.相關性協定及操作 完成數據複製操作時的一項 ^ ^ ^ 、 、考慮為數據必須來自 包3數據的大部份相關拷貝的記憶體位置或快取。如此, =:明的數據直接來自記憶體,本發明的實際應用容 絲據來自任何快取/記憶體子系統的相關位置。一種記憶 體子系統的可能配置如圖6B所示。 開關603如圖示連結系統_的各組件,包括處理器611、 613及記憶體子㈣的各組件。如本文所示,記憶體子系統 表示分散式主記憶體605、6〇7,處理器(Li)快取mm, 低層(L2-LN)快取6 i 9、62 i,也稱中間快取,及任何類似源。 其中任何-記憶體組件包含數據移料數據的大部份相關 拷貝。,主思,如圖2所示及上述,記憶體控制器6〇8包括記 憶體快取213(也稱為緩衝器)其中複製數據已移動。因為傳 达至纪憶體的數據首先儲存在記憶體快取2丨3内及然後移 動至實際實體記憶體607,一般記憶體快取213包括目的地 位址的數據(即是Μ狀態的數據)的大部份相關拷貝。 89729.doc -30- 1257552 在某些新系統中,數據為經外部(鏈結)匯流排663連接的 不同糸統所共有。如本文所示,外部記憶體子糸統6 6 1包括 一和記憶體位址C相關聯的記憶體位置。在此儲存位置内的 數據代表數據複製操作的起源地數據的大部份相關拷貝。 連接外部記憶體子系統661可經區域網路(LAN)或廣域網路 (WAN) ° 可以使用傳統關係相關數據來源的相關性協定(如,修改 (M) ’唯一(E),共有(S),無效(I)或MESI協定),不過,本 文使用相關性協定擴大傳統協定以容許記憶體複製器獲得 快取線的所有權及完成純CL WR操作。 低層快取各具有一個自快取控制器62〇、622。如果數據 直接來自分散式主記憶體605、607以外的位置,如,低層 快取619,該快取相關的控制器(快取控制器62〇)以記憶體控 制器606、608相同的方式控制來自快取619的數據轉移。 記憶體快取控制器回應純寫入操作 由於記憶體子系統除記憶體外包括上及下層快取,起源 地及目的地位址的相關數據為各快取共有及任一位址可存 在任-快取内而非記憶體。即是,記憶體子l统的操作如 。使用起源地位址,數據必 置。不過,使用目的地位址, 定,如以下所述。 一個完全相依的記憶體子系統 須來自大部份的相關記憶體位 相關性操作不符合標準MESI協 作 傳 如果目的地記憶體位置的記憶體控制器接收純寫入 ,記憶體控制器回應各純g A p … 口馮馬入為二個主偵查回應之一 送各純寫入的回應至記情辦遂刹口口 禝製态。該三個主偵查回 89729.doc -31 - 1257552 包括; 1 ·重試(Retry)回應,表示記憶體快取具有μ狀態的數據但 不能變為I狀態及/或記憶體控制器目前不能接受WR申請/ 分配緩衝器予WR申請; 2.無效(Null)回應,表示記憶體控制器可接受wr申請及 所有相對快取線的相關性狀態立刻成為I狀態;及 3·確認再送(Ack—Resend)回應,表示記憶體快取内cl的 相關性狀態已從Μ轉變為I狀態但記憶體控制器仍不能接 受WR申請(即是,記憶體控制器仍不能分配緩衝器用於接 收移動數據)。_ 最後的回應(Ack—Resend)為合併回應造成記憶體複製器 開始保護CL數據(即是,傳送重試至其他組件申請存取快取 線)。修改數據為快取線遺失因為快取線放在I狀態,如下 述。冗憶體控制器後來分配記憶體快取線内保留的位址緩 衝器直到適當讀取操作完成。 快取線無效及線之記憶體複製器保護 根據本具體實施例,純寫入操作使完全相依記憶體子系 統的所有相對快取線無效。特別地係,任何時候記憶體複 製器發佈純WR至記憶體快取的修改快取線(即是,快取線 為MESI的Μ狀態或其他相似相關性協定),記憶體控制器更 新快取線的相關性狀態至無效⑴狀態回應偵查純寫入。 同樣,純WR也不會造成記憶體快取線的「重試/推動」 操作。如此,不像標準相關性操作,如果記憶體快取接收 一純寫入操作,修改數據並不將記憶體快取推出至記憶 89729.doc -32- 1257552 體。純寫入立刻造成目前修改數據無效。在實際移動操作 後,複製數據的新快取線分配一 “相關性狀態及然後用來 寻找數據回應根據標準相關性操作相對位址空間的數據的 後續申請。 如果快取線無效’記憶體複製器啟動快取線保護及擔任 修改偵查器的角色。即是如果快取線為M狀態,記憶體複 製器負責完成所有快取線的相關性保護。例如,如圖5八步 驟511所示,如果在複製操作實際完成前其他步驟需要數據 (如’偵查讀取儲存在A〇的數據),記憶體控制器重試或延 遲傳送數據直到數據的實際移動確實完成。如此,來自其 他組件的快取線的偵查申請重試直到數據已經複製及快取 線狀態變回Μ。 圖8Β顯示一根據本發明的具體實施例完成記憶體複製操 作的相關性操作的方法。本方法從步驟85丨開始,然後,如 步驟853所示,記憶體複製器發佈一純CL WR。在本方法 中’所有偵查器偵查純CL WR,如步驟855所示。具有最高 相關性狀態的偵查器(本例為記憶體快取)改變快取線狀態 從修改(Μ)至無效,如步驟857所示。 注意,不像傳統相關性協定操作,偵查器在數據無效之 Θ不推動數據至5己丨思體。相關記憶體控制器傳訊記憶體複 製器為記憶體複製器需要提供保護予快取線。因此,如果 記憶體複製器獲得保護快取線任務,快取線立刻掛上I狀態 標籤。由於快取線為j狀態,記憶體複製器因而承擔保護快 取線免於偵查等的全部責任。 89729.doc 1257552 回到圖8B,然後在步驟859作決定(由目的地記憶體控 制器)是否快取線的緩衝器有效。如果緩衝器無效則發佈 Retry偵查回應,如步驟86丨所示。然後,記憶體複製器再 傳送純CLWR,如步驟863所示。不過,如果緩衝器有效, 圮憶體控制器分配緩衝器至偵查的純CL WR ,如步驟865 所示。 然後,數據複製操作開始如步驟867所示。如果數據複製 操作完成如步驟869所示,快取線的相關性狀態保留變為M 的複製數據如步驟871所示。然後本方法結束如步驟873所 不。在一配置中_,目的地記憶體控制器(MC)不具有純Cl WR 有效的位址緩衝器及發佈一 Ack—Resend回應以造成後來再 傳送純CL WR直到MC能接受純CL WR及分配相對應的緩 衝器。 避免活鎖 提供一種避免活鎖的新方法。本方法關係修改快.取線無 效’其間純WR移動以避免活鎖。 圖8 A顯示根據本發明完成純寫入及以後數據實際移動時 處理爭鎖的步驟。本方法從步驟82 1開始及然後至步驟 823 ’表示處理器pi申請一快取線移動從位置a至b。以及/ 或由P1起動的方法在純WR及來自起源地的數據實際移動 之前獲得鎖住記憶體位置。處理器P2然後申請存取目的地 或起源地位址的快取線如步驟825所示。 在步驟827決定(由目的地記憶體控制器)是否實際移動 已經完成(即是,P1可鬆開鎖)。如果實際移動已經完成, 89729.doc -34- 1257552 P2存取記憶體位置及獲得鎖如步驟83丨所示,然後本方法結 束如步驟833所示。不過,如果移動仍在進行,根據本具體 實施例的配置提供兩路徑之一。在第一具體實施例中,如 步驟829所示’ Retry回應退㈣申請直到以鬆開快取線的 鎖0 在另外具體實施例中,數據在位置A如果實際移動尚未開 始便申請讀取位置A的數據。這樣便能使用多方法尋找來自 相同起源地位置的數據而非發佈Retry回應。注意,不過, 雖然數據移動,中請存取目的地位址必須重試直到數據移 動完成。 I.同時多數據移動及標籤識別項 多記憶體複製器及重疊複製操作 完成純寫入及分配標籤予CL RDt請方法的一重要優點 為可以在系統上經由大量記憶體複製器完成多複製操作。 本發明因而容許多獨立記憶體複製器,各自執行數據複製 操作並與鏈結上另外記憶體複製器的另外數據複製操作重 疊:注意,不申請鎖的記憶體複製器的操作能使多記憶體 複製器發佈同時複製操作。 在本具體實施例中,每晶片只有一單記憶體複製器,社 果每晶片-次只完成-複製操作。在另外具體實施例中多 處理器晶片共有—單記憶體複製$,該記憶體複製器包括 用於決定在已定時間中那-個處理器獲得存取之仲裁邏 輯。仲裁邏輯可用腦仔列取代,能按照處理器接收次序 保留完成的多記憶體移動操作。另外具體實施例提供每處 89729.doc -35 - 1257552 2态晶片記憶體複製器的增加粒度及使每晶片能作多記憶 體複製操作,其中各複製操作由另外記憶體複製器控制。 μ本發明容許多記憶體複製器同時操作。記憶體複製器經 符記操作相互通信,及各記憶體複製器通知其複製操作的 起源地及目的地位址的其他記憶體複製器。如果第一記憶 肢硬製器的目的地位址與已經執行數據複製操作的第二記 ^體複製器的起源地位址㈣,第—記憶體複製器延遲複 製操作直到第二記憶體複製器完成其實際數據移動。 經由目的地ID及額外標藏識別多複製操作 除了能直接起源地對目的地複製操作外,如果來自多複 製操作的數據重疊或同時完成,也利用目的地⑴標籤專門 識別鏈結上數據期限。因為只有來自單複製操作的數據一 次送至任何目的地記憶體位址,各目的地m必須一致。 在另外具體實施例中,一額外位元組附加在圖7A的數據 標籤7(H的數據路由區段。這些位元(或複製出標籤阳專 門識別來自特定複製操作及/或識別複製操作有關的替 體複製器。因此’實際的額外位元數係根據系統設計師設 汁的配置而定。例如,最簡單配置只具有兩記憶體複製哭, 利用-單位元辨別第-複製操作的數據(屬於第一記憶體 複製器)及第二複製操作的數據(屬於第二記憶體複紫;)。 如所述,如果只利用少數位元識別不同數據路:操:, 如果各標籤一致,便發生複製ID標籤7cn騄处 操作數。 叫格限制同時複製 目的地ID及複製ID標籤合併 89729.doc -36- 1257552 另外專門識別不同複製操作/數據的方法為利用目的地 ID及複製ID標籤合併。使用這種配置,因為特定複製摔作 的目的地⑴不能與另外等候複製操作的目的地叫目同(由 於相關性及爭鎖問題’以下說明),複製ID標籤的尺寸較小。 如圖7A所示,標籤結合(鏈結、附加、或其他)各數據複 製刼作。因而,如果第-數據複製操作關係-頁數據的12 個別快取線的移動’ 12個數據複製操作的各操作具有相同 標籤。第二同時複製操作關係戰據區段的移動,例如, 各數據移動操作具有一第-許鑛约结 有弟一钻戴與弟—複製操作的標籤 不同,餘類推 可再使用的標鐵識別項 由記憶體複製器使用的各快取線位址由位址 位元的第m決定。因為有_留位元,較小或較2 址數都有可能。在—具體實施例中,利用其他保留位元提 供標籤。如此,雖然本發明說明參考料複製標籤識別項, 所述的特徵由位址場的低階保留位元提供較為容易,而高 階位元分配予目的地ID。 在一具體實施例中,為了促進大量的記憶體複製操作 (如’大型多處理器系統),一旦先前數據不再在鏈結上路由 便再使用複製ID標籤703。纟-具體實施例中,標鐵再使 用由形成一標籤大到包括數據移動所能發生的最大間隔而 完成。 在-具體實施例中’選擇料標籤作為可再使用的位元 順序,及需要最小量的位元以避免標籤使用及再使用期間 89729.doc -37- 1257552 任何標籤碰撞(即決定作為一設計參數)。該決定涉及考慮 處理器數量,可能的重置複製操作數,及完成複製操作的 時間長度。依順序分配標籤,及如果分配最後標籤,則第 一標籤必須自由分配其次發佈的複製操作。如此,在系統 層完成標籤退休及再使用,致使一旦第一發佈標鐵退休今 標籤號數便可重新使用(即是,相關數據複製操作完成)。 另外具體實施例提供一複製ID標籤包括涵蓋最大可能的 同時複製操作數量所需要的位元數,每個複製操作或記情 體複製恭分配一專用號碼。不論那一個具體實施例,都不 發生複製ID標籤重疊。 幾個可能方法確保標籤集中,包括何時使用再使用標 籤。在一具體實施例中,需要確認以確保標籤集中及再使 用。一旦數據複製操作完成由記憶體複製器從目的地記情 體控制器接收集中確認。 重试標藏型碰撞 …很爆不具: 實施例,標籤為可再使用及必須為不一致。如此,如果」 績複製操作分配該標籤號碼,具有標籤Γ 〇〇丨」的第一複 操作仍繼續完成。如果發生,具有第一複製操作的第一 $體複製器偵查(或接收一信號關於)至後續複製操作的; 籤刀配。然後第一記憶體複製器立刻發佈標籤型重試至 有後續複製操作的第二記憶體複製器的純寫入操作。後 複製操作由下一記憶體複製器延遲直到第一複製操作完 (即是,數據已經移動)。 89729.doc -38 - 1257552 •、、、°構位元及儲存複製操作 =部份目前處理器❹外部中斷操作以保留在鏈結上執 —7彳口p中斷特徵由硬體位元提供,由操作系統(OS) :疋0s:又疋處理器操作狀態具有稱職或不稱職的中斷位 士果㈣,在執行指令流期間任何時間能發生中斷及 如果發生令斷處理器或應用程式都不能控制。 2部鏈結上移動操作期間缺乏對外部中斷的控制為一 慮。特別地係’移動操作涉及處理器發佈一序列指令 移2列指令)。為了在序列指令執行期間不發生中斷 二之::,.處理器必須首先在發佈執行移動操作的序 鎖住。意謂-次只有-處理器可執行 呆作因為該鎖只能給予一個申請處理器。 根據本發明的一具體實施 職的外部中斷(咖立- 徵此修改稱職及不稱 ^ ) π以容許中斷位元由軟體在處理哭執 仃變為稱職或不稱職。 牡处里的執 斷(Ε Ε)位元的特定指令編:以=程式使用能激發外部中 中斷的指令序列。 》布特定指令序列不含根據 不稱職ΕΕ位元避免虛甲 部鏈結上鎖住。結果免,叫 由於庫用_ 夕处理益能同時發佈個別指令序列。 田於應用於數據複製操作 多處理器同時執行複M f ^夕处理益系統中的 各處理器開始數據複製==具有鎖。進一步能使 操作。另外,★ 7日讀處理器需要完成數據複製 如下述’發佈 複製器發佈-管線式的指令^要中辦的指令容許記憶體 89729.doc -39, 1257552 在本具體實施例中,利用結構EE(外部中斷)位元動態切 換處理為的操作狀態以包括中斷或不包括中斷。構成複製 操作的指令序列係在鏈結上執行而指令之間不中斷。應用 私式内的程式碼動態觸發EE位元使外部中斷停用及致動。 特定指令序列的應用軟體超越〇s選擇的中斷狀態。根據本 -、體κ軛例,由處理器上的應用程式操作設定EE位元為工 或〇,其中各值相對一特定中斷狀態根據處理器設計及關係 EE位元的軟體編碼值而定。 本發明因此提供一軟體程式模式,如果外部中斷停用便 致動多重指令之發佈。根據本具體實施例,同時完成行動 操作或複製操作的指令序列之前為—解除假設圈立元的指 令,如以下編碼順序例子所示:
EE bit = 〇 ST A ST B ST CNT
EE bit = 1 SYNC 在上述具體貫施例中,如要P _ T ★果凡具有θ值,則外部中斷 關閉。指令管線從處理哭复兮彳咅 代处理叩主圯體後製器。然後,ee位元 值變為1 ’表示處理器狀態回到中斷有效狀態容許外部中 斷。然後,在鏈結上發佈SYNC操作。 儲存複製操作 在一具體實施例中 5己憶體複製器(或處理器)確認上述 89729.doc -40- 1257552 指令序列代表複製操作及自動_ 户汉目動3又疋EE位兀以防止外部中斷 避免中斷指令序列。在另外呈, 牡力外具體實施例中,上述指令由圮 憶體複製器接收作為組合原子 ° 口项于储存刼作。組合操作稱為儲 存(ST)複製及以單儲存葙制 平谛孖禝衣刼作代替上述三分離儲存摔 及一 SYNC操作。 儲存才旻製為多位元έ且彳諸左^品从 刻4存#作,造成記憶體複製器啟動 複衣操作。设定ΕΕ位元栋# ,卜立贼、—杂丨 位兀使圯恍體禝製器能取代上述儲存指 令序列及後續為具有儲存複製操作之sync。 如此,4個別麵作(即是,3儲存後接1 sync#⑽單儲存 複製操作取代。同樣’根據本發明之實施,SYNC操作為虛 擬’因為-旦記憶體複製⑸貞查到結構性完成狀態,處理 器便收到數據複製操作完成的信號。結構性完成狀態造成 處理器如同發佈SYNC在記憶體複製操作後接收-ACK回 K.經保留位元的虛擬/真實定址操作模式 —本發明使應用程式型處理單元具有動態選擇虛擬或真實 定址能力。由軟體應用程式(即是非os)設定影響記憶體數 據位置的各指令内(如,ST指令)的保留位元以選擇處理器 的操作模式如虛擬定址或真實定址模式。圖9A顯示使用保 留位元901的定址操作_。保留位元9〇ι能由處理器上軟體 應用程式操作動態設定。處理器操作模式根據處理器上操 作軟體應用程式編碼能從虛擬變為真實,反之亦然。 保留位元90 1表示是否要真實或虛擬定址,及由處理器上 的應用程式分配保留位元值(⑽)。預設值「Q」用來表示 89729.doc -41 - 1257552 虛擬定址,及當需要真實定址模式時,該軟體可動能改線 該值為厂1」。處理器讀取保留位元值以決定該特定L止摔 作需要哪種操作模式。 真實或虛擬定址模式的選擇可由處理器執行料應用方 法決定。如果應用方法需要尋找擗 +找曰加性能而非數據保護, 遠擇虛擬操作模式,容許該應用方法 〇s及㈣。 U接傳料效位址至 顯示標準軟體環境的軟體層圖及相關的位址操作之 預a又操作模式。如圖示,軟體應 狂八9 U以虛擬定址模式 才呆作’而0S9U及動體915則以真實定址模式操作。選㈣ 供增加性能的模式由設定保留位元為虛擬定址模式的預設 值而達成。同樣,如果數據需要保護,保留位元設定為虛 擬定址模式值,則傳送虛擬數據位址至記憶體複製器如亚 然後IXB 319提供相對真實位址。本 +知乃因而使軟體達成性 能與數據保護平衡。 虛擬位址模式的處理器操作由記憶體複製器叫的虛擬 料貫位址轉換㈣緩衝器(TLB)支援。當記憶體複製器操 作從處理n接收虛擬位料,制TLB轉移㈣從虛擬至 真實(或一實體位址)。然後,在發佈離開鏈結之前虛擬位址轉 私至真貝位址。根據os透視圖’虛擬定址模式致動使用者 層具有優點’而真實定址模式不能。如此,虛擬定址模式 致動使用者層應用程式及叫取數據。同樣,虛擬定址模 =谷料作系統(os)及使用者層應用程式存取記憶體複製 。.真“立址刼作模式具有較快性能,因為一旦處理器發 89729.doc -42- 1257552 佈才曰令便不需要位址轉移。 L.另外特徵、概說、及優點 數據移動操作目標的數據來自實際記憶體、處理器快 取低層决取、中間快取等之中最相關的記憶體位i1 此’起源地位址也表示包括中請數據相關拷貝的記憶體子 系統内的正確記憶體模組。 本毛月月匕使夕複製操作在鏈結上重疊(或同時完成)。為 了監視及專Η辨別各分離複製操作的完成,提供_附在讀 取刼作位址標籤傳送至起源地位址的的標籤。該標籤儲存 暫存H中’其中各複製操作具有不同值放在暫存 益内’及Μ為選擇的設計參數以支援系統上可能同時複製 操作的最大操作數。 t 如上述,一旦純WR處理完成,移動便算結構性完成。實 施結構性完成狀態及其他相關特徵相當快速地從數據移動 祐作放開處理态。所有實體數據移動,即是記憶體移動涉 及的部份實際等候與背景有關。處理器能繼續較快處理 SYNC後的心令因為產生結構性完成的純寫人方法中並沒 有數據傳輸階段。 注意,如果相同記憶體模組上位址之間數據移動,時間 的利益更為顯著,因為數據不在外部開關鏈結上傳輸。此 「内部」記憶體移動有利於連接記憶體模組的各子組件 (士 &制為專)的圮憶體晶片上的上金屬層。該種記憶體模 、、且的配置如圖6C所示。如此,在各模組之間的互連的開關 配置中,引導内部數據複製也可能經由記憶體模組605的上 89729.doc -43 - 1257552 金屬層65 1。 本發明提供許多可辨別的優點,包括:(丨)移動數據不會 像傳統處理器啟動移動一樣捲動快取(L2、L3等);及(2)由 於結構性完成處理器狀態,執行軟體應用也非常快速地完 成。例如,在先前技術中,完成128B CL移動(LD/ST)如下: LD/ST:1 CLRDx (位址及數據),32CLRDy (位址及數據), 32 CL WRy (位址及數據)。這種操作較有效為3位址操作及 3 84位兀組數據轉換。不過,根據本發明相同方法使用丄純 CL WRy (只有位址)及! CL RDx (只有位址)匯流排轉換。 如此’達成一重要性能增益。 從處理觀點而言,本發明具有許多目前已有的開關型分 散式記憶體配置的多處理器系統的特徵/操作以提供更大 的數據移動效率。例如,傳統“以控制實際數據傳送及接 收從記憶體(快取線)至/自處理器。MCs具有位址及起源地 ID及利用该兩筝數傳送申請數據。和快取線讀取相關的位 址標籤中利用目的地ID取代起源地ID,本發明能引導MC對 MC數據移動傳輸(即是傳送及接收)而不需要改變傳統 邏輯及/或功能性。 竭關也使多5己憶體複製操作同時發生,進一步造成記憶 體排隊/緩衝器的有效利用。使用直接開關連接,數據移動 ,勺守間關係§己‘丨思體複製操作量而與距離或數量無關。 本I明利用硬體虛擬化改善目前具有加速引擎處理器的 體土私動彳呆作及包括許多軟體控制特徵。即是,改善硬 to杈式的性能優點實際上並沒有利用傳統上分配用來完成 89729.doc -44 - 1257552 移動操作的硬體組件。 另外的例子涉及利用開關達成鏈結上較快數據移動因 為快取線移動不再需要經過單—點(即是,單處理器晶片的 ' 傳統上接枚及然後傳送斧有移動數據)同 樣因為實際移動不需要傳輸至單收集點'利用開關使多 重快取線平行移動,結果能存取較大頻寬 所有實際移動。先前系統只能一次完成一單移動更丨、兀 本發明進-步移動數個位元組、快取線及頁面。雖铁未 提供移動實際發生的實際時間,本資訊可由記憶體複製器 追蹤亚維持處理系統的相關性。處理器資源可自由用來完 成額外任務而不必等候直到數據從—記憶體位置移動至另 外記憶體位置’較特別地係’因為該移動不影響任何豆他 處理的完成而同時實際移動已完成。 /、 雖考4^具體實施例6完成本發明的說明,但本發 :並不受本說明所限制。熟悉技術者參考本發明之說明後 …明白所揭示的具體實施例可作各種修改及本發明 他不同具體實_。因此,可以執行此類變更而不/ 附申請專利範圍中所主$ — 欠脫離隨 張之彳示的的精神或範®壽。 【圖式簡單說明】 隨附的申請專利範圍& # I 士 •藉由參考下===新穎功能及特徵。 明…會更容易明白本笋 口的。平細况 〜步目的及優點5其^及使用本發明的較佳模式的進 圖1為喊讀據先前技術制硬體5丨擎移動數據的多虎 1257552 理器數據處理系統之方塊圖; 圖2為顯示根據本發明一具體實施例在具有記憶體複製 态的處理系統内記憶體對記憶體的複製操作之方塊圖; 圖3為顯示根據本發明一具體實施例之圖2記憶體複製器 的組件之方塊圖; 圖4A為顯示根據本發明一具體實施例記憶體複製操作用 於儲存起源地及目的地位址的主記憶體内的記憶體位址X 及Y之方塊圖; 圖4Β為根據本發明一具體實施例在圖2數據處理系統的 開關鏈結上記憶體位_算元及標冑包括純寫入呈 圖; 圖从為顯示根據本發明_例示性具體實施例操作的數據 處理系統内一般複製數據處理步驟之流程圖; 圖5Β為顯不根據本發明_配置的數據複製操作期間發佈 純寫入處理步驟之流程圖; 、圖5C為顯不根據本發明_具體實施例從開始至結構性完 成的處理步驟之流程圖; 圖5 D為顯示根據木於明、 尿不&明一具體實施例藉由發佈讀取操作 移動數據的實際發佈讀取操作的處理步驟之流程圖; “圖6 A為根據本發明配置期間的—種相關搜尋/儲存數據
才吴式’其頒不具有主彳咅i., J-J °己k體、數層快取及外部系統記憶體 的分散式記憶體子系統; 圖6B顯不具有上層金屬的記憶體模組,該模組促進直接 在同-記憶體模組内從起源地複製數據至目的地而不必利 89729.doc -46 - 1257552 用外部開闕; ,A,顯不根據本發明一具體實施例使用一位址標籤弓| 、5 了數據複製操作至正確目的地記憶體之方塊圖; 圖7B為顯千士 用暫、W、乂虞本發明一具體實施例由記憶體複製器利 椒何時純寫入完成並產生結構性完成狀態之方 视圖; 7 絲:顯不根據本發明一具體實施例操作的數據處理系 、、、内鎖競爭的處理步驟之流程圖; ’、 間=B:::根據本發明一具體實施例的數據複製操作期 ”、數據相關性的處理步驟之流程圖; 圖9A顯示根據本發明—具體實施例使用具有由軟 =加模式位元的指令表示在真實或虛擬定址模式中處理 杰疋否執行該指令;及 圖B》、、員示根據本發明一具體實施例的應用程式碼〇s及 數據處理系統内的_層及由各層支援相關型式的位 作。 木 數據處理系統 處理器晶片 開關 輸入/輸出組件 記憶體 記憶體控制器 【圖式代表符號說明】 !〇〇 , 200 , 600 101 , 201 1〇3 , 203 , 603 104 1〇5 , 107 , 205 , 207,405,605,607 106 , 1〇8 , 206 , 89729.doc -47- 1257552 208, 406 109, 209,407, 位址A 609, 610A,610B 1 10, 210,409, 610C 位址B 111 引擎 211, 212 記憶體複製器 213 記憶體快取 303 控制邏輯 305 起源地位址暫存器 307 目的地位址暫存器 309 計數暫存器 313 結構性完成暫存器 315 模式位元 317 複製完成暫存器 319 轉換旁視缓衝器 321 虛擬位址緩衝器 323 真實位址緩衝器 606, 608 , 662 記憶體控制器 611, 613 處理器 615, 617 處理器快取 619, 621 低層快取 620, 622 快取控制器 651 上層金屬 661 額外記憶體子系統 89729.doc - 48 - 1257552 663 外部匯流排 701 數據標籤 703 記憶體控制器標籤 705 位址標籤 900 定址操作 901 保留位元 911 軟體應用程式 913 操作系統 915 韌體 89729.doc - 49 -

Claims (1)

1257552 拾、申請專利範圍: 1. 一種多晶片、多處理器數據處理系統,包括: 至少兩處理器晶片,其包括具有相關第一處理器及第 一記憶體複製器之一第一晶片及具有相關第二處理器及 第二記憶體複製器之一第二晶片; 一記憶體經一開關鏈結耦合該第一處理器晶片及該第 二處理器晶片; 用於由第一記憶體複製器經該鏈結路由第一組數據之 構件; 用於由第;記憶體複製器經該鏈結同時路由第二組數 據之構件;及 其中第一移動只識別該第一組數據及第二移動只識別 該第二組資料,致使該等第一及第二移動在鏈結上重疊 及路由至正確的個自目的地。 2. 如甲請專利範圍第1項 _w丨卬路甶 :構件及用於同時路由的該構件進一步包括用於標示 等第一及第二組數據内的各數據區塊之構件,其2用 自專用識別項表示啟動特定移動的記憶體複製器及路 该數據區塊到達的目的地。 ::=Γ圍第2項之數據處理系統,其中該專⑽ ,在數據寫入操作的額外位元數,其中利用該額 立兀以追蹤複製操作的序號、 次有效的序號。 /、中刀配各设製操作一. 4. 如申凊專利範圍第3項 之數據處理系統 其中: 89729.doc 1257552 該位元數為選擇的設計參數,致使第—序號複製操作 在一記憶體複製器產生新複製操作之前完成,但新複製 操作的序號比經由該位元數追蹤的序號更大·及 其中分配該新複製操作為已經完成的第一複製操作的 序號。 5.如申請專利範圍第2項之數據處理系統,其中用於標示的 該構件包括由具有該數據之目的地識別項⑽識別該數 據區塊,該識別出對應至一由該數據區塊路由的記憶體 缓衝器之目的地位址,其中沒有兩同時啟動的複製操作 具有相同的目_的地ID。 6·如申請專利範圍第3項之數據處理系統,其中: 該位TL數使分配給第一數據複製操作的號碼能再使用 ;及 該數據處理系統進一步包括: 用於分配第-標籤號碼給該第一數據複製操作之構件; 用於偵查何時分配第二數據複製操作一相同的標鐵號 瑪之構件,其間苐一數據複製操作仍在完成;及 用於重試該第二數據複製操作直到該第—數據複製操 作完成之構件,其中該第二數據複製操作只在該第一數據 複製操作完成後進行’及其中進一步沒有兩同時執行數 據複ϋ呆作能共用一標籤號碼。 7·〆種數據處理系統内的方法,其用於能同時重疊關係於 分離記憶體複製器的分離數據複製操作的數據移動,該 方法包括: 89729.doc 1257552 發佈來自弟一記憶體複製器的一第一修改讀取操作至 移動至第一目的地的數據的起源地位址,其中該修改讀 取操作包括取代發佈該修改讀取的處理器路由位址的第 一目的地的位址; 標示來自具有該第一目的地之位址的該起源地位址的 第一組數據以識別路由至該第一目的地的該第一組數據; 路由該第一組數據從該起源地位址經數據處理系統的 一開關鏈結至第一目的地; 發佈來自第二記憶體複製器的一第二修改讀取操作至 移動至第二目_的地之數據的起源地位址; 標不來自具有該第二目的地之位址的該起源地位址的 第一組榻取數據以識別路由至該第二目的地的該第二組 數據’其中该第一目的地之該位址與該第二目的地之位 址不同致使第一及第二組數據係專用標示;及 路由该第二組數據經該鏈結至該第二目的地其間該第 一組數據仍在路由。 8. 9. 10. 如申明專利範圍第7項之方法,其中該標示步驟包括放置 一個自目的地位址於個自數據組的路由位址區塊内。 如申明專利範圍第7項之方法,#中該標示步驟包括用個 自專用識別項標示第一及第二組數據内的各數據區塊, 表不那個5己憶體複製器啟動特定讀取操作及該數據區塊 路由至哪個目的地。 、” 如:請專利範圍第9項之方法,其中·· 3位7L數使分配給第一數據複製操作的號碼能再使用 89729.doc 1257552 ,·及 該方法進一步包括: 分配第一標籤號碼至該第一數攄 敎艨歿製操作; 綱時分配第二數據複製操作—相同標籤號碼 其間第一數據複製操作仍在完成;及 亶心亥弟二數據複製操作直到該第一數據複製操作完 ,,、其中該第二數據複製操作只在該第—數據複製操作 :成後進〃及其中進—步沒有兩個同時執行數據複製 操作能共用一標籤號碼。 u.:申請專利範圍第10項之方法,其中各該等唯一m包括 —些額外位元附加在數據寫人操作,其中利用該額外位 元以追蹤該複製操作的序號,但分配各其次複製操作一 下次有效的序號。 12.如申請專利範圍第10項之方法,其中: 元數為選擇的設計參數,致使第一序號複製操作 在z 體複製器產生一新複製操作之前完成,但新複製 才木作的序號比經該位元數追蹤的序號更大;及 /、中刀配遠新複製操作已經完成的該第一序號複製操 作的序號。 、本 89729.doc
TW092133871A 2002-12-05 2003-12-02 A data processing system and a method within the data processing system for enabling concurrent, over-lapping data movement associated with separate data clone operations of separate memory cloners TWI257552B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/313,293 US7069394B2 (en) 2002-12-05 2002-12-05 Dynamic data routing mechanism for a high speed memory cloner

Publications (2)

Publication Number Publication Date
TW200424867A TW200424867A (en) 2004-11-16
TWI257552B true TWI257552B (en) 2006-07-01

Family

ID=32468204

Family Applications (1)

Application Number Title Priority Date Filing Date
TW092133871A TWI257552B (en) 2002-12-05 2003-12-02 A data processing system and a method within the data processing system for enabling concurrent, over-lapping data movement associated with separate data clone operations of separate memory cloners

Country Status (3)

Country Link
US (1) US7069394B2 (zh)
CN (1) CN1243311C (zh)
TW (1) TWI257552B (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FI20040319A0 (fi) * 2004-02-27 2004-02-27 Nokia Corp Tiedonsiirto laitteiden välillä
WO2006033945A2 (en) * 2004-09-16 2006-03-30 Mar-Rog Specialties, Inc. Spotlight mounted motion detector
US7353316B2 (en) 2006-03-24 2008-04-01 Micron Technology, Inc. System and method for re-routing signals between memory system components
US7958327B2 (en) * 2008-02-01 2011-06-07 International Business Machines Corporation Performing an asynchronous memory move (AMM) via execution of AMM store instruction within the instruction set architecture
US8327101B2 (en) * 2008-02-01 2012-12-04 International Business Machines Corporation Cache management during asynchronous memory move operations
US8356151B2 (en) * 2008-02-01 2013-01-15 International Business Machines Corporation Reporting of partially performed memory move
US8275963B2 (en) * 2008-02-01 2012-09-25 International Business Machines Corporation Asynchronous memory move across physical nodes with dual-sided communication
US8095758B2 (en) * 2008-02-01 2012-01-10 International Business Machines Corporation Fully asynchronous memory mover
US8015380B2 (en) * 2008-02-01 2011-09-06 International Business Machines Corporation Launching multiple concurrent memory moves via a fully asynchronoous memory mover
US8245004B2 (en) * 2008-02-01 2012-08-14 International Business Machines Corporation Mechanisms for communicating with an asynchronous memory mover to perform AMM operations
CN102013123B (zh) * 2010-11-22 2013-04-24 北京亚博高腾科技有限公司 防止利用外插输入设备进行操作的彩票机
US8694719B2 (en) * 2011-06-24 2014-04-08 Sandisk Technologies Inc. Controller, storage device, and method for power throttling memory operations
US8745369B2 (en) 2011-06-24 2014-06-03 SanDisk Technologies, Inc. Method and memory system for managing power based on semaphores and timers
US20130036096A1 (en) * 2011-08-01 2013-02-07 Salesforce.Com, Inc. Mechanism for facilitating dynamic cloning of data records in an on-demand services environment
US9652289B2 (en) 2012-04-27 2017-05-16 Microsoft Technology Licensing, Llc Systems and methods for S-list partitioning
US9568985B2 (en) 2012-11-23 2017-02-14 Mediatek Inc. Data processing apparatus with adaptive compression algorithm selection based on visibility of compression artifacts for data communication over camera interface and related data processing method
CN103744625B (zh) * 2014-01-14 2017-05-10 浪潮电子信息产业股份有限公司 一种虚拟化应用中拷贝磁盘数据的方法
CN114385076B (zh) * 2021-12-09 2023-08-25 苏州浪潮智能科技有限公司 一种基于共享存储的加速虚拟机磁盘克隆的方法及装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6128714A (en) * 1994-03-17 2000-10-03 Hitachi, Ltd. Method of processing a data move instruction for moving data between main storage and extended storage and data move instruction processing apparatus
US6393540B1 (en) * 1998-06-30 2002-05-21 Emc Corporation Moving a logical object from a set of source locations to a set of destination locations using a single command
US6529968B1 (en) * 1999-12-21 2003-03-04 Intel Corporation DMA controller and coherency-tracking unit for efficient data transfers between coherent and non-coherent memory spaces
US6502170B2 (en) * 2000-12-15 2002-12-31 Intel Corporation Memory-to-memory compare/exchange instructions to support non-blocking synchronization schemes
US6813522B1 (en) * 2000-12-29 2004-11-02 Emc Corporation Method of sharing memory in a multi-processor system including a cloning of code and data
US6941136B2 (en) * 2002-02-11 2005-09-06 The Chamberlain Group, Inc. Method and apparatus for memory cloning for a control device

Also Published As

Publication number Publication date
CN1504905A (zh) 2004-06-16
US20040111575A1 (en) 2004-06-10
CN1243311C (zh) 2006-02-22
US7069394B2 (en) 2006-06-27
TW200424867A (en) 2004-11-16

Similar Documents

Publication Publication Date Title
TWI257552B (en) A data processing system and a method within the data processing system for enabling concurrent, over-lapping data movement associated with separate data clone operations of separate memory cloners
US6640287B2 (en) Scalable multiprocessor system and cache coherence method incorporating invalid-to-dirty requests
CN1755635B (zh) 事务型存储器访问的混合硬件软件实现
US9274856B2 (en) Improving processor performance for instruction sequences that include barrier instructions
US6636949B2 (en) System for handling coherence protocol races in a scalable shared memory system based on chip multiprocessing
US7814281B2 (en) Method to provide atomic update primitives in an asymmetric heterogeneous multiprocessor environment
US20040148472A1 (en) Multiprocessor cache coherence system and method in which processor nodes and input/output nodes are equal participants
JPH11282821A (ja) 同時トランザクションを依存性で管理するための低占有度プロトコル
JPH11282820A (ja) スイッチをベースとするマルチプロセッサシステムに使用するための順序サポート機構
JPH03502382A (ja) 高性能マルチプロセツサ用に二重分散デレクトリをもつハードウエア内蔵のキヤツシユ一貫性維持プロトコル
US6996693B2 (en) High speed memory cloning facility via a source/destination switching mechanism
US6892283B2 (en) High speed memory cloner with extended cache coherency protocols and responses
US6622218B2 (en) Cache coherence protocol engine and method for efficient processing of interleaved memory transactions in a multiprocessor system
US6546465B1 (en) Chaining directory reads and writes to reduce DRAM bandwidth in a directory based CC-NUMA protocol
TW498210B (en) Non-uniform memory access (NUMA) data processing system that decreases latency by expediting rerun requests
US6898677B2 (en) Dynamic software accessibility to a microprocessor system with a high speed memory cloner
JP3836836B2 (ja) メモリ複製オペレーション時の不正確なキャッシュ・ライン保護機構
US7502917B2 (en) High speed memory cloning facility via a lockless multiprocessor mechanism
US6915390B2 (en) High speed memory cloning facility via a coherently done mechanism
US6986011B2 (en) High speed memory cloner within a data processing system
US6928524B2 (en) Data processing system with naked cache line write operations
US20040215899A1 (en) Method and data processing system for microprocessor communication in a cluster-based multi-processor network
JP2003167782A (ja) 二重化コントローラ構成ディスク記憶システム向けコントローラ、及び同コントローラが二重化されたディスク記憶システム
JP2001344188A (ja) ディスクアレイ装置
JP2506975B2 (ja) 情報処理装置のバッファ無効化処理方式