1. [Вікі](https://feex.it/wiki/)
2. [Апаратнае забеспячэнне](https://feex.it/wiki/hardware/)
3. [Сістэмы і архітэктура](https://feex.it/wiki/hardware/system/)
4. SSE2

# SSE2

Архітэктурны даведнік: Feex

SSE2 пашырае 128-бітную мадэль праграмавання XMM аперацыямі з плаваючай коскай падвойнай дакладнасці і цэлалікавымі аперацыямі. Яна з'яўляецца часткай звычайнага базавага ўзроўню x86-64, але не з'яўляецца скарачэннем для кожнага больш позняга пашырэння SSE.

## Што вам трэба ведаць

SSE2 пашырае 128-бітную мадэль праграмавання XMM аперацыямі з плаваючай коскай падвойнай дакладнасці і цэлалікавымі аперацыямі. Яна з'яўляецца часткай звычайнага базавага ўзроўню x86-64, але не з'яўляецца скарачэннем для кожнага больш позняга пашырэння SSE.

## Як гэта працуе

128-бітны рэгістр XMM можа змяшчаць 2 значэнні падвойнай дакладнасці або цэлалікавыя элементы рознай разраднасці. SSE2 пераносіць значную частку цэлалікавай працы SIMD у рэгістры XMM замест мадэлі псеўданімаў MMX/x87. Скалярныя і спакаваныя формы, знакавасць, насычэнне і патрабаванні да выраўноўвання застаюцца спецыфічнымі для канкрэтнай інструкцыі.

## Дзе гэта карысна

Вылічальная бібліятэка можа працаваць з парамі значэнняў падвойнай дакладнасці, у той час як ядро пабайтавай апрацоўкі можа параўноўваць або перагрупоўваць спакаваныя цэлалікавыя даныя. Колькасць элементаў у рэгістры не з'яўляецца сцвярджэннем аб прапускной здольнасці інструкцый або паскарэнні праграмы.

## Як праверыць падтрымку і актыўнасць

CPUID.01H:EDX біт 26 пералічвае SSE2. Пераканайцеся, што працоўнае асяроддзе захоўвае стан XMM і што бінарны базавы ўзровень праграмы супадае. Выкарыстоўвайце задакументаваную версію праграмы для састарэлых сістэм, калі яе бягучая зборка патрабуе больш позняга пашырэння.

Функцыя SIMD апісвае інструкцыі, а не дадатковыя ядры. Форма інструкцыі вызначае шырыню элемента, знакавасць, акругленне, выраўноўванне і тое, якія лініі (lanes) узаемадзейнічаюць. Праграмнае забеспячэнне павінна захоўваць стан рэгістраў ABI і выкарыстоўваць падтрымоўванае асяроддзе выканання.

## Чаго гэта функцыя не гарантуе

SSE2 не азначае наяўнасць SSE3, SSSE3, SSE4.1 або SSE4.2. Праграмнае забеспячэнне, сабранае для больш новага базавага ўзроўню, можа даваць збой у цалкам працаздольнай сістэме з падтрымкай SSE2. Сцяг SSE2 не з'яўляецца канчатковай высновай аб сумяшчальнасці з аперацыйнай сістэмай ці праграмай.

## Сумяшчальнасць і прадукцыйнасць на практыцы

Больш познія назвы ў сямействе SSE маюць асобныя біты функцый. Для разгорнутага бінарнага файла праверце поўны мінімальны набор функцый, уключаючы бібліятэкі і код запуску. Запасны варыянт карысны толькі тады, калі ніякая непадтрымоўваная інструкцыя не выконваецца да этапу выбару.

## Практычны чэк-ліст для праверкі

1. Зафіксуйце дакладную мадэль працэсара або платформы, а таксама задзейнічаныя версіі праграмы, АС і асяроддзя выканання. Захавайце дакладную фармулёўку памылкі або патрабавання.
2. Звярніцеся да дакументацыі вытворцы для гэтай канкрэтнай мадэлі, затым праверце фактычныя магчымасці і ўключаны стан у асяроддзі, дзе выконваецца праграма.
3. Супастаўце кожнае патрабаванне выбранага выканальнага файла або бэкэнда. Аналагічнай назвы функцыі, псеўданіма або агульнай назвы тэхналогіі недастаткова.
4. Пацвердзіце, што праграма выбрала патрэбную рэалізацыю. Выкарыстоўвайце яе задакументаваныя сродкі дыягностыкі і падтрымліваемы запасны варыянт, калі патрабаванні не выконваюцца.
5. Уносьце па адным падтрымліваемым змяненні за раз і паўтарайце тую ж нагрузку. Захоўвайце зыходную канфігурацыю і магчымасць адкату.

## Калі функцыя пазначана, але праграмнае забеспячэнне не можа яе выкарыстоўваць

Пачніце з канкрэтнага кампанента, які выклікае збой. Апаратная база даных апісвае зафіксаваныя магчымасці; аперацыйная сістэма або гіпервізар могуць прадастаўляць іншае фактычнае асяроддзе. Памылка недапушчальнай інструкцыі (illegal instruction) таксама патрабуе даследавання канкрэтнай інструкцыі, якая выклікала збой, і зборкі бінарнага файла, паколькі пашкоджанне даных або іншая непадтрымліваемая інструкцыя могуць выклікаць аналагічны сімптом.

Усталюйце версію праграмы, драйвера або асяроддзя выканання, якая падтрымліваецца для дадзенай платформы, і пры неабходнасці выкарыстоўвайце задакументаваную вытворцам базавую або запасную зборку. Абнаўленне ПЗ не можа стварыць інструкцыю, якой няма ў працэсары. Змяненні ў мікрапраграме (firmware) і палітыках бяспекі павінны адпавядаць працэдурам вытворцы сістэмы і плану аднаўлення, а не агульным рэцэптам аптымізацыі.

## Звязаныя функцыі і карысныя адрозненні

[SSE](https://feex.it/wiki/l/be/hardware/system/sse/) · [SSE3](https://feex.it/wiki/l/be/hardware/system/sse3/) · [SSE4.2](https://feex.it/wiki/l/be/hardware/system/sse4-2/) · [x86-64-v2](https://feex.it/wiki/l/be/hardware/system/x86-64-v2/)

## Крыніцы і межы прымянення гэтага тлумачэння

[Intel 64 and IA-32 Architectures Software Developer's Manual](https://www.intel.com/content/www/us/en/developer/articles/technical/intel-sdm.html) · [x86-64 psABI: узроўні архітэктуры і мікраархітэктуры працэсараў](https://gitlab.com/x86-psABIs/x86-64-ABI/-/blob/master/x86-64-ABI/low-level-sys-info.tex)

Гэтыя даведнікі вызначаюць архітэктурныя паводзіны і патрабаванні да праграмнага забеспячэння. Яны не пацвярджаюць незалежна кожнае значэнне функцыі на звязанай старонцы мадэлі абсталявання. Для праверкі падтрымкі мадэллю выкарыстоўвайце даныя вытворцы на адпаведнай старонцы і правярайце фактычную канфігурацыю сістэмы. Гэты артыкул не змяшчае вынікаў тэсціравання (benchmark), сертыфікацыі або даты незалежнага агляду.

## Звязанае

Гэтыя аб'екты звязаны з гэтым артыкулам. Тып пазначаны на кожнай спасылцы.

[SSE: Архітэктурны даведнік](https://feex.it/wiki/l/be/hardware/system/sse/)[SSE3: Архітэктурны даведнік](https://feex.it/wiki/l/be/hardware/system/sse3/)[SSE4.2: Архітэктурны даведнік](https://feex.it/wiki/l/be/hardware/system/sse4-2/)[x86-64-v2: Архітэктурны даведнік](https://feex.it/wiki/l/be/hardware/system/x86-64-v2/)

## Крыніцы і праверка

Рэдакцыйная прыналежнасць: Feex. Дата незалежнай праверкі не зафіксавана. [Як мы даследуем](https://feex.it/wiki/research/).

- [Intel 64 and IA-32 Architectures Software Developer's Manual ](https://www.intel.com/content/www/us/en/developer/articles/technical/intel-sdm.html)· Тамы 1 і 2 апісваюць названыя сямействы інструкцый і CPUID; Том 3 апісвае стан, старонкавую арганізацыю памяці, VMX і элементы кіравання абаронай. Архітэктурная дакументацыя не пацвярджае падтрымку канкрэтнай мадэлі.
- [x86-64 psABI: узроўні архітэктуры і мікраархітэктуры працэсараў ](https://gitlab.com/x86-psABIs/x86-64-ABI/-/blob/master/x86-64-ABI/low-level-sys-info.tex)· Machine Interface, Processor Architecture: табліца базавых і кумулятыўных магчымасцей v2/v3/v4, праверкі стану АС і рэкамендацыі па разгортванні.

## Ці быў гэты артыкул карысным?

Дастаткова адказаць "так" або "не". Выберыце прычыну, калі хочаце, або дадайце кароткую нататку.

Кароткія факты

Кароткая інфармацыя пра гэтую старонку. Характарыстыкі, крыніцы і поўная гісторыя застаюцца ў артыкуле.

---

Source: [Canonical Feex Wiki page](https://feex.it/wiki/l/be/hardware/system/sse2/)

[Developer guide](https://feex.it/wiki/developers/) | [API policy](https://feex.it/developers/api-policy/) | [Agent guidance](https://feex.it/wiki/llms.txt)
