Estratto del documento

Questo documento offre una trattazione organica e approfondita dei principi

che governano il funzionamento e la progettazione dei calcolatori elettronici.

Dall’algebra booleana che ne costituisce il fondamento matematico, fino alle

complesse architetture parallele che caratterizzano i processori moderni, ogni

argomento è stato affrontato con un approccio sistematico. L’obiettivo è fornire

una guida di livello accademico che non solo riassuma i concetti chiave, ma

li contestualizzi e li approfondisca, creando una solida base di conoscenza

sull’architettura dei sistemi di calcolo.

Capitolo 1: Introduzione ai Calcolatori Elettronici

1.1 Breve Storia del Calcolo Automatico

La storia dei calcolatori è un percorso che parte da semplici strumenti mec-

canici e arriva ai complessi dispositivi elettronici odierni. * Abaco: Uno dei

primi strumenti per il calcolo. * Pascalina (1642): Blaise Pascal inventa una

macchina calcolatrice meccanica capace di eseguire addizioni e sottrazioni. *

Macchina Analitica (1837): Charles Babbage progetta, ma non realizza com-

pletamente, la prima macchina calcolatrice programmabile, dotata di un’unità

di calcolo (mill) e una memoria (store). Ada Lovelace, collaboratrice di Bab-

bage, è considerata la prima programmatrice della storia. * Primi Calcolatori

Elettronici: Durante la Seconda Guerra Mondiale, nascono i primi calcolatori

elettronici come il Colossus (per decifrare i codici tedeschi) e l’ENIAC (per

calcoli balistici). Erano macchine enormi, basate su valvole termoioniche, e non

programmabili in senso moderno (la programmazione avveniva ricablando la

macchina).

1.2 L’Architettura di Von Neumann

La svolta concettuale arriva nel 1945 con John von Neumann, che definisce un

modello architetturale per un calcolatore a programma memorizzato. Questa

architettura, che è alla base di quasi tutti i calcolatori moderni, si fonda su tre

caratteristiche chiave:

1. Programma Memorizzato (Stored Program): Le istruzioni del

programma sono memorizzate nella stessa memoria utilizzata per i dati.

Questo rende il calcolatore universale e facilmente riprogrammabile.

2. Uso dell’Aritmetica Binaria: Tutte le informazioni (dati e istruzioni)

sono codificate in formato binario.

3. Struttura a Componenti: Il calcolatore è suddiviso in quattro compo-

nenti funzionali principali: 1

• CPU (Central Processing Unit): Il “cervello” del calcolatore. È

a sua volta composta da:

– ALU (Arithmetic Logic Unit): Esegue le operazioni arit-

metiche (somma, sottrazione) e logiche (AND, OR, NOT).

– CU (Control Unit): Interpreta le istruzioni del programma e

genera i segnali di controllo per coordinare le altre componenti.

– Registri: Piccole e velocissime unità di memoria interne alla

CPU, usate per memorizzare temporaneamente dati e indirizzi.

• Memoria Principale (RAM): Memorizza dati e istruzioni. È una

memoria volatile, veloce e ad accesso casuale (Random Access Mem-

ory).

• Periferiche di Input/Output (I/O): Permettono al calcolatore

di interagire con il mondo esterno (tastiera, mouse, monitor, dischi).

• Bus di Sistema: Un insieme di collegamenti elettrici che connette

tutte le componenti, permettendo lo scambio di dati, indirizzi e seg-

nali di controllo.

1.3 Rappresentazione dell’Informazione

Tutte le informazioni in un calcolatore sono rappresentate da sequenze di bit

(binary digit), che possono assumere valore 0 o 1. * Numeri Interi: * Senza

segno: Un numero a N bit può rappresentare valori da 0 a 2^N - 1. * Com-

plemento a 2: È la rappresentazione standard per i numeri interi con segno.

Un numero a N bit può rappresentare valori da -2^(N-1) a +2^(N-1) - 1. Il bit

più significativo (MSB) indica il segno (0=positivo, 1=negativo). Il vantaggio è

