Централен процесор

от Уикипедия, свободната енциклопедия
Направо към: навигация, търсене
Ядро на микропроцесор Intel 80486DX2 (реални размери: 12×6,75 mm)

Централният процесор (отанглийски: Central processing unit, „централна оперираща единица“), наричан още ЦПУ (CPU), е основната част на електронноизчислителна машина, която декодира и изпълнява инструкциите от програмното осигуряване. Често тя е наричана само процесор, макар че в много съвременни системи има и други процесори, изпълняващи специализирани функции.

Терминът процесор започва да се използва в началото на 60-те години на 20 век,[1] но оттогава формата и устройството на централните процесори са се променили драстично, макар и основните принципи на тяхното функциониране да остават същите. Първите процесори са проектирани специално за отделни големи компютри, но с времето този метод отстъпва място на серийното производство на процесори, някои от които предназначени за множество разнообразни задачи.

Тенденцията към стандартизация започва още по времето на процесорите, съставени от дискретни транзистори и бързо се засилва с масовото въвеждане на интегралните схеми. С напредъка в тяхната миниатюризация, централните процесори все по-често се изпълняват като една интегрална схема и се наричат микропроцесори. Тези евтини серийно произвеждани устройства днес намират широк кръг приложения, далеч надхвърлящ първоначалното им предназначение в компютрите - съвременните микропроцесори се използват в различни технически системи - от автомобили до мобилни телефони и детски играчки.

История[редактиране | edit source]

Ранни компютри[редактиране | edit source]

EDVAC, един от първите електронни компютри със съхранявана програма

Първите компютри, от типа на ENIAC, имат нужда от физическа промяна на свързването на компонентите, за да извършват различни действия, поради което се наричат компютри с фиксирана програма. Тъй като понятието централен процесор обикновено се свързва с възможността за изпълнение на различни компютърни програми (вж архитектура на фон Нойман), най-ранните устройства, които могат да бъдат наречени така, са част от първите компютри със съхранявана програма.

Концепцията за програмируем компютър съществува още в проекта на Джон Преспър Екърт и Джон Мокли за ENIAC, но е изоставена, за да може машината да бъде завършена по-бързо. На 30 юни 1945 година, преди завършването на ENIAC, математикът Джон фон Нойман публикува изследване, озаглавено „Първа чернова на доклад за EDVAC“ („First Draft of a Report on the EDVAC“), в което описва принципите на компютър със съхранявана програма, който трябва да бъде завършен през август 1949 година.[2] EDVAC е проектиран за изпълнението на известен брой различни инструкции, които могат да бъдат съчетавани, така че да образуват полезни програми.

Най-важното нововъведение при EDVAC е, че програмите се съхраняват във високоскоростна памет, вместо да се определят чрез начина на физическо свързване на компонентите на компютъра. По този начин е преодоляно най-тежкото ограничение на ENIAC – значителното време и усилия, необходими за преконфигуриране на компютъра за изпълнение на нова задача. В компютъра на Фон Нойман програмата може да бъде променена само с промяната на съдържанието на паметта на компютъра. Още преди завършването на EDVAC, ENIAC е реконструиран по начин, позволяващ му също да съхранява програми.

Макар че обикновено заслугата за създаването на компютъра със съхранявана програма е приписвана на Джон фон Нойман, и други преди него, като Конрад Цузе, са предлагали и прилагали подобни идеи. Системата Mark I, завършена преди EDVAC, също използва съхранявани програми, но записвани на хартиена перфолента, вместо в електронна памет. Основната разлика между EDVAC и Mark I в това, че при Mark I съхранението и обработката на данните и инструкциите е разделено, докато в системата на Фон Нойман, както и в повечето съвременни процесори, те използват една и съща памет.

Като цифрово устройство процесорът е ограничен до определено множество дискретни състояния и има нужда от някакъв вид превключващи елементи, за да разграничава и променя тези състояния. Преди широкото разпространение на транзисторите за тази цел обикновено се използват релета и електронни лампи. Въпреки че тези устройства са значително по-бързи от по-ранните механични превключватели, по различни причини те не са много надеждни. Така например изграждането на правотокови схеми с последователна логика от релета изисква допълнителен хардуер за елиминиране на проблема с контактните скокове. При електронните лампи този проблем не съществува, но те трябва да се нагреят, преди да станат напълно годни за използване, а с времето спират да работят, заради замърсяването на катодите им, което се получава в резултат на нормалния им начин на работа, а при разхерметизиране на лампата бързо се ускорява. При проблем с дадена лампа целият процесор трябва да се диагностицира, за да се локализира и да се подмени повредената лампа.

