2009-07-29 2 views
2

예를 들어, 64 비트 변수를 가지고 있으며 두 개의 32 비트 데이터 항목을 SIMD 처리를 위해 저장하는 경우이 두 데이터 항목의 논리적 결합을 설명하는 이름이 있습니까?두 개의 서로 다른 데이터 항목을 단일 변수에 저장하여 연결하는 개념에는 이름이 있습니까?

내 동료가 "하이브리드 커플 링"을 제안했는데, 이것이 널리 사용되는 용어입니까?

명확히하기 위해 : 우리는 특정 구현보다 더 높은 수준의 개념을 따르고 있습니다. 예를 들어, C와 같은 언어로 우리는이 두 구조체가, 말 :에 관계없이 이렇게하는 이유의

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

내 생각은 "하이브리드 커플 링"입니다. – Nosredna

+0

OOP에서는 객체라고 부릅니다. –

+0

첫 번째 예제가 압축되고 두 번째 예제의 압축이 풀립니다. 그러나 사내에서 필요하면 이름을 만들 수 있습니다. "하이브리드 커플 링"또는 "노새 짝짓기"라고 부르거나 원하는 것을 선택하십시오. – 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에게 값

CMPccPS을 포장 추가 : 단일 정밀도 포장 FP는 C 세계에서

+0

감사 :-) 그러나, 우리는 더 높은 수준의 개념을 찾고 있습니다. 나는 명확하게하기 위해 제 질문을 편집했습니다. –

+0

그냥 포장이라고합니다. 당연히 팩 데이터는 종종 관련이 있습니다. – Nosredna

0

를 비교하여 그라는 노조

"공용 구조체 선언"은 변수 값 집합과 공용 구조체의 이름을 지정하는 태그 (선택 사항)를 지정합니다. 변수 값은 공용체의 "구성원"이라고하며 다른 유형을 가질 수 있습니다. 유니온은 다른 언어의 "변형 레코드"와 비슷합니다.

유니온 유형의 변수는 해당 유형으로 정의 된 값 중 하나를 저장합니다. 동일한 규칙이 구조체 및 공용체 선언을 제어합니다. 공용체는 비트 필드를 가질 수도 있습니다. 이 psuedocode 것 자신의 예에서

:이 노새가 짝짓기를하려고 할 때

노조 32_64 {

64_bit_specifier sixty_four; 
32_bit_specifier thirty_two; 

}

+1

'구조체 '를 말하는 게 아니겠습니까? –

+0

@ennuikiller, 또한 일부 C 컴파일러 (파스칼은 생각하지만 너무 오래되었습니다)를 사용하면 구조체를 "압축"하도록 지정할 수 있습니다. 따라서 유니온 트릭없이 바이트 수준의 패킹을 할 수 있습니다. 그러나이 과정을 모든 언어로 "패킹"이라고합니다. – Nosredna

+0

@Nosrenda는 사용되는 용어가 패킹이라고 동의했지만 엉덩이 유니온을 효율적으로 구현할 수 있습니다 – ennuikiller