新四季網

經由計算機總線對持久性存儲器的控制的製作方法

2023-05-08 01:29:06 2


發明領域

本發明大體上涉及計算機系統和用於計算機系統的操作的方法,並且更具體地涉及計算機系統中的持久性存儲器設備的使用。

背景

術語「持久性存儲器」用於本說明書的上下文和權利要求中以表示支持數據到存儲器的隨機存取寫入和從存儲器的隨機存取讀取以及在電源關閉時保留數據的任何種類的半導體存儲器。當前使用的持久性存儲器的示例包括各種類型的非易失性隨機存取存儲器(nvram)(包括閃速存儲器)以及電池支持的ram設備。新型的持久性存儲器在研發中,諸如最近由intel和microntechnology公布的「3dxpoint」存儲器。

概述

在下文描述的本發明的實施方式提供用於經由計算機總線與持久性存儲器設備交互的改進技術。

因此,根據本發明的實施方式提供了存儲器設備,其包括具有存儲器地址空間的目標存儲器以及易失性緩衝存儲器,該易失性緩衝存儲器被耦合以接收通過總線寫入到存儲器設備以用於在存儲器地址空間中的指定地址中存儲的數據。存儲器控制器被配置為經由總線接收刷新(flush)指令並響應於該刷新指令以將在存儲器地址空間內具有指定地址的在緩衝存儲器中保存的數據立即刷新到目標存儲器。

在公開的實施方式中,目標存儲器包括持久性存儲器。

在一個實施方式中,刷新指令使存儲器控制器將在刷新指令先前投遞(posted)的寫入命令中通過總線傳送到目標存儲器的所有數據刷新到目標存儲器。可選地,刷新指令識別在存儲器地址空間內將被刷新的範圍,並使存儲器控制器將保存在被識別的範圍內的具有指定地址的在緩衝存儲器中的數據立即刷新到目標存儲器。通常,存儲器控制器被配置為響應於刷新指令來刷新僅在被識別的範圍內的數據,同時將在被識別範圍之外的具有指定地址的其它數據留在緩衝存儲器中,而不立即刷新到目標存儲器。

在所公開的實施方式中,存儲器控制器被配置為在將數據刷新到目標存儲器後通過總線將完成消息發送到刷新指令的發送者。

在一個實施方式中,數據和刷新指令通過其寫入的總線是計算機的外圍組件總線,該總線具有總線地址空間,其中,將被刷新的範圍根據存儲器頁面被識別,並且存儲器控制器被配置為將存儲器頁面的被識別的範圍從總線地址空間轉換成存儲器塊,以用於在存儲器地址空間中刷新。

在一些實施方式中,存儲器控制器被配置為識別在存儲器地址空間內的多個區並被配置為將各自的刷新屬性與這些區相關聯,其中,刷新指令使存儲器控制器根據各自的刷新屬性刷新在任何給定區內的具有指定地址的在緩衝存儲器中保存的數據。在一個實施方式中,各自的刷新屬性指示給定區是否對應於目標存儲器中包括持久性存儲器的範圍。

根據本發明的實施方式還提供計算裝置,其包括上面所描述的存儲器設備和網絡接口控制器(nic),該網絡接口控制器被耦合以經由網絡從對等節點接收遠程直接存儲器存取(rdma)寫入包,該寫入包包含將被寫入到存儲器設備的數據並指定數據將被寫入的地址,以及該網絡接口控制器被耦合以接收rdma刷新包,並且該網絡接口控制器被配置為響應於rdma寫入包和rdma刷新包來通過總線將數據和刷新指令傳送到存儲器設備。

通常,數據和刷新指令從nic被傳送到存儲器設備,並且數據由存儲器控制器從緩衝存儲器刷新到目標存儲器,而不生成對耦合到裝置中的總線的中央處理單元(cpu)的中斷。

在一些實施方式中,nic被配置為通過在nic和對等節點之間建立的傳輸服務實例來從對等節點接收rdma寫入包和rdma刷新包,其中,存儲器設備中的存儲器區與傳輸服務實例相關聯,其中,寫入包使nic將數據寫入到相關聯的存儲器區,並且其中,刷新包使nic發布與相關聯的存儲器區有關的刷新指令。在公開的實施方式中,nic被配置為將各自的刷新屬性與存儲器區相關聯,並且刷新指令使存儲器控制器根據相關聯的刷新屬性刷新由nic寫入到存儲器區內的指定地址的數據。

