Sei sulla pagina 1di 37

Dipartimento di Scienze Umanistiche

Architettura del Calcolatore


LABORATORIO DI TRADUZIONE ASSISTITA APPLICATA
a.a. 2022/2023

Prof. Arianna Pipitone


Architettura di un calcolatore

➢ Il calcolatore è:
▪ uno strumento programmabile per rappresentare,
memorizzare ed elaborare informazioni
▪ un sistema, costituito da molte componenti
➢ Studiare l’architettura di un sistema
significa:
▪ individuare ciascun componente del sistema
▪ individuare le funzioni di ciascuna componente
▪ comprendere i principi generali di funzionamento del
componente
▪ comprendere come le varie componenti interagiscono
Architettura di un calcolatore
➢ La prima decomposizione di un calcolatore è
relativa a due macro-componenti:
▪ Hardware
▪ Software
• Software di base per la gestione del sistema
• Software applicativo per l’uso del sistema
(si appoggia al software
di base)
Architettura del calcolatore: le funzioni
➢ Funzioni di base che un calcolatore deve assolvere:
▪ Trasferimento: spostamento dei
dati da una componente all’altra
▪ Scambio dati con l’utente:
passaggio da rappresentazione
esterna ed interna
▪ Elaborazione: esecuzione di calcoli
per assolvere ad una richiesta
▪ Controllo: esercitato dal
supervisore, per la gestione delle
varie componenti e la loro
interazione
▪ Memorizzazione: archiviazione
persistente delle informazioni
Come le componenti assolvono le funzioni?

➢ Le varie componenti eseguono le funzioni associate


ad esse tramite specifiche elaborazioni delle
informazioni.

➢ Ogni componente esegue un insieme di passi


specificati a priori per assolvere il compito che gli è
stato assegnato.

➢ La specifica dei passi è genericamente nota come


algoritmo.
Gli algoritmi
➢ Un algoritmo è il procedimento da seguire per
raggiungere un certo obiettivo.
➢ Ciò vale in qualsiasi ambito, non prettamente
informatico.
➢ Un algoritmo descrive a colui che è preposto
ad un dato compito, quali operazioni devono
essere eseguite per portare a termine il
compito assegnato.
▪ Es: una ricetta di cucina, le istruzioni per montare un
mobile, o preparare il caffè
Gli algoritmi
➢ Elementi essenziali di un algoritmo sono:
▪ Dati: ciò che deve essere elaborato (gli ingredienti di una ricetta, lo
strumento da montare nelle specifiche di un manuale, la caffettiera
ed il caffè nella preparazione della bevanda).
▪ Istruzioni semplici: i singoli passi che devono essere compiuti sui
dati:
• rompere le uova;
• sbattere le uova.
▪ Istruzioni complesse: combinazione di
più istruzioni semplici (in una ricetta
che dice solo di montare a neve gli
albumi, si individua l’istruzione
complessa che richiede di romperle,
separare tuorli ed albumi e poi
montare questi).
Gli algoritmi e l’informatica

➢ L’insieme di istruzioni complesse in ambito


informatico definisce un programma.
➢ Programma è il termine che fa riferimento agli
algoritmi che risolvono problemi tramite
l’elaborazione elettronica dei dati. Fa parte del
macro componente software.
➢ Un programma è ciò che ogni componente del
calcolatore esegue per assolvere la sua funzione
➢ Useremo i termini algoritmo e programma
indifferentemente.
Gli algoritmi e l’informatica

➢ Individuiamo degli elementi essenziali nello