По изброените причини ранните електронни (лампови) компютри са като цяло по-бързи, но по-ненадеждни от електромеханичните (използващи релета) машини. Ламповите компютри, като EDVAC, работят средно около 8 часа между отделните повреди, докато релейни системи, като като Mark I, се повреждат много рядко.[1] В крайна сметка ламповите процесори стават по-широко разпространени, тъй като значително по-голямата скорост се оказва по-важна от проблемите с надеждността.

Повечето от тези ранни синхронни процесори работят с ниска тактова честота, в сравнение със съвременните микроелектронни устройства. През този период обичайните честоти на системния часовник са от 100 kHz до 4 MHz, като основният ограничаващ фактор е скоростта на превключващите устройства.

Дискретни транзистори и интегрални схеми[редактиране | edit source]

Централен процесор, памет и външна шина на DEC PDP-8/I., изградени с интегрални схеми

Устройството на процесорите се усложнява, след като различни нови технологии улесняват създаването на по-малки и по-надеждни електронни устройства. Първото такова изобретение е транзисторът. През 50-те и 60-те години базираните на транзистори процесори вече не разчитат на обемисти, ненадеждни и нетрайни превключващи елементи, като електронните лампи и релетата. Това дава възможност за изграждането на по-сложни и надеждни процесори, съставени от една или повече печатни платки, съдържащи отделни компоненти.

През този период се разпространява един нов метод за производство на голям брой транзистори в ограничено пространство. Интегралната схема позволява множество транзистори да се включат в един общ полупроводников цокъл, наричан чип. Първоначално интегралните схеми се използват само за много прости неспециализирани схеми, например за отделни логически елементи. Процесорите, базирани на такива елементарни интегрални схеми, обикновено се наричат устройства със слаба интеграция (SSI). SSI интегралните схеми, използвани в компютри като Apollo Guidance Computer, обикновено съдържат по няколко десетки транзистори. Изграждането на цял процесор от SSI интегрални схеми изисква хиляди отделни чипове, но все пак отнема много по-малко пространство и има по-нисък разход на енергия от дотогавашните устройства с дискретни транзистори. С напредъка на микроелектрониката, интегралните схеми започват да включват все повече транзистори, намалявайки броя на отделните схеми, необходими за създаване на пълен процесор. Интегралните схеми със средна (MSI) и силна интеграция (LSI) вече имат стотици, а след това и хиляди транзистори. Така първият компютър на DEC с LSI устройство, вариант на модела PDP-11, има процесор с едва четири интегрални схеми.[3]

През 1964 година IBM въвеждат компютърната архитектура System/360, в която за пръв път е въведена идеята за микрокод и стандартизиране на програмите изпълнявани от процесорите. Дотогава повечето електронни компютри, включително такива от един и същ производител, са несъвместими и не могат да изпълняват едни и същи програми.[4] Архитектурата System/360 става толкова популярна, че в продължение на десетилетия доминира на пазара на мейнфрейм компютри.

Базираните на транзистори процесори имат няколко отчетливи предимства пред своите предшественици. Освен подобрената надеждност и по-ниската консумация на енергия, те имат и много по-висока скорост, поради по-краткото време на превключване на транзистора в сравнение с електронната лампа или релето. Благодарение на увеличената надеждност и значително по-високата скорост на превключващите елементи, през 60-те години процесорите достигат тактови честоти от десетки мегахерци. През този период се появяват и първите високоефективни векторни процесори, ранни предшественици на по-късните специализирани суперкомпютри.

Микропроцесори[редактиране | edit source]

Появата на микропроцесорите през 70-те години значително променя устройството и приложението на процесорите. След появата на пазара на първия микропроцесор (Intel 4004) през 1970 година и на първия модел, получил широко разпространение (Intel 8080) през 1974 година, тази група процесори измества почти напълно останалите видове. Основните производители на мейнфрейм компютри и миникомпютри започват собствени разработки, за да подобрят дотогавашните си компютърни архитектури, и създават микропроцесори с набори от инструкции, съвместими с използваните в по-старите им системи хардуер и софтуер. В резултат на този процес, съчетан с появата и масовия успех на персоналните компютри, днес понятието „процесор“ се отнася почти изключително до микропроцесорите.

