2009-07-29 3 views
2

例えば、64ビットの変数を持ち、2つの32ビットのデータ項目をSIMD処理の目的のために格納している場合、これらの2つのデータの論理結合を表す名前がありますか?2つの異なるデータ項目を1つの変数に格納して結合するという概念は名前を持っていますか?

私の同僚は「ハイブリッドカップリング」を提案していますが、これは広く使われている用語ですか?

具体的には、特定の実装よりも高いレベルの概念を取り入れています。例えば、Cのような言語では、我々は、これら2つの構造体を有している、と言う:

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; 
} 

かかわらずそうする理由の、ないCoupledDataにおけるxおよびyデータメンバー間の暗黙的な結合が存在しますUncoupledDataに存在する。 xとyとの間のこの結合を表す項がありますか?

+1

私は2人のラバが交尾しようとすると、 "ハイブリッド結合が" だと思います。 – Nosredna

+0

OOPでは、オブジェクトと呼んでいます。 –

+0

最初の例がパックされ、2番目の例がアンパックされています。しかし、社内で必要な場合は名前をつけることができます。それを「ハイブリッドカップリング」や「ミュールメイティング」などと呼びましょう。 – Nosredna

答えて

5

私はいつも「パッキング」と呼んでいます。 R、G、B、およびアルファバイトをlongにパックします。

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

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

ADDPS:パックド単精度 FP Cの世界では

+0

ありがとう:-)しかし、我々はより高いレベルのコンセプトを探しています、私は明確にするために私の質問を編集しました。 –

+0

これはちょうど詰め物と呼ばれています。もちろん、パックされたデータはしばしば関連しています。 – Nosredna

0

そのと呼ばれるAの比較: 値

CMPccPSはパックド単精度FPを追加します。組合

"共用体宣言"は、可変長の集合と、オプションで、共用体の名前を付けるタグを指定します。変数の値は、共用体の「メンバ」と呼ばれ、異なる型を持つことができます。ユニオンは他の言語の「バリアントレコード」に似ています

ユニオンタイプの変数は、そのタイプで定義された値の1つを格納します。同じ規則が構造宣言と連合宣言を管理します。共用体はビットフィールドを持つこともできます。

あなたはこの擬似コードを持つことになり、彼の例では

組合32_64 {

64_bit_specifier sixty_four; 
32_bit_specifier thirty_two; 

}

+1

あなたは 'struct'を意味しませんか? –

+0

@ennuikiller、また、いくつかのCコンパイラ(そして私はPascalだと思っていますが、それはずっと長くなっています)では、構造体が "packed"であることを指定できます。したがって、ユニオントリックなしでバイトレベルのパッキングを行うことができます。しかし、このプロセスはどの言語でも「パッキング」と呼ばれています。 – Nosredna

+0

@Nosrendaは、使用される用語がパッキングだと同意しましたが、効率的に実装することができます。 – ennuikiller

関連する問題