Aadressibuss — arvuti mälu aadressimise ja tööpõhimõtte ülevaade

Aadressibuss on arvutibussi arhitektuur ja üks peamisi mehhanisme, mida kasutatakse seadmete ja mälu vaheliste aadresside edastamiseks. Selle ülesanne on võimaldada protsessoril või muul mälujuhtimisseadmel edastada mälukoha või seadme aadressid teistele süsteemi komponentidele. Aadressid esitatakse kahendkujul ja edastatakse spetsiaalsete juhtmete ehk aadressijuhtmete kaudu, et andme- või süsteemibuss saaks pääseda ligi õigele mäluaadressile või seadmele. 

Aadressibuss on füüsiline juhtmestik, mis ühendab protsessorit ja põhimälu ning muid seadmeid. Koosneb tavaliselt kolmest loogilisest grupist: aadressijuhid (mälukohtade identifitseerimiseks), andmesiin (andmete edastamiseks) ja juhtimis- ehk juhtmesooned (sünkroniseerimiseks, lugemis-/kirjutamiskäskude edastamiseks jpm). Aadressibussi laiuse ehk juhtmete arvu määrab, kui palju erinevaid mäluaadresse saab süsteem korraga unikaalselt esitada — seega kui palju mälukohti süsteem teoreetiliselt adresseerida suudab.

Aadressibussi laius on otseselt seotud adresseeritava mäluruumi suurusega. Näiteks 32-bitise aadressibussiga süsteem suudab adresseerida 2^32 baiti ehk 4 294 967 296 baiti (tavaliselt nimetatud 4 gigabait või 4 GiB). Kui aadressijuhtmeid on 36, on adresseeritav ruum 2^36 baiti ehk 64 gigabaiti. Kaasaegsetel lauaarvutitel ja Macintoshidel võivad füüsilise aadressi juhtmed olla erineva pikkusega — tegelik ligipääsetav mälu sõltub lisaks protsessori võimalustele ka kiibistikust ja emaplaatide piirangutest.

Tuleb eristada füüsilist ja virtuaalset aadressimist. Protsessor kasutab tihti virtuaalset aadressiruumi, mida hallatakse mäluhaldussüsteemi (MMU) abil — see teisendab virtuaalaadressid füüsilisteks aadressideks, mis liiguvad edasi aadressibussi kaudu. Selline aadresside kaardistamine võimaldab protsessiisolatsiooni, mälupagedust ja teisi kaasaegseid mäluhaldustrikke. Samas on aadressibuss iseenesest füüsiline kanal, mis kannab juba MMU poolt genereeritud füüsilisi aadresse.

Aadressibuss on tavaliselt ühesuunaline — protsessor saadab aadresse välisseadmetele või mälule — vastupidiselt andmesiinile, mis on kahepoolne ja võimaldab andmete lugemist ning kirjutamist. Mõnes vanemas või spetsiifilises arhitektuuris kasutatakse aadressi ja andmejuhtmeid aega jagavalt (multiplexing), et vähendada juhtmete arvu; tänapäeva laialdastes süsteemides on siiski eraldi juhtmed aadressi ja andmete jaoks.

Lisaks mäluaadressidele kasutatakse aadressibusse ka mälu-kaardistatud sisend/väljundile (memory-mapped I/O): paljud seadmed reageerivad kindlatele aadressidele, nii et protsessor saab seadmeid lugeda või kirjutada samade aadressi- ja andmebusssõnumite abil nagu tavalist mälu. Selle tõttu on oluline, et aadresside delegeerimine ja dekodeerimine emaplaadil oleks õige.

Praktikas piiravad adresseerimist mitmed tegurid, näiteks: protsessori sisemine toetatud füüsiliste aadresside arv (64-bitistel protsessoritel ei pruugi tegelikult olemas olla kogu 64 bitti füüsilistes aadressides — sageli on kasutusel 48–52 bitti), operatsioonisüsteemi tugi, emaplaadi ja kiibistikute disain ning näiteks Intel x86 puhul tehnoloogiad nagu PAE (Physical Address Extension), mis võimaldab 32-bitistel protsessoritel adresseerida kuni 36 bitti (kuni ~64 GB) füüsilist mälu.

Peamised punktid, mida aadressibussi kohta meeles pidada:

  • Aadressibuss edastab aadresse (ei kanna tavaliselt andmeid, seda teeb andmesiin).
  • Aadressibussi laius (juhtmete arv) määrab teoreetilise adresseeritava mälukoguse (2^n baiti, kus n on juhtmete arv).
  • Füüsiline adresseerimine erineb virtuaalsest; MMU vastutab kaardistamise eest.
  • Mälu-kaardistatud I/O kasutab samu aadresse seadmete juhtimiseks.
  • Tegelik ligipääsetav mälu on tihti väiksem kui teoreetiline maksimaal — piiravad protsessori, OS-i ja emaplaadi omadused.

Kaasaegsed arvutisüsteemid ei tugine enam ainult ühisele monoliitsele süsteemibussile kulude vähendamiseks ja modulaarsusreeglite järgi: sageli on eriotstarbelised bussid ja liidesed (PCIe, QPI/UPI, jne), mis on optimeeritud suurema läbilaskevõime, latentsuse ja turvalisuse jaoks, kuid aadressi- ja mäluhalduse põhimõtted jäävad samaks — aadressibuss on põhiline mehhanism, mille abil süsteem otsustab, kuhu andmeid lugeda või kuhu kirjutada.

Lühikokkuvõte: aadressibuss on füüsiline vahend protsessori ja teiste süsteemikomponentide vaheliste mäluaadresside edastamiseks. Selle laiuse ja disaini mõistmine aitab aru saada, miks mõningatel süsteemidel on piiratud mälu tugi ning kuidas virtuaal- ja füüsiline aadressimine omavahel suhtlevad.

Küsimused ja vastused

K: Mis on aadressibuss?


V: Aadressibuss on arvutibussi arhitektuur, mida kasutatakse andmete edastamiseks seadmete vahel. See ühendab protsessorit põhimäluga ja salvestab füüsilise mälu riistvaralise aadressi binaarsetes numbrites, võimaldades andmevahendi kaudu juurdepääsu mälumälule.

K: Kui palju juhtmeid on aadressibussil?


V: Aadressibussi juhtmete arv määrab, kui palju unikaalseid mälukohti saab adresseerida. Kaasaegsetel personaalarvutitel ja Macintoshidel on tavaliselt kuni 36 aadressijuhet.

K: Millised muud elemendid kuuluvad süsteemibussi arhitektuuri juurde?


V: Lisaks aadressibussile sisaldab süsteemibussi arhitektuur ka andmesiini ja juhtimissiini.

K: Kui palju mälu saab 32-bitise aadressibussiga kasutada?


V: 32-bitise aadressiga süsteem saab ligi 4 gigabaiti mäluruumi.

K: Kui palju mälu saab 64-bitise aadressiga kasutada?


V: 64-bitise aadressiga süsteem saab juurdepääsu 16 eksabaidile praktiliselt piiramatutele mälukohtadele, kui seda kasutatakse koos toetava operatsioonisüsteemiga.

K: Mis on üksiku arvuti süsteemibusside eesmärk?


V: Üksikute arvutite süsteemibusside eesmärk on ühendada peamised komponendid arvutis ja vähendada kulusid, parandades samal ajal modulaarset integratsiooni.

AlegsaOnline.com - 2020 / 2025 - License CC3