Докато по-старите модели процесори са съставени от отделни компоненти и множество малки интегрални схеми, разположени върху една или повече платки, микропроцесорите се състоят от много малък брой интегрални схеми, обикновено само една. По-малкият общ размер на процесора, представляващ самостоятелен чип, позволява още по-голямо съкращаване на времето за превключване. Това дава възможност синхронните микропроцесори да достигат тактови честоти от десетки мегахерци до няколко гигахерца. Освен това с нарастването за възможността за конструиране на все по-малки транзистори в интегралните схеми се увеличават силно сложността и броят на транзисторите в отделния процесор. Тази емпирична закономерност е формулирана в наблюдавания от 60-те години до днес закон на Мур, според който технически постижимата плътност на транзисторите в интегралните схеми се удвоява за 18 до 24 месеца.

Въпреки че сложността, размерът, устройството и общият вид на процесорите се променят значително от тяхната поява насам, основните принципи на тяхното функциониране остават приблизително същите. Почти всички съвременни процесори могат да бъдат точно описани като машини на Фон Нойман със съхранявана програма. Въпреки че законът на Мур продължава да е в сила, през последните години се поставя въпроса за ограниченията в технологията на интегралните схеми. Крайната минитюаризация на логическите елементи увеличава въздействието на физични явления, като електромиграцията, които могат да попречат на този процес. Това е една от причините да се търсят нови конструкции на процесорите, като квантовия компютър, както и да се разширяват приложенията на паралелизма и на други методи, разширяващи класическия модел на Фон Нойман.

Общо описание[редактиране | edit source]

Съвременният микропроцесор най-общо се състои от ядро и кеш-памет (от първо, второ и трето ниво, а може и да липсва) и входни, изходни и контролни изводи от общ електрически характер. Той изпълнява набор от команди, реализирани логически от транзисторни схеми. Основни характеристики са: честота на работа на ядрото, честота на работа с входно/изходните канали и обем на кеш-паметта за всяко ниво. Процесорът също така може да бъде синхронен (синхронизиран с външен или вътрешен източник на честота - кварц) или асинхронен, който не използва синхронизиращ източник. Процесорът 80x86 се състои от две части: устройство за магистрален интерфейс (Bus interface unit), което образува интерфейса към адресната магистрала за данни, прочита инструкциите в паметта и обменя данни с паметта или периферните устройства, и изпълнително устройство което обработва прочетените инструкции и данни. Докато изпълнителният блок още обработва една инструкция, следващите байтове-инструкции се прочитат от паметта от устройството за магистрален интерфейс и се подреждат на опашка. Чрез този начин на паралелна работа се повишава значително скоростта на обработката. При Pentium паралелната обработка е развита още повече. При него освен по една свръхбързодействаща междинна памет (кеш-памет) за инструкции и за данни има още един предварително запълван буфер за инструкции и две паралелно работещи аритметично-логически устройства за цели числа (ALU), така че могат да се извършват паралелно две аритметични операции. Процесорът за обработка на числа с плаваща запетая е интегриран в чипа и работи също така паралелно с целочислените устройства. Той е реализиран с конвейерна структура - обработката на инструкциите протича на няколко стъпки. В устройството за магистрален интерфейс се намира блок от пет 16-разредни регистъра (при новите процесори, регистрите са 32-разредни), които посредством един суматор през магистралната система имат достъп до паметта (RAM/ROM).


Част от микропроцесорите включват в същата интегрална схема и контролера на паметта. Когато интегралната схема включва контролери за вход-изход, тя се нарича микроконтролер. През 1999 г. развитието на технологиите позволява съвместяването на два централни процесора в рамките на една интегрална схема и отделните процесори биват наричани процесорни ядра. В такъв контекст терминът „процесор“ се използва за обозначаване на цялата интегрална схема и се говори за едно-и дву- и многоядрени процесори.

Същност и предназначение[редактиране | edit source]

