Riassunto Architettura dei calcolatori. Un approccio strutturale. Con CD-ROM PDF

Title Riassunto Architettura dei calcolatori. Un approccio strutturale. Con CD-ROM
Author Luca Fortunato
Course Tecnologie Web Multimediali
Institution Università degli Studi di Udine
Pages 23
File Size 347 KB
File Type PDF
Total Downloads 247
Total Views 711

Summary

ARGOMENTI ARCHITETTURA DEGLI ELABORATORI(manca algebra booleana+op)Introduzione Un calcolatore è una macchina capace di eseguire una serie di istruzioni semplici, dette istruzioni macchina.Un calcolatore è formato dal processore, quest'ultimo è l'entità che esegue le istruzioni ed è realizzato media...


Description

ARGOMENTI ARCHITETTURA DEGLI ELABORATORI (manca algebra booleana+op.binarie) Introduzione Un calcolatore è una macchina capace di eseguire una serie di istruzioni semplici, dette istruzioni macchina. Un calcolatore è formato dal processore, quest'ultimo è l'entità che esegue le istruzioni ed è realizzato mediante circuiti integrati, così come la memoria. La memoria del calcolatore è l'entità che memorizza i dati e si divide in memoria permanente (memoria di massa o secondaria, disco rigido) e in memoria operativa (memoria principale, random access memory). La prima contine in maniera permanente i dati, la seconda li contiene solo al momento della loro elaborazione. Un dato si misura in byte, uno spazio di memoria sufficiente a memorizzare un carattere o un numero naturale compreso tra 0 e 255. Ciò che permette al processore e alla memoria di comunicare viene chiamato bus ed è una sorta di connettore di fili, questo collega anche le periferiche come schermo, tastiera, mouse, scheda video, scheda audio, etc. Un calcolatore oltre ad essere formato dai diversi dispositivi hardware elencati è dotato di un sistema operativo, questo permette l'iterazione uomo-macchina. Storia dei calcolatori 1642 Pascal Calcolatrice meccanica (somma e sottrazione) 1670 Leibiniz Calcolatrice meccanica (divisione e moltiplicazione) 1834 Barbace Calcolatrice meccanica programmabile 1930 Zuse Macchina calcolatrice a relè 1944 Aiken Macchina programmabile a relè 1946 Eniak Primo calcolatore a valvole 1951 Von Neumann IAS 1954 IBM Primo calcolatore a transistor 1958 (in poi) Calcolatore a circuiti integrati

In quali anni sono state costruite le prime macchine calcolatrici programmabili? Tra la metà dell'800 e la metà del '900, la prima calcolatrice meccanica programmabile fu opera di Barbace(1834), seguita dalla macchina programmabile a relè(1944, Aiken) e dal primo calcolatore a valvole(1946, Eniak). Quest'ultimo fu sostituito dal primo calcolatore a transistor(1954, IBM), alla base dei moderni calcolatori a circuiti integrati. L'evoluzione dei calcolatori a livello di componenti segue la cosidetta legge di Moore, questa dice che “la complessità di un microcircuito, misurata ad esempio tramite il numero di transistori per chip, raddoppia ogni 18 mesi”. Un circuito integrato è un'unità contenente insiemi di porte logiche, essa è fatta in silicio, è di forma rettangolare e in base alla sua dimensione (numero di porte e di pin) un circuito è del tipo Dual Inline Package, Pin Grid Arrays o Land Grid Arrays.

