Централна процесорска јединица

хардвер који извршава инструкције рачунарског програма

Централна процесорска јединица (скр. ЦПЈ, ЦПУ) је скуп електронских кола унутар рачунара на којима се извршавају инструкције рачунарског програма путем извођења основних аритметичких, логичких, контролних и улазно/излазних (I/O) операција спецификованих инструкцијама. Рачунарска индустрија је користила термин „централна процесорска јединица” још од раних 1960-их.[1] Традиционално, термин „ЦПУ” се односи на процесор, специфичније на његову процесорску јединицу и контролну јединицу (CU), при чему се прави разлика између тих сржних елемената рачунара и спољашњих компоненти као што су главна меморија и I/O електронска кола.[2]

Intel 80486DX2 ЦПУ, гледан одозго
Поглед одоздо на Intel 80486DX2, с приказаним иглама процесора
Изглед двојезгарног АМД процесора
MOS6502AD-8bit процесор коришћен у првим микрорачунарима

Процесор (у рачунарству) је извршна јединица — прима и извршава инструкције прочитане из одговарајуће меморије. Када се каже само „процесор“ најчешће се мисли на централни процесор (енгл. central processing unit — CPU, централна процесорска јединица), али постоје и процесори специјалних намена као што су процесори сигнала, разни графички процесори, итд. Сам по себи процесор не чини рачунар, али је један од најважнијих делова сваког рачунара.

Форма, дизајн, и имплементација централних процесорских јединица су се променили током њихове историје, али њихов фундаментални оперативни мод је остао скоро непромењен. Главне ЦПУ компоненте су аритметичко-логичка јединица (АЛУ) која врши аритметичке и логичке операције, процесорски регистри који снабдевају операндима АЛУ и чувају резултате АЛУ операција, и контролна јединица која оркестрира преузимање (из меморије) и извршава инструкције усмеравајући координисане операције АЛУ, регистара и других компоненти.

Већина модерних процесора су микропроцесори, што значи да су садржани на јединичном интегралном колу (ИЦ) или чипу. Један чип који садржи ЦПУ може исто тако да садржи меморију, периферне интерфејсе, и друге компоненте рачунара; такви интегрисани уређаји се различито називају микроконтролерима или системима на чипу (СоЦ). Неки рачунари примењују вишејезгарни процесор, који је једноставан чип састављен од два или више процесора званих „језгра”; у том контексту, може се говорити о таквим појединачним чиповима као „утичницама”.[3] Редни процесори или векторски процесори имају вишеструке процесоре који паралелно делују, при чему се ни један не сматра централним. Постоји и концепт виртуалних процесора коју су вид примене динамички агрегираних рачунарских ресурса.[4]

Историја уреди

Први процесори су били механички и практично нису били засебан део рачунара (нпр. какве је пројектовао Чарлс Бебиџ) затим електромеханички (релејни) па на бази електронских вакуумских цеви и били су јако велики. До значајног смањења димензија и повећања перформанси дошло је употребом транзистора (минипроцесори) и у другој половини 20. века интегралних кола (микропроцесори).

 
EDVAC, један од првих рачунара који су могли да сачувају програм

Рани рачунари као што је ENIAC су морали да се физички измене да би обављали различите задатке, те су стога те машине називане „рачунарима са фиксним програмом”.[5] Пошто је термин „ЦПУ” генерално дефинисан као уређај за извршавање софтвера (рачунарског програма), најранији уређаји који се с правом могу називати процесорским су били рачунари са сачуваним програмом.

