DE3808167C2 - Computersystem mit modusunabhängiger Adressierung - Google Patents

Computersystem mit modusunabhängiger Adressierung

Info

Publication number
DE3808167C2
DE3808167C2 DE3808167A DE3808167A DE3808167C2 DE 3808167 C2 DE3808167 C2 DE 3808167C2 DE 3808167 A DE3808167 A DE 3808167A DE 3808167 A DE3808167 A DE 3808167A DE 3808167 C2 DE3808167 C2 DE 3808167C2
Authority
DE
Germany
Prior art keywords
mode
pointers
pointer
address
computer system
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.)
Expired - Fee Related
Application number
DE3808167A
Other languages
English (en)
Other versions
DE3808167A1 (de
Inventor
Richard Bealkowski
Richard Alan Dayan
David Joseph Doria
Scott Gerard Kinnear
Gery Anthony Vaiskauckas
Jeffrey I Krantz
Robert B Liverman
Guy G Sotomayor
Donald D Williams
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE3808167A1 publication Critical patent/DE3808167A1/de
Application granted granted Critical
Publication of DE3808167C2 publication Critical patent/DE3808167C2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/145Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being virtual, e.g. for virtual blocks or segments before a translation mechanism

Description

Die vorliegende Erfindung bezieht sich auf ein Compu­ tersystem nach dem Oberbegriff des Anspruchs 1. Die Erfindung erlaubt derartigen Computersystemen, dassel­ be Anwendungsprogramm in jedem der mehreren Adressie­ rungsmodi laufen zu lassen.
Von Mikrocomputern (Personalcomputern) wird verlangt, zunehmend komplexere Datenverarbeitungsaufgaben zu erfüllen, ohne dabei eine Verschlechterung der Antwort­ geschwindigkeit zu erleiden. Auf der anderen Seite müssen zusätzliche Gerätetreiber, Netzwerkprogramme, Programme für den Anschluß an den Hauptrechner, Sit­ zungsmanagementprogramme usw. in den verfügbaren Speicherraum geladen werden, um die anspruchsvolleren Aufgaben zu erfüllen. Die Größe des Speicherraums, der für die Anwendungsprogramme des Benutzers übrig bleibt, schrumpft so und zwingt zu unliebsamen Kompromissen zwischen Speicher, Leistung und Funktion.
Um dieses Problem zu überwinden sind jüngst Mikro­ prozessoren verfügbar geworden, in denen die Größe des adressierbaren Speicherraums stark erhöht wurde. Zum Beispiel ist für den Mikroprozessor 8088/8086 der Intel Corporation (im folgenden werden Mikroprozessoren der Bequemlichkeit halber kurz "CPU" - Central processing unit, Zentrale Verarbeitungseinheit - genannt) ist die Größe des adressierbaren Speicherraums ungefähr 1 MB (Megabytes), während bei der neueren 80286 CPU ungefähr 16 MB adressiert werden können.
Der 80 286 Mikroprozessor verwendet jedoch zwei ver­ schiedene und untereinander inkompatible Adressierungs­ modi. Der erste Modus, "Real" Modus genannt, ist genau derselbe Adressierungsmodus, der beim 8088/8086 Mikroprozessor verwendet wird; darum können Programme, die für eine Maschine geschrieben wurden, die den 8088/8086 Mikroprozessor verwenden, wie z. B. die große Menge der Software, die für den IBM PC Computer und die dazu Kompatiblen geschrieben wurde, in dem Real Modus laufen, weil dasselbe BIOS (Basic Input-Output System = Elementares Eingabe/Ausgabe System) direkt benutzt und übernommen werden kann. In dem Real Modus jedoch ist die Größe des adressierbaren Speicherraums immer noch auf ungefähr 1 MB begrenzt, weil dieser Adressierungs­ modus in der Tat derselbe ist wie für den 8086/8088 Mikroprozessor.
Der zweite Modus, "geschützter" (Protected) Modus genannt, verwendet ein anderes Adressierungsschema, mit dem bis zu 16 MB Speicherplätze adressiert werden können. Weil jedoch dieser Adressierungsmodus in der Tat ein anderer ist, kann das frühere BIOS nicht erfolg­ reich benutzt werden, und darum können Computer, die die 80 286 CPU verwenden, nicht gleichzeitig den Vorteil der erhöhten Anzahl von verfügbaren Speicherplätzen im Protected Modus ausnutzen und mit der Software laufen, die für den 8086/8088 Mikroprozessor geschrieben wurde.
Fig. 1 zeigt den Speicherbelegungsplan einer typischen Mikrocomputeranwendung, die den 80 286 Mikroprozessor verwendet, und zeigt ein Beispiel, wie der Speicher organisiert sein kann. Speicheradressen im Bereich 0 KB bis 40 KB werden von BIOS (Basic Input/Output System) und vom Betriebssystem (OS = Operating System) belegt, die bekanntesten Beispiele davon sind PC DOS und MS DOS, die von Microsoft Corporation vertrieben werden. Dem Benutzer ist der Speicherraum von 40 KB bis 640 KB sowohl im Real wie auch im Protected Modus zugeteilt. Die Anzeigepuffer (video buffer) nehmen den Raum von 640 KB bis 752 KB ein und Zusatz- und Planare ROMs (Read-Only Memories) den Raum von 752 KB bis 1 MB. Dies ist der gesamte Speicherraum, der im Real Modus adres­ siert werden kann. Im Protected Modus sind jedoch 15 MB zusätzlich adressierbarer Speicherraum für den Benutzer verfügbar.
Um das Problem, das von der Erfindung gelöst wird, besser verstehen zu können, werden nun die beiden Adressierungsmodi genauer beschrieben.
Sowohl bei den 8088/8086 Mikroprozessoren als auch im Real Modus beim 80 286 Mikroprozessor wird der physi­ kalische Speicher direkt adressiert, beim letzteren unter Benutzung von 32-Bit-Zeigern. Wie in Fig. 2 gezeigt, ist jeder 32- Bit-Zeiger aus einem 16-Bit-Offset-Teil (Bits 0 bis 15) und einem 16-Bit-Segment-Teil (Bits 16 bis 31) zusam­ mengesetzt. Der Speicher ist in 64-KB-Segmente aufge­ teilt, und jeder Wert der 16-Bit-Segmente der Zeiger entspricht direkt einem der 64-KB-Segmente im Speicher. D. h. Zeigersegment n, multipliziert mit 2¹⁶ (äquivalent hexadezimaler Verschiebung um einen Platz), zeigt direkt zur Adresse des ersten 8-Bit Datenbytes im Segment n des Speichers an, nämlich zur Grenze zwischen Segment n-1 und n im physikalischen Speicher. Demgegen­ über zeigt der Offset-Teil eine Verschiebung (displacement) gegenüber der Grenze zwischen Segment n-1 und n an.
Wie in dem Diagramm von Fig. 3 gezeigt, wird der Segmentwert mit 2⁴ multipliziert und zu dem Off­ setwert addiert, um den 20-Bit-Wert zu erhalten, der direkt eine gegebene Byteposition (Operanden­ adresse) im physikalischen Speicher adressiert. Diese 20-Bit-Adresse wird dem Speicher direkt als eine Adresse zugeführt.
Im Protected Modus des 80 286 Mikroprozessors greift das BIOS auf den physikalischen Speicher nicht in Form von Segmenten und Offsets zu. Darüber hinaus ist der Spei­ cher nicht in 64-KB-Segmente aufgeteilt. Statt dessen wird die "virtuelle" Speicheradressierung verwandt, bei der die Adressen nicht direkt verschiedenen Positionen im physikalischen Speicher entsprechen. Um eine effizi­ entere Nutzung des verfügbaren Speicherraums, unter Beibehaltung der relativ bequemen Adressierung zu ermöglichen, wird der Speicher wieder in Segmente aufgeteilt, wobei aber die Segmente eine variable Länge haben können. Die Erzeugung der aktuellen physikali­ schen Adresse wird intern im 80 286 Mikroprozessor vollzogen, außerhalb des Einflußbereiches von Benutzer und BIOS.
Der Protected Adressierungsmodus wird nun mit Bezug auf Fig. 4 genauer erklärt.
Wie im Falle des 8088/8086 Mikroprozessors und Real Modus adressiert das BIOS den Speicher unter Benutzung eines 32-Bit-Zeigers. Im Protected Modus gelten die unteren 16 Bit (Bits 0 bis 15) des Zeigers ebenfalls als Offset. Weil seine Funktion verschieden ist von der des Segments im 8088/8086 Mikroprozessor und im Real Modus wird der obere 16-Bit-Anteil des Zeigers als Selektor bezeichnet. Anstatt ihn lediglich mit 216 zu multiplizieren und zum Offset zu addieren, wird der Selektor als Zeiger auf einen Segmentdeskriptor benutzt, der in der Segmentdeskriptortabelle GDT enthalten ist, welche in einem vorbestimmten Bereich des pyhsikalischen Speichers aufgebaut wird. Jeder Segmentdeskriptor enthält einen 24-Bit-Wert, der die Basisadresse (Adresse der unteren Grenze) des entsprechenden Segments im physikalischen Speicher anzeigt. Um die wirkliche Adresse des gewünschten Operanden im physikalischen Bereich zu erhalten, wird der 24-Bit-Segmentdeskriptor durch den Selektor abgefragt und zum Offset addiert.
Weil die Selektoren, die im Protected Modus verwendet werden, von ihrer Funktion nur sehr verschieden und nicht äquivalent zur Funktion der Segmente im 8088/8086 Mikroprozessor und dem Real Modus sind, kann das BIOS, das für den 8088/8086 Mikroprozessor und den Real Modus entworfen wurde und Segmente zur Adressierung benutzt, nicht direkt im Protected Modus betrieben werden, wodurch es verhindert wird, Programme im Protected Modus auszuführen, die für das BIOS geschrieben wurden, welches für den 8088/8086 Mikroprozessor und den Real Modus entwickelt wurde. Während solche Programme natürlich auf dem 80 286 Mikroprozessor im Real Modus zum Laufen gebracht werden können, ist es ein Nachteil, daß sie nicht auch im Protected Modus betrieben werden können.
Aus EP-A-01 97 552 ist ein Verfahren und ein Betriebssystem zur Ausführung von Programmen in einem Multimode Mikroprozessor bekannt, bei dem die Adreßdeskriptortabellen des protected mode für Routinen des Betriebssystems so aufbereitet werden, daß diese Routinen in beiden Adressierungsmodi ausführbar sind. Ein Nachteil dieses Verfahrens sind die Beschränkungen, denen die Adreßformate des protected mode dann unterliegen.
Die vorliegende Erfindung stellt sich daher die Aufgabe, ein Computersystem und ein Verfahren zu dessen Betrieb anzugeben, bei dem ausgewählte Speicherbereiche in beiden Adreßmodi angesprochen werden können, ohne Beschränkungen für die Adreßdeskriptortabellen und für die aufrufenden Programme aufzuerlegen; insbesondere sollen diese Speicherbereiche zur Ausführung von Routinen des Betriebsprogramms in beiden Adreßmodi geeignet sein.
Diese Aufgabe wird durch die in den Ansprüchen 1 und 6 angegebene Erfindung gelöst; Ausgestaltungen der Erfindung sind in den Unteransprüchen angegeben.
Gemäß der Erfindung wird ein Computersystem und ein Verfahren zum Betrieb eines Computersystems bereitge­ stellt, wobei das Computersystem untereinander inkompa­ tible erste und zweite Adressierungsmodi hat, und wobei für jeden Adressierungsmodus eine Bereichstabelle gemeinsamer Daten (Common Data Area Table, CDA-Tabelle) aufgebaut wird, die Zeiger enthält, um die verschiede­ nen Datenübertragungsaufgaben und andere elementare Eingabe/Ausgabe-Operationen zu initiieren, die vom Betriebssystem oder von den Anwendungsprogrammen gebraucht werden. Jeder Zeiger in der CDA-Tabelle für den ersten Modus ist in seiner Funktion äquivalent zu einem entsprechenden Zeiger in der CDA-Tabelle für den zweiten Modus. Die Zeiger in den beiden Tabellen werden beim ersten Initialisieren des Betriebssystems gemäß der ihnen entsprechenden Adressierungsmodi aufgebaut.
In dem Fall von Real und Protected Modus sind, wie oben diskutiert, die Zeiger für den Bereich gemeinsamer Daten (Common Data Area, CDA) im Real Modus jeweils aus einem Segment und einem Offset zusammengesetzt, und jene Zeiger für den CDA im Protected Modus sind aus Selektoren und Offsets zusammengesetzt. Die Offsets der Zeiger in der Tabelle des Protected Modus, die auf Adressen außerhalb des CDA zeigen, sind in ihrem Wert identisch mit jenen der entsprechenden Zeiger in der Tabelle des Real Modus, während die Selektoren bezüg­ lich der physikalischen Adresse den Segmenten der entsprechenden Zeiger entsprechen.
Beschreibung der Abbildungen
Fig. 1 stellt ein Beispiel für den Speicherbelegungsplan eines Computers dar, der eine CPU mit Real und Protected Adressierungsmodi verwendet.
Fig. 2 zeigt einen Teil des Hauptspeichers im Real Modus und veranschaulicht, wie der Speicher unter Benutzung von Zeigern und Offsets adressiert wird.
Fig. 3 zeigt, wie Segment- und Offsetwerte manipuliert und addiert werden, um im Real Modus physikalische Speicheradressen zu erzeugen.
Fig. 4 zeigt einen Teil eines Hauptspeichers im Protected Modus und veranschaulicht, wie der Speicher unter Benutzung von Zeigern und Offsets adressiert wird.
Fig. 5 ist ein Diagramm, das zeigt, wie der BIOS Code gemäß einem Ausführungsbeispiel der vorliegenden Erfindung angeordnet ist.
Fig. 6 ist ein Belegungsplan für den bimodalen Bereich gemeinsamer Daten (bimodaler CDA) gemäß einem Ausführungsbeispiel der Erfindung.
Fig. 7 ist ein Flußdiagramm, das im Detail zeigt, wie der bimodale CDA von Fig. 6 aufgebaut wird.
Fig. 8 ist ein Flußdiagramm, das ein Beispiel zeigt, wie ein Einheitenblockzeiger für eine gegebe­ ne logische Kennzeichnung (ID) erhalten wird.
Fig. 9 ist ein Flußdiagramm, das veranschaulicht, wie eine Anforderung an BIOS in einem Com­ putersystem der Erfindung vollzogen wird.
Im folgenden wird Bezug genommen auf das Diagramm von Fig. 5. Dort ist ein Speicherbelegungsplan für den BIOS Code gezeigt, der in einem Computersystem der Erfindung verwendet wird.
Der BIOS Code ist aus 3 Teilen zusammengesetzt: POST, CBIOS und ABIOS. Post (Power On Self Test, Selbsttest beim Einschalten) wird benutzt, um den Selbsttest beim Einschalten und andere elementare Einschaltfunktionen durchzuführen, worunter die Entnahme des Boot-Records (Urlader-Datei) von der Systemplatte und das nachfol­ gende Laden des Betriebssystems in den Speicher einge­ schlossen sind. CBIOS (Compatibility Basic Input-Output System) enthält das BIOS, das von Anwendungsprogrammen benutzt wird, um Eingabe/Ausgabe-Operationen (Übertra­ gung von Daten zu und von dem Speicher, den Peripherie­ geräten, usw.) nur in Real Modus und in einer Einzel-Task-Umgebung durchzuführen. ABIOS (Advanced Basic Input-Output System) enthält das BIOS, das von Anwendungsprogrammen benutzt wird, um Einga­ be/Ausgabe-Operationen in einer bimodalen Multi-Task- Umgebung durchzuführen.
Gemäß der vorliegenden Erfindung hat das ABIOS die Fähigkeit, entweder im Real Modus oder im Protected Modus zu arbeiten. Dies wird für das ABIOS dadurch erreicht, daß bimodale Bereiche gemeinsamer Daten (CDA) aufgebaut werden, einen für den Real Modus und einen für den Protected Modus. Die in den beiden CDAs ent­ haltenen Einträge sind ihrer Funktion nach identisch, aber im Real Modus werden die Zeiger des CDA unter Benutzung der Begriffe Segment und Offset beschrieben, während im Protected Modus die Zeiger des CDA unter Verwendung der Begriffe von Selektor und Offset be­ schrieben werden. Wenn das Betriebssystem BIOS nur im Real Modus ausführen will, braucht nur der CDA des Real Modus aufgebaut und benutzt zu werden, wodurch die von BIOS gesteuerten Datenübertragungen für Anwendungs­ programme in der vorher bekannten Weise der Operationen im Real Modus stattfinden. Bevor das Betriebssystem jedoch BIOS im Protected Modus ausführen kann, muß der CDA des Protected Modus aufgebaut werden. Durch die Benutzung des CDA des Protected Modus - weil dieser seiner Funktion nach mit dem CDA des Real Modus iden­ tisch ist - können Programme, die für den Real Modus geschrieben wurden, nach Wahl durch den Benutzer erfolgreich im Protected Modus ausgeführt werden. Dadurch, daß die bimodalen CDAs bereitgestellt werden, ist der ABIOS Code "transparent" bezüglich des Modus, den der Benutzer für den Betrieb der CPU ausgewählt hat. Das Resultat ist eine vom Modus unabhängige Adressierung für die Anwendungsprogramme.
Ein Beispiel der bimodalen CDAs ist in Fig. 6 gezeigt. Der Einfachheit halber werden folgende Abkürzungen in Fig. 6 benutzt:
Logische Kennzeichnung (LID) - Jede LID entspricht einem angeforderten Gerät und identifiziert es. Jedes Gerät, das für ABIOS verfügbar ist, hat eine zugehörige LID.
Einheitenblock (Device Block, DB) - Der DB ist ein Arbeitspeicherbereich, der vom Betriebssystem zu­ geordnet ist und der die Adressen der Hardwarean­ schlüsse, Interrupt-Ebenen (levels) und Information über den Gerätezustand enthält.
Funktionsübertragungstabelle (Function Transfer Table, FTT) - Die FTT ist ein permanenter Speicherbereich, der vom Betriebssystem zugeordnet wird und der die Zeiger zu jeder ABIOS Funktionsroutine enthält.
ABIOS Datenzeiger (Data Pointer, Data Ptr) - Die Datenzeiger verleihen dem ABIOS die Fähigkeit, speziel­ le Teile des Speichers in der bimodalen Umgebung zu adressieren. Beispiele sind die Zeiger zu den Anzeige­ puffern.
Wie sofort aus Fig. 6 verstanden werden kann, sind im allgemeinen die Einträge in den beiden CDAs völlig identisch hinsichtlich ihrer Funktion und ihrer Stel­ lung innerhalb der entsprechenden Tabelle; der einzige Unterschied ist, daß die Zeiger in dem CDA des Real Modus aus Segment- und Offsetwerten zusammengesetzt sind, und die Zeiger in dem CDA des Protected Modus aus Selektoren und Offsets. Auf diese Weise werden durch die Verwendung von lediglich des CDA, der dem gegenwär­ tigen Betriebsmodus der CPU entspricht, und soweit die übrigen Teile von BIOS, das Betriebssystem und die Anwendungsprogramme betroffen sind, alle BIOS Operatio­ nen zwischen den beiden Modi in identischer Weise vollzogen; nach Fig. 6 zeigen also die zusammengehöri­ gen DB-Zeiger LID n in den beiden Tabellen beide auf denselben DB-LID n, die entsprechenden Datenzeiger o in den beiden Tabellen zeigen auf dieselbe identische Position im Speicher und dieselben Funktionszeiger m zeigen beide auf dieselbe identische Funktion m.
Fig. 7 ist ein Flußdiagramm, das im Detail beschreibt, wie die beiden CDAs aufgebaut werden.
Ausgehend vom Punkt START wird das ABIOS aufgerufen, die Tabelle der Systemparameter in Schritt 20 zu bauen. In Schritt 21 wird ABIOS aufgerufen, die Initialisationstabelle zu bauen. Als nächstes wird in Schritt 22 der Speicherraum für den CDA des Real Modus zugeordnet, wobei die DBs, FTTs und Datenzeiger mit inbegriffen sind. Im darauffolgenden Schritt 23 wird eine Anfangs-DB-Routine (InitDB) für die Anfangstabel­ leneinträge aufgerufen, um die FTT, DB usw. zu bauen. Jene, die mit dem in den IBM AT Computer verwendeten BIOS vertraut sind, werden die weiteren Details der Implementierung der Schritte 20 bis 23 leicht verste­ hen.
Nachdem in Schritt 24 festgestellt wurde, daß alle Einträge in der CDA-Tabelle des Real Modus vorständig sind, wird in Schritt 25 Speicherraum für den CDA des Protected Modus zugeordnet. Im folgenden Schritt 26 wird, in Übereinstimmung mit einem wichtigen Aspekt der Erfindung, ein Teil des Offsets von einem DB-Zeiger im CDA des Real Modus direkt zu dem entsprechenden Eintrag in dem CDA des Protected Modus kopiert. Für den in Schritt 26 kopierten Offsetwert wird in den Schritten 27 und 28 ein Selektor zugeordnet, dessen physikalische Adresse mit dem Segment des entsprechenden Zeigers im CDA des Real Modus übereinstimmt. In Schritt 29 wird der Selektor zur Vervollständigung des Zeigers in die entsprechende Position im CDA des Protected Modus kopiert.
Mit Bezug auf die Schritte 30 bis 34 wird ein FTT-Zeiger in einer etwas anderen Weise aufgebaut als die DB-Zeiger in den Schritten 26 bis 29, da die FTT- Zeiger auf andere Zeiger innerhalb der CDA und nicht auf Adressen außerhalb der CDA zeigen. In Schritt 30 wird ein FTT des Protected Modus zugeordnet und in Schritt 31 wird eine Kopie des Offsets des entsprechen­ den FTT im Protected Modus zu dem FTT-Zeiger im Protected Modus kopiert. Im darauffolgenden Schritt 32 wird festgestellt, ob der Selektor des Protected Modus zugeordnet wurde. Wenn nicht, dann wird in Schritt 33 ein Selektor zugeordnet, der auf den FTT zeigt. In Schritt 34 wird der Selektor zu dem Selektorteil im CDA des Protected Modus kopiert.
Ähnlich dem Aufbau des DB-Zeigers in den Schritten 26 bis 29 wird in den Schritten 35 bis 38 ein entsprechen­ der Funktionszeiger im CDA des Protected Modus aufge­ baut.
Schritt 39 testet, ob alle Zeiger der FTT vollständig sind. Die Schritte 35 bis 39 werden wiederholt bis alle Zeiger der FTT aufgebaut sind. Der folgende Schritt 40 testet, ob alle LIDs, DB-Zeiger und FTT-Zeiger voll­ ständig sind. Wenn nicht, geht der Prozeß nach Schritt 26 zurück und die Schritte 26 bis 40 werden wiederholt, bis alle LIDs, DB-Zeiger und FTT-Zeiger vollständig sind.
Zum Abschluß des CDA des Protected Modus werden in Schritt 41 die Datenzeiger (z. B. Zeiger auf den An­ zeigepuffer) aufgebaut. Dies wird in derselben Weise vorgenommen wie oben. In Schritt 41 wird der Offset- Teil des Datenzeigers aus dem CDA des Real Modus zu dem entsprechenden Eintrag in dem CDA des Protected Modus kopiert und in Schritt 42 wird ein Selektor zugeordnet, dessen physikalische Adresse mit dem Segment im ent­ sprechenden CDA-Eintrag des Real Modus übereinstimmt. Der Selektor wird in Schritt 43 in den CDA des Protected Modus kopiert. In Schritt 44 wird bestimmt, ob alle Datenzeiger vollständig sind. Wenn nicht, geht der Prozeß zurück nach Schritt 41, woraufhin die Schritte 41 bis 44 wiederholt werden bis alle Datenzei­ ger vollständig sind. In diesem Augenblick ist der Aufbau der beiden CDAs abgeschlossen.
Um ein Beispiel anzugeben wie der aufgebaute CDA von ABIOS benutzt wird, zeigt Fig. 8 ein Flußdiagramm, wie ein DB-Zeiger für eine gegebene logische Kennzeichnung (LID) aus dem bimodalen CDA erhalten wird.
Zunächst wird in den Schritten 60 und 61 auf den "gegenwärtigen" CDA-Ankerzeiger (anchor pointer) und die entsprechende LID zugegriffen. In Schritt 62 wird die LID mit 23 (=8) multipliziert, um für den DB-Zeiger den Offset zu erhalten. Dann kann in Schritt 62 auf den DB-Zeiger zugegriffen werden.
Fig. 9 ist ein Flußdiagramm, das zeigt, wie ein Pro­ gramm eine Anforderung an das ABIOS macht.
Zunächst wird in Schritt 70 ein Anforderungsblock (Request Block, RB) für die vorliegende spezifische Anforderung zugeordnet und aufgefüllt. In Schritt 71 wird auf den "gegenwärtigen" CDA Ankerzeiger zugegrif­ fen. In den darauffolgenden Schritten 72 und 73 werden der Ankerzeiger und der Anforderungsblockzeiger (RB-Zeiger) in dem Stapelrahmen (stack frame) unter Benutzung von PUSH-Instruktionen (Schiebe- Instruktionen) gespeichert. In Schritt 74 wird auf die passende LID vom Anforderungsblock (RB) zugegriffen. (Es gibt natürlich eine eindeutige Entsprechung zwischen den LIDs und den Einheiteneinträgen im CDA). In Schritt 75 wird die LID mit 23 multipliziert, um den Offset des DB-Zeigers (4 Bytes/Zeiger, 2 Zeiger) zu erhalten. Auf den entsprechenden FTT-Zeiger, 4 Bytes jenseits der Adresse des DB-Zeigers, wird in Schritt 76 zugegriffen, und dieser FTT-Zeiger wird in Schritt 77 im Stapelrahmen unter Benutzung einer PUSH-Instruktion gespeichert. In Schritt 78 wird der DB-Zeiger im Stapelrahmen gespeichert, ebenfalls unter Benutzung einer PUSH-Instruktion. Schließlich wird in Schritt 79 die gewünschte Funktion in der FTT gerufen.
Für die Erfindung sind auch weitere Anwendungen denkbar. Z. B. kann ein "Korrigie­ ren" (Patching) des BIOS Codes, um Änderungen daran zu bewirken, unter der Benutzung von FTT-Zeigern erreicht werden. D. h., FTT-Zeiger, die eine Umadressierung (redirection) zur Korrektur von Routinen bewirken, können in die CDAs eingefügt werden.

Claims (10)

1. Computersystem mit einer zentralen Verarbeitungs­ einheit (CPU) und einem Speicher, der von der zentralen Verarbeitungseinheit in einem ersten (Real Modus) und einem zweiten (Protected Modus) Adressierungsmodus adressiert werden kann, die zueinander inkompatibel sind und mit Vorrichtungen zum Adressieren ausgewählter Speicherbereiche unabhängig vom gerade aktiven Adressierungsmodus, dadurch gekennzeichnet, daß eine erste und eine zweite Tabelle (CDA; Fig. 6) vorgesehen sind, die jeweils einem Adressierungsmodus zugeordnet sind und in gleicher Sequenz Adreßzeiger zu den gleichen ausgewählten Speicherbereichen enthalten, wobei die Adreßzeiger jeder Tabelle das Format des zugeordnetes Adressierungsmodus aufweisen
und daß bei Zugriffsanforderungen zu einem der ausgewählten Speicherbereiche abhängig vom Adressierungsmodus, in dem sich die zentrale Verarbeitungseinheit befindet, über einen Anherzeiger die erste oder zweite Tabelle angesprochen wird und die dort enthaltenen Adreßzeiger zum Adressieren verwendet werden.
2. Computersystem nach Anspruch 1, dadurch gekennzeichnet, daß jeder Adreßzeiger der Tabellen aus einem hochstelligen Teil (Segment-, bzw. Selektorteil) und einem niedrigstelligen Teil (Offset) besteht, und daß einander entsprechende Adreßzeiger der Tabellen gleiche niedrigstellige Teile aufweisen.
3. Computersystem nach Anspruch 2, dadurch gekennzeichnet, daß die hochstelligen Adreßzeigerteile der ersten Tabelle auf Grenzen zwischen Segmenten im Speicher zeigen, die bei vorbestimmten Intervallen liegen und daß die hochstelligen Adreßzeigerteile der zweiten Tabelle auf Grenzen zwischen Segmenten im Speicher zeigen, deren Lage in einer Segmentdeskriptortabelle angegeben ist.
4. Computersystem nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, daß die ausgewählten Speicherbereiche Teil der elementaren Eingabe/Ausgabe-Steuerung (BIOS) sind.
5. Computersystem nach Anspruch 4, dadurch gekennzeichnet, daß in jeder der Tabellen Einheitenblock-Adreßzeiger (DB-Zeiger), Funktionstabellenübertragungs-Adreßzeiger (FTT-Zeiger), Daten-Adreßzeiger und Funktions-Adreßzeiger enthalten sind.
6. Computersystem nach Anspruch 4 oder 5, dadurch gekennzeichnet, daß wenigstens einer der FTT-Zeiger auf eine Korrekturroutine (patch routine) der BIOS-Routine zeigt.
7. Verfahren zum Betrieb eines Computersystems mit einer zentralen Verarbeitungseinheit (CPU)und einem Speicher, der von der zentralen Verarbeitungseinheit in einem ersten (Real Modus) und einem zweiten (Protected Modus) Adressierungsmodus adressiert werden kann, die zueinander inkompatibel sind und mit Vorrichtungen zum Adressieren ausgewählter Speicherbereiche unabhängig vom gerade aktiven Adressierungsmodus, gekennzeichnet durch die folgenden Schritte während der Initialisierung des Computersystems:
  • - Zuordnen von Speicherraum für eine erste und eine zweite Tabelle (CDA)
  • - Eintragen von Adreßzeigern, im Format des ersten Adressiermodus, zu den ausgewählten Speicherbereichen in die erste Tabelle
  • - Eintragen von Adreßzeigern, im Format des zweiten Adressiermodus, in die zweite Tabelle unter Beibehaltung der Sequenz der Adreßzeiger in der ersten Tabelle
  • - wobei im Betrieb zur Adressierung eines der ausgewählten Speicherbereiche die Adreßzeiger der ersten oder zweiten Tabelle abhängig vom Adressierungsmodus der zentralen Verarbeitungseinheit verwendet werden.
8. Verfahren nach Anspruch 7, dadurch gekennzeichnet, daß die Adreßzeiger beider Tabellen einen hochstelligen und einen niedrigstelligen (Offest) Teil umfassen, daß die niedrigstelligen Teile der zweiten Tabelle aus der ersten Tabelle kopiert werden und daß die hochstelligen Teile der Adreßzeiger der zweiten Tabelle einer Segmentdeskriptortabelle des Computersystems entnommen werden.
9. Verfahren nach Anspruch 7 oder 8, dadurch gekennzeichnet, daß die ausgewählten Speicherbereiche Teilen der BIOS-Steuerung entsprechen und daß die Tabellen Einheitenblock-Adreßzeiger (DB-Zeiger), Funktionsübertragungstabellen-Adreßzeiger (FTT-Zeiger), Daten-Adreßzeiger und Funktions-Adreßzeiger enthalten.
10. Verfahren nach Anspruch 9, dadurch gekennzeichnet, daß wenigstens einer der FTT-Zeiger auf eine Korrekturroutine (patch routine) der BIOS- Steuerung zeigt.
DE3808167A 1987-03-27 1988-03-11 Computersystem mit modusunabhängiger Adressierung Expired - Fee Related DE3808167C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/030,789 US4928237A (en) 1987-03-27 1987-03-27 Computer system having mode independent addressing

Publications (2)

Publication Number Publication Date
DE3808167A1 DE3808167A1 (de) 1988-10-13
DE3808167C2 true DE3808167C2 (de) 1994-03-24

Family

ID=21856049

Family Applications (2)

Application Number Title Priority Date Filing Date
DE87118538T Expired - Fee Related DE3786660T2 (de) 1987-03-27 1987-12-15 Computersystem mit einer CPU mit zwei gegenseitig inkompatiblen Adressiermoden.
DE3808167A Expired - Fee Related DE3808167C2 (de) 1987-03-27 1988-03-11 Computersystem mit modusunabhängiger Adressierung

Family Applications Before (1)

Application Number Title Priority Date Filing Date
DE87118538T Expired - Fee Related DE3786660T2 (de) 1987-03-27 1987-12-15 Computersystem mit einer CPU mit zwei gegenseitig inkompatiblen Adressiermoden.

Country Status (15)

Country Link
US (2) US4928237A (de)
EP (1) EP0288606B1 (de)
JP (1) JPH0731628B2 (de)
AT (1) ATE91812T1 (de)
BE (1) BE1001064A3 (de)
BR (1) BR8801388A (de)
CA (1) CA1293821C (de)
DE (2) DE3786660T2 (de)
ES (1) ES2042531T3 (de)
FR (1) FR2613093B1 (de)
GB (1) GB2202657B (de)
HK (1) HK33992A (de)
IT (1) IT1217358B (de)
NL (1) NL185634C (de)
SG (1) SG5792G (de)

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4928237A (en) * 1987-03-27 1990-05-22 International Business Machines Corp. Computer system having mode independent addressing
US5226122A (en) * 1987-08-21 1993-07-06 Compaq Computer Corp. Programmable logic system for filtering commands to a microprocessor
US5018062A (en) * 1987-10-23 1991-05-21 A.I. Architects, Inc. Method and apparatus for overriding a ROM routine in response to a reset
JPH01273136A (ja) * 1988-04-26 1989-11-01 Oki Electric Ind Co Ltd オペレーティングシステムのファームウェア化方式
US5101493A (en) * 1989-06-19 1992-03-31 Digital Equipment Corporation Digital computer using data structure including external reference arrangement
JPH03233630A (ja) * 1990-02-08 1991-10-17 Nec Corp 情報処理装置
US5142626A (en) * 1990-07-20 1992-08-25 International Business Machines Corp. Personal computer with removable media identification
US5136711A (en) * 1990-10-17 1992-08-04 Ast Research System for multiple access hard disk partitioning
US5186978B1 (en) * 1990-11-16 1999-11-02 Cal West Equip Co Protective coating and method of using such coating
US5255379A (en) * 1990-12-28 1993-10-19 Sun Microsystems, Inc. Method for automatically transitioning from V86 mode to protected mode in a computer system using an Intel 80386 or 80486 processor
US5604885A (en) * 1991-02-01 1997-02-18 Texas Instruments Incorporated Apparatus and method enabling a computer to transfer control between two program segments that call one another but operate in different modes
US5303378A (en) * 1991-05-21 1994-04-12 Compaq Computer Corporation Reentrant protected mode kernel using virtual 8086 mode interrupt service routines
US5297282A (en) * 1991-05-29 1994-03-22 Toshiba America Information Systems, Inc. Resume processing function for the OS/2 operating system
US5355490A (en) * 1991-06-14 1994-10-11 Toshiba America Information Systems, Inc. System and method for saving the state for advanced microprocessor operating modes
US5237669A (en) * 1991-07-15 1993-08-17 Quarterdeck Office Systems, Inc. Memory management method
US5291585A (en) * 1991-07-29 1994-03-01 Dell Usa, L.P. Computer system having system feature extension software containing a self-describing feature table for accessing I/O devices according to machine-independent format
EP0534597B1 (de) * 1991-09-23 2000-04-26 Intel Corporation Rechnersystem mit Software-Unterbrechungsbefehlen, das selektiv in einem virtuellen Modus arbeitet
US5596755A (en) * 1992-11-03 1997-01-21 Microsoft Corporation Mechanism for using common code to handle hardware interrupts in multiple processor modes
CA2093451C (en) * 1993-04-06 2000-03-14 David M. Mooney Method and mechanism for calling 32-bit functions from 16-bit functions
US5487158A (en) * 1993-04-06 1996-01-23 International Business Machines Corporation Method and procedure call mechanism for calling 16-bit functions from 32-bit functions
JPH0778106A (ja) * 1993-09-08 1995-03-20 Hitachi Ltd データ処理システム
US5537597A (en) * 1993-09-27 1996-07-16 Intel Corporation Method and apparatus for supporting real mode card services clients with a protected mode card services implementation
US5481684A (en) * 1994-01-11 1996-01-02 Exponential Technology, Inc. Emulating operating system calls in an alternate instruction set using a modified code segment descriptor
US5604887A (en) * 1994-01-21 1997-02-18 Microsoft Corporation Method and system using dedicated location to share information between real and protected mode device drivers
US5459869A (en) * 1994-02-17 1995-10-17 Spilo; Michael L. Method for providing protected mode services for device drivers and other resident software
US5625800A (en) * 1994-06-30 1997-04-29 Adaptec, Inc. SCB array external to a host adapter integrated circuit
US5564023A (en) * 1994-06-30 1996-10-08 Adaptec, Inc. Method for accessing a sequencer control block by a host adapter integrated circuit
US5864698A (en) * 1994-08-24 1999-01-26 Packard Bell Nec Disk based bios
US5642491A (en) * 1994-09-21 1997-06-24 International Business Machines Corporation Method for expanding addressable memory range in real-mode processing to facilitate loading of large programs into high memory
US6438621B1 (en) 1994-11-14 2002-08-20 Microsoft Corporation In-memory modification of computer programs
US6178550B1 (en) * 1995-01-31 2001-01-23 Dell Usa Mechanism for optimizing location of machine-dependent code
US5710941A (en) * 1995-02-28 1998-01-20 Microsoft Corporation System for substituting protected mode hard disk driver for real mode driver by trapping test transfers to verify matching geometric translation
US6141722A (en) * 1995-05-31 2000-10-31 Microsoft Corporation Method and apparatus for reclaiming memory
WO1996038784A1 (en) * 1995-06-02 1996-12-05 Systemsoft Corporation Digital data processing method and apparatus for peripheral device control
US5864689A (en) * 1995-12-05 1999-01-26 Advanced Micro Devices, Inc. Microprocessor configured to selectively invoke a microcode DSP function or a program subroutine in response to a target address value of branch instruction
US6091897A (en) 1996-01-29 2000-07-18 Digital Equipment Corporation Fast translation and execution of a computer program on a non-native architecture by use of background translator
US6535903B2 (en) * 1996-01-29 2003-03-18 Compaq Information Technologies Group, L.P. Method and apparatus for maintaining translated routine stack in a binary translation environment
US5860079A (en) * 1996-05-10 1999-01-12 Apple Computer, Inc. Arrangement and method for efficient calculation of memory addresses in a block storage memory system
FR2764407B1 (fr) * 1997-06-05 1999-07-30 Alsthom Cge Alcatel Dispositif de retouche de programme de commande dans un processeur
US5951658A (en) * 1997-09-25 1999-09-14 International Business Machines Corporation System for dynamic allocation of I/O buffers for VSAM access method based upon intended record access where performance information regarding access is stored in memory
US6148387A (en) * 1997-10-09 2000-11-14 Phoenix Technologies, Ltd. System and method for securely utilizing basic input and output system (BIOS) services
US6321332B1 (en) * 1998-06-17 2001-11-20 Intel Corporation Flexible control of access to basic input/output system memory
US6785806B1 (en) 1999-12-30 2004-08-31 Intel Corporation Bios having macro/effector pairs for hardware initialization
GB2396713B (en) 2002-11-18 2005-09-14 Advanced Risc Mach Ltd Apparatus and method for controlling access to a memory unit
GB2396930B (en) 2002-11-18 2005-09-07 Advanced Risc Mach Ltd Apparatus and method for managing access to a memory
US7738993B2 (en) * 2003-10-10 2010-06-15 Boston Scientific Scimed, Inc. Extrusion of articles
US9015727B2 (en) * 2008-04-02 2015-04-21 Qualcomm Incorporated Sharing operating system sub-processes across tasks
TW201020773A (en) * 2008-11-19 2010-06-01 Inventec Corp Method for reading/writing a big structure in a 64k operating environment
US9898307B2 (en) * 2015-12-21 2018-02-20 Intel Corporation Starting application processors of a virtual machine

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS532296B2 (de) * 1973-03-19 1978-01-26
FR2258113A5 (de) * 1973-11-30 1975-08-08 Honeywell Bull Soc Ind
US4128875A (en) * 1976-12-16 1978-12-05 Sperry Rand Corporation Optional virtual memory system
JPS5448449A (en) * 1977-09-26 1979-04-17 Hitachi Ltd Virtual addressing sustem
US4315321A (en) * 1978-06-16 1982-02-09 The Kardios Systems Corporation Method and apparatus for enhancing the capabilities of a computing system
US4270167A (en) * 1978-06-30 1981-05-26 Intel Corporation Apparatus and method for cooperative and concurrent coprocessing of digital information
US4325120A (en) * 1978-12-21 1982-04-13 Intel Corporation Data processing system
US4442484A (en) * 1980-10-14 1984-04-10 Intel Corporation Microprocessor memory management and protection mechanism
US4514805A (en) * 1982-02-22 1985-04-30 Texas Instruments Incorporated Interrupt operation in systems emulator mode for microcomputer
US4727480A (en) * 1984-07-09 1988-02-23 Wang Laboratories, Inc. Emulation of a data processing system
US4779187A (en) * 1985-04-10 1988-10-18 Microsoft Corporation Method and operating system for executing programs in a multi-mode microprocessor
US4825358A (en) * 1985-04-10 1989-04-25 Microsoft Corporation Method and operating system for executing programs in a multi-mode microprocessor
US5027273A (en) * 1985-04-10 1991-06-25 Microsoft Corporation Method and operating system for executing programs in a multi-mode microprocessor
EP0205692B1 (de) * 1985-06-18 1991-10-16 International Business Machines Corporation Mikroprozessor
JPS623358A (ja) * 1985-06-28 1987-01-09 Yokogawa Hewlett Packard Ltd 複数アドレス空間アクセス方式
US4747040A (en) * 1985-10-09 1988-05-24 American Telephone & Telegraph Company Dual operating system computer
US4787032A (en) * 1986-09-08 1988-11-22 Compaq Computer Corporation Priority arbitration circuit for processor access
US4849875A (en) * 1987-03-03 1989-07-18 Tandon Corporation Computer address modification system with optional DMA paging
US4928237A (en) * 1987-03-27 1990-05-22 International Business Machines Corp. Computer system having mode independent addressing
US5018062A (en) * 1987-10-23 1991-05-21 A.I. Architects, Inc. Method and apparatus for overriding a ROM routine in response to a reset
US4974159A (en) * 1988-09-13 1990-11-27 Microsoft Corporation Method of transferring control in a multitasking computer system

Also Published As

Publication number Publication date
SG5792G (en) 1992-03-20
EP0288606A2 (de) 1988-11-02
ATE91812T1 (de) 1993-08-15
GB2202657A (en) 1988-09-28
BR8801388A (pt) 1988-11-01
DE3786660D1 (de) 1993-08-26
NL185634C (nl) 1990-06-01
HK33992A (en) 1992-05-15
GB8728922D0 (en) 1988-01-27
DE3808167A1 (de) 1988-10-13
US4928237A (en) 1990-05-22
EP0288606A3 (en) 1989-05-03
JPH0731628B2 (ja) 1995-04-10
EP0288606B1 (de) 1993-07-21
GB2202657B (en) 1991-09-18
JPS63244147A (ja) 1988-10-11
IT1217358B (it) 1990-03-22
US5193161A (en) 1993-03-09
IT8819945A0 (it) 1988-03-25
BE1001064A3 (fr) 1989-06-27
NL8800736A (nl) 1988-10-17
FR2613093A1 (fr) 1988-09-30
ES2042531T3 (es) 1993-12-16
DE3786660T2 (de) 1994-02-17
FR2613093B1 (fr) 1990-03-23
CA1293821C (en) 1991-12-31

Similar Documents

Publication Publication Date Title
DE3808167C2 (de) Computersystem mit modusunabhängiger Adressierung
DE3607889C2 (de)
DE4215063C2 (de) Einrichtung und Verfahren zum Seitenwechsel bei einem nicht-flüchtigen Speicher
DE10393920B4 (de) Verfahren und Systeme zur Steuerung virtueller Maschinen
DE2350884C2 (de) Adreßumsetzungseinheit
DE2459006C2 (de) Einrichtung zum Bilden einer absoluten Adresse in einer Datenverarbeitunsanlage
DE112010003554B4 (de) Symmetrische Direktmigration von Virtuellen Maschinen
DE69723286T2 (de) Echtzeitprogramm-sprachbeschleuniger
DE60217157T2 (de) Verfahren und vorrichtung zum binden von shadow-registern an vektorisierte interrupts
DE4312250B4 (de) Computer-System, das zum Betrieb sowohl in einer ersten wie auch in einer zweiten Bytereihenfolge-Betriebsart fähig ist, sowie ein Verfahren zum Booten eines solchen Computer-Systems
DE2417795C2 (de) Datenverarbeitungsanlage
DE60131864T2 (de) Speichern von stapeloperanden in registern
DE2517276A1 (de) Datenverarbeitungssystem
DE69635865T2 (de) Adressentransformation in einem cluster-computersystem
DE2813128A1 (de) Mikroprogrammspeicher
EP0333123A2 (de) Modular strukturiertes ISDN-Kommunikationssystem
DE2302074A1 (de) Speicherschutzanordnung in einem multiprozessorsystem
DE2431379A1 (de) Datenverarbeitungseinrichtung
DE3741850A1 (de) Ausfuehrungseinheit fuer einen i/o-prozessor
DE2424810A1 (de) Datenverarbeitungsanlage, insbesondere kleine mikroprogramm-datenverarbeitungsanlage mit mehrsilbenmikrobefehlen
DE2612054A1 (de) Verfahren zur adressentwicklung und prozessor zur durchfuehrung des verfahrens
DE2746505A1 (de) Dv-system mit einer einrichtung zum adressieren in einem festwertspeicher abgelegter mikroprogramme
DE2134816C3 (de) Einrichtung zur Adressenübersetzung
DE2721623A1 (de) System zur bearbeitung eines zielsystemprogrammes
EP0500973A1 (de) Initialisierungsroutine im EEPROM

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
D2 Grant after examination
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee