2009-07-29 8 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, что не существуют в UncoupledData. Существует ли термин, описывающий эту связь между x и y?

+1

Я думаю, "гибридная муфта", когда два мула пытаются спариваться. – Nosredna

+0

В ООП мы будем называть это объектом. –

+0

Ваш первый пример упакован, а второй пример распакован. Но вы можете составить имя, если вам это нужно. Назовите это «гибридная связь» или «спаривание мула» или что угодно. – Nosredna

ответ

5

Я всегда называл это «упаковкой». Вы суммируете R, G, B и альфа-байты в длинный.

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

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

ADDPS: Добавить Упакованный одинарной точности FP Значения

CMPccPS: Упакованные с одинарной точностью FP Сравнить

+0

Спасибо :-) Однако мы ищем концепцию более высокого уровня, я изменил свой вопрос, чтобы уточнить. –

+0

Это просто называется упакованным. Естественно, что упакованные данные часто связаны между собой. – Nosredna

0

В гр мире его называют союз

«Объявление союза» указывает набор значений переменных и, необязательно, тег, называя объединение. Значения переменных называются «членами» объединения и могут иметь разные типы. Союзы аналогичны «вариантным записям» на других языках

Переменная с типом объединения хранит одно из значений, определенных этим типом. Те же правила определяют структуру и декларации профсоюзов. Союзы также могут иметь битовые поля.

В своем примере вы бы это psuedocode:

накидной 32_64 {

64_bit_specifier sixty_four; 
32_bit_specifier thirty_two; 

}

+1

Не хотите сказать 'struct'? –

+0

@ennuikiller, также, некоторые компиляторы C (и я думаю, что Pascal, но это было так долго), вы можете указать, что структура «упакована». Таким образом, вы можете делать байтовую упаковку без трюков. Но процесс называется «упаковка» на любом языке. – Nosredna

+0

@ Nosrenda, согласился с термином, используемым для упаковки, но он может быть эффективно реализован в сборе ac-соединения – ennuikiller