專利名稱:主機存儲器的基于通知協(xié)議的端點高速緩存的制作方法
主機存儲器的基于通知協(xié)議的端點高速緩存
背景技術(shù):
計算機系統(tǒng)通常包括中央處理單元(CPU)、高速設(shè)備(例如主機高速緩沖存儲器和圖形控制器)、以及外圍總線(例如外圍部件互連(PCI)或PCI Express (PCIe)總線)和片上集成外圍部件(例如網(wǎng)絡接口控制器、通用串行總線端口、閃速存儲器、以及音頻設(shè)備)。 一些計算機系統(tǒng)具有主機接口,其包括存儲器控制器集線器和輸入/輸出(I/O)控制器集線器。存儲器控制器集線器經(jīng)由一致性(coherent)互連把CPU連接到計算機系統(tǒng)的各高速部件,所述一致性互連可以由前端總線或串行接口來實施,比如QPI (Intel QuickPath 互連)或cHT (—致性超傳輸)。I/O控制器集線器經(jīng)由集線器互連把存儲器控制器集線器連接到外圍總線和集成外圍部件。外圍部件根據(jù)外圍總線協(xié)議與I/O控制器集線器進行通信。舉例來說,在現(xiàn)代htel 集線器架構(gòu)中,外圍部件通常經(jīng)由PCI通信協(xié)議或PCIe通信協(xié)議與CPU進行通信。主機高速緩沖存儲器(也被稱作“高速緩存”)是本地高速存儲器,其通過從低級別高速緩存或主存儲器取出并存儲其位置與所請求的數(shù)據(jù)片段鄰近的數(shù)據(jù)而提高系統(tǒng)性能。 主機高速緩沖存儲器通常包括狀態(tài)比特,其指示每條高速緩存線路的狀態(tài)以便在整個計算機系統(tǒng)中保持數(shù)據(jù)一致性。舉例來說,根據(jù)“M0ESI”高速緩存一致性協(xié)議,所述狀態(tài)比特指示相關(guān)聯(lián)的高速緩存線路的狀態(tài)(例如自有(0)、修改(M)、排他(E)、共享(S)、或無效(I))。在許多計算機系統(tǒng)中,利用I/O操作將數(shù)據(jù)從CPU傳送到外圍部件,所述I/O操作通常涉及把數(shù)據(jù)移動到主存儲器,并且隨后由CPU或外圍部件從主存儲器中讀取所述數(shù)據(jù)。舉例來說,在把輸出數(shù)據(jù)從CPU傳送到I/O設(shè)備時,CPU通常創(chuàng)建輸出數(shù)據(jù)、將輸出數(shù)據(jù)傳送到主存儲器,并且把指向輸出數(shù)據(jù)的指針(也被稱作描述符)存儲在已知的位置。CPU 隨后發(fā)出“門鈴”事件,其向I/O設(shè)備通知已經(jīng)準備好發(fā)送所述輸出數(shù)據(jù)。響應于所述門鈴事件,I/O設(shè)備使用所述指針來把輸出數(shù)據(jù)從主存儲器傳送到I/O設(shè)備。新的處理器和I/ 0集線器架構(gòu)除了主存儲器之外還允許從高速緩存直接進行傳送。需要的是在減少CPU參與的情況下提供改進的I/O通信的裝置和方法。
發(fā)明內(nèi)容
在一個方面中,本發(fā)明的特征在于方法,根據(jù)所述方法,響應于從端點設(shè)備接收到針對主機存儲器地址的內(nèi)容狀態(tài)的改變的通知的請求,與所述主機存儲器地址相關(guān)聯(lián)地登記所述端點設(shè)備。響應于所述主機存儲器地址的內(nèi)容狀態(tài)的改變,向端點設(shè)備發(fā)送表明所述主機存儲器地址已改變內(nèi)容狀態(tài)的通知。響應于由端點設(shè)備接收到所述通知,通過數(shù)據(jù)規(guī)劃(schema)確定與所述主機存儲器地址的內(nèi)容狀態(tài)的改變相關(guān)聯(lián)的語義,并且由端點設(shè)備根據(jù)所確定的語義來執(zhí)行動作。本發(fā)明的特征還在于可操作用來實施上述的方法的裝置、以及存儲使計算機實施上述的方法的計算機可讀指令的計算機可讀介質(zhì)。
CN 102549555 A圖1是包括連接到端點設(shè)備的主機CPU的計算機系統(tǒng)架構(gòu)的一個實施例的框圖。圖2是根據(jù)通知協(xié)議的一個實施例的主機高速緩沖存儲器的端點高速緩存的方法的一個實施例的流程圖。圖3是計算機系統(tǒng)架構(gòu)的一個實施例的框圖。圖4是應用(application)與端點設(shè)備之間的計算機軟件棧的一個實施例的圖
7J\ ο圖5是計算機系統(tǒng)架構(gòu)的一個實施例的框圖。圖6A是根據(jù)通知協(xié)議的一個實施例的高速緩存代理與存儲器代理之間的交互圖。圖6B是根據(jù)通知協(xié)議的一個實施例的高速緩存代理與存儲器代理之間的交互圖。圖7示出根據(jù)通知協(xié)議的一個實施例的無效化消息的一個示例性實施例。圖8是包括連接到圖形處理單元的CPU的計算機系統(tǒng)布置的一個實施例的框圖。圖9是包括連接到網(wǎng)絡接口控制器的CPU的計算機系統(tǒng)布置的一個實施例的框圖。圖10是包括連接到多個端點設(shè)備的CPU的計算機系統(tǒng)布置的一個實施例的框圖。圖11是包括連接到數(shù)據(jù)存儲系統(tǒng)的CPU的計算機系統(tǒng)布置的一個實施例的框圖。圖12是包括連接到多個存儲設(shè)備的多個CPU的計算機系統(tǒng)布置的一個實施例的框圖。圖13是包括虛擬化設(shè)備驅(qū)動器、管理程序和端點設(shè)備的I/O虛擬化架構(gòu)的一個實施例的圖示。圖14是包括經(jīng)由互連而連接到多個存儲設(shè)備的多個CPU的計算機系統(tǒng)架構(gòu)的一個實施例的框圖。
具體實施例方式在下面的描述中,相同的附圖標記被用來標識相同的元件。此外,附圖意圖以圖示的方式說明示例性實施例的主要特征。附圖不意圖描繪實際實施例的每項特征和所描繪元件的相對尺寸,并且不是按比例繪制的。I.術(shù)語的定義
“計算機”是根據(jù)臨時地或永久地存儲在計算機可讀介質(zhì)上的計算機可讀指令來處理數(shù)據(jù)的任何機器、設(shè)備、或裝置?!安僮飨到y(tǒng)”是計算機系統(tǒng)的軟件部件,其管理并協(xié)調(diào)各項任務的執(zhí)行以及計算和硬件資源的共享?!败浖谩?也被稱作軟件、應用、計算機軟件、計算機應用、程序、以及計算機程序)是計算機可以解釋并執(zhí)行來執(zhí)行一項或多項特定任務的指令集合。“數(shù)據(jù)文件”是耐久地存儲數(shù)據(jù)以供軟件應用使用的信息塊。中央處理單元(CPU)是可以執(zhí)行軟件應用的電子電路。CPU可以包括一個或多個處理器(或處理核心)?!爸鳈CCPU”是控制其他設(shè)備或為其他設(shè)備提供服務的CPU,所述其他設(shè)備包括I/O設(shè)備和其他外圍設(shè)備。術(shù)語“處理器”指代通常在單個芯片上的電子電路,其執(zhí)行操作,包括但不限于數(shù)據(jù)處理操作、控制操作、或者數(shù)據(jù)處理操作和控制操作這二者。
術(shù)語“機器可讀介質(zhì)”指代能夠攜帶可由機器(例如計算機)讀取的信息的任何物理介質(zhì)。適于有形地包括這些指令和數(shù)據(jù)的存儲設(shè)備包括但不限于所有形式的非易失性計算機可讀存儲器,例如包括半導體存儲器設(shè)備(比如EPROM、EEPROM和閃速存儲器設(shè)備)、磁盤(比如內(nèi)部硬盤和可移除硬盤)、磁光盤、DVD-ROM/RAM、以及CD-ROM/RAM。存儲器地址的“內(nèi)容狀態(tài)”指的是存儲在計算機可讀介質(zhì)中的所述存儲器地址處的內(nèi)容的狀態(tài)?!爸鳈C高速緩沖存儲器”指的是存儲來自主存儲器的數(shù)據(jù)的拷貝以便減少CPU的訪問等待時間的高速存儲器。主機高速緩沖存儲器可以是單個存儲器或分布式存儲器。舉例來說,主機高速緩沖存儲器可以存在于以下地點中的一項或多項在CPU芯片上;在存儲器控制器前方;以及在I/O集線器內(nèi)。所有這些高速緩存都可以被一致性地保持并被用作 DMA操作的來源/目的地?!岸它c”是由通信實體在通信鏈路的一端所暴露出的接口。“端點設(shè)備”是處于通信鏈路的一端的物理硬件實體?!癐/O設(shè)備”是連接到主機CPU但是與主機CPU分開并分立的物理硬件實體。I/O 設(shè)備可以位于或者可以不位于與主機CPU相同的電路板上。I/O設(shè)備可以位于或者可以不位于與主機CPU相同的硬件管芯或封裝上。"PCIe高速緩存代理”(PCA)是通過利用Rcoh協(xié)議的PCIe管理存儲器的高速緩存的客戶端子系統(tǒng)。"PCIe存儲器代理”(PMA)是通過利用Rcoh協(xié)議的PCIe管理可高速緩沖存儲器的導出的服務子系統(tǒng)。受限一致性(Rcoh)是支持在PCIe上的主機高速緩沖存儲器的高速緩存的PCIe協(xié)議。如在這里所使用的那樣,術(shù)語“包括”意味著包括但不限于,以及術(shù)語“包括”意味著包括但不限于。術(shù)語“基于”意味著至少部分地基于。II.總覽
在這里所描述的實施例在減少CPU參與的情況下提供改進的I/O通信。這些實施例利用了主機高速緩沖存儲器的基于通知協(xié)議的端點高速緩存以便在I/O通信中減少CPU參與。所述基于高速緩存的通知協(xié)議使I/O等待時間和所消耗的I/O帶寬能夠被顯著地減少。 另外,該協(xié)議還允許主機軟件與端點設(shè)備之間的直接信令。圖1示出包括連接到端點設(shè)備14的主機CPU 12的計算機系統(tǒng)架構(gòu)10的一個實施例。主機CPU 12包括一個或多個處理核心16、主機高速緩沖存儲器18、主機互連20、以及主機接口 22。主機互連20互連(一個或多個)處理核心16和主機高速緩沖存儲器18。主機互連20可以通過多種互連技術(shù)中的任一種來實施。舉例來說,在一些實施例中,主機互連20 可以通過縱橫交換結(jié)構(gòu)來實施。主機接口 22把主機CPU 12連接到端點設(shè)備14。主機接口 22可以通過多種不同的互連機制來實施。舉例來說,根據(jù)htel 集線器架構(gòu),主機接口 20由通過集線器互連而鏈接的存儲器控制器集線器和I/O控制器集線器來實施。存儲器控制器集線器經(jīng)由一致性互連(例如前端總線或串行互連)把主機CPU 12連接到計算機系統(tǒng)的更高速部件,所述一致性互連被用來經(jīng)由一致性協(xié)議交換信息。I/O控制器集線器把存儲器控制器集線器連接到更低速設(shè)備,其中包括諸如端點設(shè)備14之類的外圍設(shè)備。一般來說,外圍設(shè)備根據(jù)外圍總線協(xié)議與I/O控制器集線器進行通信。外圍設(shè)備中的一些可以根據(jù)標準外圍通信協(xié)議與I/O控制器集線器進行通信,比如PCI通信協(xié)議或 PCIe通信協(xié)議。外圍總線協(xié)議通常是包括事務層、路由層、鏈路層和物理層的多層通信協(xié)議。事務層通常包括形成、排序、以及處理具有系統(tǒng)互連報頭的分組的各種協(xié)議引擎。示例性的事務層協(xié)議引擎類型包括一致性引擎、中斷引擎、以及I/O引擎。分組被提供到路由層,該路由層例如利用基于目的地的路由(其基于路由表)在路由層內(nèi)將分組從來源路由到目的地。路由層將分組傳遞到鏈路層。鏈路層在兩個直接連接的代理之間可靠地傳送數(shù)據(jù)并且提供流控制。鏈路層還使設(shè)備之間的物理信道能夠被虛擬化(例如虛擬化成多個消息類別和虛擬網(wǎng)絡),這允許在多條虛擬信道之間對所述物理信道進行多路復用。物理層例如經(jīng)由點對點互連在兩個直接連接的代理之間傳送信息。其他外圍設(shè)備(包括端點設(shè)備14)被配置成根據(jù)通知協(xié)議與I/O集線器控制器進行通信,所述通知協(xié)議使這些外圍部件能夠高速緩存主機高速緩沖存儲器18的各條線路, 并且能夠被通知所述高速緩存線路的內(nèi)容狀態(tài)的任何后續(xù)改變。所述通知協(xié)議使端點設(shè)備 14能夠高速緩存數(shù)據(jù)而不是對于每次訪問通過外圍總線傳送所述數(shù)據(jù),從而對于一些使用模型減少了 I/O等待時間和所消耗的帶寬。I/O帶寬消耗的減少還減少主機存儲器帶寬消耗。所述通知協(xié)議還使主機軟件能夠通過更新高速緩存線路而不是執(zhí)行所編程的Ι/0(ΡΙ0) 操作來用信號通知端點設(shè)備14,從而避免高的軟件開銷以及同步和流控制問題。根據(jù)所述通知協(xié)議進行通信的實體通常包括實施標準外圍總線協(xié)議(例如PCIe) 的經(jīng)修改的版本的相應代理。除了實施標準外圍總線協(xié)議的功能之外,這些代理還被配置成管理由端點高速緩存的數(shù)據(jù)。舉例來說,在一些實施例中,端點14包括管理在端點14內(nèi)高速緩存的數(shù)據(jù)的高速緩存代理,并且路由部件和/或主機CPU 12包括跟蹤主機高速緩沖存儲器18的哪些線路已被高速緩存的存儲器代理。這些代理通??梢晕挥诙它c設(shè)備14、路由部件、以及主機CPU 12的多種不同部件中的任何部件中。在一些實施例中,主機CPU 12 把存儲器代理包括在主機接口 22中。在一些實施例中,所述代理執(zhí)行PCIe事務,所述PCIe事務包括使端點登記對于特定高速緩存線路(主機存儲器地址)的興趣以及使主機CPU向端點通知特定高速緩存線路的內(nèi)容狀態(tài)已發(fā)生改變的機制。在這些實施例中的一些中,所述通知機制通過對于連線 (wire)協(xié)議的較小修改來實施,其允許端點14中的高速緩存代理向主機CPU 12中的存儲器代理通知,所述設(shè)備對特定高速緩存線路感興趣。在這些實施例中的一些中,高速緩存代理在與存儲器代理的鏈路連接上的事務中設(shè)置比特。存儲器代理把所設(shè)置的比特解釋為針對向端點設(shè)備14中的高速緩存代理通知特定主機存儲器地址的內(nèi)容狀態(tài)的任何改變(例如內(nèi)容的改變)的請求,其中所述特定主機存儲器地址被標識在所述事務中所描述的相關(guān)聯(lián)的DMA訪問請求(例如讀取或?qū)懭?中。作為響應,存儲器代理登記端點設(shè)備以便與所述主機存儲器地址的內(nèi)容狀態(tài)的改變相關(guān)聯(lián)地通知。當存儲器代理確定所述特定高速緩存線路已被更新時(例如已經(jīng)向其寫入新值),存儲器代理識別出已經(jīng)登記了對于該高速緩存線路的興趣的所有實體,并且為對于其內(nèi)容狀態(tài)發(fā)生了改變的高速緩存線路感興趣的每個端點生成相應的通知消息。所述消息通常簡單地指示,所述特定高速緩存線路的內(nèi)容的狀態(tài)已經(jīng)改變。圖2示出根據(jù)基于通知協(xié)議的使用模型的一個實施例的主機高速緩沖存儲器的端點高速緩存的方法的一個實施例。根據(jù)該方法,存儲器代理響應于接收到來自端點設(shè)備 14的請求而與主機存儲器地址相關(guān)聯(lián)地登記端點設(shè)備(圖2,框M),其中所述請求是針對所述主機存儲器地址的內(nèi)容狀態(tài)的改變進行通知。響應于所述主機存儲器地址的內(nèi)容狀態(tài)的改變,存儲器代理向端點設(shè)備14發(fā)送表明所述主機存儲器地址已經(jīng)改變了內(nèi)容狀態(tài)的通知(圖2,框沈)。響應于由端點設(shè)備14接收到所述通知,高速緩存代理通過數(shù)據(jù)規(guī)劃確定與所述主機存儲器地址的內(nèi)容狀態(tài)的改變相關(guān)聯(lián)的語義,并且端點設(shè)備14根據(jù)所確定的語義執(zhí)行動作(圖2,框觀)。正如下面詳細地解釋的那樣,可以基于所述通知協(xié)議所允許的輕量型通知來實施多種多樣的使用模型。舉例來說,被配置成根據(jù)所述通知協(xié)議進行通信的一個或多個實體可以通過共享數(shù)據(jù)規(guī)劃來協(xié)調(diào)其動作,所述共享數(shù)據(jù)規(guī)劃把主機高速緩沖存儲器中的地址集合與對主機存儲器地址的內(nèi)容狀態(tài)的改變的通知給出含義的語義相關(guān)聯(lián)。舉例來說,對應于特定主機存儲器地址的內(nèi)容狀態(tài)改變通知可以觸發(fā)由接收實體執(zhí)行以下動作中的任一項前進到下一工作請求,獲得下一存儲器塊以用于數(shù)據(jù)移動,前進到下一計算回合,以及返回計算的結(jié)果。各個使用模型可以采用對于給定數(shù)據(jù)規(guī)劃所允許的一種或多種可能的語義;例如對于數(shù)據(jù)規(guī)劃的一部分的更新翻譯成語義A,而對于一個不同部分的更新翻譯成語義B。使用模型可以利用寬范圍的語義來加速計算、減少處理器/存儲器總線利用等等,這除了其他好處之外還可以導致更高效的操作和潛在的電力節(jié)省。圖3示出附加地包括內(nèi)核模式部件32和用戶模式部件38的計算機系統(tǒng)架構(gòu)10 (圖1)的一個實施例30。內(nèi)核模式部件包括設(shè)備驅(qū)動器34和庫36。用戶模式部件38包括讀取數(shù)據(jù)規(guī)劃42的應用40,所述數(shù)據(jù)規(guī)劃42把語義與主機存儲器地址相關(guān)聯(lián)??梢砸远喾N不同格式中的任一種來規(guī)定數(shù)據(jù)規(guī)劃42。在一些實施例中,以擴展標記語言(XML)格式來規(guī)定數(shù)據(jù)規(guī)劃42。數(shù)據(jù)規(guī)劃42可以是適用于多種應用環(huán)境的標準化規(guī)劃,或者其對于特定應用環(huán)境可以是唯一的。應用40通過經(jīng)由庫36所提供的應用編程接口(API)調(diào)用函數(shù)或服務來實施特定使用模型。作為響應,所述庫生成由設(shè)備驅(qū)動器34讀取的一系列API調(diào)用。在這一過程中, 設(shè)備驅(qū)動器34利用數(shù)據(jù)規(guī)劃42的基地址來對端點設(shè)備14進行編程。端點設(shè)備14讀取數(shù)據(jù)規(guī)劃42,以便確定分別與表明特定主機存儲器地址的內(nèi)容狀態(tài)已發(fā)生改變的通知相關(guān)聯(lián)的語義。舉例來說,在一些實施例中,數(shù)據(jù)規(guī)劃42可以指示與基地址的偏移地址X相關(guān)聯(lián)的內(nèi)容狀態(tài)改變通知意味著,應當在該地址處讀取數(shù)據(jù)規(guī)劃42,并且應當采取動作Al ;與基地址的偏移地址Y相關(guān)聯(lián)的內(nèi)容狀態(tài)改變通知意味著,數(shù)據(jù)規(guī)劃42已被更新,并且應當采取動作A2 ;與基地址的偏移地址Z相關(guān)聯(lián)的內(nèi)容狀態(tài)改變通知意味著,應當把計算結(jié)果寫回到基地址的偏移地址Z,并且向另一個端點設(shè)備通知所述結(jié)果已準備好用于處理。圖4是由所述通知協(xié)議實現(xiàn)的應用40與端點設(shè)備14之間的概念計算機軟件棧 43的一個實施例的圖示。如圖4中所示,所述通知協(xié)議提供了對應于通過應用40以及通過傳統(tǒng)操作系統(tǒng)部件的直接硬件訪問的多個選項,所述傳統(tǒng)操作系統(tǒng)部件比如是套接字服務44、文件/塊服務45、網(wǎng)絡協(xié)議棧46、以及存儲協(xié)議棧47。所述通知的這些特征提供了消除軟件開銷的新機會,并且允許新的通信范例(例如并行及無鎖定通信)。另外,所述通知協(xié)議使主數(shù)據(jù)路徑中的傳統(tǒng)設(shè)備驅(qū)動器能夠由一個或多個管理設(shè)備驅(qū)動器48、49來替代, 所述管理設(shè)備驅(qū)動器代表提供更直接的硬件訪問的規(guī)范端點設(shè)備定義(例如以USB/類別驅(qū)動器風格的方式)。III.示例性通知協(xié)議 A.總覽
正如上面所解釋的那樣,所述通知協(xié)議使外圍端點設(shè)備能夠高速緩存主機高速緩沖存儲器18的各條線路,并且能夠被通知所述高速緩存線路的內(nèi)容狀態(tài)的任何后續(xù)改變。本章節(jié)描述一種示例性通知協(xié)議(在這里被稱作“受限一致性,,或“Rcoh”協(xié)議),其對應于PCIe 協(xié)議的增強的版本(例如參見PCI-Express Base Specification version 2.0,2006年 12 月20日,其全部內(nèi)容被結(jié)合在此以作參考)。Rcoh協(xié)議允許跨越PCIe互連的存儲器的高速緩存。具體來說,使端點能夠高速緩存主機存儲器高速緩存線路(在這里也被稱作“線路”),并且在某一實體(例如CPU或設(shè)備) 對所述端點已經(jīng)高速緩存的線路進行寫入的情況下能夠通知所述端點。雖然所述協(xié)議允許多個端點同時高速緩存任何給定線路,但是所述協(xié)議受到的限制在于,決不為端點給出對于線路的排他所有權(quán),因此單憑所述協(xié)議無法協(xié)調(diào)多個寫入者的同時更新。所述Rcoh協(xié)議由端點中的PCIe高速緩存代理(PCA)和主機系統(tǒng)中的PCIe存儲器代理(PMA)來實施。PCA是端點中的通過PCIe管理對于存儲器的高速緩存的客戶端子系統(tǒng)。PMA是主機中的通過PCIe導出可高速緩存的存儲器的服務子系統(tǒng)。Rcoh協(xié)議提供了當高速緩存線路被修改時的通知服務。對于讀取,PCA向具有相關(guān)聯(lián)的PMA的存儲器空間范圍發(fā)送Rcoh讀取,從而請求高速緩存線路或“線路”的拷貝。PMA將所請求的線路返回給 PCA,并且記錄PCA具有所述線路的高速緩存的拷貝。稍后,如果另一實體更新所述線路,則 PMA經(jīng)由Rcoh無效化消息通知所述PCA,因此PCA可以無效化所述線路的其拷貝。類似的通知服務對于寫入也存在,其中如果線路被更新,則對所述線路進行寫入的PCA可以請求稍后被通知。Rcoh是受限一致性協(xié)議,這是因為決不為PCA給出對于線路的排他所有權(quán)。Rcoh 協(xié)議允許多個PCA同時分別具有任何給定線路的共享拷貝,但是Rcoh協(xié)議不協(xié)調(diào)由多個寫入者執(zhí)行的更新。具有PCA的端點被允許在任何時間對線路進行寫入,而不管該PCA是否具有對應于該線路的未決通知。如果需要多個寫入者之間的協(xié)調(diào),則必須通過落在本說明書范圍之外的其他協(xié)議來實現(xiàn)。Rcoh通知協(xié)議定義了 Rcoh讀取和Rcoh寫入,其在大多數(shù)方面分別類似于PCIe存儲器讀取和PCIe存儲器寫入。最明顯的差異在于,Rcoh讀取/寫入導致在未來更新了所高速緩存的線路的情況下,經(jīng)由主機發(fā)送Rcoh無效化消息來通知端點。在一些實施例中, 所述協(xié)議支持兩個高速緩存線路尺寸(CLS),即64字節(jié)和1 字節(jié)。對于每個CLS的支持是可選的,對于主機和端點來說都是如此。Rcoh協(xié)議支持可選地是規(guī)范性的,并且適用于根復合體(RC)、交換機、以及具有端點功能的部件。Rcoh路由支持不適用于PCIe到PCI/PCI-X橋。Rcoh協(xié)議是針對設(shè)備對主機存儲器請求而構(gòu)建的,并且只有在端點、RC和所有中間路由元件都支持必要的Rcoh能力的情況下才應當由軟件實現(xiàn)。具有Rcoh請求者能力的端點必須支持生成Rcoh讀取請求、Rcoh寫入請求或全部二者。這樣的端點必須還支持接收Rcoh無效化消息,并且相應地無效化所高速緩存的任何線路。PCA管理在端點內(nèi)高速緩存的數(shù)據(jù)。具有Rcoh路由能力的路由元件(交換機和RC)必須支持對于Rcoh讀取和Rcoh寫入請求的正確轉(zhuǎn)發(fā)。這樣的路由元件還必須正確地轉(zhuǎn)發(fā)Rcoh無效化消息,其包括針對單個端點的定向版本和針對給定根端口之下的所有部件的廣播版本。下游端口必須阻止嘗試去往下游的任何Rcoh讀取或Rcoh寫入請求,從而在AER (高級錯誤報告;參見下文)中報告新的Rcoh出口受阻錯誤。具有Rcoh完成者能力的根復合體(RC)必須支持接收Rcoh讀取和Rcoh寫入請求, 并且適當?shù)厣蒖coh無效化消息。RC或主機中的一個或多個PMA跟蹤哪些線路已被端點
高速緩存。支持Rcoh協(xié)議的軟件發(fā)現(xiàn)哪些部件支持Rcoh協(xié)議以及其支持哪些CLS。如果主機、端點和路由元件支持必要的Rcoh能力,則軟件使端點能夠使用Rcoh協(xié)議,從而規(guī)定要使用哪個CLS。B.基本Rcoh協(xié)議
圖5是包括主機處理器、主機存儲器、主機內(nèi)部結(jié)構(gòu)、根端口、交換機、以及端點的示例性計算機系統(tǒng)架構(gòu)50的一個實施例的框圖。圖5示出這些元件的簡化視圖并且示出其如何被互連以提供用于理解Rcoh協(xié)議如何操作的情境。在上圖中,端點X、端點Z和RCIE O 分別包含PCA。根復合體包含PMA。圖6A是根據(jù)通知協(xié)議的一個實施例的高速緩存代理與存儲器代理之間的交互圖。在上圖中示出基本Rcoh協(xié)議。對于左側(cè)示出的讀取的情況=(I)PCA利用Rcoh讀取請求從主機存儲器請求線路的拷貝;(2) PMA在完成中返回所述線路并且記錄該PCA具有拷貝;以及(3)如果PMA稍后需要PCA無效化其拷貝,則PMA利用Rcoh無效化消息來通知 PCA。圖6B示出根據(jù)通知協(xié)議的一個實施例的高速緩存代理與存儲器代理之間的交互圖。對于右側(cè)示出的寫入的情況=(I)PCA利用Rcoh寫入請求將其對于線路的拷貝寫入到主機存儲器;(2) PMA記錄該PCA具有對應于該線路的未決通知;以及(3)如果稍后必要的話,PMA利用Rcoh無效化消息通知PCA。如果所高速緩存的線路被某一實體(例如CPU或設(shè)備)寫入,或者如果PMA簡單地將不再跟蹤該線路的內(nèi)容狀態(tài),則PMA將發(fā)送Rcoh無效化消息。圖7示出Rcoh無效化消息52的一個示例性實施例。Rcoh無效化消息52中的EV比特指示,所述消息是由于收回 (EV是設(shè)置的)還是由于所述線路被寫入(EV是清除的)而被發(fā)送的。一旦PMA發(fā)送了對應于線路的Rcoh無效化,則除非其接收到新的Rcoh讀取或Rcoh寫入請求,否則其將不發(fā)送對應于該線路的附加Rcoh無效化。如果具有對應于線路的未決通知的請求者發(fā)送了對應于該相同線路的新的Rcoh 讀取或Rcoh寫入請求,則請求者通常無法確定其對于該線路接收到的后續(xù)Rcoh無效化是對應于最近的Rcoh讀取/寫入請求還是對應于前一個。由于Rcoh無效化的無響應性質(zhì), Rcoh協(xié)議自身不足以使PCA實施一致性直寫(write-through)高速緩存。C. Rcoh協(xié)議概要
下面描述Rcoh協(xié)議的規(guī)則和要求再加上一些獨特的要求。□ Rcoh讀取和Rcoh寫入請求被視為分別是PCIe存儲器讀取和PCIe存儲器寫入請求的附加形式。
□除非另有明確地聲明,否則PCIe存儲器讀取請求的所有要求都適用于Rcoh讀取請求。
〇除了類型字段碼之外,Rcoh讀取請求TLP格式與PCIe存儲器讀取請求TLP格式完全相同。
〇正如Rcoh系統(tǒng)CLS所確定的那樣,Rcoh讀取請求必須訪問不多于單條高速緩存線路。完成者必須檢查這種錯誤情況,并且除非完成者檢測到更高優(yōu)先級的錯誤,否則將其作為完成者中止來處理。允許部分高速緩存線路讀取,其中包括零長度讀取。
〇如果完成者將Rcoh讀取請求處理為不可校正錯誤或勸告性非致命錯誤,則PMA不可設(shè)置對應于該請求的通知服務。
〇Rcoh讀取請求的排序和流控制規(guī)則與存儲器讀取請求的完全相同。
〇Rcoh讀取請求的完成與PCIe存儲器讀取請求的完成完全相同。
□除非另有明確地聲明,否則PCIe存儲器寫入請求的所有要求都適用于Rcoh寫入請求。
〇除了類型字段碼之外,Rcoh寫入請求TLP格式與PCIe存儲器寫入請求TLP格式完全相同。
〇正如Rcoh系統(tǒng)CLS所確定的那樣,Rcoh寫入請求必須訪問不多于單條高速緩存線路。完成者必須檢查這種錯誤情況,并且除非完成者檢測到更高優(yōu)先級的錯誤,否則將其作為完成者中止來處理。
〇如果完成者將Rcoh寫入請求處理為不可校正錯誤,則PMA不可設(shè)置對應于該請求的通知服務。
〇Rcoh寫入請求的排序、流控制和數(shù)據(jù)中毒規(guī)則與PCIe存儲器寫入請求的完全相同。
〇請求者不可生成對應于MSI或MSI-X中斷的Rcoh寫入請求。完成者不可將Rcoh 寫入請求接受為合法中斷。
〇如果完成者將Rcoh寫入接收到所述完成者在該處將把存儲器寫入處理為MSI或 MSI-X中斷的位置,則除非完成者檢測到更高優(yōu)先級的錯誤,否則必須把這種情況處理為不受支持請求(UR)。
〇Rcoh寫入請求不可被處理為多播TLP。
□對于Rcoh讀取和Rcoh寫入請求,地址必須是正確的類型,正如地址類型(AT)字段所指示的那樣。正確的類型取決于是否正在使用翻譯代理(TA)。參見Address Translation Services (ATS)Specification,Revision 1. O (可以從 www. pcisig. com/specifications/ iov/ats/獲得),其全文被結(jié)合在此以作參考。
〇如果正在使用TA,則所述地址必定是已翻譯地址。PCA請求者必須支持ATS以便獲取及使用已翻譯地址。
〇如果沒有在使用TA,則所述地址必定是默認/未翻譯地址。 □對于交換機或RC,當Rcoh讀取或Rcoh寫入請求的目標是離開下游端口時,出口端口必須將該請求處理為Rcoh出口受阻錯誤(參見下文)。對于Rcoh讀取請求,出口端口必須還返回具有UR的完成狀態(tài)的完成,并且如果Rcoh出口受阻錯誤的嚴重性是非致命的,則必須將這種情況處理為勸告性非致命錯誤,正如在PCIe規(guī)范中所描述的那樣。
□如果多功能設(shè)備中的任何端點功能支持Rcoh請求者能力,則該設(shè)備中的所有功能必須正確地解碼所形成的Rcoh讀取或Rcoh寫入請求,并且將其所接收到的任何這樣的請求處理為不受支持請求(UR)。
□如果具有PCA的端點功能經(jīng)歷常規(guī)重置或FLR,則所述PCA必須將其已經(jīng)高速緩存的任何高速緩存線路無效化。D. Rcoh協(xié)議排序考慮
Rcoh讀取請求具有與PCIe存儲器讀取請求相同的排序要求,并且Rcoh寫入請求具有與PCIe存儲器寫入請求相同的排序要求。對應于Rcoh讀取的完成具有與對應于PCIe存儲器讀取的完成相同的排序要求。事務排序規(guī)則允許Rcoh無效化消息傳遞讀取完成。在邏輯上,Rcoh請求者可能假設(shè),對應于Rcoh讀取請求的完成將總是在與相同的Rcoh讀取請求相關(guān)聯(lián)的Rcoh無效化到達之前到達。然而,由于Rcoh無效化可能傳遞完成,因此請求者不可做出這一假設(shè)。由于請求者不可假設(shè)完成總是在相關(guān)聯(lián)的Rcoh無效化之前到達,因此對應于 Rcoh讀取請求的完成者被允許按照任一種順序來發(fā)送所述完成及其相關(guān)聯(lián)的Rcoh無效化。Rcoh協(xié)議自身足以使PCA實施一致性只讀高速緩存。對于其中PMA具有未決Rcoh 讀取并且對應于該讀取的Rcoh無效化在相關(guān)聯(lián)的完成之前到達的情況,PMA不應當在數(shù)據(jù)到達時對其高速緩存。然而,對于一些使用模型,在所返回的數(shù)據(jù)到達時立即對其進行使用可能仍然是有意義的。E. Rcoh軟件配置
在一些實施例中,Rcoh協(xié)議支持兩個高速緩存線路尺寸(CLS ),即64字節(jié)和1觀字節(jié)。 對于每個CLS的支持是可選的,對于根復合體和端點來說都是如此。系統(tǒng)所使用的CLS由主機確定,并且由適用的根端口和RCRB中的Rcoh系統(tǒng)CLS字段來指示。指示Rcoh完成者支持的所有根端口和RCRB都應當指示相同的CLS,否則結(jié)果是未定義的。在任何操作系統(tǒng)正在運行的同時,主機不應當改變Rcoh系統(tǒng)CLS,否則結(jié)果是未定義的。支持Rcoh協(xié)議的端點可以支持任一個或者全部兩個CLS,并且經(jīng)由Rcoh-64請求者受支持和Rcoh-128請求者受支持能力比特來指示其支持哪個。在使能每個Rcoh請求者之前,軟件應當確保相關(guān)聯(lián)的Rcoh請求者CLS控制比特被配置成匹配Rcoh系統(tǒng)CLS,否則結(jié)果是未定義的。僅支持一個CLS的Rcoh請求者被允許將其Rcoh請求者CLS控制比特硬連線到對應值。除非其Rcoh請求者使能控制比特是清除的并且沒有高速緩存的線路,否則軟件不應當改變請求者中的Rcoh請求者CLS控制比特的值;否則,結(jié)果是未定義的。除非給定的Rcoh請求者與主機之間的所有路由元件都支持Rcoh路由能力,否則軟件不應當使能給定的Rcoh請求者。否則,不具有Rcoh路由能力的任何路由元件都將把任何接收到的Rcoh請求處理為錯誤形式的TLP。F.能力和控制
PCIe設(shè)備能力2寄存器中的四個新比特允許軟件發(fā)現(xiàn)端點中的Rcoh請求者能力、路由元件中的Rcoh路由能力、以及主機中的Rcoh完成者能力。
權(quán)利要求
1.一種方法,包括響應于從端點設(shè)備(14)接收到針對主機存儲器地址的內(nèi)容狀態(tài)的改變的通知的請求, 與所述主機存儲器地址相關(guān)聯(lián)地登記所述端點設(shè)備(14);響應于所述主機存儲器地址的內(nèi)容狀態(tài)的改變,向所述端點設(shè)備(14)發(fā)送表明所述主機存儲器地址已改變內(nèi)容狀態(tài)的通知;以及響應于由所述端點設(shè)備(14)接收到所述通知,通過數(shù)據(jù)規(guī)劃(42)確定與所述主機存儲器地址的內(nèi)容狀態(tài)的改變相關(guān)聯(lián)的語義,并且根據(jù)所確定的語義由所述端點設(shè)備(14)執(zhí)行動作。
2.根據(jù)權(quán)利要求1所述的方法,其中,所述登記是響應于從所述端點設(shè)備(14)接收到訪問請求而執(zhí)行的,并且所述訪問請求包括針對訪問所述主機存儲器地址的請求和針對所述通知的請求。
3.根據(jù)權(quán)利要求2所述的方法,其中,所述訪問請求包括針對讀取存儲在所述主機存儲器地址中的數(shù)據(jù)的請求,并且所述方法還包括響應于針對讀取數(shù)據(jù)的所述請求,向所述端點設(shè)備(14)發(fā)送存儲在所述主機存儲器地址中的所述數(shù)據(jù)的拷貝;以及由所述端點設(shè)備(14)存儲所述數(shù)據(jù)的拷貝。
4.根據(jù)權(quán)利要求3所述的方法,還包括在接收到所述訪問請求的同時,從第二端點設(shè)備接收針對讀取存儲在所述主機存儲器地址中的數(shù)據(jù)的第二請求;以及響應于針對讀取數(shù)據(jù)的第二請求,向第二端點設(shè)備發(fā)送所述數(shù)據(jù)的第二拷貝;以及把所述數(shù)據(jù)的第二拷貝存儲在第二端點設(shè)備中。
5.根據(jù)權(quán)利要求3或4所述的方法,還包括響應于接收到表明所述主機存儲器地址已經(jīng)改變內(nèi)容狀態(tài)的通知,使由所述端點設(shè)備(14)存儲的所述數(shù)據(jù)的拷貝無效化。
6.根據(jù)在前權(quán)利要求中的任何一項所述的方法,其中,所述訪問請求包括針對向所述主機存儲器地址寫入數(shù)據(jù)的請求,并且所述方法還包括響應于針對寫入數(shù)據(jù)的所述請求, 將數(shù)據(jù)寫入到所述主機存儲器地址。
7.根據(jù)在前權(quán)利要求中的任何一項所述的方法,其中,各計算部件(78-82)根據(jù)對在所述數(shù)據(jù)規(guī)劃(42)中規(guī)定的語義進行索引的已編程指令彼此進行通信,這是通過以下操作來實現(xiàn)的發(fā)送針對向所述主機存儲器地址進行寫入的請求,接收從所述寫入請求得到的所述主機存儲器地址的內(nèi)容狀態(tài)的改變的通知,以及根據(jù)所述語義執(zhí)行動作。
8.根據(jù)權(quán)利要求7所述的方法,其中,所述確定包括把響應于針對與所述數(shù)據(jù)規(guī)劃 (42)的第一部分相對應的一個或多個主機存儲器地址的更新而接收到的通知翻譯成第一語義,并且把響應于針對與所述數(shù)據(jù)規(guī)劃(42)的第二部分相對應的一個或多個主機存儲器地址的更新而接收到的通知翻譯成第二語義。
9.根據(jù)權(quán)利要求8所述的方法,其中,所述通知的翻譯包括把所述通知翻譯成從以下各項中選擇的至少一個動作前進到下一工作請求,獲得下一存儲器塊以用于移動,前進到下一計算回合,以及返回計算的結(jié)果。
10.根據(jù)在前權(quán)利要求中的任何一項所述的方法,其中,所述發(fā)送包括向與所述主機存儲器地址相關(guān)聯(lián)地登記的多個計算部件(78-82)中的每個發(fā)送表明所述主機存儲器地址的內(nèi)容狀態(tài)已發(fā)生改變的相應通知。
11.根據(jù)權(quán)利要求1-10中的任何一項所述的方法,其中,所述數(shù)據(jù)規(guī)劃(42)規(guī)定,與所述主機存儲器地址相關(guān)聯(lián)的語義意味著所述主機存儲器地址是空閑的;并且所述方法還包括從應用接收針對向所述主機存儲器地址進行寫入的請求,并且作為響應,向所述端點設(shè)備(58)發(fā)送表明所述主機存儲器地址的內(nèi)容狀態(tài)已發(fā)生改變的通知;響應于由所述端點設(shè)備(58)接收到所述通知,從所述端點設(shè)備(58)發(fā)送針對向所述主機存儲器地址寫入數(shù)據(jù)的請求;響應于接收到由所述端點設(shè)備(58)發(fā)送的針對寫入數(shù)據(jù)的所述請求,將數(shù)據(jù)寫入到所述主機存儲器地址,并且作為響應,向所述應用發(fā)送表明所述主機存儲器地址的內(nèi)容狀態(tài)已發(fā)生改變的通知;響應于由所述應用接收到所述通知,從所述應用發(fā)送針對讀取被寫入到所述主機存儲器地址的數(shù)據(jù)的請求。
12.根據(jù)權(quán)利要求1-10中的任何一項所述的方法,其中,所述數(shù)據(jù)規(guī)劃(42)規(guī)定,與所述主機存儲器地址相關(guān)聯(lián)的語義意味著,所述主機存儲器地址包含指向數(shù)據(jù)存儲位置的指針并且將要移動從所述指針偏移的固定尺寸的數(shù)據(jù)塊;并且所述方法還包括從應用接收針對將所述指針寫入到所述主機存儲器地址的請求,以及作為響應,把所述指針寫入到所述主機存儲器地址,并且向所述端點設(shè)備(68)發(fā)送表明所述主機存儲器地址的內(nèi)容狀態(tài)已發(fā)生改變的通知;響應于由所述端點設(shè)備(68)接收到所述通知,從所述端點設(shè)備(68)發(fā)送針對讀取所述主機存儲器地址的請求;響應于從所述端點設(shè)備(68)接收到針對讀取的所述請求,從所述主機存儲器地址向所述端點設(shè)備(68)發(fā)送所述指針的拷貝,并且向所述應用發(fā)送表明所述主機存儲器地址的內(nèi)容狀態(tài)已發(fā)生改變的通知;以及響應于由所述端點設(shè)備接收到所述指針的拷貝,移動從所述指針偏移的固定尺寸的數(shù)據(jù)塊。
13.根據(jù)權(quán)利要求1-10中的任何一項所述的方法,其中,所述數(shù)據(jù)規(guī)劃(42)規(guī)定,與所述主機存儲器地址相關(guān)聯(lián)的語義意味著,所述主機存儲器地址包含指向要處理的數(shù)據(jù)的指針,并且將要把經(jīng)處理的數(shù)據(jù)寫回到另一主機存儲器地址;并且所述方法還包括從第二端點設(shè)備(80)接收針對把所述指針寫入到所述主機存儲器地址的請求,以及作為響應,將所述指針寫入到所述主機存儲器地址,與所述主機存儲器地址相關(guān)聯(lián)地登記第二端點設(shè)備(80),并且向第一端點設(shè)備(78)發(fā)送表明所述主機存儲器地址的內(nèi)容狀態(tài)已發(fā)生改變的通知;響應于由第一端點設(shè)備(78)接收到所述通知,從第一端點設(shè)備(78)發(fā)送針對讀取所述主機存儲器地址的請求;響應于接收到由第一端點設(shè)備(78)發(fā)送的針對讀取的請求,從所述主機存儲器地址向第一端點設(shè)備(78)發(fā)送所述指針的拷貝,并且向與所述主機存儲器地址相關(guān)聯(lián)地登記的每個實體發(fā)送表明所述主機存儲器地址已發(fā)生改變的相應通知;響應于由第一端點設(shè)備(78)接收到所述指針的拷貝,處理由所述指針索引的數(shù)據(jù)以產(chǎn)生經(jīng)處理的數(shù)據(jù),并且發(fā)送針對把經(jīng)處理的數(shù)據(jù)寫入到所述另一主機存儲器地址的請求; 以及接收針對把經(jīng)處理的數(shù)據(jù)寫入到所述另一主機存儲器地址的所述請求,以及作為響應,把所述經(jīng)處理的數(shù)據(jù)寫入到所述另一主機存儲器地址,并且向與所述另一主機存儲器地址相關(guān)聯(lián)地登記的每個實體(78-82)發(fā)送表明所述另一主機存儲器地址已發(fā)生改變的相應通知。
14.根據(jù)權(quán)利要求1-10中的任何一項所述的方法,還包括由第一處理器(94)更新所述主機存儲器地址;其中,所述確定包括把響應于所述主機存儲器地址的更新而接收到的通知翻譯成從第一處理器(94)讀取數(shù)據(jù)的動作并且根據(jù)所確定的語義把所讀取的數(shù)據(jù)發(fā)送到第二處理器, 以及所述執(zhí)行包括由所述端點設(shè)備(96)從第一處理器(94)讀取所述數(shù)據(jù)并且把由所述端點設(shè)備(96)所讀取的數(shù)據(jù)發(fā)送到第二處理器。
15.根據(jù)權(quán)利要求1-10中的任何一項所述的方法,還包括由操作在與共享存儲器(116-1 )相連的節(jié)點簇中的第一節(jié)點(112)上的應用的第一實例訪問所述主機存儲器地址;并且其中,所述確定包括把響應于所述主機存儲器地址的更新而接收到的通知翻譯成更新存儲在所述共享存儲器中的數(shù)據(jù)的動作并且根據(jù)所確定的語義把表明所述共享存儲器 (116-126)的內(nèi)容狀態(tài)的改變的通知發(fā)送到操作在所述節(jié)點簇中的第二節(jié)點(114)上的所述應用的第二實例,以及所述執(zhí)行包括更新存儲在所述共享存儲器中的數(shù)據(jù)并且把表明所述共享存儲器(116-1 )的內(nèi)容狀態(tài)的改變的通知發(fā)送到所述應用的第二實例。
16.根據(jù)權(quán)利要求1-10中的任何一項所述的方法,還包括由與主機操作系統(tǒng)同時執(zhí)行在共享主機計算系統(tǒng)上的訪客操作系統(tǒng)更新所述主機存儲器地址;并且其中,所述確定包括根據(jù)所確定的語義把響應于所述主機存儲器地址的更新而接收到的通知翻譯成動作,以及所述執(zhí)行包括由所述端點設(shè)備(136)執(zhí)行所述動作。
17.根據(jù)權(quán)利要求1-10中的任何一項所述的方法,還包括把應用的當前執(zhí)行狀態(tài)存儲在本地存儲設(shè)備(156)中,響應于所述當前執(zhí)行狀態(tài)的存儲而由所述本地存儲設(shè)備(156)寫入到所述主機存儲器地址,以及把所存儲的執(zhí)行狀態(tài)的塊寫入到另一主機存儲器地址;并且其中,所述確定包括把響應于由所述本地存儲設(shè)備(156)寫入到所述主機存儲器地址而接收到的通知翻譯成從所述另一主機存儲器地址讀取所述應用的所存儲的執(zhí)行狀態(tài)的塊的動作,以及所述執(zhí)行包括從所述另一主機存儲器地址讀取所述應用的所存儲的執(zhí)行狀態(tài)的塊。
18.根據(jù)權(quán)利要求1-10中的任何一項所述的方法,其中,所述數(shù)據(jù)規(guī)劃(42)規(guī)定,與所述主機存儲器地址相關(guān)聯(lián)的語義意味著主機處理器(12)正操作在特定電力狀態(tài)下;所述方法還包括由所述主機處理器(12)更新所述主機存儲器地址;并且其中,所述確定包括根據(jù)所述主機處理器(12)的操作的電力狀態(tài)把響應于所述主機存儲器地址的更新而接收到的通知翻譯成動作,以及所述執(zhí)行包括由所述端點設(shè)備(14)執(zhí)行所述動作。
19.一種裝置,包括端點設(shè)備(14);CN 102549555 A存儲計算機可讀指令的計算機可讀介質(zhì);以及耦合到所述計算機可讀介質(zhì)的數(shù)據(jù)處理器(12),其可操作用來執(zhí)行所述指令,并且至少部分地基于所述指令的執(zhí)行而可操作用來執(zhí)行包括下述的操作響應于從所述端點設(shè)備(14)接收到針對主機存儲器地址的內(nèi)容狀態(tài)的改變的通知的請求而與所述主機存儲器地址相關(guān)聯(lián)地登記所述端點設(shè)備(14);以及響應于所述主機存儲器地址的內(nèi)容狀態(tài)的改變,向所述端點設(shè)備(14)發(fā)送表明所述主機存儲器地址已改變內(nèi)容狀態(tài)的通知;并且其中,響應于由所述端點設(shè)備(14)接收到所述通知,所述端點設(shè)備可操作用來執(zhí)行包括下述的操作通過數(shù)據(jù)規(guī)劃(42)確定與所述主機存儲器地址的內(nèi)容狀態(tài)的改變相關(guān)聯(lián)的語義,并且根據(jù)所確定的語義由所述端點設(shè)備(14)執(zhí)行動作。
20.至少一種計算機可讀介質(zhì),具有在其中包括的計算機可讀程序代碼,所述計算機可讀程序代碼適于由計算機執(zhí)行以實施包括下述的方法響應于從端點設(shè)備(14)接收到針對主機存儲器地址的內(nèi)容狀態(tài)的改變的通知的請求, 與所述主機存儲器地址相關(guān)聯(lián)地登記所述端點設(shè)備(14);響應于所述主機存儲器地址的內(nèi)容狀態(tài)的改變,向所述端點設(shè)備(14)發(fā)送表明所述主機存儲器地址已改變內(nèi)容狀態(tài)的通知;以及響應于由所述端點設(shè)備(14)接收到所述通知,通過數(shù)據(jù)規(guī)劃(42)確定與所述主機存儲器地址的內(nèi)容狀態(tài)的改變相關(guān)聯(lián)的語義,并且根據(jù)所確定的語義由所述端點設(shè)備(14)執(zhí)行動作。
全文摘要
響應于從端點設(shè)備(14)接收到針對主機存儲器地址的內(nèi)容狀態(tài)的改變的通知的請求,與所述主機存儲器地址相關(guān)聯(lián)地登記所述端點設(shè)備(14)。響應于所述主機存儲器地址的內(nèi)容狀態(tài)的改變,向所述端點設(shè)備(14)發(fā)送表明所述主機存儲器地址已改變內(nèi)容狀態(tài)的通知。響應于由所述端點設(shè)備(14)接收到所述通知,通過數(shù)據(jù)規(guī)劃(42)確定與所述主機存儲器地址的內(nèi)容狀態(tài)的改變相關(guān)聯(lián)的語義,并且根據(jù)所確定的語義由所述端點設(shè)備(14)執(zhí)行動作。
文檔編號G06F3/06GK102549555SQ200980161851
公開日2012年7月4日 申請日期2009年10月7日 優(yōu)先權(quán)日2009年10月7日
發(fā)明者M.克勞澤 申請人:惠普發(fā)展公司,有限責任合伙企業(yè)