HTG objašnjava: Kako CPU zapravo radi?

Sadržaj:

HTG objašnjava: Kako CPU zapravo radi?
HTG objašnjava: Kako CPU zapravo radi?

Video: HTG objašnjava: Kako CPU zapravo radi?

Video: HTG objašnjava: Kako CPU zapravo radi?
Video: 2.4 GHz vs 5 GHz WiFi: What is the difference? - YouTube 2024, Travanj
Anonim
Većina stvari na računalu relativno je jednostavna za razumijevanje: RAM, skladištenje, periferne jedinice i softver svi rade zajedno kako bi računalo funkcionirali. Ali srce vašeg sustava, CPU, čini se poput magije čak i mnogim tehničkim ljudima. Evo, učinit ćemo sve kako bismo ga slomili.
Većina stvari na računalu relativno je jednostavna za razumijevanje: RAM, skladištenje, periferne jedinice i softver svi rade zajedno kako bi računalo funkcionirali. Ali srce vašeg sustava, CPU, čini se poput magije čak i mnogim tehničkim ljudima. Evo, učinit ćemo sve kako bismo ga slomili.

Većina istraživanja za ovaj članak potječe iz "Ali kako to znam?" J. Clark Scott. To je fantastično čitanje, ide u mnogo više dubine nego što ovaj članak će, i vrijedi par par tisuća dolara na Amazonu.

Jedna napomena prije nego što započnemo: moderni procesori su narudžbe veličine složenije od onoga što ovdje razmatramo. Gotovo je nemoguće da jedna osoba razumije svaku nijansu čipa s više od milijardu tranzistora. Međutim, osnovna načela kako se sve uklapa zajedno ostaju ista, a razumijevanje osnova pružit će vam bolje razumijevanje modernih sustava.

Pokretanje malih

Računala rade u binarnom. Oni razumiju samo dvije države: uključeno i isključeno. Za izvođenje izračuna u binarnom, oni koriste ono što se zove tranzistor. Tranzistor samo dopušta izvor struje da prolazi kroz njega do odvoda ako postoji struja preko vrata. U osnovi, ovo predstavlja binarni prekidač, koji isključuje žicu ovisno o drugom ulaznom signalu.
Računala rade u binarnom. Oni razumiju samo dvije države: uključeno i isključeno. Za izvođenje izračuna u binarnom, oni koriste ono što se zove tranzistor. Tranzistor samo dopušta izvor struje da prolazi kroz njega do odvoda ako postoji struja preko vrata. U osnovi, ovo predstavlja binarni prekidač, koji isključuje žicu ovisno o drugom ulaznom signalu.

Moderna računala koriste milijarde tranzistora za izvođenje izračuna, ali na najnižoj razini, trebate samo nekoliko za oblikovanje najosnovnijih komponenti, poznatih kao vrata.

Logička vrata

Stapati nekoliko tranzistora ispravno, a imate ono što je poznato kao logička vrata. Logička vrata zauzimaju dva binarna ulaza, izvršavaju operaciju na njima i vraćaju izlaz. OR vrata, primjerice, vraća se istinito ako je bilo koji od ulaza istinit. Ikona provjerava jesu li oba ulaza istinita, XOR provjerava je li samo jedan od ulaza istinit, a N-varijante (NOR, NAND i XNOR) su obrnute verzije njihovih osnovnih vrata.
Stapati nekoliko tranzistora ispravno, a imate ono što je poznato kao logička vrata. Logička vrata zauzimaju dva binarna ulaza, izvršavaju operaciju na njima i vraćaju izlaz. OR vrata, primjerice, vraća se istinito ako je bilo koji od ulaza istinit. Ikona provjerava jesu li oba ulaza istinita, XOR provjerava je li samo jedan od ulaza istinit, a N-varijante (NOR, NAND i XNOR) su obrnute verzije njihovih osnovnih vrata.

Učiniti matematiku s vratima

