CN1071269A - 具有与运行在虚拟模式下的指令相关的中断指令的计算机系统 - Google Patents

具有与运行在虚拟模式下的指令相关的中断指令的计算机系统 Download PDF

Info

Publication number
CN1071269A
CN1071269A CN92110981A CN92110981A CN1071269A CN 1071269 A CN1071269 A CN 1071269A CN 92110981 A CN92110981 A CN 92110981A CN 92110981 A CN92110981 A CN 92110981A CN 1071269 A CN1071269 A CN 1071269A
Authority
CN
China
Prior art keywords
state
microprocessor
interrupt
sti
instruction
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN92110981A
Other languages
English (en)
Inventor
D·阿尔帕特
A·邓
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN1071269A publication Critical patent/CN1071269A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Executing Machine-Instructions (AREA)
  • Debugging And Monitoring (AREA)

Abstract

这里揭示的计算机系统,包括有一专门设计为以 一虚拟操作模式(亦即被保护的模式)运行的给定微 处理机,该操作模式使得早先为一较早设计的单程序 微处理机编写的软件程序能在一特定设计的主操作 软件程序控制下,在一被保护的、分页式、多任务环境 中运行。此系统还包括有依靠作为主程序的构成部 分的模拟软件来执行该早先编写的程序所产生的某 些有关中断的指令,即CLEAR INTERRUPT (CLI)和SET INTERRUPT(STI)的装置,以模拟 这些指令为早先的微处理机执行的情况。

Description

本发明总的说是关于一包括有特别设计以在虚拟模式下运行的给定微处理机的计算机系统,该虚拟模式允许早先为一台早先设计的单程序微处理机编写的软件程序能依靠一个特别设计的主操作软件程序在被保护的、分页式、多任务环境中运行。更确地说,本发明涉及对该给定微处理机和它的主操作软件程序处理早先编写的程序中的某些有关中断的指令,亦即CLEAR    INTERRUPT(CLI)和SET    INTERRUPT(STI)的方法的改进,所采取的措施是依靠作为主程序中一部分的模拟软件程序来模拟早先微处理机执行这些指令的状态。
上面的讨论中,引用了一给定的微处理机,一早先编写的软件程序,一早先设计的单程序微处理机,及一特殊设计的主操作软件程序。在本发明实际的实践中,该给定微处理机具体指的是INTEL公司的80386和80486TM经过改进的微处理机,下文将仅指386微处理机,因为本发明对上面两种都是适用的。该早先设计的单程序微处理机,指的是INTEL公司早先设计的单程序8086微处理机。该早先编写的软件程序,指的是一些具体包括早先为8086微处理机写的DOS程序在内的各种程序。最后,该主操作软件程序指的是任何适用的主(中央)控制操作系统,诸如WINDOWTM软件(MICrOSOFT公司)或UNIXTM系统软件(AT&T公司),两者都是特别为该给定微处理机写的,以使后者能运行在上述的虚拟操作模式下。虽然下文对本发明的叙述将针对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)一个VIRTUAL    INTERRUPT    FLAG(VIF)位,该VIF二进制位工作在为允许执行源于早先写的程序的中断指令的STI状态或为禁止该中断指令执行的CLI状态;(2)一个VIRTUAL    INTERRUPT    PENDING(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中不具有的两个附加位。此二附加位之一是VIRTUAL    INTERRUPT    FLAGS位VIF,另一是VIRTUAL    INTERRUPT    PENDING位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,则在处理结束前进行模拟操作所需的俘获。

Claims (4)

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状态。
CN92110981A 1991-09-23 1992-09-23 具有与运行在虚拟模式下的指令相关的中断指令的计算机系统 Pending CN1071269A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US76417091A 1991-09-23 1991-09-23
US764,170 1991-09-23

Publications (1)

Publication Number Publication Date
CN1071269A true CN1071269A (zh) 1993-04-21

Family

ID=25069878

Family Applications (1)

Application Number Title Priority Date Filing Date
CN92110981A Pending CN1071269A (zh) 1991-09-23 1992-09-23 具有与运行在虚拟模式下的指令相关的中断指令的计算机系统

Country Status (6)

Country Link
JP (1) JPH05216690A (zh)
KR (1) KR930006555A (zh)
CN (1) CN1071269A (zh)
DE (1) DE4231552A1 (zh)
GB (1) GB2259794A (zh)
IT (1) IT1255601B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100382036C (zh) * 2002-12-11 2008-04-16 英特尔公司 用于控制虚拟机系统中的外部中断的装置

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1996035167A1 (en) * 1995-05-05 1996-11-07 Apple Computer, Inc. System and method for providing cooperative interrupts in a preemptive task scheduling environment
DE59711719D1 (de) * 1996-12-21 2004-07-22 Volkswagen Ag Seitenairbagsystem für ein Kraftfahrzeug
CN117008977B (zh) * 2023-08-08 2024-03-19 上海合芯数字科技有限公司 一种可变执行周期的指令执行方法、系统和计算机设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4779187A (en) * 1985-04-10 1988-10-18 Microsoft Corporation Method and operating system for executing programs in a multi-mode microprocessor

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100382036C (zh) * 2002-12-11 2008-04-16 英特尔公司 用于控制虚拟机系统中的外部中断的装置

Also Published As

Publication number Publication date
ITMI922140A1 (it) 1994-03-17
GB2259794A (en) 1993-03-24
ITMI922140A0 (it) 1992-09-17
IT1255601B (it) 1995-11-09
DE4231552A1 (de) 1993-03-25
KR930006555A (ko) 1993-04-21
GB9217612D0 (en) 1992-09-30
JPH05216690A (ja) 1993-08-27

Similar Documents

Publication Publication Date Title
CN100351790C (zh) 以两种操作模式执行软件中断指令的方法和计算机系统
US4315310A (en) Input/output data processing system
CN1040157C (zh) 自动暂停状态重启动的透明系统中断
US5255379A (en) Method for automatically transitioning from V86 mode to protected mode in a computer system using an Intel 80386 or 80486 processor
US4020471A (en) Interrupt scan and processing system for a data processing system
EP0549924A1 (en) Asynchronous co-processor data mover method and means
CN101872335B (zh) Cpu控制台重定向方法、系统及cpu
JPS6252655A (ja) 共用割込みシステム
CN1007938B (zh) 虚拟计算机系统的输入输出控制方式
CN1054160A (zh) 通信接口适配器
EP0969372A3 (en) Bus error handling in a computer system
US4621319A (en) Personal development system
US5418968A (en) System and method for controlling interrupt processing
WO1985001136A1 (en) Processor with depictor-linked microcode and logic circuitry
CN1071269A (zh) 具有与运行在虚拟模式下的指令相关的中断指令的计算机系统
CA1162312A (en) Queueing of work requests to independent task
CN1157962A (zh) 目标面向系统保护目标使用权控制的系统、方法和产品
JPH02148223A (ja) レジスタ退避復活装置
EP0430500B1 (en) System and method for atomic access to an input/output device with direct memory access
CN2528080Y (zh) 支持信息信号式中断的芯片组以及控制器
JPH04227547A (ja) 情報処理装置
CN1318971C (zh) 提升多任务作业环境下数据储存装置整体工作效率的方法
EP0664509A1 (en) Method and apparatus for passing control from a first process to a second process
CA1174767A (en) Processor with means to address operands in microinstructions
Lauesen Program control of operating systems

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C01 Deemed withdrawal of patent application (patent law 1993)
WD01 Invention patent application deemed withdrawn after publication