ComputerEin Computer ist im Prinzip eine programmierbare Rechenmaschine. Ein Programm, das sich im Arbeitsspeicher des Computers befindet wird gestartet. Während der Ausführung des Programms fallen Daten an, die zwischengespeichert werden müssen. Die zentrale Schaltstelle ist die CPU. CPU mit zusätzlicher HardwareDie CPU alleine genügt noch nicht, für einen sinnvoll funktionierenden Computer. Es wird noch ein Minimum an zusätzlicher Hardware benötigt. Dazu gehört der Arbeitsspeicher und eine Möglichkeit mit der CPU zu kommunizieren (I/O-Schnittstelle). Der ArbeitsspeicherNeben der CPU spielt der Arbeitsspeicher in einem Computersystem die zentrale Rolle. Hier werden Programmcode und Daten gespeichert. Die CPU muss bei fast allen Befehlen, teilweise mehrfach, auf den Speicher zugreifen.
Der Arbeitsspeicher heutiger Computer besteht aus einem mehr oder weniger großen Halbleiterspeicher.
Wesentlich ist, dass auf jede Speicherzelle wahlfrei zugegriffen werden kann ( Organisation des Arbeitsspeichers
Der Arbeitsspeicher wird üblicherweise in Unterschied zwischen Arbeitsspeicher und Registern
Sowohl beim Arbeitsspeicher, als auch bei Registern, handelt es sich um Halbleiterspeicher. Unterschiedliche Speichertechnologien
Beim Arbeitsspeicher ( Volatile Memory
DRAM benötigt auf einem Halbleiter-Chip weniger Fläche pro Informationseinheit als SRAM. Daher wird bei großen Speichereinheiten auf die DRAM-Technologie gesetzt. SRAM benötigt zwar mehr Platz pro Informationseinheit. Allerdings ist SRAM meistens schneller als DRAM und muss nicht regelmäßig refreshed werden. Register und Caches auf der CPU sind in SRAM-Technologie ausgeführt. Non-volatile Memory
Auch im Massenspeicher-Bereich verdrängt die Halbleiter-Technologie zunehmend die magnetischen und optischen Technologien wie Festplatten und CD/DVD-ROM. Vorteile der Halbleiter-Technologie sind die Zugriffsgeschwindigkeit bei sehr geringen Latenzzeiten und die Tatsache, dass keine beweglichen (mechanischen) Komponenten nötig sind. Allerdings ist die Anzahl an Lösch- und Schreibzyklen begrenzt. Daher sind diese Technologien für Massenspeicher, deren Inhalt dauernd geändert wird, nicht so gut geeignet. Trennung von Programm und DatenSowohl der Programmcode, als auch die während der Laufzeit anfallenden Daten, müssen irgendwo in einem Speicher abgelegt werden. Programmcode und Daten dürfen sich nicht ins Gehege kommen. Bei der Harvard-Architektur liegen diese auf physikalisch voneinander getrennten Speicherbereichen. Die meisten Mikrocontroller sind auf diese Art aufgebaut. Bei einem von Neumann Rechner liegen Programmcode und Daten in einem gemeinsamen Speicher. Der User muss also sicherstellen, dass die Daten den Programmcode nicht überschreiben. Bei den heutigen Computersystemen übernimmt das Betriebssystem diese Aufgabe. Der Stack
Für Daten, die während des Programmablaufs kurz zwischengespeichert werden müssen, hat sich die Aufteilung des Datenspeichers in den
Der Stack ist ein Stapelspeicher. D.h. Daten werden auf dem Stack abgelegt und wieder heruntergenommen. Der Stack ist eine dynamische Struktur, die wächst je mehr Daten auf dem Stack abgelegt werden und schrumpft, je mehr Daten vom Stapel heruntergenommen werden. Der Zugriff kann immer nur auf das oben aufliegende Element erfolgen. Die meisten Prozessoren kennen spezielle Befehle, die mit dem Stack arbeiten: push
Der pop
Der Der Stackpointer
Die Speicheradresse der obersten Speicherzelle des Stacks wird im
Bei den meisten Prozessoren beginnt der Stack bei hohen Speicheradressen und wächst in Richtung Speicheradresse 0.
Mit Hilfe des Stackpointers kann auch während der Laufzeit überprüft werden, ob ein Speicherüberlauf ( Unterfunktionen im Programmcode
Ein klassisches Einsatzgebiet für den Stack ist das Aufrufen einer Unterfunktion aus dem laufenden Prozess heraus. Ein Funktionsaufruf aus einem laufenden Programm läuft also wie folgt ab:
BussystemeDie Anbindung von Arbeitsspeicher und Peripherie erfolgt über verschiedene Bussysteme. Ein Bus besteht aus mehreren elektrischen Leitungen, die parallel liegen und verschiedene Bauteile oder Baugruppen miteinander verbinden. Dafür sind mindestens ein Datenbus und ein Steuerbus nötig. Der DatenbusDie eigentlichen Informationen, die von der CPU benötigt werden, werden über den Datenbus an den Arbeitsspeicher und die Peripherie verteilt. In den meisten Fällen hat der Datenbus die Breite der ALU. Der SteuerbusAuch die Funktion des Arbeitsspeichers und der Peripherie muss gesteuert werden. Dies geschieht normalerweise über einen separaten Steuerbus. Der AdressbusBesonders stark belastet wird der Bus beim Zugriff auf den Speicher. Dies ist gleichzeitig eine der häufigsten Operationen, die ein Computersystem ausführen muss. Folgende Operationen müssen für einen Speicherzugriff stattfinden:
Ein gemeinsamer Bus für die Adressierung und die Datenübertragung stellt sich als Bremsschuh für die Performance des Computers dar. Daher gibt es für die Adressierung der Speicherzellen einen eigenen Bus, den Adressbus. Die Breite des Adressbusses unterscheidet sich normalerweise von der Breite des Datenbusses. Die Breite des Adressbusses begrenzt auch die maximale Anzahl der adressierbaren Speicherzellen. |