· Web viewFlip-Flop vs. Latch temporizzato La differenza tra flip flop e latch è relativa...

26
Livelli di astrazione: 4: linguaggio ad alto livello: C, C++; maggior astrazione, bisogno compilatore, usato per produrre software; portabilità. 3: linguaggio Assembler: istruzioni espresse con stringhe mnemoniche (Add A, B); assemblatore: da assembler a l.macchina. 2: Sistema Operativo: ISA + nuove istruzioni per gestire I/O 1: linguaggio macchina (Instruction set architecture): Comandi espressi in binario; no programmazione per errori; semplici operazioni; no portabilità programmi tra macchine; stringhe di bit con formato definito (codici e operandi) 0: hardware/firmware: Hw: fili e porte logiche realizzate tramite transistor; più fili e porte logiche possono realizzare funzioni complesse; realizzare elementi di memoria. Fw: interpreta ed esegue le istruzioni del livello ISA. Software di sistema: per produrre altro software; permette l'esecuzione di altro software. Software applicativo: lo scopo di questo software dipende dallo specifico. Calcolatori elettronici: I/O: serve per comunicare con l'esterno Memoria principale: usata per memorizzare programmi e dati Processore: esecutore istruzioni appartenenti ISA; istruzioni lette dalla memoria, modificano dati in memoria o agiscono su I/O. Parte di controllo e parte operativa. I componenti elettronici dei computer sono realizzati con circuiti integrati IC: fili e transistor realizzati su frammenti di silicio (semiconduttore). Codice: corrispondenza tra stringhe (011100101) e dati. Memoria: utile per utilizzare l'informazione codificata. È una sequenza di locazioni con lunghezza prefissata; ogni cella ha un indirizzo da 0 a 2^m -1; indirizzi consecutivi individuano celle contigue di memoria; nelle memorie attuali ogni cella di memoria è lunga 2^3 = 8 bit = 1

Transcript of  · Web viewFlip-Flop vs. Latch temporizzato La differenza tra flip flop e latch è relativa...

Page 1:  · Web viewFlip-Flop vs. Latch temporizzato La differenza tra flip flop e latch è relativa all'istante del ciclo di clock che causa la variazione di stato. In un latch temporizzato,

Livelli di astrazione: 4: linguaggio ad alto livello:

C, C++; maggior astrazione, bisogno compilatore, usato per produrre software; portabilità.

3: linguaggio Assembler: istruzioni espresse con stringhe mnemoniche

(Add A, B); assemblatore: da assembler a l.macchina. 2: Sistema Operativo:

ISA + nuove istruzioni per gestire I/O 1: linguaggio macchina (Instruction set architecture):

Comandi espressi in binario; no programmazione per errori; semplici operazioni; no portabilità programmi tra macchine; stringhe di bit con formato definito (codici e operandi)

0: hardware/firmware:Hw: fili e porte logiche realizzate tramite transistor; più fili e porte logiche possono realizzare funzioni complesse; realizzare elementi di memoria.Fw: interpreta ed esegue le istruzioni del livello ISA.

Software di sistema: per produrre altro software; permette l'esecuzione di altro software.Software applicativo: lo scopo di questo software dipende dallo specifico.Calcolatori elettronici:

I/O: serve per comunicare con l'esterno Memoria principale: usata per memorizzare programmi e dati Processore: esecutore istruzioni appartenenti ISA; istruzioni lette dalla

memoria, modificano dati in memoria o agiscono su I/O. Parte di controllo e parte operativa.

I componenti elettronici dei computer sono realizzati con circuiti integrati IC: fili e transistor realizzati su frammenti di silicio (semiconduttore).

Codice: corrispondenza tra stringhe (011100101) e dati.Memoria: utile per utilizzare l'informazione codificata. È una sequenza di locazioni con lunghezza prefissata; ogni cella ha un indirizzo da 0 a 2^m -1; indirizzi consecutivi individuano celle contigue di memoria; nelle memorie attuali ogni cella di memoria è lunga 2^3 = 8 bit = 1 Byte; i Byte sono organizzati in gruppi – Word- Cpu a 32 bit ha Word di 4B.

8 bit = 1 Byte 2^5 32 bit = 1 Word2^10 K 2^20 MB 2^30 GB

1 Byte è l'unità fondamentale di ASCII (1B) e UNICODE (2B)

Numeri naturali in base 2: con stringhe di n bit sono rappresentabili 2^n dati dal 0 a 2^n -1.

Da base2 a base10 1010 = 1*8+0*4+1*2+0*1 = 10 in base 10Da base10 a base2 Dato il n 4 effettuare divisione per 2 e poi scorrere dal basso verso alto

N Resto

4 0

2 0

1 1

0Il numero 4 in base10 è quindi il numero 100 in base 2

Page 2:  · Web viewFlip-Flop vs. Latch temporizzato La differenza tra flip flop e latch è relativa all'istante del ciclo di clock che causa la variazione di stato. In un latch temporizzato,

Numeri naturali in base 8 – rappr ottale: {0,1,2,3,4,5,6,7 }

Da base2 a base8 1001010111 = 1 001 010 111 = 1127 in base8Da base8 a base 2 267 in base8 = 010 110 111 = 10110111

Numeri naturali in base 16 – rappr esadecimale:{0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f}

Da base2 a base16 1001011111 = 10 0101 1111 = 25f Da base16 a base2 a67= 1010 0110 0111 = 101001100111

