Appunti Ed Esercizi Di Calcolatori Elettronici Pietroleonardo-Stroppa

Calcolatore per Esercizi di Calcolatori Elettronici

Risultato Principale

Appunti ed Esercizi di Calcolatori Elettronici: Guida Completa

I calcolatori elettronici rappresentano il fondamento dell’informatica moderna. Questa guida completa, ispirata agli insegnamenti del prof. Pietro Leonardo Stroppa, copre tutti gli aspetti essenziali per comprendere e risolvere esercizi su architetture dei calcolatori, sistemi di numerazione, algebra booleana e organizzazione della memoria.

1. Sistemi di Numerazione e Conversioni

1.1. Sistema Binario

Il sistema binario è la base di tutti i calcolatori digitali. Utilizza solo due cifre: 0 e 1, chiamate bit (binary digit). Ogni gruppo di 8 bit forma un byte, che può rappresentare 256 valori diversi (28).

  • Conversione da decimale a binario: Dividere ripetutamente per 2 e annotare i resti
  • Conversione da binario a decimale: Moltiplicare ogni bit per 2n (dove n è la posizione da destra, partendo da 0) e sommare
  • Binario con segno: Il bit più significativo (MSB) rappresenta il segno (0=positivo, 1=negativo)
Sistema Base Cifre Utilizzate Esempio (valore 10)
Binario 2 0, 1 1010
Ottale 8 0-7 12
Decimale 10 0-9 10
Esadecimale 16 0-9, A-F A

1.2. Esercizi Pratici

Per esercitarsi con le conversioni:

  1. Convertire 197 in binario (risultato: 11000101)
  2. Convertire 10110101 binario in decimale (risultato: 181)
  3. Convertire 255 in esadecimale (risultato: FF)
  4. Rappresentare -45 in binario con 8 bit usando complemento a due

2. Algebra Booleana e Porte Logiche

2.1. Operatori Booleani Fondamentali

L’algebra booleana opera su variabili binarie (0 o 1) con tre operatori principali:

  • AND (∧): 1 solo se entrambi gli operandi sono 1
  • OR (∨): 1 se almeno un operando è 1
  • NOT (¬): Inverte il valore (0→1, 1→0)
Porta Simbolo Tabella di Verità Espressione
AND & 0 0=0
0 1=0
1 0=0
1 1=1
A ∧ B
OR ≥1 0 0=0
0 1=1
1 0=1
1 1=1
A ∨ B
NOT O 0=1
1=0
¬A

2.2. Porte Logiche Derivate

Dalle porte fondamentali derivano altre porte utili:

  • NAND: NOT AND – Universale (può implementare qualsiasi funzione)
  • NOR: NOT OR – Universale
  • XOR: 1 se gli input sono diversi
  • XNOR: 1 se gli input sono uguali

2.3. Esercizi di Progettazione

Progettare i seguenti circuiti:

  1. Half Adder (sommatore di 1 bit senza riporto)
  2. Full Adder (sommatore di 1 bit con riporto)
  3. Decodificatore 2:4 (2 input, 4 output)
  4. Multiplexer 4:1 (4 input, 1 output, 2 selettori)

3. Architettura della CPU

3.1. Componenti Principali

Una CPU moderna è composta da:

  • Unità di Controllo (CU): Gestisce l’esecuzione delle istruzioni
  • Unità Aritmetico-Logica (ALU): Esegue operazioni matematiche e logiche
  • Registri: Memoria ultra-veloce per dati temporanei
  • Cache: Memoria intermedia tra CPU e RAM
  • Bus: Canali di comunicazione (dati, indirizzi, controllo)

3.2. Ciclo di Istruzione

Ogni istruzione segue questo ciclo:

  1. Fetch: Prelevamento dell’istruzione dalla memoria
  2. Decode: Decodifica dell’istruzione
  3. Execute: Esecuzione dell’operazione
  4. Memory Access: Accesso alla memoria se necessario
  5. Write Back: Scrittura del risultato

3.3. Prestazioni della CPU

