以两种操作模式执行软件中断指令的方法和计算机系统的制作方法

文档序号:6443478阅读:157来源:国知局
专利名称:以两种操作模式执行软件中断指令的方法和计算机系统的制作方法
技术领域
本发明总的说是关于包含有一专门设计为在一虚拟操作模式下运行的给定微处理机的计算机系统,该虚拟模式允许先前为较早设计的单程序微处理机编写的软件程序在一特殊设计的主操作软件程序控制下,于被保护的、分页式、多任务环境中执行。具体地说,本发明是关于对该给定微处理机及其主操作软件程序利用作为该主程序的一部分的模仿软件来处理软件中断指令(INTn指令)以模仿该较早微处理机执行这些指令的过程的方法的改进。
在以上叙述中,引述了一给定微处理机,一先前编写的软件程序,一较早设计的单程序微处理机,及一专门设计的主操作软件程序。在本发明的具体实践中,该给定微处理机具体指一经改进的Intel公司80386和80486TM微处理机,下面将仅指386微处理机,因为对于本发明二者是同样适用的。该较早设计的单程序微处理机是指Intel公司较早设计的单程序8086微处理机。该早先编写的软件程序是指包括先前为8086微处理机编写的DOS程序在内的许多不同程序中的一种。最后,该主操作软件程序指像Microsoft公司的WINDOWSTM软件或AT&T公司的UNIXTM系统软件之类的任何合适的主(中央)控制操作系统。上述此二系统软件均是专门为该给定微处理机编写的,目的是使后者能在上述的虚拟操作模式下运行。虽然下面讨论的本发明将针对Intel 386(及486TM)和8086微处理机,先前编写的DOS程序,以及WINDOWS或UNIX操作系统,但应理解,本发明并不仅仅局限于这些指定的微处理机,这些先前编写的软件程序,和这些特定的中央操作系统。理解了这些亦就会想到8086和386微处理机的大概历史。在下面的详细叙述中,将对这些微处理机具体与本发明相关的地方进行仔细讨论。
可以无保留地说,Intel公司早先的8086微处理机是非常成功的,曾经为它编写有很多软件程序。但是既然这一微处理机是一系列随后不断改进的微处理机先驱者,自然会有其局限性。特别有一点,虽然对当时来说不一定认为是一种限制,就是该微处理机不能一次同时处理一个以上的软件程序。当然这就意味着程序本身亦不必在一被保护的、分页式、多任务环境下执行。但随着技术的发展,Intel公司终于开发出了它的386微处理机。此微处理机,正如上面所说的,能利用一较复杂的中央操作系统,例如WINDOWS或UNIX,来执行许多程序。同时此386微处理机是被设计为在一种虚拟8086操作模式下运行的,此运行模式使得多个先前为较早的8086微处理机编写的软件程序能在该较复杂的中央操作系统的控制下得到利用,特别是在一被保护的、分页式、多任务环境中运行,即使这些先前写的软件程序并不曾企图在这一状态下工作。确实有太多先前写的程序已成为过时的。因此每当在对8086微处理机的后续产品进行改进时,总要考虑到与先前的8086软件的兼容性。
尽管Intel的现代微处理机与先前编写的软件之间的兼容性确实很重要,有些情况下这一目标也使得整个计算机系统的某些其他运行性能作出了牺牲。在执行软件中断指令(INTn指令)时情况就是这样。正如下面将详细讨论的,现在的386微处理机的设计只是使其利用作为主程序一部分的模仿软件来执行所有的INTn指令,以模仿较早的8086微处理机执行这些指令的状态。虽然这些特定指令执行的数量只占模仿过程中所执行指令总数中相当小的比例,但他们却需要相当大的执行时间。目前曾提出的一个解决此问题的方法是使所有INTn指令均由软件程序自身协同微处理机及其主操作系统来执行,而不利用模仿软件,就是说不将INTn指令俘获进主操作程序的模仿软件(或称之为模仿程序)中。申请人看到前述这种施措总的说节省了计算时间(对整个系统而言)和模仿时间,特别是在当INTn指令是一简单指令,例如询问时间,或者即使稍为复杂一点的指令,例如如打印一个字符时。然而申请人也发现,对于相当复杂的INTn指令,例如读文件,如能使这样的指令由模仿软件来俘获并执行,将更为有效。
鉴于上面所述,本发明的主要目的就在于有效地降低上述类型的计算机系统执行INTn指令所需的时间。
下面将会看到,这里揭示的一计算机系统包括有一给定的微处理机,例如386微处理机,此微处理机被专门设计在一虚拟操作模式下运行,这一操作模式使得早先为一较早设计的单程序微处理机,例如8086微处理机,编写的软件程序,例如DOS程序,能在一专门设计的主操作软件程序,例如WINDOWS或UNIX的控制下,在一被保护的、分页式、多任务环境中运行。这一系统还包含有作为该给定微处理机及主操作软件程序的组成部分的装置,它利用为该主程序组成部分的模仿软件来执行INTn指令,以便模仿该较早的微处理机执行这些指令的过程。
为了减少总的计算机系统及特别是当计算机系统运行在虚拟操作模式期间模仿软件执行INTn所花费的时间,采取了这样的施措,即,使得某些INTn指令由模仿软件执行,同时也允许其他一些INTn指令不依靠模仿软件,而由早先写的程序来执行。在这里披露的具体实施例中,为整个系统设置了一个位映象表,其中包含有一系列二进制位,每一位对应于一个INTn指令。这些二进制位的每一位被置于或者为进行模仿的第一种状态,或者为不进行模仿的第二种状态。还设置有装置以使得与该位映象表的进行模仿的第一状态相对应的所有INTn指令通过模仿软件来执行,同时也允许与位映象表中不进行模仿的第二状态相对应的所有INTn指令不利用模仿软件而由早先编写的程序协同主操作软件程序中的给定软件加以俘获和执行。
换句话说,本发明是使得一些而不是全部INTn指令不经模仿程序来执行。这样需进行模仿和不需模仿的那些INTn指令可以根据各个指令的复杂程度预先选定,从而使执行全部指令所需的整个时间减到最小。这既不同于包含全部INTn指令均由模仿执行的现有386微处理机的计算机系统,也不同于全部INTn指令均不作模仿运行的前述建议中改进的386系统。本发明采取了这两种方法中有关INTn指令执行的最佳处。
下面将结合附图详细讨论本发明。附图中