Централният процесор е най-големият чип на дънната платка. Той е сърцето на компютърната система, изпълнява инструкциите и борави с данните. Представлява малка капсулирана силициева пластина с вградени микроелектронни елементи (транзистори). Микропроцесорите дълго време представляваха един-единствен чип, който се свързваше към различни по размер гнезда (sockets) върху дънната платка. Много от по-новите модели се произвеждат върху обособена платка с интегрални схеми, която се поставя в специален процесорен слот върху дънната платка. Най-важните характеристики на един процесор са:

  • Тип на процесора;
  • Скоростта, с която работи;
  • Размер и тип на включената в него кеш-памет;
  • Колко бита е шината за данни;
  • Колко битова адресна шина поддържа;
  • Допълнителни процесорни инструкции, които поддържа;
  • Тип на физическото свързване, което поддържа

Съставни части[редактиране | edit source]

CPU се състои от две основни части:

  • Аритметико-логическо устройство (АЛУ)
  • Контролно (управляващо) устройство (УУ)

Тези части на процесора са свързани с електронна връзка наречена шина (BUS). Шината действа като високоскоростна магистрала между тях. За временно съхранение на данни и инструкции процесорът използва специални клетки памет, наречени регистри.

Аритметико-логическо устройство (АЛУ)[редактиране | edit source]

Аритметико-логическото устройство изпълнява всички аритметични и логически функции – събиране, изваждане, умножение, деление и сравняване на две числа (А>В, А≥В, А=В, А≠В, А≤В, А<В). Това устройство контролира скоростта на изчислителния процес. При по-старите микрокомпютри времето за изпълнение на една инструкция се измерваше в милисекунди, а при новите в наносекунди или в пикосекунди. Изградено е от ЛЕ(логически елементи) ИЗКЛЮЧВАЩО ИЛИ, ИЛИ, ИЛИ-НЕ и НЕ. АЛУ е комбиниран компаратор с пълен суматор. АЛУ може да бъде 2 разреден, 4 разреден, 8 и т.н. 8 разредните са изградени от над 300 отделни компонента.

Управляващо устройство (control unit)[редактиране | edit source]

Контролното устройство е сложна електронна схема, която извършва управлението и координирането на повечето от дейностите на компютъра. То не изпълнява инструкции, а казва на отделните части на компютърната система какво да правят. То определя движението на електронните сигнали между главната памет и аритметико-логическото устройство, а също и на контролните сигнали между централния процесор и входно-изходните устройства.

Шина (BUS)[редактиране | edit source]

Терминът адресна шина или просто шина отговаря на електрическия път, по който битовете се пренасят между различните компютърни компоненти. В зависимост от типа на системата, могат да съществуват няколко вида шини. За потребителите най-съществена е шината за данни, която пренася данните от и към централния процесор. Колкото е по-широка шината за данни, толкова по-голяма е изчислителната скорост на компютъра. Например процесор Intel Pentium II има 32 битова шина, което означава, че тя може да пренася 32 бита наведнъж.

Честота на процесора[редактиране | edit source]

Микропроцесорът си има контролер на паметта, който синхронизира и задава скоростта на всички операции в един машинен цикъл. Скоростта на системния часовник в една компютърна система се измерва като честота, изразена в цикли и секунди. Тя се контролира от кварцов кристал в малък метален контейнер. Когато към краищата на кристала се подаде напрежение, той започва да осцилира (вибрира) с определена честота, която зависи от неговата форма и големина. Тези вибрации генерират променлив ток с честота, хармонична на честотата на трептене на кристала. Това променливо напрежение е и честотата на часовника. Обективно тя е от порядъка на няколко милиона цикъла в секунда.

Бързодействието на процесор (тактовата честота) се измерва в мегахерци - 1MHz означава един милион такта в секунда. Тактовата честота определя до голяма степен производителността на процесора. Съвременните процесори имат тактова честота от 2 и повече GHz, а някои от новите процесори като AMD Phenom II 980 са с честота 3,7 GHz.

Един цикъл е най-малкият интервал от време, който може да съществува в работата на процесора. Всяко действие продължава най-малко един, а обикновено и повече цикли. Например при прехвърлянето на данни от и към паметта на процесор 8086 са му необходими четири цикъла плюс състояние на изчакване. Състоянието на изчакване е цикъл, при който процесорът не извършва никакво действие, за да не изпревари останалата част от компютъра. За същото нещо на процесор 80286 са му необходими два цикъла плюс състояние на изчакване.

