2015-11-05 13 views
5

Mit anderen Worten, spiegeln L1, L2, L3 usw. Caches immer die Endianz ihrer CPU wider?Haben Caches die Endlichkeit ihrer CPU?

Oder macht es mehr Sinn, Daten immer in Caches in einigen spezifischen Endianness zu speichern?

Gibt es eine allgemeine Design-Entscheidung?

Antwort

4

Die meisten modernen Caches speichern keine Daten als sequentielle Batzen Bytes, sondern Banken und Verschachtelung Techniken aufgrund Einteilung & Einrichtung oder Timing Überlegungen verwenden. Zusätzlich verwenden die meisten Caches Fehlerkorrekturtechniken, so dass zusätzliche Bits mit den Daten verschachtelt werden können.

Als Ergebnis gibt es keinen wirklichen Sinn endianness einen Cache in der Diskussion, da die innere Ordnung in der Regel von Design-Überlegungen verstümmelt wird. Darüber hinaus liefern Caches in den meisten Fällen die Daten in voller Zeilengranularität, so dass es auch keinen Sinn macht zu fragen, von welchem ​​Offset Sie lesen.

Schließlich ist Endianess eine Frage der Architektur, so interpretiert man Daten, die man von der CPU bekommt. Es existiert, um die möglichen Optionen zu beschreiben, in denen Sie Daten interpretieren können. Caches sind Mikroarchitekturen, per Definition sollte Ihr CPU-Funktionsverhalten ihnen nichts anhaben, und sie können jede gewünschte interne Struktur implementieren. Die Frage kann immer noch von Bedeutung sein, wenn Sie über Mittel verfügen, um in den Cache hineinzuspähen, und diesen in einen Wert übersetzen möchten. In diesem Fall gilt die obige Überlegung, und jeder Prozessor kann sich unterscheiden.

+0

Ich vermutete etwas in dieser Richtung. Danke - akzeptieren. –