Estratto del documento

Il sistema di elaborazione

Il calcolatore è un sistema programmabile. Uno stesso programmatore infatti è in grado di eseguire molteplici successioni di istruzioni (programmi) senza che sia necessaria alcuna modifica della sua struttura fisica. Un calcolatore può essere definitivamente descritto in modo appropriato come un sistema, cioè un insieme organizzato di componenti con l’obiettivo di realizzare un esecutore.

Per comprendere il calcolatore bisogna adottare una descrizione di tipo gerarchico. Punto di partenza e perciò primo livello nella descrizione gerarchica è la cosiddetta macchina di Von Neumann che interpreta un calcolatore come costituito da quattro elementi:

  • Unità di elaborazione
  • Memoria di lavoro
  • Sistema di interfaccia con l’esterno
  • Sistema di interconnessione

Si mette in evidenza quindi l’architettura del sistema, ovvero gli elementi da cui è composto e le relazioni fra di loro. Ogni elemento ha una funzione. Il compito principale del calcolatore è di eseguire istruzioni che realizzino l’elaborazione dei dati. A questo scopo è necessario che le istruzioni e dati siano accessibili al calcolatore stesso, descritti in un formato che renda le istruzioni interpretabili e i dati trattabili.

La funzione di esecutore delle istruzioni, e quindi di elaboratore, è necessariamente complementata da quella di sistema di memorizzazione. I dati elaborati da un calcolatore infatti possono essere archiviati per essere utilizzati in un momento successivo a quello in cui è stata completata l’elaborazione. Dato che l’obiettivo dei calcolatori è quello di risolvere problemi per conto di utenti, ogni calcolatore deve essere in grado di interagire con l’ambiente esterno, per acquisire dati e istruzioni e per fornire i risultati ottenuti. Questi compiti vengono svolti abitualmente da dispositivi ausiliari e direttamente connessi al calcolatore, detti periferiche.

Tipiche periferiche di ingresso sono mouse e tastiera, mentre schermo e stampante sono esempi di periferiche di uscita. Le funzioni che svolge un calcolatore devono essere opportunamente coordinate. Ogni calcolatore dispone di un’unità di controllo. I calcolatori svolgono dunque funzioni classificabili in quattro tipologie:

  • Elaborazione dei dati
  • Memorizzazione di dati e istruzioni
  • Trasferimento di istruzioni e dati verso l’esterno
  • Controllo

I dati che i calcolatori sono in grado di trattare possono corrispondere a numeri, testi, immagini, suoni, video. Ecco perché un’architettura di elaborazione generale è basata sul principio di flessibilità d’uso, con l’idea che un calcolatore possa essere utilizzato per svolgere funzioni diverse.

Una seconda caratteristica fondamentale dei calcolatori è la modularità (ottenuta utilizzando componenti il più possibile standardizzati) e la scalabilità (la possibilità di sostituire componenti con altri di caratteristiche e tecniche migliori).

Il componente principale

Il componente principale all’interno di un calcolatore è l’unità centrale di elaborazione (CPU) a cui sono affidate le operazioni di controllo ed elaborazione. Un’altra unità chiamata memoria si occupa della memorizzazione dei dati, ospitando sia i dati necessari per le elaborazioni della CPU, sia i dati trasferiti attraverso le periferiche di ingresso ed uscita. La memoria viene vista come un insieme di celle adiacenti, ognuna caratterizzata da un proprio identificatore univoco, chiamato indirizzo, in cui possono essere scritti o letti i dati proprio grazie agli indirizzi di cella. Il calcolatore interagisce poi con l’ambiente esterno utilizzando dei dispositivi ausiliari, periferiche, connessi al calcolatore stesso mediante delle interfacce di ingresso ed uscita.

Il collegamento fra questi sottosistemi avviene attraverso il bus, un insieme di linee alle quali sono connesse tutti i componenti del calcolatore e che consente il trasferimento di dati tra le componenti. Di solito i circuiti del bus sono integrati nella scheda madre del calcolatore (una superficie di materiale plastico su cui sono montati direttamente o collegati attraverso connettori, anche la CPU, memoria centrale, periferiche di ingresso ed uscita).

Il bus

Dal punto di vista funzionale l’insieme delle linee del bus è in genere strutturato in tre componenti:

  • Bus dati: su cui vengono trasferiti i dati da elaborare;
  • Bus indirizzi: su cui viene trasferito l’indirizzo delle celle di memoria in cui i dati che transitano sulle linee del bus dati devono essere letti o scritti;
  • Bus di controllo: su cui transitano i segnali di controllo che consentono di volta in volta di selezionare le unità coinvolte in un trasferimento dati e in generale di coordinare il sistema.

Ogni trasferimento di dati attraverso il bus avviene sotto la supervisione della CPU, che identifica mediante il loro indirizzo, la sorgente e la destinazione dei dati e sincronizza con segnali di controllo i dispositivi che devono colloquiare. Per mantenere coordinato il funzionamento dei vari componenti di questa architettura, il calcolatore è dotato di un dispositivo chiamato clock, che a intervalli regolari genera un impulso di sincronizzazione. Quindi la velocità con cui le varie fasi delle operazioni di controllo ed esecuzione della CPU vengono svolte è dunque determinata dalla frequenza del segnale del clock.

La codifica di dati e istruzioni: il linguaggio macchina

Il linguaggio macchina è un linguaggio con cui sono stati scritti i programmi eseguibili per computer. La CPU è quella componente hardware in grado di eseguire i programmi scritti in un linguaggio macchina. Quest’ultimo è basato su un alfabeto detto binario che comprende due simboli (0, 1). Un simbolo di questo alfabeto è chiamato bit. Per poter scrivere e leggere dati e istruzione sull'unità di memoria è necessario stabilire delle regole di scrittura e lettura e cioè di codifica e decodifica. Ogni dato da scrivere in memoria viene espresso come una successione di simboli binari solitamente costituita da 8 bit, chiamato byte.

