Title:

Einführung und Historie der INTEL Prozessoren

Description:  Intel hatte mit dem 8088 ein Bindeglied zwischen den bis dahin üblichen 8-Bit und den kommenden 16-Bit Chips geschaffen.
Author:Glen Masgai
deutsch
  
ISBN: B0000C18JE   ISBN: B0000C18JE   ISBN: B0000C18JE   ISBN: B0000C18JE 
 
  Wir empfehlen:       
 

Einführung und Historie der INTEL Prozessoren 


INTEL®, der derzeitige führende Hersteller im Bereich der PC-Prozessoren, brachte 1978 den 16-Bit 
Mikroprozessor 'Intel 8086' und im darauffolgenden Jahr die Variante 8088 auf den Markt.Die Leistungsfähigkeit
dieser Prozessoren lag um das Fünf- bis Zehnfache höher als die der 8-Bit Vorläufer
8080 (1974) und 8085 (1976). Wichtige neue Merkmale waren der größere Adreßraum, der es möglich machte 
1 MByte statt nur 64 KByte zu adressieren, als auch die neuen 16-Bit breiten internen Datenwege, 
die erheblich zur Leistungsteigerung beitrugen. Die Überlegenheit des 8086 gegenüber dem 8088 liegt 
in dem 16-Bit breiten externen Datenbus. Intel hatte mit dem 8088 ein Bindeglied zwischen 
den bis dahin üblichen 8-Bit und den kommenden 16-Bit Chips geschaffen. Intern sollte der 8088 Mikroprozessor 
wie der 8086 Mikroprozessor eine 16-Bit Strukur aufweisen und nach außen möglichst umstandslos mit der
8-Bit Peripherie zusammenpassen. Somit war es dem 8088 nur möglich, mit einem Buszyklus 8-Bit 
an Arbeitsspeicher oder E/A Geräte zu übertragen, wobei der 8086 16-Bit schaffte. In nahezu jeder anderen 
Hinsicht sind die beiden Prozessoren jedoch identisch, d.h. Programme, die für ein 8086-gestütztes System 
geschrieben wurden, sind auch auf einem 8088-System lauffähig und umgekehrt.

Dem Wunsch nach höherer Leistung kam Intel schon im Jahr 1982 mit der Ankündigung drei neuer
Mikroprozessoren engegen. Es handelte sich um dem 80186, 80188 und 80286.
Der 80186 stellt einer höher integrierte Version des 8086er Prozessors dar und enthält auf dem Prozessorchip
einige neue Funktionen, für die zuvor eigene Chips nötig waren. Der 80186 ist jedoch voll kompatibel zum
8086er Prozessor und verfügt über die gleiche Daten- und Adreßbustruktur wie der 8086 und kann somit ebefalls
1 MByte physischen Speicher adressieren. Sein Registersatz und Adreßmodi entsprechen voll dem 8086er.
Er arbeitet mit dem gleichen Maschinenbefehlssatz, darüber hinaus verfügt er über einige zusätzliche
erweiterte Befehle. Der 80188 dient wiederrum nur zur kompatiblität mit 8-Bit Peripherie und ist nahezu jeder
Hinsicht mit dem 80188 identisch.
Der 80286 ist voll kompatibel zum 8086-Mikroprozessor, stellt gegenüber diesem jedoch einen größeren
Entwicklungssprung als die 80186/80188 Prozessoren dar. Gekennzeichnet ist der 80286 vor allem dadurch,
daß in seiner Architektur bereits Erfordernisse für Multiuser- und Multitasking Betriebssysteme berücksicht
wurden. Durch seinen 24-Bit breiten Adreßbus bestand nun die Möglichkeit einen auf 16 MByte erweiterten
physikalischen ansprechen zu können und Programme im Vergleich zum 8086 ca. sechsmal schneller
abzuarbeiten.

