Централен процесор | важна част от всеки компютър

Централният процесор (CPU) е важна част от всеки компютър. Централният процесор изпраща сигнали за управление на другите части на компютъра, почти както мозъкът управлява тялото.

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

Тактовата честота, или скоростта на вътрешните части на процесора, се измерва в херцове (Hz). Съвременните процесори често работят толкова бързо, че вместо това се използват гигахерци (GHz). Един GHz е 1 000 000 000 цикъла в секунда.

Повечето процесори, използвани в настолните (домашните) компютри, са микропроцесори, произведени от Intel или Advanced Micro Devices (обикновено съкратено AMD). Някои други компании, които произвеждат процесори, са ARM (наскоро закупена от Nvidia), IBM и AMD в рамките на ATI Technologies, която е лидер в момента. Повечето от техните процесори се използват във вградени системи за по-специализирани неща, като например в мобилни телефони, автомобили, конзоли за видеоигри или в армията.




  Процесор Pentium в компютър  Zoom
Процесор Pentium в компютър  

Видове процесори

През 20-ти век инженерите изобретяват много различни компютърни архитектури. В днешно време повечето настолни компютри използват 32-битови или 64-битови процесори. Инструкциите в 32-битовите процесори са подходящи за обработка на данни с размер 32 бита (повечето инструкции "мислят" с 32 бита в 32-битов процесор). По същия начин 64-битовият процесор е добър в обработката на данни с размер 64 бита (и често е добър и в обработката на 32-битови данни). Размерът на данните, с които процесорът се справя най-добре, често се нарича размер на думата на процесора. Много стари процесори от 70-те, 80-те и началото на 90-те години (и много съвременни вградени системи) имат 8- или 16-битов размер на думата. Когато са били изобретени процесорите в средата на 20. век, те са имали много различни размери на думата. Някои от тях са имали различни размери на думите за инструкциите и данните. По-късно по-малко популярните размери на думата са спрели да се използват.

Повечето процесори са микропроцесори. Това означава, че процесорът е само един чип. Някои чипове с микропроцесори в себе си съдържат и други компоненти и представляват цялостни едночипови "компютри". Това се нарича микроконтролер.


 

Регистри

Когато процесорът изпълнява компютърна програма, той трябва да има къде да съхранява данните, с които работят инструкциите (данните, които те четат и записват). Това хранилище се нарича регистър. Процесорът обикновено има много регистри. Достъпът до регистрите (четенето и записът) трябва да е много бърз. Затова те са част от самия процесорен чип.


 

Памет

Съхраняването на всички данни в регистри би направило повечето процесори твърде сложни (и много скъпи). Затова в регистрите обикновено се съхраняват само данните, с които процесорът работи "в момента". Останалите данни, използвани от програмата, се съхраняват в RAM (памет с произволен достъп). С изключение на микроконтролерите, оперативната памет обикновено се съхранява извън централния процесор в отделни чипове.

Когато процесорът иска да прочете или запише данни в RAM, той извежда адрес на тези данни. Всеки байт в RAM има адрес на паметта. Размерът на адресите често е еднакъв с размера на думата: 32-битов процесор използва 32-битови адреси и т.н. По-малките процесори обаче, като 8-битовите, често използват адреси, които са по-големи от размера на думата. В противен случай максималната дължина на програмата би била твърде малка.

Тъй като размерът на адресите е ограничен, максималното количество памет също е ограничено. 32-битовите процесори обикновено могат да работят само с до 4 GB RAM. Това е броят на различните байтове, които могат да бъдат избрани с помощта на 32-битов адрес (всеки бит може да има две стойности - 0 и 1, а 232 байта са 4 GB). Един 64-битов процесор може да се справи с до 16 ЕБ оперативна памет (16 екзабайта, около 16 милиарда GB, или 16 милиарда милиарда байта). Операционната система може да го ограничи да използва по-малки количества.