Идеја рачунара са сачуваним програмом је већ била присутна у Џон Преспер Екеретовом и Џон Вилијам Моклијевом дизајну ЕНИАЦ рачунара, али је иницијално била изостављена да би се раније завршила изградња.[6] Дана 30. јуна 1945, пре него што је ЕНИАЦ био направљен, математичар Џон фон Нојман је дистрибуирао рад под насловом Први нацрт извештаја о ЕДВАЦ-у. То је био преглед компјутера са ускладиштеним програмом који би се евентуално завршио у августу 1949. године.[7] ЕДВАЦ је био дизајниран да извршава одређени број упутстава (или операција) различитих типова. Значајно је да је требало да програми написани за ЕДВАЦ буду ускладиштени у рачунарској меморији велике брзине уместо да буду спецификовани физичким ожичавањем рачунара.[8] Тиме је превазиђено озбиљно ограничење ЕНИАЦ-а, што је било знатно време и напор који су били потребни за реконфигурацију рачунара за обављање новог задатка. Са фон Нојмановим дизајном, програм који је ЕДВАЦ извршавао се могао променити једноставном променом садржаја меморије. ЕДВАЦ, међутим, није био први рачунар са сачуваним програмом; Манчестерска експериментална машина малих размера, мали прототип рачунара са сачуваним програмом, извршио је свој први програм 21. јуна 1948,[9] а Манчестер Марк 1 је извршио свој први програм током ноћи 16–17. јуна 1949.[10]

Дизајн раних процесора је био прилагођен да буду коришћени као део већег и понекад особеног рачунара.[11] Међутим, овај метод дизајнирања прилагођених процесора за одређену апликацију је у великој мери уступио место развоју вишенаменских процесора произведених у великим количинама. Са таквом стандардизацијом се почело у ери дискретних транзисторских мејнфрејмова и минирачунара, а тренд је знатно убрзан популаризацијом интегрисаних кола (ИЦ). Она су омогућила дизајнирање и производњу све комплекснијих процесора са задовољавајућом толеранцијама реда величине нанометра.[12] Минијатуризација и стандардизација процесора су увећали присуство дигиталних уређаја у модерном животу далеко изван ограничене примене наменских рачунарских машина. Модерни микропроцесори се јављају у електронским уређајима у опсегу од аутомобила[13] до мобилних телефона,[14] а понекад чак и у играчкама.[15]

Док се фон Нојману најчешће приписују заслуге за дизајн рачунара са ускладиштеним програмом због његовог дизајна ЕДВАЦ-а, и тај дизајн је постао познат као Фон Нојманова архитектура, други су пре њега, попут Конрада Цуза, предложили и спровели сличне идеје.[16] Такозвана Харвардска архитектура рачунара Харвард Марк I, који је завршен раније од ЕДВАЦ-а,[17][18] исто тако је користила дизајн са сачувани програмом путем бушене папирне траке уместо електричне меморије.[19] Кључна разлика између фон Nојманове и Харвардске архитектуре је да каснија раздваја складиштење и третман процесорских инструкција и података, док ранија користи исти меморијски простор за оба.[20] Већина модерних процесора имају превасходно фон Нојманов дизајн, мада се процесори са Харварским дизајном исто тако срећу, посебно код уграђених апликација; на пример, Atmel AVR микроконтролери имају процесоре са Харвардском архитектуром.[21]

Релеји и електронске цеви (термионске цеви) су били у широкој употреби као прекидачки елементи;[22][23] за рад рачунара су неопходне хиљаде или десетине хиљада прекидачких елемената. Свеукупна брзина система је зависна од брзине прекидача. Цевни рачунари попут ЕДВАЦ-а су у просеку радили око осам сати без кварова, док су се релејски рачунари попут (споријег, али ранијег) Харварда Марк I веома ретко кварили.[1] На крају су, процесори базирани на цевима постали доминантни, јер су значајне предности у погледу брзине уопштено надмашиле проблеме поузданости. Већина ових раних синхроних процесора је радила са ниском радном фреквенцијом у поређењу са савременим микроелектронским дизајном. Сатне фреквенције сигнала у распону од 100 kHz до 4 MHz су биле веома честе у то време, ограничене у великој мери брзином прекидачких уређаја са којима су рачунари били изграђени.[24]

Транзисторски процесори уреди

 
IBM PowerPC 604e процесор

Комплексност дизајна процесора се повећала, јер су разне технологије омогућиле изградњу све мањих и све поузданијих електронских уређаја. Прво такво побољшање дошло је са напретком транзистора. Транзисторисани процесори током 1950-их и 1960-их више нису морали да се праве од гломазних, непоузданих и крхких прекидача попут вакуумских цеви и релеја.[25] Са тим побољшањем изграђени су комплекснији и поузданији процесори на једној или неколико штампаних плоча који су садржали дискретне (индивидуалне) компоненте.

