SWAR
SIMD у регистру или SWAR (енгл. SIMD within a register) је техника за обављање паралелних операција над подацима који се налазе у процесорским регистрима. SIMD је скраћеница за "једноструке инструкције, вишеструки подаци" (енгл. single instruction, multiple data).

Већина модерних процесора за рачунаре опште сврхе имају неке одредбе за SIMD, у форми групе регистара и инструкција који ће их искористити. SWAR се односи на коришћење тих регистара и инструкција, супротно од коришћења специјализованих енџина за обраду, који су дизајнирани да би били бољи приликом обраде SIMD операција. Такође се односи на употребу SIMD са регистрима опште намене и инструкција које нису намењене да се извршавају истовремено, путем раличитих новијих софтверских трикова.

SWAR архитектуре 
SWAR архитектура је она која експлицитно укључује инструкције које су намењене за обраду паралелних операција над подацима који су складиштени у независним пољима регистара. SWAR-способна архитектура је она која садржи скуп инструкција који је довољан да дозволи подацима (који су складиштени у овим пољима) да буду третирани независно чак иако архитектура не обухвата инструкције које су експлицитно намењене тој сврси. Рани пример SWAR архитектуре је био Intel Pentium са MMX, који је имплементирао MMX скуп екстензија. Intel Pentium, са друге стране, није обухватио такве инструкције али је могао да се понаша као SWAR архитектура преко па+љиво ручно-кодираних или компајлерских техника.

Ране SWAR архитектуре су обухватале Digital Equipment Corporation-ов Alpha процесор, Hewlett-Packard-ов PA-RISC, Silicon Graphics Incorporated-ов MIPS, и Sun-ов SPARC V9.

Историја SWAR програмског модела 
Увођењем Intel-овог MMX вишемедијског интрукцијског скупа екстензија 1996., десктоп процесори са SIMD паралелном обрадом су постали чешћи. Раније, ове инструкције су могле да се користе само преко ручно писаног асемблерског кода.

У јесен 1996., професор Хенк Диц (Hank Dietz) је био инструктор на курсу Конструкције копајлера за редовне студенде на "Purdue универзитетској школи за електрични и рачунарски инжењеринг". На овом курсу, он је задао серију пројеката у којима су студенти правили једноставне компајлере који су ишли у правцу MMX. Код којим су писали је био подскуп дијалекта MasPar-овог MPL-а, званог NEMPL (енгл. Not Exactly MPL).

За време курса тог семестра, асистенту Рендалу "Рендију" Фишеру (Randall "Randy" Fisher) је постало јасно да постоји број проблема са MMX-ом због којих би било тешко направити бек-енд (енгл. back-end) NEMPL компајлера. На пример, MMX има инструкцију за множење 16-битних података али нема за множење 8-битних података. NEMPL језик није рачунао на овај проблем, што је дозвољавало програмеру да пише програме који захтевају 8-битна множења.

Intel-ова x86 архитектура није била једина архитектура која је обухватила паралелне инструкције попут SIMD. Sun-ов VIS, SGI-ов MDMX и други скупови бишемедијских скупова су додати другим постојећим скуповима инструкција неких произвођача да би подржали такозване апликације "нових медија" (енгл. new media). Ове екстенѕије су имале значајне разлике у прецизности података и типова инструкција које су подржавали.

Диц и Фишер су почели да развијају идеју о добро дефинисаном паралелном моделу програмирања који би дозволио пограмирању да означи модел без знања о спецификацијама циљане архитектуре. Овај модел би постао основа за Фишерову дисертацију. Акроним "SWAR" су осмислили Диц и Фишер једног дана у Хенковој канцеларији у MSEE згради на Purdue универзитету. Односи се на ову форму паралелне обраде, на архитектуре које су дизајниране да изворно брше овакве типове обраде, и на програмски модел опште намене који је Фишерова дисертација.

Проблем компајлирања за ове широко варирајуће архитектуре је био предмет дискусије на папиру који је презентован на LCPC98

Неке апликације које користе SWAR 
SWAR обрада се користила за обраду слика, код криптографских парова, код растер обраде, и комуникације.

Види још 
 The Aggregate - SWAR: SIMD Within A Register 
 SIMD енџини: обрада вектора, процесорки низ, процесор дигиталних сигнала, стрим процесор.
 SWAR на x86 процесорима: MMX, 3DNow!, SSE, SSE2, SSE3

Референце 

