- Processorarkitekturer
- RISC och CISC Instruktionsuppsättningsarkitektur
- Complex Instruction Set Computing (CISC)
- Reducerad instruktionsuppsättning (RISC)
Inbyggda system är hjärtat och kärnan i de flesta elektroniska produkter som finns på marknaden. Det är implementeringen av teknik där hårdvara möter programvaran. Vi omges av en värld av inbäddade system, med minidatorer i biometriska dörrlås, flygplan, bilar, pacemaker, etc. Dessa resurser begränsade, små, smarta och kraftfulla system hjälper oss i våra dagliga uppgifter.
Har någonsin tänkt på hur vår kropp fungerar, nervsystemet, hjärnan och förmågan att göra flera uppgifter. Om du kombinerar alla dessa funktioner skulle du få en grov bild av ett biologiskt inbäddat system. Vår hjärna döljer den komplexa detalj av sin funktion som äger rum inuti den men ändå låter oss kontrollera den till maximal potential. Samma komplexitet gäller för processorn eller styrenheten som används i inbäddade system. De döljer komplexa detaljer och ger oss ett gränssnitt på hög nivå att arbeta med. För abstraktionsnivån kan man relatera hur koden för att lägga till två nummer i ett programmeringsspråk på hög nivå orsakar registren i chipsen hanterar bitar och ger en utgång tillbaka till användaren.
Processorarkitekturer
Centralbehandlingsenheten, som hänvisar till både mikroprocessor och mikrokontroller, utför specifika uppgifter med hjälp av en kontrollenhet (CU) och aritmetisk logisk enhet (ALU). Eftersom instruktionerna levereras från RAM, fungerar CPU med hjälp av sina två hjälpande enheter genom att skapa variabler och tilldela dem värden och minne. Det är väldigt viktigt att veta hur CPU: n utför alla dessa åtgärder med hjälp av sin arkitektur. Om du vill veta mer om hur en mikrokontroller fungerar kan du läsa den här grundläggande artikeln om mikrokontroller.
Varje processor har ett minne associerat med sig för att lagra programmet och data. Program och data fungerar med processorn för att få utdata. Programmet tillhandahåller instruktioner medan data ger den information som ska arbetas med. För att komma åt programmet och data använder CPU bussar, dessa bussar är ledningar, mer exakt är det trådspåren som du kanske har sett på kretskorten. Under dessa år har mikrokontroller och mikroprocessorer utvecklats genom att anpassa olika arkitekturer, baserat på applikationens eller designkraven, valet av mikrokontroller påverkas av den typ av arkitektur som används i den. Låt oss ta en titt på de populära arkitekturerna.
Von-Neumann / Princeton-arkitektur
Sättet som CPU får tillgång till programmet och data berättar om CPU: ns arkitektur. Tidigare användes en enda buss för att få tillgång till programmet och data. Denna typ av arkitektur är känd som Von Neumann Architecture eller enklare Princeton Architecture. En enda buss för att få koden och data betyder att de kommer för att komma i varandra och sakta ner processorns hastighet eftersom var och en var tvungen att vänta på att den andra skulle slutföra hämtningen. Denna begränsning är också känd som Von-Neumanns flaskhalsvillkor.
Harvard arkitektur
För att påskynda processen föreslogs Harvard Architecture. I denna arkitektur finns en separat databuss för data och program. Så det betyder att denna arkitektur föreslog användning av fyra bussar
- En uppsättning databuss som bär data in och ut ur CPU: n.
- En uppsättning adressbussar för åtkomst till data.
- En uppsättning databuss för att bära kod in i CPU: n.
- En adressbuss för åtkomst till koden.
Användningen av separat adressbuss och databuss innebar låg exekveringstid för CPU men detta kostar kostnaden för komplexiteten i utformningen av arkitekturen. Von Neumann-arkitekturen låter kanske lite lat men den har fördelen med sin enkla design.
Harvard-arkitektur är mycket lätt att implementera när processorn och minnesenheterna delar samma utrymme eller RAM och ROM är inbyggda (on-chip) med processorenheten, till exempel i mikrokontroller där avstånden är i mikron och millimeter. Samma arkitektur är dock svår att implementera där minnet som innehåller koden är externt för processorenheten som i x86 IBM PC. En uppsättning separata trådspår för både data och adress på moderkortet skulle göra kortet kort och dyrt. Låt oss förstå det med ett exempel på en processor.
En processor med 64-bitars databuss och 32-bitars adressbuss skulle behöva cirka 100 bussar (96 för data- och adressbussen och få andra för styrsignalerna) för implementering av Von-Neumann-arkitektur. Samma struktur om den implementerades med Harvard-arkitekturen skulle kosta dubbla trådspår cirka 200 med ett stort antal stift som kommer ut ur processorn. Det är av samma anledning att vi inte ser ren Harvard-arkitektur implementerad för datorer och arbetsstationer. Istället används en modifierad Harvard-arkitektur där minneshierarki med CPU-cacheminne används för att separera programmet och data. Minneshierarki separerar lagring baserat på hierarkin för processernas svarstid.
Instruktionsuppsättningsarkitektur
Eftersom programmet (koden) laddas in i systemets minne (RAM) hämtas det av CPU: n (med hänvisning till både mikroprocessor och mikrokontroller) för att agera på data, det är mycket lika när vi ger instruktioner när vi tränar hunden för vissa åtgärder och kommandon. När dessa instruktioner verkar på vissa transistorer går från en logisk nivå till en annan för att få det att hända. Så i grund och botten med hjälp av instruktioner kommunicerar mänsklig programmerare med processorn. Varje processor har sin egen instruktionsuppsättning, en samling instruktioner baserat på dess arkitektur och funktioner.
CPU förstår dessa instruktioner i kombinationen 0 och 1 är också kända som en opcode. För en mänsklig programmerare är det verkligen svårt att komma ihåg kombinationen av 0 och 1 för varje instruktion som är associerad med CPU. För att göra jobbet för en mänsklig programmerare enkelt får vi högnivågränssnitt för dessa instruktioner och kompilatorn konverterar dem i form av 0 och 1 för dess bearbetning. Även i instruktionsuppsättningen för varje CPU har den ett begränsat antal instruktioner som den kan förstå.
Prestanda för CPU
Du kanske har hört termen klockfrekvens för CPU relaterad till processorns prestanda. Processorer har i allmänhet en klockfrekvens i MHz (Mega-Hertz) eller GHz (Giga-Hertz) som 25 GHz klockfrekvens. Siffran som är associerad med klockfrekvensen berättar hur många gånger klockan inuti processorn klickar i cykler per sekund. Det praktiska med klockfrekvensen kan förstås av det faktum att instruktioner utförs baserat på klockcykler hos CPU: n som är proportionell mot antalet program CPU kan köras åt gången.
Den prestanda CPU beror på antalet instruktioner som är skrivna i programmet, mer instruktioner, mer tid som CPU för att utföra dem. Det beror också på antalet klockcykler där varje instruktion utförs, vissa instruktioner behöver fler klockcykler för att utföras än andra så att de fördröjer CPU: ns prestanda. Instruktioner i ett program och cykler som krävs för att utföra varje instruktion är omvänt proportionella mot varandra. Att ändra en kommer att påverka den andra. Detta är den punkt där CPU-industrin är uppdelad.
RISC och CISC Instruktionsuppsättningsarkitektur
Som nämnts ovan beror utförandet av ett program och CPU: ns prestanda på antalet instruktioner i ett program där instruktionerna föreslås för den specifika CPU: n som en del av instruktionsuppsättningen och den andra faktorn är antalet klockcykler i som varje instruktion utförs. Baserat på dessa två faktorer finns för närvarande två instruktionsuppsättningar tillgängliga. Den tidigaste av dem är Complex Instruction Set Computing (CISC) medan den andra är Reduced Instruction Set Computing (RISC). Låt oss diskutera var och en av dessa arkitekturer i detalj för att förstå skillnaden mellan RIC och CISC Architecture.
Complex Instruction Set Computing (CISC)
CISC står för Complex Instruction Set Computing. Huvudmotivet för CISC är att minska antalet instruktioner som ett program utför, detta görs genom att kombinera många enkla instruktioner som adressläge, laddning etc. och att bilda en enda komplex instruktion. Den CISC instruktion innehåller en serie enkla undervisning samt några speciella instruktioner som tar mer än en klockcykel att utföra. CISC-instruktionerna kan fungera direkt på minnet utan ingripande av register, vilket innebär att det eliminerar behovet av några grundläggande instruktioner som laddning av värden och minne (RAM). CISC-instruktioner betonar mer på hårdvara än på programvaran, vilket innebär att istället för att lägga belastningen på kompilatorerna,CISC använder transistorer som hårdvara för att avkoda och implementera instruktioner. Eftersom instruktioner är komplexa och består av flera steg utförs de i fler antal klockcykler.
En enkel analogi att relatera till är när du uppmanas att öppna boken och läsa tredje kapitelns andra sida. I den här serien av aktiviteter gör du flera steg som att hitta boken från din väska än att blanda sidan till kapitel 3 och sedan gå till andra sidan i kapitlet och sedan börja läsa. Serien i ett steg om den kombineras i en enda instruktion om att läsa sidan 44 (vilket är det andra sidantalet i tredje kapitel) får vi en CISC-instruktion.
Reducerad instruktionsuppsättning (RISC)
Det första integrerade chipet designades av Jack Kilby 1958 som var en oscillator och 1970 kom den första kommersiella mikroprocessorn från Intel. Även i början av processorerna fanns det inget CISC. Men med de tunga datorkraven blev CISC-arkitekturen mer komplex och svår att hantera. En fullständig redesign av CISC-arkitektur känd som RISC kom från IBM av John Coke. Således för att skilja mellan de två arkitekturerna introducerades termerna RISC och CISC.
RISC står för reducerad instruktionsuppsättning. Huvudmotivet för RISC var att införa enhetlighet i instruktionernas storlek och utförande. Detta gjordes genom att införa enkel instruktionsuppsättning som kunde utföras som en instruktion per cykel, detta görs genom att bryta komplex instruktion som att ladda och lagra i olika instruktioner, där varje instruktion ungefär tar en klockcykel att utföra. Den RISC-arkitektur innehåller enkla instruktioner av samma storlek som kan utföras i en enda klockcykel. RISC-baserade maskiner behöver mer RAM än CISC för att hålla värdena när de laddar varje instruktion i register. Genomförande av enstaka instruktioner per cykel ger RISC-baserade maskiner fördelarna med rörledning(pipelining är den process där nästa instruktion laddas innan den första instruktionen utförs, detta ökar effektiviteten i exekveringen). RISC-arkitektur betonar