VON Neumann ha formalizzato la scrittura del calcolatore :
Microprocessore (CPU) Memoria centrale Periferiche Scheda grafica Scheda madre Scheda audio il linguaggio del calcolatore e'il linguaggio binario. infatti gli elementi di memoria sono costituiti da elementi BISTABILI. ( ossia entit che possono assumere e conservare due stati possibili ad esempio STATO 0 E STATO 1) ogni elemento si trova in una cella di memoria o registro La memoria centrale di un calcolatore formata da un insieme di celle di memoria. TUTTE LE CELLE HANNO LA STESSA LUNGHEZZA SI ACCEDE A OGNI CELLA ATTRAVERSO IL SUO INDIRIZZO bit =0,1;{bit =binary digit} Cella= bit cella [1....LUNGHEZZACELLA]////le celle sono limitate memoria=cella memoria[0...MAXINDIRIZZO] //indirizzo SE LUNGHEZZACELLA=8 eMAXINDIRIZZO=3.la memoria MEM Con MEM[0] SI indica il contenuto della cella 0. Le lunghezzecelle pi frequenti Sono :8/32/16/64 bit Invece le dimensioni di memoria ossia i maxindirizzo un numero elevatissimo e si misurano in gigabyte Esempio :cella=32bit 1giga di memoria =2^25 celle di memoria I NUMERI REALI sono rappresentati da floating point (virgola mobile) i caratteri sono rappresentati dalla codifica ASCII 1 bit corrisponde a 1 oppure 0 2^3 bit =8bit=1byte I byte possono essere raggruppati in gruppi di 16/32/64/128 bit(word) Un calcolatore pu trattare diversi tipi di dati tra cui immagini, numeri, suoni ecc L'importante che siano poi trasformati in sequenze di bit per poter essere elaborati. I numeri naturali da vengono rappresentati con otto bit I numeri interi (tra cui numeri interi negativi, lo zero, e i numeri interi positivi) di cui il primo bit rappresenta il segno - > lo zero rappresenta il segno positivo mentre 1-> rappresenta il segno negativo. I numeri reali sono numeri razionali contenenti una parte intera e una parte frazionaria.il numero pu essere rappresentato codificato separatamente la sua parte intera e la sua parte frazionaria. I caratteri sono codificati in sequenze di bit mediante un codice di traduzione.
Il pi diffuso il codice ASCII che assegna a ogni lettera un numero naturale
rappresentabile in forma binaria.
Il modello che fu preso in considerazione per la creazione di moderni calcolatori fu la
macchina di Von Neumann. La macchina composta da L'unit di elaborazione: chiamato anche CPU E MICROPROCESSORE contiene dispositivi elettronici capaci di acquisire, interpretare ed eseguire le istruzioni del programma. costituita da 4 componenti : unit di controllo serve per gestire informazioni ALU ossia aritmetic logic unit in grado di fare operazioni aritmetiche clock serve per sincronizzare le informazioni per evitare di surriscaldamento il processore? Dispositivi di memoria chiamati anche registri servono per la memorizzazione temporanea delle istruzioni. la memoria centrale:contiene informazioni necessarie per l'esecuzione del programma come Istruzioni e dati. La MC composta da dispositivo di memoria e dal gestore di memoria. Il gestore di memoria deve essere in grado di selezionare una riga ad una certa velocit indipendentemente dal suo indirizzo. Infatti ogni riga viene divisa in un numero finito di celle, che contengono un sequenza di bit(parole) [tutte le parole hanno una stessa dimensione=20caratteri].Ogni riga identificata dalla sua posizione(indirizzo). LA
memoria centrale il componente che esegue i comandi dati dalla CPU
le periferiche= permettono lo scambio delle informazioni fra elaboratore e mondo esterno. LA memoria di massa rientra in questa categoria il bus di sistema:ha il compito di collegare tra loro questi elementi funzionali. Esso sotto il controllo della CPU infatti si dice che la cpu assume il ruolo di master e le altre unit funzionali assumono il ruolo di slave. Il bus di sistema si differenzia in tre tipi a seconda del tipo di informazione che trasporta. BUS DATI:trasferisce dati dall'unit master all'unit slave e viceversa(ad esempio il trasferimento di dati da una cella di memoria (memoria centrale) al registro dati(CPU)in un operazione di lettura. Oppure viceversa dal registro dati alla cella di memoria in una operazione di scrittura. BUS INDIRIZZI serve per trasmettere il contenuto del registro indirizzi (CPU) alla memoria centrale {viene dunque selezionata una cella di memoria per un operazione di lettura. Questa operazione solo possibile per il trasferimento dati dalla cpu alla memoria. BUS DI CONTROLLO /COMANDO: trasferisce dall'unit master all'unit slave un codice corrispondente all'istruzione da eseguire e dall'unit slave all'unit master informazioni relative all'avvenuto esecuzione dell'operazione richiesta.
SUNTO FUNZIONAMENTO MACCHINA VON NEUMANN.
CPU estrae Istruzioni dalla memoria centrale, le codifica comprendendo il loro significato e poi le esegue tramite opportune funzioni all'interno della Architettura del calcolatore.
Le istruzioni possono essere soggetti a:
Operazioni di elaborazione dell'informazione - operazioni numeriche 1. Operazioni di trasferimento dell'informazione - dati dall'interfaccia di una periferica alla memoria centrale La memoria centrale contiene informazioni a breve /medio termine mentre la memoria di massa contiene informazioni di lungo termine. Infatti la memoria centrale pi piccola rispetto a quella di massa e pu accogliere un limitato numero di informazioni,tuttavia tutte le informazioni DEVONO passare di l prima di essere elaborate. La memoria centrale una sequenza di celle di memoria (ciascuna cella contiene una sequenza di bit ossia un parola). L'indirizzo della cella la sua posizione relativa rispetto alla prima cella di memoria (che ha posizione zero) L'indirizzamento della memoria avviene tramite il registro INDIRIZZI (CHE SI TROVA NELLA CPU): un registro in grado di memorizzare una sequenza di bit. Se il registro indirizzo 10 bit, potr contenere 2^10 celle di memoria. Attenzione che la memoria centrale si misura in byte e non in numero di parole. Infatti i byte sono indipendenti dalla lunghezza di parola di uno specifico calcolatore. Quindi si seleziona una specifica cella e si caricano le sequenze di 1/0 nel registro indirizzo. A questo punto si possono fare due operazioni Lettura dalla memoria Scrittura in memoria queste operazioni utilizzano il registro Dati. La lettura della memoria provoca la copia del contenuto della cella di memoria nel registro dati.(L) Essa carica il registro dati con una parola di memoria. Come funziona; La CPU deve caricare l'indirizzo della parola di memoria che desidera leggere nel registro indirizzi e deve trasmetterlo alla memoria centrale tramite il bus indirizzi. Per poter richiedere un operazione di lettura la cpu deve inviare il comando tramite il bus controlli. La memoria esegue l'operazione di lettura che sposta tramite il bus dati il contenuto della parola indirizzata nel registro dati. Inoltre segnala alla cpu tramite il bus controllo che l'operazione terminata e che il dato richiesto disponibile nel registro dati. Invece l'operazione di scrittura copia il contenuto del registro dati in una cella di memoria,essa dunque deposita il contenuto del registro dati in una parola di memoria. (S) Come funziona; La CPU carica l'indirizzo della parola di memoria in cui si desidera scrivere nel registro indirizzi e lo trasmette alla memoria centrale tramite il bus indirizzi. Inoltre carica il dato da scrivere in memoria nel registro dati e tramite il bus dati il contenuto del registro dati viene trasmesso alla memoria centrale. Per controllo la cpu richiede un operazione di scrittura inviando il comando tramite il bus controlli. La memoria esegue l'operazione di scrittura che sposta il contenuto del registro dati ricevuti tramite il bus dati nella parola indirizzata e segnala alla cpu che l'operazione terminata.
La memoria che abbiamo trattato finora prende il nome di RAM(RANDOM ACCESS
MEMORY) ci vuole dire che nella ram si pu scegliere una qualsiasi cella di memoria per un operazione di lettura e scrittura. Definizione di RAM : un tipo di memoria che permette l'accesso diretto a qualunque indirizzo di memoria con lo stesso tempo di accesso utilizzata come memoria primaria per la sua velocit di accesso. Esistono per anche memorie che vengono chiamate ROM (READ ONLY MEMORY) nelle quali non possibile scrivere poiche servono solo per far funzionare il sistema. La ROM pu essere EROM OSSIA ROM CANCELLABILI PROM OSSIA ROM PROGRAMMABILI Si pu notare che le memorie ROM hanno alcune caratteristiche dell'hardware in quanto non possono essere modificate durante l'esecuzione e del software possono essere programmate. RAM~>MEMORIA VOLATILE(leggibile e scrivibile) ROM~> MEMORIA NON VOLATILE(solo leggibile) Definizione di registro:il registro un elemento di memoria che pu essere letto o scritto molto velocemente e che utilizzabile per memorizzare risultati parziali o informazioni necessarie al Controllo. La CPU ha diversi registri tra i quali troviamo : Registro dati DR,registro indirizzi AR(AR lungo k bit, DR lungo h bit ossia quanto la lunghezza di una parola Registro istruzione corrente (lungo h bit)contiene l'istruzione che risulta in esecuzione da parte dell'elaboratore Contatore di programma(program counter PC, lungo k bit) contiene l'indirizzo della prossima istruzione del programma in esecuzione. Registro interruzioni contiene informazioni relative allo stato di funzionamento delle periferiche Registro di stato(SR)riporta in alcuni suoi bit informazioni relative al risultato delle operazioni svolte da ALU. bit di carry: indica la presenza di un riporto bit zero: indica la presenza di un valore nullo nel registro A bit di segno :riporta il segno del risultato di un operazione aritmetica bit di overflow: quando il risultato di un operazione aritmetica supera il valore 2^h ossia valore massimo che pu essere rappresentato nel registro A. INTERFACCE DI INGRESSO E USCITA Le interfacce consentono il collegamento del calcolatore con le varie periferiche. L'interfaccia contiene dei registri per poter mandare o ricevere comandi dalla periferica.OVvviamente le interfacce cambiano a seconda della periferica con cui sono a contatto. i registri delle interfacce sono registro dati della periferica (PDR)per scambiare dati con la periferica. registro comando della periferica informazione sullo stato Come abbiamo detto l'istruzione viene eseguita in tre fasi 1. l'acquisizione dalla memoria centrale( fetch phase) Si svolge in quattro passi
il contenuto del counter program viene trasferito nel registro indirizzi
avviene l'operazione di lettura dalla memoria centrale :il contenuto della cella di memoria che corrisponde all'indirizzo( contenuto nel registro indirizzi )viene trasferito nel registro dati tramite il bus di sistema .(vedi sopra) il contenuto del registro dati viene trasferito al registro di istruzione corrente il valore del program counter viene incrementato di 1.puo succedere che durante l'esecuzione dell'istruzione corrente venga memorizzato nel program counter un indirizzo differente (BRANCH) 2. l'interpretazione o decodificazione ; la fase di analisi del registro dell'istruzione corrente, si cerca di interpretare il codice operativo 3. esecuzione differente per ogni operazione consiste nell'esecuzione dell'operazione stessa.
ESTENSIONI DEL CALCOLATORE DI NEUMANN
La memoria cache un rea di memoria particolare ad alta velocit di accesso e di dimensioni ridotte rispetto alla memoria centrale. Lo scopo della memori cache di velocizzare le prestazioni della CPU. Infatti la cache contiene quei dati e informazioni che vengono usati spesso dal processore evitando di richiamarlo ogni volta che li si utilizza. HIT: quando il processore preleva i dati di cui ha bisogno direttamente dalla cache riducendo il tempo d'accesso MISS: Quando il processore non trova il dato di cui ha bisogno nella memoria di cache. Si potrebbe pensare di sostituire la memoria tradizionale con una cache ma ci sono due motivi principali che c' lo impediscono 1. le memorie cache sono costose 2. la cache per essere veloce deve trovarsi fisicamente vicino al processore,possibilmente sullo stesso chip.quindi impossibile fisicamente realizzare cache veloci e capienti. La cache pu trovarsi dentro il chip del processore L1(CACHE DI PRIMO LIVELLO), oppure esterna L2. (CACHE DI SECONDO LIVELLO)