5. Mikroprozessoren für PCs: die X86-Familie. 5.1 Einführung

Größe: px
Ab Seite anzeigen:

Download "5. Mikroprozessoren für PCs: die X86-Familie. 5.1 Einführung"

Transkript

1 5. Mikroprozessoren für PCs: die X86-Familie 5.1 Einführung Die heute in PCs und Workstations sind, aus der Sicht der Rechnerarchitektur, gesehen, Kinder zwei verschiedener Familien. Die ersten Mitglieder der Intel-Mikroprozessor-Familie haben wir kennengelernt. Sie haben den Prozessoren in den heutigen PCs den komplexen Befehlssatz vererbt. Die wesentlichen Eigenschaften kann man wie folgt zusammenfassen: - komplexer Befehlssatz - arithmetisch-logische Befehle mit Speicherzugriff (Speicher-Speicher-Maschine) - Befehlsablauf mit einer hohen Zahl von Mikrobefehlen und Maschinenzyklen - Organisation der Ablaufsteuerung als mikroprogrammierte Steuerung. Ein anderes Merkmal speziell der Intel-Prozessoren, nämlich die Eigenheiten der Speicherverwaltung, werden wir noch kennenlernen. Andererseits sind natürlich auch Ergebnisse aus der Entwicklung von RISC (reduced instruction set)- Prozessoren in die Entwicklung eingeflossen. Deren Eigenschaften kann man zusammenfassen mit: - relativ kleiner Befehlssatz mit Beschränkung auf die wirklich "wichtigen" Befehle - arithmetische und logische Befehle wirken nur auf Registerinhalte - die Befehle werden mit möglichst wenigen Taktzyklen und, wo möglich, mit Zwischenspeicherung nur in Registern abgelegt - meistens fest verdrahtete (und damit schnellere) Steuerung. Die RISC-Architektur, z. B. in Form der DLX-Maschine von Hennessy und Patterson, aber auch Form der SPARC-Architektur von Sun und der Prozessoren von MIPS, hat in den 8er Jahren den Computertyp "Workstation" erst möglich gemacht, also kostengünstige Arbeitsplatzrechner mit den Leistungen der damaligen Super-Mini-Computer und kleiner bis mittlerer Mainframes. Genauer gesagt: Es gab sogar zwei verschiedene Urväter der RISC-Maschinen, nämlich eine MIPS -Maschine in Stanford bei Hennessy und eine RISC -Maschine in Berkeley bei Patterson. Aus ersterer entstanden die kommerziellen MIPS-Prozessoren, aus letzterer die SPARC-Serie von Sun. Ganz im Unterschied zu den CISC-Rechnern ergab sich bei den RISCs schon sehr bald der Effekt, dass die Leistung von der Speicherbandbreite bestimmt wurde. Dies könnte ein Grund dafür sein, dass man aufwendige Adressumrechnungen minimiert hat. Z. B. hat UNIX, das "native" Betriebssystem der meisten Workstations, eine im Vergleich zu den Mikrosoftbetriebssystemen (die für CISC-Prozessoren von Intel ausgelegt waren), eine wesentlich einfachere Speicherverwaltung. Heutige High-End-Mikroprozessoren von Intel (und deren Clones) sind insgesamt seltsame Zwitter. Für einen Teil des Befehlssatzes wirken sie wie schnelle RISC-Prozessoren, unter anderem auch so, dass einfache Arithmetische Befehle möglichst in einem Takt ausgeführt werden. Für den Rest des Befehlssatzes ergibt sich ein langsamer und aufwendiger Ablauf, der die Ressourcen des Prozessors nur unvollkommen nutzt. Für die Zukunft sehen die Architekturen eher RISC-mäßig aus, teilweise auf eine außerordentlich RISCante Weise. Neben den rapide komplizierter und schneller werdenden High-End-Prozessoren (die heute typischerweise schon 64 Bit breit sind) sterben aber 16-Bit- und 32-Bit-Prozessoren keineswegs aus. Man verwendet sie nun in "embedded"-anwendungen, wo neben einem Prozessorkern noch anwendungsspezifische Komponenten auf dem IC integriert sind. Zum Beispiel macht bei Mikrocontrollern eine 16-Bit-Architekturen durchaus noch viel Sinn, 8 Bit Breite selbst sind für viele Anwendungen ausreichend. 1

2 5.2 Die ersten Mikroprozessoren für allgemeine Anwendungen Die 886 / 888-Serie: Einführung Der aus dem 88 / 885 entwickelte 886-Mikroprozessor wurde von Intel 1978 auf den Markt gebracht. Er ist in dem Sinne ein 16-Bit-Prozessor, dass alle (allgemeinen) internen Register 16 Bit breit sind, der interne Prozessorbus 16 Leitungen breit ist dass die arithmetischen Einheiten 16 Bit breit sind. Beim 886 ist auch der externe Datenbus 16 Bit breit. Der mit dem 886 ansonsten weitgehend identische,1979 erschienene 888-Mikroprozessor hat dagegen nur einen 8 Bit breiten externen Datenbus. Er wurde 1981 von IBM als Kern des PC / XT ausgewählt und hat damit maßgeblichen Anteil am Aufstieg der Firma Intel zum weltführenden Halbleiterhersteller. Befehls-Ausführungs-Bus-Schnittstelleneinheieinheit E U BIU Universelle Datenregister (8 / 16 Bit) AH BH CH DH AL BL CL DL SP BP SI DI (16 Bit) Befehlszeiger IP CS DS SS ES 16 Bit- Segmentregister ALU Flags Steuerwerk Mikrocode Befehls- Dekoder Interner Bus Bus-Steuerg. Adress- Addierer 6*8 Bit Befehlswarteschlange externer Multiplexer-Bus 16 Bit Daten, 2 Bit Adressen Steuersignale Abb. 5.1: Blockschaltbild des 886-Mikroprozessors Der 886-Prozessor ist in eine Befehls- Ausführungseinheit (execution unit, EU) und eine Busschnittstelleneinheit (bus interface unit, BIU) gegliedert. Die execution unit entschlüsselt Befehle und führt sie (so die Daten vorhanden sind) aus. Ein direkter Zugang zum externen Speichersystem besteht nicht. Die Bus Interface Unit ist dagegen nur mit der Organisation des Befehls- und Datenflusses zwischen CPU und Memory beschäftigt. Diese beiden Teilprozessoren arbeiten teilweise überlappend und parallel. Der Puffer zwischen Ihnen bildet eine Befehlswarte-schlange. Der Anschluss an die Außenwelt erfolgt über einen gemultiplexten Daten- und Adressbus. Die Umsteuerung zwischen Daten- und Adressbetrieb auf dem Bus wird durch zwei spezielle Steuersignals (ALE-aadress latch enable) und DEN (data enable, low-aktiv) geleistet. Während die Breite des Datenbusses 16 Bit beträgt (bzw. 8 Bit beim 888-Prozessor), ist der Adressbus auf 2 Bit erweitert, um einen (schon im Vergleich zum 885) vergrößerten Adressierungsbereich bereitstellen zu können. Der maximale physikalische Adressraum beträgt 1 MByte. Dazu gibt es einen speziellen Adressraum für Ein-/Ausgabekanäle, der 64 KByte groß ist. 2

3 Die gemultiplexte Auslegung von Daten- und Adressbus bewirkt, dass der 886 mit einem 4- poligen DIL (Dual in-line) Gehäuse auskommt. Ohne die Multiplexerei wäre ein 64-polige Gehäuse notwendig gewesen. Im Gegensatz zum 88 und zum 885 ist der Befehlssatz erweitert und umfasst auch 8-/16-Bit- Multiplikationsbefehle und Divisionsbefehle sowie Befehle, die auf Zeichenketten (Strings wirken). Das Interrupt-System des 886 umfasst 2 Interrupt-Eingänge: NMI (nicht maskierbar) und INTR (Software-maskierbar). Maximal können bis zu 256 Interrupt-Routinen definiert werden, die an fast jeder Stelle im Adressraum stehen können. Implementiert wurde der Schaltkreis zunächst in nmos-technologie mit einer Komplexität von etwa 3 Transistoren. Später wurden auch CMOS-Versionen verfügbar. Vom 886 / 888 existierten Versionen mit Taktfrequenzen von 5, 8 und 1 MHz.. Damit war als kürzester möglicher Befehlszyklus (2 Takte) eine Zeit von,2 Mikrosekunden möglich. Gegenüber dem 885 ist dieser Prozessor für vergleichbare Aufgaben etwa 3- bis 5-mal schneller gewesen, der 888 war nur 2-3 mal schneller. Für den heutigen PC-Freak fast unvorstellbar ist die Beschränkung auf den 1 MBit-Adressraum und die Notwendigkeit, eine direkte physikalische Adressierung durchzuführen Der 886 / 888-Prozessor: Ausgewählte Eigenschaften Es ist an dieser Stelle nicht sinnvoll, den 886 / 888 in allen Details darzustellen. Dazu ist seine praktische Bedeutung heute zu gering. Er hat aber einige Eigenschaften, welche sich im Sinne von "Abwärtskompatibilität" selbst noch bei Pentium-Prozessoren finden, die ja im 16-Bitkompatibilitätsmodus eigentlich wie schnelle 886er Prozessoren arbeiten. Das parallele Arbeiten der Ausführungseinheit und der Bus-Interface-Einheit ist fast schon ein Schritt zum Pipelining. Die nebenläufige Operation der Buseinheit, dann, wenn kein anderer Speicherzugriff notwendig ist, schon mal vorab Befehle zu holen und zwischenzuspeichern, wird in wesentlich verfeinerter Form bei High-End-Prozessoren ebenfalls implementiert. So wird die Befehlswarteschlange ständig aufgefüllt. Im Fall von Programmen mit Sprungbefehlen müssen dann allerdings ein oder mehrere "vorsorglich" geholte Befehle zurückgesetzt werden. In der Busschnittstelleneinheit befinden sich vier 16 Bit breite sogenannte "Segmentregister". Diese werden bei der Bildung physikalischer Speicheradressen benötigt. Einerseits hat der Prozessor 2 Bitadressen verfügbar, er kann sie aber mit den vorhandenen arithmetischen Einheiten nicht in einem Schritt bilden. Der Aufbau der realen 2-Bit-Adresse erfolgt durch die Addition einer Offsetadresse zu einer Segmentadresse. Absolute Adresse (2 Bit) = Segmentadresse + Offsetadresse Die Segmentadresse ist eine 2-Bit-Adresse, welche vom Prozessor aus dem Inhalt eines der vier Register der BIU errechnet wird. Dazu wird dessen Inhalt mit 16 multipliziert, was einem Bit-Shift im drei Stellen nach links (zum höherwertigen Bit hin) entspricht. Die Offsetadresse wird nach dieser Multiplikation addiert, wozu die BIU einen speziellen Addierer enthält. 3

4 Das Resultat ist die absolute physikalische Adresse. Die Adressberechnung geschieht also beim 886/888-Prozessor stets durch die Addition von 2 16-Bit-Adressen. 15 Offsetadresse 15 Segmentregister (16 Bit) + Addierer 19 Absolute Adresse (2 Bit) Abb. 5.2: Bildung der physikalischen Adresse aus Segmentadresse und Offsetadresse Eine Segmentadresse ist jeweils aus einer Multiplikation einer Basisadresse mit 16 entstanden, die vier niedersten Bits sind jeweils. Innerhalb eines Adressraumes von 1 MByte kann man dann 64 k verschiedene Segmentadressen unterbringen. Anders herum ergeben sich jeweils Speicherbereiche von 64 KByte Größe, die jeweils einer Segmentadresse zugeordnet sind. Einen solchen Speicherbereich von 64 KByte Größe nennt man in der Intel-Technologie ein Segment. Da der 886 über vier Segmentregister verfügt, sind zu jedem Zeitpunkt jeweils 4 Speichersegmente von jeweils 64 KByte Größe definiert. Diese Segmente können auch gleich sein oder sich überlappen. Es ist sogar möglich, ein und dieselbe physikalische Adresse durch unterschiedliche Kombinationen von Segmentadresse plus Offsetadresse darzustellen. Läuft ein Programm immer im selben Segment ab, so kann man die weitere Adressierung auf das Segment beschränken, muss sich also um die Verwaltung der Segmente nicht kümmern. Eine Folge dieser Art der Speicherverwaltung ist, dass ein Programm, das mit expliziter Speicheradressierung geschrieben wurde, auf ein beliebiges Segment umgesetzt werden kann. Eklig wird die Angelegenheit erst, wenn bei größeren Programmen mit mehreren Segmenten hantiert werden muss. Der 886/888-Prozessor enthält 14 interne 16-Bit-Register, die für den Programmierer zugreifbar sind. Davon ist ein Teil den im 88/885 verwendeten Registern äquivalent, andere Register sind völlig neu. 4

