DE4231552A1 - COMPUTER SYSTEM AND METHOD FOR OPERATING IT - Google Patents

COMPUTER SYSTEM AND METHOD FOR OPERATING IT

Info

Publication number
DE4231552A1
DE4231552A1 DE4231552A DE4231552A DE4231552A1 DE 4231552 A1 DE4231552 A1 DE 4231552A1 DE 4231552 A DE4231552 A DE 4231552A DE 4231552 A DE4231552 A DE 4231552A DE 4231552 A1 DE4231552 A1 DE 4231552A1
Authority
DE
Germany
Prior art keywords
state
interrupt
bit
sti
microprocessor
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.)
Withdrawn
Application number
DE4231552A
Other languages
German (de)
Inventor
Donald Alpert
Albert Teng
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 DE4231552A1 publication Critical patent/DE4231552A1/en
Withdrawn legal-status Critical Current

Links

Classifications

    • 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/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
    • 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)
  • Executing Machine-Instructions (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Debugging And Monitoring (AREA)

Description

Die Erfindung bezieht sich auf ein Computersystem mit einem vorgegebenen Mikroprozessor, der für einen virtuellen Betriebs­ modus speziell konzipiert ist. Dieser virtuelle Betriebsmodus ermöglicht einem zuvor für einen Einzel-Programm-Mikroprozessor konzipierten Softwareprogramm die Ausführung in einem geschütz­ ten, seitenorientierten Multi-Tasking-Umfeld unter einem beson­ ders konzipierten Leitrechner-Betriebssoftwareprogramm. Die Er­ findung bezieht sich insbesondere auf eine Verbesserung in der Weise, in der der vorgegebene Mikroprozessor und sein Leitrech­ ner-Betriebssoftwareprogramm gewisse sensitive Interrupt-bezo­ gene Befehle, insbesondere CLEAR INTERRUPT (CLI) und SET INTER­ RUPT (STI) aus dem früher geschriebenen Programm mittels einer Bestandteil des Leitrechnerprogramms bildenden Emulationssoft­ ware behandeln, um diejenige Art zu emulieren, in der diese Be­ fehle durch den früheren Mikroprozessor ausgeführt worden wä­ ren.The invention relates to a computer system with a predetermined microprocessor that is used for virtual operation mode is specially designed. This virtual mode of operation previously allows for a single program microprocessor designed software program execution in a gun side-oriented multi-tasking environment under one particular the specially designed host computer operating software program. The he invention relates in particular to an improvement in the Way in which the given microprocessor and its master rake ner operating software program certain sensitive interrupt-related commands, especially CLEAR INTERRUPT (CLI) and SET INTER RUPT (STI) from the previously written program using a Part of the emulation software that forms the host computer program ware to emulate the way in which these be would have been executed by the previous microprocessor ren.

Im vorstehenden wurde auf einen vorgegebenen Mikroprozes­ sor, ein früher geschriebenes Softwareprogramm, auf einen frü­ her konzipierten Einzelprogramm-Mikroprozessor und auf ein be­ sonders konzipiertes Leitrechner-Betriebssoftware-Programm Be­ zug genommen. In der aktuellen Praxis der vorliegenden Erfin­ dung bezieht sich der vorgegebene Mikroprozessor insbesondere auf eine verbesserte Ausführung des Intel 80386 und 80486-Mi­ kroprozessors, der im folgenden kurz mit 386-Mikroprozessor be­ zeichnet wird, da die Erfindung in gleicher Weise auf beide Mi­ kroprozessoren anwendbar ist. Der früher konzipierte Einzelne- Programm-Mikroprozessor bezieht sich auf Intel′s früheren Ein­ zelprogramm 8086-Mikroprozessor. Das früher geschriebene Soft­ wareprogramm bezieht sich auf eines von zahlreichen unter­ schiedlichen Programmen, einschließlich DOS Programmen, die früher für den 8086 Mikroprozessor geschrieben worden sind. Schließlich bezieht sich das Leitrechner-Betriebssoftware-Pro­ gramm auf irgendein geeignetes Leitrechner- oder Computer-Be­ triebssystem, wie WINDOWSWz-Software von Microsoft oder UNIXWz- Systemsoftware von AT, die beide speziell für den vorgegebe­ nen Mikroprozessor geschrieben wurden, so daß letzterer in dem oben angegebenen virtuellen Betriebsmodus arbeiten kann. Wenn auch die Erfindung nachfolgend in Bezug auf die Intel 386 (und 486) sowie 8086-Mikroprozessoren, die früher geschriebenen DOS- Programme und ein WINDOWS- oder UNIX-Betriebssystem beschrieben werden wird, ist für den Fachmann klar, daß die Erfindung nicht auf diese speziellen Mikroprozessoren oder früher geschriebene Softwareprogramme oder auf die speziellen zentralen Betriebssy­ steme beschränkt ist. Dies vorausgeschickt, wird mit einer kur­ zen Chronologie der 8086- und der 386-Mikroprozessoren fortge­ fahren. Eine genauere Erörterung dieser Mikroprozessoren und ihrer speziellen Beziehung zur vorliegenden Erfindung findet sich in der Figurenbeschreibung.In the foregoing, reference was made to a predetermined microprocessor, a previously written software program, a previously designed single-program microprocessor and a specially designed host computer operating software program. In the current practice of the present invention, the specified microprocessor relates in particular to an improved version of the Intel 80386 and 80486 microprocessor, which is referred to below as 386 microprocessor, since the invention is equally applicable to both microprocessors is. The previously designed single-program microprocessor refers to Intel's earlier single program 8086 microprocessor. The software program previously written refers to one of numerous different programs, including DOS programs, that were previously written for the 8086 microprocessor. Finally, the host computer operating software program relates to any suitable host computer or computer operating system, such as WINDOWS Wz software from Microsoft or UNIX Wz system software from AT, both of which have been specifically written for the specified microprocessor, so that the latter can work in the virtual operating mode specified above. While the invention will hereinafter be described in relation to the Intel 386 (and 486) and 8086 microprocessors, the previously written DOS programs and a WINDOWS or UNIX operating system, it will be apparent to those skilled in the art that the invention is not applicable to them special microprocessors or previously written software programs or limited to the special central operating systems. Having said that, we will continue with a short chronology of the 8086 and 386 microprocessors. A more detailed discussion of these microprocessors and their special relationship to the present invention can be found in the description of the figures.

Es kann ohne Vorbehalt gesagt werden, daß Intel′s früherer 8086 Mikroprozessor so erfolgreich gewesen ist, daß für ihn zahlreiche Softwareprogramme geschrieben worden sind. Im Hin­ blick darauf, daß dieser Mikroprozessor der erste einer Serie von nachfolgend verbesserten Mikroprozessoren war, hatte er seine Beschränkungen. Eine Beschränkung, die zu jener Zeit an sich nicht als Einschränkung angesehen wurde, war die Unfähig­ keit des Mikroprozessors, mehr als ein Softwareprogramm gleich­ zeitig zu bearbeiten. Dies bedeutete natürlich, daß das Pro­ gramm selbst nicht in einem geschützten, seitenorientierten Multi-Tasking-Umfeld arbeiten konnte. Mit fortschreitender Technologie entwickelte Intel den 386-Mikroprozessor, der - wie oben gesagt - in der Lage ist, eine Anzahl von Programmen unter Verwendung eines komplizierteren zentralen Betriebssystems, wie WINDOWS oder UNIX, ablaufen zu lassen. Zur gleichen Zeit wurde der 386 Mikroprozessor so ausgebildet, daß er in einem virtuel­ len 8086-Betriebsmodus arbeitet, der mehrere früher für den äl­ teren 8086-Mikroprozessor geschriebene Softwareprogramme und insbesondere in einem geschützten, seitenorientierten, Multi- Tasking-Umfeld unter dem komplizierteren zentralen Betriebssy­ stem zu verwenden gestattete, und zwar selbst dann, wenn diese früheren Softwareprogramme ursprünglich nicht für diese Art der Arbeit vorgesehen waren. Es gab zu viele frühere Programme, um sie obsolet werden zu lassen. Immer wenn Änderungen an Nachfol­ gern des 8086-Mikroprozessors durchgeführt wurden, war die Kom­ patibilität mit früherer 8086-Software stets einer Berücksich­ tigung wert.It can be said without reservation that Intel’s earlier 8086 microprocessor has been so successful that for him numerous software programs have been written. In the way look that this microprocessor is the first in a series of subsequently improved microprocessors, he had its limitations. A limitation at that time was not seen as a limitation, it was incapable microprocessor, more than just a software program to be processed early. Of course, this meant that the Pro gram itself in a protected, page-oriented Multi-tasking environment could work. As it progresses Technology, Intel developed the 386 microprocessor, which - like said above - is able to take a number of programs Using a more complicated central operating system, such as WINDOWS or UNIX to run. At the same time the 386 microprocessor is designed to operate in a virtual len 8086 operating mode works several times earlier for the äl software programs and 8086 microprocessor especially in a protected, page-oriented, multi Tasking environment under the more complex central operating system  stem allowed to use, even if this earlier software programs did not originally work for this type of Work was provided. There were too many previous programs to to make them obsolete. Whenever changes to successor liked the 8086 microprocessor, was the comm compatibility with previous 8086 software always considered worth it.

Obwohl die Kompatibilität zwischen Intel′s derzeitigen Mi­ kroprozessoren und der früher geschriebenen Software tatsäch­ lich wichtig ist, gibt es Fälle, in denen ein Kompromiß zwi­ schen dieser Aufgabe und gewissen anderen Betriebsaspekten des Gesamtcomputersystems geschlossen werden muß. Dies gilt für die Ausführung gewisser sensitiver unterbrechungsbezogener Befehle, insbesondere CLI und STI. Wie weiter unten beschrieben werden wird, ist der 386-Mikroprozessor so ausgebildet, daß er alle CLI- und STI-Befehle im virtuellen Modus ausführt, um die Art, in der diese Befehle auf dem 8086-Mikroprozessor ausgeführt worden wären, zu emulieren. Obwohl eine Anzahl von Ausführungen dieser speziellen Befehle einen relativ kleinen Prozentsatz der im virtuellen Modus insgesamt ausgeführten Befehle darstellt, bedingen sie eine relativ große Ausführungszeit. Eine spezielle Lösung dieses Problems gibt es, wie weiter unten genauer erör­ tert werden wird. Obwohl dieser ältere Vorschlag die zum Aus­ führen von CLIs und STIs im virtuellen Modus erforderliche Zeit wesentlich reduziert, geschieht dies durch einen Kompromiß hin­ sichtlich der Kompatibilität zwischen dem Mikroprozessor und dessen Software.Although the compatibility between Intel’s current Mi actual processors and the software previously written importantly, there are cases where a compromise between this task and certain other operational aspects of the Entire computer system must be closed. This applies to the Execution of certain sensitive interrupt-related commands, especially CLI and STI. As described below the 386 microprocessor is designed to be all Executes CLI and STI commands in virtual mode to determine the way in which these commands are executed on the 8086 microprocessor would have been to emulate. Although a number of designs of these special commands a relatively small percentage of the represents all commands executed in virtual mode, they require a relatively long execution time. A special one There is a solution to this problem, as discussed in more detail below will be tert. Although this older proposal is the one for the end time required by CLIs and STIs in virtual mode significantly reduced, this is done through a compromise visibly the compatibility between the microprocessor and its software.

Es ist daher Aufgabe der Erfindung, unter Beibehaltung der verkürzten Ausführungszeit inbesondere für CLIs und STIs eine verbesserte Kompatibilität zu erreichen.It is therefore an object of the invention while maintaining the reduced execution time, especially for CLIs and STIs to achieve improved compatibility.

Die Erfindung geht dabei aus von einem Computersystem mit einem vorgegebenen Prozessor, beispielsweise dem 386-Mikropro­ zessor, der speziell zum Betrieb in einem virtuellen Betriebs­ modus konzipiert ist, bei dem ein Softwareprogramm, beispiels­ weise ein zuvor für einen früheren Einzelprogramm-Mikroprozes­ sor geschriebenes DOS-Programm in einem geschützten, seitenori­ entierten, Multi-Tasking-Umfeld unter einem besonders konzi­ pierten Leitrechner-Betriebssoftware-Programm, beispielsweise WINDOWs oder UNIX ausgeführt werden kann. Das System weist auch Mittel zum Ausführen gewisser sensitiver unterbrechungsbezoge­ ner Befehle, speziell CLI und STI auf, die vom vorher geschrie­ benen Programm initiiert werden, wobei Emulationssoftware als Teil des Leitrechnerprogramms verwendet wird, um die Art der Befehlsausführung durch den früheren Mikroprozessor zu emulie­ ren.The invention is based on a computer system a predetermined processor, for example the 386-Mikropro processor specially designed for operation in a virtual operation mode is designed in which a software program, for example  previously for a previous single program microprocess DOS program written in a protected, page ori ented, multi-tasking environment under a particularly conc piert host computer operating software program, for example WINDOWs or UNIX can run. The system also points Means for executing certain sensitive interrupt related commands, especially the CLI and STI, which were shouted from the be initiated program, whereby emulation software as Part of the host computer program is used to determine the type of Command execution by the previous microprocessor to emulie ren.

Um die von der Emulationssoftware zum Ausführen der CLI und STI-Befehle während des virtuellen Betriebsmodus des Computer­ systems benötigte Zeit zu reduzieren, ist der vorgegebene Mi­ kroprozessor mit einem EFLAGS-Register versehen, einschließlich (1) eines virtuellen Unterbrechungskennzeichen (VIRTUAL INTER­ RUPT FLAG, VIF)-Bit, das zwischen einem STI-Zustand zum Akti­ vieren der Ausführung der Unterbrechungsbefehle nach Auslösung durch das zuvor geschriebene Programm und einem CLI-Zustand zum Entaktivieren der Ausführung der Unterbrechungsbefehle arbeitet und (2) eines virtuelle Unterbrechung-anstehend-(VIRTUAL INTER­ RUPT PENDING, VIP)-Bit, welches zwischen einem Schwebezustand, währenddessen die Unterbrechungsanforderungen auf Ausführung warten, und einem nicht-schwebenden Zustand, in welchem keine Unterbrechungsanforderungen der Ausführung warten, wirksam ist. Zu dem gleichen Zweck, d. h. zum Reduzieren der Ausführungszeit im virtuellen Modus, sind Mittel zur Änderung des Zustandes des VIF-Bits und des EFLAGS-Registers ohne Verwendung der Emulati­ onssoftware vorgesehen, solange das VIP-Bit in seinem nicht- schwebenden Zustand ist. Auf diese Weise wird die CLI- und STI- Ausführungszeit im virtuellen Modus wesentlich reduziert. Je­ doch sind gleichzeitig vom schwebenden Zustand des VIP-Bit, dem CLI-Zustand des VIF und einem danach von dem früher geschriebe­ nen Software-Programm initiierten STI-Befehl anhängige Mittel vorgesehen, um den nachfolgend initiierten STI-Befehl und eine wartende Unterbrechungsanforderung mittels einer Emulations­ software automatisch auszuführen, ohne zuerst den Zustand des VIF-Bit von einem CLI-Zustand in einen STI-Zustand ändern zu müssen. Wie nachfolgend noch genauer erläutert werden wird, fördert dies die Kompatibilität zwischen dem Mikroprozessor und der ihm zugeordneten Software.To run the emulation software to run the CLI and STI commands during the virtual operating mode of the computer systems to reduce the time required is the given Mi microprocessor with an EFLAGS register, including (1) a virtual interruption indicator (VIRTUAL INTER RUPT FLAG, VIF) bit that switches between an STI state to acti Fourth execution of interrupt commands after tripping through the previously written program and a CLI state to Deactivating the execution of the interrupt commands works and (2) a virtual interrupt pending (VIRTUAL INTER RUPT PENDING, VIP) bit, which is between a floating state, meanwhile the interrupt requests for execution wait, and a non-floating state in which none Wait for execution interrupt requests to take effect. For the same purpose, i.e. H. to reduce execution time in virtual mode, are means of changing the state of the VIF bits and the EFLAGS register without using the emulati software provided as long as the VIP bit is in its non- pending state. In this way, the CLI and STI Execution time in virtual mode significantly reduced. Each but are at the same time from the floating state of the VIP bit, the CLI state of the VIF and one after that written earlier Pending means initiated by the software program  provided to the subsequently initiated STI command and a waiting interrupt request using an emulation software to run automatically without first checking the state of the Change VIF bit from a CLI state to an STI state have to. As will be explained in more detail below, this promotes compatibility between the microprocessor and the software assigned to it.

Der Gegenstand der Erfindung und seine vorteilhaften Wei­ terbildungen sind in den Patentansprüchen gekennzeichnet.The object of the invention and its advantageous Wei Further training is characterized in the claims.

Im folgenden wird die Erfindung anhand von in der Zeichnung dargestellten Ausführungsbeispielen näher erläutert. In der Zeichnung zeigen:In the following the invention based on in the drawing illustrated embodiments explained in more detail. In the Show drawing:

Fig. 1 schematisch gewisse Aspekte eines bekannten Com­ putersystems mit dem früheren 8086-Mikroprozessor; Fig. 1 shows schematically certain aspects of a known computer system with the earlier 8086 microprocessor;

Fig. 2 eine ähnliche Ansicht eines Computersystems mit dem früheren 386-Mikroprozessor, wobei speziell dessen virtueller Betrieb mit Bezug auf STI- und CLI-Unter­ brechungsbefehle dargestellt ist; Figure 2 is a similar view of a computer system with the previous 386 microprocessor, specifically showing its virtual operation with respect to STI and CLI interrupt commands.

Fig. 3 eine ähnliche Ansicht eines Computersystems mit dem 386-Mikroprozessor, der eine Modifikation gemäß ei­ nem älteren Vorschlag beinhaltet und im Vergleich zum System gemäß Fig. 2 eine raschere Ausführung von Unterbrechungsbefehlen in dem virtuellen Betrieb er­ möglicht; FIG. 3 shows a similar view of a computer system with the 386 microprocessor, which includes a modification according to an older proposal and, compared to the system according to FIG. 2, enables interrupt commands to be executed more quickly in virtual operation;

Fig. 4 eine schematische Darstellung eines Computersystems gemäß der Erfindung, das nicht nur die Vorteile des Systems gemäß Fig. 3, sondern auch gewisse Vorteile in bezug auf die Kompatibilität zwischen dem Mikro­ prozessor und der Ausführungssoftware innerhalb des Computersystems beinhaltet; und Fig. 4 is a schematic representation of a computer system according to the invention, which includes not only the advantages of the system according to Fig. 3, but also certain advantages with regard to the compatibility between the microprocessor and the execution software within the computer system; and

Fig. 5 ein Ablaufdiagramm, das die überlegene Art der Aus­ führung von CLI- und STI-Befehlen mit dem Computer­ system gemäß Fig. 4 veranschaulicht. Fig. 5 is a flowchart illustrating the superior way of executing CLI and STI commands with the computer system of FIG. 4.

Zunächst wird auf Fig. 1 Bezug genommen, in der gewisse Aspekte eines bekannten Computersystems einschließlich des frü­ heren 8086-Mikroprozessor schematisch dargestellt sind. Das ge­ samte Computersystem ist generell mit dem Bezugszeichen 10 be­ zeichnet. Dieses spezielle System enthält eine Anzahl von nicht-dargestellten Komponenten; es ist jedoch mit einem 8086- Mikroprozessor 12 mit einem ein Unterbrechungskennzeichen IF enthaltenden EFLAGS-Register 14, einem einzelnen DOS-Software- Programm 16 und einer Anzahl von I/O-Peripheriegeräten 18, 20 und 22 gezeigt. Zu Erläuterungszwecken sei hier angenommen, daß das Peripheriegerät 18 ein Monitor, das Peripheriegerät 20 ein Plattenlaufwerk und das Peripheriegerät 22 eine Tastatur ist, obwohl die Erfindung nicht auf diese speziellen Eingabe- /Ausgabegeräte beschränkt ist.Reference is first made to Fig. 1, which schematically illustrates certain aspects of a known computer system including the earlier 8086 microprocessor. The entire computer system is generally designated by the reference numeral 10 be. This particular system contains a number of components, not shown; however, it is shown with an 8086 microprocessor 12 having an EFLAGS register 14 containing an interrupt flag IF, a single DOS software program 16 and a number of I / O peripherals 18 , 20 and 22 . For purposes of illustration, it is assumed here that peripheral 18 is a monitor, peripheral 20 is a disk drive, and peripheral 22 is a keyboard, although the invention is not limited to these particular input / output devices.

Nach der Beschreibung des Computersystems 10 wird jetzt auf die Art und Weise eingegangen, in der das System und insbeson­ dere der 8086-Mikroprozessor 12 Unterbrechungsbefehle von sei­ nen I/O-Peripheriegeräten behandelt. Allgemein gesprochen, ist der 8086-Mikroprozessor dafür ausgelegt, daß er unterbrochen wird, während er gewissen Befehle ausführt, und nicht unterbro­ chen wird, während er andere Befehle ausführt. Während derjeni­ gen Perioden, in denen der Mikroprozessor von der DOS-Software zum Zugriff auf den Plattenantrieb aufgefordert wird, wünscht der Mikroprozessor keine Unterbrechung, beispielsweise durch Betätigung einer Taste der Tastatur 22. Während des Platten­ laufwerk-Zugriffs würde das Unterbrechungs-FLAG-Bit IF des FLAGS-Registers 17 in einen CLI-Zustand gebracht, um zu verhin­ dern, daß eine externe Unterbrechungsanforderung im Sinne einer Unterbrechung des Mikroprozessor wirksam wird, während letzte­ rer auf das Plattenlaufwerk zugreift. Aus Zweckmäßigkeitsgrün­ den sei angenommen, daß der CLI-Zustand des Unterbrechungs- FLAG-Bits IF durch eine Null in Fig. 1 dargestellt ist. Solange das IF-Bit Null bleibt, werden keine Unterbrechungen vom Mikro­ prozessor angenommen. Sobald der Zugriff auf das Plattenlauf­ werk abgeschlossen ist und wenn der Mikroprozessor danach nicht unmittelbar zur Ausführung anderer nicht-unterbrechbarer Be­ fehle aufgefordert wird, wird der Zustand des Unterbrechungs- FLAG IF vom CLI-Zustand auf den STI-Zustand umgeschaltet, der in Fig. 1 durch eine 1 dargestellt ist. Solange das Unter­ brechungs-FLAG in seinem STI-Zustand ist, nimmt der 8086-Mikro­ prozessor Unterbrechungen an. Diese Unterbrechungen umfassen beispielsweise eine Tastenbetätigung, die zuvor ausgelöst wor­ den sind, während sich das IF-Bit im CLI-Zustand befand, wobei es sich jetzt in seinem STI-Zustand befindet; ferner umfassen diese Unterbrechungen solche, die nach dem Umschalten des IF- FLAG von dessen CLI-Zustand in dessen STI-Zustand ausgelöst wurden. In jedem Falle ist es wichtig, zu beachten, daß das DOS-Software-Programm 16 direkt mit dem Unterbrechungs-FLAG-Bit des EFLAG-Registers als Teil des 8086-Mikroprozessors kommuni­ ziert, und zwar während des Schaltvorganges zwischen den CLI- und STI-Zuständen. Dem steht kein Grund entgegen, da das DOS- Programm 16 das einzige Programm ist, das im Computersystem 10 abläuft.Having described the computer system 10 , the manner in which the system, and in particular the 8086 microprocessor 12, handles interrupt commands from its I / O peripherals will now be discussed. Generally speaking, the 8086 microprocessor is designed to be interrupted while executing certain instructions and not to be interrupted while executing other instructions. During those periods in which the microprocessor is requested by the DOS software to access the disk drive, the microprocessor does not wish to be interrupted, for example by pressing a key on the keyboard 22 . During disk drive access, the interrupt FLAG bit IF of FLAGS register 17 would be brought into a CLI state to prevent an external interrupt request from taking effect, such as an interruption of the microprocessor, while the rer was on the disk drive accesses. For convenience, it is assumed that the CLI state of the interrupt FLAG bit IF is represented by a zero in FIG. 1. As long as the IF bit remains zero, no interruptions are accepted by the microprocessor. As soon as the access to the disk drive has been completed and if the microprocessor is not then prompted to execute other non-interruptible commands, the state of the interrupt FLAG IF is switched from the CLI state to the STI state, which is shown in FIG. 1 is represented by a 1. As long as the interrupt FLAG is in its STI state, the 8086 microprocessor accepts interruptions. These interruptions include, for example, a key press that was previously triggered while the IF bit was in the CLI state, now in its STI state; furthermore, these interruptions include those which were triggered after the IF-FLAG was switched from its CLI state to its STI state. In any event, it is important to note that the DOS software program 16 communicates directly with the interrupt FLAG bit of the EFLAG register as part of the 8086 microprocessor, during the switching process between the CLI and STI Conditions. There is no reason to oppose this, since the DOS program 16 is the only program that runs in the computer system 10 .

Im folgenden wird auf Fig. 2 Bezug genommen, in der ein weiterentwickeltes Computersystem gezeigt und als Ganzes mit dem Bezugszeichen 24 versehen ist. Neben anderen Unterschieden zum System 10 weist dieses System 24 den mit 26 bezeichneten 386-Mikroprozessor auf und kann gleichzeitig mehr als ein Software-Programm bearbeiten, einschließlich für den 8086-Mi­ kroprozessor geschriebenen Programmen, wenn auch nur ein sol­ ches Programm, beispielsweise das DOS-Programm 16 gezeigt ist. Als Folge dieser Fähigkeit zur Bearbeitung von mehreren Soft­ ware-Programmen gleichzeitig muß das Computersystem 24 so aus­ gebildet, daß keines dieser Programme direkt zugreifen und da­ durch den Zustand des Unterbrechungs-FLAG des 386-Mikroprozes­ sor-EFLAGS-Registers ändern kann. Letzteres ist bei 30 ein­ schließlich des Unterbrechungs-FLAG IF gezeigt. Infolgedessen und wegen des Wunsches nach Verwendung der 8086-Software war der 386-Mikroprozessor so ausgebildet sein, daß er, wie oben gesagt, in einem besonders virtuellen Betriebsmodus, d. h. in einem Betriebsmodus arbeiten kann, der die Ausführung von 8086- Programmen, beispielsweise DOS-Programm 16 in einem geschütz­ ten, seitenorientierten Multi-Tasking-Umfeld unter einem Leit­ rechner-Betriebssystem ermöglicht. Wie ebenfalls oben gesagt, ist das Leitrechner- oder Zentralbetriebssystem das zuvor ge­ nannte WINDOWS- oder UNIX-Programm, welches schematisch bei 32 in Fig. 2 gezeigt ist. Dieses Programm muß unter Einbeziehung von 8086-Emulationssoftware geschrieben werden, die nachfolgend z. T. einfach als Emulator bezeichnet wird, um gewisse sensitive unterbrechungsbezogene Befehle, insbesondere CLI und STI aus dem früher geschriebenen Programm mittels der Emulationssoft­ ware auszuführen und die Art zu emulieren, in der die Befehle von dem früheren 8086-Mikroprozessor ausgeführt worden wären.In the following, reference is made to FIG. 2, in which a further developed computer system is shown and provided with the reference number 24 as a whole. Among other differences from system 10 , this system 24 has the 386 microprocessor designated 26 and can simultaneously process more than one software program, including programs written for the 8086 microprocessor, if only one such program, for example the DOS Program 16 is shown. As a result of this ability to process multiple software programs simultaneously, the computer system 24 must be configured so that none of these programs can directly access and change the EFLAGS register due to the state of the interrupt flag of the 386 microprocessor. The latter is shown at 30 including the interrupt FLAG IF. As a result, and because of the desire to use the 8086 software, the 386 microprocessor was designed so that, as stated above, it can operate in a particularly virtual operating mode, that is, in an operating mode that executes 8086 programs such as DOS Program 16 in a protected, page-oriented multi-tasking environment under a host computer operating system. As also stated above, the host computer or central operating system is the aforementioned WINDOWS or UNIX program, which is shown schematically at 32 in FIG. 2. This program must be written with the inclusion of 8086 emulation software, the z. T. is simply referred to as an emulator to execute certain sensitive interrupt-related commands, in particular CLI and STI from the previously written program using the emulation software and to emulate the way in which the commands would have been executed by the earlier 8086 microprocessor.

Aus Zweckmäßigkeitsgründen ist das Computersystem 24 in Fig. 2 mit den gleichen I/O-Peripheriegeräten 18, 20 und 22 ge­ zeigt. Zusätzlich ist das EFLAGS-Register 30 als Teil des 386- Mikroprozessors 26 mit einem virtuellen Modus-Bit VM gezeigt. Wenn dieses Bit in seinem virtuellen Moduszustand, beispiels­ weise dem 1-Zustand vorgesehen ist, ist das System auf seinen oben kurz beschriebenen virtuellen Modus eingestellt. Das Um­ schalten des VM-Bit auf Null bewirkt, daß das System in seinem Standard- oder nicht-virtuellen Modus arbeitet.For convenience, computer system 24 is shown in FIG. 2 with the same I / O peripherals 18 , 20, and 22 . In addition, the EFLAGS register 30 is shown as part of the 386 microprocessor 26 with a virtual mode bit VM. If this bit is provided in its virtual mode state, for example the 1 state, the system is set to its virtual mode briefly described above. Switching the VM bit to zero causes the system to operate in its standard or non-virtual mode.

Im folgenden wird auf die Art eingegangen, in der das zuvor beschriebene Computersystem 24 Unterbrechungen im virtuellen Betriebsmodus behandelt. Dabei soll angenommen werden, daß das Computersystem 24 gleichzeitig eine Anzahl von Software-Pro­ grammen bearbeitet, die zuvor für den 8086-Mikroprozessor ge­ schrieben worden sind, einschließlich speziell des DOS-Pro­ gramms 16. Zum Zwecke der Erörterung sei zunächst angenommen, daß das DOS-Programm 16 den Mikroprozessor gerade instruiert hatte, auf das Plattenlaufwerk 20 zuzugreifen. Unter diesen Um­ ständen löst das Programm einen CLI-Befehl aus, um sicherzu­ stellen, daß das Unterbrechungs-FLAG IF des EFLAGS-Registers 30 in seinem reinen Unterbrechungs-, Null-Zustand ist, während auf das Plattenlaufwerk zugegriffen wird. Wie jedoch oben gesagt, ist dem DOS-Programm 16 nicht gestattet, direkt auf das EFLAGS- Register 30 zuzugreifen, da der Mikroprozessor 26 eine Anzahl von Software-Programmen behandeln kann und daher in einem ge­ schützten Modus arbeitet. Da das Programm 16 tatsächlich für den 8086-Mikroprozessor geschrieben worden ist, müssen dieser spezielle CLI-Befehl sowie viele andere von diesem Programm in­ itiierten Befehle aufgenommen und ausgeführt werden von der Be­ standteil des Leitrechner-Betriebssystems 32 bildenden Emulati­ onssoftware, um diejenige Art zu emulieren, in der die Befehle vom 8086-Mikroprozessor ausgeführt worden wären. Unmittelbar nach dem Plattenlaufwerk 20 und unter der Annahme, daß es keine anderen Gründe zum Sperren von Unterbrechungen gibt, wird der STI-Befehl ausgelöst, damit vom Mikroprozessor 26 zu behan­ delnde Unterbrechungen freigegeben werden. Ähnlich dem CLI-Be­ fehl müssen diese und alle andere STI-Befehle, welche das Um­ schalten des IF-Unterbrechungs-FLAG des EFLAGS-Registers 30 von einer Null in einen Eins-Zustand bewirken, von derselben Emula­ tionssoftware aufgenommen und ausgeführt werden.The manner in which the previously described computer system 24 handles interruptions in the virtual operating mode is discussed below. It is believed that the computer system 24 simultaneously processes a number of software programs previously written for the 8086 microprocessor, including specifically the DOS 16 program . For purposes of discussion, it is first assumed that DOS program 16 had just instructed the microprocessor to access disk drive 20 . Under these circumstances, the program triggers a CLI instruction to ensure that the interrupt FLAG IF of the EFLAGS register 30 is in its purely interrupt, zero state while the disk drive is being accessed. However, as stated above, the DOS program 16 is not allowed to access the EFLAGS register 30 directly because the microprocessor 26 can handle a number of software programs and therefore operates in a protected mode. Since the program 16 was actually written for the 8086 microprocessor, this particular CLI command, as well as many other commands initiated by this program, must be included and executed by the emulation software forming part of the host computer operating system 32 in order to do so emulate in which the instructions would have been executed by the 8086 microprocessor. Immediately after the disk drive 20 and assuming that there are no other reasons to lock interrupts, the STI instruction is triggered to release interrupts to be handled by the microprocessor 26 . Similar to the CLI command, these and all other STI commands which cause the IF interrupt FLAG of the EFLAGS register 30 to switch from zero to one state must be received and executed by the same emulation software.

Aus der obigen Erläuterung wird klar, daß das Unterbre­ chungs-FLAG des Registers 30 zum Hin- und Herschalten zwischen den CLI- und STI-Zuständen selbst dann notwendig ist, wenn kein Interrupt vorhanden oder anhängig ist. Tatsächlich schaltet das Unterbrechungs-FLAG IF des Registers 30 bei Prüfung eines typi­ schen im Betrieb befindlichen Computersystems 24 zwischen sei­ nen CLI- und STI-Zuständen weit häufiger um als aktuelle Unter­ brechungsanforderungen vom Mikroprozessor 26 gestellt werden. Da jeder der CLI- und STI-Befehle zum Umschalten des IF-FLAG von der Emulationssoftware aufgenommen und durch sie ausgeführt werden müssen, ist die zur Ausführung dieser Befehle benötigte Zeit ziemlich lang. Tatsächlich hat sich in einigen Fällen er­ geben, daß bei einem Gesamtanteil dieser CLI- und STI-Befehle von etwa 1/2% der Gesamtmenge von durch das Leitrechner-Be­ triebssystem 32 während einer vorgegebenen Zeitspanne emulier­ ten Befehlen, die zum Ausführen der CLI- und STI-Befehle erfor­ derliche Zeit ungefähr 30% der gesamten Ausführungszeit ein­ schließlich der im Emulator verbrauchten Zeit ausmacht.From the above explanation, it is clear that the interrupt FLAG of register 30 is necessary to toggle between the CLI and STI states even when there is no interrupt or pending. In fact, when a typical computer system 24 is in operation, the interrupt FLAG IF of the register 30 switches between its CLI and STI states far more frequently than current interrupt requests made by the microprocessor 26 . Since each of the CLI and STI commands to switch the IF-FLAG must be picked up and executed by the emulation software, the time required to execute these commands is rather long. In fact, in some cases, it has been found that with a total of these CLI and STI commands of approximately 1/2% of the total amount of commands emulated by the host operating system 32 during a predetermined period of time that are necessary to execute the CLI and STI instructions require approximately 30% of the total execution time including the time spent in the emulator.

Wie oben gesagt, zeigt die Fig. 3 schematisch ein Computer­ system mit einem 386-Mikroprozessor, der selbst mit einer frü­ her vorgeschlagenen Abwandlung versehen ist, welche die ra­ schere Ausführung von Unterbrechungsbefehlen im virtuellen Mo­ dus als bei dem in Fig. 2 gezeigten Computersystem 24 ermög­ licht. Das Computersystem in Fig. 3 ist als Ganzes mit dem Be­ zugszeichen 34 bezeichnet, und der als 386′-Mikroprozessor be­ zeichnete modifizierte Mikroprozessor trägt das Bezugszeichen 26′. Dieses Computersystem weist ein modifiziertes EFLAGS-Regi­ ster 30′ und ein modifiziertes Leitrechner-Betriebssystem 32′ auf, die weiter unten erläutert werden. Das Gesamtsystem 34 enthält das gleiche DOS-Software-Programm 16 und die I/O-Peri­ pheriegeräte 18, 20 und 22. Mit den beschriebenen Ausnahmen kann das Computersystem 34 in der gleichen Weise wie das System 24 arbeiten.As stated above, FIG. 3 schematically shows a computer system with a 386 microprocessor, which itself is provided with a previously proposed modification which rer execution of interrupt commands in virtual mode than in the computer system shown in FIG. 2 24 enables light. The computer system in Fig. 3 is designated as a whole with the reference numeral 34 , and the modified microprocessor be designated as 386'-microprocessor bears the reference numeral 26 '. This computer system has a modified EFLAGS register 30 'and a modified host computer operating system 32 ', which are explained below. The overall system 34 contains the same DOS software program 16 and the I / O peripheral devices 18 , 20 and 22 . With the exceptions described, computer system 34 may operate in the same manner as system 24 .

Wie in Fig. 3 gezeigt, enthält das EFLAGS-Register 30′ nicht nur ein Unterbrechungs-FLAG-Bit IF (nicht gezeigt) und ein virtuelles Betriebsmodus-Bit VM, das gezeigt ist, sondern auch zwei zusätzliche Bits, die nicht Teil des FLAGS-Registers 30 des Computersystems 24 bilden. Eines dieser zwei zusätz­ lichen Bits ist ein virtuelles Unterbrechungs-FLAG-Bit VIF, und das andere ist ein virtuelles Unterbrechung-Anhängig-Bit VIP. Das VIF-Bit wird in einem beispielsweise als Null bezeichneten CLI-Zustand oder in einem als Eins bezeichneten -STI-Zustand gehalten und entspricht seiner Funktion nach einem Unter­ brechungs-FLAG-Bit IF. Wenn Unterbrechungen für den Mikropro­ zessor gelöscht (gesperrt) werden sollen, wird das VIF-Bit in seinem CLI-Zustand aufrechterhalten, und wenn Unterbrechungen zulässig sind, wird es in seinem STI-Zustand gehalten. Gleich­ zeitig schaltet das VIP-Bit um zwischen seinem anstehenden bzw. schwebenden Zustand, bei dem Unterbrechungsanforderungen auf die Ausführung warten, angezeigt beispielsweise durch eine Eins, und dem nicht-anhängig Zustand, bei dem keine derartigen Befehle auf die Ausführung warten, angegeben beispielsweise durch eine Null.As shown in Fig. 3, the EFLAGS register 30 'contains not only an interrupt FLAG bit IF (not shown) and a virtual operating mode bit VM, which is shown, but also two additional bits that are not part of the FLAGS Form registers 30 of the computer system 24 . One of these two additional bits is a virtual interrupt FLAG bit VIF and the other is a virtual interrupt pending bit VIP. The VIF bit is kept in a CLI state, for example, designated as zero or in a -STI state, designated as one, and corresponds to its function after an interruption FLAG bit IF. If interrupts are to be cleared (locked) for the microprocessor, the VIF bit is maintained in its CLI state and if interrupts are allowed it is kept in its STI state. At the same time, the VIP bit toggles between its pending state, in which interrupt requests are waiting to be executed, indicated, for example, by a one, and the non-pending state, in which no such commands are awaiting execution, indicated, for example, by a zero.

Der 386′-Mikroprozessor 26′ und das ihm zugeordnete Leit­ rechner-Betriebssystem 32′ sind so ausgebildet, daß das Gesamt­ computersystem 34 in folgender Weise arbeitet. Es sei zunächst angenommen, daß das System in seinem virtuellen Modus (VM auf Eins gesetzt) arbeitet und daß Unterbrechungsbefehle weder ge­ rade ausgeführt werden noch auf die Ausführung warten, so daß das VIP-Bit während einer vorgegebenen Zeitperiode auf Null eingestellt ist. Es sei ferner angenommen, daß während dersel­ ben vorgegebenen Zeitperiode das DOS-Programm 16 aufeinander­ folgende STI- und CLI-Befehle auslöst, wie in Fig. 3 gezeigt ist. Unter diesen Umständen kommuniziert das DOS-Programm 16 bei jeder Auslösung entweder eines STI- oder eines CLI-Befehls mit dem EFLAGS-Register 30, um sein VIF-Bit aus dem STI-Zustand 1 in den CLI-Zustand 0, zurück zum STI-Zustand 1 usw. zu än­ dern, ohne diese STI- und CLI-Befehle in die Emulationssoftware des Leitrechner-Betriebssystems aufzunehmen und von der Emula­ tionssoftware ausführen zu lassen. Mit anderen Worten, der Emu­ lator des Leitrechner-Betriebssystems ignoriert Zustandsände­ rungen des VIF-Bits im EFLAGS-Register, solange sich das VIP- Bit im nicht-anstehenden bzw. -anhängigen Null-Zustand befin­ det. Dies steht im Gegensatz zum System 24, in welchem jeder STI- und CLI-Befehl im Emulator, d. h. über die Emulationssoft­ ware des Leitrechner-Betriebssystems aufgefangen wird. Es ist daher klar, daß das System 34 die Ausführungszeit innerhalb des Bestandteils des Leitrechner-Betriebssystems 32′ bildenden Emu­ lators beträchtlich reduziert.The 386'-microprocessor 26 'and the associated control computer operating system 32 ' are designed so that the overall computer system 34 operates in the following manner. It is initially assumed that the system is operating in its virtual mode (VM set to one) and that interrupt commands are not currently being executed nor are they waiting to be executed so that the VIP bit is set to zero for a predetermined period of time. It is also assumed that during the same predetermined time period, the DOS program triggers 16 consecutive STI and CLI commands, as shown in FIG . Under these circumstances, the DOS program 16 communicates with the EFLAGS register 30 each time either an STI or a CLI instruction is triggered to change its VIF bit from the STI state 1 to the CLI state 0, back to the STI Change state 1 etc. without including these STI and CLI commands in the emulation software of the host computer operating system and have them executed by the emulation software. In other words, the emulator of the host computer operating system ignores changes in the state of the VIF bit in the EFLAGS register as long as the VIP bit is in the non-pending or pending zero state. This is in contrast to the system 24 , in which each STI and CLI command is intercepted in the emulator, ie via the emulation software of the host computer operating system. It is therefore clear that the system 34 significantly reduces the execution time within the component of the host computer operating system 32 'forming emulator.

In der vorstehenden Diskussion wurde angenommen, daß es keinen Unterbrechungsbefehl gibt, der auf die Ausführung war­ tet, d. h. daß das VIP-Bit sich fortlaufend in seinem nicht-an­ stehenden bzw. -schwebenden Zustand befindet, während STI- und CLI-Befehle aufeinanderfolgend ausgelöst wurden. Es sei jetzt angenommen, daß sich das VIF-Bit in seinem STI-(1)-Zustand be­ findet und daß ein Unterbrechungsbefehl vom Software-Programm 16 tatsächlich ausgelöst wird. Unter diesen Umständen arbeitet das modifizierte Computersystem auf die folgende Weise: Das Software-Programm kommuniziert zunächst mit dem EFLAGS-Register 30 über das Leitrechner-Betriebssystem, um das VIP-Bit von ei­ nem nicht-schwebenden (0)-Zustand in einen schwebenden (1)-Zu­ stand zu versetzen. Als Folge davon ist das VIF-Bit in seinem 1-Zustand, und das VIP-Bit ist in seinem 1-Zustand, wie in Fig. 3 angegeben. Trifft dies zu, so behandelt das System konzep­ tionsgemäß die Unterbrechung über den Emulator 32′ in der glei­ chen Weise wie das System 24. Sobald die Unterbrechung behan­ delt worden ist, kehrt das VIP-Bit in seinen nicht-anstehenden bzw. -schwebenden Zustand zurück, wenn das VIF-Bit in seinem STI-Zustand bleibt.In the discussion above, it was assumed that there was no interrupt command waiting to be executed, that is, that the VIP bit was continuously in its non-pending state while STI and CLI commands were triggered sequentially were. It is now assumed that the VIF bit is in its STI (1) state and that an interrupt command is actually triggered by software program 16 . Under these circumstances, the modified computer system works in the following way: The software program first communicates with the EFLAGS register 30 via the host computer operating system in order to change the VIP bit from a non-floating (0) state to a floating ( 1) -To be able to move. As a result, the VIF bit is in its 1 state and the VIP bit is in its 1 state as indicated in FIG. 3. If this is the case, the system treats the interruption via the emulator 32 'in the same way as the system 24 . Once the interrupt has been dealt with, the VIP bit will return to its non-pending state if the VIF bit remains in its STI state.

Es wird erneut auf die Art eingegangen, in der das Com­ putersystem 34 arbeitet, wobei jetzt angenommen wird, daß das VIF-Bit im EFLAGS-Register 30′ in seinem CLI-(0)-Zustand und das VIP-Bit in seinem schwebenden (1)-Zustand ist. Bei diesen Zuständen des VIF-Bit und des VIP-Bit sei jetzt angenommen, daß das Software-Programm einen STI-Befehl ausgibt, um den Mikro­ prozessor zur Aufnahme von Unterbrechungen zu aktivieren. In diesem Falle erkennt das Leitrechner-Betriebssystem bei dem früher vorgeschlagenen Computersystem 34 diesen Befehl und schaltet unmittelbar das VIF-Bit von seinem CLI-(0)-Zustand in den STI-(1)-Zustand. Als Folge davon, sind jetzt sowohl das VIF-Bit als auch das VIP-Bit auf Eins eingestellt, und die wartende Unterbrechungsanforderung wird durch Aufnahme in den Emulator ausgeführt. Es ist wichtig, insbesondere zu beachten, daß die Ausführung der wartenden Unterbrechungsanforderung so lange nicht stattfindet, bis das VIF-Bit von seinem CLI-Zustand in seinem STI-Zustand gewechselt ist. Dies ist ein Unterschied zum Computersystem 34. In dem zuletzt genannten System wird dann, wenn das Unterbrechungs-FLAG-Bit IF anfänglich in seinem CLI-(0)-Zustand und eine Unterbrechung anhängig ist, der nach­ folgende STI-Befehl vom Software-Programm 28 unmittelbar in dem Emulator aufgefangen, und die wartende Unterbrechungsanforde­ rung wird vom Emulator zusammen mit dem STI-Befehl ausgeführt, ohne zunächst das Unterbrechungsflag im Register 30 zu ändern. Erst nach Ausführung dieser Befehle durch die Emulationssoft­ ware setzt letztere das Unterbrechungs-FLAG in seinen STI-(1)- Zustand zurück, vorausgesetzt, daß keine anderen CLI-Befehle ausgelöst worden sind. Dieser Vergleich zwischen dem System 24 und dem System 34 dient dem Hinweis darauf, daß die dem zuletzt genannten System eigene Methode der anfänglichen Änderung des VIF-Bit von Null auf Eins vor dem Einfangen und Ausführen eines wartenden Unterbrechungsbefehls im Emulator im Gegensatz steht zu und daher inkompatibel ist mit derjenigen Art, in der die Emulationssoftware im System 24 die gleiche Situation behan­ delt, d. h. aufnehmen und zunächst emulieren. Wie nachfolgend zu sehen sein wird, eliminiert die Erfindung diese Inkompatibili­ tät, behält jedoch gleichzeitig die Vorteile des Systems 34 ge­ genüber dem System 24 bei.The manner in which the computer system 34 operates is again discussed, assuming now that the VIF bit in the EFLAGS register 30 'is in its CLI (0) state and the VIP bit is in its floating ( 1) -State is. With these states of the VIF bit and the VIP bit it is now assumed that the software program issues an STI command in order to activate the microprocessor for recording interruptions. In this case, the host operating system recognizes this command in the previously proposed computer system 34 and immediately switches the VIF bit from its CLI (0) state to the STI (1) state. As a result, both the VIF bit and the VIP bit are now set to one, and the pending interrupt request is executed by inclusion in the emulator. It is important to note in particular that the execution of the pending interrupt request does not take place until the VIF bit has changed from its CLI state to its STI state. This is different from the computer system 34 . In the latter system, when the interrupt FLAG bit IF is initially in its CLI (0) state and an interrupt is pending, the software program 28 immediately catches the subsequent STI instruction in the emulator, and the waiting interrupt request is executed by the emulator together with the STI instruction without first changing the interrupt flag in register 30 . Only after these commands have been executed by the emulation software does the latter reset the interrupt FLAG to its STI (1) state, provided that no other CLI commands have been triggered. This comparison between system 24 and system 34 is indicative of the fact that the latter system's own method of initially changing the VIF bit from zero to one prior to capturing and executing a waiting interrupt instruction in the emulator is contrary to and therefore is incompatible with the way in which the emulation software in the system 24 treats the same situation, ie record and emulate first. As will be seen below, the invention eliminates this incompatibility while maintaining the advantages of system 34 over system 24 .

Im folgenden wird auf Fig. 4 Bezug genommen, in der ein weiteres Computersystem 36 schematisch dargestellt ist, das speziell in der erfindungsgemäßen Weise ausgebildet ist. Ähn­ lich dem System 34 weist das System 36 einen in Fig. 4 als 26′′ bezeichneten 386-Mikroprozessor auf, der als modifizierte Ver­ sion des 386-Mikroprozessors 26′ definierbar ist. Dieser Mikro­ prozessor ist speziell zum Arbeiten in einem virtuellen Be­ triebsmodus ausgelegt, der die Ausführung mehrerer zuvor ge­ schriebener 8086-Software-Programme, einschließlich beispiels­ weise des DOS-Programms 16 in einem geschützten, seitenorien­ tierten, Multi-Tasking-Umfeld unter einem speziell konzipierten Leitrechner-Betriebssoftware-Programm 32 mit eigener 8086-Emu­ lationssoftware in der gleichen Weise wie System 34 ermöglicht. System 36 ist ebenfalls mit Peripheriegeräten 18, 20 und 22 und einem entsprechenden EFLAGS-Register 30′′ ausgerüstet, das Be­ standteil des Mikroprozessors 26′′ bildet.In the following, reference is made to FIG. 4, in which a further computer system 36 is shown schematically, which is specifically designed in the manner according to the invention. Similar to the system 34 , the system 36 has a in Fig. 4 as 26 '' designated 386 microprocessor, which is defined as a modified version of the 386 microprocessor 26 '. This microprocessor is specially designed for working in a virtual operating mode, which allows the execution of several previously written 8086 software programs, including for example the DOS program 16 in a protected, page-oriented, multi-tasking environment under one special designed host computer operating software program 32 with its own 8086 emulation software in the same way as system 34 . System 36 is also equipped with peripheral devices 18 , 20 and 22 and a corresponding EFLAGS register 30 '', which forms part of the microprocessor 26 ''.

In vieler Hinsicht behandelt das Computersystem 36 Unter­ brechungsanforderungen in der gleichen Weise wie das System 34. Solange wie das VIP-Bit des ′Registers 30′′ in seinem Nicht-an­ hängig-(0)-Zustand ist, was bedeutet, daß keine Unterbrechungs­ befehle anhängig sind, kann das VIF-Bit zwischen seinen STI- (1)- und CLI-(0)-Zuständen umschalten, ohne den Emulator des Leitrechner-Betriebssystems 32′′ durchlaufen zu müssen. Es sei jedoch jetzt angenommen, daß das VIF-Bit im Register 30′′ an­ fangs in seinem CLI-(0)-Zustand und das VIP-Bit anfänglich in seinem anhängigen bzw. schwebenden (1)-Zustand ist. Es sei fer­ ner angenommen, daß das Software-Programm 28 danach einen STI- Befehl initiiert. Unter diesen Umständen sind Mikroprozessor 26′′ und Leitrechner-Betriebssystem 32′′ so konzipiert, daß sie auf den Anhängig- bzw. Schwebe-Zustand des VIP-Bit, den CLI-Zu­ stand des VIF-Bit und den nachfolgend ausgelösten STI-Befehl reagieren und automatisch den nachfolgend ausgelösten STI-Be­ fehl und die wartende Unterbrechungsanforderung mittels der Be­ standteile des Leitrechner-Betriebssystems bildenden Emula­ tionssoftware ausführen, ohne zunächst den Zustand des VIF-Bit aus dessen CLI-Zustand in dessen STI-Zustand zu ändern. Mit an­ deren Worten, während der Ausführungsperiode dieser Befehle durch die Emulationssoftware bleibt das VIF-Bit in seinem CLI- Zustand, bis die Unterbrechungsbefehle ausgeführt worden sind, und erst danach und nur danach schaltet das Leitrechner-Be­ triebssystem das VIF-Bit in dessen STI-Zustand um, sofern keine CLI-Befehle in der Zwischenzeit ausgelöst worden sind. Da au­ ßerdem die zuvor wartende Unterbrechungsanforderung jetzt aus­ geführt worden ist, schaltet die Betriebssoftware das VIP-Bit in dessen nicht-anstehenden Zustand, sofern keine anderen Un­ terbrechungsanforderungen auf eine Ausführung warten. In many ways, computer system 36 handles interrupt requests in the same manner as system 34 . As long as the VIP bit of the 'register 30 ''is in its non-pending (0) state, which means that no interrupt commands are pending, the VIF bit can be between its STI- (1) - and Switch CLI (0) states without having to go through the emulator of the host computer operating system 32 ''. However, it is now assumed that the VIF bit in register 30 '' is initially in its CLI (0) state and the VIP bit is initially in its pending (1) state. It is also assumed that the software program 28 then initiates an STI instruction. Under these circumstances, microprocessor 26 '' and host computer operating system 32 '' are designed so that they depend on the pending or floating state of the VIP bit, the CLI status of the VIF bit and the subsequently triggered STI command react and automatically execute the subsequently triggered STI command and execute the waiting interruption request using the emulation software forming components of the host computer operating system, without first changing the state of the VIF bit from its CLI state to its STI state. In other words, during the execution period of these commands by the emulation software, the VIF bit remains in its CLI state until the interrupt commands have been executed, and only after and only after that has the host operating system switched the VIF bit to its STI -State if no CLI commands have been triggered in the meantime. In addition, since the previously waiting interrupt request has now been carried out, the operating software switches the VIP bit to its non-pending state, provided that no other interrupt requests are waiting to be executed.

Es dürfte klar sein, daß die vorstehend beschriebene Art, in der das Computersystem 36 Unterbrechungen behandelt, sich von der Behandlungsweise durch das System 34 unterscheidet. Wenn bei dem System 36 ein Unterbrechungsbefehl anhängig und das virtuelle Unterbrechungs-FLAG im CLI-Zustand ist, werden der nachfolgende STI-Befehl und der anhängige Unterbrechungsruf unmittelbar durch die Emulationssoftware ausgeführt, ohne zunächst den Zustand des virtuellen Unterbrechungs-FLAG zu än­ dern. Dies entspricht der Art, in der das Computersystem 24 die gleiche Situation behandelt; so daß dieses System - anders als das System 34 - mit dem System 24 in dieser Hinsicht kompatibel ist. Dies macht es leichter und möglicherweise genauer, Soft­ ware-Programme, die zuvor für den 386-Mikroprozessor als Teil des Systems 24 geschrieben worden sind, zu modifizieren. Außer­ dem ermöglicht diese Lösung, daß der 386-Mikroprozessor zwi­ schen direkt ausgelösten SCI-Befehlen und den über POPF ausge­ lösten unterscheiden kann. Dies ist wichtig, da nach der Aus­ führung von STI anstehende Unterbrechungen (erst) nach einer Verzögerung von einem Befehl akzeptiert werden, während nach der Ausführung von POPF anhängige Unterbrechungen sofort akzep­ tiert werden. Die 386-Mikroprozessor-Ausführung (Fig. 3) hat diese Fähigkeit nicht.It should be understood that the manner in which computer system 36 handles interruptions described above differs from the way system 34 handles them. If system 36 has an interrupt command pending and the virtual interrupt FLAG is in the CLI state, the subsequent STI command and pending interrupt call are immediately executed by the emulation software without first changing the state of the virtual interrupt FLAG. This corresponds to the way in which the computer system 24 treats the same situation; so that, unlike system 34 , this system is compatible with system 24 in this regard. This makes it easier and possibly more accurate to modify software programs previously written for the 386 microprocessor as part of system 24 . In addition, this solution enables the 386 microprocessor to distinguish between directly triggered SCI instructions and those triggered via POPF. This is important because pending interrupts after STI execution are only accepted after a command delay, while pending interrupts are immediately accepted after POPF is executed. The 386 microprocessor version ( Fig. 3) does not have this capability.

Nach der Beschreibung des Computersystems 36 und der Art, in der es sich von dem vorgeschlagenen System 34, dem existie­ renden System 24 und dem ursprünglichen System 10 unterschei­ det, ist einzusehen, daß die Erfindung nicht auf eine Verbesse­ rung des Intel-Mikroprozessors und der ihm zugeordneten Kompo­ nenten des 80486-Mikroprozessor oder irgendwelcher zugehöriger Mikroprozessoren beschränkt ist, wenn auch die Erfindung bei solchen Mikroprozessoren im besonderen anwendbar ist. Es dürfte jedoch aus den Aspekten der Systeme 10, 13, 34, und 36 deutlich werden, daß sich die Erfindung nur auf die Behandlung von Un­ terbrechungen bezieht und daß nur diese Merkmale beschrieben worden sind. Selbstverständlich umfaßt jedes System auch andere Komponenten, die für die vorliegende Erfindung nicht relevant sind. Diese Komponenten und weitere nicht gezeigt Komponenten, die andererseits zum Betrieb solcher Systeme und für die Be­ handlung von Unterbrechungen notwendig sind, sind dem Fachmann bekannt. Mit Bezug auf die STI- und CLI-Befehle ist insbeson­ dere klar, daß die Erfindung solche Befehle in genau der glei­ chen Weise behandelt (entweder abfangen oder nicht), ob diese Befehle von einer besonderen DOS-Anwendung direkt oder als Folge eines POPF-Befehls ausgegeben werden. Es ist außerdem einzusehen, daß die Erfindung nicht auf den virtuellen Be­ triebsmodus des Computersystems beschränkt ist. Das neue System 36 ist ähnlich dem System 24 so ausgebildet, daß es im ge­ schützten Modus oder in neueren DOS-Anwendungen arbeitet, die speziell für den 386-Mikroprozessor 26 geschrieben worden sind, wobei der größere (32 Bit) Speicher in dem zuletzt genannten Mikroprozessor ausgenutzt wird. Wenn das System 24 im geschütz­ ten Modus mit dieser neueren Software arbeitet (im Gegensatz zur älteren, für das 8086-System 10 geschriebenen Software), werden STI- und CLI-Befehle im Emulator 32 in der gleichen Weise und unter den gleichen Umständen abgefangen, wie sie ab­ gefangen werden, wenn das System an einer 8086-Software im vir­ tuellen Modus arbeitet. Die Verbesserungen in der Behandlung dieser speziellen Befehle durch das System 36 im virtuellen Mo­ dus wurden auf die Art ausgedehnt, in der sie im geschützten Modus behandelt werden. Mit anderen Worten, die STI- und CLI- Befehle werden in gleicher Weise behandelt, ob das Computersy­ stem 36 (Fig. 4) im virtuellen Modus mit der 8086-Software oder im geschützten Modus mit der 386-Software arbeitet.Having described the computer system 36 and the manner in which it differs from the proposed system 34 , the existing system 24, and the original system 10 , it will be appreciated that the invention is not intended to improve the Intel microprocessor and the associated components of the 80486 microprocessor or any associated microprocessors is limited, although the invention is particularly applicable to such microprocessors. However, it should be clear from the aspects of systems 10 , 13 , 34 , and 36 that the invention relates only to the treatment of interruptions and that only these features have been described. Of course, each system also includes other components that are not relevant to the present invention. These components and other components, not shown, which on the other hand are necessary for the operation of such systems and for the treatment of interruptions, are known to the person skilled in the art. With respect to the STI and CLI commands, it is particularly clear that the invention treats (either intercepting or not intercepting) such commands in exactly the same way, whether these commands are issued by a particular DOS application directly or as a result of a POPF Command are issued. It will also be appreciated that the invention is not limited to the virtual operating mode of the computer system. The new system 36 is similar to the system 24 designed to operate in protected mode or in newer DOS applications specifically written for the 386 microprocessor 26 , with the larger (32 bit) memory in the latter Microprocessor is used. When system 24 is operating in protected mode with this newer software (as opposed to the older software written for the 8086 system 10 ), STI and CLI commands are intercepted in emulator 32 in the same manner and under the same circumstances, how they are caught when the system is working on 8086 software in virtual mode. The improvements in the handling of these special commands by system 36 in virtual mode have been extended to the way they are handled in protected mode. In other words, the STI and CLI commands are handled in the same way whether the computer system 36 ( FIG. 4) works in the virtual mode with the 8086 software or in the protected mode with the 386 software.

Nachdem die Arbeitsweise des Computersystems 36 bei der Be­ handlung von Unterbrechungsbefehlen und dessen Vorteile gegen­ über den bekannten und früher vorgeschlagenen Systemen be­ schrieben worden sind, wird jetzt auf Fig. 5 Bezug genommen. Diese Figur zeigt ein Ablaufdiagramm des Verfahrens, mit wel­ chem das System 36 Unterbrechungen entsprechend der obigen Be­ schreibung behandelt. Insbesondere ist zu beachten, daß dieses Ablaufdiagramm nicht nur die Unterschiede zwischen dem System 34 und dem System 36 (beschrieben unter Bezugnahme auf Fig. 4), sondern auch deren im einzelnen in Verbindung mit Fig. 3 be­ schriebenen Übereinstimmungen behandelt. Im Hinblick auf dieses spezielle Ablaufdiagramm und dessen Lehre kann ein Fachmann die Erfindung in geeigneter Weise praktizieren.After the operation of the computer system 36 in handling interrupt commands and its advantages over the known and previously proposed systems have been described, reference is now made to FIG . This figure shows a flowchart of the method by which system 36 handles interruptions as described above. In particular, it should be noted that this flowchart covers not only the differences between system 34 and system 36 (described with reference to FIG. 4), but also their correspondences described in detail in connection with FIG. 3. In view of this particular flowchart and its teaching, one skilled in the art can practice the invention in a suitable manner.

In Fig. 5 ist ein Ablaufdiagramm gezeigt, das die Art zeigt, in der das in Fig. 4 gezeigte Computersystem 36 STI- und CLI-Befehle erfindungsgemäß behandelt. Obwohl dieses Ablaufdia­ gramm aus sich selbst heraus verständlich ist, wird hier eine kurze Beschreibung gegeben. Wie zu sehen ist, wird die erste Entscheidung darüber getroffen, ob der Befehl ein STI- oder ein CLI-Befehl ist. Handelt es sich um einen CLI-Befehl, so wird das VIF-FLAG 30′′ gesetzt oder bei 0 unmittelbar gehalten (ohne die Emulation zu durchlaufen) und der Prozeß endet. Wenn der Befehl ein STI-Befehl ist, so wird das VIP-Bit gelesen, um festzustellen, ob es eine 1 oder eine 0 ist. Ist das VIP eine 0, so wird das VIF-Bit auf 1 gesetzt und der Prozeß endet. Wenn das VIP-Bit eine 1 ist, so wird der Prozeß zur Emulation abgefangen, bevor er endet.In Fig. 5, a flow diagram is shown illustrating the manner in which the computer system shown in Fig. 4 36 STI and CLI commands treated according to the invention. Although this flow chart is self-explanatory, a brief description is given here. As can be seen, the first decision is made as to whether the command is an STI or a CLI command. If it is a CLI command, the VIF-FLAG 30 '' is set or immediately held at 0 (without going through the emulation) and the process ends. If the command is an STI command, the VIP bit is read to determine if it is a 1 or a 0. If the VIP is a 0, the VIF bit is set to 1 and the process ends. If the VIP bit is a 1, the emulation process is caught before it ends.

Claims (4)

1. Computersystem mit einem vorgegebenen Mikroprozessor (26′′), der zum Arbeiten in einem virtuellen Betriebsmodus be­ sonders konzipiert ist, wobei der virtuelle Betriebsmodus die Ausführung eines für einen früher konzipierten Einzelprogramm- Mikroprozessor geschriebenen Software-Programms in einem ge­ schützten, seitenorientierten Multi-Tasking-Umfeld unter einem besonders konzipierten Leitrechner-Betriebssoftware-Programm ermöglicht, ferner mit Mitteln zum Ausführen gewisser sensiti­ ver, unterbrechungsbezogener Befehle, einschließlich CLEAR IN­ TERRUPT (CLI) und SET INTERRUPT (STI), die von dem früher ge­ schriebenen Programm unter Verwendung einer einen Bestandteil des Leitrechner-Programms bildenden Emulationssoftware (32′′) initiierbar sind, um die Art der Ausführung der Befehle durch den früheren Mikroprozessor zu emulieren, gekennzeichnet durch
  • a) ein EFLAGS-Register (30′′), das Bestandteil des vorgege­ benen Mikroprozessors bildet und aufweist:
    • i) ein virtuelles Unterbrechungs-FLAG (VIF)-Bit, das zwischen einen STI-Zustand zur Freigabe der Ausführung von durch das früher geschriebene Programm initiierten Unterbre­ chungsbefehlen und einem CLI-Zustand zur Entaktivierung der Ausführung der Unterbrechungsbefehle arbeitet bzw. umschaltbar ist; und
    • ii) ein virtuelles Unterbrechung-anhängig-(VIP)-Bit, welches zwischen einem Anhängig-Zustand, in welchem Unterbre­ chungsanforderungen auf die Ausführung warten, und einem Nicht­ anhängig-Zustand, in welchem keine auf die Ausführung wartenden Unterbrechungsanforderungen vorhanden sind, arbeitet bzw. um­ schaltbar ist;
  • b) zum vorgegebenen Mikroprozessor (26′′) und zur Leit­ rechner-Betriebssoftware (32′′) gehörige Mittel zur Änderung des Zustandes des VIF-Bit des EFLAGS-Registers (36′′) ohne Ver­ wendung der Emulationssoftware, solange sich das VIP-Bit in seinem Nicht-anhängig-Zustand befindet; und
  • c) Bestandteil des vorgegebenen Mikroprozessors (26′′) und der Leitrechner-Betriebssoftware (32′′) bildende Mittel, die in Abhängigkeit von dem Anhängig-Zustand des VIP-Bit, dem CLI-Zu­ stand des VIF-Bit und einem vom zuvor geschriebenen Software- Programm nachfolgend ausgelösten STI-Befehl den STI-Befehl und eine wartende Unterbrechungsanforderung mittels der Emulations­ software automatisch ausführen, ohne erst den Zustand des VIF- Bit von einem CLI-Zustand in den STI-Zustand zu ändern.