Somma interi binari

0+0 = 0 1+1= 0 con riporto di 1 1+1+1 = 1

1111 rip _________

13=0110111=01011---------------24= 11000

L'overflow si verifica quando il risultato è troppo grande per essere rappresentato nel numero finito di bit messo a disposizione --> il riporto fluisce fuori.

Sottrazione

Comlemento a uno: Complemento a due:

000 +0 000 +0001 +1 001 +1010 +2 010 +2011 +3 011 +3

111 -0 100 -4110 -1 101 -3101 -2 110 -2100 -3 111 -1

Il bit più significativo corrisponde al segno: 0 positivo 1negativo

Per ottenere la rappresentazione in complemento a 2 ci sono due metodi:1. invertire tutti i bit (compl a 1) e sommare 1

00010101000diventa

11101010111 + 1 =

11101011000

2. invertire tutti i bit a sx della cifra 1 meno significativa 00010101000

diventa 11101011000

Estensione del numero di bit della rappresentazioneCopiare il bit di segno negli altri bit: 0010 --> 0000 0010

Page 3:  · Web viewFlip-Flop vs. Latch temporizzato La differenza tra flip flop e latch è relativa all'istante del ciclo di clock che causa la variazione di stato. In un latch temporizzato,

Addizione & SottrazioneOperazioni in complemento a due: sottrarre con algoritmo addizione; sottraendo (negativo) dev'essere espresso in compl a 2.Es.:

Sottraz val assoluti Somma num relativi in compl a 2 7- 0111- 7+ 0111+

6= 0110= (-6)= 1010 = ------------------- ------------------- 1 0001 1 0001

Casi di overflow:se sommando due positivi si ottiene negativose sommando due negativi si ottiene positivose sottraendo un negativo da un positivo si ottiene negativose sottraendo un positivo da un negativo si ottiene positivo

Numeri razionali a virgola fissaDa base10 a base 2 10,5 = 1010,1

Conversione parte frazionaria

0.11 = .750.01 = .250.10 = .50

Conversione di 0,43

----------- *2 Cifre frazionarie

0,43 0,86 0 1° pos a dx della virgola

0,86 1,72 1 2° pos

0,72 1,44 1 3° pos

0,44 0,88 0 4° pos

0,88 1,76 1 5° pos

0,76 1,52 1 6° pos

0,52 1,04 1 7° pos

0,04 0,08 0 8° pos

0,08 0,16 0 9° pos

0,16 .... .... Leggendo le cifre frazionarie dall'alto al basso si ottiene 0,011011100...

Page 4:  · Web viewFlip-Flop vs. Latch temporizzato La differenza tra flip flop e latch è relativa all'istante del ciclo di clock che causa la variazione di stato. In un latch temporizzato,

Numeri razionali a virgola mobile – FP Singola precisione: 1 s 8 esp 24 mantissa (-1)S * (1 + mantissa) * 2(esp-127)

Doppia precisione: 1s 11 esp 53 mantissa

Da decimale a FP: 1. eliminare esp 10^n2. convertire in binario3. farlo 0,x *2^n

Da FP a decimale:1. individuare Segno, Esponente e Mantissa del numero FP2. convertire esp da base 2 a base 10;3. polarizzazione esp = esp – 1274. prendere la mantissa e moltiplicare x 2^esp polarizzato, spostando quindi la virgola

di quante posizione lo dice esp. pol. Se esp pol negativo spostare la virgola verso sx, se invece esp pol è positivo spostare la virgola verso dx.

La somma in virgola mobile Passo 1. Per sommare correttamente i due numeri, si deve allineare la virgola del numero

che ha l'esponente più piccolo. Quindi il primo passo esegue lo scalamento a destra della mantissa del numero più piccolo, fino a che il suo esponente non coincide con quello del numero più grande.

Passo 2. Si esegue la somma delle mantisse. Passo 3. Se la somma ottenuta non è in notazione scientifica normalizzata è necessario

correggerla. Quindi a valle della somma può essere necessario eseguire un suo scalamento per portarla alla forma normalizzata, con un opportuno aggiustamento dell'esponente. Ogni volta che l'esponente è incrementato o decrementato, si deve controllare se si è verificato un overflow o underflow, cioè ci si deve accertare che l'esponente continui ad essere rappresentabile all'interno del suo campo.

Passo 4. Arrotondamento della mantissa: si tronca il numero se la cifra a destra del punto desiderato è compresa tra 0 e 4, e si somma 1 alla cifra se il numero a destra è compreso tra 5 e 9. Esiste un caso sfortunato per l'arrotondamento, consiste nel dover sommare un 1 ad una stringa di 9: la somma può non essere più normalizzata ed occorre eseguire di nuovo il passo 3.

La moltiplicazione in virgola mobile Passo 1. Diversamente da quanto si fa per la somma, si calcola l'esponente del prodotto

semplicemente sommando gli esponenti degli operandi. Si ripete poi l'operazione con gli esponenti polarizzati, in maniera da essere sicuri di ottenere lo stesso risultato, ricordando di sottrarre la polarizzazione dalla somma.

Passo 2. Si esegue la moltiplicazione delle mantisse. Passo 3. Verificare se il prodotto è normalizzato. Quindi dopo la moltiplicazione il prodotto

può richiedere uno scalamento a destra per essere messo nella forma normalizzata. A questo punto si può controllare se si è verificato un overflow o un underflow.

