当前位置: 首页 > 专利查询>英特尔公司专利>正文

具有与运行在虚拟模式下的指令相关的中断指令的计算机系统技术方案

技术编号:2892686 阅读:307 留言:0更新日期:2012-04-11 18:40
这里揭示的计算机系统,包括有一专门设计为以一虚拟操作模式(亦即被保护的模式)运行的给定微处理机,该操作模式使得早先为一较早设计的单程序微处理机编写的软件程序能在一特定设计的主操作软件程序控制下,在一被保护的、分页式、多任务环境中运行。此系统还包括有依靠作为主程序的构成部分的模拟软件来执行该早先编写的程序所产生的某些有关中断的指令,即CLEARINTERRUPT(CLI)的SETINTERRUPT(STI)的装置,以模拟这些指令为早先的微处理机执行的情况。(*该技术在2012年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术总的说是关于一包括有特别设计以在虚拟模式下运行的给定微处理机的计算机系统,该虚拟模式允许早先为一台早先设计的单程序微处理机编写的软件程序能依靠一个特别设计的主操作软件程序在被保护的、分页式、多任务环境中运行。更确地说,本专利技术涉及对该给定微处理机和它的主操作软件程序处理早先编写的程序中的某些有关中断的指令,亦即CLEARINTERRUPT(CLI)和SETINTERRUPT(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)一个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击键所产生的信号所中断。因此在本文档来自技高网...

【技术保护点】
在一包括有一给定微处理机的计算机系统中,该微处理机专门设计成在一虚拟操作模式下运行,此模式可以使为早先设计的单程序微处理机编写的软件程序在一特殊设计的主操作软件程序控制下能在一被保护的、分页式、多任务环境中运行,所述系统还包括有利用作为所述主程序组成部分的模拟软件来执行所述早先编写的程序产生的某些与中断有关的指令CLEARINTERRUPT(CLI)和SETINTERRUPT(STI),以便模拟这些指令为所述早先的微处理机执行的状况,对所述系统的改进特征在于包括:(a)一作为所述给定微处理机组成部分的EFLAGS寄存器,它包含有:(1)一个VIRTUALINTERRUPTFLAG(VIF)位,它处于一允许执行所述早先编写的程序所产生的中断指令的STI状态或一禁止所述中断指令执行的CLI状态;(2)一个VIRTUALINTERRUPTPENDING(VIP)位,它处于一中断请求正等待执行时期的PENDING状态,或者一无中断请求等待执行的NONPEDING状态;(b)构成所述给定微处理机和所述主操作软件组成部分的装。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:D阿尔帕特A邓
申请(专利权)人:英特尔公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1