Mis on otsejuurdepääs mälule?

Otsejuurdepääs mälule, mida mõnikord nimetatakse ka DMA-ks, on meetod andmete edastamiseks muutmälust arvuti teise osasse ilma keskseadet hõivamata. See võimalus on sisse ehitatud enamikesse kaasaegsetesse arvutisüsteemidesse. See võimaldab arvutil täita mitut ülesannet korraga, muutes arvuti lõpuks kiiremaks.

Nii nagu väikeettevõtte omanik tegeleb kõigi tema kontorisse sisenevate või sealt väljuvate aruannete ja teabega, peab arvuti keskseade töötlema kogu arvuti sisendit või väljundit. Enne otsejuurdepääsu mälule haaras andmete alla- või üleslaadimine kogu keskprotsessori tähelepanu. See sai korraga teha ainult ühte ülesannet.

Arvuti, millel on otsejuurdepääs mälule, on nagu väikeettevõtte omanik, kellel on paar assistenti. Selle asemel, et kogu teabega otse tegeleda, saab keskseade delegeerida ülesande otsemälu juurdepääsu kontrollerile. See on emaplaadile sisseehitatud seade, mis jälgib otsemälu juurdepääsu toiminguid. Seejärel võib keskseade üles- või allalaadimise ajal muid toiminguid täita. Kui delegeeritud ülesanne on lõpetatud, teatab DMA-kontroller sellest keskseadmele.

Igal arvuti pordil on vähemalt üks otsemälu juurdepääsukanal, mille saab määrata selle pordi kaudu ühendatud seadmetele. Korralikuks töötamiseks tuleb igale seadmele määrata erinev kanal. Enamik kaarte, mida saab arvutisse installida, nagu heli-, võrgu- või videokaardid, saavad oma ülesannete täitmiseks kasutada otsejuurdepääsu mälule.

Mitmetuumalised protsessorid on võimelised kasutama ka otsejuurdepääsu mälule. Tavaliselt on neil teatud tüüpi ajutine mälu, mida nimetatakse kohalikuks või märkmikumäluks. Kui toiming, mille kallal nad töötavad, on lõpetatud, saavad nad andmed otsejuurdepääsu mälukanali abil kohalikust mälust põhimällu üle kanda.

DMA-st sõltumise puuduseks on see, et see võib põhjustada nn vahemälu sidususe kadumise. Põhimõtteliselt tähendab see, et andmed liiguvad kogu aeg ja neid võidakse salvestada mitmesse ajutisse kohta. Selle probleemiks on see, et kui arvutil palutakse juurdepääsu teabele, ei pruugi see juurdepääsu kõige värskemale teabele. Arvutitootjad saavad sellega toime tulla spetsiaalse riistvara abil või operatsioonisüsteemi programmeerimisega, et vältida vahemälu sidususe kadumist.