專利名稱:用于事務(wù)存儲器管理中的沖突仲裁的優(yōu)先化的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及并行計算中的事務(wù)存儲器利用領(lǐng)域,更具體地說,本發(fā)明涉及事務(wù)存儲器管理中的沖突仲裁。
背景技術(shù):
事務(wù)存儲器技術(shù)嘗試通過以原子方式執(zhí)行一組加載和存儲指令,來簡化并行編程 (parallel programming)。一般而言,事務(wù)存儲器是與數(shù)據(jù)庫事務(wù)類似的并發(fā)控制機(jī)制,用于控制并行計算中對共享存儲器的訪問。但是,與大多數(shù)現(xiàn)代多線程應(yīng)用中使用的鎖定技術(shù)不同,事務(wù)存儲器可以被視為樂觀的(optimistic),因為一個線程完成對共享存儲器的修改而不考慮其他線程的活動,同時記錄每個執(zhí)行的讀寫操作并將推測性更改緩沖到存儲器中。當(dāng)兩個或更多個事務(wù)訪問同一存儲器塊并且其中至少有一個訪問為寫訪問時,便會發(fā)生事務(wù)沖突。在使用事務(wù)存儲器時,不是由存儲器塊的讀取者或?qū)懭胝哓?fù)責(zé)確保事務(wù)的執(zhí)行不與其他正在進(jìn)行的事務(wù)發(fā)生沖突,而是由事務(wù)存儲器系統(tǒng)負(fù)責(zé)確認(rèn)其他線程沒有并發(fā)地對存儲器塊做出沖突引用。此類事務(wù)存儲器系統(tǒng)可以通過軟件、硬件或軟件和硬件的組合來實現(xiàn)。檢查存儲器引用是否與其他并發(fā)存儲器引用沖突的操作通常被稱為驗證。 如果驗證成功,便會在事務(wù)結(jié)束時,通過經(jīng)常被稱為提交的操作使所有存儲器更改永久化。 但是,事務(wù)可能隨時中止(abort),從而導(dǎo)致該事務(wù)先前所執(zhí)行的所有更改回滾或取消。如果事務(wù)因為沖突的更改而無法提交,則可以中止或從頭重新執(zhí)行該事務(wù),直到該事務(wù)成功。因此,本領(lǐng)域的技術(shù)人員將理解,樂觀事務(wù)存儲器方法的優(yōu)點在于提高了并發(fā)性。 具體而言,在本領(lǐng)域公知的樂觀方法中,執(zhí)行的任何線程無需等待來訪問存儲器塊。進(jìn)一步地,不同的執(zhí)行線程可以同時安全地修改數(shù)據(jù)結(jié)構(gòu)的不同部分,而這些不同部分在其他方法中會受同一個鎖的保護(hù)??傊?,盡管重試失敗的事務(wù)會增加開銷,但是在許多現(xiàn)實的程序中,沖突發(fā)生得足夠少,以至于與基于鎖的協(xié)議相比,事務(wù)存儲器技術(shù)可以為大量處理器提供巨大性能增益。沖突仲裁是一種機(jī)制,用于在發(fā)生沖突時判定阻止或中止哪些事務(wù),以及允許哪些事務(wù)繼續(xù)執(zhí)行。沖突仲裁由底層爭用管理策略控制。已經(jīng)針對事務(wù)存儲器系統(tǒng)提出了簡單的沖突仲裁機(jī)制,例如,當(dāng)事務(wù)嘗試訪問的數(shù)據(jù)同時被另一活動事務(wù)訪問而導(dǎo)致沖突時, 中止該事務(wù)。但是,最近的研究顯示了高級爭用管理(better contention management)的重要性。高級爭用管理避免了簡單爭用管理策略中可能存在的“活鎖”,高級爭用管理大幅提高了頻繁沖突情況下的性能。復(fù)雜爭用管理策略可允許在等待競爭事務(wù)成功提交的同時臨時阻止事務(wù)嘗試執(zhí)行沖突訪問,同時使用啟發(fā)式方法最大化事務(wù)吞吐量,另外還使用一些機(jī)制提高公平性或提供更好的向前進(jìn)展保證。然而,盡管有些爭用管理策略顯示了跨越一組基準(zhǔn)或應(yīng)用的良好性能,但是沒有任何單個策略是普遍最佳的
發(fā)明內(nèi)容
本發(fā)明的實施例彌補(bǔ)了本領(lǐng)域中有關(guān)事務(wù)存儲器系統(tǒng)的沖突仲裁的缺陷,并提供了一種用于事務(wù)存儲器管理中嵌入式?jīng)_突仲裁的并發(fā)事務(wù)的軟件優(yōu)先化(prioritize)的新穎且非顯著的方法、系統(tǒng)和計算機(jī)程序產(chǎn)品。在本發(fā)明的實施例中,一種用于事務(wù)存儲器管理中嵌入式?jīng)_突仲裁的、并發(fā)事務(wù)的軟件優(yōu)先化的方法可包括在被配置為進(jìn)行事務(wù)存儲器管理的系統(tǒng)中,根據(jù)系統(tǒng)外部軟件支持中的優(yōu)先級分配邏輯指定的相應(yīng)優(yōu)先級值,為相應(yīng)不同事務(wù)使用不同優(yōu)先級值設(shè)置不同的硬件寄存器。所述方法還可包括檢測系統(tǒng)中事務(wù)之間的沖突。最后,所述方法可包括根據(jù)系統(tǒng)外部軟件支持中的優(yōu)先級分配邏輯指定的優(yōu)先級值在系統(tǒng)中應(yīng)用沖突仲裁。優(yōu)先級值構(gòu)成沖突仲裁機(jī)制的基礎(chǔ)并實現(xiàn)爭用管理策略。讓軟件控制優(yōu)先級值允許使用適合每個基準(zhǔn) (benchmark)或應(yīng)用的不同爭用管理策略。在實施例的一個方面,所述方法還包括從系統(tǒng)的另一寄存器中檢索沖突仲裁控制值。所述沖突仲裁控制值可以指定沖突仲裁操作的類型和性質(zhì)中的至少一項。這樣,沖突仲裁的應(yīng)用可以限制為所述沖突仲裁控制值指定的沖突仲裁操作的類型和性質(zhì)中的至少一項。在實施例的另一方面,不同的優(yōu)先級值可以限制為能夠被系統(tǒng)外部軟件支持中的優(yōu)先級分配邏輯指定的一個范圍內(nèi)的優(yōu)先級值。在實施例的又一方面,根據(jù)系統(tǒng)外部軟件支持中的優(yōu)先級分配邏輯指定的優(yōu)先級值在系統(tǒng)中應(yīng)用沖突仲裁可包括阻止優(yōu)先級低于其他事務(wù)的一個選定事務(wù)。作為替代,根據(jù)系統(tǒng)外部軟件支持中的優(yōu)先級分配邏輯指定的優(yōu)先級值在系統(tǒng)中應(yīng)用沖突仲裁可包括中止優(yōu)先級低于其他事務(wù)的一個選定事務(wù)。作為另一替代,根據(jù)系統(tǒng)外部軟件支持中的優(yōu)先級分配邏輯指定的優(yōu)先級值在系統(tǒng)中應(yīng)用沖突仲裁可包括檢測至少兩個具有相同優(yōu)先級的事務(wù),并產(chǎn)生中斷以便外部軟件支持代替執(zhí)行沖突仲裁的系統(tǒng)執(zhí)行針對所述至少兩個事務(wù)的沖突仲裁。在本發(fā)明的另一實施例中,可提供一種多處理器計算機(jī)數(shù)據(jù)處理系統(tǒng)。所述系統(tǒng)可包括與硬件存儲器相連的多個不同的處理器以及每個處理器的指令集架構(gòu)(ISA)支持的事務(wù)管理器。所述系統(tǒng)還可包括位于每個處理器中的寄存器。所述寄存器可以存儲所述事務(wù)管理器管理的訪問存儲器的事務(wù)的優(yōu)先級值。沖突仲裁邏輯也可以位于所述系統(tǒng)中。 所述邏輯可包括能夠根據(jù)與發(fā)生沖突的事務(wù)對應(yīng)的優(yōu)先級值對發(fā)生沖突的事務(wù)應(yīng)用沖突仲裁的硬件或軟件。最后,所述系統(tǒng)可包括與硬件相連并且被配置為訪問所述寄存器以設(shè)置優(yōu)先級值的軟件支持。本發(fā)明的其他方面部分將在下面的說明中闡明,部分將通過所述說明變得顯而易見,或者可以通過實施本發(fā)明來了解。將通過所附權(quán)利要求中特別指出的元素和元素組合實現(xiàn)和達(dá)到本發(fā)明的各個方面。應(yīng)該理解的是,上述一般描述和下面的詳細(xì)描述僅作為示例和說明,并非旨在對所請求保護(hù)的本發(fā)明做出任何限制。
被納入本說明書中并構(gòu)成其一部分的附圖示出了本發(fā)明的實施例,并與說明一起用于解釋本發(fā)明的原理。此處所示的實施例目前為優(yōu)選的,但是應(yīng)該理解,本發(fā)明不限于所示的精確安排和手段,在所述附圖中圖1是用于事務(wù)存儲器管理中嵌入式?jīng)_突仲裁的并發(fā)事務(wù)的軟件優(yōu)先化的過程的圖示;圖2是被配置為用于事務(wù)存儲器管理中嵌入式?jīng)_突仲裁的并發(fā)事務(wù)的軟件優(yōu)先化的多處理器計算系統(tǒng)的示意圖;以及圖3是用于事務(wù)存儲器管理中嵌入式?jīng)_突仲裁的并發(fā)事務(wù)的軟件優(yōu)先化的過程的流程圖。
具體實施例方式本發(fā)明的實施例提供了一種用于事務(wù)存儲器管理中嵌入式?jīng)_突仲裁的并發(fā)事務(wù)的軟件優(yōu)先化的方法、系統(tǒng)和計算機(jī)程序產(chǎn)品。根據(jù)本發(fā)明的一個實施例,可以將多處理器計算系統(tǒng)配置為用于事務(wù)存儲器管理。所述系統(tǒng)中的每個處理器都可包括可從外部訪問的寄存器,所述寄存器存儲處理器執(zhí)行的相應(yīng)事務(wù)的優(yōu)先級值。在所述事務(wù)存儲器系統(tǒng)中提供了沖突仲裁邏輯,該沖突仲裁邏輯,在處理器外部的程序代碼指導(dǎo)下,根據(jù)存儲在寄存器中的、由外部建立的、與發(fā)生沖突的事務(wù)對應(yīng)的優(yōu)先級值對發(fā)生沖突的事務(wù)進(jìn)行仲裁。通過這種方式,所述系統(tǒng)的沖突仲裁邏輯可以對發(fā)生沖突的事務(wù)執(zhí)行沖突仲裁,而不考慮建立優(yōu)先級值的算法。在進(jìn)一步的說明中,圖1是用于事務(wù)存儲器管理中嵌入式?jīng)_突仲裁的并發(fā)事務(wù)的軟件優(yōu)先化的過程的說明圖。如圖1所示,多處理器硬件IlOA可以與諸如多處理器配置的操作系統(tǒng)之類的軟件支持IlOB結(jié)合起來提供多處理器計算系統(tǒng)。多處理器硬件IlOA可以跨多個不同的處理器實現(xiàn)針對事務(wù)存儲器140配置的ISA和語義130。在此方面,不同的處理器可以在事務(wù)存儲器140上執(zhí)行讀和寫事務(wù)150。值得注意的是,優(yōu)先級160可與每個事務(wù)150關(guān)聯(lián)。然而,當(dāng)優(yōu)先級160存儲在多處理器硬件110A,例如,內(nèi)部寄存器中時,可以由軟件支持IlOB提供的外部優(yōu)先級分配邏輯120進(jìn)行訪問和設(shè)置??蛇x地,當(dāng)外部優(yōu)先級分配邏輯120僅被授予對存儲優(yōu)先級160 的內(nèi)部寄存器具有非特權(quán)訪問權(quán)限時,它可被限制為只能指定一個優(yōu)先級值范圍內(nèi)的優(yōu)先級。然而,當(dāng)外部優(yōu)先級分配邏輯120被授予對存儲優(yōu)先級160的內(nèi)部寄存器具有特權(quán)訪問權(quán)限時,它可以指定默認(rèn)值范圍以上或以下的優(yōu)先級值。優(yōu)先級值160可取決于事務(wù)運(yùn)行的時間,并可以是事務(wù)首次啟動時間的函數(shù),啟動時間越早,被指定的優(yōu)先級值越高。在此方面,響應(yīng)于中止和重啟條件,可重用事務(wù)的原始啟動時間來設(shè)置優(yōu)先級,以便所指定的優(yōu)先級與首次嘗試事務(wù)時的優(yōu)先級相同。這種基于時間戳的方法會很適合用于當(dāng)舊的事務(wù)被中止和重啟時避免重復(fù)工作。進(jìn)一步地,基于事務(wù)首次啟動時間戳的優(yōu)先級促進(jìn)了公平,因為隨著時間推移,事務(wù)運(yùn)行的時間越長,就越有可能在沖突中獲勝。優(yōu)先級160還可以依據(jù)事務(wù)已訪問的數(shù)據(jù)量或事務(wù)已執(zhí)行的計算量而定。當(dāng)事務(wù)前進(jìn)時,優(yōu)先級也可在不同的時刻增長,從而反映增加的進(jìn)展。如在時間戳方法中,可使用優(yōu)先級度量如果將中止和重啟事務(wù),將需要重復(fù)的工作量。作為另一替代,優(yōu)先級可取決于事務(wù)是否被阻止或中止,并被重啟。具體而言,當(dāng)阻止/中止時或面臨重復(fù)阻止/中止時, 可提高優(yōu)先級160以便促進(jìn)公平和事務(wù)的向前進(jìn)展。在任何情況下,一旦建立了每個優(yōu)先級160,便可在沖突仲裁中評估這些優(yōu)先級, 所述沖突仲裁是由沖突仲裁過程300根據(jù)多處理器硬件IlOA的ISA和語義130實現(xiàn)中的定義,針對事務(wù)存儲器140執(zhí)行的。通過這種方式,對事務(wù)存儲器140中的沖突執(zhí)行仲裁的機(jī)制便可保持獨(dú)立于建立每個事務(wù)150的優(yōu)先級160的算法。進(jìn)一步地,盡管可以通過軟件支持IlOB提供的外部優(yōu)先級分配邏輯120中的變化,以不同的方式建立優(yōu)先級160,但是沖突仲裁過程300可以保持不受影響。圖1中描述的過程可以在多處理器計算系統(tǒng)的ISA和語義中實現(xiàn)。在圖示中,圖 2是被配置為用于事務(wù)存儲器管理中嵌入式?jīng)_突仲裁的并發(fā)事務(wù)的軟件優(yōu)先化的多處理器計算系統(tǒng)的示意圖。所述系統(tǒng)可以是包括多處理器安排220中的多個不同的處理器230的多處理器計算系統(tǒng)210A,其中每個處理器連接到公共存儲器250。進(jìn)一步地,多處理器計算系統(tǒng)210A可以支持在多處理器計算系統(tǒng)210A上面執(zhí)行的操作系統(tǒng)210B的操作。每個處理器230可以提供支持事務(wù)存儲器管理器MO的ISA和語義,事務(wù)存儲器管理器240管理對存儲器250的讀寫事務(wù)集。由于在同時向同一存儲器塊250執(zhí)行讀或?qū)懯聞?wù)時會產(chǎn)生沖突,因此可將沖突仲裁邏輯300連接到事務(wù)存儲器管理器M0。具體而言, 啟用沖突仲裁邏輯300以根據(jù)與一組事務(wù)關(guān)聯(lián)的優(yōu)先級280對該組嘗試訪問同一存儲器塊 250的事務(wù)進(jìn)行仲裁。具體而言,每個處理器230中的不同寄存器可以被分配為存儲對應(yīng)于待提交到存儲器250的不同事務(wù)的優(yōu)先級觀0。沖突優(yōu)先級建立邏輯290可以位于操作系統(tǒng)210B中, 并且可以像其他應(yīng)用代碼那樣能夠訪問優(yōu)先級280以建立個別優(yōu)先級觀0。接下來,可以響應(yīng)于檢測到一組事務(wù)存在沖突,啟用沖突仲裁邏輯300檢索相應(yīng)的優(yōu)先級觀0并根據(jù)檢索到的相應(yīng)優(yōu)先級280應(yīng)用沖突仲裁以解決檢測到的沖突??蛇x的操作包括中止低優(yōu)先級事務(wù),或強(qiáng)制個別缺乏必要優(yōu)先級的事務(wù)等待??梢苑峙涿總€處理器230中的其他一個或多個寄存器來存儲沖突仲裁控制值 270。沖突仲裁控制值270可以指定當(dāng)根據(jù)各個優(yōu)先級280對待提交到存儲器250的一組發(fā)生沖突的事務(wù)之間的沖突進(jìn)行仲裁時,將被執(zhí)行的操作的類型和性質(zhì)。例如,沖突仲裁控制值270可以指定禁用事務(wù)阻止,從而強(qiáng)制完全中止沖突中優(yōu)先級低于最高優(yōu)先級事務(wù)的每個事務(wù)。相反,沖突仲裁控制值270也可以允許阻止發(fā)生沖突的事務(wù),以便避免強(qiáng)制中止沖突中優(yōu)先級低于最高優(yōu)先級事務(wù)的每個事務(wù)。作為又一替代,沖突仲裁控制值270可以指定允許對發(fā)生沖突的低優(yōu)先級事務(wù)進(jìn)行硬件阻止,或者沖突仲裁控制值270可以指定要求在硬件產(chǎn)生的中斷所觸發(fā)的軟件中執(zhí)行阻止。值得注意的是,沖突仲裁控制值270可以指定在允許阻止時以時間(例如,毫秒) 或機(jī)器周期表示的、阻止事務(wù)的期間。另外,沖突仲裁控制值270可以啟用自適應(yīng)硬件退避 (backoff),以便當(dāng)所述自適應(yīng)硬件退避被指定時,它可以在反復(fù)產(chǎn)生關(guān)于一事務(wù)的沖突的情況下要求延長所述期間。更進(jìn)一步地,沖突仲裁控制值270可以限制阻止(而非中止) 沖突中的事務(wù)的頻率。一旦檢測到指定時間段內(nèi)針對一事務(wù)的重復(fù)沖突閾值限制,則在由沖突仲裁控制值270指定的情況下,便可以在下一次發(fā)生沖突時強(qiáng)制中止該事務(wù)。替代地, 一旦達(dá)到所述閾值限制,可產(chǎn)生一個中斷以觸發(fā)沖突的軟件仲裁。最后,沖突仲裁控制值 270可以指定產(chǎn)生中斷以便對具有相同對應(yīng)的優(yōu)先級觀0的兩個或多個事務(wù)之間的沖突進(jìn)行軟件仲裁。在對沖突仲裁邏輯300的進(jìn)一步的說明中,圖3是示出用于事務(wù)存儲器管理中嵌入式?jīng)_突仲裁的、并發(fā)事務(wù)的軟件優(yōu)先化的過程的流程圖。從方塊305開始,可以檢測到與存儲器塊和一組事務(wù)關(guān)聯(lián)的沖突。在方塊310,可以檢索所述一組事務(wù)中每個事務(wù)的優(yōu)先級,且在方塊315,可以檢索沖突仲裁控制參數(shù)以判定當(dāng)根據(jù)所涉及事務(wù)的優(yōu)先級對沖突進(jìn)行仲裁時,要采取的操作的類型和性質(zhì)。之后,在方塊320,可以在所述一組事務(wù)中選擇一個事務(wù)。在方塊325,可以根據(jù)選定事務(wù)的優(yōu)先級向該事務(wù)應(yīng)用檢索到的沖突仲裁控制策略。另外,在決策方塊330,如果判定中止選定事務(wù),則在方塊335可以中止選定事務(wù)。否則,在方塊340,如果判定阻止選定事務(wù),則在方塊345可將選定事務(wù)阻止與沖突仲裁控制值關(guān)聯(lián)的一段時間。在任何一種情況下,在決策方塊350,如果事務(wù)集中仍有其他待處理的事務(wù),則過程可以返回到方塊320,選擇事務(wù)集中的下一事務(wù)。本發(fā)明的實施例可以采取完全硬件實施例、完全軟件實施例或同時包含硬件和軟件的實施例的形式。在優(yōu)選實施例中,本發(fā)明使用固件、駐留軟件、微代碼等任何一種方式實現(xiàn)。此外,本發(fā)明可以采取可從計算機(jī)可用或計算機(jī)可讀介質(zhì)訪問的計算機(jī)程序產(chǎn)品的形式,所述計算機(jī)可用或計算機(jī)可讀介質(zhì)提供了可以被計算機(jī)或任何指令執(zhí)行系統(tǒng)使用或與所述計算機(jī)或任何指令執(zhí)行系統(tǒng)關(guān)聯(lián)的程序代碼。出于此描述的目的,所述計算機(jī)可用或計算機(jī)可讀介質(zhì)可以是任何能夠包含、存儲、傳送、傳播或傳輸由指令執(zhí)行系統(tǒng)、裝置或設(shè)備使用或與所述指令執(zhí)行系統(tǒng)、裝置或設(shè)備關(guān)聯(lián)的程序的裝置。所述介質(zhì)可以是電、磁、光、電磁、紅外線或半導(dǎo)體系統(tǒng)(或裝置或設(shè)備)或傳播介質(zhì)。計算機(jī)可讀介質(zhì)的示例包括半導(dǎo)體或固態(tài)存儲器、磁帶、可拆裝計算機(jī)軟盤、隨機(jī)存取存儲器(RAM)、只讀存儲器(ROM)、硬磁盤和光盤。光盤的當(dāng)前示例包括光盤-只讀存儲器(CD-ROM)、光盤-讀/寫(CD-R/W)和DVD。適合于存儲和/或執(zhí)行程序代碼的數(shù)據(jù)處理系統(tǒng)將包括至少一個通過系統(tǒng)總線直接或間接連接到存儲器元件的處理器。所述存儲器元件可以包括在程序代碼的實際執(zhí)行期間采用的本地存儲器、大容量存儲裝置以及提供至少某些程序代碼的臨時存儲以減少必須在執(zhí)行期間從大容量存儲裝置檢索代碼的次數(shù)的高速緩沖存儲器。輸入/輸出或I/O設(shè)備(包括但不限于鍵盤、顯示器、指點設(shè)備等)可以直接或通過居間的I/O控制器與系統(tǒng)相連。網(wǎng)絡(luò)適配器也可以被連接到系統(tǒng)以使所述數(shù)據(jù)處理系統(tǒng)能夠通過居間的專用或公共網(wǎng)絡(luò)變得與其他數(shù)據(jù)處理系統(tǒng)或遠(yuǎn)程打印機(jī)或存儲設(shè)備相連。調(diào)制解調(diào)器、電纜調(diào)制解調(diào)器和以太網(wǎng)卡只是幾種當(dāng)前可用的網(wǎng)絡(luò)適配器類型。
權(quán)利要求
1.一種用于事務(wù)存儲器管理中嵌入式?jīng)_突仲裁的并發(fā)事務(wù)的軟件優(yōu)先化的方法,所述方法包括在被配置為進(jìn)行事務(wù)存儲器管理的事務(wù)存儲器系統(tǒng)中,根據(jù)系統(tǒng)外部軟件支持中的優(yōu)先級分配邏輯指定的相應(yīng)優(yōu)先級值,使用用于相應(yīng)不同事務(wù)的不同優(yōu)先級值設(shè)置不同的硬件寄存器;檢測所述系統(tǒng)中事務(wù)之間的沖突;以及根據(jù)系統(tǒng)外部軟件支持中的優(yōu)先級分配邏輯指定的優(yōu)先級值在所述系統(tǒng)中應(yīng)用沖突仲裁。
2.如權(quán)利要求1中所述的方法,進(jìn)一步包括從所述系統(tǒng)的另一寄存器中檢索沖突仲裁控制值,所述沖突仲裁控制值指定沖突仲裁操作的類型和性質(zhì)中的至少一項;以及將沖突仲裁的應(yīng)用限制到所述沖突仲裁控制值指定的沖突仲裁操作的類型和性質(zhì)中的至少一項。
3.如權(quán)利要求1或2中所述的方法,進(jìn)一步包括將不同的優(yōu)先級值限制為能夠被系統(tǒng)外部軟件支持中的優(yōu)先級分配邏輯指定的一個范圍內(nèi)的優(yōu)先級值。
4.如權(quán)利要求1、2或3中所述的方法,其中根據(jù)系統(tǒng)外部軟件支持中的優(yōu)先級分配邏輯指定的優(yōu)先級值在系統(tǒng)中應(yīng)用沖突仲裁包括阻止優(yōu)先級低于其他事務(wù)的一個選定事務(wù)。
5.如權(quán)利要求1、2、3或4中所述的方法,其中根據(jù)系統(tǒng)外部軟件支持中的優(yōu)先級分配邏輯指定的優(yōu)先級值在系統(tǒng)中應(yīng)用沖突仲裁包括中止優(yōu)先級低于其他事務(wù)的一個選定事務(wù)。
6.如權(quán)利要求1至5中任一權(quán)利要求中所述的方法,其中根據(jù)系統(tǒng)外部軟件支持中的優(yōu)先級分配邏輯指定的優(yōu)先級值在系統(tǒng)中應(yīng)用沖突仲裁包括檢測至少兩個具有相同優(yōu)先級的事務(wù);以及產(chǎn)生中斷以便外部軟件支持代替執(zhí)行沖突仲裁的處理器執(zhí)行針對所述至少兩個事務(wù)的沖突仲裁。
7.如權(quán)利要求4中所述的方法,其中阻止優(yōu)先級低于其他事務(wù)的一個選定事務(wù)包括在一期間內(nèi)阻止優(yōu)先級低于其他事務(wù)的一個選定事務(wù),所述期間在每次檢測到所述一個選定事務(wù)與其他事務(wù)沖突時便會延長。
8.如權(quán)利要求4中所述的方法,其中阻止優(yōu)先級低于其他事務(wù)的一個選定事務(wù)包括在一期間內(nèi)阻止優(yōu)先級低于其他事務(wù)的一個選定事務(wù),直到檢測到的沖突數(shù)量達(dá)到閾值,所述期間在每次檢測到所述一個選定事務(wù)與其他事務(wù)沖突時便會延長;以及一旦超過針對所述一個選定事務(wù)的沖突數(shù)量閾值,強(qiáng)制中止所述一個選定事務(wù)。
9.一種多處理器計算機(jī)數(shù)據(jù)處理系統(tǒng),包括多個與硬件存儲器相連的處理器;在每個處理器的指令集架構(gòu)(ISA)和語義中實現(xiàn)的事務(wù)管理器;位于每個處理器中的寄存器,所述寄存器存儲用于所述事務(wù)管理器管理的訪問存儲器的事務(wù)的優(yōu)先級值;位于所述系統(tǒng)中的沖突仲裁邏輯,所述邏輯能夠根據(jù)對應(yīng)于發(fā)生沖突的事務(wù)的優(yōu)先級值對發(fā)生沖突的事務(wù)應(yīng)用沖突仲裁;以及與硬件相連并且被配置為訪問所述寄存器以設(shè)置優(yōu)先級值的軟件支持。
10.如權(quán)利要求9中所述的系統(tǒng),進(jìn)一步包括每個處理器中指定沖突仲裁控制值的寄存器,所述沖突仲裁控制值指定能夠針對發(fā)生沖突的事務(wù)執(zhí)行的沖突仲裁操作的類型和性質(zhì)中的一項。
11.一種包括計算機(jī)可用介質(zhì)的計算機(jī)程序產(chǎn)品,所述計算機(jī)可用介質(zhì)包含用于事務(wù)存儲器管理中嵌入式?jīng)_突仲裁的、并發(fā)事務(wù)的軟件優(yōu)先化的計算機(jī)可用程序代碼,所述計算機(jī)程序產(chǎn)品包括用于在被配置為進(jìn)行事務(wù)存儲器管理的系統(tǒng)中,根據(jù)系統(tǒng)外部軟件支持中的優(yōu)先級分配邏輯指定的相應(yīng)優(yōu)先級值,使用用于相應(yīng)不同事務(wù)的不同優(yōu)先級值設(shè)置不同的硬件寄存器的計算機(jī)可用程序代碼;用于檢測所述系統(tǒng)中事務(wù)之間的沖突的計算機(jī)可用程序代碼;以及用于根據(jù)系統(tǒng)外部軟件支持中的優(yōu)先級分配邏輯指定的優(yōu)先級值在處理器中應(yīng)用沖突仲裁的計算機(jī)可用程序代碼。
12.如權(quán)利要求11中所述的計算機(jī)程序產(chǎn)品,進(jìn)一步包括用于從所述處理器中的另一寄存器中檢索沖突仲裁控制值的計算機(jī)可用程序代碼,所述沖突仲裁控制值指定沖突仲裁操作的類型和性質(zhì)中的至少一項;以及用于將沖突仲裁的應(yīng)用限制到所述沖突仲裁控制值指定的沖突仲裁操作的類型和性質(zhì)中的至少一項的計算機(jī)可用程序代碼。
13.如權(quán)利要求11或12中所述的計算機(jī)程序產(chǎn)品,進(jìn)一步包括用于將不同的優(yōu)先級值限制為能夠被系統(tǒng)外部軟件支持中的優(yōu)先級分配邏輯指定的一個范圍內(nèi)的優(yōu)先級值的計算機(jī)可用程序代碼。
14.如權(quán)利要求11、12或13中所述的計算機(jī)程序產(chǎn)品,其中所述用于根據(jù)系統(tǒng)外部軟件支持中的優(yōu)先級分配邏輯指定的優(yōu)先級值在處理器中應(yīng)用沖突仲裁的計算機(jī)可用程序代碼包括用于阻止優(yōu)先級低于其他事務(wù)的一個選定事務(wù)的計算機(jī)可用程序代碼。
15.如權(quán)利要求11至14中任一權(quán)利要求中所述的計算機(jī)程序產(chǎn)品,其中所述用于根據(jù)系統(tǒng)外部軟件支持中的優(yōu)先級分配邏輯指定的優(yōu)先級值在系統(tǒng)中應(yīng)用沖突仲裁的計算機(jī)可用程序代碼包括用于中止優(yōu)先級低于其他事務(wù)的一個選定事務(wù)的計算機(jī)可用程序代碼。
全文摘要
本發(fā)明的實施例提供了一種用于事務(wù)存儲器管理中嵌入式?jīng)_突仲裁的、并發(fā)事務(wù)的軟件優(yōu)先化的方法、系統(tǒng)和計算機(jī)程序產(chǎn)品。在本發(fā)明的實施例中,用于事務(wù)存儲器管理中嵌入式?jīng)_突仲裁的、并發(fā)事務(wù)的軟件優(yōu)先化的方法可包括在被配置為根據(jù)系統(tǒng)外部軟件支持中的優(yōu)先級分配邏輯指定的相應(yīng)優(yōu)先級值進(jìn)行事務(wù)存儲器管理的事務(wù)存儲器系統(tǒng)中,使用用于相應(yīng)不同事務(wù)的不同優(yōu)先級值設(shè)置不同的硬件寄存器。所述方法還可包括檢測所述系統(tǒng)中事務(wù)之間的沖突。最后,所述方法還包括根據(jù)系統(tǒng)外部軟件支持中的優(yōu)先級分配邏輯指定的優(yōu)先級值在所述系統(tǒng)中應(yīng)用沖突仲裁。
文檔編號G06F13/16GK102272744SQ200980153295
公開日2011年12月7日 申請日期2009年12月18日 優(yōu)先權(quán)日2009年1月2日
發(fā)明者C·哈爾, M·F·維爾丁, R·J·布萊尼, T·小赫勒 申請人:國際商業(yè)機(jī)器公司