1. Computer system with a predetermined microprocessor ( 26 ''), which is specially designed for working in a virtual operating mode, the virtual operating mode being the execution of a software program written for a previously designed single-program microprocessor in a protected, page-oriented multi -Tasking environment under a specially designed host computer operating software program enables, furthermore with means for executing certain sensitive, interrupt-related commands, including CLEAR IN TERRUPT (CLI) and SET INTERRUPT (STI), which are used by the previously written program an emulation software ( 32 '') forming part of the host computer program can be initiated in order to emulate the type of execution of the commands by the previous microprocessor, characterized by
  • a) an EFLAGS register ( 30 ′ '), which forms part of the predetermined microprocessor and has:
    • i) a virtual interrupt FLAG (VIF) bit that is switchable between an STI state to enable execution of interrupt instructions initiated by the previously written program and a CLI state to deactivate execution of the interrupt instructions; and
    • ii) a virtual interrupt pending (VIP) bit that operates between a pending state in which interrupt requests are waiting to be executed and a non pending state in which there are no interrupt requests waiting to be executed is switchable;
  • b) to the given microprocessor ( 26 '') and to the host computer operating software ( 32 '') associated means for changing the state of the VIF bit of the EFLAGS register ( 36 '') without using the emulation software, as long as the VIP -Bit is in its non-pending state; and
  • c) Part of the predetermined microprocessor ( 26 '') and the host computer operating software ( 32 '') forming means depending on the pending state of the VIP bit, the CLI status of the VIF bit and one of the previous The software program subsequently triggered STI command automatically execute the STI command and a waiting interrupt request using the emulation software without first changing the state of the VIF bit from a CLI state to the STI state.