在公開的實施方式中,裝置包括部署在對等節點處的對等nic,其中,對等nic被配置為響應於由運行在對等節點上的進程提交到對等nic的rdma寫入和刷新工作請求,通過網絡傳輸rdma寫入包和rdma刷新包。

根據本發明的實施方式,另外提供存儲器設備,其包括具有存儲器地址空間的目標存儲器以及易失性緩衝存儲器,該易失性緩衝存儲器被耦合以接收通過總線在事務包中寫入到存儲器設備的數據以用於在存儲器地址空間內的指定地址中存儲,每個事務包包括事務描述符,其包括刷新標誌。存儲器控制器被配置為經由總線接收刷新指令並響應於該刷新指令以立即將緩衝存儲器中保存的、對於其的刷新標誌在將其傳送到存儲器設備的事務包中被設置的數據刷新到目標存儲器。

在公開的實施方式中,存儲器控制器被配置為響應於刷新指令來僅刷新對於其刷新標誌被設置的數據,同時將在其中刷新標誌未被設置的事務包中到達的其它數據留在緩衝存儲器中,而不立即刷新到目標存儲器。

在一個實施方式中,事務描述符包括「nosnoop」屬性欄位,其包括刷新標誌。

根據本發明的實施方式還提供計算裝置,其包括上面所描述的存儲器設備和網絡接口控制器(nic),該網絡接口控制器被耦合以經由網絡接收遠程直接存儲器存取(rdma)寫入包,該寫入包包含將被寫入到存儲器設備的數據、指定數據將被寫入的地址,並指示數據將被刷新到目標存儲器,並且該網絡接口控制器被耦合以在接收rdma寫入包後接收rdma刷新包,並且該網絡接口控制器被配置為響應於rdma寫入包來通過總線將數據在其中刷新標誌被設置的事務包中傳送到存儲器設備,並響應於rdma刷新包將刷新指令傳送到存儲器設備。

根據本發明的實施方式另外提供用於在存儲器設備中的數據存儲的方法,該存儲器設備包括目標存儲器和易失性緩衝存儲器。方法包括在易失性緩衝存儲器中接收通過總線寫入到存儲器設備的數據,以用於在存儲器設備的存儲器地址空間內的指定地址中存儲。刷新指令經由總線被接收。響應於刷新指令,在存儲器地址空間內具有指定地址的在緩衝存儲器中保存的數據被立即刷新到目標存儲器。

根據本發明的實施方式還另外提供用於在存儲器設備中的數據存儲的方法,該存儲器設備包括目標存儲器和易失性緩衝存儲器。方法包括在易失性緩衝存儲器中接收通過總線在事務包中被寫入到存儲器設備的數據,以用於在存儲器設備的存儲器地址空間內的指定地址中存儲,每個事務包包括事務描述符,其包括刷新標誌。刷新指令經由總線被接收。響應於刷新指令,在將數據傳送到存儲器設備的事務包中設置刷新標誌的、在緩衝存儲器中保存的數據被立即刷新到目標存儲器。

從結合附圖進行的本發明的實施方式的以下詳細描述中,本發明將得到更完全地理解,其中:

附圖簡述

圖1是根據本發明的實施方式示意地示出計算機系統的方框圖;

圖2是根據本發明的實施方式示意性示出用於控制持久性存儲器設備的方法的流程圖;

圖3是根據本發明的實施方式示意性示出用於被寫入到存儲器設備的數據的遠程刷新的方法的梯形圖。

實施方式的詳細描述

使用持久性存儲器的軟體應用一般依賴於以下假設:一旦數據已經被寫入到持久性存儲器設備,該數據將實際上保存。換句話說,該應用假設寫操作已經被提交到持久性存儲器並且將保持不受任何隨後的斷電或其他系統故障的影響。

然而,實際上,這種假設不總是正確的,特別是當持久性存儲器設備由投遞式(posted)寫入操作經由諸如pci或計算機中的其它外圍組件總線的總線訪問時。持久性存儲器設備常常包括易失性隨機存取存儲器(ram),其作為緩衝器用於接收通過總線寫入到存儲器設備的數據。設備中的存儲器控制器決定何時將數據刷新到持久性存儲器,並可能並不立即這樣做。因此,在通過pcie總線將數據寫入到持久性存儲器設備後,投遞寫入操作的實體一般不確保數據實際上已經從緩衝器被提交到持久性存儲器中。