Године 1964, IBM је увео своју IBM System/360 рачунарску архитектуру која је користила серију рачунара способну да извршава исте програме са различитим брзинама и перформансама.[26] То је било значајно у то време кад је већина електронских рачунара била међусобно инкомпатибилна, чак и они које је израдио исти произвођач. Да би се омогућило ово побољшање, IBM је користио концепт микропрограма (често називаних „микрокод”), који су још увек у широкој употреби у модерним процесорима.[27] System/360 архитектура је била толико популарна да је деценијама доминирала тржиште мејнфрејм рачунара и оставила наслеђе које се још увек наставља путем сличних модерних рачунара, као што је IBM zSeries.[28][29] Године 1965, Диџитал еквипмент корпорејшон (ДЕЦ) је увела још један утицајни рачунар намењен научним и истраживачким тржиштима, ПДП-8.[30]

 
Фуџицу плоча са SPARC64 VIIIfx процесорима

Рачунари базирани на транзисторима су имали неколико дистинктних предности у односу на своје претходнике. Осим што су били знатно поузданији и имали нижу потрошњу енергије, транзистори су исто тако омогућавали процесорима да раде са знатно већим брзинама због њиховог кратког прекидачког времена у поређењу са цевима или релејима.[31] С повећаном поузданошћу и драматично повећаном брзином прекидачких елемената (који су били скоро ексклузивно транзисторски до тог времена), брзине процесорских сатова од десетина мегахерца су са лакоћом остварене током тог периода.[32] Поред тога, док су дискретни транзистори и ИЦ процесори били у великој употреби, нови дизајни високих перформанси као што су СИМД (енгл. Single Instruction Multiple Data) векторски процесори су почели да се јављају.[33] Ови рани експериментални дизајни касније су довели до ере специјализованих суперрачунара као што су они које су направили Креј и Фуџицу.[33]

Организација процесора уреди

Централни процесори обично садрже:

  • Управљачку јединицу (енгл. control unit), која управља радом осталих компоненти, конкретно операционе јединице. У раним данима рачунарства се функционалност управљачке јединице махом реализовала хардверски (ожичена реализација), док се данас типично користи микропрограмска реализација, где се рад процесора, укључујући и његов скуп инструкција, имплементира кроз микропрограм.
  • Операциону јединицу (енгл. execution unit), која типично садржи:
    • Аритметичко-логичку јединицу (енгл. ALU - Arithmetic logic unit), која врши аритметичке и логичке операције.
    • Регистре, који служе за привремено складиштење података при извршавању програма (регистри опште намене), као и за чување информација о тренутном стању програма који се извршава (програмски бројач, показивач стека, прихватни регистар инструкције, програмска статусна реч и др.)
  • Подсистем за везивање са меморијом и периферијама

Модернији процесори имају и јединице за рад са бројевима у покретном зарезу, брзу интерну меморију итд. Супер-скаларни процесори имају и по више операционих јединица. што им омогућава да извршавају неколико инструкција истовремено (када оне нису међусобно зависне).

Подела процесора уреди

По томе колико инструкција и са колико података раде у једном „кораку“:

Ову поделу је 1972. године предложио Мајкл Џ. Флин, и по њему се она назива „Флинова таксономија“.

  • једну инструкцију са једним податком (тзв. скаларни процесори, енгл. SISD — Single Instruction Single Data). Подваријанта (супер-скаларни) могу да у току извршавања одреде које парове инструкција и података могу да изврше у исто време и то и учине.
  • једну инструкцију извршавају на више података одједном (тзв. векторски процесори, енгл. SIMD — Single Instruction Multiple Data)
  • извршавају више независних инструкција, сваку на својим подацима (енгл. MIMD — Multiple Instruction Multiple Data)
  • извршавају више независних инструкција, сваку на једном, заједничком, податку(енгл. MISD — Multiple Instruction Single Data)

Иако се SIMD некада користио углавном на векторским суперрачунарима попут оних које је 70-их година 20. века популарисао Cray, потреба за обрадом мултимедијалних података је довела до додавања SIMD инструкција у архитектуру процесора опште намене, тренд који је изродио технологије као што су PowerPC-јев AltiVec, Intel-ови MMX, SSE, SSE2, SSE3 и SSE4, AMD-ов 3DNow!, SPARC-ов VIS, Sun-ов MAJC, PA-RISC-ов MAX и MIPS-ови MDMX и MIPS-3D.

