Che materia stai cercando?

Anteprima

ESTRATTO DOCUMENTO

Le porte logiche non sono prodotte o vendute individualmente, ma in unità chiamate circuiti integrali, alle

quali spesso ci si riferisce con i termini IC o chip. Un IC è un quadrato (o rettangolo) di silicio sul quale sono

state posizionate alcune porte. Sul lato più lungo vi sono due file parallele di contatti (pin) inseribili in una

presa (socket) oppure saldabili su schede di circuiti stampati. Ciascun pin è collegato a un input o a un

output di una porta logica oppure all’alimentazione o alla terra. Con il termine tecnico DIP ci si riferisce al

contenitore che all’esterno presenta due file di pin e al suo interno alcuni IC.

I chip si suddividono in :

- SSI : 1-10 porte

- MSI: 10-100 porte

- LSI: 100-100.000 porte

- VLSI: più di 100.000 porte

RETI COMBINATORIE

Molte applicazioni della logica digitale richiedono un circuito, chiamato rete combinatoria, con più input e

più output, in cui gli output sono unicamente determinati dagli input.

 n

MULTIPLEXER: è un circuito con 2 dati in input, un valore in

output e n input di controllo; gli input di controllo permettono

di selezionare uno dei dati di input, che viene mandato in

output.

Le tre linee di controllo, A, B e C, codificano un numero a 3 bit

che specifica quale delle otto linee di input deve essere

instradata verso la porta OR e quindi verso l’output.

Indipendentemente dal valore definito dalle linee di controllo,

sette delle porte AND genereranno sempre il valore 0, mentre

quella rimanente produrrà in output 0 oppure 1, a seconda

del valore della linea d’ingresso selezionata. Ciascuna porta

AND può essere abilitata da una diversa combinazione degli input di controllo. (TABELLA 3 INPUT E

SE >1 METTO M=1)

 DEMULTIPLEXER: è l’inverso del multiplexer: invia il segnale di input

ad uno dei 2n output, a seconda dei valori delle n linee di controllo. Per

convenzione, le uscite non attivate assumono

il valore costante 0 indipendentemente dal

valore assunto dall’ingresso.

 DECODER: accetta come input un

numero a n bit e lo utilizza per impostare a 1

n

una sola delle 2 linee di output.

 COMPARATORI: permette di confrontare due stringhe di bit. Il

circuito è basato sulla porta logica XOR, che produce in output un

valore 0 se i suoi input sono uguali e un valore 1 se sono diversi. Se

due stringhe in ingresso sono uguali, tutte e quattro le porte XOR devono generare come risultato

0. Questi quattro segnali possono poi essere connessi a una stessa porta logica OR in modo da

produrre un valore 0 quando gli input sono uguali e un valore 1 nel caso contrario.

 ARRAY LOGICI PROGRAMMABILI: un chip molto generale che permette di calcolare somme di

prodotti è l’array logico programmabile o PLA. Permette di implementare una tabella di verità

qualsiasi (compatibilmente con gli input o output presenti nel chip). Utilizza i fusibili, tuttavia oggi

non è più conveniente per produzioni in larga scala.

CIRCUITI ARITMETICI

Sono circuiti di uso generale alle reti combinatorie impiegate per eseguire calcoli aritmetici.

 REGISTRI A SCORRIMENTO (SHIFTER): questo registro ha 8 input e 8 output. Gli input sono

collegati alle linee D … D ,

0 7

mentre l’output, corrispondente

all’input traslato di un bit, risulta

disponibile sulle linee S … S . La

0 7

linea di controllo, C, ha valore 0

se lo spostamento deve

avvenire verso sinistra, e 1 in

caso contrario. Nel caso di uno

spostamento a sinistra si inserisce uno 0 nel bit 7, e nel caso di uno shift a destra si inserisce un

1 nel bit 0.

In sintesi l’output è l’input spostato di un bit.

 SOMMATORI:

- HALF ADDER: somma due bit input restituendo l’eventuale

riporto. Il “semi addizionatore” va bene solo per sommare due

bit che si trovano all’inizio di una sequenza di bit.

- FULL ADDER: l’addizionatore completo a 1 bit è

