SIMD: Difference between revisions

From ICO wiki
Jump to navigationJump to search
Tzeiger (talk | contribs)
Tzeiger (talk | contribs)
 
(33 intermediate revisions by the same user not shown)
Line 1: Line 1:
Autor:
Autor: Taavi Zeiger A21




== Sissejuhatus ==
== Sissejuhatus ==
SIMD (Single Instruction Multiple Data-stream Architecture) – ühe käsuvoo ja mitme andmevooga arvutiarhitektuur [http://www.keeleveeb.ee]. Tegemist on arhitektuuriga kus mitu sama tehet sooritatakse üheaegselt. 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#cite_note-0]. Kuigi enamik tänapäeva protsessoritest toetab SIMD arhitektuuri, ei ole tegemist ainult nimetatud arhitektuuril põhinevate protsessoritega.
 
[[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.


== Eelised ==
== 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 [http://www.tech-faq.com/simd.html]. Seega on liikumine ekraanil mängija jaoks sujuvam.
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 ==
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 ==
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.
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 [http://en.wikipedia.org/wiki/Geometric-Arithmetic_Parallel_Processor GAPP (Geometric-Arithmetic Parallel Processor)] mida kasutatakse reaalaja videotöötluses nagu NTSC konverteerimisel PAL'i ja vastupidi [http://en.wikipedia.org/wiki/SIMD]. Näiteks toetavad SIMD arhitektuuri Intel'i MMX ja iwMMXt, SSE, SSE2, SSE3 ja SSSE3, AMD 3DNow!, Sun'i MAJC, ARM'i NEON protsessorid [http://en.wikipedia.org/wiki/SIMD].


== Kasutatud kirjandus ==
== Kasutatud kirjandus ==
#[http://www.keeleveeb.ee http://www.keeleveeb.ee - Arvutikasutaja sõnastik V. Hanson, A. Tavast]
#[http://www.keeleveeb.ee http://www.keeleveeb.ee - Arvutikasutaja sõnastik V. Hanson, A. Tavast]
#[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

Tavaline protsessor [1]
SIMD protsessor [2]

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].

Kasutatud kirjandus

  1. http://www.keeleveeb.ee - Arvutikasutaja sõnastik V. Hanson, A. Tavast
  2. http://en.wikipedia.org/wiki/SIMD
  3. http://www.tech-faq.com/simd.html
  4. http://en.wikipedia.org/wiki/File:Non-SIMD_cpu_diagram1.svg
  5. http://en.wikipedia.org/wiki/File:SIMD_cpu_diagram1.svg