作為另一個示例,當諸如網絡接口控制器(nic)的外圍設備通過總線將數據寫入到持久性系統存儲器時,數據沿著諸如在屬於總線的根複合體的緩存中的易失性存儲器中的路徑被緩存。總線將立即向投遞寫入操作的設備返回確認,並且設備通常不接收數據實際上已經從緩存被刷新到持久性存儲器的任何確認。

本文描述的本發明的實施方式通過提供設備架構和技術來解決這些困難,該設備架構和技術使得實體能夠通過總線將數據寫入到持久性存儲器設備以確保數據實際上已經被刷新到持久性存儲器。這些技術可通過諸如應用程式的軟體實體和諸如nic的硬體實體來應用,該軟體實體和硬體實體將數據寫入到這樣的持久性存儲器設備並從這樣的持久性存儲器設備讀取數據。

當由nic應用時,所公開的技術可用於實現由跨網絡的對等節點發起的遠程直接存儲器存取(rdma)操作,同時最小化或完全消除對中斷與這些操作有關的中央處理單元(cpu)的需要。在對等節點處部署的對等nic可被配置為響應於由運行在對等節點上的應用程式提交到對等nic的rdma寫入和刷新工作請求而通過網絡傳輸rdma寫入和刷新包。在接收側的nic然後在向對等nic發信號通知已經完成操作之前驗證數據已經被寫入並實際上刷新到持久性存儲器。

所公開的實施方式在通過諸如pcie總線的外圍組件總線存取和控制持久性存儲器設備中是特別有用的,並且因此實現在標準計算機系統中的持久性存儲器的更通用、規模擴大的用途。此外,這些實施方式的原理可通過其它種類的總線加以必要的變更來被應用,其它種類的總線諸如雙列直插式存儲器模塊(dimm),其通常用於中央處理器(cpu)和系統存儲器之間的通信。

另外,儘管所公開的實施方式主要涉及數據到持久性存儲器的刷新,但是本文描述的刷新技術和語義可類似地用於確保數據僅僅被刷新成一致的,即,從諸如緩存的任何中間緩衝器刷新到諸如主機系統存儲器的目標存儲器,其中,確保數據對於在計算機上運行的其它應用和設備是可見的。主機計算機上的任何給定的存儲器區的刷新性質(例如,刷新操作是否使數據被刷新到持久性存儲器或僅僅被刷新成一致的)可在主機計算機上被本地設置,這取決於應用和系統需求。在這個模型中,當對等nic通過網絡將rdma刷新操作引導到主機計算機上的特定存儲器區時,nic操作的語義對區的實際刷新性質是不可知的。

因此,在隨後的描述中的「持久性存儲器」的引用應作為刷新到無論是否是持久性的目標存儲器的更一般的示例被理解。出於同樣的原因,術語「緩衝器」應被理解為不僅是指與給定存儲器設備中的目標存儲器特定相關聯的ram緩衝器,而且還指任何種類的緩存或其中可在刷新到目標存儲器之前暫時保存數據的其它存儲器。下文描述的一些實施方式利用「持久性標誌」,但是該術語也應當被理解為「刷新標誌」的一個示例,其用於標記在給定事務中的數據以用於立即刷新,如下文所述。

在所公開的實施方式中,持久性存儲器設備包括易失性緩衝存儲器,其接收由儲存發起者通過總線寫入的數據,以用於在持久性存儲器的存儲器地址空間內的指定地址中儲存。在將數據寫入到總線後,發起者將刷新指令發送到持久性存儲器設備。這個刷新指令可應用到在該刷新指令之前投遞的寫入命令中通過總線傳送到存儲器設備的所有數據,或者其可指示應被刷新到持久性存儲器的、緩衝存儲器中的特定數據(但是可能不是所有數據)。響應於這個刷新指令,持久性存儲器設備中的存儲器控制器立即實施所請求的刷新操作。如果刷新指令應用到存儲器地址空間中的指定範圍,則在該範圍之外的數據可留在緩衝存儲器中(至少暫時地)而不立即刷新到持久性存儲器。在將數據刷新到持久性存儲器後,存儲器控制器通過總線將完成消息發送到發起者。

