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“

SIMD und VLIW

Heute wieder ein Thema aus dem Bereich Computer. Ich habe meinen Artikel über SIMD und VLIW aktualisiert (in dem noch mehr drin steht, für alle die der Blog nicht reicht). Fangen wir mit der Begriffsdefinition an:

  • SIMD steht für Single Instruction, Multiple Data
  • VLIW steht für Very Long Instruction Word

Fangen wir mit SIMD an. Eine klassische Assembleranweisung eines Prozessors bearbeitet einen oder zwei Werte die in einem Register stehen. Bei SIMD sind es mehr als maximal zwei Werte, die entweder in Registern stehen, die viele Werte fassen oder in überlangen Registern, in denen einzelne Teilbereiche jeweils für einzelne Werte stehen. Es gibt dann noch SISD (Single Instruction Single Data, das sind entspricht den meisten Prozessorbefehlen eines x86-Prozessors und MIMD (Multiple Instruction, Multiple Data), das liegt bei einem Mehrkernprozessor oder einem Rechner mit mehreren CPUs vor. Continue reading „SIMD und VLIW“

Wie mache ich dem Speicher Beine?

Ich habe mich als ich an dem Aufsatz über die Cray 3 saß, bekam ich immer mehr Infos über die früheren Rechner von Seymour Cray und machte mich an die Cyber 6600 und die hatte schon in den frühen sechziger Jahre ein Problem: Die Logik war schneller als der Speicher. Zeit das vielleicht mal als Thema im Blog aufzugreifen.

Ich glaube das Problem existierte fast von Anfang des Computers. Die ersten Rechner verwandten die gleichen Bauteile für Speicher und CPU, so die Rechner von Zuse oder die ersten Röhrenrechner wie die ENIAC. Doch bald kam man drauf für den Speicher Elemente zu nehmen, die billiger als die Logik waren. Das lag auf der Hand, denn egal wie komplex eine CPU ist, sie braucht immer weniger Elemente als der Speicher. Eine 8-Bit CPU hatte zwischen 4500 und 6500 Transistoren, für den Speicher von 64 KByte hätte man 524.000 Elemente gebraucht die als Flip-Flop Speicherelement rund 2 Millionen Transistoren erfordert hätten. Bei einer 16 Bit CPU waren es zwischen 29.000 und 134.000 Transistoren, für den Speicher hätte man 32 bis 512 Millionen Transistoren gebraucht. Continue reading „Wie mache ich dem Speicher Beine?“