Mis on vootöötlus?

Vootöötlus on arvutiprogrammeerimise ja arvutitehnika kontseptsioon, mida saab kasutada rakenduste ja riistvarasüsteemide kujundamiseks. Vootöötluse kasutamisel korraldatakse andmed voogudeks, mis suunatakse seejärel voo andmetega manipuleerivatesse sõlmedesse või protsessoritesse, misjärel andmed jätkuvad mööda teed, et teised sõlmed saaksid nendega manipuleerida. Voo lõpus salvestatakse andmed mällu või edastatakse kasutamiseks lõppkasutaja rakendusele. Vootöötlust kasutav süsteem või rakendus töötab kõige tõhusamalt siis, kui vooinformatsiooni genereerib järjepidevalt üks või mitu allikat, muutes selle tõhusaks digitaalse signaalitöötluse (DSP), pildistamise ja graafika või suure ribalaiusega võrguliikluse jaoks. Vootöötluse kõige levinum praktiline rakendus on arvutigraafikakaartide tootmine, mille puhul graafika riistvarasse on sisse ehitatud vooprotsessorid, mis aitavad sooritada sissetulevate graafikaandmetega, näiteks tipumassiividega, mitmeid toiminguid.

Voo töötlemise aluseks on andmete kui voo mõiste. Erinevatest allikatest pärineva teabe ammutamise või katkestusmehhanismi sõnumite pealtkuulamise asemel moodustatakse andmevoog, kui mingi protsess koondab teabe üheks reale, mida nimetatakse vooks. Andmeelemendid võivad erineda, kuid voog koosneb üldiselt sama tüüpi elementide plokkidest, mida saab järjestikku töödelda.

Voo töötlemisel kasutatavad protsessorid või sõlmed aktsepteerivad voogu ja teevad andmetega etteantud toimingu, misjärel saab andmed edasiseks töötlemiseks edasi anda teisele sõlmele. Maksimaalse efektiivsuse tagamiseks on sõlmed ette nähtud väikeste funktsioonidena, mis laaditakse ja täidetakse otse keskseadmesse (CPU), kasutades kiiruse tagamiseks registreid ja otsemälu juurdepääsu (DMA). Kui voos olev teave võib olla eraldiseisev ega sõltu ühe sõlme toimingute tulemusest, saab vooga teha korraga mitu toimingut, pakkudes samal ajal programmi kompilaatorile vihjeid, mis võimaldavad väga tõhusaid optimeerimisi.

Voo töötlemine on üldiselt hea lahendus olukordades, kus rakendus või seade, näiteks kaamera, väline andur või võrguühendus, genereerib ja voogu surub pidevalt andmeid. Paljud graafikakaardid kasutavad vooprotsessoreid, et muuta graafikakonveieri kaudu saabuvad andmed kiiresti renderdatud rasteriseeritud kujutiseks. Teatud graafikakaartidel on kaardi riistvarasse sisse ehitatud mitu protsessorit või sõlme, nii et vootöötlus võib toimuda kiiresti ja mõnikord samaaegselt, nagu sageli on soovitav, kui varjundeid kasutatakse kolmemõõtmelise (3D) graafika jaoks.