Articles

HTG Forklarer: Hvordan FUNGERER EN CPU Egentlig?

  • Anthony Heddings

    @anthonyheddings

  • Oppdatert 28.februar 2020, 4:58pm EDT
cpu
rost/

de fleste ting i en datamaskin er relativt enkle å forstå: ram, lagring, eksterne enheter og programvaren jobber sammen for å lage en datafunksjon. MEN hjertet av systemet, CPU, virker som magi selv til mange tech folk. Vi skal gjøre vårt beste for å bryte det ned.

Mesteparten av forskningen for denne artikkelen kommer fra «Men Hvordan Vet Det?»Av J. Clark Scott. Det er en fantastisk lese, går inn i mye mer dybde enn denne artikkelen vil, og er vel verdt par dollar På Amazon.Ett notat før vi begynner: moderne Cpuer er størrelsesordener mer komplekse enn det vi beskriver her. Det er nesten umulig for en person å forstå hver nyanse av en chip med over en milliard transistorer. Men de grunnleggende prinsippene for hvordan alt passer sammen forblir de samme, og å forstå det grunnleggende vil gi deg en bedre forståelse av moderne systemer.

Starter Små

Datamaskiner opererer i binær. De forstår bare to stater: på og av. For å utføre beregninger i binær, bruker de det som kalles en transistor. Transistoren tillater bare kildestrømmen å strømme gjennom den til avløpet hvis det er strøm over porten. I hovedsak danner dette en binær bryter, som kutter ledningen avhengig av et andre inngangssignal.RELATERT: Hva Er Binært, Og Hvorfor Bruker Datamaskiner Det?Moderne datamaskiner bruker milliarder transistorer til å utføre beregninger, men på de laveste nivåene trenger du bare en håndfull for å danne de mest grunnleggende komponentene, kjent som porter.

Logiske Porter

Stakk noen transistorer riktig, og du har det som kalles en logisk gate. Logiske porter tar to binære innganger, utfører en operasjon på dem, og returnerer en utgang. OR-porten returnerer for eksempel sann hvis en av inngangene er sann. OG-porten kontrollerer om begge inngangene er sanne, XOR kontrollerer OM bare en av inngangene er sanne, Og N-varianter (NOR, NAND og XNOR) er inverterte versjoner av deres baseporter.

Gjør Matte med Porter

med bare to porter kan du gjøre grunnleggende binær tillegg. Dette diagrammet over viser en halv adder, opprettet Ved Hjelp Av Logicly, en gratis online lekeplass for logiske porter. XOR-porten her vil slå på hvis bare en av inngangene er på, men ikke begge. OG-porten slås på hvis begge inngangene er på, men hold deg av hvis det ikke er noen inngang. Så hvis begge er på, forblir XOR av, og and-porten slås på, og kommer til riktig svar på to:

Annonse

dette gir oss et enkelt oppsett med tre forskjellige utganger: null, en og to. Men en bit kan ikke lagre noe høyere enn 1, og denne maskinen er ikke så nyttig da den bare løser en av de enkleste matematiske problemene som er mulige. Men dette er bare en halv adder, og hvis du kobler to av dem med en annen inngang, får du en full adder:

full adder har tre innganger – de to tallene å legge til, og en » bære.»Bære brukes når det endelige tallet overstiger det som kan lagres i en enkelt bit. Full adders vil bli koblet i en kjede, og bære er gått fra en adder til den neste. Bæren legges til resultatet AV xor-porten i første halvdel, OG det er en ekstra eller port for å håndtere begge tilfeller når so som må være på.

når begge inngangene er på, slår carry på og sender den til neste full adder i kjeden:

og dette er omtrent like komplisert som tillegg blir. Flytte opp til flere biter egentlig bare betyr mer full adders i en lengre kjede.De fleste andre matematiske operasjoner kan gjøres med tillegg; multiplikasjon er bare gjentatt tillegg, subtraksjon kan gjøres med litt fancy bit inversjon, og divisjon er bare gjentatt subtraksjon. Og mens alle moderne datamaskiner har maskinvarebaserte løsninger for å øke hastigheten på mer kompliserte operasjoner, kan du teknisk gjøre alt med full adder.

Bussen og Minnet

akkurat nå er datamaskinen vår ikke noe mer enn en dårlig kalkulator. Dette er fordi det ikke kan huske noe, og gjør ingenting med sine utganger. Vist ovenfor er en minnecelle, som kan gjøre alt dette. Under hetten bruker den MANGE nand-porter, og i virkeligheten kan det være ganske forskjellig avhengig av lagringsteknikken, men funksjonen er den samme. Du gir det noen innganger, slå på ‘skrive’ bit, og det vil lagre innganger inne i cellen. Dette er ikke bare en minnecelle, da vi også trenger en måte å lese informasjon fra den. Dette gjøres med en enabler, som er en samling AV og porter for hver bit i minnet, alt knyttet til en annen inngang,» les » biten. Skrive – og lesebitene kalles ofte «sett» og «aktiver» også.

