Šta je novo?

Sandy Bridge i AVX

audiofreak

Banned
Banovan
Učlanjen(a)
21.07.2003
Poruke
3,894
Poena
410
Pocele su da se pojavljuju informacije o ovome pa rekoh brze-bolje da otvorim thread 😀

Osim onoga sto se vec zna iz odavde, a to je da AVX cine 256-bitni vektori i instrukcije sa 3 operanda, sada se zna da ce izmedju ostalog postojati instrukcije za AES enkripciju i dekripciju.

Ovo je verovatno dodato zbog toga sto svaki GPU mora da implementira HDCP zastitu, a poznato je da ce Intel implementirati GPU kao skup x86 jezgara.

Advanced Vector Extensions (AVX) ce u sledecoj reviziji doneti i FMA (Fused Multiply-Add) instrukcije.

Novi registri ce se zvati YMM i bice prosirenje postojecih XMM registara. U 32-bitnom modu bice ih 8 (YMM0-YMM7), a u 64-bitnom modu ce takodje biti dostupni i YMM8-YMM15.

Postojace 3 nacina enkodiranja instrukcija

1. Sa XMM registrima i dva operanda kao i do sada
2. Sa XMM registrima i tri operanda (odvojen destination i dva source operanda) gde se gornjih 128 bita ignorisu
3. Sa YMM registrima takodje sa tri operanda

Pominju se i instrukcije sa cak cetiri operanda od kojih je jedan implicitni (FMA, VBLENDx, VPERMx).

Na primer:

Kod:
ADDPS xmm1, xmm0

Moze se pisati kao:

Kod:
VADDPS xmm2, xmm1, xmm0

Skoro sve SSE/SSE2 instrukcije mogu se prosiriti dodavanjem slova V ispred imena i koriscenjem tri operanda. Dodat je novi prefix, takozvani VEX koji omogucava direktno enkodiranje registarskih operanda, funkcionalnost REX prefiksa je obuhvacena, SIMD prefiksi i escape byte encoding su skraceni i podrzan je operand swizzling. Znaci islo se na efikasnije enkodiranje vec podosta dugackih instrukcija kako bi se poboljsale sanse za mikro-fuziju.

Takodje, vecina instrukcija koje se kodiraju sa VEX prefiksom (osim onih koje ocekuju eksplicitan alignment) moci ce da pristupaju neporavnatim memorijskim lokacijama za razliku od dosadasnjih SIMD instrukcija.

Nove instrukcije su:

- AESENC
- AESENCLAST
- AESDEC
- AESDECLAST
- AESIMC
- AESKEYGENASSIST
- PCLMULQDQ

- VBROADCASTSS
- VBROADCASTSD
- VBROADCASTF128
- VEXTRACTF128
- VINSERTF128

- VPERMILPD
- VPERMIL2PD
- VPERMILPS
- VPERMIL2PS
- VPERM2F128

- VZEROALL
- VZEROUPPER

- VFMADDPD
- VFMADDPS
- VFMADDSD
- VFMADDSS

- VFMADDSUBPD
- VFMADDSUBPS

- VFMSUBADDPD
- VFMSUBADDPS

- VFMSUBPD
- VFMSUBPS
- VFMSUBSD
- VFMSUBSS

- VFNMADDPD
- VFNMADDPS
- VFNMADDSD
- VFNMADDSS

- VFNMSUBPD
- VFNMSUBPS
- VFNMSUBSD
- VFNMSUBSS

Sto se tice FMA to ce biti dodato tek u drugoj generaciji AVX-a.

Detekcija ide preko CPUID instrukcije sa EAX=1 i to:

Postojanje AES instrukcija oznacava bit 25 u registru ECX.
Postojanje PCLMULQDQ instrukcije oznacava bit 1 u registru ECX.
Postojanje podrske za cuvanje AVX konteksta od strane OS-a oznacava bit 27 u registru ECX.
Postojanje AVX oznacava bit 28 u registru ECX.
Postojanje FMA oznacava bit 12 u registru ECX.

Dokument iz kog je sve ovo preuzeto mozete skinuti odavde: Link (PDF sa Rapidshare, spakovan StuffIt arhiverom, 745.7 KB)
ili odavde: Link (PDF direktno sa Intelovog sajta, 2.6 MB).
 
Nazad
Vrh Dno