Архитектура рачунара
Паралелни рачунарски системи
Класе рачунара
SIMD у регистру или SWAR ( енгл . SIMD within a register ) је техника за обављање паралелних операција над подацима који се налазе у процесорским регистрима . SIMD је скраћеница за " једноструке инструкције , вишеструки подаци " ( енгл. single instruction , multiple data ) . Већина модерних процесора за рачунаре опште сврхе имају неке одредбе за SIMD , у форми групе регистара и инструкција који ће их искористити . SWAR се односи на коришћење тих регистара и инструкција , супротно од коришћења специјализованих енџина за обраду , који су дизајнирани да би били бољи приликом обраде SIMD операција . Такође се односи на употребу SIMD са регистрима опште намене и инструкција које нису намењене да се извршавају истовремено , путем раличитих новијих софтверских трикова . SWAR архитектуре SWAR архитектура је она која експлицитно укључује инструкције које су намењене за обраду паралелних операција над подацима који су складиштени у независним пољима регистара . SWAR-способна архитектура је она која садржи скуп инструкција који је довољан да дозволи подацима ( који су складиштени у овим пољима ) да буду третирани независно чак иако архитектура не обухвата инструкције које су експлицитно намењене тој сврси . Рани пример SWAR архитектуре је био Intel Pentium са MMX , који је имплементирао MMX скуп екстензија . Intel Pentium , са друге стране , није обухватио такве инструкције али је могао да се понаша као SWAR архитектура преко па+љиво ручно-кодираних или компајлерских техника . Ране SWAR архитектуре су обухватале Digital Equipment Corporation-ов Alpha процесор , Hewlett-Packard-ов PA-RISC , Silicon Graphics Incorporated-ов MIPS , и Sun-ов SPARC V9. Историја SWAR програмског модела Увођењем Intel-овог MMX вишемедијског интрукцијског скупа екстензија , десктоп процесори са SIMD паралелном обрадом су постали чешћи . Раније , ове инструкције су могле да се користе само преко ручно писаног асемблерског кода . У јесен , професор Хенк Диц ( Hank Dietz ) је био инструктор на курсу Конструкције копајлера за редовне студенде на " Purdue универзитетској школи за електрични и рачунарски инжењеринг " . На овом курсу , он је задао серију пројеката у којима су студенти правили једноставне компајлере који су ишли у правцу MMX . Код којим су писали је био подскуп дијалекта MasPar-овог MPL-а , званог NEMPL ( енгл . Not Exactly MPL ) . За време курса тог семестра , асистенту Рендалу " Рендију " Фишеру ( Randall " Randy " Fisher ) је постало јасно да постоји број проблема са MMX-ом због којих би било тешко направити бек-енд ( енгл. back-end ) NEMPL компајлера . На пример , MMX има инструкцију за множењебитних података али нема за множењебитних података . NEMPL језик није рачунао на овај проблем , што је дозвољавало програмеру да пише програме који захтевајубитна множења . Intel-ова x86 архитектура није била једина архитектура која је обухватила паралелне инструкције попут SIMD . Sun-ов VIS , SGI-ов MDMX и други скупови бишемедијских скупова су додати другим постојећим скуповима инструкција неких произвођача да би подржали такозване апликације " нових медија " ( енгл. new media ) . Ове екстенѕије су имале значајне разлике у прецизности података и типова инструкција које су подржавали . Диц и Фишер су почели да развијају идеју о добро дефинисаном паралелном моделу програмирања који би дозволио пограмирању да означи модел без знања о спецификацијама циљане архитектуре . Овај модел би постао основа за Фишерову дисертацију . Акроним " SWAR " су осмислили Диц и Фишер једног дана у Хенковој канцеларији у MSEE згради на Purdue универзитету . Односи се на ову форму паралелне обраде , на архитектуре које су дизајниране да изворно брше овакве типове обраде , и на програмски модел опште намене који је Фишерова дисертација . Проблем компајлирања за ове широко варирајуће архитектуре је био предмет дискусије на папиру који је презентован на LCPC98 Неке апликације које користе SWAR SWAR обрада се користила за обраду слика , код криптографских парова , код растер обраде , и комуникације . Види још The Aggregate - SWAR : SIMD Within A Register SIMD енџини : обрада вектора , процесорки низ , процесор дигиталних сигнала , стрим процесор . SWAR на x86 процесорима : MMX,Now ! , SSE , SSE2 , SSE3 Референце Архитектура рачунара Паралелни рачунарски системи Класе рачунара