Circuiti integrati. Circuiti combinatori ALU. Esempio di chip SSI. Circuiti combinatori

Documenti analoghi
Arch. Elab. - S. Orlando 2. circuiti comunemente incontrati nel progetto di un computer. Con tecnologia MSI, gli IC contenevano alcuni componenti base

Circuiti combinatori ALU

Architettura degli Elaboratori

Architettura degli Elaboratori A Modulo 2

circuiti combinatori: ALU

Circuti AND, OR, NOT Porte logiche AND

Architettura degli Elaboratori

Multiplexer. Multiplexer 2 a 1 (a 1 bit) e sua implementazione. Multiplexer 2 a 1 (a 32 bit) e sua implementazione

Moduli combinatori Barbara Masucci

Arithmetic Logic Unit

Rappresentazione dell informazione

Addizionatori: metodo Carry-Lookahead. Costruzione di circuiti combinatori. Standard IEEE754

Architettura degli Elaboratori e Laboratorio. Matteo Manzali Università degli Studi di Ferrara Anno Accademico

Implementazione di circuiti

$GGL]LRQDWRULPHWRGR &DUU\/RRNDKHDG

senza stato una ed una sola

Linguaggio assembler e linguaggio macchina (caso di studio: processore MIPS)

Architettura degli Elaboratori

Porte logiche. Porte logiche. Corso di Architettura degli Elaboratori. Algebra Booleana

Circuiti combinatori notevoli

Corso di Architettura degli Elaboratori. Porte logiche (I) Architetture degli Elaboratori. Porte logiche (III) Porte logiche (II)

Un circuito integrato è una piastrina di silicio (o chip), quadrata o rettangolare, sulla cui superficie vengono realizzati e collegati

Il Livello Logico-Digitale. Blocchi funzionali combinatori

Reti combinatorie. Reti combinatorie (segue)

Unità Aritmetico-Logica

Logica Digitale. Fondamenti di Informatica - Prof. Gregorio Cosentino

Porte logiche di base. Cenni circuiti, reti combinatorie, reti sequenziali

Circuiti combinatori notevoli

Componenti notevoli combinatori

Circuiti e reti combinatorie. Appendice A (libro italiano) + dispense

Moduli Combinatori. Moduli Combinatori. Corso di Architetture degli Elaboratori

Appunti di informatica. Lezione 3 anno accademico Mario Verdicchio

Calcolatori Elettronici

Logica binaria. Moreno Marzolla Dipartimento di Informatica Scienza e Ingegneria (DISI) Università di Bologna

Le etichette nei programmi. Istruzioni di branch: beq. Istruzioni di branch: bne. Istruzioni di jump: j

Memorie Corso di Calcolatori Elettronici A 2007/2008 Sito Web: Prof. G. Quarella

I circuiti digitali: dalle funzioni logiche ai circuiti

Il set istruzioni di MIPS Modalità di indirizzamento. Proff. A. Borghese, F. Pedersini

Calcolatori Elettronici Parte IV: Logica Digitale e Memorie

Il Processore: l Unità di Controllo della ALU Barbara Masucci

Processore. Memoria I/O. Control (Parte di controllo) Datapath (Parte operativa)

Progetto CPU (ciclo singolo) Salvatore Orlando

LEZIONE N 91. Introduzione agli elementi architetturali principali. Roberto Giorgi, Universita di Siena, C116L91, Slide 1

Università degli Studi di Roma Tor Vergata Facoltà di Ingegneria Corso di Laurea in Ingegneria Medica Operazioni logiche

Algebra & Circuiti Elettronici. Algebra booleana e circuiti logici. Blocco logico. Tabelle di Verità e Algebra Booleana

Progettazione dell unità di elaborazioni dati e prestazioni. Il processore: unità di elaborazione. I passi per progettare un processore

Algebra & Circuiti Elettronici. Tabelle di Verità. Algebra booleana e circuiti logici. Blocco logico

Il processore: unità di elaborazione

Processore. Memoria I/O. Control (Parte di controllo) Datapath (Parte operativa)

Il set istruzioni di MIPS Modalità di indirizzamento. Proff. A. Borghese, F. Pedersini

Architettura degli Elaboratori Lez. 8 CPU MIPS a 1 colpo di clock. Prof. Andrea Sterbini

Esercitazioni di Reti Logiche. Lezione 4

