Процесор
Из пројекта Википедија
Процесор (у рачунарству) је извршна јединица — прима и извршава инструкције прочитане из одговарајуће меморије. Када се каже само „процесор“ најчешће се мисли на централни процесор (енг: central processing unit — CPU, централна процесорска јединица), али постоје и процесори специјалних намена као што су процесори сигнала, разни графички процесори, итд. Сам по себи процесор не чини рачунар, али је један од најважнијих делова сваког рачунара.
Садржај |
[уреди] Историја
Први процесори су били механички и практично нису били засебан део рачунара (нпр. какве је пројектовао Чарлс Бебиџ) затим електромеханички (релејни) па на бази електронских вакуумских цеви и били су јако велики (обично су рачунари заузимали целе просторије или чак спратове). До значајног смањења димензија и повећања перформанси дошло је употребом транзистора (минипроцесори) и, у другој половини 20. века, интегралних кола (микропроцесори).
[уреди] Организација процесора
Централни процесори обично садрже:
- Управљачку јединицу (енг: control unit), која управља радом осталих компоненти, конкретно операционе јединице. У раним данима рачунарства се функционалност управљачке јединице махом реализовала хардверски (ожичена реализација), док се данас типично користи микропрограмска реализација, где се рад процесора, укључујући и његов сет инструкција, имплементира кроз микропрограм.
- Операциону јединицу (енг: execution unit), која типично садржи:
- Аритметичко-логичку јединицу (енг: ALU - Arithmetic logic unit), која врши аритметичке и логичке операције.
- Регистре, који служе за привремено складиштење података при извршавању програма (регистри опште намене), као и за чување информација о тренутном стању програма који се извршава (програмски бројач, показивач стека, прихватни регистар инструкције, програмска статусна реч и др.)
- Подсистем за везивање са меморијом и периферијама
Модернији процесори имају и јединице за рад са бројевима у покретном зарезу, брзу интерну меморију итд. Супер-скаларни процесори имају и по више операционих јединица. што им омогућава да извршавају неколико инструкција истовремено (када оне нису међусобно зависне).
[уреди] Подела процесора
По томе колико инструкција и са колико података раде једном „кораку“:
Ову поделу је 1972. године предложио Michael J. Flynn, и по њему се она назива „Флинова таксономија“.
- једну инструкцију са једним податком (тзв. скаларни процесори, енг: 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 and 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.
- Процесоре са редукованим скупом инструкција, у којима се инструкције не преводе већ су директно подржане (енг: RISC — 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-битни итд.)
- по технологији израде и степену интеграције (за микропроцесоре)
- по томе да ли имају засебне магистрале за програмску меморију и меморију за податке (погледајте харвардску архитектуру) или користе једну (погледајте фон Нојманову архитектуру)
[уреди] Произвођачи микропроцесора
Постоји већи број произвођача микропроцесора, а међу њима се истичу: AMD, Intel, МОТОРОЛА, IBM и Трансмета.