當刷新指令識別在存儲器地址空間內的特定範圍,其使存儲器控制器將在被識別的範圍內的具有指定地址的在緩衝存儲器中保存的數據刷新到持久性存儲器。通常,其中範圍將被刷新的總線地址空間根據存儲頁面被識別,並且存儲器控制器將用於刷新的存儲頁面的被識別的範圍從總線地址空間轉換成存儲器地址空間中的存儲器塊。在這些實施方式中的存儲器控制器包括在硬體邏輯和/或軟體中實現的邏輯組件,其在本文中被稱作「持久性代理」,其負責與數據到持久性存儲器的刷新相關的管理、地址轉換和消息傳遞。

在其它實施方式中,儲存發起者通過總線在事務包中將數據寫入到持久性存儲器設備,該事務包包括包含持久性標誌的事務描述符,即,描述符中可由發起者設置以標記用於從緩衝器到持久性存儲器的立即刷新的數據的一個或多個位。發起者然後通過總線發送刷新指令,這使存儲器控制器將保存在緩衝存儲器中的數據立即刷新到持久性存儲器,其持久性標誌在將數據傳送到存儲器設備的事務包中被設置。

圖1是根據本發明的實施方式示意地示出計算機系統20的方框圖。系統20包括計算機22和24,其作為網絡26的節點被連接。為了簡單起見,僅兩臺計算機22和24在圖1中被示出,並且僅計算機22的組件被詳細示出。實際上,系統20通常包括大量的計算機,每個可以以類似於計算機22的方式來構建和操作。網絡26是分組數據網絡,諸如適當的infiniband或乙太網,其能夠進行rdma傳輸。

計算機22包括cpu28和系統存儲器30。根複合體32用作存儲器30的存儲器控制器並且還將cpu28和存儲器30耦合到外圍組件總線34,諸如pcie總線。存儲器30通常包括在dimm封裝中的一個或多個集成電路晶片,包括持久性存儲器(pmem)37。cpu28和根複合體32包括各自的存儲器緩存35和36,存儲器緩存35和36用作將被儲存在存儲器30的地址空間內的指定地址中的數據的緩衝器。

計算機22通過nic38被連接到網絡26,nic38與對等節點的nic通信,其包括計算機24的nic39。nic38和nic39通過在nic之間建立的傳輸服務實例交換rdma請求和響應。在infiniband和一些其它rdma協議的背景下,傳輸服務實例採取隊列對(qp)的形式,這使運行在計算機22上的軟體進程與計算機24上的進程能夠交換數據和指令。

計算機22還包括被連接到總線34的持久性存儲器設備40。設備40包括一個或多個存儲器晶片,一個或多個存儲器晶片包括持久性存儲器42和通常包括ram的易失性緩衝存儲器(vmem)44。存儲器控制器46通過總線34接收和發送數據和指令並控制持久性存儲器42和緩衝存儲器44的操作,包括數據從緩衝存儲器到持久性存儲器的指定刷新。在其中總線34被配置為pcie總線的圖示實施方式中,這些數據和指令以事務級包(tlp)的形式通過總線34被傳送。這種包也被簡稱為事務包。

設備40將存儲器地址空間暴露在總線34上,使得包括軟體進程和諸如nic38的硬體部件的其他實體能夠經由總線從地址空間中的指定地址讀取或寫入到地址空間中的指定地址。在一些實施方式中,設備40使用內部地址來在持久性存儲器42中存儲和接收數據,該內部地址與在這些讀取和寫入操作中使用的總線地址空間中的地址不同。在一些這樣的情況下,控制器46維護用於在總線地址空間和內部地址空間之間轉換的地址轉換表和地址轉換邏輯。用於使用和維護這樣的表的方案例如在2015年11月30日提交的美國專利申請14/953,462中被描述,其被轉讓給本專利申請的受讓人並且其公開內容通過引用被併入本文。通常,控制器46的功能包括總線34上的數據事務的粒度和持久性存儲器42中存儲的可能更大或更小的數據塊的粒度之間的轉換,數據事務的粒度通常以頁來表達(例如,如在pcie標準中使用的4kb的單位)。