L’insieme delle istruzioni che l’unità di elaborazione del calcolatore è in grado di decodificare e quindi di eseguire è chiamato linguaggio macchina. Il linguaggio macchina è basato su una codifica estremamente compatta e poco intuitiva per cui codificare un programma utilizzando un linguaggio macchina richiede una conoscenza approfondita del calcolatore. Per questo motivo sono stati sviluppati dei linguaggi di programmazione che si pongono a metà strada fra il linguaggio macchina e i linguaggi naturali.

  • Linguaggio di programmazione a basso livello: linguaggio molto vicino alla macchina, più arduo ma permette lo sviluppo di programmi efficienti.
  • Linguaggio di programmazione ad alto livello: linguaggio più astratto, slegato dal funzionamento fisico della macchina. La programmazione è più rapida e naturale ma è possibile che non consenta di produrre software efficienti. (Basic, Java…)

Le istruzioni che un calcolatore può eseguire

Le istruzioni che un calcolatore può eseguire possono essere di tre tipi:

  • Istruzioni aritmetico logiche: come la somma di due numeri, in cui oltre all’operazione bisogna indicare dove si trovano i dati su cui eseguire l’operazione.
  • Istruzioni di trasferimento dati: che indicano quali dati trasferire e in quale direzione.
  • Istruzioni di controllo: che permettono di modificare il flusso di esecuzione delle istruzioni.

Le successioni di istruzioni che la CPU è in grado di interpretare scritte in linguaggio macchina vengono eseguite sulla base dei seguenti principi:

  • Dati e istruzioni sono memorizzati in una stessa memoria, che permette sia la lettura che la scrittura.
  • I contenuti della memoria sono indirizzati in base alla loro posizione, indipendentemente dal tipo di dato o istruzione contenuto.
  • Le istruzioni vengono eseguite in modo sequenziale, nello stesso ordine in cui sono scritte nella successione che costituisce il programma, salvo indicazioni differenti contenute nelle istruzioni di controllo.

La struttura del processore

Nell’esecuzione di un programma, una volta che sia le istruzioni del programma sia i dati da elaborare sono residenti in memoria, la CPU provvede a eseguire in successione tutte le istruzioni del programma fino ad arrivare all’ultima istruzione e quindi alla conclusione del programma stesso. In pratica il comportamento della CPU può essere descritto come una esecuzione ripetuta ciclicamente in tre fasi:

  • Lettura (fetch): trasferimento dalla memoria alla CPU dell’istruzione da eseguire.
  • Decodifica (decode): riconoscimento dell’istruzione e identificazione delle operazioni da svolgere per effettuarne l’esecuzione.
  • Esecuzione (execute): svolgimento delle operazioni corrispondenti all’esecuzione inclusi il trasferimento di dati da/verso la memoria.

La memoria

L’unità di memoria ha il compito di mantenere i programmi e dati su cui opera la CPU. Esaminando il ciclo di lettura-decodifica-esecuzione delle istruzioni di un programma si comprende come le caratteristiche della memoria possano influenzare le prestazioni complessive di un calcolatore. Il sistema di memoria si divide in due parti:

  • Memoria centrale: mantiene i programmi in esecuzione e i relativi dati. Opera principalmente con la CPU a cui deve fornire dati e istruzioni ad alta velocità. La memoria centrale è costituita da una successione di elementi bistabili capaci ciascuno di assumere uno stato tra due possibili, convenzionalmente indicati con 0 e 1. Gli elementi di memoria binari sono raggruppati in unità minime indirizzabili chiamate celle costituite da 8, 16, 64 elementi bistabili. Per ogni calcolatore, una successione di bit avente la lunghezza pari al numero di elementi binari di una cella è chiamata parola di memoria del calcolatore. La memoria centrale è realizzata con tecnologie che consentono l’accesso diretto ad ogni cella, senza richiedere la lettura delle celle precedenti nella successione.

Tempo di accesso: l’intervallo tra il momento in cui una richiesta d’accesso dalla CPU arriva alla memoria attraverso il bus di controllo e l’istante in cui la memoria termina il proprio compito.

Tempo di ciclo della memoria: valutato sommando al tempo d’accesso l’intervallo di tempo che deve trascorrere prima che possa iniziare un successivo accesso alla memoria stessa.

Velocità di trasferimento: definita anche larghezza di banda, corrisponde alla quantità di dati trasferiti nell’unità di tempo.

Anteprima
Vedrai una selezione di 4 pagine su 13
Riassunto esame Informatica, prof. Amoroso, libro consigliato Informatica e cultura dell'informazione, Mari, Buonanno, Sciuto Pag. 1 Riassunto esame Informatica, prof. Amoroso, libro consigliato Informatica e cultura dell'informazione, Mari, Buonanno, Sciuto Pag. 2
Anteprima di 4 pagg. su 13.
Scarica il documento per vederlo tutto.
Riassunto esame Informatica, prof. Amoroso, libro consigliato Informatica e cultura dell'informazione, Mari, Buonanno, Sciuto Pag. 6
Anteprima di 4 pagg. su 13.
Scarica il documento per vederlo tutto.
Riassunto esame Informatica, prof. Amoroso, libro consigliato Informatica e cultura dell'informazione, Mari, Buonanno, Sciuto Pag. 11
1 su 13
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher Novadelia di informazioni apprese con la frequenza delle lezioni di Informatica e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Bologna o del prof Amoroso Alessandro.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community