ХТГ објашњава како процесор заправо ради?
Већина ствари у компјутеру је релативно једноставна за разумевање: РАМ, складиште, периферни уређаји и софтвер раде заједно како би направили функцију рачунара. Али срце вашег система, ЦПУ, изгледа као магија чак и за многе техничаре. Ево, потрудићемо се да га прекинемо.
Већина истраживања за овај чланак потиче од „Али како то зна?“ Ј. Цларка Сцотта. То је фантастично читање, улази у много више дубине него што ће овај чланак имати, и добро је вриједан пар долара на Амазону.
Једна напомена пре него што почнемо: модерни ЦПУ-ови су реда величине сложенији од онога што овде описујемо. Скоро је немогуће да једна особа разуме сваку нијансу чипа са преко милијарду транзистора. Међутим, основни принципи како се све уклапа заједно остају исти, а разумијевање основа ће вам дати боље разумијевање модерних система.
Стартинг Смалл
Рачунари раде у бинарном облику. Разумеју само две државе: укључивање и искључивање. Да би извршили калкулације у бинарном, они користе оно што се зове транзистор. Транзистор дозвољава само да струја извора струји кроз њу у одвод ако постоји струја преко капије. У суштини, ово формира бинарни прекидач, који искључује жицу у зависности од другог улазног сигнала.
Модерни компјутери користе милијарде транзистора за извршавање прорачуна, али на најнижим нивоима, потребно је само шачицу да формира најосновније компоненте, познате као капије.
Логиц Гатес
Стацк неколико транзистора исправно, и имате оно што је познато као логичка врата. Логичка врата узимају два бинарна улаза, изводе операцију на њима и враћају излаз. ОР гате, на пример, враћа труе ако је било који од улаза тачан. АНД гате проверава да ли су оба улаза тачна, КСОР проверава да ли је само један од улаза тачан, а Н-варијанте (НОР, НАНД и КСНОР) су инвертоване верзије њихових основних врата.
Доинг Матх витх Гатес
Са само две капије можете направити основни бинарни додатак. Овај дијаграм показује пола сабирача, креираног помоћу Логицли, бесплатног онлине игралишта за логичка врата. Овде ће се КСОР капија укључити ако је укључен само један улаз, али не оба. И капија ће се укључити ако су оба улаза укључена, али се искључите ако нема уноса. Дакле, ако су оба укључена, КСОР остаје искључен, а АНД врата се укључују, долазећи до тачног одговора два:
Ово нам даје једноставну конфигурацију са три различита излаза: нула, један и два. Али један бит не може да сачува ништа више од 1, а ова машина није превише корисна јер решава само један од најједноставнијих могућих математичких проблема. Али ово је само пола сабирача, и ако повежете два од њих са другим улазом, добићете пун скупа:
Потпуни сабирник има три улаза - два броја за додавање и “носач”. Пренос се користи када коначни број прелази оно што се може похранити у једном биту. Потпуни сабирачи ће бити повезани у ланац, а носач се преноси са једног сабирача на следећи. Пренос се додаје резултату КСОР капије у првој половини сабирача, а ту је и додатни ОР капија за руковање у оба случаја када је тако потребно да се укључи.
Када су оба улаза укључена, носач се укључује, и шаље га следећем пуном сабирнику у ланцу:
И то је једнако сложено као што се додаје. Померање до више битова у суштини значи само пуно више сабирача у дужем ланцу.
Већина других математичких операција се може обавити са додатком; умножавање је само понављајуће додавање, одузимање се може обавити са неком фанци битном инверзијом, а подела је само понављајуће одузимање. И док сви савремени рачунари имају решења заснована на хардверу да убрзају компликованије операције, све то можете технички урадити са пуним сабирањем.
Бус и Меморија
Управо сада, наш компјутер није ништа друго него лош калкулатор. То је зато што не може ништа да запамти и ништа не чини са својим резултатима. Горе приказана меморијска ћелија, која може све то да уради. Под хаубом користи много НАНД капија, ау стварном животу може бити сасвим другачије у зависности од технике складиштења, али је његова функција иста. Дали сте му неке улазе, укључите 'врите' бит, и он ће похранити улазе унутар ћелије. Ово није само меморијска ћелија, већ нам је потребан и начин читања информација из ње. Ово је учињено са омогућивачем, који је колекција АНД гатеса за сваки бит у меморији, све везано за други улаз, “реад” бит. Битови писања и читања се често називају и "сет" и "енабле".
Овај цео пакет је упакован у оно што је познато као регистар. Ови регистри су повезани са сабирницом, која је сноп жица које се крећу око цијелог система, спојене на сваку компоненту. Чак и модерни рачунари имају аутобус, иако могу имати више аутобуса како би побољшали перформансе у више задатака.
Сваки регистар још увек има бит писања и читања, али у овом подешавању улаз и излаз су исте ствари. Ово је стварно добро. На пример. Ако сте хтели да копирате садржај Р1 у Р2, укључили би бит за читање за Р1, који би гурнуо садржај Р1 у бус. Док је читани бит укључен, укључили би бит писања за Р2, који би копирао садржај сабирнице у Р2.
Регистри се такође користе за прављење РАМ-а. РАМ се често поставља у мрежу, са жицама у два правца:
Декодери узимају бинарни улаз и укључују одговарајућу нумерисану жицу. На пример, "11" је бинарно 3, највиши 2-битни број, тако да декодер укључи највишу жицу. На свакој раскрсници постоји регистар. Све ово је повезано са централном сабирницом и централним улазом за писање и читање. И улаз за читање и писање ће се укључити само ако су укључене и двије жице које прелазе преко регистра, што вам омогућава да изаберете регистар из којег ћете писати и читати. Опет, модерни РАМ је много компликованији, али ово подешавање и даље ради.
Сат, Степпер и Декодер
Регистри се користе свуда и основни су алат за преношење података и похрањивање информација у ЦПУ. Дакле, оно што им говори да се крећу около?
Сат је прва компонента у језгру ЦПУ-а и искључиће се и укључити у задатом интервалу, мерено у херц или циклусима у секунди. Ово је брзина коју видите рекламиране заједно са процесорима; 5 ГХз чип може извести 5 милијарди циклуса у секунди. Брзина такта је често врло добра метрика за брзину процесора.
Сат има три различита стања: основни сат, омогућени сат и подешени сат. Базни сат ће бити укључен пола циклуса и искључен за другу половину. Омогућени сат се користи за укључивање регистара и мораће бити укључен дуже како би се осигурало да су подаци омогућени. Сет сат мора увијек бити укључен у исто вријеме као и омогућен сат, иначе би могли бити написани неточни подаци.
Сат је повезан са степером, који ће се рачунати од једног до мак корака и вратити се на онај када се заврши. Сат је такође повезан са АНД капијом за сваки регистар на који ЦПУ може да пише:
Ова И врата су такође повезана са излазом друге компоненте, декодера инструкција. Декодер инструкција узима инструкцију као што је "СЕТ Р2 ТО Р1" и декодира је у нешто што ЦПУ може да разуме. Она има свој интерни регистар, назван “Регистар инструкција”, где се тренутна операција складишти. Како се то тачно своди на систем на коме радите, али када се дешифрује, он ће укључити исправан сет и омогућити битове за исправне регистре, који ће се искључити у складу са сатом.
Програмске инструкције се чувају у РАМ (или Л1 кешу на модерним системима, ближе ЦПУ-у). Пошто се програмски подаци похрањују у регистре, као и свака друга варијабла, њиме се може манипулирати у лету како би се скакао по програму. Овако програми добијају своју структуру, са петљама и иф изјавама. Наредба скока поставља тренутну локацију у меморији коју декодер инструкција чита на другу локацију.
Како све то долази заједно
Сада, наша бруто поједностављење функционисања ЦПУ-а је завршено. Главни аутобус покрива цео систем и повезује се са свим регистрима. Потпуни сабирачи, заједно са гомилом других операција, упаковани су у аритметичку логичку јединицу или АЛУ. Ова АЛУ ће имати везе са сабирницом и такође ће имати своје регистре за чување другог броја на којем ради.
Да бисте извршили прорачун, програмски подаци се учитавају из системског РАМ-а у контролни одељак. Контролна секција чита два броја из РАМ-а, учитава првог у АЛУ-ов регистар инструкција, а затим учитава други у бус. У међувремену, шаље АЛУ код са инструкцијама који му говори шта да ради. АЛУ затим извршава све израчуне и похрањује резултат у други регистар, од којег ЦПУ може читати, а затим наставити процес.
Имаге Цредит: Рост9 / Схуттерстоцк