Кіріспе

музыкалық ноталар
Тіркеуіштегі SIMD (SWAR), сонымен қатар "жинақталған SIMD" деп те аталады, – процессор тіркеуішіндегі деректерге қатар операцияларды орындау тәсілі. SIMD – бұл "бір команда, көп дерек" деген сөз. Флинннің 1972 жылғы таксономиясы SWAR-ды "күтіп тұру тізбегімен өңдеу" деп санайды. Көптеген қазіргі заманғы мақсаттық компьютер процессорларында SIMD үшін белгілі бір мүмкіндіктер бар, олар тіркеуіштер тобы және оларды пайдалануға арналған командалар түрінде келеді. SWAR SIMD операцияларында жақсырақ жұмыс істеу үшін жасалған арнайы өңдеу құрылғыларын пайдаланудың орнына, осы тіркеуіштер мен командаларды пайдалануға қатысты. Бұл сонымен қатар, әртүрлі жаңа бағдарламалық тәсілдер арқылы, бастапқыда олар үшін арналмаған жалпы мақсаттағы тіркеуіштер мен командаларды SIMD үшін пайдалануды да білдіреді.

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 конференциясында ұсынылған мақалада талқыланды.