CPU, ook bekend als de microprocessor is het hart en/of de hersenen van een computer. Laat diepe duik in de kern van de computer en begrijpen hoe CPU werken die ons zal helpen efficiënt computerprogramma ‘ s te schrijven.
een computer is een machine die voornamelijk wordt aangedreven door elektriciteit, maar de flexibiliteit en programmeerbaarheid ervan hebben bijgedragen tot de eenvoud van een tool.
CPU is het hart en / of de hersenen van een computer. Het voert de instructies uit die aan hen worden verstrekt. Zijn belangrijkste taak is om rekenkundige en logische bewerkingen uit te voeren en orkestreren de instructies samen. Voordat we in de belangrijkste onderdelen duiken, beginnen we met te kijken naar wat de belangrijkste componenten van een CPU zijn en wat hun rollen zijn:
- twee hoofdcomponenten van een CPU (processor)
- besturingseenheid — CU
- rekenkundige en logische eenheid — ALU
- Opslagregisters en geheugen
- Registers
- geheugen (RAM)
- Wat zijn instructies
- CPU-klok
- hoe wordt een instructie uitgevoerd
- stap 1-LOAD_A 8:
- stap 2-LOAD_B 2
- stap 3 — Voeg B a
- stap 4 — STORE_A 23
- BUS
- Cache
- instructie pipelining
- Multicore computer
- Performance
twee hoofdcomponenten van een CPU (processor)
- besturingseenheid — Cu
- rekenkundige en logische eenheid — ALU
besturingseenheid — CU
besturingseenheid CU is het deel van de CPU dat helpt bij het orkestreren van de uitvoering van instructies. Het vertelt wat te doen. Volgens de instructie helpt het de draden te activeren die de CPU verbinden met verschillende andere delen van de computer, waaronder de ALU. De besturingseenheid is het eerste onderdeel van de CPU dat de instructie voor verwerking ontvangt.
Er zijn twee typen besturingseenheden:
- hardwired besturingseenheden.
- microprogrammeerbare (microgeprogrammeerde) besturingseenheden.
Hardwired besturingseenheden zijn de hardware en hebben de verandering in hardware nodig om het werk aan te passen, terwijl de micro-programmeerbare besturingseenheid kan worden geprogrammeerd om zijn gedrag te veranderen. Hardwired CU is sneller in het verwerken van instructies terwijl micro-programmeerbaar als flexibeler.
rekenkundige en logische eenheid — ALU
rekenkundige en logische eenheid ALU zoals de naam al doet alle rekenkundige en logische berekeningen. ALU voert operaties uit zoals optellen, aftrekken. ALU bestaat uit logische schakelingen of logische poorten die deze bewerkingen uitvoeren.
De meeste logische poorten nemen twee ingangen in en produceren één uitvoer
Hieronder is een voorbeeld van een half addercircuit dat twee ingangen en uitgangen van het resultaat neemt. Hier zijn A en B de input, S is de output en C is de carry.
Opslagregisters en geheugen
de hoofdtaak van de CPU is het uitvoeren van de instructies die aan de CPU worden gegeven. Om deze instructies meestal te verwerken, heeft het gegevens nodig. Sommige gegevens zijn intermediaire gegevens, sommige zijn input en andere is de output. Deze gegevens worden samen met de instructies opgeslagen in de volgende opslag:
Registers
een Register is een klein aantal plaatsen waar de gegevens kunnen worden opgeslagen. Een register is een combinatie van sloten. Vergrendelingen ook bekend als slippers zijn combinaties van logische poorten die 1 beetje informatie opslaat.
een vergrendeling heeft twee invoerdraad, schrijf – en invoerdraad en een uitvoerdraad. We kunnen de write wire inschakelen om wijzigingen aan te brengen in de opgeslagen gegevens. Wanneer de schrijfdraad is uitgeschakeld blijft de uitvoer altijd hetzelfde.
CPU heeft registers om de uitvoergegevens op te slaan. Het verzenden naar het hoofdgeheugen(RAM) zou traag zijn omdat het de tussenliggende gegevens zijn. Deze gegevens worden verzonden naar andere registers die door een BUS met elkaar zijn verbonden. Een register kan instructies, uitvoergegevens, opslagadres of enige vorm van gegevens opslaan.
geheugen (RAM)
Ram is een verzameling van register gerangschikt en compact samen in een geoptimaliseerde manier, zodat het een groter aantal gegevens kan opslaan. RAM (Random Access Memory) is vluchtig en de gegevens gaan verloren als we de stroom uitschakelen. Aangezien RAM een verzameling registers is om gegevens te lezen / schrijven neemt een RAM input van 8bit adres, gegevensinvoer voor de daadwerkelijke gegevens die moeten worden opgeslagen en tenslotte lees en schrijf enabler die werkt zoals het is voor de sloten.
Wat zijn instructies
instructie is de berekening van het korrelniveau die een computer kan uitvoeren. Er zijn verschillende soorten instructies die een CPU kan verwerken.
instructies omvatten:
- Rekenkundige bewerkingen zoals optellen en aftrekken
- Logica instructies zoals en, of, en niet
- Data-instructies zoals verplaatsen, input, output, laden en opslaan
- Control Flow instructies zoals goto, indien … goto, bellen en terug
- Hoogte van de CPU dat het programma is afgelopen Halt
Instructies voor een computer met behulp van de montage taal of worden gegenereerd door een compiler of worden geïnterpreteerd in sommige talen op hoog niveau.
Deze instructies zijn hardwired in de CPU. ALU bevat rekenkundige en logische, terwijl de regelstroom wordt beheerd door CU.
in één klokcyclus kunnen computers één instructie uitvoeren, maar moderne computers kunnen meer dan één instructie uitvoeren.
een groep instructies die een computer kan uitvoeren wordt een instructieset genoemd.
CPU-klok
klokcyclus
De snelheid van een computer wordt bepaald door de klokcyclus. Het is het aantal klokperiodes per seconde waarop een computer werkt. Enkele klok cycli zijn erg klein als rond 250 * 10 *-12 sec. hoger de klokcyclus sneller de processor is.
een CPU-klokcyclus wordt gemeten in GHz (Gigahertz). 1gHz is gelijk aan 10 ⁹ Hz (hertz). Een hertz betekent een seconde. Dus 1Gigahertz betekent 10 cycles cycli per seconde.
hoe sneller de klokcyclus, hoe meer instructies de CPU kan uitvoeren. Klokcyclus = 1 / kloksnelheid CPU-tijd = Aantal klokcyclus / kloksnelheid
Dit betekent dat we de kloksnelheid kunnen verhogen of het aantal klokcycli kunnen verlagen door de instructie die we aan de CPU geven te optimaliseren. Sommige processor biedt de mogelijkheid om de klok cyclus te verhogen, maar omdat het fysieke veranderingen kunnen er oververhitting en zelfs rookt/branden.
hoe wordt een instructie uitgevoerd
instructies worden in volgorde op het RAM opgeslagen. Voor een hypothetische CPU bestaat de instructie uit OP-code (operationele code) en geheugen-of registeradres.
Er zijn twee registers in een Control Unit Instruction register (IR) die de OP-code van de instructie laadt en instruction address register dat het adres van de momenteel uitvoerende instructie laadt. Er zijn andere registers in een CPU die de waarde opgeslagen in het adres van de laatste 4 bits van een instructie opslaat.
laten we een voorbeeld nemen van een set instructies die twee getallen toevoegt. De volgende zijn de instructies samen met hun beschrijving. De CPU werkt met de volgende instructies:
stap 1-LOAD_A 8:
de instructie wordt in het RAM opgeslagen als Laten we zeggen <>. De eerste 4 bit is de op-code. Dit bepaalt de instructie. Deze instructie wordt opgehaald in de IR van de besturingseenheid. De instructie wordt gedecodeerd om load_A te zijn, wat betekent dat het de gegevens in het adres 1000 moet laden, wat de laatste 4 bit van de instructie is om A.
stap 2-LOAD_B 2
vergelijkbaar met hierboven laadt dit de gegevens in het geheugen adres 2 (0010) naar CPU register B.
stap 3 — Voeg B a
Toe nu is de volgende instructie om deze twee getallen toe te voegen. Hier vertelt de CU aan ALU om de add-bewerking uit te voeren en het resultaat terug op te slaan naar register A.
stap 4 — STORE_A 23
Dit is een zeer eenvoudige set instructies die helpt twee getallen toe te voegen.
we hebben met succes twee getallen toegevoegd!
BUS
alle gegevens tussen CPU, register, memory en IO devise worden via bus overgedragen. Om de gegevens in het geheugen te laden die het zojuist heeft toegevoegd, plaatst de CPU het geheugenadres op address-bus en het resultaat van de som op de data-bus en schakelt het juiste signaal in de control-bus in. Op deze manier worden de gegevens met behulp van de bus in het geheugen geladen.
Cache
CPU heeft ook een mechanisme om de instructie voor te schrijven in de cache. Zoals we weten zijn er miljoenen instructies die een processor binnen een seconde kan invullen. Dit betekent dat er meer tijd besteed zal worden aan het ophalen van de instructie van RAM dan het uitvoeren ervan. Dus de CPU cache prefetches een deel van de instructie en ook gegevens, zodat de uitvoering snel krijgt.
als de gegevens in de cache en het besturingsgeheugen verschillend zijn, worden de gegevens gemarkeerd als een vies bit.
instructie pipelining
moderne CPU gebruikt instructie pipelining voor parallellisatie in instructie uitvoering. Halen, Decoderen, Uitvoeren. Wanneer een instructie zich in de decode fase bevindt kan de CPU een andere instructie voor de fetch fase verwerken.
Dit heeft een probleem wanneer een instructie afhankelijk is van een andere. Dus processors voeren de instructie uit die niet afhankelijk is en in een andere volgorde.
Multicore computer
het is in principe de verschillende CPU, maar heeft een aantal gedeelde bronnen zoals de cache.
Performance
de prestaties van de CPU worden bepaald door de uitvoeringstijd. Performance = 1 / uitvoeringstijd
laten we zeggen dat het 20ms duurt voordat een programma wordt uitgevoerd. De prestaties van CPU is 1/20 = 0.05msrelatieve prestatie = uitvoeringstijd 1 / uitvoeringstijd 2
De factor die in aanmerking komt voor een CPU-prestatie is de uitvoeringstijd van de instructie en de kloksnelheid van de CPU. Dus om de prestaties van een programma te verhogen moeten we ofwel de kloksnelheid verhogen of het aantal instructies in een programma verlagen. De processorsnelheid is beperkt en moderne computers met multi-core kunnen miljoenen instructies per seconde ondersteunen. Maar als het programma dat we hebben geschreven heeft veel instructies dit zal de algehele prestaties te verminderen.
Big O notatie bepaalt met de gegeven input hoe de prestaties zullen worden beïnvloed.
Er zijn veel optimalisaties gedaan in de CPU om het sneller te maken en zo veel mogelijk uit te voeren. Tijdens het schrijven van een programma dat we nodig hebben om te overwegen hoe het verminderen van het aantal instructies die we leveren aan de CPU zal de prestaties van het computerprogramma te verhogen.
geïnteresseerd in het optimaliseren van databases? Lees hier meer over: https://milapneupane.com.np/2019/07/06/how-to-work-optimally-with-relational-databases/