Università degli studi della Tuscia Corso di Laurea in SCIENZE ORGANIZZATIVE E GESTIONALI CORSO DI INFORMATICA ARCHITETTURA HARDWARE [email protected] ARCHITETTURA CONCETTUALE ELABORATORE Lo schema concettuale di funzionamento di un elaboratore si basa sul modello concettuale progetto da Von Neumann e si chiama “macchina di Von Neumann” La macchina di Von Neumann è basata su un’unità di elaborazione centrale (CPU) in grado di eseguire una dopo l’altra (sequenzialmente) le istruzioni di un programma, e di inviare e ricevere dati da e verso un deposito di memoria (RAM) Funzionamento della macchina di Von Neumann Il processore estrae le istruzioni dalla memoria e le esegue, le istruzioni possono comportare: – operazioni di manipolazione dei dati – operazioni di trasferimento dei dati I trasferimenti di dati attraverso elementi funzionali diversi avvengono attraverso il bus di sistema Le fasi di elaborazione si susseguono in modo sincrono rispetto ad un orologio di sistema Durante ogni intervallo di tempo l’unità di controllo (parte del processore) stabilisce la funzione da svolgere L’intera macchina opera in maniera sequenziale tutte le diverse tipologie di calcolatori sono accomunati dalla medesima architettura logica, schematizzata dal modello di Von Neumann del calcolatore. STRUTTURA DI UN CALCOLATORE MEMORIA MEMORIA USCITA USCITA (Output) (Output) INGRESSO INGRESSO (Input) (Input) UNITA’ UNITA’ DI DI CONTROLLO CONTROLLO UNITA’ UNITA’ LOGICO LOGICO ARITMETICO ARITMETICO (A.L.U.) (A.L.U.) UNITA’ CENTRALE DI ELABORAZIONE (C.P.U.) Unità Aritmetico-Logica, detta ALU (Aritmetic Logic Unit) esegue tutte le operazioni logiche e di calcolo sui dati che le sono inviati; Unità di Controllo/governo, detta CU/UG (Control Unit) svolge le funzioni decisionali e di coordinamento del flusso dei dati; Memoria contiene le istruzioni, i dati ed i risultati dell'elaborazione; Unità di ingresso/uscita I/O. BUS di collegamento, linee di collegamento per il flusso dei dati 5 e delle istruzioni BUS DI COLLEGAMENTO UNITA’ I/O MEMORIA C.P.U. (ALU+UG) (Microprocessore) DATI INDIRIZZI CONTROLLI SISTEMA A BUS Bus Indirizzi: è utilizzata dal processore per selezionare una specifica locazione di memoria sia nella RAM/ROM che nelle periferiche esterne. Bus Dati: è utilizzata per trasferire dati/istruzioni tra il microprocessore e la memoria principale o le periferiche esterne. Bus Controlli: serve per inviare i segnali di controllo necessari per sincronizzare i flussi di dati tra le varie parti del sistema. 6 Sia l’unità di governo che la ALU colloquiano con una memoria locale formata da alcuni dispositivi di memorizzazione detti registri: accumulatori, supportano il flusso di informazioni da e verso la memoria esterna e sono il riferimento per tutte le operazioni eseguite dalla ALU; un registro istruzioni (IR – Instruction Register), che contiene il codice dell’operazione da eseguire; un contatore di programma (PC – Program Counter), che punta all’istruzione successiva da eseguire; un registro di stato (SR – Status Register), contenente informazioni sullo stato in cui la CPU si viene a trovare dopo l’esecuzione dell’istruzione. IL CLOCK Tutte le attività del sistema, inoltre, sono regolate da un cadenzatore (clock) che fornisce la temporizzazione di base per la generazione di comandi e l’intervallo tra due segnali successivi del clock definisce la velocità di esecuzione di un passo elementare di funzionamento (ciclo di macchina). ARCHITETTURA FISICA Struttura di un tipico sistema di calcolo: la CPU, memoria e i dispositivi si “affacciano” sul bus. Il bus viene utilizzato per trasferire i dati da CPU a Memoria e viceversa, e i dati e i comandi dalla CPU ai controller dei dispositivi, e viceversa. Schema Hardware Tastiera Monitor Mouse Unità di input Modem Unità di controllo Scanner Unità centrale (C P U) Unità di output Monitor Stampante Modem Memoria centrale Unità di elaborazione Memoria RAM (Random Access Memory) Memoria ROM (Read Only Memory) ALTRE ARCHITETTURE Multiprocessori Sono elaboratori con un numero di U.G. maggiore di uno e con un’architettura complessa. Un mainfraime è di solito un multiprocessore. Elaboratori paralleli Possiedono microprocessori in grado di operare simultaneamente. I supercomputer sono elaboratori paralleli. MICROPROCESSORE E’ un chip che contiene circuito e registri finalizzati alla realizzazione delle funzioni aritmetico-logiche (ALU) e di governo (UG) per il trattamento delle istruzioni Un microprocessore, anche abbreviato in µP, è un'implementazione fisica della CPU (ALU+UG) in un singolo circuito integrato. ELABORAZIONE ALL'INTERNO DELLA CPU (CICLO MACCHINA) L'elaborazione avviene con il reperimento da parte della Control Unit dell'istruzione da eseguire dalla memoria centrale all'indirizzo contenuto dal registro Program Counter. L'istruzione viene trasferita nel registro Instruction Register e il Program Counter viene incrementato in modo da puntare all'istruzione successiva; La CPU, dopo aver interpretato l'istruzione, emette segnali che producono la sua esecuzione e se sono necessari calcoli, interviene l'ALU. FASI DI ELABORAZIONE fase di fetch nella quale la Control Unit reperisce l'istruzione dalla memoria e viene incrementato il valore del Program Counter in modo da puntare all'istruzione successiva; fase di decode nella quale l'istruzione viene interpretata: l'interpretazione può avvenire attraverso circuiti logici già predisposti al momento di costruzione del processore (logica cablata), oppure attraverso microistruzioni contenute in una apposita parte della ROM (logica microprogrammata). Nel primo caso, le funzioni eseguibili sono prefissate fisicamente e il sistema comporta una certa rigidità; nel secondo caso, l'interpretazione avviene cercando nella ROM la sequenza di passi elementari di cui l'istruzione da interpretare è a sua volta composta. FASI DI ELABORAZIONE fase di execute durante la quale la Control Unit invia segnali che rappresentano opportuni comandi per l'esecuzione. Il ciclo macchina è scandito da un temporizzatore o clock: un oscillatore al quarzo che emette segnali a intervalli di tempo regolari, all'interno di ciascuno del quale si svolge un passo elementare di funzionamento. La frequenza di oscillazione del clock determina la velocità della macchina, tale velocità è misurata in megahertz, ovvero milioni di oscillazioni al secondo. PRESTAZIONI DI UN PROCESSORE Gli elementi per valutare le prestazioni di un microprocessore sono: Il numero di bit che vengono elaborati contemporaneamente determina a capacità elaborativa. Generalmente stabilito dal numero di bits dei registri interni della ALU e della CPU GHz (Gigahertz) (ciclo di clock) indica solamente il ritmo interno di lavoro e quindi la velocità di elaborazione (caricamento ed esecuzione) anche se non specifica quanti cicli occorrono per eseguire le varie istruzioni; MIPS (Million Instructions Per Second) indicano il numero di istruzioni al secondo che il microprocessore è in grado di eseguire; MFLOPS (Million Floating point Operations Per Second) come MIPS ma con operazioni su floating point; Benchmark (banco di lavoro): per avere una valutazione attendibile. Programmi che fanno eseguire al sistema tutti i tipi di istruzioni del set: meno tempo un sistema impiega a eseguire il banchmark, migliore è la prestazione. Quindi con il banchmark si misurano le prestazioni di un sistema, mentre gli altri parametri misurano le prestazioni del solo microprocessore. PRINCIPALI ARCHITETTURE DEL MICROPROCESSORE architettura CISC (Complete Instruction Set Computers) architettura RISC (Reduced Instruction Set Computer) architettura ZISC (Zero Instruction Set Computers) ancora poco utilizzata basata sull’utilizzo di reti neutrali e non più su istruzioni assembler. PRINCIPALI ARCHITETTURE DEL MICROPROCESSORE I processori CISC hanno un linguaggio macchina formato da un numero elevato di istruzioni, anche complesse. I processori RISC hanno un numero ridotto di istruzioni e queste ultime sono più semplici Nei processori di tipo RISC, nati negli anni ottanta, l’insieme di istruzioni macchina è ridotto al minimo e le istruzioni, molto semplici, vengono eseguite in un unico ciclo di clock RISC I processori di ultima generazione sono realizzati seguendo l’architettura RISC per consentire: la scalabilità o pipeline, ovvero la capacità di eseguire in rapida sequenza più istruzioni in simultanea; L'elaborazione di un'istruzione da parte di un processore si compone di cinque passaggi fondamentali: – IF (Instruction Fetch): Lettura dell'istruzione da memoria – ID (Instruction Decode): Decodifica istruzione e lettura operandi da registri – EX (Execution): Esecuzione dell'istruzione – MEM (Memory): Attivazione della memoria (solo per certe istruzioni) – WB (Write Back): Scrittura del risultato nel registro opportuno PIPELINE Senza pipeline i cicli sono in sequenza Con pipeline si possono su un ciclo di clock effettuare più operazioni PARALLELISMO il parallelismo capacità di processare più istruzioni contemporaneamente Il parallelismo si ottiene attraverso il raddoppio del core interno (processori dual core, quad core..) permettendo l’elaborazione di più istruzioni su core differenti con un sensibile miglioramento delle prestazioni senza la necessità di clock con velocità elevata EVOLUZIONE TECNOLOGICA PROCESSORI I microprocessori prima generazione tecnologia PMOS (MOS tipo p) ; 1971 Intel commercializzò il primo microprocessore, il “4004”, realizzato riprendendo parte del progetto di una calcolatrice tascabile, esso aveva una capacità di indirizzamento molto limitata ed era piuttosto lento. La prima generazione di microprocessori commercializzata tra il 1971 e il 1973 e tra questi va citato l' “8080”, il primo a 8 bit realizzato dalla Intel. EVOLUZIONE TECNOLOGICA PROCESSORI dal 1973 comparve la seconda generazione di microprocessori, prodotti con le più avanzate tecnologie NMOS (MOS di tipo n); i circuiti NMOS sono più veloci dei PMOS, hanno un livello di integrazione maggiore, e inoltre sono compatibili con i circuiti TLL: “Z80” della Zilog, i “6800” e “6809” della Motorola e l'alternativa Intel costituita dall' “8085”. Nel 1978 sono apparsi i microprocessori a 16 bit, che costituiscono la terza generazione “8086” Intel (1978), lo “Z8000” Zilog (1979) e l' “MC68000” Motorola (1980); quest'ultimo microprocessore, considerato a 16 bit, presenta un'architettura interna e alcune prestazioni da 32 bit. EVOLUZIONE TECNOLOGICA PROCESSORI nel 1978 la Intel ha immesso sul mercato il microprocessore “8086” a 16 bit nel nel 1979 “8088” che, con lo stesso insieme di istruzioni e la medesima architettura interna a 16 bit dell'8086, aveva però un bus di dati esterni a 8 bit; IBM utilizza l’8088 per i suoi PC; il successo di vendita dei PC portò allo sviluppo di software con molteplici applicazioni in molti campi EVOLUZIONE TECNOLOGICA PROCESSORI quarta generazione di microprocessori: nel 1985, con la comparsa degli “MC68020” e “MC68030” Motorola e dei “80386” e “80486” Intel, che si cominciò a parlare di. Tali circuiti, realizzati con tecnologie CMOS (MOS complementare) consentono di lavorare a frequenze superiori a 50 MHz, con un consumo di energia molto ridotto. FAMIGLIE DI PROCESSORI Anni 1980-81 primi modelli i8086, i 8088 della Intel, insieme a Motorola pari a 3 e 5 Mhz e un bus dati da 16 bit (20 negli ultimi modelli) Intel esce con i modelli i80186 e i 80286 ( impiegato nei pc AT IBM) con frequenze di clock sempre crescenti (8,10,12 MHz) e bus dati e indirizzi a 24 bit Nella seconda metà degli anni 80’ il modello i80286 viene sostituito dai processori della famiglia i80386 nuova tecnologia a bassi consumi implementata con materiali CMOS 1989 Intel commercializza la serie i80486 a 25 MHz. Il 486 è il primo processore che introduce la memoria cache di primo livello FAMIGLIE DI PROCESSORI 1992 esce il primo processore Pentium con un bus indirizzi a 32 bit e un bus dati a 64 bit. I primi Pentium lavoravano a 60 MHz di clock ed erano in grado di elaborare più istruzioni macchina in un unico ciclo di clock Evoluzioni importanti del primo pentium portano alla serie PRO e MMX Questa serie lavorava già alla velocità di 200 MHz La produzione del Pentium II consiste in un processore che fonde le potenzialità dei processori PRO e MMX portando il clock fino a 300, 350 MHz 1999 esce il Pentium III, con frequenze di clock fino a 1GHz, una cache L1 da 32KB e una cache L2 da 512 KB FAMIGLIE DI PROCESSORI Successivamente Pentium IV con frequenze di clock fino a 3GHz e bus interno di 500MH. La particolarità del Pentium IV sta nell’impiego di RAM speciali chiamare RDRAM o DDR a doppio canale che permettono un bus con una frequenza fino a 266 MHz. Per i PC portatili, inoltre, è disponibile il processore Centrino che ottimizza il consumo di energia garantendo maggiore autonomia con elevate prestazioni. Vengono quindi prodotte versioni più semplici ed economiche come i Celeron (Intel) e i Sempron (AMD). FAMIGLIE DI PROCESSORI PER I MAC I personal Macintosh hanno invece utilizzato processori CISC Motorola della serie 68000, usati in passato anche sulle prime workstation scientifiche. Anche per questi processori ci sono state varie versioni, note con i numeri di serie 68010, 68020, 68030, fino alla più recente 68040. successivamente la Apple ha lanciato sul mercato elaboratori personal con architettura di tipo RISC, che utilizzano il processore PowerPC, prodotto in seguito ad un accordo tra Apple, IBM e Motorola. I Macintosh di generazione successiva passarono ai processori G3 e G4 con alte potenzialità per la multimedialità. Oggi anche Apple usa gli stessi processori Intel usati dagli altri produttori. ARCHITETTURE PER TABLET E SMARTPHONE Nvidia: “Tegra 2”, che verrà utilizzato da una gran parte dei modelli dotati del sistema operativo Android 3.0, e con il tegra3 su architettura ARM QuadCortex A-9, avrà ben 4 core, 1.5 ghz di frequenza L'architettura ARM (precedentemente Advanced RISC Machine, prima ancora Acorn RISC Machine) indica una famiglia di microprocessori RISC a 32-bit sviluppata da ARM Holdings e utilizzata in una moltitudine di sistemi . Grazie alle sue caratteristiche di basso consumo (rapportato alle prestazioni) l'architettura ARM domina il settore dei dispositivi mobili dove il risparmio energetico delle batterie è fondamentale. ARCHITETTURE PER TABLET E SMARTPHONE Qualcomm: processori “Snapdragon” (il nuovo Galaxy 2 utilizzerà sono il microprocessore Snapdragon a 1 GHz). Qualcomm I nuovi processori sono i modelli “MSM8930” (single core), “MSM8960” (dual core) e “APQ8064” (quad core), tutti integrano una componente video basata sulla GPU “Adeno” e sono costruiti con il processo produttivo a 28 nanometri. iPhone 3G: il processore è basato sulle tecnologie dei chip ARM1179JFS 667 MHz BlakBerry 8700 PXA900 architettura ARM Maggiori informazioni su ARM: http://it.wikipedia.org/wiki/Architettura_ARM PROCESSORE A4 A5 http://www.melablog.it/tag/apple%20a5 Le Memorie Memoria RAM E’ anche detta memoria volatile, perde, infatti, il materiale non salvato quando si spegne l’elaboratore. Memoria Centrale o principale Memoria ROM dischi magnetici Memorie di massa Consente di leggere, modificare e cancellare le informazioni che contiene o aggiungerne altre. In essa sono contenuti i programmi di “servizio”, immessi dalla ditta costruttrice ed essenziali per il funzionamento della macchina: perciò il suo contenuto non può essere manomesso. Hard Disk Ha una capacità compresa tra decine di Mb e svariati Gb. Floppy Disk Transistor Memorie Flash Solidi dischi ottici capacità di 720 Kb o di 1,44 Mb capacità da 128Mb a vari Gb Memorie ROM o W o RW col Masterizzatore (CD – DVD – Blu Ray) LE MEMORIE In rapporto alla funzione svolta , le memorie si possono invece classificare in: registri, con accesso casuale e dimensioni piuttosto ridotte, presentano una velocità di accesso maggiore degli altri organi di memorizzazione e vengono usati per le elaborazioni interne alla CPU; memoria centrale, con accesso casuale e dimensioni piuttosto ampie, viene usata per la registrazione di dati e programmi; memorie di massa, con accesso sequenziale o semicasuale che, nonostante i tempi d’accesso relativamente lunghi, esplicano la funzione fondamentale di conservare in modo permanente nel tempo grosse quantità di dati. ORGANIZZAZIONE MEMORIA PRINCIPALE AREA DI PROGRAMMA (istruzioni) AREA DI AREA DI OUTPUT INPUT AREA DEI DATI (dati) STRUTTURA MEMORIA PRINCIPALE La memoria del sistema di elaborazione è costituita da tanti contenitori a ciascuno dei quali corrisponde un unico indirizzo. 000 001 002 998 999 36 LA “LOCAZIONE” DI MEMORIA L’indirizzo permette l’identificazione della posizione all’interno della RAM/ROM della locazione di memoria. La locazione di memoria contiene indifferentemente : Dati Istruzioni. Indirizzo 0001 0002 0003 1022 1023 1024 Locazione 0 1 1 0 1 1 1 0 0 0 0 1 1 1 0 0 1 0 1 1 1 …….. …….. …….. 0 0 1 0 1 1 1 0 0 1 0 1 1 1 0 0 1 0 1 1 1 37 0 0 0 0 0 0 ESEMPIO LOCAZIONE Una memoria è costituita da 1024 LOCAZIONI differenti in ogni locazione sono memorizzati 8 bit; Ogni parola è lunga 8 bit. La Capacità è pari 8096 bit. Le linee di indirizzo sono 10. La capacità (di memorizzare caratteri, numeri, informazioni ecc.) delle locazioni di memoria viene definita in fase di progettazione e di costruzione del sistema di elaborazione, così come l’indirizzabilità ESEMPIO In un calcolatore abbiamo locazioni di memoria di 16 bit con relativi indirizzi di 16 bit. Quanta memoria riusciamo complessivamente ad indirizzare? Soluzione. Le celle di memoria sono composte da 16 bit = 2 bytes, mentre lo spazio di indirizzamento è di 2^16 celle. Pertanto la memoria che riusciamo ad indirizzare è (al massimo): 2 bytes × 2^16 = 2^17 bytes = 2^7 Kbytes = 128 Kbytes. OPERAZIONI LETTURA: di un dato o di una istruzione in una locazione di memoria è una operazione non distruttiva SCRITTURA: di un dato o di una istruzione in una locazione di memoria è una operazione distruttiva (viene cancellato il dato precedente) ELEMENTI DELLE MEMORIE CAPACITA’ : indica il numero di celle che la memoria contiene; il suo valore è sempre pari ad una potenza di 2 si misura in bit. PAROLA/LOCAZIONE: è l’insieme di bit che formano l’elemento unitario della memoria. ORGANIZZAZIONE:è costituita da una coppia di numeri che indicano il numero di parole e la lunghezza delle stesse LINEE DI INDIRIZZO: ingressi della memoria necessari ad individuare la locazione di memoria 41 PARAMETRI CARATTERISTICI DELLE MEMORIE •Velocità di risposta (lettura/scrittura); •Capacità; •Organizzazione della Memoria; •Potenza dissipata; •Alimentazione; •Numero di pin; •Costo per bit. FASI DI ESECUZIONE DI UN’ISTRUZIONE 1) Fase di caricamento (FETCH) delle istruzioni di programma dalla memoria principale nel registro di istruzione 2) Fase di lettura e decodifica (DECODE) dell'istruzione Il sistema si prepara all’esecuzione dell’istruzione 3) Fase di esecuzione (EXECUTE), l’UG dà alla UAL l’ordine di esecuzione dell’istruzione. L’UAL esegue. MEMORIA AD ACCESSO SEQUENZIALE IN Buffer di ingresso Q1 Q2 Q3 Qi Buffer di uscita Qn OUT sono essenzialmente costituite da uno o più registri a scorrimento, dotati di terminali per la scrittura e la lettura ed eventualmente di un anello per la ricircolazione dei dati 44 MEMORIA AD ACCESSO CASUALE per un’operazione di lettura, occorre far scorrere tutti i bit fino a che esso non viene a trovarsi sull’uscita OUT. Questa tecnica ovviamente comporta una certa lentezza nel funzionamento e viene quindi adottata solo in alcuni tipi di memorie. 45 MEMORIA AD ACCESSO CASUALE Nelle memorie ad accesso casuale è invece possibile accedere direttamente a qualsiasi dato indipendentemente dalla posizione in cui esso si trova. Le celle di memoria sono infatti disposte in strutture a matrice, unidimensionale o più spessobidimensionale. La posizione di ogni cella è definita dalle sue coordinate ovvero dai numeri della riga e della colonna che in essa si intersecano. Se ad esempio vengono attivate la riga R1 e la colonna C1, risulta selezionata la cella X5. Per selezionare una delle 16 celle sono dunque necessarie otto linee, quattro orizzontali e quattro verticali. 46 MEMORIA AD ACCESSO CASUALE Cella selezionata A0 A1 Decodi ficatore di riga Colonna selezionata X0 X1 X2 X3 X4 X5 X6 X7 X8 X9 X 10 X 11 X12 X13 X 14 X 15 A2 A3 Decodificatore di colonna Riga selezionata MEMORIA INTERNA Registri Componenti circuitali che consentono un accesso molto rapido ma possono memorizzare al loro interno un numero molto limitato di byte. Memorie RAM (Random Access Memory) e ROM Supporti ad accesso casuale utilizzati per realizzare la memoria centrale del calcolatore e consentono all’utente di effettuare sulle singole celle entrambe le operazioni di lettura e scrittura. I REGISTRI Il registro istruzioni Si tratta di un registro in cui ogni istruzione di un programma , dopo essere stata letta dalla memoria, rimane depositata per il tempo necessario alla sua esecuzione. Registro contatore di programma Il processore, nel corso dell’esecuzione di un programma, deve essere in grado di reperire e prelevare dalla memoria, di volta in volta, la singola istruzione da eseguire. Il registro dati e il registro indirizzi Si tratta di registri che hanno il compito di collegare la CPU con i bus esterni e sono spesso indicati come buffer di ingresso/uscita e buffer degli indirizzi. I REGISTRI Il registro stack pointer In generale i calcolatori dispongono in memoria di una particolare area, detta pila di sistema, che viene usata in situazioni particolari, come la chiamata a un sottoprogramma, per conservare lo stato del processore e dei registri. Il registro di stato È un registro in cui ogni bit rappresenta logicamente un indicatore (flag) che consente di conservare particolari informazioni relative alle condizioni verificatesi nel corso dell’ultima operazione eseguita. CLASSIFICAZIONE DELLA MEMORIA PRINCIPALE LA RAM RAM (Random Access Memory): è possibile accedere ad ogni locazione in modo casuale. Puà essere utilizzata sia per leggere che per memorizzare dati e/o istruzioni. è una memoria volatile, che si svuota appena finito l’uso di un’applicazione. RAM statica: (SRAM: static RAM) la cella elementare che memorizza un bit è costituita da un latch; durante l’operazione di scrittura esso viene portato in stato di set o di reset e vi rimane indefinitivamente fino a quando non viene eseguita un’altra operazione di scrittura o non viene a mancare l’alimentazione RAM dinamica: (DRAM) la cella elementare che memorizza un bit è formata essenzialmente da un condensatore; la scrittura di un bit di valore 1 consiste nell’immagazzinamento di una certa quantità di carica sull’elemento capacitativi mentre l’assenza di carica corrisponde ad un bit di valore 0. il vantaggio di consentire una più alta densità di integrazione CLASSIFICAZIONE DELLA MEMORIA PRINCIPALE LA ROM ROM (Read Only Memory): è una memoria a sola lettura. E’ generalmente utilizzata per memorizzare programmi non modificabili e le operazionid i governo dell’unità centrale (microprogrammi). E’ non volatile. PROM (Programmable ROM): è una ROM senza dati memorizzati. Può essere scritta una sola volta attraverso particolari circuiti ed è utilizzata come supporto per la memorizzazione di microprogrammi e di segmenti critici del software di base (per le operazioni più ricorrenti) al fine di velocizzare l’esecuzioni di alcune operazioni CLASSIFICAZIONE DELLA MEMORIA PRINCIPALE Tipologie di PROM EPROM (erasable PROM): variante che rendi più veloce la memoria di tipo PROM. Se viene esposta ai raggi ultravioletti può essere totalmente cancellata. EEPROM (Electrically Erasable ROM): variante della memoria EPROM, riprogrammabile con particolari impulsi elettrici. Sono in generale memoria di sola lettura. Vengono scritte una volta e lette e tante volte LA MEMORIA INTERNA AL SISTEMA DI ELABORAZIONE La RAM, Random Access Memory, è una memoria volatile, che si svuota appena finito l’uso di un’applicazione. Si misura in Mega Byte: 64,128, 256, 512 Mb Il BIOS, Basic input-output system, è una memoria non volatile, che contiene le informazioni base del sistema e dell’interazione con le periferiche, detta ROM (Read only memory) o attualmente Flash memory, che può essere aggiornata Cache Memory: è una memoria ad alta velocità che si interfaccia tra il processore e la memoria di sistema BIOS E LO START-UP DEL PC Il BIOS e' un chip ROM che e' specifico di una data piastra madre. Le istruzioni e dati in esso contenuti rimangono praticamente fisse per tutto il ciclo di vita del PC e sono utilizzate dalla CPU all'accensione del PC. Il programma nella ROM contiene in primo luogo le istruzioni per la partenza (start-up) del PC che si possono dividere in: POST (Power On Self Test) Istruzioni per il controllo del funzionamento elettronico dei dispositivi all'accensione del PC SETUP Istruzioni per la configurazione dei dispositivi dopo l'accensione e il POST BIOS E LO START-UP DEL PC BIOS Istruzioni per la configurazione dei dispositivi verso il sistema operativo (CMOS) BOOT Istruzioni per la partenza del Sistema Operativo (DOS, OS/2, WINDOWS) In pratica l'hardware viene configurato con i dati presenti nella RAM CMOS i quali vengono definiti nel BIOS attraverso il suo programma di setup. CACHE MEMORY La memoria CACHE è una memoria ad alta velocità che si interfaccia tra il processore e la memoria di sistema Dispositivo utilizzato per la memorizzazione temporanea di dati e/o istruzioni al fine di aumentare la velocità di elaborazione del sistema. L’UG e l’UAL recuperano i dati e/o le istruzioni direttamente da questa memoria. Il funzionamento consiste nel leggere e trasferire dalla memoria principale nella cache sia il contenuto della locazione che deve essere eseguita che quello delle locazioni adiacenti. Il dispositivo è caratterizzato da una alta velocità di lettura/scrittura ed da un alto costo per bit. 57 TIPOLOGIE DI CACHE cache L1 o primaria, chiamata cache interna, realizzata all’interno del circuito della CPU. Cache L2 o secondaria, chiamata cache esterna, situata sulla scheda madre(più lenta ma espandibile) oppure all’interno del processore. Cache L3 o di comunicazione, situata all’interno dei nuovi processori multicore. 58 Evoluzione delle componenti della memoria principale 1940 ENIAC (primo computer) utilizzo di valvole termoioniche 1950 Calcolatori commerciali (IBM mod. 650 - 610) utilizzo di memoria magnetica a tamburo rotante 1960 - 1975 Anelli di ferrite (materiale facilmente magnetizzabile) 1975 Memorie a semiconduttori La gerarchia della memoria La filosofia della gerarchia della memoria consiste nel portare verso il vertice della piramide le informazioni più utilizzate dalla porzione di programma in esecuzione (che possono cambiare nel tempo) così che nella maggior parte dei casi il tempo di accesso coincide con quello delle memorie più rapide. Per questo motivo sono state inventate le cache, che sono memorie molto veloci, inserite fra la CPU e la memoria centrale. La memoria ESTERNA al sistema La memoria ESTERNA ha lo scopo di memorizzare (e conservare) le informazioni nel tempo. Caratteristiche: Capacità di memorizzazione; velocità di accesso ai dati; Costo per bit I DISPOSITIVI DI MEMORIA DI MASSA Fra i dispositivi di memoria di massa, ricordiamo disco rigido (hard disk), dischetti (floppy), nastri e cartucce magnetiche, magneto-ottiche e ottiche, CD-ROM, DVD.. I dispositivi ESTERNI di memoria HARD DISK: costituisce la memoria ausiliaria dell’elaboratore, un’estensione della memoria centrale, dove vengono “appoggiati” dati e programmi; Floppy disk: dischetti che contengono circa 1,44 Mb (ormai fuori commercio); CD-ROM : contiene fino 750 MB di dati; DVD a singolo strato contiene 4,7 Gb a doppio strato 8 GB; BLU-REY DISC: può contenere fino a 54 Gb di dati grazie all’utilizzo di un lase a luce, appunto, blu. (ormai standard per l’alata definizione video); FLASH MEMORY: le “pennette USB”, le memorie per le macchine fotografiche, ormai siamo con l’ipod a 180 Gb. Tecnologia utilizzata Elettronica a transistor Elettronica a condensatori Magnetica Nome dispositivo Registri CPU Cache RAM Hard Disk Floppy Disk Ottica Compact Disk Digital Versatile DIsk Velocità di accesso < 10 × 10–9 sec (miliardesimi) < 20 × 10–9 sec < 1000 × 10–9 sec < 10 × 10–3 sec (millisecondi) Costo per milione di byte Dimensioni Volatile 100 € < 1 Kb SI 100 € 0 - 512/1024 Kb SI 10 € 4 - 256/512 Mb SI 0,30 € 8 - 32 Gb NO 0,25 € 1,4 Mb NO < 100 × 10–3 sec 0,01 € 650 Mb NO < 100 × 10–3 sec 0,05 € 4,7 - 18 Gb NO 100 × 10–3 sec LA MEMORIA “FLASH” La memoria flash, anche chiamata flash memory, è una tipologia di EEPROM quindi di memoria virtuale, che per le sue prestazioni può anche essere usata come memoria a lettura scrittura. Quando viene utilizzata come ROM viene anche chiamata flash ROM. La memoria flash, trattandosi di memoria a stato solido, non presenta alcuna parte mobile quindi è piuttosto resistente alle sollecitazioni e agli urti, inoltre è estremamente leggera e di dimensioni ridotte. Memoria FLASH In una memoria flash le informazioni vengono registrate in un array di Floating Gate MOSFET, una tipologia di transistor ad effetto di campo in grado di mantenere carica elettrica per un tempo lungo. Ogni transistor costituisce una "cella di memoria" che conserva il valore di un bit. Le nuove flash utilizzano delle celle multilivello che permettono di registrare il valore di più bit attraverso un solo transistor. CompactFlash SmartMedia MultiMediaCard Memory Stick PRO Secure Digital MicroSD xD-Picture Card chiave USB