Harvard-Architektur: Überlappende Befehlsausführung Frank Slomka https://www.youtube.com/watch?v=XZ7o8AKx4_E Transkript (automatisch erstellt) 0:00 wandeln wir doch jetzt unsere architektur in eine hase architektur wir wissen bei der h wird architektur haben wir einen getrennten speicher für 0:14 programme und daten und wir schauen uns wieder eine überlappende befehls hausführung an als ressource für den instruction set schnäbeln wir einen 0:23 instruction cash und wir haben ja einen ganz normalen befüllt zyklus mit einem etwas längeren op rannten fed auf dem hauptspeicher 0:33 einer kurzen execute phase mit einem operator das instruction fetsch kann jetzt mit der hauptspeicher phase überlappen weil wir greifen ja auf die 0:45 ressource das instruction cash zu engagieren stettens instruction caches auch einen zwei getrennten speicher für die befehle annehmen und wir erkennen 0:57 jetzt ganz deutlich wie diese trennung der speicher schon einen wesentlichen durch satzgewinnen bringen und wir können jetzt schon erkennen der 1:10 instruction cash zugriff und der zugriff auf den hauptspeicher die können jetzt überlappen wenn wir jetzt einen weiteren befehl haben jetzt 1:20 wieder mit einem längeren op rannten vetsch und einer längeren execute phase zum beispiel bei einem multiplikation befehl zweier längerer fließkomma zahlen 1:33 aber wir sehen jetzt instruction fetsch auf dem instruction cash beschleunigt das ganze nur in diesem schritt jetzt wird die ausführung des vierten befehls 1:47 verzögert weil wir einen ziemlich langen hauptspeicher zugriff haben und eben diesen zugriff erst abwarten können wir auf den registern mit dem opera nnten 1:59 fallschirm nächsten befehl weiterarbeiten kann und da erkennt man jetzt das ganze dilemma an der sache also wir kriegen 2:10 zwar schon einen wesentlichen kompakteren zugriff auf die speicher hin aber das holen von opera nnten aus einem festen teil des hauptspeichers führt 2:27 immer zu einer daten verzögerung also überlegen wir uns doch wir holen die opera nnten gar nicht mehr aus dem hauptspeicher sondern ändern unsere 2:38 architektur in eine universelle register architektur und haben jetzt spezielle befehle also wir haben eine lovestory architektur zum zugriff auf den 2:51 hauptspeicher und die meisten befehle arbeiten gar nicht mehr auf den hauptspeicher und wir gucken uns jetzt einfach mal anders passiert also 3:02 instruction fetsch instruction dicota branch findet jetzt immer ausschließlich auf dem register fall statt jetzt haben wir es zb mit einem not 3:11 befehl zu tun da müssen wir dann noch mal auf den speicher zugreifen und dann laden wir das datum aus dem speicher im register 3:21 satz mit dem apple store der nächste befehl der geht jetzt schon wesentlich zügiger auch hier vielleicht ein speicherzugriff jetzt können wir 3:30 nicht gleichzeitig auf den speicher zugreifen und wieder das ablegen des datums übrigens dass hainard genetischer befehl jetzt zum beispiel eine 3:42 multiplikation mit einer etwas längeren ausführungszeit auf der halle kann jetzt schon massiv überlappen weil wir gar nicht mehr auf den speicher zugreifen 3:53 müssen und wir können jetzt schon erkennen wie die überlappung wesentlich kompakter wird einfach dadurch dass wir richtet haben bei jedem befehl auf den 4:12 hauptspeicher zuzugreifen sondern wir haben jetzt einfach gesagt wir haben nur bestimmte befehle nämlich lobt und store mit denen wir auf den 4:22 hauptspeicher zugreifen und wenn man sich das jetzt mal vergleicht man hat immer noch eine art architektur aber dadurch dass das operativ fast 4:32 ausschließlich auf dem register führt stattfindet eine wesentlich kompaktere ausführung als wenn wir eine zwei address maschine vorliegen haben die 4:45 eine längere zugriffszeit auf den speicher wort haben wir jetzt in homogene befehls hasen also der zugriff auf den speicher dauert noch immer 4:56 unterschiedlich lang und man kann erkennen dadurch ergeben sich massive löcher in unserer ausführung unser bestreben 5:06 sollte es daher sein eine homogene befehls phasen zu haben das heißt jede einzelne phase des befehls ist gleich lang und jetzt schauen wir einfach mal 5:16 was passiert wenn die alle gleich lang sind und da sollte man mal ganz explizit auf den durchsatz der maschine achten also wir führen jetzt sogar phasen aus 5:29 die wir normalerweise gar nicht brauchen wie der speicherzugriff in der memory phase aber jetzt haben wir den durchsatz massiv erhöht nur dadurch dass wir die 5:43 die einzelnen phasen gleich lang haben der mir natürlich eine sehr kurze phase angenommen aber die reduktion der adressierung smaghi und die reduktion 5:54 auf ein lot und 1 tor befehl führt zu einem wesentlich höheren befiehlt durchsatz als wenn wir das gleiche prinzip anwenden bei in umgehen befehls 6:07 phasen und jetzt sehen wir ganz deutlich zwei adressen und jetzt sind jetzt ganz deutlich den unterschied zwischen den zwei address 6:17 maschinen den drei address maschinen und der lodestone architektur im hinblick auf eine überlappende befehls ausführung man kann jetzt natürlich den schluss 6:30 ziehen es bietet sich an bei überlappender befehls ausführungen auch immer homogene befehls phasen anzustreben bzw eine lot der architektur 6:41 zu haben