Circuiti logici di base Nei calcolatori il segnale elettrico rappresenta l'informazione e viene trasmesso sotto forma di segnale digitale, in quanto più semplice (bit alto, bit basso), affidabile e tollerante ai guasti del segnale analogico. Alla base della trasmissione del segnale vi sono i circuiti logici: DECODER (decodificatore) Utilizzato per selezionare uno specifico dispositivo fra un gruppo di essi disponibili, il decodificatore presenta un numero n di ingressi e un numero nk uscite, l'uscita che risulta essere di valore diverso alle altre (solitamente il valore combacia con il bit alto 1) risulta essere quella selezionata. Un impiego comune del decoder è la selezione di un chip di memoria, tra quelli presenti nel calcolatore. MULTIPLEXER Utilizzato per l'implementazione di una qualsiasi tabella di verità, presenta 2n ingressi, n ingressi di controllo e una sola uscita. Questo circuito è anche alla base della conversione da parallelo a serie, per ottenere la conversione inversa invece viene utilizzato il DEMULTIPLEXER: quest'ultimo risulta essere dotato di 2n output, n ingressi di controllo e 1 un'unica uscita. COMPARATORE Utilizzato per il confronto fra due stringhe di bit, questo circuito è formato da tanti ingressi quanti sono i bit delle stringhe. Se gli n ingressi della prima, sono uguali agli n ingressi della seconda, l'uscita comunicherà l'uguaglianza. SHIFTER(registro a scorrimento) Utilizzato per lo spostamento dei bit verso destra o verso sinistra, risulta un circuito alla base delle operazioni aritmetiche di divisione e moltiplicazione binaria. ADDER(sommatore) e HALF-ADDER(mezzo sommatore) Il mezzo sommatore è utilizzato per somme semplici, in quanto non gestisce i riporti delle posizioni precedenti, funzione supportata invece dal sommatore, circuito composto da due half hadder e in grado di considerare tutti i riporti. LATCH e FLIPFLOP Questi due circuiti sono alla base dei circuiti sequenziali e sono in grado di memorizzare i valori delle istruzioni in ingresso. Nel caso dei latch possiamo distinguere due possibili modalità di funzionamento. Un latch può essere “trasparente” o “in memorizzazione” e si troverà nell’uno o nell’altro stato a seconda del livello del segnale di clock. Quando un latch è “trasparente” ogni variazione dell’ingresso D comporta immediatamente una variazione dell’uscita Q. Viceversa, quando il latch si trova in fase di “memorizzazione”, l’uscita rimane bloccata all’ultimo valore assunto ed è indipendente da qualsiasi variazione che si può avere in ingresso. A differenza di un latch, un flip-flop non è mai trasparente. Il funzionamento di un flipflop non è scandito dal livello del segnale di clock ma dai suoi fronti di commutazione. Nel caso di un flip-flop comandato dal fronte di salita del segnale di clock, viene memorizzato il valore dell’ingresso D in corrispondenza della transizione 0→ 1 del segnale di clock. Il valore memorizzato viene immediatamente trasferito all’uscita Q. Un flip-flop comandato dal fronte di discesa memorizza nella transizione 1→ 0 del clock.

Latch e flipflop sono in grado di memorizzare dati composti da un singolo bit, per far fronte alla memorizzazione di dati composti da più bit si utilizzano i registri. Un registro è una combinazione di diversi flipflop, ognuno dei quali realizzabile con due latch, che riceve in ingresso n bit ognivolta che c'è un transazione di clock. Un circuito sequenziale è un circuito in cui il comportamento di ingressi e uscite dipende dalla storia passata. Il segnale di clock è un segnale periodico che gestisce la sincronizzazione e il funzionamento dei circuiti. BUFFER Circuito a tre stati che fa le veci di un interruttore, composto da un ingresso, un'uscita e un dato di controllo: se quest'ultimo risulta attivo il buffer collega, altrimenti funge da circuito aperto. Componenti del calcolatore in dettaglio LA MEMORIA PRIMARIA o CENTRALE Nel calcolatore sono presenti unità contenenti un notevole numero di registri, queste sono dette circuiti di memoria o memorie. Per accedere ad esse e ai loro dati si seleziona il registro, specificando il suo indirizzo e l'operazione da eseguire (lettura o scrittura). La memoria si divide in primaria e secondaria, la prima raggruppa diversi tipi di memorie veloci ma poco capacitive che vengono utilizzate per memorizzare i dati temporaneamente, la seconda invece riguarda le memorie che conservano i dati del calcolatore e risultano capacitive ma lente. Si analizzano in seguito le memorie primarie. La RAM, acronimo di Random Access Memory ovvero memoria ad accesso casuale, è un tipo di memoria volatile caratterizzata dal permettere l'accesso diretto a qualunque indirizzo di memoria nello stesso tempo. Quest'ultimo viene detto tempo d'accesso ed è ciò che la caratterizza, infatti pur non essendo molto capacitivà, la memoria RAM risulta molto veloce. Essa si divide in diversi tipi: SRAM Memorie statiche in grado di mantenere il proprio contenuto fin tanto che sono alimentate. L'implementazione risulta costosa (6 transistor) ma la velocità nei tempi d'accesso sono elevate. La SRAM è alla base della memoria CACHE (approfondita in seguito). DRAM Contrariamente alla memoria ram statica, la DRAM risulta più lenta dell'altra ma facile ed economica da implementare. Queste caratteristiche sono dovute al fatto che la memoria ram dinamica risulta composta da array di celle, ognuna di esse formate da un solo transistor e da un condensatore. Quest'ultimo viene caricato e scaricato per memorizzare un bit. La minor velocità è dovuta al fatto che è necessario un intervallo di refresh, in quanto la carica del condensatore tende a disperdersi e per aggiornare il condensatore viene perso circa il 10% del tempo d'accesso. La DRAM viene utilizzata come memoria centrale.

