Unità di controllo (informatica): differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica |
Nessun oggetto della modifica Etichetta: Link a pagina di disambiguazione |
||
Riga 9:
Esistono due tipi di unità di controllo: le unità di controllo cablate, generalmente utilizzate nelle macchine semplici, e le unità di controllo microprogrammate, utilizzate nelle macchine più complesse. Nel primo caso, i componenti principali sono il [[Circuito sequenziale|circuito logico sequenziale]], il circuito di controllo dello stato, il [[Circuito combinatorio|circuito logico combinatorio]] e il circuito di emissione del riconoscimento del segnale di controllo. Nel secondo caso, la microprogrammazione dell'unità di controllo è memorizzata in una micro-memoria, alla quale si accede in modo sequenziale per eseguire successivamente ciascuna delle micro-istruzioni.
==Struttura del computer==
== Input e Output ==▼
* [[unità logica e aritmetica]] (ALU): esegue operazioni aritmetiche e logiche;
* unità di controllo: storicamente definita come parte distinta dal modello di riferimento del 1946: l'[[macchina di von Neumann|architettura di von Neumann]]. Nei moderni progetti di computer, l'unità di controllo è tipicamente una parte interna della CPU ed era conosciuta inizialmente come architettura Eckert-Mauchly.
* memoria: memorizza dati e programmi;
* dispositivi di input e output: alimentano la memoria con dati e istruzioni e forniscono i risultati dei calcoli memorizzati;
* [[bus (informatica)|bus]]: forniscono un mezzo di trasporto dei dati e delle istruzioni tra i diversi dispositivi e, più piccoli della memoria principale (registri), costituiscono la CPU (Central Processing Unit).
==Operazioni generali della CU==
Le uscite della CU sono responsabili del controllo dell'attività del resto del dispositivo. Una CU può essere considerata come una [[macchina a stati finiti]].
La CU è il [[circuito]] che controlla il flusso di dati attraverso il processore e coordina quest'ultimo, che a sua volta controlla il resto del computer.
Esempi di dispositivi che richiedono una CU sono le CPU e le [[GPU]]. La moderna era dell'informazione non sarebbe possibile senza la progettazione di complesse CU.
==Tipologie di CU==
Si distinguono unità di controllo cablate e microprogrammate.
===Unità di controllo cablate===
Un tempo le unità di controllo per le CPU erano costituite da una logica ad hoc ed erano difficili da progettare. Possono essere identificate come la parte principale del computer e il dispositivo principale che aiuta il computer a funzionare in modo corretto. La CU è costituita da [[porta logica|porte logiche]], circuiti bistabili, circuiti di codifica, circuiti di decodifica, contatori digitali e altri circuiti digitali. Il suo controllo si basa su un'architettura fissa, cioè richiede modifiche al cablaggio se il set di istruzioni viene modificato. Questa architettura è preferita nei computer di tipo [[RISC]], in quanto consiste in un set di istruzioni più piccolo.
Le unità di controllo sono utilizzate per invocare queste risposte. Queste istruzioni sono evidenti nella progettazione dell'architettura, ma possono essere rappresentate anche in altri modi.
===Unità di controllo microprogrammate===
Nel 1951, ad opera di [[Maurice Wilkes|M. V. Wilkes]], fu introdotta l'idea della microprogrammazione come livello intermedio per l'esecuzione delle istruzioni dei programmi per computer (vedi anche [[microcodice]]). I microprogrammi erano organizzati come una sequenza di microistruzioni e memorizzati in una speciale memoria di controllo. L'[[algoritmo]] dell'unità di controllo microprogrammata è solitamente specificato da una descrizione a [[diagramma di flusso]].<ref>{{cita libro |cognome=Barkalov |nome=Alexander |titolo=Logic synthesis for FSM based control units / Alexander Barkalov and Larysa Titarenko |anno=2009 |editore=Springer |città=Berlin |isbn=978-3-642-04308-6 }}</ref> Il vantaggio principale dell'unità di controllo microprogrammata è la semplicità della sua struttura. Le uscite del controllore sono organizzate in microistruzioni e possono essere facilmente sostituite.<ref>{{cita libro |cognome=Wiśniewski |nome=Remigiusz |titolo=Synthesis of compositional microprogram control units for programmable devices |anno=2009 |editore=University of Zielona Góra |città=Zielona Góra |isbn=978-83-7481-293-1 |páginas=153}}</ref>
==Componenti della CU==
* contatore del programma (PC): chiamato anche registro di controllo della sequenza (SCR), contiene permanentemente l'indirizzo di memoria della prossima istruzione da eseguire. All'inizio dell'esecuzione del programma, prende l'indirizzo della prima istruzione e incrementa automaticamente il suo valore di uno ogni volta che viene completata un'istruzione. Ciò non vale quando l'istruzione in esecuzione sia un'istruzione di salto o di interruzione della sequenza, caso in cui il contatore di programma assume l'indirizzo dell'istruzione da eseguire successivamente, che si trova memorizzato nell'istruzione corrente;
* [[Registro istruzione]] (IR): contiene l'istruzione in corso di esecuzione. Questa istruzione porta con sé il codice dell'operazione (CO) e, se del caso, gli operandi o i loro indirizzi di memoria;
* [[Decoder (elettronica)|decoder]] (D): ha il compito di interpretare l'istruzione per la sua successiva elaborazione. Ha il compito di estrarre il codice operativo dell'istruzione in corso (che si trova nel registro istruzione), di analizzarlo e di emettere i segnali necessari al resto degli elementi per la sua esecuzione attraverso il [[sequenziatore]];
* orologio (R): fornisce una successione di [[impulso elettrico|impulsi elettrici]] a intervalli costanti, che segnano gli istanti in cui devono iniziare le diverse fasi di ogni istruzione.
L'unità di controllo riceve in input ad ogni [[ciclo di clock]]:
* lo stesso ''clock'' che sincronizza lo svolgimento delle singole micro-istruzioni;
* l'istruzione, contenente il [[codice operativo]], sul quale determina le micro-istruzioni da eseguire;
* i segnali di [[flag]], che determinano lo stato della CPU e danno indicazioni sul precedente stato della ALU;
*
In output genera segnali interni alla CPU di trasferimento dati e di controllo della alu, e segnali attraverso il bus di controllo per memoria e I/O per quanto riguarda il resto del sistema.
|