2. Verfahren zum Betrieb eines Computersystems mit einem zum Arbeiten in einem virtuellen Betriebsmodus speziell konzi­ pierten Mikroprozessor, wobei der virtuelle Betriebsmodus die Ausführung eines zuvor für einen früher konzipierten Einzelpro­ gramm-Mikroprozessor geschriebenen Software-Programms in einem geschützten, seitenorientierten Multi-Tasking-Umfeld unter ei­ nem besonders konzipierten Leitrechner-Betriebssoftware-Pro­ gramm ermöglicht, unter Verwendung von Mitteln zum Ausführen gewisser sensitiver, unterbrechungsbezogener Befehle, ein­ schließlich CLEAR INTERRUPT (CLI) und SET INTERRUPT (STI), die von dem früher geschriebenen Programm unter Verwendung einer Bestandteil des Leitrechner-Programms bildenden Emulationssoft­ ware ausgelöst werden, um die Art der Ausführung der Befehle durch den früheren Mikroprozessor zu emulieren, dadurch gekennzeichnet,
  • a) daß ein EFLAGS-Register als Teil des vorgegebenen Mi­ kroprozessors verwendet wird, enthaltend
    • i) ein virtuelles Unterbrechungs-FLAG(VIF)-Bit, wel­ ches zwischen einem STI-Zustand zur Freigabe der Ausführung von durch das früher geschriebene Programm ausgelösten Unterbre­ chungsbefehlen und einem CLI-Zustand zur Entaktivierung der Ausführung der Unterbrechungsbefehle arbeitet; und
    • ii) ein virtuelles Unterbrechungs-anhängig-(VIP)- Bit, das arbeitet zwischen einem Anhängig-Zustand, bei dem Un­ terbrechungsanforderungen des früher geschriebenen Programms auf die Ausführung warten, und einem Nicht-anhängig-Zustand, bei dem Unterbrechungsanforderungen weder ausgeführt werden noch auf die Ausführung warten;
  • b) daß der Zustand oder Zustandsänderungen des VIF-Bit des EFLAGS-Registers ohne Verwendung der Emulationssoftware geän­ dert wird, solange sich das VIP-Bit in seinem Nicht-anhängig- Zustand befindet; und
  • c) daß in Abhängigkeit von dem Anhängig-Zustand des VIP- Bit, dem CLI-Zustand des VIF-Bit und einem nachfolgend durch das früher geschriebene Software-Programm ausgelösten STI-Be­ fehl der nachfolgend ausgelöste STI-Befehl und eine wartende Unterbrechungsanforderung mit Mitteln der Emulationssoftware automatisch ausgeführt werden, ohne erst den Zustand des VIF- Bit von einem CLI-Zustand in einen STI-Zustand zu ändern.
