計算系統(tǒng)對屏障命令的處理的制作方法
【專利說明】計算系統(tǒng)對屏障命令的處理
[0001]優(yōu)先權?目息
[0002]本申請要求于2012年7月27日提交的、美國臨時專利申請?zhí)枮?1/676,544、發(fā)明名稱為“計算系統(tǒng)內(nèi)存的屏障操作”的美國臨時專利申請,于2012年7月30日提交的、美國臨時專利申請?zhí)枮?1/677,057、發(fā)明名稱為“計算系統(tǒng)對屏障命令的處理”的美國臨時專利申請,于2012年7月31日提交的、美國臨時專利申請?zhí)枮?1/677,921、發(fā)明名稱為“計算系統(tǒng)同步屏障操作”的美國臨時專利申請,以及于2013年3月13日提交的、美國臨時專利申請?zhí)枮?1/780,442、發(fā)明名稱為“計算系統(tǒng)對屏障命令的處理”的美國臨時專利申請的優(yōu)先權,其全部內(nèi)容通過引用結合在本申請中。
[0003]關于美國聯(lián)邦政府資助的研發(fā)項目的聲明
[0004]不適用。
[0005]縮微平片附件的引用
[0006]不適用。
【背景技術】
[0007]計算機程序可包括由許多不同計算系統(tǒng)執(zhí)行的許多不同事務。在特定情況下,至少有些事務可能需要按一定的順序執(zhí)行。例如,有些事務可能需要在其他事務之前執(zhí)行,以便程序提供正確的結果。一種控制事務執(zhí)行順序的方法是僅按事務需要執(zhí)行的順序發(fā)布事務。另一種控制事務執(zhí)行順序的方法是使用屏障命令。屏障命令可用于在特定條件得到滿足之前將計算系統(tǒng)保持在某特定狀態(tài)。例如,屏障命令能夠在其他事務執(zhí)行之前阻止計算系統(tǒng)執(zhí)行某些事務。
【發(fā)明內(nèi)容】
[0008]在一實施例中,本發(fā)明包括一種具有存儲器、接口和處理器的計算系統(tǒng)。所述存儲器用于存儲標識與屏障命令相關聯(lián)的目標計算系統(tǒng)的屏障前擴展范圍。所述接口與所述存儲器耦合,用于向所述屏障前擴展范圍內(nèi)標識的所述目標計算系統(tǒng)發(fā)送屏障前計算探針,并接收來自所述目標計算系統(tǒng)的屏障完成通知消息。所述屏障前計算探針用于指示所述目標計算系統(tǒng)監(jiān)聽完成所述屏障命令所需要執(zhí)行的事務的狀態(tài)。所述處理器與所述接口耦合,用于基于接收到的所述屏障完成通知消息確定所述屏障命令的狀態(tài)。
[0009]在另一實施例中,本發(fā)明包括一種具有接口和處理器的計算系統(tǒng)。接口用于從源計算系統(tǒng)接收屏障前計算探針,并向所述源計算系統(tǒng)發(fā)送屏障完成通知消息,其中所述屏障前計算探針指示所述計算系統(tǒng)監(jiān)控與屏障命令相關聯(lián)的事務的狀態(tài),所述屏障完成通知消息指示與所述屏障命令相關聯(lián)的所述事務已由所述計算系統(tǒng)執(zhí)行或所述計算系統(tǒng)保證其將像其已執(zhí)行所述事務一樣工作。處理器與所述接口耦合,用于在從所述源計算系統(tǒng)收到屏障后啟動通知前等待執(zhí)行事先轉發(fā)事務,其中所述事先轉發(fā)事務包括只能在所述屏障命令完成后執(zhí)行的事務,且所述屏障后啟動通知指示與所述事先轉發(fā)事務相關聯(lián)的屏障命令已完成。
[0010]在另一實施例中,本發(fā)明包括一種處理屏障命令的方法。該方法包括:識別事務及與屏障命令相關聯(lián)的目標計算系統(tǒng)。向識別出的所述目標計算系統(tǒng)發(fā)送屏障前計算探針;所述屏障前計算探針指示所述目標計算系統(tǒng)監(jiān)控與所述屏障命令的完成情況相關聯(lián)的事務的執(zhí)行狀態(tài);從所述目標計算系統(tǒng)接收屏障完成通知消息,其中所述屏障完成通知消息表示所述目標計算系統(tǒng)已執(zhí)行了與所述屏障命令完成情況相關聯(lián)的事務,或表示所述目標計算系統(tǒng)能夠保證其像其已執(zhí)行了與所述屏障命令完成情況相關聯(lián)的所述事務;及基于所述接收的屏障完成通知消息確定所述屏障命令是否完成,其中接收屏障前計算探針的所有目標計算系統(tǒng)都返回了其屏障完成通知時,確定所述屏障命令已完成。
[0011]在再一實施例中,本發(fā)明包括一種用于處理屏障命令的方法,包括從源計算系統(tǒng)接收屏障前計算探針。所述屏障前計算探針用于指示接收到所述屏障前計算探針的目標計算系統(tǒng)監(jiān)控與屏障命令相關聯(lián)的事務的狀態(tài)。屏障完成通知消息指示與所述屏障命令相關聯(lián)的事務已執(zhí)行或所述目標計算系統(tǒng)保證其將像其已執(zhí)行了所述事務一樣工作。所述目標計算系統(tǒng)在與所述事先轉發(fā)事務相關聯(lián)的屏障命令完成前接收事先轉發(fā)事務,其中所述事先轉發(fā)事務只能在與所述轉發(fā)事務相關聯(lián)的屏障命令完成后執(zhí)行。在從所述源計算系統(tǒng)收到屏障后啟動通知后執(zhí)行所述事先轉發(fā)事務,其中所述屏障后啟動通知表示與所述事先轉發(fā)事務相關聯(lián)的屏障命令已完成。
[0012]下文通過具體實施例結合附圖及權利要求書對上述及其他特征進一步說明。
【附圖說明】
[0013]為了更完整地理解本發(fā)明,請結合附圖及具體實施例參考以下簡要說明,其中類似的附圖標記表示類似的部件。
[0014]圖1是利用屏障命令的計算系統(tǒng)網(wǎng)絡的示意圖。
[0015]圖2是通過屏障前擴展范圍、屏障前完成探針以及屏障完成通知消息確定屏障命令何時完成的方法的流程圖。
[0016]圖3是利用屏障后擴展范圍、事先轉發(fā)屬性及屏障后啟動通知控制屏障后事務執(zhí)行的方法的流程圖。
[0017]圖4是從源計算系統(tǒng)的角度的處理屏障命令的方法的流程圖。
[0018]圖5是從目標計算系統(tǒng)的角度的處理屏障命令的方法的流程圖。
[0019]圖6是源和/或目標計算系統(tǒng)的示意圖。
[0020]圖7是目標計算系統(tǒng)按順序接收事務時處理屏障命令的示例的示意圖。
[0021]圖8是目標計算系統(tǒng)不按順序接收事務時處理屏障命令的示例的示意圖。
【具體實施方式】
[0022]首先,應理解,盡管下文提供了一個或多個實施例的示例性實施方式,所公開的系統(tǒng)和/或方法均可采用任何數(shù)量的當前已知或已存在的技術予以實現(xiàn)。本發(fā)明不以任何方式被局限于下文說明的示例性實現(xiàn)方式、附圖及技術,包括示例性本發(fā)明所示并說明的示例性設計及實現(xiàn)方式,但可在隨附的權利要求書范圍及其同等范圍內(nèi)予以修改。盡管討論了傳統(tǒng)技術的特定方面以便于理解本發(fā)明,申請人不以任何方式否認這些技術方面的效果,且應理解,本發(fā)明可涵蓋本發(fā)明所討論的一種或多種傳統(tǒng)技術方面。
[0023]本發(fā)明實施例包括處理計算系統(tǒng)的屏障命令的方法和裝置。在一實施例中,向需要執(zhí)行某些事務以便完成屏障命令的目標計算系統(tǒng)發(fā)送屏障前完成探針,基于接上所述屏障前完成探針,所述目標計算系統(tǒng)監(jiān)聽這些事務的狀態(tài),且在所述目標計算系統(tǒng)執(zhí)行了所述事務時或所述目標計算系統(tǒng)能夠保證其會像其執(zhí)行了所述事務一樣工作時,向源計算系統(tǒng)發(fā)送屏障完成通知消息。此時,所述源計算系統(tǒng)能夠基于所述屏障完成通知消息監(jiān)聽所述屏障命令的狀態(tài)。例如,如果所述源計算系統(tǒng)未收到來自所有收到所述屏障前完成探針的目標計算系統(tǒng)的屏障完成通知消息,則所述源計算系統(tǒng)可以確定所述屏障命令尚未完成。如果述源計算系統(tǒng)收到了來自所有收到所述屏障前完成探針的目標計算系統(tǒng)的屏障完成通知消息,則所述源計算系統(tǒng)可以確定所述屏障命令已完成。相應地,所述源計算系統(tǒng)能夠使用所述屏障前完成探針監(jiān)聽屏障命令的狀態(tài)。
[0024]在另一實施例中,源計算系統(tǒng)將事先發(fā)送至目標計算系統(tǒng)的事務標識為事先轉發(fā)事務。例如,只能在屏障命令完成后執(zhí)行的事務可在所述屏障命令完成前發(fā)送至目標計算系統(tǒng)。在這種情況下,所述事務被標識為事先轉發(fā)事務(例如,事先轉發(fā)屏障后事務)。當事務被識別為事先轉發(fā)事務時,收到所述事先轉發(fā)事務的目標計算系統(tǒng)在其從所述源計算系統(tǒng)收到屏障后啟動通知前等待執(zhí)行所述事務。所述屏障后啟動通知指示所要求的屏障命令已完成且所述目標計算系統(tǒng)可執(zhí)行所述事先轉發(fā)事務。
[0025]利用本發(fā)明中描述的屏障前完成探針、屏障后啟動通知和/或其他特征的系統(tǒng)可優(yōu)于其他類型的屏障命令系統(tǒng)。例如,其他屏障命令系統(tǒng)可向收到事務的所有目標計算系統(tǒng)發(fā)送屏障命令以便執(zhí)行。這樣會不必要地使計算系統(tǒng)中止或性能變慢并增加消息流量。在本發(fā)明的至少特定實施例中,只有具有完成屏障命令所需要執(zhí)行的事務的目標系統(tǒng)才接收屏障前完成探針,且只有具有只能在屏障命令完成后執(zhí)行的事務的目標系統(tǒng)接收屏障后啟動通知。相應地,通過只向需要的目標計算系統(tǒng)發(fā)送消息而不是向所有目標計算系統(tǒng)發(fā)送消息,屏障命令消息流量得以減少。此外,收到事先轉發(fā)事務的目標計算系統(tǒng)可執(zhí)行未被標識為事先轉發(fā)事務的任何其他事務。因此,所述目標計算系統(tǒng)不一定會被中止或變慢。下文及附圖描述了實施例的其他特征和好處。
[0026]圖1是利用屏障命令145的計算系統(tǒng)網(wǎng)絡100的示意圖。所述網(wǎng)絡100包括源計算系統(tǒng)110和目標計算系統(tǒng)120。盡管圖1所示的特定示例僅示出了一個源計算系統(tǒng)110和一個目標計算系統(tǒng)120,但各實施例不限于任何特定數(shù)量的源計算系統(tǒng)和目標計算系統(tǒng),且可包括任何數(shù)量的源計算系統(tǒng)和目標計算系統(tǒng)。此外,盡管所述計算系統(tǒng)110和120被標識為源計算系統(tǒng)或目標計算系統(tǒng),但所述計算系統(tǒng)110和120中的任一個均可作為源計算系統(tǒng)、目標計算系統(tǒng)或即作為源計算系統(tǒng)又作為目標計算系統(tǒng)。
[0027]所述計算系統(tǒng)110和120中的每一個均可為獨立的計算設備(如個人計算機、筆記本、智能電話、服務器、平板電腦等)或較大型計算設備的組件(如中央處理器或多核中央處理器的核)。所述計算系統(tǒng)110和120通過通信通道130以可通信的方式彼此耦合。在所述計算系統(tǒng)110和120為獨立計算設備的實施例中,所述通信通道130可為計算網(wǎng)絡,例如但不限于因特網(wǎng)、局域網(wǎng)等。在所述計算系統(tǒng)110和120為較大型計算設備的組件的實施例中,所述通信通道130可為主板、計算機芯片、計算機芯片封裝上的連接或總線。相應地,本發(fā)明的實施例可用于芯片內(nèi)設置或芯片間設置。
[0028]所述源計算系統(tǒng)110包括計算機程序140,所述計算機程序140包括起點141、屏障前事務組142、屏障命令145、屏障后事務組146以及終點149。所述屏障前事務組142可選地包括一個或多個受影響事務143以及一個或多個不受影響事務144。所述屏障前受影響事務143包括完成所述屏障命令145所需要執(zhí)行的事務。所述屏障前未受影響事務144包括在所述屏障命令145之前發(fā)生但不完成所述屏障命令145不需要執(zhí)行的事務。類似地,所述屏障后事務組146可選地也包括一個或多個受影響事務147以及一個或多個不受影響事務148。所述屏障后受影響事務147包括只能在完成所述屏障命令145后執(zhí)行的事物。所述屏障后未受影響事務148包括在所述屏障命令145之后發(fā)生但在執(zhí)行前不需要等待所述屏障命令145完成的事務。換言之,所述屏障前未受影響事務144和所述屏障后未受影響事務148都可隨時執(zhí)行。但是,所述屏障前受影響事務143需要執(zhí)行,以便完成所述屏障命令145,所述屏障后受影響事務147只能在所述屏障命令145完成后執(zhí)行。此外,需要說明的是,盡管圖1所示的具體示例僅示出了事務組142和146以及一個