Кіріспе
музыкалық ноталар
Тіркеуіштегі SIMD (SWAR), сонымен қатар "жинақталған SIMD" деп те аталады, – процессор тіркеуішіндегі деректерге қатар операцияларды орындау тәсілі. SIMD – бұл "бір команда, көп дерек" деген сөз. Флинннің 1972 жылғы таксономиясы SWAR-ды "күтіп тұру тізбегімен өңдеу" деп санайды. Көптеген қазіргі заманғы мақсаттық компьютер процессорларында SIMD үшін белгілі бір мүмкіндіктер бар, олар тіркеуіштер тобы және оларды пайдалануға арналған командалар түрінде келеді. SWAR SIMD операцияларында жақсырақ жұмыс істеу үшін жасалған арнайы өңдеу құрылғыларын пайдаланудың орнына, осы тіркеуіштер мен командаларды пайдалануға қатысты. Бұл сонымен қатар, әртүрлі жаңа бағдарламалық тәсілдер арқылы, бастапқыда олар үшін арналмаған жалпы мақсаттағы тіркеуіштер мен командаларды SIMD үшін пайдалануды да білдіреді.
SIMD within a register (SWAR), also known by the name "packed SIMD" is a technique for performing parallel operations on data contained in a processor register. SIMD stands for single instruction, multiple data. Flynn's 1972 taxonomy categorises SWAR as "pipelined processing". Many modern general purpose computer processors have some provisions for SIMD, in the form of a group of registers and instructions to make use of them. SWAR refers to the use of those registers and instructions, as opposed to using specialized processing engines designed to be better at SIMD operations. It also refers to the use of SIMD with general purpose registers and instructions that were not meant to do it at the time, by way of various novel software tricks.
SWAR архитектурасы
SWAR архитектурасы – тіркелімнің тәуелсіз кіші сөздері немесе өрістерінде сақталған деректерде параллель операцияларды орындауға арналған нұсқауларды қамтитын архитектура. SWAR-ға қабілетті архитектура – мұндай арнайы нұсқаулар болмаса да, осы өрістердегі деректерді тәуелсіз түрде өңдеуге жеткілікті нұсқаулар жиынтығы бар архитектура. SWAR архитектурасының ерте мысалы – MMX кеңейтімдерін жүзеге асырған Intel Pentium MMX. Intel Pentium керісінше, мұндай нұсқауларды қамтымады, бірақ сақтықпен қолмен кодтау немесе компилятор техникаларын пайдаланып SWAR архитектурасы ретінде жұмыс істей алды. SWAR архитектураларының алғашқы мысалдарына DEC Alpha MVI (Motion Video Instructions), Hewlett Packard-тың PA RISC MAX, Silicon Graphics Incorporated-тың MIPS MDMX және Sun-ның SPARC V9 VIS кіреді. MMX сияқты, SWAR нұсқаулар жиынтығының көпшілігі бейне кодтауды жылдамдатуға арналған. 1975 жылы. 1996 жылы Intel-дің MMX мультимедиялық нұсқаулар жиынтығының кеңейтілуімен SIMD параллель өңдеу мүмкіндіктеріне ие үстел процессорлары кеңінен таралды. Бастапқыда бұл нұсқауларды тек қолмен жазылған құрастыру кодын пайдаланып қолдануға болады. 1996 жылдың күзінде профессор Хэнк Диц Пердью университетінің Электр және компьютерлік инженерия мектебінде Компилятор құрастыру курсын оқытты. Курс барысында ол студенттерге MMX-ке бағытталған қарапайым компилятор құрастыруға тапсырма берді. Кіріс тілі MasPar-дың MPL тілінің NEMPL (Not Exactly MPL) деп аталатын кіші жиынтығы болды. Семестр барысында курстың оқытушы көмекшісі Рэндалл (Рэнди) Фишерге MMX-те бірнеше мәселе бар екендігі және бұл NEMPL компиляторының артқы бөлігін құруды қиындататыны анық болды. Мысалы, MMX 16 биттік деректерді көбейтуге арналған нұсқауға ие, бірақ 8 биттік деректерді көбейтуге арналған нұсқау жоқ. NEMPL тілі бұл мәселені ескермеді, бағдарламашыға 8 биттік көбейтуді қажет ететін бағдарламалар жазуға мүмкіндік берді. Intel-дің x86 архитектурасы SIMD-ге ұқсас параллель нұсқауларды қамтитын жалғыз архитектура емес еді. Sun-ның VIS, SGI-дің MDMX және басқа мультимедиялық нұсқаулар жиынтығы басқа өндірушілердің жаңа медиа қолданбаларын қолдау үшін қолданыстағы нұсқаулар жиынтығы архитектурасына қосылды. Бұл кеңейтімдер деректердің дәлдігі және қолдау көрсетілетін нұсқаулар түрлері бойынша маңызды айырмашылықтарға ие болды. Диц пен Фишер мақсатты архитектураның ерекшеліктерін білмей, модельге бағытталған бағдарламалау моделін жасау идеясын әзірлеуді бастады. Бұл модель Фишердің диссертациясының негізіне айналды. "SWAR" аббревиатурасын Диц пен Фишер бір күні Хэнктың Пурдью университетінің MSEE ғимаратындағы кеңсесінде ойлап тапты. Бұл параллель өңдеудің осы түріне, осы типтегі өңдеуді табиғи түрде орындауға арналған архитектураларға және Фишердің диссертациясы болып табылатын жалпы мақсаттағы бағдарламалау моделіне қатысты. Осы әртүрлі архитектуралар үшін компиляциялау мәселесі LCPC98 конференциясында ұсынылған мақалада талқыланды.