Architettura dei Calcolatori Blocchi funzionali logici combinatori

Forme canoniche, circuiti notevoli, criteri di ottimizzazione

CALCOLATORI ELETTRONICI 27 giugno 2017

1. Si effettui la divisione di 7/5 utilizzando un efficiente algoritmo e illustrando la corrispondente architettura hardware.

Logica Digitale. Fondamenti Informatica 2 - Prof. Gregorio Cosentino

Circuiti Combinatori

Linguaggio macchina. Architettura degli Elaboratori e delle Reti. Il linguaggio macchina. Lezione 16. Proff. A. Borghese, F.

Reti Combinatorie: sintesi

Algebra di Boole e reti logiche. 6 ottobre 2017

La seconda forma canonica Circuiti notevoli. Sommario

Circuiti Integrati Architettura degli Elaboratori 1 A.A

1. L istruzione li $a0, è un istruzione standard del processore MIPS? Se no, a quali istruzioni corrisponde e come viene eseguita?

Memorie ROM (Read Only Memory)

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

Esercitazioni di Reti Logiche

Reti Logiche Combinatorie

Processore. Memoria I/O. Control (Parte di controllo) Datapath (Parte operativa)

Elementi base per la realizzazione dell unità di calcolo

Processore: Datapath & Control. Progetto CPU (ciclo singolo) Rivediamo i formati delle istruzioni. ISA di un MIPS-lite

Arithmetic and Logic Unit e moltiplicatore

LSS : Reti Logiche: circuiti combinatori

Fetch Decode Execute Program Counter controllare esegue prossima

Università degli Studi di Cassino

Implementazione semplificata

HSA HSA HARDWARE SYSTEM ARCHITECTURE. Livelli. Livello assemblativo. Livello di. Sistema Operativo. Livello di. linguaggio macchina.

Esercitazione del 15/03/ Soluzioni

I circuiti digitali: dalle funzioni logiche ai circuiti

Informazioni varie. Lezione 18 Il Set di Istruzioni (5) Dove siamo nel corso. Un quadro della situazione

I circuiti digitali: dalle funzioni logiche ai circuiti

Il linguaggio macchina

Informatica di Base - 6 c.f.u.

Codifica binaria: - numeri interi relativi -

Un quadro della situazione

La "macchina" da calcolo

Richiami sull architettura del processore MIPS a 32 bit

Operatori logici e algebra di boole

Progetto CPU a singolo ciclo

Il Processore: l Unità di Controllo Principale Barbara Masucci

Cenni alle reti logiche. Luigi Palopoli

Le tre famiglie fondamentali. Laboratorio di Architettura. 1. Manipolazione di dati. 1.1 Aritmetica di base. Lezione 3

Rappresentazione informazione ed elementi di aritmetica dei computer

Dalla tabella alla funzione canonica

anno scolastico 2009 / 2010 ELETTRONICA per Elettrotecnica ed Automazione

Parte III. Logica Digitale e Memorie

Esercitazioni su circuiti combinatori

Transcript:

ircuiti integrati ircuiti combinatori LU Salvatore Orlando I circuiti logici sono realizzatati come I (circuiti integrati) realizzati su chip di silicio (piastrina) gates e fili depositati su chip di silicio, inseriti in un package e collegati all esterno con un certo insieme di pin (piedini) gli I si distinguono per grado di integrazione da singole porte indipendenti, a circuiti più complessi Integrazione SSI (Small Scale Integrated): - porte MSI (Medium Scale Integrated): - porte LSI (Large Scale Integrated): -. porte VLSI (Very Large Scale Integrated): >. porte on tecnologia SSI, gli I contenevano poche porte, direttamente collegati ai pin esterni on tecnologia MSI, gli I contenevano alcuni componenti base circuiti comunemente incontrati nel progetto di un computer on tecnologia VLSI, un I può oggi contenere una PU completa (o più) microprocessore rch. Elab. - S. Orlando rch. Elab. - S. Orlando 2 Esempio di chip SSI ircuiti combinatori Texas Instruments 74 DIP (Dual Inline Package) Tensione e terra condivisi da tutte le porte Tacca per individuare l orientamento del chip SSI Rapporto gates/pin molto piccolo on l aumento del del grado di integrazione rapporto gates/pin incrementato chip più specializzati es. chip che implementano particolari circuiti combinatori rch. Elab. - S. Orlando 3 Nella costruzione di un processore, o di un componente elettronico specializzato necessario usare componenti realizzati con circuiti combinatori l output ottenuto solo combinando i valori in input con poter logiche il circuito non ha memoria ircuiti combinatori usati quindi come blocchi base per costruire circuiti più complessi spesso realizzati direttamente come componenti MSI Tratteremo: Multiplexer e Demultiplexer Decoder LU Per implementare circuiti combinatori useremo PL ROM rch. Elab. - S. Orlando 4

