DE3808167A1 - Computersysteme mit vom modus unabhaengiger adressierung - Google Patents

Computersysteme mit vom modus unabhaengiger adressierung

Info

Publication number
DE3808167A1
DE3808167A1 DE3808167A DE3808167A DE3808167A1 DE 3808167 A1 DE3808167 A1 DE 3808167A1 DE 3808167 A DE3808167 A DE 3808167A DE 3808167 A DE3808167 A DE 3808167A DE 3808167 A1 DE3808167 A1 DE 3808167A1
Authority
DE
Germany
Prior art keywords
pointers
pointer
cda
mode
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.)
Granted
Application number
DE3808167A
Other languages
English (en)
Other versions
DE3808167C2 (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 jeder von 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 Mikrosoft 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 unter Benutzung von 32-Bit-Zeiger. 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. Das heißt Zeigersegment n, multipliziert mit 216 (ä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 216 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 Segmentdescriptor benutzt, der in der Segmentdescriptortabelle enthalten ist, welche in einem vorbestimmten Bereich des pyhsikali­ schen Speichers aufgebaut wird. Jeder Segmentdescriptor enthält einen 24-Bit-Wert, der die Basisadresse (Adres­ se 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-Segmentdescriptor 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.
Es ist daher die Aufgabe der vorliegenden Erfindung, ein Computersystem und ein Verfahren zum Betrieb eines Computersystems bereitzustellen, in welchen die oben diskutierten Nachteile vermieden werden.
Um genauer zu sein, es ist Aufgabe der vorliegenden Erfindung, ein Computersystem und ein Verfahren zum Betrieb eines Computersystems bereitzustellen, in denen ein einziges BIOS dazu in der Lage ist, Programme sowohl im Protected Modus als auch im Real Modus zu unterstützen.
Diese Aufgabe wird durch die in den Ansprüchen 1 und 10 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 jedoch 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 au 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 44 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.
Weitere Anwendungen liegen innerhalb des von der Erfindung gesteckten Rahmens. Zum Beispiel kann ein "Korrigie­ ren" (Patching) des BIOS Codes, um Änderungen daran zu bewirken, unter der Benutzung von FTT-Zeigern erreicht werden. Das heißt, FTT-Zeiger, die eine Umadressierung (redirection) zur Korrektur von Routinen bewirken, können in die CDAs eingefügt werden.

Claims (13)

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 beide zueinander inkompatibel sind, dadurch gekennzeichnet, daß eine Einrichtung (ABIOS) vorgesehen ist, die äquivalente Datenübertragungsoperationen entweder im ersten oder im zweiten Adressierungsmodus durchführt.
2. Computersystem nach Anspruch 1, dadurch gekennzeichnet, daß im zweiten Adressierungsmodus ein größerer Teil des Speichers adressiert werden kann als im ersten Adressierungsmodus.
3. Computersystem nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß die Einrichtung zur Durchführung der äquiva­ lenten Datenübertragungsoperation ein Teil der elementaren Eingabe-/Ausgabesteuerung (BIOS) ist.
4. Computersystem nach einem der Ansprüche 1-3, dadurch gekennzeichnet, daß die Einrichtung zur Durchführung der äquiva­ lenten Datenübertragungsoperationen eine erste und eine zweite CDA-Tabelle (CDA = Common Data Area, Bereich gemeinsamer Daten) (Fig. 6) für den ersten bzw. den zweiten Adressierungsmodus umfaßt, daß jede Tabelle Zeiger auf vorher­ bestimmte, einander entsprechende Speicherbereiche enthält, und daß wenigstens einige der Zeiger in der ersten Tabelle funktionell äquivalente Zeiger in der zweiten Tabelle aufweisen.
5. Computersystem nach Anspruch 4, dadurch gekennzeichnet, daß jeder Zeiger in der ersten Tabelle (Fig. 2) und jeder Zeiger in der zweiten Tabelle (Fig. 4) einen niedrigstelligen Teil (Offset-Teil) und einen hochstelligen Teil (Segment-Teil bzw. Selektor-Teil) umfaßt, wobei einander entspre­ chende Zeiger der ersten und der zweiten Tabelle gleiche niedrigstellige Teile aufweisen.
6. Computersystem nach Anspruch 5, dadurch gekennzeichnet, daß die hochstelligen Zeigerteile der ersten Tabelle (Fig. 2) auf Grenzen zwischen Segmenten im Speicher zeigen, die bei vorbestimmten Intervallen liegen.
7. Computersystem nach den Ansprüchen 5 oder 6, dadurch gekennzeichnet, daß die hochstelligen Zeigerteile in der zweiten Tabelle (Fig. 4) auf Grenzen zwischen Segmenten im Speicher zeigen, deren Lage in einer Segmentdes­ kriptortabelle angegeben sind.
8. Computersystem nach einem der Ansprüche 4 bis 7, dadurch gekennzeichnet, daß in jeder der Tabellen Einheitenblock-Zeiger (DB-Zeiger), Funktionsübertragungstabellen-Zeiger (FTT-Zeiger), Datenzeiger und Funktionszeiger enthalten sind.
9. Computersystem nach Anspruch 8, dadurch gekennzeichnet, daß wenigstens einer der FTT-Zeiger auf eine Korrekturroutine (patch routine) der BIOS (Basic Input/Output System, Elementares Eingabe/Ausgabe System) Steuerung zeigt.
10. Verfahren zum Betrieb eines Computersystems mit einer zentralen Verarbeitungseinheit (CPU), die in einem ersten und in einem zweiten Adressierungsmo­ dus für einen Speicher arbeiten kann, wobei die beiden Modi untereinander inkompatibel sind, gekennzeichnet durch die Schritte:
  • - Zuordnen von Speicher-Raum für einen ersten und einen zweiten Bereich gemeinsamer Daten (Common Data Area, CDA) entsprechend dem ersten bzw. dem zweiten Adressierungsmodus;
  • - Eintragen einer ersten Menge von Zeigern für jeweils eine Datenübertragungsanforderung in den ersten CDA, wobei die Zeiger der ersten Mengen einen hochstelligen Teil (Segment-Teil) und einen niedrigstelligen Teil (Offset-Teil) aufweisen, der hochstellige Teil auf jeweils eine in vorbestimmten Intervallen auftreten­ den Grenze zwischen Segmenten zeigt und der niedrigstellige Teil einen Offset von der Grenze darstellt, die durch den hochstelligen Teil angegeben ist; und
  • - Eintragen einer zweiten Menge von Zeigern in den zweiten CDA, wobei das Eintragen umfaßt:
    Kopieren des niedrigstelligen Teils jedes Zeigers der ersten Menge aus dem ersten CDA,
    Eintragen eines Wertes (Selektors), in den hochstelligen Teil jedes Zeigers, der auf eine Segmentgrenze zeigt, die in einer Segmentbeschreibungstabelle spezifiziert ist und deren physikalische Adresse mit jener des entsprechenden hochstelligen Teils der Zeiger der ersten Menge übereinstimmt.
11. Verfahren nach Anspruch 10, dadurch gekennzeichnet, daß das Eintragen von Zeigern der ersten Menge in den ersten CDA das Aufbauen von Einheitenblock- Zeigern (DB-Zeiger) Funktionsüber­ tragungstabellen-Zeigern (FTT-Zeiger), Datenzei­ gern und Funktionszeigern umfaßt.
12. Verfahren nach Anspruch 11, dadurch gekennzeichnet, daß wenigstens einer der FTT-Zeiger auf eine Korrekturroutine (patch routine) der BIOS- Steuerung (Basic Input/Output System, Elementares Eingabe/Ausgabe System) zeigt.
3. Verfahren nach einem der Ansprüche 10-12, dadurch gekennzeichnet, daß der erste und der zweite CDA beim Einschalten des Computersystems von einer Selbsttest-Routine aufgebaut werden.
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 true DE3808167A1 (de) 1988-10-13
DE3808167C2 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
ATE192246T1 (de) * 1991-09-23 2000-05-15 Intel Corp 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
US5564023A (en) * 1994-06-30 1996-10-08 Adaptec, Inc. Method for accessing a sequencer control block by a host adapter integrated circuit
US5625800A (en) * 1994-06-30 1997-04-29 Adaptec, Inc. SCB array external to 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
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
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
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
GB2396930B (en) 2002-11-18 2005-09-07 Advanced Risc Mach Ltd Apparatus and method for managing access to a memory
GB2396713B (en) 2002-11-18 2005-09-14 Advanced Risc Mach Ltd Apparatus and method for controlling access to a memory unit
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

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0197552A2 (de) * 1985-04-10 1986-10-15 Microsoft Corporation Verfahren zur Verarbeitung von Unterbrechungen in einem digitalen Rechnersystem

Family Cites Families (20)

* 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
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
DE3584446D1 (de) * 1985-06-18 1991-11-21 Ibm 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

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0197552A2 (de) * 1985-04-10 1986-10-15 Microsoft Corporation Verfahren zur Verarbeitung von Unterbrechungen in einem digitalen Rechnersystem

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
US-Z: Proceedings of the IEEE Vol. 72, No. 3, März 1984, S. 363-376 *

Also Published As

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

Similar Documents

Publication Publication Date Title
DE3808167C2 (de) Computersystem mit modusunabhängiger Adressierung
DE3607889C2 (de)
DE10393920B4 (de) Verfahren und Systeme zur Steuerung virtueller Maschinen
DE2350884C2 (de) Adreßumsetzungseinheit
DE112010003554B4 (de) Symmetrische Direktmigration von Virtuellen Maschinen
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
DE69627814T2 (de) System zum bereitstellen eines bios für den hauptrechner
DE10238566A1 (de) Fenster-basierendes Flashspeicher-Speichersystem und Management und Zugriffsverfahren darauf
DE4215063C2 (de) Einrichtung und Verfahren zum Seitenwechsel bei einem nicht-flüchtigen Speicher
DE10047266B4 (de) Verfahren und Vorrichtung zum Booten einer Workstation von einem Server
DE2423194C2 (de) Vorrichtung zum Berechnen einer absoluten Hauptspeicheradresse in einer Datenverarbeitungsanlage
DE4214184C2 (de) Computersystem mit einem nicht-flüchtigen Speicher und Verfahren zu dessen Aktualisierung
DE60217157T2 (de) Verfahren und vorrichtung zum binden von shadow-registern an vektorisierte interrupts
DE69819686T2 (de) Objekt und verfahren zum bereitstellen eines effizienten mehrbenutzerzugriff auf verteilten betriebssystemkernkode durch instanzierung
DE10393859B4 (de) Entkoppelter Hardwarekonfigurationsmanager
DE2517276A1 (de) Datenverarbeitungssystem
DE2902465A1 (de) Datenverarbeitungsanordnung
DE2813128A1 (de) Mikroprogrammspeicher
DE3741850A1 (de) Ausfuehrungseinheit fuer einen i/o-prozessor
DE2746505A1 (de) Dv-system mit einer einrichtung zum adressieren in einem festwertspeicher abgelegter mikroprogramme
DE2134816C3 (de) Einrichtung zur Adressenübersetzung
DE69233282T2 (de) Datenverarbeitungsvorrichtung
EP0500973A1 (de) Initialisierungsroutine im EEPROM
DE3338329C2 (de)
DE102018202446A1 (de) Verfahren zum Modularisieren einer Softwarearchitektur

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