Aritmetica Binaria 8-11-2000.

Slides:



Advertisements
Presentazioni simili
Dall’informazione al linguaggio macchina
Advertisements

Rappresentazioni numeriche
Dalla macchina alla rete
Espressioni generali e MULTIPLEXER.
Circuiti Aritmetico-Logici
Rappresentazioni numeriche
Codifica dei Dati Idea: vogliamo rappresentare dati eterogenei utilizzando un linguaggio che l’elaboratore puo’ facilmente manipolare Essenzialmente vogliamo.
Circuiti Combinatori Capitolo 3.
Sistemi di numerazione e codici
Architetture.
Fondamenti di Informatica I Facoltà di Ingegneria Informatica Esercitazione.
Esercitazioni su rappresentazione dei numeri e aritmetica
Esercitazioni su circuiti combinatori
ESEMPI DI ARCHITETTURE DI DAC
27+ 12= Risultato troppo grande = = 39 = -25 errore di overflow in binario =
Informatica 3 Codifica binaria.
A.S.E.13.1 ARCHITETTURA DEI SISTEMI ELETTRONICI LEZIONE N° 13 Somma e differenza di due numeri in C2Somma e differenza di due numeri in C2 Half AdderHalf.
A.S.E.6.1 ARCHITETTURA DEI SISTEMI ELETTRONICI LEZIONE N° 6 Complemento a MComplemento a M Rappresentazione di numeri con segnoRappresentazione di numeri.
A.S.E.5.1 ARCHITETTURA DEI SISTEMI ELETTRONICI LEZIONE N° 5 Rappresentazione di numeri con segnoRappresentazione di numeri con segno –Modulo e segno (MS)
Sistemi di Numerazione
Corso di Informatica (Programmazione)
Corso di Informatica (Programmazione)
Settembre 2002IFTS2002 Acq. Dati Remoti: INFORMATICA 1 Rappresentazione dellinformazione (1)
Confronto di due signed (in compl. a 2) Caso 1: numeri dello stesso segno Non ci può essere overflow (sottraendo, viene fuori un numero più piccolo in.
Rappresentazione dei dati
Esistono 10 tipi di persone al mondo: Quelli che conoscono il codice binario & Quelli che non lo conoscono.
Rappresentazioni numeriche
Rappresentazione binaria dei numeri interi senza segno.
Reti Combinatorie: sintesi
Reti combinatorie: moduli di base
Dalla macchina alla rete: reti LLC
1 Sistemi Digitali. 2 Definizione Analog Waveform Time Voltage (V) 0 5 Digital Waveform Time Voltage (V)
Rappresentazioni numeriche. Introduzione Un calcolatore elettronico dispone di uno spazio finito per memorizzare le cifre che esprimono un valore numerico.
Il sistema binario.
Algebra di Boole L’algebra di Boole è un formalismo che opera su variabili (dette variabili booleane o variabili logiche o asserzioni) che possono assumere.
Codifica binaria Rappresentazione di numeri
Rappresentazione di numeri relativi (interi con segno)
Usare rappresentazioni di lunghezza fissa porta ad avere valori non rappresentabili: Overflow indica un errore nella rappresentazione del risultato in.
Conversione binario - ottale/esadecimale
Conversione binario - ottale/esadecimale
1 © 1999 Roberto Bisiani Rappresentazione delle informazioni n Occorre un codice n Legato alla tecnologia usata Robustezza Semplicita Economicita.
Rete Asincrona Una rete sequenziale asincrona è dotata di due ingressi E, X e di una uscita Z. L'uscita Z deve diventare 1 solamente quando durante l'ultima.
Cassaforte Asincrona di Mealy
Aritmetica Computazionale F.Campi, A. Romani A.a
ARITMETICA BINARIA.
RAPPRESENTAZIONE DELL'INFORMAZIONE
Reti combinatorie: moduli di base
Sistema di regolazione del volume Il progetto consiste nella sintesi e nella realizzazione attraverso Xilinx di un sistema per la regolazione del volume,
Riassunto Rete Vi sono dunque due ingressi (X1,X2) e ununica uscita; X1 e X2 non cambiano mai contemporaneamente Luscita va a 1 se viene rispettata la.
Cassaforte asincrona II assegnamento. Descrizione Il progetto Cassaforte II assegnamento consiste in una codifica diversa delle variabili di stato. Codifica.
La rappresentazione delle informazioni in un computer Seconda parte.
Teoria dei sistemi Autore: LUCA ORRU'.
FONDAMENTI DI INFORMATICA
Process synchronization
Tesina di fine corso Argomento: Corso: Professore: Autori:
Rappresentazione dell’Informazione
Rappresentazione dell’informazione nel calcolatore.
RETI LOGICHE Daniele Manzaroli
Rappresentazioni numeriche. Introduzione Un calcolatore elettronico dispone di uno spazio finito per memorizzare le cifre che esprimono un valore numerico.
Rappresentazione dell’informazione
Rappresentazione dell'informazione
Conversione binario-ottale/esadecimale
Rappresentazione degli interi
Informatica Lezione 3 Psicologia dello sviluppo e dell'educazione (laurea magistrale) Anno accademico:
Rappresentazione dei numeri
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Numeri in virgola Marco D. Santambrogio – Ver. aggiornata al 24 Agosto 2015.
I sistemi di numerazione
Logica di base e Conversione analogico-digitale Lezione 3 / Prima parte Gaetano Arena e.mail: 1.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Numeri con segno ed in virgola Marco D. Santambrogio – Ver. aggiornata al 20 Marzo.
Transcript della presentazione:

Aritmetica Binaria 8-11-2000

Somme tra numeri binari Nei sistemi posizionali le cifre variano da 0 a B-1, la somma di due cifre qualunque non supera 2B-2. Al massimo il risultato e’ costituito da una cifra di ugual peso e da un eventuale riporto di valore 1 sulla cifra di peso immediatamente superiore. La presenza del riporto non altera questa proprietà, portando al massimo la somma a 2B-1. Analoghe considerazioni valgono per la sottrazione. Consideriamo il caso della somma di due bit: 0+ 0= ---- 0+ 1= ---- 1 1+ 0= ---- 1 1 1+ 1= ---- 1 0 Somma di due bit (Half Adder): Sum = A + B

Half-Adder (HA) A B 1 B 1 1 1 1 1 1 Half Adder (HA) Dalla sintesi della tabella della verità si ricava lo schema logico dell’ Half Adder (HA). Half Adder (HA) Sum C A B A B 1 B 1 1 Sum = A’ · B + A · B’ C = A · B 1 1 1 1

Somma di tre bit (Full Adder): Sum = A + B + Cin Full-Adder (FA) Full Adder (FA) Sum Cout A B Cin Somma di tre bit (Full Adder): Sum = A + B + Cin

Sum = A’·B’·Cin + A·B’·Cin’ + A·B·Cin + A’·B·Cin’ 1 1 1 BA Cin 00 01 11 10 1 1 Sum = A’·B’·Cin + A·B’·Cin’ + A·B·Cin + A’·B·Cin’ 1 1 1 BA Cin 00 01 11 10 1 Cout=A·Cin + B·Cin + AB 1 1 1 1 Generalmente il Full-Adder si realizza utilizzando due Half-Adder ed un OR come mostrato nello schema seguente

------------------------------ 1 1 0 0 1 1 1 02 Esempio di somma tra numeri binari: FA 1 1 1 0 0 0 1 1 0 1 0 0 0 12 + 1 1 1 1 1 0 12 = ------------------------------ 1 1 0 0 1 1 1 02

Sottrazioni tra numeri binari Differenza due bit:Diff = A - B Differenza di tre bit: Diff = A - B - Bin

-------------------------- 0 0 0 1 1 1 Esempio di sottrazione tra numeri binari: 1 1 1 1 1 0 0 1 0 1 - 0 1 1 1 1 0 = -------------------------- 0 0 0 1 1 1

Un progetto gerarchico e' un progetto suddiviso su più livelli. Ad ogni livello è associata una descrizione funzionale o una struttura di blocchi interconnessi I2 I3 I1 Z1 Z2 A B1 B2 Livello 0 Livello 1 Livello 2 Livello 3

Progetto di un sommatore a 4 Bit Problema: progettare in modo gerarchico una rete che esegua la somma di due numeri codificati con codice binario da 4 bit. Soluzione: Il primo passo è quello di descrivere lo schema in termini di segnali di ingresso e uscita (“descrizione ai morsetti”). Tale livello di descrizione corrisponde al livello gerarchico 0 (o ‘entity’). Level 0 - “Entity” 4 Bit Full Adder Z[0..3] COUT X[0..3] Y[0..3]

Level 1 Z0 X0 Y0 Z1 X1 Y1 Z2 X2 Y2 Z3 X3 Y3 Cout Lo schema logico di livello 0 può’ essere ulteriormento scomposto in blocchi più semplici, come mostrato nello schema logico seguente, utilizzando 4 Full-Adder a 1 Bit. Z0 1 BIT FULLADDER X0 Y0 Z1 1 BIT FULLADDER X1 Y1 Z2 1 BIT FULLADDER X2 Y2 Z3 1 BIT FULLADDER X3 Y3 Cout

Level 2 Ogni Full-Adder ad 1 Bit è descrivibile mediante il seguente schema logico utilizzando degli Half-Adder a 1 Bit. X y CIN Z C S 1 Bit Half Adder COUT

Level 3 Infine, gli Half-Adder utilizzati per realizzare i Full-Adder a 1 Bit possono essere descritti mediante il seguente schema logico. Questo è livello di descrizione più basso del nostro progetto. X C Y S Schema logico di un Half-Adder. Per l’inserimento del progetto all’interno del simulatore partiremo da questo livello di descrizione e ripercorreremo la gerarchia fino ad arrivare al livello 0.

Design Entry Sintesi (Compilazione) Simulazione NO SI Funzionamento previsto ? NO SI Trasferimento al Chip (Target FPGA)

Aritmetica binaria: i numeri relativi Nella rappresentazione binaria di numeri dotati di segno viene tipicamente usato un bit per discriminare tra valori positivi e valori negativi. Dati n bit per la rappresentazione il bit usato per il segno è quello più significativo (MSB, in posizione n-1). Rappresentazione Segno-Valore Assoluto (S-VA) In questo rappresentazione al valore assoluto del numero viene prefisso un bit per indicarne il segno. Il valore 0 di questo bit codifica il segno più e il valore 1 il segno meno. Esempio n=8: +5710 = 001110012 -5710 = 101110012 segno modulo

La rappresentazione S-VA è vantaggiosa per la sua semplicità ma richiede circuiti complessi per l’esecuzione di somme algebriche. Prima di eseguire una somma algebrica tra due operandi A e B e’ necessario determinare quale dei due e’ maggiore in valore assoluto. Se A e’ maggiore di B si esegue la differenza A-B e si assegna al risultato il segno di A. Se A e’ minore di B si esegue la differenza B-A e si assegna al risultato il segno di B Osservazioni Usando n bit (es. 8) per la codifica, il range di valori rappresentabili risulta: [-2n-1-1..+2n-1-1]. Un bit (MSB) è usato per il segno. (Con 8 bit sono rapresentabili valori nell’intervallo [-127 ..+127]). Vi sono due configurazioni per lo zero (000000002 e 100000002 ) Poichè le operazioni vanno eseguite sulla sola parte di valore assoluto è semplice la determinazione dell’overflow

------ -------------- 3910 01001112 Risultato : +3910 001001112 Esempio di operazioni algebriche con rappresentazione S-VA (23+ 16 )10 Stesso segno, si esegue la somma escludendo il bit più significativo. Entrambi gli operandi hanno lo stesso segno ( bit 7 = 0 ), quindi il segno viene mantenuto ( bit 7 = 0 ) 1 2310 + 00101112 + 1610 = 00100002 = ------ -------------- 3910 01001112 Risultato : +3910 001001112 ( 22 - 17 )10 Il primo operando ha modulo maggiore del secondo ( |22| > |17| ) => si esegue la differenza tra 22 e 17. In questo caso il segno del risultato (5) è positivo e il bit 7 deve essere posto a 0. 1 2210 - 00101102 - 1710 = 00100012 = ------ -------------- 510 00001012 Risultato : +510 000001012

------ -------------- 810 00010002 Risultato -810 100010002 (8 - 16)10 Il secondo operando ha modulo maggiore ( |16| >|8| ) del primo. Si esegue la differenza tra 16 e 8. Il segno e’ quello dell’operando di valore assoluto maggiore. In questo caso il segno di 16 è negativo e il bit 7 deve essere posto a 1. 1 1610 00100002 - 810 00010002 = ------ -------------- 810 00010002 Risultato -810 100010002 (-112 - 39)10 Entrambi gli operandi di segno negativo => si sommano i valori assoluti. 1 11210 11100002 + 3910 01001112 = ------ -------------- 15110 100101112 Overflow. Sono necessari 8 bit per rappresentare 151 ! Usando la rappresentazione S-VA sono disponibili per il modulo solo 7 bit => (Overflow).

Rappresentazione in complemento a 2 (2’s C) Dati n bit per la codifica del modulo e del segno: la rappresentazione in complemento a 2 (2’s C) di un numero si ottiene sommando (sottraendo nel caso di numeri negativi) a 2n il numero codificato in valore assoluto ed eliminando l’eventuale bit di riporto in posizione n; - Con tale rappresentazione possono essere codificati i valori compresi nell’intervallo [(2n-1-1), -2n-1]. - I numeri positivi restano inalterati - I numeri negativi sono calcolabili partendo dal corrispondente valore positivo, invertendo tutti i bit (complemento a 1, 1’s) e sommando 1

Siano dati 3 bit (n=3) per la rappresentazione di numeri con segno Esempio Siano dati 3 bit (n=3) per la rappresentazione di numeri con segno Bit 0 Bit 1 Bit 2 n=3 Con tale configurazione di bit potranno essere codificati i numeri da +3 a -4, cioè [22-1,-22] La rappresentazione in complemento a 2 (2’s C) si ottiene come segue: si somma (o si sottrae) a 23 = 810 = 10002 la rappresentazione in valore assoluto del numero che si vuole rappresentare in 2’s C, Es +2: Per i numeri positivi si somma a 10002 il modulo del numero (|210|=0102). Quindi +210 = 10002+0102 = x0102 in complemento a 2 Es -2: Per i numeri negativi si sottrae da 10002 il modulo del numero |210|=0102. Quindi -210 = 10002-0102 = x1102 in complemento a 2

Rappresentazione in Segno e Valore Assoluto (S-VA) e Complemento a 2 (2’s C) di numeri con segno utilizzando 3 bit

Interpretazione di un numero codificato in complemento a 2 La rappresentazione con segno e valore assoluto (S-VA) risulta più intuitiva ma meno potente rispetto alla rappresentazione in complemento a 2 (2’s C). Come interpretare un numero codificato in complemento a 2 ? In una configurazione binaria di n bit codificata in complemento a 2, il bit più significativo (MSB in posizione n-1) assume un peso negativo pari a -2n-1. I numeri positivi (dn-1=0) codificati in complemento a 2 rimangono inalterati. Esempio: n=4 10112 in complemento a 2 equivale a: 10112 = -1·23 + 0·22 + 1·21 +1·20 = -8 + 0 + 2 +1 = -510 Mentre 01112 in complemento a 2 equivale a : 01112 = 0·23 + 1·22 + 1·21 +1·20 = 0 + 4 + 2 +1 = +710

Metodo opertivo per il calcolo del complemento a 2 di un numero Nella rappresentazione in complemento a 2 i numeri positivi rimangono inalterati mentre i numeri negativi possono essere ottenuti, dalla rappresentazione in valore assoluto, invertendo tutti i bit (1’s C) e sommando 1. Esempio n = 4 a) Rappresentare +510 in complemento a 2. Soluzione + 510 = 01012 (rimane inalterato) b) Rappresentare -510 in complemento a 2. Si esprime il valore assoluto di –5 in binario. Si applica il complemento a 1 e si somma 1 a risultato. 1’s +1 510 = 0101 -> 10102 -> 10112 = -5

