Freigeben über


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).

Grafik zum MMX-Technologie-Register

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.

Grafik zum Streaming von SIMD-Erweiterungsregistern

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.

Siehe auch

Referenz

Intel-Übersicht neuer Anweisungen und von Erweiterungen