che la sottrazione si riduce a una somma. * Numeri Reali (Floating Point):

Lo standard più diffuso è l’IEEE 754, che rappresenta un numero in virgola

mobile tramite tre campi: segno, esponente e mantissa. * Caratteri: Codificati

tramite tabelle come ASCII (7/8 bit per carattere) o Unicode (es. UTF-8),

che supporta un insieme molto più vasto di caratteri.

Capitolo 2: Reti Logiche e Algebra Booleana

Il funzionamento fisico di un calcolatore si basa su circuiti elettronici digitali, il

cui comportamento è descritto matematicamente dall’algebra di Boole.

2.1 Algebra di Boole e Porte Logiche

L’algebra di Boole è un sistema algebrico in cui le variabili possono assumere

solo due valori, 0 (falso) e 1 (vero). Le operazioni fondamentali sono: * AND

(prodotto logico): Y è 1 solo se A e B sono entrambi 1. * OR

Y = A · B.

(somma logica): Y è 1 se almeno uno tra A e B è 1. * NOT

Y = A + B.

(negazione o complemento): Y è 1 se A è 0, e viceversa.

Y = ¬A.

Queste operazioni sono realizzate fisicamente da circuiti chiamati porte logiche

2

(AND, OR, NOT, NAND, NOR, XOR).

2.2 Reti Combinatorie

Una rete combinatoria è un circuito la cui uscita in un dato istante dipende

unicamente dagli ingressi in quello stesso istante. Non ha memoria. * Anal-

isi: Data una rete, derivare la sua funzione logica e la tabella di verità. *

Sintesi: Data una funzione logica, progettare il circuito corrispondente. Il pro-

cesso di sintesi include: 1. Minimizzazione: Semplificare la funzione logica

per ridurre il numero di porte necessarie. Uno strumento classico per la minimiz-

zazione manuale sono le Mappe di Karnaugh, che permettono di identificare

e raggruppare i termini adiacenti di una funzione booleana. 2. Realizzazione:

Implementare il circuito usando un set di porte logiche (es. solo porte NAND).

Esempi di circuiti combinatori sono il sommatore, il multiplexer (seleziona

uno tra più ingressi), il demultiplexer (invia l’ingresso a una tra più uscite) e

il decoder.

2.3 Reti Sequenziali

Una rete sequenziale è un circuito la cui uscita dipende non solo dagli ingressi

attuali, ma anche dalla storia passata degli ingressi. Possiede quindi uno stato

interno, ovvero ha memoria.

• Latch: È l’elemento di memoria fondamentale. Un Latch SR (Set-Reset)

è un semplice circuito con due stati stabili che può “ricordare” un bit.

• Flip-Flop: È un’evoluzione del latch, sincronizzato da un segnale di

clock. Cambia stato solo in corrispondenza di un fronte del segnale di

clock (es. fronte di salita). È l’elemento base per costruire registri e mem-

orie.

• Registri: Insiemi di flip-flop usati per memorizzare una parola di N bit

(es. un registro a 32 bit è composto da 32 flip-flop).

• Macchine a Stati Finiti (FSM): Un modello matematico per descrivere

il comportamento delle reti sequenziali. Una FSM è definita da un insieme

di stati, un insieme di ingressi, una funzione di transizione di stato e una

funzione di uscita.

Capitolo 3: Le Prestazioni di un Calcolatore

Valutare le prestazioni di un calcolatore è un compito complesso.

3.1 Metriche di Performance

• Tempo di Risposta (Response Time): Il tempo che intercorre tra

l’inizio e la fine di un’operazione. 3

• Throughput: Il numero totale di operazioni completate in un’unità di

tempo.

• Tempo di CPU: Il tempo che la CPU impiega effettivamente per

eseguire un programma. Si calcola come: Tempo di CPU = Numero di

Istruzioni * CPI * Periodo di Clock

– Numero di Istruzioni: Dipende dal programma e dal compilatore.

– CPI (Cycles Per Instruction): Il numero medio di cicli di clock

