專利名稱:將合并緩沖器的系統(tǒng)刪除差錯轉(zhuǎn)換成進程刪除差錯的制作方法
背景本發(fā)明的實施例一般涉及在處理器中處理差錯,尤其涉及處理微處理器的合并緩沖器中的軟差錯。
來自瞬時故障的單比特翻轉(zhuǎn)或差錯是微處理器設(shè)計中的關(guān)鍵挑戰(zhàn)。該故障源于來自宇宙射線的高能粒子—諸如中子和來自封裝材料的阿爾法粒子—當(dāng)它們經(jīng)過半導(dǎo)體器件時產(chǎn)生電子—空穴對。晶體管源和擴散節(jié)點可收集這些電荷。足夠量的累積電荷會改變邏輯裝置的狀態(tài)—諸如靜態(tài)隨機存取存儲器(SRAM)單元、鎖存器或門電路—從而將邏輯差錯引入電子電路的運作中。因為這種差錯不反映器件的永久性故障,所以其被稱作軟差錯或瞬時差錯。
隨著片載晶體管的數(shù)量持續(xù)增加,軟差錯已變成微處理器設(shè)計者的增加的負(fù)擔(dān)。對于接著的幾個技術(shù)代來說,每個鎖存器或SRAM比特的原始差錯率可設(shè)計成粗略地保持恒定或者稍許減少。因此,除非添加差錯保護機制或使用更魯棒的技術(shù)(諸如完全耗盡硅上絕緣體),在每個后續(xù)代中,微處理器的軟差錯率會按添加到半導(dǎo)體器件上的器件數(shù)量成比例地增加。
可以根據(jù)其影響和檢測及對其校正的能力將比特差錯分類。某些比特差錯可以被分類成“良性差錯”,因為它們不被讀取、不要緊或者可以在使用它們之前將其糾正。多數(shù)隱伏形式的差錯是靜數(shù)據(jù)破壞,其中差錯未被檢測且使得系統(tǒng)產(chǎn)生差錯輸出。為了避免靜數(shù)據(jù)破壞,設(shè)計者可采用檢錯機制,諸如奇偶。糾錯技術(shù)還可用于修復(fù)檢測出的差錯,盡管這種技術(shù)不能在所有情況下應(yīng)用。檢錯但不糾錯的能力可避免生成不正確的輸出(通過在產(chǎn)生不正確輸出前關(guān)閉受影響的進程),但它不能提供機制用于在出現(xiàn)這種差錯時恢復(fù)和繼續(xù)執(zhí)行受影響的進程。這類差錯被稱作檢測出的不可恢復(fù)差錯(DUE)。
可根據(jù)DUE事件是否導(dǎo)致操作系統(tǒng)和/或另一種機制刪除受差錯影響的一個或多個用戶進程或者DUE事件是否導(dǎo)致使整個機器(包括所有進程)崩潰而將DUE事件進一步細分,以避免數(shù)據(jù)破壞。第一種可以稱作“進程刪除DUE”事件。第二種可以稱作“系統(tǒng)刪除DUE”事件。進程刪除DUE優(yōu)于系統(tǒng)刪除DUE,因為進程刪除DUE允許系統(tǒng)繼續(xù)運行和服務(wù)不受差錯影響的進程。例如,大規(guī)模計算機系統(tǒng)可同時執(zhí)行幾百個進程。因此,與使整個系統(tǒng)崩潰和刪除隨后執(zhí)行的所有進程相比,使瞬時差錯與一個進程(或較小的一組進程)隔離并僅刪除該進程(或較小的一組進程)將提供實質(zhì)性優(yōu)勢。
因此,需要將合并緩沖器的系統(tǒng)刪除差錯轉(zhuǎn)換成進程刪除差錯。
通過附圖中的實例而非限制說明本發(fā)明的各種實施例,其中相似標(biāo)號表示相似元件。
圖1是說明根據(jù)本發(fā)明實施例的軟件執(zhí)行方法的流程圖。
圖2是說明根據(jù)本發(fā)明的操作系統(tǒng)服務(wù)呼叫和中斷處理機、固件中斷處理機和上下文切換的流程圖。
圖3是說明根據(jù)本發(fā)明實施例的機器檢查處理機的流程圖。
圖4是說明根據(jù)本發(fā)明實施例的用于應(yīng)用識別、恢復(fù)和終止的方法的流程圖。
圖5是根據(jù)本發(fā)明實施例的合并緩沖器的框圖。
圖6是可使用本發(fā)明實施例的計算機系統(tǒng)的框圖。
具體實施例方式
將描述用于將合并緩沖器的系統(tǒng)刪除差錯轉(zhuǎn)換成進程刪除差錯的方法、裝置和系統(tǒng)。在以下描述中,為了說明,闡述了許多具體實例,以提高本發(fā)明實施例的透徹理解。但本領(lǐng)域熟練技術(shù)人員顯見的是可以在沒有這些具體細節(jié)的情況下實施本發(fā)明的實施例。在其它情況中,結(jié)構(gòu)和裝置按框圖形式示出以避免使本發(fā)明實施例模糊。
說明書中對“一個實施例”或“一實施例”的參考表示結(jié)合實施例描述的特定特點、結(jié)構(gòu)或特征包含于本發(fā)明的至少一個實施例中。說明書中各處短語“在一個實施例中”的出現(xiàn)不必都涉及相同的實施例。
為了解決瞬時故障引起的軟差錯,微處理器設(shè)計者可包括各種保護特點??墒褂玫谋Wo特點的實例是奇偶、糾錯碼(ECC)、循環(huán)冗余校驗(CRC)、鎖定步進、輻射加固單元和硅上絕緣體制造技術(shù)。但是,這些保護特點的使用是在性能和對差錯的易感性之間的折衷。這種權(quán)衡的一個實例可出現(xiàn)于處理器的合并緩沖器中。
現(xiàn)在參考圖5,示出了根據(jù)本發(fā)明實施例的合并緩沖器220的框圖。合并緩沖器220收集處理器執(zhí)行的存儲指令的結(jié)果,以便隨后成批傳遞到高速緩存和/或存儲器(諸如系統(tǒng)存儲器)。合并緩沖器220可以通過將多個寫入(例如,每個都由數(shù)據(jù)字構(gòu)成)聚結(jié)成單個高速緩存塊(例如,由多個數(shù)據(jù)字構(gòu)成)隨后將一個或多個高速緩存塊寫到高速緩存系統(tǒng),而非分開地寫入各個數(shù)據(jù)字,來改善處理器的性能。由于合并緩沖器220常保存程序執(zhí)行中產(chǎn)生的最近的數(shù)據(jù),處理器可允許加載指令執(zhí)行針對合并緩沖器220的內(nèi)容可尋址匹配(CAM),以找到最近的數(shù)據(jù)來服務(wù)加載指令。結(jié)果,合并緩沖器220可以是加載到使用的關(guān)鍵路徑,其等待延遲時間對于許多程序(諸如具有指針追蹤(pointer chasing)的數(shù)據(jù)庫代碼)來說是很關(guān)鍵的。
在合并緩沖器220中執(zhí)行差錯檢測和糾正特點,諸如ECC,特別在地址差錯方面,可顯著增加加載到使用的等待延遲時間,從而對于某些應(yīng)用不能接受地劣化了處理器性能,或者會顯著增加設(shè)計的復(fù)雜性。檢錯和糾錯特點,諸如ECC,包括比僅僅檢錯花費更長時間的讀取—修改—寫入操作。例如,奇偶差錯可以通過較快的異或(XOR)比較操作檢測出。因此,維持可接受的性能會將等待延遲時間敏感的數(shù)據(jù)存儲情況(諸如合并緩沖器220)中的差錯處理限制為檢測出差錯而不加以糾正。
但是,在檢測出差錯時不加以糾正會導(dǎo)致檢測出的不可恢復(fù)差錯或DUE事件,這會導(dǎo)致刪除系統(tǒng)正執(zhí)行的一個或多個進程(進程刪除DUE事件)或者甚至關(guān)閉整個系統(tǒng)(系統(tǒng)刪除DUE事件)。在不包括本發(fā)明實施例的合并緩沖器中,合并緩沖器中的破壞地址導(dǎo)致系統(tǒng)刪除DUE,因為多個處理器會將它們的數(shù)據(jù)提交給合并緩沖器且操作系統(tǒng)沒有辦法識別破壞地址所屬于的特定進程或多個進程。為了避免生成差錯輸出,操作系統(tǒng)沒有選擇余地只能停止所有進程并關(guān)閉整個系統(tǒng)。將合并緩沖器220中的遭破壞的地址從系統(tǒng)刪除DUE事件轉(zhuǎn)換成進程刪除DUE事件,如本發(fā)明的實施例所提供的,會顯著地減少這種地址破壞差錯的影響。
仍參考圖5,在本發(fā)明的一個實施例中,每次處理器的執(zhí)行流變成執(zhí)行不同進程時,合并緩沖器220會被清洗或排空,以使合并緩沖器220在任何給定時間收集與正好一個應(yīng)用程序或進程有關(guān)的存儲指令。例如,處理器正執(zhí)行電子郵件程序,隨后變成執(zhí)行計算機游戲。將合并緩沖器220中收集的與電子郵件程序有關(guān)的存儲指令從合并緩沖器中清洗或排空,同時處理器變成執(zhí)行計算機游戲程序。在另一個實施例中,合并緩沖器220會在選定的進程變化下被排空。在一個實施例中,合并緩沖器220可在清除模式下操作,這會使得合并緩沖器220盡快寫出存儲指令(例如,借助于清洗或排空操作),以盡可能地最小化合并緩沖器220中存儲指令破壞的潛在可能。在一個實施例中,當(dāng)合并緩沖器220已滿時,會(部分或全部地)清洗或排空合并緩沖器220,以便為合并緩沖器220中要收集的新存儲指令讓出空間。
在一個實施例中,通過將當(dāng)前緩沖器中的存儲指令寫到高速緩存存儲器和/或其它存儲器(諸如系統(tǒng)存儲器),可清洗或排空合并緩沖器220。此外,可將合并緩沖器220的內(nèi)容清楚或標(biāo)記為無效,以準(zhǔn)備合并緩沖器220收集與另一個進程相關(guān)的存儲指令。在一個實施例中,排空合并緩沖器(排空MB)信號242可用于排空或清洗合并緩沖器。在一個實施例中,可響應(yīng)于處理器的清洗合并緩沖器指令而發(fā)出排空MB信號242。在一個實施例中,可通過處理器的一個單元發(fā)出排空MB信號242,該單元檢測差錯和/或應(yīng)排空合并緩沖器220的其它條件。
在將存儲指令從合并緩沖器220寫出時,可以檢查合并緩沖器220中收集的存儲指令的差錯(例如,它們的地址和/或數(shù)據(jù)中)。在一個實施例中,地址奇偶發(fā)生器216可為寫入合并緩沖器地址隊列226的每個地址生成奇偶比特,且奇偶校驗器232可在其在地址線244上被寫出合并緩沖器220之前檢查地址和奇偶信息。在一個實施例中,地址奇偶發(fā)生器216可將存儲緩沖器地址和奇偶信息218提供給合并緩沖器地址隊列226。在一個實施例中,當(dāng)數(shù)據(jù)在數(shù)據(jù)和奇偶線238上被寫出合并緩沖器220時,可以按類似方式檢測出數(shù)據(jù)差錯。如果檢測出差錯(地址和/或數(shù)據(jù))且結(jié)合最后的進程改變清洗合并緩沖器220,則可以知道差錯與處理器執(zhí)行的當(dāng)前進程相關(guān)聯(lián)。通過該信息,操作系統(tǒng)(或者其它差錯映射機制)可將差錯映射到合適的進程并僅刪除該進程,而非整個系統(tǒng)。因此,連同進程改變清洗或排空合并緩沖器220會使得合并緩沖器220每次包含來自一個進程的數(shù)據(jù),從而將本來是合并緩沖器220中的系統(tǒng)刪除DUE事件轉(zhuǎn)換成進程刪除DUE事件。
仍參考圖5,合并緩沖器220還可包括合并緩沖器數(shù)據(jù)隊列222,以存儲與存儲指令相關(guān)聯(lián)的數(shù)據(jù)。在一個實施例中,數(shù)據(jù)奇偶發(fā)生器210可為寫入合并緩沖器數(shù)據(jù)隊列222的每個數(shù)據(jù)生成奇偶比特。在一個實施例中,數(shù)據(jù)奇偶發(fā)生器210可以將存儲緩沖器數(shù)據(jù)和奇偶信息212提供給合并緩沖器數(shù)據(jù)隊列222。在一個實施例中,數(shù)據(jù)奇偶信息可由高速緩存存儲器或系統(tǒng)存儲器用于檢測在數(shù)據(jù)和奇偶信號238上從合并緩沖器220接收的數(shù)據(jù)中的差錯。
在一個實施例中,合并緩沖器中檢測出的地址差錯還可生成相應(yīng)的數(shù)據(jù)差錯。在一個實施例中,合并緩沖器220可包括設(shè)定奇偶破壞信號234,以便在檢測出地址差錯時在奇偶狀態(tài)單元230中設(shè)定破壞奇偶狀態(tài)。奇偶狀態(tài)單元230可生成破壞奇偶信號236作為對條件奇偶破壞單元228的輸入,以便在地址奇偶校驗器232檢測出相應(yīng)地址奇偶差錯時生成復(fù)蓋數(shù)據(jù)奇偶差錯。在一個實施例中,設(shè)定奇偶破壞信號234、奇偶狀態(tài)單元230、破壞奇偶信號236和條件奇偶破壞單元228可有效地“敗壞(poison)”與破壞地址相對應(yīng)的數(shù)據(jù),以防止與破壞地址相關(guān)的數(shù)據(jù)被任何處理器使用。在一個實施例中,與合并緩沖器220中的破壞地址相對應(yīng)的數(shù)據(jù)以及用于與相同進程有關(guān)的合并緩沖器220中存儲的后續(xù)存儲指令中的某些或全部的數(shù)據(jù)可以被“敗壞”,以防止這些數(shù)據(jù)由任何處理器使用。清除奇偶破壞信號240可用于復(fù)位奇偶狀態(tài)單元230的狀態(tài)并防止條件奇偶破壞單元228復(fù)蓋合并緩沖器數(shù)據(jù)隊列222中存儲的數(shù)據(jù)奇偶信息。合并緩沖器220還可包括合并緩沖器控制單元224,以控制合并緩沖器單元220的操作。
仍參考圖5,存儲緩沖器202可連同合并緩沖器220用于收集由處理器推測性執(zhí)行的存儲指令。存儲緩沖器202可包括存儲緩沖器地址隊列208和存儲緩沖器數(shù)據(jù)隊列204以分別存儲與推測性存儲指令相關(guān)的地址和數(shù)據(jù)。存儲緩沖器202還可包括存儲緩沖器控制單元206,用于在存儲緩沖器202將已解決(即,不再是推測性的)的存儲指令發(fā)送到合并緩沖器220時進行控制。在一個實施例中,合并緩沖器控制單元224可發(fā)出一停止存儲緩沖器(停止SB)信號214,以防止存儲緩沖器將存儲指令發(fā)送到合并緩沖器220。例如,如果合并緩沖器220是滿的,則合并緩沖器控制單元224可防止存儲緩沖器202發(fā)送其它存儲指令直到合并緩沖器220排空了其內(nèi)容中的一些或全部到高速緩存存儲器和/或系統(tǒng)存儲器。
現(xiàn)在參考圖1,示出了說明根據(jù)本發(fā)明實施例的軟件執(zhí)行方法100的流程圖??蓡硬僮飨到y(tǒng)來為計算系統(tǒng)建立操作環(huán)境(框102)。在一個實施例中,操作系統(tǒng)是MicrosoftTMWindowsTM操作系統(tǒng)。在另一個實施例中,操作系統(tǒng)是LinuxTM操作系統(tǒng)。在再一個實施例中,也可使用其它操作系統(tǒng)。在啟動操作系統(tǒng)(框102)后,可開始應(yīng)用程序(框104)。應(yīng)用程序可以是用戶應(yīng)用程序(諸如文字處理、電子數(shù)據(jù)表或游戲程序)、系統(tǒng)應(yīng)用程序或其它類型的應(yīng)用軟件。
在應(yīng)用程序代碼執(zhí)行期間(框106),會出現(xiàn)許多事件,以從執(zhí)行與當(dāng)前進程相關(guān)聯(lián)的應(yīng)用程序代碼變到執(zhí)行與另一個進程相關(guān)聯(lián)的代碼。例如,對操作系統(tǒng)(OS)的調(diào)用(箭頭107)會將執(zhí)行引向操作系統(tǒng)(OS)服務(wù)例程(框109)。類似地,對操作系統(tǒng)的中斷(箭頭108)會將執(zhí)行引向操作系統(tǒng)(OS)中斷處理機(框110)。由于會使得執(zhí)行引向固件中斷處理機(框114)的對固件的中斷(箭頭112),會出現(xiàn)軟件執(zhí)行中的另一種變化。類似地,上下文切換(箭頭116)可將執(zhí)行引向上下文切換處理機(框118)。由于會將軟件執(zhí)行引向機器檢查處理機(框122)的機器檢查(箭頭120),會出現(xiàn)對應(yīng)用程序代碼執(zhí)行的再一種中斷。如將更詳細地討論的,在某些情況下機器檢查處理機會終止應(yīng)用并返回應(yīng)用刪除返回點(箭頭124)。
倘若沒有對應(yīng)用程序代碼的正常執(zhí)行的中斷或變化(框106),則應(yīng)用程序代碼的執(zhí)行會繼續(xù),直到應(yīng)用在用戶控制、操作系統(tǒng)控制下或處于某些其它原因才終止(框126)。在應(yīng)用終止后,會激活另一個應(yīng)用(框128)?,F(xiàn)在將聯(lián)系圖2討論將執(zhí)行引向操作系統(tǒng)(OS)服務(wù)例程(框109)、OS中斷處理機(框110)、固件中斷處理機(框114)和上下文切換(框118)時進程的進一步細節(jié)。
現(xiàn)在參考圖2,示出了操作系統(tǒng)(OS)服務(wù)調(diào)用(框109)、OS中斷處理機(框110)、固件中斷處理機(框114)和上下文切換(框118)的流程圖。當(dāng)軟件執(zhí)行被引向OS服務(wù)例程(框109)或OS中斷處理機(框110)時,可排空一個或多個處理器核心隊列或緩沖器(框130)。在一個實施例中,排空合并緩沖器,以使合并緩沖器中包含的存儲指令在任何給定時間與一個進程或應(yīng)用相關(guān)聯(lián)。在排空合適的處理器隊列或緩沖器后,可進行與合適操作系統(tǒng)服務(wù)例程或操作系統(tǒng)中斷處理機相關(guān)聯(lián)的系統(tǒng)代碼執(zhí)行(框132)。在執(zhí)行系統(tǒng)代碼后(框132),可排空一個或多個處理器核心隊列或緩沖器(包括合并緩沖器)(框133)且可以繼續(xù)被中斷的應(yīng)用程序代碼的執(zhí)行(框134)。
類似地,在應(yīng)用程序代碼執(zhí)行期間(圖1的框106),固件中斷處理機事件(框114)會導(dǎo)致一個或多個處理器隊列或緩沖器的排空(框136)。在一個實施例中,合并緩沖器可結(jié)合固件中斷處理機事件被排空,以使能在開始執(zhí)行新的固件軟件(框138)之前排空合并緩沖器。在固件軟件執(zhí)行(框138)后,可排空一個或多個處理器核心隊列或緩沖器(包括合并緩沖器)(框139)且可繼續(xù)執(zhí)行被中斷的應(yīng)用程序(框140)。
仍參考圖2,由于上下文切換事件(框118)引起的應(yīng)用程序代碼(圖1的框106)的執(zhí)行中斷也會導(dǎo)致一個或多個處理器隊列或緩沖器(框142)的排空。上下文切換通常在一個應(yīng)用程序代碼或進程的執(zhí)行被停止以便執(zhí)行另一個應(yīng)用程序代碼或進程時產(chǎn)生。在該事件中,可以排空處理器合并緩沖器以使合并緩沖器在任何給定時間包含與一個進程相關(guān)的存儲信息。這樣,合并緩沖器中存儲的被破壞的地址可以與當(dāng)前進程相關(guān)聯(lián),從而允許刪除進程而不要求停止整個系統(tǒng)。在合適的處理器隊列被排空后(框142),可以進行各種上下文保存/恢復(fù)和其它上下文切換有關(guān)操作(框144)。在上下文切換有關(guān)操作完成后(框144),可以排空一個或多個處理器核心隊列或緩沖器(包括合并緩沖器)(框145)且執(zhí)行可以跳到下一個應(yīng)用(框146)。
現(xiàn)在參考圖3,示出了說明根據(jù)本發(fā)明一個實施例的機器檢查處理機(框122)的流程圖。當(dāng)檢測出處理器中的出錯時,會將執(zhí)行引向機器檢查處理機。在啟動機器檢查處理機(框122)后,一個或多個處理器隊列或緩沖器會被排空,以集合貫穿處理器識別的出錯的出錯信息(框150)。機器檢查處理機可分析出錯信息以確定什么糾正動作是合適的。例如,它可確定出錯是否是固件可糾正的(菱形152)。如果是,則固件糾正該出錯(框154),可排空一個或多個處理器核心隊列或緩沖器(包括合并緩沖器)(框155),且繼續(xù)被中斷的應(yīng)用的執(zhí)行(框156)。在一個實施例中,處理器提取層(PAL)固件可確定出錯是否是可由PAL糾正的處理器出錯。
如果出錯不可由固件糾正(菱形152),則機器檢查處理機可確定出錯是否可由操作系統(tǒng)或某些其它系統(tǒng)級軟件或機制糾正(菱形158)。如果是,則操作系統(tǒng)或其它系統(tǒng)級軟件或機制可糾正出錯(框160),一個或多個處理器核心隊列或緩沖器(包括合并緩沖器)可被排空(框161),且可以繼續(xù)中斷應(yīng)用的執(zhí)行(框162)。在一個實施例中,軟件提取層(SAL)可連同操作系統(tǒng)工作,以解決系統(tǒng)級差錯。
仍參考圖3,如果差錯在操作系統(tǒng)級處不可糾正(菱形158),則機器檢查處理機可確定差錯是應(yīng)用刪除DUW還是進程刪除DUE差錯(菱形164)。例如,它可以確定差錯是否與機器上運行的一個或多個特定進程或應(yīng)用相關(guān)聯(lián)以便刪除該特定進程或應(yīng)用而非關(guān)閉整個系統(tǒng)。如果不能確定該差錯僅僅與一個或多個特定應(yīng)用相關(guān)聯(lián)(菱形164),則它可指示出該差錯是系統(tǒng)刪除DUE,需要關(guān)閉整個系統(tǒng)(框168)且停止所有進程的執(zhí)行(框170)。如果確定差錯是應(yīng)用或進程刪除差錯(菱形164),則識別有關(guān)進程或應(yīng)用,采取措施恢復(fù)和/或終止受影響的應(yīng)用(框166)?,F(xiàn)在將結(jié)合圖4討論識別、恢復(fù)和終止步驟的進一步說明。
現(xiàn)在參考圖4,它示出了根據(jù)本發(fā)明實施例的用于應(yīng)用識別、恢復(fù)和終止的方法的流程圖。在確定差錯不是應(yīng)用刪除差錯(圖3的菱形164)后,機器檢查處理機可確定出錯事務(wù)的目標(biāo)地址是否可得(菱形167)。如果是,則處理器可基于該目標(biāo)地址進行恢復(fù)(框169)并終止使用包含該目標(biāo)地址的存儲頁面的所有應(yīng)用(框172)。隨后,機器檢查處理機可排空一個或多個處理器核心隊列或緩沖器(包括合并緩沖器)(框179)并將執(zhí)行返回到應(yīng)用刪除返回點(框124)。
但是,出錯事務(wù)的目標(biāo)地址不會總是可供使用的。例如,如果合并緩沖器中的地址由于瞬時故障而被破壞,則將不能知道與差錯相關(guān)聯(lián)的真實地址。如果機器檢查處理器確定出錯事務(wù)的目標(biāo)地址不可得(菱形167),則機器檢查處理機可確定是否知道出錯事務(wù)已由在機器檢查時活動的應(yīng)用引起(菱形174)。在一個實施例中,在處理器開始執(zhí)行該進程前,如果合并緩沖器已被排空,則處理器的合并緩沖器中產(chǎn)生的地址破壞差錯與檢測出錯時正執(zhí)行的應(yīng)用或進程相關(guān)聯(lián)(例如,活動進程)。例如,結(jié)合圖2和3的框130、136、142和150的排空合并緩沖器可確保在機器檢查時活動的應(yīng)用是與合并緩沖器中檢測出的被破壞地址差錯相關(guān)聯(lián)的應(yīng)用。這樣,在切換到執(zhí)行不同進程之前排空合并緩沖器可允許處理器識別與合并緩沖器地址差錯相關(guān)聯(lián)的應(yīng)用,并僅刪除該應(yīng)用而不尋求系統(tǒng)刪除關(guān)閉(框180)和停止處理器(框182)。
如果處理器可將出錯事務(wù)識別為由機器檢查時活動的應(yīng)用引起(菱形174),則處理器可基于機器檢查時的指令指針地址執(zhí)行恢復(fù)技術(shù)(框176),如必要終止機器檢查時活動的應(yīng)用(框178),排空一個或多個處理器核心隊列或緩沖器(包括合并緩沖器)(框179),并返回到應(yīng)用刪除返回點(框124)。
現(xiàn)在參考圖6,示出了本發(fā)明實施例可使用的計算機系統(tǒng)300的框圖。在一個實施例中,計算機系統(tǒng)300包括處理器330,它可包括通用或?qū)S锰幚砥?,諸如微處理器、微控制器、可編程門陣列(P6A)等。如這里所使用的,術(shù)語“計算機系統(tǒng)”可表示任何類型的基于處理器的系統(tǒng),諸如臺式計算機、服務(wù)器計算機、膝上計算機等,或者其它類型的主機系統(tǒng)。
處理器330可包括兩個中央處理單元(CPU)核心302(a)和302(b),但可包括一個或多個這種核心。CPU核心302(a)和302(b)可分別包括用于提取指令的指令提取單元304(a)和304(b),分別用于調(diào)度指令執(zhí)行的調(diào)度器單元306(a)和306(b),分別用于執(zhí)行指令的執(zhí)行單元308(a)和308(b),以及分別用于存儲數(shù)據(jù)的本地副本的一個或多個本地高速緩存存儲器單元310(a)和310(b)。CPU核心302(a)和302(b)還可分別包括存儲緩沖器202(a)和202(b)以及合并緩沖器220(a)和220(b),其可根據(jù)本發(fā)明的各種實施例而實現(xiàn)。
仍參考圖6,處理器330可包括本地互連312,以允許處理器330的各個單元通信和交換數(shù)據(jù)。處理器330還可包括相干協(xié)議引擎和系統(tǒng)接口316,用于連同擴展高速緩存314和系統(tǒng)存儲器318提供高速緩存相干性和系統(tǒng)存儲器接口功能。在一個實施例中,擴展高速緩存可由處理器330的多個CPU核心302(a)和302(b)共享。在一個實施例中,擴展高速緩存314可以是直寫高速緩存而本地高速緩存310(a)和310(b)可以是回寫高速緩存。在一個實施例中,本地高速緩存310(a)和310(b)可包括分別為8K字節(jié)和256K字節(jié)的一級和二級高速緩沖,,且擴展高速緩存314可以是16M字節(jié)三級高速緩存。在一個實施例中,合并緩沖器220(a)和220(b)可收集存儲指令的結(jié)果并周期性地將存儲指令結(jié)果塊寫到擴展高速緩存314和/或系統(tǒng)存儲器318以減少本地互連312上的通信量。
處理器330還可耦合到輸入/輸出(I/O)集線器320,其可經(jīng)由輸入/輸出(I/O)擴展總線耦合到一個或多個外圍設(shè)備322。外圍設(shè)備322在一個實施例中可包括諸如軟盤驅(qū)動器的存儲裝置以及諸如鍵盤鼠標(biāo)的輸入裝置。I/O集線器320例如還可耦合到硬盤驅(qū)動器和緊致盤(CD)驅(qū)動器??梢岳斫猓到y(tǒng)中也可包括其它存儲媒介。處理器330還可耦合到一個或多個附加處理單元或協(xié)議引擎324,諸如圖形引擎、網(wǎng)絡(luò)引擎或因特網(wǎng)協(xié)議引擎。
實施例可在邏輯電路、狀態(tài)機、微代碼或其某些組合實現(xiàn)。實施例可以代碼實現(xiàn)并可存儲于儲存了用于編程計算機執(zhí)行指令的指令的儲存媒介上。儲存媒介可以包括,但不限于,任何類型的盤,包括軟盤、光盤、緊致盤只讀存儲器(CD-ROM)、可重寫緊致盤(CD-RW)、以及磁光盤、半導(dǎo)體裝置,諸如只讀存儲器(ROM)、隨機存取存儲器(RAM)、動態(tài)隨機存取存儲器(DRAM)、可擦可編程只讀存儲器(EPROM)、閃存、電可擦可編程只讀存儲器(EEPROM)、磁或光卡或者適于存儲電子指令的任何類型的媒介。
因此,描述了用于將合并緩沖器系統(tǒng)刪除差錯轉(zhuǎn)換成進程刪除差錯的方法、裝置和系統(tǒng)。雖然相對于有限數(shù)量的實施例描述了本發(fā)明,但在揭示內(nèi)容的幫助下本領(lǐng)域的熟練技術(shù)人員可以理解許多修改和變型。所附權(quán)利要求書旨在覆蓋落在本發(fā)明的真實精神和范圍內(nèi)的這種修改和變型。
權(quán)利要求
1.一種裝置,其特征在于,包括緩沖器,用于收集與一個或多個進程相關(guān)聯(lián)的存儲指令,其中所述存儲指令包括數(shù)據(jù)和要存儲數(shù)據(jù)的地址;以及緩沖器控制,用于在緩沖器收集與第二進程相關(guān)聯(lián)的存儲指令之前總是排空與第一進程相關(guān)聯(lián)的存儲指令的緩沖器。
2.如權(quán)利要求1所述的裝置,其特征在于,進一步包括差錯檢查器,用于在存儲指令中檢測至少一個差錯;以及刪除單元,用于如果差錯檢查器在與第一進程相關(guān)聯(lián)的第一存儲指令中檢測出第一差錯,則停止第一進程。
3.如權(quán)利要求2所述的裝置,其特征在于,所述存儲指令還包括與存儲指令相對應(yīng)的差錯信息,其中差錯檢查器基于該差錯信息檢測所述至少一個差錯。
4.如權(quán)利要求3所述的裝置,其特征在于,差錯信息是奇偶信息。
5.如權(quán)利要求2所述的裝置,其特征在于,進一步包括奇偶破壞單元,用于當(dāng)?shù)谝徊铄e是第一地址差錯時指示相應(yīng)的數(shù)據(jù)差錯。
6.如權(quán)利要求1所述的裝置,其特征在于,所述緩沖器是合并緩沖器。
7.如權(quán)利要求1所述的裝置,其特征在于,所述緩沖器用于每次收集與一個進程相關(guān)聯(lián)的存儲指令。
8.如權(quán)利要求2所述的裝置,其特征在于,所述緩沖器使第一差錯能作為進程刪除差錯而非系統(tǒng)刪除差錯而被處理。
9.一種裝置,其特征在于,包括處理器核心,用于執(zhí)行一個或多個進程;存儲緩沖器,用于存儲一個或多個推測的存儲指令,直到它們預(yù)備被提交到機器狀態(tài);合并緩沖器,用于存儲被提交的存儲指令,其中被提交的存儲指令與一個或多個進程相關(guān)聯(lián),其中被提交的存儲指令包括數(shù)據(jù)、要存儲數(shù)據(jù)的地址和差錯信息;以及合并緩沖器控制,用于如果處理器核心從第一進程的執(zhí)行變成第二進程的執(zhí)行,則總是清除合并緩沖器。
10.如權(quán)利要求9所述的裝置,其特征在于,進一步包括差錯檢查器,用于基于出錯信息在提交的存儲指令中檢測至少一個差錯;以及刪除單元,用于如果差錯檢查器在與第一進程相關(guān)聯(lián)的第一提交的存儲指令中檢測出第一差錯,則停止第一進程的執(zhí)行。
11.如權(quán)利要求10所述的裝置,其特征在于,進一步包括奇偶破壞單元,用于在第一差錯是第一地址差錯時指示相應(yīng)的數(shù)據(jù)差錯。
12.如權(quán)利要求9所述的裝置,其特征在于,合并緩沖器用于每次收集與一個進程相關(guān)聯(lián)的存儲指令。
13.如權(quán)利要求10所述的裝置,其特征在于,合并緩沖器用于使第一差錯作為進程刪除差錯而非系統(tǒng)刪除差錯而被處理。
14.一種方法,其特征在于,包括在緩沖器中收集與第一進程相關(guān)聯(lián)的存儲指令,其中所述存儲指令包括數(shù)據(jù)、要存儲數(shù)據(jù)的地址以及差錯信息;以及在收集與第二進程相關(guān)聯(lián)的存儲指令之前,總是從緩沖器中排空與第一進程相關(guān)聯(lián)的收集的存儲指令。
15.如權(quán)利要求14所述的方法,其特征在于,進一步包括基于出錯信息,在收集的存儲指令中檢測至少一個差錯;以及如果檢測出與第一進程相關(guān)聯(lián)的第一差錯,則停止第一進程的執(zhí)行。
16.如權(quán)利要求15所述的方法,其特征在于,進一步包括當(dāng)?shù)谝徊铄e是第一地址差錯時指示相應(yīng)的第一數(shù)據(jù)差錯。
17.如權(quán)利要求14所述的方法,其特征在于,在緩沖器中每次收集與一個進程相關(guān)聯(lián)的存儲指令。
18.如權(quán)利要求15所述的方法,其特征在于,進一步包括將第一差錯作為進程刪除差錯而非系統(tǒng)刪除差錯進行處理。
19.一種包含機器可訪問媒介的制品,所述媒介包含指令,在被執(zhí)行時使得系統(tǒng)在緩沖器中收集與第一進程相關(guān)聯(lián)的存儲指令,其中所述存儲指令包括數(shù)據(jù)、地址和差錯信息;以及在收集與第二進程相關(guān)聯(lián)的存儲指令之前,總是從緩沖器中排空與第一進程相關(guān)聯(lián)的收集的存儲指令。
20.如權(quán)利要求19所述的制品,其特征在于,進一步包括指令,在被執(zhí)行時使得系統(tǒng)在緩沖器中每次收集與一個進程相關(guān)聯(lián)的存儲指令。
21.如權(quán)利要求19所述的制品,其特征在于,進一步包括指令,在被執(zhí)行時使得系統(tǒng)將與第一進程相關(guān)聯(lián)的第一存儲指令相關(guān)的第一差錯作為進程刪除差錯而非系統(tǒng)刪除差錯進行處理。
22.一種系統(tǒng),包括處理器,用于執(zhí)行與一個或多個進程相關(guān)聯(lián)的包括存儲指令的指令;動態(tài)隨機存取系統(tǒng)存儲器,它被耦合成存儲用于由處理器執(zhí)行的指令;合并緩沖器,用于收集與存儲指令相關(guān)聯(lián)的信息,包括要存儲的數(shù)據(jù)、要存儲數(shù)據(jù)的地址以及出錯信息;以及合并緩沖器控制,用于如果處理器從第一進程的執(zhí)行變成第二進程的執(zhí)行,則總是清除合并緩沖器。
23.如權(quán)利要求22所述的系統(tǒng),其特征在于,進一步包括差錯檢查器,用于基于出錯信息在存儲指令中檢查至少一個差錯;以及刪除單元,用于如果差錯檢查器檢測出與第一進程相關(guān)聯(lián)的第一存儲指令相關(guān)的第一差錯,則停止第一進程的執(zhí)行。
24.如權(quán)利要求23所述的系統(tǒng),其特征在于,進一步包括奇偶破壞單元,用于在第一差錯是第一地址差錯時指示相應(yīng)的數(shù)據(jù)差錯。
25.如權(quán)利要求22所述的系統(tǒng),其特征在于,合并緩沖器用于每次收集與一個進程相關(guān)聯(lián)的存儲指令。
26.如權(quán)利要求23所述的系統(tǒng),其特征在于,合并緩沖器用于使第一差錯能作為進程刪除差錯而非系統(tǒng)刪除差錯進行處理。
全文摘要
一種裝置包括收集與一個或多個進程相關(guān)聯(lián)的存儲指令信息。收集的存儲指令信息包括數(shù)據(jù)和要存儲數(shù)據(jù)的地址。該裝置還包括緩沖器控制,它在收集與第二進程相關(guān)聯(lián)的存儲指令前排空與第一進程相關(guān)聯(lián)的存儲指令的緩沖器。
文檔編號G06F11/00GK1752937SQ20051010896
公開日2006年3月29日 申請日期2005年9月23日 優(yōu)先權(quán)日2004年9月24日
發(fā)明者T·福瑟姆, Y·施雷蓋, U·埃切若, S·慕克吉 申請人:英特爾公司