Кіріспе

Компьютерлік чиптердің нұсқаулар жиынтығының кеңейтілуі (SSE) — Intel компаниясы жасаған және 1999 жылы Pentium III сериялы орталық процессорларында (CPU) Advanced Micro Devices (AMD) 3DNow! пайда болғаннан кейін көп ұзамай енгізілген x86 архитектурасына арналған бір нұсқама, бірнеше дерек (SIMD) нұсқаулар жиынтығының кеңейтілуі. SSE 70 жаңа нұсқауды қамтиды (70 кодтауды қолданатын 65 бірегей мнемоника), олардың көпшілігі бір дәлдікті жылжымалы нүктелік деректермен жұмыс істейді. SIMD нұсқаулары бірнеше дерек объектілерінде бірдей операцияларды орындау кезінде өнімділікті айтарлықтай арттыра алады. Типтік қолданыс салалары — цифрлық сигналдарды өңдеу және графикалық өңдеу. Intel-дің алғашқы IA 32 SIMD әрекеті MMX нұсқаулар жиынтығы болды. MMX-те екі негізгі мәселе болды: ол қолданыстағы x87 жылжымалы нүктелі регистрлерді қайта пайдаланды, бұл процессорларды бір уақытта жылжымалы нүктелі және SIMD деректерімен жұмыс істеуге мүмкіндік бермейтін еді, сондай-ақ ол тек бүтін сандармен жұмыс істеді. SSE жылжымалы нүктелік нұсқаулары жаңа тәуелсіз регистрлер жиынтығында, XMM регистрлерінде жұмыс істейді және MMX регистрлерінде жұмыс істейтін бірнеше бүтін сандық нұсқауларды қосады. SSE кейіннен Intel компаниясы тарапынан SSE2, SSE3, SSSE3 және SSE4 деп кеңейтілді. Ол жылжымалы нүктелік математиканы қолдайтындықтан, MMX-тен гөрі кеңінен қолданылып, танымал болды. SSE2-де бүтін сандарды қолдау мүмкіндігінің қосылуы MMX-ті көбінесе артық етті, бірақ кейбір жағдайларда SSE операцияларымен қатар MMX-ті пайдалану арқылы өнімділікті арттыруға болады. SSE бастапқыда Katmai New Instructions (KNI) деп аталды, Katmai — Pentium III ядросының алғашқы қайта қаралуының кодтық атауы. Katmai жобасы кезінде Intel оны бұрынғы өнімдерінен, әсіресе Pentium II флагманынан ажыратуға тырысты. Кейіннен ол Internet Streaming SIMD Extensions (ISSE) деп аталып, SSE және MMX-тің бірнеше нұсқалары мен комбинациялары ретінде танылды, 1999 жылдың тамызында алғашқы Athlon шығарылғаннан кейін көп ұзамай, 3DNow! кеңейтулеріне қараңыз. AMD ақырында Athlon XP және Duron (Morgan core) процессорларынан бастап SSE нұсқауларын толық қолдады.

SSE нұсқаулары

SSE скалярлық және векторлық жылжымалы нүктелік нұсқауларды енгізді.

Кейінгі нұсқалары

SSE2, Willamette New Instructions (WNI), Pentium 4 процессорымен енгізілген, SSE-ге маңызды жақсарту. SSE2 екі маңызды мүмкіндікті қосады: SSE операцияларының барлық екі есе дәлдігі (64 бит) және 128 биттік XMM регистрлеріндегі MMX бүтін сан операциялары. SSE бастапқы нұсқаулар жиынтығында бүтін сандарға және бүтін сандардан түрлендіру кезінде бүтін сан деректері 64 биттік MMX регистрлеріне орналастырылған. SSE2 бағдарламалаушыға SIMD математикасын кез келген дерек типінде (8 биттік бүтін сандан 64 биттік float-қа дейін) XMM векторлық регистрлік файлымен, ескі MMX немесе FPU регистрлерін пайдалану қажеттілігінсіз орындауға мүмкіндік береді. Ол жалпы қолданылатын дерек типтерін өңдеу үшін ортогональды нұсқаулар жиынтығын ұсынады. SSE3, сондай-ақ Prescott New Instructions (PNI) деп аталады, SSE2-нің жаңартылған нұсқасы болып табылады, DSP-ге бағытталған математикалық нұсқаулар мен процестерді (жіптерді) басқару нұсқауларын қосады. Бұрынғы SSE2 және одан бұрынғы нұсқаларда мүмкін болмаған, бір регистрде сақталған екі санды қосуға немесе көбейтуге де мүмкіндік берді. Intel терминологиясында «горизонтальды» деп аталатын бұл мүмкіндік SSE3 нұсқаулар жиынтығына қосылған маңызды жаңалық болды. AMD-нің 3DNow! кеңейтуі де осы мүмкіндікті іске асыра алады. SSSE3, Merom New Instructions (MNI), SSE3 нұсқасының жаңартылуы болып табылады, сөз ішіндегі байттарды ауыстыру, 16 биттік қатаң нүктелік сандарды дұрыс дөңгелектеумен көбейту және сөз ішіндегі жинақтау нұсқауларын қамтитын 16 жаңа нұсқауды қосады. SSSE3 көбінесе SSE4 деп жаңылысқан, себебі бұл термин Core микроархитектурасын әзірлеу кезінде қолданылған. SSE4, Penryn New Instructions (PNI), тағы бір маңызды жақсарту, нүктелік көбейту нұсқауын, қосымша бүтін сан нұсқауларын, popcnt нұсқауын (Population count: 1-ге тең биттердің санын санау, мысалы, криптографияда кеңінен қолданылады) және тағы да басқаларын қосады. XOP, FMA4 және CVT16 – AMD компаниясы 2007 жылдың тамызында жариялаған және 2009 жылдың мамырында қайта қараған жаңа нұсқалар. Advanced Vector Extensions (AVX), Gesher New Instructions (GNI) – Intel компаниясы ұсынған SSE-нің кеңейтілген нұсқасы, деректер жолы 128 биттен 256 битке дейін кеңейтілген және 3 операндты нұсқауларды (2-ден астам) қамтиды. Intel 2011 жылдың басында AVX қолдауы бар процессорларды шығарды. AVX2 – AVX нұсқаулар жиынтығының кеңейтілген нұсқасы. AVX 512 (3.1 және 3.2) – x86 нұсқаулар жиынтығы архитектурасы үшін 256 биттік Advanced Vector Extensions SIMD нұсқауларының 512 биттік кеңейтімдері.