Aritmetisk logisk enhet ( ALU ; engelsk aritmetisk logisk enhet, ALU ) är en processorenhet som, under kontroll av kontrollenheten , tjänar till att utföra aritmetiska och logiska transformationer (med början från elementära ) på data, i detta fall kallade operander . Bitheten hos operanderna brukar kallas maskinordets storlek eller längd .
Begreppet en aritmetisk logisk enhet föreslogs 1945 av John von Neumann i en publikation om EDVAC ; det blev en av komponenterna i den nu klassiska von Neumann datorarkitekturen .
Enbits binär binär (tvåoperand) ALU med en binär (tvåsiffrig) utgång kan utföra upp till binära binära (tvåoperand) funktioner (operationer) med en binär (tvåsiffrig) utgång.
Den aritmetisk-logiska enheten, beroende på funktionernas prestanda, kan delas in i två delar:
Strukturen hos den aritmetiska logiska enheten inkluderar villkorligt register Rg1 - Rg7, som tjänar till att bearbeta information som kommer från det operativa eller passiva minnet N1, N2, ... NS och logiska kretsar som används för att bearbeta ord enligt mikroinstruktioner som kommer från styrningen enhet.
Det finns två typer av mikrokommandon: externa - sådana mikrokommandon som kommer in i ALU från externa källor och orsakar informationstransformation i den, och interna - de som genereras i ALU och påverkar mikroprogramanordningen, och därmed ändrar den normala sekvensen av kommandon.
Typiska funktioner för registren som ingår i den aritmetiska logiska enheten:
En del av driftregistren kan adresseras i instruktionen att utföra operationer på deras innehåll, och de kallas programtillgängliga. Dessa register inkluderar: adderare, indexregister och några hjälpregister. De återstående registren kan inte adresseras i programmet, det vill säga de är programotillgängliga.
Driftenheter kan klassificeras efter vilken typ av information som behandlas, hur den behandlas och den logiska strukturen.
En sådan komplex logisk struktur hos ALU kan kännetecknas av antalet mikrooperationer som skiljer sig från varandra, vilka är nödvändiga för att slutföra hela komplexet av uppgifter som tilldelats den aritmetiska logiska enheten. Vid ingången av varje register är motsvarande logikkretsar sammansatta, vilket tillhandahåller sådana anslutningar mellan registren, som gör det möjligt att implementera de specificerade mikrooperationerna. Att utföra operationer på ord reduceras till att utföra vissa mikrooperationer som styr överföringen av ord till ALU och åtgärder för att transformera ord. Ordningen för exekvering av mikrokommandon bestäms av algoritmen för att utföra operationer. Det vill säga, kopplingarna mellan ALU-registren och deras funktioner beror huvudsakligen på den accepterade metodiken för att utföra logiska operationer, inklusive aritmetik eller speciell aritmetik.
Funktionellt består ALU av två register (Register1, Register 2), en styrkrets och en adderare [1] . Den aritmetiska operationen utförs i cykler:
Ett exempel på ALU-operation på en subtraktionsoperation:
Alla operationer som utförs i den aritmetiska logiska enheten är logiska operationer (funktioner), som kan delas in i följande grupper:
Moderna generella datorer implementerar vanligtvis operationer för alla ovanstående grupper, och små och mikrodatorer , mikroprocessorer och specialiserade datorer har ofta inte utrustning för flyttalsaritmetik, decimalaritmetik och operationer på alfanumeriska fält. I det här fallet utförs dessa operationer av speciella subrutiner.
Aritmetiska operationer inkluderar addition , subtraktion , modulo subtraktion ("korta operationer") och multiplikation och division ("långa operationer"). Gruppen av logiska operationer består av operationer disjunktion (logisk ELLER) och konjunktion (logisk AND) över flerbitars binära ord, jämförelse av koder för likhet. Särskilda aritmetiska operationer inkluderar normalisering, aritmetisk skiftning (endast digitala bitar skiftas, teckenbiten förblir på plats), logisk skiftning (teckenbiten skiftas tillsammans med de digitala bitarna). Gruppen av operationer för redigering av alfanumerisk information är omfattande. Varje operation i en ALU är en logisk funktion eller sekvens av logiska funktioner som beskrivs av binär logik för binära datorer, ternär logik för ternära datorer , kvartär logik för kvartära datorer, decimallogik för decimaldatorer och så vidare.
Aritmetiska logiska enheter är uppdelade i seriella och parallella beroende på hur de verkar på operander. I seriella enheter representeras operander i seriell kod, och operationer utförs sekventiellt i tiden på deras individuella bitar; parallellt - med en parallell kod och operationer utförs parallellt i tid över alla bitar av operanderna.
Beroende på hur siffror representeras, särskiljs aritmetisk-logiska enheter:
Genom arten av användningen av element och noder är ALU:er indelade i block och multifunktionella. I en blockanordning utförs operationer på fasta och flyttalsnummer, decimaltal och alfanumeriska fält i separata block, samtidigt som man ökar operationshastigheten, eftersom blocken kan utföra motsvarande operationer parallellt, men utrustningskostnaderna ökar avsevärt. I multifunktionella ALU:er utförs operationer för alla former av nummerrepresentation av samma kretsar, som kopplas om på rätt sätt beroende på önskat driftsätt.
När det gäller dess funktioner är en aritmetisk logikenhet en operationsenhet som utför mikrooperationer som säkerställer mottagning av operander från andra enheter (till exempel minne), deras transformation och utfärdande av transformationsresultat till andra enheter. Den aritmetiskt-logiska enheten styrs av en styrenhet som genererar styrsignaler som initierar exekveringen av vissa mikrooperationer i ALU:n. Sekvensen av signaler som genereras av kontrollblocket bestäms av kommandooperationskoden och varningssignaler.
Processor Technologies | Digital|||||||||
---|---|---|---|---|---|---|---|---|---|
Arkitektur | |||||||||
Instruktionsuppsättning arkitektur | |||||||||
maskinord | |||||||||
Parallellism |
| ||||||||
Genomföranden | |||||||||
Komponenter | |||||||||
Energihantering |