Theoretische und technische Informatik - ganz praktisch - Letzte Aktivität in 2016-N-08 https://info2.aifb.kit.edu/qa/index.php?qa=activity&qa_1=2016-nachklausur&qa_2=2016-n-08 Powered by Question2Answer Assembler Befehle Cache https://info2.aifb.kit.edu/qa/index.php?qa=6452&qa_1=assembler-befehle-cache Hallo,<br /> <br /> ich habe eine Frage zu Aufgabe 8 aus der Nachklausur 2016. Genauer würde mich die Definition der zweistelligen Assembler Befehle Load und Store im Zusammenhang mit einem angebundenen Cache und Hauptspeicher interessieren.<br /> <br /> Nach meinem Verständnis gilt:<br /> <br /> -Load: Zunächst wird (falls nötig) der erste Operand in den Cache geladen und entsprechend der im zweiten Operanden angegebenen Adresse im Cache abgelegt. Änderungen im Hauptspeicher erfolgen entsprechend der Write-Back-Policy.<br /> <br /> - Store: Wie Load. Unterscheid: Das Datum des ersten Operanden wird nicht im Cache abgelegt sondern direkt im Hauptspeicher. 2016-N-08 https://info2.aifb.kit.edu/qa/index.php?qa=6452&qa_1=assembler-befehle-cache Mon, 12 Feb 2018 12:42:30 +0000 Beantwortet: Cache miss beim 2. Schritt im Programmablauf https://info2.aifb.kit.edu/qa/index.php?qa=6423&qa_1=cache-miss-beim-2-schritt-im-programmablauf&show=6428#a6428 Hallo,<br /> <br /> ja genau du hast dir deine Frage schon selbst beantwortet :)<br /> <br /> Liebe Grüße<br /> Verena (Tutor) 2016-N-08 https://info2.aifb.kit.edu/qa/index.php?qa=6423&qa_1=cache-miss-beim-2-schritt-im-programmablauf&show=6428#a6428 Sun, 11 Feb 2018 13:35:38 +0000 Kommentar verschoben: 8a) Datum https://info2.aifb.kit.edu/qa/index.php?qa=5687&qa_1=8a-datum&show=6416#c6416 Ich habe zu der 8 a) zwei Fragen.<br /> <br /> Ersten verstehe ich nicht was man unter Datum versteht. In einem anderen Beitrag habe ich gelesen, dass dort einfach die Anzahl der Daten, die an der Stelle im Cache gespeichert sind, stehen. Stimmt das ? Eigentlich muss es doch irgendwas mit dem Inhalt der jeweiligen Speicheradresse zu tun haben, da ich im Verlauf z.B. bei VI, 1 subtrahiere. Woher weiß ich dann aber das &quot;Anfangs&quot;-Datum von 20 bzw 21 mit = 2?<br /> <br /> Meine zweite Frage bezieht sich auf write back. Danach müssten Änderungen erst an den Hauptspeicher weitergegeben werden, wenn der Block im Cacher ersetzt werden würden. Jedoch stehen bereits vor Schritt 3 Adr 20 mit 2 und Adr 21 mit 2 im Hs, obwohl der Cache noch nicht voll ist, wie kann das sein ? 2016-N-08 https://info2.aifb.kit.edu/qa/index.php?qa=5687&qa_1=8a-datum&show=6416#c6416 Sat, 10 Feb 2018 22:24:17 +0000 Antwort bearbeitet: Load-Befehl Verständnis https://info2.aifb.kit.edu/qa/index.php?qa=6316&qa_1=load-befehl-verst%C3%A4ndnis&show=6321#a6321 Hallo,<br /> <br /> Load ganz allgemein gesagt &quot;läd&quot; etwas in einen Speicher.Wenn du nur einen Operand dazu gegeben hast, dann wird der Wert in den Acc (Akkumulator) geladen. Der Akkumulator dient dazu Zwischenschritte (Ergebnisse) deiner CPU zwischenzuspeichern, ohne dass sie dazu extra in den Hauptspeicher gelegt werden.<br /> <br /> Wenn du nun zwei Operanden zusammen mit dem LOAD Befehl stehen hast, dann hast du einmal die Quelle (woher der Wert kommt, bzw. wie der Wert lautet) &nbsp;und als zweites das Ziel, also wohin dieser Wert gespeichert wird. LOAD 20 21 läd in diesem Fall den Wert aus 20 und speichert ihn in 21 ab. LOAD #1 R1 bedeutet in dem Fall durch die direkte Adressierung der 1, dass eine 1 im Speicher R1 abgespeichert wird.<br /> <br /> Ich hoffe ich konnte dir damit weiterhelfen.<br /> <br /> Verena (Tutor) 2016-N-08 https://info2.aifb.kit.edu/qa/index.php?qa=6316&qa_1=load-befehl-verst%C3%A4ndnis&show=6321#a6321 Wed, 07 Feb 2018 13:40:02 +0000 Beantwortet: STORE Befehl - in Cache oder Hauptspeicher? https://info2.aifb.kit.edu/qa/index.php?qa=5658&qa_1=store-befehl-in-cache-oder-hauptspeicher&show=5675#a5675 Hallo,<br /> <br /> gut Frage, aber ich gehe davon aus, dass in diesem Fall die Operation sowohl im Cache, als auch im Hauptspeicher ausgeführt wird, um Inkonsistenzen zu vermeiden.<br /> <br /> Liebe Grüße 2016-N-08 https://info2.aifb.kit.edu/qa/index.php?qa=5658&qa_1=store-befehl-in-cache-oder-hauptspeicher&show=5675#a5675 Sun, 12 Feb 2017 13:36:45 +0000 Kommentiert: Wann wird Adresse in Cache übernommen? https://info2.aifb.kit.edu/qa/index.php?qa=5622&qa_1=wann-wird-adresse-in-cache-%C3%BCbernommen&show=5671#c5671 Super Danke! Hier auch nochmal der Link zu diesem allg. Problem: <a href="http://info2.aifb.kit.edu/qa/index.php?qa=5641&amp;qa_1=inkonsistenz-hk-2016-a9-%26-nk-2016-a8" rel="nofollow" target="_blank">http://info2.aifb.kit.edu/qa/index.php?qa=5641&amp;qa_1=inkonsistenz-hk-2016-a9-%26-nk-2016-a8</a><br /> <br /> Grüße 2016-N-08 https://info2.aifb.kit.edu/qa/index.php?qa=5622&qa_1=wann-wird-adresse-in-cache-%C3%BCbernommen&show=5671#c5671 Sun, 12 Feb 2017 12:41:12 +0000 Kommentiert: Normierung ? https://info2.aifb.kit.edu/qa/index.php?qa=5330&qa_1=normierung&show=5571#c5571 Danke für deine Antwort, <br /> ich verstehe aber nicht warum muss man (wie es in der Lösung steht) &quot;Die Charakteristik um 1 inkrementieren (mit 2 mutiplizieren)&quot; <br /> Und was ist dann der Zusammmenhang zw der Inkrementation um 1 und Multiplikation mit 2 ? 2016-N-08 https://info2.aifb.kit.edu/qa/index.php?qa=5330&qa_1=normierung&show=5571#c5571 Fri, 10 Feb 2017 11:30:12 +0000 Antwort bearbeitet: Nachklausur 2016 Aufgabe 7. https://info2.aifb.kit.edu/qa/index.php?qa=5299&qa_1=nachklausur-2016-aufgabe-7&show=5307#a5307 Aha,<br /> <br /> ich glaube ich weiß jetzt wo Sie hängen.<br /> <br /> Bei Aufgabe d) gilt für die Multiplikation zweier Zahlen x1 und x2 in Gleitkommadarstellung:<br /> <br /> x1 * x2 = m1 * m2 * B^(e1+e2)<br /> <br /> Da wir den Exponenten aber in Exzess-q Darstellung ausdrücken, müssen wir die Exponenten umformen.<br /> <br /> x1 * x2 = m1 * m2 * B^((c1 + c2) - 2q)<br /> <br /> Es gilt also für den neuen Exponenten:<br /> <br /> e_neu = c1 + c2 -2q<br /> <br /> Da wir aber nach c_neu suchen, wenden wir die Formel c = e + q an und kommen auf<br /> <br /> c_neu = e_neu + q = c1 + c2 - 2q +q = c1 + c2 -q.<br /> <br /> In unseren Beispiel vereinfach sich die Formel wegen c1 = c2 = c_alt auf:<br /> <br /> c_neu = 2* c_alt -q<br /> <br /> &nbsp;<br /> <br /> Ich hoffe, das hilft Ihnen weiter.<br /> <br /> &nbsp;<br /> <br /> Gruß<br /> Laurin (Tutor) 2016-N-08 https://info2.aifb.kit.edu/qa/index.php?qa=5299&qa_1=nachklausur-2016-aufgabe-7&show=5307#a5307 Sun, 05 Feb 2017 18:22:07 +0000 Beantwortet: Ablauf https://info2.aifb.kit.edu/qa/index.php?qa=5276&qa_1=ablauf&show=5278#a5278 Hallo,<br /> <br /> Prinzipiell ist der Ablauf folgendermaßen: Wenn ein bestimmtes Datum benötigt wird (Der Zugriff erfolgt stets über dessen Adresse im Hauptspeicher), wird zunächst überprüft, ob sich dieses bereits im Cache befindet. Ist das der Fall (Cache-Hit), kann es direkt verwendet werden. Falls nicht (Cache-Miss) muss es zunächst in den Cache geladen werden, wobei wir in dieser Aufgabe einen zweizeiligen directly-mapped-Cache vorliegen haben, also in den ersten Block stets die Daten mit geraden (20, 24) und in den zweiten Block Daten mit ungeraden (21) Hauptspeicheradressen laden.<br /> <br /> Viele Grüße<br /> <br /> Monika (Tutorin) 2016-N-08 https://info2.aifb.kit.edu/qa/index.php?qa=5276&qa_1=ablauf&show=5278#a5278 Fri, 03 Feb 2017 14:54:53 +0000 Beantwortet: Cache-Hit und Miss https://info2.aifb.kit.edu/qa/index.php?qa=5135&qa_1=cache-hit-und-miss&show=5141#a5141 Hallo,<br /> <br /> 1. Nur sehr kurz, ein paar Infos findest du zB auf Folie 8.47<br /> <br /> 2. Beim Write-Back Verfahren werden geänderte Daten im Cache (die ursprünglich ja aus dem Hauptspeicher kamen) erst auch im Hauptspeicher geändert, wenn das entsprechende Datum im Cache überschrieben wird; dort also nicht mehr zur Verfügung steht. Falls mehrere Prozesse den gleichen Speicher verwenden, kann das Write-Back Verfahren zu Inkonsistenzen führen, da unterschiedliche Prozesse womöglich auf veraltete Daten (im Hauptspeicher) zugreifen.<br /> <br /> Viele Grüße<br /> <br /> Lukas (Tutor) 2016-N-08 https://info2.aifb.kit.edu/qa/index.php?qa=5135&qa_1=cache-hit-und-miss&show=5141#a5141 Mon, 30 Jan 2017 11:47:52 +0000