Propriètà Applicando due volte la regola del complemento a 2 si ottiene il numero originale. Esempio n = 4 510 in complemento a 2 risulta 10112 Applicando nuovamente il complemento a 2 si ottiene il valore assoluto del numero 1’s +1 -5 -> 10112 -> 01002 -> 01012 = + 510 il complemento di una somma algebrica è uguale alla somma aritmetica dei complementi

Utilizzando una rappresentazione a 4 bit calcolare 3 +1 = [0100] Vantaggi della rappresentazione in complemento a 2 rispetto alla rapp. somma valore assoluto - Vi è una sola rappresentazione per lo zero (00…000). - Operativamente non vi e’ differenza nell’eseguire somme o sottrazioni - Non e’ necessario individuare il maggiore, in valore assoluto, tra i due operandi come nel caso della rappresentazione S-VA. Per Esercizio Utilizzando una rappresentazione a 4 bit calcolare 3 +1 = [0100] 3 -1 = [0010] -1 -2 = [1101] 3 -7 = [1100]

Overflow Nel caso della rappresentazione con segno e valore assoluto (S-VA) la presenza di eventuali situazioni overflow puo’ essere rilevata analizzando il bit di carry-out relativo al bit più significativo del modulo. S-VA Nel caso di somme algebriche con numeri rappresentati in complemento a 2 la rilevazione della condizione di overflow si ottiene controllando se il bit di carry-in e il bit di carry_out relativi al bit più significativo (il bit n-1) della codifica sono diversi. Questa operazione puo’ essere eseguita utilizzando l’operatore logico or-esclusivo. 2’s C Esempi: Con N=3 possono essere rappresentati i numeri tra [+3, -4] in 2’s C 3+3 = 6 (overflow) 0 1 1 0 1 1+ 0 1 1 = ------------------ 0 1 1 0 2+1 = 3 0 0 0 0 1 0+ 0 0 1 = ------------------ 0 0 1 1 -3-3 = -6 (overflow) 1 0 1 1 0 1+ 1 0 1 = ------------------ 1 0 1 0 -3-1 = -4 1 1 1 1 0 1+ 1 1 1 = ------------------ 1 1 0 0 -3+2 = -1 0 0 0 1 0 1+ 0 1 0 = ------------------ 0 1 1 1

