Transaktiomuisti

Kohteesta Wikipedia
Loikkaa: valikkoon, hakuun

Transaktiomuisti on tietotekniikassa termi laitteistopohjaiselle tuelle tietokoneen muistin käsittelylle transaktioiden avulla.

Termi on verrattavissa tietokantamoottorien käyttämälle transaktiomekanismille, mutta ohjelmiston sijaan kyse on suorittimen ja muistipiirien toimintaan liittyvästä ratkaisusta. Ohjelmistopohjaiset ratkaisuvat ovat olleet liian hitaita todelliselle toteutukselle.[1] Toimintamekanismit ovat best effort perusteisia ja takeita lukituksen välttämiselle ei ole.[1]

Tavoitteena tekniikan toteuttamisella laitteistossa on rinnakkaisuuden tuottamien ongelmien yksinkertaisempi ja tehokkaampi ratkaisu.[2] Varhaiset suunnitelmat perustuivat lukituksen väistämiseen (engl. lock elision).[2]

Ongelmakohtia[muokkaa | muokkaa wikitekstiä]

Transaktiomuisti ei ratkaise kaikkia ohjelmistokehityksen ongelmia:[3]

  • ei deadlockia, mutta sen sijaan livelock mahdollinen
  • reaaliaikasuustakeiden puuttuminen
  • kaikki algoritmit eivät sovellu rinnakkaisuuteen
  • mobiilialustoilla hukattu energia spekulaation epäonnistuessa

Toteutukset[muokkaa | muokkaa wikitekstiä]

Yksi varhaisimmista käyttökohteista tekniikalle oli Transmetan suorittimissa, mutta käyttö oli rajattu suorittimen sisäiseen toimintaan.[2]

AMD on ehdottanut Advanced Synchronization Facility (ASF) käskykantalaajennuksen x86-64 arkkitehtuuriin.[4] Intelillä on vastaavasti Transactional Synchronization Extensions (TSX) laajennus.[5][6]

IBM:n Blue Gene/Q tietokoneessa on vuodesta 2011 lähtien Power-arkkitehtuurin POWER8-suorittimissa tuki transaktiomuistille.[7]

QEMUn kehittäjät ovat esittäneet transaktiomuistin käyttöön synkronointimekanismia muistuttavan rajapinnan.[8]

Lähteet[muokkaa | muokkaa wikitekstiä]

Käännös suomeksi
Tämä artikkeli tai sen osa on käännetty tai siihen on haettu tietoja muunkielisen Wikipedian artikkelista.
Alkuperäinen artikkeli: en:Transactional memory