810 likes | 1.22k Views
Facultatea de Informatică - Iaşi. Arhitectura Calculatoarelor Curs pentru anul I Informatică FII - 2003 hluchian@infoiasi.ro. Autori ale căror prezentări publice au fost folosite pentru pregătirea acestei forme a cursului. Sivarama Dandamundi Jerry Breecher Randy Katz Michel Allemand
E N D
Facultatea deInformatică - Iaşi Arhitectura Calculatoarelor Curs pentru anul I Informatică FII - 2003 hluchian@infoiasi.ro
Autori ale cărorprezentări publice au fost folosite pentru pregătirea acestei forme a cursului • Sivarama Dandamundi • Jerry Breecher • Randy Katz • Michel Allemand • Daniel Amyot • John Morris
CUPRINS • I. Introducere în Arhitectura şi organizarea calculatorului • II. Circuite combinaţionale şi funcţii booleene • III. Circuite secvenţiale şi automate • IV. Reprezentări interne
CIRCUITE COMBINAŢIONALE ŞI FUNCŢII BOOLEENE Capitolul al-II-lea
Semnal analogic şisemnal digital • Semnal analogic • continuu • dacă a luat valorile a şi b, atunci a luat şi “toate” valorile din [a,b]. • Semnal digital • are câteva niveluri – valori – distincte şi stabile • discontinuu • nu ia alte valori (…) • Indiferent de fenomenul fizic aflat la bază • Calculator: semnal digital cu 2 niveluri • “0” şi “1” … • Modem: comunicare digital – analogic. • Conducerea proceselor industriale • Folosirea reţelelor telefonice analogice
Aplicaţii ale circuitelor digitale • Calculatoare • CPU, memorie, bus, periferice,… • Reţele, comunicaţii • telefoane, modemuri, routere • Bunuri diverse • automobile, audio-video, jucării, … • Echipament pentru (alte) activităţi ştiinţifice • Testare, măsurare etc. • Lumea calculului se extinde mult dincolo de PC. • embedded systems • definiţii restrânse ale calculului
O 1 O m Circuite • Combinaţionale: • Secvenţiale: o1 Om I 1 IEŞIRI INTRĂRI I n I 1 INTRĂRI parte IEŞIRI I n combina- ţională STĂRI memorie
Metoda cutiei negre • Pentru un circuit combinaţional a cărui structură / funcţionare nu este cunoscută: • se aplică fiecare combinaţie posibilă de valori ale intrărilor; • se observă valorile ieşirilor pentru fiecare astfel de combinaţie • se obţine astfel un tabel de adevăr. • Cum unui tabel de adevăr îi corespunde o funcţie booleană, rezultă că fiecărui circuit combinaţional îi corespunde o funcţie booleană.
De la circuite la funcţii booleene • Circuit combinaţional tabel de adevăr • n fixat: partea de intrare e întotdeauna aceeaşi • Întotdeauna aceeaşi corespondenţă pentru un circuit (determinist)
Structura algebrică • Mulţimea nevidă B • Mulţimea de operaţii binare { + , • } • O operaţie unară { } • B conţine cel puţin două elemente, a, b, a b. • închidere: a + b este în B a • b este în B este în B
Funcţii booleene • B = {0,1} • f : Bn Bm • funcţie: n variabile, m valori • circuit: n intrări, m ieşiri • Există astfel de funcţii. • n=1, m=1 : 4 funcţii unare cu o valoare.
Funcţii booleenede două variabile • 16 funcţii booleene complet definite de 2 variabile şi cu o valoare. X F Y X xor Y X = Y not X X 1 Y 0 X and Y X or Y not Y X nand Y X nor Y
Axiome şi teoremeîn algebra booleană • Identitate 1. X + 0 = X 1D. X • 1 = X • Constante 2. X + 1 = 1 2D. X • 0 = 0 • Idempotenţă 3. X + X = X 3D. X • X = X • Involuţie 4. = X • Complementaritate 5. X + = 1 5D. X • = 0 • Comutativitate 6. X + Y = Y + X 6D. X • Y = Y • X • Associativitate 7. (X + Y) + Z = X + (Y + Z) 7D. (X • Y) • Z = X • (Y • Z) • Distributivitate 8. X • (Y + Z) = (X • Y) + (X • Z) 8D. X + (Y • Z) = (X + Y) • (X + Z) • Unificare 9. X • Y + X • = X 9D. (X + Y) • (X + ) = X • Absorbţie 10. X + X • Y = X 10D. X • (X + Y) = X 11. (X + ) • Y = X • Y 11D. (X • ) + Y = X + Y
Legile lui De Morgan • 12. • 12D. • Generalizare: • 13. • Dualitate
Forme normale • Plecând de la tabelul de adevăr al unei funcţii, se pot obţine două expresii diferite pentru acea funcţie: • Forma normală disjunctivă • Pentru fiecare 1 din ultima coloană, se scrie un termen ce conţine doar conjuncţii • Termenii se leagă prin disjuncţie • Fiecare termen conţine fiecare variabilă a funcţiei • negată, dacă în linia acelui 1 variabila apare cu valoarea 0 • nenegată pentru 1 • Exemplu: F9(x,y)=x·y + x·y • Forma normală conjunctivă: dual • Exemplu: F9(x,y)= (x+y)·(x+y)
Operaţiile calculatoruluila nivel logic elementar • Pentru calculatoarele actuale, operaţiile elementare la nivelul circuitelor de bază sunt operaţiile logicii booleene • care simulează şi operaţiile aritmetice elementare în baza 2. • Un circuit combinaţional poate fi văzut ca implementând o funcţie booleană.
A 0 0 1 1 A 0 0 1 1 B 0 1 0 1 B 0 1 0 1 OR 0 1 1 1 AND 0 0 0 1 A AND B Poarta AND A OR B Poarta OR A 0 1 NOT 1 0 A NOT Poarta NOT Alfabetul diagramelor logice • Porţi elementare • AND • OR • NOT • Funcţionarea unei porţi se poate descrie printr-un tabel de adevăr (funcţia booleană ataşată)
A 0 0 1 1 A 0 0 1 1 A 0 0 1 1 B 0 1 0 1 B 0 1 0 1 B 0 1 0 1 XOR 0 1 1 0 NOR 1 0 0 0 NAND 1 1 1 0 A NAND B Poarta NAND A NOR B Poarta NOR A XOR B Poarta XOR Alfabetul diagramelor logice • Alte porţi utile • NAND • NOR • XOR • NAND = NOT ° AND • NOR = NOT ° OR • XOR implementează funcţia sau-exclusiv • Porţile NAND şi NOR necesită doar 2 tranzistori • pentru AND şi OR e nevoie de câte 3 tranzistori
În diagrame logice apar şi porţi “elementare” cu mai multe intrări • Operaţiile binare asociative pot fi extinse la operaţii cu orice număr finit de operanzi
Set minimal de generatori • Care este numărul minim de tipuri de porţi ce ar trebui produse pentru a putea obţine din ele circuite care implementează orice funcţie booleană? • 3 – anume, {NOT, OR, AND} – este un răspuns parţial • Forme normale (disjunctivă, conjunctivă) • Şi două ajung: NOT şi una din celelalte două • Răspunsul corect este 1, cu două soluţii: {NAND} şi {NOR}
Temă • Arătaţi că {NAND} şi {NOR} sunt mulţimi de generatori pentru funcţiile booleene • Indicaţie: se foloseşte FND sau FNC. În particular:
A 1 A A+B A+B B B 1
Definirea funcţiilor booleene • Funcţiile logice booleene pot fi definite în mai multe moduri: • prin tabel de adevăr • prin expresii conţinând variabile şi operaţii logice • în formă grafică • în sigma-notaţie (Σ) • Exemplu: funcţia “majoritatea dintre k” • are k variabile şi o valoare • valoarea funcţiei este 1 dacă majoritatea variabilelor au valoarea 1 • vom studia funcţia pentru k=3.
Σ-notaţia • f=(3,5,6,7) • Fiecare număr din paranteză reprezintă un termen • denotă disjuncţia termenilor • Numărul de variabile n este cea mai mică putere a lui 2 strict mai mare decât cel mai mare număr ce apare în paranteză • n = 3: 4 = 22 < 7 < 23 = 8 • f(x1 , x2 , x3)= (3,5,6,7)
Σ-notaţia • Fiecare număr din paranteză se scrie în baza 2 pe n poziţii • 3 011 • Termenul corespunzând unui număr conţine: • toate variabilele, • fiecare negată dacă îi corespunde un 0 şi nenegată pentru 1, • legate prin conjuncţie • 3 011
Σ-notaţia • 11 aplicări ale funcţiilor elementare OR / AND. • Găsirea unei expresii echivalente (aceeaşi funcţie booleană) cu mai puţine aplicări de operatori ar face respectivul circuit • mai rapid, • mai ieftin, • mai fiabil.
A B C IMP Funcţia “imparitate” cu 3 intrări • Implementarea formei normale disjunctive A B C IMP 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 0 0 1 1 0 1 0 1 1 0 0 1 1 1 1
A B C F 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1 Implementarea funcţiei“majoritate din 3” • Forma normală disjunctivă: patru termeni, fiecare conţinând doar conjuncţii • corespund celor 4 linii cu ieşirea 1 • În fiecare termen, o variabilă apare negată numai dacă valoarea sa pe acea linie este 0. F = A B C + A B C + + A B C + A B C • Se poate implementa o expresie echivalentă mai simplă ?
Minimizare • Nu doar set minimal de operatori, ci şi – pentru o funcţie dată – număr minimal de aplicări ale acestora (AND / OR) • FND – un număr de apariţii ale operatorilor • 11 OR / AND în exemplu • Proceduri de minimizare – reduc expresia • Rescriere echivalentă • Inducţie perfectă • Metoda Veitch-Karnaugh • Metoda Quine-McCluskey • Hibridizare (ex: V-K urmat de distributivitate)
Idempotenţă Minimizare prin rescriere algebrică • Funcţia “majoritate din 3” A B C + A B C + A B C + A B C = A B C + A B C + A B C + A B C + A B C + A B C • Expresia devine: B C + A C + A B • Metodă dificilă pentru expresii complexe
&II.5. MINIMIZAREA FUNCŢIILOR BOOLEENE PRIN METODA DIAGRAMELOR KARNAUGH
Structura unei diagrame Karnaugh pentru n variabile • Pe structura unui tabel bidimensional • Zona variabilelor • 2 clase : etichete de linii / coloane (n par clase egale) • se scriu numele variabilelor • Zona etichetelor • o etichetă este un şir de n biţi, dacă funcţia are n variabile • Pentru n par, n/2 biţi într-o etichetă de linii, n/2 pentru o etichetă de coloană • fiecare bit dintr-o etichetă corespunde unei variabile • Zona celor 2n locaţii din diagramă • în care se vor trece doar valorile de 1. • unei locaţii îi corespunde o unică etichetă
Ordinea codului Grey ABC 00 01 11 10 ABCD 00 01 11 10 AB 0 1 00 0 0 01 1 1 11 10 Diagrama Karnaugh pentru două variabile Diagrama Karnaugh pentru 3 variabile Diagrama Karnaugh pentru 4 variabile Metoda Karnaugh
Etichete: codul Grey • Etichetele nu se scriu în ordinea naturală, ci în ordinea Grey. • pe 2 poziţii binare: 00, 01, 11, 10. • pe 3 poziţii binare: 000, 001, 011, 010, 110, 111, 101, 100. • pe 4 poziţii binare: 0000, 0001, 0011, 0010, 0110, 0111, 0101,0100, 1100, 1101, 1111, 1110, 1010, 1011, 1001,1000. • Oricare două etichete consecutive – inclusiv prima şi ultima! - diferă printr-un singur bit.
Adiacenţe în diagrame Karnaugh • Două poziţii sunt adiacente dacă etichetele corespunzătoare diferă pe un singur bit. • Generalizează “vecinătatea” intuitivă • 4 variabile: cele patru colţuri sunt adiacente! • Pentru o funcţie de n variabile, o locaţie are n locaţii adiacente • < 5 variabile – vizual • 5 sau mai multe: şi alte adiacenţe decât cele vizibile
Paşii minimizării Karnaugh 1. Se trec în locaţiile corespunzătoare (conform etichetelor) valorile de 1 ale funcţiei; • Se caută blocuri conţinând numai valori 1, astfel încât: • fiecare valoare 1 să fie inclusă în cel puţin un bloc; • blocurile să fie cât mai mari şi mai puţine; • un bloc să conţină un număr de locaţii egal cu o putere a lui 2 • eventual puterea 0; • dacă blocul conţine 2k locaţii , atunci pentru fiecare locaţie blocul să conţină exact k locaţii adiacente cu ea.
Paşii minimizării Karnaugh • Se scrie expresia minimizată a funcţiei astfel: • fiecărui bloc cu 2k locaţii 1 îi corespunde un termen conţinând n-k variabile legate prin conjuncţie; • în termen apar acele variabile ale căror etichete sunt constante pentru toate locaţiile din bloc; • o variabilă apare negată dacă eticheta sa constantă este 0 şi nenegată altfel; • termenii astfel obţinuţi (după considerarea tuturor blocurilor) sunt legaţi prin disjuncţie.
BC ĀBC ĀBC ABC 00 01 11 10 ABC 00 01 11 10 AB 0 0 0 1 0 0 0 1 0 1 1 0 1 1 1 1 1 0 1 0 ABC AC ABC Funcţia imparitate Funcţia majoritate din 3 Exemple: “majoritatea din 3”; imparitate
Adiacenţa liniilor/coloanelor extreme _ AB ABC 00 01 11 10 0 1 0 1 1 1 1 1 0 1 _ C _ AB f(A,B,C)=Σ(0,2,3,4,5,6)
ABCD ABCD 00 00 01 01 11 11 10 10 00 00 1 1 0 0 0 0 1 1 01 01 0 0 0 0 0 0 0 0 11 11 0 0 1 1 1 1 0 0 10 10 1 1 1 1 0 0 1 1 _ _ ABC _ ACD _ _ B D ABD _ _ B D ABD Expresia depinde de grupare
ABCD ABCD 00 00 01 01 11 11 10 10 00 00 0 0 0 0 1 1 0 0 01 01 1 1 1 1 1 1 0 0 11 11 0 0 1 1 1 1 1 1 10 10 0 0 1 1 0 0 0 0 Simplificare Karnaugh neminimală Simplificare Karnaugh minimală Evitarea redundanţelor
Combinaţii imposibilede valori • Variabilele nu vor avea niciodată acele combinaţii de valori • Se poate deci considera restricţia funcţiei booleene doar la subdomeniul de definiţie al combinaţiilor permise • doar aceasta va fi “vizibilă” în funcţionarea circuitului • se consideră cea mai convenabilă – din punctul de vedere al minimizării – extensie la combinaţiile imposibile • se consideră valoarea 0 sau 1, după cum convine
Exemplu – afişarea cifrelor zecimale • Afişaj cu 7 segmente • Selectarea segmentelor pentru fiecare cifră • 0 – stins • 1 – aprins
Funcţia booleană ataşată segmentului d Nr A B C D d Nr A B C D d 0 0 0 0 0 1 8 1 0 0 0 1 1 0 0 0 1 0 9 1 0 0 1 1 2 0 0 1 0 1 10 1 0 1 0 * 3 0 0 1 1 1 11 1 0 1 1 * 4 0 1 0 0 0 12 1 1 0 0 * 5 0 1 0 1 1 13 1 1 0 1 * 6 0 1 1 0 1 14 1 1 1 0 * 7 0 1 1 1 0 15 1 1 1 1 *
ABCD ABCD 00 00 01 01 11 11 10 10 00 00 1 1 0 0 1 1 1 1 01 01 0 0 1 1 0 0 1 1 11 11 * 0 * 0 * 0 * 0 10 10 1 1 1 1 * 0 * 0 Combinaţiile imposibile pot simplifica expresia Simplificare “funcţionare de siguranţă” Simplificare exploatând combinaţiile imposibile
A B C D LT EQ GT 0 0 0 0 0 1 0 0 1 1 0 0 1 0 1 0 0 1 1 1 0 0 0 1 0 0 0 0 1 0 1 0 1 0 1 0 1 0 0 1 1 1 0 0 1 0 0 0 0 0 1 0 1 0 0 1 1 0 0 1 0 1 1 1 0 0 1 1 0 0 0 0 1 0 1 0 0 1 1 0 0 0 1 1 1 0 1 0 A LTEQGT A B < C DA B = C DA B > C D N1 B C N2 D Diagrama bloc şi tabelul de adevăr Temă: comparator pe 2 biţi E nevoie de câte o reducere Karnaugh pentru fiecare dintre cele 3 funcţii