{"id":575,"date":"2009-01-15T12:33:59","date_gmt":"2009-01-15T11:33:59","guid":{"rendered":"http:\/\/bernd-leitenberger.de\/blog\/?p=575"},"modified":"2009-01-15T12:33:59","modified_gmt":"2009-01-15T11:33:59","slug":"die-rueckkehr-der-harvard-architektur","status":"publish","type":"post","link":"https:\/\/www.bernd-leitenberger.de\/blog\/2009\/01\/15\/die-rueckkehr-der-harvard-architektur\/","title":{"rendered":"Die R&uuml;ckkehr der Harvard Architektur"},"content":{"rendered":"\n<p>Nach l&auml;ngerer Pause mal wieder ein Computerthema, auf das ich ganz zuf&auml;llig gesto&szlig;en bin. Wer einmal theoretische Informatik als Fach hatte, wei&szlig;, das es zwei grundlegende Architekturen f&uuml;r Computer gibt (wahrscheinlich noch mehr, aber zwei haben sich eben durchgesetzt). Das eine ist die &quot;von Neumann&quot; Architektur, die ihr PC hat. Es ist die am weitesten verbreitetste und bis vor kurzem dachte ich, dass sie eigentlich die einzige &uuml;berlebende ist. Die Architektur ist ganz einfach: Es gibt einen Speicher, der Befehle und Daten aufnimmt und einen Adressbus und einen Datenbus der beides verbindet. Der Vorteil liegt auf der Hand: Man hat nur ein Bussystem und kann den Speicher frei aufteilen, wo Daten und wo Code gespeichert werden sollen. Es &auml;ndert auch nichts an der Von Neumann Architektur, wenn Speicher daf&uuml;r fest reserviert werden, z.B. es Codesegmente und Datensegemente gibt oder es einen beschreibbaren und einen nicht beschreibbaren Speicher gibt. <\/p>\n<p><!--more--> <\/p>\n<p>Die zweite Architektur ist dagegen auf den ersten Blick unterlegen: Die &quot;Harvard Architektur&quot; hat einen separaten Datenspeicher und einen Programmspeicher. Beide mit einem eigenen Datenbus und einem eigenen Adressbus. Auf den ersten Blick ist das deutlich umst&auml;ndlicher: Ich habe zwei Bussysteme, zwei Speichersysteme und kann nicht einmal unbelegten Datenspeicher f&uuml;r Programme nutzen. (Und umgekehrt)<\/p>\n<p>So sahen es auch die meisten Computerbauer und daher konnte sich die von Neumann Architektur durchsetzen. Mittlerweile muss man aber schon einige Tricks anwenden, um die CPU weiter zu beschleunigen. So werden heute Programminstruktionen in kleinere Einheiten &uuml;bersetzt. Das wird um so problematischer, je variabler der Datenanteil ist (8,16,32,64 Bit lange Zahlen). Caches werden segmentiert in Daten und Code Teile, weil die Codeteile sich normalerweise nicht &auml;ndern. Streaming Instruktionen versuchen die Geschwindigkeit zu erh&ouml;hen, indem eine Instruktion mehrere Datenw&ouml;rter parallel bearbeitet, indem mehrere Recheneinheiten gleichzeitig unterschiedliche Teile eines sehr gro&szlig;en (128-256 Bit langen) Datenworts bearbeiten. Damit dies geht, braucht man dann schon dicke Datenbusse.<\/p>\n<p>Eigentlich kommt diese Idee des SIMD (Single Instruction Multiple Data) von den Signalverarbeitungsprozessoren und bei diesen setzt sich nun langsam wieder die Harvard Architektur durch. Warum? Nun die modernen Signalverarbeitungsprozessoren, wie z.B. die C6Xx Serie von Texas Instruments, haben oft die Aufgabe sehr viele Daten nach immer der gleichen Weise zu verarbeiten. Denken sie an das Umwandeln von Blue Ray Daten in Fernsehsignale: Die nach dem H264 kodierten Signale m&uuml;ssen dekomprimiert werden, bei HD-TV Aufl&ouml;sung sind das 1920 x 1080 Punkte 25-60 mal pro Sekunde: Es gibt laufend neue Daten, w&auml;hrend das Programm daf&uuml;r recht kompakt und klein ist. Diese CPU&#8217;s verarbeiten mit einer Instruktion typischerweise mehrere Datenw&ouml;rter parallel nach dem selben Algorithmus (ideal bei Videosignalen, die nat&uuml;rlich alle gleich kodiert sind) und erreichen so bei unter 1 GHz Takt enorme Geschwindigkeiten. Nur gibt es dann auch Probleme:<\/p>\n<ul>\n<li>Der Datenbus muss recht gro&szlig; sein um die Daten zu transferieren<\/li>\n<li>Ein Datencache macht keinen Sinn, weil die Daten sich dauernd &auml;ndern<\/li>\n<li>Ein Codecache macht auch keinen Sinn, weil die der limitierende Faktor eigentlich der Speicherzugriff f&uuml;r die Daten ist. Stattdessen w&uuml;rde sehr schnelles RAM ausreichen.<\/li>\n<\/ul>\n<p>Fasst man diese &Uuml;berlegungen zusammen, so dr&auml;ngt sich fast automatisch die Harvard Architektur auf: Der Code sitzt in einem sehr kleinen RAM, aber dieses ist schnell: Dual Port RAM oder gar SRAM, anstatt langsamen statischen RAM. Viel mehr Speicher braucht man f&uuml;r die Daten. Diese erhalten ein einen eigenen Datenspeicher mit einem sehr dicken Datenbus. so k&ouml;nnen die Daten in mehrere Rechenwerke gleichzeitig transferiert werden und der langsame Zugriff auf DRAM wirkt sich nicht so sehr aus. Heutige DSP von Ti, die auch ihren Einzug in der Raumfahrt haben, setzen daher oft schnelles SRAM f&uuml;r den Code ein und einen viel gr&ouml;&szlig;eren Speicher mit DARM f&uuml;r die Daten. Das Programm selbst kommt oft aus einem EEPROM und wird vor dem Start ins RAM kopiert. Auch die GPU&#8217;s von Grafikkarten haben ein getrenntes RAM f&uuml;r Code und Befehle (oft unterschiedlich schnell getakt), wobei hier die Datenmenge noch gr&ouml;&szlig;er ist, so dass auch 256-512 Bit breite Datenbusse n&ouml;tig sind um die vielen Recheneinheiten zu versorgen.<\/p>\n<p>Es ist unwahrscheinlich, dass die PC&#8217;s von der von Neumamn Architektur abkommen werden (obwohl getrennte Caches f&uuml;r Daten und Code ja schon eine gewisse Abkehr sind9, doch f&uuml;r Signalverarbeitungsaufgaben scheint die Harvard Architektur echte Vorteile zu haben.<\/p<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Nach l&auml;ngerer Pause mal wieder ein Computerthema, auf das ich ganz zuf&auml;llig gesto&szlig;en bin. Wer einmal theoretische Informatik als Fach hatte, wei&szlig;, das es zwei grundlegende Architekturen f&uuml;r Computer gibt (wahrscheinlich noch mehr, aber zwei haben sich eben durchgesetzt). Das eine ist die &quot;von Neumann&quot; Architektur, die ihr PC hat. Es ist die am weitesten [&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":[],"class_list":["post-575","post","type-post","status-publish","format-standard","hentry","category-computer","entry"],"a3_pvc":{"activated":false,"total_views":734,"today_views":0},"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":18614,"url":"https:\/\/www.bernd-leitenberger.de\/blog\/2026\/03\/29\/galileos-cds-teil-3\/","url_meta":{"origin":575,"position":0},"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":18612,"url":"https:\/\/www.bernd-leitenberger.de\/blog\/2026\/03\/28\/galileos-cds-teil-2\/","url_meta":{"origin":575,"position":1},"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":575,"position":2},"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":18380,"url":"https:\/\/www.bernd-leitenberger.de\/blog\/2025\/09\/03\/die-glorreichen-10-das-war-mal-weg-pc-hardware\/","url_meta":{"origin":575,"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":575,"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":18654,"url":"https:\/\/www.bernd-leitenberger.de\/blog\/2026\/05\/08\/zwei-hypothetische-galileoprojekte\/","url_meta":{"origin":575,"position":5},"title":"Zwei hypothetische Galileoprojekte","author":"Bernd Leitenberger","date":"8. Mai 2026","format":false,"excerpt":"Heute ein Blog, in dem ich zwei Galileoprojekte unter die Lupe nehme, die zumindest diskutiert wurden. Galileo durchlief vor dem Start ja einige Umplanungen. Diese waren vor allem dadurch bedingt, dass die Sonden von 1.500 auf \u00fcber 2.500 kg Gewicht anwuchsen und so die geplante Startm\u00f6glichkeit mit einem Space Shuttle\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:\/\/vg02.met.vgwort.de\/na\/4c32cea80e8e49b69bdc5bc974151b2d","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\/575","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=575"}],"version-history":[{"count":0,"href":"https:\/\/www.bernd-leitenberger.de\/blog\/wp-json\/wp\/v2\/posts\/575\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.bernd-leitenberger.de\/blog\/wp-json\/wp\/v2\/media?parent=575"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.bernd-leitenberger.de\/blog\/wp-json\/wp\/v2\/categories?post=575"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.bernd-leitenberger.de\/blog\/wp-json\/wp\/v2\/tags?post=575"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}