在一些實施方式中,如下文進一步描述的,控制器46包括持久性代理(pa)48,其處理與從緩衝存儲器44到持久性存儲器42的數據的刷新有關的命令的消息傳遞和執行。pa48可作為控制器46的邏輯和處理組件的一部分在合適的嵌入式處理器上以軟體或固件或以硬體邏輯來實現。用作系統存儲器30的控制器的根複合體32通常包括類似的pa48,如可能是nic38和總線34上的其它組件。

pa48提供消息傳遞接口,其使得總線34上諸如nic38的實體能夠將刷新指令傳遞到持久性存儲器設備40。這些指令可以涉及到在總線34上的所有先前投遞的寫入,或者它們可以識別設備40的存儲器地址空間內的將被刷新到持久性存儲器42的範圍。如前所述,將被刷新的範圍通常根據總線34的總線地址空間中的頁來指定,並且pa48將該範圍轉換為用於在設備40的存儲器地址空間內刷新的存儲器塊。為了有效和可靠的消息流控制,pa48可以向nic38和其它總線實體發布持久性信用,其在刷新指令被提交時被消耗。在將指定範圍內的數據刷新到持久性存儲器42之後,pa48通過總線34向刷新指令的發送者發送完成消息,並發布附加信用以供後續使用。

作為由pa48提供的持久性消息傳遞接口的替代或除其之外,在總線34上傳送的tlp的報頭內的一個或多個位(例如報頭的事務描述符欄位中的一個或多個位)可以被定義為持久性標誌。在pciexpress基本規範(版本3.0,2010年11月10日由pci-sig出版)中,事務描述符在2.2.6節中被定義為tlp報頭的一部分,其用於運載在總線上的請求者和完成者之間的事務信息。事務描述符的「屬性」欄位包括四個位,其中之一可以被設置為將給定tlp中的數據標記為需要持久性存儲。例如,只要總線34上的實體被編程為將它如此識別,則在2.2.6.5節中定義的「nosnoop」屬性欄位可以被用於這個目的。該方法的優點在於,其利用現有的總線協議特徵,而不需要定義新的消息傳遞接口。

因此,當nic38(或總線34上的另一實體)在尋址到存儲器設備40的寫入tlp中通過總線34傳送數據時,nic可在tlp描述符中設置持久性標誌以標記持久性地數據。存儲器設備40中的控制器46跟蹤其中保存這種標記數據的緩衝器44中的地址範圍。在投遞寫入操作之後,nic38通過總線34向設備40發送刷新指令,例如,具有設置了相同持久性標誌的零長度讀取。控制器46識別這個刷新指令,並將在緩衝存儲器44中保存的所有標記的數據立即刷新到持久性存儲器42。在將標記數據刷新到持久性存儲器42之後,控制器46通過總線34發送尋址到刷新指令的發起者的完成消息,諸如對零長度讀取的響應。

圖2是根據本發明的實施方式示意性示出用於控制持久性存儲器設備40的方法的流程圖。為了完整性,該方法結合了上述兩種持久性控制協議的特徵:持久性代理48和用於持久性的事務包的標記之間的消息傳遞接口。可選地,這些協議中的任一個可獨立於其它協議而單獨在計算機22中使用。此外,雖然為了清楚和方便起見具體參考設備40描述了該方法,但是,它可以可選地應用於將持久性數據寫入系統存儲器30以及其它總線連接的持久性存儲器組件。

當設備40通過總線34接收tlp時,圖2的方法在tlp接收步驟50處啟動。在解析步驟52處,控制器46讀取tlp報頭以便確定所請求的操作的類型。當tlp是寫入包時,在持久性檢查步驟54處,控制器46檢查事務描述符以確定持久性標誌是否被設置。如果沒有被設置,則在投遞式寫入步驟56處,存儲器設備40將tlp處理為包含在tlp有效載荷中的數據的普通的投遞式寫入。在這種情況下,數據可被寫入緩衝存儲器44,並且然後根據由控制器46設置的優先級被刷新到持久性存儲器42,而沒有立即刷新或在故障情況下的持久性的任何保證。如果持久性標誌被設置,並且數據被寫入緩衝存儲器44,則控制器46在持久性寫入步驟58處標記用於刷新的數據。

另一方面,當在步驟52處發現在步驟50處接收的tlp不是寫入包時,在刷新檢查步驟60處,控制器46檢查tlp以確定其是否包含刷新指令。如果不包含,則控制器46在非刷新操作步驟62處繼續由tlp指示的適當操作,例如數據讀取操作。否則,控制器將根據刷新指令繼續將數據從緩衝存儲器44刷新到持久性存儲器42。

