1. Zahlensysteme und Codierung 1.1 Zahlensyteme Die Stelle an der eine Ziffer steht bestimmt ihre Wertigkeit: Stellenwertigkeit. (siehe auch WMS) 1.2 Datentypen 1 Bit 4 Bit 8 Bit 16 Bit 32 Bit 1 Halbbyte 1 Byte 1 Wort 1 Doppelwort Datentyp Boolean Datentyp entspricht einem Hex Wert (Tetrade, Nippel) Datentyp Datentyp Integer Datentyp Long Integer 1.3 Codetabellen Unter MS-Dos wurde der ASCII Code verwendet. 7 Bit. Später mit der Dos Erweiterung. 8Bit. Später, ab Windows 3.x nahm man den ANSI Code. 8 Bit. Seit die IT Welle auch die asiatischen Länder erreicht hat gibt es den UNI Code. 16 Bit. Nun ist man auch in der Lage, sämtlich Schriftzeichen, darzustellen. Betrachtet man die Darstellung von Zeichen mit einem Hex-Editor so sieht man für ANSI Zeichen: 3F 00 | 4A 00 | .. 00 | .. d.h. ein Hex Wert belegt (nach 1.2) 4 Bit, somit belegen zwei Hex Wert 8 Bit. Hier z.B. 3F. Der UNI Code ist aber 16 Bit lang, also werden die verbleibenden 8 Bit mit Nullen aufgefüllt. Im Bereich der Großrechner kommt der sogenannt BCDI (Binary Coded Decimal Interchange Code) und später auch der EBCDI (Extended B...). Hierbei wird jedes Zeichen als Byte dargestellt, wobei die linke Tetrade Zonenteil, die rechte Tetrade Ziffernteil genannt wird. Bei der Darstellung von Zahlen kann der Zonenteil weggelassen werden. z.B. –567 0101/0110/0111/1101 5 6 7 - gepackt entpackt: 1111/0101//1111/0110//1101/0111 5 6 7 2. Zentraleinheiten Eine Zentraleinheit (central unit) beinhaltet Zentralspeicher, Zentralprozessor, Verbindungseinrichtungen (Busse), Ein-/Ausgabe-Steuerung, Stromversorgung und sonstige für den Berieb notwendige Zusatzeinrichtungen. In der Zentraleinheit werden gesteuert von Systemprogrammen, die von den Anwendungsprogrammen vorgeschriebenen Elementarfunktionen von dem Prozessor verrichtet. Ein Prozessor umfasst Leit- und Rechenwerk. Das Rechenwerk führt logische und arithmetische Operationen durch. Das Leitwerk sorgt für die zeitliche und funktional aufeinander abgestimmte Zuführung von Befehlen und Daten aus den Speichern in das Rechenwerk. Dabei werden die Befehle und Daten dem Arbeitsspeicher entnommen, und die Ergebnisse werden dorthin für die Ausgabe zurückgeschrieben. 2.1 Architektur Arbeitsspeicher Peripherie E/A-Steuerung Kanäle Zentralprozessor Stromversorgung Kühlung Serviceprozessor Konsolprozessor grobe Struktur der Zentraleinheit 2.2 Zentralspeicher Zentralspeicher sind in der CU befindliche Speicher, zu denen der bzw. die zentralen Prozessoren und ggf. E/A-Steuerung unmittelbar Zugang haben. Man unterscheidet: - Arbeitsspeicher - Pufferspeicher - Registerspeicher - Mikroprogrammspeicher Sie unterscheiden sich vor allem in ihrer Leistungsfähigkeit. Arbeitsspeicher Cache Zentralprozessor E/A-Steuerung Regi ster Mikropro gramm speicher Zentralspeicher Regi ster Mikropro gramm speicher 2.2.1 Arbeitsspeicher Im Arbeitsspeicher werden die laufenden Programme und die von diesen benötigten Daten gehalten. Aus ihm entnimmt der Zentralprozessor beim Programmablauf schrittweise die Befehle und die in den Befehlen adressierten Daten, führt die verlangten Operationen aus und gigt deren Ergebnisse an den Arbeitsspeicher zurück. Der Arbeitsspeicher ist direkt adressierbar. Jeder Stelle die ein Byte aufnehmen kann, hat eine eigene Adresse. Die Speicherstellen sind von Null an aufsteigend durchnumeriert. Durch die Architektur der 32 Bit Prozessoren könne maximal 4Gbyte adressiert werden. Der Arbeitsspeicher, auch RAM genannt, besteht aus flüchtigen Speicherchips. Die Zugriffszeit liegt bei ca. 100 ns. Heutzutage werden überwiegend DRAMs verwendet, da sie billiger zu produzieren sind, jedoch haben sie etliche Nachteile: - sie bestehen aus Kondensatoren die einen ständigen Refresh benötigen - sie verlieren Information wenn sie gelesen werden, d.h. die Information muss sofort wieder neu geschrieben werden - es wird dadurch nicht nur die Speicherzelle gesperrt sondern der ganze Block Bei den SRAMs haben wir diese Probleme nicht, jedoch sind sie finanziell nicht tragbar und für eine Ausreichende Göße bräuchte man einen eigenen „Kühlschrank“. 2.2.2 Pufferspeicher (CACHE) Ein CACHE ist ein Speicher, der Daten vorübergehend aufnimmt, die von einer Funktionseinheit zu einer anderen übertragen werden. Ein solcher CACHE soll vor allem die Geschwindigkeitsunterschiede ausgleichen, z.B. zwischen Arbeitsspeicher und Prozessor, aber auch bei Festplatten und Arbeitsspeicher. Der zwischen Arbeitsspeicher und Prozessor befindliche CACHE hat eine sehr kurze Zugriffszeit (ca. 10ns) und eine begrenzte Kapazität von wenigen tausend Bytes. Im CACHE werden während der Programmverarbeitung die jeweils aktuellen Befehle und Daten rechtzeitig bereitgestellt. Register Abnehmende Zugriffszeit Zunehmende Kapazität L1-Cache L2-Cache Arbeitsspeicher Erweiterungsspeicher Magnetplattenspeicher ... Abnehmende Kosten pro Bit Vorraussetzung für diese Geschwindigkeitssteigerung ist eine hohe Wahrscheinlichkeit, dass ein Zugriff vom Cache selbst befriedigt werden kann. Heutzutage schafft man eine Trefferquote von über 98%! Der Verkehr zwischen Arbeitsspeicher, Cache und Prozessor wird vom Betriebssystem organisiert. 2.2.3 Registerspeicher Register sind Bestandteile von Prozessoren. Prozessorregister dienen zur kurzeitigen Speicherung von Angaben, die während der Verarbeitung sofort wieder greifbar sein müssen. Sie haben in der Regel eine beschränkte Kapazität von wenigen Bytes und können über einen Namen (Operationscode bestimmter Maschinenbefehle) angesprochen werden. Es gibt: - Einzweckregister - Mehrzweckregister (Adressen, Operanden) Die Funktionen sind sehr unterschiedlich: - Schieberegister (bei Division und Subtraktion hilfreich) - Zählregister (Steuern von Befehlsfolgen) Die Zugriffszeiten können bei 2-3 ns liegen. 2.2.4 Mikroprogrammspeicher Die Befehle sind in einem Rechner entweder fest verdrahtet (z.B. bei RISC) oder sie werden aus Mikroinstruktionen erzeugt, die im Mikroprogrammspeicher zur Verfügung stehen. Die Zugriffszeit liegt unter 10ns. Fast alle CISC Rechner sind mikroprogrammgesteuert. Fast immer nichtflüchtiger Speicher, wenn flüchtig, dann werden die Mikroprogramme beim Initialisieren von einem externen Speicher geladen. Sie können vom Hersteller verändert und erweitert werden hohe Flexibilität hinsichtlich der Anlagenausnutzung. Bekannt Erweiterungen: Bei Intel: MMX, SSE, SSEII Bei AMD: 3Dnow, 3Dnow2, und nun auch SSEII (Lizenzerwerb) 2.3 Zentralprozessor Der Zentralprozessor (CPU) ist eine Funktionseinheit der Zentraleinheit, die Leitwerk und Rechenwerk umfasst. Das Leitwerk steuert die Reihenfolge, in der Befehle eines Programms ausgeführt werden, es entschlüsselt diese Befehle, modifiziert diese ggf. und gibt die für die Ausführung erforderlichen digitalen Signale ab. Das Rechenwerk führt logische und arithmetische Operationen durch. 2.3.1 Leitwerk Das Leitwerk nimmt Koordinationsfunktionen für den gesamten Rechner wahr. Es steuert den Ablauf des Befehls- und Datenflusses und bestimmt mit seinem Taktgeber die Programmablaufgeschwindigkeit. Es besteht aus logischen Schaltungen und Registern. Register im Leitwerk: - Befehlszähler - Befehlsregister - Statusregister