Splošno znano je, da kodo piše razvijalec in kako ljudje komunicirajo z računalniki. Vendar pa ste kdaj razmišljali o tem, kako programska oprema, kot je koda, sodeluje z računalniško strojno opremo, kot je CPU (centralna procesna enota)? Če je odgovor pritrdilen, ste prišli na pravo mesto.

Če želite razumeti, kako se koda izvaja v računalniku, morate razumeti, zakaj računalnik tiktaka in kako se z njim lahko manipulira. Najprej se pogovorimo o temeljnih idejah računalniške strojne opreme, preden preidemo na programsko stran stvari.

Kaj je binarno?

Binarno je številski sistem z bazo 2, ki ga procesorji in pomnilnik uporabljajo za izvajanje kode. Binarna števila so lahko samo 1 ali 0, od tod tudi njeno ime. Če združite osem binarnih številk (00000000), dobite tisto, kar je znano kot bajt, medtem ko se eno samo binarno število (0) imenuje bit.

Kako preprosto stikalo proizvaja binarne signale

Vse logično pri računanju s stroji se začne s preprostim stikalom. Preprosto stikalo ima dva vodnika in povezovalni in odklopni mehanizem. Povezava obeh vodnikov omogoča pretok toka, ki proizvaja signal na drugi konec prevodnika. Po drugi strani pa, če so vodniki odklopljeni, tok ne bo tekel, kar pomeni, da ne bo proizveden signal.

instagram viewer

Zasluge slike: 991joseph/Wikimedia Commons

Ker je stikalo lahko vklopljeno ali izklopljeno samo naenkrat, zagotavljajo idealen mehanizem za ustvarjanje visokih in nizkih signalov, ki se uporabljajo za proizvodnjo pravokotnih signalov.

Ko pritisnete stikalo, proizvede signal ali en bit podatkov. Običajna fotografija, posneta s pametnega telefona, bi imela približno pet megabajtov podatkov, kar je 40.000.000 bitov. To bi pomenilo, da boste morali stikalo pritisniti več deset milijonov krat, da ustvarite dovolj podatkov za eno fotografijo, posneto s pametnega telefona.

Z mehanskimi omejitvami stikala so inženirji potrebovali nekaj, kar ni imelo gibljivih delov in zagotavlja hitrejše preklopne hitrosti.

Tranzistorji, ki se uporabljajo kot stikalo

Zasluge slike tranzistorja: Evan-Amos/Wikimedia in Square Wave Image Zasluge: Sponk/Wikimedia

Zahvaljujoč odkritju dopinga (manipuliranja z električno prevodnostjo polprevodnikov, kot je silicij), so inženirji lahko izdelali električno krmiljena stikala, znana kot tranzistorji. Ta novi izum je omogočil hitrejše hitrosti obdelave, ki so zahtevale malo napetosti za napajanje, kar je na koncu omogočilo zlaganje več kot milijarde teh tranzistorjev na en sam sodoben CPU.

Kaj je arhitektura CPU-ja?

Tranzistorji so nato pametno razporejeni tako, da naredijo logična vrata, polovične seštevalnike, seštevalnike, natikače, multipleksorje, registre in različne komponente, ki omogočajo delovanje CPU. Način, kako so te komponente zložene, opredeljuje tisto, kar je znano kot arhitektura CPU.

Arhitektura CPU narekuje tudi procesorjevo ISA (Arhitektura nabora navodil). ISA ima vgrajen seznam navodil, ki jih CPU lahko izvede izvorno. Ta navodila se nato zaporedno mešajo skupaj v programskem jeziku, da se naredi tako imenovani program. Običajno je na CPU na voljo na stotine navodil, vključno s seštevanjem, odštevanjem, premikanjem, shranjevanjem in nalaganjem.

Tukaj je vzorec nabora navodil:

Vzorec nabora navodil

Vsako navodilo v nizu navodil ima svoj binarni naslov, znan kot opcode. Opcode bo prvih nekaj binarnih bitov, ki povedo, katero operacijo iz nabora navodil uporabiti.

Sintaksa-navodilo za sestavljanje

Za opkodo je operand. Operand vsebuje vrednosti in naslove, kjer bo uporabljena koda operacije.

Diagram prikazuje 8-bitno navodilo. Če ima CPE 64-bitno arhitekturo, lahko navodila obsegajo do 64 bitov v širini ukaza, zaradi česar je bolj zmogljiv procesor.

Povezano: V čem se RISC in CISC procesorji razlikujejo?

Sestavljalec

Zdaj, ko razumete binarne signale, se lahko naučite, kako vaš računalnik razlaga takšne signale. Kako je treba razlagati strojno kodo, je odvisno od vrste logike, ki se uporablja v sestavljalniku (nizkonivojski program, ki se uporablja za dekodiranje in sestavljanje kode v pravilno binarno).

Na primer, če naš montažer uporablja standard ASCII (ameriška standardna koda za izmenjavo informacij), naš sestavljalec bi vzel dano strojno kodo in jo interpretiral enako kot iz ASCII v tabeli spodaj.

00101001 A 00101111 G 00110101 M 00111011 S 01000001 Y
00101010 B 00110000 H 00110110 N 00111100 T 01000010 Z
00101011 C 00110001 jaz 00110111 0 00111101 U
00101100 D 00110010 J 00111000 P 00111110 V
00101101 E 00110011 K 00111001 Q 00111111 W
00101110 F 00110100 L 00111010 R 0100000 X

Ker naš sestavljalnik uporablja ASCII (8-bitna različica), se vsakih osem binarnih števil v dvojiški različici interpretira kot en znak. Sestavljalec bi vzel ta bajt in ga interpretiral v skladu z danimi standardi. Na primer, 01000001 01101001 01010100 bi se prevedlo v besedo "bit".

Razumevanje zbirnega jezika

Jezik montaže je človeku berljiv programski jezik nizke ravni, ki neposredno manipulira z operacijskimi kodami in operandi arhitekture CPU.

Tukaj je primer preproste montažne kode z uporabo nabora navodil, prikazanega prej:

1. LODA #5 
2. LODB #7
3. DODAJ R3
4. STRE M12

Ta blok kode je shranjen v RAM-u, dokler CPU ne pridobi vsako vrstico kode enega za drugim.

Cikel pridobivanja, dekodiranja in izvajanja CPE

CPE izvaja kodo skozi cikel, znan kot pridobivanje, dekodiranje in izvajanje. To zaporedje prikazuje, kako CPE obdela vsako vrstico kode.

Pridobi: Števec navodil znotraj CPE vzame eno vrstico navodil iz RAM-a, da CPU ve, katero navodilo naj izvede naslednje.

dekodiranje: Asembler bo dekodiral človeku berljiv blok kode in ga sestavil kot pravilno formatirane binarne datoteke, da jih bo računalnik razumel.

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

Izvedi: CPU nato izvede binarne datoteke tako, da uporabi navodila, ki jih nakazuje opcode, za zagotovljene operande.

Računalnik bo izvesti takole:

  1. Naložite prvi register s 5
  2. Drugi register naložite s 7
  3. 5 + 7 = 12, 12 shranimo v tretji register
  4. Shrani vrednost tretjega registra v naslov RAM M12

Računalnik je uspešno seštel dve številki in shranil vrednost na določen naslov RAM.

Super! Zdaj veste, kako računalnik izvaja kodo. Vendar se tu ne ustavi.

Gremo naprej

Z ustrezno strojno opremo, zbirnikom in zbirnim jezikom bi ljudje lahko izvajali kodo z razumno lahkoto. Ker pa so tako programi kot računalniška strojna oprema postali še bolj zapleteni, so morali inženirji in programerji pomislite na način, kako narediti programiranje manj dolgočasno in zagotoviti združljivost z različnimi vrstami CPE arhitekturo. Tako nastanejo prevajalniki in tolmači.

Kaj je prevajalnik in tolmač?

Prevajalnik in tolmač sta prevajalska programa, ki vzameta izvorno kodo (programe, izdelane iz programske jezike na visoki ravni) in jih prevedejo v zbirni jezik, ki ga bo zbirnik nato dekodiral na binarno.

An tolmač bo vzel eno vrstico kode in jo takoj izvedel. To se običajno uporablja na terminalih, kot sta terminal Linux Bash Shell in terminal Windows PowerShell. Odlično za opravljanje preprostih enkratnih nalog.

Zasluge slike: Rlistmedia/Wikimedia Common

Nasprotno, a prevajalnik bo vzel več vrstic kode in jih prevedel za izdelavo programa. Primeri teh programov so Microsoft Word, Photoshop, Google Chrome, Safari in Steam.

Z ustvarjanjem prevajalnikov in tolmačev so nastali programski jeziki na visoki ravni.

Programski jeziki visoke ravni

Programski jeziki visoke ravni so kateri koli jezik po montažni kodi. Nekateri od teh jezikov, ki jih morda poznate, so C, Python, Java in Swift. Ti programski jeziki so naredili programiranje bolj berljivo in enostavnejše kot zbirni jezik.

Tukaj je vzporedna primerjava, ki ponazarja, kako težje je programirati v montaži kot v programskem jeziku na visoki ravni, kot je Python:

Obe kodi bosta izpisali "Hello World."

S temi programskimi jeziki lahko razvijalci programirajo igre, spletna mesta, aplikacije in gonilnike z razumnim časom.

Povezano: Python vs. Java: najboljši jezik za leto 2022

Računalniki lahko izvajajo vse vrste kode

Računalnik je naprava, ki lahko bere samo binarno. Te binarne podatke proizvaja več kot milijarda tranzistorjev mikroskopske velikosti, pakiranih v CPU. Razporeditev tranzistorja narekuje ISA (Arhitektura nabora navodil) CPE-ja, ki zagotavlja na stotine navodil, ki jih lahko CPE zlahka izvede, ko se njegova opcijska koda pokliče prek kode. Razvijalci zaporedno mešajo in ujemajo ta navodila, kar ustvari celoten program, kot so motorji za igre, spletni brskalniki, aplikacije in gonilniki.

CPE izvaja kodo skozi zaporedje, znano kot cikel pridobivanja, dekodiranja in izvajanja. Ko je kos kode naložen v RAM, bo CPU eno za drugim pridobil njeno vsebino, dekodiralo vsebino v binarno prek sestavljalnika in nato izvedelo kodo.

Ker lahko sestavljalec prevaja samo kodo, izdelano izrecno za arhitekturo CPE, prevajalniki in tolmači so bili zgrajeni na vrhu zbirnika (podobno kot adapter) za delo na različnih vrstah CPE arhitekturo. Tolmač bo prevzel en ukaz in ga takoj izvedel. Nasprotno pa bo prevajalnik vzel vse vaše ukaze in jih prevedel v program za večkratno uporabo.

Programski jeziki na visoki ravni, kot so Python, C in Java, so bili ustvarjeni za lažje, hitrejše in priročno programiranje. Veliki večini programerjev ni več treba kodirati v zbirnem jeziku, saj se njihovi programski jeziki na visoki ravni, ki so enostavni za uporabo, lahko prevedejo v zbirko prek prevajalnika.

Upajmo, da zdaj bolje razumete osnove računalnikov in kako izvajajo kodo.

Kako deluje računalnik in kaj je v notranjosti?

To je preprosto vprašanje, a o katerem vsi občasno razmišljajo: kako dejansko deluje računalnik pred vami?

Preberite Naprej

DelitiTweetE-naslov
Povezane teme
  • Razložena tehnologija
  • Programiranje
  • Računalniški procesor
  • Obravnavati
O avtorju
Jayric Maning (5 objavljenih člankov)

Jayric Maning se je v želji, da bi izvedel, kako stvari delujejo, že v svojih zgodnjih najstniških letih začel ukvarjati z vsemi vrstami elektronskih in analognih naprav. Forenziko se je lotil na Univerzi v Baguiu, kjer se je seznanil z računalniško forenziko in kibernetsko varnostjo. Trenutno se veliko samouči in se ukvarja s tehnologijo, da bi ugotovil, kako delujejo in kako jih lahko uporabimo za lažje (ali vsaj hladnejše!).

Več od Jayrica Maninga

Naročite se na naše novice

Pridružite se našemu glasilu za tehnične nasvete, ocene, brezplačne e-knjige in ekskluzivne ponudbe!

Kliknite tukaj, da se naročite