Nota: L'accesso alla memoria DRAM prevede che il contenuto di un'intera riga venga copiato in un registro e vengano letti i bit selezionati dalla riga. L'evoluzione della memoria centrale ha portato i progettisti ad utilizzare come memoria centrale la SDRAM una memoria ibrida. Oltre alle memorie volatili, sono presenti i chip di memoria non volatile e sono utilizzati per la memorizzazione permanente di dati che devono essere mantenuti anche quando il calcolatore non è alimentato, per esempio dati di configurazione del dispositivo. Read Only Memory I dati contenuti dalla memoria sono inseriti durante la fabbricazione, totale impossibilità di modifica o cancellazione, per cambiare i dati della memoria è necessario sostituire il chip. La ROM per tanto è una memoria di sola lettura e presenta costi di produzione bassi. Essa viene solitamente utilizzata per gli elettrodomestici. Programmable Read Only Memory La memoria risulta programmabile una sola volta, quindi è possibile inserire dei dati dopo la fabbricazione della memoria; Per farlo è necessario bruciare i fusibili della memoria e quindi si compie un azione irreversibile. La PROM viene solitamente utilizzata per dispositivi di piccole dimensioni. Erasable Programmable Read Only Memory La memoria prevede che i dati possano essere cancellati mediante esposizione a raggi ultravioletti. Questo garantisce la riprogrammazione ma richiede che il chip venga rimosso dal calcolatore per essere lavorato in uno specifico ambiente. La memoria EPROM viene utilizzata per i prototipi. Electrically Erasable Programmable Read Only Memory Come la EPROM, la EEPROM risulta utilizzata per i prototipi principalmente di lettura, essa prevede la cancellazione non è necessario rimuovere il chip dal calcolatore e avviene sui singoli bit, rendendo possibile la modifica dei

ed è una memoria elettrica quindi quest'operazione byte.

Flash Memory L'ultima evoluzione delle memorie non volotili ha portato alle memorie flash, queste sono cancellabili a blocchi e riscrivibili, quindi sono memorie sia di lettura sia di scrittura; hanno tempi d'accesso e consumi bassi, lo svantaggio è un costo molto alto. Vengono solitamente utilizzate nelle macchine fotografiche, ma il progressivo diminuire dei costi, porterà la flash memory a sostituire le altre memorie non volatili nei dispositivi del futuro. LA MEMORIA SECONDARIA o DI MASSA Come detto in precedenza, vi sono delle memorie che risultano lente rispetto alle memorie che fanno parte della memoria primaria, ma che allo stesso tempo sono molto più capacitive. Un esempio sono i dischi magnetici e i dischi ottici. Dischi magnetici Un disco magnetico consiste in uno o più piatti di alluminio rivestiti di materiale magnetico. E' possibile leggere e scrivere flussi di bit in quanto ogni disco rimane sospeso e ruota sopra una superficie, fra essi vi è una