Passo 4. Arrotondamento del numero. Passo 5. Il segno del prodotto dipende dal segno degli operandi di partenza. Se questi

hanno ambedue lo stesso segno, il segno è positivo, altrimenti è negativo.Il segno della somma nell'algoritmo per l'addizione era determinato sommando le mantisse, mentre nella moltiplicazione il segno del prodotto è determinato sulla base del segno degli operandi.

Page 5:  · Web viewFlip-Flop vs. Latch temporizzato La differenza tra flip flop e latch è relativa all'istante del ciclo di clock che causa la variazione di stato. In un latch temporizzato,

Istruzioni macchina e codifica binariaLinguaggio macchina:

processore MIPS istruzioni aritmetiche permettono solo add, sub, mult, div tra coppie di operandi a 32 bit le istruzioni operano su supporti di memoria detti registri, la cui lunghezza è 32 bit

Formato (codifica)op rs rt rd shamt functOp e funct: definiscono l'operazione che l'istruzione deve eseguirers, rt, rd: registri inputshamt: registro output

Distanza di Hamming: H(C, C') - numero di cifre differenti a parità di posizione C : codifica corretta C': codifca letta Se questa distanza è uguale a 0 la codifica è ok

Se invece è uguale 1 o 2 ... è sbagliata per 1 bit o 2 bit ...

ParitàPer scoprire errori singoli (Distanza di Hamming = 1)

aggiungere bit di parità alla codifica se il numero di bit '1' è dispari il bit di parità è 1 se il numero di bit '1' è pari il bit di parità è 0

Codici correttoriAlgebra booleana e circuiti logiciI calcolatori operano con segnali elettrici con 2 valori di potenziale: high '1' e low '0'

Blocco logico: circuito elettronico con fili in input e output a cui si associano variabili logiche (0 e 1)

Circuito combinatorio: senza memoria; produce output che dipende funzionalmente dall'input

Circuito sequenziale: ha memoria; produce output che dipende da input e stato della memoria

Algebra booleana: bit di input e output rappresentati tramite variabili logiche (0 e 1) input combinati tramite operazioni di somma (OR), prodotto (AND) e inversione (NOT)

logica OR (A+B): risult = 1 sse almeno un input è 1 AND (A*B): risult = 1 sse tutti gli input sono 1 NOT (~ A): risultato uguale all'inverso dell'input (1—>0)

Inverter CMOS

La tecnologia CMOS è utile per realizzare transistor su silicio.Il CMOS in un circuito determina quale dispositivo aprire (attivare); è composto da PMOS E NMOS.Se la tensione all'interno del circuito è alta apre PMOS e chiude NMOSSe la tensione invece è bassa apre NMOS e chiude PMOS

CMOS: controlla il comportamento del semiconduttore, se isolante o conduttore.NMOS: se viene applicato alto voltaggio il transistor diventa conduttore; mentre con basso voltaggio il transistor interrompe la conduzione

Page 6:  · Web viewFlip-Flop vs. Latch temporizzato La differenza tra flip flop e latch è relativa all'istante del ciclo di clock che causa la variazione di stato. In un latch temporizzato,

PMOS: se viene applicato basso voltaggio il transistor diventa conduttore; altrimenti, con alto voltaggio si interrompe la conduzione (resistenza infinita)

Porte logiche NOR e NAND

Le porte NAND e NOR sono rispettivamente l'inverso delle porte AND e OR (Not AND & Not OR)NAND - ~ (A*B)): se in input c'è almeno uno 0 il circuito si collega alla tensione altaNOR - ~ (A+B) solo con due input pari a 0 il circuito si collega alla tensione alta

Forme canoniche per la rappresentazione di funzioni

Ogni funzione logica può esser rappresentata tramite equazioni e/o tabella di verità.

Somma di prodotti – SP (Blocchi di AND collegati da OR)

A B C E 0 0 0 00 0 1 10 1 0 00 1 1 01 0 0 01 0 1 01 1 0 11 1 1 0

E= (~ A ~ BC) + (AB ~ C) Si inseriscono all'interno dell'equazione solo le parti della tabella di verità che hanno dato

come risultato '1' .

Prodotto di somme – PS (Blocchi di OR collegati da AND)

A B C E 0 0 0 00 0 1 10 1 0 00 1 1 01 0 0 01 0 1 01 1 0 11 1 1 0

E= (A+B+C)*(A+ ~B+C)*(A+~B+~C)*(~A+B+C)*(~A+B+~C)*(~A+~B+~C) Si inseriscono all'interno dell'equazione solo le parti della tabella di verità che hanno dato

come risultato '0'.

Da queste equazioni si possono sviluppare le rappresentazioni di circuiti a 2 livelli.

Page 7:  · Web viewFlip-Flop vs. Latch temporizzato La differenza tra flip flop e latch è relativa all'istante del ciclo di clock che causa la variazione di stato. In un latch temporizzato,

Minimizzazione circuiti

Nel caso di SP, si riduce il numero di prodottiNel caso di PS, si riduce il numero di sommeMinimizzando si riduce quindi il costo del circuito combinatorio.

Come minimizzare:

1. se si deve realizzare una funzione in forma SP, bisognerà guardare le righe della tabella il cui risultato è 1 (nel caso di PS, si considereranno le righe il cui risultato è 0).

2. trovare l'equazione della funzione, e, se un termine o prodotto di termini compare in tutte le parti dell'equazione, le altre variabili saranno di tipo don't care e quindi si potrà ridurre tale equazione solamente alla parte di funzione che si ripete in ogni parte.

Es: (~A~BC~D)+(~A~BCD)+(~ABC~D)+(~ABCD) In questa equazione ~AC si ripete in tutte e 4 i prodotti, quindi le variabili B e D sono di tipo

don't care, e la funzione si può minimizzare fino a questo punto: f= ~AC

Algoritmo di McCluskey:Questo algoritmo determina funzioni logiche minime in maniera automatica

1. Creare tabella con risultati uguali a 1 mettendola in ordine da quello con meno ‘1’ a quello con più ‘1’, riportando a parte la posizione.

2. confrontare 2 sessioni consecutive (pos.), ed eliminare il bit che varia

Mappe di Karnaugh

Per minimizzare a mano funzioni di poche variabili, si possono rappresentare le tabelle di verità con le mappe di Karnaugh:

ogni quadrato della mappa individua una combinazione di input il valore contenuto in esso è quello dell'output relativo inserire solo output uguali a 1

Scopo di queste mappe è la facile individuazione di 2^1, 2^2 ... righe della tabella di verità con variabili don't care. Gli '1' corrispondenti a queste righe risultano adiacenti. Bisogna trovare poi i sottocubi che devono essere del tipo 2^1, 2^2 ecc...

Minimizzazione con mappe di Karnaugh -

AB CD

00 01

11 10

00 1

01 1

11 1 1

10 1 1

0 = ~A 1 = A

Sottocubo blu: A~B~C 1000 e 1001, si esclude il bit diverso (D)

Page 8:  · Web viewFlip-Flop vs. Latch temporizzato La differenza tra flip flop e latch è relativa all'istante del ciclo di clock che causa la variazione di stato. In un latch temporizzato,

Sottocubo rosso: ~ACD 0011 e 0111, si esclude il bit diverso (B) Sottocubo verde: ~BC~D 0010 e 1010, si esclude il bit diverso (A)

---> f= (A~B~C) + (~ACD) + (~BC~D)

Se si avesse una riga intera o una colonna intera basta guardare i due bit di quella riga/colonna e inserirli in forma canonica nell'equazione, sempre escludendo il bit differente.Linguaggio Assembler e linguaggio macchina – MIPS e ISA

ISA: il suo scopo è quello di massimizzare le prestazioni minimizzando i costi e i tempi di progetto. L'ordine degli operandi è fisso, e l'operando in prima posizione è quello di destinazione (ris.).

C code: A = B + CMIPS: add $8, $9, $10

Gli operandi devono essere registri, non oltre 32 registri da 4B ciascuno.Il compilatore associa variabili con registri.Con programmi e dati (variabili e array) si usa la memoria che contiene i programmi. La memoria è suddivisa in celle da 8 bits ossia 1 byte.

Istruzioni load/store

sw – store : dal registro alla memorialw – load : caricamento dalla memoria al registro

es.: add $4, $5, $6 ---> $4= $5 + $6 lw $4, 100 ($5) ---> $4= Memory [$5 + 100] sw $4, 100 ($5) ---> Memory [$5 + 100] = $4

L'aritmetica di queste istruzioni viene fatta solo nei registri.

Formato istruzione R-TYPE (Register)

Questo formato è utilizzato per istruzioni aritmetico-logiche.

es.: add $8, $17, $18

formato000000 1001 10010 01000 00000 100000

op rs rt rd shamt funct

op: operazionefunct: specifica il tipo dell'operazione (matematico)rs e rt: registri sorgenterd: registro di destinazione

Formato istruzione I-TYPE (Immediate)

Questo formato serve per eseguire istruzioni di lw e sw

es.: lw $9, 32($18)

formato35 binario 18 binario 9

binario32

op rs rt 16 bit number

Page 9:  · Web viewFlip-Flop vs. Latch temporizzato La differenza tra flip flop e latch è relativa all'istante del ciclo di clock che causa la variazione di stato. In un latch temporizzato,

Stored Program

I programmi sono costituiti da sequenze di istruzioni e sono memorizzati in memoria

Ciclo Fetch & Execute

Fetch: la CPU legge l'istruzione corrente e la pone in un registro speciale internoExecute: successivamente la CPU usa i bit dell'istruzione per controllare le azioni seguenti, e su questa base la prossima istruzione e ripete il ciclo

Istruzioni di controllo

Sono istruzioni che alterano il flusso sequenziale e cambiano quindi la prossima istruzione da eseguire

beq --> branch if equal - controlla se i 2 registri sono uguali - beq $4, $5, Labelbne --> branch if not equal - controlla se i 2 registri sono diversi – bne $6, $5, Label

es.: if (i==j) h= i+j

bne $4, $5, Label Se $4 = $5 si va a “add”, se diversi va all'istr di Labeladd $19, $4, $5

Label: ..... istruzione successiva

slt --> set if less than - controlla se i un registro è minore dell'altro

es.: slt $10, $4, $5

if $4 < $5 then $10 = 1

else $10 = 0

Salto non condizionato

Il salto non condizionato si indica con ' j label '

es.: if (i != j) beq $4, $5, Lab1 h= i+j add $3, $4, $5else j Lab2 h= i-j Lab1: sub $3, $4, $5

Lab2: ....

Se $4 = $5 si va a Lab1 altrimenti si salta a Lab2

Costanti

Page 10:  · Web viewFlip-Flop vs. Latch temporizzato La differenza tra flip flop e latch è relativa all'istante del ciclo di clock che causa la variazione di stato. In un latch temporizzato,

Spesso si trovano contanti tra gli operandi. Per eseguire istruzioni con operandi costanti:

addi $29, $29, 4 --> A= A+4slti $8, $18, 10 --> Se $18 < 10 $8 = 1andiori

ALU – circuiti combinatori

ALU: parte del datapath, è un circuito combinatorio nella CPU che esegue istruzioni macchina di tipo aritmetico-logiche (and, or, add, sub, slt). Deve avere un addizionatore a singolo bit (32 one bit adder) per somme di interi in complemento a 2. Il segnale termina quando passa tutti e 32 gli addizionatori.

Multiplexer: Copia selettivamente una delle porte di ingresso attraverso un segnale di controlloha n input e 1 outputlog2n segnali di controllo, da considerare come input

Formato da Un decodificatore che genera n segnali, ciascuno corrispondente ad un diverso

valore dell'ingresso di selezione. Una schiera di n porte and, ciascuna delle quali combina uno degli ingressi con uno

dei segnali provenienti dal decodificatore. Un'unica grande porta or che raccoglie tutte le uscite delle porte and.

Demultiplexer: Da un singolo input si ottengono n output Se input = 0 tutti gli output saranno 0 indipendentemente dal segnale Se input = 1 solo un output sarà 1 e dipende dal segnale di controllo, altri a 0.

Decoder: Componente con n input e 2^n output. Gli input sono interpretati come numeri unsigned Se questo numero rappresenta il numero i, allora solo il bit n output di indice i (i=0,1...2^n-1) verrà posto ad 1 e tutti gli altri a 0. Il decodificatore traduce l'ingresso su n bit in un segnale che corrisponde al valore binario dell'ingresso: se il valore dell'ingresso è pari ad i, allora l'uscita Uscita-i sarà vera e tutte le altre uscite saranno false.

PLA: Programming logic arrayServe per costruire funzioni logiche arbitrarie in forma SPPuò calcolare funzioni logiche diverse che abbiano mintermini - sottocubiPorte AND al primo livello e porte OR al secondo livellon input e o outputm porte AND e o porte ORCon m si fissa un limite ai mintermini esprimibili, con o si fissa limite al numeri di funzioni differenti in forma canonica SP

ROM: Memoria usabile anche per implementare funzioni logiche arbitrarieRead only memory: PROM – programmable ROM (scrivibile solo una volta)

EPROM – Erasable PROM (cancellabile con luce UV)

Page 11:  · Web viewFlip-Flop vs. Latch temporizzato La differenza tra flip flop e latch è relativa all'istante del ciclo di clock che causa la variazione di stato. In un latch temporizzato,

Data una tabella di verità le ROM sono usate per memorizzare direttamente le diverse funzioni logiche (corrispondenti a colonne distinte).Indirizzo a n bit: individua una specifica combinazione delle n variabili logiche in input;

individua una cella di Width bit della ROMOgni funzione: singola colonna della ROM, funzioni fully encoded, PLA più efficienti.

Altezza – Height 2^nLarghezza – Width

Addizionatori: 1 bit adder collegati in sequenza per costruire un circuito combinatorio a n bit. Il segnale deve attraversare più livelli di logica; porte con fan in limitato.

A B Rip Sum RipOut

0 0 0 0 00 0 1 1 00 1 0 1 00 1 1 0 11 0 0 1 01 0 1 0 11 1 0 0 11 1 1 1 1

Porta XOR: dati 2 input: Output sse uno dei 2 input è 1

AB Rip

00 01

11 10

0 1 1

1 1 1 Sum= ~A~B Rip + ~AB~Rip + AB Rip + A ~B~Rip

AB Rip

00 01

11 10

0 1

1 1 1 1 Rip Out= Rip B + AB + Rip A

Si può semplificare la costruzione di 1 bit adder impiegando porte XOR (or esclusivo): funzione logica che vale 0 (f) sse entrambi i bit sono uguali; vale 1 (v) se i bit sono

diversi

Sum = A xor B xor RipRip_Out= A B + (A xor B) Rip

Page 12:  · Web viewFlip-Flop vs. Latch temporizzato La differenza tra flip flop e latch è relativa all'istante del ciclo di clock che causa la variazione di stato. In un latch temporizzato,

ALU & Istruzioni aritmetico/logiche

1 bit ALU: usata per eseguire istruzioni macchina come and, or e add

Operation: segnale di controllo a 2 bit che determina il tipo di operazione che la ALU deve fare.

Sottrazione:Questa ALU può essere resa più complessa per poter eseguire la sottrazione. Si deve però prima determinare il complemento a due del numero da sottrarre. La ALU deve quindi poter invertire il secondo operando e sommare 1 che si ottiene ponendo a 1 il carry in. Alla ALU si deve aggiungere il segnale Binvert e una porta not.

Confronto – slt:Se $3 < $4 --> $3 - $4 <0Sottrarre e confrontare il bit di segno, il valore del bit di segno del risultato della sottazione viene assegnato al bit meno significativo dei 32 bit in output e tutti gli altri bit in output posti a 0.Quindi ogni singola 1 bit ALU deve avere un ingresso in più: Less che viene posto a 0 o 1 sulla base dell'istruzione slt.La 31esima 1 bit ALU deve però anche controllare l'overflow (sulla base di Binvert che identifica operazione; segni operandi e risultato); fornire come output il bit di segno del risultato della sottrazione (Set).

32 bit ALU: catena di 1 bit ALU con propagazione del Carry; segnali di controllo per determinare

Page 13:  · Web viewFlip-Flop vs. Latch temporizzato La differenza tra flip flop e latch è relativa all'istante del ciclo di clock che causa la variazione di stato. In un latch temporizzato,

l'operazione da eseguire; segnale di controllo propogato a tutte le 1 bit ALU.

BInvert CarryIn Operation

Istruzione

0 0 00 and

0 0 01 or

0 0 10 sum

1 1 10 sub

1 1 11 sltALU FinaleBnegate al posto di Binvert e CarryIn; la ALU può eseguire istruzioni come bne e beq; può sottrarre e controllare se a-b=0 o se a-b !=0.

Memorie e circuiti sequenziali

I circuiti sequenziali calcolano funzioni che dipendono anche da uno stato, questo stato è mantenuto all'interno di un elemento di memoria.

Latch

L'S-R Latch è un circuito, composto da due porte NOR concatenate, cje costituisce l'elemento base per costruire elementi di memoria.Le porte NOR daranno come risultato 1 sse entrambi input sono pari a 0.Non è temporizzato.

Set del Latch sx: S=1 R=0 il valore memorizzato passa da 0 a 1 Reset del Latch dx: S=0 R=1 il valore memorizzato passa da 1 a 0Mai S=1 e R=1.

ClockI segnali S e R devono essere stabili per poter memorizzare un valore corretto.Ma S e R sono calcolati da un circuito combinatorio che diventa stabile dopo un certo intervallo di tempo che dipende dal numero di porte attraversate e dal ritardo che queste hanno. Bisogna evitare che durante questo intervallo gli output intermedi vengano presentati al latch per la memorizzazione.

Si usa quindi un segnale a gradino, detto Clock, il cui periodo viene scelto abbastanza grande da assicurare stabilità degli output del circuito; questo determina il ritmo dei calcoli e delle relative operazioni di memorizzazione. Livello alto = 1 Livello basso = 0

Page 14:  · Web viewFlip-Flop vs. Latch temporizzato La differenza tra flip flop e latch è relativa all'istante del ciclo di clock che causa la variazione di stato. In un latch temporizzato,

Latch clockato – D-Latch

Per tutto il tempo in cui il clock è alto il valore D viene riportato in uscita.

Setting: D=1 (S=1 R=0) Resetting: D=0 (S=0 R=1)Viene memorizzato un valore nel latch solo se il clock è asserted, cioè 1.

Il segnale D deve essere già stabile quando C (clock) diventa asserted; deve rimanere stabile per tutta la durata del livello alto di C; deve rimanere stabile per un altro periodo di tempo x evitare malfunzionamenti.

Ritardi:I ritardi dipendono dai cammini, porte e fili, attraversati dai segnali;Glitch: output possono cambiare temporalmente da valori corretti a valori errati e viceversa. Per essere sicuri che non si verifichi il glitch bisogna prendere periodo > di quello del ritardo della funzione.Es.: Somma = 1 (A,B) = (0,1) o (1,0)

Peridio del ciclo di clock: il periodo deve essere abbastanza lungo per stabilizzare output, deve essere stabile un po' prima del periodo di apertura del latch – setup time – e deve rimanere per un certo tempo – hold time.Es: se T=1nsec qual è la frequenza del clock

1nsec = 10^-9 secF=1/T --> 1/ (1*10^-9) = 10^9 Hz

Problemi

Elemento di memoria usato come I/O

Un circuito deve calcolare una funzione sulla base del vecchio valore dello stato del circuito. Output trovato nuovo valore dello stato, e di nuovo come input....I/O nello stesso ciclo di clock.Non vale per il Latch.

Timing

La memorizzazione può avvenire a varie istanti rispetto al segnale gradino del clock

Page 15:  · Web viewFlip-Flop vs. Latch temporizzato La differenza tra flip flop e latch è relativa all'istante del ciclo di clock che causa la variazione di stato. In un latch temporizzato,

level triggered: avviene sul livello alto o basso del clock !! edge triggered: avviene sul fronte di salita o discesa del clock; memorizzazione avviene

come istantanemante e che l'eventuale segnale di ritorno sporco dal circuito combinatorio, non faccia in tempo ad arrivare.

Generatore di impulsi

Genera impulsi brevissimi in corrispondenza del fronte di salita. Si tratta di una porta AND e una OR con ritardo Δ. Solo quando a sale e diventa affermato i valori b e c sono affermati, e impulso b and c diventa aff.

Flip-Flop

Semplice: Memorizza istantaneamente il valore di D sul fronte di salita del clock, ovvero quando c'è l'impulso; edge-triggered tipo rising Complesso: Usabile sia come input che come output, realizzato con 2 D-Latch in serie; edge-triggered tipo falling: quindi la memorizzazione del valore avviene sul fronte di discesa del clock.

Funzionamento: Flip

1. primo latch aperto pronto per memorizzare D, il valore memorizzato Q' esce ma secondo latch è chiuso;

2. il segnale di clock scende e Flop

si apre il secondo latch per memorizzare Q'3. memorizzato D (Q'), il sec latch fa fluire il nuovo valore Q nel circuito a valle.