2. A method of operating a computer system with a microprocessor specially designed for working in a virtual operating mode, the virtual operating mode executing a software program previously written for a previously designed single-program microprocessor in a protected, page-oriented multi-tasking environment Under a specially designed host computer operating software program enables, using means for executing certain sensitive, interrupt-related commands, including CLEAR INTERRUPT (CLI) and SET INTERRUPT (STI), by the previously written program using a component of the Emulator software forming the host computer program are triggered in order to emulate the type of execution of the commands by the previous microprocessor, characterized in that
  • a) that an EFLAGS register is used as part of the given microprocessor containing
    • i) a virtual interrupt FLAG (VIF) bit which operates between an STI state to enable execution of interrupt instructions triggered by the previously written program and a CLI state to deactivate execution of the interrupt instructions; and
    • ii) a virtual interrupt pending (VIP) bit that operates between a pending state in which interrupt requests from the previously written program are waiting to be executed and a non-pending state in which interrupt requests are neither executed nor wait for execution;
  • b) that the state or state changes of the VIF bit of the EFLAGS register is changed without using the emulation software, as long as the VIP bit is in its non-pending state; and
  • c) that depending on the pending state of the VIP bit, the CLI state of the VIF bit and a STI command subsequently triggered by the previously written software program, the subsequently triggered STI command and a waiting interrupt request with means the emulation software can be executed automatically without first changing the state of the VIF bit from a CLI state to an STI state.
