Flynnin luokittelu

Kohteesta Wikipedia
(Ohjattu sivulta SIMD)
Loikkaa: valikkoon, hakuun

Flynnin luokittelu (engl. Flynn's taxonomy) on Michael J. Flynnin vuonna 1966 esittämä luokittelu tietokonearkkitehtuureille.

Luokittelua on alun perin käytetty tietokoneen arkkitehtuuriin (useilla suorittimilla), mutta sitä käytetään toisinaan myös suoritintoteutuksen sisäiselle arkkitehtuurille.selvennä

Luokittelu[muokkaa | muokkaa wikitekstiä]

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)

Luokittelussa instruction viittaa käskyvirtaan ja data muuttujavirtaan.[3]

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

Lisäluokat[muokkaa | muokkaa wikitekstiä]

Nvidia on 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[muokkaa | muokkaa wikitekstiä]

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

SISD-arkkitehtuurissa voi olla myös rinnakkaisuutta suorittimen liukuhihnan (pipeline) ja superscalar ominaisuuksien muodossa.

MISD[muokkaa | muokkaa wikitekstiä]

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

Mallia voidaan käyttää myös vikasietoisissa tietokoneissa redundanttiseen käsittelyyn, jotta vikaantuneen yksikön toiminta ei häiritse.

Ainoa tunnettu MISD-mallia käyttävä tietokone on ollut Carnegie Mellon -yliopiston C.mmp.[3][6]

SIMD[muokkaa | muokkaa wikitekstiä]

SIMD-mallissa sama komento suoritetaan useammalle arvolle yhtäaikaisesti. Tämä yleinen rinnakkaissuorituksen muoto rinnakkaislaskennassa ja vektorisuorittimissa.

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

SIMD-malli on useissa suorittimissa toteutettu vektorisuoritin-tyylisinä käskylaajennuksina. Cell BE toteuttaa 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[muokkaa | muokkaa wikitekstiä]

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-mallin rinnakkaisohjelmointi on 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]

Katso myös[muokkaa | muokkaa wikitekstiä]

Lähteet[muokkaa | muokkaa wikitekstiä]

  1. Data-Level Parallelism in Vector, SIMD, and GPU Architectures Viitattu 16.2.2017.
  2. Parallel Computer Architectures Viitattu 16.2.2017.
  3. a b c UNIT 2 CLASSIFICATION OF PARALLEL COMPUTERS Viitattu 20.2.2017.
  4. Whitepaper NVIDIA’s Next Generation CUDA Compute Architecture: Fermi Viitattu 16.2.2017.
  5. 3.1.5 Other Taxonomies Viitattu 16.2.2017.
  6. Wulf, William A. & Bell, C. G.: C.mmp - A multi-mini-processor Viitattu 21.2.2017.
  7. Chapter 2 Basics of SIMD Programming Viitattu 18.2.2017.
  8. Nelson, Philip Arne: Parallel Programming Paradigms Viitattu 20.2.2017.
  9. Intel Paragon XP/S Overview Viitattu 19.2.2017.
Tämä tietotekniikkaan liittyvä artikkeli on tynkä. Voit auttaa Wikipediaa laajentamalla artikkelia.
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