Флинова таксономија данас није од значаја као практична подела, јер модерни рачунарски системи често потпадају у неколико (па чак и све четири!) категорије ове таксономије. Илустративан пример би био неки dual Pentium 4 Xeon систем је у основи x86 SISD архитектура са SIMD проширењима (MMX, SSE, SSE2...), ради симетрично мултипроцесирање на два одвојена микропроцесора (MIMD), а сваки од њих садржи језгро са пајплајн архитектуром која се може схватити као MISD (јер сваки корак у пајплајну оперише над истим податком — инструкцијом која се извршава).


По архитектури и скупу инструкција се деле и на:

  • Процесоре са комплексним скупом инструкција, у којима се свака комплексна инструкција интерно преводи у низ микрокод инструкција (енгл. CISC — Complex Instruction Set Computer). Овакав скуп инструкција је обично „угоднији“ за програмирање, али генерално резултује мањом брзином извршавања. Свакако значајан пример CISC архитектуре је Интелова (и АМД-ова) 80x86 фамилија, а овакав дизајн су користили и CDC 6600, System/360, VAX, PDP-11 и Motorola 68000.
  • Процесоре са редукованим скупом инструкција, у којима се инструкције не преводе већ су директно подржане (енгл. Reduced Instruction Set Computer). Овакав скуп инструкција је обично „незгоднији“ за програмирање али генерално резултује већом брзином извршавања. Повећање величине радне меморије, као и развој компајлера су довели до тога да је данас RISC општеприхваћена филозофија у дизајну микропроцесора. Чак и модерни Интелови и АМД-ови процесори, иако програмеру изгледају као CISC машине, интерно разбијају CISC инструкције у низове интерних RISC инструкција (микрооперација) које се затим извршавају на суперскаларном језгру.


Подела на RISC и CISC је општеприхваћена али постоје и неке мање званичне подваријанте и комбинације:

  • Процесоре са јако редукованим скупом инструкција (енгл. ERISC — Extremely Reduced Instruction Set Computer).
  • Процесоре са „проширеним“ редукованим скупом инструкција, у којима се већина инструкција не преводи већ су директно подржане али садрже и комплексне инструкције (енгл. ERISC — Extended Reduced Instruction Set Computer). Овакав скуп инструкција је и угодан за програмирање и резултује већом брзином извршавања али сам процесор постаје значајно комплекснији. Напомена: ова категоризација није потпуно званична. Једно време су побољшане верзије CISC процесора биле приближене RISC архитектури и биле класификоване као „ERISC“.

Остале поделе

  • по ширини адресне магистрале, магистрале података, итд. (рецимо, 4004 је 4-битни процесор, Z80 8-битни, MC68000 16-битни итд.)
  • по технологији израде и степену интеграције (за микропроцесоре)
  • по томе да ли имају засебне магистрале за програмску меморију и меморију за податке (погледајте харвардску архитектуру) или користе једну (погледајте фон Нојманову архитектуру)

Произвођачи микропроцесора уреди

Постоји већи број произвођача микропроцесора, а међу њима се истичу: АМД, Интел, Моторола, IBM, Трансмета, Qualcomm.

Види још уреди