3. Computersystem mit einem vorgegebenen Mikroprozessor (26′′), der zum Arbeiten in einem geschützten Betriebsmodus be­ sonders konzipiert ist, wobei der geschützte Betriebsmodus die Ausführung eines früher für einen Mikroprozessor mit großem Speicher geschriebenen vorgegebenen Software-Programms in einem geschützten, seitenorientierten Multi-Tasking-Umfeld unter ei­ nem besonders konzipierten Leitrechner-Betriebssoftware-Pro­ gramm ermöglicht, ferner mit Mitteln zum Ausführen gewisser sensitiver, Unterbrechungsbezogener Befehle, einschließlich CLEAR INTERRUPT (CLI) und SET INTERRUPT (STI), die von dem vor­ gegebenen Programm unter Verwendung von Bestandteil des Leit­ rechner-Programms bildender Emulationsoftware ausgelöst werden, gekennzeichnet durch
  • a) ein EFLAGS-Register (30′′), das Bestandteil des vorge­ gebenen Mikroprozessors bildet und aufweist:
    • i) ein virtuelles Unterbrechungs-FLAG (VIF)-Bit, das zwischen einem STI-Zustand zur Freigabe der Ausführung von durch das vorgegebene Programm initiierten Unterbrechungsbefeh­ len und einem CLI-Zustand zur Entaktivierung der Ausführung der Unterbrechungsbefehle arbeitet; und
    • ii) ein virtuelles Unterbrechung-anhängig (VIP)-Bit, welches zwischen einem Anhängig-Zustand, in welchem Unterbre­ chungsanforderungen auf die Ausführung warten, und einem Nicht­ anhängig-Zustand, in welchem keine auf die Ausführung wartenden Unterbrechungsanforderungen anhängig sind, arbeitet bzw. um­ schaltbar ist;
  • b) zum vorgegebenen Mikroprozessor und zur Leitrechner-Be­ triebssoftware gehörige Mittel zur Änderung des Zustandes des VIF-Bit des EFLAGS-Registers ohne Verwendung der Emulations­ software, solange sich das VIP-Bit in seinem Nicht-anhängig-Zu­ stand befindet; und
  • c) Bestandteil des vorgegebenen Mikroprozessors und der Leitrechner-Betriebssoftware bildende Mittel, die in Abhängig­ keit von dem Anhängig-Zustand des VIP-Bit, dem CLI-Zustand des VIF-Bit und einem nachfolgend vom vorgegebenen Programm ausge­ lösten STI-Befehl den STI-Befehl und eine wartende Unterbre­ chungsanforderung mit Hilfe der Emulationssoftware automatisch ausführen, ohne erst den Zustand des VIF-Bit von einem CLI-Zu­ stand in einen STI-Zustand zu ändern.
