<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.foxtom.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=R.Stremming</id>
	<title>Foxwiki - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.foxtom.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=R.Stremming"/>
	<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php/Spezial:Beitr%C3%A4ge/R.Stremming"/>
	<updated>2026-06-17T08:10:04Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=CPU&amp;diff=22329</id>
		<title>CPU</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=CPU&amp;diff=22329"/>
		<updated>2021-02-04T14:03:08Z</updated>

		<summary type="html">&lt;p&gt;R.Stremming: /* Sprungvorhersage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;C&#039;&#039;&#039;entral &#039;&#039;&#039;p&#039;&#039;&#039;rocessing &#039;&#039;&#039;u&#039;&#039;&#039;nit &lt;br /&gt;
&lt;br /&gt;
=Funktion=&lt;br /&gt;
Mikroprozessoren sind hochkomplexe Maschinen. Sie basieren jedoch&lt;br /&gt;
auf einem einfachen Grundprinzip. Wer es kennt, versteht auch die&lt;br /&gt;
Funktionsweise der modernen CPUs.&lt;br /&gt;
&lt;br /&gt;
=History=&lt;br /&gt;
* Die Von-Neumann-Architektur besteht aus vier Funktionseinheiten, die in Bild 1 zu sehen sind: Rechenwerk, Steuerwerk, Speicher (Memory) und Ein-/Ausgabeeinheit (I/O-Unit). &lt;br /&gt;
* Dazu kommen noch die Verbindungen zwischen den Funktionsblöcken - das Bussystem.&lt;br /&gt;
* Die beiden wichtigsten Einheiten ALU und CU sind heute im Prozessor vereint. &lt;br /&gt;
* Die CPU als Ganzes übernimmt innerhalb des Von-Neumann-Rechners die Ausführung der Befehle und die hierfür notwendige laufsteuerung.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[Datei:Diagram1.png|gerahmt|ohne| &#039;&#039;&#039;Bild 1&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Von-Neumann-Rechner:Er beinhaltete schon vor 50 Jahren die wesentlichen Bestandteile heutiger PCs.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Von-Neumann-Rechner=&lt;br /&gt;
&lt;br /&gt;
* Die Anpassung für jedes zu lösende Problem erfolgt mit im Speicher abgelegten Programmen. &lt;br /&gt;
* Diese Software beinhaltet die Informationen zur Steuerung des Rechners.&lt;br /&gt;
* Jede Speicherzelle ist mit einer festen Adresse eindeutig identifizierbar.&lt;br /&gt;
* In ihrer ursprünglichen Form verarbeitet sie mit nur einem Prozessor Schritt für Schritt Befehle und Daten, die aus dem Speicher stammen.&lt;br /&gt;
* Obwohl Befehle und Daten aus dem gleichen Speicher kommen, gibt es nur eine Busverbindung für Beides dorthin.&lt;br /&gt;
* So wurde eine hierarchisch gegliederte Speicherstruktur mit Registern und verschiedenen Cache-Ebenen eingeführt. &lt;br /&gt;
* Die sequenzielle Befehlsausführung wird in der CPU nach Kräften parallelisiert. &lt;br /&gt;
* Dazu stehen mehrere Funktionseinheiten und Ausführungsebenen bereit.&lt;br /&gt;
&lt;br /&gt;
=Erweiterte Architektur=&lt;br /&gt;
&lt;br /&gt;
* Der Von-Neumann-Rechner holt alle Befehle und Daten direkt aus dem Speicher. Für die heutigen CPUs wäre das viel zu langsam. &lt;br /&gt;
* Dieser CPU orientiert sich hinsichtlich Arbeitsweise stark an den x86-Prozessoren der PCs. &lt;br /&gt;
* Deshalb besitzt sie einen zusätzlichen Registersatz, der den Zugriff auf Befehle und Daten ohne Wartezyklen ermöglicht. &lt;br /&gt;
* Es handelt sich um Mehrzweckregister für Befehle und Daten. &lt;br /&gt;
* Das Adresswerk ist für die Berechnung der effektiven Adresse zuständig. &lt;br /&gt;
* Und der L1-Cache entkoppelt den Prozessorkern zusätzlich vom langsamen externen Speicher. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:Diagram2.png|gerahmt|ohne| &#039;&#039;&#039;Bild 2&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel-Prozessor: Die erweiterte CPU hat schon alles, was einen einfachen Mikroprozessor ausmacht.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wie die einzelnen Funktionsblöcke genau arbeiten, klären wir in den folgenden Abschnitten. Bevor wir aber ins Detail gehen, interessiert uns der grundsätzliche Programmablauf im Prozessor:&lt;br /&gt;
&lt;br /&gt;
# Holphase (Fetch): Zunächst muss ein Befehl aus dem Speicher geladen werden. Wenn sich die gesuchte Information noch nicht im L1-Cache befindet, muss die BIU dafür den Speicher ansprechen.&lt;br /&gt;
# Dekodierphase (Decode): Das Steuerwerk untersucht den Befehl hinsichtlich der vorzunehmenden Arbeitsschritte. Es entscheidet, welche Operation (Addition, Subtraktion, logische Verknüpfung und so weiter) die ALU auszuführen hat. (Wenn für den Befehl noch Daten (Operanden) geholt werden müssen, steuert das ebenfalls die CU. Dazu befehligt Sie auch das Adresswerk, das die Position der gewünschten Information ermittelt.)&lt;br /&gt;
# Ausführungsphase (Execute): Die ALU wird vom Steuerwerk nun angewiesen, die gewünschte Operation mit den geladenen Daten auszuführen&lt;br /&gt;
# Schreibphase (Write Back): Das Ergebnis der Operation landet in einem der Register oder im Speicher. Um langwierige Zugriffe auf das externe RAM zu vermeiden, sammelt die CPU die Daten eventuell im L1-Cache, damit sie später in einem schnellen Blockschreibvorgang übertragen werden können.&lt;br /&gt;
&lt;br /&gt;
=Steuereinheit (CU)=&lt;br /&gt;
&lt;br /&gt;
* Die CU ist die Kommandozentrale der CPU. &lt;br /&gt;
* Sie steuert alle Abläufe im Innern des Prozessors sowie seine Kommunikation nach außen.&lt;br /&gt;
* Die CU holt sich diesen Befehl aus dem Arbeitsspeicher/Cache und speichert ihn in einem Register zwischen. &lt;br /&gt;
* Damit ist der CPU-Bus frei für weitere Aktionen. &lt;br /&gt;
* Im Befehlsdecoder untersucht die CU die einzelnen Bits des commandos dann genauer. &lt;br /&gt;
* Aus einem Teil der Information ergibt sich der weitere logische und zeitliche Ablauf bei der Befehlsausführung.&lt;br /&gt;
* Handelt es sich um einen fest implementierten Befehl, werden sofort die entsprechenden Schritte in der Ablaufsteuerung eingeleitet. &lt;br /&gt;
* Sind alle zur Steuerung notwendigen Informationen gesammelt, beginnt die Ablaufsteuerung damit, das System zu koordinieren. &lt;br /&gt;
* Dazu gehört auch die Steuerung der BIU, um die Operanden für die Rechenbefehle in die Register zu laden.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[Datei:Diagram3.png|700px|gerahmt|ohne| &#039;&#039;&#039;Bild 3&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Control Unit: Die CU steuert alle Abläufe im Innern des Prozessors sowie seine Kommunikation nach außen.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Rechenwerk (ALU)=&lt;br /&gt;
&lt;br /&gt;
* Die ALU ist in der CPU für die Rechenarbeit zuständig. &lt;br /&gt;
* Alle aktuellen PC-Prozessoren besitzen neben einem oder mehreren dieser Rechenwerke für Ganzzahlen auch solche für Fließkommaarithmetik. &lt;br /&gt;
* Das Bild zeigt den Datenweg unserer Beispiel-CPU. &lt;br /&gt;
* Die CU steuert die ALU, die auf Anweisung die beiden Operanden aus dem Registersatz holt, mit denen sie rechnen soll.&lt;br /&gt;
* Sie werden zunächst in den beiden Hilfsregistern zwischengepuffert, damit sie während der gesamten Rechenoperation stabil anliegen. &lt;br /&gt;
* Im nächsten Schritt führt die ALU die von der CU geforderte Rechenoperation aus.&lt;br /&gt;
* Das Resultat wird schließlich im Ergebnisregister zwischengepuffert, damit sich die ALU sofort der nächsten Aufgabe zuwenden kann. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:Diagram4.png|600px|gerahmt|ohne| &#039;&#039;&#039;Bild 4&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Arithmetical and Logical Unit: Die ALU und ihr Datenweg. Die Hilfsregister für die Operanden und Ergebnisse gehören zu diesem nktionsblock.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Adresseinheit (AU) &amp;amp; Busschnittstelle (BIU)=&lt;br /&gt;
&lt;br /&gt;
* Der Aufbau der AU mit einem zentralen Addierer in Bild 5 ähnelt dem der ALU.&lt;br /&gt;
* Tatsächlich wurde die Adressberechnung bei den ersten Prozessoren auch noch in dieser erledigt. &lt;br /&gt;
* Die spezialisierte AU erledigt das jedoch schneller und vor allem parallel zur ALU.&lt;br /&gt;
* Der Decoder ist im einfachsten Fall als Linksschieberegister realisiert.&lt;br /&gt;
* Dieser Barrel Shifter extrahiert die Adressinformation aus dem Befehl durch Verschieben des Befehlscodes um n Bits in nur einem Taktzyklus.&lt;br /&gt;
* Die extrahierte Grundadresse gelangt dann in Hilfsregister A, wo Sie stabil anliegt bis der Addierer seine Arbeit beendet hat. &lt;br /&gt;
* Hilfsregister B beinhaltet den Inhalt des Programmzählers oder den des BIU-Adresspuffers.&lt;br /&gt;
* Die komplexere MMU realer PC-Prozessoren kann darüber hinaus virtuelle Adressen verwalten. &lt;br /&gt;
* Das Betriebssystem lagert hierbei den Speicher blockweise auf die Festplatte aus. &lt;br /&gt;
* Greift die CPU auf den ausgelagerten Speicher zu, verursacht das einen Seitenfehler, der die MMU zum Handeln veranlasst. &lt;br /&gt;
* Das Betriebssystem blendet dann den gewünschten Speicherbereich in das RAM des PCs ein und lagert einen gerade nicht benötigten dafür aus. &lt;br /&gt;
* Den virtuellen Speicher kann die CPU dank MMU so ansprechen, als wäre er real existierendes RAM.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:Diagram5.png|gerahmt|ohne| &#039;&#039;&#039;Bild 5&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Address Unit: Die AU sorgt für die Berechnung der Adresse. In modernen CPUs verseht eine leistungsfähigere MMU diesen Dienst.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Busschnittstelle (BIU)=&lt;br /&gt;
&lt;br /&gt;
* Die Busschnittstelle verbindet die internen Busse des Prozessors mit der Außenwelt.&lt;br /&gt;
* Sie enthält Puffer zur Zwischenspeicherung von Adressen, Daten und Steuersignalen.&lt;br /&gt;
* Die CPU arbeitet intern mit einer möglichst niedrigen Spannung, damit die Erwärmung bei hohen Taktfrequenzen in erträglichen Grenzen bleibt. &lt;br /&gt;
* Die BIU sorgt deshalb auch für eine Pegelanpassung zwischen dem CPU-Kern und dem externen Bussystem.&lt;br /&gt;
&lt;br /&gt;
=Cache-Grundlagen=&lt;br /&gt;
&lt;br /&gt;
* Zur Steigerung der Arbeitsleistung sitzt in der CPU zwischen den extrem schnellen Funktionseinheiten und dem vergleichsweise sehr langsamen Arbeitsspeicher der L1-Cache. &lt;br /&gt;
* Aus Platzgründen kann der L1-Cache in der CPU nicht besonders groß sein. &lt;br /&gt;
* Er bewegt sich in der Regel in Größenordnungen von 16 bis 64 KByte. &lt;br /&gt;
* Die Kunst besteht also darin, den schnellen kleinen Speicher so mit dem langsamen großen Arbeitsspeicher zu kombinieren, dass sich eine möglichst schnelle Gesamtlösung ergibt. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:Diagram6.png|gerahmt|ohne| &#039;&#039;&#039;Bild 6&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cache Interna: Der prinzipielle Aufbau eines Caches (oben) sowie die Adressauswertung im Cache-Controller (unten).&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Bild 6 zeigt die Auswertung einer 32-Bit-Adresse nach diesem Prinzip.&lt;br /&gt;
&lt;br /&gt;
Als einfache Analogie betrachten wir einen Briefträger bei der Arbeit:&lt;br /&gt;
* Er trägt in einer Stadt (Arbeitsspeicher) die Post (Daten) aus.&lt;br /&gt;
* Dafür sortiert er die Post in seiner Tasche nach Straßen (Tag).&lt;br /&gt;
* In einer Straße holt er sich die hierfür bestimmte Post heraus und verteilt sie an die Häuser (Set-Zeile). &lt;br /&gt;
* Um in Mehrfamilienhäusern auch den richtigen Briefkasten zu erwischen, benötigt er noch den Familiennamen (Byte-Nummer).&lt;br /&gt;
&lt;br /&gt;
=Cache-Organisation=&lt;br /&gt;
&lt;br /&gt;
* Der direkt abgebildete (direct mapped) Cache im Bild unten ist die einfachste Form.&lt;br /&gt;
* Jedem Set ist nur ein Cache-Eintrag zugeordnet. &lt;br /&gt;
* Dadurch deckt man im Arbeitsspeicher einen Block von x+n Sets ab.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:DiagrammHardwareCPU10.png|gerahmt|ohne| &#039;&#039;&#039;Bild 7&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assoziativspeicher: Der teilassoziative Mehrweg-Cache beinhaltet im Prinzip mehrere Direct Mapped Caches plus Statistik-Bits (LRU).&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Der Briefträger hat dieses Problem ebenfalls: &lt;br /&gt;
&lt;br /&gt;
* Wenn er einen Abstecher in eine Seitenstraße macht, muss er den nach Straßen vorsortierten Briefstapel zurücklegen und den für die Seitenstraße herausholen.&lt;br /&gt;
* Die Lösung des Problems sind teilassoziative Mehrweg-Caches. &lt;br /&gt;
* Auch dieser Cache-Typ speichert nur einen Teil der Adresse im Tag ab. &lt;br /&gt;
* Taucht ein Tag aber nochmals auf, erfolgt kein Komplettaustausch des Speicherblocks. &lt;br /&gt;
* Die Hardware merkt sich den Eintrag wieder in der gleichen Set-Zeile. &lt;br /&gt;
* Allerdings erfolgt die Speicherung in einer weiteren Ebene (Weg), sodass die erste Zeile nicht überschrieben werden muss. &lt;br /&gt;
* Die Ebenenoder Wegauswahl erfolgt über den Set-Adressteil.&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Mit einer Mehrwegsortierung arbeitet auch der Briefträger schneller: &lt;br /&gt;
&lt;br /&gt;
* Er hat sich die Post nicht nur in Straßenzüge (Tag) unterteilt, sondern nochmals mit einem Gummiband hinsichtlich der Straßenseite gebündelt (Set-Weg). &lt;br /&gt;
* Bei einem Abstecher in die Seitenstrasse greift er sich nur das Briefbündel für eine Straßenseite. &lt;br /&gt;
* Dafür legt er nur eines der zwei Bündel der alten Straße weg - und zwar das von der anderen Straßenseite. &lt;br /&gt;
* Wenn er aus der Seitenstrasse zurückkommt, hat er immer noch das Bündel der Seite in der Hand, bei der er abgebogen ist.&lt;br /&gt;
* Ein Mehrweg-Cache ist ein vervielfachter Direct Mapped Cache. &lt;br /&gt;
* Der Schaltungsaufwand für einen teilassoziativen 2-Wege-Cache ist demnach doppelt so hoch wie bei der einfachen Version. &lt;br /&gt;
* Bei einem 4-Wege-Cache vervierfacht er sich.&lt;br /&gt;
* Irgendwann sind jedoch auch die Ebenen eines Mehrweg-Caches voll. &lt;br /&gt;
* Mittels zusätzlich gespeicherter LRU-Bits kann der Cache dann feststellen, welcher Eintrag in welcher Ebene am längsten nicht mehr benutzt wurde.&lt;br /&gt;
* Dieser Wegeintrag wird dann überschrieben.&lt;br /&gt;
&lt;br /&gt;
=Pipeline-Verfahren=&lt;br /&gt;
&lt;br /&gt;
* Bis jetzt sind wir davon ausgegangen, dass die CPU die Befehle nach dem klassischen Von-Neumann-Prinzip nacheinander verarbeitet. &lt;br /&gt;
* Jeder Befehl wird innerhalb einer bestimmten Zeit (Taktzyklus) erledigt, dann ist der Nächste dran.&lt;br /&gt;
* Wenn man der BIU erlaubt, schon Befehle aus dem Speicher zu holen während die CU gerade einen analysiert, hat man zwei Arbeitsschritte parallelisiert. &lt;br /&gt;
* Es sind also zwei Befehle gleichzeitig in Teilbearbeitung. Überträgt man das Prinzip auf alle beteiligten Funktionseinheiten, erhöht sich die Zahl der Teilbearbeitungen weiter. &lt;br /&gt;
* Dieses Pipeline-Prinzip verarbeitet aber die eingehenden Befehle und Daten immer noch Schritt für Schritt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:DiagrammHardwareCPU11.png|600px|gerahmt|ohne|&#039;&#039;&#039;bild 8&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pipeline in Funktion: Mit der Pipelining-Technik lässt sich die Befehlsausführung beschleunigen.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Superskalare Architektur=&lt;br /&gt;
&lt;br /&gt;
* Wenn schon eine Pipeline die Geschwindigkeit erhöht, geht es mit Zweien noch schneller. &lt;br /&gt;
* In Bild 9 &amp;quot;Parallel ist schneller&amp;quot; ist im oberen Teil ein solcher Ansatz zu sehen.&lt;br /&gt;
* Auf diese Weise arbeitet beispielsweise der Intel Pentium. &lt;br /&gt;
* Um unnötige Probleme mit Abhängigkeiten zwischen den Befehlen zu minimieren, arbeitet die Intel-CPU allerdings nur bei Kommandos gleichzeitig mit beiden Pipelines, die gut zueinander passen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:Diagram9.png|gerahmt|ohne| &#039;&#039;&#039;Bild 9&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parallel ist schneller: Superskalare Architekturen mit einer doppelten Pipeline (oben) und parallel arbeitenden Ausführungseinheiten&lt;br /&gt;
(unten).&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Sprungvorhersage&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
*  Wird in der (Mikro-)Rechnerarchitektur verwendet.&lt;br /&gt;
* Behandelt das Problem von Mikroprozessoren&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inhaltsverzeichnis:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1. Übersicht&lt;br /&gt;
&lt;br /&gt;
2. Funktionsweise: Statische Sprungvorhersage &amp;amp; Dynamische Sprungvorhersage&lt;br /&gt;
&lt;br /&gt;
3. Dynamische Sprungvorhersagetechniken: Branch History Table (BHT),n-Bit träger Automat,1-Bit-Automat &amp;amp; gshare&lt;br /&gt;
&lt;br /&gt;
4. Statische Sprungvorhersagetechnike: Stall/Freeze, Predict taken, Predict not taken &amp;amp; Delayed Branches&lt;br /&gt;
&lt;br /&gt;
5. Sprungzielvorhersage-Techniken: Branch Target Buffer (BTB) &amp;amp; Call-Return-Stapel&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1. Übersicht:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Unter Sprungvorhersage (auch Verzweigungsvorhersage) versteht man:&lt;br /&gt;
&lt;br /&gt;
* Die Vorhersage, ob ein bedingter Sprung ausgeführt wird.&lt;br /&gt;
&lt;br /&gt;
* Die Zieladresse eines Sprunges zu ermitteln.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Zwei Arten von Sprüngen:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
- Bedingter Sprung: Jcondition Adresse&lt;br /&gt;
&lt;br /&gt;
- Unbedingter Sprung: JMP Adresse, JMP BerechneteAdresse, CALL Adresse, CALL BerechneteAdresse, RET&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* In modernen Prozessoren werden Maschinenbefehle in mehreren Verarbeitungsschritten innerhalb einer Verarbeitungskette (Pipeline) ausgeführt.&lt;br /&gt;
&lt;br /&gt;
* Um die Leistungsfähigkeit des Prozessors zu maximieren, wird, nachdem ein Befehl in die Pipeline geladen wurde und z. B. im nächsten Schritt mit der Analyse des Befehls fortgefahren werden soll, gleichzeitig mit dem Laden des nächsten Befehles begonnen.&lt;br /&gt;
&lt;br /&gt;
* Es befinden sich also (meistens) eine ganze Reihe von Befehlen zur sequentiellen Abarbeitung in der Pipeline.&lt;br /&gt;
&lt;br /&gt;
* Wird jetzt am Ende der Pipeline festgestellt, dass ein bedingter Sprung ausgeführt wird, so sind alle in der Pipeline anstehenden und teilabgearbeiteten Befehle ungültig.&lt;br /&gt;
&lt;br /&gt;
* Der Prozessor löscht jetzt die Pipeline und lädt diese dann von der neuen Programmcodeadresse neu. &lt;br /&gt;
&lt;br /&gt;
* Das reduziert die Abarbeitungsgeschwindigkeit von Programmen und reduziert die Energieeffizienz.&lt;br /&gt;
&lt;br /&gt;
* Das Ziel ist möglichst frühes Erkennen eines Sprungbefehls und Erkennen seiner Sprungzieladresse.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2. Funktionsweise:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Statische Sprungvorhersage:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Die statische Sprungvorhersage ändert ihre Vorhersage während des Programmablaufs nicht.&lt;br /&gt;
&lt;br /&gt;
* Sie erreicht dadurch nur eine Vorhersagegenauigkeit von 55 bis 80 %. &lt;br /&gt;
&lt;br /&gt;
* Diese Technik geht von bekannten Tatsachen aus.&lt;br /&gt;
&lt;br /&gt;
* Manche Compiler unterstützen den Mechanismus auch mit speziellen Flags im Befehlscode.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dynamische Sprungvorhersage:&#039;&#039;&#039;&lt;br /&gt;
* Die dynamische Sprungvorhersage geschieht zur Laufzeit durch eine elektronische Verschaltung innerhalb der CPU.&lt;br /&gt;
&lt;br /&gt;
* Ihre Vorhersagegenauigkeit liegt bei bis zu 98 %.&lt;br /&gt;
&lt;br /&gt;
* Die einfachste Methode spekuliert anhand der Sprungrichtung.&lt;br /&gt;
&lt;br /&gt;
* Erkannte bedingungslose Sprünge werden einfach vorab aus der Befehlswarteschlange aussortiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3. Dynamische Sprungvorhersagetechniken:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Branch History Table (BHT):&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Die BHT (auch Branch-Prediction Buffer) versucht ebenfalls die letzten Sprünge mitzuprotokollieren. &lt;br /&gt;
&lt;br /&gt;
* Dazu verwendet sie einen Teil der Sprungbefehlsadresse als Hashwert. &lt;br /&gt;
&lt;br /&gt;
* Im Allgemeinen nimmt man dafür den niederwertigen Adressanteil.&lt;br /&gt;
&lt;br /&gt;
* Diese Adressteile können natürlich nicht immer eindeutig sein. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1-Bit-Automat:&#039;&#039;&#039;&lt;br /&gt;
* Wird ein gespeicherter Sprung genommen.&lt;br /&gt;
&lt;br /&gt;
* Ein Problem ist aber, dass er alternierende Sprünge nicht berücksichtigt.&lt;br /&gt;
&lt;br /&gt;
* Die Lösung hierfür ist ein n-Bit-Automat.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;n-Bit träger Automat:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Dieser setzt das Korrektheitsbit erst nach den n Fehlschlägen auf 0.&lt;br /&gt;
&lt;br /&gt;
* Beim ersten Schleifendurchlauf ist der Zustand 00, und die Bedingung sei wahr.&lt;br /&gt;
&lt;br /&gt;
* Ist beim nächsten Schleifendurchlauf die Bedingung wieder wahr, wird der Zustand 10 und sagt daher auch für alle weiteren Sprünge eine wahre Sprungbedingung vorher.&lt;br /&gt;
&lt;br /&gt;
* Ist beim zweiten Durchlauf die Bedingung falsch, so geht der Zustand wieder nach 00 zurück. &lt;br /&gt;
&lt;br /&gt;
* Ist der Zustand 11, so muss die Sprungbedingung zweimal falsch gewesen sein, bevor die Vorhersage wieder „falsch“ lautet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;gshare:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Bei gshare werden der Adressteil und die Global History mit XOR verknüpft und in eine Tabelle abgelegt.&lt;br /&gt;
&lt;br /&gt;
* gshare kombiniert somit Per-Address History mit Global History.&lt;br /&gt;
&lt;br /&gt;
* Das Verfahren findet z. B. im AMD Athlon und Pentium III Anwendung.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4. Statische Sprungvorhersagetechniken:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Stall/Freeze:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Diese Technik hält einfach die ganze Pipeline kurz an. &lt;br /&gt;
&lt;br /&gt;
* Sprung wird nicht ausgeführt, macht normal weiter.&lt;br /&gt;
&lt;br /&gt;
* Sprung wird ausgeführt: Setze Programmzähler auf Sprungzieladresse.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Predict taken:&#039;&#039;&#039;&lt;br /&gt;
* Geht einfach davon aus, dass jeder bedingte Sprung auch ausgeführt wird.,&lt;br /&gt;
&lt;br /&gt;
* Wird in der EX-Stage allerdings festgestellt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Predict not taken:&#039;&#039;&#039;&lt;br /&gt;
* Geht davon aus, dass jeder bedingte Sprung nicht ausgeführt wird und macht normal weiter.&lt;br /&gt;
&lt;br /&gt;
* Sollte in der EX-Stage festgestellt werden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Delayed Branches:&#039;&#039;&#039;&lt;br /&gt;
* Delayed Branches stellen keine Sprung-Vorhersage dar. Sprungbefehle werden 1 bis 3 Befehle im Befehlsstrom nach vorn gezogen kodiert, die folgenden 1 bis 3 Befehle werden unabhängig vom Sprungbefehl immer ausgeführt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5. Sprungzielvorhersage-Techniken:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Sobald man in der ID-Stage erkennt, dass es sich um einen Sprung handelt, kann man prüfen, ob dieser Sprung schon mal stattfand und ggf. sein Sprungziel aus einem Puffer holen. &lt;br /&gt;
&lt;br /&gt;
* Somit kann man den Programmzähler sofort auf dieses Sprungziel stellen und die dortigen Instruktionen in die Pipeline laden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Branch Target Buffer (BTB):&#039;&#039;&#039;&lt;br /&gt;
* Der BTB (auch Sprungzielpuffer oder Branch Target Address Cache, BTAC)dient der Vorhersage der Folgeadresse, noch bevor der Befehl dekodiert wurde. &lt;br /&gt;
&lt;br /&gt;
* Auf diesem Wege wird die andernfalls unvermeidliche Pipelinelücke vermieden und somit die Verzweigungskosten gesenkt. Die Vorhersage wird anhand in einer Tabelle gespeicherter (vorher tatsächlich ausgeführter) Sprünge getroffen.&lt;br /&gt;
&lt;br /&gt;
Diese Tabelle enthält:&lt;br /&gt;
&lt;br /&gt;
* Vorhersageinformationen&lt;br /&gt;
&lt;br /&gt;
* Zieladressen&lt;br /&gt;
&lt;br /&gt;
* Tags&lt;br /&gt;
&lt;br /&gt;
* Der BTB liefert immer eine Adresse zurück.&lt;br /&gt;
&lt;br /&gt;
* Wird ein unbekannter Sprung abgefragt.&lt;br /&gt;
&lt;br /&gt;
* Wird aber ein bekannter Sprung abgefragt, so liefert er die Zieladresse.&lt;br /&gt;
&lt;br /&gt;
* Der BTB kann nicht immer korrekt arbeiten.&lt;br /&gt;
&lt;br /&gt;
* Da in modernen Programmierhochsprachen objektorientiert programmiert wird, kommt es zu häufigen Methodenaufrufen und somit zu vielen Moving Targets.&lt;br /&gt;
&lt;br /&gt;
* Um diese in der Hinsicht fatale Schwäche zu beheben, werden BTBs um einen Call-Return-Stapel erweitert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Call-Return-Stapel:&#039;&#039;&#039;&lt;br /&gt;
* Dieser Stapel speichert alle Return-Adressen nach dem LIFO-Prinzip.&lt;br /&gt;
&lt;br /&gt;
* Weiterhin wird von speziellen Call- und Return-Befehlen im Befehlssatz ausgegangen (wird also von einem normalen Sprung unterschieden).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sonderbehandlung beider Sprünge im Branch Target Buffer (BTB):&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Call:&#039;&#039;&#039; Beim Aufruf wird die Return-Adresse auf dem Call-Return-Stack abgelegt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Return:&#039;&#039;&#039; RET-Befehle sind im BTB speziell markiert. Beim Fetchen eines Befehls von einer so markierten Adresse wird statt der Zieladresse aus dem BTB die oberste Adresse des Call-Return-Stacks verwendet.&lt;/div&gt;</summary>
		<author><name>R.Stremming</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=CPU&amp;diff=22318</id>
		<title>CPU</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=CPU&amp;diff=22318"/>
		<updated>2021-02-04T12:41:20Z</updated>

		<summary type="html">&lt;p&gt;R.Stremming: /* Dynamische Sprungvorhersage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;C&#039;&#039;&#039;entral &#039;&#039;&#039;p&#039;&#039;&#039;rocessing &#039;&#039;&#039;u&#039;&#039;&#039;nit &lt;br /&gt;
&lt;br /&gt;
=Funktion=&lt;br /&gt;
Mikroprozessoren sind hochkomplexe Maschinen. Sie basieren jedoch&lt;br /&gt;
auf einem einfachen Grundprinzip. Wer es kennt, versteht auch die&lt;br /&gt;
Funktionsweise der modernen CPUs.&lt;br /&gt;
&lt;br /&gt;
=History=&lt;br /&gt;
* Die Von-Neumann-Architektur besteht aus vier Funktionseinheiten, die in Bild 1 zu sehen sind: Rechenwerk, Steuerwerk, Speicher (Memory) und Ein-/Ausgabeeinheit (I/O-Unit). &lt;br /&gt;
* Dazu kommen noch die Verbindungen zwischen den Funktionsblöcken - das Bussystem.&lt;br /&gt;
* Die beiden wichtigsten Einheiten ALU und CU sind heute im Prozessor vereint. &lt;br /&gt;
* Die CPU als Ganzes übernimmt innerhalb des Von-Neumann-Rechners die Ausführung der Befehle und die hierfür notwendige laufsteuerung.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[Datei:Diagram1.png|gerahmt|ohne| &#039;&#039;&#039;Bild 1&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Von-Neumann-Rechner:Er beinhaltete schon vor 50 Jahren die wesentlichen Bestandteile heutiger PCs.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Von-Neumann-Rechner=&lt;br /&gt;
&lt;br /&gt;
* Die Anpassung für jedes zu lösende Problem erfolgt mit im Speicher abgelegten Programmen. &lt;br /&gt;
* Diese Software beinhaltet die Informationen zur Steuerung des Rechners.&lt;br /&gt;
* Jede Speicherzelle ist mit einer festen Adresse eindeutig identifizierbar.&lt;br /&gt;
* In ihrer ursprünglichen Form verarbeitet sie mit nur einem Prozessor Schritt für Schritt Befehle und Daten, die aus dem Speicher stammen.&lt;br /&gt;
* Obwohl Befehle und Daten aus dem gleichen Speicher kommen, gibt es nur eine Busverbindung für Beides dorthin.&lt;br /&gt;
* So wurde eine hierarchisch gegliederte Speicherstruktur mit Registern und verschiedenen Cache-Ebenen eingeführt. &lt;br /&gt;
* Die sequenzielle Befehlsausführung wird in der CPU nach Kräften parallelisiert. &lt;br /&gt;
* Dazu stehen mehrere Funktionseinheiten und Ausführungsebenen bereit.&lt;br /&gt;
&lt;br /&gt;
=Erweiterte Architektur=&lt;br /&gt;
&lt;br /&gt;
* Der Von-Neumann-Rechner holt alle Befehle und Daten direkt aus dem Speicher. Für die heutigen CPUs wäre das viel zu langsam. &lt;br /&gt;
* Dieser CPU orientiert sich hinsichtlich Arbeitsweise stark an den x86-Prozessoren der PCs. &lt;br /&gt;
* Deshalb besitzt sie einen zusätzlichen Registersatz, der den Zugriff auf Befehle und Daten ohne Wartezyklen ermöglicht. &lt;br /&gt;
* Es handelt sich um Mehrzweckregister für Befehle und Daten. &lt;br /&gt;
* Das Adresswerk ist für die Berechnung der effektiven Adresse zuständig. &lt;br /&gt;
* Und der L1-Cache entkoppelt den Prozessorkern zusätzlich vom langsamen externen Speicher. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:Diagram2.png|gerahmt|ohne| &#039;&#039;&#039;Bild 2&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel-Prozessor: Die erweiterte CPU hat schon alles, was einen einfachen Mikroprozessor ausmacht.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wie die einzelnen Funktionsblöcke genau arbeiten, klären wir in den folgenden Abschnitten. Bevor wir aber ins Detail gehen, interessiert uns der grundsätzliche Programmablauf im Prozessor:&lt;br /&gt;
&lt;br /&gt;
# Holphase (Fetch): Zunächst muss ein Befehl aus dem Speicher geladen werden. Wenn sich die gesuchte Information noch nicht im L1-Cache befindet, muss die BIU dafür den Speicher ansprechen.&lt;br /&gt;
# Dekodierphase (Decode): Das Steuerwerk untersucht den Befehl hinsichtlich der vorzunehmenden Arbeitsschritte. Es entscheidet, welche Operation (Addition, Subtraktion, logische Verknüpfung und so weiter) die ALU auszuführen hat. (Wenn für den Befehl noch Daten (Operanden) geholt werden müssen, steuert das ebenfalls die CU. Dazu befehligt Sie auch das Adresswerk, das die Position der gewünschten Information ermittelt.)&lt;br /&gt;
# Ausführungsphase (Execute): Die ALU wird vom Steuerwerk nun angewiesen, die gewünschte Operation mit den geladenen Daten auszuführen&lt;br /&gt;
# Schreibphase (Write Back): Das Ergebnis der Operation landet in einem der Register oder im Speicher. Um langwierige Zugriffe auf das externe RAM zu vermeiden, sammelt die CPU die Daten eventuell im L1-Cache, damit sie später in einem schnellen Blockschreibvorgang übertragen werden können.&lt;br /&gt;
&lt;br /&gt;
=Steuereinheit (CU)=&lt;br /&gt;
&lt;br /&gt;
* Die CU ist die Kommandozentrale der CPU. &lt;br /&gt;
* Sie steuert alle Abläufe im Innern des Prozessors sowie seine Kommunikation nach außen.&lt;br /&gt;
* Die CU holt sich diesen Befehl aus dem Arbeitsspeicher/Cache und speichert ihn in einem Register zwischen. &lt;br /&gt;
* Damit ist der CPU-Bus frei für weitere Aktionen. &lt;br /&gt;
* Im Befehlsdecoder untersucht die CU die einzelnen Bits des commandos dann genauer. &lt;br /&gt;
* Aus einem Teil der Information ergibt sich der weitere logische und zeitliche Ablauf bei der Befehlsausführung.&lt;br /&gt;
* Handelt es sich um einen fest implementierten Befehl, werden sofort die entsprechenden Schritte in der Ablaufsteuerung eingeleitet. &lt;br /&gt;
* Sind alle zur Steuerung notwendigen Informationen gesammelt, beginnt die Ablaufsteuerung damit, das System zu koordinieren. &lt;br /&gt;
* Dazu gehört auch die Steuerung der BIU, um die Operanden für die Rechenbefehle in die Register zu laden.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[Datei:Diagram3.png|700px|gerahmt|ohne| &#039;&#039;&#039;Bild 3&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Control Unit: Die CU steuert alle Abläufe im Innern des Prozessors sowie seine Kommunikation nach außen.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Rechenwerk (ALU)=&lt;br /&gt;
&lt;br /&gt;
* Die ALU ist in der CPU für die Rechenarbeit zuständig. &lt;br /&gt;
* Alle aktuellen PC-Prozessoren besitzen neben einem oder mehreren dieser Rechenwerke für Ganzzahlen auch solche für Fließkommaarithmetik. &lt;br /&gt;
* Das Bild zeigt den Datenweg unserer Beispiel-CPU. &lt;br /&gt;
* Die CU steuert die ALU, die auf Anweisung die beiden Operanden aus dem Registersatz holt, mit denen sie rechnen soll.&lt;br /&gt;
* Sie werden zunächst in den beiden Hilfsregistern zwischengepuffert, damit sie während der gesamten Rechenoperation stabil anliegen. &lt;br /&gt;
* Im nächsten Schritt führt die ALU die von der CU geforderte Rechenoperation aus.&lt;br /&gt;
* Das Resultat wird schließlich im Ergebnisregister zwischengepuffert, damit sich die ALU sofort der nächsten Aufgabe zuwenden kann. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:Diagram4.png|600px|gerahmt|ohne| &#039;&#039;&#039;Bild 4&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Arithmetical and Logical Unit: Die ALU und ihr Datenweg. Die Hilfsregister für die Operanden und Ergebnisse gehören zu diesem nktionsblock.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Adresseinheit (AU) &amp;amp; Busschnittstelle (BIU)=&lt;br /&gt;
&lt;br /&gt;
* Der Aufbau der AU mit einem zentralen Addierer in Bild 5 ähnelt dem der ALU.&lt;br /&gt;
* Tatsächlich wurde die Adressberechnung bei den ersten Prozessoren auch noch in dieser erledigt. &lt;br /&gt;
* Die spezialisierte AU erledigt das jedoch schneller und vor allem parallel zur ALU.&lt;br /&gt;
* Der Decoder ist im einfachsten Fall als Linksschieberegister realisiert.&lt;br /&gt;
* Dieser Barrel Shifter extrahiert die Adressinformation aus dem Befehl durch Verschieben des Befehlscodes um n Bits in nur einem Taktzyklus.&lt;br /&gt;
* Die extrahierte Grundadresse gelangt dann in Hilfsregister A, wo Sie stabil anliegt bis der Addierer seine Arbeit beendet hat. &lt;br /&gt;
* Hilfsregister B beinhaltet den Inhalt des Programmzählers oder den des BIU-Adresspuffers.&lt;br /&gt;
* Die komplexere MMU realer PC-Prozessoren kann darüber hinaus virtuelle Adressen verwalten. &lt;br /&gt;
* Das Betriebssystem lagert hierbei den Speicher blockweise auf die Festplatte aus. &lt;br /&gt;
* Greift die CPU auf den ausgelagerten Speicher zu, verursacht das einen Seitenfehler, der die MMU zum Handeln veranlasst. &lt;br /&gt;
* Das Betriebssystem blendet dann den gewünschten Speicherbereich in das RAM des PCs ein und lagert einen gerade nicht benötigten dafür aus. &lt;br /&gt;
* Den virtuellen Speicher kann die CPU dank MMU so ansprechen, als wäre er real existierendes RAM.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:Diagram5.png|gerahmt|ohne| &#039;&#039;&#039;Bild 5&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Address Unit: Die AU sorgt für die Berechnung der Adresse. In modernen CPUs verseht eine leistungsfähigere MMU diesen Dienst.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Busschnittstelle (BIU)=&lt;br /&gt;
&lt;br /&gt;
* Die Busschnittstelle verbindet die internen Busse des Prozessors mit der Außenwelt.&lt;br /&gt;
* Sie enthält Puffer zur Zwischenspeicherung von Adressen, Daten und Steuersignalen.&lt;br /&gt;
* Die CPU arbeitet intern mit einer möglichst niedrigen Spannung, damit die Erwärmung bei hohen Taktfrequenzen in erträglichen Grenzen bleibt. &lt;br /&gt;
* Die BIU sorgt deshalb auch für eine Pegelanpassung zwischen dem CPU-Kern und dem externen Bussystem.&lt;br /&gt;
&lt;br /&gt;
=Cache-Grundlagen=&lt;br /&gt;
&lt;br /&gt;
* Zur Steigerung der Arbeitsleistung sitzt in der CPU zwischen den extrem schnellen Funktionseinheiten und dem vergleichsweise sehr langsamen Arbeitsspeicher der L1-Cache. &lt;br /&gt;
* Aus Platzgründen kann der L1-Cache in der CPU nicht besonders groß sein. &lt;br /&gt;
* Er bewegt sich in der Regel in Größenordnungen von 16 bis 64 KByte. &lt;br /&gt;
* Die Kunst besteht also darin, den schnellen kleinen Speicher so mit dem langsamen großen Arbeitsspeicher zu kombinieren, dass sich eine möglichst schnelle Gesamtlösung ergibt. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:Diagram6.png|gerahmt|ohne| &#039;&#039;&#039;Bild 6&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cache Interna: Der prinzipielle Aufbau eines Caches (oben) sowie die Adressauswertung im Cache-Controller (unten).&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Bild 6 zeigt die Auswertung einer 32-Bit-Adresse nach diesem Prinzip.&lt;br /&gt;
&lt;br /&gt;
Als einfache Analogie betrachten wir einen Briefträger bei der Arbeit:&lt;br /&gt;
* Er trägt in einer Stadt (Arbeitsspeicher) die Post (Daten) aus.&lt;br /&gt;
* Dafür sortiert er die Post in seiner Tasche nach Straßen (Tag).&lt;br /&gt;
* In einer Straße holt er sich die hierfür bestimmte Post heraus und verteilt sie an die Häuser (Set-Zeile). &lt;br /&gt;
* Um in Mehrfamilienhäusern auch den richtigen Briefkasten zu erwischen, benötigt er noch den Familiennamen (Byte-Nummer).&lt;br /&gt;
&lt;br /&gt;
=Cache-Organisation=&lt;br /&gt;
&lt;br /&gt;
* Der direkt abgebildete (direct mapped) Cache im Bild unten ist die einfachste Form.&lt;br /&gt;
* Jedem Set ist nur ein Cache-Eintrag zugeordnet. &lt;br /&gt;
* Dadurch deckt man im Arbeitsspeicher einen Block von x+n Sets ab.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:DiagrammHardwareCPU10.png|gerahmt|ohne| &#039;&#039;&#039;Bild 7&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assoziativspeicher: Der teilassoziative Mehrweg-Cache beinhaltet im Prinzip mehrere Direct Mapped Caches plus Statistik-Bits (LRU).&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Der Briefträger hat dieses Problem ebenfalls: &lt;br /&gt;
&lt;br /&gt;
* Wenn er einen Abstecher in eine Seitenstraße macht, muss er den nach Straßen vorsortierten Briefstapel zurücklegen und den für die Seitenstraße herausholen.&lt;br /&gt;
* Die Lösung des Problems sind teilassoziative Mehrweg-Caches. &lt;br /&gt;
* Auch dieser Cache-Typ speichert nur einen Teil der Adresse im Tag ab. &lt;br /&gt;
* Taucht ein Tag aber nochmals auf, erfolgt kein Komplettaustausch des Speicherblocks. &lt;br /&gt;
* Die Hardware merkt sich den Eintrag wieder in der gleichen Set-Zeile. &lt;br /&gt;
* Allerdings erfolgt die Speicherung in einer weiteren Ebene (Weg), sodass die erste Zeile nicht überschrieben werden muss. &lt;br /&gt;
* Die Ebenenoder Wegauswahl erfolgt über den Set-Adressteil.&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Mit einer Mehrwegsortierung arbeitet auch der Briefträger schneller: &lt;br /&gt;
&lt;br /&gt;
* Er hat sich die Post nicht nur in Straßenzüge (Tag) unterteilt, sondern nochmals mit einem Gummiband hinsichtlich der Straßenseite gebündelt (Set-Weg). &lt;br /&gt;
* Bei einem Abstecher in die Seitenstrasse greift er sich nur das Briefbündel für eine Straßenseite. &lt;br /&gt;
* Dafür legt er nur eines der zwei Bündel der alten Straße weg - und zwar das von der anderen Straßenseite. &lt;br /&gt;
* Wenn er aus der Seitenstrasse zurückkommt, hat er immer noch das Bündel der Seite in der Hand, bei der er abgebogen ist.&lt;br /&gt;
* Ein Mehrweg-Cache ist ein vervielfachter Direct Mapped Cache. &lt;br /&gt;
* Der Schaltungsaufwand für einen teilassoziativen 2-Wege-Cache ist demnach doppelt so hoch wie bei der einfachen Version. &lt;br /&gt;
* Bei einem 4-Wege-Cache vervierfacht er sich.&lt;br /&gt;
* Irgendwann sind jedoch auch die Ebenen eines Mehrweg-Caches voll. &lt;br /&gt;
* Mittels zusätzlich gespeicherter LRU-Bits kann der Cache dann feststellen, welcher Eintrag in welcher Ebene am längsten nicht mehr benutzt wurde.&lt;br /&gt;
* Dieser Wegeintrag wird dann überschrieben.&lt;br /&gt;
&lt;br /&gt;
=Pipeline-Verfahren=&lt;br /&gt;
&lt;br /&gt;
* Bis jetzt sind wir davon ausgegangen, dass die CPU die Befehle nach dem klassischen Von-Neumann-Prinzip nacheinander verarbeitet. &lt;br /&gt;
* Jeder Befehl wird innerhalb einer bestimmten Zeit (Taktzyklus) erledigt, dann ist der Nächste dran.&lt;br /&gt;
* Wenn man der BIU erlaubt, schon Befehle aus dem Speicher zu holen während die CU gerade einen analysiert, hat man zwei Arbeitsschritte parallelisiert. &lt;br /&gt;
* Es sind also zwei Befehle gleichzeitig in Teilbearbeitung. Überträgt man das Prinzip auf alle beteiligten Funktionseinheiten, erhöht sich die Zahl der Teilbearbeitungen weiter. &lt;br /&gt;
* Dieses Pipeline-Prinzip verarbeitet aber die eingehenden Befehle und Daten immer noch Schritt für Schritt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:DiagrammHardwareCPU11.png|600px|gerahmt|ohne|&#039;&#039;&#039;bild 8&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pipeline in Funktion: Mit der Pipelining-Technik lässt sich die Befehlsausführung beschleunigen.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Superskalare Architektur=&lt;br /&gt;
&lt;br /&gt;
* Wenn schon eine Pipeline die Geschwindigkeit erhöht, geht es mit Zweien noch schneller. &lt;br /&gt;
* In Bild 9 &amp;quot;Parallel ist schneller&amp;quot; ist im oberen Teil ein solcher Ansatz zu sehen.&lt;br /&gt;
* Auf diese Weise arbeitet beispielsweise der Intel Pentium. &lt;br /&gt;
* Um unnötige Probleme mit Abhängigkeiten zwischen den Befehlen zu minimieren, arbeitet die Intel-CPU allerdings nur bei Kommandos gleichzeitig mit beiden Pipelines, die gut zueinander passen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:Diagram9.png|gerahmt|ohne| &#039;&#039;&#039;Bild 9&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parallel ist schneller: Superskalare Architekturen mit einer doppelten Pipeline (oben) und parallel arbeitenden Ausführungseinheiten&lt;br /&gt;
(unten).&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Sprungvorhersage&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
Die Sprungvorhersage (englisch branch prediction) wird in der (Mikro-)Rechnerarchitektur verwendet und behandelt das Problem von Mikroprozessoren, alle Stufen ihrer Pipeline möglichst immer und sinnvoll auszulasten. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inhaltsverzeichnis:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1. Übersicht&lt;br /&gt;
&lt;br /&gt;
2. Funktionsweise: Statische Sprungvorhersage &amp;amp; Dynamische Sprungvorhersage&lt;br /&gt;
&lt;br /&gt;
3. Dynamische Sprungvorhersagetechniken: Branch History Table (BHT),n-Bit träger Automat,1-Bit-Automat &amp;amp; gshare&lt;br /&gt;
&lt;br /&gt;
4. Statische Sprungvorhersagetechnike: Stall/Freeze, Predict taken, Predict not taken &amp;amp; Delayed Branches&lt;br /&gt;
&lt;br /&gt;
5. Sprungzielvorhersage-Techniken: Branch Target Buffer (BTB) &amp;amp; Call-Return-Stapel&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1. Übersicht:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Unter Sprungvorhersage (auch Verzweigungsvorhersage) versteht man:&lt;br /&gt;
&lt;br /&gt;
- Die Vorhersage, ob ein bedingter Sprung ausgeführt wird&lt;br /&gt;
&lt;br /&gt;
- Die Zieladresse eines Sprunges zu ermitteln&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zwei Arten von Sprüngen:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
- Bedingter Sprung: Jcondition Adresse&lt;br /&gt;
&lt;br /&gt;
- Unbedingter Sprung: JMP Adresse, JMP BerechneteAdresse, CALL Adresse, CALL BerechneteAdresse, RET&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In modernen Prozessoren werden Maschinenbefehle in mehreren Verarbeitungsschritten innerhalb einer Verarbeitungskette (Pipeline) ausgeführt. Um die Leistungsfähigkeit des Prozessors zu maximieren, wird, nachdem ein Befehl in die Pipeline geladen wurde und z. B. im nächsten Schritt mit der Analyse des Befehls fortgefahren werden soll, gleichzeitig mit dem Laden des nächsten Befehles begonnen. Es befinden sich also (meistens) eine ganze Reihe von Befehlen zur sequentiellen Abarbeitung in der Pipeline. Wird jetzt am Ende der Pipeline festgestellt, dass ein bedingter Sprung ausgeführt wird, so sind alle in der Pipeline anstehenden und teilabgearbeiteten Befehle ungültig. Der Prozessor löscht jetzt die Pipeline und lädt diese dann von der neuen Programmcodeadresse neu. Je mehr Stufen die Pipeline hat, desto mehr schon berechnete Zwischenergebnisse müssen verworfen werden und umso mehr Takte wird die Pipeline nur partiell genutzt. Das reduziert die Abarbeitungsgeschwindigkeit von Programmen und reduziert die Energieeffizienz.&lt;br /&gt;
Das Ziel ist möglichst frühes Erkennen eines Sprungbefehls und Erkennen seiner Sprungzieladresse, damit gleich die Daten der Zieladresse dem Sprungbefehl in die Pipeline folgen können. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2. Funktionsweise:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;- Statische Sprungvorhersage:&#039;&#039;&#039;&lt;br /&gt;
Die statische Sprungvorhersage ändert ihre Vorhersage während des Programmablaufs nicht. Sie erreicht dadurch nur eine Vorhersagegenauigkeit von 55 bis 80 %. Diese Technik geht von bekannten Tatsachen aus, z. B. dass Schleifen häufig Sprünge ausführen, während dies bei Auswahlverfahren seltener vorkommt. Manche Compiler unterstützen den Mechanismus auch mit speziellen Flags im Befehlscode (Vorhersage wird beim Kompilieren eingebaut).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;- Dynamische Sprungvorhersage:&#039;&#039;&#039;&lt;br /&gt;
Die dynamische Sprungvorhersage geschieht zur Laufzeit durch eine elektronische Verschaltung innerhalb der CPU. Sie benutzt verschiedene Techniken zur Erzeugung einer Vorhersage. Ihre Vorhersagegenauigkeit liegt bei bis zu 98 %. Die einfachste Methode spekuliert anhand der Sprungrichtung: Sprünge im Programmcode zurück sind in der Regel Schleifen, die oft mehrfach durchlaufen werden, sodass bei dieser prophylaktisch die Pipeline mit dem zurückliegenden Code gefüllt wird.Erkannte bedingungslose Sprünge werden einfach vorab aus der Befehlswarteschlange aussortiert und diese dann mit dem Code vom Sprungziel weitergefüllt, bevor diese in die Pipeline eintreten.(„Branch folding“) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3. Dynamische Sprungvorhersagetechniken:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;- Branch History Table (BHT):&#039;&#039;&#039;&lt;br /&gt;
Die BHT (auch Branch-Prediction Buffer) versucht, wie ihr Name schon sagt, ebenfalls die letzten Sprünge mitzuprotokollieren. Dazu verwendet sie einen Teil der Sprungbefehlsadresse als Hashwert. Im Allgemeinen nimmt man dafür den niederwertigen Adressanteil. Diese Adressteile können natürlich nicht immer eindeutig sein, so dass es Kollisionen geben kann (mehrere unterschiedliche Sprünge belegen denselben Platz in der Tabelle).Die Tabelle wird nach jedem Sprung aktualisiert. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;- 1-Bit-Automat:&#039;&#039;&#039;&lt;br /&gt;
Wird ein gespeicherter Sprung genommen, wird dessen Bit von 0 auf 1 gesetzt. Ein Problem ist aber, dass er alternierende Sprünge nicht berücksichtigt (bei Sprüngen, die z. B. nur bei jedem 2. Schleifendurchlauf stattfinden, würde das Bit immer wieder invertiert werden). Die Lösung hierfür ist ein n-Bit-Automat.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;- n-Bit träger Automat:&#039;&#039;&#039;&lt;br /&gt;
Dieser setzt das Korrektheitsbit erst nach den n Fehlschlägen auf 0. Im Allgemeinen wird n = 2 verwendet. (Tests haben gezeigt, dass ab n &amp;gt; 2 die Leistungssteigerung nur noch minimal ist.) Beim ersten Schleifendurchlauf ist der Zustand 00, und die Bedingung sei wahr. Damit geht der Zustand nach 01 über. Ist beim nächsten Schleifendurchlauf die Bedingung wieder wahr, wird der Zustand 10 und sagt daher auch für alle weiteren Sprünge eine wahre Sprungbedingung vorher. Ist beim zweiten Durchlauf die Bedingung falsch, so geht der Zustand wieder nach 00 zurück. Ist der Zustand 11, so muss die Sprungbedingung zweimal falsch gewesen sein, bevor die Vorhersage wieder „falsch“ lautet. Mit anderen Worten: Nachdem zweimal in die gleiche Richtung gesprungen wurde, wird diese Richtung nun auch für die weiteren Sprünge vorhergesagt. Es lässt sich errechnen, dass bei diesem Verfahren die Wahrscheinlichkeit für die richtige Vorhersage bei 83 % liegt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;- gshare:&#039;&#039;&#039;&lt;br /&gt;
Bei gshare werden der Adressteil und die Global History mit XOR verknüpft und in eine Tabelle abgelegt. Die Informationen der Tabelle werden dann zur Sprungvorhersage herangezogen. gshare kombiniert somit Per-Address History mit Global History. Da hier XOR als Hashverfahren genommen wird, können wieder Kollisionen entstehen.&lt;br /&gt;
Das Verfahren findet z. B. im AMD Athlon und Pentium III Anwendung.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4. Statische Sprungvorhersagetechniken:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;- Stall/Freeze:&#039;&#039;&#039;&lt;br /&gt;
Diese Technik hält einfach die ganze Pipeline kurz an. Wird in der ID-Stage (Instruction Decoding) ein Sprungbefehl festgestellt, wird die Pipeline solange angehalten (stalled/frozen), bis man in der EX-Stage (Execution) weiß, ob der Sprung ausgeführt wird.&lt;br /&gt;
&lt;br /&gt;
- Sprung wird nicht ausgeführt, macht normal weiter.&lt;br /&gt;
&lt;br /&gt;
- Sprung wird ausgeführt: Setze Programmzähler auf Sprungzieladresse und fülle die Pipeline mit den Instruktionen, die sich am Sprungziel befinden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;- Predict taken:&#039;&#039;&#039;&lt;br /&gt;
Geht einfach davon aus, dass jeder bedingte Sprung auch ausgeführt wird, d. h., wird in der ID-Stage festgestellt, dass ein Sprungbefehl vorliegt, beginnt die CPU schon mal die Zieladresse zu bestimmen und die dortigen Daten gleich in die Pipeline als Folgeinstruktionen zu laden. Wird in der EX-Stage allerdings festgestellt, dass der Sprung doch nicht stattfindet, war die vorherige Arbeit umsonst (verwendet bei Schleifen).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;- Predict not taken:&#039;&#039;&#039;&lt;br /&gt;
Geht davon aus, dass jeder bedingte Sprung nicht ausgeführt wird und macht normal weiter. Dies bedeutet (sollte der Sprung wirklich nicht ausgeführt werden) einen guten Performancegewinn. Sollte in der EX-Stage festgestellt werden, dass der Sprung wider Erwarten doch ausgeführt wird, muss die Folgeinstruktion angehalten, der PC auf die Sprungzieladresse gestellt und damit dann die Pipeline gefüllt werden (verwendet bei Auswahlverfahren).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;- Delayed Branches:&#039;&#039;&#039;&lt;br /&gt;
Delayed Branches stellen keine Sprung-Vorhersage dar. Sprungbefehle werden 1 bis 3 Befehle im Befehlsstrom nach vorn gezogen kodiert, die folgenden 1 bis 3 Befehle werden unabhängig vom Sprungbefehl immer ausgeführt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5. Sprungzielvorhersage-Techniken:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Besser als eine bloße Sprungvorhersage ist gleich eine Sprungzielvorhersage. Sobald man in der ID-Stage erkennt, dass es sich um einen Sprung handelt, kann man prüfen, ob dieser Sprung schon mal stattfand und ggf. sein Sprungziel aus einem Puffer holen. Somit kann man den Programmzähler sofort auf dieses Sprungziel stellen und die dortigen Instruktionen in die Pipeline laden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;- Branch Target Buffer (BTB):&#039;&#039;&#039;&lt;br /&gt;
Der BTB (auch Sprungzielpuffer oder Branch Target Address Cache, BTAC):&lt;br /&gt;
Dient der Vorhersage der Folgeadresse, noch bevor der Befehl dekodiert wurde, d. h. bevor feststeht, ob es sich überhaupt um einen Sprungbefehl handelt. Auf diesem Wege wird die andernfalls unvermeidliche Pipelinelücke vermieden und somit die Verzweigungskosten gesenkt. Die Vorhersage wird anhand in einer Tabelle gespeicherter (vorher tatsächlich ausgeführter) Sprünge getroffen.&lt;br /&gt;
&lt;br /&gt;
Diese Tabelle enthält:&lt;br /&gt;
&lt;br /&gt;
- Vorhersageinformationen&lt;br /&gt;
&lt;br /&gt;
- Zieladressen&lt;br /&gt;
&lt;br /&gt;
- Tags&lt;br /&gt;
&lt;br /&gt;
Der BTB liefert immer eine Adresse zurück. Wird ein unbekannter Sprung abgefragt, so liefert er einfach die Folgeadresse. Wird aber ein bekannter Sprung abgefragt, so liefert er die Zieladresse.Der BTB kann nicht immer korrekt arbeiten. Da z. B. RETURN-Anweisungen variable Zieladressen haben (Moving Targets), kann der BTB zu einem korrekten Sprung eine falsche Zieladresse abspeichern. Da in modernen Programmierhochsprachen objektorientiert programmiert wird, kommt es zu häufigen Methodenaufrufen und somit zu vielen Moving Targets. Um diese in der Hinsicht fatale Schwäche zu beheben, werden BTBs um einen Call-Return-Stapel erweitert.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;- Call-Return-Stapel:&#039;&#039;&#039;&lt;br /&gt;
Dieser Stapel speichert alle Return-Adressen nach dem LIFO-Prinzip. Weiterhin wird von speziellen Call- und Return-Befehlen im Befehlssatz ausgegangen (wird also von einem normalen Sprung unterschieden).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sonderbehandlung beider Sprünge im Branch Target Buffer (BTB):&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;- Call:&#039;&#039;&#039; Beim Aufruf wird die Return-Adresse auf dem Call-Return-Stack abgelegt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;- Return:&#039;&#039;&#039; RET-Befehle sind im BTB speziell markiert. Beim Fetchen eines Befehls von einer so markierten Adresse wird statt der Zieladresse aus dem BTB die oberste Adresse des Call-Return-Stacks verwendet.&lt;/div&gt;</summary>
		<author><name>R.Stremming</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=CPU&amp;diff=22317</id>
		<title>CPU</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=CPU&amp;diff=22317"/>
		<updated>2021-02-04T12:40:27Z</updated>

		<summary type="html">&lt;p&gt;R.Stremming: Sprungvorhersage&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;C&#039;&#039;&#039;entral &#039;&#039;&#039;p&#039;&#039;&#039;rocessing &#039;&#039;&#039;u&#039;&#039;&#039;nit &lt;br /&gt;
&lt;br /&gt;
=Funktion=&lt;br /&gt;
Mikroprozessoren sind hochkomplexe Maschinen. Sie basieren jedoch&lt;br /&gt;
auf einem einfachen Grundprinzip. Wer es kennt, versteht auch die&lt;br /&gt;
Funktionsweise der modernen CPUs.&lt;br /&gt;
&lt;br /&gt;
=History=&lt;br /&gt;
* Die Von-Neumann-Architektur besteht aus vier Funktionseinheiten, die in Bild 1 zu sehen sind: Rechenwerk, Steuerwerk, Speicher (Memory) und Ein-/Ausgabeeinheit (I/O-Unit). &lt;br /&gt;
* Dazu kommen noch die Verbindungen zwischen den Funktionsblöcken - das Bussystem.&lt;br /&gt;
* Die beiden wichtigsten Einheiten ALU und CU sind heute im Prozessor vereint. &lt;br /&gt;
* Die CPU als Ganzes übernimmt innerhalb des Von-Neumann-Rechners die Ausführung der Befehle und die hierfür notwendige laufsteuerung.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[Datei:Diagram1.png|gerahmt|ohne| &#039;&#039;&#039;Bild 1&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Von-Neumann-Rechner:Er beinhaltete schon vor 50 Jahren die wesentlichen Bestandteile heutiger PCs.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Von-Neumann-Rechner=&lt;br /&gt;
&lt;br /&gt;
* Die Anpassung für jedes zu lösende Problem erfolgt mit im Speicher abgelegten Programmen. &lt;br /&gt;
* Diese Software beinhaltet die Informationen zur Steuerung des Rechners.&lt;br /&gt;
* Jede Speicherzelle ist mit einer festen Adresse eindeutig identifizierbar.&lt;br /&gt;
* In ihrer ursprünglichen Form verarbeitet sie mit nur einem Prozessor Schritt für Schritt Befehle und Daten, die aus dem Speicher stammen.&lt;br /&gt;
* Obwohl Befehle und Daten aus dem gleichen Speicher kommen, gibt es nur eine Busverbindung für Beides dorthin.&lt;br /&gt;
* So wurde eine hierarchisch gegliederte Speicherstruktur mit Registern und verschiedenen Cache-Ebenen eingeführt. &lt;br /&gt;
* Die sequenzielle Befehlsausführung wird in der CPU nach Kräften parallelisiert. &lt;br /&gt;
* Dazu stehen mehrere Funktionseinheiten und Ausführungsebenen bereit.&lt;br /&gt;
&lt;br /&gt;
=Erweiterte Architektur=&lt;br /&gt;
&lt;br /&gt;
* Der Von-Neumann-Rechner holt alle Befehle und Daten direkt aus dem Speicher. Für die heutigen CPUs wäre das viel zu langsam. &lt;br /&gt;
* Dieser CPU orientiert sich hinsichtlich Arbeitsweise stark an den x86-Prozessoren der PCs. &lt;br /&gt;
* Deshalb besitzt sie einen zusätzlichen Registersatz, der den Zugriff auf Befehle und Daten ohne Wartezyklen ermöglicht. &lt;br /&gt;
* Es handelt sich um Mehrzweckregister für Befehle und Daten. &lt;br /&gt;
* Das Adresswerk ist für die Berechnung der effektiven Adresse zuständig. &lt;br /&gt;
* Und der L1-Cache entkoppelt den Prozessorkern zusätzlich vom langsamen externen Speicher. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:Diagram2.png|gerahmt|ohne| &#039;&#039;&#039;Bild 2&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Beispiel-Prozessor: Die erweiterte CPU hat schon alles, was einen einfachen Mikroprozessor ausmacht.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wie die einzelnen Funktionsblöcke genau arbeiten, klären wir in den folgenden Abschnitten. Bevor wir aber ins Detail gehen, interessiert uns der grundsätzliche Programmablauf im Prozessor:&lt;br /&gt;
&lt;br /&gt;
# Holphase (Fetch): Zunächst muss ein Befehl aus dem Speicher geladen werden. Wenn sich die gesuchte Information noch nicht im L1-Cache befindet, muss die BIU dafür den Speicher ansprechen.&lt;br /&gt;
# Dekodierphase (Decode): Das Steuerwerk untersucht den Befehl hinsichtlich der vorzunehmenden Arbeitsschritte. Es entscheidet, welche Operation (Addition, Subtraktion, logische Verknüpfung und so weiter) die ALU auszuführen hat. (Wenn für den Befehl noch Daten (Operanden) geholt werden müssen, steuert das ebenfalls die CU. Dazu befehligt Sie auch das Adresswerk, das die Position der gewünschten Information ermittelt.)&lt;br /&gt;
# Ausführungsphase (Execute): Die ALU wird vom Steuerwerk nun angewiesen, die gewünschte Operation mit den geladenen Daten auszuführen&lt;br /&gt;
# Schreibphase (Write Back): Das Ergebnis der Operation landet in einem der Register oder im Speicher. Um langwierige Zugriffe auf das externe RAM zu vermeiden, sammelt die CPU die Daten eventuell im L1-Cache, damit sie später in einem schnellen Blockschreibvorgang übertragen werden können.&lt;br /&gt;
&lt;br /&gt;
=Steuereinheit (CU)=&lt;br /&gt;
&lt;br /&gt;
* Die CU ist die Kommandozentrale der CPU. &lt;br /&gt;
* Sie steuert alle Abläufe im Innern des Prozessors sowie seine Kommunikation nach außen.&lt;br /&gt;
* Die CU holt sich diesen Befehl aus dem Arbeitsspeicher/Cache und speichert ihn in einem Register zwischen. &lt;br /&gt;
* Damit ist der CPU-Bus frei für weitere Aktionen. &lt;br /&gt;
* Im Befehlsdecoder untersucht die CU die einzelnen Bits des commandos dann genauer. &lt;br /&gt;
* Aus einem Teil der Information ergibt sich der weitere logische und zeitliche Ablauf bei der Befehlsausführung.&lt;br /&gt;
* Handelt es sich um einen fest implementierten Befehl, werden sofort die entsprechenden Schritte in der Ablaufsteuerung eingeleitet. &lt;br /&gt;
* Sind alle zur Steuerung notwendigen Informationen gesammelt, beginnt die Ablaufsteuerung damit, das System zu koordinieren. &lt;br /&gt;
* Dazu gehört auch die Steuerung der BIU, um die Operanden für die Rechenbefehle in die Register zu laden.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[Datei:Diagram3.png|700px|gerahmt|ohne| &#039;&#039;&#039;Bild 3&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Control Unit: Die CU steuert alle Abläufe im Innern des Prozessors sowie seine Kommunikation nach außen.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Rechenwerk (ALU)=&lt;br /&gt;
&lt;br /&gt;
* Die ALU ist in der CPU für die Rechenarbeit zuständig. &lt;br /&gt;
* Alle aktuellen PC-Prozessoren besitzen neben einem oder mehreren dieser Rechenwerke für Ganzzahlen auch solche für Fließkommaarithmetik. &lt;br /&gt;
* Das Bild zeigt den Datenweg unserer Beispiel-CPU. &lt;br /&gt;
* Die CU steuert die ALU, die auf Anweisung die beiden Operanden aus dem Registersatz holt, mit denen sie rechnen soll.&lt;br /&gt;
* Sie werden zunächst in den beiden Hilfsregistern zwischengepuffert, damit sie während der gesamten Rechenoperation stabil anliegen. &lt;br /&gt;
* Im nächsten Schritt führt die ALU die von der CU geforderte Rechenoperation aus.&lt;br /&gt;
* Das Resultat wird schließlich im Ergebnisregister zwischengepuffert, damit sich die ALU sofort der nächsten Aufgabe zuwenden kann. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:Diagram4.png|600px|gerahmt|ohne| &#039;&#039;&#039;Bild 4&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Arithmetical and Logical Unit: Die ALU und ihr Datenweg. Die Hilfsregister für die Operanden und Ergebnisse gehören zu diesem nktionsblock.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Adresseinheit (AU) &amp;amp; Busschnittstelle (BIU)=&lt;br /&gt;
&lt;br /&gt;
* Der Aufbau der AU mit einem zentralen Addierer in Bild 5 ähnelt dem der ALU.&lt;br /&gt;
* Tatsächlich wurde die Adressberechnung bei den ersten Prozessoren auch noch in dieser erledigt. &lt;br /&gt;
* Die spezialisierte AU erledigt das jedoch schneller und vor allem parallel zur ALU.&lt;br /&gt;
* Der Decoder ist im einfachsten Fall als Linksschieberegister realisiert.&lt;br /&gt;
* Dieser Barrel Shifter extrahiert die Adressinformation aus dem Befehl durch Verschieben des Befehlscodes um n Bits in nur einem Taktzyklus.&lt;br /&gt;
* Die extrahierte Grundadresse gelangt dann in Hilfsregister A, wo Sie stabil anliegt bis der Addierer seine Arbeit beendet hat. &lt;br /&gt;
* Hilfsregister B beinhaltet den Inhalt des Programmzählers oder den des BIU-Adresspuffers.&lt;br /&gt;
* Die komplexere MMU realer PC-Prozessoren kann darüber hinaus virtuelle Adressen verwalten. &lt;br /&gt;
* Das Betriebssystem lagert hierbei den Speicher blockweise auf die Festplatte aus. &lt;br /&gt;
* Greift die CPU auf den ausgelagerten Speicher zu, verursacht das einen Seitenfehler, der die MMU zum Handeln veranlasst. &lt;br /&gt;
* Das Betriebssystem blendet dann den gewünschten Speicherbereich in das RAM des PCs ein und lagert einen gerade nicht benötigten dafür aus. &lt;br /&gt;
* Den virtuellen Speicher kann die CPU dank MMU so ansprechen, als wäre er real existierendes RAM.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:Diagram5.png|gerahmt|ohne| &#039;&#039;&#039;Bild 5&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Address Unit: Die AU sorgt für die Berechnung der Adresse. In modernen CPUs verseht eine leistungsfähigere MMU diesen Dienst.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Busschnittstelle (BIU)=&lt;br /&gt;
&lt;br /&gt;
* Die Busschnittstelle verbindet die internen Busse des Prozessors mit der Außenwelt.&lt;br /&gt;
* Sie enthält Puffer zur Zwischenspeicherung von Adressen, Daten und Steuersignalen.&lt;br /&gt;
* Die CPU arbeitet intern mit einer möglichst niedrigen Spannung, damit die Erwärmung bei hohen Taktfrequenzen in erträglichen Grenzen bleibt. &lt;br /&gt;
* Die BIU sorgt deshalb auch für eine Pegelanpassung zwischen dem CPU-Kern und dem externen Bussystem.&lt;br /&gt;
&lt;br /&gt;
=Cache-Grundlagen=&lt;br /&gt;
&lt;br /&gt;
* Zur Steigerung der Arbeitsleistung sitzt in der CPU zwischen den extrem schnellen Funktionseinheiten und dem vergleichsweise sehr langsamen Arbeitsspeicher der L1-Cache. &lt;br /&gt;
* Aus Platzgründen kann der L1-Cache in der CPU nicht besonders groß sein. &lt;br /&gt;
* Er bewegt sich in der Regel in Größenordnungen von 16 bis 64 KByte. &lt;br /&gt;
* Die Kunst besteht also darin, den schnellen kleinen Speicher so mit dem langsamen großen Arbeitsspeicher zu kombinieren, dass sich eine möglichst schnelle Gesamtlösung ergibt. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:Diagram6.png|gerahmt|ohne| &#039;&#039;&#039;Bild 6&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Cache Interna: Der prinzipielle Aufbau eines Caches (oben) sowie die Adressauswertung im Cache-Controller (unten).&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Bild 6 zeigt die Auswertung einer 32-Bit-Adresse nach diesem Prinzip.&lt;br /&gt;
&lt;br /&gt;
Als einfache Analogie betrachten wir einen Briefträger bei der Arbeit:&lt;br /&gt;
* Er trägt in einer Stadt (Arbeitsspeicher) die Post (Daten) aus.&lt;br /&gt;
* Dafür sortiert er die Post in seiner Tasche nach Straßen (Tag).&lt;br /&gt;
* In einer Straße holt er sich die hierfür bestimmte Post heraus und verteilt sie an die Häuser (Set-Zeile). &lt;br /&gt;
* Um in Mehrfamilienhäusern auch den richtigen Briefkasten zu erwischen, benötigt er noch den Familiennamen (Byte-Nummer).&lt;br /&gt;
&lt;br /&gt;
=Cache-Organisation=&lt;br /&gt;
&lt;br /&gt;
* Der direkt abgebildete (direct mapped) Cache im Bild unten ist die einfachste Form.&lt;br /&gt;
* Jedem Set ist nur ein Cache-Eintrag zugeordnet. &lt;br /&gt;
* Dadurch deckt man im Arbeitsspeicher einen Block von x+n Sets ab.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:DiagrammHardwareCPU10.png|gerahmt|ohne| &#039;&#039;&#039;Bild 7&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Assoziativspeicher: Der teilassoziative Mehrweg-Cache beinhaltet im Prinzip mehrere Direct Mapped Caches plus Statistik-Bits (LRU).&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Der Briefträger hat dieses Problem ebenfalls: &lt;br /&gt;
&lt;br /&gt;
* Wenn er einen Abstecher in eine Seitenstraße macht, muss er den nach Straßen vorsortierten Briefstapel zurücklegen und den für die Seitenstraße herausholen.&lt;br /&gt;
* Die Lösung des Problems sind teilassoziative Mehrweg-Caches. &lt;br /&gt;
* Auch dieser Cache-Typ speichert nur einen Teil der Adresse im Tag ab. &lt;br /&gt;
* Taucht ein Tag aber nochmals auf, erfolgt kein Komplettaustausch des Speicherblocks. &lt;br /&gt;
* Die Hardware merkt sich den Eintrag wieder in der gleichen Set-Zeile. &lt;br /&gt;
* Allerdings erfolgt die Speicherung in einer weiteren Ebene (Weg), sodass die erste Zeile nicht überschrieben werden muss. &lt;br /&gt;
* Die Ebenenoder Wegauswahl erfolgt über den Set-Adressteil.&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Mit einer Mehrwegsortierung arbeitet auch der Briefträger schneller: &lt;br /&gt;
&lt;br /&gt;
* Er hat sich die Post nicht nur in Straßenzüge (Tag) unterteilt, sondern nochmals mit einem Gummiband hinsichtlich der Straßenseite gebündelt (Set-Weg). &lt;br /&gt;
* Bei einem Abstecher in die Seitenstrasse greift er sich nur das Briefbündel für eine Straßenseite. &lt;br /&gt;
* Dafür legt er nur eines der zwei Bündel der alten Straße weg - und zwar das von der anderen Straßenseite. &lt;br /&gt;
* Wenn er aus der Seitenstrasse zurückkommt, hat er immer noch das Bündel der Seite in der Hand, bei der er abgebogen ist.&lt;br /&gt;
* Ein Mehrweg-Cache ist ein vervielfachter Direct Mapped Cache. &lt;br /&gt;
* Der Schaltungsaufwand für einen teilassoziativen 2-Wege-Cache ist demnach doppelt so hoch wie bei der einfachen Version. &lt;br /&gt;
* Bei einem 4-Wege-Cache vervierfacht er sich.&lt;br /&gt;
* Irgendwann sind jedoch auch die Ebenen eines Mehrweg-Caches voll. &lt;br /&gt;
* Mittels zusätzlich gespeicherter LRU-Bits kann der Cache dann feststellen, welcher Eintrag in welcher Ebene am längsten nicht mehr benutzt wurde.&lt;br /&gt;
* Dieser Wegeintrag wird dann überschrieben.&lt;br /&gt;
&lt;br /&gt;
=Pipeline-Verfahren=&lt;br /&gt;
&lt;br /&gt;
* Bis jetzt sind wir davon ausgegangen, dass die CPU die Befehle nach dem klassischen Von-Neumann-Prinzip nacheinander verarbeitet. &lt;br /&gt;
* Jeder Befehl wird innerhalb einer bestimmten Zeit (Taktzyklus) erledigt, dann ist der Nächste dran.&lt;br /&gt;
* Wenn man der BIU erlaubt, schon Befehle aus dem Speicher zu holen während die CU gerade einen analysiert, hat man zwei Arbeitsschritte parallelisiert. &lt;br /&gt;
* Es sind also zwei Befehle gleichzeitig in Teilbearbeitung. Überträgt man das Prinzip auf alle beteiligten Funktionseinheiten, erhöht sich die Zahl der Teilbearbeitungen weiter. &lt;br /&gt;
* Dieses Pipeline-Prinzip verarbeitet aber die eingehenden Befehle und Daten immer noch Schritt für Schritt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:DiagrammHardwareCPU11.png|600px|gerahmt|ohne|&#039;&#039;&#039;bild 8&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pipeline in Funktion: Mit der Pipelining-Technik lässt sich die Befehlsausführung beschleunigen.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Superskalare Architektur=&lt;br /&gt;
&lt;br /&gt;
* Wenn schon eine Pipeline die Geschwindigkeit erhöht, geht es mit Zweien noch schneller. &lt;br /&gt;
* In Bild 9 &amp;quot;Parallel ist schneller&amp;quot; ist im oberen Teil ein solcher Ansatz zu sehen.&lt;br /&gt;
* Auf diese Weise arbeitet beispielsweise der Intel Pentium. &lt;br /&gt;
* Um unnötige Probleme mit Abhängigkeiten zwischen den Befehlen zu minimieren, arbeitet die Intel-CPU allerdings nur bei Kommandos gleichzeitig mit beiden Pipelines, die gut zueinander passen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:Diagram9.png|gerahmt|ohne| &#039;&#039;&#039;Bild 9&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Parallel ist schneller: Superskalare Architekturen mit einer doppelten Pipeline (oben) und parallel arbeitenden Ausführungseinheiten&lt;br /&gt;
(unten).&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;Sprungvorhersage&#039;&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
Die Sprungvorhersage (englisch branch prediction) wird in der (Mikro-)Rechnerarchitektur verwendet und behandelt das Problem von Mikroprozessoren, alle Stufen ihrer Pipeline möglichst immer und sinnvoll auszulasten. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Inhaltsverzeichnis:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
1. Übersicht&lt;br /&gt;
&lt;br /&gt;
2. Funktionsweise: Statische Sprungvorhersage &amp;amp; Dynamische Sprungvorhersage&lt;br /&gt;
&lt;br /&gt;
3. Dynamische Sprungvorhersagetechniken: Branch History Table (BHT),n-Bit träger Automat,1-Bit-Automat &amp;amp; gshare&lt;br /&gt;
&lt;br /&gt;
4. Statische Sprungvorhersagetechnike: Stall/Freeze, Predict taken, Predict not taken &amp;amp; Delayed Branches&lt;br /&gt;
&lt;br /&gt;
5. Sprungzielvorhersage-Techniken: Branch Target Buffer (BTB) &amp;amp; Call-Return-Stapel&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1. Übersicht:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Unter Sprungvorhersage (auch Verzweigungsvorhersage) versteht man:&lt;br /&gt;
&lt;br /&gt;
- Die Vorhersage, ob ein bedingter Sprung ausgeführt wird&lt;br /&gt;
&lt;br /&gt;
- Die Zieladresse eines Sprunges zu ermitteln&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zwei Arten von Sprüngen:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
- Bedingter Sprung: Jcondition Adresse&lt;br /&gt;
&lt;br /&gt;
- Unbedingter Sprung: JMP Adresse, JMP BerechneteAdresse, CALL Adresse, CALL BerechneteAdresse, RET&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In modernen Prozessoren werden Maschinenbefehle in mehreren Verarbeitungsschritten innerhalb einer Verarbeitungskette (Pipeline) ausgeführt. Um die Leistungsfähigkeit des Prozessors zu maximieren, wird, nachdem ein Befehl in die Pipeline geladen wurde und z. B. im nächsten Schritt mit der Analyse des Befehls fortgefahren werden soll, gleichzeitig mit dem Laden des nächsten Befehles begonnen. Es befinden sich also (meistens) eine ganze Reihe von Befehlen zur sequentiellen Abarbeitung in der Pipeline. Wird jetzt am Ende der Pipeline festgestellt, dass ein bedingter Sprung ausgeführt wird, so sind alle in der Pipeline anstehenden und teilabgearbeiteten Befehle ungültig. Der Prozessor löscht jetzt die Pipeline und lädt diese dann von der neuen Programmcodeadresse neu. Je mehr Stufen die Pipeline hat, desto mehr schon berechnete Zwischenergebnisse müssen verworfen werden und umso mehr Takte wird die Pipeline nur partiell genutzt. Das reduziert die Abarbeitungsgeschwindigkeit von Programmen und reduziert die Energieeffizienz.&lt;br /&gt;
Das Ziel ist möglichst frühes Erkennen eines Sprungbefehls und Erkennen seiner Sprungzieladresse, damit gleich die Daten der Zieladresse dem Sprungbefehl in die Pipeline folgen können. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2. Funktionsweise:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;- Statische Sprungvorhersage:&#039;&#039;&#039;&lt;br /&gt;
Die statische Sprungvorhersage ändert ihre Vorhersage während des Programmablaufs nicht. Sie erreicht dadurch nur eine Vorhersagegenauigkeit von 55 bis 80 %. Diese Technik geht von bekannten Tatsachen aus, z. B. dass Schleifen häufig Sprünge ausführen, während dies bei Auswahlverfahren seltener vorkommt. Manche Compiler unterstützen den Mechanismus auch mit speziellen Flags im Befehlscode (Vorhersage wird beim Kompilieren eingebaut).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;- Dynamische Sprungvorhersage:&#039;&#039;&#039;&lt;br /&gt;
Die dynamische Sprungvorhersage geschieht zur Laufzeit durch eine elektronische Verschaltung innerhalb der CPU. Sie benutzt verschiedene Techniken zur Erzeugung einer Vorhersage. Ihre Vorhersagegenauigkeit liegt bei bis zu 98 %. Die einfachste Methode spekuliert anhand der Sprungrichtung: Sprünge im Programmcode zurück sind in der Regel Schleifen, die oft mehrfach durchlaufen werden, sodass bei dieser prophylaktisch die Pipeline mit dem zurückliegenden Code gefüllt wird.Erkannte bedingungslose Sprünge werden einfach vorab aus der Befehlswarteschlange aussortiert und diese dann mit dem Code vom Sprungziel weitergefüllt, bevor diese in die Pipeline eintreten.(„Branch folding“) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3. Dynamische Sprungvorhersagetechniken:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;- Branch History Table (BHT):&#039;&#039;&#039;&lt;br /&gt;
Die BHT (auch Branch-Prediction Buffer) versucht, wie ihr Name schon sagt, ebenfalls die letzten Sprünge mitzuprotokollieren. Dazu verwendet sie einen Teil der Sprungbefehlsadresse als Hashwert. Im Allgemeinen nimmt man dafür den niederwertigen Adressanteil. Diese Adressteile können natürlich nicht immer eindeutig sein, so dass es Kollisionen geben kann (mehrere unterschiedliche Sprünge belegen denselben Platz in der Tabelle).Die Tabelle wird nach jedem Sprung aktualisiert. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;- 1-Bit-Automat:&#039;&#039;&#039;&lt;br /&gt;
Wird ein gespeicherter Sprung genommen, wird dessen Bit von 0 auf 1 gesetzt. Ein Problem ist aber, dass er alternierende Sprünge nicht berücksichtigt (bei Sprüngen, die z. B. nur bei jedem 2. Schleifendurchlauf stattfinden, würde das Bit immer wieder invertiert werden). Die Lösung hierfür ist ein n-Bit-Automat.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;- n-Bit träger Automat:&#039;&#039;&#039;&lt;br /&gt;
Dieser setzt das Korrektheitsbit erst nach den n Fehlschlägen auf 0. Im Allgemeinen wird n = 2 verwendet. (Tests haben gezeigt, dass ab n &amp;gt; 2 die Leistungssteigerung nur noch minimal ist.) Beim ersten Schleifendurchlauf ist der Zustand 00, und die Bedingung sei wahr. Damit geht der Zustand nach 01 über. Ist beim nächsten Schleifendurchlauf die Bedingung wieder wahr, wird der Zustand 10 und sagt daher auch für alle weiteren Sprünge eine wahre Sprungbedingung vorher. Ist beim zweiten Durchlauf die Bedingung falsch, so geht der Zustand wieder nach 00 zurück. Ist der Zustand 11, so muss die Sprungbedingung zweimal falsch gewesen sein, bevor die Vorhersage wieder „falsch“ lautet. Mit anderen Worten: Nachdem zweimal in die gleiche Richtung gesprungen wurde, wird diese Richtung nun auch für die weiteren Sprünge vorhergesagt. Es lässt sich errechnen, dass bei diesem Verfahren die Wahrscheinlichkeit für die richtige Vorhersage bei 83 % liegt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;- gshare:&#039;&#039;&#039;&lt;br /&gt;
Bei gshare werden der Adressteil und die Global History mit XOR verknüpft und in eine Tabelle abgelegt. Die Informationen der Tabelle werden dann zur Sprungvorhersage herangezogen. gshare kombiniert somit Per-Address History mit Global History. Da hier XOR als Hashverfahren genommen wird, können wieder Kollisionen entstehen.&lt;br /&gt;
Das Verfahren findet z. B. im AMD Athlon und Pentium III Anwendung.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4. Statische Sprungvorhersagetechniken:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;- Stall/Freeze:&#039;&#039;&#039;&lt;br /&gt;
Diese Technik hält einfach die ganze Pipeline kurz an. Wird in der ID-Stage (Instruction Decoding) ein Sprungbefehl festgestellt, wird die Pipeline solange angehalten (stalled/frozen), bis man in der EX-Stage (Execution) weiß, ob der Sprung ausgeführt wird.&lt;br /&gt;
&lt;br /&gt;
- Sprung wird nicht ausgeführt, macht normal weiter.&lt;br /&gt;
&lt;br /&gt;
- Sprung wird ausgeführt: Setze Programmzähler auf Sprungzieladresse und fülle die Pipeline mit den Instruktionen, die sich am Sprungziel befinden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;- Predict taken:&#039;&#039;&#039;&lt;br /&gt;
Geht einfach davon aus, dass jeder bedingte Sprung auch ausgeführt wird, d. h., wird in der ID-Stage festgestellt, dass ein Sprungbefehl vorliegt, beginnt die CPU schon mal die Zieladresse zu bestimmen und die dortigen Daten gleich in die Pipeline als Folgeinstruktionen zu laden. Wird in der EX-Stage allerdings festgestellt, dass der Sprung doch nicht stattfindet, war die vorherige Arbeit umsonst (verwendet bei Schleifen).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;- Predict not taken:&#039;&#039;&#039;&lt;br /&gt;
Geht davon aus, dass jeder bedingte Sprung nicht ausgeführt wird und macht normal weiter. Dies bedeutet (sollte der Sprung wirklich nicht ausgeführt werden) einen guten Performancegewinn. Sollte in der EX-Stage festgestellt werden, dass der Sprung wider Erwarten doch ausgeführt wird, muss die Folgeinstruktion angehalten, der PC auf die Sprungzieladresse gestellt und damit dann die Pipeline gefüllt werden (verwendet bei Auswahlverfahren).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;- Delayed Branches:&#039;&#039;&#039;&lt;br /&gt;
Delayed Branches stellen keine Sprung-Vorhersage dar. Sprungbefehle werden 1 bis 3 Befehle im Befehlsstrom nach vorn gezogen kodiert, die folgenden 1 bis 3 Befehle werden unabhängig vom Sprungbefehl immer ausgeführt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;5. Sprungzielvorhersage-Techniken:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Besser als eine bloße Sprungvorhersage ist gleich eine Sprungzielvorhersage. Sobald man in der ID-Stage erkennt, dass es sich um einen Sprung handelt, kann man prüfen, ob dieser Sprung schon mal stattfand und ggf. sein Sprungziel aus einem Puffer holen. Somit kann man den Programmzähler sofort auf dieses Sprungziel stellen und die dortigen Instruktionen in die Pipeline laden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;- Branch Target Buffer (BTB):&#039;&#039;&#039;&lt;br /&gt;
Der BTB (auch Sprungzielpuffer oder Branch Target Address Cache, BTAC):&lt;br /&gt;
Dient der Vorhersage der Folgeadresse, noch bevor der Befehl dekodiert wurde, d. h. bevor feststeht, ob es sich überhaupt um einen Sprungbefehl handelt. Auf diesem Wege wird die andernfalls unvermeidliche Pipelinelücke vermieden und somit die Verzweigungskosten gesenkt. Die Vorhersage wird anhand in einer Tabelle gespeicherter (vorher tatsächlich ausgeführter) Sprünge getroffen.&lt;br /&gt;
&lt;br /&gt;
Diese Tabelle enthält:&lt;br /&gt;
&lt;br /&gt;
- Vorhersageinformationen&lt;br /&gt;
&lt;br /&gt;
- Zieladressen&lt;br /&gt;
&lt;br /&gt;
- Tags&lt;br /&gt;
&lt;br /&gt;
Der BTB liefert immer eine Adresse zurück. Wird ein unbekannter Sprung abgefragt, so liefert er einfach die Folgeadresse. Wird aber ein bekannter Sprung abgefragt, so liefert er die Zieladresse.Der BTB kann nicht immer korrekt arbeiten. Da z. B. RETURN-Anweisungen variable Zieladressen haben (Moving Targets), kann der BTB zu einem korrekten Sprung eine falsche Zieladresse abspeichern. Da in modernen Programmierhochsprachen objektorientiert programmiert wird, kommt es zu häufigen Methodenaufrufen und somit zu vielen Moving Targets. Um diese in der Hinsicht fatale Schwäche zu beheben, werden BTBs um einen Call-Return-Stapel erweitert.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;- Call-Return-Stapel:&#039;&#039;&#039;&lt;br /&gt;
Dieser Stapel speichert alle Return-Adressen nach dem LIFO-Prinzip. Weiterhin wird von speziellen Call- und Return-Befehlen im Befehlssatz ausgegangen (wird also von einem normalen Sprung unterschieden).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sonderbehandlung beider Sprünge im Branch Target Buffer (BTB):&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;- Call:&#039;&#039;&#039; Beim Aufruf wird die Return-Adresse auf dem Call-Return-Stack abgelegt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;- Return:&#039;&#039;&#039; RET-Befehle sind im BTB speziell markiert. Beim Fetchen eines Befehls von einer so markierten Adresse wird statt der Zieladresse aus dem BTB die oberste Adresse des Call-Return-Stacks verwendet.&lt;br /&gt;
&lt;br /&gt;
=Dynamische Sprungvorhersage=&lt;br /&gt;
&lt;br /&gt;
Die Sprungvorhersage kann auf einfachen Regeln basieren: &lt;br /&gt;
&lt;br /&gt;
* Beispielsweise ist es bei einem Sprungbefehl gegen den Befehlsstrom sehr wahrscheinlich, dass er mehrheitlich tatsächlich ausgeführt wird.&lt;br /&gt;
* Diese Annahme basiert auf der Feststellung, dass Rückwärtssprünge im Programmcode oft am Ende von Schleifen stehen. &lt;br /&gt;
* Und Programmschleifen werden in der Regel mehr als nur einmal durchlaufen. &lt;br /&gt;
* Bei Vorwärtssprüngen ist eine derart einfache Vorhersage kaum noch zu treffen. &lt;br /&gt;
* Hier kann man nur von der statistischen Erkenntnis ausgehen, dass die meisten bedingten Vorwärtssprünge nicht ausgeführt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Hardware]]&lt;/div&gt;</summary>
		<author><name>R.Stremming</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=Drucker&amp;diff=22152</id>
		<title>Drucker</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=Drucker&amp;diff=22152"/>
		<updated>2021-02-02T12:18:19Z</updated>

		<summary type="html">&lt;p&gt;R.Stremming: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Charles Babbage hatte bereits in 1837 für die Analytical Engine einen (Dezimalzahlen)Drucker sowie einen Kurvenplotter geplant. Aufgrund der hohen erwarteten Kosten zum Bau dieser umfangreichen Feinmechanik-Maschine wurde weder die Analytical Engine noch ihre Druckausgabestufe je gebaut.  &lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Vorläufer der Computerdrucker waren:&#039;&#039;&#039; &lt;br /&gt;
- Schreibmaschinen&lt;br /&gt;
- Kopierer&lt;br /&gt;
- die Wachsmatrizen-Vervielfältigung bzw. Hektografie&lt;br /&gt;
- Rechenmaschinen mit Belegdruck&lt;br /&gt;
- Bleisatzmaschinen&lt;br /&gt;
 &lt;br /&gt;
Man unterscheidet zwischen Druckern mit Einzelanschlag  und solchen mit variablem Zeichensatz. Es handelt sich  übrigens um die einzige Druckmethode, bei der auch  Durchschläge angefertigt werden können, wie man dies von  der Schreibmaschine her kennt. &lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Impact-Drucker:&#039;&#039;&#039;&lt;br /&gt;
 Bei diesen Modellen wird das Papier mit  einem mechanischen Anschlag beschriftet.  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Non-Impact-Drucker:&#039;&#039;&#039;&lt;br /&gt;
 Das Papier wird ohne Anschlag beschriftet. &lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Teile eines Tintenstrahldruckers:&#039;&#039;&#039;&lt;br /&gt;
(1) Drucker Controller, steuert die beiden Motoren; &lt;br /&gt;
(2) Papierblatt antreibende Walze; &lt;br /&gt;
(3) Tintenpatronen; &lt;br /&gt;
(4) Druckköpfe; &lt;br /&gt;
(5) bedrucktes Papier &lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Grundsätzliches über Tintenstrahldrucker:&#039;&#039;&#039; &lt;br /&gt;
Das zu bedruckende Medium (meistens Papier) wird durch einen sehr  präzisen Schrittmotor durch den Drucker geschoben. &lt;br /&gt;
Gleichzeitig rast der Druckkopf (mitsamt der Tintenpatrone) horizontal über das Papier und schießt winzige Tintentröpfchen ab. &lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Teile eines Laserdruckers:&#039;&#039;&#039;&lt;br /&gt;
 (1) Drucker-Controller&lt;br /&gt;
(2) Bildtrommel&lt;br /&gt;
(3) Toner&lt;br /&gt;
(4) Papiereinzugswalzen&lt;br /&gt;
(5) Fixiereinheit &lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Wie funktioniert der Laserdrucker?&#039;&#039;&#039; &lt;br /&gt;
Beim Laserdruck entlädt ein Laserstrahl die Bildtrommel an den Stellen, an welchen kein Toner haften bleiben soll. Dieser haftet somit nur an den elektrisch aufgeladenen Stellen und wird in weiterer Folge durch eine Walzbewegung von der Tonerkartusche auf das Druckerpapier übertragen. Auf dieses schmilzt die Fixiereinheit das Tonerpulver durch Hitze und Druck auf, wodurch der fertige Ausdruck &lt;br /&gt;
Entsteht &lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Vorteile:&#039;&#039;&#039; &lt;br /&gt;
•	Hohe Druckgeschwindigkeit &lt;br /&gt;
•	Geringe Betriebsgeräusche &lt;br /&gt;
•	Farbdruck möglich Nachteile: &lt;br /&gt;
•	Hohe Kosten(Anschaffung, Toner, Trommel) &lt;br /&gt;
•	Umweltbelastung &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Wie funktioniert ein LED Drucker?&#039;&#039;&#039; &lt;br /&gt;
Ein LED-Drucker arbeitet mit einer Reihe von LEDs, welche über die  gesamte Breite des Druckkopfs reichen. Zur zeilenweisen Belichtung  des Druckkopfs werden die LEDs an jeder Stelle gleichzeitig „gezündet“.  Dadurch kann der später hinzugegebene Toner am Druckkopf haften. &lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Vorteile:&#039;&#039;&#039; &lt;br /&gt;
- Laser- und LED-Drucker drucken sehr scharfe, tief schwarze Texte aus und der farbige Text ist in der Regel fast genauso gut. &lt;br /&gt;
- LED-Drucker funktionieren sehr gut mit jedem Laserdrucker-kompatiblen Papier.  &lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Nachteile:&#039;&#039;&#039; &lt;br /&gt;
- Obwohl Laser- und LED-Drucker einfache Grafiken ausdrucken können, hadern diese Drucker mit der Qualität bei Foto-Ausdrucken. &lt;br /&gt;
- Es gibt zwar kostengünstige und kompakte Laser-Drucker, aber das Standard-Büromodell ist immer noch relativ schwer und sperrig. &lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;LCD:&#039;&#039;&#039;&lt;br /&gt;
 Innerhalb des LCD-Druckers läuft im ganzen Papierbereich eine &lt;br /&gt;
 Leiste mit Elementen. Diese Leiste wird nun durch eine  Halogenlampe oder eine ähnlich starke Lichtquelle erhellt,  aber nur an den Stellen, wo auf dem Papier ein Bild durch den  Toner entstehen soll. &lt;br /&gt;
 &lt;br /&gt;
Da die LCD-Technologie im Drucker weniger Platz einnimmt als ein Laser im dazu gehörigen Laserdrucker, durch den der Toner auf das Papier übertragen wird, können LCD-Drucker kleiner ausfallen als viele andere Drucker. Außerdem wird bei ihrem &lt;br /&gt;
Einsatz erheblich mehr Strom eingespart als bei einem Laserdrucker. Ebenso wie ein solcher Drucker ist der LCD-Drucker aber auch ein Seitendrucker, d.h. jede Seite, die ausgedruckt werden soll, muss vor Ausdruck zwischen gespeichert werden. Daher benötigt er einen relativ großen Speicher. &lt;br /&gt;
Andererseits können mit dem Toner dank dieser neuen Technologie auch Banner bedruckt werden. Denn die meisten LCD-Drucker unterstützen ebenso wie Laserdrucker das Drucken von Bannern.  &lt;br /&gt;
 &lt;br /&gt;
Ein &#039;&#039;&#039;Typenraddrucker&#039;&#039;&#039; (engl. Type-Wheel Printer oder Daisy-Wheel Printer) funktioniert genauso wie eine elektrische Schreibmaschine, d. h. die Zeichen werden über ein Farbband (oft schwarz oder blau) auf das Papier geschlagen. Die Steuerung des Druckkopfes von links nach rechts erfolgt über einen Motor und das Anschlagen der Zeichen erfolgt über einen Elektromagneten. Die Zeichen (hier auch Typen genannt) befinden sich auf ein Rad, das über einen Motor entsprechend positioniert wird.  &lt;br /&gt;
Zwar sind Schriftbild und Druckqualität besser als bei einem Laserdrucker, jedoch ist durch die Begrenzung der 92 Zeichen die Ausdrucksmöglichkeit auf Schrift und Satzzeichen begrenzt &lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Nadeldrucker:&#039;&#039;&#039; &lt;br /&gt;
Beim Druckvorgang eine Reihe einzeln angesteuerter Nadeln auf ein – meist schwarzes – Farbband schlägt und dadurch die andere Seite des Farbbands jeweils punktuell mit dem Papier in druckenden Kontakt bringt. Ein gedrucktes Zeichen besteht jeweils aus einer Vielzahl solcher Farbpunkte.  &lt;br /&gt;
Der zuverlässige und robuste Nadeldrucker ist heute vereinzelt in Arztpraxen, Banken und Firmen zu finden. &lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Zeilen Drucker:&#039;&#039;&#039;&lt;br /&gt;
Den verschiedenen Ausführungen ist gemein, dass viele Typen mehr oder weniger gleichzeitig an verschiedenen Spalten einer Zeile aufschlagen. Dazwischen ist entweder ein Farbband oder ein Farbtuch angebracht. Sie sind jedoch auch heute noch für Massenaufträge in Betrieb, besonders wenn Durchschläge erforderlich sind.  &lt;br /&gt;
Allen gemein ist der hohe Arbeitslärmpegel, weshalb Zeilendrucker meist in gesonderten Räumen oder mit Schallschutzhauben aufgestellt werden.  &lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Thermodruckkopf&#039;&#039;&#039; &lt;br /&gt;
Mit Thermodruck bezeichnet man eine Reihe von Druck-Verfahren, die auf punktueller Hitzeeinwirkung beruhen. Das Verfahren wird heute meist bei Kassendruckern, für Parktickets und Fahrkarten verwendet.&lt;/div&gt;</summary>
		<author><name>R.Stremming</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=Diskussion:Drucker&amp;diff=22149</id>
		<title>Diskussion:Drucker</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=Diskussion:Drucker&amp;diff=22149"/>
		<updated>2021-02-02T12:03:43Z</updated>

		<summary type="html">&lt;p&gt;R.Stremming: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Der Drucker!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Charles Babbage hatte bereits in 1837 für die &#039;&#039;&#039;Analytical Engine&#039;&#039;&#039; einen (Dezimalzahlen)Drucker sowie einen Kurvenplotter geplant. Aufgrund der hohen erwarteten Kosten zum Bau dieser umfangreichen &#039;&#039;&#039;Feinmechanik-Maschine&#039;&#039;&#039; wurde weder die Analytical Engine noch ihre Druckausgabestufe je gebaut.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vorläufer der Computerdrucker waren:&#039;&#039;&#039; &lt;br /&gt;
• Schreibmaschinen, &lt;br /&gt;
• Kopierer, &lt;br /&gt;
• Die Wachsmatrizen-Vervielfältigung bzw. Hektografie,&lt;br /&gt;
• Rechenmaschinen mit Belegdruck,&lt;br /&gt;
• Bleisatzmaschinen.&lt;br /&gt;
&lt;br /&gt;
Man unterscheidet zwischen Druckern mit Einzelanschlag und solchen mit variablem Zeichensatz. Es handelt sich übrigens um die einzige Druckmethode, bei der auch Durchschläge angefertigt werden können, wie man dies von der Schreibmaschine her kennt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Impact-Drucker:&#039;&#039;&#039; Bei diesen Modellen wird das Papier mit einem mechanischen Anschlag beschriftet. &lt;br /&gt;
&#039;&#039;&#039;Non-Impact-Drucker:&#039;&#039;&#039; Das Papier wird ohne Anschlag beschriftet.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Teile eines Tintenstrahldruckers:&#039;&#039;&#039;&lt;br /&gt;
(1) Drucker Controller, steuert die beiden Motoren, &lt;br /&gt;
(2) Papierblatt antreibende Walze,&lt;br /&gt;
(3) Tintenpatronen, &lt;br /&gt;
(4) Druckköpfe,&lt;br /&gt;
(5) bedrucktes Papier,&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Grundsätzliches über Tintenstrahldrucker:&#039;&#039;&#039;&lt;br /&gt;
Das zu bedruckende Medium (meistens Papier) wird durch einen sehr präzisen Schrittmotor durch den Drucker geschoben.&lt;br /&gt;
Gleichzeitig rast der Druckkopf (mitsamt der Tintenpatrone) horizontal über das Papier und schießt winzige Tintentröpfchen ab.&lt;br /&gt;
&lt;br /&gt;
• Relativ preiswert in der Anschaffung,&lt;br /&gt;
• Tinte benötigt gewisse Trocknungszeit,&lt;br /&gt;
• Adäquate GeräuschentwicklungHohe, Auflösung und Druckqualität,&lt;br /&gt;
• Mit der entsprechend längerer DruckprozessDruckertinte gehört zu den teuersten Flüssigkeiten der Welt,&lt;br /&gt;
• Folglich relativ selbst Fotos erstellt werden können und mit der passenden Tinte langlebige preisintensives Verbrauchsmaterial,&lt;br /&gt;
• Bei Nichtgebrauch Risiko, dass Patronen Druckergebnisse mit brillanten Farben.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Teile eines Laserdruckers:&#039;&#039;&#039; &lt;br /&gt;
(1) Drucker-Controller &lt;br /&gt;
(2) Bildtrommel &lt;br /&gt;
(3) Toner&lt;br /&gt;
(4) Papiereinzugswalzen&lt;br /&gt;
(5) Fixiereinheit&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wie funktioniert der Laserdrucker?&#039;&#039;&#039; &lt;br /&gt;
Beim Laserdruck entlädt ein Laserstrahl die Bildtrommel an den Stellen, an welchen kein Toner haften bleiben soll. Dieser haftet somit nur an den elektrisch aufgeladenen Stellen und wird in weiterer Folge durch eine Walzbewegung von der Tonerkartusche auf das Druckerpapier übertragen. Auf dieses schmilzt die Fixiereinheit das Tonerpulver durch Hitze und Druck auf, wodurch der fertige Ausdruck Entsteht&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vorteile:&#039;&#039;&#039;&lt;br /&gt;
• Hohe Druckgeschwindigkeit &lt;br /&gt;
• Geringe Betriebsgeräusche &lt;br /&gt;
• Farbdruck möglich &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Nachteile:&#039;&#039;&#039;&lt;br /&gt;
• Hohe Kosten(Anschaffung, Toner, Trommel) &lt;br /&gt;
• Umweltbelastung&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wie funktioniert ein LED Drucker?&#039;&#039;&#039; &lt;br /&gt;
Ein LED-Drucker arbeitet mit einer Reihe von LEDs, welche über die gesamte Breite des Druckkopfs reichen. Zur zeilenweisen Belichtung des Druckkopfs werden die LEDs an jeder Stelle gleichzeitig „gezündet“. Dadurch kann der später hinzugegebene Toner am Druckkopf haften.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vorteile:&#039;&#039;&#039; &lt;br /&gt;
- Laser- und LED-Drucker drucken sehr scharfe, tief schwarze Texte aus und der farbige Text ist in der Regel fast genauso gut. &lt;br /&gt;
- LED-Drucker funktionieren sehr gut mit jedem Laserdrucker-kompatiblen Papier.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Nachteil:&#039;&#039;&#039; &lt;br /&gt;
- Obwohl Laser- und LED-Drucker einfache Grafiken ausdrucken können, hadern diese Drucker mit der Qualität bei Foto-Ausdrucken. &lt;br /&gt;
- Es gibt zwar kostengünstige und kompakte Laser-Drucker, aber das Standard-Büromodell ist immer noch relativ schwer und sperrig.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;LCD(Liquid Chrystal Display)Drucker:&#039;&#039;&#039;&lt;br /&gt;
Innerhalb des LCD-Druckers läuft im ganzen Papierbereich eine &lt;br /&gt;
Leiste mit Elementen. Diese Leiste wird nun durch eine  Halogenlampe oder eine ähnlich starke Lichtquelle erhellt,  aber nur an den Stellen, wo auf dem Papier ein Bild durch den  Toner entstehen soll. &lt;br /&gt;
&lt;br /&gt;
Da die LCD-Technologie im Drucker weniger Platz einnimmt als ein Laser im dazu gehörigen Laserdrucker, durch den der Toner auf das Papier übertragen wird, können LCD-Drucker kleiner ausfallen als viele andere Drucker. Außerdem wird bei ihrem Einsatz erheblich mehr Strom eingespart als bei einem Laserdrucker. Ebenso wie ein solcher Drucker ist der LCD-Drucker aber auch ein Seitendrucker, d.h. jede Seite, die ausgedruckt werden soll, muss vor Ausdruck zwischen gespeichert werden. Daher benötigt er einen relativ großen Speicher. Andererseits können mit dem Toner dank dieser neuen Technologie auch Banner bedruckt werden. Denn die meisten LCD-Drucker unterstützen ebenso wie Laserdrucker das Drucken von Bannern.&lt;br /&gt;
&lt;br /&gt;
Ein &#039;&#039;&#039;Typenraddrucker&#039;&#039;&#039; (engl. Type-Wheel Printer oder Daisy-Wheel Printer) funktioniert genauso wie eine elektrische Schreibmaschine, d. h. die Zeichen werden über ein Farbband (oft schwarz oder blau) auf das Papier geschlagen. Die Steuerung des Druckkopfes von links nach rechts erfolgt über einen Motor und das Anschlagen der Zeichen erfolgt über einen Elektromagneten. Die Zeichen (hier auch Typen genannt) befinden sich auf ein Rad, das über einen Motor entsprechend positioniert wird. &lt;br /&gt;
• Zwar sind Schriftbild und Druckqualität besser als bei einem Laserdrucker, jedoch ist durch die Begrenzung der 92 Zeichen die Ausdrucksmöglichkeit auf Schrift und Satzzeichen begrenzt.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Nadeldrucker:&#039;&#039;&#039; &lt;br /&gt;
Beim Druckvorgang eine Reihe einzeln angesteuerter Nadeln auf ein – meist schwarzes – Farbband schlägt und dadurch die andere Seite des Farbbands jeweils punktuell mit dem Papier in druckenden Kontakt bringt. Ein gedrucktes Zeichen besteht jeweils aus einer Vielzahl solcher Farbpunkte. &lt;br /&gt;
Der zuverlässige und robuste Nadeldrucker ist heute vereinzelt in Arztpraxen, Banken und Firmen zu finden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Zeilen Drucker:&#039;&#039;&#039;&lt;br /&gt;
• Den verschiedenen Ausführungen ist gemein, dass viele Typen mehr oder weniger gleichzeitig an verschiedenen Spalten einer Zeile aufschlagen. Dazwischen ist entweder ein Farbband oder ein Farbtuch angebracht. Sie sind jedoch auch heute noch für Massenaufträge in Betrieb, besonders wenn Durchschläge erforderlich sind. &lt;br /&gt;
• Allen gemein ist der hohe Arbeitslärmpegel, weshalb Zeilendrucker meist in gesonderten Räumen oder mit Schallschutzhauben aufgestellt werden.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Thermodruckkopf:&#039;&#039;&#039;&lt;br /&gt;
• Mit Thermodruck bezeichnet man eine Reihe von Druck-Verfahren, die auf punktueller Hitzeeinwirkung beruhen. Das Verfahren wird heute meist bei Kassendruckern, für Parktickets und Fahrkarten verwendet.&lt;/div&gt;</summary>
		<author><name>R.Stremming</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=Diskussion:Drucker&amp;diff=22122</id>
		<title>Diskussion:Drucker</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=Diskussion:Drucker&amp;diff=22122"/>
		<updated>2021-02-02T10:12:30Z</updated>

		<summary type="html">&lt;p&gt;R.Stremming: Die Seite wurde neu angelegt: „&amp;#039;&amp;#039;&amp;#039;Der Drucker!&amp;#039;&amp;#039;&amp;#039;  Charles Babbage hatte bereits in 1837 für die &amp;#039;&amp;#039;&amp;#039;Analytical Engine&amp;#039;&amp;#039;&amp;#039; einen (Dezimalzahlen)Drucker sowie einen Kurvenplotter geplant. Aufg…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Der Drucker!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Charles Babbage hatte bereits in 1837 für die &#039;&#039;&#039;Analytical Engine&#039;&#039;&#039; einen (Dezimalzahlen)Drucker sowie einen Kurvenplotter geplant. Aufgrund der hohen erwarteten Kosten zum Bau dieser umfangreichen &#039;&#039;&#039;Feinmechanik-Maschine&#039;&#039;&#039; wurde weder die Analytical Engine noch ihre Druckausgabestufe je gebaut.&lt;br /&gt;
&lt;br /&gt;
Vorläufer der Computerdrucker waren: &lt;br /&gt;
• Schreibmaschinen, &lt;br /&gt;
• Kopierer, &lt;br /&gt;
• Die Wachsmatrizen-Vervielfältigung bzw. Hektografie,&lt;br /&gt;
• Rechenmaschinen mit Belegdruck,&lt;br /&gt;
• Bleisatzmaschinen.&lt;br /&gt;
&lt;br /&gt;
Man unterscheidet zwischen Druckern mit Einzelanschlag und solchen mit variablem Zeichensatz. Es handelt sich übrigens um die einzige Druckmethode, bei der auch Durchschläge angefertigt werden können, wie man dies von der Schreibmaschine her kennt.&lt;br /&gt;
&lt;br /&gt;
Impact-Drucker: Bei diesen Modellen wird das Papier mit einem mechanischen Anschlag beschriftet. &lt;br /&gt;
Non-Impact-Drucker: Das Papier wird ohne Anschlag beschriftet.&lt;br /&gt;
&lt;br /&gt;
Teile eines Tintenstrahldruckers:&lt;br /&gt;
(1) Drucker Controller, steuert die beiden Motoren, &lt;br /&gt;
(2) Papierblatt antreibende Walze,&lt;br /&gt;
(3) Tintenpatronen, &lt;br /&gt;
(4) Druckköpfe,&lt;br /&gt;
(5) bedrucktes Papier,&lt;br /&gt;
&lt;br /&gt;
Grundsätzliches über Tintenstrahldrucker:&lt;br /&gt;
Das zu bedruckende Medium (meistens Papier) wird durch einen sehr präzisen Schrittmotor durch den Drucker geschoben.&lt;br /&gt;
Gleichzeitig rast der Druckkopf (mitsamt der Tintenpatrone) horizontal über das Papier und schießt winzige Tintentröpfchen ab.&lt;br /&gt;
&lt;br /&gt;
• Relativ preiswert in der Anschaffung,&lt;br /&gt;
• Tinte benötigt gewisse Trocknungszeit,&lt;br /&gt;
• Adäquate GeräuschentwicklungHohe, Auflösung und Druckqualität,&lt;br /&gt;
• Mit der entsprechend längerer DruckprozessDruckertinte gehört zu den teuersten Flüssigkeiten der Welt,&lt;br /&gt;
• Folglich relativ selbst Fotos erstellt werden können und mit der passenden Tinte langlebige preisintensives Verbrauchsmaterial,&lt;br /&gt;
• Bei Nichtgebrauch Risiko, dass Patronen Druckergebnisse mit brillanten Farben.&lt;br /&gt;
&lt;br /&gt;
Teile eines Laserdruckers: &lt;br /&gt;
(1) Drucker-Controller &lt;br /&gt;
(2) Bildtrommel &lt;br /&gt;
(3) Toner&lt;br /&gt;
(4) Papiereinzugswalzen&lt;br /&gt;
(5) Fixiereinheit&lt;br /&gt;
&lt;br /&gt;
Wie funktioniert der Laserdrucker? Beim Laserdruck entlädt ein Laserstrahl die Bildtrommel an den Stellen, an welchen kein Toner haften bleiben soll. Dieser haftet somit nur an den elektrisch aufgeladenen Stellen und wird in weiterer Folge durch eine Walzbewegung von der Tonerkartusche auf das Druckerpapier übertragen. Auf dieses schmilzt die Fixiereinheit das Tonerpulver durch Hitze und Druck auf, wodurch der fertige Ausdruck Entsteht&lt;br /&gt;
&lt;br /&gt;
Vorteile:&lt;br /&gt;
• Hohe Druckgeschwindigkeit &lt;br /&gt;
• Geringe Betriebsgeräusche &lt;br /&gt;
• Farbdruck möglich &lt;br /&gt;
&lt;br /&gt;
Nachteile:&lt;br /&gt;
• Hohe Kosten(Anschaffung, Toner, Trommel) &lt;br /&gt;
• Umweltbelastung&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wie funktioniert ein LED Drucker? Ein LED-Drucker arbeitet mit einer Reihe von LEDs, welche über die gesamte Breite des Druckkopfs reichen. Zur zeilenweisen Belichtung des Druckkopfs werden die LEDs an jeder Stelle gleichzeitig „gezündet“. Dadurch kann der später hinzugegebene Toner am Druckkopf haften.&lt;br /&gt;
&lt;br /&gt;
Vorteile: &lt;br /&gt;
- Laser- und LED-Drucker drucken sehr scharfe, tief schwarze Texte aus und der farbige Text ist in der Regel fast genauso gut. &lt;br /&gt;
- LED-Drucker funktionieren sehr gut mit jedem Laserdrucker-kompatiblen Papier.&lt;br /&gt;
&lt;br /&gt;
Nachteil: &lt;br /&gt;
- Obwohl Laser- und LED-Drucker einfache Grafiken ausdrucken können, hadern diese Drucker mit der Qualität bei Foto-Ausdrucken. &lt;br /&gt;
- Es gibt zwar kostengünstige und kompakte Laser-Drucker, aber das Standard-Büromodell ist immer noch relativ schwer und sperrig.&lt;br /&gt;
&lt;br /&gt;
LCD(Liquid Chrystal Display)Drucker:&lt;br /&gt;
Innerhalb des LCD-Druckers läuft im ganzen Papierbereich eine &lt;br /&gt;
Leiste mit Elementen. Diese Leiste wird nun durch eine  Halogenlampe oder eine ähnlich starke Lichtquelle erhellt,  aber nur an den Stellen, wo auf dem Papier ein Bild durch den  Toner entstehen soll. &lt;br /&gt;
&lt;br /&gt;
Da die LCD-Technologie im Drucker weniger Platz einnimmt als ein Laser im dazu gehörigen Laserdrucker, durch den der Toner auf das Papier übertragen wird, können LCD-Drucker kleiner ausfallen als viele andere Drucker. Außerdem wird bei ihrem Einsatz erheblich mehr Strom eingespart als bei einem Laserdrucker. Ebenso wie ein solcher Drucker ist der LCD-Drucker aber auch ein Seitendrucker, d.h. jede Seite, die ausgedruckt werden soll, muss vor Ausdruck zwischen gespeichert werden. Daher benötigt er einen relativ großen Speicher. Andererseits können mit dem Toner dank dieser neuen Technologie auch Banner bedruckt werden. Denn die meisten LCD-Drucker unterstützen ebenso wie Laserdrucker das Drucken von Bannern.&lt;br /&gt;
&lt;br /&gt;
Ein Typenraddrucker (engl. Type-Wheel Printer oder Daisy-Wheel Printer) funktioniert genauso wie eine elektrische Schreibmaschine, d. h. die Zeichen werden über ein Farbband (oft schwarz oder blau) auf das Papier geschlagen. Die Steuerung des Druckkopfes von links nach rechts erfolgt über einen Motor und das Anschlagen der Zeichen erfolgt über einen Elektromagneten. Die Zeichen (hier auch Typen genannt) befinden sich auf ein Rad, das über einen Motor entsprechend positioniert wird. &lt;br /&gt;
• Zwar sind Schriftbild und Druckqualität besser als bei einem Laserdrucker, jedoch ist durch die Begrenzung der 92 Zeichen die Ausdrucksmöglichkeit auf Schrift und Satzzeichen begrenzt.&lt;br /&gt;
&lt;br /&gt;
Nadeldrucker: &lt;br /&gt;
Beim Druckvorgang eine Reihe einzeln angesteuerter Nadeln auf ein – meist schwarzes – Farbband schlägt und dadurch die andere Seite des Farbbands jeweils punktuell mit dem Papier in druckenden Kontakt bringt. Ein gedrucktes Zeichen besteht jeweils aus einer Vielzahl solcher Farbpunkte. &lt;br /&gt;
Der zuverlässige und robuste Nadeldrucker ist heute vereinzelt in Arztpraxen, Banken und Firmen zu finden.&lt;br /&gt;
&lt;br /&gt;
Zeilen Drucker:&lt;br /&gt;
• Den verschiedenen Ausführungen ist gemein, dass viele Typen mehr oder weniger gleichzeitig an verschiedenen Spalten einer Zeile aufschlagen. Dazwischen ist entweder ein Farbband oder ein Farbtuch angebracht. Sie sind jedoch auch heute noch für Massenaufträge in Betrieb, besonders wenn Durchschläge erforderlich sind. &lt;br /&gt;
• Allen gemein ist der hohe Arbeitslärmpegel, weshalb Zeilendrucker meist in gesonderten Räumen oder mit Schallschutzhauben aufgestellt werden.&lt;br /&gt;
&lt;br /&gt;
Thermodruckkopf:&lt;br /&gt;
• Mit Thermodruck bezeichnet man eine Reihe von Druck-Verfahren, die auf punktueller Hitzeeinwirkung beruhen. Das Verfahren wird heute meist bei Kassendruckern, für Parktickets und Fahrkarten verwendet.&lt;/div&gt;</summary>
		<author><name>R.Stremming</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=Drucker&amp;diff=22009</id>
		<title>Drucker</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=Drucker&amp;diff=22009"/>
		<updated>2021-02-01T12:30:34Z</updated>

		<summary type="html">&lt;p&gt;R.Stremming: Die Seite wurde neu angelegt: „Der Drucker Behandelte Themen:   Was ist ein Drucker? �- Herkunft &amp;amp; �- Vorherige Prototypen  Druckertechnologien: �- Impact Drucker �- Non-Impact Druck…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Der Drucker&lt;br /&gt;
Behandelte Themen:&lt;br /&gt;
&lt;br /&gt;
 Was ist ein Drucker?&lt;br /&gt;
�- Herkunft &amp;amp;&lt;br /&gt;
�- Vorherige Prototypen&lt;br /&gt;
 Druckertechnologien:&lt;br /&gt;
�- Impact Drucker&lt;br /&gt;
�- Non-Impact Drucker&lt;br /&gt;
�- Funktionsweise&lt;br /&gt;
�- Vorteile&lt;br /&gt;
�- Nachteile&lt;br /&gt;
�- Anwendungensorten&lt;br /&gt;
 Quellen&lt;br /&gt;
&lt;br /&gt;
Was ist ein Drucker?&lt;br /&gt;
�- Ein Peripheriegerät eines &lt;br /&gt;
   	   Computers �&lt;br /&gt;
&lt;br /&gt;
Herkunft:�- Charles Babbage &lt;br /&gt;
	- Analytical Engine &lt;br /&gt;
	- Dezimalzahlen Drucker&lt;br /&gt;
	- Kurvenplotter &lt;br /&gt;
	- Feinmechanik Maschine&lt;br /&gt;
&lt;br /&gt;
Vorherige Prototypen: &lt;br /&gt;
- Schreibmaschine&lt;br /&gt;
- Rechenmaschinen&lt;br /&gt;
- Analytical Engine&lt;br /&gt;
- Hektografie&lt;br /&gt;
&lt;br /&gt;
Druckertechnologien:&lt;br /&gt;
Impact und Non-Impact Drucker:&lt;br /&gt;
- Die Unterschiede&lt;br /&gt;
- Druck Methoden�&lt;br /&gt;
 &lt;br /&gt;
Man unterscheidet zwischen Druckern mit Einzelanschlag  und solchen mit variablem Zeichensatz. Es handelt sich  übrigens um die einzige Druckmethode, bei der auch  Durchschläge angefertigt werden können, wie man dies von  der Schreibmaschine her kennt. &lt;br /&gt;
 &lt;br /&gt;
Impact-Drucker: Bei diesen Modellen wird das Papier mit  einem mechanischen Anschlag beschriftet.  &lt;br /&gt;
Non-Impact-Drucker: Das Papier wird ohne Anschlag beschriftet. &lt;br /&gt;
Tintenstrahldrucker:�	(Non-Impact-Drucker)�&lt;br /&gt;
     -  Innereien eines Tintenstrahldruckers�   &lt;br /&gt;
  - Grundsätzliches über Tintenstrahldrucker&lt;br /&gt;
&lt;br /&gt;
 Vorteile:&lt;br /&gt;
�- Preiswert &lt;br /&gt;
�- Adäquate Geräuschentwicklung&lt;br /&gt;
�- Hohe Auflösung und Druckqualität&lt;br /&gt;
�- Signifikant wenig Platz &lt;br /&gt;
&lt;br /&gt;
 Nachteile:&lt;br /&gt;
�- Trocknungszeit&lt;br /&gt;
�- Teuer&lt;br /&gt;
�- Bestimmte Papiersorten können sich wellen&lt;br /&gt;
&lt;br /&gt;
Anwedungsort:  Büro &amp;amp; Die Druckerei�&lt;br /&gt;
&lt;br /&gt;
Laserdrucker:� (Non-Impact-Drucker)&lt;br /&gt;
-Innereien eines Laserdruckers&lt;br /&gt;
-Funktion eines Laserdruckers &lt;br /&gt;
&lt;br /&gt;
  Vorteile: &lt;br /&gt;
	- Hohe Druckgeschwindigkeit &lt;br /&gt;
	- Geringe Betriebsgeräusche &lt;br /&gt;
	- Farbdruck möglich&lt;br /&gt;
&lt;br /&gt;
  Nachteile: &lt;br /&gt;
	- Hohe Kosten&lt;br /&gt;
�	- Umweltbelastend&lt;br /&gt;
&lt;br /&gt;
 Softwaretreiber:&lt;br /&gt;
�- Rasterdaten�- Raster Image Processor (RIP)&lt;br /&gt;
�- Hochgeschwindigkeitsverbindung&lt;br /&gt;
&lt;br /&gt;
Anwendungsorten: Büro &amp;amp;internet-Cafeteria&lt;br /&gt;
&lt;br /&gt;
LED-Drucker:&lt;br /&gt;
�(Non-Impact-Drucker)&lt;br /&gt;
- Funktionsweise&lt;br /&gt;
&lt;br /&gt;
 Vorteile:&lt;br /&gt;
	- Perfekte Texte drucken&lt;br /&gt;
�	- Additives Farbmischung&lt;br /&gt;
�	- Papier Kompatibilität&lt;br /&gt;
 Nachteile:&lt;br /&gt;
	- Mittelmäßige Fotoqualität&lt;br /&gt;
	- Größere, schwerere Geräte&lt;br /&gt;
 Anwendungsorten: Büro &amp;amp; Internet-Caféteria&lt;br /&gt;
&lt;br /&gt;
LCD/LCSDrucker:�  (Non-Impact-Drucker)��&lt;br /&gt;
- Funktionsweise&lt;br /&gt;
 Vorteile:&lt;br /&gt;
�- Entnimmt wenig Platz&lt;br /&gt;
�- Eingespartes Strom�&lt;br /&gt;
&lt;br /&gt;
 Nachteile:&lt;br /&gt;
�- Braucht sehr viel Speicherplatz&lt;br /&gt;
�- Einfarbige Modelle &lt;br /&gt;
&lt;br /&gt;
 Anwendungsorten: Büro &amp;amp; Zimmer&lt;br /&gt;
&lt;br /&gt;
Typenraddrucker:�(Impact Drucker)�	&lt;br /&gt;
- Funktionsweise�- Anwendungsorten&lt;br /&gt;
 Vorteile:&lt;br /&gt;
	- Geringe Störanfälligkeit. &lt;br /&gt;
	- Geringe Kosten.&lt;br /&gt;
&lt;br /&gt;
 Nachteile:&lt;br /&gt;
	- Lohe Lautstärke&lt;br /&gt;
	- Langsame Druckgeschwindigkeit&lt;br /&gt;
	- Keine Grafikfähigkeit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nadeldrucker:� (Impact Drucker)&lt;br /&gt;
	- Funktionsweise�	- Anwendungsorten&lt;br /&gt;
&lt;br /&gt;
 Vorteile:&lt;br /&gt;
	- Kompatibilität&lt;br /&gt;
	- Lebensdauer&lt;br /&gt;
	- Endlosschleifen&lt;br /&gt;
&lt;br /&gt;
 Nachteile:&lt;br /&gt;
	- Druckgeschwindigkeit&lt;br /&gt;
	- Schlechte Farbwiedergabe&lt;br /&gt;
&lt;br /&gt;
Zeilendrucker:�(Impact drucker)�&lt;br /&gt;
   - Funktionsweise�   &lt;br /&gt;
- Anwendungsort&lt;br /&gt;
&lt;br /&gt;
Vorteil:&lt;br /&gt;
	- Hochgeschwindigkeitsdrucker�&lt;br /&gt;
 Nachteil:&lt;br /&gt;
	- Niedriges Druckqualität&lt;br /&gt;
Thermodrucker:�(Non impact drucker)�&lt;br /&gt;
	- Funtionsweise�	-Anwendungsorten&lt;br /&gt;
 Vorteile: &lt;br /&gt;
	- Einfacher Aufbau &lt;br /&gt;
	- Kein Farbband&lt;br /&gt;
 Nachteile:&lt;br /&gt;
	- Teures Papier&lt;br /&gt;
	- Papier vergilbt mit der Zeit&lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
Sprechtext:&lt;br /&gt;
&lt;br /&gt;
1)Charles Babbage hatte bereits in 1837 für die Analytical Engine einen (Dezimalzahlen)Drucker sowie einen Kurvenplotter geplant. Aufgrund der hohen erwarteten Kosten zum Bau dieser umfangreichen Feinmechanik-Maschine wurde weder die Analytical Engine noch ihre Druckausgabestufe je gebaut.  &lt;br /&gt;
 &lt;br /&gt;
	• 	Vorläufer der Computerdrucker waren: &lt;br /&gt;
elektrische Schreibmaschinen, Kopierer, &lt;br /&gt;
die Wachsmatrizen-Vervielfältigung bzw. Hektografie, Rechenmaschinen mit Belegdruck, elektrische Bleisatzmaschinen. &lt;br /&gt;
 &lt;br /&gt;
1) Man unterscheidet zwischen Druckern mit Einzelanschlag  und solchen mit variablem Zeichensatz. Es handelt sich  übrigens um die einzige Druckmethode, bei der auch  Durchschläge angefertigt werden können, wie man dies von  der Schreibmaschine her kennt. &lt;br /&gt;
 &lt;br /&gt;
Impact-Drucker: Bei diesen Modellen wird das Papier mit  einem mechanischen Anschlag beschriftet.  &lt;br /&gt;
Non-Impact-Drucker: Das Papier wird ohne Anschlag beschriftet. &lt;br /&gt;
 &lt;br /&gt;
3) Innereien eines Tintenstrahldruckers (1) Drucker Controller, steuert die beiden Motoren; &lt;br /&gt;
(2) Papierblatt antreibende Walze; (3) Tintenpatronen; (4) Druckköpfe; (5) bedrucktes Papier &lt;br /&gt;
 &lt;br /&gt;
Grundsätzliches über Tintenstrahldrucker: &lt;br /&gt;
Das zu bedruckende Medium (meistens Papier) wird durch einen sehr  präzisen Schrittmotor durch den Drucker geschoben. &lt;br /&gt;
Gleichzeitig rast der Druckkopf (mitsamt der Tintenpatrone) horizontal über das Papier und schießt winzige Tintentröpfchen ab. &lt;br /&gt;
 &lt;br /&gt;
	Vorteile: 	Nachteile: &lt;br /&gt;
•	Relativ preiswert in der Anschaffung 	• 	Tinte benötigt gewisse Trocknungszeit; &lt;br /&gt;
•	Adäquate GeräuschentwicklungHohe Auflösung und Druckqualität, mit der  	• 	entsprechend längerer DruckprozessDruckertinte gehört zu den teuersten  &lt;br /&gt;
•&lt;br /&gt;
Flüssigkeiten der Welt; folglich relativ &lt;br /&gt;
selbst Fotos erstellt werden können &lt;br /&gt;
•	Mit der passenden Tinte langlebige 	preisintensives Verbrauchsmaterial &lt;br /&gt;
•	Bei Nichtgebrauch Risiko, dass Patronen &lt;br /&gt;
Druckergebnisse mit brillanten Farben und Druckköpfe eintrocknen &lt;br /&gt;
  &lt;br /&gt;
4) Innereien eines Laserdruckers: (1) Drucker-Controller; (2) Bildtrommel; (3) Toner; &lt;br /&gt;
(4) Papiereinzugswalzen; (5) Fixiereinheit &lt;br /&gt;
 &lt;br /&gt;
Wie funktioniert der Laserdrucker? &lt;br /&gt;
•	Beim Laserdruck entlädt ein Laserstrahl die  &lt;br /&gt;
•	Bildtrommel an den Stellen, an welchen kein  &lt;br /&gt;
•	Toner haften bleiben soll.  &lt;br /&gt;
•	Dieser haftet somit nur an den elektrisch  &lt;br /&gt;
•	aufgeladenen Stellen und wird in weiterer Folge &lt;br /&gt;
•	durch eine Walzbewegung von der Tonerkartusche  &lt;br /&gt;
•	auf das Druckerpapier übertragen. Auf dieses  &lt;br /&gt;
•	schmilzt die Fixiereinheit das Tonerpulver durch  &lt;br /&gt;
•	Hitze und Druck auf, wodurch der fertige Ausdruck &lt;br /&gt;
•	Entsteht &lt;br /&gt;
 &lt;br /&gt;
Vorteile: &lt;br /&gt;
•	Hohe Druckgeschwindigkeit &lt;br /&gt;
•	Geringe Betriebsgeräusche &lt;br /&gt;
•	Farbdruck möglich Nachteile: &lt;br /&gt;
•	Hohe Kosten(Anschaffung, Toner, Trommel) &lt;br /&gt;
•	Umweltbelastung &lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
5) Wie funktioniert ein LED Drucker? &lt;br /&gt;
Ein LED-Drucker arbeitet mit einer Reihe von LEDs, welche über die  gesamte Breite des Druckkopfs reichen. Zur zeilenweisen Belichtung  des Druckkopfs werden die LEDs an jeder Stelle gleichzeitig „gezündet“.  Dadurch kann der später hinzugegebene Toner am Druckkopf haften. &lt;br /&gt;
 &lt;br /&gt;
Vor: &lt;br /&gt;
-	Laser- und LED-Drucker drucken sehr scharfe, tief schwarze Texte aus und der farbige Text ist in der Regel fast genauso gut. &lt;br /&gt;
-	LED-Drucker funktionieren sehr gut mit jedem Laserdrucker-kompatiblen Papier.  &lt;br /&gt;
 &lt;br /&gt;
Nach: &lt;br /&gt;
-	Obwohl Laser- und LED-Drucker einfache Grafiken ausdrucken können, hadern diese Drucker mit der Qualität bei Foto-Ausdrucken. &lt;br /&gt;
-	Es gibt zwar kostengünstige und kompakte Laser-Drucker, aber das Standard-Büromodell ist immer noch relativ schwer und sperrig. &lt;br /&gt;
 &lt;br /&gt;
6)LCD &lt;br /&gt;
 Innerhalb des LCD-Druckers läuft im ganzen Papierbereich eine &lt;br /&gt;
 Leiste mit Elementen. Diese Leiste wird nun durch eine  Halogenlampe oder eine ähnlich starke Lichtquelle erhellt,  aber nur an den Stellen, wo auf dem Papier ein Bild durch den  Toner entstehen soll. &lt;br /&gt;
 &lt;br /&gt;
•	Da die LCD-Technologie im Drucker weniger Platz einnimmt als ein Laser im dazu gehörigen Laserdrucker, durch den der Toner auf das Papier übertragen wird, können LCD-Drucker kleiner ausfallen als viele andere Drucker. Außerdem wird bei ihrem &lt;br /&gt;
Einsatz erheblich mehr Strom eingespart als bei einem Laserdrucker. Ebenso wie ein solcher Drucker ist der LCD-Drucker aber auch ein Seitendrucker, d.h. jede Seite, die ausgedruckt werden soll, muss vor Ausdruck zwischen gespeichert werden. Daher benötigt er einen relativ großen Speicher. &lt;br /&gt;
•	Andererseits können mit dem Toner dank dieser neuen Technologie auch Banner bedruckt werden. Denn die meisten LCD-Drucker unterstützen ebenso wie Laserdrucker das Drucken von Bannern.  &lt;br /&gt;
 &lt;br /&gt;
•	7) Ein Typenraddrucker (engl. Type-Wheel Printer oder Daisy-Wheel Printer) funktioniert genauso wie eine elektrische Schreibmaschine, d. h. die Zeichen werden über ein Farbband (oft schwarz oder blau) auf das Papier geschlagen. Die Steuerung des Druckkopfes von links nach rechts erfolgt über einen Motor und das Anschlagen der Zeichen erfolgt über einen Elektromagneten. Die Zeichen (hier auch Typen genannt) befinden sich auf ein Rad, das über einen Motor entsprechend positioniert wird.  &lt;br /&gt;
•	Zwar sind Schriftbild und Druckqualität besser als bei einem Laserdrucker, jedoch ist durch die Begrenzung der 92 Zeichen die Ausdrucksmöglichkeit auf Schrift und Satzzeichen begrenzt &lt;br /&gt;
 &lt;br /&gt;
•	8) Nadeldrucker: &lt;br /&gt;
•	Beim Druckvorgang eine Reihe einzeln angesteuerter Nadeln auf ein – meist schwarzes – Farbband schlägt und dadurch die andere Seite des Farbbands jeweils punktuell mit dem Papier in druckenden Kontakt bringt. Ein gedrucktes Zeichen besteht jeweils aus einer Vielzahl solcher Farbpunkte.  &lt;br /&gt;
•	Der zuverlässige und robuste Nadeldrucker ist heute vereinzelt in Arztpraxen, Banken und Firmen zu finden. &lt;br /&gt;
 &lt;br /&gt;
9) Zeilen Drucker &lt;br /&gt;
•	Den verschiedenen Ausführungen ist gemein, dass viele Typen mehr oder weniger gleichzeitig an verschiedenen Spalten einer Zeile aufschlagen. Dazwischen ist entweder ein Farbband oder ein Farbtuch angebracht. Sie sind jedoch auch heute noch für Massenaufträge in Betrieb, besonders wenn Durchschläge erforderlich sind.  &lt;br /&gt;
•	Allen gemein ist der hohe Arbeitslärmpegel, weshalb Zeilendrucker meist in gesonderten Räumen oder mit Schallschutzhauben aufgestellt werden.  &lt;br /&gt;
 &lt;br /&gt;
19)Thermodruckkopf &lt;br /&gt;
•	Mit Thermodruck bezeichnet man eine Reihe von Druck-Verfahren, die auf punktueller Hitzeeinwirkung beruhen. Das Verfahren wird heute meist bei Kassendruckern, für Parktickets und Fahrkarten verwendet.&lt;/div&gt;</summary>
		<author><name>R.Stremming</name></author>
	</entry>
</feed>