- Prosessorarkitekturer
- RISC og CISC Instruksjonsarkitektur
- Complex Instruction Set Computing (CISC)
- Redusert instruksjonsberegning (RISC)
Innebygd system er hjertet og kjernen i de fleste elektroniske produkter som er tilgjengelige i markedet. Det er implementeringen av prosjektering der maskinvare møter programvaren. Vi er omgitt av en verden av innebygde systemer, med mini-datamaskiner i biometriske dørlåser, fly, biler, pacemakere, etc. Disse ressursene er begrensede, små, smarte og kraftige systemer hjelper oss i våre daglige oppgaver.
Har noen gang tenkt på hvordan kroppen vår fungerer, nervesystemene, hjernen og evnen til multi-task. Hvis du kombinerer alle disse funksjonene, vil du få et grovt bilde av et biologisk innebygd system. Hjernen vår skjuler den komplekse detalj av funksjonen som foregår inne i den, men som likevel lar oss kontrollere den til maksimalt potensial. Den samme kompleksiteten gjelder prosessoren eller kontrolleren som brukes i innebygde systemer. De skjuler komplekse detaljer og gir oss et grensesnitt på høyt nivå å jobbe med. For abstraksjonsnivået kan man forholde seg til hvordan koden for å legge til to tall i et høyt programmeringsspråk forårsaker at registerene i sjetongene håndterer biter og gir en utgang tilbake til brukeren.
Prosessorarkitekturer
Den sentrale prosesseringsenheten, som refererer til både mikroprosessor og mikrokontroller, utfører spesifikke oppgaver ved hjelp av en kontrollenhet (CU) og aritmetisk logisk enhet (ALU). Etter hvert som instruksjonene blir levert fra RAM, fungerer CPU ved hjelp av sine to hjelpeenheter ved å lage variabler og tildele verdier og minne. Det er veldig viktig å vite hvordan CPU-en utfører all denne handlingen ved hjelp av arkitekturen. Hvis du vil vite mer om hvordan en mikrokontroller fungerer, kan du lese denne grunnleggende artikkelen om mikrokontroller.
Hver CPU har et minne tilknyttet seg for å lagre programmet og dataene. Program og data fungerer med CPU for å få utdata. Programmet gir instruksjonene mens dataene gir informasjonen det skal jobbes med. For å få tilgang til programmet og data CPU bruker busser, disse bussene er ledninger, mer presist er dette ledningssporene som du kanskje har sett på kretskortene. I løpet av disse årene har mikrokontrollere og mikroprosessorer utviklet seg ved å tilpasse ulike arkitekturer, basert på applikasjons- eller designkravene, og valget av mikrokontroller påvirkes av typen arkitektur som brukes i den. La oss ta en titt på de populære arkitekturene.
Von-Neumann / Princeton arkitektur
Måten CPU får tilgang til programmet og data på, forteller om arkitekturen til CPUen. Tidligere ble en enkelt buss brukt for å få tilgang til programmet og dataene. Denne typen arkitektur er kjent som Von Neumann Architecture eller enklere Princeton Architecture. En enkelt buss for å få koden og dataene betyr at de kommer i veien for hverandre og reduserer prosesseringshastigheten til CPU fordi hver måtte vente på at den andre skulle fullføre hentingen. Denne begrensningen er også kjent som Von-Neumann flaskehals tilstand.
Harvard-arkitektur
For å få fortgang i prosessen ble Harvard Architecture foreslått. I denne arkitekturen er det separate databusser for data og program. Så det betyr at denne arkitekturen foreslo bruk av fire busser
- Et sett med databuss som bærer dataene inn og ut av CPUen.
- Et sett med adressebuss for tilgang til dataene.
- Et sett med databuss for å føre kode inn i CPUen.
- En adressebuss for tilgang til koden.
Bruken av separat adressebuss og databuss betydde lav utførelsestid for CPU, men dette koster kompleksiteten i utformingen av arkitekturen. Von Neumann-arkitekturen kan høres litt lat ut, men den har fordelen av sin enkle design.
Harvard-arkitektur er mye enkelt å implementere når CPU og minneenhetene deler samme plass eller RAM og ROM er innebygd (on-chip) med prosessorenheten, for eksempel i mikrokontroller der avstandene er i mikron og millimeter. Imidlertid er den samme arkitekturen vanskelig å implementere der minnet som holder koden er eksternt for prosessorenheten, slik som i x86 IBM PC-er. Et sett med separate ledningsspor for både data og adresse på hovedkortet vil gjøre brettet komplekst og dyrt. La oss forstå det med et eksempel på en prosessor.
En prosessor med 64-biters databuss og 32-biters adressebuss vil trenge omtrent 100 busser (96 for data- og adressebussen og få andre for styresignalene) for implementering av Von-Neumann-arkitektur. Den samme strukturen, hvis den ble implementert med Harvard-arkitekturen, ville kostet dobbeltrådssporene ca. 200 med et stort antall pinner som kom ut av prosessoren. Det er av samme grunn at vi ikke ser ren Harvard-arkitektur implementert for PC-er og arbeidsstasjoner. I stedet brukes en modifisert Harvard-arkitektur der minnehierarki med CPU-cache-minne brukes til å skille program og data. Minnehierarki skiller lagring basert på hierarkiet over prosessens responstid.
Instruksjonsarkitektur
Ettersom programmet (koden) er lastet inn i minnet til systemet (RAM) blir det hentet av CPUen (refererer til både mikroprosessor og mikrokontroller) for å handle på dataene, det er mye likt når vi gir instruksjoner når vi trener hunden for visse handlinger og kommandoer. Når disse instruksjonene blir handlet på visse transistorer, går det fra ett logikknivå til et annet for å få det til. Så i utgangspunktet ved hjelp av instruksjoner kommuniserer menneskelig programmerer med prosessoren. Hver CPU har sitt eget instruksjonssett, en samling instruksjoner basert på arkitektur og evner.
CPU forstår disse instruksjonene i kombinasjonen av 0 og 1 er som også er kjent som en opcode. For en menneskelig programmerer er det veldig vanskelig å huske kombinasjonen av 0 og 1 for hver instruksjon som er knyttet til CPU. For å gjøre jobben til en menneskelig programmerer enkel, har vi grensesnitt på høyt nivå av disse instruksjonene, og kompilatoren konverterer dem i form av 0 og 1 for behandling. Også i instruksjonssettet til hver CPU har den et begrenset antall instruksjoner som den kan forstå.
Ytelse på CPU
Du har kanskje hørt begrepet klokkefrekvens for CPU relatert til ytelsen til CPU. CPUer har vanligvis en klokkefrekvens i MHz (Mega-Hertz) eller GHz (Giga-Hertz) som 25 GHz klokkefrekvens. Tallet assosiert med klokkefrekvensen forteller hvor mange ganger klokken inne i CPU tikker i sykluser per sekund. Det praktiske ved klokkefrekvensen kan forstås av det faktum at instruksjoner utføres basert på klokkesykluser til CPU-en som er proporsjonal med antall programmer CPU kan kjøre om gangen.
Den ytelsen til CPU avhenger av antall instruksjoner som er skrevet i programmet, flere instruksjoner, mer tid tatt av CPU til å utføre dem. Det avhenger også av antall klokkesykluser der hver instruksjon utføres, visse instruksjoner trenger flere klokkesykluser for å bli utført enn andre, slik at de forsinker ytelsen til CPU. Instruksjoner i et program og sykluser som kreves for å utføre hver instruksjon er omvendt proporsjonal med hverandre. Å endre det ene vil påvirke det andre. Dette er poenget der CPU-bransjen er delt.
RISC og CISC Instruksjonsarkitektur
Som nevnt ovenfor avhenger utførelsen av et program og ytelsen til CPUen av antall instruksjoner i et program der instruksjonene er foreslått til den spesifikke CPU som en del av instruksjons settet, og den andre faktoren er antall klokkesykluser i som hver instruksjon utføres. Basert på disse to faktorene er det for øyeblikket to instruksjonssett tilgjengelig. Den tidligste av dem er Complex Instruction Set Computing (CISC) mens den andre er Reduced Instruction Set Computing (RISC). La oss diskutere hver av disse arkitekturene i detalj for å forstå forskjellen mellom RIC og CISC Architecture.
Complex Instruction Set Computing (CISC)
CISC står for Complex Instruction Set Computing. Hovedmotivet til CISC er å redusere antall instruksjoner som et program utfører, dette gjøres ved å kombinere mange enkle instruksjoner som adressemodus, lasting, etc. og å danne en enkelt kompleks instruksjon. Den CISC instruksjon inkluderer en rekke enkel instruksjon samt noen spesielle instruksjoner som tar mer enn én klokkesyklus å utføre. CISC-instruksjonene kan fungere direkte på minnet uten inngrep fra registre, noe som betyr at det eliminerer behovet for noen grunnleggende instruksjoner som innlasting av verdier og behovet for minne (RAM). CISC-instruksjonene legger mer vekt på maskinvare enn på programvaren, noe som betyr at i stedet for å legge belastningen på kompilatorene,CISC bruker transistorer som maskinvare for å dekode og implementere instruksjoner. Imidlertid, siden instruksjon er kompleks og består av flere trinn, blir de utført i flere antall klokkesykluser.
En enkel analogi å forholde seg er når du får beskjed om å åpne boken og lese 3 rd kapittelets 2 nd side. I denne serien av aktiviteter, har du flere trinn som å finne boken fra vesken enn shuffling siden kapittel 3 og deretter gå til 2 nd siden av kapitlet og deretter begynne å lese. Serien av et trinn dersom den kombineres i en enkelt instruksjon lesing av side 44 (som er den to nd sidenummeret til 3 rd kapittel), får vi en CISC instruksjon.
Redusert instruksjonsberegning (RISC)
Den første integrerte brikken ble designet av Jack Kilby i 1958, som var en oscillator, og i 1970 kom den første kommersielle mikroprosessoren fra Intel. Selv om det ikke var CISC i begynnelsen av prosessorene. Men med de tunge databehandlingskravene ble CISC-arkitekturen mer komplisert og vanskelig å håndtere. En total redesign av CISC-arkitektur kjent som RISC kom ut fra IBM av John Coke. For å skille mellom de to arkitekturene ble begrepene RISC og CISC introdusert.
RISC står for redusert beregning av instruksjonssett. Hovedmotivet til RISC var å innføre ensartethet i størrelsen og gjennomføringen av instruksjonene. Dette ble gjort ved å introdusere enkle instruksjonssett som kunne utføres som en instruksjon per syklus, dette gjøres ved å bryte kompleks instruksjon som å laste og lagre i forskjellige instruksjoner, der hver instruksjon tar omtrent en klokkesyklus å utføre. Den RISC-arkitektur omfatter enkle instruksjoner av samme størrelse som kan bli utført i en enkelt klokkesyklus. RISC-baserte maskiner trenger mer RAM enn CISC for å holde verdiene når de laster hver instruksjon i registre. Utførelse av enkeltinstruksjon per syklus gir RISC-baserte maskiner fordelen med rørledning(rørledning er prosessen der neste instruksjon lastes inn før den første instruksjonen utføres, dette øker effektiviteten ved utførelsen). RISC-arkitektur understreker