necessari per eseguire un’istruzione. Dipende dall’architettura della

CPU.

– Periodo di Clock (1 / Frequenza): La durata di un ciclo di clock.

Dipende dalla tecnologia hardware.

Migliorare le prestazioni significa ridurre il tempo di CPU, agendo su uno o più

di questi fattori.

3.2 Benchmark

I benchmark sono programmi standardizzati usati per misurare e confrontare le

prestazioni di sistemi diversi. Esempi noti sono i benchmark SPEC (Standard

Performance Evaluation Corporation).

3.3 Legge di Amdahl

La legge di Amdahl descrive il miglioramento massimo teorico delle prestazioni

di un sistema quando solo una parte di esso viene migliorata. Lo speedup

complessivo è limitato dalla frazione di tempo in cui il miglioramento non è

applicabile.

Speedup = 1 / [(1 - F) + (F / S)]

Dove è la frazione di tempo in cui il miglioramento è utilizzabile e è lo

F S

speedup ottenuto in quella frazione. La legge di Amdahl evidenzia che bisogna

concentrarsi sull’ottimizzazione del “caso comune” (il “collo di bottiglia”).

Capitolo 4: Architettura della CPU

4.1 Il Set di Istruzioni (ISA - Instruction Set Architecture)

L’ISA è l’interfaccia tra l’hardware e il software. Definisce il set di istruzioni che

la CPU può eseguire, i registri, i formati di indirizzamento, ecc. * CISC (Com-

plex Instruction Set Computer): Architetture con un set di istruzioni vasto

e complesso. Le istruzioni possono eseguire operazioni complesse in un singolo

passo (es. architettura x86). * RISC (Reduced Instruction Set Com-

puter): Architetture con un set di istruzioni piccolo, semplice e regolare. Ogni

istruzione esegue un’operazione elementare. Questo semplifica la progettazione

della CPU e favorisce tecniche come il pipelining (es. architetture ARM, MIPS).

4

4.2 Il Datapath e l’Unità di Controllo

Il datapath è la parte della CPU che contiene i circuiti per eseguire le istruzioni:

l’ALU, i registri, i bus interni. L’unità di controllo (CU) genera i segnali che

comandano il datapath, orchestrando il flusso di dati per eseguire l’istruzione

richiesta.

Il ciclo di esecuzione di un’istruzione si articola in fasi: 1. Fetch: L’istruzione

viene prelevata dalla memoria all’indirizzo indicato dal Program Counter (PC).

2. Decode: L’unità di controllo decodifica l’istruzione per capire cosa fare.

3. Execute: L’ALU esegue l’operazione richiesta. 4. Memory: Eventuale

accesso alla memoria (lettura o scrittura). 5. Write-back: Il risultato viene

scritto in un registro.

4.3 Pipelining

Il pipelining è una tecnica fondamentale per migliorare le prestazioni della CPU.

Sovrappone l’esecuzione di più istruzioni, dividendo il ciclo di esecuzione in stadi

(es. le 5 fasi sopra). Mentre un’istruzione è in fase di Execute, l’istruzione

successiva è in fase di Decode e quella dopo ancora in fase di Fetch.

In una pipeline ideale a N stadi, il throughput si avvicina a 1 istruzione per

ciclo di clock (CPI � 1), con uno speedup teorico di N.

Criticità (Hazard) della Pipeline: * Hazard Stru

Anteprima
Vedrai una selezione di 3 pagine su 7
Miei appunti personali presi con latex di Calcolatori elettronici Pag. 1 Miei appunti personali presi con latex di Calcolatori elettronici Pag. 2
Anteprima di 3 pagg. su 7.
Scarica il documento per vederlo tutto.
Miei appunti personali presi con latex di Calcolatori elettronici Pag. 6
1 su 7
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Ingegneria industriale e dell'informazione ING-INF/01 Elettronica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher nicolo.cazzato di informazioni apprese con la frequenza delle lezioni di Calcolatori elettronici e laboratorio 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 Modena e Reggio Emilia o del prof Cucchiara Rita.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community