图1为对包含有较早的8086微处理机的先有技术计算机系统的某些方面的图示说明;图2为包括较早的386微处理机的计算机系统的相似图,具体说明模仿程序执行INTn指令的方法;图3为对按照本发明执行INTn指令的计算机系统的图示说明;和图4为描述图3所示计算机系统按照本发明执行INTn指令的流程图。
现在来看附图,首先注意图1,如上面指出的,它是对包含有较早的8086微处理机的先有技术计算机系统的某些方面的图解说明。全系统以一总的标号10表示。虽然这一系统还包括有许多图中未示出的部件,这里只特别地说明所包含的8086微处理机12,它具有一INTn寄存器14,一单磁盘操作系统(DOS)软件程序16,和多个输入/输出(I/O)外围设备18、20和22,例如分别为一监视器,一磁盘驱动器,和一键盘,当然本发明并不局限为这些特定的I/O装置。INTn寄存器14实际上按照当时正处理中的具体INTn指令,与一包含有不同执行地址的地址表(图中未示出)进行通信。系统10中具有256个可能的INTn指令0-255,其中每一个均以一特殊操作数作表征用作为对该表的索引。DOS中断向量例如包括有MS-DOS终止过程,MS-DOS功能调度程序,MS-DOS终止地址,MS-DOS Ctrl-C处理程序地址,MS-DOS临界误差处理程序地址,
MS-DOS绝对磁盘读,MS-DOS终对磁盘写,MS-DOS终止和保持驻留,MS-DOS备用中断,MS-DOS保留,MS-DOS网络转接程序,MS-DOS保留,MS-DOS复用中断,MS-DOS保留。
在对计算机系统10作了介绍之后,现在来看这一系统处理软件程序16中INTn指令的方法。例如假定程序16发出INTn指令INTn21。操作数“21”被置入INTn寄存器14,它用作为对包含有与该指令相对应的特定执行子程序起始地址的地址表的索引。这是通过微处理机硬件结合单DOS程序16完成的。
现在来看图2,注意图中以标号24所指明的进一步的计算机系统。除这一系统与系统10之间其他的不同处之外,系统24包含有一以26标明的386微处理机,并能同时运行包括早先为8086微处理机编写的程序在内的一个以上的软件程序,虽然图中仅表示出一个例如DOS程序16的这样的程序。为了能同时运行多个软件程序,以及希望利用8086软件,此386微处理机被设计得在一特定的虚拟操作模式下运行,即就是如前面所说的,一种使8086程序,例如DOS程序16,可在主操作系统控制下,在一被保护的、分页式、多任务环境中运行的操作模式。如前面已说过的,一种这样的主操作系统就是先前引述的WINDOWS或UNIX程序,在图2中图示标号为32。这一程序被编写得包含有8086模仿软件33(以后有时称其为模仿程序33),它用来执行早先编写的程序16中的特别包括有软件中断指令(INTn指令)在内的某些与中断相关的指令,以便对较早的8086微处理机执行这些指令的过程加以模仿。在这方面,系统24包含有一在功能上与INTn寄存器14相对应的INTn寄存器34。虽然图中没能表示出,系统24也包括有如图1中所示的I/O外设。
谈到计算机系统24,现在注意该系统以虚拟操作模式处理中断的方法。特别是,当一个特定的INTn指令,正在其中一个软件程序中运行时,例如程序16,它的操作数被送到寄存器34。从这儿,该软件中断指令被该模仿软件俘获到主操作程序32的模仿程序33中,并被执行,以模仿通过早先的8086微处理机12执行该指令的方法。所有INTn指令都这样执行。已经发现该模仿程序的执行时间相对于数量很小的被执行的INTn指令来说很不相称。早先建议的解决这问题的一个途径是排除模仿程序33对所有INTn指令的俘获。因此,按照那个建议,所有的256 INTn指令均在模仿程序33以外处理,亦即由DOS程序16本身协同微处理机26和主操作程序32来执行。
如前面指出过的,虽然俘获并模仿全部INTn指令需要很多时间,但使得在模仿程序33之外由软件程序16及其他相应的程序来执行全部INTn指令可能需要更多的时间。这是因为一些INTn指令可能很复杂,以致要求该软件程序结合微处理机26及主操作程序32执行该模仿程序33无需执行的额外的子程序。下面将会立即看到,本发明将消除这一问题。
现在来看图3,观察又一个计算机系统36,亦即根据本发明所设计的系统。系统36包含有一经改进的386微处理机26′,在图3中标明为386′微处理机。这一微处理机与图2所示的386微处理机一样,专门设计得在一虚拟操作模式下运行,此虚拟模式使得多个早先编写的包括有例如DOS程序16的8086软件程序能在一特殊设计的主操作软件程序32′的控制下在一被保护的、分页式、多任条环境中运行。该主操作程序与系统24状态相同,具有它自己的8086模仿软件。图3中所示系统36还包含有相应的INTn寄存器34,以及虽然图中未示出,还包括有与系统10中同样状态的I/O外设。另外,系统36包括有一位映象图38,它含有256个二进制位,其中每一位对应于256个INTn指令之一。每一二进制位或者处于例如以1表示的进行模仿的第一状态,或者处于例如以0表示的不作模仿的第二状态。微处理机26′及主操作软件程序32′被设计成能使所有与进行模仿的第一状态相对应的INTn指令由模仿软件33执行;同时亦允许所有与不作模仿的第二状态相应的INTn指令不经模仿软件33′,而由早先编写的DOS程序16协同微处理机26′及主操作软件程序32′来执行。位映象图38处在主操作软件程序中。
位映象图38中一特定位到底为进行模仿的第一状态还是为其不作模仿的第二状态由程序员决定,并被编进主操作软件程序32′中。这种决定取决于每一INTn指令的复杂程度。一般的规则是,那些复杂指令,使它们在模仿程序33′之外执行时将需要较长时间的话,例如磁盘I/O,就可以使其以与系统24同样的方式在模仿程序内俘获。另一方面,那些较简单的INTn指令,在模仿程序33′以外执行如能比其借助模仿程序执行速度快的话,即可由早先编写的软件程序协同微处理机26′及主操作程序32′来执行。虽然这是通常设置位映象图38中各不同位的标准,但程序员可以考虑采用另外的标准也是很显见的。本发明的特点就是赋于程序员这种灵活性。
阐述过计算机系统36以及它与系统24和先前建议的对系统24的改进之间的不同处之后,亦应理解本发明并不限于Intel公司的386微处理机及其附属部件,它的i486TM微处理机,或任何相关的微处理机,尽管本发明特别适用于这些微处理机。另外由前面所述亦应是很清楚的,即就是本发明是专门关于INTn指令的处理的,已经说明的也仅令是这些特点。显然,图3中所示的每一系统还包括有不涉及本发明的其他部件。这些部件以及任何图中未作出但对系统处理INTn指令的操作是必须的部件,对于熟悉本技术领域的一般人员来说均应是显而易见的。
讨论过计算机系统36处理INTn指令的方法及其胜过现有技术和先前建议的系统的优点之后,现在来看图4。此图描述系统36按上述方式有选择性地处理INTn指令的过程的流程图。按照这一流程图及本文的论述,熟悉本技术领域的一般人员将能容易地实现本发明。
现在来看图4,图中的流程图描述根据本发明图3中所示计算机系统36处理INTn指令的过程,虽然此流程图本身应该是足以说明问题的,这里还是对之作简短说明。如图示,首先要确定一特定INTn指令,即由位映象图来决定“n”被设置为1还是0。如果“n”为1,该指令即由模仿程序执行,处理结束。如果“n”为0,则该指令即由微处理机(包括其微程序)像在8086微处理机时那样执行,处理结束。
权利要求
1.一种微处理机,包括用于执行包含INTn指令在内的指令的装置;用于响应所述INTn指令存取位映象图结构中的位的装置,所述装置用于执行指令,如果所述位处于第一状态,该装置响应所述INTn指令而执行中断模仿程序,如果所述位处于第二状态,该装置响应所述INTn指令而执行非模仿中断处理程序。
2.根据权利要求1的微处理机,其特征在于还包括INTn寄存器,其中,所述微处理机能够根据存储在所述INTn寄存器中的所述INTn指令的操作数的值来确定执行地址。
3.根据权利要求1的微处理机,其特征在于,所述微处理机能够根据所述INTn指令的操作数的值来确定执行地址。
4.根据权利要求1的微处理机,其特征在于,所述位映象图结构与任务有关,其中所述INTn指令的操作数引入所述映象图结构,以指定所述INTn指令的处理。
5.一种微处理机,包括执行装置,用于执行带有操作数(n)的中断指令(INTn),以指定多个中断中之一;装置,以使所述多个中断中的某些中断通过软件模仿处理,同时允许多个中断中的另外某些中断通过预先编写的程序而不是通过模仿执行。
6.根据权利要求5的微处理机,其特征在于还包括INTn寄存器,其中所述微处理机能够根据存储在所述INTn寄存器中的INTn指令的操作数的值来确定执行地址。
7.根据权利要求5的微处理机,其特征在于,所述微处理机亦能够根据该操作数来确定执行地址。
8.根据权利要求5的微处理机,其特征在于,用以使所述多个中断中的某些中断通过软件模仿处理的装置包括存取位映象的逻辑,其中,所述位映象与任务有关,而INTn指令的操作数引入所述位映象,以指定所述INTn指令的处理。
9.一种微处理机,包括一执行单元,用来执行包括中断指令在内的指令,中断指令为具有指定中断号的操作数的INTn中断指令;逻辑LO,响应所述中断指令和所述中断号存取包含与所述中断号对应的位的表,响应处于第一状态的所述位执行模仿程序,以及响应处于第二状态的所述位执行非模仿中断处理程序。
10.根据权利要求9的微处理机,其特征在于还包括INTn寄存器,其中所述微处理机亦能够根据存储在所述INTn寄存器中的所述中断号来确定执行地址。
11.根据权利要求9的微处理机,其特征在于,所述微处理机亦能够根据所述中断指令的操作数值来确定执行地址。
12.根据权利要求11的微处理机,其特征在于,所述微处理机被设计成操作于一种虚拟操作模式,该虚拟操作模式允许预先编写程序在被保护的、分页式、多重任务的环境下操作。
13.根据权利要求9的微处理机,其特征在于,所述微处理机以一种虚拟操作模式操作。
14.根据权利要求13的微处理机,其特征在于,所述微处理机在被保护的、分页式、多重任务的环境下执行操作。
15.根据权利要求9的微处理机,其特征在于,所述表包含一系列的256位,256个INTn指令中的每一个指令一位。
16.根据权利要求9的微处理机,其特征在于,所述表与特定定任务有关。
17.根据权利要求16的微处理机,其特征在于,对于多个任务中的每个任务,一个不同的相关表将由微处理机进行谘询,其中所述不同的相关表根据中断指令的操作数而被引入。
18.根据权利要求9的微处理机,其特征在于,所述表与软件程序有关。
19.根据权利要求16的微处理机,其特征在于,多个DOS程序,每个DOS程序具有一个相关表。
20.根据权利要求9的微处理机,其特征在于,所述中断指令是一部分程序,其中,如果所述位为逻辑‘1‘,则所述微处理机如同在8086微处理机中那样根据程序执行中断程序,其中如果所述位为逻辑‘0’,则所述微处理机为了模仿而要俘获所述中断指令。
21.根据权利要求17的微处理机,其特征在于,所述中断指令是一部分程序,其中,如果所述位为逻辑‘1‘,则所述微处理机如同在8086微处理机中那样根据程序执行中断程序,其中如果所述位为逻辑‘0’,则所述微处理机为了模仿而要俘获所述中断指令。
22.根据权利要求9的微处理机,其特征在于,所述中断指令是一部分程序,其中,如果所述位为逻辑‘1‘,则所述微处理机根据程序执行中断程序的处理,其中如果所述位为逻辑‘0’,则所述微处理机为了模仿而要俘获所述中断指令。
全文摘要
计算机系统包含有一专门设计成一虚拟操作模式运行给定微处理机,该虚拟模式使早先为较早设计的单程序微处理机编写的软件程序能在一特殊设计的主操作软件程序控制下在一被保护的、分页式、多任务环境中运行。此系统还包含执行软件中断指令的装置,它利用模仿软件,以模仿这些指令被较早微处理机执行的方法。其独特的改进是,某些指令是由模仿软件执行,而另外的则由早先编写的程序协同该给定微处理机及其主操作软件程序来执行。
文档编号G06F9/46GK1514364SQ0310779
公开日2004年7月21日 申请日期1992年9月23日 优先权日1991年9月23日
发明者J·H·克罗福, J H 克罗福, D·阿尔帕特, 撂 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1