Кіріспе
Компьютерлік чиптердің нұсқаулар жиынтығының кеңейтілуі (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 нұсқауларын толық қолдады.
In computing, Streaming SIMD Extensions (SSE) is a single instruction, multiple data (SIMD) instruction set extension to the x86 architecture, designed by Intel and introduced in 1999 in their Pentium III series of central processing units (CPUs) shortly after the appearance of Advanced Micro Devices (AMD's) 3DNow!. SSE contains 70 new instructions (65 unique mnemonics using 70 encodings), most of which work on single precision floating point data. SIMD instructions can greatly increase performance when exactly the same operations are to be performed on multiple data objects. Typical applications are digital signal processing and graphics processing. Intel's first IA 32 SIMD effort was the MMX instruction set. MMX had two main problems: it re used existing x87 floating point registers making the CPUs unable to work on both floating point and SIMD data at the same time, and it only worked on integers. SSE floating point instructions operate on a new independent register set, the XMM registers, and adds a few integer instructions that work on MMX registers. SSE was subsequently expanded by Intel to SSE2, SSE3, SSSE3 and SSE4. Because it supports floating point math, it had wider applications than MMX and became more popular. The addition of integer support in SSE2 made MMX largely redundant, though further performance increases can be attained in some situations by using MMX in parallel with SSE operations. SSE was originally called Katmai New Instructions (KNI), Katmai being the code name for the first Pentium III core revision. During the Katmai project Intel sought to distinguish it from their earlier product line, particularly their flagship Pentium II. It was later renamed Internet Streaming SIMD Extensions (ISSE and known as several variants and combinations of SSE and MMX, shortly after with the release of the original Athlon in August 1999, see 3DNow! extensions. AMD eventually added full support for SSE instructions, starting with its Athlon XP and Duron (Morgan core) processors.
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 биттік кеңейтімдері.