Multiplexer () n input ed output log 2 n segnali di controllo (altri input) Il multiplexor, sulla base dei segnali di controllo, seleziona quale tra gli n input verrà presentato come output del circuito aso semplice: Multiplexer 2:, con un solo bit di controllo M U X S (controllo) se S=: passa S se S=: passa S = ~S + S rch. Elab. - S. Orlando 5 Multiplexer 8: 8=2 3 input e 3 segnali di controllo 8=2 3 porte ND e porta OR In ogni porta ND entra una combinazione diversa dei segnali di controllo,, valori possibili: 7 solo una di queste porte produrrà un valore es. ~ => D 5 in dipendenza dei valori assunti da, e tutte le porte ND (eccetto una) avranno sicuramente output uguale a solo una delle porte ND potrà quindi produrre il suo corrispondente valore in input D i (eventualmente affermato) Multiplexer (2) rch. Elab. - S. Orlando 6 Multiplexer Multiplexer e funzioni logiche arbitrarie Multiplexer 2: a 32-bit (con fili larghi di 32 bit) costruito usando 32 -bit Multiplexer 2: con un segnale di controllo distribuito ai vari Multiplexer rch. Elab. - S. Orlando 7 Multiplexer n: possono essere usati per definire una qualsiasi funzione logica in log 2 n variabili funzione definibile da una tabella di verità con n righe le variabili in input della funzione logica diventano i segnali di controllo del multiplexer ogni riga della tabella di verità corrisponde ad uno degli n input del multiplexer input collegati ad un generatore di tensione (o alla terra) se l output, associato alla riga della tabella di verità, è (o ) grande spreco di porte circuito fully encoded porte ND con arietà maggiore del necessario (+) omponente MSI che realizza un multiplexer 8: ollegamento per ottenere la funzione: F=+++ rch. Elab. - S. Orlando 8

Demultiplexer Decoder Da singola linea in input, a n linee in output log 2 n segnali di controllo (S) se la linea in input è uguale a tutti gli output dovranno essere uguali a, indipendentemente da S se la linea in input è uguale a un solo output dovrà essere uguale a, tutti gli altri saranno l output da affermare dipende da S D E M U X S (controllo) S =S =S omponente con n inputs e 2 n output gli n input sono interpretati come un numero unsigned se questo numero rappresenta il numero i, allora solo il bit in output di indice i (i=,,...,2 n -) verrà posto ad tutti gli altri verranno posti a 3 Decoder. Out_ Out_7 2 3 4 5 6 7. Out_ Out_ Out_2 Out_3 rch. Elab. - S. Orlando 9 rch. Elab. - S. Orlando PL PL Programming Logic rray (PL) omponente per costruire funzioni logiche arbitrarie permette di costruire funzioni in forma SP porte ND al primo livello, e porte OR al secondo livello n input e o output m porte ND o porte OR n ND m Esempio: n=2 o=6 m=5 In ogni porta ND entrano 2n=24 input normali e invertite In ogni porta OR entrano m=5 input m fissa un limite al numero di mintermini esprimibili o fissa un limite al numero di funzioni differenti in forma canonica SP OR o Fusibili da bruciare per decidere quali sono gli input di ogni porta ND quali sono gli input delle varie porte OR rch. Elab. - S. Orlando rch. Elab. - S. Orlando 2