1985
etablierten sich die ersten 386-CPUs auf dem Markt. Ein bis zwei Jahre später folgten die ersten PC's
mit diesen Prozessoren und sorgten mit höheren Taktfrequenzen , erweiterten Busleitungen und neuen 
Funktionen für noch schnelleren Aufwind im PC Bereich. Der Adreßbus wurde nun auf 32-Bit erhöht, wodurch 
maximal adressierbare physische Speicher auf 4 GByte anwuchs. Die Datenbusleitungen wurden ebenfalls auf
32-Bit erhöht, also genau das doppelte der vorherigen Mikroprozessoren. Es besteht ebenfalls wieder
kompatiblität zu den 8086 sowie 80186 und 80286 Prozessoren.
1989 folgten auf den 80386 die ersten 80486 DX CPU's. Vorteil dieses Prozessors ist, daß die für Fließkomma
notwendige Floating-Point Unit (FPU) erstmals direkt in den Mikroprozessor integriert wurde. 
Somit bestand die Möglichkeit ebenfalls auf den integrierten Datencache zuzugreifen.
Der 80386, sowie der der 80486 weisen eine Multitasking-Hardware und einen Schutzmechanismus,
Protected Mode, über vier Ebenen auf, der den Zugriff eines Anwenderprogramms auf das Betriebssystem 
verhindert. Der neu eingeführte Virtual-8086 Mode erlaubt es mehrere 8086er in der ungeschützen 
Betriebsart zu simulieren, wobei jeder ausgeführte Prozeß einen 8086 mit einem Adreßraum von 1 MByte sieht.
Die Anzahl der auszuführenden Prozesse hängt nun von der Menge an verfügbarem Arbeitsspeicher ab.
Weiterhin wird eine vituelle Speicherverwaltung unterstützt, sodaß mehr als nur 1 MByte Speicher zur
Verfügung steht. (Segmentierung im Protected Mode)

1993 brachte Intel den Pentium-Mikroprozessor auf den Markt. 3,1 Millionen Transistoren wurden auf dem 
Chip untergebracht. Eingeführt wurde er mit 60 MHz. Bei 66 MHz ist es möglich, Anwendungsprogramme 
bis zu fünfmal schneller als ein 486er auszuführen. Es besteht wieder Kompatiblitöt zu allen Vorgängermodellen.
Die Datenbusleituntungen wurden auf 64-Bit erhöht und der Pentium beinhaltet ebenso eine verbesserte
Floating-Point Unit. Die Verbessrungen lagen soweit darin, daß die drei Grundrechenarten Addition, Multiplikation
und Division durch spezielle Hardwareeinheiten realisiert wurden. Dadurch konnte bei rechenintensiven 
Anwendungen eine bis zu fünfmal schnellere Abarbeitung erfolgen.

Architektur des Intel Pentium

Die Prozessorarchitektur wurde überarbeitet und eine mit dem Begriff Superskalare Mikroarchitektur
bezeichnete Bauweise ermöglicht es, Einheiten innerhalb des Prozessors so auszulegen, daß sie gleichzeitig
arbeiten können. Die parallele Abarbeitung von Befehlen wurde ebenso verbessert, sofern zwischen ihnen
keine Abhängigkeiten bestehen. Die Ausführung erfolgt in den U- V-Pipelines, wobei die Befehle bestimmte
Bedingungen erfüllen müssen, daß Konflikte verhindert werden. Dadurch wird vermieden, daß ein 
Nachfolgender Befehl auf Informationen des vorigen Befehles zugreifen muss. Die U-Pipeline kann alle 
Befehle ausführen, V-Pipeline jedoch nur die Einfachen.



    Die interne Struktur des Pentiums

 

Buseinheit (BU):              Diese Einheit ist für den Transfer zwischen den externen Einheiten und dem internen Cache
                                        zuständig und gibt die externen Anforderungssignale priorisiert an die inerne Steuereinheit
                                        weiter.