如前所述,本發明的實施方式提供兩種互補類型的刷新操作:到pa48的刷新消息,其指定將被刷新到持久性存儲器42的存儲器範圍;以及刷新tlp,諸如零長度讀取,其指示先前標記用於持久性的所有數據應該被刷新到持久性存儲器。控制器46在刷新類型檢查步驟64處檢查這兩種類型的操作中的哪一種被調用。如果在步驟50處接收的tlp是具有設置了持久性標誌的刷新tlp,則控制器46識別當前保存在緩衝存儲器44中的所有標記的數據,即,在具有設置了持久性標誌的寫入tlp中到達的數據,並且在標記的刷新步驟66處將這些數據刷新到持久性存儲器42。控制器46然後用指示已標記的數據已被刷新並且現在被存儲在持久性存儲器42中的tlp來響應nic38。

可選地,如果在步驟50處接收到的tlp包含指定要刷新的存儲器範圍的消息,則pa48在範圍刷新步驟68處將指定範圍中的所有數據刷新到持久性存儲器42(無論數據是否被標記)。pa48然後向nic38發送完成消息,報告指定範圍中的數據現在存儲在持久性存儲器42中。

上述技術可以用於實現rdma持久性寫入語義。這樣的語義允許網絡26上的對等節點中的nic(諸如計算機24的nic39)將數據寫入計算機22上的存儲器(諸如設備40或系統存儲器30),並接收指示數據實際上已被刷新到持久性存儲器42或37的完成報告。為了使計算機22上的實體能夠調用這些類型的操作,新的rdma動詞可被定義為:rdma刷新,以及可能的rdma持久性寫入。這些動詞由在計算機22上運行的軟體進程在向nic39提交工作請求時使用,這使nic39通過網絡26將對應的rdma寫入包和rdma刷新包傳輸到nic38。(後一種包類型在這裡被稱為「rdma刷新」,因為其與rdma寫入操作的關聯性,但是它實際上可以作為具有在有效載荷中的刷新控制描述的send包來傳輸)。

例如,nic39可以通過網絡26傳輸包含將被寫入存儲器設備40的數據並指定數據將被寫入的地址的一個或多個rdma寫入包。nic39然後傳輸指示所有先前投遞的寫入將被刷新到持久性存儲器42或識別存儲器設備40中將被刷新到持久性存儲器42的地址範圍的rdma刷新包。在接收到rdma寫入包時,nic38通過總線34將一個或多個對應的寫入tlp發送到設備40,設備40可以將數據臨時放置在緩衝存儲器44中。然後,響應於rdma刷新包,nic38通過總線34向pa48發送刷新消息,該pa48將適當的數據從緩衝存儲器44刷新到持久性存儲器42。通常,數據和刷新指令從nic38傳送到存儲器設備40,並且數據被存儲器控制器46從緩衝存儲器44刷新到持久性存儲器42,而不生成對cpu28的中斷。

存在rdma刷新包可識別將被刷新的地址範圍的各種方式。例如,計算機24上的刷新工作請求可以包括將被刷新為持久性的地址條目的列表,然後該列表被包括(在任何所需的地址轉換之後)在由nic39傳輸的對應rdma刷新包中以及由nic38發送到存儲器設備40的刷新消息中。另外或可選地,待刷新的地址的範圍可以根據nic39和nic38在發送和接收所討論的rdma包中使用的qp來識別。例如,在給定qp上接收的rdma刷新包可以使nic38指示pa48刷新在該qp上接收到的所有數據,或者刷新在與qp相關聯的特定存儲器區中的、在給定qp上接收的所有數據。

在這點上,存儲器控制器46通常識別設備40的存儲器地址空間內的多個區。每個這樣的區可以與給定的qp相關聯,並且具有由對應的存儲器密鑰(mkey)指示的屬性,其由包括nic38的計算機22的元件在訪問存儲器區時使用。根複合體32在其作為系統存儲器30的存儲器控制器的角色時,可以識別系統存儲器中的類似種類的區和屬性。在一些實施方式中,每個存儲器區的屬性包括刷新屬性,其向適當的存儲器控制器指示如何處理關於該區的刷新命令。例如,刷新屬性可以指示給定區是否對應於包括持久性存儲器的範圍,使得對應的數據被刷新成持久性,或者該區是否僅針對一致性而不是持久性被刷新。對於每個存儲器區的刷新屬性可以由在cpu28上運行的軟體設置,並且因此確定存儲器控制器在接收到刷新命令時如何處理每個這樣的區中的數據。

