Flynnin luokittelu (engl.Flynn’s taxonomy) onMichael J. Flynnin vuonna 1966 esittämä luokittelu tietokonearkkitehtuureille.
Luokittelua on alun perin käytettytietokoneen arkkitehtuuriin (useilla suorittimilla), mutta sitä käytetään toisinaan myössuoritintoteutuksen sisäiselle arkkitehtuurille.selvennä
Luokittelu voidaan jakaa seuraavasti neljään luokkaan:[1][2]
Luokittelussainstruction viittaa käskyvirtaan jadata muuttujavirtaan.[3]
Käskyvirta ja muuttujavirta voivat olla samaa tai eri muistia, ks.muistiarkkitehtuurin toteutustavat.
Nvidia on ehdottanut SIMT (Single Instruction, Multiple Threads) luokittelua alkuperäisten neljän lisäksi.[4]
MIMD on ehdotettu jaettavaksi kahteen kategoriaan:
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ösvikasietoisissa tietokoneissaredundanttiseen kä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ä yleinenrinnakkaissuorituksen muotorinnakkaislaskennassa javektorisuorittimissa.
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 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-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-mallinrinnakkaisohjelmointi 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]