Osoiteväylä on tietokoneen väyläarkkitehtuuri‑komponentti, jota käytetään laitteiden ja muistin lokaatioiden tunnistamiseen ja tietojen kohteiden valintaan. Osoitteet esitetään binäärilukuina (bittijonoina), joiden avulla prosessori tai muu laite kertoo, mihin muistipaikkaan tai I/O‑laitteeseen halutaan päästä.
Miten osoiteväylä toimii
Osoiteväylät muodostuvat piuiksi tai johdoiksi, jotka yhdistävät prosessorin ja keskusmuistin sekä muut osoitteistetut laitteet. Prosessori lähettää osoitteen osoiteväylän kautta, ja muisti- tai piiriyksikkö, jonka dekooderi tunnistaa kyseisen osoitteen, vastaa datan lukemisella tai kirjoittamisella. Usein osoiteväylä on yksisuuntainen (prosessorista kohti muistia ja I/O‑ohjaimia), kun taas dataväylä voi olla kaksisuuntainen.
Osoiteväylän leveys ja osoitettavissa oleva muisti
Osoiteväylän leveys eli johtojen määrä määrittää teoreettisen osoiteavaruuden: n johdolla voidaan erottaa 2^n eri osoitetta. Esimerkkejä:
- 32‑bittinen osoiteväylä voi osoittaa 2^32 muistipaikkaa, eli 4 gigatavua (4 GiB) muistitilaa.
- 36 johdon osoiteväylä antaa 2^36 osoitetta, mikä vastaa noin 68,7 miljardia tavua eli ~64 gigatavua. Tällaisia ratkaisuja esiintyi joissain henkilökohtaisissa tietokoneissa ja Macintosh-tietokoneissa.
- 64‑bittinen osoiteväylä voi teoriassa osoittaa 2^64 tavua, mikä on noin 16 eksatavua (16 EiB) — käytännössä käyttöjärjestelmän, piirisarjan ja laitteiston rajoitukset pienentävät käytettävissä olevaa tilaa.
On hyvä huomata, että teoreettinen osoiteavaruus ei aina vastaa järjestelmän käytännössä käyttöönottamaa määrää: emolevyn ja piirisarjan rajoitukset, BIOS/UEFI‑asetukset ja käyttöjärjestelmän tuki vaikuttavat siihen, kuinka paljon fyysistä muistikapasiteettia voidaan hyödyntää.
Fyysiset ja loogiset osoitteet
Nykyjärjestelmissä erotetaan usein fyysinen osoite (muistin todellinen laiteosoite) ja looginen tai virtuaalinen osoite (sovelluksen käyttämä osoiteavaruus). Käyttöjärjestelmän muistinhallinta ja prosessorin muistisuojaus (mm. sivutus ja sivutaulut) kääntävät virtuaaliosoitteet fyysisiksi osoitteiksi. Tämä mahdollistaa esimerkiksi prosessien eristämisen ja virtuaalimuistin käytön, vaikka osoiteväylä itsessään toimii fyysisten osoitteiden siirrossa.
Teknisiä yksityiskohtia ja variaatiot
- Joissain väylissä osoite- ja datalinjat on aikajaksotettu (multiplexed): samat johtimet siirtävät vuorotellen osoitteita ja dataa, mikä säästää johdotusta mutta vaatii lisähallintaa.
- Osoitedekoodaus ja muistipiirien valinta hoidetaan yleensä osoitedekoodereilla, jotka tunnistavat, millä osoitteilla kukin muistielementti tai I/O‑laite aktivoituu.
- Osoiteväylän lisäksi järjestelmäväylään kuuluu tyypillisesti dataväylä ja ohjausväylä. Nykyaikaiset tietokoneet käyttävät usein useita erikoistuneita väyliä tai väyläjärjestelmiä suorituskyvyn ja skaalautuvuuden parantamiseksi (esim. muistin erilliset väylät, väylät laajennuskorteille, linkit kuten PCI Express, sekä prosessorien välinen linkitys).
Osoiteväylän rajoituksia käytännössä
Suurimmat käytännön rajoitteet ovat:
- Piirisarjan ja emolevyn fyysiset rajat ja muistikanta (mitä moduuleja tuetaan ja montako).
- Käyttöjärjestelmän tuki muistin osoittamiseen (esimerkiksi 32‑bittinen OS voi rajoittaa käytettävää muistia riippumatta laitteiston osoitekapasiteetista).
- Muistin varaaminen laitteille (memory holes) ja muistin uudelleenkartoitus, joita käytetään esimerkiksi I/O‑alueiden varaamiseen laitteille.
Yhteenveto
Osoiteväylä on keskeinen osa tietokoneen väyläarkkitehtuuria: se kertoo, miten laitteet ja muisti löytävät toisensa. Osoiteväylän leveys määrää teoreettisen osoitemäärän, mutta käytännön saatavissa oleva muisti riippuu myös laitteiston, piirisarjan ja käyttöjärjestelmän rajoista. Nykyisissä järjestelmissä osoite- ja muistihallinta yhdistyvät virtuaalimuistin ja monimutkaisten muistinhallintamekanismien kautta, mikä tekee osoitteistuksesta joustavamman ja turvallisemman.