PL ROM n input m porte ND Esempio di funzione: O = ~ ~ + o input rch. Elab. - S. Orlando 3 Memorie usabili anche per esprimere, in maniera non minima, funzioni logiche arbitrarie ROM (Read Only Memory) PROM (Programmable ROM) scrivibili solo una volta EPROM (Erasable PROM) cancellabile con luce ultravioletta Height 2 n Ogni colonna = Singola funzione logica Width In pratica data una Tabella di Verità, le ROM sono usate per memorizzare direttamente diverse funzioni logiche (corrispondenti a colonne distinte nella Tabella) Indirizzo a n bit individua una specifica combinazione delle n variabili logiche in input individua una cella di Width bit della ROM Ogni funzione: Singola colonna della ROM Funzioni fully encoded PL più efficiente rch. Elab. - S. Orlando 4 ddizionatori ddizionatore a singolo bit Potremmo costruire un unico circuito combinatorio che implementi un addizionatore a n bit dati 2*n input: n n n+ diverse funzioni di output Rip n solo due livelli di logica, ma con porte ND e OR con molti input fan-in molto elevato (non ammissibile) Soluzione di compromesso, basata su serie di -bit adder collegati in sequenza il segnale deve attraversare più livelli di logica porte con fan-in limitato (ammissibile) circuito che usa lo stesso metodo usato dall algoritmo carta e penna a cui siamo abituati La tabella di verità dell addizionatore a singolo bit Rip Sum Rip_out Sum Rip Rip_out Rip Sum = ~ ~ Rip + ~ ~Rip + Rip + ~ ~Rip Rip_out = Rip + + Rip rch. Elab. - S. Orlando 5 rch. Elab. - S. Orlando 6

ddizionatore a singolo bit -bit adder usando porte XOR La funzione Sum non può essere semplificata ben 4 porte ND La costruzione di un -bit adder diventa più semplice impiegando porte XOR funzione logica che vale (F) se entrambi i bit in ingresso sono uguali, ovvero entrambi (F) o entrambi (T) esempio di or esclusivo (XOR) nel linguaggio comune o è bel tempo oppure prendo l ombrello Funzione SUM consideriamo che SUM tra una coppia di bit può essere ottenuta con xor Sum = xor xor Rip Rip_out = + ( xor ) Rip Rip Sum Porta XOR rch. Elab. - S. Orlando 7 Rip_out rch. Elab. - S. Orlando 8 LU & istruzioni aritmetiche/logiche -bit LU LU (rithmetic Logic Unit) circuito combinatorio usato per implementare le operazioni necessarie per l esecuzione di diverse istruzioni macchina Studieremo l LU del processore MIPS Istruzioni a 3 operandi operandi in 3 dei 32 registri del processore (registri a 32 b = 4 = W) Istruzioni assembler di tipo aritmetico/logico cod op Reg, Reg2, Reg3 Semantica istruzioni Reg Reg2 op Reg3 Istruzioni macchina (e relativi formati) istr. assembler codificate opportunamente su una Word di 32 b esempi di istruzioni aritmetico/logiche e confronto and $2, $3, $4 # $2 = $3 & $4 or $2, $3, $4 # $2 = $3 $4 add $2, $3, $4 # $2 = $3 + $4 sub $2, $3, $4 # $2 = $3 - $4 slt $2, $3, $4 # if ($3<$4) $2= else $2= rch. Elab. - S. Orlando 9 -bit LU usata per eseguire le istruzioni macchina seguenti: and $2, $3, $4 or $2, $3, $4 add $2, $3, $4 Operation è un segnale di controllo a 2 bit determina il tipo di operazione che l LU deve eseguire l LU è la tipica componente che fa a parte del Datapath (Parte operativa) del processore La Parte ontrollo comanda l esecuzione delle varie istruzioni settando opportunamente i segnali di controllo dell LU (e delle b altre componenti della Parte operativa) arryout arryin Operation 2 2 Result rch. Elab. - S. Orlando 2

