Estratto del documento

D

entra in non proviene dallo shift, ma è calcolato tramite una funzione

0

di retroazione lineare, cioè lo XOR di alcuni dei bit del registro. L’uscita

D

dell’LFSR è il valore di .

n−1

3.4 Automi finiti

Una rete sequenziale sincrona ha stati interni e cambia stato a ogni clock in

base agli ingressi. Il suo comportamento si descrive con un automa finito,

definito da stati, ingressi, uscite e da una funzione di transizione che indica,

per ogni stato e ingresso, il prossimo stato e l’uscita. Questo può essere

rappresentato con un diagramma degli stati, dove i nodi sono gli stati e gli

archi mostrano le transizioni etichettate “ingresso | uscita”. Alcune reti, come

contatori e registri a scorrimento, sono autonome: non hanno ingressi (oltre al

clock), quindi il prossimo stato dipende solo dallo stato corrente. In tali

diagrammi, da ogni stato parte un unico arco e la sequenza degli stati risulta

necessariamente periodica, eccetto un’eventuale fase iniziale di transizione.

Il funzionamento dell’automa qui sopra può essere così descritto: se l’automa

si trova nello stato interno S1 e riceve l’ingresso X, si sposta nello stato S2

producendo l’uscita Z.

Memorie RAM

Un dispositivo di memorizzazione deve mantenere nel tempo il proprio valore,

(t)=out(t−1)

out

cioè realizzare il comportamento: (t)=¿ (t−1)

out

Un D-FF invece replica il valore dell’ingresso precedente:

Per ottenere una cella di memoria da 1 bit, si collega l’uscita del D-FF al suo

stesso ingresso, passando però attraverso un multiplexer controllato da un

segnale load.

load = 1,

Se il valore esterno in viene caricato nella cella.

 load = 0,

Se la cella mantiene il proprio contenuto perché l’ingresso

 riceve l’uscita precedente.

Lo stesso risultato si ottiene dando al D-FF un ingresso di abilitazione

(Enable): quando Enable = 1, il flip-flop accetta il valore D; quando Enable

= 0, il flip-flop ignora il clock e rimane invariato. Questa funzione si

implementa facendo passare il clock attraverso una porta AND con il

segnale di abilitazione.

Una volta costruita una cella capace di ricordare 1 bit, è possibile creare

registri che memorizzano parole di più bit e, successivamente, costruire

banchi di memoria (RAM) di qualsiasi dimensione.

Una RAM è composta da 2ᵏ registri,

ciascuno formato da h flip-flop, così da memorizzare parole di h bit. Ogni

registro è una cella di memoria e possiede un indirizzo di k bit che ne

identifica la posizione. I parametri fondamentali di una RAM sono quindi:

h: larghezza della parola (es. 32 o 64 bit)

 2ᵏ: numero totale di parole memorizzabili

 La RAM è detta ad accesso casuale perché qualsiasi parola deve essere

raggiungibile direttamente e con la stessa velocità, indipendentemente

dalla posizione. Per ottenere questo:

un decoder attivato dall’indirizzo abilita il singolo registro da scrivere

 (scrittura → load = 1);

un multiplexer seleziona, sempre in base all’indirizzo, quale registro

 inviare in uscita (lettura).

L’uscita della RAM mostra immediatamente il contenuto della cella

indirizzata, mentre una scrittura aggiorna il registro selezionato al ciclo di

clock successivo.

3.5 Tecnologie per le memorie

Le memorie RAM moderne si dividono principalmente in DRAM e SRAM.

DRAM (Dynamic RAM) memorizza ciascun bit tramite un condensatore e

 un transistor. Il condensatore conserva una carica che rappresenta 0 o 1,

mentre il transistor permette di leggere o modificare tale carica. Poiché è

economica da produrre, la DRAM è il tipo di RAM più diffuso nei computer.

Deve però essere periodicamente ricaricata, perché la carica dei

condensatori tende a disperdersi.

SRAM (Static RAM) utilizza flip-flop per memorizzare ogni bit. Non richiede

 ricariche periodiche, è più veloce e consuma meno energia, ma è più

costosa e richiede più area sul chip. Per questo è usata soprattutto nelle

