Опште је познато да код пише програмер и како људи комуницирају са рачунарима. Међутим, да ли сте икада размишљали о томе како софтвер као што је код комуницира са рачунарским хардвером као што је ЦПУ (централна процесорска јединица)? Ако је одговор да, онда сте дошли на право место.

Да бисте разумели како се код извршава на рачунару, морате разумети шта чини рачунар квачицом и како се њиме може манипулисати. Прво, хајде да прво разговарамо о основним идејама рачунарског хардвера пре него што пређемо на софтверску страну ствари.

Шта је бинарно?

Бинарни је систем бројева са базом 2 који процесори и меморија користе за извршавање кода. Бинарни бројеви могу бити само 1 или 0, отуда и његово име. Ако групишете осам бинарних бројева (00000000), добијате оно што је познато као бајт, док се један бинарни број (0) назива бит.

Како једноставан прекидач производи бинарне сигнале

Све логично у вези са рачунарством са машинама почиње једноставним прекидачем. Једноставан прекидач има два проводника и механизам за повезивање и растављање. Повезивање оба проводника омогућава струји да тече, што производи сигнал другом крају проводника. С друге стране, ако су проводници искључени, струја неће тећи, што значи да неће бити произведен сигнал.

instagram viewer

Кредит за слику: 991јосепх/Викимедиа Цоммонс

Пошто прекидач може бити укључен или искључен само у једном случају, они пружају идеалан механизам за стварање високих и ниских сигнала који се користе за производњу сигнала правокутног таласа.

Када притиснете прекидач, он производи сигнал или један бит података. Обична фотографија снимљена са паметног телефона имала би око пет мегабајта података, што је 40.000.000 бита. То би значило да ћете морати да притиснете прекидач десетине милиона пута само да бисте произвели довољно података за једну фотографију снимљену са вашег паметног телефона.

Са механичким ограничењима прекидача, инжењерима је било потребно нешто што није имало покретне делове и што је обезбедило веће брзине пребацивања.

Транзистори који се користе као прекидачи

Слика транзистора Кредит: Еван-Амос/Викимедиа и Скуаре Ваве Имаге Кредит: Спонк/Викимедиа

Захваљујући открићу допинга (манипулисање електричном проводљивошћу полупроводника попут силицијума), инжењери су успели да направе електрично контролисане прекидаче познате као транзистори. Овај нови проналазак омогућио је веће брзине обраде којима је био потребан мали напон за напајање, што је на крају омогућило да се преко милијарду ових транзистора сложи на једном модерном ЦПУ-у.

Шта је ЦПУ архитектура?

Транзистори су затим паметно распоређени да направе логичке капије, полу-сабираче, сабираче, флип-флопове, мултиплексере, регистре и разне компоненте које чине ЦПУ функционалним. Начин на који су ове компоненте сложене дефинише оно што је познато као ЦПУ архитектура.

Архитектура ЦПУ-а такође диктира ИСА (Архитектура скупа инструкција) процесора. ИСА садржи уграђену листу инструкција које ЦПУ може да изврши изворно. Ова упутства се затим узастопно мешају заједно кроз програмски језик да би се направило оно што је познато као програм. Обично су стотине инструкција лако доступне на ЦПУ-у, укључујући сабирање, одузимање, померање, чување и учитавање.

Ево примера скупа инструкција:

Узорак скупа инструкција

Свака инструкција у скупу инструкција има своју бинарну адресу познату као опкод. Оперативни код ће бити првих неколико бинарних битова који говоре коју операцију из скупа инструкција треба користити.

Склоп-инструкција-синтакса

После кода операције је операнд. Операнд садржи вредности и адресе на којима ће се користити код.

Дијаграм приказује 8-битну инструкцију. Ако ЦПУ има 64-битну архитектуру, онда инструкције могу да обухватају до 64 бита у ширини инструкција, што га чини способнијим процесором.

Повезан: По чему се разликују РИСЦ и ЦИСЦ процесори?

Асемблер

Сада када разумете бинарне сигнале, можете научити о томе како ваш рачунар тумачи такве сигнале. Како ће се тумачити машински код зависи од типа логике која се користи на асемблеру (програм ниског нивоа који се користи за декодирање и састављање кода у исправан бинарни).

На пример, ако наш асемблер користи АСЦИИ (Амерички стандардни код за размену информација) стандард, наш асемблер би узео дати машински код и тумачио га исто као из АСЦИИ у табели испод.

00101001 А 00101111 Г 00110101 М 00111011 С 01000001 И
00101010 Б 00110000 Х 00110110 Н 00111100 Т 01000010 З
00101011 Ц 00110001 И 00110111 0 00111101 У
00101100 Д 00110010 Ј 00111000 П 00111110 В
00101101 Е 00110011 К 00111001 П 00111111 В
00101110 Ф 00110100 Л 00111010 Р 0100000 Икс

Пошто наш асемблер користи АСЦИИ (8-битна верзија), сваких осам бинарних бројева у бинарном систему тумачи се као један знак. Асемблер би узео овај бајт и интерпретирао га према датим стандардима. На пример, 01000001 01101001 01010100 би се превео у реч „бит“.

Разумевање асемблерског језика

Асемблерски језик је човеку читљив програмски језик ниског нивоа који директно манипулише опкодовима и операндима ЦПУ архитектуре.

Ево примера једноставног асемблерског кода који користи скуп инструкција приказан раније:

1. ЛОДА #5 
2. ЛОДБ #7
3. ДОДАЈ Р3
4. СТРЕ М12

Овај блок кода се чува у РАМ-у све док ЦПУ не преузме сваки ред кода један по један.