Cacheeinheit (CU):        Sie besteht aus einem Daten- und einem Befehlscache zu je 8 KByte, wobei der Datencache 
                                        in den Hauptspeicher zurückschreiben kann, der Befehlscache jedoch nicht. Durch die 64-Bit 
                                        Datenbusstruktur kann eine komplette Cacheline (2*64 Bit = 16 Byte) übertragen werden.

Branch-Prediction (BP): oder auch "Verzweigungsvorhersage" besteht aus einem kleinen Cache, in dem die zuletzt
                                        aufgeführten Sprungbefehle mit ihren Adressen, sowie statistische Informationen
                                        (Häufigkeit der letzten Sprünge) gespeichert werden. Die BP vergleicht nun ständig mit den 
                                        Befehlen im "Instruktionsdekoder". Wird letztendlich eine Übereinstimmung festgestellt und 
                                        der erwartete Sprung soll ausgeführt werden, kann die BP die Sprungadresse sofort liefern. 
                                        Die Taktzyklen für das Einholen der Adresse entfallen, was zur schnelleren Abarbeitung führt. 

Instruktionseinheit (IU): Diese Einheit sorgt für einen ständig gefüllten Cache und verhindert somit, daß dieser während 
                                        Wartezeiten nicht untätig ist. Der "Instruktionsdekoder" entnimmt dieser Warteschlange 
                                        einzelne Bytes und dekodiert diese.

Ausführungseinheit:        Die Ausführungseinheit führt den von der Instruktionseinheit kommenden Maschinencode aus. 
                                        Sie steht darüber hinaus mit allen anderen Einheiten über den Steuerbus in direkter Verbindung.

Adressierungseinheit:      Sie berechnet gemäß dem Segmentkonzept die effektive Adresse. 

Fließkommaeinheit:        Die Fließkommaeinheit übernimmt die Berechnung von Fließkommabefehlen.


Register des Intel Pentium

Die Register des Pentium sind 32-Bit breit
man unterscheidet im allgemeinen fünf  verschiedene Funktionsgruppen

allgemeine Register:  [E]AX = Akkumulator, [E]BX = Base Register, [E]CX = Count Register, [E]DX= Data Register
                                   Die Ausführung arithmetischer und logischer Operationen ist in jedem dieser Register 
                                   möglich. Sie werden auch intern von Befehlsoperationen benutzt, so z.B. [E]AX bei
                                   MUL, DIV (Multiplikation, Division) oder [E]CX bei Schleifenoperationen. 
                                   Bei einigen Befehlen führt die Nutzung des [E]AX Registers zum kompakteren
                                   Maschinencode, wodurch sich die Ausführungszeit verringert. 
                                   Die ersten 16-Bit der allgemeinen Register unterteilen sich jeweils noch in einen 
                                   High- bzw. Low-Anteil.

                                   


Pointerregister:          SP = Stack Pointer, BP = Base Pointer
                                    Die Pointerregister  unterstützen die Adressierung in einem Stapelsegment 
                                    und beinhalten ein Offset bezüglich des SS (Stapelsegmentregister)

Indexregister:            SI = Source-Indexregister, DI = Destination-Indexregister
                                   Beide Register unterstützen die Adressierung in Datensegmenten 
                                   Ihr Inhalt ist im Regelfall ein Offset bezüglich des DS (Datensegmentregister)
                                   und des ES (Extrasegmentregister).

Segmentregister:        CS = Codesegmentregister, DS = Datensegmentregister, ES = Extrasegmentregister
                                   SS = Stapelsegmentregister
                                     

Instruction Pointer:    Der Instruction Pointer adressiert mit dem CS den nächsten Befehl.der von IU 
   
                                 gefetch werden soll und wird nach dem Fetchzyklus um die entsprechenden Bytes 
                                    erhöht.

Desweiteren existiert ein Flagregister, welches Flags (Bits) enthält, die bestimmte Zustände ausdrücken.

                                   