Le prestazioni si misurano con:

  • Clock Speed: Frequenza in GHz
  • IPC (Istruzioni per ciclo): Efficienza dell’architettura
  • MIPS: Milioni di istruzioni per secondo
  • FLOPS: Operazioni in virgola mobile per secondo

Formula per calcolare i MIPS:

MIPS = (Numero di Istruzioni) / (Tempo di Esecuzione × 106)

4. Gerarchia della Memoria

4.1. Livelli di Memoria

La gerarchia della memoria ottimizza costi e prestazioni:

  1. Registri: Nanosecondi, pochi byte
  2. Cache L1/L2/L3: 1-10 ns, KB-MB
  3. RAM: 50-100 ns, GB
  4. SSD: 25-100 μs, TB
  5. HDD: 5-10 ms, TB
  6. Memoria Secondaria: ms-s, TB-PB

4.2. Calcolo Indirizzamento

Per calcolare lo spazio di indirizzamento:

Spazio = 2n byte (dove n = numero di bit dell’indirizzo)

Esempio: con indirizzi a 32 bit → 232 = 4 GB

4.3. Esercizi di Memoria

  1. Calcolare quanti bit servono per indirizzare 16 GB di memoria
  2. Determinare la dimensione massima indirizzabile con 24 bit
  3. Calcolare il tempo medio di accesso in un sistema con:
    • Hit rate cache = 90%
    • Tempo accesso cache = 2 ns
    • Tempo accesso RAM = 100 ns

5. Risorse Accademiche Autorevoli

Per approfondire gli argomenti trattati, consultare queste risorse ufficiali:

6. Strategie per Risolvere gli Esercizi

6.1. Approccio Metodologico

  1. Comprendere il problema: Leggere attentamente la domanda
  2. Identificare i dati: Estrapolare tutte le informazioni utili
  3. Scegliere la formula: Selezionare quella appropriata
  4. Eseguire i calcoli: Step by step con attenzione alle unità di misura
  5. Verificare il risultato: Controllare la coerenza con le aspettative

6.2. Errori Comuni da Evitare

  • Confondere bit e byte (1 byte = 8 bit)
  • Dimenticare il segno nei numeri binari
  • Sbagliare l’ordine dei bit (MSB vs LSB)
  • Non considerare il complemento a due per numeri negativi
  • Unità di misura incoerenti (KB vs KiB)

6.3. Strumenti Utili

  • Calcolatrice scientifica con conversione di base
  • Simulatori di circuiti logici (Logisim, DigitalJS)
  • Fogli di calcolo per tabelle di verità complesse
  • Software di benchmark per misurare prestazioni reali

7. Esempi di Esami e Soluzioni

7.1. Esempio 1: Conversione e Aritmetica Binaria

Domanda: Convertire 1987 in binario, poi sommare 45 (in binario) al risultato.

Soluzione:

  1. 1987 in binario:
    • 1024 (210) → 1
    • 512 (29) → 1
    • 256 (28) → 1
    • 128 (27) → 1
    • 64 (26) → 1
    • 32 (25) → 0
    • 16 (24) → 0
    • 8 (23) → 0
    • 4 (22) → 1
    • 2 (21) → 1
    • 1 (20) → 1

    Risultato: 11111000111

  2. 45 in binario: 101101
  3. Allineamento: 11111000111 + 0000101101
  4. Somma binaria:
       11111000111
    +    101101
      -----------
       11111110000
  5. Risultato finale: 11111110000 (2032 in decimale)

7.2. Esempio 2: Progettazione Circuito Logico

Domanda: Progettare un circuito che implementi la funzione F = (A ∧ B) ∨ (¬A ∧ ¬B).

Soluzione:

  1. Costruire tabella di verità:
    A B A ∧ B ¬A ∧ ¬B F
    00011
    01000
    10000
    11101
  2. Riconoscere che F = 1 quando A=B (funzione XNOR)
  3. Implementazione con:
    • 2 porte AND
    • 2 porte NOT
    • 1 porta OR
    oppure semplicemente con una porta XNOR

Leave a Reply

Your email address will not be published. Required fields are marked *