5 AX BX CX DX SP BP SI DI CS DS SS ES 8 Bit 8 Bit 16 Bit Universelle Register AH AL BH BL CH CL DH DL Zeiger- und Index-Register Segment-Register Akkumulator Basisregister Zählerregister Datenregister Stapelzeiger Basiszeiger Quellindex Zielindex Codesegment Datensegment Stacksegment Extrasegment IP FLAGS Befehlszeiger Flagregister Abb. 5.3: Registerstruktur des 886-Prozessors Die allgemeinen Register entsprechen grundsätzlich denen aus der 88-Architektur, um Programmportierungen zu erleichtern (aber 88 /885 und 886 sind nicht Maschinencodekompatibel!) Für diese Register gibt es jetzt einen jeweils 8 Bit langen oberen bzw. unteren Sektor. AX hat als Akkumulator eine bevorzugte Funktion. Einige arithmetische Operationen, z. B. die Multiplikation und die Division, sind nur über den Akku durchführbar. BX wird als Basisregister für indirekte Adressierung benutzt. CX ist das Zählerregister für Schleifen und Wiederholungsoperationen. DX wird zur Multiplikation und Division von 16-Bit-Worten verwendet. Bei indirekten I/O-Befehlen enthält dieses Register die Kanalnummer. Diese Register können sowohl in 8-Bit- als auch in 16-Bit-Breite angesprochen werden. Die speziellen Register sind dagegen aus-schließlich 16- Bit-Register. Zunächst erfordert bereits die segmentierte Speicherverwaltung eine Anzahl neuer "special purpose" Register. Der Programmierer kann für sein Maschinenprogramm den jeweils erwünschten Speicherbereich festlegen, in dem der Code stehen soll, bzw. in das Daten abgelegt und aus dem Daten geholt werden sollen. Entsprechend existiert ein Code-Segment-Register und ein Daten-Segment-Register. Der Offset für die Befehle befindet sich im Befehlsregister (IP), während der Offset für die Daten im Basisregister BX oder in einem der Indexregister SI, DI steht. Wie allgemein üblich hat auch der 886 Stack-Befehle, die allerdings nicht auf einen physikalisch vorhandenen Stack (Stapelspeicher) wirken, sondern über einen Stack-Pointer, der jeweils die Adresse der letzten Eintragung enthält, auf den gewöhnlichen RAM-Speicher. Also müssen auch Stack-Operationen der Segmentierung unterworfen werden. Das Stack-Segment-Register SS enthält die Segmentbasisadresse, die Offsetadresse ist im Stapelzeiger SP oder im Basiszeiger BP. Für spezielle Befehle, insbesondere solche auf String-Operationen, ist ein sogenanntes "Extrasegment" definiert. Dessen Basisadresse enthält das Extra-Segment-Register ES, die Offsetadresse steht im Zielindexregister DI. 5

6 Der Stapelzeiger SP (stack pointer) und der Basiszeiger SP werden auch zur indirekten Adressierung von Speicherplätzen im Stapelspeichersegment benutzt. Das Quellindexregister SI (source index) und das Zielindexregister DI (destination index) dienen zur indirekten Adressierung von Speicherplätzen für allgemeine Daten oder von Zeichenketten (strings). Der Befehlszeiger (IP, instruction pointer) entspricht dem sonst üblichen Befehlszähler. Er enthält immer die Offsetadresse des nächsten auszuführenden Befehls. Wie in Abb. 5.3 dargestellt, gibt es dedizierte Verbindungen für die Verknüpfung von jeweils 2 Registern zur Adressbildung. Fest verknüpft sind: - Befehlszeiger IP mit Code-Segment-Register CS - Stackpointer SP mit Stack-Segment-Register SS - Zielindexregister DI mit (bei String-Befehlen) Extra-Segment-Register ES. Alle anderen Zuordnungen zwischen Basisregistern und Segmentregistern können per Software modifiziert werden. Das Flag-Register besitzt 9 Zustandsbits in einem 16-Bit-Register. Für die Flags in den Bitstellen bis 7 besteht eine Kompatibilität mit dem 88 / 885. Interessant ist ferner, dass der 886 und der 888 in zwei unterschiedlichen Betriebsmodi arbeiten können: Im Minimummodus erzeugt der 886 wie gewohnt alle für den Betrieb eines "gewöhnlichen" Mikrocomputers benötigten Steuersignal selbst. Im Maximummodus dagegen werden vom Prozessor nur drei Statussignals (s, s1, s2) bereitgestellt, aus denen ein externer Bus-Controller-Baustein, z. B. der Intel 8288, alle notwendigen Steuersignale ableitet. Damit kann man den 886 wahlweise als "normalen" Mikroprozessor (wie 885 / Z8) in einem Minimalsystem betreiben, im zweiten Fall tritt für "high-end"-anwendungen ein Zugewinn an Leistung auf. Auf die Vorstellung des Befehlssatzes im Detail und der Adressierungsmöglichkeiten sowie der Interrupt-Verarbeitung wollen wir hier verzichten. Der 886 war insgesamt noch keine echte Konkurrenz zu Systemen, bei denen mehrere (bis viele) einen Super-Mini-Rechner wie die VAX 75, 78 (später VAX 86, 85, 853, 88) im Time- Sharing-Betrieb lief. Einmal war es ohne einen (wahlweise verfügbaren) Arithmetik-Coprozessor für rechenintensive Aufgaben zu langsam. Andererseits erlaubte der Rechner weder eine virtuelle Speicherverwaltung (auf der VAX Standard) noch einen Schutz verschiedener Segmente gegeneinander. Trotzdem war der 886/888-basierte PC mit MD-DOS Betriebssystem von IBM der Anfangspunkt einer stürmischen Entwicklung, ohne welche der heutige Stand der PC-Technik nicht vorstellbar ist. Ein 886/888-basiertes Mikrorechnersystem sieht durchaus unterschiedlich aus, je nachdem ob es im Minimalmodus oder im Maximalmodus betrieben wird. Wir stellen hier nur die Version vor, die sich am ehesten für den Einsatz in einem PC eignet (Abb. 5.4). 6

7 5V Standard-Speicher Standard- I / O CLK MN / MX 8284 RES Taktgenerator READYRESET 886 S S1 S2 BHE A16 - A19 AD - AD Bus Controller 8282 Adressen Latch WE OE CS A CS INTA Daten BHE * 88 Steuersignale 2 Bit-Adressbus CLK WR RD CS A CS 8286 Transceiver * chip-select-logik 16 Bit-Datenbus Abb. 5.4: 886-Mikroprozessor mit Zusatzkomponenten in Maximalkonfiguration Typische externe Komponenten sind der Taktgenerator (8284) mit nochmals separatem Quarz, der 8288 Buscontroller, das 8288 Adressen-Latch und der 8286 Transceiver-Baustein. Dazu kommen noch Standardspeicherbausteine und Standard-I/-Bausteine. Ganz grob kann man schon sehen, was auch ein High-End-Prozessor an zusätzlichem "Chip-Satz" benötigt. Ein Problem ergibt sich dadurch, dass der Speicher auch hier Byteweise organisiert ist. Deshalb wird der Gesamtspeicher physikalisch in 2 Bereiche von je 512 KByte Größe aufgeteilt. An den einen Block ist die untere Hälfte des Datenbusses (Bits bis 7) angeschlossen. Diesem Block sind alle geradzahligen Adressen zugeordnet. Er wird nur angesprochen, wenn der Wert des Adressbits gleich ist. Die obere Hälfte des Datenbusses (Bits D8 bis D15) wird dagegen an den zweiten Speicherblock angeschlossen. Er wird nur dann aktiviert, wenn das Steuersignal BHE (Bus high enable, invers aktiv) gleich ist. Die Adressleitungen A1 bis A19 führen an beide Blöcke. Der 888-Mikroprozessor hat diese Probleme nicht, da dort die 16-Bit-Datenworte stets nacheinander in 8-Bit-Scheiben übertragen werden Grundlagen zum 8286 Mikroprozessor Der Intel 8286 Prozessor wurde 1982 vorgestellt. Er stellt eine vollkommen aufwärtskompatible Weiterentwicklung des 886 dar. Allerdings hat er einen 16-Bit-Datenbus und einen 24-Bit- Adressbus, wodurch ein physikalischer Adressraum von 16 MByte adressierbar wird. Die wesentlichen Fortschritte gegenüber dem 8286-Prozessor betreffen: - eine weit höhere Arbeitsgeschwindigkeit durch Aufteilung der CPU in vier nebenläufig arbeitende Subeinheiten (im Sinne von Phasen-Pipelining) - Auslegung der Prozessorhardware für die Nutzung in einem Multi-User- bzw. Multi-Tasking- Betriebssystem. 7

8 Bezüglich der Adressierung bietet der 8286 erstmals die Fähigkeiten, die 1982 bei "großen" Rechnern gerade zum Standard geworden waren. Im sogenannten "realen" Adressmodus (real mode) ist der 8286 nichts weiter als ein schnellerer 886-Prozessor. Der Prozessor arbeitet mit realen Adressen und Speichergrößen bis zu 1 MByte. Er ist mit den 886 Objektcode-kompatibel, hat aber eine 3- bis 5-fach höhere Arbeitsgeschwindigkeit im Vergleich zum 886 bzw. zum 888 (bei gleicher CPU-Takt-frequenz). Im virtuellen Adressmodus (protected mode) ist ein physikalischer Adressraum von 16 MByte und ein virtueller (logischer) Speicher von 2 GByte möglich. Damit sollte Multi-User- und Multi-Tasking-Betrieb möglich werden. Dazu ist eine integrierte Memory Management Unit (MMU) vorhanden. Außerdem existieren Konzepte, um für solche Betriebsarten die verschiedenen Tasks und verschiedene Nutzer gegeneinander abzusichern. Für Ein- und Ausgabekanäle ist ein Adressraum von 64 KByte vorhanden. Der Befehlssatz des 8286 umfasst den des 886 vollständig, bietet aber 16 zusätzliche allgemeine Befehle, die in beiden Moden verwendet werden können. Zusätzlich existieren 16 spezielle Befehle, welche sich nur auf den Betrieb im protected mode beziehen. Der Chip besitzt eine Komplexität von ca. 13 Transistoren und wurde in einer nmos- Technologie mit 1,5 Mikrometern minimaler Strukturgröße gefertigt. Statt des 4-poligen Gehäuses wie beim 886 wird ein 68-poliges DIL-Gehäuse verwendet. Damit existieren genügend Anschlusspins, um sowohl den Datenbus (16 Bit) als auch den Adressbus (24 Bit) ohne Multiplexen direkt anzuschließen. Gefertigt werden auch CMOS-Versionen (HCMOS), die maximalen Taktfrequenzen der CPU liegen zwischen 6 MHz und 2 MHz. Adress-Einheit (AU) Steuersystem Offset- Bildung Segment- Segmentgröße Grenzen- Überprüfung Segment- Basis Bus-Eineit (BU) Adressverriegelung und -Treiber 3 decodierte einheit Befehlsdecoder (IU) Befehlswarteschlangen Befehlholen (prefetch) Bussteuerung Datenempfänger Prozessor- Erweiterungsschnittstelle A23-A BHE, M E/A PEAK, PREQ READY, HOLD S1,S, COD/INTA LOCK, HLDA Register ALU Ausführungseinheit (EU) Abb. 5.5: Aufbau des 8286-Prozessors 6 Byte Prefetch- Warteschlangen Befehls- Physische Adressbildung D15 - D Im Blockschaltbild des 8286 fällt die Aufteilung in vier eigenständige Funktionseinheiten auf: - Bus Unit - Instruction Unit - Execution Unit - Adress Unit. 8