composto da due “semi addizionatori”. Un addizionatore

completo a n bit si può ottenere replicando in serie n

volte un addizionatore completo ad 1 bit. Il riporto (carry

out) di un bit si usa come carry in dell’addizionatore

completo alla sua sinistra.

TABELLA DI VERITA’ (A-B-CARRY IN li inserisco io, SUM E CARRY OUT me li calcolo)

N bit full-adder: un addizionatore completo a n bit si può ottenere replicando in serie n volte un

addizionatore a un 1 bit. Il riporto (carry out) di un bit si usa come carry in dell’addizionatore

completo alla sua sinistra.

 UNITÀ ARITMETICO LOGICHE

- 1-bit ALU

Dati A e B è in grado di calcolare: A and B, A or B, not B, A+B.

Vi è un decoder per l’abilitazione dell’operazione desiderata

Normalmente ENA e ENB (servono a forzare una delle due porte a 0) sono impostati a 1 mentre

l’INVA (nega A) a 0.

- 8-bit ALU

Una n-bit ALU si ottiene collegando in serie n bit slice.

Il carry in del bit meno significativo può essere usato come segnale di INC: nell’addizione

incrementa il risultato di 1 (A+B+1, A+1).

CLOCK

Molti circuiti digitali utilizzano dei clock per gestire la sincronizzazione e permettere ai progettisti di

ottenere le relazioni temporali desiderate. In questo contesto un clock è un circuito che emette una serie di

impulsi di larghezza definita e a intervalli temporali costanti. L’intervallo temporale compreso tra le

estremità di due impulsi consecutivi è detto ciclo di clock. La frequenza degli impulsi è generalmente

compresa tra 1 e 500 MHz, corrispondenti a cicli di clock compresi tra 1000 e 2 ns. per ottenere

un’accuratezza elevata di solito la frequenza di clock è controllata da un oscillatore a cristalli.

In un calcolatore possono verificarsi più eventi durante uno stesso ciclo di clock.

Il diagramma di temporizzazione fornisce quattro diversi riferimenti temporali utilizzabili per sincronizzare

eventi discreti.

1. Fronte di salita di C1

2. Fronte di discesa di C1

3. Fronte di salita di C2

4. Fronte di discesa di C2

La frequenza specifica il numero di periodi di clock per unità di tempo. La frequenza si calcola come inverso

del tempo di ciclo di clock. L’unità di misura è l’Hertz, di cui si utilizzano per i calcolatori i vari sottomultipli.

MEMORIA (RETI SEQUENZIALI)

1

LATCH

Per creare una memoria a 1 bit è necessario disporre di un circuito che in qualche modo “ricordi” i

precedenti valori di input.

LATCH SR: ha due input: S, per impostare il valore del latch (set) e R, per azzerarlo (Reset). Il circuito ha

anche due output, Q e not Q, che sono complementari l’uno rispetto all’altro. Diversamente dalle reti

combinatorie l’output di un latch non è determinato unicamente dai valori di input correnti.

Uno stato in cui entrambi gli output valgono 0 viene detto instabile e anche quando valgono entrambi 1 il

circuito non funziona.

La conclusione è semplice: per R=S=0 il latch ha due stati stabili che

identificheremo con 0 e 1 in base al valore di Q.

Se S è impostato temporaneamente a 1 lo stato del latch diventa Q=1,

indipendentemente dallo stato in cui si trovava precedentemente. Allo stesso

modo quando si imposta temporaneamente R a 1 si forza il latch a passare

nello stato Q=0. Il circuito “ricorda” quindi quale valore, se S oppure R, è

stato settato per ultimo. Utilizzano questa proprietà è possibile costruire le

memorie dei calcolatori.

LATCH SR TEMPORIZZATO

Spesso è preferibile che un latch cambi di stato se non in specifici momenti. Un circuito che gode di questa

caratteristica è detto latch SR temporizzato. Rispetto al latch SR bisogna aggiungere un input, il clock, il cui

valore è generalmente 0. Quando il clock vale 0 entrambe le porte AND generano in output il valore 0,

1 I circuiti sequenziali sono in grado di calcolare funzioni che dipendono anche da uno stato interno, quindi