cache della CPU.

Entrambi i tipi sono volatili, cioè perdono i dati quando manca

alimentazione.

La ROM, al contrario, memorizza i dati modificando in modo permanente

certi transistor, così da non perdere i contenuti. Le varianti riscrivibili come

EEPROM e flash permettono di aggiornare i dati mantenendo comunque la

persistenza. Queste memorie non volatili (NVRAM) includono chiavette

USB, schede di memoria e SSD.

Memorie ROM

Quando il programma e alcuni dati devono rimanere memorizzati anche

quando il calcolatore viene spento si usano memorie ad accesso diretto di

sola lettura chiamate ROM (Read-Only Memory) che non possono essere

modificate o cancellate. In effetti la ROM, non è una rete sequenziale, ma

combinatoria: essa infatti risponde ai valori delle variabili in ingresso che

specificano l’indirizzo di una cella con i valori delle variabili di uscita che

rappresentano il contenuto (immutabile) di tale cella. Dal punto di vista

costruttivo le ROM utilizzano una decodificatore ed una matrice

contenente porte OR su tutti gli incroci riga/colonna, dove le righe sono le

uscite del decodificatore e le colonne sono le variabili di uscita.

4 Architettura del calcolatore

4.1 Introduzione

L’architettura del set di istruzioni o ISA corrisponde al modello di

programmazione di un processore visto dal programmatore e comprende

le istruzioni, il modello di esecuzione, i registri del processore, i formati

degli indirizzi e dei dati.

La microarchitettura invece è il modo in cui una determinata ISA viene

implementata in un particolare processore. La microarchitettura

comprende le parti (reti logiche) costitutive del processore e il modo in cui

queste si interconnettono e interagiscono per implementare l’ISA.

4.2 Il concetto di programma memorizzato

La versatilità del calcolatore è ciò che lo distingue dalle altre macchine,

esso è infatti in grado di operare in campi molto differenti esprimendo un

numero quasi infinito di funzioni. Questa flessibilità è permessa dal

concetto di programma memorizzato (Von Neumann).

Il calcolatore si basa su una piattaforma hardware fissa, in grado di

eseguire un repertorio fisso di istruzioni. Queste istruzioni possono essere

utilizzate e combinate come blocchi di costruzione, dando vita a

programmi arbitrariamente sofisticati. Il programma viene invece posto

nella memoria centrale del calcolatore, proprio come i dati, diventando il

cosiddetto "software".

4.3 La microarchitettura

Suddivisa in:

4.3.1 Memoria

Il termine memoria si riferisce all’insieme dei dispositivi hardware che

memorizzano dati e istruzioni in un calcolatore.

Sebbene dati e istruzioni abbiano funzioni diverse, entrambi sono

rappresentati come numeri binari e memorizzati nello stesso tipo di

struttura: un vettore (array) di celle a larghezza fissa chiamate parole o

locazioni, ciascuna con un indirizzo unico. Ogni parola si identifica quindi

tramite il suo indirizzo di memoria.

Dati

Quando vengono tradotti in linguaggio macchina, diventano numeri binari

memorizzati nella memoria del calcolatore. Una volta selezionata una

singola parola dalla memoria specificandone l’indirizzo, questa può essere

letta o scritta. Nel primo caso, si recupera il valore della parola. Nel

secondo caso, si memorizza un nuovo valore nella posizione selezionata,

cancellando il vecchio valore.

Istruzioni

Le istruzioni, scritte in linguaggio macchina, dicono alla CPU quali

operazioni svolgere, come calcoli, accessi alla memoria e salti

condizionati. Un programma tradotto in linguaggio macchina diventa una

sequenza di parole binarie memorizzate nella memoria. Quest’ultima

contiene sia dati sia istruzioni: nell’architettura Harvard essi sono separati

in memorie diverse, mentre nell’architettura di Von Neumann sono

conservati insieme nella stessa memoria.

4.3.2 CPU

L’unità di elaborazione centrale (Central Processing Unit) è il fulcro

dell’architettura del calcolatore e ha il compito di eseguire le istruzioni del

programma attualmente caricato in memoria. È in grado di eseguire un

