CPU, även känd som mikroprocessorn är hjärtat och / eller hjärnan på en dator. Låter djupt dyka in i datorns kärna och förstå hur CPU fungerar som hjälper oss att skriva datorprogram effektivt.
en dator är en maskin som drivs mestadels av el men dess flexibilitet och programmerbarhet har hjälpt till att uppnå enkelheten i ett verktyg.
CPU är hjärtat och / eller hjärnan på en dator. Det utför instruktionerna som ges till dem. Dess huvudsakliga uppgift är att utföra aritmetiska och logiska operationer och orkestrera instruktionerna tillsammans. Innan du dyker in i huvuddelarna låt oss börja med att titta på vad som är huvudkomponenterna i en CPU och vad deras roller är:
- två huvudkomponenter i en CPU (processor)
- styrenhet — CU
- aritmetisk och logisk enhet — ALU
- Lagring — register och minne
- register
- minne(RAM)
- Vad är instruktioner
- CPU clock
- Hur utförs en instruktion
- steg 1-LOAD_A 8:
- steg 2-LOAD_B 2
- steg 3 — Lägg till B A
- steg 4 — STORE_A 23
- BUS
- Cache
- Instruktionspipelining
- multicore computer
- prestanda
två huvudkomponenter i en CPU (processor)
- styrenhet — CU
- aritmetisk och logisk enhet — ALU
styrenhet — CU
styrenhet CU är den del av CPU som hjälper till att orkestrera utförandet av instruktioner. Det berättar vad man ska göra. Enligt anvisningarna hjälper det att aktivera ledningarna som ansluter CPU till olika andra delar av datorn inklusive ALU. Styrenheten är den första komponenten i CPU: n för att ta emot instruktionerna för bearbetning.
det finns två typer av styrenheter:
- hårdkodade styrenheter.
- mikroprogrammerbara (mikroprogrammerade) styrenheter.
hårdkodade styrenheter är hårdvaran och behöver ändringen i hårdvaran för att lägga till modifiera den fungerar medan den mikroprogrammerbara styrenheten kan programmeras för att ändra sitt beteende. Hårdkodad CU är snabbare i bearbetningsinstruktion medan mikroprogrammerbar som mer flexibel.
aritmetisk och logisk enhet — ALU
aritmetisk och logisk enhet ALU som namnet antyder gör alla aritmetiska och logiska beräkningar. ALU utför operationer som addition, subtraktion. ALU består av logiska kretsar eller logiska grindar som utför dessa operationer.
de flesta logiska grindarna tar in två ingångar och producerar en utgång
nedan är ett exempel på en halv adderkrets som tar in två ingångar och matar ut resultatet. Här är A och B ingången, S är utgången och C är bärningen.
Lagring — register och minne
CPU: s huvudsakliga jobb är att utföra instruktionerna till den. För att bearbeta dessa instruktioner för det mesta behöver den data. Vissa data är mellanliggande data, några av dem är ingångar och andra är utgången. Dessa uppgifter tillsammans med instruktionerna lagras i följande Lagring:
register
ett Register är en liten uppsättning platser där data kan lagras. Ett register är en kombination av spärrar. Spärrar även kända som flip-flops är kombinationer av logiska grindar som lagrar 1 bit information.
en spärr har två ingångstrådar, skriv-och ingångstrådar och en utgångstråd. Vi kan göra det möjligt för skrivtråden att göra ändringar i den lagrade data. När skrivkabeln är inaktiverad förblir utgången alltid densamma.
CPU har register för att lagra data för utdata. Att skicka till huvudminnet (RAM) skulle vara långsamt eftersom det är mellandata. Dessa uppgifter skickas till andra register som är anslutna med en buss. Ett register kan lagra instruktioner, utdata, lagringsadress eller någon form av data.
minne(RAM)
Ram är en samling register ordnade och kompakta tillsammans på ett optimerat sätt så att det kan lagra ett högre antal data. RAM (Random Access Memory) är flyktigt och det är data som går vilse när vi stänger av strömmen. Eftersom RAM är en samling register för att läsa / skriva data tar en RAM inmatning av 8bit-adress, datainmatning för att de faktiska data ska lagras och slutligen läsa och skriva enabler som fungerar som det är för spärrarna.
Vad är instruktioner
instruktion är den granulära nivåberäkningen som en dator kan utföra. Det finns olika typer av instruktioner som en CPU kan bearbeta.
instruktioner inkluderar:
- aritmetik som addera och subtrahera
- Logikinstruktioner som och, eller, och inte
- datainstruktioner som move, input, output, load Och store
- kontrollflödesinstruktioner som goto, om … goto, call and return
- meddela CPU att programmet har avslutats stoppa
instruktioner tillhandahålls till en dator med monteringsspråk eller genereras av en kompilator eller tolkas i vissa högfrekventa instruktioner för att nivå språk.
dessa instruktioner är hårdkopplade inuti CPU. ALU innehåller aritmetisk och logisk medan kontrollflödet hanteras av CU.
i en klockcykel kan datorer utföra en instruktion men moderna datorer kan utföra mer än en.
en grupp instruktioner som en dator kan utföra kallas en instruktionsuppsättning.
CPU clock
klockcykel
datorns hastighet bestäms av dess klockcykel. Det är antalet klockperioder per sekund en dator fungerar på. Enstaka klockcykler är mycket små som runt 250 * 10 *-12 sec. högre klockcykeln snabbare processorn är.
en CPU – klockcykel mäts i GHz (Gigahertz). 1GHz är lika med 10 Hz Hz (hertz). En hertz betyder en sekund. Så 1gigahertz betyder 10 varv per sekund.
ju snabbare klockcykeln är, desto fler instruktioner kan CPU utföra. Klockcykel = 1 / klockfrekvens CPU-tid = antal klockcykel / klockfrekvens
detta innebär att förbättra CPU-tiden vi kan öka klockfrekvensen eller minska antalet klockcykler genom att optimera instruktionen vi tillhandahåller CPU. Vissa processorer ger möjlighet att öka klockcykeln men eftersom det är fysiska förändringar kan det vara överhettning och till och med röker/bränder.
Hur utförs en instruktion
instruktioner lagras på RAM i sekventiell ordning. För en hypotetisk CPU består instruktionen av OP-kod (operativ kod) och minnes-eller registeradress.
det finns två register i ett Styrenhetsinstruktionsregister (IR) som laddar op-koden i instruktions-och instruktionsadressregistret som laddar adressen till den nuvarande exekveringsinstruktionen. Det finns andra register i en CPU som lagrar värdet lagrat i adressen till de sista 4 bitarna i en instruktion.
låt oss ta ett exempel på en uppsättning instruktioner som lägger till två siffror. Följande är instruktionerna tillsammans med deras beskrivning. CPU fungerar utför följande instruktioner:
steg 1-LOAD_A 8:
instruktionen sparas i RAM initialt som låt oss säga <>. Den första 4 biten är op-koden. Detta bestämmer instruktionen. Denna instruktion hämtas in i styrenhetens IR. Instruktionen avkodas för att vara load_A vilket innebär att den måste ladda data i adressen 1000 som är den sista 4 biten av instruktionen för att registrera A.
steg 2-LOAD_B 2
liknande ovanstående laddar data i minnesadress 2 (0010) till CPU register B.
steg 3 — Lägg till B A
Nu är nästa instruktion att lägga till dessa två nummer. Här berättar CU ALU att utföra add-operationen och spara resultatet tillbaka för att registrera A.
steg 4 — STORE_A 23
detta är en mycket enkel uppsättning instruktioner som hjälper till att lägga till två nummer.
Vi har framgångsrikt lagt till två nummer!
BUS
Alla data mellan CPU, register, minne och IO devise överförs via buss. För att ladda data till minnet som den just har lagt till sätter CPU minnesadressen till adressbussen och resultatet av summan till databussen och möjliggör rätt signal i kontrollbussen. På detta sätt laddas data till minnet med hjälp av bussen.
Cache
CPU har också en mekanism för att prefetch instruktionen till dess cachade. Som vi vet finns det miljontals instruktioner som en processor kan slutföra inom en sekund. Det betyder att det kommer att spenderas mer tid på att hämta instruktionen från RAM än att utföra dem. Så CPU-cachen prefetches några av instruktionerna och även data så att körningen blir snabb.
om data i cacheminnet och driftsminnet är annorlunda markeras data som en smutsig bit.
Instruktionspipelining
Modern CPU använder Instruktionspipelining för parallellisering vid instruktionsexekvering. Hämta, Avkoda, Kör. När en instruktion är i avkodningsfasen kan CPU bearbeta en annan instruktion för hämtningsfasen.
detta har ett problem när en instruktion är beroende av en annan. Så processorer utför instruktionen som inte är beroende och i en annan ordning.
multicore computer
det är i grunden den olika CPU men har några delade resurser som cacheminnet.
prestanda
prestanda för CPU bestäms av dess exekveringstid. Prestanda = 1/exekveringstid
låt oss säga att det tar 20 ms för ett program att köra. Prestanda för CPU är 1/20 = 0.05msrelative performance = exekveringstid 1 / exekveringstid 2
den faktor som beaktas för en CPU-prestanda är instruktionens exekveringstid och CPU-klockhastigheten. Så för att öka prestanda för ett program behöver vi antingen öka klockhastigheten eller minska antalet instruktioner i ett program. Processorhastigheten är begränsad och moderna datorer med flera kärnor kan stödja miljontals instruktioner per sekund. Men om programmet vi har skrivit har många instruktioner kommer detta att minska den totala prestandan.
Big O notation bestämmer med den givna inmatningen hur prestanda kommer att påverkas.
det finns många optimeringar gjorda i CPU: n för att göra det snabbare och utföra så mycket som möjligt. När du skriver något program måste vi överväga hur att minska antalet instruktioner vi tillhandahåller CPU kommer att öka datorns prestanda.
intresserad av att optimera databaser? Lär dig mer om det här: https://milapneupane.com.np/2019/07/06/how-to-work-optimally-with-relational-databases/