9 Damit ist eine parallele Ausführung von Buszugriff, Befehlsdekodierung, Befehlsausführung (zumindest bei ALU-Befehlen) und Adressberechnung möglich. In anderen Begriffen arbeitet der Prozessor mit einer vierstufigen Pipeline. Es existiert je eine Warteschlange für schon decodierte Befehle vor der Ausführung und für vorsorglich geholte Befehle vor der Dekodierung. (Kleine Zwischenrechnung: 2 Byte pro Befehl nur fürs Programm, im besten Fall ein Zugriff ca. alle 4 Takte (CISC), 2 MHz Takt bedeutet: 2 Bytes mit 5 MHz Taktrate, also 1 MByte/s Speicherbandbreite. Das sind 1 ns pro Byte oder 2 ns pro 2 Byte. Nimmt man noch mal soviel Bandbreite für den Datenverkehr hinzu, so kommen wir auf etwa einen Zugriff alle 1 ns. Das schafften damals die DRAMs noch recht gut. Der 8286 hatte und brauchte keinen Cache!) Die Bus-Unit BU steuert den Datenverkehr über nach außen und insbesondere auch den Speicherzugriff, einschließlich der Erzeugung der Steuersignale. Auch das Zusammenwirken des Prozessors mit einem möglichen (z. B. arithmetischen) Coprozessor wird so gesteuert. Wenn die Buseinheit nicht aktiv "on line" beschäftigt ist, holt sie die nächsten Befehle aus dem Speicher und legt sie in der Warteschlange (6 Bytes lang) ab. Treten Sprungbefehle auf, so wird jeweils die gesamte Warteschlange gelöscht und wieder neu gefüllt. Die Befehlseinheit IU führt die Dekodierung der Befehle durch. Diese entnimmt sie aus der 6-Byte- Befehlswarteschlange. Die dekodierten Befehle werden wiederum in einer Warteschlange mit maximal drei zwischengespeicherten Befehlen abgelegt. Die Ausführungseinheit enthält das Rechenwerk mit Hardwareimplementierung von Multipli-kation und Division. Das Steuerwerk ist mikrocodiert ausgeführt, der Mikrocodespeicher hat eine Größe von 5 KBytes. Die Adresseinheit besorgt die Berechnung von Zieladressen. Die physikalischen Adressen werden aus Basisadresse, Indexanteil und Displacement-Anteil berechnet. Auch die Organisation der virtuellen Speicherverwaltung wird von hier aus durchgeführt (wenn sie nicht das Betriebssystem übernimmt). Für die Zwischenspeicherung von Adressen existieren spezielle schnelle Cache-Register. Festzuhalten ist, dass die in der Adresseinheit eine mehrfache Adressumrechnung, auch unter Berücksichtigung der beim 886 schon gesehenen Segmentierung, zwischen logischer und physikalischer Adresse notwendig ist. Man kann die Segmentierung aber auch und gerade für die Implementierung von Schutzfunktion verwenden. Im Vergleich zum 886 existiert beim 8286 nur noch der beim 886 als Maximummodus bezeichnete Betriebsmodus mit Verwendung einer externen Bus-Controller-Einheit, die von Statussignalen der CPU gesteuert wird. Mit dem Bus-Controller-Baustein erfolgt eine Übersetzung in die Steuersignale des 88 bzw. des 886. Als zusätzliche externe Komponente wird für den Prozessor der Taktgenerator Intel benötigt. Er benötigt seinerseits einen externen Quarz zur Stabilisierung der Schwingfrequenz. Er liefert an die CPU ein Taktsignal derselben Frequenz (z. B. 24 MHz), das dann im 8286 geteilt wird, dessen interner Takt beträgt dann z. B. 12 MHz. Zusätzlich erzeugt der ein für die Synchronisierung peripherer Bausteine vorgesehenes symmetrisches 12 MHz-Taktsignal, das mit dem internen Takt des Prozessors bezüglich Phase und Frequenz synchron läuft. 9

10 Der liefert zwei weitere Signale für den Mikroprozessor: Das Rückstellsignal RESET wird durch das Eingangssignal RES (aktiv low) ausgelöst und im Taktgenerator mit dem CLK-Signal synchronisiert. Das low-aktive READY-Signal dient zur Einfügung von Wartezuständen (Wait States) in einen Buszyklus. Es wird entweder durch ein synchrones (aktiv-low) SRDY-Signal oder durch asynchrones ARDY-Signal (aktiv-low) ausgelöst. Auch das READY-Signal wird mit dem Takt synchronisiert. Für den Betrieb im realen Adressmodus benutzt der 8286 dieselben Register wie der 886, jedoch wird für den protected-mode eine ganze Anzahl neuer Register benötigt. V 5 V CLK Taktgenerator RESET READY InterruptanforderungenINTR NMI HOLD HLDA LOCK BU Bus-Einheit IU Befehls-Einheit EU Ausführungs- Einheit AU Adress-Einheit 8286 BHE A-A23 D - D15 S S1 M / IO COD / INTA PEREQ PEACK BUSY ERROR zum Bus- Controller Kontrolle für Coprozessor Abb. 5.6: Pinbelegung des 8286-Mikroprozessors Die externen Anschlüsse des 8286 sind größtenteils von 886 her bekannt. Die Pins A bis A23 (Ausgänge) sind für den Adressbus vorgesehen. Die Pins D bis D15 sind für bidirektionalen Datenverkehr (16-Bit-Datenbus). Mit dem Signal BHE (aktiv-low) zeigt der Prozessor an, dass die höherwertigen 8 Leitungen des Datenbusses belegt sind. M / IO ist das Unterscheidungssignal zwischen Speicherzugriff und I/O-Zugriff. Mittels S/S1 (aktiv low, nur Ausgang) wird der Status des Prozessors nach außen angezeigt. Mit diesen Bits und M / IO, und meistens mittels des externen Bus-Controller-Bausteins werden die Steuersignale für die externen Komponenten des Computers erzeugt. M / IO S1 S Interrupt-Acknowledge 1 E / A - Kanal lesen 1 E / A - Kanal schreiben 1 HALT 1 1 Speicher lesen 1 1 Speicher schreiben 1 1 und CODE / INTA Befehl lesen Abb. 5.7a: Steuersignale des für 8286-Computer 1

11 clock S S1 M / IO Bus Controller MEM READ MEM WRITE I / O READ I / O WRITE ALE DEN DT / R INTA 88 - Steuersignale Steuersignale Abb. 5.7b: Buscontroller Mit COD / INTA ist von außen prüfbar, ob sich der Prozessor in einem Befehlseinholzyklus befindet. INTR ist der Anschluss zur externen Anforderung eines Interrupts. NMI ist die nicht maskierbare Interrupt-Anforderungsleitung HOLD fordert einen externen Zugang der Kontrolle über den Systembus an. Der Prozessor geht dazu bezüglich dieser Anschlüsse in "high impedance". HLDA ist die Bestätigung, dass der Prozessor den HOLD akzeptiert hat. LOCK (invers aktiv) ist ein Sperrsignal des Prozessors, das einen externen Buszugriff während des folgenden Buszyklus sperrt. CLK ist der Clock-Eingang (wird auf die Hälfte untersetzt). READY (invers aktiv) dient zur Einfügung von Wartezyklen in den Buszyklus durch den Prozessor. RESET bewirkt, mit Hilfe des Taktgenerators zum rechten Zeitpunkt eingefügt, ein Rücksetzen des Prozessors in den Grundzustand. Für den 8286 gibt es einen arithmetischen Coprozessor (8287), der insbesondere die Abarbeitung von Gleitkommabefehlen wesentlich beschleunigen kann.. Für die Steuerung der Zusammenarbeit zwischen Prozessor und Coprozessor werden folgende Steuersignale benötigt: PREQ Processor extension request. Fordert den 8286 zu einem Datentransfer mit dem Coprozessor auf. PEACK (invers aktiv): Damit teilt der 8286 dem Coprozessor mit, dass er zu einem Datentransfer bereit ist. BUSY (invers aktiv): Damit teilt der Coprozessor mit, dass er beschäftigt ist und keine Daten empfangen kann. ERROR (invers aktiv): Damit wird ein arithmetischer Fehler im Coprozessor angezeigt, der zu einem Interrupt führt. Der 8286-Prozessor besitzt im protected mode alle Fähigkeiten, um in einem Multi-User-/Multi- Tasking-Betriebssystem verwendet zu werden. Das war damals natürlich nicht DOS oder eine der frühen Windowsversionen, sondern das wäre OS/2 oder UNIX gewesen. Deshalb betreibt DOS den 8286 im Real-Modus Adressierung und Speicherorganisation Nach jedem RESET befindet sich der Prozessor im Real-Mode. Die Umschaltung in den protected mode erfolgt durch Setzen des ersten Bits PE (Protection Enable) im Maschinenwortstatusregister. Dazu dient ein spezieller Befehl LMSW (Load Machine Status Word). Ein Befehl, der den Prozessor vom virtuellen Modus in den realen Modus zurücksetzt, gibt es jedoch nicht. 11

12 Der 8286 unterstützt ein virtuelles Speichermodell auf der Basis von Segmenten, wie sie schon beim 886 vorkommen. Die Segmente können aber unterschiedliche Größen haben, wobei die maximale Größe 64 KByte beträgt. Die Angabe der virtuellen Adresse erfolgt durch Angabe von 2 16-Bit-Größen. Die Angabe der virtuellen Adresse eines Speicherplatzes erfolgt (vergleichbar wie beim 886) durch die Angabe von 2 16-Bit-Größen: - einer 16-Bit-Segmentkomponente, auch Segmentselektor genannt, durch die der Inhalt des Segmentregisters wiedergegeben wird - einer 16-Bit-Offsetadressierung, die sich wiederum aus drei Teilen zusammensetzen kann, dem Inhalt des Basisregisters + Inhalt des Indexregisters + einem 8/16-Bit Displacement. Wenn also eine Befehl eine direkte Adressierung durchführt, ist im virtuellen Adressraum eine einmalige Adressumwandlung mittels Offsetadresse und Segmentkomponente möglich. Es gibt aber auch eine Anzahl von Befehlen mit indirekter und indizierter Adressierung (also z. B. für Felder), und dann wird die Errechnung der physikalischen Adresse ein mindestens 2-stufiger Vorgang. Der Unterschied in der Speicherorganisation zwischen Real-Modus und Protected Modus besteht in der Interpretation des Segmentselektors. Im 886-Modus gibt die Segmentkomponente direkt die physikalische Segmentbasisadresse an. Der Segmentselektor im Protected Mode hat dagegen eine völlig andere Bedeutung. virtuelle Adresse 15 Segment-Selektor Offset-Adresse 13-Bit-Index TI RPL 16 Bit requested privilege level Tabellen - Indikator TI = : globaler virtueller Speicherraum TI = 1: lokaler virtueller Speicherraum Abb. 5.8: Virtuelle 16-Bit-Adresse beim 8286-Prozessor Der Segmentselektor gibt nur die Lage eines Segments im virtuellen Speicherraum an. 2 Bits des Segmentselektors, die Bits und 1 im RPL-Feld, werden nur für das Schutzkonzept benötigt und zeigen die Privilegstufe bezüglich der Schutzfunktion an. Die Bits 2-15 werden verwendet, um die Lage des Segments im virtuellen Speicherraum anzugeben. Mit diesen 14 Bit kann man 16 k verschiedene Segmente angeben, wobei jedes Segment maximal 64 KByte groß sein kann. Die maximale Größe des virtuellen Speichers beträgt 1 GByte. Der gesamte virtuelle Adressraum wird wiederum in 2 Hälften zu je 2**13 = 8192 = 8k Segmenten, den globalen und den lokalen Adressraum aufgeteilt. Ein spezielles, als Tabellenindikator bezeichnetes Bit wählt entweder den lokalen oder den globalen Adressraum aus. Mit den restlichen 13 Bit werden dann jeweils 8192 Segmente in dieser jeweiligen Hälfte definiert. Diese Aufteilung macht deshalb Sinn, weil es bei verschiedenen Anwenderprogrammen immer Programmteile gibt, die für alle Tasks gleich sind, während andere Routinen nur für spezielle Tasks und "privat" sind. Es gibt also einen globalen und einen lokalen Adressraum. 12

13 Virtueller Gesamtadressraum Task2 lokaler Adressraum Task 1 Virtueller Gesamtadressraum Task1 lokaler Adressraum Task 2 globaler Adressraum gemeinsam lokaler Adressraum Task 3 Virtueller Gesamtadressraum Task3 Abb. 5.9: Aufteilung des Adressraumes in globalen und lokalen Teil Für einen Programmierer auf dem 8286 stellt sich also ein virtueller Speicherraum von insgesamt numerierte Segmente mit je 64 KByte Länge zur Verfügung. Tatsächlich kann ein Programmierer in diesem 1 GByte-Adressraum wie beim 886 gewohnt Adressen bilden. Die Übersetzung in den 16 MByte großen realen Adressraum geschieht dann mittels der Memory- Management-Unit (MMU). Wir nehmen an, dass ein auf virtuelle Adressen ausgelegtes Programm vom Hintergrundspeicher in den Hauptspeicher geladen werden soll. Dann werden Programme in Einheiten von Segmenten aus dem virtuellen Speicher in den physikalischen Arbeitsspeicher übertragen. Die Zuweisung der physikalischen Adresse erfolgt über die MMU. Die Lage der Segmente im physikalischen Speicher wird durch sogenannte Segmentdeskriptoren beschrieben. Diese beinhalten die Anfangsadresse des Segments (Segmentbasisadresse), aber auch die Segmentlänge und Zugriffsrechte für das Segment. Damit wird das Schutzkonzept für den Protected Mode realisiert. 7 7 reserviert für 8386 (muß sein) Zugriffsrecht- Byte Segmentlänge Anfangsadresse A23 - A16 Anfangsadresse A15 - A Byte 15 Abb. 5.1: Format eines Segmentdeskriptors Für jedes Segment im physikalischen Arbeitsspeicher gibt es also einen8-byte-deskriptor, dessen Komponenten folgende Bedeutung haben: - Die 16-Bit-Länge gibt die Größe des jeweiligen Segments an, die bis zu 64 KByte groß sein kann. Durch die Definierbarkeit unterschiedlicher Segmentlänge kann eine recht dichte Packung der Segmente im Speicher erfolgen. - Die 24-Bit-Anfangsadresse gibt die absolute Adresse des Segmentanfangs im physikalischen Adressraum an. Jede beliebige physikalische Adresse kann Anfangsadresse sein. - Es existieren 2 Bytes, die beim 8286 nicht genutzt werde, aber beim 8386 benutzt werden. - Es existiert ein spezielles Zugriffsrechtbyte, das sich für die (aufwendigen) Schutzfunktionen nutzen lässt. 13

