Elaboratore Elettronico 1) 2) 3) 4) Hardware e Software Modello di Von Neumann – schema e componenti funzionali. Periferiche ed interfacce I/O Memoria centrale a) Ram b) Rom c) Cache di primo livello e di secondo livello 5) CPU a) Unità di controllo b) Unità aritmetico logica c) Registri (Cache di primo livello) Hardware e Software Un elaboratore elettronico è costituito da due elementi fondamentali: Hardware – Software - Tutto ciò che in un elaboratore elettronico ha consistenza fisica: Circuiti elettronici digitali o analogici e dispositivi di I/O Tutto ciò che in un calcolatore non ha consistenza fisica: Applicazioni, Sistema Operativo e Documenti. Macchina di Von Neumann Il primo calcolatore con programmi memorizzabili fu progettato da Von Neumann intorno al 1945. Lo schema di Von Neumann è ancora oggi utile a descrivere in modo semplificato il funzionamento dei moderni eleboratori elettronici. In questo schema la CPU (Central Processing Unit) ha la funzione di eseguire le applicazioni. (Un'applicazione è un insieme ordinato di istruzioni). Le applicazioni e i documenti sono memorizzati stabilmente nella memoria di massa. La memoria di massa (Hard Disk) è una periferica indicata in figura come Memoria secondaria. Perché un'applicazione possa essere eseguita dal processore, deve essere trasferita nella memoria centrale. L'utente può utilizzare l'elaboratore elettronico grazie ad un insieme programmi chiamato Sistema Operativo. Il computer comunica con il mondo esterno attraverso le periferiche di input e di output. Le interfacce sono necessarie perché la macchina comprende soltanto la codifica digitale (codifica numerica binaria) mentre l'utente comprende soltanto la codifica analogica ( significati codificati in una forma). Tutti gli elementi della macchina di Von Neumann hanno accesso ad un unico canale di comunicazione chiamato Bus di Sistema. L’utilizzo del bus garantisce la modularità e l’espandibilità del calcolatore. Memoria Centrale La memoria centrale è costituita da due tipi di memoria: - RAM - ROM (random access memory) (read only memory) RAM E' la memoria di lavoro del processore ==> La RAM è volatile ==> In essa vengono conservati i dati in corso di elaborazione e le istruzioni del programma in esecuzione (perciò tutti i dati durante un’intera sessione di lavoro). Le informazioni contenute nella RAM si cancellano quando si toglie l'alimentazione. La RAM è costituita da locazioni di memoria chiamate BYTE (8 bit) Ogni BYTE ha un suo indirizzo progressivo. La capacità di memoria della RAM si misura in Byte. 1kiloByte ==> 210 Byte 1MegaByte ==> 220 Byte 1GigaByte ==> 230 Byte La comunicazione tra processore e RAM avviene attraverso il bus di sistema che però rallenta l'accesso alle informazioni. La cache di primo livello è una memoria ram molto veloce, di piccole dimensioni ed interna al processore stesso. La cache di secondo livello è esterna al processore ma è accessibile senza passare per il bus. I tempi di accesso alla Cache Memory sono ridotti anche perché non viene utilizzato il bus per la trasmissione dei dati. ROM (Read Only Memory) La memoria ROM non è volatile ===> Le informazioni contenute nella ROM non si perdono quando si toglie l'alimentazione. La ROM serve a contenere i dati necessari all'avvio del computer ==> I dati più importanti contenuti nella ROM Quando il computer viene acceso, il processore cerca le prime istruzioni da eseguire nella memoria ROM A) Il bios B) Il Bootstrap Il bios serve a controllare le interfacce con le periferiche di Input/Output Il Bootstrap serve a caricare in memoria RAM il sistema operativo. 5 Central Processing Unit La CPU (o microprocessore) è l'esecutore dei programmi. Un programma è costituito da un insieme ordinato di istruzioni. L'istruzione da eseguire viene prelevata dalla RAM attraverso il bus di sistema e viene memorizzata in un registro all'interno del processore. Ogni istruzione contiene un OPCODE (codice operativo) e gli eventuali operandi l'esecuzione avviene in tre fasi: fetch Il processore preleva l'istruzione da eseguire decodifica Il processore decodifica il codice operativo per determinare quale operazione deve essere eseguita. esecuzione Il processore esegue l'operazione indicata dall'opcode Tutte le operazioni vengono coordinate dall'Unità di Controllo (CU) che è sincronizzata da un circuito di Clock. Tale circuito opera ad una frequenza superiore al Ghz, cioè genera più di un miliardo di impulsi al secondo. L'esecuzione della singola istruzione richiede più cicli di clock. L'ALU è l'elemento che esegue le operazioni aritmetiche, le operazioni logiche (somma logica, prodotto logico e negazione ) e le operazioni relazionali (cioè controlla se un numero è maggiore minore o uguale ad un altro).