Intels Flops

Loading

Wer meine Website kennt, der weiß, dass ich genau einen Artikel mit diesem Titel dort schon habe. Aber weil viele eben nur den Blog besuchen gibt es den Inhalt eben doppelt, vielleicht auch etwas Neues. Denn ich habe gerade eine kleine Serie fertigstellt, in der ich die dort vorgestellten Prozessoren genauer betrachtet habe und da liegt eine erneute Auseinandersetzung mit dem Thema auf der Hand.

Um was geht es? Intel ist seit 1981 erfolgreich mit der x86-Linie, dazu morgen später mehr, hat in den vergangenen 45 Jahren aber einige Male auf das falsche Pferd gesetzt wobei – wie ich meine – in den meisten Fällen der Misserfolg vorhersehbar war. Continue reading „Intels Flops“

VLIW

VLIW steht für very long Instruction Word und ist eine Computerarchitektur. Zuerst einmal was ist damit gemeint? Gemeint sind nicht lange Befehlsworte, die es auch gibt. Bei der x86 Architektur können sie z.B. bis zu 16 Bytes lang sein. So lange Befehlsorte bekommt man z.B. bei SIMD Architekturen (Single Instruction Multiple Data), da blasen dann die angehängten Daten die Länge auf. Bei VLIW werden vielmehr mehrere einfache Befehle zu einem langen Befehlswort gebündelt.

Welchen Nutzen hat dies? Nun die erste Implementierung diente vor allem dazu, mit dem grundsätzlichen Manko des Speichers umzugehen. Schon immer war Speicher langsamer als die CPU. Das war schon in den Sechzigern so. Eine der Lösung die Langsamkeit auszugleichen war Bandbreite. Vereinfacht gesagt: wenn man auf die Daten schon warten musste, dann glich man dies dadurch aus, das man mehr Daten holte. Bei Daten hatten daher sehr oft die CPU mehr als einen Anschluss zum Speicher (oft Port genannt). Bei den Befehlen bestand die Lösung in VLIW: anstatt das der Decoder ein Wort holte, holte er ein langes Wort, das mehrere einzelne Worte enthielt. So musste er nicht auf die nachfolgenden Worte warten, sie waren schon in der CPU. Continue reading „VLIW“

Der Compiler ist schuld – oder auch nicht

Ein Compiler hat die Aufgabe eine höhere Programmiersprache in Maschinensprache zu übersetzen. Bei Großrechnern haben kompilierte Programme schon in den Sechzigern die Maschinensprache sukzessive verdrängt. Im PC Bereich war wegen der anfangs langsamen Prozessoren und dem geringen Speicher Assembler noch in den ersten Jahren wichtig, aber heute sicher nicht mehr.

Machen wir einen geschichtlichen Rückblick. Früher hat man auch evaluiert, wie effizient Compiler sind. Die Ergebnisse sind natürlich stark vom Quelltext abhängig. Die NASA hat für die Flugsoftware der Shuttle evaluiert wie schnell HAL als höhere Programmiersprache verglichen mit Assembler war. Und das Ergebnis war damals: 10-20% langsamer. Das Betriebssystem, das zeitkritisch war, wurde daraufhin in Assembler geschrieben, die „Anwendungen“ dann in HAL. Ein ähnliches Ergebnis gab es bei Tests der ersten Versionen von Turbo Pascal. Das ist erfreulich, denn das Programmieren ist doch erheblich leichter in einer Hochsprache. Continue reading „Der Compiler ist schuld – oder auch nicht“