dipendono anche da informazioni memorizzate in elementi di memoria interni

indipendentemente dai valori di S e R, impedendo quindi al latch di cambiare di stato. Quando il clock vale

1 le porte AND non bloccano più i segnali S e R che possono dunque tornare a pilotare lo stato del latch. I

termini enable e strobe sono largamente utilizzati per indicare che l’input clock vale 1, ovvero che il circuito

è dipendente dallo stato di S e da quello di R.

LATCH D TEMPORIZZATO

Un buon modo per risolvere l’ambiguità dei latch SR

(causata dalla situazione S=R=1) è evitare che questo

si verifichi.

Per questo è stato introdotto il latch D temporizzato

che ha un solo input, D. dato che l’input della porta

AND rappresentata in basso è sempre il

complemento dell’input di quella superiore, non può

accadere che entrambi gli input siano 1. Quando il clock vale 1 il valore corrente di D viene campionato e

memorizzato nel latch.

FLIP-FLOP

In molti circuiti è necessario campionare il valore di una certa linea in un particolare istante e memorizzarlo.

In questi circuiti, chiamati flip-flop, la

transizione di stato non si verifica quando il

clock vale 1, ma durante la transizione del

clock da 0 a 1 (fronte di salita) oppure da 1 a 0

(fronte di discesa). In questa situazione la

lunghezza dell’impulso del clock non ha alcuna

importanza, purché le transizioni si verifichino

con sufficiente velocità.

La differenza tra un flip-flop e un latch e che il

primo è a commutazione sul fronte mentre il

secondo è a commutazione a livello.

REGISTRI

Un registro è formato dai segnali di clock, Clear e Preset.

Per unire i vari segnali serve un interruttore elettrico che possa instaurare o interrompere una connessione

in pochi nanosecondi.

Un interruttore del genere è chiamato buffer non invertente. Esso ha un dato in input, un dato di output e

un input di controllo. Quando l’input di controllo è alto il buffer funge da collegamento. Quando l’input di

controllo è basso si comporta come un circuito aperto: è come se qualcuno avesse scollegato il dato di

output dal resto del circuito con una pinza tagliafili. Tuttavia, diversamente dall’utilizzo di una pinza

tagliafili, la connessione può essere ripristinata in pochi nanosecondi semplicemente reimpostano il segnale

di controllo al valore alto.

Un buffer invertente si comporta come un normale invertitore quando il controllo ha valore alto e

disconnette l’output dal circuito quando il controllo ha valore basso. I due buffer sono dispositivi a tre stati,

in quanto possono generare in output i valori 0 e 1, oppure nessuno dei due (circuito aperto). I buffer

inoltre amplificano il segnale e possono quindi guidare più input allo stesso tempo.

Nel circuito della memoria il buffer viene attivato e spedisce una parola sulle linee di output quando CS, RS

e OE hanno valore alto e il segnale per l’abilitazione dell’output è alto. Al contrario, quando un qualsiasi dei

segnali CS, RD e OE è basso, l’output è scollegato dal resto del circuito.

CHIP DI MEMORIA

Una memoria 4 x 3, è costituita cioè da quattro parole di 3 bit ciascuna. Per estenderla alla dimensione 4 x

8 occorre semplicemente aggiungere cinque colonne composte da quattro flip-flop ciascuna, così come

cinque linee di input aggiuntive e altrettante linee di output. Per passare da 4 a 8 si devono aggiungere

quattro nuove righe di tre flip-flop ciascuna, oltre a una linea aggiuntiva per l’indirizzo. Una memoria con

questa struttura dovrebbe avere un numero di parole esprimibili come una potenza di 2 al fine di

massimizzare l’efficienza; il numero di bit di una parola può invece assumere qualsiasi valore.

Le dimensioni dei chip di memoria sono indicate in bit e non i byte.

Un segnale è asserito (assume valore alto o basso) quando è impostato in modo da generare qualche

azione. I pin asseriti con valore basso sono identificati da una linea sopra il loro nome CS (alto) CS (riga

sopra, basso).

L’opposto di asserito è negato, quando non succede nulla di particolare i pin sono negati.

Il segnale CS (negato) serve a selezionare il chip richiesto in un dato momento ignorando tutti gli altri. Per

