Flynnin luokittelu

Wikipediasta
(Ohjattu sivultaSISD)
Siirry navigaatioon Siirry hakuun

Flynnin luokittelu(engl.Flynn’s taxonomy) onMichael J. Flynninvuonna 1966 esittämä luokittelu tietokonearkkitehtuureille.

Luokittelua on alun perin käytettytietokoneenarkkitehtuuriin (useilla suorittimilla), mutta sitä käytetään toisinaan myössuoritintoteutuksensisäiselle arkkitehtuurille.selvennä

Luokittelu voidaan jakaa seuraavasti neljään luokkaan:[1][2]

  • SISD (Single Instruction, Single Data)
  • MISD (Multiple Instruction, Single Data)
  • SIMD (Single Instruction, Multiple Data)
  • MIMD (Multiple Instruction, Multiple Data)

Luokittelussainstructionviittaa käskyvirtaan jadatamuuttujavirtaan.[3]

Käskyvirta ja muuttujavirta voivat olla samaa tai eri muistia, ks.muistiarkkitehtuurintoteutustavat.

Nvidiaon ehdottanut SIMT (Single Instruction, Multiple Threads) luokittelua alkuperäisten neljän lisäksi.[4]

MIMD on ehdotettu jaettavaksi kahteen kategoriaan:

  • SPMD (Single program, multiple data streams)[5]
  • MPMD (Multiple programs, multiple data streams)

Luokkien määrittelyt

[muokkaa|muokkaa wikitekstiä]

SISD on yksinkertaisin tapaus: yksi suoritin joka suorittaa yhden käskyn yhdelle muistille.

SISD-arkkitehtuurissa voi olla myös rinnakkaisuutta suorittimenliukuhihnan(pipeline) jasuperskalaarisuus-ominaisuuksien muodossa.

MISD-mallissa datalle suoritetaan useita komentoja. Liukuhihna (pipeline) suorittimissa voidaan käsittää MISD-mallina.

Mallia voidaan käyttää myösvikasietoisissatietokoneissaredundanttiseenkäsittelyyn, jotta vikaantuneen yksikön toiminta ei häiritse.

Ainoa tunnettu MISD-mallia käyttävä tietokone on ollutCarnegie Mellon -yliopistonC.mmp.[3][6]

SIMD-mallissa sama komento suoritetaan useammalle arvolle yhtäaikaisesti. Tämä yleinenrinnakkaissuorituksenmuotorinnakkaislaskennassajavektorisuorittimissa.

SIMD-mallissa kyse on data-tasonrinnakkaisuudesta(parallel), mutta eiyhtäaikaisuudesta(concurrency): käsiteltävänä on vain yksi komento kerrallaan.

SIMD-malli on useissa suorittimissa toteutettuvektorisuoritin-tyylisinä käskylaajennuksina.Cell BEtoteuttaa useamman SIMD-suoritukseen tarkoitetun yksikön samaan suorittimeen. SIMD-operaatioiden hyödyntäminen ohjelmoinnissa vaatii lähestymisen ohjelmointiin, joka tähtää rinnakkaisuuden hyödyntämiseen.[7]

MIMD-mallissa suoritetaan useita komentoja useille datapisteille rinnakkain.

MIMD-mallissa on kyse sekärinnakkaisuudesta(parallel) ettäyhtäaikaisuudesta(concurrency), koska sekä komentoja että datapisteitä on useita käytössä yhtä aikaa eri vaiheissa. MIMD-mallinrinnakkaisohjelmointion eri lähestymistapoja.[8]

Malli on tyypillisesti käytössä useita suorittimia ja suoritinytimiä sisältävissämoniprosessointikoneissa.[9]Kaikkien moniprosessointikoneiden voi sanoa käyttävän MIMD-mallia.[3]

  1. Data-Level Parallelism in Vector, SIMD, and GPU Architecturescse.msu.edu.Viitattu 16.2.2017.
  2. Parallel Computer Architectures.cs.uh.edu.Arkistoitu17.2.2017. Viitattu 16.2.2017.
  3. abcUNIT 2 CLASSIFICATION OF PARALLEL COMPUTERScomputing.llnl.gov.Arkistoitu1.2.2017. Viitattu 20.2.2017.
  4. Whitepaper NVIDIA’s Next Generation CUDA Compute Architecture: Ferminvidia.Viitattu 16.2.2017.
  5. 3.1.5 Other Taxonomiesphy.ornl.gov.Viitattu 16.2.2017.
  6. Wulf, William A. & Bell, C. G.:C.mmp - A multi-mini-processorgordonbell.azurewebsites.net.Viitattu 21.2.2017.
  7. Chapter 2 Basics of SIMD Programmingkernel.org.Viitattu 18.2.2017.
  8. Nelson, Philip Arne:Parallel Programming Paradigmsdtic.mil.Arkistoitu17.2.2017. Viitattu 20.2.2017.
  9. Intel Paragon XP/S Overviewcs.kent.edu.Viitattu 19.2.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:Flynn's taxonomy