Принципно устройство на процесора Процесорът, CPU (Central Processing Unit) или още микропроцесорът, е сърцето на една компютърна система. Микропроцесорът прави изчисления, изпълнява логически операции и управлява потоците от данни като използва затова инструкции, които чете от паметта и след това ги изпълнява. В ранната епоха на компютрите, функционалните компоненти на процесора са били отделни (и във физически смисъл доста големи) единици. Тогава и възниква понятието CPU (Central Processing Unit). В модерните процесори всички тези отделни компоненти са обединени в една интегрална електронна схема, гравирана върху малка силиконова пластина. Понятията: процесор, CPU (Central Processing Unit) и микропроцесор се използват взаимозаменяемо в тази книга. Процесорът работи с данни представени в двоичен вид; тези данни се състоят от единици и нули. Тези нули и единици съответствуват на електрически ключ с положения "включен" и "изключен". Например десетичното число 42 има значението на "4 десетици и 2 единици", двоичните числа са поредица от нули и единици, всяка от които представя степен на числото 2. В този смисъл, степента показва, колко пъти числото се умножава само по себе си.Например: 10 на степен 1 е 10, 10 на степен 2 (102) е 10х10, 10 на степен 3 (103) е 10х10х10 и т. н. Двоичното число 0001 е равно на десетичното 1, двоичното число 0010 е равно на десетичното 2, двоичното число 0011 е равно на десетичното 3 и т. н. Така десетичното число 42 е равно на двоичното 101010 или (2 + 8 + 32 или 21 + 23 + 25). По-често в компютрите вместо двоичен се използва шестнадесетичен код. В шестнадесетичен вид, всеки знак представя степен на числото 16. Тъй като числата обозначени с един знак са само от 0 до 9 то знаците от 10 до 15 се представят с буквите A, B, C, D, E и F. Например, шестнадесетичното Е е десетичното 14, а 2А е десетичното 42 (2 по 16 + 10). Използвайки нотацията на програмния език С (което правя по-нататък в книгата) шестнадесетичните числа се предшествуват от "0x"; така шестнадесетичното 2А се пише като 0х2А.Процесорът може да изпълнява аритметични операции като събиране, умножение, деление, а също така и логически операции като "Х по-голямо ли е от Y?" Действията на процесора се ръководят от един външен часовник. Този системен часовник генерира импулси към процесора и за всеки такъв импулс, процесорът извършва определена работа. Например, процесорът може да изпълнява една инструкция на всеки импулс. Скоростта на процесора се описва посредством тактовете на системния часовник. Един 100 MHz процесор може да приеме 100 000 000 такта за една секунда. Подвеждащо е да се отчита мощността на процесора, съобразно тактовата му честота, тъй като различните процесори изпълняват различно количество работа за един такт. Но ако всички фактори са идентични, то по-високата тактова честота е показател за по-мощен процесор. Инструкциите, които изпълнява процесора са доста прости, например "Прочети съдържанието на паметта от адрес Х и го запиши в регистър Y" Регистрите са вътрешна памет на самия процесор и служат за съхранение на данни и за извършване на действия с тях. По време на извършваните операции може да се предизвика едно прекъсване на текущата работа на процесора и да се прехвърли посредством друга инструкция на друго място в паметта. Това разделяне на работата на малки съставни части, дава на модерните процесори една почти безгранична мощ да изпълнява милиони, дори милиарди инструкции за секунда. Инструкциите трябва да бъдат изведени от паметта за да могат да бъдат изпълнени. Инструкциите от друга страна могат да се отнасят до данни намиращи се в паметта, които също трябва да бъдат изведени оттам и запазени на подходящо място. Размерът, броя и вида на регистрите в процесора зависят изцяло от неговия тип. Един Intel 4086 има различен тип регистри в сравнение с един Alpha AXP процесор, например за Intel те са с ширина 32 бита, а при Alpha AXP са с ширина 64 бита. Обикновено, обаче всеки процесор има няколко общи регистъра и малко по-малко на брой регистри със специално предназначение: Program Counter (PC) - Програмен брояч Този регистър съдържа адреса на следващата инструкция, която трябва да бъде изпълнена. Съдържанието на програмния брояч се допълва всеки път, когато се извежда една инструкция от паметта. Stack Pointer (SP) - Указател на стека Процесорите трябва да имат достъп до големи обеми от паметта за четене/писане (RАМ), което от своя страна изисква да се улесни временното съхранение на данни.Регистърът Указател на стека е един такъв начин за лесно съхраняване и извеждане на временни данни във външната (RAM) памет. Обикновено процесорът има специални инструкции, позволяващи му да въвежда и по-късно да извежда данни от този регистър.Стекът работи на принципа "това което е въведено последно се извежда първо". С други думи, ако въведете две стойности в последователност x и y, то извеждането на стойности от стека ще започне с у. Стековете създавани от някои процесори се разширяват в посока към горните слоеве на паметта, докато при други това нарастване става в посока към долните участъци. Има процесори поддържащи и двата типа нарастване, например ARM. Processor Status (PS) - Статус на Процесора Инструкциите могат да извеждат и резултати, например "съдържанието на регистър Х по-голямо ли е от съдържанието на регистър Y", ще изведе съответния резултат "вярно" или "невярно". Регистърът Статус на процесора пази тези и други данни за моментното състояние на процесора. Например, повечето процесори имат най-малко два начина на работа, режим кърнъл (главен ръководител) и режим потребител. Регистърът Статус на процесора трябва да пази информация за текущия режим на процесора. Системната шина свързва процесора с паметта и е отделена от останалите шини свързващи процесора с другите хардуерни компоненти.. Най-общо, тази област от паметта, където се пазят данните за периферните компоненти се нарича I/O (Input/Output) област. Тя от своя страна може да се разделя на подобласти, но ние няма да разглеждаме този въпрос за момента. Процесорът може да достига, както системната област на паметта, така и I/O областта, докато контролерите нямат пряк достъп до системната област, а само с помощта на процесора. От гледна точка на устройството, да речем флопи диск контролера, ще се види само тази област от паметта, където са неговите регистри (ISA), а не системната област. Обикновено процесора има различни инструкции за достъп до паметта и I/O областта. Например, това може да бъде инструкция от вида "прочети един байт от адрес 0x3f0 и го запиши в регистър Х" Това е начина по който процесора контролира хардуерните компоненти, като чете и пише в техните регистри в I/O областта на паметта.Мястото в I/O областта на паметта, където се намират регистрите на най-основните периферни компоненти (IDE контролерите, серийни портове, флопи диск контролер и т.н.) е определено и е общоприето в течение на развитието на РС архитектурата през годините. Адресът 0x3f0 от I/O областта например е адрес на един от контролните регистри на серийния порт (СОМ1). Кеш (CACHE) паметта се използва с цел съгласуване бързодействието на централния процесор и оперативната памет. Когато времето за достъп до основната (DRAM) памет е много по-голямо в сравнение с такта на процесора, който директно управлява паметта, се налага генериране на състояния на изчакване с цел синхронизация. Това от своя страна води до неефективно използване производителността на процесора. Проблемът се разрешава чрез включване на бърза, с относително малък размер, статична RAM (SRAM) между процесора и DRAM. Поради тази причина кеш паметта е известна и като свръхбърза буферна памет. Идеята е процесора да работи само с бързата кеш памет, а обмена между оперативната и кеш паметта се реализира чрез така наречения контролер на паметта. В една реална компютърна система може да има няколко буферни памети, изпълнени като кеш-памет. Например кеш за данни, кеш за команди, кеш за адресно таблици, локални кеш-памети,кеш-памети за ниските нива в запомнящата система и др. • Архитектурата на процесор с разделни буферни памети за данни и за команди е известна под наименованието “архитектура Харвард”. Разделното изграждане на буферната памет позволява да се извърши независимо оптимизиране на параметрите (обем и степен на асоциация). Разделните кеш-памети позволяват лесно реализиране на паралелен (едновременен) достъп (за данни и за команди). Разделните кеш-памети имат следните недостатъци: - Първият недостатък се изявява в случаите, когато изпълняващата се програма се самомодифицира, като записва нови команди. Новите команди се записват като данни в кеш-паметта за данни и не могат да се изпълнят преди да бъдат прехбърлени в кеш-паметта за команди. Това става когато данните преминат през основната памет. Прехвърлянето на информацията в ОП може да направи единствено самомодифициращата се програма, всеки друг, който би могъл да се намеси в този процес, би объркал тази информация. - Вторият недостатък се състои в това, че не е възможно динамично изменение на обема на едната кеш-памет за сметка на другата, което е нещо естествено в кеш-паметта с общо предназначение. • Архитектурата на процесор с една обща за данни и за команди кеш-памет е известна под наименованието “архитектура Принстън”. Наименованията “Харвард” и “Принстън” произлизат от научните колективи които са ги разработвали.
Устройство на дънната платка Дънната платка (motherboard) съдържа чипове като CPU, RAM, ROM – BIOS, CHIPSET, слотове за разширение, входно-изходни портове и др. Популярни са три типа платки: • Backplane – шинно ориентирани платки, при които на дънната платка има една шина с много сигнали а всички компоненти са в допълнителни платки. • Едноплаткови – на дънната платка са разположени всички компоненти. • Processor comlex design – на дънната платка са разположени CPU, RAM, ROM – BIOS, и разширителни слотове, в които се поставят разширителни платки с останалите компоненти (видеоконтролери, контролери на твърди дискове, мрежови карти, звукови карти и др.) Първият PC през 1981 г. има относително проста дънна платка и много разширителни платки. Тенденцията при съвременните компютри е към усложняванена дънната платка и намаляване на разширителните платки. Може би ще дойде моментът, когато повечето PC-та няма да имат никакви разширителни платки, като функциите, от които се нуждаят потребителите, ще бъдат вградени изцяло в дънната платка. Дънните платки от 1981 г. имат място за процесорен чип, 64К байта памет, връзка с клавиатурата и няколко слота за разширение. Дънните платки от 1998 г. на най-често срещаните настолни компютри включват също часовник/календар, сериен порт, паралелен порт, интерфейси за хард-дискoве и флопидисково устройство, порт за мишка, доста повече памет (при някои модели 2048МВ) и 5 USB порта. Някои маркови модели компютри имат дънни платтки с интегрирани звук и видеокарти. 1 Компоненти на дънната платка 1.1 Процесор(CPU) - процесорът лесно се открива, тъй като той е надписан с фирмения знак на фирмата производител. За IBM съвместими компютри са, това са процесорите на фирмите INTEL, AMD, CYRIX. Процесорите на INTEL са например 80286, 80386, 80486, Pentium, PentiumII, PentiumIII и последния модел PentiumIV. По-старите процесори се поставят в цокъл, като повечето на INTEL са в PGA корпуси. Процесорът Pentium II се поставят вертикално в черна пластмасове касета в специален слот, наречен Slot 1. 1.2 Памет-RAM паметта при по-старите компютри е под формата на малки чипове, подредени в редици и поставени в цокли тип DIP. При новите модели паметта е под формата на SIMM-30 или 72 пинови или DIMM-168 пинови модули (Single/Dual In-line Memory Modules). Те представляват малки платки с ред контакти по единия ръб. При DIMM модулите, за разлика от SIMM, RAM чиповете са монтирани от двете страни на модула и се използват два набора от контакти - по един от всяка страна на платката. На хоризонта се задават технологии, които ще използват и третото измерение, посредством натрупване на чиповете един върху друг. Тези модули, наричани 3-D памети или стекове, ще включват насложени един върху друг силициеви чипове в специални корпуси, побиращи 16MB DRAM в куб със страна 3 милиметра. Друг пример за памет от този вид побира 2 GB DRAM в куб със стратрана един инч. Тази технология позволява значително по-малки компютри или големи компютри със значително по-голям капацитет на паметта. 1.3. Памет – ROM. ROM-BIOS обикновено представлява по-голям чип или два чипа в цокли, като най-често има поставен етикет с номер на версията на софтуера и фирмата производител. Най-известните фирми производителки на BIOS са AMI, AWARD, Phoenix. При по- новите системи ROM чиповете не са поставени в цокли, тъй като представляват Flash памет и не се неждаят от физическа смяна – нoвите версии на програмите от BIOS-а се зареждат директно. 1.4. Слотове за разширение – те представляват сравнително дълги и тесни електрически съединители. В съвременните дънни платки се срещат обикновено два ISA слота, от три до пет PCI и един AGP слот (а вече навлиза в употреба и PCI Express слота). В слотовете за разширение се поставят разширителни карти, или още се наричат адаптери. 1.5 Адаптерни платки. Адаптерните платки (известни още като платки за разширение) са допълнителни платки, които се инсталират в специално конструктурирани цокли (слотове) върху дънната платка. Те се монтират, за да осигурят допълнителни възможности, които не са на лице в дънната платка. Архитектурата на адаптерните платки се определя от архитектурата на персоналния компютър:ISA, EISA, PCI и т.н. Най-често се срещат компютри, в които са включени: • Видеокарти; • Хард контролери; • Платки със серийни и паралелни портове; • Звукови платки; • Мрежови платки; Напоследък, вследствие предимствата на бързите технологии в областта на компютърната техника, повечето от функциите на тези платки са съвместими в една единствена “мултифункционална”платка или са интегрирани върху дънната платка. 1.5 CHIPSET-Чипсет е набор от 1-5 чипа , които включват важни функции на компютърната система: контролер на локалната шина, кеш контролер, DMA контролер, таймер с програмируеми интервали и т.н. Този набор от компоненти диктува изпълнимите параметри като кешово пространство, тип CPU и т.н. Чипсетовете постоянно се въвеждат и подобряват. Те са обект на непрекъснато подобрение. Чипсетът на обикновен високо разпределителен Pentium поддържа EDO и SDRAM, конвейрна пакетна кеш памет, PCI локална шина, AGP порт, управление на мощтността плюс други функции за периферните устройства. Примери за най-съвременни чипсетове са NVidia nForce. 1.6 CMOS батерия - след няколко години работа с един компютър трябва да се смени батерията, защото той няма да може да помни своята конфигурационна информация. CMOS-RAM паметта (256КВ) съхранява информацията на програмата BIOS-Setup. За запазване на данните в тази памет е необходимо допълнително захранване за чипа, за което се използва акумулатор или батерия. Напрежението на батерията трябва да е поне 3V (типично 3.6 V). В новите дънни платки се монтират схеми с вградени батерии, които гарантират запазването на информация поне 10 години. 1.7 Интерфейс на съхраняващи устройства - Компютрите се нуждаят от начин, по който да съхраняват огромното количество информация и програми, с които работят всеки ден. Хранилището на тази информация са съхраняващите устройства с останалата част на системата. В модерните PC-та два или повече интерфейса могат да бъдат интегрирани на дънната платка. Те включват връзки към флопидисковите устройства, твърди дискове и CD-ROM устройства.1.8 Конектори за входно-изходни устройства - използват се няколко вида конектори : а) D¬-образен конентор. D-образният конектор се среща в две разновидности - мъжки и женски. Освен това се различават по броя на пиновете-DB9, DB15, DB25 . Използва се при серийния, паралелния порт, за видеоадаптерите, за мрежови интерфейс. Серийния порт – COM1 се свързва към 9-пинов мъжки тип конектор. Паралелният порт се свързва към 25-пинов женски конектор. Видеоадаптерите се свързват с 15-пинов женски конектор, като пиновете са подредени в 3 реда. б) Съвременните платки притежават до 5 USB конектора (Universal Serial Bus) - Това е друг вид правоъгълен конектор с език вътре в него. в) За свързване на клавиатурата и мишката се използват два Mini DIN конектора тип PS/2. 1.9 Обслужващи елементи - Въпреки, че микропроцесорът е сърцето на компютъра, той сам по себе си не е компютър. Микропроцесорът изисква допълнителни елементи, за да работи тактови генератори, контролери и конвертори на сигнали. Всеки от тези поддържащи елементи има свой начин на въздействие върху програмите и това помага да бъде определено как работи компютъра. Дънната платка осигурява връзката между процесора и другите компоненти чрез шините. Шините действат като матистрала за данни, давайки възможност на порциите данни да бъдат изпращани от една точка към друга вътре във вашия компютър. Най-важна от всички шини е тази, която свързва процесора с паметта. Тази шина се нарича системна шина (System bus). Системната шина е главният механизъм за придвижване на данни към различните части на компютъра. Тя свързва микропроцесора с оперативната памет, както и с другите шини, а те от своя страна, се свързват към различни входно - изходни устройства, прикрепени към вашия компютър. В продължение на няколко години повечето персонални компютри бяха ограничени със скорост на системната шина 66Mhz и това се оказа много “тясно място”, особено с увеличение на бързодействието на процесорите. Отчасти причината за този важен параметър е в това, че процесорите работят при скорости, които са кратни на скоростта на системната шина. Например процесор на 333 Mhz работи с 5-кратна скорост на 66-мегахерцовата шина. С въвеждането на чипсета на INTEL 440BX в началото на 1998 г. компютрите вече могат да поддържат 100-мегахерцови системни шини, което се трансформира в скромно увеличение на производителността. С въвеждането на схемен набор (чипсет) 820 и други, в средата на 1999 г. бързодействието на системната шина скача до 133 Mhz, за да достигне при Pentium IV скорост 880 Mhz. Скокът към по-бързи системни шини предпазва компютъра от пълно претоварване и забавяне на работата поради многократно по-голямо натоварване на системната шина, необходимо за “догонване” на централния процесор. Тази многократност поставя увеличени изисквания към всички други аспекти на компютъра и в крайна сметка го забавя. Освен системната шина (main или host bus) се използват и други шини, които спомагат периферните устройства като твърд диск, видео и звукова карта да “общуват” с процесора и останалата част от компютъра. Най-често срещаните тях са следните типове шини: • PCI (Peripheral connect interface) - интерфейс за свързване на периферни компоненти; • AGP (Accelerated Graphigs Port) – ускорен графичен порт за видеокарта; • USB (Universal Serial Bus)- универсална серийна шина ; • ISA (Industry Standart Architekture) - архетура на промишления стандарт. Всяка от тези шини функционира със собствена скорост и общува с главната шина чрез т.нар. “мостови чипове” (Bridging chips). Представете си възли на автомагистрала за влизане и излизане от нея. Те се наричат още схемен набор или споменатия вече Chipset.