For faster navigation, this Iframe is preloading the Wikiwand page for Ciclo macchina.

Ciclo macchina

Da Wikipedia, l'enciclopedia libera.

Schema architetturale a blocchi di un generico processore

In informatica ed elettronica, il ciclo macchina o ciclo fetch-decode-execute è un algoritmo che non. descrive in via generale e semplificata il funzionamento dei processori. Viene utilizzato in modo particolare come riferimento iniziale nella progettazione di CPU.

In termini generali un processore è una macchina a stati finiti che esegue a ciclo continuo la stessa sequenza di tre operazioni:

  • recupero di un'istruzione (instruction fetch) dalla memoria programma;
  • decodifica (decode) ovvero "interpretazione" dell'istruzione ed attivazione delle funzioni associate;
  • esecuzione (execute) dell'istruzione e memorizzazione del risultato.

L'esecuzione comporta l'invio di segnali di controllo a un certo numero di unità interne del processore, a seconda dell'istruzione da eseguire. Alla fine del processo il Program Counter (PC) viene incrementato per puntare all'istruzione successiva (se presente).


Diagramma di flusso del ciclo macchina

Fase 1: Recupero dell'istruzione

[modifica | modifica wikitesto]

All'inizio di ogni ciclo la CPU carica l'istruzione da eseguire facendo riferimento al Program Counter (PC), ovvero il registro che tiene traccia dell'istruzione da eseguire. Il codice dell'istruzione viene così trasferito dalla memoria programma mediante Data Bus nel Memory Data Register (MDR). Il valore dalla MDR è poi depositato nell'Instruction Register (IR), un circuito che trattiene l'istruzione temporaneamente così che possa essere decodificata ed eseguita.

Fase 2: Decodifica

[modifica | modifica wikitesto]

La CPU legge l'indirizzo dalla memoria principale se l'istruzione ha un indirizzo indiretto. Dopodiché carica i dati richiesti dalla memoria principale per poi essere processati e depositati all'interno dei registri. Dall'Instruction Register, l'istruzione è decodificata dall'Unità di Controllo (Control Unit). Eventuali indirizzi di memoria in cui leggere o scrivere dati sono contenuti nel MEM register, un ulteriore registro oltre l'Instruction Register. Al termine della fase di Decode, il Program Counter aumenta di 1 l'indirizzo contenuto in memoria (ad esempio da 1000 passa a 1001), per indicare che la prossima istruzione sarà contenuta all'interno di questa nuova cella di memoria.

Fase 3: Esecuzione

[modifica | modifica wikitesto]

A questo punto, se l'istruzione decodificata è tale da portare i dati memorizzati precedentemente in IR all'interno dei registri ALU, i dati possono essere manipolati da quest'ultima: in generale il dato nuovo viene scritto mediante "scrittura distruttiva" in uno dei registri stessi dell'ALU, il che comporta la perdita eventuale di dati precedentemente memorizzati nello stesso registro. Nel caso invece l'istruzione non prevedesse la manipolazione, ma solo la scrittura di una cella o la sua lettura, l'ALU non viene interpellata. Se l'azione è terminata con successo, il ciclo può allora ricominciare.

Voci correlate

[modifica | modifica wikitesto]

Altri progetti

[modifica | modifica wikitesto]

Collegamenti esterni

[modifica | modifica wikitesto]
  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica
{{bottomLinkPreText}} {{bottomLinkText}}
Ciclo macchina
Listen to this article

This browser is not supported by Wikiwand :(
Wikiwand requires a browser with modern capabilities in order to provide you with the best reading experience.
Please download and use one of the following browsers:

This article was just edited, click to reload
This article has been deleted on Wikipedia (Why?)

Back to homepage

Please click Add in the dialog above
Please click Allow in the top-left corner,
then click Install Now in the dialog
Please click Open in the download dialog,
then click Install
Please click the "Downloads" icon in the Safari toolbar, open the first download in the list,
then click Install
{{::$root.activation.text}}

Install Wikiwand

Install on Chrome Install on Firefox
Don't forget to rate us

Tell your friends about Wikiwand!

Gmail Facebook Twitter Link

Enjoying Wikiwand?

Tell your friends and spread the love:
Share on Gmail Share on Facebook Share on Twitter Share on Buffer

Our magic isn't perfect

You can help our automatic cover photo selection by reporting an unsuitable photo.

This photo is visually disturbing This photo is not a good choice

Thank you for helping!


Your input will affect cover photo selection, along with input from other users.

X

Get ready for Wikiwand 2.0 🎉! the new version arrives on September 1st! Don't want to wait?