Transaktiomuisti

Wikipediasta
Siirry navigaatioon Siirry 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 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ä]

  1. a b Kleen, Andi: Lock elision in the GNU C library LWN. Viitattu 7.3.2017.
  2. a b c Kanter, David: Analysis of Haswell’s Transactional Memory realworldtech.com. Viitattu 7.3.2017.
  3. Kiminki, Sami: Introduction to Transactional Memory cs.hut.fi. Arkistoitu 8.3.2017. Viitattu 7.3.2017.
  4. Advanced Synchronization Facility AMD. Viitattu 7.3.2017.
  5. Transactional Synchronization in Haswell Intel. Viitattu 7.3.2017.
  6. Coarse-grained locks and Transactional Synchronization explained Intel. Viitattu 7.3.2017.
  7. Li, Wei: IBM XL compiler hardware transactional memory built-in functions for IBM AIX on IBM POWER8 processor-based systems IBM. Viitattu 7.3.2017.
  8. Dabdoub, Sebastien & Tu, Stephen: Supporting Intel Transactional Synchronization Extensions in QEMU people.eecs.berkeley.edu. Arkistoitu 7.3.2017. Viitattu 7.3.2017.
Käännös suomeksi
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