2016-06-09 9 views
0

Betrachten wir einen Cache (zum Beispiel eine direkte Zuordnung) ... Ich sehe in einigen Büchern, dass der Block, der die Daten enthält, von dem Block getrennt wird, der das Tag, das Validierungsbit usw. enthält.

Ich habe zwei Fragen:
1 - Sie sind physisch getrennt?
2 - Warum?Warum Daten und Tag Block in einem Cache sind getrennt?

PS: Vielleicht könnte ein Bild nützlich sein, um das Problem zu verstehen: Block-Tag und Blockdaten diejenigen auf der linken und auf der rechten Seite der roten Linie sind jeweils

enter image description here



Dank

Antwort

0

Die Speicheradresse (die das erforderliche Byte enthält) muss so schnell wie möglich im Cache gesucht werden. Daher ist der tag Bereich ein Associative Memory, in dem alle möglichen tags, die die Blöcke/Zeilen des Caches darstellen, gleichzeitig gesucht werden können. Einer der Blöcke/Zeilen enthält das erforderliche Byte. Sobald der Block gefunden wurde, kann mit dem offset Wert/Teil der Speicheradresse auf das Byte zugegriffen werden. Es gibt also einen Unterschied in der Art und Weise, auf die sowohl data als auch tag zugegriffen wird, und somit die Trennung.

+0

Ich habe nicht genau verstanden .. 1 - Tag Bereich und Datenbereich sind mit verschiedenen Caches implementiert, die erste assoziative weil bietet eine bessere Leistung in Bezug auf die Zugriffszeit? 2 - Auf die zwei Bereiche wird gleichzeitig parallel zugegriffen? 3 - Was ist der Unterschied beim Zugriff auf die beiden Bereiche? Danke – PenguinEngineer

Verwandte Themen