Zum neuen Informatik-Forum >>
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Theoretischer Aufbau eines Prozessors - Seite 2
Gehe zu Seite Zurück  1, 2
 
Dieses Forum ist gesperrt, du kannst keine Beiträge editieren, schreiben oder beantworten.   Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.    Informatikerboard.de Foren-Übersicht -> Andere Informatikfragen
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
TMSearcher



Anmeldungsdatum: 19.05.2005
Beiträge: 270
Wohnort: Bremen

BeitragVerfasst am: 17. Sep 2005 17:35    Titel: Part II Antworten mit Zitat

ClockGenerator and Powermanagement Unit(Der Lebengeber der CPU)

Der Clockgenerator ist der Motor einer CPU. Mit jedem Takt den er liefert läuft in der CPU ein weiter Zyklus ab. Das heißt, es geht einen Schritt im Gesamtprozess weiter. Das Powermanagemet sorgt für die Modi:
Power Save Mode (Schlafmodus, CPU wird durch Rest oder ein NMI siganl wieder geweckt)
Idle Mode (friert die CPU ein, alle Busfunktionen können jetzt extern übernommen werden)
Powerdown Mode (stopped alle internen Clockoperationen, die Register behalten ihre Werte und der Stomverbrauch reduziert sich auf die Leckströme der Halbleiter innerhalb der CPU)


Programmable Interrupt Controller Unit (der Störenfried der CPU)
Diese Einheit erzeugt Unterbrechungen im normalen Programmablauf. Diese Unterbrechungsanforderungen kommen über die externen Interruptleitungen. Diesen Leitungen können unterschiedliche Prioritäten verliehen werden. Das heißt ein Anforderung mit der Priorität 4 kann keine Unterbrechung herbeiführen, wenn gerade ein Unterbrechung mit der Priorität 1 abgearbeitet wird.

Anmerkung: man unterscheidet zwischen maskierbaren und nicht maskierbaren Interrupts. Die eben besprochenen IRQ’s sind maskierbar (sie können ausgeblendet werden) und in ihrer Priorität einstellbar. Der nichtmaskierbare IRQ -> NMI hat oberste Priorität und muss abgearbeitet werden.

Programmable Timer Unit (die zeitbestimmende Einheit)
Mit dieser Einheit können sog. Timer eingestellt werden die eben nach bestimmten Zeiten Interrups auslösen und somit eben für Zeitabhängige Programmfunktionen eingesetzt werden können

DMA Control Unit (für den schnellen Datentransfer)
Über diese Einheit kann der direkte Memory Datentransfer eingestellt werden.

So jetzt sind wir mit der internen Hardware fast durch, jetzt kommt der interessante Teil, die Execution Unit, mit der wir uns etwas länger beschäftigen müssen.
Aber fassen wir noch einmal kurz zusammen:
Die CPU hat einen Adressbus um externe Einheiten zu Adressieren.
Sie hat einen Datenbus um Werte zu schreiben oder zu lesen.
Und sie hat einen Steuerbus (hätte ich beinahe unterschlagen) um eine Chipselection und Steuerinformationen (z.B. ob geschrieben oder gelesen wird) ihrer Umwelt mitzuteilen. Die Geschwindigkeit mit der sie arbeiten kann hängt ab von der Taktfrequenz des Clock Generators ( und natürlich mit der internen Chip Architektur).

_________________
Intelligent life is so very rare,
the rarest thing in creation
and the most precious
This is Earth Calling..


Zuletzt bearbeitet von TMSearcher am 18. Sep 2005 14:54, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
TMSearcher



Anmeldungsdatum: 19.05.2005
Beiträge: 270
Wohnort: Bremen

BeitragVerfasst am: 18. Sep 2005 01:24    Titel: Part III Antworten mit Zitat

So kommen wir jetzt zum Hirn vom ganzen, zur
Execution Unit
Die Execution Unit interpretiert die eingehenden Befehle, sorgt dafür das Argumente oder weitere Befehle nachgeladen werden und weißt den anderen Einheiten Ihre Aufgaben zu und führt logische Entscheidungen durch. Eine Untereinheit der Execution Unit ist die Arethmetical Logical Unit (ALU). Diese Einheit ist das Rechenwerk in der mathematische und logische Operationen durchgeführt werden können.

