SIMD: Difference between revisions
(22 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
Autor: Taavi Zeiger A21 | Autor: Taavi Zeiger A21 | ||
== Sissejuhatus == | == Sissejuhatus == | ||
[[File:non-SIMD cpu diagram1.png|thumb|150px| Tavaline protsessor [http://en.wikipedia.org/wiki/SIMD] ]] | |||
[[File:SIMD cpu diagram1.png|thumb|150px| SIMD protsessor [http://en.wikipedia.org/wiki/SIMD] ]] | |||
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. | ||
== Eelised == | == Eelised == | ||
SIMD peamiseks eeliseks on | SIMD peamiseks eeliseks on suuremahuliste andmete, vektorarvutuste 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 [http://www.tech-faq.com/simd.html]. Seega on liikumine ekraanil mängija jaoks sujuvam. | ||
== Puudused == | == 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. | 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 [http://www.tech-faq.com/simd.html]. Eeltoodu on ka põhjuseks miks ei ole tänapäeva protsessorid puhtalt SIMD tehnoloogial põhinevad. | ||
== Kasutusvaldkond == | == Kasutusvaldkond == | ||
Line 18: | Line 22: | ||
#[http://en.wikipedia.org/wiki/SIMD http://en.wikipedia.org/wiki/SIMD] | #[http://en.wikipedia.org/wiki/SIMD http://en.wikipedia.org/wiki/SIMD] | ||
#[http://www.tech-faq.com/simd.html http://www.tech-faq.com/simd.html] | #[http://www.tech-faq.com/simd.html http://www.tech-faq.com/simd.html] | ||
#[http://en.wikipedia.org/wiki/File:Non-SIMD_cpu_diagram1.svg http://en.wikipedia.org/wiki/File:Non-SIMD_cpu_diagram1.svg] | |||
#[http://en.wikipedia.org/wiki/File:SIMD_cpu_diagram1.svg http://en.wikipedia.org/wiki/File:SIMD_cpu_diagram1.svg] |
Latest revision as of 00:06, 9 January 2012
Autor: Taavi Zeiger A21
Sissejuhatus
SIMD (Single Instruction Multiple Data-stream Architecture) – ühe käsuvoo ja mitme andmevooga arvutiarhitektuur [3]. 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 [4]. 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 [5]. Esmalt võeti SIMD protsessorid kasutusele vektorarvutusi teostavates superarvutites, kuid nende tänapäeva võidukäik sai alguse lauaarvutitest [6]. Kuigi enamik tänapäeva protsessoritest toetab SIMD arhitektuuri, ei ole tegemist ainult nimetatud arhitektuuril põhinevate protsessoritega.
Eelised
SIMD peamiseks eeliseks on suuremahuliste andmete, vektorarvutuste 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 [7]. 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 [8]. 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 [9]. Näiteks toetavad SIMD arhitektuuri Intel'i MMX ja iwMMXt, SSE, SSE2, SSE3 ja SSSE3, AMD 3DNow!, Sun'i MAJC, ARM'i NEON protsessorid [10].