Progetto di un sommatore algebrico a 4 Bit Problema: progettare in modo gerarchico una rete che esegua la somma algebrica di due numeri di 4 bit codificati con segno e valore assoluto (S-VA). La rete produce un risultato a 4 bit per cui è necessario segnalare eventuali situazioni di overflow. Level 0 - “Entity” Segno X Somma Algebrica 3 Overflow X[0..2] Segno Z Segno Y 3 Z[0..2] 3 Y[0..2] S-VA S-VA

Level 1 Segno x C2’s Errore Overflow 4 Bit Full Adder X[0..2] Segno Z Lo schema logico dell’esercizio puo’ essere ulteriormente scomposto.In rosso sono evidenziati i tipi di rappresentazione utilizzati per l’elaborazione delle informazioni all’interno della rete. Segno x C2’s Errore Overflow 2 3 4 Bit Full Adder X[0..2] 4 4 4 Segno Z C2’s C2’s Segno y 3 3 Y[0..2] Z[0..2] S-VA 2’s C 2’s C S-VA

Level 2 C1’s I[0..2] Segno x +1 2’s C S-VA U[0..3] La rete che calcola il complemento a 2 può essere ulteriormente decomposta con due blocchi in cascata che, nel caso di numeri negativi, calcolano il complemento a 1 e sommano 1. La rete che somma 1 al numero in complemento a 1 puo’ essere ottenuta con un FA a 4 bit nel quale uno degli operandi è 1 se il numero è negativo e 0 se il numero è positivo. C1’s I[0..2] 3 4 Segno x +1 2’s C S-VA U[0..3]

Level 3 Mentre la rete che calcola il complemento a 1 puo’ essere realizzata con degli operatori di or-esclusivo.