專利名稱:系統(tǒng)管理中斷機(jī)制的制作方法
技術(shù)領(lǐng)域:
本發(fā)明是有關(guān)于一種系統(tǒng)管理中斷機(jī)制,且特別是有關(guān)于一種將程序片段復(fù)制至系統(tǒng)管理模式隨機(jī)存取存儲(chǔ)器內(nèi),并在系統(tǒng)管理中斷環(huán)境下執(zhí)行此程序片段的機(jī)制。
背景技術(shù):
于多重處理系統(tǒng)中,并無(wú)法保證一個(gè)需要單一性的應(yīng)用程序片段可以不被其他程序或線程(thread)所中斷,更無(wú)法保證此程序片段是否可以存取由操作系統(tǒng)管理與限制的系統(tǒng)的任何資源,例如輸入輸出(I/O)、存儲(chǔ)器映射輸入輸出(MMIO)、存儲(chǔ)器或周邊控制器接口標(biāo)準(zhǔn)組態(tài)空間(PCI/PCIE Configuration Space)、芯片組某些基于安全考量受保護(hù)的寄存器。舉例而言,當(dāng)一個(gè)名為存儲(chǔ)器注入錯(cuò)誤(memory injection error)的應(yīng)用程序需要存取存儲(chǔ)器的任何地址時(shí),但某些存儲(chǔ)區(qū)塊已經(jīng)受到操作系統(tǒng)保護(hù)而為操作系統(tǒng)所擁有,而某些存儲(chǔ)區(qū)塊則為其他程序或線程所擁有,因此此程序不一定有權(quán)限可存取上述的存儲(chǔ)器的地址。再者,芯片組上的與存儲(chǔ)器控制器有關(guān)的某些寄存器只能于系統(tǒng)管理模式 (System Management Mode,SMM)下被存取,而此程序又必需要能存取這些寄存器方能正常工作,但在操作系統(tǒng)下其卻無(wú)法存取此些寄存器,故其無(wú)法正常工作。此外,此程序也不允許存儲(chǔ)器的讀取與寫入操作被其他執(zhí)行緒所中斷,也就是此程序必須在不被中斷下進(jìn)行。 然而,在多重處理系統(tǒng)中,并無(wú)法保證此程序不被中斷,倘若發(fā)生中斷執(zhí)行,則執(zhí)行結(jié)果將呈現(xiàn)錯(cuò)誤。
發(fā)明內(nèi)容
本發(fā)明提供一種系統(tǒng)管理中斷機(jī)制,可在系統(tǒng)管理中斷環(huán)境下以系統(tǒng)管理中斷處理程序執(zhí)行應(yīng)用程序中的不可分割交易程序片段,無(wú)須使用操作系統(tǒng)來(lái)達(dá)成程序的單一性,并且可存取系統(tǒng)的所有資源。其中,本發(fā)明的不可分割交易程序片段(Atomic Program Segment)的定義為此程序的執(zhí)行不可被中斷(也就是其具有單一性,Atom),且其可存取系統(tǒng)的任何資源。而系統(tǒng)管理中斷(System Management Interrupt, SMI)的機(jī)制在硬件的設(shè)計(jì)上正具有上述的特性。本發(fā)明提出一種系統(tǒng)管理中斷機(jī)制,適用在以一操作系統(tǒng)執(zhí)行一應(yīng)用程序,其中該應(yīng)用程序包含至少一不可分割交易程序片段,此系統(tǒng)管理中斷機(jī)制包括以該操作系統(tǒng)執(zhí)行該應(yīng)用程序至該不可分割交易程序片段時(shí),觸發(fā)一系統(tǒng)管理中斷以進(jìn)入一系統(tǒng)管理模式。于該系統(tǒng)管理模式下,執(zhí)行一系統(tǒng)管理中斷處理程序,以將該不可分割交易程序片段復(fù)制至一系統(tǒng)管理模式隨機(jī)存取存儲(chǔ)器中。該系統(tǒng)管理中斷處理程序執(zhí)行該不可分割交易程序片段。當(dāng)該系統(tǒng)管理中斷處理程序執(zhí)行完畢該不可分割交易程序片段時(shí),跳出該系統(tǒng)管理模式。返回該操作系統(tǒng)以繼續(xù)執(zhí)行該應(yīng)用程序。在本發(fā)明的一實(shí)施例中,上述的系統(tǒng)管理中斷機(jī)制,其中以該操作系統(tǒng)執(zhí)行該應(yīng)用程序至該不可分割交易程序片段時(shí),還包括將該不可分割交易程序片段的一基底地址與一尺寸寫入一存儲(chǔ)器中的一擴(kuò)充基本輸入輸出系統(tǒng)資料區(qū)。在本發(fā)明的一實(shí)施例中,上述的系統(tǒng)管理中斷機(jī)制,其中將該不可分割交易程序片段復(fù)制至該系統(tǒng)管理模式隨機(jī)存取存儲(chǔ)器中的步驟包括將該擴(kuò)充基本輸入輸出系統(tǒng)資料區(qū)中所寫入的該不可分割交易程序片段的該基底地址與該尺寸所指到的不可分割交易程序片段復(fù)制到該系統(tǒng)管理模式隨機(jī)存取存儲(chǔ)器中。在本發(fā)明的一實(shí)施例中,上述的系統(tǒng)管理中斷機(jī)制,其中該系統(tǒng)管理中斷包括一軟件系統(tǒng)管理中斷。在本發(fā)明的一實(shí)施例中,上述的系統(tǒng)管理中斷機(jī)制,其中跳出該系統(tǒng)管理模式之前,還包括更新該不可分割交易程序片段的一程序標(biāo)頭中的一執(zhí)行結(jié)果狀態(tài)。在本發(fā)明的一實(shí)施例中,上述的系統(tǒng)管理中斷機(jī)制,其中返回該操作系統(tǒng)以繼續(xù)執(zhí)行該應(yīng)用程序的步驟還包括該應(yīng)用程序核對(duì)該不可分割交易程序片段的該程序標(biāo)頭中的該執(zhí)行結(jié)果狀態(tài)。在本發(fā)明的一實(shí)施例中,上述的系統(tǒng)管理中斷機(jī)制,其中跳出該系統(tǒng)管理模式之前,還包括將一程序執(zhí)行結(jié)果寫入該不可分割交易程序片段的一程序標(biāo)頭中的一結(jié)果欄位。在本發(fā)明的一實(shí)施例中,上述的系統(tǒng)管理中斷機(jī)制,其中該程序執(zhí)行結(jié)果包括一輸入?yún)?shù)與一輸出參數(shù)。在本發(fā)明的一實(shí)施例中,上述的系統(tǒng)管理中斷機(jī)制,其中跳出該系統(tǒng)管理模式的步驟包括借由執(zhí)行一回復(fù)指令以跳出該系統(tǒng)管理模式。在本發(fā)明的一實(shí)施例中,上述的系統(tǒng)管理中斷機(jī)制,其中該不可分割交易程序片段包括一不能被其他程序中斷的程序片段且/或是一需存取所有系統(tǒng)資源的程序片段?;谏鲜?,本發(fā)明于操作系統(tǒng)執(zhí)行應(yīng)用程序過(guò)程中,將應(yīng)用程序中的不可分割交易程序片段復(fù)制至系統(tǒng)管理模式隨機(jī)存取存儲(chǔ)器內(nèi),并在系統(tǒng)管理中斷環(huán)境下,以系統(tǒng)管理中斷處理程序執(zhí)行此不可分割交易程序片段,因此無(wú)須以操作系統(tǒng)來(lái)達(dá)成應(yīng)用程序的單一性,而同時(shí)可以存取系統(tǒng)的所有資源。所以在操作系統(tǒng)下的所有應(yīng)用程序面臨單一性問(wèn)題或是需要達(dá)成存取系統(tǒng)所有資源的目的時(shí),皆可以應(yīng)用本發(fā)明的系統(tǒng)管理中斷機(jī)制予以解決。
為讓本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能更明顯易懂,以下結(jié)合附圖對(duì)本發(fā)明的具體實(shí)施方式
作詳細(xì)說(shuō)明,其中圖1是依照本發(fā)明的一實(shí)施例的一種系統(tǒng)管理中斷機(jī)制流程簡(jiǎn)圖。圖2是依照本發(fā)明一實(shí)施例的應(yīng)用系統(tǒng)管理中斷機(jī)制的一系統(tǒng)的示意圖。主要元件符號(hào)說(shuō)明SlOl S311 系統(tǒng)管理中斷機(jī)制流程步驟202:應(yīng)用程序204:中央處理單元206 系統(tǒng)管理模式隨機(jī)存取存儲(chǔ)器208 系統(tǒng)管理中斷處理程序
210 存儲(chǔ)器212 擴(kuò)充BIOS資料區(qū)212a 基底地址欄位212b 尺寸欄位
具體實(shí)施例方式圖1是依照本發(fā)明的一實(shí)施例的一種系統(tǒng)管理中斷機(jī)制流程簡(jiǎn)圖。圖2是依照本發(fā)明一實(shí)施例的應(yīng)用系統(tǒng)管理中斷機(jī)制的一系統(tǒng)的示意圖。請(qǐng)參照?qǐng)D1與圖2,于步驟 SlOl中,以一操作系統(tǒng)執(zhí)行一應(yīng)用程序202,其中此應(yīng)用程序202包含至少一不可分割交易程序片段。其中上述不可分割交易程序片段例如是不能被其他程序中斷的一程序片段且/ 或是需要存取所有系統(tǒng)資源的一程序片段。換句話說(shuō),上述所謂的不能被其他程序中斷的一程序片段,例如是具有單一性的程序片段。此外,此不可分割交易程序片段包含程序標(biāo)頭 (header),而此程序標(biāo)頭還至少包括程序片段的進(jìn)入點(diǎn)(entry)、輸入的參數(shù)、輸出的參數(shù)以及執(zhí)行結(jié)果狀態(tài)。之后,于步驟S105中,判斷操作系統(tǒng)執(zhí)行上述應(yīng)用程序202是否執(zhí)行到此應(yīng)用程序202的不可分割交易程序片段。當(dāng)確認(rèn)操作系統(tǒng)的確執(zhí)行到此應(yīng)用程序的不可分割交易程序片段時(shí),則觸發(fā)一系統(tǒng)管理中斷(System Management Interrupt, SMI)以進(jìn)入一系統(tǒng)管理模式(System Management Mode, SMM)(步驟Sill),也就是系統(tǒng)管理中斷被觸發(fā)至中央處理單元(Central Processing Unit,CPU) 204,由中央處理單元204執(zhí)行存在于系統(tǒng)管理模式隨機(jī)存取存儲(chǔ)器(SMM Random Access Memory, SMM RAM) 206內(nèi)的系統(tǒng)管理中斷處理程序(SMI handler,以下簡(jiǎn)稱SMI處理程序)208。反之,則繼續(xù)以操作系統(tǒng)執(zhí)行此應(yīng)用程序 202(步驟 S101)。具體而言,系統(tǒng)管理中斷為優(yōu)先權(quán)(priority)最高的中斷,其包括軟件系統(tǒng)管理中斷、硬件系統(tǒng)管理中斷及周期性系統(tǒng)管理中斷。軟件SMI是由軟件對(duì)輸入輸出端口做寫入而觸發(fā)的SMI。硬件系統(tǒng)管理中斷是由硬件對(duì)其所檢測(cè)到的某一個(gè)事件所觸發(fā)的SMI。周期性系統(tǒng)管理中斷則由芯片每隔一段固定時(shí)間對(duì)中央處理單元所觸發(fā)的系統(tǒng)管理中斷。于本發(fā)明一實(shí)施例中,上述的系統(tǒng)管理中斷包括軟件SMI。另外,以操作系統(tǒng)執(zhí)行應(yīng)用程序202至不可分割交易程序片段時(shí),還包括將不可分割交易程序片段的一基底地址與一尺寸寫入一存儲(chǔ)器210中的一擴(kuò)充基本輸入輸出系統(tǒng)資料區(qū)(Extended BIOS Data Area, EBDA,以下均簡(jiǎn)稱擴(kuò)充BIOS資料區(qū))212。例如,將不可分割交易程序片段的基底地址(base address) χ與尺寸y分別寫入擴(kuò)充BIOS資料區(qū) 212中的基底地址欄位21 與尺寸欄位212b中。接著,于步驟Sl 15中,于此系統(tǒng)管理模式下,以中央處理單元204執(zhí)行SMI處理程序208,以將不可分割交易程序片段復(fù)制至系統(tǒng)管理模式隨機(jī)存取存儲(chǔ)器206中。更明確的說(shuō),將不可分割交易程序片段復(fù)制至系統(tǒng)管理模式隨機(jī)存取存儲(chǔ)器206中的步驟包括將該擴(kuò)充BIOS資料區(qū)212中所寫入的不可分割交易程序片段的基底地址χ與尺寸y所指到的不可分割交易程序片段復(fù)制到系統(tǒng)管理模式隨機(jī)存取存儲(chǔ)器206中。也就是SMI處理程序 208將不可分割交易程序片段復(fù)制至系統(tǒng)管理模式隨機(jī)存取存儲(chǔ)器206中做為SMI處理程序208的一部分,并且跳至此程序標(biāo)頭的進(jìn)入點(diǎn)(entry)欄位所指到的程序進(jìn)入點(diǎn)及依標(biāo)頭的輸入?yún)?shù)執(zhí)行之。繼而,于步驟S211中,以SMI處理程序208執(zhí)行不可分割交易程序片段。當(dāng)SMI 處理程序208執(zhí)行完畢不可分割交易程序片段時(shí),則跳出系統(tǒng)管理模式(步驟S215)。也就是在SMI處理程序208執(zhí)行完畢不可分割交易程序片段時(shí),中央處理單元204會(huì)執(zhí)行一回復(fù)(Resume,RSM)指令,使得中央處理單元204離開(kāi)系統(tǒng)管理模式,并且回到系統(tǒng)管理中斷發(fā)生時(shí)操作系統(tǒng)被中斷的程序點(diǎn)。于一實(shí)施例中,跳出系統(tǒng)管理模式之前,還包括更新不可分割交易程序片段的一程序標(biāo)頭中的一狀態(tài)(status),例如執(zhí)行結(jié)果狀態(tài)。此外,于另一實(shí)施例中跳出系統(tǒng)管理模式之前,還包括將一程序執(zhí)行結(jié)果寫入該不可分割交易程序片段的一程序標(biāo)頭中的一結(jié)果欄位。上述程序執(zhí)行結(jié)果包括一輸入?yún)?shù)與一輸出參數(shù)。再者,返回操作系統(tǒng)以繼續(xù)執(zhí)行應(yīng)用程序202的步驟還包括應(yīng)用程序202核對(duì)不可分割交易程序片段的程序標(biāo)頭中的執(zhí)行結(jié)果狀態(tài)與結(jié)果欄位。繼而,于步驟S311中,返回操作系統(tǒng)以繼續(xù)執(zhí)行應(yīng)用程序202。于又一實(shí)施例中,為確保應(yīng)用程序202與SMI處理程序208之間的正確互動(dòng),可在應(yīng)用程序202與SMI處理程序208之間建立一通信協(xié)定(protocol)。也就是SMI處理程序208必須提供64位元大真實(shí)模式(64bit Big-Real Mode)給需要不可分割交易程序片段,而需要不可分割交易程序片段本身則會(huì)認(rèn)定其不可分割交易式片段是在64位元大真實(shí)模式執(zhí)行,以便其可以存取到大于等于四十億字節(jié)GGiga Byte)空間,例如存儲(chǔ)器、存儲(chǔ)器映射輸入輸出(memory-mapped Ι/0,ΜΜΙ0)空間或周邊控制器接口標(biāo)準(zhǔn)組態(tài)空間(PCI Express configuration space)。此外,此不可分割交易程序片段必須能獨(dú)立編譯,并假設(shè)其執(zhí)行環(huán)境是在64位大真實(shí)模式或32位大真實(shí)模式。綜上所述,因?yàn)橄到y(tǒng)管理中斷機(jī)制能讓系統(tǒng)只執(zhí)行一個(gè)SMI處理程序,因此可以達(dá)到程序不被中斷執(zhí)行的單一性。所以,本發(fā)明于操作系統(tǒng)執(zhí)行應(yīng)用程序過(guò)程中,將應(yīng)用程序中的不可分割交易程序片段復(fù)制至系統(tǒng)管理模式隨機(jī)存取存儲(chǔ)器內(nèi),并在系統(tǒng)管理中斷環(huán)境下,以系統(tǒng)管理中斷處理程序執(zhí)行此不可分割交易程序片段。如此一來(lái),無(wú)須以操作系統(tǒng)控管來(lái)達(dá)成應(yīng)用程序的單一性,而同時(shí)可以存取系統(tǒng)的所有資源,例如輸入輸出(1/0)、 ΜΜΙ0、存儲(chǔ)器或周邊控制器接口標(biāo)準(zhǔn)組態(tài)空間。所以在操作系統(tǒng)下的所有應(yīng)用程序面臨單一性問(wèn)題或是需要達(dá)成存取系統(tǒng)所有資源的目的時(shí),皆可以應(yīng)用本發(fā)明的系統(tǒng)管理中斷機(jī)制予以解決。雖然本發(fā)明已以較佳實(shí)施例揭示如上,然其并非用以限定本發(fā)明,任何本領(lǐng)域技術(shù)人員,在不脫離本發(fā)明的精神和范圍內(nèi),當(dāng)可作些許的修改和完善,因此本發(fā)明的保護(hù)范圍當(dāng)以權(quán)利要求書所界定的為準(zhǔn)。
權(quán)利要求
1.一種系統(tǒng)管理中斷機(jī)制,適用在以一操作系統(tǒng)執(zhí)行一應(yīng)用程序,其中該應(yīng)用程序包含至少一不可分割交易程序片段,此系統(tǒng)管理中斷機(jī)制包括以該操作系統(tǒng)執(zhí)行該應(yīng)用程序至該不可分割交易程序片段時(shí),觸發(fā)一系統(tǒng)管理中斷以進(jìn)入一系統(tǒng)管理模式;于該系統(tǒng)管理模式下,執(zhí)行一系統(tǒng)管理中斷處理程序,以將該不可分割交易程序片段復(fù)制至一系統(tǒng)管理模式隨機(jī)存取存儲(chǔ)器中;該系統(tǒng)管理中斷處理程序執(zhí)行該不可分割交易程序片段;當(dāng)該系統(tǒng)管理中斷處理程序執(zhí)行完畢該不可分割交易程序片段時(shí),跳出該系統(tǒng)管理模式;以及返回該操作系統(tǒng)以繼續(xù)執(zhí)行該應(yīng)用程序。
2.如權(quán)利要求1所述的系統(tǒng)管理中斷機(jī)制,其特征在于,以該操作系統(tǒng)執(zhí)行該應(yīng)用程序至該不可分割交易程序片段時(shí),還包括將該不可分割交易程序片段的一基底地址與一尺寸寫入一存儲(chǔ)器中的一擴(kuò)充基本輸入輸出系統(tǒng)資料區(qū)。
3.如權(quán)利要求2所述的系統(tǒng)管理中斷機(jī)制,其特征在于,將該不可分割交易程序片段復(fù)制至該系統(tǒng)管理模式隨機(jī)存取存儲(chǔ)器中的步驟包括將該擴(kuò)充基本輸入輸出系統(tǒng)資料區(qū)中所寫入的該不可分割交易程序片段的該基底地址與該尺寸所指到的該不可分割交易程序片段復(fù)制到該系統(tǒng)管理模式隨機(jī)存取存儲(chǔ)器中。
4.如權(quán)利要求1所述的系統(tǒng)管理中斷機(jī)制,其特征在于,該系統(tǒng)管理中斷包括一軟件系統(tǒng)管理中斷。
5.如權(quán)利要求1所述的系統(tǒng)管理中斷機(jī)制,其特征在于,跳出該系統(tǒng)管理模式之前,還包括更新該不可分割交易程序片段的一程序標(biāo)頭中的一執(zhí)行結(jié)果狀態(tài)。
6.如權(quán)利要求5所述的系統(tǒng)管理中斷機(jī)制,其特征在于,返回該操作系統(tǒng)以繼續(xù)執(zhí)行該應(yīng)用程序的步驟還包括該應(yīng)用程序核對(duì)該不可分割交易程序片段的該程序標(biāo)頭中的該執(zhí)行結(jié)果狀態(tài)。
7.如權(quán)利要求1所述的系統(tǒng)管理中斷機(jī)制,其特征在于,跳出該系統(tǒng)管理模式之前,還包括將一程序執(zhí)行結(jié)果寫入該不可分割交易程序片段的一程序標(biāo)頭中的一結(jié)果欄位。
8.如權(quán)利要求7所述的系統(tǒng)管理中斷機(jī)制,其特征在于,該程序執(zhí)行結(jié)果包括一輸入?yún)?shù)與一輸出參數(shù)。
9.如權(quán)利要求1所述的系統(tǒng)管理中斷機(jī)制,其特征在于,跳出該系統(tǒng)管理模式的步驟包括借由執(zhí)行一回復(fù)指令以跳出該系統(tǒng)管理模式。
10.如權(quán)利要求1所述的系統(tǒng)管理中斷機(jī)制,其特征在于,該不可分割交易程序片段包括一不能被其他程序中斷的程序片段且/或是一需存取所有系統(tǒng)資源的程序片段。
全文摘要
一種系統(tǒng)管理中斷機(jī)制,適用在以一操作系統(tǒng)執(zhí)行一應(yīng)用程序,其中該應(yīng)用程序包含至少一不可分割交易程序片段(Atomic Program Segment,此程序片段的特性為此程序的執(zhí)行不可被中斷,且其可存取系統(tǒng)的任何資源),此系統(tǒng)管理中斷機(jī)制包括以該操作系統(tǒng)執(zhí)行該應(yīng)用程序至該不可分割交易程序片段時(shí),觸發(fā)一系統(tǒng)管理中斷以進(jìn)入一系統(tǒng)管理模式。于該系統(tǒng)管理模式下,執(zhí)行一系統(tǒng)管理中斷處理程序,以將該不可分割交易程序片段復(fù)制至一系統(tǒng)管理模式隨機(jī)存取存儲(chǔ)器中。該系統(tǒng)管理中斷處理程序執(zhí)行該復(fù)制的可分割交易程序片段。當(dāng)該系統(tǒng)管理中斷處理程序執(zhí)行完畢該不可分割交易程序片段時(shí),跳出該系統(tǒng)管理模式。返回該操作系統(tǒng)以繼續(xù)執(zhí)行該應(yīng)用程序。
文檔編號(hào)G06F9/48GK102455939SQ20101052182
公開(kāi)日2012年5月16日 申請(qǐng)日期2010年10月19日 優(yōu)先權(quán)日2010年10月19日
發(fā)明者盧盈志, 王郁蕙 申請(qǐng)人:英業(yè)達(dá)股份有限公司