Un calcolatore elettronico è un dispositivo programmabile composto da altrettanti dispositivi di varia natura che permette di effettuare calcoli in maniera efficiente e veloce e senza capacità discrezionale.

Da sempre l’uomo ha cercato di inventare dei congegni che gli avessero permesso di velocizzare i calcoli (vai a Storia dei computer). I computer moderni sono costituiti da dispositivi ottici (lettori dvd, mouse, ecc.), meccanici, elettronici e si configurano come dei sistemi di elaborazione molto complessi. Lo scopo di questo corso è quello di illustrare il funzionamento dell’architettura di un comune calcolatore elettronico general purpose.

Possiamo affermare anche che un calcolatore deve essere privo di capacità discrezionale, ovvero non deve effettuare calcoli e dare risultati casuali ma per gli stessi input deve elaborare sempre uno stesso output.

Le dimensioni di questi dispositivi col passare del tempo sono molto diminuite grazie alla miniaturizzazione dei componenti elettronici. La legge di Moore ha previsto l’evoluzione della capacità di integrazione degli elementi elettronici:

La complessità di un microcircuito, misurata ad esempio tramite il numero di transistor per chip, raddoppia ogni 18 mesi (e quadruplica quindi ogni 3 anni)

Legge di Moore

Classificazione

I computer si possono distinguere in general purpose e special purpose. I primi sono i generici computer riprogrammabili che utilizziamo nella vita di tutti i giorni. Per essi possono essere scritti sempre nuovi programmi e applicazioni e sono utilizzati per scopi generici da quelli ludici a quelli legati all’analisi dei dati ecc. I computer special purpose invece sono computer speciali creati per svolgere determinati compiti particolari. I computer general purpose possono essere monoutente e multiutente. Un computer monoutente se l’accesso alla risorse hardware è riservato ad un solo utente alla volta mentre multiutente se, attraverso l’utilizzo del time-sharing delle risorse, viene condiviso con più utenti. Se un computer monoutente può eseguire più processi applica la tecnica della multiprogrammazione ovvero del multitasking.

Sistemi di elaborazione

Un sistema di elaborazione è un insieme di componenti fisici detti hardware e componenti logici detti software che cooperano fra loro per perseguire un obiettivo comune. Tra hardware e software è presente anche uno strato aggiuntivo detto firmware ovvero dell’hardware che ha il software direttamente installato. L’architettura studia come i vari componenti devono essere organizzati e uniti logicamente fra loro. I componenti presenti sono generalmente porte logiche o generatori di segnali.

Porte Logiche

Le porte logiche sono dei componenti elettrici che permettono di implementare le funzioni logiche elementari. Le più importanti sono and, or e not.

AND

L’operatore AND è un operatore binario che prende due segnali in input e restituisce vero solo se i due ingressi sono veri altrimenti falso.

OR

La funzione di OR è sempre un operatore binario che prende due segnali in input e restituisce vero se almeno un ingresso è vero.

NOT

Il NOT è un operatore logico unario, prende un solo ingresso e lo restituisce negato. Se in ingresso viene dato l’impulso basso (0) in uscita verrà mandato l’impulso alto (1) e viceversa.

Modello di Von Neumann

L’architettura di Von Neumann è un’architettura hardware per calcolatori elettronici concepita da John Von Neumann, un noto matematico, fisico e informatico che visse nei tempi della seconda guerra mondiale. Lui concepì un’architettura per i calcolatori semplice e rivoluzionaria, tanto che ancora oggi viene utilizzata per la realizzazione della maggior parte dei calcolatori comuni. Il modello prevedeva che il calcolatore dovesse essere costituito da quattro elementi fondamentali:

  • CPU (Central Processing Unit): E’ l’unità centrale di elaborazione ovvero il componente che si occupa di eseguire i processi. Ogni programma che viene viene messo in memoria per essere eseguito viene chiamato processo. E’ il processore che si occupa di eseguire le istruzioni di ogni software
  • Memoria: che permette di memorizzare dati utili all’esecuzione dei programmi e al funzionamento generale del calcolatore
  • Input/Output: sono tutte le periferiche che permettono di fornire dati al computer (periferiche di input) o che permettono allo stesso di comunicare con gli utenti.
  • Bus: canale di comunicazione fra tutti i componenti. Esistono tre tipologie di bus: dati (attraverso il quale vengono scambiati i dati all’interno del sistema), indirizzi (attraverso il quale vengono comunicati gli indirizzi delle istruzioni che devono essere eseguite), controllo (attraverso il quale vengono inviati dei segnali di controllo),

Funzionamento

La macchina di Von Neumann prevede che i programmi (cioè i file contenenti le istruzioni che macchina deve eseguire) vengano portati nella memoria RAM per essere eseguiti. Quando un programma si trova nella memoria prende il nome di processo. Un processo è un programma in esecuzione. Esso si può trovare in vari stati ed ha un ciclo di vita in quanto come specificato prima, è un entità continuamente in evoluzione. Nei sistemi che attuano la multiprogrammazione, più processi sono presenti contemporaneamente nella memoria per essere eseguiti ma solitamente è presente una sola CPU. Per questo i processi vengono eseguiti a turno mediante un apposito algoritmo di scheduling ovvero di scelta dei processi da eseguire.

La CPU esegue le istruzioni dei programmi in maniera rapidissima. Una CPU che lavora a una frequenza 1Ghz esegue 1 miliardo di operazioni in un secondo. Molte volte un’operazione singola non corrisponde all’esecuzione di una istruzione, per questo oltre alla frequenza esiste il parametro MIPS (Million Instruction Per Second) che permette di definire quante istruzioni la CPU possa eseguire in un secondo.

Il ciclo perenne che la CPU compie per eseguire una nuova istruzione prevede 3 passi:

  • fetch: lettura della prossima istruzione
  • decode: decodifica l’operazione da compiere
  • execute: esegue l’istruzione

La memoria è il banco di lavoro della CPU e questa ha un accesso diretto attraverso il bus dell’architettura. Esistono vari tipi di memorie nell’architettura:

  • RAM ( Random Access Memory ): Memoria ad accesso casuale. E’ una memoria volatile e quello che è memorizzato all’interno di essa viene cancellato quando si spegne il calcolatore. Memorizza i processi cioè i programmi in esecuzione. La CPU accede continuamente ad essa per eseguire la prossima istruzione.
  • ROM ( Read Only Memory): Memoria di sola lettura. Memoria non scrivibile; viene scritta in fase di creazione e contiene tutte le tabelle dei codici delle istruzioni e anche il BIOS un software che permette di impostare alcuni parametri importanti per l’architettura.
  • CACHE: Memoria molto veloce dedicata ai calcoli con basse capacità

Le periferiche forniscono un’interfaccia agli utenti che possono inviare dei segnali all’elaboratore o riceverli. Generalmente l’interfacciamento viene gestito attraverso gli interrupt.

Un valido strumento per poter comprendere il funzionamento dell’architettura é questo sito web.

Torna ad architettura dei calcolatori

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *