Livelli di un computer

Un computer è una macchina programmabile, tuttavia non è direttamente utilizzabile da parte degli utente poiché richiederebbe la conoscenza sull'organizzazione fisica della macchina considerata e del suo linguaggio macchina. Il linguaggio di una macchina è diverso tra macchine diverse. E tale linguaggio è estremamente esteso e complesso. Un programma risiede in memoria ed è fatto da una sequenza di bit, l'unico modo per comprenderlo è creare una rappresentazione simbolica delle istruzioni macchina.

Il linguaggio macchina è generalmente identificato con il nome di assembler:
Pasted image 20230311110852.png

Un programma effettua delle operazioni, ma per farlo deve interagire con i suoi dispositivi di input/output. Il sistema operativo si interpone tra un programma e l'interazione con i dispositivi di una macchina.

L'obiettivo è allontanarsi quanto basta dalla macchina, realizzando una macchina virtuale con cui si possa interagire sfruttando un linguaggio più adatto per l'essere umano. Infatti quello che succede oggi è che l'utente interagisce con tale macchina virtuale, di una più facile comprensione, i comandi inviati dall'utente sono poi tradotti in linguaggio macchina. La macchina virtuale cui ci riferiamo è realizzata mediante software.

Quello che abbiamo è una struttura a strati o a cipolla:
Pasted image 20230311111449.png

La maggior parte dei moderni computer consiste di 2 o più livelli (nel nostro caso 5):

  • il livello 0 è costituito:
    • dall'hardware della macchina i cui circuiti eseguono i programmi scritti nel linguaggio macchina del livello superiore
    • porte logiche di base, fatte da transistor, dotate di 1 o più input digitali (segnali che corrispondono ai valori 0 e 1) che calcolano semplici funzioni dei valori in ingresso a sua volte le porte si possono combinare per formare: un circuito chiamato ALU che esegue operazioni aritmetiche o memorie e registri in grado di memorizzare le informazioni
      • i registri sono connessi alla ALU per formare il percorso dati lungo il quale i dati si spostano, in alcune macchine le operazioni del percorso dati sono controllati da un programma: il microprogramma (logicamente sarebbe presente un livello in più) mentre in altre è controllato direttamente dall'hardware (come in questo corso)
  • il livello 1 - ISA (Instruction Set Architecture)
    • livello del linguaggio macchina: istruzioni macchina eseguite direttamente dall'hardware (o in modo interpretato dal microprogramma)
  • il livello 2 - Sistema operativo
    • la maggior parte delle istruzioni del livello 2 fa parte anche del livello ISA (livello 1), vi sono in questo livello nuove istruzioni, diversa organizzazione della memoria, capacità di eseguire i programmi in modo concorrente, ecc..

Pasted image 20230311112748.png
I livelli che affronteremo in questa trattazione sono il livello 0, 1 e un po' del 3. Il livello 2 è parte del corso di sistemi operativi.

Argomenti del corso:

  • livello 0: logico-digitale
    • porte
    • registri
    • memoria
    • ALU
    • Data Path
  • livello 1: instruction set (ISA)
    • Linguaggio Macchina
    • supporti architetturali

La struttura di una macchina è basata su un modello sviluppato da un matematico/fisico John Von Neumann che prende proprio il suo nome: Macchina di Von Neumann