2009-07-29 16 views
2

Wenn ich zum Beispiel eine 64-Bit-Variable habe und zwei 32-Bit-Datenelemente darin ablege, gibt es vielleicht für die Zwecke der SIMD-Verarbeitung einen Namen, der die logische Kopplung dieser beiden Datenelemente beschreibt?Hat das Konzept der Kopplung zweier verschiedener Datenelemente, die in einer einzelnen Variablen gespeichert werden, einen Namen?

Ein Kollege von mir schlägt "Hybrid Coupling" vor, ist das ein weit verbreiteter Begriff?

Um zu verdeutlichen: Wir sind nach einem höheren Level-Konzept als spezifische Implementierungen. Nehmen wir zum Beispiel in einer C-ähnlichen Sprache haben wir diese beiden Strukturen:

struct CoupledData 
{ 
    uint64 x_and_y; // x is stored in the top 4 bytes, y in the bottom 4 
} 

struct UncoupledData 
{ 
    uint32 x; 
    uint32 y; 
} 

Unabhängig von der Gründe dafür gibt es eine implizite Kopplung zwischen den x- und y-Datenelemente in CoupledData, die nicht der Fall ist existieren in UncoupledData. Gibt es einen Begriff, der diese Kopplung zwischen x und y beschreibt?

+1

Ich denke, "Hybrid-Kopplung" ist, wenn zwei Mulis versuchen zu paaren. – Nosredna

+0

In OOP würden wir es ein Objekt nennen. –

+0

Ihr erstes Beispiel ist gepackt und das zweite Beispiel ist entpackt. Aber Sie können einen Namen erfinden, wenn Sie ihn intern benötigen. Nennen Sie es "Hybrid-Kopplung" oder "Maultier-Paarung" oder was auch immer Sie mögen. – Nosredna

Antwort

5

Ich habe es immer "Verpackung" genannt. Sie packen R-, G-, B- und Alpha-Bytes zu einem langen.

pixel=(a<<24)+(r<<16)+(g<<8)+b; 

Here's a reference for SIMD instructions in particular (from MMX/SSE):

ADDPS: Hinzufügen Single-Precision FP Werte

CMPccPS Verpackt: Verpackt Single-Precision FP

+0

Danke :-) Aber wir suchen nach einem höheren Level-Konzept, ich habe meine Frage zur Klärung geklärt. –

+0

Es heißt nur gepackt. Natürlich sind die gepackten Daten oft verwandt. – Nosredna

0

In der c Welt Vergleichen seine so genannte Verbindung

Eine "union-Deklaration" gibt eine Gruppe von Variablenwerten und optional eine Variable an, die die Union bezeichnet. Die Variablenwerte werden "Mitglieder" der Union genannt und können verschiedene Typen haben. Unionen ähneln "Variantensätzen" in anderen Sprachen.

Eine Variable mit Union-Typ speichert einen der von diesem Typ definierten Werte. Die gleichen Regeln gelten für Struktur- und Gewerkschaftsdeklarationen. Gewerkschaften können auch Bitfelder haben.

In seinem Beispiel Sie diese psuedocode haben würde:

Vereinigung 32_64 {

64_bit_specifier sixty_four; 
32_bit_specifier thirty_two; 

}

+1

Meinst du nicht "struct"? –

+0

@ennuikiller, auch einige C-Compiler (und ich denke, Pascal, aber es ist so lange) können Sie angeben, dass eine Struktur "gepackt" ist. So können Sie ohne Trickversuche auf Byte-Ebene packen. Aber der Prozess heißt in jeder Sprache "packen". – Nosredna

+0

@Nosrenda, stimmte der verwendete Begriff ist Verpackung, aber es kann effizient ass ac Union – ennuikiller