Флинова подела

С Википедије, слободне енциклопедије
Флинова подела
  Једноструке инструкције Вишеструке инструкције
Једноструки подаци SISD MISD
Вишеструки подаци SIMD MIMD

Флинова подела је класификација рачунарских архитектура, коју је предложио Мајкл Џ. Флин (Michael J. Flynn) 1966.[1][2]

Класификације[уреди | уреди извор]

Четири класификације, које је дефинисао Флин, су базиране на броју конкурентрних инструкција (или контроле) и стримова података који су доступни у архитектури:

Једноструке инструкције, једноструки стримови података (SISD)
Секвенцијалан рачунар који не експлоатише паралелизам било у инструкцијском или стриму података. Једна контролна јединица (енгл single control unit, CU) хвата један стрим инструкција (енгл. instruction stream, IS) из меморије. CU онда генерише одговарајуће сигнале да би детектовао елемент обраде (енгл. processing element, PE) да би обрађивао стрим података (енгл. data stream, DS), тј. да би обрађивао једну по једну операцију.
Примери SISD архитектуре су традиционалне унипроцесорске машине као што је персонални рачунар (енгл. Personal Computer, PC; данашњи PC-јеви имају више процесора) или старији мејнфрејм рачунари (енгл. mainframe computer).
Једноструке инструкције, вишеструки стримови података (SIMD)
Компајлер који експлоатише вишеструке стримове података, у односу на једноструки стрим инструкција, да би извршио операције које могу бити природно паралелизоване. На пример процесорски низ или GPU.
Вишеструке инструкције, једноструки стримови података (MISD)
Вишеструке инструкције оперишу над једноструким стримовима података. Неуобичајена архитектура која се углавном користи за толерисање грешака. Хетерогени системи оперишу над истим стримовима података али морају да се задовоље резултатом. Примери укључују рачунар за контролу лета спејс шатлова
Вишеструке инструкције, випеструки стримови података (MIMD)
Вишеструки аутономни процесори истовремено извршавају различите инструкције над различитим подацима. Дистрибуирани системи се обично препознају по MIMD архитектурама, било експлоатисањем једног простора за дељену меморију или једног простора за дистрибуирану меморију. Вишејезгарни суперскаларни процесор је MIMD процесор.

Дијаграм поређења класификација[уреди | уреди извор]

Визуелно, ове 4 архитектуре су приказане испод где је сваки "PU" централна процесорска јединица:

SISD MISD
SIMD MIMD

Даља подела[уреди | уреди извор]

Од 2006, сви од најбољих 10 и већина најбољих 500 суперрачунара су базирани на MIMD архитектури.

Неке даље поделе деле MIMD категорију у две категорије испод,[3][4]

SPMD[уреди | уреди извор]

Један програм, вишеструки подаци (енгл. Single Program, Multiple Data): вишеструки аутономни процесори истовремено извршавају један програм (али у независним тренуцима пре него у локстепу (енгл. lockstep) који SIMD предлаже) над различитим подацима. Такође се односи на 'једноструке инструкције, вишеструки стримови података'[5] - корист ове терминологије за SPMD је погрешна и треба се избећи, јер је SPMD модел паралелног извешавања и претпоставља да вишеструки кооперативни процеси извршавају програм. SPMD је најчешћи стил паралелног програмирања.[6] SPMD модел и термин је предложила Фредерика Дарема (Frederica Darema).[7] Грегори Ф. Фистер (Gregory F. Pfister) је био менаџер RP3 пројекта, а Дарема је била део RP3 тима.

MPMD[уреди | уреди извор]

Више програма, вишеструки подаци (енгл. Multiple Program, Multiple Data): вишеструки аутономни процесори истовремено извршавају најмање 2 независна програма. Типично, овакви системи бирају један чвор који ће бити „домаћин“ ("експлицитан домаћин/модел програмирања чворова“, енгл. host) или менаџер ("менаџер/радник“ стратегија), који покраће један програм који скупља податке у све остале чворове који покраћу други програм. Ти други чворови онда враћају своје резултате директно менаџеру. Један пример овога би била игразка конзола Sony PlayStation 3, са својом SPU/PPU архитектуром процесора.

Референце[уреди | уреди извор]

  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. Архивирано из оригинала 04. 06. 2004. г. Приступљено 9. 12. 2013. 
  4. ^ „CTC Virtual Workshop”. Web0.tc.cornell.edu. Приступљено 9. 12. 2013. 
  5. ^ „Single program multiple data”. Nist.gov. 17. 12. 2004. Приступљено 9. 12. 2013. 
  6. ^ „Single program multiple data”. Nist.gov. 17. 12. 2004. Приступљено 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. 

Спољашње везе[уреди | уреди извор]