32-bit LU Inversione e sottrazione 32-bit LU catena di -bit LU con propagazione del arry segnali di controllo per determinare l operazione che l LU deve eseguire Operation :propagato a tutte le -bit LU L -bit LU precedente può essere resa più complessa per poter eseguire: sub $2, $3, $4 Operazione di sottrazione: $2 = $3 - $4 trasformata in: $2 = $3 + (-$4) (-$4) significa che bisogna prima determinare il complemento a 2 del numero signed contenuto in $4 il complemento a 2 si ottiene effettuando il l inversione (complemento a bit-a-bit) sommando l LU deve quindi possedere i circuiti predisposti per invertire il secondo operando (b) e sommare sommare (che si ottiene ponendo semplicemente a il carry-in dell LU) invert Operation Istruzione and or sum sub rch. Elab. - S. Orlando 2 rch. Elab. - S. Orlando 22 Istruzioni di confronto Istruzioni di confronto slt $2, $3, $4 (set less than) $2= se è vero che $3 < $4 $2= altrimenti Se $3 < $4 allora $3-$4 < Quindi, per effettuare il confronto, possiamo semplicemente: sottrarre e controllare il bit di segno se non c è overflow durante la sottrazione il valore del bit di segno del risultato della sottrazione può essere semplicemente assegnato al bit meno significativo dei 32 bit in output tutti gli altri bit in output devono essere posti a Tutte le -bit LU devono quindi avere un ingresso in più l input Less, che verrà posto a o a sulla base del risultato L ultima -bit LU è più complessa deve controllare l overflow in figura abbiamo un blocco logico per l overflow che prende molti (fin troppi) input per l overflow basta solo controllare se il carry-in e il carry-out sono discordi deve fornire, come ulteriore output, il bit di segno del risultato delle sottrazione (Set) questo per permettere l implementazione di slt Set deve essere ridiretto verso la -bit LU che fornirà in output il bit meno significativo del risultato dell istruzione slt rch. Elab. - S. Orlando 23 rch. Elab. - S. Orlando 24

lu complessiva slt e overflow Output Set dell ultima -bit LU viene ridiretto sull input Less della prima -bit LU Tutti i bit Less delle varie -bit LU (eccetto la prima) vengono posti a Segnali di controllo: invert e arryin vengono entrambi asserted (affermati) per sottrarre (sub e slt) I bit di Operation sono posti a per far passare in output l ultimo bit in ingresso ai Multiplexer 4: invert arryin Operation Istruzione and or sum sub slt rch. Elab. - S. Orlando 25 Il circuito proposto per implementare l ultima -bit LU della catena potrebbe NON FUNZIONRE per il slt nel caso di overflow non è ottimale per quanto riguarda l overflow Per controllare se c è overflow, basta controllare se i bit arryin e arryout dell ultima -bit LU sono discordi => (arryin xor arryout) arryin arryout Overflow aso di malfunzionamento relativo a slt slt $2, $3, $4 se $3> e $4< potremmo concludere direttamente che è vero che $3>$4 => $2= se invece sottraiamo per implementare slt, finiamo per sommare due numeri positivi ($3 + (-$4)) potremmo avere overflow, ottenendo così un bit di segno (Set) non valido (uguale a, invece che uguale a ) un ragionamento analogo potrebbe essere fatto nel caso in cui $3< e $4> rch. Elab. - S. Orlando 26 ircuito per slt ircuito corretto per slt Set deve essere determinato in modo da evitare il malfunzionamento precedente, relativo a un overflow non voluto Siano a = a 3.a e b = b 3.b i due numeri da confrontare res = res 3.res il risultato degli -bit adder c = c 3.c il risultato della LU, che nel caso di slt potrà solo essere. oppure. a 3 b 3 res 3 Set X X a> e b< a< e b> res 3 a 3 b 3 Set = a 3 b 3 + b 3 res 3 + a 3 res 3 Se a> e b<, allora a>b, e possiamo porre direttamente Set = Se a< e b>, allora a<b, e possiamo porre direttamente Set = nei 2 casi di sopra, anche se comunque all LU viene comandato di eseguire una sottrazione, l eventuale overflow non dovrà essere ignorato Set Se a> e b>, oppure se a< e b<, allora possiamo considerare il risultato della sottrazione, e possiamo porre Set = res 3 in questi casi non si può verificare OVERFLOW, per cui res 3 conterrà correttamente il bit di segno a 3 b 3 res 3 rch. Elab. - S. Orlando 27 rch. Elab. - S. Orlando 28

bbiamo risparmiato un bit di controllo negate al posto di: (invert, arryin) Nell LU precedente, infatti, (invert, arryin) venivano sempre asserted o deasserted assieme bbiamo ulteriormente specializzato l LU per l esecuzione delle istruzioni di branch condizionato beq e bne devo controllare se a==b oppure se a!= b posso comandare alla LU di sottrarre, e controllare se a-b= oppure se a-b!= Zero= a-b== (a==b) lu finale omponente combinatoria: LU Simbolo usato per rappresentare la componente LU nel progetto della PU rch. Elab. - S. Orlando 29 rch. Elab. - S. Orlando 3