14 Die Deskriptoren sind wiederum in zwei Varianten möglich: Als Codesegmentdeskriptor und als Datensegmentdeskriptor. Darüber hinaus gibt es Systemsegmentdeskriptoren. Codesegment-Deskriptor Datensegment-Deskriptor 7 P DPL S = 1 E = 1 C R A 7 P DPL S = 1 E = ED W A Abb. 5.11: Zugriffsrechtbyte Typ Typ Die Bits im Zugriffsrechtbyte haben folgende Bedeutung: P: Präsenzbit. Es gibt an, ob sich das Segment im physikalischen Arbeitsspeicher befindet DPL: Deskriptorprivilegstufe. Diese beiden Bits geben die Privilegstufe ( bis 3) für das Segment an, wodurch die Zugriffsmöglichkeiten eingeschränkt werden können. S = 1: Kennzeichnung von Code- und Segmentdeskriptoren (im Unterschied zu Systemsegmentdeskriptoren mit S = ). A: Zugriffsbit: A = 1, wenn ein Prozessorzugriff erfolgt ist, ausnutzbar für Zugriffsstatistiken des Betriebssystems. Für die weiteren Bits im Codesegementdeskriptor gilt: E = 1: executable (ausführbar). Dieses Segment enthält ausführbare Befehle R = 1: auch lesbares Segment (execute / read) R = : nur ausführbares Segment C = 1: conforming Codesegment, passt seine Privilegstufe an die augenblickliche Privilegstufe der Task an C = : normales, nicht-conforming Codesegment. Für die weiteren Bits in den Datensegmentdeskriptoren gilt: E = : nicht ausführbar, charakterisiert das Datensegment W = 1: auch beschreibbares Datensegment (read / write) W = : nicht schreibbar (read-only) ED = 1: expansion direction, ist E = 1, so wächst das Datensegment in Richtung auf niedere Adressen (Stack-Segment), bei E = liegt ein normales. in Richtung höherer Adressen wachsendes Segment vor. Die Segmentdeskriptoren werden im Arbeitsspeicher zu zwei speziellen sogenannten Deskriptortabellen zusammengefasst. Die Zweiteilung des virtuellen Speichers in globalen und lokalen Speicher wird auch physikalischen Speicher beibehalten. Für die globalen Speichersegmente existiert eine sogenannte globale Deskriptortabelle (GDT), für die privaten Segmente existiert eine lokale Deskriptortabelle (LDT). In jeder der beiden Deskriptortabellen befinden sich maximal 2**13 = Deskriptoren. Mit einer Länge von 8 Byte für jeden Deskriptor kann jede Deskriptortabelle maximal 64 KByte lang sein, was wiederum einer vollen Segmentlänge entspricht. Während einer Programmausführung werden die beiden Deskriptortabellen ständig von der MMU und dem Betriebssystem überwacht und auf dem aktuellen Stand gehalten. Wichtig ist, dass bei einem über Segmente organisierten virtuellen Betriebssystem die CPU bei jeder Adress-bildung in den Deskriptortabellen "nachschlagen" muss, was natürlich einen nicht unerheblichen Aufwand bedeutet. Andererseits bedeutet die Zuordnung spezieller Speichersegmente zu jeweiligen Programmen und Nutzern, dass nun ein Schutz gegen unbefugten oder zerstörenden Datenzugriff möglich ist. 14

15 Will die CPU ein Datum oder einen Befehl aus dem Hauptspeicher holen, so ist dazu die reale physikalische Adresse zu ermitteln. Den Berechnungsvorgang für die Adresse zeigt Abb virtuelle Adresse Selektor Offset Segmentregister Index Idex *8 TI GDT oder LDT Deskriptortabelle Segmentdeskriptor + physikalische Adresse Zielsegment Segmentlänge Segmentanfang gesuchter Sp.-Platz physikalischer Speicher Tabellen- Anfang physikalischer Speicher Bit 7 Bit Abb. 5.12: Bestimmung der physikalischen Adresse Eine vom Programm beschriebene virtuelle Adresse besteht zunächst aus zwei Anteilen, dem 16-Bit-Segmentselektor und der 16-Bit-Offset-Adresse. Mit den vier im Prozessor vorhandenen 16-Bit-Segmentregistern (CS, DS, ES, SS, wie beim 886) sind gleichzeitig vier verschiedene Segmente adressierbar. Der Selektoranteil einer virtuellen Adresse wird in eins der vier Segmentregister geladen und kann damit für die Berechnung einer physikalischen Adresse benutzt werden. Über diesen Selektoranteil wird zunächst der zuständige Segmentdeskriptor in einer der beiden Deskriptortabellen gefunden. Einmal ist damit dann die Anfangsadresse des jeweiligen Segments bekannt, außerdem aber können auch die Zugriffsrechte abgefragt werden. Die endgültige physikalische Adresse erhält man dann dadurch, dass auf die Segmentanfangsadresse die Offsetadresse aufaddiert wird. Dies ist zwar eine eindeutige Methode, an die richtige Speicherstelle korrekt und ohne Verletzung irgendwelcher Schutzvorschriften zu gelangen, aber die Rechnerei dazu ist eher etwas aufwendig, wenn man zwecks Suchens einer Speicherzelle stets den Segmentselektor im Speicher holen muss. Der 8268 hat deshalb ein internes Cache-Register für die Segmentverwaltung. Jedesmal dann, wenn ein Segmentregister mit einem neuen Segmentselektor geladen wird, holt sich der Prozessor den kompletten Inhalt des dazugehörigen Segmentdeskriptors in dieses Cache-Register. Cache-Register dieser Art sind "verborgen" und normalerweise für den Programmierer nicht zugreifbar. Damit spielt sich die komplette Adressberechnung (so lange man in einem Segment bleibt) in der Adresseinheit der CPU ab, die Adressierung geschieht dann nicht wesentlich langsamer als im Real-Modus. Für die Lage der beiden Deskriptortabellen im physikalischen Arbeitsspeicher muss man noch die Anfangsadressen der GDT (global descriptor table) und der LDT (local descriptor table) kennen. Speziell für die Bereitstellung dieser Anfangsadressen existieren 2 Register (GDTR und LDTR), die bei Bedarf vom Betriebssystem geladen werden. Das GDTR ist ein 4-Bit-Register, das direkt die 24-Bit-Anfangsadresse und die 16-Bit-Länge dieser Tabelle enthält. Die LDTR ist dagegen nur 16-Bit-Register, das einen 16-Bit-Selektor enthält. Der LDT-Selektor weist in die globale Deskriptortabelle und wählt dort mit seiner Indexziffer den Deskriptor für die aktuelle lokale Deskriptortabelle aus. 15

16 Die globale Deskriptortabelle enthält also Deskriptoren, die nicht (wie normal) auf einzelne Segmente hinweisen, sondern auf lokale Deskriptortabellen. Diese heißen LDT-Deskriptoren. Dies ist ein Typ der vorab erwähnten Systemsegmentdeskriptoren, es existieren noch zwei weitere Typen, welche sogenannte Task-Status-Segmente beschreiben. 7 Zugriffsrecht-Byte P DPL S Anfangsadresse A15 - A 7 reserviert für 8386 (muß sein) Anfangsadresse A23 - A16 Segmentlänge Byte 15 Zugriffsrecht-Byte P DPL x x S Typ = 1 Abb. 5.13: LDT-Deskriptor und Zugriffsbyte Genau wie die aktuellen Segmentdeskriptoren wird auch der aktuelle LDT-Deskriptor in einem Cache-Register in der CPU automatisch gespeichert. Immer dann, wenn das LDTR-Register neu geladen wird, wird auch zugleich der Inhalt des zugehörigen LDT-Deskriptors (wie Länge, Anfangsadresse, Zugriffsrechte) in das 48 Bit breite Cache-Register geladen. Für das Laden der beiden Register GDTR und LDTR existieren zwei spezielle Befehle (LGDT und LLDT). Diese Befehle können nur von privilegierten Programmen der Stufe, dazu gehört insbesondere das Betriebssystem, gestartet werden. Sie stehen auf der Ebene der Anwendersoftware nicht zur Verfügung. CS DS ES SS Selektor Index TI Zugriff Anfang Länge Cache - Teil Laden durch Befehl Anfang Länge GDTR Laden bei Initialisierung Selektor Zugriff Anfang Länge LDTR Index Cache-Teil Tab.- Ende Virtuelle Adresse Segment-Selektor Offset Index TI = GDT reserviert Zugriff Anfang LDT- Deskr. Anfang Länge Tab.- Ende LDT reserviert Zugriff Anfang Anfang Länge Segmentende Zielsegment gesuchter Platz Laden bei Initialisierung oder bei Task-Wechsel (Grau: CPU-Register) Tabel.- Anfang Speicher Tabellenanfang Speicher Segment-. anfang Abb. 5.14: Komplettes Schema der Adressbildung 16

17 Wird ein Prozessor im Multi-Tasking-Betrieb gefahren, so besitzt jede Task ihre eigene Deskriptortabelle im physikalischen Speicher und entsprechend einen LDT-Deskriptor im globalen Speicherraum. Wie andere Dateien kann natürlich eine solche Tabelle vorübergehend auch auf die Platte ausgelagert sein. Wenn das Betriebssystem einen Wechsel zwischen mehreren Tasks organisiert, so wird das LDT- Register mit dem zugehörigen neuen LDT-Selektor geladen. Dieser Selektor bestimmt dann die Adresse des LDT-Deskriptors, welcher die Anfangsadresse der neuen lokalen Deskriptortabelle enthält. Die globale Deskriptortabelle im Arbeitsspeicher wird durch das Betriebssystem gleich beim Start- Up des Rechners festgelegt. Diese Art der Speicherorganisation für die virtuelle Adressverwaltung wurde beim 8286 eingeführt und bei den nachfolgenden Intel-Prozessoren (8386, 8486, Pentium) im wesentlichen beibehalten. Sie wird von DOS nicht unterstützt, aber bildet die Grundlage für Microsoft WINDOWS. In dieser Form ist dann ein Rechnerbetrieb mit Multi-User- und Multi-Tasking-Betrieb möglich. Allerdings nutzt UNIX die Segment-basierte Speicherorganisation nicht. Die auf dem Konzept von Seiten (pages) basierende Speicherorganisation, wie sie zu UNIX passt und auch viel besser zu Speichern mit Caches passt, ist erst ab dem 8386-Prozessor implementiert. Zusammenfassend seien hier noch mal die im 8286 vorkommenden Despriptoren dargestellt. Segmentdeskriptoren beschreiben unmittelbar die Lage eines Segmentes (Daten oder Code) im physikalischen Speicherraum durch die Angabe der 24-Bit-Anfangsadresse und der 16-Bit-Länge des Segmentes. Format eines Segment - Deskriptors Format eines Gate-Deskriptors reserviert für 8386 reserviert für 8386 (muß sein) 8 (muß sein) 8 Zugriffsrecht-Byte Anfangsadresse P DPL S T y p A23 - A16 6 Zugriffsrecht-Byte Anfangsadresse P DPL 1 T y p A23 - A16 6 Anfangsadresse A15 - A 4 Segment-Selektor T I 4 Segmentlänge 2 Offset Abb. 5.15: Segementdeskriptor und Gate-Deskriptor Gate-Deskriptoren dagegen bestimmen indirekt, mit Hilfe eines "Gates" (was hier kein logisches Gatter, sondern eine SW-Funktion ist) eine Einsprungadresse in eine Programmroutine. Das "Gate" enthält den Segmentselektor und den Offset dieser Einsprungadresse. Die Adressierung geht dann ganz normal vor sich: Der Segmentselektor wählt aus einer Deskriptortabelle den passenden Codesegmentdeskriptor aus, auf dessen Basisadresse der Offset addiert wird. 17

