Hallo Forum - Ich habe ein paar ähnliche/verwandte Fragen über SIMD intrinsisch, für die ich online einschließlich stackoverflow suchte, aber keine guten Antworten gefunden habe, so dass Sie Ihre Hilfe anfordern.SIMD intrinsic und Speicherbusgröße - Wie CPU alle 128/256 Bits in einem einzelnen Speicher liest liest?
Im Grunde versuche ich zu verstehen, wie eine 64-Bit-CPU alle 128 Bits in einem einzigen Lesevorgang abruft und welche Voraussetzungen für eine solche Operation erforderlich sind.
- Würde die CPU alle 128 Bits aus dem Speicher in einem einzigen Speicher abrufen oder zwei 64-Bit-Lesevorgänge ausführen?
- Verlangen die CPU-Hersteller eine bestimmte Größe des Speicherbusses, zum Beispiel für eine 64-Bit-CPU, würde Intel einen 128-Bit-Bus für SSE-Speicheroperationen benötigen?
- Sind diese Operationen abhängig von Speicherbusgröße, Anzahl der Kanäle und Anzahl der Speichermodule?
Ice Lake soll einen "Fast Short REP MOV" hinzufügen - was immer das bedeuten soll. – Mysticial
@Mysticial: Nett! Vermutlich ist der Break-Even-Schwellenwert, bei dem eine Vektorschleife besser als "rep movsb" ist, niedriger als bei Skylake (wo es für ausgerichtete Zeiger möglicherweise 128 oder 256 Byte ist). –
@PeterCordes - Danke für die detaillierte Antwort und Zeiger, ich habe eine Follow-up-Frage: Wenn der Bus 64 Bit breit ist, warum sollten die Daten auf 16-Byte-Grenze ausgerichtet sein, warum nicht 8 Bytes? –