Zustand '0' = trifft nicht zu, Zustand '1' = trifft zu. Die Flags werden vom Prozessor als auch vom 
Programmierer benutzt.Mit Hilfe dieser Flags kann man bestimmte Verarbeitungszustände festhalten oder
in Abhängigkeit von Zuständen verzweigen, um mit jeweils anderen Befehlsfolgen weiterzuarbeiten.
3 Möglichkeiten der Informationsübergabe :

- Prozessor zum Programm
- Programm zum Prozessor
- Programm zum Programm


Segmentkonzept (8086 Mode)

Programme für die 8086/8088 Prozessoren betrachten den maxmimal 1 MByte großen physikalischen 
Adreßraum als eine Gruppe logischer Segmente. Bei diesen Segmenten handelt es sich um logische
Speicherblöcke, von 16 Bytes bis maximal 64 KBytes. Speicherstellen können von Programmen
nur angesprochen werden, wenn sie innerhalb eines Segmentes liegen und zum Zeitpunkt des Zugriffs ein
Segmentregister die Anfangsadresse des Segments enthält. Da die Segmentregister beim 8086/8088 nur 
16 Bit breit sind kann ein Segment nicht an jeder beliebigen physikalischen 20-Bit-Adresse beginnen,
da sonst auch die Anfangsadresse eines Segments eine 20-Bit Größe sein müßte.

es gelten für die Anfangadressen der Segmente folgende Regeln:

-   Eine physikalische Segmentanfangsadresse muß ohne Rest durch 16 teilbar sein; dh., die vier 
     niederwertigen Bits einer physikalischen Segmentanfangsadresse sind stets 0, worauf zurückgeführt wird,
    daß der kleinste Abstand zwischen zwei Segmentanfangsadressen 10h = 16 Bytes beträgt.

-   Die 16 höherwertigen Bits der Segmentanfangsadresse werden als Paragraphennummer bezeichnet.
     Jedes Datensegmentregister enthält eine solche Paragraphennummer. 

Die logische Adresse besteht aus der 16-Bit Paragraphennummer und einer 16-Bit Distanzadresse (Offset)
innerhalb des Segments. Wennd die BIU (Busverbindungseinheit) einen Zugriff auf den Arbeitsspeicher 
ausführt, um z.B. Daten zu holen (READ-Zyklus), zu speichern (WRITE-Zyklus) oder einen Maschinenbefehl 
zu holen (FETCH-Zyklus) muß aus der logischen Adresse die physikalische 20-Bit Adresse berechnet werden.
Dazu wird die Paragraphennummer in ein spezielles 20-Bit Register der BIU geholt, 4-Bit nach links geshiftet 
und das Offset addiert.
Für Programme und deren Programmier ist es sinvoller mit solchen logischen Adressen zu arbeiten, da
keine Rücksicht genommen werden muß, in welchen physikalischen Speicherstellen Programm und 
Daten landen.


Protected Mode

Dieser Betriebsmodus, der seine Anfänge im 80286 hat, dient vor allem zum Schutz von konkurienten
Tasks und unerlaubten Zugriffen von Anwenderprogramme in die Betriebsystemebene. Jedes Programm,
hat ein bestimmtes Privileglevel, womit Zugriffe auf eine höherwertige Privilegebene ausgeschlossen
werden können.

Bsp:

Anhand dieser Grafik, wird das Ebenenmodell verdeutlicht. Auf Ebene 0 befindet sich das Betriebssystem.
Auf Ebene 1 und 2 sind die Treiber für die Peripheriegeräte und auf Ebene 3 die Anwenderprogramme
angeordnet.

Weitere wichtige Eigenschaften des Protected Mode:

Visual Memory Paging:    Hierbei wird dem Betriebssytem ermöglicht, das Adressen, die von Programmen
                                          angefordert werden in andere Speicherbereiche oder sogar Festplatte umzuleiten.
                                         

IO Protection:                   Programme müssen priviligiert genug sein, um auf Hardware zugreifen zu dürfen.

Task Switching:                 Beim Taskwechsel werden alle Register gesichert, bevor auf den nächsten Task
                                           umgeschalten wird.

 

Segmentkonzept im Protected Mode