http://www.informatikerboard.de/files/register_174.gif

Die Execution Unit beinhaltet 14 Register. Unter Register versteht man Speicherstellen, die im Prozessor selbst angesiedelt sind und auf die direkt und schnell zugegriffen werden kann. Diese Register beinhalten oftmals noch zusätzliche Steuerfunktionen oder Statusinformationen des Prozessors. Alle Register sind 16 bit breit und ein Teil kann in 8 bit aufgeteilt werden. Fangen wir mit Registerbeschreibung an.
Das AX Register – Accumulator (Arbeitsregister, Workregister) kann ebenfalls mit AH (8 bit) und AL (8 bit) angesprochen werden.

Das Flag Register – Statusregister. Dieses Register enthält Informationen über das Ergebnis von Rechen- oder Logic-Operationen. Die Bit’s und Funktionen im einzelnen.

O – Over flow flag. Dieses flag zeigt einen Überlauf an. Es wird gesetzt wenn,wenn eine Operation zwar zu einem negativen oder positiven Übertrag (das höchstwertige Bit) eines Ergebnisses, nicht jedoch dieses seinerseits zu einem Übertrag Anlass gibt, bzw. umgekehrt.
D – Direction flag. Mit diesem Bit kann Eingestellt werden ob die ESI- und oder EDI-Register bei Stringoperationen zu erhöhen oder zu erniedrigen sind. Ist D = 0, werden die Registerinhalte erhöht, im anderen Fall erniedrigt.
I – Interrupt enable flag. Ist dieses Flag gesetzt (1) kann die CPU auf externe maskierte Unterbrechungen reagieren. Wird dieses Flag zurückgesetzt werden diese Unterbrechungen unterbunden. Dieses Flag hat aber keinen Einfluss auf nichtmaskierbare Interrupts, wie Exceptions etc..
T – Trap flag Wird das Flag gesetzt, arbeitet der Prozessor bei der Fehlersuche im Einzelschrittmodus. Nach jedem Befehl erzeugt die CPU automatisch eine Exception 1. Dadurch ist es möglich den Programmablauf Schritt für Schritt zu überwachen. Ist das Flag nicht gesetzt tritt die Exception 1 nur als Folge von Abbruchadressen auf.
S – Sign flag Das Sign Flag wird immer dann gesetzt, wenn das höchstwertige Bit in einem Datenwort den Wert logisch 1 besitzt. In allen anderen Fällen wird es zurückgesetzt. Bei 8- bit Operationen reagiert das Flag auf bit 7.
Z – Zero Flag Diese Flag wird immer dann gesetzt, wenn alle bit’s eines Ergebnisse den Wert Null haben. In anderen Fall wird es zurückgesetzt.
A – Auxiliary Carry flag Dieses Status Flag vereinfacht Additions- und Subtraktionsoperationen von Zahlen im gepackten BCD-Format. Unabhängig von der aktuellen Wortbreite des Operanden (8,16) wird A immer dann gesetzt, wenn bei einer Subtrktion ein Übertrag nach Bit 3 oder bei einer Addition ein Übertrag von Bit 3 in eine nächst höhere Stelle auftritt. In allen anderen Fällen wird das Flag zurückgesetzt.
P – Parity flag Das Parity Flag wird immer dann gesetzt, wenn die niederwertigen acht Bit’s einer Operation eine gerade Anzahl von Einsen aufweisen (gerade Parität - even). Bei einer ungeraden Quersumme (odd) wird das Flag zurückgesetzt. Unabhängig von der Größe des Operanden ist P immer nur eine Funktion der niederwertigen acht Bit’s.
C – Carry flag Das Carry Flag wird immer dann gesetzt, wenn bei Operationen ein Übertrag in das höchstwertige Bit auftritt.

Das BX Register Base Register. kann ebenfalls mit BH (8 bit) und BL (8 bit) angesprochen werden.
Das BC Register Count Register. kann ebenfalls mit CH (8 bit) und CL (8 bit) angesprochen werden.
Das DX Register Data Register. kann ebenfalls mit DH (8 bit) und DL (8 bit) angesprochen werden.