Времето, необходимо за изпълнение на инструкциите, е също различно за различните процесори. Оригиналните процесори 8086 и 8088 изпълняват една инструкция средно за 12 цикъла. Процесорите 80286 и 80386 извършват същата инструкция за около 4–5 цикъла, а 80486 за два цикъла. При Pentium процесорите една инструкция се изпълнява за един цикъл, а при Pentium 4 за половин. Сравнението на различните системи само на базата на тактовата честота е трудно поради различните времена (в цикли) за изпълнение на инструкциите. Така един 100 MHz Pentium се равнява приблизително на 200Mhz 80486 процесор или на 400Mhz процесор 80386 или 286. Както се вижда, сравняването на различните системи само на базата на тактовата честота не е правилно, тъй като има много други фактори, които влияят върху производителността на системата.

Как работи един процесор[редактиране | edit source]

Процесорите работят, като извършват изчисления на базата на конкретни инструкции, записани в софтуера, работещ на компютъра. Тези инструкции, които при стартиране на дадено приложение се зареждат в процесора, му указват как да обработва порциите от данни, записани в оперативната памет (RAM) на компютъра. Така процесорите непрекъснато „препускат“ през инструкции и данни, които се зареждат в тях от паметта. Освен, че работят с основната памет, процесорите използват и един специален тип бързодействаща памет, наричана „кеш памет“ (cache). Кеш-паметта спомага процесорите да бъдат по-продуктивни. Тя съхранява инструкции и данни, използвани наскоро от процесора. Благодарение на своята близост до главния изчислителен механизъм вътре в процесора и на факта, че процесорът често се нуждае от повторно използване на едни и същи инструкции и данни, кеш-паметта поддържа процесора активен и ускорява работата на компютъра като цяло. Всъщност през повечето време процесорите работят директно с различни типове кеш-памет, а тя от своя страна се свързва с основната оперативна памет. Така кеш-паметта служи като бързодействащ буфер между процесора и основната памет, прехвърляйки данните в процесора, когато се нуждае от тях и ги изисква.

Бързодействие[редактиране | edit source]

Въпреки, че номиналното бързодействие на процесора е важен фактор при определяне на бързината, с която той извършва изчисления, има и други важни различия в това как различните процесори вършат своята работа вътрешно. Например много процесори изпълняват няколко изчисления едновременно. Технологията, която поддържа този метод, се нарича „конвейрна обработка“. Освен това някои прескачат напред, за да изпълнят допълнителни изчисления, за които се предполага, че работещата програма ще ги поиска, преди програмата наистина да ги поиска. Това се нарича „спекулативно изпълнение“ и е една от многото сложни операции, които се срещат в съвременните процесори. Различните процесори реализират тези методи по разнообразни начини, с което се обясняват многото разлики в цялостната производителност на чипа, независимо от неговото бързодействие в MHz.

Друг важен фактор в общата производителност на чипа е доколко са работоспособни различните процесорни схеми. Процесорите имат способност да работят непрекъснато и да дават резултати толкова бързо, колкото им се задават задачи, над които да работят. Следователно в идеалния случай бихме искали да подаваме на процесора непрекъснат поток от данни, така че той да може да ги обработва с максимална скорост. В действителност обаче различни забавяния, които се получават в компютърната система, често принуждават процесора да стои без работа за кратки периоди от време, през които той изчаква пристигането на следващите данни.

Важен метод за компенсиране на тези забавяния е добавянето на специална бързодействаща памет в цялостната схема на процесора на компютъра. И в двата случая целта е процесорът да се накара да работи колкото е възможно повече, защото това се трансформира директно в по-голямо общо бързодействие на компютъра.

Кеш памет L1 и L2[редактиране | edit source]

Кеш паметта играе особено важна роля за производителността на процесора(CPU). Тя може в голяма степен да подобри ефективността на процесора(CPU), като му предоставя достъп до необходимите данни по-бързо, отколкото това прави обикновената оперативна памет(RAM).Чиповете на кеш паметта са не само по-бързи, но имат и по-бърза връзка с процесора(CPU).

Как работи кеш паметта?