insieme fisso di operazioni elementari come operazioni aritmetico-logiche,

operazioni di accesso alla memoria e operazioni di controllo.

La CPU esegue questi compiti utilizzando tre elementi hardware principali:

ALU, un banco dei registri e unità di controllo.

4.3.2.1 Unità aritmetico e logica

L’unità aritmetica e logica è costruita per eseguire tutte le operazioni

aritmetiche e logiche di basso livello presenti nel calcolatore. Per esempio

la somma di due numeri.

4.3.2.2 Registri

L’accesso alla memoria è lento e richiede istruzioni lunghe, quindi i

processori utilizzano registri interni alla CPU, molto più veloci perché non

richiedono il bus e sono fisicamente sul chip. I registri sono pochi ma

permettono istruzioni più compatte, dato che bastano pochi bit per

identificarli.

Registri dati

Questi registri forniscono alla CPU servizi di memoria a breve termine. Ad

esempio, quando si calcola il valore di (a – b) + c, bisogna prima calcolare

e ricordare il valore di (a – b).

Registro del contatore di programma

program counter

Il (PC) è un registro speciale della CPU che contiene

l’indirizzo della prossima istruzione da eseguire. Durante l’esecuzione, la

CPU lo aggiorna automaticamente: lo incrementa per passare all’istruzione

successiva oppure lo sostituisce con un nuovo indirizzo quando l’istruzione

corrente richiede un salto o una diramazione.

4.3.2.3 Unità di controllo

Un’istruzione del calcolatore è rappresentata come un codice binario,

tipicamente di 16 o 32 bit. Prima di poter essere eseguita, l’istruzione

deve essere decodificata e le informazioni in essa devono essere

trasmesse. La decodifica dell’istruzione viene eseguita dall’unità di

controllo.

Ciclo di esecuzione fetch–decode–execute:

La CPU funziona attraverso un ciclo continuo

preleva un’istruzione dalla memoria, la decodifica ed esegue le operazioni

richieste. Durante questo processo decide anche quale sarà la prossima

istruzione da eseguire.

4.3.3 Ingresso e uscita

I computer usano molti dispositivi di input/output (come tastiere, schermi

e stampanti), ciascuno diverso e complesso. Per semplificarne la gestione,

si utilizza l’I/O mappato in memoria, che fa apparire ogni periferica come

una porzione di memoria. A ogni dispositivo viene assegnata una propria

area di memoria: per gli input questa area riflette lo stato fisico del

dispositivo, mentre per gl

Anteprima
Vedrai una selezione di 11 pagine su 48
Appunti Fondamenti di informatica  Pag. 1 Appunti Fondamenti di informatica  Pag. 2
Anteprima di 11 pagg. su 48.
Scarica il documento per vederlo tutto.
Appunti Fondamenti di informatica  Pag. 6
Anteprima di 11 pagg. su 48.
Scarica il documento per vederlo tutto.
Appunti Fondamenti di informatica  Pag. 11
Anteprima di 11 pagg. su 48.
Scarica il documento per vederlo tutto.
Appunti Fondamenti di informatica  Pag. 16
Anteprima di 11 pagg. su 48.
Scarica il documento per vederlo tutto.
Appunti Fondamenti di informatica  Pag. 21
Anteprima di 11 pagg. su 48.
Scarica il documento per vederlo tutto.
Appunti Fondamenti di informatica  Pag. 26
Anteprima di 11 pagg. su 48.
Scarica il documento per vederlo tutto.
Appunti Fondamenti di informatica  Pag. 31
Anteprima di 11 pagg. su 48.
Scarica il documento per vederlo tutto.
Appunti Fondamenti di informatica  Pag. 36
Anteprima di 11 pagg. su 48.
Scarica il documento per vederlo tutto.
Appunti Fondamenti di informatica  Pag. 41
Anteprima di 11 pagg. su 48.
Scarica il documento per vederlo tutto.
Appunti Fondamenti di informatica  Pag. 46
1 su 48
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher mattiavi06 di informazioni apprese con la frequenza delle lezioni di Fondamenti di informatica e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Udine o del prof Fusiello Andrea.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community