L Datenmanipulation Aufbau eines Computers Prozessor, Arbeitsspeicher und system Maschinensprachen und Maschinenbefehle Beispiel einer vereinfachten Maschinensprache Ausführung des Programms und Befehlszyklus Aufbau eines Mikrocomputers Ein Mikrocomputer besitzt den folgenden funktionalen Grobaufbau, die über einem Leitungssystem () verbunden sind: Prozessor oder CPU (Central Processing Unit) Hauptspeicher oder Arbeitsspeicher Peripheriegeräte (kurz, Peripherie) Prozessor Peripherie Arbeitsspeicher Zentraleinheit
Peripheriegeräte Zu Peripheriegeräten gehören zur Daten Ein/Ausgabe und zur Kommunikation mit dem Benutzer Maus, Tastatur, Bildschirm, Drucker, Scanner, Digitalkamera, Beamer, Grafikkarte, Soundkarte, Gameport, usw zum Datenspeichern (externe Speicher, nicht flüchtig) estplatten, Diskettenlaufwerk, CD/DVD Laufwerk und Brenner, usw zur Kommunikation mit anderen Computern Netzwerkkarte, Modem, ISDN-Karte, WirelessLan Karte, usw Der Prozessor (CPU oder Zentraleinheit) Der Prozessor besteht aus (Steuerwerk oder Befehlswerk) oder ALU (Arithmetic and Logic Unit) Register (Datenregister und Spezialregister) Adr Zelle
Der Prozessor Ein Prozessor steuert den gesamten Computer löst arithmetische und logische Aufgaben arbeitet in einen synchronen Ablauf (Takt) besitzt eine bestimmte Wortlänge (die Größe von Register) ist auf einem Chip integriert (Mikroprozessor) Beispiele von Mikroprozessoren Jahr Model Wortlänge Taktfrequenz Anz Transistoren 9 Intel Bit khz 9 8 8 Bit khz 98 88 Bit, MHz 9 Pentium D Bit,8 GHz Millionen Hertz (Hz) = Oszillation pro Sekunde KHz = Hz, MHz = Hz, GHz = 9 Hz Ein Takt in GHz requenz = Nanosekunde = Milliardstel Sekunde = Lichtfuß (In einer Nanosekunde legt das Licht ca cm zurück) Verschiedene Typen von Speichern In einem Computer werden verschiedene Typen von Speichern verwendet: Register (in CPU) für sofort anwendbare Daten Prozessor Cache enthält Kopien von Teilen des Arbeitsspeichers und beschleunigt den Zugriff Arbeitsspeicher für in der baldigen Zukunft benötigte Daten Massenspeicher (zb estplatten) für in kurzer Zeit nicht gebrauchte Daten (Speichervolumen vs Zugriffsgeschwindigkeit) Es gibt zwei Typen von Registern in der CPU: Datenregister Speichern die Operanden, sind mit dem direkt verbunden Spezialregister Programmzähler () enthält je nach Systemarchitektur die Speicheradresse des derzeitiger oder des nächsten auszuführenden Befehls speichert den aktuellen Befehl
leitungen Alle Baugruppen eines Computers sind untereinander durch leitungen verbunden Jeder Systembus besteht aus n parallelen Leitungen Man unterscheidet Steuerbus Träger spezifischer Informationen wie Lesen, Schreiben Adressbus Zum Ansprechen von Speicherzellen Datenbus Zum Datenaustausch CPU A Adressregister Adressbus Steuerbus Datenbus W R Arbeits Speicher D Datenregister Ein Beispiel 8 Addiere zwei Zahlen aus dem Arbeitsspeicher Step Transportiere den ersten Operanden von Speicherzelle in ein Register Step Transportiere den zweiten Operanden von Speicher in ein anderes Register Step Aktiviere den Schaltkreis für Addition mit den in Step und verwendeten Registern als Eingaben und einem anderen Register für die Ausgabe Step Speichere das Ergebnis in einer Speicherzelle Step Halt Wenn die Befehle von einem Menschen einzeln eingegeben werden, kann der Computer nicht sehr schnell laufen (zb wie bei alter Rechenmaschinen) Stattdessen wird das Programm kodiert im Arbeitsspeicher abgelegt Der Computer findet automatisch in einer bestimmten Reihenfolge den Befehl und führt es aus Ein Befehl kann vom Computer nur direkt ausgeführt werden, wenn der Befehl in einer von der CPU erkannter Sprache kodiert ist Diese Sprache ist die Maschinensprache
Maschinensprache 9 Eine Maschinensprache ist ein System von Anweisungen und Daten, die von einem passenden Mikroprozessor direkt ausgeführt werden können Zwei Designphilosophien: RISC (Reduced Instruction Set Computing): Rechnen mit reduzierten Befehlssatz Jeder einzelne Befehl führt nur ganz einfache Operationen aus Beispiel: PowerPC (IBM), XScale (Intel), SPARC (Sun Microsystem) CISC (Complex Instruction Set Computing): Rechnen mit komplexem Befehlssatz Ein CISC-Befehl kann komplexe Operationen durchführen Beispiel: Pentium (Intel), xseries (IBM) Beispiel: In CISC gibt es einen Befehl für das Kopien von Speicherblöcke In RISC braucht man dafür viele Einzelbefehle Maschinen-Befehle Die Kategorien der grundlegenden Maschinen-Befehle Speicheroperationen LOAD: lade einem Register mit dem Inhalt einer Speicherzelle STORE: übertrage den Inhalt eines Registers in eine Speicherzelle Arithmetische und Logische Operationen ADD: Register + Register = Register OR: Register Register = Register (bitweise) AND: Register Register = Register (bitweise) XOR: Register Register = Register (bitweise) ROTATE: rotiere Register = Register SHIT: verschiebe Register = Register NOT: komplementiere Register = Register ROTATE SHIT Kontrollbefehle JUMP: Springe zu einem bestimmten Befehl (bedingungslos oder bedingt) STOP: Stoppe die Ausführung
Ein Beispiel Dividiere zwei Zahlen x und y in Speicherzelle Z und Z und speichere das Ergebnis in der Zelle Z Step LOAD R, Z (Lade Register R mit x) Step LOAD R, Z (Lade Register R mit y) Step JUMP, R (Springe zur Step, falls R = ) Step DIVIDE R, R, R (Dividiere R durch R und lege das Ergebnis nach R) Step STORE R, Z (Übertrage R in die Zelle Z) Step STOP (Halt) Bemerkungen: Ein Befehl besteht aus zwei Teile: Operator und Operand Operatoren sind durch Nummer kodiert Die Operande lassen sich durch ihrer Adresse im Speicher darstellen Damit kann jede Befehl sowie jedes Programm als (olge von) Binärworte gespeichert werden ZB: STORE Reg ZelleA = A = Beispiel einer vereinfachten Maschinensprache Angenommen Die CPU hat Register mit den Nummern bis (hexadezimal) Der Arbeitsspeicher hat Speicherzelle mit den Adresse von bis Die Größe der Register und Speicherzelle ist 8 Bits Die ganzen Zahlen werden als Zweierkomplement mit 8 Bits gespeichert Die Gleitpunktenzahlen werden wie folgt gespeichert } {{ } Vz } {{ } } {{ } Exponent Mantisse Jeder Maschinenbefehl ist durch ein Binärwort der Länge ( Bytes) kodiert: die erste Bits für den Operationscode und die letzten Bits für die Operanden OP { }} Code { { Operand }} { Binärcode A Hexadezimalcode STORE Reg in Zelle A
Architektur der Beispielmaschine Prozessor Arbeitsspeicher Adr Zelle Tabelle der Maschinenbefehle Code Befehl Bedeutung RXY LOAD R,XY Lade Inhalt der Speicherzelle XY in Register R RXY SET R,XY Lade Binärwort XY in Register R RXY STORE R,XY Speichere Inhalt von Register R in Speicherzelle XY RS MOVE R,S Speichere Inhalt von Register S in Register R (Kopieren) RST ADDI R,S,T Register R Register S + Register T (Integer) RST ADD R,S,T Register R Register S + Register T (loating Point) RST OR R,S,T Register R Register S Register T (bitweise) 8RST AND R,S,T Register R Register S Register T (bitweise) 9RST XOR R,S,T Register R Register S Register T (bitweise) ARSX ROT R,S,X Register R Register S um X Bits nach rechts rotiert BRS NOT R,S Register R Register S bitweise negiert CRXY JUMP R, XY alls Register R = dann springe zu Befehl in Speicherzelle XY D HALT Stoppe die Maschine
Programmablauf Der Ablauf der Ausführung eines Programms besteht aus wiederholtem Ausführen des Befehlszyklusses: () Abholen Holen des Befehls, dessen Adresse im steht, aus dem Speicher in das und erhöhen des s um die Länge des Befehls (In unserem Beispiel ) () Dekodieren Dekodieren des Befehls im () Ausführen dekodierten Befehl ausführen und anschließend wieder nach () Dekodieren Abholen Ausführen Maschinenprogramm für Addition Addiere zwei Zahlen x und y, die in den Speicherzellen C bzw D liegen, und speichere die Summe x + y in die Speicherzelle E Das kodierte Programm: P = (C, D,, E, D) P kann als olge von Befehle in den Speicherzelle A bis A9 wie folgt gespeichert werden (Als Beispiel x = (A) = () und y = () = (9) ) A Adr Zelle C (A) D () E A A C A A D A A A A E A8 D A9
A Adr Zelle C (A) D () E A A C A A D A A A A E A8 D A9 igure : Vor der Ausführung 8 A C Adr Zelle C (A) D () E A A C A A D A A A A E A8 D A9 igure : Hole den Befehl C und erhöhe den um
9 A C Adr Zelle C (A) D () E A A C A A D A A A A E A8 D A9 igure : Dekodiere den Befehl C A C Adr Zelle C (A) D () E A A C A A D A A A A E A8 D A9 igure : ühre den Befehl C aus
A D Adr Zelle C (A) D () E A A C A A D A A A A E A8 D A9 igure : Hole den Befehl D und erhöhe den um A D Adr Zelle C (A) D () E A A C A A D A A A A E A8 D A9 igure : Dekodiere den Befehl D
A D Adr Zelle C (A) D () E A A C A A D A A A A E A8 D A9 igure : ühre den Befehl D aus A Adr Zelle C (A) D () E A A C A A D A A A A E A8 D A9 igure 8: Hole den Befehl und erhöhe den um
A Adr Zelle C (A) D () E A A C A A D A A A A E A8 D A9 igure 9: Dekodiere den Befehl A Adr Zelle C (A) D () E A A C A A D A A A A E A8 D A9 igure : ühre den Befehl aus
A8 E Adr Zelle C (A) D () E A A C A A D A A A A E A8 D A9 igure : Hole den Befehl E und erhöhe den um 8 A8 E Adr Zelle C (A) D () E A A C A A D A A A A E A8 D A9 igure : Dekodiere den Befehl E
9 A8 E Adr Zelle C (A) D () E A A C A A D A A A A E A8 D A9 igure : ühre den Befehl E aus AA D Adr Zelle C (A) D () E A A C A A D A A A A E A8 D A9 igure : Hole den Befehl D und erhöhe den um
AA D Adr Zelle C (A) D () E A A C A A D A A A A E A8 D A9 igure : Dekodiere den Befehl D AA D Adr Zelle C (A) D () E A A C A A D A A A A E A8 D A9 igure : ühre den Befehl D aus Halt