Il flip-flop può dare due problemi: bisogna stare attenti al Time setup e time hold, che sono rispettivamente il tempo per cui bisogna mantenere attivo il segnale di dell'input D prima e dopo il fronte di clock.

Flip-Flop vs. Latch temporizzatoLa differenza tra flip flop e latch è relativa all'istante del ciclo di clock che causa la variazione di stato. In un latch temporizzato, lo stato viene aggiornato ogniqualvolta cambiano gli ingressi ed il clock è affermato, mentre in un flip flop lo stato può cambiare solo in corrispondenza di un fronte del clock. I flip flop sono spesso costruiti a partire da latch.

Circuito sequenziale sincrono

Blocco logico con I/O composto da circuiti combinatori ed elementi di memoria clockati (con flip-flop) che mantengono lo stato del circuito e possono essere modificati in ogni momento.I circuiti combinatori calcolano output e valori da memorizzare.Registro: insieme di flip-flop che memorizzano lo stato del circuito; viene aggiornato ad ogni input che viene dato al circuito combinatorio.

Circuiti sequenziali

Dati gli input il circuito sequenziale deve memorizzare output e NextState, ha memoria.

Page 16:  · Web viewFlip-Flop vs. Latch temporizzato La differenza tra flip flop e latch è relativa all'istante del ciclo di clock che causa la variazione di stato. In un latch temporizzato,