svolgimento dei programmi da parte delle
componenti:
▪ Dati (gli ingredienti)
▪ Istruzioni/Comandi (i passi da compiere nella ricetta)
▪ Indirizzi (dove prendiamo gli ingredienti? A che passo
della ricetta siamo?)
Architettura di Von Neumann (ca. 1946)
➢ Architettura a “programma
memorizzato”
▪ Dati e istruzioni dei programmi sono
informazione e quindi vanno
opportunamente codificati come bit e
memorizzati nello stesso luogo
▪ L’unità centrale di elaborazione (CPU) si
preoccupa di prelevare dalla memoria dati
o istruzioni in momenti e contesti diversi
▪ Detta anche “Macchina” di Von Neumann
che realizzò così il primo calcolatore
elettronico secondo questo paradigma
Architettura di Von Neumann
➢ CPU (Central Processing Unit), o Processore
▪ svolge le elaborazioni e il trasferimento dei dati in memoria, quindi
esegue i programmi.
▪ Svolge anche le funzioni di controllo dell’esecuzione
▪ Ogni istruzione viene processata allo stesso modo, secondo il ciclo-
macchina: prelevamento → decodifica → esecuzione (fetch, decode,
execute)
Architettura di Von Neumann
➢ Memoria centrale
▪ E’ un insieme di celle (come in un archivio cartaceo)
▪ Una cella ha un indirizzo ed è la minima unità indirizzabile
▪ Per gli indirizzi si usano configurazioni di bit
Architettura di Von Neumann
➢ Memoria centrale
▪ Una cella ha un
indirizzo ed un
contenuto
▪ Esiste un apposito
spazio che contiene
tutti questi indirizzi
Architettura di Von Neumann
➢ Periferiche
▪ Sono usate per far comunicare il calcolatore con l'esterno (in
particolare con l’utente)
▪ Non fanno parte della Macchina di Von Neumann, ma vi
sono connesse attraverso le interfacce di I/O
Architettura di Von Neumann
➢ Periferiche - Memoria secondaria (o di massa)
▪ Dischi, nastri, CD, DVD
▪ Memorizza grandi quantità di informazioni, ma è lenta:
accesso in msec. contro nsec. della RAM – rapporto di 106
▪ Persistente: Le informazioni non si perdono spegnendo la
macchina
Architettura di Von Neumann
➢ Bus di sistema
▪ Interconnette le componenti interne del calcolatore
• CPU, memoria ed interfacce a periferiche
▪ Collega due unità funzionali alla volta
• una trasmette e l’altra riceve: funzionamento master/slave
• la CPU (master) seleziona la connessione da attivare e ordina il
trasferimento dei dati
Architettura di Von Neumann
➢ Bus di sistema
▪ Distinguiamo funzionalmente tre bus
• BUS DATI (per istruzioni e dati dei programmi)
• BUS INDIRIZZI (per accedere alle celle di memoria)
• BUS CONTROLLI (per trasmettere i comandi)
CPU
Unità centrale di elaborazione
➢ L’unità centrale di elaborazione è realizzata fisicamente sotto forma di
microprocessore (chip)
➢ I microprocessori sono dispositivi elettronici molto complessi, composti
da milioni di dispositivi elementari detti transistor
▪ Transistor: interruttore elettronico atto
a realizzare il funzionamento di “1 bit”
(assume stato 0 o 1).
➢ Costituita da
▪ Unità di controllo (CU)
▪ Unità Aritmetico-Logica (ALU)
▪ Registri

➢ Vere e proprie unità centrali contenute


in un unico CHIP
Chip
➢ Il chip è una piastrina di silicio di alcuni
millimetri di lato sulla quale vengono incise,
con particolari tecnologie, molte migliaia di
circuiti a transistor
➢ I circuiti sono integrati alla piastrina
Elementi della CPU
➢ Unità di controllo (CU)
▪ Svolge funzioni di controllo, decide quali istruzioni
eseguire.
➢ Unità aritmetico logica (ALU)
▪ esegue le operazioni aritmetico-logiche (+, -, *, /,
confronti).
➢ Registri
▪ memoria ad alta velocità usata per risultati temporanei
e informazioni di controllo;
▪ il valore massimo memorizzabile in un registro è
determinato dalle dimensioni del registro.
Elementi della CPU
Registri
➢ Esistono registri di uso generico e registri specifici
▪ PC: contatore delle istruzioni (Program Counter)
• i bit del PC indicano l’indirizzo della prossima istruzione da eseguire
▪ IR: registro delle istruzioni (Instruction Register)
• i bit del IR indicano l’istruzione che deve essere eseguita
ALU
➢ L'Unità Aritmetico-Logica (ALU) è costituita da un
insieme di circuiti in grado di svolgere le operazioni di
tipo aritmetico e logico

➢ La ALU legge i valori presenti in alcuni registri,


esegue le operazioni e memorizza il risultato in un
altro registro
ALU
ALU
ALU
ALU
Ciclo di esecuzione delle istruzioni

➢ La CPU esegue un’istruzione mediante le tre


seguenti operazioni di base:
▪ Fetch (lettura)
▪ Decode (decodifica)
▪ Execute (esecuzione)

➢ Un programma è eseguito applicando ad ogni


