Videomälu

Videomälu ehk pildimälu ehk VRAM (inglise keele sõnadest video random-access memory) on puhvermälu, mis hoiab pildi kõigi pikselite väärtusi. Videomälu kasutavad kõige sagedamini videokaardid, et salvestada iga pikseli väärtust kuvataval pildil, mida videokaart renderdab. Videomälu eelise teiste mälutüüpide ees annab selle kahepordine omadus. Nimelt saab kahepordieslt mälult samaaegselt andmeid lugeda kui ka sellele kirjutada. Videomälu esineb vaid laienduskaartide näol, see tähendab et integreeritud graafikatehnoloogias ehk CPU-sisestel graafikaprotsessorites eraldi videomälu ei ole. Integreeritud graafika kasutab seadme operatiivmälu. Videomälu on oluliselt kiirema andmeedastusega kui operatiivmälu. Videomälu leiutasid Frederick Dill, Daniel Ling and Richard Matick Thomas J. Watsoni uurimiskeskuses aastal 1980. Esimene kommertsarvuti, mis rakendas videomälu tehnoloogiat, oli 1986-ndal aastal avaldatud IBM RT PC. See oli suur edasiminek arvutusgraafika tehnoloogias ning lõi aluse tänapäevastele mäluhaldustehnoloogiatele nagu GDDR ja HBM. SGRAM (Synchronous Graphics RAM) - Võrdlemisi madala hinnaga ning seadme sisetaktiga kooskõlas. See lubab andmeid muuta ühe tsükli jooksul selle asemel, et teha mitut lugemis- või kirjutamistsükleid. RDRAM (Rambus Dynamic RAM) - Sisaldab Rambus siini, mis kiirendab andmevahetust VRAM-i ja kaadripuhveri vahel. Sobib eriti hästi voogedastuseks. WRAM (Window RAM) - Kõrge jõudlusega VRAM, millel on ligi 25% suurem ribalaius kui standardsel VRAM-il. Seda kasutatakse kõrge lahutusega kaadriteks. MDRAM (Multibank Dynamic RAM) - Arendas välja MySos . 32-KB suurusteks osadeks jaotatud. Igat osa saab eraldi adresseerida. See teeb andmevahetuse kiiremaks ning parendab jõudlust. Sarnaselt operatiivmälule koosneb videomälu mälurakkudest, millest igaüks hoivad endas ühte bitti infot. Kui mälurakule rakendatakse kõrge pinge, loetakse mäluraku väärtust üheks ning pinge puudumisel loetakse see nulliks. Mälurakud on paigaldatud ridadesse ja veergudesse, luues tabelilaadse moodustise. Mälurakkude arv sõltub kiibi tootja ridade ja veergude arvust, kuid üldiselt ulatub see arv mitme miljonini Nt Samsungi KM428C256 videomälu kiibil on 512 x 4096 ehk 2097152 mälurakku. Iga mälurakul on enda aadress, mille abil saab sealt lugeda või sinna kirjutada. See, mitmest bitist koosneb adresseerimisarv, sõltub mälurakkude arvust. Aadressi bitijada pikkust saab tuletada võttes alusega kaks logaritmi selle mälurakkude arvust. Eelnevalt mainitud videomälu kiibil on sellisel juhul tarvis 21-biti pikkust aadressi, et oleks võimalik iga mälurakuga suhelda. aadressi pikkus = log 2 ⁡ mälurakkude arv {\displaystyle {\text{aadressi pikkus}}=\log _{2}{\text{mälurakkude arv}}} Et GPU suudaks luua valminud kaadri, küsib see videomälult lugemisoperatsiooniga selleks andmeid. Käsk lugeda videomälult jõuab kontrolleriteni. Neid on kaks: üks lugemisoperatsioonide ning teine kirjutamisoperatsioonide jaoks. Kahe pordi tõttu saavad need operatsioonid paralleelselt toimida ning võimaldab hea kaadrisagedusega piltide renderdamise. Aadressi register hoiab operatsiooni vältel algaadressi, millest hakatakse mälurakkudest infot lugema või kirjutama. Aadressi lugerid seejuures suurendavad või vähendavad algaadressit, et minna edasi järgmiste rakkude juurde. Biti maskiregister (Bit mask register) "katab" ebavajalikud bitid, kui on vaja väga konkreetsetesse kohtadesse lugeda või kirjutada. Ridade ja veergude dekoodrid otsivad üles aadressis kirjeldatud mäluraku lugemsieks ja kirjutamiseks. Pingete värskendaja (Sense amp) värskendab regulaarselt mälurakkude pingeid, hoides ühebitiseid rakke kõrgena ja nulliseid madalana. Vastasel juhul võivad ajapikku andmed kaduda. Mälurakke perioodiliselt loetakse üle ning kirjutatakse samad väärtused sisse, et säilitada andmete õigsus. GPU poolt kokku kogutud andmed saadetakse kaadripuhvrisse SAM (Static access memory). Seal vastab iga kuvatav piksel mingile asukohale puhvri sees. Valminud andmed edastatakse kuvarisse, mis interpreteerib need andmed vaatlejale arusaadavaks pildiks. Videomälu üheks oluliseks parameetriks on selle ribalaius. Ribalaius iseloomustab videomälu kiipide andmeedastuskiirust. Mida suurem ribalaius on videomälul, seda parem. Ribalaius on oluline parameeter, sest võimas GPU ei saavuta oma maksimaalse efektiivsuse, kui selle pudelikaelaks on videomälu ribalaius. Ribalaiust iselmooustavad kolm parameetrit: taktsagedus, mälu tüüp ning andmesiini laius. Taktsagedus on mälukiipide enda sisekell. Mälu tüüp määrab, kuidas andmeid edastatakse. Vanemat sorti videomälu kasutas SDR (single data rate) tüüpi mälu, mis edastas ühe takti jooksul ühe korra andmeid. Tänapäevased videomälud kasutavad eri põlvkondi DDR (double data rate) tüüpi mälu, mis suudavad kaks korda andmeid edastada ühe takti jooksul. Andmesiini laius näitab, mitu bitti andmeid saab korraga edastada. Tüüpiliselt on see vahemikus 32 - 256 bitti. Ribalaiust saab arvutada korrutades taktsageduse, mälu tüüpi iseloomustava kordaja (DDR puhul 2, sest edastatakse kaks korda andmeid takti jooksul) ning andmesiini laiuse. ribalaius = taktsagedus × mälu tüüp × andmesiini laius {\displaystyle {\text{ribalaius}}={\text{taktsagedus}}\times {\text{mälu tüüp}}\times {\text{andmesiini laius}}} Nt Geforce RTX 4070 puhul on taktsagedus 1313 MHz, mälutüüp GDDR6X ning mälu laius 192 bitti. Sellise kaardi videomälu ribalaius on 1313 x 2 x 192 = 504,2 GB/s. Andmesiinilt tulevad bitid jaotatakse töötlemiseks võrdselt videomälu moodulite vahel 32-bitisteks osadeks. Sellise seaduspäraga saab arvutada välja videokaardi mälumoodulite arvu. mälumoodulite arv = andmesiini laius ÷ 32 {\displaystyle {\text{mälumoodulite arv}}={\text{andmesiini laius}}\div 32} Geforce RTX 4070 puhul on andmesiini laius 192 bitti. Seega on sellisel videokaardil 192 / 32 = 6 mälumoodulit. Videomängude või muudes arvutigraafika valdkondades on videomälu hulk tähtis tekstuuride renderdamisel. Mida kõrgem on tekstuuride detailsus, seda rohkem videomälu on tarvis, et neid kiiresti kuvada ning heal kaadrisagedusel jooksutada. Tihtipeale ei kuvata tekstuure kõige suurema detailsusega kui need asuvad objektidel, mis on vaatlejast kaugemal. Sellist protsessi kutsutakse MIPmappinguks ja see suurendab graafilise maailma jooksutamise sujuvust. Selle tehnoloogia kasutamiseks on aga tarvis videomälus lisaks kõige kõrgema detailsusega tekstuuride salvestamiseks hoida ka madalama lahutuse ja detailsusega koopiaid samast tekstuurist, mis kokkuvõttes suurendab ka nõutava videomälu kogust. Videomälu kasutab ka kiirtejälitus. Kiirtejälitus simuleerib arvutigraafikas valguse käitumist, selle langemist ja põrkumist eri pindadelt. Sellega kaasneb rohkete primitiivide genereerimine, mida on vaja hoida videomälus. Kõige tüüpilisem probleem videomälu puhul on selle puudujääk. Kui videomälu ei ole piisavalt, peab GPU küsima kaadri kokkupanemsieks vajalikku infot operatiivmälust. Sellepärast on videomälul DRAM pordid, mis toimib tagavara mäluna. Operatiivmälu kasutamine aga võtab palju rohkem aega, sest see on loomult aeglasem - sellel on väiksem ribalaius ning see asub füüsiliselt kaugemal GPU-st. Sellise mälu laenamine põhjustab nt videomängudes madalamat kaadrisagedust ja kaadritõrkeid, mis võivad kesta mälu mõistes väga kaua (millisekundid kuni sekundid) ning on piisav, et vaatleja seda muutust tajuks. Samuti võib tekstuuride renderdamine olla vale või üldsegi puududa. Halvimatel juhtudel võib programm ka kokku joosta. Paljud videomängud pakuvad sätteid, mis vähendavad videomälu vajadust vähendades tektuuride kvaliteeti, nende lahutust, varjude kvaliteeti, peegeldusi, detailsust jne. "[ITS] IT terministandardi sõnastik". www.eki.ee. Vaadatud 23. aprillil 2024. Clarke, Glen E.; Tetz, Edward; Warner, Timothy L. (1. august 2016). CompTIA A+(r) Certification All-in-One For Dummies(r) (inglise). John Wiley & Sons. ISBN 978-1-119-25571-0. Stegner, Ben (14. november 2018). "How to Increase Dedicated Video RAM (VRAM) in Windows 10 and 11". MUO (inglise). Vaadatud 23. aprillil 2024. "VRAM Full Form". GeeksforGeeks (Ameerika inglise). 17. aprill 2020. Vaadatud 23. aprillil 2024. Team, Tekmart Data Center. "VRAM (video RAM); definition, types, usage and its history. – t-Blog" (Ameerika inglise). Vaadatud 23. aprillil 2024. How does Computer Memory Work? 💻🛠, vaadatud 1. mail 2024 "Understanding video RAM memory bandwidth". www.playtool.com. Vaadatud 23. aprillil 2024. TechPowerUp, GPU database. https://www.techpowerup.com/gpu-specs/geforce-rtx-4070.c3924. {{netiviide}}: puuduv või tühi pealkiri: |pealkiri= (juhend) Prasad, Leela (2. juuni 2023). "How Much VRAM do I Need?". ElectronicsHub USA (Ameerika inglise). Vaadatud 27. aprillil 2024. "What Is VRAM? Why Games Are Using it More, and How to Optimize Your PC". PCMAG (inglise). Vaadatud 27. aprillil 2024. VRAM Explained: How It Works & How Much You Need For Gaming, vaadatud 1. mail 2024