Tipi di circuito (Mealy & Moore)

Calcolano nello stesso modo lo stato successivo attraverso il registro.

Mealy: automa a stati finiti che genera un'uscita a partire dall'input e dallo stato correnteNo etichette all interno dei vari nodi; Output dipendono da stato e da input; Nelle etichette sugli archi possiamo distiguere due componenti distinte: inp / outpInp: di ogni arco rappresenta particolare input e permette di specificare la funzione Next State.Outp: permette la specifica della funzione Ouputs.

Definita come Moore solo che Output – y = g (x,i)

Moore: automa a stati finiti in cui le uscite sono determinate in funzione dei soli stati correnti; il valore dell'output al tempo t' dipende solo dal valore dei registri di stato.Nodi: statiArchi: transizioni di stato, permette la specifica della funzione Next State

Definita da: X – stati;I – simboli che si possono trovare come input (n)Y – simboli che possono generare output (m) 2^m combinazioniNextState – x*= f(x,i) Somma prodotti, mappa karnaugh.Output – y = g(x)

Mealy vs. MooreI due tipi di macchina hanno capacità equivalenti ma con la macchina di Mealy si può avere una macchina a stati finiti più piccola e che può richiedere un minor numero di stati rispetto alle corrispondenti macchine di Moore.

Una macchina a stati finiti è caratterizzata da un insieme di stati e da due funzioni dette funzione di stato futuro e funzione di uscita; l'insieme di stati corrisponde a tutti i possibili valori degli elementi di memoria interna, per cui se vi sono n bit di memoria vi saranno 2n stati. La funzione di stato futuro è una funzione combinatoria che, dato il valore dell'ingresso e dello stato presente, calcola il valore del prossimo stato assunto dal sistema; la funzione di uscita produce invece le uscite a partire dallo stato presente e dagli ingressi.Le macchine a stati finiti trattate sono di tipo sincrono, cioè lo stato cambia in corrispondenza dei cicli di clock, e si calcola un nuovo stato ad ogni nuovo ciclo di clock; in pratica gli elementi di stato sono aggiornati solo in corrispondenza dei fronti del clock. Quando si usa una macchina a stati finiti come controllore, la funzione di uscita viene spesso limitata in modo da dipendere solo dallo stato presente: macchine a stati finiti di tale tipo sono dette macchine di Moore. Se la funzione di uscita dipendesse sia dallo stato presente che dall'ingresso corrente, si direbbe che la macchina è una macchina di Mealy; i due tipi di macchine hanno capacità equivalenti, e si possono convertire l'una nell'altra seguendo un procedimento del tutto meccanico. Il vantaggio fondamentale delle macchine di Moore è di essere più veloci, mentre le macchine di Mealy