18 Segment-Deskriptoren Gate-Deskriptoren Codesegment-Deskriptor Datensegment-Deskriptor Call-Gate-Deskriptor (Typ ) Task-Gate-Deskriptor (Typ 1) LDT-Deskriptor TSS-Deskriptor "Systemsegment- Deskriptoren" Interrupt-Gate-Deskriptor (Typ 1) Trap-Gate-Deskriptor (Typ 11) Abb. 5.16: Schema der Deskriptortypen Eine Übersicht über die insgesamt vorkommenden Typen von Deskriptoren dieser beiden Haupttypen gibt Abb Wir werden noch sehen, dass für die Implementierung von Schutzfunktionen und für die Interrupt-Bearbeitung noch einige weitere Typen notwendig sind. Uff.!! Schutzfunktionen Die Intel-Prozessoren ab dem 8286 sind geradezu berühmt dafür, dass ein sehr aufwendiges Konzept für den Schutz der unterschiedlichen Speicherbereiche gegen unbefugten und unbeabsichtigten Zugriff implementiert ist. Dies gilt natürlich wieder nur für den Protected Mode. Im Real-Mode sind alle Speicherbereiche ungeschützt, man kann also nach Belieben alle wichtigen Daten verfälschen! Das Schutzkonzept im Protected Mode leistet folgende Funktionen: - Automatische Überprüfung jedes Speicherzugriffs auf Verträglichkeit - Isolierung von Speicherbereichen, die einzelnen Tasks zugeordnet sind, beim Multi-Tasking- Betrieb gegeneinander, - Schutz der Betriebssystemsoftware vor dem Anwenderprogramm. Durch die HW-seitige Implementierung sind diese Funktionen für den Entwickler von Betriebssystemen zugreifbar vorhanden, sie müssen nur aufgerufen werden, verursachen aber im Vergleich zu SW-basierten Techniken nur einen minimalen Mehraufwand an Codelaufzeit. Die Verletzung des Schutzkonzepts während der Laufzeit führt "Ausnahmeunterbrechungen", die sicher jeder Windowsanwender mehr oder weniger kennt. Die Grundlage für die Implementierung der Schutzfunktionen bildet natürlich die Segmentierung. Jedes Segment im Arbeitsspeicher ist durch den Segmentdeskriptor mit Schutzmöglichkeiten versehen. Diese können betreffen: - die Segmentlänge: Es wird geprüft, ob ein anzusprechender Speicherplatz überhaupt im Segment liegt. - das Präsenzbit P im Byte für das Zugriffsrecht: Ist das angesprochene Segment im Arbeitsspeicher vorhanden? - der Segmenttyp im Byte für das Zugriffsrecht: Das angesprochene Segment kann ein Codesegment, ein Datensegmant, oder ein Stack-Segment sein. Es kann vom Typ Execute-Only, Read-Only, Execute-Read oder Read-Write sein. 18

19 Eine weitere nicht-triviale Schutzfunktion ist selbstverständlich durch die Isolierung verschiedener Segmente, die zu unterschiedlichen Tasks gehören, gegeneinander gegeben. Jede Task besitzt ihre eigene lokale Deskriptortabelle. Für eine Quantisierung der Zugriffsrechte wurden vier Stufen eingeführt. Privileg Betriebssystem-Kern: kritische Prozeduren und Daten 1 Betriebssystem-Service-Routinen 2 Anwenderspezifische BS-Erweiterungen 3 Anwenderprogramme Abb. 5.17: Privilegebenen in der 8286-Architektur Jedes Code- und Datensegment besitzt eine eigene eindeutige Privilegebene. Allerdings kann ja eine Task auf eine Reihe von Segmenten zugreifen, die durchaus unter-schiedliche Ebenen der Privilegierung haben können. Um den Ablauf hier zu organisieren, existieren einige Grundregeln: Regel 1: Regel 2: Regel 3: generell: Wenn man sich innerhalb einer Task auf der gleichen Privilegstufe bewegt, so ist ein unbeschränkter direkter Zugriff auf Code- und Datensegmente möglich. Datenzugriff: Auf Daten kann ein Programm nur dann zugreifen, wenn die Privilegstufe eines aufgerufenen Datensegments gleich oder niedriger ist als die Stufe des zugreifenden Programms. Auf Datensegmente mit höherer Privilegstufe kann niemals zugegriffen werden. Codezugriff: Zwischen Codesegmenten mit unterschiedlichem Level darf im allge-meinen nicht unkontrolliert gewechselt werden. hoch DS CS C = CS C =1 CS CS BS-Kern 1 DS CS C = CS C =1 CS Gate BS-Service- Routinen 2 3 niedig DS DS CS CS-Zugriff auf Datensegmente CS JMP CS CALL CS CS-Zugriff auf Code- Segmente (mit conforming Bit) CS call Gate call Gate CS-Zugriff auf Code-Segmente via Call Gates BS- Erweiterungen Anwender- Programme DS Daten-Segment CS Code-Segment Gate Call- Gate Abb. 5.18: Zugriffsmöglichkeiten von einem Codesegment aus 19

20 a. Ein direktes Springen von einem Codesegment in ein anders ist nur bei gleicher Stufe erlaubt. Dazu wird ein JUMP-far-Befehl oder CALL-far-Befehl verwendet. b. Auf ein Codesegment mit niedrigerer Privilegstufe darf niemals zugegriffen werden. Dies dient dem Schutz qualitativ "hoher" Software (z. B. Betriebssystem) vor weniger erprobtem qualitativ "niedrigerem" Anwendercode. c. In ein Codesegment mit höherer Qualitätsstufe darf nur im Ausnahmefall direkt gesprungen werden, nämlich dann, wenn das höherwertige Segment ein "conforming"-segment ist, das eine Anpassung der Priviligierungsebenen unterstützt. Dort ist das C-Bit auf 1 gesetzt. d. Im Normalfall, also aus einem nicht-conforming Segment (C = ) dürfen nur ausgesuchte Unterprogramme (Routinen) mit höherer Privilegstufe aufgerufen werden, und dies nur unter der "Kontrolle" eines sogenannten Call-Gates. Das Call-Gate beinhaltet die feste Einsprungadresse in die Unterroutine. Dazu existieren in den Deskriptortabellen GDT und LDT sogenannte Call-Gate-Deskriptoren. Diese sehen wieder aus wie Segmentdeskriptoren, aber die einzelnen Bytes haben eine andere Bedeutung. Man kann übrigens diese Schutzfunktionen auch auf Ein-/Ausgabe-Operationen anwenden Interrupts Ein weiterer Quasi-Segmentdeskriptor existiert für Interrupts. Im Protected-Mode sind für die Abarbeitung von Interrupts bis zu 256 verschiedene Interrupt- Routinen aufrufbar, deren Startadressen irgendwo im virtuellen Speicherraum befinden können. Für das Auffinden der Startadressen existiert eine Start-Adressen-Tafel (Interrupt description Table, IDT). Die Lage dieser Tabelle im physikalischen Speicher wird durch das "Interrupt Description Table Register" (IDTR) angegeben. Dies ist ein 4-Bit-Register, das die physikalische Anfangsadresse und die Länge der IDT-Tabelle enthält. Dieses Register kann nur durch einen speziellen Befehl in der höchsten Privilegstufe geladen werden. Im Gegensatz zum 886, bei dem die Angabe von Startadressen für die Interrupt-Bearbeitung direkt erfolgt, werden die Startadressen im Protected Mode indirekt über Gates angegeben. Dazu existieren spezielle Interrupt-Gate-Deskriptoren. Es existiert eine sogenannte "Interrupt-Deskriptor-Tabelle", welche neben anderen Informationen für jeden einzelnen definierten Interrupt auch die Startadresse enthält. Die einzelnen Interrupts sind durch Kennzahlen charakterisiert, und jeder Kennzahl ist ein Interrupt-Deskriptor in der Deskriptortabelle zugeordnet. 7 7 reserviert für 8386 (muß sein) nicht verwendet Segment-Selektor der Startadresse TI Offset der Startadresse Zugriffsrecht-Byte P DPL 1 1 T xx Byte 15 T = : Interrupt-Gate T = 1: Trap - Gate Abb. 5.19: Format eines Interrupt-Gate-Deskriptors 2

21 Für den Programmablauf im Protected Mode haben wir schon erwähnt, dass der Ablauf eines Programms innerhalb einer speziellen Task erfolgt. Eine solche Task ist eine vom Nutzer über das Betriebssystem gestartete Prozedur. Natürlich sind einzelne Tasks bezüglich des Speicherzugriffs gegeneinander abgesichert oder geschützt. Natürlich ist dieses Schema auch bei der Interrupt- Bearbeitung zu beachten. Man kann deshalb Interrupts definieren, bei denen - eine Interrupt-Bearbeitung nicht innerhalb der laufenden Task möglich ist. Dann muss der Interrupt einen Task-Wechsel auslösen. Der zugehörige Eintrag in die Interrupt- Deskriptor-Tabelle enthält ein sogenanntes Task-Gate, mit dessen Hilfe ein Übergang auf eine andere Task erfolgt. - eine Interrupt-Bearbeitung innerhalb der laufenden Task möglich ist. In diesem Fall enthält der Eintrag in die IDT-Tabelle ein "Interrupt-Gate" oder Trap-Gate", das die virtuelle Startadresse der Interrupt-Routine enthält. Im ersten Fall muss eine Art "Tor" zwischen zwei Tasks geschaffen werden, was relativ kompliziert ist. Deshalb betrachten wir zunächst den einfacheren zweiten Fall. Wenn der Interrupt auftritt, so folgt der Sprung in der in derselben Task im Speicher (oder mindestens im Adressraum, wenn der Teil auch gerade auf die Platte ausgelagert sein mag) vorhandene Interrupt-Startadressen-Tabelle. Die Startadresse für die Routine zur Abarbeitung des jeweiligen Interrupts steht im jeweiligen Interrupt-Gate-Deskriptor. Dieser enthält den Segmentselektor und den Offset der Startadresse für die Interrupt-Routine, also die virtuelle Startadresse. Eigentlich könnte man jetzt direkt mit Suchen der physikalischen Adresse für Start des Interrupt- Verarbeiungsprogramms beginnen. Weit gefehlt! Der Deskriptor enthält noch ein wichtiges Steuerbit. Für T = (Interrupt Gate) liegt ein gewöhnlicher Interrupt vor. Das bedeutet, für die Zeit der Interrupt-Verarbeitung ist das IF-Flag, welches die Annahme eines weiteren Interrupts erst möglich macht, auf gesetzt ist. Ein Abbruch zugunsten eines weiteren, vielleicht noch dringenderen Interrupts ist nicht möglich. Erst nach erfolgter Abarbeitung wird IF = 1 gesetzt und weitere Interrupts sind möglich. Für den Fall T = (Trap Gate) bleibt IF = 1, die aufgerufene Interrupt-Routine kann also beliebig selbst unterbrochen werden. Im Gate-Deskriptor gibt es die Angabe einer Privilegstufe DPL., das den Zugriff auf eine Interrupt- Routine steuert. Ein Interrupt-Befehl kann nur von einem Programm aus erfolgen, das im Vergleich zum Interrupt-Gate gleich hoch oder höher priviligiert ist. Der Offset des Gate-Deskriptors und der Segmentselektor bestimmen indirekt die Startadresse der Interrupt-Routine. Der Selektor wählt ein Codesegment in der GDT oder der LDT-Tabelle aus. Auf die Anfangsadresse des gefundenen Segments wird dann die Offsetadresse aufaddiert. Erst dann ist die physikalische Startadresse vorhanden. 21

Die Mikroprogrammebene eines Rechners

Die Mikroprogrammebene eines Rechners Die Mikroprogrammebene eines Rechners Das Abarbeiten eines Arbeitszyklus eines einzelnen Befehls besteht selbst wieder aus verschiedenen Schritten, z.b. Befehl holen Befehl dekodieren Operanden holen etc.

Mehr

2.2 Rechnerorganisation: Aufbau und Funktionsweise

2.2 Rechnerorganisation: Aufbau und Funktionsweise 2.2 Rechnerorganisation: Aufbau und Funktionsweise é Hardware, Software und Firmware é grober Aufbau eines von-neumann-rechners é Arbeitsspeicher, Speicherzelle, Bit, Byte é Prozessor é grobe Arbeitsweise

Mehr

Teil VIII Von Neumann Rechner 1

Teil VIII Von Neumann Rechner 1 Teil VIII Von Neumann Rechner 1 Grundlegende Architektur Zentraleinheit: Central Processing Unit (CPU) Ausführen von Befehlen und Ablaufsteuerung Speicher: Memory Ablage von Daten und Programmen Read Only

Mehr

Realisierung: virtueller Prozessor: der reale Prozessor wird periodisch dem Programm zugewiesen Im Prozessor: durch Task-Status Segment (TSS)

Realisierung: virtueller Prozessor: der reale Prozessor wird periodisch dem Programm zugewiesen Im Prozessor: durch Task-Status Segment (TSS) 1.2 Multitasking Damit ein Computer mehrere Aufgaben gleichzeitig erledigen kann, die jede für sich oder die auch gemeinsam arbeiten, z.b. Daten lesen Berechnungen ausführen Netzwerkkontakt abarbeiten

Mehr

Virtueller Speicher. SS 2012 Grundlagen der Rechnerarchitektur Speicher 44

Virtueller Speicher. SS 2012 Grundlagen der Rechnerarchitektur Speicher 44 Virtueller Speicher SS 2012 Grundlagen der Rechnerarchitektur Speicher 44 Die Idee Virtuelle Adressen Prozess 1 Speicherblock 0 Speicherblock 1 Speicherblock 2 Speicherblock 3 Speicherblock 4 Speicherblock

Mehr

Klausur zur Mikroprozessortechnik

Klausur zur Mikroprozessortechnik Prof. Dr. K. Wüst WS 2001 FH Gießen Friedberg, FB MNI Studiengang Informatik Klausur zur Mikroprozessortechnik Nachname: Vorname: Matrikelnummer: 7.3.2001 Punkteverteilung Aufgabe Punkte erreicht 1 3 2

Mehr