testina, detta testina del disco, nella quale passa corrente allo scopo di magnetizzare la zona di superificie che si trova al disotto(scrittura) oppure allo scopo di analizzare l'area se essa risulta già magnetizzata(lettura). La sequenza di bit scritta durante una rotazione completa è chiamata traccia, questa è divisa in settori di lunghezza fissa. Ogni settore viene preceduto da un preambolo e seguito da un codice di correzione degli errori. Ogni traccia può essere scritta in corrispondenza di una diversa distanza radiale, quindi le tracce sono una serie di centri concentrici attorno all'asse di rotazione del disco. La larghezza di ognuna di esse dipende da quanto è larga la testina, una testina più stretta comporta maggiori tracce per il disco magnetico. Per leggere o scrivere un settore il braccio della testina determina la posizione corretta del settore stesso (seek) e poi, dopo un ritardo causato dall'attesa che il settore desiderato si posizioni sotto la testina (latenza rotazionale), l'operazione può avvenire. Queste due fasi, che precedono la lettura e la scrittura, determinano la velocità di trasferimento di un disco magnetico. Per valutare le prestazioni inoltre si considerano il burst rate, cioè la velocità a cui la testina può leggere dati dopo essersi posizionata sul primo bit e il sustained rate che definisce la velocità di lettura media in un intervallo di alcuni secondi considerando anche i tempi di ricerca della posizione e le latenze rotazionali. L'insieme delle tracce alla stessa distanza dal centro è detta cilindro, gruppi di cilindri formano diverse zone nel disco, man mano che ci si allontana dal centro del disco le zone aumentano e allo stesso modo anche i settori per traccia. Ad ogni disco è associato un controllore del disco che si occupa di: -accettare i comandi del software(lettura, scrittura) -controllare il movimento del braccio -rilevare e correggere errori -bufferizzazione per riutilizzo -rimappaggio dei settori danneggiati RAID e SLED Dei tre elementi fondamentali di un qualsiasi sistema computerizzato: processore, memoria primaria e memoria secondaria, quest’ultimo è di gran lunga il più lento. Inoltre, il guasto di un hard disk è potenzialmente il più dannoso: se si guasta, tutti i dati che contiene sono inutilizzabili o vengono persi. Un sistema RAID è una configurazione della memoria secondaria che permette di aumentare le prestazioni degli hard disk e/o la loro affidabilità. L’acronimo sta per Redundant Array of Independent Disks e in modo simile alla contrapposizione RISC/CISC, fu definita la controparte dei sistemi RAID, indicata con l’acronimo Single Large Expensive Disk. Un sistema RAID è composto da un insieme di hard disk (un disk array) ma viene visto dal sistema operativo che lo usa come un normale disco singolo (dovremmo dire: come uno SLED), tuttavia più veloce ed affidabile di uno SLED. In particolare, un sistema RAID è normalmente costituito da uno SCSI controller e da un insieme di dischi SCSI (Small Computer System Interface). La logica interna al RAID organizza l’uso dei vari dischi come un unico dispositivo di memorizzazione, la possibilità di usare un sistema RAID come

se fosse un normale hard disk SCSI fa si che non siano necessari cambiamenti software nel sistema operativo che deve usare il RAID. Le idee di fondo di un sistema RAID sono sostanzialmente due: -distribuire l’informazione memorizzata su più dischi, in modo da parallelizzare una parte delle operazioni di accesso ai dati e guadagnare in prestazioni. -duplicare l’informazione memorizzata su più dischi, in modo che in caso di guasto di un disco sia possibile comunque mantenere funzionante il sistema, recuperando l’informazione memorizzata sul disco guasto. Differenti schemi sono stati proposti per realizzare questi due principi, a cui corrispondono diversi livelli di sistemi RAID: dal livello 0 al 6. Il livello zero del sistema RAID un sistema operativo vede un disco come formato da blocchi logici, numerati consecutivamente partire da 0, questo prende il nome di disco virtuale. In un RAID livello 0, il disco virtuale viene mappato dalla logica del RAID sui vari settori dei vari dischi di cui è composto il sistema suddividendo i blocchi logici del disco virtuale in strips (strisce) di k blocchi consecutivi ciascuna. Quindi, lo strip 0 contiene i blocchi logici da 0 a k - 1, lo strip 1 contiene i blocchi logici da k a 2k - 1, e così via. Il RAID controller suddivide poi gli strip tra i dischi del sistema secondo la formula: numero-strip MOD dischi-nel-sistema. Ad esempio, se sono disponibili 4 dischi, il disco 0 conterrà gli strip 0, 4, 8,... il disco 1 conterrà gli strip 1, 5, 9,..., e così via Questa tecnica è nota come striping, e in realtà era già adottata prima dell’introduzione del concetto di RAID. I sistemi RAID di livello 0 non sono in senso stretto dei sistemi RAID, in quanto non c’è nessuna duplicazione dei dati. I produttori di sistemi RAID offrono, tra le configurazioni possibili, anche il livello 0 nel caso in cui l’utilizzatore voglia solo massimizzare le prestazioni e la capacità del sistema. Ma perché le prestazioni di un sistema RAID di livello 0, attraverso l’uso dello striping, sono migliori di un normale disco che memorizza le stesse informazioni? Supponiamo che il sistema operativo richieda la lettura (o scrittura) di un insieme di dati contenuti in 4 strip consecutivi. Ad esempio, i dati sono contenuti negli strip 4, 5, 6 e 7. Il controller RAID suddividerà la richiesta in 4 letture che possono essere eseguite in parallelo sui 4 dischi del sistema, con un evidente aumento delle prestazioni rispetto alla lettura degli stessi settori su di un singolo disco, che deve leggere i settori di cui sono composti tutti gli strip in sequenza. Il SO non si accorge di nulla, se non che riceve i dati richiesti più velocemente che nel caso di un normale disco SLED. Un RAID di livello 0 è tanto più efficiente quanto più le richieste coinvolgono l’accesso a molti blocchi consecutivi e quanto più è alto il numero di dischi su cui sono suddivisi i blocchi. Inoltre, l’affidabilità di un sistema RAID di livello 0 è inferiore a quella di un semplice disco SLED, perché il RAID è formato di più dischi e il Mean Time To Failure (MTTF) non può che essere inferiore.