Page 17:  · Web viewFlip-Flop vs. Latch temporizzato La differenza tra flip flop e latch è relativa all'istante del ciclo di clock che causa la variazione di stato. In un latch temporizzato,

possono rivelarsi più piccole, poichè possono richiedere un numero di stati minore rispetto alle corrispondenti macchine di Moore.Una rappresentazione grafica, molto usata per rappresentare le macchine a stati finiti è la seguente: si usano i nodi per indicare gli stati; all'interno dei nodi si riporta l'elenco delle uscite affermate in tale stato. Si usano degli archi orientati per indicare la funzione di stato futuro, in cui le etichette sugli archi specificano le condizioni di ingresso mediante funzioni logiche.Una macchina a stati finiti può essere implementata mediante un registro per memorizzare lo stato presente ed un circuito logico combinatorio per calcolare le funzioni di stato futuro e di uscita. Per implementare la macchina a stati finiti occorre innanzitutto assegnare dei valori numerici agli stati mediante un processo che prende il nome di codifica degli stati.

Sintesi di reti sequenziali

Per sintetizzare il circuito sequenziale basta conoscere le tabelle di verità delle funz Output e NextState.

Register file

Si può leggere e scrivere contemporaneamente.

Registri: operandi delle istruzioni aritmetico-logiche; i due operandi in input sono letti da una coppia di registri; l operando in output è scritto su un registro.Ogni registro è costituito da n flip-flop (n = n bit di una word)

