1.4b: Hardware (Memoria Centrale) Bibliografia Curtin, Foley, Sen, Morin “Informatica di base”, Mc Graw Hill Ediz. Fino alla III : cap. 3.11, 3.13 IV ediz.: cap. 2.8, 2.9 Questi lucidi Memoria Centrale Un computer, per funzionare, ha bisogno di uno spazio dove memorizzare le parti di programma che utilizza e i dati che deve elaborare. Tale spazio è rappresentato dalla Memoria Centrale La Memoria Centrale è suddivisa in celle della dimensione di 1 byte (8 bit) (locazioni di memoria) Ogni cella ha un indirizzo La Memoria centrale è ad accesso casuale, al processore occorre sempre lo stesso tempo per accedere ad un qualsiasi punto di essa L’accesso è velocissimo, l’ordine è dei nano secondi, cioè miliardesimi di secondo (0.5 - 1 ns). Concetti principali Tipologie di memoria Centrale (RAM/ROM) Memoria virtuale e operazione di Swapping Registri Cache Memory Buffer Tipologie di Memoria Centrale La Memoria centrale è suddivisa in RAM (Random Access Memory), memoria di lettura/scrittura ROM (Read Only Memory), memoria a sola lettura RAM La RAM è accessibile in scrittura e lettura. Perde il suo contenuto allo spegnimento della macchina (volatile). Contiene Dati e Programmi attualmente in esecuzione FLIP-FLOP (Bistabili) La RAM è costituita da miliardi di interruttori elementari che possono assumere due possibili stati acceso/spento. Se il flip-flop è acceso ... corrisponde al bit 0 Se il flip-flop è spento ... corrisponde al bit 1 Ogni flip flop è grande meno di un millionesimo di metro (30 nanometri). Il flip flop si spegne quando non è alimentato dalla corrente elettrica, perciò quando si spegne il computer la RAM si svuota e perde tutti i dati ROM La ROM è una memoria a sola lettura contenente dati e istruzioni, il cui contenuto non può essere modificato in alcun modo dall’utente Non perde il contenuto allo spegnimento della macchina (non volatile). Dati e programmi memorizzati in una ROM prendono il nome di FIRMWARE. ROM BIOS La memoria ROM-BIOS (Basic Input Output System) è un piccolo "chip elettronico“ all'interno dei Computer che contiene Le procedure che gestiscono funzioni di input/output, comprese quelle grafiche. Il primo programma che il computer esegue non appena acceso (bootstrap) Bootstrap CMOS Una piccola parte di RAM (CMOS) è presente anche nel BIOS. La memoria CMOS è una memoria statica (SRAM) che mantiene i dati con una alimentazione a batteria (simile a quella usata per gli orologi da polso). Essa contiene le informazioni sulla composizione fisica del computer (informazioni di “Setup”). Tali informazioni possono essere modificate. Quando l'hardware subisce modifiche è sufficiente aggiornare questa parte del BIOS, senza bisogno di riscrivere tutti i programmi. PROM ed EPROM PROM (Programmable ROM): é una ROM che può essere programmata con una apparecchiatura speciale (programmatore di PROM). I livelli 1 e 0 che costituiscono i dati binari sono scritti con la modifica di alcune parti del chip (ad es. bruciatura di fusibili integrati) ed una volta scritti non sono più cancellabili. EPROM (Erasable Programmable ROM) che può essere cancellata e riscritta con opportuni apparecchi (programmatori di EPROM). La cancellazione delle EPROM avviene esponendo il chip ad una luce ultravioletta. Memoria virtuale e Swapping La RAM non è infinita e può “saturarsi”, soprattutto se sono in esecuzione molti programmi nello stesso momento sono aperti documenti molto grandi (che occupano molto spazio) Nel caso di sovraccarico e in presenza di un’ulteriore esigenza computazionale (apertura di un nuovo documento o esecuzione di un nuovo programma), il Sistema Operativo può fare una delle seguenti cose: Impedire l’apertura del nuovo documento (o la partenza di un altro programma). “fare spazio” nella memoria disponibile, per le nuove esigenze e quindi permettere di aprire il nuovo documento o di far partire un altro programma I Sistemi di vecchia generazione adottavano la prima soluzione, mentre i più recenti adottano la seconda. Memoria virtuale e Swapping Il Sistema Operativo per “fare spazio” all’interno della RAM “sposta” (parti di) dati o (parti di) programmi dalla RAM al Disco Fisso, utilizzando una particolare zona detta “area di “Swap”, o file di swapping Memoria virtuale e Swapping Il Sistema Operativo sceglie ciò che va spostato nell’area di swap utilizzando varie strategie, ad esempio sposta ciò che in RAM è inutilizzato da più tempo Tale uso combinato di RAM e di Hard Disk prende il nome di Memoria Virtuale L’operazione di “spostamento” è un’operazione necessaria (soprattutto se il computer dispone di poca RAM), ma molto costosa (in termini di tempo) Registri Il processore non lavora “direttamente” sulla RAM, ma solo su dati e istruzioni presenti al suo interno Per cui, ogni volta che deve eseguire un’istruzione su uno o più dati, è necessario copiare dalla memoria centrale all’interno del processore l’istruzione da eseguire i dati su cui l’istruzione opera Le memorie “interne” al processore, preposte a tale compito, sono dette Registri I registri di un processore sono, in tutto, qualche decine Hanno tempi di accesso molto rapidi Registri L’operazione, da farsi per poter eseguire ogni singola istruzione, è però costosa rispetto al tempo che il processore impiega ad eseguire l’istruzione stessa Si corre il rischio quindi di avere un processore che lavora molto velocemente … … ma che passa quasi tutto il suo tempo fermo, perché in attesa che l’istruzione e i dati su cui essa opera vengano copiati dalla RAM nei registri. Cache Memory Per velocizzare il sistema, esiste una Memoria (tampone) di tipo SRAM, detta Cache Memory posta a diretto contatto con il processore, molto più piccola ma molto più veloce (e costosa) della RAM, Cache Memory Nella Cache vengono memorizzati: una parte dei dati contenuti nella memoria principale (ad esempio quelli usati più frequentemente o quelli vicini ai dati appena utilizzati) una parte delle istruzioni del programma in esecuzione (ad esempio quelle utilizzate più recentemente o quelle “vicine” fisicamente all’istruzione in esecuzione) in questo modo il loro reperimento sarà molto veloce Si cerca se il dato/l’istruzione è presente nella cache e se c’è lo si usa (“Cache Hit”) Se invece non c’è (“Cache Miss”) lo si prende dalla RAM e lo si copia nella cache: la prossima volta verrà ritrovato nella cache Buffer Piccola zona della RAM riservata per operazioni varie. Utilizzato per scaricare o caricare i dati su/da disco Contiene gli ultimi dati immessi da tastiera (fino a che non si preme il tasto “INVIO”, ad esempio) Contiene gli ultimi comandi usati da un programma con il relativi dati coinvolti, per poter poi permetterne l’annullamento tramite il pulsante Contiene ciò che viene “Tagliato” o “Copiato” (Clipboard)