hele denne pakken er pakket inn i det som kalles et register. Disse registre er koblet til bussen, som er en bunt av ledninger som går rundt hele systemet, koblet til hver komponent. Selv moderne datamaskiner har en buss, selv om de kan ha flere busser for å forbedre multitasking ytelse.

hvert register har fortsatt en skrive-og lesebit, Men i dette oppsettet er inngang og utgang det samme. Dette er faktisk bra. Eksempelvis. Hvis du ønsket å kopiere innholdet I R1 Til R2, ville du slå på lesebiten For R1, noe som ville skyve innholdet I R1 på bussen. Mens lesebiten er på, vil du slå på skrivebiten For R2, som vil kopiere bussinnholdet Til R2.

Annonse

Registre brukes også TIL Å LAGE RAM. RAM er ofte lagt ut i et rutenett, med ledninger som går i to retninger:

dekoderne tar en binær inngang og slår på den tilsvarende nummererte ledningen. For eksempel er «11» 3 i binær, det høyeste 2-biters tallet, slik at dekoderen slår på den høyeste ledningen. Ved hvert kryss er det et register. Alle disse er koblet til den sentrale bussen, og til en sentral skrive – og leseinngang. Både lese-og skriveinngangen vil bare slå på hvis de to ledningene som krysser over registeret, også er på, slik at du effektivt kan velge registeret for å skrive og lese. Igjen er moderne RAM langt mer komplisert, men dette oppsettet fungerer fortsatt.

Klokken, Stepper og Dekoderen

Registre brukes overalt og er det grunnleggende verktøyet for å flytte data rundt og lagre informasjon i CPU. Så hva forteller dem å flytte ting rundt?klokken er den første komponenten i KJERNEN AV CPU og vil slå av og på med et angitt intervall, målt i hertz, eller sykluser per sekund. Dette er hastigheten du ser annonsert sammen Med Cpuer; en 5 GHz-chip kan utføre 5 milliarder sykluser per sekund. Klokkehastighet er ofte en veldig god beregning for hvor fort EN CPU er.

Annonse

klokken har tre forskjellige tilstander: baseklokken, aktiver klokken og den innstilte klokken. Baseklokken vil være på i en halv syklus, og av for den andre halvdelen. Aktiver klokken brukes til å slå på registre og må være på lenger for å sikre at dataene er aktivert. Den innstilte klokken må alltid være på samtidig som aktiver klokken, ellers kan feil data skrives.

klokken er koblet til stepper, som vil telle fra ett til maks trinn, og tilbakestille seg tilbake til en når den er ferdig. Klokken er også koblet TIL og porter for hvert register SOM CPUEN kan skrive til:

disse og portene er også koblet Til utgangen av en annen komponent, instruksjonsdekoderen. Instruksjonsdekoderen tar en instruksjon som «SETT R2 Til R1» og dekoder den til noe SOM CPUEN kan forstå. Den har sitt eget interne register, kalt «Instruksjonsregisteret», som er der den nåværende operasjonen er lagret. Hvor nøyaktig det gjør dette kommer ned til systemet du kjører på, men når det er dekodet, vil det slå på riktig sett og aktivere biter for de riktige registre, som vil brenne av i henhold til klokken.Programinstruksjoner lagres I RAM (Eller l1 cache på moderne systemer, nærmere CPU). Siden programdata er lagret i registre, akkurat som alle andre variable, kan det bli manipulert på fly for å hoppe rundt programmet. Slik får programmene sin struktur, med løkker og if-setninger. En hoppeinstruksjon angir gjeldende plassering i minnet som instruksjonsdekoderen leser fra til et annet sted.

Hvordan Alt Kommer sammen

nå er vår brutto forenkling av HVORDAN EN CPU fungerer, fullført. Hovedbussen spenner over hele systemet og kobles til alle registre. De fulle adders, sammen med en rekke andre operasjoner, er pakket inn I Den Aritmetiske Logikkenheten, ELLER ALU. DENNE ALU vil ha forbindelser til bussen, og vil også ha egne registre for lagring av det andre nummeret det opererer på.

Annonse

for å utføre en beregning lastes programdata fra system RAM inn i kontrolldelen. Kontrollseksjonen leser to tall FRA RAM, laster den første inn I ALUS instruksjonsregister, og laster deretter den andre på bussen. I mellomtiden sender DEN ALU en instruksjonskode som forteller den hva den skal gjøre. ALU utfører deretter alle beregningene og lagrer resultatet i et annet register, SOM CPUEN kan lese fra og deretter fortsette prosessen.

Bilde Kreditt: Rost9/

Anthony Heddings
Anthony Heddings er bosatt sky ingeniør For LifeSavvy Media, en teknisk forfatter, programmerer, og en ekspert På Amazons AWS plattform. Han har skrevet hundrevis av artikler For How-To Geek OG CloudSavvy IT som har blitt lest millioner av ganger.Les Hele Bio »