istruzione la sequenza fetch-decode-execute,
detta ciclo di esecuzione dell’istruzione o
ciclo macchina o ciclo fetch-decode-execute
Ciclo di esecuzione delle istruzioni (FDE)
Ricordiamo che l’IR contiene l’istruzione attualmente in esecuzione, mentre il
PR l’indirizzo dell’istruzione successiva da eseguire.

1) FETCH (F):
- si accede alla prossima istruzione, riferita dal registro contatore dell’istruzione
(PC)
- si porta tale istruzione dalla memoria centrale al Registro Istruzioni (IR);
quindi questa diviene l’istruzione attualmente in corso.
2) DECODE (D): (decodifica)
- Si identifica l’istruzione ed i dati sui quali compiere la stessa
- Si trasferiscono i dati nei registri opportuni.
3) EXECUTE (E):
- Si esegue l’istruzione sui dati;
- Si incrementa il PC di 1.
Pipeling

➢ La sequenzialità delle operazioni di fetch-


decode-execute è nota come pipeling
➢ PROBLEMA: il pipeling causa degli stati di
attesa in molti organi dell’unità centrale
▪ Per esempio, gli organi preposti alla fase fetch
rimangono inattivi mentre vengono eseguite le fasi di
decode ed execute
➢ Una sequenzialità implica sempre attesa
delle parti non attive in un dato momento
Parallelismo delle operazioni

➢ Lo stato inattivo tipico del pipeling può venire


superato se gli organi preposti alle varie
funzioni possono operare
contemporaneamente
▪ Mentre viene decodificata una istruzione, può intanto
essere prelevata la successiva (pre fetch)
➢ PARALLELISMO DELLE OPERAZIONI
Parallelismo delle operazioni
➢ Altri stati di attesa possono determinarsi durante il trasferimento
dei dati fra CPU e periferiche (interfaccia I/O)

➢ Si ovvia a questo problema svincolando l’unità centrale


dall’attesa al completamento del trasferimento dei dati, e
facendola operare indipendentemente da esso.
➢ I dati vengono memorizzati in una MEMORIA DI TRANSITO o
BUFFER
Si risolve un problema… se ne crea un altro…
➢ Si sono risolti i problemi relativi al pipeling ed alle
periferiche I/O grazie al parallelismo delle operazioni,
MA…
➢ …senza una gestione dei tempi, si corre il rischio che
avvengano sovrapposizioni e sfasature:
▪ In fase di pre fetch, se le fasi intanto in parallelo richiedono
troppo tempo, si corre il rischio che l’istruzione caricata non
possa essere mandata in esecuzione, e venga quindi sovrascritta
da quella successiva, causando errori
▪ Se ho un grosso file che mi impegna la periferica, il buffer
potrebbe essere impegnato ed inutilizzabile.
Sincronizzazione
➢ Si devono sincronizzare le operazioni svolte in parallelo

➢ A questo scopo nella CPU è integrato un orologio (Timer o


Clock) che scandisce degli intervalli di tempo costanti

➢ Le varie componenti della CPU usano tali intervalli per


sincronizzarsi fra loro

➢ L’intervallo di tempo scandito dall’orologio corrisponde


generalmente al tempo necessario per svolgere le operazioni
base della CPU (CICLO MACCHINA)
Clock
➢ Si misura in cicli/secondo [Hz] (quanti cicli in un
secondo)
• 400 MHz = 400x106 Hz = 4x108 Hz
⇒ il ciclo è eseguito in 2.5 x 10-9 s = 2.5ns
➢ Ad ogni impulso di clock si esegue un ciclo macchina
➢ la velocità di un microprocessore dipende dalla frequenza
del suo clock, ma non solo poiché l’esecuzione di
un’istruzione può richiedere più cicli
Caratteristiche dei microprocessori
➢ Repertorio di istruzioni (configurazioni di bit)
▪ L’insieme delle istruzioni in bit che costituiscono il linguaggio macchina del
processore
➢ Frequenza di clock
➢ Ampiezza del bus
▪ Numero di bit che possono essere trasferiti nel bus interno del processore
• Processori a 32 bit, a 64 bit …
▪ Influenza tutta la macchina di Von Neumann
➢ Co-processori
▪ Processori specializzati per operazioni complesse (es: co-processore matematico
o grafico)
➢ Dimensioni e struttura della memoria cache

Potrebbero piacerti anche