3. Computer system with a predetermined microprocessor ( 26 ''), which is specially designed for working in a protected operating mode be, the protected operating mode, the execution of a previously written for a microprocessor with large memory predetermined software program in a protected, page-oriented multi -Tasking environment under a specially designed host computer operating software program allows, further with means for executing certain sensitive, interrupt-related commands, including CLEAR INTERRUPT (CLI) and SET INTERRUPT (STI) by the given program using Emulation software forming part of the host computer program, characterized by
  • a) an EFLAGS register ( 30 ′ '), which forms part of the predetermined microprocessor and has:
    • i) a virtual interrupt FLAG (VIF) bit that operates between an STI state to enable execution of interrupt instructions initiated by the predetermined program and a CLI state to deactivate execution of the interrupt instructions; and
    • ii) a virtual interrupt pending (VIP) bit that operates between a pending state in which interrupt requests are waiting to be executed and a non-pending state in which no interrupt requests are pending to be executed to be switchable;
  • b) means for changing the state of the VIF bit of the EFLAGS register belonging to the predetermined microprocessor and the control computer operating software without using the emulation software, as long as the VIP bit is in its non-pending state; and
  • c) Part of the specified microprocessor and the central computer operating software, which, depending on the pending state of the VIP bit, the CLI state of the VIF bit and a STI command subsequently triggered by the specified program, Execute the command and a pending interrupt request automatically using the emulation software without first changing the state of the VIF bit from a CLI state to an STI state.