Kap 4. 4 Die Mikroprogrammebene eines Rechners

Kap 4. 4 Die Mikroprogrammebene eines Rechners 4 Die Mikroprogrammebene eines Rechners Das Abarbeiten eines Arbeitszyklus eines einzelnen Befehls besteht selbst wieder aus verschiedenen Schritten (Befehl holen, Befehl dekodieren, Operanden holen etc.).

Mehr

Einführung in die technische Informatik

Einführung in die technische Informatik Einführung in die technische Informatik Christopher Kruegel chris@auto.tuwien.ac.at http://www.auto.tuwien.ac.at/~chris Betriebssysteme Aufgaben Management von Ressourcen Präsentation einer einheitlichen

Mehr

5.6 Segmentierter virtueller Speicher

5.6 Segmentierter virtueller Speicher 5.6 Segmentierter virtueller Speicher Zur Erinnerung: Virtueller Speicher ermöglicht effiziente und komfortable Nutzung des realen Speichers; Sharing ist problematisch. Segmentierung erleichtert Sharing,

Mehr

Rechner Architektur. Martin Gülck

Rechner Architektur. Martin Gülck Rechner Architektur Martin Gülck Grundlage Jeder Rechner wird aus einzelnen Komponenten zusammengesetzt Sie werden auf dem Mainboard zusammengefügt (dt.: Hauptplatine) Mainboard wird auch als Motherboard

Mehr

Rechnernutzung in der Physik. Betriebssysteme

Rechnernutzung in der Physik. Betriebssysteme Rechnernutzung in der Physik Betriebssysteme 1 Betriebssysteme Anwendungsprogramme Betriebssystem Treiber BIOS Direkter Zugriff von Anwenderprogrammen auf Hardware nur in Ausnahmefällen sinnvoll / möglich:

Mehr

L3. Datenmanipulation

L3. Datenmanipulation L Datenmanipulation Aufbau eines Computers Prozessor, Arbeitsspeicher und system Maschinensprachen und Maschinenbefehle Beispiel einer vereinfachten Maschinensprache Ausführung des Programms und Befehlszyklus

Mehr

Mikroprozessor als universeller digitaler Baustein

Mikroprozessor als universeller digitaler Baustein 2. Mikroprozessor 2.1 Allgemeines Mikroprozessor als universeller digitaler Baustein Die zunehmende Integrationsdichte von elektronischen Schaltkreisen führt zwangsläufige zur Entwicklung eines universellen

Mehr

Vorlesung "Struktur von Mikrorechnern" (CBS)

Vorlesung Struktur von Mikrorechnern (CBS) 5 Entwicklung der Prozessorarchitekturen 5.1 Intel Prozessorenreihe i86 5.1.1 8088 und 8086 Prozessoren 5.1.3 80386 Prozessoren 5.1.5 Pentium Prozessoren 5.2 Vergleich von Prozessorarchitekturen unterschiedlicher

Mehr

Mikroprozessor bzw. CPU (Central Processing. - Steuerwerk (Control Unit) - Rechenwerk bzw. ALU (Arithmetic Logic Unit)

Mikroprozessor bzw. CPU (Central Processing. - Steuerwerk (Control Unit) - Rechenwerk bzw. ALU (Arithmetic Logic Unit) Der Demo-Computer besitzt einen 4Bit-Mikroprozessor. Er kann entsprechend Wörter mit einer Breite von 4 Bits in einem Schritt verarbeiten. Die einzelnen Schritte der Abarbeitung werden durch Lampen visualisiert.

Mehr

a. Flipflop (taktflankengesteuert) Wdh. Signalverläufe beim D-FF

a. Flipflop (taktflankengesteuert) Wdh. Signalverläufe beim D-FF ITS Teil 2: Rechnerarchitektur 1. Grundschaltungen der Digitaltechnik a. Flipflop (taktflankengesteuert) Wdh. Signalverläufe beim D-FF b. Zähler (Bsp. 4-Bit Zähler) - Eingang count wird zum Aktivieren

Mehr

Kapitel VI. Speicherverwaltung. Speicherverwaltung

Kapitel VI. Speicherverwaltung. Speicherverwaltung Kapitel VI Speicherverwaltung 1 Speicherverwaltung Computer exekutiert Programme (mit Daten) im Hauptspeicher. Hauptspeicher: Großes Array von Wörtern (1 oder mehrere Bytes) Jedes Wort hat eine eigene

Mehr

Technische Informatik. Der VON NEUMANN Computer

Technische Informatik. Der VON NEUMANN Computer Technische Informatik Der VON NEUMANN Computer Inhalt! Prinzipieller Aufbau! Schaltkreise! Schaltnetze und Schaltwerke! Rechenwerk! Arbeitsspeicher! Steuerwerk - Programmausführung! Periphere Geräte! Abstraktionsstufen

Mehr

3 Alles begann mit dem Urvater 8086

3 Alles begann mit dem Urvater 8086 3 Alles begann mit dem Urvater 8086 Der 8086 wurde als Nachfolger des erfolgreichen 8-Bit-Prozessors 8080 vorgestellt und war mit seiner 16-Bit-Architektur 1978 dieselbe Sensation wie fast zehn Jahre später

Mehr

INFORMATIK Oberstufe. Funktionsweise eines Rechners

INFORMATIK Oberstufe. Funktionsweise eines Rechners INFORMATIK Oberstufe Funktionsweise eines Rechners Lehrplan Inf 12.3 (ca. 17 Std.): Grundlegende Kenntnisse über den Aufbau eines Rechners und seiner prinzipiellen Funktionsweise helfen den Schülern, den

Mehr

Rechnerstrukturen. 6. System. Systemebene. Rechnerstrukturen Wintersemester 2002/03. (c) Peter Sturm, Universität Trier 1. Prozessor.

Rechnerstrukturen. 6. System. Systemebene. Rechnerstrukturen Wintersemester 2002/03. (c) Peter Sturm, Universität Trier 1. Prozessor. Rechnerstrukturen 6. System Systemebene 1 (Monoprozessor) 2-n n (Multiprozessor) s L1- in der L2- ( oder Motherboard) ggf. L3- MMU Speicher Memory Controller (Refresh etc.) E/A-Geräte (c) Peter Sturm,

Mehr

Das Prinzip an einem alltäglichen Beispiel

Das Prinzip an einem alltäglichen Beispiel 3.2 Pipelining Ziel: Performanzsteigerung é Prinzip der Fließbandverarbeitung é Probleme bei Fließbandverarbeitung BB TI I 3.2/1 Das Prinzip an einem alltäglichen Beispiel é Sie kommen aus dem Urlaub und

Mehr

IT für Führungskräfte. Zentraleinheiten. 11.04.2002 Gruppe 2 - CPU 1

IT für Führungskräfte. Zentraleinheiten. 11.04.2002 Gruppe 2 - CPU 1 IT für Führungskräfte Zentraleinheiten 11.04.2002 Gruppe 2 - CPU 1 CPU DAS TEAM CPU heißt Central Processing Unit! Björn Heppner (Folien 1-4, 15-20, Rollenspielpräsentation 1-4) Harald Grabner (Folien

Mehr

5 Speicherverwaltung. bs-5.1 1

5 Speicherverwaltung. bs-5.1 1 5 Speicherverwaltung bs-5.1 1 Pufferspeicher (cache) realer Speicher Primärspeicher/Arbeitsspeicher (memory) Sekundärspeicher/Hintergrundspeicher (backing store) (Tertiärspeicher/Archivspeicher) versus

Mehr

1.7 Assembler Programmierung

1.7 Assembler Programmierung 1.7 Assembler Programmierung Die nach außen sichtbare Programmierschnittstelle eines Prozessors ist der Befehlscode. Dies ist eine binäre Dateninformation, die vom Prozessor Byte für Byte abgearbeitet

Mehr

C. BABBAGE (1792 1871): Programmgesteuerter (mechanischer) Rechner

C. BABBAGE (1792 1871): Programmgesteuerter (mechanischer) Rechner Von-Neumann-Rechner (John von Neumann : 1903-1957) C. BABBAGE (1792 1871): Programmgesteuerter (mechanischer) Rechner Quelle: http://www.cs.uakron.edu/~margush/465/01_intro.html Analytical Engine - Calculate

Mehr

3.0 8051 Assembler und Hochsprachen

3.0 8051 Assembler und Hochsprachen 3.0 8051 Assembler und Hochsprachen Eine kurze Übersicht zum Ablauf einer Programmierung eines 8051 Mikrocontrollers. 3.1 Der 8051 Maschinencode Grundsätzlich akzeptiert ein 8051 Mikrocontroller als Befehle

Mehr

Betriebssysteme. Dipl.-Ing.(FH) Volker Schepper

Betriebssysteme. Dipl.-Ing.(FH) Volker Schepper Speicherverwaltung Real Mode Nach jedem starten eines PC befindet sich jeder x86 (8086, 80386, Pentium, AMD) CPU im sogenannten Real Mode. Datenregister (16Bit) Adressregister (20Bit) Dadurch lassen sich

Mehr

B1 Stapelspeicher (stack)

B1 Stapelspeicher (stack) B1 Stapelspeicher (stack) Arbeitsweise des LIFO-Stapelspeichers Im Kapitel "Unterprogramme" wurde schon erwähnt, dass Unterprogramme einen so genannten Stapelspeicher (Kellerspeicher, Stapel, stack) benötigen

Mehr

Name: ES2 Klausur Thema: ARM 25.6.07. Name: Punkte: Note:

Name: ES2 Klausur Thema: ARM 25.6.07. Name: Punkte: Note: Name: Punkte: Note: Hinweise für das Lösen der Aufgaben: Zeit: 95 min. Name nicht vergessen! Geben Sie alle Blätter ab. Die Reihenfolge der Aufgaben ist unabhängig vom Schwierigkeitsgrad. Erlaubte Hilfsmittel

Mehr

Kapitel 6 Speicherverwaltung Seite 1 zum Teil nach: Silberschatz&Galbin, Operating System Concepts, Addison-Wesley)

Kapitel 6 Speicherverwaltung Seite 1 zum Teil nach: Silberschatz&Galbin, Operating System Concepts, Addison-Wesley) Kapitel 6 Speicherverwaltung Seite 1 6 Speicherverwaltung 6.1 Hintergrund Ein Programm muß zur Ausführung in den Hauptspeicher gebracht werden und in die Prozeßstruktur eingefügt werden. Dabei ist es in

Mehr

Johann Wolfgang Goethe-Universität

Johann Wolfgang Goethe-Universität Flynn sche Klassifikation SISD (single instruction, single data stream): IS IS CU PU DS MM Mono (Mikro-)prozessoren CU: Control Unit SM: Shared Memory PU: Processor Unit IS: Instruction Stream MM: Memory

Mehr

Enterprise Computing Einführung in das Betriebssystem z/os. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth WS2012/13

Enterprise Computing Einführung in das Betriebssystem z/os. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth WS2012/13 UNIVERSITÄT LEIPZIG Enterprise Computing Einführung in das Betriebssystem z/os Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth WS2012/13 Verarbeitungsgrundlagen Teil 2 Virtual Storage el0100 copyright

Mehr

Was machen wir heute? Betriebssysteme Tutorium 2. Organisatorisches. Frage 2.1.a. Theorieblätter Abgabe. Antwort. Probleme mit OS/161?

Was machen wir heute? Betriebssysteme Tutorium 2. Organisatorisches. Frage 2.1.a. Theorieblätter Abgabe. Antwort. Probleme mit OS/161? Was machen wir heute? Betriebssysteme Tutorium 2 Philipp Kirchhofer philipp.kirchhofer@student.kit.edu http://www.stud.uni-karlsruhe.de/~uxbtt/ Lehrstuhl Systemarchitektur Universität Karlsruhe (TH) 1

Mehr

BA-Mannheim, 3. Semester IT Rechnertechnik (Hr. Glaser)

BA-Mannheim, 3. Semester IT Rechnertechnik (Hr. Glaser) Dies ist nun also die freundlicherweise von mir mitgetippte Fassung der Vorlesung Rechnertechnik (3. Semester) bei Hr. Glaser an der BA-Mannheim. Ich hoffe ihr könnt damit was anfangen. ;-) Fehler, Kritik,

Mehr

4 Speichern und Adressieren

4 Speichern und Adressieren 4 Speichern und Adressieren Schaltwerke, Register, Puffer, Paging Gedächtnis in Schaltungen Rückkopplung Schaltwerke I N P U T x 1 x 2 x n Schaltnetz y 1 y 2 y m O U T P U T Z K Speicher Z K Z! z 1 2 Flipflops

Mehr

9.0 Komplexe Schaltwerke

9.0 Komplexe Schaltwerke 9.0 Komplexe Schaltwerke Die Ziele dieses Kapitels sind: Lernen komplexe Schaltwerke mittels kleinerer, kooperierender Schaltwerke zu realisieren Verstehen wie aufgabenspezifische Mikroprozessoren funktionieren

Mehr

2. Rechnerarchitektur 2.1 einfache Computer