可選地,nic39可以傳輸包含將被寫入存儲器設備40的數據的一個或多個rdma寫入包,其中這些包指定在設備40中數據將被寫入的地址,並指示數據將被刷新到持久性存儲器。在接收到這些rdma寫入包時,nic38通過總線34向設備40發送具有在tlp描述符中設置的持久性標誌的一個或多個對應的tlp。nic39然後發送rdma刷新包,這使得nic38向存儲器設備40發送刷新tlp,例如具有設置了持久性標誌的零長度讀取tlp。響應於這些tlp,控制器46將接收數據並將數據刷新到持久性存儲器42,如上所述。在這種情況下,同樣,數據和刷新指令從nic38傳送到存儲器設備40,並且數據被控制器46從緩衝存儲器44刷新到持久性存儲器42,而不生成對cpu28的中斷。

在任何情況下(無論所有數據還是指定範圍或所有標記的數據都要被刷新),一旦所有所需的數據已被成功地刷新到持久性存儲器42,控制器46將通過總線34向nic38報告刷新操作已完成。響應於該報告,nic38將通過網絡26將確認包發送回nic39,然後nic39將投遞完成報告(通常以完成隊列元素[cqe]的形式)。一旦啟動數據傳輸的計算機24上的進程接收到完成報告,它就可以認為數據已經以完全可信度被存儲在持久性存儲器中。

圖3是根據本發明的實施方式示意性示出用於被寫入到存儲器設備的數據的遠程刷新的以上技術的示例實現的梯形圖。為了具體性和清楚起見,圖3中的操作中涉及的組件被認為是圖1所示的那些,如上文所述。然而,可選地,圖3中所示的通信和操作的流程可以在本領域中已知的其它類型的系統架構中實現。

作為預備步驟,主機計算機22的cpu28通過向nic38發送註冊指令70來將一個或多個存儲器區註冊在目標存儲器中。註冊指令包括刷新屬性,指示刷新指令在每個存儲器區中如何被處理。

主機計算機24的cpu提交rdma寫入工作請求72,這使得nic39通過網絡26向nic38傳輸一個或多個rdma寫入包74,其包含在工作請求72中指示的數據。當在給定qp上接收到包74時,nic38使用對應的存儲器區的存儲器密鑰(如由註冊指令70所指示的),在一個或多個總線事務76上通過總線34將數據寫入系統存儲器30或設備40中的指定地址。nic38向nic39返回一個或多個rdma寫入確認78。在接收到所有rdma寫入包74的確認後,nic39向主機計算機24的cpu發布寫入完成報告80(諸如cqe)。

在rdma寫入工作請求72後,主機計算機24的cpu向nic39提交rdma刷新工作請求82,使得nic39向nic38傳輸rdma刷新包84。因為將在計算機22中的每個存儲器區上執行的刷新操作的性質由註冊指令70所指示的相應的刷新屬性來確定,所以工作請求82和包84的語義對於將被執行的特定類型的刷新是不可知的(例如,如上所解釋的,數據是被刷新成持久性還是一致性)。在接收到rdma刷新包84時,nic38通過總線34啟動定向到所討論的存儲器區的刷新事務86。

響應於刷新事務86,存儲器控制器(諸如控制器46或根複合體32)執行適當的刷新操作,例如,將緩衝的數據刷新到持久性存儲器42或37。在完成刷新時,存儲器控制器通過總線34向nic38返回刷新通知88,指示數據已經根據需要被刷新。nic38然後向nic39返回刷新確認90,然後nic39向主機計算機24的cpu發布刷新完成報告92。在這個時刻,啟動圖3所示的交換的主機進程被確保所討論的數據已經根據需要全部成功地寫入且刷新。

將認識到,以上描述的實施方式是通過示例的方式引用的,並且本發明不限於上文中已經特別示出和描述的那些。相反,本發明的範圍包括上文所描述的各種特徵的組合和子組合以及本領域技術人員在閱讀以上描述之後將想到的且未在現有技術中公開的其變型和修改。

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