Процесорът работи много по-ефективно, когато има по-бърз достъп до вече използвани данни и инструкции, или до „кеш паметта“. След като процесорът завърши това, над което е работил, той може да се обърне към нея, вместо към обикновената (и по-бавна) RAM памет, която се намира по-далеч и получаването на данни от нея изисква повече време.

Двата най-разпространени типа кеш-памет се означават като L1 (Level 1- ниво 1) и L2 (Level 2– ниво 2). Има и кеш-памет L3 (Level 3), но този вид не е много популярен. Въпреки, че в техническо отношение кеш-паметта е вид памет, в повечето случаи L1 и L2 са вградени в процесорния чип или в самата процесорна карта. Така че тя е по-скоро елемент на процесора, отколкото на паметта.

Всяко ниво на кеш паметта представлява отделна част памет и се третира от процесора независимо. По традиция кеш паметта L1 е по-малка от двете и се разполага в самия процесор, а L2 се разполага в непосредствена близост извън него.

Когато процесорът работи с няколко вида кеш памет, първо проверява кеш паметта L1, след това кеш L2 и накрая – основната памет. Реално кешът е прозрачен за процесора, тъй като CPU се обръща към RAM паметта чрез виртуални адреси, а кеш паметта използва своите механизми за да определи дали има съвпадение на даден адрес вътре в регистрите си. При съответствие на адрес кеш паметта подава данните към процесора, като обръщението към основната памет се прекратява.

Друга съществена разлика между кеш L1 и L2 е бързината, с която процесорът може да осъществява достъп до различните видове памет. Тъй като кеш паметта L1 е интегрирана във вътрешността на микропроцесора, тя обикновено работи със същата бързина, с каквато и централният процесор; така например при процесор с тактова честота 500 MHz, скоростта на връзката към кеш паметта L1 е също 500 MHz. Кеш паметта L2 се свързва при по-старите системи с процесора със същата скорост като на оперативната памет. Тази скорост се определя от „системната шина“ (system bus) на компютъра, което обикновено работи при 66, 100, 133 MHz, а при новите процесори Pentium 4 при 400, 533,667,800MHz.За Pentium EE 1067Mhz,а за Intel's Core 2 Quadro на 1333Mhz. Ако кеш паметта се намира в самия процесор или на процесорната платка, както е при повечето процесори Pentium II и Pentium III, връзката процесор-кеш L2 става през така наречената „задна шина“ (backside bus). Тази шина работи по-бързо от системната шина, но наполовина от скоростта на процесора. Това се нарича „съотношение 1:2“. Така при процесор Pentium III с тактова честота 500 MHz, скоростта на връзката процесор – кеш L2 е 250 MHz. При системи, при които кеш паметта L2 е вградена в самия чип, има съотношение 1:1 между скоростта на процесора и скоростта на връзката процесор – кеш L1.Вече всички производители Intel AMD и други вграждат L2 кеша в самия чип тъй като настоящите а и бъдещи процесори, са зависими до голяма степен от неговата скорост.Тоест при работа в режим 1:1 времето за зареждане от L2 е много по малко. При PentiumD моделите от серия 9хх L2 кеша е общ за двата процесора като по този начин се постига динамично разпределение на кеша от процесорните ядра, ако едното ядро е неактивно другото може да ползва целия обем L2.За Core 2 Quadro се използва подобна организация на кеша но разликата е че има 2 кеша от второ ниво тъй като общо са 4 ядра. Или получаваме следната конфигурация.L1 data-4x32KBytes за L1 Code-4x32KBytes и L2-2x4096Kbytes.

Производители на процесори[редактиране | edit source]

Бележки[редактиране | edit source]

  1. а б Weik, Martin H. A Third Survey of Domestic Electronic Digital Computing Systems. // Antique (lonesome) Computers. Ed Thelen's Nike Missile Web Site, 2010. Посетен на 26 юни 2010.
  2. von Neumann, John. First Draft of a Report on the EDVAC (PDF). // 1945. Посетен на 10 юли 2010.
  3. Digital Equipment Corporation. LSI-11 Module Descriptions. // LSI-11, PDP-11/03 user's manual. 2nd. Maynard, Massachusetts, Digital Equipment Corporation, November 1975. с. 4–3.
  4. Amdahl, G. M.; G. A. Blaauw, F. P. Brooks Jr. (1964)."Architecture of the IBM System/360". IBM Research.

Вижте също[редактиране | edit source]