Vorteile der Verwendung von systeminternen Funktionen
[Diese Dokumentation ist nur eine Vorschau und wird in späteren Versionen ggf. geändert. Blank topics are included as placeholders.]
Microsoft-spezifisch
Der wichtigste Vorteil von systeminternen Komponenten besteht darin, dass Sie nun den Zugriff auf den Hauptmerkmalen haben, die nicht mit herkömmlichen eine Art zur Verfügung stehen:
AktivierenNeue Register gepackte Daten von bis zu 128 Bits lang für das optimale SIMD-Verarbeiten.
AktivierenNeue Datentypen Verpacken von bis zu 16 Elemente von Daten in einem Register.
Neue Register
Neue Register, legt ein wichtiges Feature, werden von der Architektur der Prozessoren bereitgestellt.
Technologie-Register MMX
Die systeminternen Funktionen der Technologie MMX stellen acht neue Register (MM0 zu MM7), die jeweils 64 Bits lang sind (0 bis 63).
Streaming SIMD-Erweiterungen (SSE) und Streaming SIMD-Erweiterungen 2 Register der Anweisungen (SSE2-Anweisungen)
Das SSE und Anweisungen SSE2-Anweisungen belegen immer noch eine acht Register XMM0 aus (128 Bits), die XMM7 zu lang sind.
Diese neuen Daten register aktivieren die Verarbeitung von Datenelementen parallel. Da jedes Register mehr als ein Datenelement aufnehmen kann, kann der Prozessor mehr als ein Datenelement gleichzeitig verarbeiten. Diese Verarbeitung Funktion ist SIMD-alias verarbeiten. Um SIMD zu aktivieren, das dem C/C++-Compiler verarbeitet, werden neue Datentypen definiert, um die erweiterte Größe der neuen Register zu verwenden.
Verwenden von systeminternen Funktionen können Sie den Code mit der Syntax von C-Funktionsaufrufen und Variablen anstelle der Assemblersprache. Für jede Anweisung Datenbearbeitungs Computer- und Erweiterungsmethoden in den neuen sätzen, gibt es eine entsprechende C, das systeminterne Funktion dieses direkt diese Anweisung implementiert. Dadurch wird vom Verwalten von Registern und Assembly programmierung frei. Darüber hinaus optimiert der Compiler die Anweisung planung, damit die ausführbare Datei schneller ausgeführt wird.
Neue Datentypen
Neue C-Datentypen, die neuen Register darstellen, werden als Operanden auf diese systeminternen Funktionen verwendet. Diese Datentypen werden in neuen Datentypen aufgeführt, die für systeminterne Erweiterung Tabelle verfügbar sind.
Neue Erweiterungen für systeminterne Datentypen verfügbar
Der neue Datentyp |
Technologie MMX |
Streaming SIMD-Erweiterungen |
Streaming SIMD-Erweiterungen 2 Anweisungen |
---|---|---|---|
__m64 |
Ja |
Ja |
Ja |
__m128 |
Nicht verfügbar |
Ja |
Ja |
__m128d |
Nicht verfügbar |
Nicht verfügbar |
Ja |
__m128i |
Nicht verfügbar |
Nicht verfügbar |
Ja |
Der Datentyp __m64
Der __m64 Datentyp wird verwendet, um den Inhalt eines Registers MMX darzustellen, der das Register ist, das durch die systeminternen Funktionen der Technologie MMX verwendet wird. Der __m64 Datentyp kann acht 8-Bit-Werte zwei 16-Bit-Werte, um vier 32-Bit-Werte oder einen 64-Bit-Wert enthalten.
Die Datentypen __m128
Der Compiler erstellt lokale Daten __m128 zu 16 Byte hinweg auf dem Stapel aus. Globale Daten dieser Typen ist auch das 16-Byte ausgerichtet.
Zum Ausrichten ganze Zahl, ein Gleitkommawert oder double von Arrays, können Sie die declspec Ausrichtung verwenden.
Da der neuen - Gruppe behandelt, registriert das SSE gleichermaßen, ob Sie die gepackte oder skalaren Daten verwenden, gibt es kein __m32 Datentyp von skalaren Daten darzustellen, wie erwartet. Eine skalare Operationen sollten Sie die __m128-Objekte und skalaren Formen der systeminternen Funktionen verwenden. der Compiler und der Prozessor implementieren diese Vorgänge mit 32-Bit-Arbeitsspeicherverweisen.
Neue Datentyp-Verwendungs-Richtlinien
Die neuen Datentypen, die in den neuen Datentypen verfügbaren Add-Ins für systeminterne Tabelle aufgeführt sind, sind nicht grundlegende ANSI C-Datentypen und deshalb müssen Sie die folgenden Nutzungsbeschränkungen beachten:
Verwenden Sie neue Datentypen nur auf der linken Seite einer Zuweisung als Rückgabewert oder als Parameter. Sie können es mit anderen arithmetischen Ausdrücken nicht verwendet werden (“ + „,“ - „usw.).
Verwenden Sie neue Datentypen als Objekte in Aggregaten (z. B. Unions, um die gelesenen Elemente und - Strukturen zuzugreifen. Die Adresse eines __m64 oder __m128-Objekts wird übernommen werden.
Verwenden Sie neue Datentypen nur mit den jeweiligen systeminternen Funktionen, die in diesem Handbuch beschrieben werden.
Vollständige Details der Hardware Anweisungen finden Sie unter Technologie-Programmierreferenz-Handbuch Intel-Architektur-MMX. Eine Beschreibung von Datentypen finden Sie im Handbuch des Intel-Architektur-Softwareentwicklers, Volume 2: Anweisungs-festgelegtes Manuell.