Информацията, която се съхранява в оперативната памет, обикновено е нестабилна. Това означава, че тя ще изчезне, ако компютърът бъде изключен.

Единици за управление на паметта (MMU) и виртуална памет

Съвременните процесори често използват блок за управление на паметта (MMU). MMU е компонент, който превежда адресите от процесора към (обикновено) различни адреси на оперативната памет. Когато се използва MMU, адресите, използвани в програмата, (обикновено) не са "реалните" адреси, на които се съхраняват данните. Това се нарича виртуална (противоположна на "реалната") памет. Няколко от причините, поради които е добре да имате MMU, са изброени тук:

  • MMU може да "скрие" паметта на други програми от дадена програма. Това става, като не се превеждат никакви адреси към "скритите" адреси, докато програмата работи. Това е добре, защото означава, че програмите не могат да четат и променят паметта на други програми, което подобрява сигурността и стабилността. (Програмите не могат да се "шпионират" една друга или да си "стъпват на краката").
  • Много MMU могат да направят някои части от паметта незаписваеми, нечетими или неизпълними (което означава, че кодът, съхранен в тази част от паметта, не може да бъде изпълнен). Това може да е полезно от съображения за стабилност и сигурност, както и по други причини.
  • Модулите MMU позволяват на различните програми да имат различни "гледни точки" към паметта. Това е удобно в много различни ситуации. Например, винаги ще бъде възможно "основният" код на дадена програма да бъде на един и същ (виртуален) адрес, без да се сблъсква с други програми. Удобно е и когато има много различни части от кода (от библиотеки), които се споделят между програмите.
  • MMU позволяват кодът от библиотеките да се появява на различни адреси при всяко стартиране на програмата. Това е добре, тъй като незнанието къде се намират нещата в паметта често затруднява хакерите да накарат програмите да правят лоши неща. Това се нарича рандомизация на адресното пространство.
  • Усъвършенстваните програми и операционни системи могат да използват трикове с MMU, за да избегнат необходимостта от копиране на данни между различни места в паметта.

 

Кеш

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

Често има смисъл да се използва "кеш за кеша", точно както има смисъл да се използва кеш за оперативната памет. При многостепенното кеширане има много кешове, наречени кеш L1, кеш L2 и т.н. Кешът L1 е най-бързият (и най-скъпият на байт) кеш и е "най-близо" до процесора. Кешът L2 е на една стъпка разстояние и е по-бавен от кеша L1 и т.н. Често кешът L1 може да се разглежда като кеш за кеша L2 и т.н.


 

Автобуси

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


 

Набори от инструкции

Наборът от инструкции (наричан още ISA - Instruction Set Architecture) е език, който се разбира директно от даден процесор. Тези езици се наричат още машинен код или двоичен код. В тях се казва как да кажете на централния процесор да прави различни неща, например да зарежда данни от паметта в регистър или да събира стойностите от два регистъра. Всяка инструкция в набора от инструкции има кодиране, което е начинът, по който инструкцията се записва като последователност от битове.

Програмите, написани на езици за програмиране като C и C++, не могат да се изпълняват директно от процесора. Те трябва да бъдат преведени в машинен код, преди процесорът да ги изпълни. Компилаторът е компютърна програма, която извършва този превод.

Машинният код е просто последователност от 0 и 1, което затруднява четенето му от хората. За да се направи по-четим, програмите с машинен код обикновено се пишат на асемблер. Езикът за асемблиране използва текст вместо 0 и 1: Например можете да напишете "LD A,0", за да заредите стойността 0 в регистър А. Програма, която превежда езика на асемблер в машинен код, се нарича асемблер.


 

Функционалност

Ето някои от основните функции, които може да изпълнява процесорът:

  • Четене на данни от паметта и записване на данни в паметта.
  • Добавяне на едно число към друго число.
  • Проверка дали едно число е по-голямо от друго.
  • Преместване на число от едно място на друго (например от един регистър в друг или между регистър и памет).
  • Преминаване към друго място в списъка с инструкции, но само ако е вярно някакво условие (например само ако едно число е по-голямо от друго).