Das DI Register Destination Index Register. Kann nur als 16 Bit Register angesprochen werden. Hier wird bei indirekt Adressierung die Zieladresse hinterlegt.
Das SI Register Source Index Register. Kann nur als 16 Bit Register angesprochen werden. Hier wird bei indirekter Adressierung die Quelladresse hinterlegt.
Das SP Register Stackpointer. Kann nur als 16 Bit Register angesprochen werden. Zeiger der auf die aktuelle Stack Adresse zeigt.
Das IP Register Instruction Pointer. Kann nur als 16 Bit Register angesprochen werden. Zeiger der auf die aktuelle Befehls Adresse zeigt.

Wofür werden die Register eingesetzt? -> siehe Tabelle
http://www.informatikerboard.de/files/regusing_168.gif

Zur erweiterten Adressierung (wir können ja mit dieser CPU mehr als 16 Bit adressieren) kommen dann noch die sog. Segment Register.

Das CS - Codesegment Register
Das DS - Datasegment Register
Das ES - Extrasegment Register
Das SS - Stacksegment Register
Um die Funktion der Segment Register zu verstehen eine kurze Erklärung zu Adressierung der CPU:

http://www.informatikerboard.de/files/speicheradresse_164.gif

Die physikalische Adresse setzt sich aus der Segment-Adresse und der Offset Adresse zusammen. Das heißt wenn wir das Segment Register um 1 erhöhen, erhöhen wir die physikalische um 16 Byte. Erhöhen wir die Offset-Adresse um 1, erhöht sich die physikalische Adresse auch nur um 1. Schreibweise Segment-Adresse:Offset-Adresse -> AC09:0100 -> physikalische Adresse AC190

Anmerkung: Befehle und Daten haben nicht automatisch die gleiche Segment Adresse. So kann das Code Segement z.B. AC09:xxxx haben und das Daten-Segment FFF0:xxxx. Das hat zur Folge, dass z.B. bei dem Befehl „MOV AX, [CCF0]“ AX nicht unbedingt mit AC09:CCF0 geladen wird, sondern z.B. mit FFF0:CCF0. (der Leser möge zur Übung mal selbst versuchen die physikalischen Adressen zu errechnen)

Das gleiche gilt für den Stackpointer. Das Extra-Segment Register ist für Speicherzugriffe gedacht die außerhalb des Code- und Data-Segments liegen.

So für den weiteren Verlauf empfiehlt es sich, sich mit dem Microsoft DOS Debugger (debug.exe) und dem Rechner ( Calc.exe – Ansicht wissenschaftlich) etwas auseinander zu setzen. Beide sind Bestandteile jedes Windows Betriebssystem. Debug.exe wird auf dem DOS Prompt (Start -> ausführen -> „cmd“ oder „command“ -> „debug“ und Eingabetaste) ausgeführt.
Wenn alles geklappt hat erscheint dann links im DOS-Fenster ein Strich, wir sind jetzt im Debug-Befehls-Mode. Jetzt ein „?“ eingeben und die Befehlsübersicht erscheint. Im Anhang eine gepackte Datei mit der Befehlserklärung (Quelle: MS nt cmd help).

Fortsetzung folgt..

_________________
Intelligent life is so very rare,
the rarest thing in creation
and the most precious
This is Earth Calling..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
TMSearcher



Anmeldungsdatum: 19.05.2005
Beiträge: 270
Wohnort: Bremen

BeitragVerfasst am: 21. Sep 2005 19:02    Titel: Part IV Antworten mit Zitat

Kleiner Vorgeschmack auf das "WasPassiertDann"


http://www.informatikerboard.de/files/executionschematic_103.gif

So long..

Fortsetzung folgt...

Und für die Hard Core Leute schon mal das komplette User Manual

http://www.intel.com/design/intarch/manuals/27083003.pdf

_________________
Intelligent life is so very rare,
the rarest thing in creation
and the most precious
This is Earth Calling..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Dieses Forum ist gesperrt, du kannst keine Beiträge editieren, schreiben oder beantworten.   Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.    Informatikerboard.de Foren-Übersicht -> Andere Informatikfragen Alle Zeiten sind GMT + 1 Stunde
Gehe zu Seite Zurück  1, 2
Seite 2 von 2

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum nicht herunterladen