新四季網

具有與運行在虛擬模式下的指令相關的中斷指令的計算機系統的製作方法

2023-06-02 21:48:06 2

專利名稱:具有與運行在虛擬模式下的指令相關的中斷指令的計算機系統的製作方法
技術領域:
本發明總的說是關於一包括有特別設計以在虛擬模式下運行的給定微處理機的計算機系統,該虛擬模式允許早先為一臺早先設計的單程序微處理機編寫的軟體程序能依靠一個特別設計的主操作軟體程序在被保護的、分頁式、多任務環境中運行。更確地說,本發明涉及對該給定微處理機和它的主操作軟體程序處理早先編寫的程序中的某些有關中斷的指令,亦即CLEARINTERRUPT(CLI)和SETINTERRUPT(STI)的方法的改進,所採取的措施是依靠作為主程序中一部分的模擬軟體程序來模擬早先微處理機執行這些指令的狀態。
上面的討論中,引用了一給定的微處理機,一早先編寫的軟體程序,一早先設計的單程序微處理機,及一特殊設計的主操作軟體程序。在本發明實際的實踐中,該給定微處理機具體指的是INTEL公司的80386和80486TM經過改進的微處理機,下文將僅指386微處理機,因為本發明對上面兩種都是適用的。該早先設計的單程序微處理機,指的是INTEL公司早先設計的單程序8086微處理機。該早先編寫的軟體程序,指的是一些具體包括早先為8086微處理機寫的DOS程序在內的各種程序。最後,該主操作軟體程序指的是任何適用的主(中央)控制作業系統,諸如WINDOWTM軟體(MICrOSOFT公司)或UNIXTM系統軟體(ATT公司),兩者都是特別為該給定微處理機寫的,以使後者能運行在上述的虛擬操作模式下。雖然下文對本發明的敘述將針對INTEL386(及486TM)及8086微處理機,早先編寫的DOS程序及WINDOWS或UNIX作業系統,但亦應理解,本發明並不局限於這些特定的微處理機、那些早先編寫的軟體程序或那些特定的中央作業系統。理解了這一點,8086及386微處理機的簡短歷史會立即明白。在下面詳細討論中將敘述這些微處理機與本發明的具體關係的細節。
可以毫無保留地說,INTEL公司早先的8086微處理機是相當成功的,已經為它寫出了很多軟體程序。然而,如果說這一微處理機是以後一系列改進微處理機的第一個的話,就自然會有它的局限性。尤其是這一點,雖然在當時這不一定被看作是一種缺陷,就是此微處理機沒有能力同時執行一個以上的軟體程序。當然這就是說程序本身無需在被保護的、分頁式、多任務的環境下運行。然而隨著技術的發展,正如前面所說的,INTEL公司終於開發出386微處理機,它能採用較複雜的中央作業系統,諸如WINDOWS或UNIX來執行多個程序。同時386微處理機是被設計在以虛擬8086操作模式運行的,就是說允許使用早先為8086處理機寫的多個軟體程序,亦即允許以更複雜的作業系統在被保護的、分頁式、多任務環境下運行,雖然這些早先的軟體程序並不是為這種狀態下執行所設計的。的確有許多早先的程序開始失效。所以每當對8086微處理機後繼產品作任何變化時,總是考慮與早先的8086軟體能兼容。
雖然INTEL的現代微處理機與較早寫的軟體之間的兼容性的確重要,但在有一些情況下,這一目標也確實使整個計算機系統的某些其他操作性能作出了犧牲。如在執行某些與中斷有關的指令,特別是CLI和STI指令時情況就是如此。在下文將詳細討論的現在的386微處理機就是被設計成以虛擬模式執行所有CLI及STI指令的,此時採取模擬方式以模擬8086微處理機執行這些指令的情況。雖然執行這些特殊指令的數量,只佔此虛擬模式執行的全部指令相當小的百分比,但卻需要相當長的執行時間。已經提示了一個這個問題的具體解決方法,下文也將詳細的討論。雖然這個方案確實大大減少了在虛擬狀態下執行CLIS和STIS指令所需的時間,但都部分地犧牲了微處理機與其軟體之間的兼容性。
如上所述,本發明的一個主要目的,就是在如早先提出的減少執行CLIS和STIS指令時間的同時,改善兼容性方面的性能。
下面將會看到,這裡揭示的一個計算機系統包括一個給定的微處理機,例如386微處理機,該微處理機專門設計運行在一種虛擬操作模式,該模式允許以一個軟體程序運行,該軟體程序是諸如早先為一臺較早設計的單程序微處理機例如8086微處理機寫的一個DOS程序,可藉助一個特別設計的主操作軟體程序例如WINDOWS或UNIX,在一被保護的、分頁式、多任務環境下執行。該系統還包括為執行某些源於早先寫的程序的有關中斷的指令即CLI和STI的裝置,它採用作為主程序的一部分的模擬軟體,以便模擬早先微處理機執行這種指令的情況。
為了減少當計算機系統運行在虛擬操作模式時,模擬軟體執行CLI及STI指令所需的時間,設置有一個EFLAGS寄存器,此寄存器包括(1)一個VIRTUALINTERRUPTFLAG(VIF)位,該VIF二進位位工作在為允許執行源於早先寫的程序的中斷指令的STI狀態或為禁止該中斷指令執行的CLI狀態;(2)一個VIRTUALINTERRUPTPENDING(VIP)位,該VIP二進位位工作在為等待執行中斷請求的PENDING狀態或工作在為沒有這種中斷等待執行的NONPENDING狀態。為了同樣目的,即為了減少虛擬模式下執行時間,還設置有隻要VIP位處於其NONPENDING狀態下,即可以不採用模擬軟體來改變EFLAGS寄存器VIF位的狀態的裝置。使用這種方法,以虛擬模式執行CLI及STI的時間大大減少。然而同時還設置有響應VIP位的PENDING狀態、VIF的CLI狀態、和隨後由早先寫的軟體程序發出的STI指令,藉助模擬軟體不必首先將VIF位從CLI狀態改變到STI狀態,即自動地執行該隨後產生的STI指令及一等待中斷請求的裝置。這就如在下文中將更詳細討論的會提高微處理機及其相應軟體之間的兼容性。
下面結合附圖對本發明作較詳細說明。


