SIMD

From ICO wiki
Jump to navigationJump to search

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 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 [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 Pilt 1}
  5. Pilt 2