Flynnin luokittelu
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
[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)
Luokittelussainstructionviittaa käskyvirtaan jadatamuuttujavirtaan.[3]
Käskyvirta ja muuttujavirta voivat olla samaa tai eri muistia, ks.muistiarkkitehtuurintoteutustavat.
Lisäluokat
[muokkaa|muokkaa wikitekstiä]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
-
MISD
-
SIMD
-
MIMD
SISD
[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
[muokkaa|muokkaa wikitekstiä]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
[muokkaa|muokkaa wikitekstiä]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
[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-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]
Katso myös
[muokkaa|muokkaa wikitekstiä]Lähteet
[muokkaa|muokkaa wikitekstiä]- ↑Data-Level Parallelism in Vector, SIMD, and GPU Architecturescse.msu.edu.Viitattu 16.2.2017.
- ↑Parallel Computer Architectures.cs.uh.edu.Arkistoitu17.2.2017. Viitattu 16.2.2017.
- ↑abcUNIT 2 CLASSIFICATION OF PARALLEL COMPUTERScomputing.llnl.gov.Arkistoitu1.2.2017. Viitattu 20.2.2017.
- ↑Whitepaper NVIDIA’s Next Generation CUDA Compute Architecture: Ferminvidia.Viitattu 16.2.2017.
- ↑3.1.5 Other Taxonomiesphy.ornl.gov.Viitattu 16.2.2017.
- ↑Wulf, William A. & Bell, C. G.:C.mmp - A multi-mini-processorgordonbell.azurewebsites.net.Viitattu 21.2.2017.
- ↑Chapter 2 Basics of SIMD Programmingkernel.org.Viitattu 18.2.2017.
- ↑Nelson, Philip Arne:Parallel Programming Paradigmsdtic.mil.Arkistoitu17.2.2017. Viitattu 20.2.2017.
- ↑Intel Paragon XP/S Overviewcs.kent.edu.Viitattu 19.2.2017.