{"id":10702,"date":"2014-12-26T20:23:54","date_gmt":"2014-12-26T19:23:54","guid":{"rendered":"http:\/\/www.bernd-leitenberger.de\/blog\/?p=10702"},"modified":"2014-12-26T20:23:54","modified_gmt":"2014-12-26T19:23:54","slug":"vliw","status":"publish","type":"post","link":"https:\/\/www.bernd-leitenberger.de\/blog\/2014\/12\/26\/vliw\/","title":{"rendered":"VLIW"},"content":{"rendered":"<p>VLIW steht f&uuml;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&ouml;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&auml;ngten Daten die L&auml;nge auf. Bei VLIW werden vielmehr mehrere einfache Befehle zu einem langen Befehlswort geb&uuml;ndelt.<\/p>\n<p>Welchen Nutzen hat dies? Nun die erste Implementierung diente vor allem dazu, mit dem grunds&auml;tzlichen Manko des Speichers umzugehen. Schon immer war Speicher langsamer als die CPU. Das war schon in den Sechzigern so. Eine der L&ouml;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&ouml;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.<!--more--><\/p>\n<p>Die Cyber Star\/203\/205 Architektur hatte z.B. Befehlsworte von 64 Bit L&auml;nge, griff aber auf den Speicher immer in Superworten von 512 Bit zu die 8 Worte oder 16 einfach bzw. 8 doppelt genauen Zahlen oder eben acht Befehlen zu. Obwohl nicht zwingend erforderlich, sind viele VLIW Architekturen RISC Archietekturen. Das vereinfacht es, mehrere Befehle in ein VLIW zu packen, denn RISC Architekturen haben im Allgemeinen wesentlich weniger unterschiedliche Befehlsl&auml;ngen. Das erlaubt es einfacher ein VLIW zu dekodieren oder zumindest den Platz in einem VLIW auszunutzen ohne Leerbytes oder Leerbefehle einzuf&uuml;gen.<\/p>\n<p>Man kann denselben Effekt wie ein Superwort aber auch einfach durch breite Datenbusse (heute z.B. in Grafikkarten verwendet) oder durch weiter vorrausschauenden Prefetch (x86 Architektur) erreichen. Bei den heutigen Architekturen haben VLIW Instruktionen einen anderen Sinn. Sie sind in der Regel superskalar. Das bedeutet ein Prozessor hat mehr als eine Ausf&uuml;hreinheit f&uuml;r Ganzzahl oder Flie&szlig;kommaoperationen, bzw. heute oft auch f&uuml;r Daten\/Adressen laden und Spr&uuml;nge durchf&uuml;hren. Da der Code (anders als bei mehreren CPU-Kernen) aber nichts von den mehreren Einheiten wei&szlig; m&uuml;ssen CPUs mit dieser Architektur (superskalar genannt) schauen, dass sie alle Einheiten auslasten. Sehr bald zeigte sich das das schwer wird. Superkskalare Architekturen haben daher oft eine &#8222;Out-of-Order&#8220; Architektur: Sie erkennen Abh&auml;ngigkeiten zwischen den Befehlen und Daten und ziehen Befehle vor, wenn diese nicht von anderen abh&auml;ngen. Eine solche Architektur braucht sehr viel Logic. Intel lies sie z.B. beim Atom Prozessor weg. Als er 2008 im 45 nm Prozess erschien, hatte er z.B. 42 Millionen Transistoren, die zeitgleich in derselben Fertigungstechnologie gefertigte <a href=\"\/Core-Mikroarchitektur.shtml\">&#8222;Penryn&#8220; Mikroarchitektur<\/a> dagegen 410 Millionen Transistoren (aber bei zwei Kernen). Allerdings erreichte diese erste Atomgeneration auch keine bessere Performance als ein 5 Jahre &auml;lterer <a href=\"\/pentium-4.shtml\">Pentium 4 <\/a>Prozessor.<\/p>\n<p>VLIW er&ouml;ffnet die Chance ohne diese aufwendige Logik auszukommen. Die dahinterstehende Idee ist, dass der Compiler der den Code kennt, die Worte so anordnet, dass alle Einheiten m&ouml;glichst voll ausgelastet sind. Schafft er das nicht, so f&uuml;llt er mit &#8222;Nichts Tun&#8220; Befehlen auf. (NOP &#8211; No Operation). Bei der Texas Instruments TMS320C6xx Familie ist ein VLIW 256 Bit breit und besteht aus 8 Befehlen. Dieses wird in zwei Teile aufgeteilt, die zu den beiden Kernen gef&uuml;hrt werden und jeder\u00a0 hat vier Ausf&uuml;hrungseinheiten. Bei dieser Architektur klappte das auch sehr gut. Dazu trug ein Registerfile bei, bei dem es sehr viele Register gab, sodass Abh&auml;ngigkeiten seltener als bei wenigen Registern vorkamen und die <a href=\"\/harvard-neumann.shtml\">Harvard-Architektu<\/a>r die getrennte Daten- und Instruktionsbusse hat. zudem verarbeitete diese Architektur keine Flei&szlig;kommazahlen.<\/p>\n<p>Derselbe Ansatz scheiterte aber beim <a href=\"file:\/\/\/C:\/Users\/Admin\/Documents\/Websites\/bernd-leitenberger\/intels-flops.shtml#itanium\">Itanium<\/a>-Prozessor, obwohl er dort noch ausgekl&uuml;gelter war: In einem 128 Bit Wort gab es neben drei Befehlen \u00e0 41 Bits Breite noch 5 Bits um die Abh&auml;ngigkeiten und benutzten Einheiten zu markieren. Damit kann der Compiler die CPU informieren wie die Befehle zu verarbeiten sind. Der Itaniumprozessor erreichte nie den Markterfolg den sich Intel erhoffte. Sehr bald &uuml;berholten ihn auch x86 Prozessoren in der Performance. Woran es liegt? vielleicht hat der Itanium ein zu komplexes Innenleben denn bei ihm wollen auch noch einige Branchunits und Flie&szlig;kommaeinheiten mit Daten versorgt werden, vielleicht ist der Code f&uuml;r Signalverarbeitung aber auch per se besser parallelisierbar oder die Compiler sind zu doof. Angesichts der <a href=\"http:\/\/www.bernd-leitenberger.de\/blog\/2014\/06\/17\/die-sache-mit-den-gigaflops\/\"> ct&#8216;-Ergebnisse<\/a> der Matrizenmultiplikation die man heute durch einen einzigen AVX Befehl ersetzen kann wo CPUs nur einen Bruchteil der theoretischen Leistung erreichen, w&uuml;rde mich das nicht wundern.<\/p>\n<p>Anders als SIMD hat sich die VLIW Architektur auf jeden Fall nicht auf breiter Front durchsetzen k&ouml;nnen.<\/p>\n<p><a href=\"\/simd-vliw.shtml\">Link zu dem Artikel auf der Webseite.<\/a><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg04.met.vgwort.de\/na\/c064461909344935ac698cc92dc09a4b\" alt=\"\" width=\"1\" height=\"1\" \/><\/p>\n","protected":false},"excerpt":{"rendered":"<p>VLIW steht f&uuml;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&ouml;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 [&hellip;]<\/p>\n","protected":false},"author":169,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[4],"tags":[1567,3807,3781,3808,3597],"class_list":["post-10702","post","type-post","status-publish","format-standard","hentry","category-computer","tag-atom","tag-cyber-star","tag-itanium","tag-tms320c6xx","tag-vliw","entry"],"a3_pvc":{"activated":false,"total_views":1504,"today_views":0},"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":18612,"url":"https:\/\/www.bernd-leitenberger.de\/blog\/2026\/03\/28\/galileos-cds-teil-2\/","url_meta":{"origin":10702,"position":0},"title":"Galileos CDS \u2013 Teil 2","author":"Bernd Leitenberger","date":"28. M\u00e4rz 2026","format":false,"excerpt":"So, heute geht es weiter mit Teil 2 \u00fcber Galileos CDS, dieser Beitrag schlie\u00dft nahtlos an den ersten Beitrag von gestern an, wie man schon an der ersten Textzeile sieht. Nach der Einleitung im ersten Teil geht es heute weiter damit warum der RCA 1802 genutzt wurde und was seine\u2026","rel":"","context":"In &quot;Raumfahrt&quot;","block_context":{"text":"Raumfahrt","link":"https:\/\/www.bernd-leitenberger.de\/blog\/category\/raumfahrt\/"},"img":{"alt_text":"","src":"https:\/\/vg07.met.vgwort.de\/na\/191e4b0728de42829cf656027b84dc82","width":350,"height":200},"classes":[]},{"id":18610,"url":"https:\/\/www.bernd-leitenberger.de\/blog\/2026\/03\/27\/galileos-cds-teil-1\/","url_meta":{"origin":10702,"position":1},"title":"Galileos CDS &#8211; Teil 1","author":"Bernd Leitenberger","date":"27. M\u00e4rz 2026","format":false,"excerpt":"Hall\u00f6chen, es wird Zeit das ich mich mal wieder melde. Es gab zwei Gr\u00fcnde, warum ich mich so rar gemacht habe. Das eine ist das es gerade nicht so viel aktuelles gibt, au\u00dfer einem Update zu Artemis, zu dem ich vielleicht noch etwas schreibe. W\u00e4hrend Trump das ganze Programm nach\u2026","rel":"","context":"In &quot;Raumfahrt&quot;","block_context":{"text":"Raumfahrt","link":"https:\/\/www.bernd-leitenberger.de\/blog\/category\/raumfahrt\/"},"img":{"alt_text":"","src":"https:\/\/vg07.met.vgwort.de\/na\/4fb81c7bafbd4d9d88b5695abdb33d29","width":350,"height":200},"classes":[]},{"id":18614,"url":"https:\/\/www.bernd-leitenberger.de\/blog\/2026\/03\/29\/galileos-cds-teil-3\/","url_meta":{"origin":10702,"position":2},"title":"Galileos CDS &#8211; Teil 3","author":"Bernd Leitenberger","date":"29. M\u00e4rz 2026","format":false,"excerpt":"So nun zum dritten Teil \u00fcber das prim\u00e4re Computersystem von Galileo, das CDS. Nachdem sich die ersten beiden Teile nur mit dem RCA 1802, warum er gew\u00e4hlt wurde und seiner Architektur befassten geht es heute um das Computersystem selbst. Der Artikel schlie\u00dft so an seine beiden Vorg\u00e4nger gestern und vorgestern\u2026","rel":"","context":"In &quot;Raumfahrt&quot;","block_context":{"text":"Raumfahrt","link":"https:\/\/www.bernd-leitenberger.de\/blog\/category\/raumfahrt\/"},"img":{"alt_text":"","src":"https:\/\/vg07.met.vgwort.de\/na\/6e7f572a246b4ac395de9c260733b707","width":350,"height":200},"classes":[]},{"id":18380,"url":"https:\/\/www.bernd-leitenberger.de\/blog\/2025\/09\/03\/die-glorreichen-10-das-war-mal-weg-pc-hardware\/","url_meta":{"origin":10702,"position":3},"title":"Die glorreichen 10 &#8211; Das war mal weg: PC Hardware","author":"Bernd Leitenberger","date":"3. September 2025","format":false,"excerpt":"Ich will heute mal zwei ZDF Info \/ Neo Sendungen verbinden. Die glorreichen 10, die bei mir als Vorlage f\u00fcr einige Blogs dienten und die von mir noch mehr gesch\u00e4tzte Sendung \"Das war mal weg\", wo es um Dinge geht, die fr\u00fcher fast jeder hatte und die heute aus unserem\u2026","rel":"","context":"In &quot;Die Glorreichen 10&quot;","block_context":{"text":"Die Glorreichen 10","link":"https:\/\/www.bernd-leitenberger.de\/blog\/category\/allgemein\/die-glorreichen-10\/"},"img":{"alt_text":"","src":"https:\/\/vg02.met.vgwort.de\/na\/876c61d389304d98aa0332fadd769381","width":350,"height":200},"classes":[]},{"id":5216,"url":"https:\/\/www.bernd-leitenberger.de\/blog\/2011\/08\/10\/fcea2\/","url_meta":{"origin":10702,"position":4},"title":"FCEA2","author":"Bernd Leitenberger","date":"10. August 2011","format":false,"excerpt":"CEA2 (Chemical Equilibrium with Applications) ist ein seit gut 30 Jahren entwickeltes NASA Programm mit dem verschiedenste Probleme bei Gasphasen berechnet werden k\u00f6nnen. Ich beschr\u00e4nke mich auf das, was Raumfahrtliebhaber wohl am meisten machen: Die Berechnung der Performance von Triebwerken bei Raketen. Ich will die Benutzung des Programmes einmal erl\u00e4utern,\u2026","rel":"","context":"In &quot;Raumfahrt&quot;","block_context":{"text":"Raumfahrt","link":"https:\/\/www.bernd-leitenberger.de\/blog\/category\/raumfahrt\/"},"img":{"alt_text":"","src":"https:\/\/vg01.met.vgwort.de\/na\/89efc24160614a1a93d97d19447e81a6","width":350,"height":200},"classes":[]},{"id":18002,"url":"https:\/\/www.bernd-leitenberger.de\/blog\/2025\/03\/07\/nachlese-achter-teststart-starship-itf-8\/","url_meta":{"origin":10702,"position":5},"title":"Nachlese achter Teststart Starship ITF-8","author":"Bernd Leitenberger","date":"7. M\u00e4rz 2025","format":false,"excerpt":"Ich mache diese Nachlese wie die bei ITF-7 nicht mehr so ausf\u00fchrlich wie die vorherigen, sondern konzentriere mich auf die wesentlichen Ereignisse. Hier die wesentlichen Ereignisse der Super-Heavy. Bei ihr fielen beim Boostback-Burn zwei der 13 inneren Triebwerke aus. So ist der erste Brennschluss (nach dem nur noch die innersten\u2026","rel":"","context":"In &quot;SpaceX&quot;","block_context":{"text":"SpaceX","link":"https:\/\/www.bernd-leitenberger.de\/blog\/category\/raumfahrt\/spacex\/"},"img":{"alt_text":"","src":"https:\/\/vg05.met.vgwort.de\/na\/4424715e8bf74a938ee3b9b549d02a5b","width":350,"height":200},"classes":[]}],"jetpack_sharing_enabled":true,"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.bernd-leitenberger.de\/blog\/wp-json\/wp\/v2\/posts\/10702","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.bernd-leitenberger.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.bernd-leitenberger.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.bernd-leitenberger.de\/blog\/wp-json\/wp\/v2\/users\/169"}],"replies":[{"embeddable":true,"href":"https:\/\/www.bernd-leitenberger.de\/blog\/wp-json\/wp\/v2\/comments?post=10702"}],"version-history":[{"count":0,"href":"https:\/\/www.bernd-leitenberger.de\/blog\/wp-json\/wp\/v2\/posts\/10702\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.bernd-leitenberger.de\/blog\/wp-json\/wp\/v2\/media?parent=10702"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.bernd-leitenberger.de\/blog\/wp-json\/wp\/v2\/categories?post=10702"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.bernd-leitenberger.de\/blog\/wp-json\/wp\/v2\/tags?post=10702"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}