Più registri sono organizzati in una componente detta Register file: il register file del MIPS ha 32 registri e quindi 1024 flip-flop, deve permettere la lettura di 2 registri e la scrittura di 1 registro.

Il clock non entra direttamente nei flip-flop ma viene messo in AND con il segnale di controllo Write (se write = 1 il valore di write è scritto in un registro), il segnale determina se, in corrispondenza del fronte di discesa/salita del clock, il valore D debba o no essere memorizzato nel registro.

Lettura dal Register file2 Multiplexer larghi 32 bit; in loro controlli sono Read #1 e Read #2; il register file fornisce in output sempre 2 registri. Questi possono essere non significativi nel caso in cui i controlli Read siano non significativi.La lettura di un registro non ne modifica lo stato, occorre solo fornire in ingresso il numero del registro ed in uscita si otterrà semplicemente il dato contenuto nel registro.

Scrittura nel Register fileDecoder che decodifica il segnale di controllo Write; il segnale Write in AND con il clock abilita un solo registro su 32; se Write è 0 i possibili input non verranno memorizzati.Per una scrittura in un registro sono invece richiesti tre ingressi: il numero di registro, il dato da scrivere ed un segnale di clock che controlli l'operazione di scrittura. Le porte in lettura si possono

Page 18:  · Web viewFlip-Flop vs. Latch temporizzato La differenza tra flip flop e latch è relativa all'istante del ciclo di clock che causa la variazione di stato. In un latch temporizzato,