Референце уреди

  1. ^ а б Weik, Martin H. (1961). „A Third Survey of Domestic Electronic Digital Computing Systems”. Ballistic Research Laboratory. 
  2. ^ Kuck 1978, стр. 12
  3. ^ Willhalm, Thomas; Dementiev, Roman; Patrick Fay (18. 12. 2014). „Intel Performance Counter Monitor – A better way to measure CPU utilization”. software.intel.com. Приступљено 17. 2. 2015. 
  4. ^ Liebowitz, Matt; Kusek, Christopher; Spies, Rynardt (2014). VMware vSphere Performance: Designing CPU, Memory, Storage, and Networking for Performance-Intensive Workloads. Wiley. стр. 68. ISBN 978-1-118-00819-5. 
  5. ^ Regan, Gerard. A Brief History of Computing. стр. 66. ISBN 978-1-84800-083-4. 
  6. ^ „Bit By Bit”. Haverford College. Архивирано из оригинала 13. 10. 2012. г. Приступљено 1. 8. 2015. 
  7. ^ „First Draft of a Report on the EDVAC” (PDF). Moore School of Electrical Engineering, University of Pennsylvania. 1945. Архивирано из оригинала (PDF) 23. 4. 2004. г. Приступљено 28. 1. 2018. 
  8. ^ University, Stanford. „The Modern History of Computing”. The Stanford Encyclopedia of Philosophy. Приступљено 25. 9. 2015. 
  9. ^ Enticknap, Nicholas (лето 1998), „Computing's Golden Jubilee”, Resurrection, The Computer Conservation Society (20), ISSN 0958-7403, Архивирано из оригинала 9. 1. 2012. г., Приступљено 19. 4. 2008 
  10. ^ „The Manchester Mark 1”. The University of Manchester. Приступљено 25. 9. 2015. 
  11. ^ „The First Generation”. Computer History Museum. Приступљено 29. 9. 2015. 
  12. ^ „The History of the Integrated Circuit”. Nobelprize.org. Приступљено 29. 9. 2015. 
  13. ^ Turley, Jim. „Motoring with microprocessors”. Embedded. Приступљено 15. 11. 2015. 
  14. ^ „Mobile Processor Guide – Summer 2013”. Android Authority. Приступљено 15. 11. 2015. 
  15. ^ „ARM946 Processor”. ARM. Приступљено 15. 11. 2015. 
  16. ^ „Konrad Zuse”. Computer History Museum. Архивирано из оригинала 3. 7. 2012. г. Приступљено 29. 9. 2015. 
  17. ^ „Timeline of Computer History: Computers”. Computer History Museum. Приступљено 21. 11. 2015. 
  18. ^ White, Stephen. „A Brief History of Computing - First Generation Computers”. Приступљено 21. 11. 2015. 
  19. ^ „Harvard University Mark - Paper Tape Punch Unit”. Computer History Museum. Приступљено 21. 11. 2015. 
  20. ^ „What is the difference between a von Neumann architecture and a Harvard architecture?”. ARM. Приступљено 22. 11. 2015. 
  21. ^ „Advanced Architecture Optimizes the Atmel AVR CPU”. Atmel. Архивирано из оригинала 14. 11. 2015. г. Приступљено 22. 11. 2015. 
  22. ^ „Switches, transistors and relays”. BBC. Архивирано из оригинала 05. 12. 2016. г. Приступљено 7. 2. 2016. 
  23. ^ „Introducing the Vacuum Transistor: A Device Made of Nothing”. IEEE Spectrum. Приступљено 7. 2. 2016. 
  24. ^ „What Is Computer Performance?”. The National Academies Press. Приступљено 16. 5. 2016. 
  25. ^ „1953: Transistorized Computers Emerge”. Computer History Museum. Приступљено 3. 6. 2016. 
  26. ^ „IBM System/360 Dates and Characteristics”. IBM. 
  27. ^ Amdahl, G. M.; Blaauw, G. A.; Brooks, F. P. Jr. (април 1964). „Architecture of the IBM System/360”. IBM Journal of Research and Development. IBM. 8 (2): 87—101. ISSN 0018-8646. doi:10.1147/rd.82.0087. 
  28. ^ Brodkin, John. „50 years ago, IBM created mainframe that helped send men to the Moon”. Ars Technica. Приступљено 9. 4. 2016. 
  29. ^ Clarke, Gavin. „Why won't you DIE? IBM's S/360 and its legacy at 50”. The Register. Приступљено 9. 4. 2016. 
  30. ^ „Online PDP-8 Home Page, Run a PDP-8”. PDP8. Приступљено 25. 9. 2015. 
  31. ^ „Transistors, Relays, and Controlling High-Current Loads”. New York University. ITP Physical Computing. Приступљено 9. 4. 2016. 
  32. ^ Lilly, Paul. „A Brief History of CPUs: 31 Awesome Years of x86”. PC Gamer. Приступљено 15. 6. 2016. 
  33. ^ а б Patterson, Hennessy & Larus 1999, стр. 751

Литература уреди

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