2. Rechnerarchitektur 2.1 einfache Computer Fakultät Informatik Institut Systemarchitektur Professur Rechnernetze WS 2012 LV Informatik-I für Verkehrsingenieure 2. Rechnerarchitektur 2.1 einfache Computer Dr. rer.nat. D. Gütter Mail: WWW: Dietbert.Guetter@tu-dresden.de

Mehr

Übersicht. Virtueller Speicher CPU-Modi Virtuelle Maschinen. ISM SS 2015 - Teil 4/ProtectionI

Übersicht. Virtueller Speicher CPU-Modi Virtuelle Maschinen. ISM SS 2015 - Teil 4/ProtectionI Übersicht Virtueller Speicher CPU-Modi Virtuelle Maschinen 2 Behandelter Bereich: Virtualisierung Syscall-Schnittstelle Ports Server Apps Server Apps Betriebssystem Protokolle Betriebssystem Medien Hardware

Mehr

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz Systeme I: Betriebssysteme Kapitel 4 Prozesse Maren Bennewitz Version 20.11.2013 1 Begrüßung Heute ist Tag der offenen Tür Willkommen allen Schülerinnen und Schülern! 2 Wdhlg.: Attributinformationen in

Mehr

Projekt für Systemprogrammierung WS 06/07

Projekt für Systemprogrammierung WS 06/07 Dienstag 30.01.2007 Projekt für Systemprogrammierung WS 06/07 Von: Hassan Bellamin E-Mail: h_bellamin@web.de Gliederung: 1. Geschichte und Definition 2. Was ist Virtualisierung? 3. Welche Virtualisierungssoftware

Mehr

Speicher Virtuelle Speicherverwaltung. Speicherverwaltung

Speicher Virtuelle Speicherverwaltung. Speicherverwaltung Speicherverwaltung Die Speicherverwaltung ist derjenige Teil eines Betriebssystems, der einen effizienten und komfortablen Zugriff auf den physikalischen Arbeitsspeicher eines Computer ermöglicht. Je nach

Mehr

Übung zu Grundlagen der Betriebssysteme. 13. Übung 22.01.2012

Übung zu Grundlagen der Betriebssysteme. 13. Übung 22.01.2012 Übung zu Grundlagen der Betriebssysteme 13. Übung 22.01.2012 Aufgabe 1 Fragmentierung Erläutern Sie den Unterschied zwischen interner und externer Fragmentierung! Als interne Fragmentierung oder Verschnitt

Mehr

Rechnerarchitektur Atmega 32. 1 Vortrag Atmega 32. Von Urs Müller und Marion Knoth. Urs Müller Seite 1 von 7

Rechnerarchitektur Atmega 32. 1 Vortrag Atmega 32. Von Urs Müller und Marion Knoth. Urs Müller Seite 1 von 7 1 Vortrag Atmega 32 Von Urs Müller und Marion Knoth Urs Müller Seite 1 von 7 Inhaltsverzeichnis 1 Vortrag Atmega 32 1 1.1 Einleitung 3 1.1.1 Hersteller ATMEL 3 1.1.2 AVR - Mikrocontroller Familie 3 2 Übersicht

Mehr

Instruktionssatz-Architektur

Instruktionssatz-Architektur Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2005/2006 Übersicht 1 Einleitung 2 Bestandteile der ISA 3 CISC / RISC Übersicht 1 Einleitung 2 Bestandteile

Mehr

Technische Informatik 2 Speichersysteme, Teil 3

Technische Informatik 2 Speichersysteme, Teil 3 Technische Informatik 2 Speichersysteme, Teil 3 Prof. Dr. Miroslaw Malek Sommersemester 2004 www.informatik.hu-berlin.de/rok/ca Thema heute Virtueller Speicher (Fortsetzung) Translation Lookaside Buffer

Mehr

1. Übung - Einführung/Rechnerarchitektur

1. Übung - Einführung/Rechnerarchitektur 1. Übung - Einführung/Rechnerarchitektur Informatik I für Verkehrsingenieure Aufgaben inkl. Beispiellösungen 1. Aufgabe: Was ist Hard- bzw. Software? a Computermaus b Betriebssystem c Drucker d Internetbrowser

Mehr

Systemprogramme bezeichnen alle Programme, die bestimmte Aufgaben unterstützen, die unabhängig von einer konkreten Anwendung sind

Systemprogramme bezeichnen alle Programme, die bestimmte Aufgaben unterstützen, die unabhängig von einer konkreten Anwendung sind Betriebssysteme Systemprogramme bezeichnen alle Programme, die bestimmte Aufgaben unterstützen, die unabhängig von einer konkreten Anwendung sind Umfaßt z.b. auch Compiler, Interpreter und Dienstprogramme

Mehr

Technische Informatik 2 Adressierungsarten

Technische Informatik 2 Adressierungsarten Technische Informatik 2 Adressierungsarten Prof. Dr. Miroslaw Malek Sommersemester 2009 www.informatik.hu-berlin.de/rok/ca Thema heute X-Adressmaschine 0-Adressmaschine 1-Adressmaschine 2-Adressmaschine

Mehr

Paging. Einfaches Paging. Paging mit virtuellem Speicher

Paging. Einfaches Paging. Paging mit virtuellem Speicher Paging Einfaches Paging Paging mit virtuellem Speicher Einfaches Paging Wie bisher (im Gegensatz zu virtuellem Speicherkonzept): Prozesse sind entweder ganz im Speicher oder komplett ausgelagert. Im Gegensatz

Mehr

Mikrocomputertechnik. Adressierungsarten

Mikrocomputertechnik. Adressierungsarten Adressierungsarten Ein Mikroprozessor bietet meist eine Reihe von Möglichkeiten, die Operanden für eine Rechenoperation zu bestimmen. Diese Möglichkeiten bezeichnet man als Adressierungsarten. unmittelbare

Mehr

Neue Prozessor-Architekturen für Desktop-PC

Neue Prozessor-Architekturen für Desktop-PC Neue Prozessor-Architekturen für Desktop-PC Bernd Däne Technische Universität Ilmenau Fakultät I/A - Institut TTI Postfach 100565, D-98684 Ilmenau Tel. 0-3677-69-1433 bdaene@theoinf.tu-ilmenau.de http://www.theoinf.tu-ilmenau.de/ra1/

Mehr

Übungscomputer mit Prozessor 8085 - Bedienungsanleitung

Übungscomputer mit Prozessor 8085 - Bedienungsanleitung Seite 1 von 9 Pinbelegung der Steckerleisten im Übungsgerät Seite 2 von 9 Inbetriebnahme: Schalter S1, S2, und S3 in Stellung 1 (oben) schalten. Spannung 5 V anlegen. ACHTUNG auf Polarität achten. Taste

Mehr

Wie arbeiten Computer?

Wie arbeiten Computer? Autor: Ortmann, Jürgen. Titel: Wie arbeiten Computer? Quelle: Einführung in die PC-Grundlagen. München, 8. Auflage, 2003. S. 29-41. Verlag: Addison-Wesley Verlag. Die Veröffentlichung erfolgt mit freunlicher

Mehr

Daten- Bus. Steuerbus

Daten- Bus. Steuerbus 1 Grundlagen... 1 1.1 Rechnerarchitektur... 1 1.2 Takt... 2 1.3 Speicherarchitektur... 2 2 Mikroprozessor... 4 2.1 Begriffsbestimmung... 4 2.2 Geschichte... 4 2.3 Aufbau eines einfachen Mikroprozessors...

Mehr

12. Maschinennahes Programmieren

