Macchina di Von Neumann

La CPU è composta di diverse parti:

  • unità di controllo
  • unità aritmetico-logica
  • registri

I registri, l'unità aritmetico-logica e alcuni bus che li collegano compongono il data path.
Due registri importanti sono: il Program Counter (PC) e l'Instruction Register (IR).

La main memory contiene sia istruzioni sia dati usando sequenze di bit.
Pasted image 20230311114137.png

Si distinguono:

  • istruzioni registro-registro
  • registro memoria

Ciclo di data path
...

Processo con cui due operandi passano attraverso l'ALU per memorizzare il risultato dell'operazione aritmetica effettuata

Pasted image 20230311114529.png

Ciclo di fetch-decode-execute
...

La CPU esegue ogni istruzione del livello 1 (ISA) per mezzo di una seria di passi elementari:

  1. Prende la prossima istruzione dalla memoria e la mette nel registro delle istruzioni
  2. Cambia il program counter per indicare l'istruzione successiva
  3. Determina il tipo di istruzione appena letta
  4. Se l'istruzione usa una word in memoria, determina dove si trova
  5. Mette la word, se necessario, in un registro della CPU
  6. Esegue l'istruzione
  7. Torna al punto 1 per eseguire l'istruzione successiva

NOTA: una word è una sequenza di 4 byte, mentre una double word è una sequenza di 8 byte, appunto una doppia word.

Ciò che esegue il ciclo di fetch-decode-execute è l'unita di controllo:

  • legge le istruzioni dalla memoria: fetch
  • ne determina il tipo: decode
  • le esegue: execute

Traduzione di un programma in linguaggio macchina
...

Un programma scritto in un linguaggio di alto livello come C viene tradotto in assembler quando viene compilato. Il programma viene scritto in C, poi viene compilato e tradotto in linguaggio macchina (assembler) che successivamente viene tradotto in linguaggio macchina attraverso una assemblator (assemblatore).

Pasted image 20230311120521.png