Дори много сложни програми могат да бъдат създадени чрез комбиниране на много прости инструкции като тези. Това е възможно, защото всяка инструкция се изпълнява за много кратко време. Много днешни процесори могат да изпълняват повече от 1 милиард (1 000 000 000) инструкции за една секунда. Като цяло, колкото повече инструкции може да извърши един процесор за определено време, толкова по-бърз е той. Един от начините за измерване на скоростта на процесора е MIPS (Million Instructions Per Second). Flops (операции с плаваща запетая в секунда) и тактовата честота на процесора (обикновено измервана в гигахерци) също са начини за измерване на това колко работа може да свърши един процесор за определено време.

Процесорът е изграден от логически врати; той няма движещи се части. Процесорът на компютъра е свързан електронно с други части на компютъра, като видеокартата или BIOS. Компютърната програма може да управлява тези периферни устройства, като чете или записва числа на специални места в паметта на компютъра.


 

Конвейери за инструкции

Всяка инструкция, изпълнявана от процесора, обикновено се изпълнява на много стъпки. Например стъпките за изпълнение на инструкцията "INC A" (увеличаване на стойността, записана в регистър A, с единица) на обикновен процесор могат да бъдат следните:

  • Прочетете инструкцията от паметта,
  • декодиране на инструкцията (установяване на нейното действие) и
  • добавете едно към регистър А.

Различните части на централния процесор правят различни неща. Често е възможно някои стъпки от различни инструкции да се изпълняват едновременно, което прави процесора по-бърз. Например можем да прочетем дадена инструкция от паметта в същото време, когато декодираме друга инструкция, тъй като тези стъпки използват различни модули. Това може да се разглежда като наличие на много инструкции "вътре в конвейера" едновременно. В най-добрия случай всички модули работят едновременно върху различни инструкции, но това не винаги е възможно.


 

Множество ядра

Многоядрените процесори станаха много по-разпространени в началото на 21-ви век. Това означава, че в един и същи чип са вградени много процесори, така че да могат да изпълняват много инструкции едновременно. Някои процесори могат да имат до шестдесет и четири ядра, като например предстоящата серия AMD Epyc "Milan". Дори процесорите за потребители имат много ядра, като например шестнадесетядреният AMD Ryzen 9 5950x.


 

Многонишковост

Някои процесори разполагат с технология, известна като многонишковост. Това е задачата да се изпълняват повече от една "нишка" от инструкции в операционната система. Много от съвременните процесори използват това, за да повишат производителността при тежки многонишкови програми, като например програми за бенчмаркове.


 

Производители

Следните компании произвеждат компютърни процесори:

  • ARM
  • Intel
  • Разширени микроустройства
  • MCST
  • SRISA
  • Sun Microsystems

 

Допълнителна информация



 

Въпроси и отговори

Въпрос: Какво представлява процесорът?


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

Въпрос: Как работи процесорът?


О: Централният процесор чете списъка с инструкции и изпълнява всяка от тях в определен ред. Списъкът с инструкции, които процесорът може да изпълнява, е компютърна програма.

В: В какво се измерва тактовата честота или скоростта на процесора?


О: Тактовата честота или скоростта на вътрешните части на процесора се измерва в херцове (Hz). Съвременните процесори често работят толкова бързо, че вместо това се използват гигахерци (GHz) - един GHz е 1 000 000 000 цикъла в секунда.

Въпрос: Кои са някои компании, които произвеждат процесори?


О: Някои компании, които произвеждат процесори, са Intel, Advanced Micro Devices (AMD), ARM (наскоро купена от Nvidia), IBM и AMD под ATI Technologies, която в момента е водеща на пазара.

В: Къде се използват повечето процесори?


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

AlegsaOnline.com - 2020 / 2023 - License CC3