implementare con due multiplexer, ciascuno dei quali di ampiezza pari al numero di bit nel register file. L'implementazione della porta di scrittura è più complessa poichè è permesso modificare solo il contenuto del registro designato: lo si può fare usando un decodificatore per generare un segnale in grado di determinare in quale registro scrivere.

Memoria principale

Siccome i registri possono memorizzare pochi valori c'è bisogno di memoria.RAM : random access memory, meno veloce ma più capiente, il tempo non dipende dalla locazione di memoria.SRAM: static, è più veloce; vengono usati Latch, cacheDRAM: dynamic, più lenta; ogni bit memorizzato tramite condensatore; è necessario refreshare il contenuto a intervalli di tempo prefissati.

SRAM

Tiene memorizzato un valore finchè non c'è tensione.Realizzata come matrice di Latch con larghezza il numero di latch per cella e altezza numero di celle indirizzabili.Non si può leggere e scrivere contemporaneamente.Es. di configurazione: 256K x 1 (256 celle da 1 bit = 256Kb) 18 linee di indirizzo (2^18 = 256K) 1 linea input 1 output

Leggere: Output enable da affermare per poter abilitare uscita del chip, serve a collegare molti chip di memoria ad un singolo bus.Chip select, address, output enable e output in DoutLatch con buffer a 3 stati , solo se uno è attivo darà output,1 solo

Scrivere: Write enable è impulso che se attivato registra nella linea di latch individuati da Address il valore presentato in Din.Chip select, address, write enable e input in DinViene abilitata una sola coppia di Latch.

Problema: Decoder molto grande, multiplexer in uscita evitati con buffer a 3 stati

SRAM a due livelliDecoder piccolo e batteria di Multiplexer.- Indirizzo parte alta: riga - si sceglie una riga tra quelle possibili e si attiva la linea di parola corrispondente, contenuto della riga memorizzato in serie di latch.- Indirizzo parte bassa: colonna - si selezionano poi i dati a partire dai latch delle colonne. SRAM 256K*1 : K=2^10 256=2^8 --> 2^18 contiene quindi 256K elementi da 1 bit e 18 linee di indirizzo; 1 sola linea x dato in entrata e 1 sola in uscita.

Page 19:  · Web viewFlip-Flop vs. Latch temporizzato La differenza tra flip flop e latch è relativa all'istante del ciclo di clock che causa la variazione di stato. In un latch temporizzato,

DRAM

Realizzata con un solo transistor per bit e un condensatore. Il condensatore possiede la carica 0 o 1.Solo se Word Line = 1 il condensatore fa passare la corrente.

Lettura: la Bit Line viene posta ad un valore di potenziale tra 0 e 1, grazie al segnale 1 della WL il transistor viene chiuso, trasferendo la piccola carica del condensatore sulla BL .

Scrittura: il valore sulla bit line vine trasferito nel condensatore.

Siccome i condensatori mantengono i valori memorizzati solo per alcuni ms è necessario il refresh dinamico delle DRAM effettuato leggendo il valore memorizzato e ricaricandolo. Avviene per righe.

Anche le DRAM sono realizzate con una codifica a 2 livelli.Accesso riga: si sceglie una riga tra quelle possibili e si attiva la linea di parola corrispondente, contenuto della riga memorizzato in serie di latch.Accesso colonna: si selezionano poi i dati a partire dai latch delle colonne.

SSRAM e SDRAM

Synchronous SRAM e DRAM permettono di aumentare la banda di trasferimento della memoria.La funzionalità chiave fornita dalle RAM di tipo sincrono è di poter trasferire una sequenza di dati (detta burst) posta ad una serie di indirizzi consecutivi all'interno della stessa matrice o riga. Il burst è definito da un indirizzo di partenza e da una lunghezza. La maggior velocità delle SRAM sincrone risiede nella capacità di trasferire i bit interni al burst senza dover fornire informazioni aggiuntive sugli indirizzi. L'eliminazione della necessità di specificare l'indirizzo degli accessi interni al burst migliora notevolmente la frequenza di trasferimento dei blocchi di dati.