distinguere il segnale di scrittura si utilizza il segnale WR (negato) mentre per indicare i segnali di output

viene utilizzato il segnale OE (negato).

Un altro metodo di organizzazione della memoria prevede l’introduzione di un numero di 11 bit sui pin

dell’indirizzo asserendo il segnale RAS (negato) al fine di inizializzare il chip. Successivamente si immette sui

pin dell’indirizzo un numero di colonne e si asserisce il segnale CAS (negato). Il chip risponde accettando,

oppure generando in output un dato da 1 bit.

Quest’ultimo metodo è utilizzato per i chip di memoria più grandi, l’architettura riduce il numero di pin ma

rende più lento il chip dato che bisogna immettere sia l’indirizzo delle colonne che quello delle righe.

TIPI DI MEMORIA RAM

La memoria RAM (random access memory) è sia una memoria di lettura che di scrittura.

Ci sono due tipi di memoria:

- SBAM: le RAM statiche costruite con circuiti simili ai flip-flop D e hanno la proprietà di contenere i

dati sino a quando vi è alimentazione. Sono molto veloci e quindi vengono usate per creare le

cache di secondo livello.

- DRAM: le RAM dinamiche sono composte da un array di celle, ciascuna delle quali contiene un

transistor e un piccolo condensatore.

Il condensatore può essere caricato o scaricato per memorizzare i valori 0 oppure 1.

Dato che la carica tende a disperdersi occorre effettuare dei refresh di ciascun bit della RAM per

evitare perdita di dati.

Esistono vari tipi di chip di RAM dinamiche:

 DRAM FPM: organizzate in matrici pertanto è presente sia l’indirizzo di riga che quello di

colonna.

 DRAM EDO: pipeline per output, aumentano la larghezza di banda di memoria perché

l’indirizzo viene chiesto prima della fine dell’operazione precedente.

 SDRAM: utilizzate su cache e memorie centrali, sono delle memorie ibride (in parte statiche e

in parte ibride). I dati e gli indirizzi sono controllati dal clock che elimina così i vari segnali di

controllo.

 SDRAM – DDR: leggono sia sul fronte di salita che su quello di discesa raddoppiando il

trasferimento di dati (usato per le schede video).

TIPI DI MEMORIA ROM

Le memorie ROM (read-only memory) non possono essere modificate o cancellate, né intenzionalmente né

accidentalmente. I dati sono inseriti durante la fabbricazione. L’unico modo per cambiare il programma

consiste nel sostituire l’intero chip.

Per far si che le aziende potessero sviluppare più agevolmente prodotti basati su ROM sono state inventare

le PROM che può essere programmata sul posto e non prima.

Il passo successivo è stata la EPROM i cui dati si cancellano con luce ultravioletta.

Meglio ancora della EPROM sono la EEPROM che può essere cancellata con impulsi elettrici e infine la

memoria flash che è cancellabile a blocchi e riscrivibile.

ANALISI DI RETI SEQUENZIALI SINCRONE

Data una rete sequenziale sincrona si può dare una descrizione esauriente tramite: equazioni booleane,

tabelle di verità e diagrammi di stato.

A partire dalle equazioni di ingresso relative ad un circuito sequenziale, è possibile costruire una tabella,

detta tabella di stato, che metta in relazione ingressi, uscite e stato.

Ogni tabella di stato è formata da quattro sezioni: nella sezione stato presente sono elencati tutti i possibili

stati, nella sezione ingressi sono riportati i valori degli ingressi per ogni possibile stato presente, nella

sezione stato futuro sono elencati i valori dello stato futuro per ogni combinazione dei valori dello stato

presente e degli ingressi e nella sezione uscite sono elencato i valori delle uscite per ogni possibile

combinazione dei valori dello stato presente e degli ingressi.

I circuiti sequenziali (sincroni) si possono classificare in base alla relazione intercorrente tra uscite, ingressi e

stato.

Se le uscite dipendono sia dagli ingressi sia dallo stato allora il circuito si dirà di tipo Mealy.

Se le uscite dipendono soltanto dallo stato allora il circuito si dirà di tipo Moore.

