vuoi
o PayPal
tutte le volte che vuoi
Modello di Von Neumann
Dati ed istruzioni sono tenuti nellastessa memoria (RAM). Solo l'interpretazione da parte della CPU stabilisce se una data configurazione di bit è da riguardarsi come un dato o come un'istruzione. L'ipotesi di partenza è che sia le istruzioni che i dati sono disponibili in memoria (ad esempio sono state opportunamente "caricate" nella memoria usando l'unità di input). Anche se questo modello consente al processore di manipolare i programmi in modo più semplice, la presenza di un'unica memoria e di un unico bus ha un impatto negativo sulla velocità di esecuzione dell'applicazione, questo è il collo di bottiglia del modello di Von Neumann.
Modello di Harvard
Dati ed istruzioni sono tenuti in memorieseparate, per cui è presente una Memoria Dati (RAM) volatile accessibile direttamente dalla ALU, ed una Memoria Istruzioni non volatile (ROM). Questo modello è principalmente
utilizzatonei processori ad alte prestazioni e nelle architetture dedicate per applicazioni di elaborazione digitale dei segnali (DSP). Non presenta particolari "Colli di bottiglia". Quello che si utilizza nei calcolatori moderni è l'Architettura di Von Neumann, per cui in genere viene mantenuta un'unica memoria per dati ed istruzioni. Si analizza adesso l'organizzazione generale di un Sistema di Elaborazione moderno: L'architettura di von Neumann prevede che un calcolatore sia costituito da tre sottosistemi interconnessi: la Memoria, il Processore (o Unità centrale di elaborazione (CPU)) e i Dispositivi di interfaccia o ingresso uscita (I/O). Secondo questo modello, un computer riceve i dati e le istruzioni mediante i dispositivi di ingresso/input, la CPU li elabora ed invia il risultato all'esterno mediante i dispositivi di uscita/output. La memoria è utilizzata per la memorizzazione dei dati e delle istruzioni. Si analizza conle decodifica e le esegue in sequenza. È responsabile della gestione del flusso di dati all'interno del processore. o Unità di Calcolo: esegue le operazioni aritmetiche e logiche richieste dalle istruzioni. È responsabile della manipolazione dei dati all'interno del processore. o Memoria Cache: è una memoria veloce e di piccole dimensioni che memorizza temporaneamente i dati e le istruzioni più frequentemente utilizzati dal processore. Ciò consente di ridurre i tempi di accesso alla memoria principale e di migliorare le prestazioni del sistema. o Bus di Sistema: è un canale di comunicazione che consente il trasferimento di dati tra il processore, la memoria e i dispositivi di I/O. Esistono diversi tipi di bus, come il bus di dati, il bus di indirizzi e il bus di controllo. o Clock: è un segnale di sincronizzazione che regola la velocità di esecuzione delle istruzioni all'interno del processore. Viene generato da un oscillatore interno al processore e determina la frequenza di lavoro del processore. o Registri: sono piccole memorie interne al processore utilizzate per immagazzinare temporaneamente dati e istruzioni durante l'esecuzione dei programmi. I registri sono molto veloci e consentono di ridurre i tempi di accesso alla memoria principale. o ALU (Arithmetic Logic Unit): è l'unità che esegue le operazioni aritmetiche e logiche richieste dalle istruzioni. È responsabile della manipolazione dei dati all'interno del processore. o FPU (Floating Point Unit): è un'unità specializzata nella gestione dei numeri in virgola mobile. È responsabile dell'esecuzione delle operazioni matematiche che coinvolgono numeri decimali. o Pipeline: è una tecnica di esecuzione delle istruzioni che consente di eseguire più istruzioni contemporaneamente, suddividendo il processo di esecuzione in diverse fasi. Ciò consente di migliorare le prestazioni del processore. o Architettura: è il set di istruzioni e le modalità di funzionamento del processore. Esistono diverse architetture, come x86, ARM, PowerPC, ecc., che determinano la compatibilità e le prestazioni del processore. o Frequenza di clock: è la velocità di lavoro del processore, misurata in Hertz (Hz). Una frequenza di clock più alta indica una maggiore velocità di esecuzione delle istruzioni. o Cache: è una memoria veloce e di piccole dimensioni che memorizza temporaneamente i dati e le istruzioni più frequentemente utilizzati dal processore. Ciò consente di ridurre i tempi di accesso alla memoria principale e di migliorare le prestazioni del sistema. o Overclocking: è una tecnica che consente di aumentare la frequenza di clock del processore al di sopra dei valori di fabbrica. Ciò può migliorare le prestazioni del processore, ma può anche causare problemi di stabilità e surriscaldamento. o Socket: è il connettore fisico che collega il processore alla scheda madre. Esistono diversi tipi di socket, che determinano la compatibilità tra il processore e la scheda madre. o TDP (Thermal Design Power): è la potenza massima dissipata sotto forma di calore dal processore. È un parametro importante da considerare nella scelta del sistema di raffreddamento adeguato per il processore. o Overclocking: è una tecnica che consente di aumentare la frequenza di clock del processore al di sopra dei valori di fabbrica. Ciò può migliorare le prestazioni del processore, ma può anche causare problemi di stabilità e surriscaldamento. o Socket: è il connettore fisico che collega il processore alla scheda madre. Esistono diversi tipi di socket, che determinano la compatibilità tra il processore e la scheda madre. o TDP (Thermal Design Power): è la potenza massima dissipata sotto forma di calore dal processore. È un parametro importante da considerare nella scelta del sistema di raffreddamento adeguato per il processore.ed invia alle altre unità i segnali per l'esecuzione delle operazioni.- ALU: unità aritmetico logica (Arithmetic Logic Unit), effettua le operazioni di tipo aritmetico e logico (AND, OR, addizione binaria) sugli operandi forniti ai suoi ingressi.
- Registri: sono una piccola memoria ad alta velocità utilizzata per memorizzare i risultati temporanei e le informazioni di controllo necessarie al funzionamento dell'ALU, e quindi necessarie per l'esecuzione delle istruzioni. I registri risiedono all'interno della CPU, e memorizzano i dati che vengono poi utilizzati e rielaborati dall'ALU che, a sua volta, riscrive i risultati delle elaborazioni nei registri stessi attraverso i bus di accesso ai registri. Normalmente i registri hanno tutti le stesse dimensioni, ma alcuni vengono utilizzati per compiti specifici altri sono general purpose, ad esempio il registro più importante è il Program Counter (PC) che indica la prossima istruzione da eseguire.
mentre l'Instruction Register (IR) è il registro che memorizza l'istruzione che si sta per eseguire.
L'organizzazione interna di una CPU è caratterizzata dal datapath (anche nota come Unità di Elaborazione, o Unità Centrale), che è costituito da una serie di componenti, tra i quali l'ALU, i registri, e molti bus di comunicazione. Nella figura di fianco viene mostrato un classico esempio di rappresentazione di un datapath.
Tutte le operazioni della CPU devono essere eseguite in modo coordinato anche dal punto di vista della temporizzazione degli eventi, questo lo si ottiene grazie ad un orologio (clock) che fornisce una cadenza temporale a cui tutte le attività elementari sono sincronizzate.
La frequenza del clock, cioè il numero delle attività elementari che vengono eseguite nell'unità di tempo (misurata in hertz, Hz), determina la velocità di elaborazione della CPU.
Memoria Centrale (RAM): Contiene
I dati e le istruzioni dei programmi in esecuzione, chedeve fornire alla CPU il più rapidamente possibile. È importante separare la memoria centrale (volatile, meno capiente, ma molto più veloce) dalle memorie di massa (nonvolatili, capienti, ma molto lente) altrimenti il processore sarebbe per la maggior parte del tempo fermo in attesa di dati da/per la memoria. Il nome RAM (Random Access Memory) deriva dal fatto che si può accedere direttamente alle varie celle, una volta noto il loro indirizzo, ed il tempo necessario per accedere ad una cella è lo stesso, indipendentemente dalla posizione della cella nella sequenza, per cui il termine "random" (casuale) indica proprio il fatto che non vi sono differenze nell'accesso alle varie celle della memoria. All'aumentare delle dimensioni della memoria principale aumenta il numero di programmi che possono essere "contemporaneamente" attivi. L'accesso alla RAM è
comunque più lento rispetto alla velocità della CPU, per cui le istruzioni e i dati più recenti vengono memorizzati in un'area di accesso veloce, della cache memory, che è molto più veloce della RAM, ma anche più piccola e più costosa. Dispositivi I/O: Insieme di dispositivi che, sotto il controllo e coordinamento del processore, consentono la comunicazione con e da il mondo esterno, cioè servono ad immettere dati nel computer o a riceverne da esso. Sono anche chiamate Periferiche, e possono essere di Input (ad esempio Mouse, Tastiera, Microfono), di output (ad esempio Monitor, Stampante, Plotter), oppure di Input/Output (ad esempio Modem). Bus di comunicazione: Il bus è un canale di comunicazione bidirezionale che collega tutti i componenti fra loro, consentendo il trasferimento di dati tra tali unità. Ad esso possono connettersi le Unità di ingresso (Input) che immettono le informazioni nel calcolatore per farle elaborare.Le Unità di uscita (Output) che ricevono le informazioni dalla memoria del calcolatore per renderle pronte all'uso, la CPU e la memoria. Può diventare il collo di bottiglia di molti calcolatori.
Memoria Secondaria: meglio note come Memorie di Massa, mantengono tutti i dati ed i programmi in attesa di essere eseguiti in modo persistente, anche dopo lo spegnimento del calcolatore. Le caratteristiche principali delle memorie di massa sono una grande capienza, e la non volatilità (le informazioni sono mantenute anche dopo lo spegnimento del calcolatore). Le memorie secondarie o di massa sono basate principalmente su tecnologie magnetiche e ottiche (ad esempio Hard disk, floppy disk, CDROM, DVD).
Il ruolo di tutti questi sotto-sistemi può essere sintetizzato con la seguente figura: 12
Alla luce di tutte le nozioni fino ad ora apprese, è possibile già rispondere alla domanda "Quanto è potente il mio Computer?". La risposta dipende dai
seguenti fattori:
- Frequenza del processore;
- Livello di Parallelismo del processore.
- Dimensione della RAM;
- Dimensione della memoria di massa;
- Velocità di accesso (bus);
- Grandezza della cache;
- Numero e tipo di porte.
Aumentare la frequenza di clock del processore influenza direttamente il tempo di ciclo del datapath e quindi le prestazioni di un calcolatore, ma tale frequenza è limitata dalla tecnologia disponibile, per cui è possibile anche migliorare le prestazioni introducendo il parallelismo, che può essere di due tipi:
- Parallelismo a livello delle istruzioni: Architetture pipeline o architetture superscalari;
- Parallelismo a livello di processori: Array computer, multiprocessori o multi computer.
Questi concetti saranno approfonditi nei prossimi paragrafi.
1.4. Aspetti Tecnici di un Calcolatore
Prima di studiare nel dettaglio l'architettura di tutti i sotto-sistemi presenti nel Modello di Von Neumann, è bene fornire
indirettamente alla scheda madre. La CPU (Central Processing Unit) è il cervello del computer, responsabile dell'esecuzione dei calcoli e delle istruzioni. La scheda video gestisce l'output visivo del computer, inviando le informazioni al monitor. La scheda audio gestisce l'output audio, permettendo al computer di riprodurre suoni e musica. Altri componenti importanti includono la memoria RAM, che memorizza temporaneamente i dati in uso, e il disco rigido, che memorizza permanentemente i dati. Oltre all'hardware interno, ci sono anche le periferiche esterne come la tastiera, il mouse, la stampante e il monitor, che consentono all'utente di interagire con il computer.indirettamente alla motherboard. Inoltre, la scheda madre è collegata direttamente al cavo di alimentazione della corrente. Il formato della scheda madre ha misure standard per permettere ai produttori di personal computer di assemblare le schede madri provenienti da diversi fornitori. I formati più utilizzati nell'assemblaggio di un personal computer sono il formato ATX, il formato mini-ATX, il formato micro-ATX e il formato BTX. I principali componenti di una scheda madre sono i seguenti: - Socket CPU: è lo zoccolo che accoglie la CPU. Nelle schede embedded (o in quelle vecchie e molto economiche) è assente, ed il processore è saldato direttamente sulla scheda. Lo zoccolo (socket) può essere di tipo PGA o LGA. Nel caso di processori di tipo PGA, i pin di interconnessione risiedono sulla parte inferiore della CPU. Se il socket è di tipo LGA (ovvero Land Grid Array) i pin risiedono sul socket ed è necessaria una piastra di raffreddamento per collegare il processore alla scheda madre. - Slot di espansione: sono slot che permettono di collegare schede di espansione come schede video, schede audio, schede di rete, ecc. I formati più comuni sono PCI, PCI Express e AGP. - Slot di memoria: sono slot che permettono di installare i moduli di memoria RAM. I formati più comuni sono DIMM e SODIMM. - Connettori SATA: sono connettori utilizzati per collegare dispositivi di archiviazione come hard disk e SSD. - Connettori USB: sono connettori utilizzati per collegare dispositivi esterni come tastiere, mouse, stampanti, ecc. - Connettori audio: sono connettori utilizzati per collegare dispositivi audio come altoparlanti e microfoni. - Connettori di rete: sono connettori utilizzati per collegare il computer ad una rete locale o ad internet. Questi sono solo alcuni dei componenti presenti sulla scheda madre, ma ci sono anche molti altri componenti come il BIOS, il chipset, i condensatori, i ponticelli, ecc. che svolgono funzioni specifiche nel funzionamento del computer.caricamento per