4. Verfahren zum Betrieb eines Computersystems mit einem zum Arbeiten in einem geschützten Betriebsmodus besonders kon­ zipierten Mikroprozessor, wobei der geschützte Betriebsmodus die Ausführung eines für einen Mikroprozessor mit großem Spei­ cher geschriebenen vorgegebenen Software-Programms in einem ge­ schützten, seitenorientierten Multi-Tasking-Umfeld unter einem besonders konzipierten Leitrechner-Betriebssoftware-Programm ermöglicht, unter Verwendung von Mitteln zum Ausführen gewisser sensitiver, unterbrechungsbezogener Befehle, einschließlich CLEAR INTERRUPT (CLI) und SET INTERRUPT (STI), die vom vorgege­ benen Programm unter Verwendung einer Bestandteil des Leitrech­ ner-Programms bildenden Emulationssoftware ausgelöst werden, dadurch gekennzeichnet,
  • a) daß ein EFLAGS-Register als Teil des vorgegebenen Mi­ kroprozessors verwendet wird, enthaltend
    • i) ein virtuelles Unterbrechungs-FLAG (VIF)-Bit, welches zwischen einem STI-Zustand zur Freigabe der Ausführung von durch das vorgegebene Programm initiierten Unterbrechungs­ befehlen und einem CLI-Zustand zum Entaktivieren der Ausführung der Unterbrechungsbefehle arbeitet; und
    • ii) ein virtuelles Unterbrechung-anhängig (VIP)-Bit, das arbeitet zwischen einem Anhängig-Zustand, bei dem Unterbre­ chungsanforderungen auf die Ausführung warten und einem Nicht­ anhängig-Zustand, bei dem Unterbrechungsanforderungen weder ausgeführt werden noch auf die Ausführung warten;
  • b) daß der Zustand oder Zustandsänderungen des VIF-Bit des EFLAGS-Registers ohne Verwendung der Emulationssoftware geän­ dert werden, solange sich das VIP-Bit in seinem Nicht-anhängig- Zustand befindet; und
  • c) daß in Abhängigkeit von dem Anhängig-Zustand des VIP- Bit, dem CLI-Zustand des VIF-Bit und einem nachfolgend durch das früher geschriebene Software-Programm ausgelösten STI-Be­ fehl der nachfolgend ausgelöste STI-Befehl und eine wartende Unterbrechungsanforderung mit Mitteln der Emulationssoftware automatisch ausgeführt werden, ohne erst den Zustand des VIF- Bit von einem CLI-Zustand in einem STI-Zustand zu ändern.
