Aeg-ajalt teatatakse uutest andmetöötlustehnoloogiatest, millel on "riistvarakiirendus", kuid seda terminit selgitatakse nendes teadaannetes harva. Õnneks on seda tegelikult suhteliselt lihtne mõista. Suurem osa arvutis toimuvast töötlemisest toimub tarkvaras, mis töötab üldotstarbelises CPU-s. Siiski on võimalik luua eraldi protsessor, mis on spetsiaalselt loodud väikese hulga või isegi ühe ülesande täitmiseks. Sellist eraldi protsessori kasutamist nimetatakse riistvaraliseks kiirenduseks.
Riistvarakiirenduse eelised ja puudused
Riistvarakiirendusel on kaks peamist jõudluse eelist. Esiteks on teatud tüüpi loogika täitmiseks loodud protsessorid ülesande täitmisel kiiremad ja tõhusamad kui üldotstarbelised protsessorid. Teiseks on selle töötlemiskoormuse mahalaadimisel põhiprotsessoril rohkem töötlemisvõimsust, mida saab pühendada muudele ülesannetele. Muud eelised hõlmavad suurenenud paralleelsust, väiksemat energiatarbimist ja suuremat tõhusust.
Spetsiaalsete eraldi protsessorite kasutamine riistvaralise kiirendamise jaoks tähendab uute funktsioonide lisamist või isegi lihtsalt vigade lappimine võib olla keeruline, kui mitte võimatu mõnel juhul ilma viga asendamata riistvara. Samuti on uue riistvara arendamine oluliselt raskem ja kulukam kui tarkvara arendamine.
Riistvaralise kiirenduse tüübid
Praegu on riistvarakiirendusi kolme tüüpi: spetsiaalsed protsessorid, FPGA-d ja ASIC-id. A spetsiaalne protsessor on eraldi protsessor, mis kasutab soovitud tüübi või tüüpide jaoks optimeeritud riistvara loogika. Spetsiaalse protsessori populaarne näide on GPU. Kaasaegne GPU sisaldab protsessorite komplekti, mis on loodud teatud toimingute jaoks, nagu varjutamine ja kiirte jälgimine.
Field Programmable Gate Array ehk FPGA on protsessor, mis on loodud nii, et klient saaks seda pärast tootmist konfigureerida. FPGA-d saab programmeerida nii, et see sobiks erinevate loogikafunktsioonide jaoks, olenevalt ülesandest, mille jaoks see on loodud. Kuna FPGA-d on ümber programmeeritavad, on need populaarsed ASIC-protsessorite arendamiseks.
ASIC-id või rakendusespetsiifilised integraallülitused on protsessorid, mis on optimeeritud spetsiaalselt ühe ülesande täitmiseks. ASIC-ide puhul pole protsessori eesmärk kunagi kasutada midagi muud kui täpselt see, milleks see on loodud. Tänu sellisele optimeerimise sügavusele on ASIC-id oma ülesannete täitmisel väga tõhusad.