17 - CPU-Design [ID:10306]
50 von 660 angezeigt

Ich nehme den Teil an. Moin Moin an der Seite. Hat schon jeder so ein Zettelchen?

Jeder so ein Zettelchen? Nein? Das darfst du auch noch mit meinem Kunden tun.

Geht ein für Vorlesungen, Übungen, Laborübungen, so du mitmachst.

Jo, gibt es andere Fragen? Keine Fragen? Ihr schwitzt auch alle. Jo, ok, dann machen wir

weiter mit dem, was wir Dienstag angefangen haben. Ihr erinnert euch, wir wollen

eine CISC Instruktion holen. CISC Instruktion heißt komplexe Instruktion,

komplexe Instruktion heißt mehrere Parameter, mehrere Parameter heißt

lange Instruktion, kurze Instruktion, keiner weiß so genau. Jo, dann haben wir uns

angeguckt, wie wir uns die dann aus dem Speicher holen können.

Und haben gesagt, naja, dann nehmen wir doch zwei Code Caches und der eine liefert

den Anfangsteil und der zweite so notwendig den Rest. Jo, Frage dazu, was ist

denn jetzt, wenn wir so kurz am Ende des Speichers sind?

Also typischer Fall, wir haben unseren Speicher und irgendwo haben wir unsere

Funktion und am Ende der Funktion steht ja wohl ein Return. Return typischerweise

ein simpelster Fall einer Instruktion, ein Byte. Und dann kann es ja sein, dass

an der Stelle auch der Speicher, das BIOS, das keine Ahnung was zu Ende ist.

Was ist denn jetzt das Problem?

Na gut, das Problem sollte schnell jeder sehen. Ich versuche, was weiß ich, die

letzte Cache-Line zu lesen. Da muss das Red ja drin sein. Und da ich eigentlich

weiß, per se, ob da jetzt nicht vielleicht noch was danach kommt, lese ich die

nächste Cache-Line. Was passiert jetzt?

Ich hole mir die zwei oder ich versuche es mal, den ersten holen, ist kein Problem,

aber ich kann es ja noch nicht ausführen, weil ich nicht weiß, ob das alles ist.

Also muss ich den nächsten auch noch holen, den nächsten holen, PageFault oder

Buserror oder irgendeiner Art von Fehler, weil CPU kriegt nichts.

Ja, was heißt das?

Ja, heißt natürlich immer, was weiß ich, in jedem Code-Fragment, was du

schreibst, du hast dein Programm, am Ende noch ein bisschen mehr, du hast deine

Library, am Ende noch ein bisschen mehr, noch eine Library, am Ende ein bisschen

mehr, Betriebssystem, am Ende noch ein bisschen mehr, ein bisschen mehr, ein

bisschen mehr, ein bisschen mehr. Gut, und eine Firma Intel, die irgendwann mal

umgestiegen ist von einzelne Bytes holen und ausführen, hin zu, naja, wir holen mal

ganze Instruktionen, die kann das nachträglich nicht mehr. Kann nachträglich

dem Compiler nicht mehr sagen, klebt mal was dahinter. Ja, gut, wie ist das

lösbar? Naja, im Prinzip so lösbar, dass man zu jedem Byte, was man da kriegt,

möglicherweise auch noch so einen Invalid-Bit mitkriegen muss. Dann kriege ich

halt hier meine in diesem Falle 16 Bytes und nochmal 16 Bytes, wobei allerdings

die 16 Bytes alle als Invalid markiert sind. Und wenn dann die CPU, die

Pipeline versucht das auszuführen und sieht, ja, hier steht ein, keine Ahnung, ein

Move und Parameter haben wir nicht, dann Parameter sind Invalid, dann muss halt

an der Stelle einen PageFault, BusError, keine Ahnung was produzieren.

Ja, also da ist noch so eine kleine Baustätte, die man immer machen muss.

Gleiches gilt natürlich am Ende jeder Page, also nicht nur am Ende des echten

Speichers, sondern im Prinzip auch am Ende einer ganz normalen Wald- und Wiesen-Page.

Die nächste Page ist vielleicht noch nicht geladen, aber CPU will so ein paar Bytes,

ja, dann sieht sie auch hier, okay, die Page ist nicht valid, also muss er erstmal

einen PageFault generieren und dann beim nächsten Mal es halt nochmal probieren.

Aber immer wieder ein bisschen Hardware, die man extra einbauen muss.

Wenn ich jetzt gar keine Urheber habe, sondern nur physikalische Interessen, dann ist das doch wahrscheinlich gar kein Problem, weil das einfach umgeräumt wird.

Steht da halt was drin, was da ansehen stehen sollte, aber es interessiert mich eigentlich nur jetzt im Anschauen.

Teil einer Videoserie :

Zugänglich über

Offener Zugang

Dauer

01:35:55 Min

Aufnahmedatum

2013-06-20

Hochgeladen am

2019-04-06 23:29:03

Sprache

de-DE

Einbetten
Wordpress FAU Plugin
iFrame
Teilen