Sa samo dva vrata možete napraviti osnovni binarni dodatak. Ovaj dijagram gore prikazuje polumjer, stvoren koristeći Logicly, besplatni online igralište za logičke ulaze. XOR vrata ovdje će se uključiti ako je uključen samo jedan ulaz, ali ne oboje. AND vrata će se uključiti ako su oba ulaza uključena, ali ostaju isključeni ako nema ulaza. Dakle, ako su oboje uključeni, XOR ostaje isključen, a vrata AND se uključuju, dolazeći do točnog odgovora na dva:
Sa samo dva vrata možete napraviti osnovni binarni dodatak. Ovaj dijagram gore prikazuje polumjer, stvoren koristeći Logicly, besplatni online igralište za logičke ulaze. XOR vrata ovdje će se uključiti ako je uključen samo jedan ulaz, ali ne oboje. AND vrata će se uključiti ako su oba ulaza uključena, ali ostaju isključeni ako nema ulaza. Dakle, ako su oboje uključeni, XOR ostaje isključen, a vrata AND se uključuju, dolazeći do točnog odgovora na dva:
Image
Image

To nam daje jednostavnu postavku s tri različita izlaza: nula, jedan i dva. No, jedan bit ne može pohraniti ništa više od 1, a ovaj stroj nije previše koristan jer rješava samo jedan od najjednostavnijih matematičkih problema. Ali to je samo polovica zbrajanja, a ako dva povezujete s drugim unosom, dobit ćete puni zbrajanje:

Puno zbrajanje ima tri ulaza - dva broja za dodavanje, i "nose". Nosač se koristi kada konačni broj premaši ono što se može pohraniti u jednom bitu. Puni zbunjivač će biti povezan u lancu, a nosač se prenosi s jednog dodatka na drugi. Nosač se dodaje rezultatu XOR vrata u prvom polumjeru, a postoji i dodatna OR vrata koja će obraditi oba slučaja kada bi trebali biti uključeni.
Puno zbrajanje ima tri ulaza - dva broja za dodavanje, i "nose". Nosač se koristi kada konačni broj premaši ono što se može pohraniti u jednom bitu. Puni zbunjivač će biti povezan u lancu, a nosač se prenosi s jednog dodatka na drugi. Nosač se dodaje rezultatu XOR vrata u prvom polumjeru, a postoji i dodatna OR vrata koja će obraditi oba slučaja kada bi trebali biti uključeni.

Kad su oba ulaza uključena, poklopac se uključuje i šalje ga sljedećem punom zbrajanju u lancu:

A ovo je složeno koliko i dodatak. Premještanje do više bita bitno znači samo puno više zbroja u duljem lancu.
A ovo je složeno koliko i dodatak. Premještanje do više bita bitno znači samo puno više zbroja u duljem lancu.

Većina drugih math operacija može biti učinjeno uz dodatak; množenje je samo ponovljeno dodavanje, oduzimanje može biti učinjeno s nekim fancy bit inverzija, a podjela je samo ponovio oduzimanje. I dok sva suvremena računala imaju hardversko rješenje za ubrzavanje složenijih operacija, tehnički možete sve to učiniti s punim zbrajanjem.

Autobus i Memorija

Upravo sada, naše računalo nije ništa više od lošeg kalkulatora. To je zato što se ne može ništa sjetiti, i ne radi ništa s njegovim rezultatima. Gore prikazano je memorijska stanica koja može sve to učiniti. Pod kapuljačom koristi mnogo NAND vrata, au stvarnom životu može biti vrlo različita ovisno o tehnici skladištenja, ali njegova je funkcija ista. Dajete mu neke ulaze, uključite 'write' bit i pohranit ćete ulaze unutar ćelije. To nije samo memorijska stanica, jer također trebamo način da pročitamo informacije iz njega. To je učinjeno s omogućiteljem, koji je zbirka I vrata za svaki bit u memoriji, sve vezano za drugi ulaz, "čitati" bit. Pisanje i čitanje bitova često se nazivaju "set" i "enable".
Upravo sada, naše računalo nije ništa više od lošeg kalkulatora. To je zato što se ne može ništa sjetiti, i ne radi ništa s njegovim rezultatima. Gore prikazano je memorijska stanica koja može sve to učiniti. Pod kapuljačom koristi mnogo NAND vrata, au stvarnom životu može biti vrlo različita ovisno o tehnici skladištenja, ali njegova je funkcija ista. Dajete mu neke ulaze, uključite 'write' bit i pohranit ćete ulaze unutar ćelije. To nije samo memorijska stanica, jer također trebamo način da pročitamo informacije iz njega. To je učinjeno s omogućiteljem, koji je zbirka I vrata za svaki bit u memoriji, sve vezano za drugi ulaz, "čitati" bit. Pisanje i čitanje bitova često se nazivaju "set" i "enable".