4. A method for operating a computer system with a microprocessor specially designed for working in a protected operating mode, the protected operating mode being the execution of a predetermined software program written for a microprocessor with a large memory in a protected, page-oriented multi-tasking environment enables under a specially designed host computer operating software program, using means for executing certain sensitive, interrupt-related commands, including CLEAR INTERRUPT (CLI) and SET INTERRUPT (STI), by the predetermined program using a component of the host computer program forming emulation software are triggered, characterized in that
  • a) that an EFLAGS register is used as part of the given microprocessor containing
    • i) a virtual interrupt FLAG (VIF) bit that operates between an STI state to enable execution of interrupt instructions initiated by the predetermined program and a CLI state to deactivate execution of the interrupt instructions; and
    • ii) a virtual interrupt pending (VIP) bit that operates between a pending state in which interrupt requests are waiting to be executed and a pending state in which interrupt requests are neither being executed nor waiting to be executed;
  • b) that the state or state changes of the VIF bit of the EFLAGS register are changed without using the emulation software, as long as the VIP bit is in its non-pending state; and
  • c) that depending on the pending state of the VIP bit, the CLI state of the VIF bit and a STI command subsequently triggered by the previously written software program, the subsequently triggered STI command and a waiting interrupt request with means the emulation software can be executed automatically without first changing the state of the VIF bit from a CLI state to an STI state.
DE4231552A 1991-09-23 1992-09-21 COMPUTER SYSTEM AND METHOD FOR OPERATING IT Withdrawn DE4231552A1 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US76417091A 1991-09-23 1991-09-23

Publications (1)

Publication Number Publication Date
DE4231552A1 true DE4231552A1 (en) 1993-03-25

Family

ID=25069878

Family Applications (1)

Application Number Title Priority Date Filing Date
DE4231552A Withdrawn DE4231552A1 (en) 1991-09-23 1992-09-21 COMPUTER SYSTEM AND METHOD FOR OPERATING IT

Country Status (6)

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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6158767A (en) * 1996-12-21 2000-12-12 Volkswagen Ag Side airbag arrangement for a motor vehicle

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69622832T2 (en) * 1995-05-05 2003-04-10 Apple Computer DEVICE AND METHOD FOR COOPERATIVE INTERRUPTIONS IN A PREEMPTIVE PROCESS SEQUENCE PLANNING ENVIRONMENT
US20040117532A1 (en) * 2002-12-11 2004-06-17 Bennett Steven M. Mechanism for controlling external interrupts in a virtual machine system
CN117008977B (en) * 2023-08-08 2024-03-19 上海合芯数字科技有限公司 Instruction execution method, system and computer equipment with variable execution period

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
US6158767A (en) * 1996-12-21 2000-12-12 Volkswagen Ag Side airbag arrangement for a motor vehicle

Also Published As

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

Similar Documents

Publication Publication Date Title
DE10085374B4 (en) System management memory for the system management interrupt handlers is integrated into the memory controller, regardless of the BIOS and operating system
DE10197121B4 (en) New processor mode to limit the operation of guest software running on a virtual machine with the support of a virtual machine monitor
DE2718051C3 (en) Data processing system with facilities for the alternating processing of several tasks
DE3607889C2 (en)
DE2054068A1 (en) Data processing system with program nesting for the simultaneous processing of several programs
DE2411963B2 (en) DATA PROCESSING SYSTEM
DE1952158A1 (en) Storage protection procedure and facility for carrying out this procedure
EP0764906B1 (en) Method of operating a real time computer system controlled by a real time operating system
DE102009050983A1 (en) A technique to communicate interrupts in a computer system
DE2911773A1 (en) MICRO-PROGRAM CONTROL
DE102016122375A1 (en) Dynamic containerized system memory protection for low power MCUs
EP2575039A1 (en) Method and assembly for use of a resource of a hardware platform with at least two virtual machines
DE1774870B2 (en) Device for addressing a memory cell of a memory in a data processing system
DE3307194C2 (en)
DE4231552A1 (en) COMPUTER SYSTEM AND METHOD FOR OPERATING IT
DE69908772T2 (en) DEVICE WITH CONTEXT SWITCHING ABILITY
DE102013211266B4 (en) Maintaining the bandwidth quality of service of a hardware resource through a hardware counter
EP0010135B1 (en) Microprogrammed input/output controller and method for input/output operations
EP1673696B1 (en) Method and device for operating a secondary operating system auxiliary to a primary operating system
DE2507405C2 (en) Arrangement for synchronizing tasks to be carried out simultaneously for peripheral devices of a data processing system
DE19580638B4 (en) A computer system and method for controlling a peripheral device in a computer system
EP0991995B1 (en) Interrupt method in a computer system with interrupt control
DE10056198A1 (en) Communications system for exchanging data with external systems by using an additional processor has serial interfaces connecting to a common bus line as well as a first processor connecting to the common bus line.
DE19827914C1 (en) Application specific integrated circuit for processing defined sequences of assembly commands
DE3105527A1 (en) Method for improving the response time characteristic of process computers

Legal Events

Date Code Title Description
8139 Disposal/non-payment of the annual fee