TWI650703B - 在記憶體內之資料的非同步複製 - Google Patents

在記憶體內之資料的非同步複製 Download PDF

Info

Publication number
TWI650703B
TWI650703B TW105133465A TW105133465A TWI650703B TW I650703 B TWI650703 B TW I650703B TW 105133465 A TW105133465 A TW 105133465A TW 105133465 A TW105133465 A TW 105133465A TW I650703 B TWI650703 B TW I650703B
Authority
TW
Taiwan
Prior art keywords
processor
copy
replication
data
asynchronous
Prior art date
Application number
TW105133465A
Other languages
English (en)
Other versions
TW201716985A (zh
Inventor
瑞瑪 克瑞許納 葛維達瑞竹
Rama Krishna Govindaraju
程立群
Liqun Cheng
帕泰莎瑞西 阮嘉納森
Parthasarathy Ranganathan
麥可 R 瑪締
Michael R. Marty
安德魯 加勒亭
Andrew Gallatin
Original Assignee
谷歌有限責任公司
Google Llc
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 谷歌有限責任公司, Google Llc filed Critical 谷歌有限責任公司
Publication of TW201716985A publication Critical patent/TW201716985A/zh
Application granted granted Critical
Publication of TWI650703B publication Critical patent/TWI650703B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1081Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass

Abstract

一種例示性方法包含:在藉由一處理器執行一軟體應用程式期間,藉由與該處理器分離之一複製處理器接收針對一非同步資料複製操作之一請求,以在可由該複製處理器存取之一記憶體內複製資料,其中自可由在管理該軟體應用程式之執行之一作業系統之一使用者空間中之該軟體應用程式存取之一複製管理器接收該請求;回應於該請求,藉由該複製處理器起始該非同步資料複製操作;繼續藉由該處理器執行該軟體應用程式;藉由該複製處理器判定該非同步資料複製操作已完成;及回應於判定該非同步複製操作已完成,藉由該複製處理器對該軟體應用程式選擇性通知該非同步複製操作已完成。

Description

在記憶體內之資料的非同步複製
本說明書係關於用於非同步執行記憶體內之複製操作之技術。
在一軟體應用程式之執行期間,一處理器可需要頻繁複製或移動記憶體內之資料。舉例而言,網路化堆疊可將記憶體內之資料自在第一位置處之一使用者緩衝器移動至在可由一網路介面存取以發送資料之一第二位置處之一網路緩衝器。軟體應用程式亦可執行記憶體內之資料自一個位置至另一位置之明確複製。當複製大量資料時,若處理器之執行在等待複製操作完成時阻斷,則可發生處理延遲。
本申請案之標的物大體上係關於電腦記憶體且具體言之,係關於用於非同步執行記憶體內之複製操作之技術。 一般言之,本說明書中描述之標的物之一個新穎態樣可在包含以下之方法中體現:在藉由一處理器執行一軟體應用程式期間,藉由與該處理器分離之一複製處理器接收針對一非同步資料複製操作之一請求,以在可由該複製處理器存取之一記憶體內複製資料,其中自可由在管理該軟體應用程式之執行之一作業系統之一使用者空間中之該軟體應用程式存取之一複製管理器接收該請求;回應於該請求,藉由該複製處理器起始該非同步資料複製操作;繼續藉由該處理器執行該軟體應用程式;及藉由該複製處理器判定該非同步資料複製操作已完成;回應於判定該非同步複製操作已完成,藉由該複製處理器對該軟體應用程式選擇性通知該非同步複製操作已完成。 此態樣之其他實施例包含經組態以執行在電腦儲存裝置上編碼之方法之動作之對應系統、設備及電腦程式。 可實施本說明書中描述之標的物之特定實施例以便實現一或多個以下優點。所描述之技術可使用虛擬(或核心位址)作為具有任意對準及可能跨頁邊界之任意長度之引數。技術可非同步完成一複製,其容許一中央處理單元(CPU)使複製操作與可由處理器完成,且在處理器從事於複製操作的情況下不可行之其他工作重疊。技術可容許複製之完成之一同步或一非同步通知。此外,控制是否應將源位址或目的地位址之內容及其等之範圍帶至快取區內。藉由容許軟體應用程式使用虛擬位址起始非同步複製操作而不涉及作業系統核心,可減小在一複製操作期間使用者空間與核心空間之間之模式切換之數目,此可導致經提高效能。另外,此等控制將容許快取區之更有效利用,從而導致經改良效能。 在隨附圖式及下文描述中闡述在本說明書中描述之標的物之一或多個實施例之細節。自描述、圖式及申請專利範圍將變得瞭解標的物之其他特徵、態樣及優點。
本發明係關於提供用於非同步記憶體複製及快取區管理之技術。 許多現代處理器以高時脈速度操作,意謂甚至處理中之輕微延遲可導致大量損失週期及降低的效能。舉例而言,能夠每秒執行100億個指令之一處理器可在花費於等待一阻斷作業完成之一奈秒中執行10個指令。在許多情況中,相較於一處理器之速度,一記憶體複製操作可係一相對緩慢操作。在複製操作期間,若處理器從事於用於複製之負載儲存操作中,則處理器無法執行其他工作。在複製大量資料之情況中,當處理器等待複製完成時可浪費潛在有用處理器週期。若此等複製操作頻繁,則可妨礙處理器之效率達若干百分比或甚至更多。 再者,在許多情況中,複製資料引起資料被帶至一快取區中。若不欲相對頻繁重用或根本不使用此資料,則將資料帶至一快取區中污染快取區內之工作集且防止其他可能更有用資料自快取區快取或收回。 本發明係關於用於資料之一非同步複製之技術。一個例示性技術包含使用與一中央處理單元(CPU)分離之一複製處理器獨立於CPU非同步複製資料。CPU在複製處理器執行非同步複製時可執行其他操作。複製處理器之非同步複製操作可由可自一使用者空間存取之一非同步複製管理器(ACM)控制。複製處理器可能夠將虛擬位址視為參數,消除對於使用者空間來往於一核心空間之昂貴模式切換之需要。複製處理器可對非同步複製管理器通知複製已完成或非同步複製管理器可輪詢複製處理器以判定複製何時完成。非同步複製管理器亦可包含快取區管理。舉例而言,可藉由非同步複製管理器設定一快取區旗標以判定複製處理器是否快取資料。可在不顯著改變操作系統記憶體存取操作之情況下實施所描述之非同步複製技術。 圖1係其中可實施一非同步複製程序之一系統100之一方塊圖。如所展示,系統100包含耦合至一快取區112及一記憶體120之一處理器102。一作業系統110在處理器102上執行且與處理器102互動。作業系統110管理一或多個使用者應用程式108及一非同步複製管理器(ACM) 106。非同步複製管理器106亦耦合至一複製處理器104。複製處理器104亦耦合至一記憶體120及一快取區112。 系統100包含一處理器102。在一些實施方案中,處理器102可係包含於一電腦系統中之一通用中央處理單元(CPU)。處理器102亦可係一專用或嵌入式處理器或用於一特定系統或子系統之一專用控制器。雖然在圖1A至圖1B中展示一單一處理器102,但在一些實施方案中,可包含兩個或兩個以上處理器102。在一些實施方案中,處理器102可係一x86相容處理器,或亦可係另一類型之處理器。 在一些實施方案中,處理器102可包含各能夠執行一或多個執行緒之一或多個處理器核心(未展示)。處理器核心可彼此同時執行此等緒。在一些實施方案中,處理器102、處理器核心或兩個組件可包含用於快取資料之積體儲存器。處理器102或處理器核心亦可包含微程式碼,該微程式碼包含界定組件之行為之指令。 系統包含經組態以在記憶體120內執行資料複製操作之一複製處理器104。複製處理器104可併入處理器102中(例如,作為與處理器核心分離之一組件)。在一些實施方案中,複製處理器104整合於與處理器102相同之封裝中或係包含處理器102之一「系統單晶片」之部分。複製處理器104亦可係與處理器102分離之一硬體組件或耦合至處理器102之一分離模組。複製處理器104可實施為一積體輸入/輸出裝置之部分或實施為一直接記憶體存取(DMA)系統之部分。 系統100亦包含一記憶體120或多個記憶體120。記憶體120可包含任何類型之記憶體或資料庫模組且可採取揮發性及/或非揮發性記憶體之形式,包含(但不限於)磁性媒體、光學媒體、隨機存取記憶體(RAM)、唯讀記憶體(ROM)或任何其他適合本端或遠端記憶體組件。記憶體120亦可包含整合至處理器102、處理器核心或系統100內之其他組件中之快取記憶體。 系統100亦包含一作業系統110。在操作中,作業系統110在處理器102上執行且引導處理器102執行一或多個使用者應用程式108。作業系統110可係在處理器102上執行之一商業或開放原始碼作業系統。 由處理器102執行之軟體應用程式108可起始一非同步複製操作。軟體應用程式108可與一非同步複製管理器106介接以執行且協調非同步複製。舉例而言,應用程式108可呼叫非同步複製管理器106中界定之函數以起始非同步複製。作為回應,非同步複製管理器106可請求複製處理器104在記憶體120中執行資料複製。在一些情況中,可自應用程式108明確呼叫非同步複製管理器106用於一非同步複製操作,或可回應於對用於複製記憶體之一標準作業系統常式(例如,memcpy)之一呼叫而呼叫非同步複製管理器106。在此一情況中,memcpy之實施方案可包含指令,該等指令用以判定是否應非同步執行特定複製操作且若應非同步執行特定複製操作,則起始非同步複製。此一實施方案可容許在不改變軟體應用程式108之情況下利用本技術。 由於複製處理器104與處理器102分離,因此處理器102在非同步複製操作期間可自由繼續執行。舉例而言,處理器102在複製操作期間可繼續執行應用程式108、另一應用程式或另外執行其他操作。處理器102可繼續執行不取決於複製操作之結果之軟體應用程式108之其他指令。在另一實例中,處理器102可執行至另一軟體應用程式之一上下文切換且在執行非同步複製操作時執行該應用。再者,由於可經由非同步複製管理器106自使用者空間存取複製處理器104,因此當執行複製操作時可能無需上下文切換。特定言之,可不需要處理器102來執行至作業系統110之一模式切換以起始非同步複製操作,從而導致經提高效能。在一些情況中,若佔用一資源,則複製操作可預設至標準同步負載儲存技術。舉例而言,若複製處理器104不可用於執行一非同步複製操作,則作業系統110可代替性地使用處理器102來執行一標準複製操作。 非同步複製管理器106亦可確保在一非同步複製操作期間保持保護記憶體。舉例而言,在非同步複製操作之前或期間,非同步複製管理器106可保護對應於自其複製資料之記憶體120內之一源位址及接收資料之記憶體120內之一目的地位址之記憶體120中之位置。在複製操作完成之後,非同步複製管理器106可不保護記憶體位置以容許存取。 在一些情況中,非同步複製管理器106可在不「鎖定」與位置相關聯之記憶體頁之情況下保護記憶體120中之位置。鎖定一記憶體頁涉及對頁標記使得其不會被交換至記憶體120外部之一實體記憶體位置,諸如(例如)一輔助儲存位置(例如,一硬碟機)。在未鎖定記憶體頁之一實施方案中,非同步複製管理器106可保護對應於實體位置之虛擬記憶體頁。 在複製操作已完成之後,接著非同步複製管理器106可不保護記憶體120中之位置。在一些情況中,非同步複製管理器106可使用一轉譯後備緩衝器(TLB)以促成非同步複製操作。非同步複製管理器106可保持TLB與任何核心重新映射活動同步以維持一一致頁表。在一些情況中,在一頁錯誤發生之後,非同步複製管理器106可產生一精確中斷。精確中斷可包含資訊,諸如記憶體位置當前正被複製且無法寫入之一指示。可實施軟體應用程式108以諸如藉由在容許複製操作完成之特定量之時間之後重試複製操作而處置此一指示。在一些實施方案中,若遇到一頁錯誤,則可透過常規負載/儲存複製機制重試操作。 在一些實施方案中,至複製處理器104之非同步複製管理器106請求可包含一通知指示,其指示如何處置非同步複製操作完成之通知。通知指示可(例如)對複製處理器104指示非同步複製管理器106將輪詢直至設定一完成旗標。舉例而言,複製處理器104可在完成非同步複製操作之後將一完成字組或完成位元寫入至一特定記憶體位置,且非同步複製管理器106可輪詢該記憶體位置以判定複製操作之狀態。通知指示可(例如)對複製處理器104指示複製處理器104應在完成非同步複製操作之後將一中斷傳遞至非同步複製管理器106。非同步複製管理器106可自行處置中斷或容許一中斷處置器處置中斷。 在一些實施方案中,非同步複製管理器106可提供用於非同步複製大量資料之技術。舉例而言,非同步複製管理器106可限制一次被複製之位元組之數目。舉例而言,可將一次被複製之位元組限於諸如512位元組、64K位元組或另一數目個位元組之一數目。在一些情況中,可將大量待複製之資料分割成較小部分。舉例而言,在複製之前可將1 Gb之資料分割成64 Kb部分。以此方式,其他複製操作不必在開始之前等待整個大資料檔案經複製,而可在複製較小經分割資料部分之操作內交錯。在一些情況中,非同步複製管理器106可在大量資料之複製期間切換,使得可複製較小量之資料。舉例而言,可暫停大資料複製操作,使得較小資料複製操作不必等待大資料複製操作完成。舉例而言,在一大資料複製操作期間,非同步複製管理器106可保存資訊,諸如源位址、目的地位址、總位元組之數目、當前記憶體位置或其他資訊。在複製較小資料之後,非同步複製管理器106可基於經保存資訊繼續大資料複製。在一些情況中,在處理器102上執行之緒可各具有一專屬非同步複製管理器106,且在一些情況中,多個緒可共用一單一非同步複製管理器106。在一些實施方案中,系統100可包含多個複製管理器,從而容許大複製操作並行化為多個較小複製操作。 在一些實施方案中,非同步複製管理器106提供快取控制。在一些情況中,應用程式108可對非同步複製管理器106發信號以判定快取行為。舉例而言,應用程式108可呼叫包含指示是否快取資料(源或目的地)之一快取區旗標之一非同步複製管理器106函數。在一些實施方案中,非同步複製管理器106可判定是否快取待複製之資料。舉例而言,非同步複製管理器106可(例如,藉由檢查欲在當前應用程式上下文中執行之未來指令或過往執行歷史)分析軟體應用程式且預測是否可能在未來使用經複製資料。若可能在未來使用資料,則非同步複製管理器106可確保快取資料,且若可能在未來不使用資料,則非同步複製管理器106可確保不快取資料。非同步複製管理器106可(例如)在發送至複製處理器104之複製請求中包含一快取區旗標值。舉例而言,在一網路上下文中,一網路緩衝器或NIC DMA中之目的地資料很少重用且因此可獲益於不應快取目的地資料之一信號。 圖2係用於提供一非同步複製操作之一例示性程序200之一流程圖。程序200包含一應用程式108、一非同步複製管理器(非同步複製管理器) 106、一複製處理器104與用於非同步複製資料之一記憶體120之間之互動。在210處,應用程式108將一複製操作請求發送至非同步複製管理器106。舉例而言,應用程式108可在執行期間呼叫非同步複製管理器106內之一或多個函數且提供關於經請求複製操作之資訊(例如,源位址、目的地位址、待複製之位元組、是否應快取資料之一指示、完成之後之通知方法等)。 在215處,非同步複製管理器106準備複製操作。舉例而言,非同步複製管理器106可分析經請求操作,且在請求操作之前執行各種任務。在一些情況中,非同步複製管理器106可在請求複製操作之前保護適當記憶體位置(例如,針對複製之源及目的地)。非同步複製管理器106亦可分析經請求複製操作,且判定是否如界定般請求操作或諸如(例如)在一大複製操作之情況中將操作分裂成多個複製操作。非同步複製管理器106亦可執行對虛擬記憶體組件(例如,頁表、TLB等)之任何準備以容許其維持此等結構在複製操作期間之同步,如上文描述。非同步複製管理器106亦可將自軟體應用程式108發送之任何虛擬記憶體位址(例如,源及目的地位址)轉譯為記憶體內之實體記憶體位址。 在220處,非同步複製管理器106將一複製操作請求發送至複製處理器104。複製操作請求包含關於經請求複製操作之資訊(例如,源位址、目的地位址、待複製之位元組、是否應快取資料之一指示等)。在一些情況中,複製處理器104可分析請求以判定其當前是否可執行複製操作。若其無法執行(諸如若另一複製操作在進行中),則複製處理器104可將隨後待執行之請求佇列化或可對非同步複製管理器106指示當前無法執行請求。在一些情況中,非同步複製管理器106可基於針對操作之一經指示優先級將複製操作佇列化,使得在較低優先級操作之前執行較高優先級操作。 在225處,複製處理器104與記憶體120互動以執行複製操作。在225處之複製操作期間,應用程式108繼續在CPU上執行,在205處展示。在235處,複製處理器104判定複製操作已完成。在240處,複製處理器104對非同步複製管理器106指示經請求複製操作已完成。可使用上文中描述之各種技術傳達此指示。 在245處,非同步複製管理器106在完成複製之後結束複製操作。非同步複製管理器106可(例如)不保護任何先前經保護資料。在250處,非同步複製管理器106將複製操作的完成報告給應用程式108。在其中應用程式108已指示不需要完成之一指示之情況中可省略此步驟(例如,藉由在初始函數呼叫中傳遞此一指示)。 圖3描繪用於一非同步複製操作之一例示性程序300。可(例如)藉由圖1中展示之系統100實施程序300。在305處,藉由一複製處理器接收針對一非同步複製操作之一請求。在藉由與複製處理器分離之一處理器執行一軟體應用程式期間自軟體應用程式接收請求。亦可自可由在管理軟體應用程式之執行之一作業系統之一使用者空間中之軟體應用程式存取之一複製管理器接收請求。在一些情況中,可在處理器不執行一模式切換之情況下產生請求。 在310處,藉由複製處理器回應於請求而起始非同步資料複製操作。在一些情況中,起始非同步資料複製操作由一第一處理器執行且包含第一處理器指示不同於第一處理器之一第二處理器執行非同步資料複製操作。舉例而言,第一處理器可係一CPU且指示作為一複製處理器之一第二處理器執行非同步複製操作。在315處,藉由處理器對軟體應用程式之執行繼續。可針對程序300中之全部步驟連續發生軟體應用程式之執行。 在320處,判定非同步複製操作已完成。在325處,回應於判定非同步複製操作已完成,複製處理器對軟體應用程式選擇性通知非同步複製操作已完成。舉例而言,複製處理器可判定操作已完成且將一中斷發送至可與軟體應用程式通信之非同步複製管理器。作為另一實例,複製處理器可判定操作已完成且設定非同步複製管理器輪詢或檢查之一完成旗標。 圖4係作為一用戶端或作為一伺服器或複數個伺服器之可用於實施此文獻中描述之系統及方法之計算裝置400、450之一方塊圖。計算裝置400旨在表示各種形式之數位電腦,諸如膝上型電腦、桌上型電腦、工作站、個人數位助理、伺服器、刀鋒型伺服器、主機及其他適當電腦。計算裝置450旨在表示各種形式之行動裝置,諸如個人數位助理、蜂巢式電話、智慧型電話及其他類似計算裝置。另外,計算裝置400或450可包含通用串列匯流排(USB)快閃隨身碟。USB快閃隨身碟可儲存作業系統及其他應用程式。USB快閃隨身碟可包含輸入/輸出組件,諸如一無線傳輸器或可插入至另一計算裝置之一USB埠中之USB連接器。此處展示之組件、其等之連接及關係及其等之功能僅意欲係例示性且不意欲限制此文獻中描述及/或主張之實施方案。 計算裝置400包含一處理器402、記憶體404、一儲存裝置406、連接至記憶體404及高速擴充埠410之一高速介面408及連接至低速匯流排414及儲存裝置406之一低速介面412。各組件402、404、406、408、410及412使用各種匯流排互連且可安裝於一共同主機板上或視情況以其他方式安裝。處理器402可處理用於在計算裝置400內執行之指令,包含儲存於記憶體404中或儲存裝置406上,以在一外部輸入/輸出裝置(諸如耦合至高速介面408之顯示器416)上顯示針對一GUI之圖形資訊。在其他實施方案中,可視需要使用多個處理器及/或多個匯流排連同多個記憶體及多個類型之記憶體。又,多個計算裝置400可與提供操作之部分之各裝置連接(例如,作為一伺服器庫、一刀鋒型伺服器群組或一多處理器系統)。 記憶體404在計算裝置400內儲存資訊。在一個實施方案中,記憶體404係一揮發性記憶體單元或若干單元。在另一實施方案中,記憶體404係一非揮發性記憶體單元或若干單元。記憶體404亦可係另一形式之電腦可讀媒體,諸如一磁碟或光碟。 儲存裝置406能夠向計算裝置400提供大容量儲存。在一個實施方案中,儲存裝置406可係或含有一電腦可讀媒體,諸如一軟碟裝置、一硬碟裝置、一光碟裝置或一磁帶裝置、一快閃記憶體或其他類似固態記憶體裝置或包含呈一儲存區域網路或其他組態之裝置之一裝置陣列。一電腦程式產品可有形體現於一資訊載體中。電腦程式產品亦可含有當經執行時執行一或多個方法(諸如上文中描述之方法)之指令。資訊載體係一電腦或機器可讀媒體,諸如記憶體404、儲存裝置406或處理器402上之記憶體。 高速控制器408管理針對計算裝置400之頻寬密集型操作,而低速控制器412管理較低頻寬密集型操作。功能之此分配僅係例示性。在一個實施方案中,高速控制器408耦合至記憶體404、顯示器416 (例如,透過一圖形處理器或加速器),且耦合至可接收各種擴充卡(未展示)之高速擴充埠410。在實施方案中,低速控制器412耦合至儲存裝置406及低速擴充埠414。可包含各種通信埠(例如,USB、藍芽、乙太網路、無線乙太網路)之低速擴充埠可耦合至一或多個輸入/輸出裝置(諸如一鍵盤、一指標裝置、一掃描器)或(例如,透過一網路配接器耦合至)一網路化裝置(諸如一開關或路由器)。 計算裝置400可以若干不同形式實施,如圖中展示。舉例而言,其可實施為一標準伺服器420或多次實施在此等伺服器之一群組中。其亦可實施為一機架式伺服器系統424之部分。另外,其可實施為諸如一膝上型電腦422之一個人電腦。替代地,來自計算裝置400之組件可與諸如裝置450之一行動裝置(未展示)中之其他組件組合。此等裝置之各者可含有計算裝置400、450之一或多者,且一整個系統可由彼此通信之多個計算裝置400、450組成。 除了其他組件之外,計算裝置450亦包含一處理器452、記憶體464、諸如一顯示器454之一輸入/輸出裝置、一通信介面466及一收發器468。裝置450亦可具備一儲存裝置(諸如一微型硬碟或其他裝置)以提供額外儲存。各組件450、452、564、454、566及568使用各種匯流排互連且若干組件可安裝於一共同主機板上或視需要以其他方式安裝。 處理器452可在計算裝置450內執行指令,包含儲存於記憶體464中之指令。處理器可實施為包含分離及多個類比及數位處理器之晶片之一晶片組。另外,可使用若干架構之任何者實施處理器。舉例而言,處理器410可係一CISC (複雜指令集電腦)處理器、一RISC (精簡指令集電腦)處理器或一MISC (最小指令集電腦)處理器。處理器可提供(例如)裝置450之其他組件之協調,諸如使用者介面之控制、藉由裝置450運行之應用程式及藉由裝置450進行之無線通信。 處理器452可透過控制介面458及耦合至一顯示器454之顯示介面456與一使用者通信。顯示器454可係(例如)一TFT (薄膜電晶體液晶顯示器)顯示器或一OLED (有機發光二極體)顯示器或其他適當顯示技術。顯示介面456可包括用於驅動顯示器454以向一使用者呈現圖形及其他資訊之適當電路。控制介面458可自一使用者接收命令且轉換命令以提交至處理器452。另外,可提供與處理器452通信之一外部介面462以便實現裝置450與其他裝置之附近區域通信。外部介面462可(例如)在一些實施方案中提供有線通信或在其他實施方案中提供無線通信且亦可使用多個介面。 記憶體464在計算裝置450內儲存資訊。記憶體464可實施為一電腦可讀媒體或若干媒體、一揮發性記憶體單元或若干單元或一非揮發性記憶體單元或若干單元之一或多者。擴充記憶體444亦可提供且透過可包含(例如)一SIMM (單列直插記憶體模組)卡介面之擴充介面442連接至裝置450。此擴充記憶體444可為裝置450提供額外儲存空間或亦可儲存儲存裝置450之應用程式或其他資訊。具體言之,擴充記憶體444可包含實行或增補上文中描述之程序之指令且亦可包含安全資訊。因此,舉例而言,擴充記憶體444可提供為用於裝置450之一安全模組,且可使用允許裝置450之安全使用之指令程式化。另外,可經由SIMM卡提供安全應用連同額外資訊,諸如以一不可駭入方式在SIMM卡上放置識別資訊。 記憶體可包含(例如)快閃記憶體及/或NVRAM記憶體,如下文中論述。在一個實施方案中,一電腦程式產品有形體現於一資訊載體中。電腦程式產品含有當經執行時執行一或多個方法(諸如上文中描述之方法)之指令。資訊載體係一電腦或機器可讀媒體,諸如記憶體464、擴充記憶體444或可(例如)經由收發器468或外部介面462接收之處理器452上之記憶體。 裝置450可透過在必要的情況下可包含數位信號處理電路之通信介面466無線通信。通信介面466可提供在各種模式或協定下之通信,諸如GSM語音呼叫、SMS、EMS或MMS發訊息、CDMA、TDMA、PDC、WCDMA、CDMA2000或GPRS等。此通信可(例如)透過射頻收發器468發生。另外,短距離通信可諸如使用一藍芽、WiFi或其他此收發器(未展示)發生。另外,GPS (全球定位系統)接收器模組440可將可視需要由在裝置450上運行之應用程式使用之額外巡覽及位置相關無線資料提供至裝置450。 裝置450亦可使用音訊編解碼器460可聽地通信,音訊編解碼器460可自一使用者接收口說資訊且將其轉換為可用數位資訊。音訊編解碼器460可同樣地(例如)在裝置450之一手機中諸如透過一揚聲器針對一使用者產生可聽聲音。此聲音可包含來自語音電話呼叫之聲音,可包含記錄聲音(例如,語音訊息、音樂檔案等)且亦可包含由在裝置450上操作之應用程式產生之聲音。 計算裝置450可以若干不同形式實施,如在圖中展示。舉例而言,其可實施為一蜂巢式電話480。其亦可實施為一智慧型電話482、個人數位助理或其他類似行動裝置之部分。 在各種實施方案中,「回應於」或「由於」另一操作(例如,一判定或一識別)執行之操作在先前操作不成功之情況下(例如,在未執行判定之情況下)不執行。「自動」執行之操作係在無使用者介入(例如,介入使用者輸入)之情況下執行之操作。使用條件語言描述之此文獻中之特徵可描述選用之實施方案。在一些實例中,自一第一裝置「傳輸」至一第二裝置包含第一裝置將資料放置至用於由第二裝置接收之一傳輸鏈路中,但可不包含第二裝置接收資料。相反地,自一第一裝置「接收」可包含自一傳輸鏈路接收資料,但可不包含第一裝置傳輸資料。 藉由一計算系統「判定」可包含計算系統請求另一裝置執行判定且將結果供應至計算系統。 在本說明書中描述之標的物及操作之實施例可實施於數位電子電路中或電腦軟體、韌體或硬體中,包含在本說明書中揭示之結構及其等之結構等效物或其等之一或多者之組合。 術語「資料處理設備」涵蓋用於處理資料之全部類型之設備、裝置及機器,包含(藉由實例)一可程式化處理器、一電腦、一系統單晶片或前述之多者或組合。設備可包含專用邏輯電路,例如,一FPGA (場可程式化閘陣列)或一ASIC (特定應用積體電路)。除了硬體之外,設備亦可包含針對經考量電腦程式建立一執行環境之程式碼,例如,構成處理器韌體、一作業系統、一跨平台運行時間環境、一虛擬機或其等之一或多者之一組合之程式碼。 一電腦程式(亦稱為一程式、軟體、軟體應用程式、指令檔或程式碼)可以任何形式之程式化語言(包含編譯或解譯語言、宣告式或程序式語言)寫入,且其可以任何形式部署,包含作為一獨立程式或作為一模組、組件、副常式、物件或適用於一計算環境中之其他單元。一電腦程式可(但不需要)對應於一檔案系統中之一檔案。一程式可儲存於保持其他程式或資料之一檔案(例如,儲存於一標記語言文件中之一或多個指令檔)之一部分中,專用於經考量程式之一單一檔案中或多個協調檔案(例如,儲存一或多個模組、副程式或程式碼之部分之檔案)中。可部署一電腦程式以在一個電腦上或定位於一個位點處或跨多個位點分佈且藉由一通信網路互連之多個電腦上執行。 本說明書中描述之程序及邏輯流程可由一或多個可程式化處理器執行,該一或多個可程式化處理器執行一或多個電腦程式以藉由對輸入資料操作且產生輸出而執行動作。程序及邏輯流程亦可由專用邏輯電路(例如,一FPGA (場可程式化閘陣列)或一ASIC (特定應用積體電路))執行且設備亦可實施為該專用邏輯電路。 適合於執行一電腦程式之處理器包含(藉由實例)通用微處理器及專用微處理器兩者及任何類型之數位電腦之任何一或多個處理器。一般言之,一處理器將自一唯讀記憶體或一隨機存取記憶體或兩者接收指令及資料。一電腦之關鍵元件係用於根據指令執行動作之一處理器及用於儲存指令及資料之一或多個記憶體裝置。一般言之,一電腦將亦包含用於儲存資料之一或多個大容量儲存裝置(例如,磁碟、磁光碟或磁碟)或可操作耦合以來往於該一或多個大容量儲存裝置接收資料或傳送資料或兩者。然而,一電腦不需要具有此等裝置。再者,一電腦可嵌入另一裝置中,例如(僅舉幾例)一行動電話、一個人數位助理(PDA)、一行動音訊或視訊播放器、一遊戲機、一全球定位系統(GPS)接收器或一攜帶型儲存裝置(例如,一通用串列匯流排(USB)快閃隨身碟)。適合於儲存電腦程式指令及資料之裝置包含全部形式之非揮發性記憶體、媒體及記憶體裝置,包含(藉由實例)半導體記憶體裝置,例如,EPROM、EEPROM及快閃記憶體裝置;磁碟,例如,內部硬碟機或可抽換式磁碟;磁光碟;及光碟。處理器及記憶體可輔以專用邏輯電路或併入專用邏輯電路中。 雖然本說明書含有許多具體實施方案細節,但不應將此等細節理解為對任何發明或可能主張之內容之範疇之限制,而應理解為特定發明之特定實施方案所特定之特徵之描述。亦可在一單一實施方案中組合實施在本說明書中在單獨實施方案之上下文中描述之特定特徵。相反地,亦可在多個實施方案中單獨地實施或以任何適合子組合實施在一單一實施方案之上下文中描述之各種特徵。再者,雖然在上文將特徵描述為以特定組合作用且甚至最初如此主張,但在一些情況中,來自一所主張組合之一或多個特徵可自該組合去除且該所主張組合可係關於一子組合或一子組合之變動。 類似地,雖然在圖式中以一特定順序描繪操作,但不應將此理解為需要以所展示之特定順序或以循序順序執行此等操作或執行所有所繪示之操作以達成所要結果。在特定情況中,多任務及並行處理可係有利的。再者,不應將上文描述之實施方案中之各種系統組件之分離理解為在全部實施方案中需要此分離,且應將其理解為所描述之程式組件及系統通常可一起整合於一單一軟體產品中或封裝至多個軟體產品中。 因此,已描述標的物之特定實施例。其他實施例係在以下申請專利範圍之範疇內。在一些情況下,在申請專利範圍中陳述之動作可以一不同順序執行且仍達成所要結果。另外,在附圖中描繪之程序不一定需要所展示之特定順序或循序順序以達成所要結果。在特定實施方案中,多任務及並行處理可係有利的。
100‧‧‧系統
102‧‧‧處理器
104‧‧‧複製處理器
106‧‧‧非同步複製管理器(ACM)
108‧‧‧使用者應用程式
110‧‧‧作業系統
112‧‧‧快取區
120‧‧‧記憶體
200‧‧‧例示性程序
205‧‧‧步驟
210‧‧‧步驟
215‧‧‧步驟
220‧‧‧步驟
225‧‧‧步驟
235‧‧‧步驟
240‧‧‧步驟
245‧‧‧步驟
250‧‧‧步驟
300‧‧‧例示性程序
305‧‧‧步驟
310‧‧‧步驟
315‧‧‧步驟
320‧‧‧步驟
325‧‧‧步驟
400‧‧‧計算裝置
402‧‧‧處理器
404‧‧‧記憶體
406‧‧‧儲存裝置
408‧‧‧高速介面/高速控制器
410‧‧‧高速擴充埠
412‧‧‧低速介面/低速控制器
414‧‧‧低速匯流排/低速擴充埠
416‧‧‧顯示器
420‧‧‧標準伺服器
422‧‧‧膝上型電腦
424‧‧‧機架式伺服器系統
440‧‧‧GPS(全球定位系統)接收器模組
442‧‧‧擴充介面
444‧‧‧擴充記憶體
450‧‧‧計算裝置/儲存裝置
452‧‧‧處理器
454‧‧‧顯示器
456‧‧‧顯示介面
458‧‧‧控制介面
460‧‧‧音訊編解碼器
462‧‧‧外部介面
464‧‧‧記憶體
466‧‧‧通信介面
468‧‧‧收發器
480‧‧‧蜂巢式電話
482‧‧‧智慧型電話
圖1係其中可實施一非同步複製程序之一系統之一方塊圖。 圖2係用於提供一非同步複製操作之一例示性程序之一流程圖。 圖3描繪用於一非同步複製操作之一例示性程序。 圖4係可用於實施此文獻中描述之系統及方法之計算裝置之一方塊圖。 各種圖式中之相同元件符號及名稱指示相同元件。

Claims (20)

  1. 一種藉由一或多個處理器執行之電腦實施方法,該方法包括:在藉由一處理器執行一軟體應用程式期間,藉由與該處理器分離之一複製處理器接收針對一非同步資料複製操作之一請求,以在可由該複製處理器存取之一記憶體內複製資料,其中自可由在管理該軟體應用程式之執行之一作業系統之一使用者空間中之該軟體應用程式存取之一複製管理器接收該請求,及該請求包含對該複製處理器之一指示(indication),以在該非同步資料複製操作完成之後設定一完成旗標(completion flag),而非在該非同步資料複製操作完成之後對該複製管理器通過(pass)一中斷(interrupt);回應於該請求,藉由該複製處理器起始該非同步資料複製操作;繼續藉由該處理器執行該軟體應用程式;藉由該複製處理器判定該非同步資料複製操作已完成;及回應於判定該非同步複製操作已完成,基於以在該非同步資料複製操作完成之後設定該完成旗標,而非在該非同步資料複製操作完成之後對該複製管理器通過該中斷之在該請求中之該指示,藉由該複製處理器對該軟體應用程式透過該完成旗標而非該中斷選擇性通知該非同步複製操作已完成。
  2. 如請求項1之方法,其中在該處理器不執行至該作業系統之一模式切換之情況下產生自該複製管理器接收之該請求。
  3. 如請求項1之方法,其中該請求包含識別含有待複製之資料之一源位置及該資料將複製至其之一目的地位置之虛擬位址參數。
  4. 如請求項1之方法,其中自該複製管理器接收之該請求包含指示是否應將該經複製資料儲存於與該處理器相關聯之一快取區中之一快取區旗標。
  5. 如請求項1之方法,其中該非同步資料複製操作指示自其複製資料之該記憶體內之一源位址及接收該資料之該記憶體內之一目的地位址,且該方法進一步包括:在起始該非同步資料複製操作之前,保護該記憶體中對應於該源位址及該目的地位址之位置。
  6. 如請求項5之方法,其中在不鎖定與該等位置相關聯之虛擬記憶體頁之情況下執行保護該位置。
  7. 如請求項5之方法,其進一步包括回應於判定該非同步複製操作已完成,不保護該記憶體中之該等位置。
  8. 如請求項1之方法,其中該處理器及該複製處理器共同定位於一系統單晶片裝置內。
  9. 如請求項1之方法,其中該處理器及該複製處理器定位於由一資料匯流排連接之分離裝置中。
  10. 如請求項1之方法,其中該處理器包含一中央處理單元,該中央處理單元包含一或多個處理器核心,及該複製處理器係一硬體組件,該硬體組件與該中央處理單元分離且與該一或多個處理器核心分離。
  11. 如請求項1之方法,其中該複製管理器與該複製處理器及該處理器分離,及其中藉由該複製處理器選擇性通知該軟體應用程式該非同步資料複製操作已經完成包括回應於自指示請求該非同步資料複製操作已經完成之該複製處理器接收之一通知,該複製管理器通知該軟體應用程式該非同步資料複製操作已經完成。
  12. 如請求項1之方法,其包括:接收一第二非同步資料複製操作之一第二請求;藉由該複製處理器判定該非同步資料複製操作在進行中;及回應於藉由該複製處理器判定該非同步資料複製操作在進行中,使用該處理器執行一同步複製操作,而非使用該處理器執行一第二非同步資料複製操作。
  13. 如請求項1之方法,其包括:藉由該複製處理器接收對一第二非同步資料複製操作之一第二請求,該第二請求包含在該第二非同步資料複製操作完成之後對該複製管理器通過一個別中斷之對該複製處理器之一第二指示,而非在該第二非同步資料複製操作完成之後設定一個別完成旗標。
  14. 一種系統,其包括:記憶體,其用於儲存資料;一處理器,其可操作以執行包括以下之第一操作:執行一軟體應用程式;及一複製處理器,其與該處理器分離且通信耦合至該記憶體及該處理器,該複製處理器可操作以執行包括以下之第二操作:在藉由該處理器對該軟體應用程式之執行期間,接收針對一非同步資料複製操作之一請求,以在可由該複製處理器存取之該記憶體內複製資料,其中自可由在管理該軟體應用程式之執行之一作業系統之一使用者空間中之該軟體應用程式存取之一複製管理器接收該請求,及該請求包含對該複製處理器之一指示,以在該非同步資料複製操作完成之後設定一完成旗標,而非在該非同步資料複製操作完成之後對該複製管理器通過一中斷;回應於接收該請求,起始該非同步資料複製操作;判定該非同步資料複製操作已完成;及回應於判定該非同步複製操作已完成,基於以在該非同步資料複製操作完成之後設定該完成旗標,而非在該非同步資料複製操作完成之後對該複製管理器通過該中斷之在該請求中之該指示,對該軟體應用程式透過該完成旗標而非該中斷選擇性通知該非同步複製操作已完成。
  15. 如請求項14之系統,其中在該處理器不執行至該作業系統之一模式切換之情況下產生自該複製管理器接收之該請求。
  16. 如請求項14之系統,其中該請求包含識別含有待複製之資料之一源位置及該資料將複製至其之一目的地位置之虛擬位址參數。
  17. 如請求項14之系統,其中自該複製管理器接收之該請求包含指示是否應將該經複製資料儲存於與該處理器相關聯之一快取區中之一快取區旗標。
  18. 如請求項14之系統,其中該非同步資料複製操作指示自其複製資料之該記憶體內之一源位址及接收該資料之該記憶體內之一目的地位址,且該等第二操作進一步包括:在起始該非同步資料複製操作之前,保護該記憶體中對應於該源位址及該目的地位址之位置。
  19. 如請求項18之系統,其中在不鎖定與該等位置相關聯之虛擬記憶體頁之情況下執行保護該位置。
  20. 一種儲存指令之非暫時性電腦可讀媒體,該等指令在經執行時可操作以引起至少一個處理器執行包括以下之操作:在藉由一處理器執行一軟體應用程式期間,藉由與該處理器分離之一複製處理器接收針對一非同步資料複製操作之一請求,以在可由該複製處理器存取之一記憶體內複製資料,其中自可由在管理該軟體應用程式之執行之一作業系統之一使用者空間中之該軟體應用程式存取之一複製管理器接收該請求,及該請求包含對該複製處理器之一指示,以在該非同步資料複製操作完成之後設定一完成旗標,而非在該非同步資料複製操作完成之後對該複製管理器通過一中斷;回應於該請求,藉由該複製處理器起始該非同步資料複製操作;繼續藉由該處理器執行該軟體應用程式;藉由該複製處理器判定該非同步資料複製操作已完成;及回應於判定該非同步複製操作已完成,基於以在該非同步資料複製操作完成之後設定該完成旗標,而非在該非同步資料複製操作完成之後對該複製管理器通過該中斷之在該請求中之該指示,藉由該複製處理器對該軟體應用程式透過該完成旗標而非該中斷選擇性通知該非同步複製操作已完成。
TW105133465A 2015-10-16 2016-10-17 在記憶體內之資料的非同步複製 TWI650703B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/885,786 US10191672B2 (en) 2015-10-16 2015-10-16 Asynchronous copying of data within memory
US14/885,786 2015-10-16

Publications (2)

Publication Number Publication Date
TW201716985A TW201716985A (zh) 2017-05-16
TWI650703B true TWI650703B (zh) 2019-02-11

Family

ID=57240816

Family Applications (2)

Application Number Title Priority Date Filing Date
TW105133465A TWI650703B (zh) 2015-10-16 2016-10-17 在記憶體內之資料的非同步複製
TW107147426A TWI710950B (zh) 2015-10-16 2016-10-17 用於資料的非同步複製的系統及相關聯電腦實施方法及電腦可讀媒體

Family Applications After (1)

Application Number Title Priority Date Filing Date
TW107147426A TWI710950B (zh) 2015-10-16 2016-10-17 用於資料的非同步複製的系統及相關聯電腦實施方法及電腦可讀媒體

Country Status (5)

Country Link
US (2) US10191672B2 (zh)
EP (2) EP3657341B1 (zh)
CN (2) CN107025068B (zh)
DK (2) DK3657341T3 (zh)
TW (2) TWI650703B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110413202B (zh) * 2018-04-28 2024-03-08 伊姆西Ip控股有限责任公司 数据复制方法、设备和计算机程序产品
US11442958B2 (en) * 2019-04-25 2022-09-13 EMC IP Holding Company LLC Data distribution in continuous replication systems

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050154845A1 (en) * 2004-01-09 2005-07-14 International Business Machines Corporation Maintaining consistency for remote copy using virtualization
US20100058024A1 (en) * 2008-09-01 2010-03-04 Sony Computer Entertainment Inc. Data Transfer Apparatus, Data Transfer Method And Processor

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7181744B2 (en) * 2002-10-24 2007-02-20 International Business Machines Corporation System and method for transferring data between virtual machines or other computer entities
US8327101B2 (en) 2008-02-01 2012-12-04 International Business Machines Corporation Cache management during asynchronous memory move operations
US8949569B2 (en) 2008-04-30 2015-02-03 International Business Machines Corporation Enhanced direct memory access
US8769036B2 (en) 2009-10-30 2014-07-01 International Business Machines Corporation Direct sending and asynchronous transmission for RDMA software implementations
US8712961B2 (en) * 2011-09-23 2014-04-29 International Business Machines Corporation Database caching utilizing asynchronous log-based replication
US9274839B2 (en) * 2012-09-27 2016-03-01 Intel Corporation Techniques for dynamic physical memory partitioning
TWI478055B (zh) * 2012-12-11 2015-03-21 Gemtek Technology Co Ltd 非對稱式處理之多核心系統與其網路設備
US9311225B2 (en) * 2013-01-04 2016-04-12 Microsoft Technology Licensing, Llc DMA channels
US9235485B2 (en) * 2013-07-22 2016-01-12 International Business Machines Corporation Moving objects in a primary computer based on memory errors in a secondary computer

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050154845A1 (en) * 2004-01-09 2005-07-14 International Business Machines Corporation Maintaining consistency for remote copy using virtualization
TWI339793B (en) * 2004-01-09 2011-04-01 Ibm Maintaining consistency for remote copy using virtualization
US20100058024A1 (en) * 2008-09-01 2010-03-04 Sony Computer Entertainment Inc. Data Transfer Apparatus, Data Transfer Method And Processor

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
K. Vaidyanathan et al., "Efficient Asynchronous Memory Copy Operations on Multi-Core Systems and I/OAT," IEEE International Conference on Cluster Computing, 17-20 Sept. 2007, p159-168 *
K. Vaidyanathan et al., "Efficient Asynchronous Memory Copy Operations on Multi-Core Systems and I/OAT," IEEE International Conference on Cluster Computing, 17-20 Sept. 2007, p159-168。

Also Published As

Publication number Publication date
EP3657341A1 (en) 2020-05-27
CN111813333A (zh) 2020-10-23
TWI710950B (zh) 2020-11-21
CN107025068B (zh) 2020-06-16
US20190163381A1 (en) 2019-05-30
CN111813333B (zh) 2021-09-14
US10191672B2 (en) 2019-01-29
CN107025068A (zh) 2017-08-08
TW201716985A (zh) 2017-05-16
EP3156906A1 (en) 2017-04-19
EP3156906B1 (en) 2020-02-12
US20170109082A1 (en) 2017-04-20
EP3657341B1 (en) 2022-08-31
DK3156906T3 (da) 2020-03-16
US10481811B2 (en) 2019-11-19
TW201921242A (zh) 2019-06-01
DK3657341T3 (da) 2022-11-07

Similar Documents

Publication Publication Date Title
US9965392B2 (en) Managing coherent memory between an accelerated processing device and a central processing unit
US9298484B2 (en) Encapsulation of an application for virtualization
US20070239965A1 (en) Inter-partition communication
TW201729136A (zh) 安全區之平台遷移
EP3015993A1 (en) Apparatus and method for rdma with commit acks
KR20170010833A (ko) 소프트웨어 지원 콘텍스트 스위치를 갖는 미드-쓰레드 선점
US10102159B2 (en) Method of achieving low write latency in a data storage system
US11188365B2 (en) Memory overcommit by speculative fault
US10162616B2 (en) System for binary translation version protection
US20130145202A1 (en) Handling Virtual-to-Physical Address Translation Failures
TWI650703B (zh) 在記憶體內之資料的非同步複製
US9311225B2 (en) DMA channels
US20180107509A1 (en) Migration of computer systems
JP6217386B2 (ja) マルチプロセッサ用プログラム生成方法
JP5231496B2 (ja) 情報処理装置及びそのサスペンド/リジューム方法
US11775329B1 (en) System and method for reducing virtual machine live migration downtime
KR20220038053A (ko) 커널 지원을 가진 지속 가능한 서비스들에 기초하여 회복성 운영 시스템을 구축하는 방법
WO2015159699A1 (ja) 伝送装置、コントローラ、ならびに伝送装置およびコントローラからなるシステム