Циклус преузимања, декодирања и извршавања ЦПУ-а

ЦПУ извршава код кроз циклус познат као дохвати, декодирај и изврши. Ова секвенца показује како ЦПУ обрађује сваки ред кода.

Преузми: Бројач инструкција унутар ЦПУ-а узима једну линију инструкција из РАМ-а како би ЦПУ знао коју инструкцију да изврши следеће.

Дешифрујте: Асемблер ће декодирати човеку читљив блок кода и саставити га као правилно форматиране бинарне датотеке како би их рачунар разумео.

1. 00010101 
2. 00100111
3. 00110011
4. 01011100

Изврши: ЦПУ затим извршава бинарне датотеке применом инструкција назначених кодом операције на дате операнде.

Рачунар ће извршити то на следећи начин:

  1. Учитајте први регистар са 5
  2. Учитајте други регистар са 7
  3. 5 + 7 = 12, сачувајте 12 у трећи регистар
  4. Сачувајте вредност трећег регистра на РАМ адреси М12

Рачунар је успешно сабрао два броја и сачувао вредност на наведеној РАМ адреси.

Сјајно! Сада знате како рачунар извршава код. Међутим, ту се не зауставља.

Иде даље

Уз одговарајући хардвер, асемблер и асемблерски језик, људи би могли да извршавају код са разумном лакоћом. Међутим, како су и програми и рачунарски хардвер постали још сложенији, морали су инжењери и програмери смислите начин да програмирање учините мање заморним и обезбедите компатибилност са различитим врстама ЦПУ-а архитектура. Тако стварање компајлера и интерпретатора.

Шта је компајлер и тумач?

Компајлер и тумач су преводилачки програми који преузимају изворни код (програми направљени од програмски језици високог нивоа) и превести их у асемблерски језик, који ће асемблер потом декодирати на бинарни.

Ан тумач ће узети један ред кода и одмах га извршити. Ово се обично користи на терминалима као што су Линук Басх Схелл терминал и Виндовс ПоверСхелл терминал. Одлично за обављање једноставних једнократних задатака.

Кредит за слику: Рлистмедиа/Викимедиа Цоммон

Насупрот томе, а компајлер ће узети више линија кода и компајлирати их да направи програм. Примери ових програма би били Мицрософт Ворд, Пхотосхоп, Гоогле Цхроме, Сафари и Стеам.

Стварањем компајлера и интерпретатора настали су програмски језици високог нивоа.

Програмски језици високог нивоа

Програмски језици високог нивоа су било који језик после асемблерског кода. Неки од ових језика који су вам можда познати су Ц, Питхон, Јава и Свифт. Ови програмски језици су учинили програмирање читљивијим и једноставнијим од асемблерског језика.

Ево упоредног поређења да би се илустровало колико је теже програмирати у асемблеру него са програмским језиком високог нивоа као што је Питхон:

Оба кода ће одштампати „Хелло Ворлд“.

Са овим програмским језицима, програмери могу програмирати игре, веб странице, апликације и драјвере, уз разумну количину времена.

Повезан: Питхон вс. Јава: Најбољи језик за 2022

Рачунари могу да извршавају све врсте кода

Рачунар је уређај који може да чита само бинарне податке. Ове бинарне датотеке производи преко милијарду транзистора микроскопске величине упакованих у ЦПУ. Распоред транзистора диктира ЦПУ-ову ИСА (архитектуру скупа инструкција), која обезбеђује стотине инструкција које ЦПУ може лако да изведе када се његов код прозове кроз код. Програмери мешају и усклађују ова упутства узастопно, што ствара читав програм као што су мотори за игре, веб претраживачи, апликације и драјвери.

ЦПУ извршава код кроз секвенцу познату као циклус преузимања, декодирања и извршавања. Једном када се део кода учита у РАМ, ЦПУ ће дохватити његов садржај један по један, декодирати садржај у бинарно кроз асемблер, а затим извршити код.

Пошто асемблер може да преведе само код направљен експлицитно за архитектуру процесора, компајлери и интерпретери су направљени на врху асемблера (слично као адаптер) за рад на различитим типовима ЦПУ-а архитектура. Преводилац ће преузети једну команду и одмах је извршити. Насупрот томе, компајлер ће узети све ваше команде и превести их у програм за вишекратну употребу.

Програмски језици високог нивоа као што су Питхон, Ц и Јава су креирани да би програмирање учинили лакшим, бржим и практичнијим. Велика већина програмера више не мора да кодира у асемблерском језику, јер се њихови програмски језици високог нивоа који су лаки за употребу могу превести у склоп преко компајлера.

Надамо се да сада боље разумете основе рачунара и како они извршавају код.

Како рачунар ради и шта је унутра?

То је једноставно питање, али о којем сви с времена на време размишљају: како заправо ради тај рачунар испред вас?

Реад Нект

ОбјавиТвеетЕмаил
Повезане теме
  • Објашњена технологија
  • Програмирање
  • Рачунарски процесор
  • Обрада
О аутору
Јаириц Манинг (Објављено 5 чланака)

Желећи да научи како ствари функционишу, Џејрик Менинг је почео да петља са свим врстама електронских и аналогних уређаја током својих ранијих тинејџерских година. Похађао је форензичку науку на Универзитету Багуио где се упознао са компјутерском форензиком и сајбер безбедношћу. Тренутно ради много самоучиња и петља са технологијом откривајући како функционишу и како можемо да их користимо да олакшамо живот (или барем хладније!).

Више од Јаирица Манинга

Претплатите се на наш билтен

Придружите се нашем билтену за техничке савете, рецензије, бесплатне е-књиге и ексклузивне понуде!

Кликните овде да бисте се претплатили