Flynn osztályozása
|
Egy utasítás
|
Több utasítás
|
Egy adatfolyam
|
SISD
|
MISD
|
Több adatfolyam
|
SIMD
|
MIMD
|
A Flynn-féle osztályozás számítógép-architektúrák párhuzamosság szerinti osztályozási módja, amit Michael J. Flynn publikált 1966-ban.[1][2]
Osztályozás
Flynn osztályozási modellje az egyidejű utasítás- (vagy vezérlési), illetve adatfolyamok alapján különbözteti meg az architektúrákat:
- Single Instruction, Single Data stream (SISD, „egy utasítás-, egy adatfolyam”)
- A klasszikus, szekvenciális számítógép, ami sem adat-, sem utasításszinten nem használ ki párhuzamosságot. Egyetlen vezérlőegység (CU) kéri le az egyetlen utasításfolyamot (IS) a memóriából. A CU azután létrehozza a megfelelő vezérlőjeleket hogy az egyetlen feldolgozó egység (PE) egyetlen adatfolyamon (DS) dolgozhasson. Tehát a végrehajtó egyszerre egy utasítást végez egy adaton. A SISD eszközök közé tartoznak a hagyományos egyprocesszoros rendszerű gépek, mint a korai PC-k vagy a régi mainframe-ek.
- Single Instruction, Multiple Data streams (SIMD, „egy utasítás-, több adatfolyam”)
- A számítógép egyetlen utasításfolyamot hajt végre több adatfolyamon egyszerre, a bennük rejlő természetes párhuzamosságot kihasználva. Az ilyen elvű egységeket vektorfeldolgozónak is nevezik. Példa: tömbprocesszor, vektorprocesszor, GPU.
- Multiple Instruction, Single Data stream (MISD, „több utasítás-, egy adatfolyam”)
- Több utasítás dolgozik ugyanazon az adatfolyamon egyszerre. Szokatlan architektúra, például hibatűrés céljaira értelmezhető. Több rendszer végzi el ugyanazokat a műveletsorokat, és ugyanarra az eredményre kell jutniuk. Például a Space Shuttle repülésirányító számítógépében használták.
- Multiple Instruction, Multiple Data streams (MIMD, „több utasítás-, több adatfolyam”)
- Több autonóm processzor egy időben végez különböző műveleteket különböző adatokon. MIMD-architektúrának tekinthetők az elosztott rendszerek, akár közös, akár felosztott memóriaterületet használnak. Egy többmagos, szuperskalár processzor is MIMD-processzor.
A Flynn-féle osztályozás gyengesége, hogy nem mutatja meg sem a párhuzamosság forrását (adat), sem pedig szintjét (szál/utasítás).
Osztályozásokat összehasonlító ábra
A fent említett négy architektúra képi ábrája, ahol minden „PU” egy végrehajtó egységnek felel meg:
További felosztások
2006-ban a 10 legnagyobb szuperszámítógép, és a TOP500 szuperszámítógép többsége egyaránt MIMD-architektúrára épült.
Egyesek a MIMD kategóriát kettéosztják,[3][4][5][6][7] mások még további felosztást tartanak szükségesnek.[8]
SPMD
Single Program, Multiple Data (SPMD, „egy program, több adat”): több autonóm processzor szimultán hajtja végre ugyanazt a programot (de különböző pontokon, nem lockstep üzemmódban, ahogy a SIMD esetben) különböző adatokon. Másik elnevezése az „Egy processz, több adat”[7] – ez az SPMD-re vonatkozó terminológia téves és kerülendő, hiszen az SPMD párhuzamos végrehajtási modell és több, kooperáló processz programvégrehajtását feltételezi. Az SPMD a leggyakoribb párhuzamos programozási stílus.[9] Az SPMD modellt és kifejezést Frederica Darema alkalmazta elsőként.[10] Gregory F. Pfister az RP3 projekt egyik vezetője volt, Darema pedig a csapat tagja.
MPMD
Multiple Program, Multiple Data (MPMD, „több program, több adat”): több autonóm processzor szimultán hajt végre legalább két, egymástól független programot. Az ilyen rendszerek tipikusan az egyik csomópontot kijelölik a „host” (az explicit host/node programozási modell), „gazda” vagy „menedzser” (a menedzser/dolgozó vagy „Manager/Worker” stratégia) szerepkörre; ez a csomópont olyan programot futtat, ami kiosztja az adatokat az összes többi, egy másik programot futtató csomópont számára. Ezek a csomópontok közvetlenül a menedzsernek küldik vissza az eredményeket. Az MPMD-re példa a Sony PlayStation 3 játékkonzolja a Cell mikroprocesszoron alapuló SPU/PPU processzorarchitektúrájával.
Jegyzetek
Fordítás
- Ez a szócikk részben vagy egészben a Flynn's taxonomy című angol Wikipédia-szócikk ezen változatának fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.