920 likes | 938 Views
Università degli Studi di Catania Facoltà di Ingegneria Architettura del Calcolatore. Indice. Evoluzione del Computer Il modello di Von Neumann Descrizione dell'Architettura da Studiare Circuiti di Temporizzazioni (Clock) Memorie RAM, ROM, Cache Unità centrale di processo (CPU)
E N D
Università degli Studi di Catania Facoltà di Ingegneria Architettura del Calcolatore
Indice • Evoluzione del Computer • Il modello di Von Neumann • Descrizione dell'Architettura da Studiare • Circuiti di Temporizzazioni (Clock) • Memorie RAM, ROM, Cache • Unità centrale di processo (CPU) • Direct Memory Access (DMA) • Circuiti di Interrupt • Chipset • BIOS • Bus di comunicazione • Controllore di periferiche (Controller) • Periferiche e Memorie di Massa
Evoluzione: tecnologia • Sistemi Meccanici • Sistemi Meccanici/Elettrici • Sistemi Elettronici basati su Valvole • Sistemi Elettronici basati su Transistor • Sistemi Elettronici basati su Circuiti Integrati • Sistemi Elettronici basati su Microprocessori
Evoluzione: tipi di calcolatori • 1950 – Mainframe locale: batch (prima), time sharing (dopo) • 1960 – Mainframe remoto: linee di telecomunicazioni. • 1970 – Mini Computers: ambienti meno restrittivi, costi accessibili, time sharing, Unix, Linguaggio C • 1980 – Personal Computers: uso "domestico", applicativi per compiti comuni (es.videoscrittura). • 1990 – PC connessi in Reti di Calcolatori: PC con capacità elaborative ed interfacce ad alte prestazioni, LAN, Internet. • 2000 – Internet: reti a larga banda • Futuro Prossimo - Griglie Computazionali
MEMORIA CENTRALE CPU INTERFACCIA I/O PERIFERICHE Il modello di Von Neumann
Bus di controllo DMA Bus di indirizzi ROM RAM Clock CPU Bus di dati Interrupt Controller dischi, CD-ROM,etc. Connettori Periferiche I/O BIOS Bus di I/O Architettura Studiata
tempo T Circuiti di Temporizzazione (Clock) • Il megahertz (MHz) è l'unità di misura della frequenza alla quale il processore funziona; • indica quanti milioni di oscillazioni al secondo (1 oscillazione al secondo = 1 hertz [Hz]) sono generate dal clock. • f=1/T Hz.
Circuiti di Temporizzazione (Clock) • In generale il clock é prodotto da un apposito circuito integrato, la cui oscillazione é controllata da un cristallo di quarzo. • Il cristallo di quarzo garantisce una elevata stabilita nel tempo e con il variare della temperatura ed una grande precisione nel valore della frequenza prodotta, quanto meno possibile influenzato dalla temperatura e dall' invecchiamento. • In generale il quarzo di partenza é il 14.318 MHz • Scelta legata alla diffusione e economicità
Circuiti di Temporizzazione (Clock) • Partendo dal quarzo a 14.318MHz, vengono generate frequenze più elevate (50, 60, 66, 100MHz). • Ogni area del PC che contiene un processore o un microcontrollore, necessita di un clock, che puó essere generato in loco o dipendere dal clock principale. • Giá a partire dalle architetture basate sulla CPU 80486, é diventato comune avere per il processore un clock piú elevato di quello generale del sistema.
Memorie InterneRAM, ROM e Cache • Misura della Memoria • Classificazione della Memoria: • Interna ed Esterna • Memoria Interna: Caratteristiche Generali • RAM Statica • RAM Dinamica • ROM, PROM, EPROM, EEPROM, Flash Memory • Memoria Cache
Misura della Memoria • Informazione di base = bit • Raggruppamenti utilizzati: • 1 byte = 8 bit • 1 word = N byte • Multipli (bit/byte) • K (Kilo) = 210(=1024) circa 103 • M (Mega) = 220(=1024*1024=1.048.576) circa 106 • G (Giga) = 230 circa 109 • T (Tera) = 240 circa 1012 • P (Peta) = 250 circa 1015
Alcuni Valori da Ricordare • 24 = 16 • 28 = 256 • 216 = 65536 = 64 K (65536/1024)
Memoria Interna o Centrale • memorizza programmi e dati su cui lavora la CPU a cui è collegata tramite il bus principale: • si accede al singolo bit/byte/word • tempi di accesso bassi (<70 ns); • dimensioni tipiche sono 256Mbytes/512Mbytes • realizzata con circuiti elettronici
Memoria Esterna o di Massa • memorizza dati e programmi sotto forma di file. Per l’elaborazione, si devono trasferire programmi e dati in memoria centrale: • Si accede a blocchi (cluster/settori) • Non è possible leggere/scrivere singoli bit/byte • tempi di accesso elevati (msec) • capacità elevate (decine/centinaia di Gbytes) • Può essere: • Memoria di Massa on-line, normalmente realizzata con dischi magnetici fissi • Memoria di Massa off-line, normalmente realizzata con supporti (magnetici/ottici/elettronici) rimovibili
1 bit 0 1 2 bus degli indirizzi n fili bus dei dati bus di controllo read/write (strobe) m-1 Memoria Interna: Caratteristiche Generali
Memoria Interna: Caratteristiche Generali • Indirizzi e valori: Con n bit di indirizzo si possono selezionare 2n caselle (m=2n). • Strobe: sono segnali generalmente impulsivi che vengono inviati dopo il posizionamento dell’indirizzo per discriminare tra operazione di letture e scrittura
Memoria Interna: Caratteristiche Generali • Tempi di servizio: accesso, ciclo (misurati in clock). • Accesso. E' il tempo necessario affinché la memoria ponga in uscita il valore richiesto (o possa registrare il valore in ingresso), dopo aver posizionato l'indirizzo e lo strobe. • Ciclo. E' il tempo minimo che deve intercorrere tra due posizionamenti validi dell’indirizzo e dello strobe. • Modificabilità: Memoria a Sola Lettura/Riscrivibile. • Qualsiasi memoria deve essere scritta almeno una volta. • Le memorie che non possono essere riscritte si dicono a sola lettura; • altrimenti sono riscrivibili.
Memoria Interna: Caratteristiche Generali • Persistenza: permanenti/volatili. Sono permanenti le memorie che mantengono i dati senza bisogno di alimentazione elettrica; altrimenti si dicono volatili. • Accessibilità: casuale /sequenziale. Se non esiste alcun vincolo sulla sequenza degli indirizzamenti effettuati, si parla di memoria ad accesso casuale; quando invece il successivo indirizzo è l’attuale incrementato di uno si parla di memorie ad accesso sequenziale.
1 bit bus degli indirizzi n fili bus di controllo read/write bus dei dati Memoria Interna: Caratteristiche Generali
Memoria Interna: Caratteristiche Generali • Possiamo identificare diversi livelli funzionali di memoria: • Random Access Memory (RAM) • Read Only Memory (ROM) • Memoria Cache
RAM - Random Access Memory • Il termine RAM deriva da Random Access Memory • Memoria Volatile • La mancanza di tensione provoca la perdita di tutte le informazioni contenute. • In presenza di tensione, ciascuna informazione memorizzata rimane fino alla successiva scrittura. • Memoria ad accesso casuale • Attualmente assumono valori tipici di centinaia/migliaia di MBytes.
RAM - Random Access Memory • La RAM vengono utilizzate per i seguenti scopi: • memorizzare il Sistema Operativo (ad esempio Windows). • memorizzare i programmi utenti prima della loro esecuzione. • memorizzare i dati utenti provenienti dalle periferiche o quelli intermedi. • La RAM può essere realizzata in differenti modi, ma quella più comune è: • RAM dinamica (DRAM)
RAM DINAMICHE (DRAM) • La DRAM usa delle capacità (condensatore) interne per memorizzare i dati. • Le capacità perdono la loro carica dopo un certo intervallo di tempo. Queste capacità necessitano di un costante rinfresco per mantenere inalterata l'informazione memorizzata. • Il risultato finale è che tra due accessi consecutivi alla memoria, una carica elettrica viene mandata a rinfrescare la capacità del chip di memoria affinché il dato venga mantenuto nello stato logico corretto. • Durante il rinfresco della memoria non è possibile accedere ad essa, rallentando, dunque, le sue prestazioni in termini di accessi in lettura/scrittura.
RAM DINAMICHE (DRAM) • Utilizzano un condensatore per memorizzare 1 Bit • Necessitano di un circuito di Refresh • Consumano poco • Sono abbastanza veloci (da 10 a 70 ns) • Tipi di DRAM obsolete: • FP DRAM (fast page) • EDRAM (DRAM Evoluta) • EDO RAM (extended data output RAM).
RAM DINAMICHE (DRAM) • SDRAM. Quando sono apparsi i Bus con clock a 100 MHZ, si sono affermate le memorie dinamiche di tipo sincrono SDRAM. La Intel ha definito le specifiche PC100 (PC 133). • RAM BUS (o RDRAM) hanno un canale da 16 bit a 800 Mhz • Le DDR (double data rate) sono un tipo di SDRAM che lavorano sui due fronti del clock. Sono chiamate: • DDR 300 (riferendosi al doppio del clock effettivo, 150 MHz) • PC 2400 (riferendosi alla banda 8 byte * 2 * 150 MHz) o PC 2100 (8*2*133 Mhz)
RAM DINAMICHE (DRAM) • Attualmente esistono le DDR-II • Sono caratterizzate da più elevate velocità di clock rispetto a DDR (circa il doppio), che a sua volta raddoppiò la velocità della SDRAM. • La maggiore velocità è legata alla presenza di buffer di I/O con clock doppio del bus interno rispetto quello di funzionamento di ogni cella di memoria • Si raddoppia il numero di bit letti ad ogni ciclo ed inviati al bus interno • Esempi di Chip • DDR2-400: chip di memoria con frequenza di 100 MHz, buffer di I/O con frequenza di 200 MHz. • DDR2-533: frequenza di 133 MHz, buffer di I/O a 266 MHz. • DDR2-667: frequenza di 166 MHz, buffer di I/O a 333 MHz. • DDR2-800: frequenza di 200 MHz, buffer di I/O a 400 MHz. • DDR2-1066: frequenza di 266 MHz, buffer di I/O a 533 MHz.
RAM DINAMICHE (DRAM) Sono montate su moduli (schedine): • SIMM (30 pin)single in line module; hanno una doppia fila di contatti ma connessi a coppie, quindi è come se avessero la metà dei contatti attivi; ogni modulo ha parallelismo 1 byte (un 486 usa 4 banchi) • SIMM (72 PIN); i pin sono sempre organizzati a coppie; ogni modulo supporta 4 byte (il 486 usa un solo banco); montano le EDO RAM • DIMM (168 PIN) Dual Inline Memory Module; tutti i pin sono indipendenti; gestisce 8 byte (un P6 usa un banco); Montano le SDRAM • DIMM (184 PIN); montano le DDR; sono uguali come geometria alle DIMM 168 PIN, ma si differenziano per il fatto di avere una sola tacca • DIMM con dissipatore per RDRAM
RAM DINAMICHE (DRAM) • DIMM per DDR2. I moduli di memoria DDR2 hanno 240 Pin, e sono quindi incompatibili con quelli DDR che hanno 184 pin. • PC2-3200: modulo di memoria con frequenza di clock di 200 MHz, transfer rate di 400 MT/s, chip DDR2-400, e 3,200 GB/s per canale. • PC2-4200: modulo di memoria con frequenza di clock di 266 MHz, transfer rate di 533 MT/s, chip DDR2-533, e 4,267 GB/s per canale. • PC2-5300: modulo di memoria con frequenza di clock di 333 MHz, transfer rate di 667 MT/s, chip DDR2-667, e 5,333 GB/s per canale. • PC2-6400: modulo di memoria con frequenza di clock di 400 MHz, transfer rate di 800 MT/s, chip DDR2-800, e 6,400 GB/s per canale. • PC2-8500: modulo di memoria con frequenza di clock di 533 MHz, transfer rate di 1066 MT/s, chip DDR2-1066, e 8,533 GB/s per canale.
Parametri Prestazionali • Esistono alcuni parametri di funzionamento, tipicamente raccolti sotto il nome di timings • Alcune volte è possibile intervenire manualmente a variare i timings, così da ottenere prestazioni superiori • Tra i vari timings: • CAS (Column Address Strobe) Latency (CL): indica il numero di periodi di clock richiesti dalla memoria per processare una richiesta. • A valori inferiori della latenza corrispondono prestazioni superiori.
Soluzioni Innovative per Incrementare le Prestazioni • Velocità dei processori sempre più elevata, crea dei colli di bottiglia sull’accesso in memoria • Da un pò di anni è stata sviluppata la tecnologia dual-channel • La quantità di dati traferibile dalla CPU alla RAM viene duplicata, utilizzando due bus di dati a 64 bits • Sia Intel sia AMD la usano, con differenti implementazioni • Gli slot di memoria sulla scheda madre si riconoscono perchè colorati
ROM - Read Only Memory • Il termine ROM significa Read Only Memory. • Indicava originariamente il fatto che l'unico tipo di accesso in queste memorie è la lettura (ovviamente la prima scrittura deve essere possibile). • L’attuale ROM è: • Memoria Permanente • Nella ROM l'informazione in essa contenuta rimane anche quando manca la corrente. • Nella ROM l'informazione rimane fino alla successiva scrittura. • Memoria ad accesso casuale
ROM - Read Only Memory • Le ROM vengono in genere utilizzate per memorizzare programmi e dati di configurazione essenziali per il funzionamento del computer che devono essere memorizzati anche quando il computer è spento. • Bios • Esistono differenti tipi di ROM: • ROM non programmabili • PROM. ROM Programmabili • EPROM. Erasable Programmable ROM • EEPROM.Electrical Erasable Programmable ROM • Flash Memory
ROM - Read Only Memory • ROM: sono delle reti combinatorie già predisposte in fabbrica (tramite il processo di mascheratura). Hanno alte capacità bassi costi. • PROM: sono delle reti combinatorie programmabili con un dispositivo da laboratorio. Molto utili per prototipi, possono essere programmate una sola volta. • EPROM: sono programmabili con un dispositivo da laboratorio. Hanno una finestra di quarzo tramite cui è possibile esporre il chip ai raggi U.V. e “cancellare “ il contenuto.
ROM - Read Only Memory • EEPROM: come le EPROM, ma cancellabili con particolari cicli di segnalazione senza togliere dalla piastra il chip. I tempi di cancellazione sono di norma molto più lunghi di quelli di lettura. • Flash Memory: come le EPROM, ma la scrittura avviene per blocchi e non per byte, molto velocemente. • Non può essere usata come la RAM per via della scrittura a blocchi • Si chiama flash perché il microchip è organizzato in sezioni di celle cancellabili in un colpo solo (flash).
Memoria Cache • La memoria cache è generalmente gestita direttamente dalla CPU tramite bus privati. • Lo scopo della memoria cache è quello di reperire informazioni utilizzate recentemente senza doverle nuovamente prelevare dalla RAM. • L'utilizzo della memoria cache rispetto la RAM è più vantaggioso perché: • il bus di indirizzi e dati è locale e non deve essere utilizzato quello comune, che potrebbe essere occupato da altri dispositivi (ad esempio DMA), ritardando l'accesso alla RAM • il tempo di accesso alla cache per lettura/scrittura è molto più basso di quello della RAM (generalmente il tempo di accesso medio alla RAM è 50-70ns, mentre si può arrivare a valori inferiori a 10ns per accedere alla memoria cache).
Memoria Cache • L'uso della memoria cache prevede, però, opportuni accorgimenti dovuti al fatto che la dimensione di una cache è notevolmente inferiore a quella di una RAM • la dimensione tipica della RAM è di centinaia di MBytes, mentre la cache ha dimensioni dell'ordine di alcune centinaia di KBytes. • è impensabile poter memorizzare nella cache tutti i dati letti dalla RAM, ma sarà necessario sovrascrivere alcuni dati contenuti nella cache, per far spazio a nuovi dati da memorizzare.
Memoria Cache • In particolare, si adotta la politica di sovrascrivere i dati più vecchi, ossia quelli non utilizzati da più tempo. • La gestione della cache, può essere formalizzata nella seguente maniera: • la CPU necessita di un particolare dato • la CPU ricerca il dato nella cache • se lo trova, lo legge e lo utilizza • se non lo trova, lo reperisce nella RAM e lo trasferisce nella cache nella locazione più "vecchia", ossia da più tempo non utilizzata.
Memoria Cache • Attualmente le memorie cache hanno dimensioni medie di 256Kbyte, con picchi di 512Kbyte fino ad arrivare a valori di alcuni Mbytes. • Potrebbe sembrare che quanto più grande è la cache, tanto più conveniente sia per le prestazioni della CPU. • Questa affermazione è vera relativamente, in quanto, aumentando la cache oltre certi limiti, il rapporto prezzo/prestazioni diventa non conveniente.
Memoria Cache • Per aumentare ulteriormente le prestazioni, si può: • Frammentare la cache • Trasferire una parte della cache all'interno della CPU • Esistono, dunque, Cache Multi-livello: • L1, di dimensioni minori (8KB...64KB): è in genere contenuta all'interno del Core del processore e opera alla frequenza di clock CPU; • L2 (nelle CPU correnti compresa tra 128KB e 1MB): a seconda del tipo di architettura è posta o all'interno del Core del processore oppure sulla motherboard; opera a frequenze differenti a seconda del tipo di architettura, variabili tra la frequenza di bus e quella di clock. • L3: generalmente è un'estensione della L2 (2 MB nel Pentium IV Extreme Edition 3.2 GHz) • Il processore cerca prima nella cache interna L1 e poi in quelle esterne L2, L3.
Memorie STATICHE • Generalmente le memorie cache sono realizzate da memorie statiche • La memoria statica è la memoria più veloce disponibile attualmente • Sono caratterizzate da tempi di accesso dell'ordine delle decine di nanosecondi (da 6 ns a 25 ns). • Sono costose e possono memorizzare solo 1/4 dei dati rispetto le memorie dinamiche (DRAM). • A differenza delle DRAM, non occorre il rinfresco periodico.
Memorie STATICHE • Utilizzano per ogni bit un flip flop. • Il singolo bit occupa molto spazio (8 transistors). • Consuma molta energia. • E’ molto veloce (< 10 ns). • Ha un elevato costo per bit.
CPU • Principi di Base • Blocchi Fondamentali: Memoria Cache, Registri, ALU, Istruction Decoder and Control • Esempio di Funzionamento • Tecnologie di fabbricazione dei microprocessori: la microelettronica • Tecnologie di fabbricazione dei microprocessori: la meccanica • Road map dei microprocessori • Indicatori di prestazione
CPU-Principi di Base • STRUTTURA DELLA ISTRUZIONE MACCHINA: • Si tratta di una stringa binaria che identifica il codice della operazione da eseguire e le modalità per indirizzare gli operandi • Opcode o codici operativi • Un programma scritto in Opcode è assai difficile, si utilizza l’Assembly • ESECUZIONE DI UNA ISTRUZIONE MACCHINA: • l’esecuzione di un’istruzione avviene con una sequenza di microistruzioni a livello circuitale associate all'istruzione • FASI CPU: • Ricerca (Fetch) e Esecuzione (Execute)
CPU-Memoria Cache • La memoria, a rigore, non dovrebbe far parte dell'unità centrale ma attualmente una tendenza che si va consolidando e quella di fornire CPU che presentino al loro interno banchi di memoria allo scopo di reperire velocemente informazioni, senza dover accedere alla memoria centrale. • Cache di Primo Livello L1 (alcune volte anche la L2)
CPU-Registri Interni • Di numero e di caratteristica molto differenziate, i registri interni di lavoro permettono all'unità centrale lo spostamento, la manipolazione ed il deposito temporaneo dei dati senza dover ricorrere alla memoria esterna. • I tipi di registri, le modalità di interconnessione e di comunicazione fra i vari registi sono una caratteristica del processore • Possiamo tuttavia individuare un set di registri essenziali per il funzionamento di un qualunque processore, e che, dunque, possono essere ritrovati in una qualunque architettura.
CPU-Registri Interni • Memory Address Register (MAR). E' il registro specializzato per indirizzare la memoria. Durante l'esecuzione di un programma il MAR contiene l'indirizzo della locazione di memoria centrale (esterna alla CPU) alla quale si vuole accedere in quell'istante. • Program Counter (PC). E' il registro specializzato per contenere l'indirizzo dell'istruzione che deve essere eseguita. • Memory Data Register (MDR). E' il registro da cui transitano tutti i dati scambiati con la memoria esterna prima di venire smistati, in base al loro significato, presso gli altri registri interni. • Instruction Register (IR). E' il registro che contiene la parte codice operativo di un'istruzione, vale a dire quella sequenza di bit che opportunamente decodificati determineranno le azioni che la CPU deve eseguire.
CPU-Registri Interni • Accumulatore. E' il principale registro di calcolo dell'unità centrale: contiene sempre uno degli operandi e il risultato dell'operazione • Pointer Registers (PRs). Sono registi specializzati per contenere indirizzi, solitamente di quei sotto programmi ricorrenti con particolare frequenza. Alcuni di essi possono venire specializzati a funzioni particolari. • Uno di essi è lo stack pointer, che indirizza la zona di RAM in cui è stato costruito lo stack. Lo stack e' definita come una porzione di memoria gestita secondo una politica LIFO (Last In First Out). • Risulta estremamente comodo per il salvataggio del program counter in caso di interruzione (interrupt) o subroutine;
CPU-Registri Interni • Status Register. Con registro di stato si intende un registro il cui contenuto è costituito da un insieme di flag aventi un significato individuale, anche se può essere manovrato ed elaborato in parallelo. Il significato dei vari flags costituenti il registro può differire a seconda del microprocessore, ma avremo sempre alcuni flags fondamentali: • CARRY. Viene manipolato dalle operazioni aritmetiche; viene settato o resettato nel corso di un'istruzione di somma se si è avuto o no un riporto. • OVERFLOW. Risente anch'esso dell'esito delle operazioni aritmetiche; viene settato a uno se nel corso di una somma o sottrazione si è avuto un trabocco della capacità dei registi.
CPU-Unità Aritmetico Logica ALU • Operazioni Aritmetiche: Somma in Complemento a 2 • Operazioni Logiche: AND, OR e NOT • Operazioni sui Bit: Shift e Rotazione • Dati in Ingresso: il Contenuto dell'Accumulatore (sempre) e dei registri interni della CPU (operandi residenti in memoria centrale vengono trasferiti su registri temporanei) • Risultato dell'Operazione: Accumulatore • Uscite Collaterali: è fondamentale registrare alcune condizioni di fine esecuzione delle operazioni di ALU al fine di determinare se procedere con la successiva istruzione in memoria o con un’altra opportunamente specificata. • risultato zero, negativo, riporto, overflow …… • registro di stato