Il RAID livello 0 viene usato in quelle applicazioni in cui sono necessarie alte prestazioni, senza particolari problemi di affidabilità (e.g., audio e video streaming)

Il livello 1 del sistema RAID Un RAID di livello 1 usa contemporaneamente striping e mirroring: tutti i dati sono suddivisi in strip (gestiti come nel livello 0) e duplicati su due dischi. Quando un disco si rompe, il sistema di controllo del RAID si rivolge al disco di mirror per l’accesso ai dati. Nel frattempo, il disco rotto può essere sostituito. Il livello 1 è la soluzione RAID più costosa, a parità di capacità di memorizzazione, perché richiede la duplicazione di tutti i dischi. E' anche la soluzione più affidabile rispetto ai guasti, e la più efficiente in lettura: anche la lettura di un blocco di dati che coinvolge 5 strip, può essere eseguita con cinque letture in parallelo, usando anche i dischi di mirroring. Il RAID livello 1 viene usato dove l’affidabilità è fondamentale, ad esempio per memorizzare dati finanziari e bancari. Dischi ottici Il disco ottico è una tipologia di supporto di memoria costituito da un disco piatto e sottile di policarbonato trasparente. Al suo intero viene inserito un sottile foglio metallico di alluminio su cui vengono scritte e lette sequenze di bit, mediante un raggio laser. L'evoluzione dei dischi ottici comincia nel 1980 con il Compact Disk, il primo supporto digitale di memorizzazione di massa, esso sostituì il vinile e fissò uno standard di dimensioni dei dischi. Standard mantenuto per ragioni di compatibilità anche dal suo successore il Compact Disk-Read Only Memory, dal CD-Registrable e dal CD-Rewritable. In dettaglio, un CD viene creato per mezzo di un laser infrarosso ad alta potenza che crea sulla superficie del disco di vetro dei buchi di diametro prefissato. A partire da qusto viene creato uno stampo che presenta rilievi in corrispondenza delle scalanature prodotte dal laser. Rispettivamente le zone incise sono dette pit, quelle non incise fra quest'ultime sono dette land. Dopo 25 anni dalla comparsa dei CD, con le stesse dimensoni ma dotato di pit più piccoli, raggio laser a frequenza più alta, nuovi metodi di correzione degli errori e maggior capacità di memoria: si diffonde il Digital Versatile Disk. Qualche anno più tardi solamente, con caratteristiche ancora migliori, nasce il Blu-Ray Disk. Nota: Il DVD può avere diverse capacità -dvd strato singolo singola facciata 4,7GB -dvd strato singolo doppia facciata 9,4GB -dvd strato doppio singola facciata 8,4GB -dvd strato doppio doppia facciata 17GB

IL PROCESSORE Il processore o Central Processing Unit ha la funzione di eseguire i programmi contenuti nella memoria principale prelevando le loro istruzioni, esaminandole ed eseguendole una dopo l'altra. La CPU è composta da: -Unità di controllo (gestisce il funzionamento della CPU) si occupa di prelevare l...


Similar Free PDFs