12. Maschinennahes Programmieren 12. Maschinennahes Programmieren Der Kern jedes Computers oder jeder Microcontroller-gestützten Schaltung ist ein Prozessor: in Hochleistungsservern sind es 64-Bit-Prozessoren (z.b. vom Typ Spark oder

Mehr

Ein Scan basierter Seitenangriff auf DES

Ein Scan basierter Seitenangriff auf DES Ein Scan basierter Seitenangriff auf DES Seminar Codes & Kryptographie SS04 Tobias Witteler 29.06.2004 Struktur des Vortrags 1. Einführung / Motivation 2. Struktur von DES 3. Die Attacke Begriffsklärung:

Mehr

6.6 Persistenter virtueller Speicher

6.6 Persistenter virtueller Speicher 6.6 Persistenter virtueller Speicher Idee: alle Segmente sind persistent Datei -Begriff überflüssig! Aber: Segment hat erweiterten Deskriptor. bs-6.6 1 Segment überdauert Tod des erzeugenden Prozesses,

Mehr

Der Mikrocontroller beinhaltet auf einem Chip einen kompletten Mikrocomputer, wie in Kapitel

Der Mikrocontroller beinhaltet auf einem Chip einen kompletten Mikrocomputer, wie in Kapitel 2 Der Mikrocontroller Der Mikrocontroller beinhaltet auf einem Chip einen kompletten Mikrocomputer, wie in Kapitel 1 beschrieben. Auf dem Chip sind die, ein ROM- für das Programm, ein RAM- für die variablen

Mehr

Alle Speicherplatinen können als Programm- bzw. Arbeitsspeicher

Alle Speicherplatinen können als Programm- bzw. Arbeitsspeicher -1-1. Überblick Das System.009 umfaßt programmierbare binäre Steuereinrichtungen für den industriellen Einsatz. Charakteristisch ist, daß die BOOLEschen Gleichungen, die den konkreten Steueralgorithmus

Mehr

Der 80535-Übungsrechner

Der 80535-Übungsrechner 6. Für den Test kleinerer Programmodule ohne Berücksichtigung des Echtzeitverhaltens ist der Simulator das geeignete Werkzeug. Durch die Möglichkeit der Einzelschrittausführung sind erste Tests von Programmen

Mehr

Ein- Ausgabeeinheiten

Ein- Ausgabeeinheiten Kapitel 5 - Ein- Ausgabeeinheiten Seite 121 Kapitel 5 Ein- Ausgabeeinheiten Am gemeinsamen Bus einer CPU hängt neben dem Hauptspeicher die Peripherie des Rechners: d. h. sein Massenspeicher und die Ein-

Mehr

Übersicht. UNIX-Dateisystem (ext2) Super-User unter Linux werden MSDOS: FAT16 und FAT32

Übersicht. UNIX-Dateisystem (ext2) Super-User unter Linux werden MSDOS: FAT16 und FAT32 Übersicht UNIX-Dateisystem (ext2) Super-User unter Linux werden MSDOS: FAT16 und FAT32 Die in diesem Teil vorgestellten Informationen stellen lediglich das Prinzip dar - im Detail ist alles etwas komplizierter...

Mehr

Midterm-Klausur Technische Grundlagen der Informatik

Midterm-Klausur Technische Grundlagen der Informatik Midterm-Klausur Technische Grundlagen der Informatik Prof. Dr. Arndt Bode Wintersemester 2002/2003 7. Dezember 2002 Name: Vorname: Matrikelnummer: Hörsaal: Platz: Unterschrift: Ergebnis: Aufgabe Punkte

Mehr

Brückenkurs / Computer

Brückenkurs / Computer Brückenkurs / Computer Sebastian Stabinger IIS 23 September 2013 Sebastian Stabinger (IIS) Brückenkurs / Computer 23 September 2013 1 / 20 Content 1 Allgemeines zum Studium 2 Was ist ein Computer? 3 Geschichte

Mehr

Vorlesung Rechnerarchitektur. Einführung

Vorlesung Rechnerarchitektur. Einführung Vorlesung Rechnerarchitektur Einführung Themen der Vorlesung Die Vorlesung entwickelt an Hand von zwei Beispielen wichtige Prinzipien der Prozessorarchitektur und der Speicherarchitektur: MU0 Arm Speicher

Mehr

Anbindung zum Betriebssystem (BS)

Anbindung zum Betriebssystem (BS) 5.1 Einleitung Anbindung zum Betriebssystem (BS) Aufgaben BS Schnittstelle zur Hardware Sicherstellung des Betriebs mit Peripherie Dienste erfüllen für Benutzung Rechner durch Verwaltung der Ressourcen

Mehr

Architektur Verteilter Systeme Teil 2: Prozesse und Threads

Architektur Verteilter Systeme Teil 2: Prozesse und Threads Architektur Verteilter Systeme Teil 2: Prozesse und Threads 21.10.15 1 Übersicht Prozess Thread Scheduler Time Sharing 2 Begriff Prozess und Thread I Prozess = Sequentiell ablaufendes Programm Thread =

Mehr

4.3 Hintergrundspeicher

4.3 Hintergrundspeicher 4.3 Hintergrundspeicher Registers Instr./Operands Cache Blocks Memory Pages program 1-8 bytes cache cntl 8-128 bytes OS 512-4K bytes Upper Level faster Disk Tape Files user/operator Mbytes Larger Lower

Mehr

Technische Informatik II Wintersemester 2002/03 Sommersemester 2001. Heiko Holtkamp Heiko@rvs.uni-bielefeld.de

Technische Informatik II Wintersemester 2002/03 Sommersemester 2001. Heiko Holtkamp Heiko@rvs.uni-bielefeld.de Technische Informatik II Wintersemester 2002/03 Sommersemester 2001 Heiko Holtkamp Heiko@rvs.uni-bielefeld.de Speicher ist eine wichtige Ressource, die sorgfältig verwaltet werden muss. In der Vorlesung

Mehr

Das Rechnermodell von John von Neumann

Das Rechnermodell von John von Neumann Das Rechnermodell von John von Neumann Historisches Die ersten mechanischen Rechenmaschinen wurden im 17. Jahhundert entworfen. Zu den Pionieren dieser Entwichlung zählen Wilhelm Schickard, Blaise Pascal

Mehr

Steuerungen. 4 Typen verbindungsprogrammierte Steuerung (VPS), speicherprogrammierte Steuerung (SPS), Mikrokontroller (MC) und Industrie-PCs (IPC)

Steuerungen. 4 Typen verbindungsprogrammierte Steuerung (VPS), speicherprogrammierte Steuerung (SPS), Mikrokontroller (MC) und Industrie-PCs (IPC) Steuerungen 4 Typen verbindungsprogrammierte Steuerung (VPS), speicherprogrammierte Steuerung (SPS), Mikrokontroller (MC) und Industrie-PCs (IPC) VPS - Funktion der Steuerung in der Schaltungstopologie

Mehr

Grundlagen der Rechnerarchitektur

Grundlagen der Rechnerarchitektur Grundlagen der Rechnerarchitektur Einführung Unsere erste Amtshandlung: Wir schrauben einen Rechner auf Grundlagen der Rechnerarchitektur Einführung 2 Vorlesungsinhalte Binäre Arithmetik MIPS Assembler

Mehr

Grundlagen der Rechnerarchitektur

Grundlagen der Rechnerarchitektur Grundlagen der Rechnerarchitektur ARM, x86 und ISA Prinzipien Übersicht Rudimente des ARM Assemblers Rudimente des Intel Assemblers ISA Prinzipien Grundlagen der Rechnerarchitektur Assembler 2 Rudimente

Mehr

Aufbau und Funktionsweise eines Computers

Aufbau und Funktionsweise eines Computers Aufbau und Funktionsweise eines Computers Thomas Röfer Hardware und Software von Neumann Architektur Schichtenmodell der Software Zahlsysteme Repräsentation von Daten im Computer Hardware Prozessor (CPU)

Mehr

Einführung (0) Erster funktionsfähiger programmgesteuerter Rechenautomat Z3, fertiggestellt 1941 Bild: Nachbau im Deutschen Museum München

Einführung (0) Erster funktionsfähiger programmgesteuerter Rechenautomat Z3, fertiggestellt 1941 Bild: Nachbau im Deutschen Museum München Einführung (0) Erster funktionsfähiger programmgesteuerter Rechenautomat Z3, fertiggestellt 1941 Bild: Nachbau im Deutschen Museum München Einführung (1) Was ist ein Rechner? Maschine, die Probleme für

Mehr

Übungen für die Einführung in die Assemblerprogrammierung mit dem Prozessor c515c

Übungen für die Einführung in die Assemblerprogrammierung mit dem Prozessor c515c Übungen für die Einführung in die Assemblerprogrammierung mit dem Prozessor c515c 1 Transportbefehle 1.1 Verwendung nur Akku und Register (R0, R1,... R7) 1.1.1 Kopieren Sie den Wert aus Register1 nach

Mehr

(Prof. Dr. J. Schlichter, WS 2011 / 2012) Übungsleitung: Dr. Wolfgang Wörndl (gbs-ws11@mailschlichter.informatik.tu-muenchen.de)

(Prof. Dr. J. Schlichter, WS 2011 / 2012) Übungsleitung: Dr. Wolfgang Wörndl (gbs-ws11@mailschlichter.informatik.tu-muenchen.de) Übung zur Vorlesung Grundlagen Betriebssysteme und Systemsoftware (Prof. Dr. J. Schlichter, WS 2011 / 2012) Übungsleitung: Dr. Wolfgang Wörndl (gbs-ws11@mailschlichter.informatik.tu-muenchen.de) http://www11.in.tum.de/veranstaltungen/grundlagenbetriebssystemeundsystemsoftwarews1112

Mehr

Operating System Kernels

Operating System Kernels Operating System Kernels von Patrick Bitterling 1 Themenübersicht -Eine Einleitung über Kernel -Begriffserklärung, Architekturen -Kernel Subsysteme -Prozess-Scheduling, Speichermanagement,... -Der Networking

Mehr

Fehlerkorrektur Bild 3.190 Demoprozessor

Fehlerkorrektur Bild 3.190 Demoprozessor 7 Prozessor 3 0 Flags C V N Z A IP 0 SP AB 8 MS W/R DB 4 00h..6Fh Daten Speicher 70h..70h PA 71h..71h PB 72h..73h PC 74h..76h PD 80h..FFh Programm Speicher Fehlerkorrektur Bild 3.190 Demoprozessor Die

Mehr

4 Planung von Anwendungsund

4 Planung von Anwendungsund Einführung 4 Planung von Anwendungsund Datenbereitstellung Prüfungsanforderungen von Microsoft: Planning Application and Data Provisioning o Provision applications o Provision data Lernziele: Anwendungen

Mehr

OPERATIONEN AUF EINER DATENBANK

OPERATIONEN AUF EINER DATENBANK Einführung 1 OPERATIONEN AUF EINER DATENBANK Ein Benutzer stellt eine Anfrage: Die Benutzer einer Datenbank können meist sowohl interaktiv als auch über Anwendungen Anfragen an eine Datenbank stellen:

Mehr

Der MS-DOS Standardmonitor und Debugger DEBUG

Der MS-DOS Standardmonitor und Debugger DEBUG Einfache Assemblerprogrammierung mit DOS-DEBUG 1/7 Auf Personalcomputern kann in der Regel leicht eine einfache Umgebung zur Software-Entwicklung für die Intel Rechnerfamilie 80x86 eingerichtet werden.

Mehr

11.0 Rechnerarchitekturen

11.0 Rechnerarchitekturen 11.0 Rechnerarchitekturen Die Ziele dieses Kapitels sind: Kennen lernen der Rechnerklassifikation nach Flynn Betrachtung von Prozessorarchitekturen auf verschiedenen Abstraktionsebenen - Befehlsarchitektur

Mehr

1 Proseminar: Konzepte von Betriebssystem-Komponenten. Thema: Server OS AS/400 Referend: Sand Rainer. Server OS - AS/400

1 Proseminar: Konzepte von Betriebssystem-Komponenten. Thema: Server OS AS/400 Referend: Sand Rainer. Server OS - AS/400 1 Proseminar: Konzepte von Betriebssystem-Komponenten Server OS - AS/400 Gliederung Was ist eine AS/400? Wie ist OS/400 aufgebaut? Was kann eine AS/400? Bsp.: Logische Partitionierung 2 Proseminar: Konzepte

Mehr

Betriebssysteme (BS) IA-32. Überblick: Vorlesungen. das Programmiermodell der Intel-Architektur. Agenda. Historie der Intel x86-prozessoren

Betriebssysteme (BS) IA-32. Überblick: Vorlesungen. das Programmiermodell der Intel-Architektur. Agenda. Historie der Intel x86-prozessoren Betriebssysteme (BS) Überblick: Vorlesungen Daniel Lohmann IA-32 das Programmiermodell der Intel-Architektur Lehrstuhl für Informatik 4 Verteilte Systeme und Betriebssysteme Gerätezugriff (Treiber) Anwendung(en)

Mehr

Ergänzungen zum Manual OS V 2.05/2.06

Ergänzungen zum Manual OS V 2.05/2.06 Ergänzungen zum Manual OS V 2.05/2.06 SYSTEMRESOURCEN - PROGRAMM DOWNLOAD - Ab der Betriebssystemversion 2.05 haben die C-Control Units M-2.0 und Station 2.0 die Möglichkeit das Anwenderprogramm von einem

Mehr

1 Aufgaben zu Wie funktioniert ein Computer?

1 Aufgaben zu Wie funktioniert ein Computer? 71 1 Aufgaben zu Wie funktioniert ein Computer? Netzteil a) Welche Spannungen werden von PC-Netzteilen bereitgestellt? 3.3 V, 5 V, 12 V, -5 V, -12 V. b) Warum können PC-Netzteile hohe Leistungen liefern,

Mehr

Technische Informatik 1

Technische Informatik 1 Technische Informatik 1 2 Instruktionssatz Lothar Thiele Computer Engineering and Networks Laboratory Instruktionsverarbeitung 2 2 Übersetzung Das Kapitel 2 der Vorlesung setzt sich mit der Maschinensprache

Mehr

Prozessor HC680 fiktiv

Prozessor HC680 fiktiv Prozessor HC680 fiktiv Dokumentation der Simulation Die Simulation umfasst die Struktur und Funktionalität des Prozessors und wichtiger Baugruppen des Systems. Dabei werden in einem Simulationsfenster

Mehr

Der Toy Rechner Ein einfacher Mikrorechner

Der Toy Rechner Ein einfacher Mikrorechner Der Toy Rechner Ein einfacher Mikrorechner Dr. Gerald Heim Haid-und-Neu-Str. 10-14 76131 Karlsruhe 16. Mai 1995 Allgemeine Informationen 2 Quelle: Phil Kopmann, Microcoded versus Hard-Wired Logic, Byte

Mehr

Im Original veränderbare Word-Dateien

Im Original veränderbare Word-Dateien Das Von-Neumann-Prinzip Prinzipien der Datenverarbeitung Fast alle modernen Computer funktionieren nach dem Von- Neumann-Prinzip. Der Erfinder dieses Konzeptes John von Neumann (1903-1957) war ein in den

Mehr

Enterprise Computing Einführung in das Betriebssystem z/os. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth WS2012/13

Enterprise Computing Einführung in das Betriebssystem z/os. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth WS2012/13 UNIVERSITÄT LEIPZIG Enterprise Computing Einführung in das Betriebssystem z/os Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth WS2012/13 Verarbeitungsgrundlagen Teil 3 Betriebssystem Überwacher

Mehr

Grundlagen der Rechnerarchitektur

Grundlagen der Rechnerarchitektur Grundlagen der Rechnerarchitektur Ein und Ausgabe Übersicht Grundbegriffe Hard Disks und Flash RAM Zugriff auf IO Geräte RAID Systeme SS 2012 Grundlagen der Rechnerarchitektur Ein und Ausgabe 2 Grundbegriffe

Mehr

Zähler- und Zeitgeber-Baugruppen

Zähler- und Zeitgeber-Baugruppen Zähler- und Zeitgeber-Baugruppen Sinn: häufig müssen Zeitbedingungen eingehalten werden z.b.: einige ms warten, Häufigkeit von Ereignissen zählen etc... Lösung: 1.) Zeitschleifen = Programm abarbeiten,

Mehr

Aufgabe 2 - Erweiterung um PIC und Interrupts

Aufgabe 2 - Erweiterung um PIC und Interrupts Aufgabe 2 - Erweiterung um PIC und Interrupts Rainer Müller Department Informatik 4 Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2014/2015 R. Müller Erweiterung

Mehr

Codesigned Virtual Machines

Codesigned Virtual Machines Codesigned Virtual Machines Seminar Virtualisierung Philipp Kirchhofer philipp.kirchhofer@student.kit.edu Institut für Technische Informatik Lehrstuhl für Rechnerarchitektur Universität Karlsruhe (TH)

Mehr

Intel 80x86 symmetrische Multiprozessorsysteme. Eine Präsentation im Rahmen des Seminars Parallele Rechnerarchitekturen von Bernhard Witte

Intel 80x86 symmetrische Multiprozessorsysteme. Eine Präsentation im Rahmen des Seminars Parallele Rechnerarchitekturen von Bernhard Witte Intel 80x86 symmetrische Multiprozessorsysteme Eine Präsentation im Rahmen des Seminars Parallele Rechnerarchitekturen von Bernhard Witte Gliederung I. Parallel Computing Einführung II.SMP Grundlagen III.Speicherzugriff

Mehr

1 Einleitung zum RISC Prozessor

1 Einleitung zum RISC Prozessor 1 Einleitung zum RISC Prozessor Wesentliche Entwicklungsschritte der Computer-Architekturen [2, 3]: Familienkonzept von IBM mit System/360 (1964) und DEC mit PDP-8 (1965) eingeführt: Gleiche Hardware-Architekturen

Mehr

Fachhochschule Kaiserslautern Fachbereich Angewandte Ingenieurwissenschaften WS2010/11. Zeitpunkt der Prüfung: 18.01.2011 Beginn: 10.

Fachhochschule Kaiserslautern Fachbereich Angewandte Ingenieurwissenschaften WS2010/11. Zeitpunkt der Prüfung: 18.01.2011 Beginn: 10. Lehrprozessor: Coldfire MCF-5272 Zeitpunkt der Prüfung: 18.01.2011 Beginn: 10.45 Uhr Raum: Aula Bearbeitungszeit: 180 Minuten Erlaubte Hilfsmittel: Gedrucktes Vorlesungsskript von Prof. Neuschwander mit

Mehr