Flinova podela

S Vikipedije, slobodne enciklopedije
Flinova podela
  Jednostruke instrukcije Višestruke instrukcije
Jednostruki podaci SISD MISD
Višestruki podaci SIMD MIMD

Flinova podela je klasifikacija računarskih arhitektura, koju je predložio Majkl Dž. Flin (Michael J. Flynn) 1966.[1][2]

Klasifikacije[uredi | uredi izvor]

Četiri klasifikacije, koje je definisao Flin, su bazirane na broju konkurentrnih instrukcija (ili kontrole) i strimova podataka koji su dostupni u arhitekturi:

Jednostruke instrukcije, jednostruki strimovi podataka (SISD)
Sekvencijalan računar koji ne eksploatiše paralelizam bilo u instrukcijskom ili strimu podataka. Jedna kontrolna jedinica (engl single control unit, CU) hvata jedan strim instrukcija (engl. instruction stream, IS) iz memorije. CU onda generiše odgovarajuće signale da bi detektovao element obrade (engl. processing element, PE) da bi obrađivao strim podataka (engl. data stream, DS), tj. da bi obrađivao jednu po jednu operaciju.
Primeri SISD arhitekture su tradicionalne uniprocesorske mašine kao što je personalni računar (engl. Personal Computer, PC; današnji PC-jevi imaju više procesora) ili stariji mejnfrejm računari (engl. mainframe computer).
Jednostruke instrukcije, višestruki strimovi podataka (SIMD)
Kompajler koji eksploatiše višestruke strimove podataka, u odnosu na jednostruki strim instrukcija, da bi izvršio operacije koje mogu biti prirodno paralelizovane. Na primer procesorski niz ili GPU.
Višestruke instrukcije, jednostruki strimovi podataka (MISD)
Višestruke instrukcije operišu nad jednostrukim strimovima podataka. Neuobičajena arhitektura koja se uglavnom koristi za tolerisanje grešaka. Heterogeni sistemi operišu nad istim strimovima podataka ali moraju da se zadovolje rezultatom. Primeri uključuju računar za kontrolu leta spejs šatlova
Višestruke instrukcije, vipestruki strimovi podataka (MIMD)
Višestruki autonomni procesori istovremeno izvršavaju različite instrukcije nad različitim podacima. Distribuirani sistemi se obično prepoznaju po MIMD arhitekturama, bilo eksploatisanjem jednog prostora za deljenu memoriju ili jednog prostora za distribuiranu memoriju. Višejezgarni superskalarni procesor je MIMD procesor.

Dijagram poređenja klasifikacija[uredi | uredi izvor]

Vizuelno, ove 4 arhitekture su prikazane ispod gde je svaki "PU" centralna procesorska jedinica:

SISD MISD
SIMD MIMD

Dalja podela[uredi | uredi izvor]

Od 2006, svi od najboljih 10 i većina najboljih 500 superračunara su bazirani na MIMD arhitekturi.

Neke dalje podele dele MIMD kategoriju u dve kategorije ispod,[3][4]

SPMD[uredi | uredi izvor]

Jedan program, višestruki podaci (engl. Single Program, Multiple Data): višestruki autonomni procesori istovremeno izvršavaju jedan program (ali u nezavisnim trenucima pre nego u lokstepu (engl. lockstep) koji SIMD predlaže) nad različitim podacima. Takođe se odnosi na 'jednostruke instrukcije, višestruki strimovi podataka'[5] - korist ove terminologije za SPMD je pogrešna i treba se izbeći, jer je SPMD model paralelnog izvešavanja i pretpostavlja da višestruki kooperativni procesi izvršavaju program. SPMD je najčešći stil paralelnog programiranja.[6] SPMD model i termin je predložila Frederika Darema (Frederica Darema).[7] Gregori F. Fister (Gregory F. Pfister) je bio menadžer RP3 projekta, a Darema je bila deo RP3 tima.

MPMD[uredi | uredi izvor]

Više programa, višestruki podaci (engl. Multiple Program, Multiple Data): višestruki autonomni procesori istovremeno izvršavaju najmanje 2 nezavisna programa. Tipično, ovakvi sistemi biraju jedan čvor koji će biti „domaćin“ ("eksplicitan domaćin/model programiranja čvorova“, engl. host) ili menadžer ("menadžer/radnik“ strategija), koji pokraće jedan program koji skuplja podatke u sve ostale čvorove koji pokraću drugi program. Ti drugi čvorovi onda vraćaju svoje rezultate direktno menadžeru. Jedan primer ovoga bi bila igrazka konzola Sony PlayStation 3, sa svojom SPU/PPU arhitekturom procesora.

Reference[uredi | uredi izvor]

  1. ^ Flynn, M. J. (1972). „Some Computer Organizations and Their Effectiveness”. IEEE Trans. Comput. C—21 (9): 948—960. doi:10.1109/TC.1972.5009071. 
  2. ^ Duncan, R. (1990). „A survey of parallel computer architectures”. Computer. 23 (2): 5—4. doi:10.1109/2.44900. 
  3. ^ „Single Program Multiple Data stream (SPMD)”. Llnl.gov. Arhivirano iz originala 04. 06. 2004. g. Pristupljeno 9. 12. 2013. 
  4. ^ „CTC Virtual Workshop”. Web0.tc.cornell.edu. Pristupljeno 9. 12. 2013. 
  5. ^ „Single program multiple data”. Nist.gov. 17. 12. 2004. Pristupljeno 9. 12. 2013. 
  6. ^ „Single program multiple data”. Nist.gov. 17. 12. 2004. Pristupljeno 9. 12. 2013. 
  7. ^ Darema, Frederica; George, David A.; Norton, V. Alan; Pfister, Gregory F. (1988). „A single-program-multiple-data computational model for EPEX/FORTRAN”. Parallel Computing. 7 (1): 11—24. doi:10.1016/0167-8191(88)90094-4. 

Spoljašnje veze[uredi | uredi izvor]