SIMD: Difference between revisions
No edit summary |
|||
Line 4: | Line 4: | ||
== Sissejuhatus == | == Sissejuhatus == | ||
SIMD (Single Instruction Multiple Data-stream Architecture) – ühe käsuvoo ja mitme andmevooga arvutiarhitektuur [http://www.keeleveeb.ee]. Tegemist on arhitektuuriga kus sama tehet sooritatakse korraga suure hulga andmete peal. Tavalise protsessori puhul toimub näiteks nelja arvu korrutamine kolmega järgmiselt: muutmälust loetakse registrisse esimene arv, see arv korrutatakse kolmega, saadud tulemus salvestatakse registrisse ja seejärel registrist muutmällu [http://en.wikipedia.org/wiki/SIMD]. Seda operatsiooni korratakse antud juhul neli korda. SIMD protsessori puhul toimub nelja arvu korrutamine kolmega järgmiselt: muutmälust loetakse registrisse kõik neli arvu, iga arv korrutatakse kolmega, saadud tulemused salvestatakse registrisse ja seejärel registrist muutmällu [http://en.wikipedia.org/wiki/SIMD]. Esmalt võeti SIMD protsessorid kasutusele vektorarvutusi teostavates superarvutites, kuid nende tänapäeva võidukäik sai alguse lauaarvutitest [http://en.wikipedia.org/wiki/SIMD]. Kuigi enamik tänapäeva protsessoritest toetab SIMD arhitektuuri, ei ole tegemist ainult nimetatud arhitektuuril põhinevate protsessoritega. | SIMD (Single Instruction Multiple Data-stream Architecture) – ühe käsuvoo ja mitme andmevooga arvutiarhitektuur [http://www.keeleveeb.ee]. Tegemist on arhitektuuriga kus sama tehet sooritatakse korraga suure hulga andmete peal. Tavalise protsessori puhul toimub näiteks nelja arvu korrutamine kolmega järgmiselt: muutmälust loetakse registrisse esimene arv, see arv korrutatakse kolmega, saadud tulemus salvestatakse registrisse ja seejärel registrist muutmällu [http://en.wikipedia.org/wiki/SIMD]. Seda operatsiooni korratakse antud juhul neli korda. SIMD protsessori puhul toimub nelja arvu korrutamine kolmega järgmiselt: muutmälust loetakse registrisse kõik neli arvu, iga arv korrutatakse kolmega, saadud tulemused salvestatakse registrisse ja seejärel registrist muutmällu [http://en.wikipedia.org/wiki/SIMD]. Esmalt võeti SIMD protsessorid kasutusele vektorarvutusi teostavates superarvutites, kuid nende tänapäeva võidukäik sai alguse lauaarvutitest [http://en.wikipedia.org/wiki/SIMD]. Kuigi enamik tänapäeva protsessoritest toetab SIMD arhitektuuri, ei ole tegemist ainult nimetatud arhitektuuril põhinevate protsessoritega. | ||
[[File:non-SIMD cpu diagram1.svg|right|thumb|280px| Diagram showing non-SIMD cpu. made by Decora (talk) 00:13, 13 October 2011 (UTC) using Ubuntu, Inkscape, and http://freetengwar.sourceforge.net/tengtelc.html Tengwar Telcontar font by Johan Winge, J. Wust, and others at the Free Tengwar Font Project. ]] | |||
[[File:non-SIMD cpu diagram1.svg|right|thumb|280px| Diagram showing non-SIMD cpu. made by Decora (talk) 00:13, 13 October 2011 (UTC) using Ubuntu, Inkscape, and http://freetengwar.sourceforge.net/tengtelc.html Tengwar Telcontar font by Johan Winge, J. Wust, and others at the Free Tengwar Font Project. ]] | |||
== Eelised == | == Eelised == |
Revision as of 23:42, 8 January 2012
Autor: Taavi Zeiger A21
Sissejuhatus
SIMD (Single Instruction Multiple Data-stream Architecture) – ühe käsuvoo ja mitme andmevooga arvutiarhitektuur [1]. Tegemist on arhitektuuriga kus sama tehet sooritatakse korraga suure hulga andmete peal. Tavalise protsessori puhul toimub näiteks nelja arvu korrutamine kolmega järgmiselt: muutmälust loetakse registrisse esimene arv, see arv korrutatakse kolmega, saadud tulemus salvestatakse registrisse ja seejärel registrist muutmällu [2]. Seda operatsiooni korratakse antud juhul neli korda. SIMD protsessori puhul toimub nelja arvu korrutamine kolmega järgmiselt: muutmälust loetakse registrisse kõik neli arvu, iga arv korrutatakse kolmega, saadud tulemused salvestatakse registrisse ja seejärel registrist muutmällu [3]. Esmalt võeti SIMD protsessorid kasutusele vektorarvutusi teostavates superarvutites, kuid nende tänapäeva võidukäik sai alguse lauaarvutitest [4]. Kuigi enamik tänapäeva protsessoritest toetab SIMD arhitektuuri, ei ole tegemist ainult nimetatud arhitektuuril põhinevate protsessoritega.
Eelised
SIMD peamiseks eeliseks on kiirus suuremahuliste andmete kiire töötlus. Näiteks 3D graafika puhul, kui mängija liigub läbi kaadrite, siis peab valgusallikas muutuma. Selleks tuleb iga piksli heleduse väärtust muuta. Antud juhul ei töödelda igat üksikut pikslit eraldi vaid laetakse nii mitme piksli väärtused kui võimalik mälusse ja töödeldakse paralleelselt [5]. Seega on liikumine ekraanil mängija jaoks sujuvam.
Puudused
SIMD tehnoloogiat ei saa rakendada kõikide algoritmide puhul. SIMD tehnoloogia kulutab palju ruumi protsessori kiibil ja kulutab oma tööks arvestatavas koguses energiat. SIMD tehnoloogial põhineva protsessoriga riistvarale tarkvara kirjutamine on võrreldes tavapärase C ja C++ keeles programmeerimisega tunduvalt töömahukam [6]. Eeltoodu on ka põhjuseks miks ei ole tänapäeva protsessorid puhtalt SIMD tehnoloogial põhinevad.
Kasutusvaldkond
SIMD arhitektuuril põhinevaid protsessoreid kasutatakse audio- ja videoandmete töötlemisel, pilditöötluses, 3D graafika esitamisel, krüptograafias ning suuremahuliste teadusarvustuste juures. Tooted kus SIMD protsessoreid kasutatakse on näiteks graafikakaardid, mängukonsoolid, mobiiltelefonid. Kuigi ainult SIMD arhitektuuril põhinevaid protsessoreid leidub harva on üheks näiteks GAPP (Geometric-Arithmetic Parallel Processor) mida kasutatakse reaalaja videotöötluses nagu NTSC konverteerimisel PAL'i ja vastupidi [7]. Näiteks toetavad SIMD arhitektuuri Intel'i MMX ja iwMMXt, SSE, SSE2, SSE3 ja SSSE3, AMD 3DNow!, Sun'i MAJC, ARM'i NEON protsessorid [8].