Ovaj cijeli paket je upakiran u ono što se zove registar. Ti su registri povezani s autobusom, koji je svežanj žica koji se protežu po čitavom sustavu, povezani sa svakom komponentom. Čak i suvremena računala imaju autobus, iako mogu imati više autobusa za poboljšanje performansi u više zadataka.

Svaka registar još ima pisanje i čitanje bit, ali u ovom poslu, ulaz i izlaz su ista stvar. Ovo je zapravo dobro. Na primjer. Ako biste željeli kopirati sadržaj R1 u R2, uključili biste čitajući bit za R1, koji će gurati sadržaj R1 na autobus. Dok je bit za čitanje uključen, uključili biste pisanje bit za R2, koji bi kopirao sadržaj sabirnice u R2.
Svaka registar još ima pisanje i čitanje bit, ali u ovom poslu, ulaz i izlaz su ista stvar. Ovo je zapravo dobro. Na primjer. Ako biste željeli kopirati sadržaj R1 u R2, uključili biste čitajući bit za R1, koji će gurati sadržaj R1 na autobus. Dok je bit za čitanje uključen, uključili biste pisanje bit za R2, koji bi kopirao sadržaj sabirnice u R2.

Registri se koriste za izradu RAM-a. RAM je često postavljen u rešetku, s žicama ide u dva smjera:

Dekoderi uzeti binarni ulaz i uključiti odgovarajuću žicu s brojevima. Na primjer, "11" je 3 u binarnom, najvišem 2-bitnom broju, pa će dekoder uključiti najvišu žicu. Na svakom raskrižju postoji registar. Sve su to povezane s centralnim sabirnicama, a na centralni ulaz za pisanje i čitanje. Oba čitanja i pisanja ulaz će se uključiti samo ako dvije žice prelaze preko registra su također uključene, učinkovito vam omogućujući odabir registra iz kojeg možete pisati i čitati. Opet, moderni RAM je daleko kompliciraniji, ali ovo postavljanje još uvijek radi.
Dekoderi uzeti binarni ulaz i uključiti odgovarajuću žicu s brojevima. Na primjer, "11" je 3 u binarnom, najvišem 2-bitnom broju, pa će dekoder uključiti najvišu žicu. Na svakom raskrižju postoji registar. Sve su to povezane s centralnim sabirnicama, a na centralni ulaz za pisanje i čitanje. Oba čitanja i pisanja ulaz će se uključiti samo ako dvije žice prelaze preko registra su također uključene, učinkovito vam omogućujući odabir registra iz kojeg možete pisati i čitati. Opet, moderni RAM je daleko kompliciraniji, ali ovo postavljanje još uvijek radi.

Sat, Stepper i dekoder

Registri se koriste svugdje i osnovni su alat za prijenos podataka oko sebe i pohranjivanje podataka u CPU. Dakle, što im govori da kruže stvari?

Sat je prva komponenta u jezgri CPU-a i isključit će se i uključiti u određenom intervalu izmjerenom u hertzima ili ciklusima u sekundi. Ovo je brzina koju vidite oglašavana uz CPU-ove; čip od 5 GHz može izvesti 5 milijardi ciklusa u sekundi. Brzina sata često je vrlo dobar mjerni podatak o brzini CPU-a.

