Muistiarkkitehtuuri

Tämä artikkeli käsittelee tietokoneen rakennetta. Puolijohdemuisteista katso artikkeli DRAM. Käyttöjärjestelmän muistinhallinta ei kuulu tähän artikkeliin.

Muistiarkkitehtuuri on tietokoneen muistin käsittelymalli.

Tietokoneen muistirakenne voidaan jakaa kahteen seuraavasti:

Tietokoneen muisti tietokonejärjestelmissä voi olla jaettu suorittimien välillä (Shared memory) tai hajautettu (Distributed memory) klusterin tapauksessa.[1][2]

Ryhmittely

Lisäksi muistin jako moniprosessointitietokoneissa voidaan ryhmitellä seuraavasti:

  • Uniform Memory Access (UMA)[3][4]
    • jaetun muistin arkkitehtuuri moniprosessoritietokoneissa, jossa viive muistikäsittelyssä on sama riippumatta mikä suoritin käyttää muistia
    • tyypillisesti vastakohtana NUMA-arkkitehtuurille
  • Cache-Only Memory Access (COMA)[3]
    • moniprosessoritietokoneiden muistiarkkitehtuuri, joka pyrkii vähentämään muistikopioita NUMA-malliin verrattuna
    • laitteistotason synkronisaatio välimuistin yhtenäisyydelle
  • Non-uniform Memory Access (NUMA)[3]
    • jaetun muistin arkkitehtuuri, jossa viive muistikäsittelyyn riippuu sen etäisyydestä muistiin[5]
    • suuren luokan tietokoneissa on useita suorittimia ja muisteja tyypillisesti solmuina (node), jolloin eri solmun muisti on hitaampaa kuin saman solmun muisti
  • Heterogeneous Uniform Memory Access (hUMA), ks. HSA-arkkitehtuuri
    • eri tyyppisiä suorittimia (CPU, GPU, DSP), jotka käyttävät samaa muistia
    • termin esitti AMD APU-suorittimien yhteydessä[6]

Unified Memory Architecture (UMA) viittaa integroitujen grafiikkasuorittimien (engl. Integrated Graphics Processors, IGP) tapaan jakaa tietokoneen keskusmuistia suorittimen kanssa.[7]

Toisin kuin yleiskäyttöisissä tietokoneissa sulautetuissa järjestelmissä muistiarkkitehtuuria voidaan muokata käytettävää sovelluskohdetta varten muiden laitteistomuokkausten ohella.[8]

NUMA-arkkitehtuurissa eri pisteissä sijaitsevalla muistilla, jota suoritin voi käyttää, on erilainen suorituskyky. Tähän vaikuttavat signaaliväylän etäisyys, sekä jakaminen toisten suorittimien kanssa. Vaikutukset on huomattu suurissa järjestelmissä ja useamman suoritinkannan tietokoneissa, mutta myöhemmin myös monen ytimen suorittimissa.[9][10]

Lähteet

  1. Categories of Computer Systems, Flynn’s Taxonomy .cs.uidaho.edu. Viitattu 18.2.2017.
  2. Intel Paragon XP/S Overview cs.kent.edu. Viitattu 19.2.2017.
  3. a b c UNIT 2 CLASSIFICATION OF PARALLEL COMPUTERS computing.llnl.gov. Arkistoitu 1.2.2017. Viitattu 21.2.2017.
  4. Ian Mapleson: O2 Architecture sgidepot.co.uk. 4.12.2007. Viitattu 2.6.2018.
  5. Ulrich Drepper: What Every Programmer Should Know About Memory (PDF) akkadia.org. 21.11.2007. Viitattu 29.10.2019. (englanniksi) 
  6. Unified CPU/GPU Memory Architecture Raises The Performance Bar electronicdesign.com. 3.5.2013. Viitattu 17.11.2023. (englanniksi)
  7. Kristopher Kubicki: Previewing RS400; ATI's Unique Position anandtech.com. 23.7.2004. Viitattu 17.11.2023. (englanniksi)
  8. Memory Architectures for Embedded Systems-On-Chip (PDF) ics.uci.edu. Viitattu 17.11.2023. (englanniksi)
  9. Christoph Lameter: NUMA (Non-Uniform Memory Access): An Overview queue.acm.org. 9.8.2013. doi:10.1145/2508834.2513149 Viitattu 22.3.2024. (englanniksi)
  10. A Case for NUMA-aware Contention Management on Multicore Systems (PDF) usenix.org. Viitattu 22.3.2024. (englanniksi)

Aiheesta muualla