SSE4 - SSE4

SSE4 (Oqim SIMD kengaytmalari 4) a SIMD Markaziy protsessor ko'rsatmalar to'plami da ishlatilgan Intel Asosiy mikroarxitektura va AMD K10 (K8L). 2006 yil 27 sentyabrda, 2006 yil kuzida e'lon qilindi Intel Developer Forum, a-da noaniq tafsilotlar bilan oq qog'oz;[1] 47 yo'riqnomaning aniqroq tafsilotlari 2007 yil bahorida Intel Developer Forumida taqdim etildi Pekin, taqdimotda.[2] SSE4 Intel 64 va IA-32 arxitektura mikroprotsessorlarining oldingi avlodlari uchun yozilgan dasturlarga to'liq mos keladi. Barcha mavjud dasturiy ta'minot SSE4-ni o'z ichiga olgan mikroprotsessorlarda, shuningdek SSE4-ni o'z ichiga olgan mavjud va yangi dasturlar mavjud bo'lganda o'zgartirilmasdan to'g'ri ishlashni davom ettiradi.[3]

SSE4 pastki to'plamlari

Intel SSE4 54 yo'riqnomadan iborat. Deb nomlangan 47 ta yo'riqnomadan iborat kichik to'plam SSE4.1 ba'zi Intel hujjatlarida mavjud Penryn. Qo'shimcha ravishda, SSE4.2, qolgan 7 ta yo'riqnomadan tashkil topgan ikkinchi kichik to'plam birinchi bo'lib mavjud Nehalem asoslangan Core i7. Intel ko'rsatmalar to'plamini ishlab chiqishda muhim rol o'ynaganligi sababli ishlab chiquvchilarning fikr-mulohazalarini hisobga oladi.

Bilan boshlanadi "Barselona" - asoslangan protsessorlar, AMD tanishtirdi SSE4a 4 SSE4 ko'rsatmasi va 4 ta yangi SSE ko'rsatmasi bo'lgan ko'rsatmalar to'plami. Ushbu ko'rsatmalar Intelning SSE4.1 va AMD protsessorlarini qo'llab-quvvatlaydigan protsessorlarida mavjud emas, faqat Intelning SSE4.1 va SSE4.2 (to'liq SSE4 ko'rsatmalar to'plami) Buldozer - asoslangan valyuta protsessorlari. SSE4a bilan noto'g'ri sozlangan SSE xususiyati ham kiritildi, bu hizalanmagan yuklash bo'yicha ko'rsatmalar hizalanmış manzillardagi hizalanmış versiyalar kabi tezkor bo'lishini anglatadi. Bu, shuningdek, xotiraga kiruvchi yuklamaydigan SSE operatsiyalarida hizalanishni tekshirishni o'chirishga imkon berdi.[4] Keyinchalik Intel Nehalem protsessorlarida hizalanmagan SSE-ga o'xshash tezlikni takomillashtirdi, ammo yuklanmagan SSE ko'rsatmalariga mos kelmagan kirishni joriy qilmadi AVX.[5]

Ismning chalkashligi