Sat ima tri različita stanja: osnovni sat, sat za omogućavanje i postavljeni sat. Osnovni sat će se uključiti za pola ciklusa i isključiti za drugu polovicu. Omogući sat služi za uključivanje registara i morat će biti uključen duže kako bi bili sigurni da su podaci omogućeni. Postavljeni sat mora uvijek biti uključen istodobno s uključenim satom, inače se mogu napisati pogrešni podaci.
Sat ima tri različita stanja: osnovni sat, sat za omogućavanje i postavljeni sat. Osnovni sat će se uključiti za pola ciklusa i isključiti za drugu polovicu. Omogući sat služi za uključivanje registara i morat će biti uključen duže kako bi bili sigurni da su podaci omogućeni. Postavljeni sat mora uvijek biti uključen istodobno s uključenim satom, inače se mogu napisati pogrešni podaci.

Sat je povezan sa stepenicama, koji će se brojati od jednog do maksimalnog koraka i vratiti se natrag na jedan kada je gotov. Sat je također povezan s AND priključcima za svaki registar koji CPU može napisati:

Ovi AND ulazi također su povezani s izlazom druge komponente, dekodera za upute. Dekoder instrukcije ima instrukciju poput "SET R2 TO R1" i dekodira ga u nešto što CPU može razumjeti. Ima svoj unutarnji registar, nazvan "Registar uputa", gdje se pohranjuje trenutna operacija. Kako točno to dolazi do sustava na kojem radite, ali nakon dekodiranja, on će uključiti ispravan skup i omogućiti bitove za ispravne registre koji će se otpustiti u skladu sa satom.
Ovi AND ulazi također su povezani s izlazom druge komponente, dekodera za upute. Dekoder instrukcije ima instrukciju poput "SET R2 TO R1" i dekodira ga u nešto što CPU može razumjeti. Ima svoj unutarnji registar, nazvan "Registar uputa", gdje se pohranjuje trenutna operacija. Kako točno to dolazi do sustava na kojem radite, ali nakon dekodiranja, on će uključiti ispravan skup i omogućiti bitove za ispravne registre koji će se otpustiti u skladu sa satom.

Programske upute pohranjuju se u RAM (ili L1 predmemoriju na suvremenim sustavima, bliže CPU-u). Budući da se programski podaci pohranjuju u registre, baš kao i svaka druga varijabla, može se manipulirati u letu za skakanje oko programa. Ovo je način na koji programi dobivaju svoju strukturu, s petljama i ako su izjave. Uputa za skok postavlja trenutnu lokaciju u memoriju koju dekoder uputa čita na drugu lokaciju.

Kako sve dolazi zajedno

Sada, naša bruto pojednostavljenost procesa rada CPU-a je potpuna. Glavni autobus obuhvaća cijeli sustav i povezuje se sa svim registrima. Puni zbrojevi, zajedno s hrpom drugih operacija, pakirani su u Aritmetičku jedinicu logike ili ALU. Ovaj ALU će imati veze s autobusom, a također će imati svoje vlastite registre za spremanje drugog broja na kojemu upravlja.
Sada, naša bruto pojednostavljenost procesa rada CPU-a je potpuna. Glavni autobus obuhvaća cijeli sustav i povezuje se sa svim registrima. Puni zbrojevi, zajedno s hrpom drugih operacija, pakirani su u Aritmetičku jedinicu logike ili ALU. Ovaj ALU će imati veze s autobusom, a također će imati svoje vlastite registre za spremanje drugog broja na kojemu upravlja.

Za izvođenje izračuna programski podaci se učitavaju iz RAM-a sustava u kontrolni odjeljak. Kontrolni odjeljak čita dva broja iz RAM-a, učitava prvu u registar uputa ALU-a, a zatim prenosi drugi na autobus. U međuvremenu, šalje ALU-u šifru uputa kojom mu govori što treba učiniti. ALU zatim obavlja sve izračune i pohranjuje rezultat u drugi registar, koji CPU može pročitati, a zatim nastaviti proces.

Preporučeni: