Extras din laborator
În acest laborator sunt studiate principalele componente aritmetice de adunare şi scădere
utilizate în unităţile de calcul.
1. Sumatorul complet pe un bit
În unităţile de calcul moderne sunt folosite circuite de adunare şi scădere implementate
paralel. La baza oricărei structuri de adunare se află sumatorul complet pe un bit.
Construcţia acestuia începe de la construirea tabelului de adevar pentru o operaţie de
adunare.
Sumatorul complet pe un bit este conceput pentru adunarea a două numere pe câte un bit
fiecare returnând drept rezultat un bit de sumă şi unul de transport. Acesta are intrări,
două intrări fiind cele două numere iar cea de-a treia fiind transportul pe intrare conform
figurii de mai jos:
Fig. 1. Schema bloc a sumatorului complet pe un bit
Pentru adunarea a două numere pe un bit fiecare ar fi fost suficient numai intrarea a şi b.
Totuşi în unele situaţiiPentru ca acest modul să se poată fi folosit în sumatoare extinse pe
mai mulţi biţi poate fi necesar ca să existe în plus, ca intrare, şi eventualul transport
rezultat dintr-un proces anterior.
Pentru proiectarea sumatorului de mai sus se foloseşte urmatorul tabel de adevăr:
Calculatoare numerice II Laborator 1
O soluţie de implementare a circuitului folosind şi porţi XOR (disponibile în structurile
logice actuale) ar fi următoarea:
Fig. 2. Schema internă a sumatorului complet pe un bit
În practică, pentru realizarea circuitelor de adunare a doi operanzi pe mai mult de un bit,
se folosesc mai multe asemenea blocuri interconectate între ele. În continuare vor fi
prezentate trei asemenea tehnici pentru realizarea circuitelor de adunare luându-se drept
exemplu practic adunarea a două numere pe patru biţi fiecare..
2. Sumatorul cu transporturi parţiale (ripple carry)
Este cea mai simplă posibiltate de realizare a unui circuit de adunare folosind blocurile
prezentate la paragraful anterior. Această metodă îşi are punctul de plecare de la modul în
care noi adunăm două numere. De exemplu pentru două numere pe patru cifre fiecare:
a3a2a1a0 şi b3b2b1b0 dacă dorim să facem suma între ele adunăm în prima fază cifrele
cu semnificaţia cea mai redusă a0 şi b0 scrie rezultatul (s0) şi apoi continuăm adunând
cifrele a1, b1 şi eventualul transport care a apărut la adunarea anterioară ş.a.m.d.
Urmărind această procedură se poate descrie un sumator a două numere pe patru biţi
astfel:
Fig. 3. Circuit adunare a două numere pe 4 biţi folosind transporturi parţiale
Calculatoare numerice II Laborator 1
Cele două numere sunt reprezentate în figura 3 sub forma a3a2a1a0 repsectiv b3b2b1b0.
Rezultatul adunării este un număr, de asemenea pe 4 biţi: s3s2s1s0 şi un bit de transport
co. Cum era firesc, transportul de intrare de la primul sumator complet pe un bit este
conectat la masă (0).
Circuitul, deşi cel mai uşor de implementat, are un dezavantaj: timpul de răspuns (timpul
scurs din momentul în care s-au aplicat pe intrare numerele până când s-a obţinut la ieşire
rezultatul corect) creşte o dată cu creşterea lungimii operanzilor.
Dacă considerăm tp timpul de răspuns al unei porţi logice atunci pentru un sumator
complet pe un bit avem un timp de răspuns egal cu 3tp. Prin modul în care sunt conectate
blocurile în figura 3 reiese că rezultatul nu va fi corect decât după ce transportul „s-a
propagat” prin toate cele patru module. Deci timpul de răspuns al circuitului va fi:
Tp = 4 3 tp = 12 tp. Valoarea acestuia creşte substanţial cu lungimea operanzilor.
Pentru un sumator a două numere pe 32 de biţi de exemplu valoarea acestuia ar fi de 96
tp.
3. Sumatorul cu transport anticipat (carry look ahead)
Din modelul de mai sus s-a observat că principalul factor care duce la întârzieri în
răspunsul circuitului de adunare îl reprezintă nu calculul sumei propriuzise ci calculul
transportului. Din acest motiv s-au realizat circuite care să poată calcula „anticipat”
transportul şi să-l genereze în acelaşi timp cu suma.
Ca acest lucru să fie posibil, pornind de la tabelul de adevăr de mai sus se obţine
următoarea funcţie logică pentru obţinerea transportului la ieşire la sumatorul complet pe
un bit:
co = (a ci) + (b ci) + (a b) + (a b ci). (în continuare se va folosi pentru reprezentarea
produsului logic (SI) şi pentru reprezentarea sumei logice (SAU) formele lor aritmetice.
De exemplu pentru „a SI b” se va scrie „(a b)” iar pentru „a SAU b” se va scrie „a + b”).
Expresia se poate reduce la (dacă (a b ci) este adevărată atunci este adevărată cel puţin
una din celelalte expresii):
co = (a ci) + (b ci) + (a b).
Relaţia poate fi extinsă la sumatorul pe 4 biţi prezentat în paragraful anterior astfel:
c1 = (a0 c0) + (b0 c0) + (a0 b0);
c2 = (a1 c1) + (b1 c1) + (a1 b1) = (a1 a0 c0) + (a1 b0 c0) + (a1 a0 b0) + (b1 a0 c0) + (b1
b0 c0) + (b1 a0 b0) + (a1 b1).
Preview document
Conținut arhivă zip
- Structura si Organizarea Calculatoarelor
- ANEXA LABORATOR.pdf
- Laborator 1.pdf
- Laborator 2.pdf
- Laborator 3.pdf