圖1以圖示說明包括早先8086微處理機的已有計算機系統的某些方面。
圖2是包含早先386微處理機的計算機系統相似圖,具體說明有關STI及CLI中斷指令的它的虛擬模式。
圖3也是包括386微處理機計算機系統的相似圖,其中採取了先前提出的改進,以使該微處理機能在虛擬模式下以比圖2中所述系統快的速度執行中斷指令。
圖4是一根據本發明設計的計算機系統的簡圖說明,不僅具有圖3所述系統的優點,而且具有微處理機與該計算機系統中執行的軟體之間兼容性方面的某些優點;和圖5是說明根據本發明圖4中所說明的計算機系統執行CLI和STI指令的方法的流程圖。
現在回到圖上,首先注意圖1。如前述圖1是包括早先8086微處理機的先有計算機系統的某些特點的圖示說明。數字10總的代表計算機系統整體。此系統還包括許多未加說明的組成部分,這裡只是特別示出了一個包含存有中斷標誌IF的EFLAGS寄存器14的8086微處理機12,一個單DOS軟體程序16及數個I/O外圍設備18、20,及22。為了討論目的,假設外設18是一監視器,外設20是一個磁碟驅動器,外設22是一個鍵盤,本發明對各個別I/O裝置並無限制,這也是不言而喻的。
談到當前這一系統10,現在來看在此系統中特別是8086微處理機12是如何處理它的I/O外設發出的中斷指令的。一般地說,8086微處理機是被設計成當執行某些指令時可被中斷,而在執行另外的指令時不能被中斷。例如微處理機正在被DOS軟體要求訪問磁碟驅動器20期間,該微處理機就不希望為例如從鍵盤22擊鍵所產生的信號所中斷。因此在對磁碟驅動器訪問期間,FLAGS寄存器14的中斷標誌位IF為置於CLI的狀態,以便防止微處理器正在訪問磁碟驅動器期間因外部中斷要求而被中斷。為方便起見,假設中斷標誌位IF的CLI狀態在圖1以0來表示。只要IF位保持為0,微處理機將不接收中斷。一經完成對磁碟驅動器的訪問,並且假設此後該微處理機不是立刻被要求去執行其他不可中斷指令的話,那麼中斷標誌IF的狀態,將由CLI狀態變換到STI狀態。在圖1中通過1表示STI狀態。只要中斷標誌是在STI狀態,8086微處理機將接收中斷。這些中斷包括例如早先IF位是在CLI狀態時產生的鍵入信號,而現在IF位是STI狀態;以及在IF標誌從它的CLI狀態轉換到它的STI狀態以後產生的中斷。對上述任何一種情況而言,記住這一點是很重要的,就是在CLI狀態與STI狀態間的轉換過程中,DOS軟體16均直接與構成8086微處理機的一部分的EFLAG寄存器中斷標誌通訊。這是很容易理解的,因為DOS軟體16是計算機系統10運行的唯一程序。
現在由圖2來看一個較先進的計算機系統,其中採用數24代表該整個系統。除了與系統10之間的其他區別外,系統24包括386微處理機26,並能同時運行包括早先為8086微處理機寫的程序在內的多個軟體程序,雖然這裡僅列出了一個程序,例如DOS程序16。為了能同時運行多個軟體程序,計算機系統24必須如此設計,以使得這些程序中沒有一個能直接地訪問並因此改變386微處理機的EFLAGS寄存器的中斷標誌位的狀態。該寄存器以30表示,它包括有中斷標誌位IF。根據這一點以及希望能使用8086軟體,該386微處理機被設計為在前述的特定虛擬操作模式下運行,就是說一種使8086程序,例如DOS程序16能在一主作業系統控制下於一被保護的、分頁式、多任務環境下運行的操作模式。前面也說過,一種這樣的主(中央)作業系統是前面引述的WINDOWS或UNIX程序,如圖2中的32。此程序必須編寫得包含有8086模擬軟體(下面有時僅稱之為模擬程序),用來執行早先編寫的程序中的某些有關中斷的指令,即CLI和STI。此時依靠該模擬軟體來模擬早先的8086微處理機執行這些指令的狀態。
再參照圖2,為方便起見,圖示計算機系統24含有相同的I/O外設18、20及22。此外,圖中作為386微處理機26一部分的EFLAGS寄存器30含有一虛擬模式位VM。當這一個二進位位處於其虛擬模式狀態,例如說1狀態時,該系統即被設定於在上面簡略說明過的它的虛擬模式下運行。將VM位改變為0狀態,將使該系統在其標準的(非虛擬)狀態下運行。
對於目前所說的計算機系統24,現在來看此系統在其虛擬操作模式下如何處理中斷。為此假設計算機系統24同時對多個早先為8086微處理機寫的軟體程序(包括DOS程序16)進行運行。為了進行討論,開始還將假設DOS程序16剛剛指示微處理機去訪問磁碟驅動器20。在這些情況下,該程序發出一個CLI指令,以保證在磁碟驅動器正被訪問時EFLAGS寄存器30的中斷標誌IF處於它的清除中斷(0)狀態。但正如前面指出過的,因為微處理機26可能正在處理多個軟體程序,因而在一種被保護的模式下運行,DOS程序不可能直接訪問EFLAGS寄存器30。而且由於程序16實際上是為8086微處理機編寫的,由該程序發出的這個CLI以及許多其它指令,必須由構成主作業系統32一部分的模擬軟體來俘獲並執行,以模擬這些指令為8086微處理機所執行時的狀態。緊接著磁碟驅動器20之後,並假設無其它禁止中斷的原因存在,即發出STI指令以使微處理機26能處理中斷。像CLI指令一樣,這一個以及其他使EFLAGS寄存器30的中斷標誌IF由0轉變到1狀態的STI指令也必須由同一模擬軟體俘獲和執行。
通過上面的討論,很明顯,即使中斷不存在或者處於待處理狀態,寄存器30的中斷位亦需要在它的CLI狀態及STI狀態之間來迴轉換。的確,根據一個典型操作計算機系統24的試驗,寄存器30的中斷位IF在它的CLI與STI狀態之間的轉換遠比由微處理機26形成的實際中斷請求更頻繁。況且由於每一個要求轉換IF位的CLI與STI指令均必須由模擬軟體俘獲和執行,因而執行這些指令所花的時間是很長的。事實上,在某些情況下發現,在一個給定的時間周期內這些CLI和STI指令雖然只佔通過主作業系統32模擬的全部指令的50%,執行CLI及STI指令所需的時間卻總計高達包括花費在模擬程序中的時間在內的整個執行時間的30%。
上面已指出,圖3中圖示說明包括一個386微處理機的一個計算機系統,該386微處理機已經作了前面提出的改進,使它可以比圖2所示計算機系統24以更快的速度在虛擬模式中執行中斷指令。圖3中34表示該計算機系統整體,而經改進的微處理機即386微處理機用數字26′表示。圖示後面這一微處理機包括有一經改進的EFLAGS寄存器30′和一經改進的主作業系統32′,它們將在下面討論。總的說,所示系統34中也包括有同一DOS軟體程序16和I/O外設18、20和22。需要說明的不同點在於,計算機系統34有可能以與系統24相同的狀態運行。
如圖3中所示,EFLAGS寄存器30′不僅包含一中斷標誌位IF(圖中未示出)和一圖中示出的虛擬操作模式位VM,而且還有計算機系統24的標誌寄存器30中不具有的兩個附加位。此二附加位之一是VIRTUALINTERRUPTFLAGS位VIF,另一是VIRTUALINTERRUPTPENDING位VIP。VIF位或者處於例如說明以0表示的CLI狀態,或者處於以1表示的STI狀態,在功能上它對應於中斷標誌IF。這就是說,在要排除(禁止)對微處理機的中斷時,將VIF位置於其CLI狀態,而在容許中斷時,則將其置於其STI狀態。同時,VIP位在其PENDING狀態(例如可以1表示,此時有中斷請求在等待執行)與其NONPENDING狀態(例如可以0表示,此時無等待執行的中斷)之間變換。
藉助這一改進的EFLAGS寄存器30′,該386′微處理機26′及其對應的主作業系統32′的設計就使得整個計算機系統34能以如下狀態運行。首先假設,系統以其虛擬模式運行(置VM為1),而且沒有中斷指令在執行中或在等待執行,因而在一定時間周期內VIP位被置為0。進而假定在此同一給定時間周期內,DOS程序16依次啟動STI和CLI指令,如圖3中所示。在這種條件下,每次DOS程序16啟動一個STI或CLI指令,總與EFLAGS寄存器30通信,將其VIF位由STI狀態1改變成CLI狀態0,返回到STI狀態1等等,而不由主作業系統的模擬軟體來俘獲並執行這些STI和CLI指令。換句話說,只要VIP位處於其NONPENDING狀態(0),主作業系統模擬程序就不考慮EFLAGS寄存器中VIF位狀態變化。這一點就與系統24不同,在系統24中每一個STI與CLI指令均為模擬程序所俘獲,亦即通過主作業系統的模擬軟體來執行。因而很明顯,系統34將大大減少作為主作業系統32′組成部分的模擬程序內的執行時間。
以上剛討論的是假定沒有正在等等執行的中斷指令,這就是說,在不斷地產生STI和CLI指令時,VIP位繼續保持它的NONPENDING狀態。現在假設VIF位處於其STI狀態(1),而軟體16正發出一中斷指令。在這些條件下,此改進過的計算機系統就作如下狀態運行。該軟體程序首先通過主作業系統與EFLAGS寄存器30通信,將VIP位由NONPENDING狀態(0)改變成PENDING狀態(1)。結果,VIF位為1狀態,和VIP位為1狀態,如圖3中所示。每當這種情況出現,此系統即被指定通過模擬程序以與系統24同樣的狀態來處理中斷。而當中斷被處理後,假設VIF位仍處於STI狀態,VIP位立即回到其NONPENDING狀態。
仍然來討論計算機系統34的運行狀態,現在假定EFLAGS寄存器30′中VIF位為其CLI狀態(0),而VIP位為其PENDING狀態(1)。當VIF位及VIP位處於這種狀態下,現在假設軟體程序發出一個STI指令以便使微處理機能接收中斷。在這一情況時,按照前面提示的計算機系統34,主作業系統識別到這一指令,並立即將VIF位由CLI狀態(0)改變到STI狀態(1)。結果VIF位和VIP位現在都為1,等待著的中斷請求即由模擬程序俘獲後執行。必須特別注意,只有在VIF位已經由其CLI狀態變到其STI狀態之後才會開始執行等待中的中斷請求。這一點應與計算機系統24區別開來。在後一系統中,如果中斷標誌位IF最初是處於其CLI狀態(0),並且存在有一個待處理的中斷,那麼隨後由軟體程序28所產生的STI指令就立即被俘獲到模擬程序中,而該等待處理的中斷請求即為模擬程序連同STI指令一併處理,無需首先改變寄存器30中的中斷標誌。只有在這些指令被模擬程序執行過後,該模擬程序才將中斷標誌復位到它的STI狀態(1),如果沒有產生另外的CLI指令的話。進行系統24與系統34之間的這種比較,目的在於指出後一系統的在模擬程序俘獲並執行一等待處理的中斷指令之前首先將其VIF位由0改變為1的這種技術,與系統24中的模擬軟體處理同樣情況需首先俘獲並進行模擬的情況是不一致的,因而是不相兼容的。如下面將會看到的,本發明消除這種不兼容的情況,但同時仍能保持系統34勝過系統24的優點。
現在再看圖4,來看另一個計算機系統36,它是根據本發明設計的一種。與系統34一樣,系統36包括一個以改進的386微處理機26′作為其特徵的圖4中所述的386微處理機。這種微處理機專門設計運行在一種虛擬模式,在該模式下能夠使早先為8086寫的多種軟體程序,例如DOS程序16,為一專門設計的帶有其自己的8086模擬軟體的主操作軟體程序32控制,以與系統34相同狀態在被保護、分頁式、多任務的環境下執行。所示系統36還包括其相應的外設18、20及22,以及構成微處理機26″一部分的相應的EFLAGS寄存器30。
有許多方面,計算機系統36處理中斷請求的情況與系統34一樣。特別是,只要寄存器30″的VIP位是在它的NONPENDING狀態(0),即就是無等待處理中斷指令時,就允許VIF位在它的STI(1)和它的CLI(0)狀態之間轉換而不通過主作業系統32″的模擬。然而,現在假設寄存器30″中的VIP位初始是在CLI(0)狀態,而該VIP位初始是在它的PENDING(1)狀態。並假設軟體程序28接著發出一個STI指令。在這種情況下微處理機26及主作業系統32被設計得能響應VIP位的PENDING狀態、VIF位的CLI狀態及緊接著產生的STI指令,並依靠作為主作業系統組成部分的模擬軟體自動地執行該隨後發出STI指令和等待中的中斷請求,而不必首先將VIF位的狀態從它CLI狀態改變到STI狀態。換名話說,在模擬軟體執行這些指令的期間,VIF位保留在CLI狀態直到中斷指令執行完為止,只有在此之後,主作業系統才把VIF位轉變到STI狀態,如果在這期間也沒有產生CLI指令的話。也因為早先等待著的中斷要求現在已經執行,主操作軟體也把VIP位轉換到它的NONPENDING狀態,如果沒有其他中斷請求等待執行的話。
顯而易見,像剛才上面所述的計算機系統36處理中斷的方法與系統34的處理中斷是不同的。具體說在系統36內,當一個中斷指令正待處理而虛擬中斷標誌是在CLI狀態時,隨後來的STI指令及待處理中斷請求通過模擬軟體被立即執行而無需首先轉變虛擬中斷標誌的狀態。這就相當於計算機24處理相同情況的狀態。因而是與系統24相兼容的,這與系統34相反,如前述,後者在這個方面與系統24不相兼容。這就使得能更容易和可能更正確地的修改早先為作為系統24組成部分386微處理機編寫的軟體程序。另外這種方法還使得386微處理機能在直接產生的與由如386微處理機過去通過POPF所產生的STI指令之間加以區分。這一點是很重要的,因為隨後的執行STI等待處理中斷是在延遲一個指令之後,而隨後的執行POPF等待處理中斷是立即進行的。所建議的386微處理機方案(圖3)不具備這種能力。
已經介紹了計算機系統36與所述建議的系統34、現存系統34和原始系統10之間的差異,但應理解,本發明並不僅限於對INTEL公司的386微處理機及其相應部件,它的80486TM微處理機或者任何有關的微處理機的改善,雖然本發明特別適宜於這些微處理機。不過由系統10、24、34及36的這些特點亦可明顯看到,本發明僅僅是關於對中斷的處理,而且也只介紹了這方面的情況。當然,每一系統均還包含有與本發明無關的其他一些部件。這些以及其他任何這裡未談到但對這些系統處理中斷操作所必不可少的部件,對於本技術領域的普通人員來說應該是顯而易見的。不過具體關於STI和CLI指令,亦應理解,本發明對他們的處理方法,無論這些指令是由一特定的DOS應用程式直接發出的,還是作為POPF指令的結果而產生的,均是完全相同的。還應理解,本發明亦不限於計算機系統的虛擬模式運行。新系統36與系統34一樣,是被設計為在被保護的模式、即專門為386微處理機26編寫的利用該微處理機中較大(32位)存儲器的新DOS應用程式下運行的。在系統24,當在被保護的模式下以新軟體(與為8086系統10編寫的較老軟體不同)運行時,STI和CLI指令是以與系統在虛擬模式下運行8086軟體時相同的方式和同樣的條件下被俘獲進模擬程序32中的。系統36在虛擬模式下處理這些指令過程的改進已經被延伸到在被保護模式下處理他們的方法中。換言之,不管計算機系統36(圖4)是在虛擬模式下對8086軟體、還是在被保護模式下對386軟體運行,STI和CLI指令的處理過程均是同樣的。
討論過計算機系統36處理中斷指令的運行過程以及它的超過現有技術和先前建議的系統的優點之後,現在來看圖5。圖中描述系統36以前述狀態處理中斷過程的流程圖。應特別注意到,此流程圖不僅包含有如對照圖4所說明的系統34與36之間的差異,而且還包含有如對照圖3所述的他們之間的相似處。根據這一流程圖和這裡所揭示的內容,本技術領域的普通熟練人員將能很容易地實現本發明。
再回到圖5,圖中的流程圖說明根據本發明的圖4所示的計算機系統36處理STI和CLI指令的過程。雖然該流程圖本身已經說明問題,這裡還是再作簡單敘述。由圖中可見,首先要確定指令是STI還是CLI。如果為一個CLI指令,將VIF標誌30″直接(不經過模擬過程)置(或保持)0,而後處理結束。如果指令是STI,那麼就讀出VIP位以確定它是1還是0。如果VIP位為0,將VIF位置1,處理結束。如果VIP位為1,則在處理結束前進行模擬操作所需的俘獲。
權利要求
1.在一包括有一給定微處理機的計算機系統中,該微處理機專門設計成在一虛擬操作模式下運行,此模式可以使為早先設計的單程序微處理機編寫的軟體程序在一特殊設計的主操作軟體程序控制下能在一被保護的、分頁式、多任務環境中運行,所述系統還包括有利用作為所述主程序組成部分的模擬軟體來執行所述早先編寫的程序產生的某些與中斷有關的指令CLEAR INTERRUPT (CLI)和SETINTERRUPT (STI),以便模擬這些指令為所述早先的微處理機執行的狀況,對所述系統的改進特徵在於包括(a)一作為所述給定微處理機組成部分的EFLAGS寄存器,它包含有(1)一個VIRTUAL INTERRUPT FLAG (VIF)位,它處於一允許執行所述早先編寫的程序所產生的中斷指令的STI狀態或一禁止所述中斷指令執行的CLI狀態;(2)一個VIRTUAL INTERRUPT PENDING (VIP)位,它處於一中斷請求正等待執行時期的PENDING狀態,或者一無中斷請求等待執行的NONPENDING狀態;(b)構成所述給定微處理機和所述主操作軟體組成部分的裝置,用來在只要VIP位處於其NONPENDING狀態,改變所述EFLAGS寄存器為VIF位的狀態,而可不利用所述模擬軟體;(c)構成所述給定微處理機和所述主操作軟體組成部分的裝置,響應所述VIP位的PENDING狀態、所述VIF位的CLI狀態和一隨後由所述早先編寫的軟體程序產生的STI指令,藉助所述模擬軟體來自動執行該STI指令,而無需首先將所述VIF位的狀態由CLI狀態改變為STI狀態。
2.在一包括有一給定微處理機的計算機系統的操作方法中,該微處理機專門設計成在一虛擬操作模式下運行,此模式可以使為早先設計的單程序微處理機編寫的軟體程序在一特殊設計的主操作軟體程序控制下能在一被保護的、分頁式、多任務環境中運行,所述系統還包括有利用作為所述主程序組成部分的模擬軟體來執行所述早先編寫的程序產生的某些與中斷有關的指令CLEAR INTERRUPT(CLI)和SET INTERRUPT(STI),以便模擬這些指令為所述早先的微處理機執行的狀況,所述方法的改進特徵在於包括下列步驟(a) 設置構成所述給定微處理機部件的EFLAGS寄存器,它包含有(1) 一個VIRTUAL INTERRUPT FLAG(VIF)位,它處於一允許執行所述早先編寫的程序所產生的中斷指令的STI狀態或一禁止所述中斷指令執行的CLI狀態;(2) 一個VIRTUAL INTERRUPT PENDING(VIP)位,它處於一中斷請求正等待執行時期的PENDING狀態,或一不存在這種中斷正在或等待執行的中斷的NONPENDING狀態;(b) 只要VIP位處於其NONPENDING狀態,改變所述EFLAGS寄存器的VIF位的狀態或狀態的變化而無需利用所述模擬軟體;(c)響應所述VIP位的PENDING狀態,所述VIF位的CLI狀態和一隨後由所述早先編寫的軟體程序產生的STI指令,藉助所述模擬軟體來自動地執行該STI指令及一等待著的中斷請求,而無需首先將所述VIF位的狀態由CLI狀態改變為STI狀態。
3.在一包括有一給定微處理機的計算機系統中,該微處理機專門設計成在一被保護的運行模式下運行,此模式使得早先為一大存儲器微處理機編寫的給定軟體程序能在一特定設計的主操作軟體程序控制下在一被保護的、分頁式、多任務環境下運行,所述系統還包括有利用構成所述主程序一部分的模擬軟體來執行由所述給定程序產生的某些有關中斷的指令CLEAR INTERRUPT(CLI)和SET INTERRUPT(STI),對所述系統的改進特徵在於包括(a)作為所述給定微處理機組成部分的EFLAGS寄存器,它包括有(1)一個VIRTUAL INTERRUPT FLAG(VIF)位,它處於一允許執行所述給定程序所產生的中斷指令的STI狀態,或一禁止所述中斷指令執行的CLI狀態;(2)一個VIRTUAL INTERRUPT PENDING(VIP)位,它處於一中斷請求正等待執行時期的PENDING狀態,或者一無中斷請求等待執行的NONPENDING狀態;(b)構成所述給定微處理機和所述主操作軟體組成部分的裝置,用來在只要VIP位處於其NONPENDING狀態時,改變所述EFLAGS寄存器的VIF位的狀態,而不必利用所述模擬軟體;(c)構成所述給定微處理機和所述主操作軟體組成部分的裝置,響應所述VIP位的PENDING狀態,所述VIF位的CLI狀態和一隨後由所述給定程序產生的STI指令,藉助所述模擬軟體來自動地執行該STI指令和一等待著的中斷請求而無需首先將所述VIF位的狀態由CLI狀態改變為STI狀態。
4.在一包括有一給定微處理機的計算機系統的操作方法中,該微處理機專門設計成在一被保護的運行模式下運行,此模式使得早先為一大存儲器微處理機編寫的給定軟體程序能在一特定設計的主操作軟體程序控制下在一被保護的、分頁式、多任務環境下運行,所述系統還包括有利用構成所述主程序一部分的模擬軟體來執行由所述給定程序產生的某些有關中斷的指令CLEAR INTERRUPT(CLI)和SET INTERRUPT(STI),對所述系統運行方法的改進特徵在於包括下列步驟(a)設置作為所述給定微處理機組成部分的EFLAGS寄存器包括,它包含有(1)一個VIRTUAL INTERRUPT FLAG(VIF)位,它處於一允許執行所述給定程序所產生的中斷指令的STI狀態或一禁止所述中斷指令執行的CLI狀態;(2)一個VIRTUAL INTERRUPT PENDING(VIP)位,它處於一中斷請求正等待執行時期的PENDING狀態或一沒有這種中斷請求正在執行或等待執行的NONPENDING狀態;(b)只要VIP位處於其NONPENDING狀態,改變所述EFLAGS寄存器的VIF位的狀態或狀態的變化,而無需利用所述模擬軟體;(c)響應所述VIP位的PENDING狀態,所述VIF位的CLI狀態和一隨後由所述早先編寫的軟體程序產生的STI指令,藉助所述模擬軟體來自動地執行該STI指令及等待著的中斷請求而無需首先將所述VIF位的狀態由CLI狀態改變為STI狀態。
全文摘要
這裡揭示的計算機系統,包括有一專門設計為以一虛擬操作模式(亦即被保護的模式)運行的給定微處理機,該操作模式使得早先為一較早設計的單程序微處理機編寫的軟體程序能在一特定設計的主操作軟體程序控制下,在一被保護的、分頁式、多任務環境中運行。此系統還包括有依靠作為主程序的構成部分的模擬軟體來執行該早先編寫的程序所產生的某些有關中斷的指令,即CLEAR INTERRUPT(CLI)和SET INTERRUPT(STI)的裝置,以模擬這些指令為早先的微處理機執行的情況。
文檔編號G06F9/455GK1071269SQ9211098
公開日1993年4月21日 申請日期1992年9月23日 優先權日1991年9月23日
發明者D·阿爾帕特, A·鄧 申請人:英特爾公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