Le informazioni delle tabelle possono essere rappresentate graficamente mediante diagrammi di stato.

Nel diagramma di stato ogni possibile valore dello stato interno è rappresentato da un cerchio.

Nei circuiti di tipo Mealy le uscite dipendono sia dallo stato che dagli ingressi. Di conseguenza occorrerà

specificare il loro valore sulle frecce.

Nei circuiti di tipo Moore le uscite dipendono solo dallo stato pertanto basterà specificare solo il valore

sugli stati.

ORGANIZZAZIONE DEI SISTEMI DI CALCOLO

PROCESSORI

La CPU (Central Processing Unit) è il “cervello“ del calcolo e la sua funzione è quella di eseguire i programmi

contenuti nella memoria principale prelevando le loro istruzioni, esaminandole ed eseguendole una dopo

l’altra. I componenti sono connessi fra loro mediane un bus, cioè un insieme di cavi paralleli sui quali

vengono trasmessi indirizzi, dati e segnali di controllo. I bus possono essere esterni alla CPU, per

connetterla alla memoria e ai dispositivi di I/O, oppure interni.

La CPU è composta da parti distinte, tra cui l’unità di controllo e l’unità aritmetico logica. La prima si occupa

di prelevare le istruzioni dalla memoria principale e di determinarne il tipo, mentre la seconda esegue le

operazioni, come l’addizione e l’AND, necessarie per portare a termine l’esecuzione delle istruzioni.

La CPU contiene una piccola memoria ad alta velocità, utilizzata per memorizzare i risultati temporanei e

alcune informazioni di controllo. Questa memoria è costituita da un certo numero di registri, ciascuno dei

quali ha una funzione e una dimensione predefinita. Ognuno di loro può contenere un numero che di solito

è uguale per tutti i registri.

Il registro più importante è il contatore d’istruzioni, o Program Counter (PC), che punta alla successiva

istruzione che dovrà essere prelevata per l’esecuzione. Un altro registro particolarmente importante è il

registro istruzione corrente (IR), contenente l’istruzione che si trova in fase di esecuzione.

ORGANIZZAZIONE DELLA CPU

Nella CPU vi è una parte chiamata percorso dati (data path). Essa è composta dai registri, dalla ALU e da

alcuni bus che connettono fra loro le diverse parti.

I registri alimentano due registri di input della ALU che mantengono i dati d’ingresso della ALU mentre

questa è occupata nell’esecuzione di alcune computazioni.

La ALU esegue semplici operazioni sui suoi input generando un risultato che viene memorizzato in un

apposito registro di output. Questo valore può essere immagazzinato in un registro della CPU che può

essere copiato in un secondo momento.

Le istruzioni sono divise in due categorie principali: registro-memoria e registro-registro. Le prime

permettono di prelevare parole di memoria per portarle all’interno dei registri, altre permettono di copiare

i valori dei registri nella memoria.

L’altra classe d’istruzione è quella registro-registro che permette di prelevare due operandi dai registri.

Il processo che consiste nel portare i due operandi attraverso la ALU e nel memorizzare il risultato è

chiamato ciclo del percorso dati e rappresenta il cuore della maggior parte della CPU.

ESECUZIONE DELL’ISTRUZIONE

La CPU esegue ogni istruzione compiendo una serie di piccoli passi che, in linea generale, possono essere

descritti nel seguente modo:

1. Prelevare la successiva istruzione dalla memoria per portarla nell’IR.

2. Modificare il PC per farlo puntare all’istruzione seguente.

3. Determinare il tipo dell’istruzione appena prelevata.

4. Se l’istruzione usa una parola in memoria, determinare dove si trova.

5. Se necessario, prelevare la parola per portarla in un registro della CPU.

6. Eseguire l’istruzione.

7. Tornare al punto 1 per iniziare l’esecuzione dell’istruzione successiva.

Spesso ci si riferisce a questa sequenza di passi con il termine di ciclo esecutivo delle istruzioni, o ciclo di

prelievo-decodifica-esecuzione.

MEMORIA PRINCIPALE

La memoria è quella parte del calcolatore in cui sono depositati programmi e dati. Viene anche chiamata

con il termine store o storage.