Das Segmentkonzept im Protected Mode unterscheidet sich zum Segmentkonzept des 8086 Mode.
Segmente können nun die Attribute READonly, WRITE + READ und EXEConly besitzen. Die Segmente
enthalten nun ebenfalls Informationen, ob zugegriffen wurde oder nicht und ob sich dieses Segment im
physikalischen Speicher oder in einer Auslagerungsdatei befindet.

Im Speicher existiert nun eine Descriptortabelle. Man unterscheidet zwei Arten , global und lokal.
Im DS (Datensegmentregister) steht nun ein Selector, der auf einen Descriptor in der Descriptortabelle
verweist. Jeder Descriptor enthält Informationen, wie Startadresse des zu verwendeten Speicherblocks
im physikalischen Speicher, sowie Größe und andere Anttribute.

 

G :         Granularität, bedeuted, daß 4 KByte Pages verwendet werden und somit die Größe mindestens
               4 Kbyte oder maximal 4 GByte sein kann.

D/B:       Jenachdem ob dieses Bit gesetzt ist, handelt es sich um 16-Bit oder 32-Bit Codesegment.
              Im Stacksegment gibt dieses Bit die Obergrenze des Expand-Down Stacks an.

AVL:      ist ein Bit, daß frei für das Betriebssystem verwendbar ist.

P:          'Segment Present' , daß Segment befindet sich im Speicher

Wird nun versucht, einen definierterten Speicherbereich zu überschreiten, wird ein Interrupt ausgelöst.
Genauer gesehen, wäre die eine 'Allgemeine Schutzverletzung'. Durch diesen Interrupt wird
der Task, der diese Schutzverletzung verursachte, durch eine Betriebssystemroutine beendet.
Es muss jedoch nicht bei jedem Fehler der Task beendet werden, wobei die Möglichkeit besteht, dass
das Betriebssystem Fehler auch beheben kann.

Beispiele:

- 'Segment Not Present' , das Segment befindet sich nicht im Hauptspeicher, sondern ist ausgelagert 
   demzufolge wird das Segent in den Hauptspeicher geladen.

- 'Invalid Opcode' ,der Prozessor kennt einer Befehl nicht, jedoch ist der dem Betriebssystem bekannt
   somit kann der Befehl emuliert werden.

-'Stack Fault' , Stapel voll -> Betriebssystem erweitert den Stapelspeicher

 

Quellen:    80x86/Pentium Assembler (Bertram Wohak / Reinhold Maurus)
                    Intel Architecture ' Software Developers Manual Vol. 1 (Basic Architecture) '
                    Intel Architekture ' Software Developers Manual Vol. 3 (System Programming Guide) '

Glen Masgai
email: masgai@cs.uni-magdeburg.de

  
Intel Pentium 4 3,2GHz FSB800 Sockel 478 In-A-Box (inkl. Lüfter)
von Intel
Siehe auch:
Intel Pentium 4 Prozessor Pentium 650 3.4GHZ SKT775 (FSB800 2MB CACHE 3,4GHz HT S775 IN-A-Box mit Kühler und 3 Jahren Garantie!)
von Intel
Asrock K7NF2-RAID Sockel A Mainboard NFORCE2U ATX
von Asrock
Intel Pentium 4 Prozessor 640 3.2GHZ Sockel 775 (FSB800 2MB CACHE 3,2GHz HT S775 IN-A-Box mit Kühler und 3 Jahren Garantie.)
von Intel
Sapphire RADEON X1950 PRO 512MB DDR3 AGP DUAL-DVI TVO Graffikarte, L-RETAIL
von Sapphire, Inc.
 
   
 
     

This web site is a part of the project StudyPaper.com.
We are grateful to Glen Masgai for contributing this article.

Back to the topic site:
StudyPaper.com/Startseite/Computer/Hardware

External Links to this site are permitted without prior consent.
   
  deutsch  |  Set bookmark  |  Send a friend a link  |  Copyright ©  |  Impressum