Hozir nima sifatida tanilgan SSSE3 (Qo'shimcha oqim) SIMD 3) kengaytmalari, ichida kiritilgan Intel Core 2 protsessor liniyasi, Intel SSSE3 monikeri ishlab chiqmaguncha, ba'zi ommaviy axborot vositalari tomonidan SSE4 deb nomlangan. Ichki "Merom New Instructions" deb nomlangan Intel dastlab ularga maxsus nom berishni rejalashtirmagan, bu ba'zi jurnalistlar tomonidan tanqid qilingan.[6] Intel oxir-oqibat chalkashliklarni bartaraf etdi va SSE4 nomini keyingi ko'rsatmalar to'plamini kengaytirish uchun saqlab qo'ydi.[7]

Intel marketing atamasidan foydalanmoqda HD kuchaytirish SSE4-ga murojaat qilish.[8]

Yangi ko'rsatmalar

SSE4 ning avvalgi barcha takrorlanishlaridan farqli o'laroq, SSE4 multimedia dasturlariga xos bo'lmagan operatsiyalarni bajaradigan ko'rsatmalarni o'z ichiga oladi. Unda harakat doimiy maydon va XMM0ni yopiq uchinchi operand sifatida qabul qiladigan ko'rsatmalar to'plami bilan belgilanadigan bir qator ko'rsatmalar mavjud.

Ushbu ko'rsatmalarning bir nechtasi Penryn-dagi bir tsiklli aralashma dvigateli tomonidan yoqilgan. (Aralashtirish operatsiyalari registr ichidagi baytlarni qayta tartiblash.)

SSE4.1

Ushbu ko'rsatmalar bilan tanishtirildi Penryn mikro arxitekturasi, Intelning 45 nm qisqarishi Asosiy mikroarxitektura. Qo'llab-quvvatlash CPUID.01H: ECX.SSE41 [Bit 19] bayrog'i orqali ko'rsatiladi.

Yo'riqnomaTavsif
MPSADBW
Mutlaq farqlarning sakkizta ofset yig'indisini hisoblang, bir vaqtning o'zida to'rttasi (ya'ni | x0−y0| + | x1−y1| + | x2−y2| + | x3−y3|, | x0−y1| + | x1−y2| + | x2−y3| + | x3−y4|, ..., | x0−y7| + | x1−y8| + | x2−y9| + | x3−y10|); bu operatsiya ba'zilar uchun muhimdir HD kodeklar va 8 × 8 blokli farqni etti tsikldan kamroq vaqt ichida hisoblash imkonini beradi.[9] Uch bitli tezkor operandning biti y bo'ladimi-yo'qligini bildiradi0 .. y10 yoki y4 .. y14 maqsad operandidan foydalanish kerak, qolgan ikkitasi x0..x3, x4..x7, x8..x11 yoki x12..x15 manbadan foydalanish kerak.
PHMINPOSUW
Belgilangan joyning pastki imzosiz 16-bitli so'zini manbadagi eng kichik imzosiz 16-bitli so'zga, keyingisi esa pastdan manba tarkibidagi ushbu so'zning indeksiga o'rnatadi.
PMULDQ
To'rtta qadoqlangan ikkitadan ikkitadan ikkita to'plamga imzolangan ko'paytma, har bir to'plam uchun 1-chi va 3-chi, ikkita 64-bitli natijalarni beradi.
Boshliq
Paketli imzolangan ko'paytirish, to'rtta to'plamli 32-bitli butun sonlar ko'paytirilib, 4 ta 32-bitli natijalarni berishdi.
DPPS, DPPD
Nuqta mahsulot AOS (Array of Structs) ma'lumotlari uchun. Bu kirishdagi yozuvlardan qaysi birini ko'paytirish va to'plashni tanlash uchun to'rtta (yoki DPPD uchun ikkita) bitdan iborat zudlik bilan operandni oladi va 0 yoki nuqta-mahsulotni qo'yish kerakligini tanlash uchun yana to'rtta (yoki DPPD uchun ikkitasini) oladi. mahsulotning tegishli maydoni.
BLENDPS, BLENDPD, BLENDVPS,BLENDVPD, PBLENDVB, PBLENDW
Zudlik bilan operandda bitlarga va (V shaklda) XMM0 registridagi bitlarga asoslangan holda (V bo'lmagan shakl uchun) elementlarni bir joyda boshqasi bilan shartli ravishda nusxalash.
PMINSB, PMAXSB, PMINUW, PMAXUW, PMINUD, PMAXUD, PMINSD, PMAXSD
Turli xil operand turlari uchun minimal / maksimal paketlangan
ROUNDPS, DAVRALAR, ROUNDPD, ROUNDSD
Suzuvchi nuqta registridagi dumaloq qiymatlar, darhol operand tomonidan belgilangan to'rtta yaxlitlash rejimidan birini foydalanib, butun sonlarga
INSERTPS, PINSRB, PINSRD/PINSRQ,EXTRACTPS, PEXTRB, PEXTRD/PEXTRQ
INSERTPS va PINSR ko'rsatmalarida x86 registridan yoki xotira joyidan 8, 16 yoki 32 bit o'qiladi va darhol operand tomonidan berilgan manzil registridagi maydonga qo'shiladi. EXTRACTPS va PEXTR manba registridan maydonni o'qiydi va x86 registriga yoki xotira joyiga qo'shadi. Masalan, PEXTRD eax, [xmm0], 1; EXTRACTPS [addr + 4 * eax], xmm1, 1 xmm1 ning birinchi maydonini xmm0 ning birinchi maydoni bergan manzilda saqlaydi.
PMOVSXBW, PMOVZXBW, PMOVSXBD, PMOVZXBD, PMOVSXBQ, PMOVZXBQ, PMOVSXWD, PMOVZXWD, PMOVSXWQ, PMOVZXWQ, PMOVSXDQ, PMOVZXDQ
Belgilangan / nol kengaytmasi kengroq turlarga qadoqlangan
PTEST
Bu TEST ko'rsatmasiga o'xshaydi, chunki u Z bayrog'i uning operandalari orasidagi AND natijasiga: ZF o'rnatiladi, agar DEST AND SRC 0 ga teng bo'lsa, qo'shimcha ravishda (NOT DEST) AND SRC nolga teng bo'lsa, u C bayrog'ini o'rnatadi.

Agar SRC tomonidan maskalangan bitlarning hech biri o'rnatilmagan bo'lsa, bu Z bayrog'ini o'rnatishga teng, va agar SRC tomonidan maskalangan barcha bitlar o'rnatilgan bo'lsa.

PCMPEQQ
Quadword (64 bit) tenglikni taqqoslaydi
PACKUSDW
Imzolangan DWORDlarni to'yingan holda imzosiz so'zlarga aylantiring.
MOVNTDQA
Yozishni birlashtirgan xotira maydonidan SSE registriga samarali o'qish; bu xotira avtobusiga biriktirilgan tashqi qurilmalardan natijalarni olish uchun foydalidir.

SSE4.2

SSE4.2 STTNI-ni qo'shdi (String va Text New Instructions),[10] bir vaqtning o'zida 16 baytlik ikkita operanda belgilarni qidirish va taqqoslashni amalga oshiradigan bir nechta yangi ko'rsatmalar. Ular (boshqa narsalar qatori) tahlilni tezlashtirish uchun ishlab chiqilgan XML hujjatlar.[11] Bundan tashqari, hisoblash uchun CRC32 ko'rsatmasi qo'shildi ishdan bo'shatishni tekshirish ma'lum ma'lumotlarni uzatish protokollarida ishlatilgandek. Ushbu ko'rsatmalar birinchi bo'lib amalga oshirildi Nehalem asoslangan Intel Core i7 mahsulot liniyasi va SSE4 ko'rsatmalar to'plamini to'ldiring. Qo'llab-quvvatlash CPUID.01H: ECX.SSE42 [Bit 20] bayrog'i orqali ko'rsatiladi.

Yo'riqnomaTavsif
CRC32
Yig'ing CRC32 0x11EDC6F41 polinomidan foydalangan holda C qiymati (yoki yuqori tartibli bitsiz, 0x1EDC6F41).[12][13]
PCMPESTRI
Paketlangan aniq uzunlikdagi satrlarni taqqoslash, qaytish indeksi
PCMPESTRM
Paketlangan aniq uzunlikdagi satrlarni taqqoslash, qaytarish maskasi
PCMPISTRI
Paket bilan taqqoslaganda yopiq uzunlik satrlari, qaytish indeksi
PCMPISTRM
Paket bilan taqqoslaganda yopiq uzunlikdagi satrlar, qaytariladigan niqob
PCMPGTQ
Paketlangan imzolangan 64-bitli ma'lumotlarni Greater Than uchun solishtiring

POPCNT va LZCNT

Ushbu ko'rsatmalar SSE registrlari o'rniga butun sonda ishlaydi, chunki ular SIMD yo'riqnomalari emas, balki bir vaqtning o'zida paydo bo'ladi va garchi AMD tomonidan SSE4a buyruqlar to'plami bilan kiritilgan bo'lsa-da, qo'llab-quvvatlashni ko'rsatish uchun ular o'zlarining maxsus CPUID bitlari bilan alohida kengaytmalar sifatida hisoblanadi. Intel POPCNT dasturini Nehalem bilan boshlangan mikroarxitektura va LZCNT Xasuell mikroarxitektura. AMD ikkalasini ham Barselona mikroarxitekturasi.

AMD ushbu ko'rsatmani chaqiradi Kengaytirilgan bit manipulyatsiyasi (ABM).

Yo'riqnomaTavsif
POPCNT
Aholini hisoblash (1 ga o'rnatilgan bitlar sonini hisoblash). Qo'llab-quvvatlash CPUID.01H: ECX.POPCNT [Bit 23] bayrog'i orqali ko'rsatiladi.[14]
LZCNT
Nolinchi hisob. Qo'llab-quvvatlash CPUID.80000001H: ECX.ABM [Bit 5] bayrog'i orqali ko'rsatiladi.[15]

Kodlash lzcnt shunga o'xshash bsr (bit skanerlash teskari), agar shunday bo'lsa lzcnt protsessor uni qo'llab-quvvatlamaydigan protsessorda, masalan, Xesvelldan oldingi Intel protsessorida bajariladi bsr ning natijalari turlicha bo'lishiga qaramay yaroqsiz ko'rsatma xatosini ko'tarish o'rniga operatsiya lzcnt va bsr.

Keyingi nollarni. Yordamida hisoblash mumkin bsf (bit skaneri oldinga) yoki tzcnt ko'rsatmalar.

SSE4a

SSE4a ko'rsatmalar guruhi AMD-larda joriy qilingan Barselona mikroarxitekturasi. Ushbu ko'rsatmalar Intel protsessorlarida mavjud emas. Qo'llab-quvvatlash CPUID.80000001H: ECX.SSE4A [Bit 6] bayrog'i orqali ko'rsatiladi.[15]

Yo'riqnomaTavsif
EXTRQ/INSERTQ
Kombinatsiyalangan niqobni almashtirish bo'yicha ko'rsatmalar.[16]
MOVNTSD/MOVNTSS
Skaler oqim do'konining ko'rsatmalari.[17]

CPUlarni qo'llab-quvvatlash

  • Intel
    • Silvermont protsessorlar (SSE4.1, SSE4.2 va POPCNT qo'llab-quvvatlanadi)
    • Goldmont protsessorlar (SSE4.1, SSE4.2 va POPCNT qo'llab-quvvatlanadi)
    • Goldmont Plus protsessorlar (SSE4.1, SSE4.2 va POPCNT qo'llab-quvvatlanadi)
    • Tremont protsessorlar (SSE4.1, SSE4.2 va POPCNT qo'llab-quvvatlanadi)
    • Penryn protsessorlar (SSE4.1 qo'llab-quvvatlanadi, bundan mustasno Pentium Dual-Core va Celeron )
    • Nehalem protsessorlar va G'arbiy protsessorlar (SSE4.1, SSE4.2 va POPCNT qo'llab-quvvatlanadi, bundan mustasno Pentium va Celeron )
    • Qumli ko'prik protsessorlari va yangilari (SSE4.1, SSE4.2 va POPCNT qo'llab-quvvatlanadi, shu jumladan Pentium va Celeron )
    • Xasuell protsessorlar va yangilari (SSE4.1, SSE4.2, POPCNT va LZCNT qo'llab-quvvatlanadi)
  • AMD
  • VIA
    • Nano 3000, X2, QuadCore protsessorlari (SSE4.1 qo'llab-quvvatlanadi)
    • Nano QuadCore C4000 seriyali protsessorlar (SSE4.1, SSE4.2 qo'llab-quvvatlanadi)
    • Adan X4 protsessorlari (SSE4.1, SSE4.2 qo'llab-quvvatlanadi)
  • Zhaoksin
    • ZX-C protsessorlari va yangilari (SSE4.1, SSE4.2 qo'llab-quvvatlanadi)

Adabiyotlar

  1. ^ Intel Streaming SIMD Extensions 4 (SSE4) Instruction Set Innovation, Intel.
  2. ^ Intel SSE4 uchun 45nm keyingi avlod Intel Core Microarchitecture uchun sozlash, Intel.
  3. ^ Intel SSE4 dasturlash ma'lumotnomasi
  4. ^ ""Barcelona "Protsessor xususiyati: SSE noto'g'ri sozlangan kirish". AMD. Arxivlandi asl nusxasi 2016 yil 9-avgustda. Olingan 3 mart, 2015.
  5. ^ "Intel Nehalem Microarch Architecture ichida". Olingan 3 mart, 2015.
  6. ^ "Konro" bilan tajribam, DailyTech
  7. ^ Dunyodagi eng mashhur protsessor me'morchiligini kengaytirish Arxivlandi 2011 yil 24-noyabr, soat Orqaga qaytish mashinasi, Intel
  8. ^ "Intel - Data Center Solutions, IOT va PC Innovation". Intel.
  9. ^ Intel Streaming SIMD kengaytmalari 4 (Intel SSE4) bilan harakatni baholash, Intel.
  10. ^ "Intel® Streaming SIMD Extensions 4 (Intel® SSE4) bilan sxemani tasdiqlash".
  11. ^ "Intel® Streaming SIMD Extensions 4 (Intel® SSE4) bilan XML ajralmaslikni tezlashtiruvchisi".
  12. ^ Intel SSE4 dasturlash ma'lumotnomasi p. 61. Shuningdek qarang RFC 3385 CRC32C polinomini muhokama qilish uchun.
  13. ^ Nehalem CRC32 yo'riqnomasidan foydalangan holda tezkor, parallel ravishda CRC hisoblash - Doktor Dobbs, 2011 yil 12 aprel
  14. ^ Intel® 64 va IA-32 Architectures Software Developer qo'llanmasi, 2B jild: ko'rsatmalar to'plami, N – Z.
  15. ^ a b AMD CPUID spetsifikatsiyasi
  16. ^ Rahul Chaturvedi (2007 yil 17 sentyabr). ""Barcelona "Protsessor xususiyati: SSE4a ko'rsatmalar to'plami". Arxivlandi asl nusxasi 2013 yil 25 oktyabrda.
  17. ^ Rahul Chaturvedi (2007 yil 2 oktyabr). ""Barcelona "Protsessor xususiyati: SSE4a, 2 qism". Arxivlandi asl nusxasi 2013 yil 25 oktyabrda.
  18. ^ "AMD FX-Series FX-6300 - FD6300WMW6KHK / FD6300WMHKBOX".

Tashqi havolalar