L’unità base della memoria è la cifra binaria, chiamata bit. Un bit può avere valore 0 oppure 1 ed è l’unità

più semplice possibile.

Le memorie sono costituite da un certo numero di celle (o locazioni) ciascuna delle quali può memorizzare

informazioni. Ciascuna cella ha un numero, chiamato indirizzo, attraverso il quale il programma può riferirsi

a essa. Se una memoria ha n celle, i suoi indirizzi varieranno da 0 a n-1. Tutte le celle di memoria

contengono lo stesso numero di bit.

La cella rappresenta la più piccola unità indirizzabile; negli ultimi anni quasi tutte sono impostate a una

dimensione pari a un byte. I byte sono raggruppati in parole.

ORDINAMENTO DEI BYTE

All’interno di una parola i byte possono essere numerati da sinistra a destra oppure da destra a sinistra.

Il sistema in cui la numerazione va da sinistra verso destra è chiamato big endian.

Il sistema in cui la numerazione va da destra verso sinistra little endian.

Con questi ordinamenti vi è un problema di trasmissione poiché non vi è uno standard tra le varie

macchine.

MEMORIA CACHE

Storicamente le CPU sono sempre state più veloci delle memorie: quando la CPU lancia una richiesta alla

memoria, essa non ottiene la parola desiderata se non dopo molti cicli di CPU. Più lenta è la memoria, più

cicli dovrà attendere la CPU.

Ci sono delle tecniche interessanti che permettono di combinare una piccola quantità di memoria veloce

con una grande quantità di memoria lenta al fine di ottenere a un prezzo modesto sia la velocità della

memoria veloce sia la capacità della memoria grande. Questa piccola e veloce memoria è chiamata cache.

Le parole di memoria usate di frequente sono mantenute all’interno della cache. L’uso della memoria di

cache è basato sul principio di località del codice: i programmi non accedono alla memoria a caso. Infatti

l’idea generale prevede che quando una parola viene referenziata, la parola stessa e alcune parole vicine

sono portate dalla memoria all’interno della cache, in modo che sia possibile accedervi velocemente in un

secondo momento.

Le memorie centrali e le cache sono divise in blocchi di grandezza fissa per trarre vantaggio dal principio di

località. Solitamente quando si parla di questi blocchi all’interno della cache, ci si riferisce a essi con il

termine linea di cache.

PROBLEMI DELLA CACHE:

- Dimensione: più grande è, migliori sono le sue prestazioni, ma anche il suo costo è maggiore.

- Dimensione della linea di cache: una cache da 16KB può essere infatti divisa in 1024 linea di 16byte,

2048 linee di 8 byte…

- Come tener traccia: organizzazione della cache in un dato momento.

- Cache unificata: implica una progettazione più semplice e bilancia automaticamente i prelievi delle

istruzioni e dei dati. Oggi si tende a favorire la cache specializzata in cui le istruzioni sono

memorizzata in una cache e i dati in un’altra.

- Numero di cache: oggi non è raro avere chip con una cache primaria sul chip, una secondaria su un

altro chip e una terza cache ancora più lontana.

MEMORIA SECONDARIA

GERARCHIE DI MEMORIA


ACQUISTATO

2 volte

PAGINE

19

PESO

903.69 KB

AUTORE

icaf

PUBBLICATO

+1 anno fa


DETTAGLI
Corso di laurea: Corso di laurea in informatica
SSD:
Università: Torino - Unito
A.A.: 2015-2016

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher icaf di informazioni apprese con la frequenza delle lezioni di Architettura degli elaboratori e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Torino - Unito o del prof Gaeta Rossano.

Acquista con carta o conto PayPal

Scarica il file tutte le volte che vuoi

Paga con un conto PayPal per usufruire della garanzia Soddisfatto o rimborsato

Recensioni
Ti è piaciuto questo appunto? Valutalo!

Altri appunti di Architettura degli elaboratori

Architettura Degli Elaboratori
Appunto
Riassunto esame Interazione Uomo Macchina, prof. Sacco Giovanni
Appunto
Ricerca operativa - Problemi di mix
Esercitazione
Riassunto esame Basi di dati multimediali, prof. Sapino
Appunto