Le operazioni. di somma. e sottrazione

Похожие документы
Aritmetica binaria e circuiti aritmetici

una rete combinatoria è un circuito logico avente n ingressi (x 1

Calcolatori Elettronici

Es. 05. Addizionatori (Half Adder, Full Adder); sommatori a n bit (con e. complemento a due e sottrazione; overflow.

senza stato una ed una sola

Esercitazione 02. Circuiti Aritmetici. Gianluca Brilli 09/04/19 ARCHITETTURA DEI CALCOLATORI 1

Sommatori e Moltiplicatori

Aritmetica dei Calcolatori 2

Appunti di informatica. Lezione 3 anno accademico Mario Verdicchio

Codifica e aritmetica binaria

Lezione 7 Sommatori e Moltiplicatori

Il livello logico digitale

Progetto di Circuiti Aritmetici

Unità Aritmetico-Logica

Laboratorio di Architettura degli Elaboratori A.A. 2016/17 Circuiti Logici

Rappresentazione di numeri relativi (interi con segno) Rappresentazione di numeri interi relativi (con N bit) Segno e Valore Assoluto

Elettronica Digitale. 1. Sistema binario 2. Rappresentazione di numeri 3. Algebra Booleana 4. Assiomi A. Booleana 5. Porte Logiche OR AND NOT

Carry-select adder per l'arm6

Moduli Combinatori. Moduli Combinatori. Corso di Architetture degli Elaboratori

Reti Combinatorie: sintesi

Architettura degli Elaboratori

Il Processore: l unità di controllo

Esercizi svolti Y Z. 1. Date le seguenti funzioni logiche ricavare le corrispondenti reti logiche realizzate con porte elementari AND, OR, NOT.

Aritmetica dei calcolatori. La rappresentazione dei numeri

Aritmetica binaria sui numeri relativi (somme e sottrazioni) e Unità aritmetiche

Aritmetica dei Calcolatori 2

Circuiti Combinatori

Il modello di von Neumann

Esercitazioni su rappresentazione dei numeri e aritmetica dei calcolatori

Livello logico digitale

Componenti di un processore

Il processore. Istituzionii di Informatica -- Rossano Gaeta

Транскрипт:

Le operazioni di somma e sottrazione S. Salvatori marzo 2016 (36 di 171)

L'unità aritmetico-logica La ALU rappresenta l'elemento principale di una CPU quale dispositivo di elaborazione. ALU AI BUS ESTERNI incrementer SR FUNZ PC MAR MDR REG ALU REG... DECODER IR R0 R1 Rn BANCO DI REGISTRI La ALU riceve dal decoder l'informazione di quale operazione deve svolgere: addizione sottrazione negazione AND bit-a-bit... S. Salvatori marzo 2016 (37 di 171)

Esempi di addizione binaria 1000 + 8 + 0101 = 5 = -------- ------ 1101 13 ok riporto 1 1001 + 9 + 0101 = 5 = -------- ------ 1110 14 ok riporto riporto d'usc 1 1 1001 + 9 + 1010 = 10 = -------- ------ 0011 19 NO! 1-bit senza riporto in ingresso (half-adder) A B S C 0 0 0 0 1 0 1 0 0 1 1 0 1 1 0 1 XOR AND 1-bit con riporto in ingresso (full-adder) A B Ci S Co 0 0 0 0 0 1 0 0 1 0 0 1 0 1 0 1 1 0 0 1 0 0 1 1 0 1 0 1 0 1 0 1 1 0 1 1 1 1 1 1 riv. dispari se almeno 2 S. Salvatori marzo 2016 (38 di 171)

Sommatore a 1 bit Half-adder senza riporto in ingresso Full-adder con riporto d'ingresso A B CIN S S = A B CIN = SUM(A,B,CIN) = PARITY(A,B,CIN) COUT COUT = A B + A CIN + B CIN = MAJ(A, B, CIN) S. Salvatori marzo 2016 (39 di 171)

Full-adder S = A B CIN = SUM(A,B,CIN) = PARITY(A,B,CIN) Semplifichiamo COUT COUT = A B + A CIN + B CIN = MAJ(A, B, CIN) : COUT = A B + A CIN (B+B') + B CIN (A+A') COUT = A B + A B CIN + A B' CIN + B A CIN + B A' CIN COUT = A B (1 + CIN) + A B' CIN B A' CIN COUT = A B + A B' CIN + B A' CIN COUT = A B + (A B) CIN S. Salvatori marzo 2016 (40 di 171)

Full-adder S = A B CIN = SUM(A,B,CIN) = PARITY(A,B,CIN) Semplifichiamo COUT COUT = A B + A CIN + B CIN = MAJ(A, B, CIN) COUT = A B + A CIN + B CIN = = A B + A B' CIN + B A' CIN = = A B + (A B) CIN se B' = 0, c'è il primo termine se A' = 0, c'è il primo termine ritardo di 2 porte S. Salvatori marzo 2016 (41 di 171)

Sommatore a più bit Ripple Carry Dallo stadio i-esimo: A[i] B[i] CIN S[i] COUT S[i] = SUM(A[i], B[i], CIN) COUT = MAJ(A[i], B[i], CIN) Per overflow (vd. dopo) COUT[2] COUT[3] A[i] B[i] COUT ADDER-1bit S[i] cella A[3] B[3] A[2] B[2] A[1] B[1] A[0] B[0] S[3] S[2] S[1] S[0] CIN arriviamo allo schema a più bit CIN S. Salvatori marzo 2016 (42 di 171)

4-bit binary full adder with fast carry 7483 C4 B4 A4 S4 B3 A3 S3 B2 A2 B1 A1 C0 S2 S1 S. Salvatori marzo 2016 (43 di 171)

Carry-lookahead Nello schema del 7483 si nota che il riporto d'uscita è calcolato insieme agli altri B4 termini. A4 Si possono introdurre i concetti di segnali B3di propagazione P e A3 generazione G, per rendere rapido il calcolo B2 di Cout con un circuito A2 logico dedicato: B1 A1 C0 C4 S4 S3 S2 S1 S. Salvatori marzo 2016 (44 di 171)

Sottrazione binaria S. Salvatori marzo 2016 (45 di 171)

Esempi di sottrazione binaria 1001-9 - 0001 = 1 = -------- ------ 1000 8 prestito -1 1000-8 - 0101 = 5 = -------- ------ 0011 3 prestito prestito d'usc -1-1 0111-7 - 1010 = 10 = -------- ------ 1101-3 1-bit senza prestito in ingresso A B S Bo 0 0 0 0 1 0 1 0 0 1 1 1 1 1 0 0 XOR AND -16 1-bit con prestito in ingresso -2 A B Bi S Bo 0 0 0 0 0 riv. dispari 1 0 0 1 0 0 1 0 1 1 (-1) 1 1 0 0 0 0 0 1 1 1 (-1) 1 0 1 0 0 0 1 1 0 1 (-2) 1 1 1 1 1 (-1) S. Salvatori marzo 2016 (46 di 171)

Sottrazione a 1 bit Dovremmo costruire un altro elemento aritmetico Half senza prestito in ingresso Full Bo A B Bi S con prestito d'ingresso Bo S. Salvatori marzo 2016 (47 di 171)

Notazione in complemento a 2 In complemento a 2 si hanno sempre 2 n quantità però queste hanno un segno a seconda del verso in cui sono lette (sulla circonferenza) la sottrazione è svolta come addizione tra numeri con segno! 0111 + 7 + 1111 = -1 ------ --- 0110 6 ok 1001 + -7 + 0001 = 1 ------ --- 1010-6 ok 1011 + -5 + 1101 = -3 ------ --- 1000-8 ok 0011 + 3 + 0100 = 4 ------ --- 0111 7 ok 0011 + 3 + 0101 = 5 ------ --- 1000 8 NO -8 3 1001 + -7 + 1010 = -6 ------ --- 0011-13 NO possiamo avere: - riporto prestito d'uscita - overflow S. Salvatori marzo 2016 (48 di 171)

Riporto in uscita Nelle operazioni di addizione tra numeri con o senza segno il riporto indica che abbiamo superato la rappresentazione a n bit ed è necessario il bit di peso 2 n. senza segno con segno 1001 + 9 + 1000 = 8 = 1 0001 17 0111 + 7 + 1011 = -5 = 1 0010 2 0100 + 4 + 1011 = -5 = 0 1111-1 2 4 no prestito! si prestito! 1100 + 12 + 1011 = 11 = 1 0111 23 2 4 1001 + -7 + 1111 = -1 = 1 1000-8 no prestito! 1001 + -7 + 0001 = 1 = 0 1010-6 0 (non è una sottraz.) Se li inverto ho prestito S. Salvatori marzo 2016 (49 di 171)

Condizione di overflow Il risultato sarebbe fuori del campo di esistenza dei numeri ammessi in complemento a 2 p. es., a 8 bit: 127 + 32 = 159 ci sarà overflow perché il max positivo è 127 senza segno 1001 + 9 + C 1000 = 8 = 1 0001 17 con segno 1001 + -7 + C 1000 = -8 = 1 0001-15 OV = 1 OV = 1 S. Salvatori marzo 2016 (50 di 171)

Condizione di overflow Si noti che l'overflow è possibile quando si addizionano numeri dello stesso segno l'addizione può portare a superare la metà-campo che i numeri hanno a disposizione quando addizioniamo numeri con segno opposto, non si presenterà mai questa eventualità -5 1111 1110-3 15 1101 14 13 1100 12 11 1011 10 9 1010-4 -6-2 -7-1 1001-0 0000 0001 0 8 1000-8 0010 1 2 0011 3 + 7 1 0111 7 4 0100 5 0101 6 0110 2 6 3 5 4 S. Salvatori marzo 2016 (51 di 171)

Condizione di overflow In un sommatore a più bit la condizione di overflow è pari alla XOR tra gli ultimi due riporti: 1 1 0 0 numeri con lo stesso segno mantengo il segno 1 x x 1 x x 0 x x 0 x x no OV + + non mantengo il segno 1 0 0 1 1 x x 1 x x 0 x x 0 x x si OV + + A[n] B[n] A[n-1] B[n-1] A[1] B[1] COUT OV ADDER-1bit S[n] ADDER-1bit S[n-1]... ADDER-1bit S[1] CIN S. Salvatori marzo 2016 (52 di 171)

Schema per la sottrazione Con la notazione in complemento a 2 si semplifica notevolmente lo schema per l'addizione/sottrazione OP1 OP2 NEG SUB/ADD C out OV n-bit FULL ADDER C in se SUB, nego e aggiungo 1 RIS così è calcolato il complemento a 2 S. Salvatori marzo 2016 (53 di 171)

Negazione programmabile Per negare uso XOR come NOT programmabili A B XOR 0 0 0 0 1 1 1 0 1 1 1 0 esce B esce B b n b n-1 OP b1 neg controllo OP S. Salvatori marzo 2016 (54 di 171)

Informazione binaria Informazione binaria e transistor MOS Porte logiche e logica CMOS Latch CMOS I/O digitale Note pratiche S. Salvatori marzo 2016 (55 di 171)

Informazione binaria via MOS In elettronica digitale ogni bit è rappresentato con un livello di tensione V DD V SS I transistor sono utilizzati per convogliare i livelli di tensione di alimentazione verso le uscite p-mos n-mos S. Salvatori marzo 2016 (56 di 171)

Il MOS come switch V DD si attiva con '0' V SS p-mos strong '1' V DD si attiva con '1' strong '0' n-mos V SS S. Salvatori marzo 2016 (57 di 171)

Il MOS come switch V DD V DD p-mos on p-mos off n-mos out = V DD n-mos on out = V SS V SS V SS S. Salvatori marzo 2016 (58 di 171)

Livelli Ogni famiglia logica ha due campi per cui la tensione di ingresso è interpretata come '0' o come '1' S. Salvatori marzo 2016 (59 di 171)

Livelli Per il micro LPC1769 min typ max 1 valido non valido 0 valido 3.3 V 2.3 V 1.0 V 0 V S. Salvatori marzo 2016 (60 di 171)

5V-tolerant Per il micro LPC1769 S. Salvatori marzo 2016 (61 di 171)