Il processore Pentium (G. Manduchi - M. Moro )

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Il processore Pentium (G. Manduchi - M. Moro - 2001)"

Transcript

1 Il processore Pentium (G. Manduchi - M. Moro ) Il processore Pentium (introdotto nel 1993) rappresenta l evoluzione della linea di processori Intel formata dalla serie 8086/88, 80286, Intel386 DX (il primo a 32 bit, introdotto nel 1985), Intel486 DX, Intel486 SX e Intel486 DX2. Rispetto alle precedenti generazioni, il processore Pentium introduce notevoli miglioramenti: già nei primi processori della linea Pentium erano presenti: una architettura superscalare, la predizione dinamica dei salti (dynamic branch prediction), 2 memorie cache da 8Kb ciascuna, una per i dati e una per il codice, un bus di dati a 64 bit. I primi processori Pentium venivano costruiti con chip contenenti 3 milioni di transistor, realizzati con tecnologia a 0.34 µm; sono utilizzati in sistemi con un clock di processore nel range MHz e con un clock di bus di memoria nel range 50/60/66 MHz. Questi aspetti verranno di seguito discussi in maggiore dettaglio con riferimento ai primi processori Pentium; alla fine di queste note si accennerà brevemente alle evoluzioni di queste caratteristiche presenti nei successivi processori della medesima linea. Modalità operative Il Pentium può operare in una di 3 diverse modalità operative (modi): modo protetto (Protected mode) costituisce la modalità nativa nella quale sono utilizzabili tutte le istruzioni e funzionalità del processore; modo reale (Real-Address Mode) fornisce il contesto di programmazione dei predecessori a 16 bit (8086/88) con qualche estensione; modo di sistema (System Management Mode) fornisce un contesto speciale per l esecuzione di particolare codice di controllo di sistema, tipicamente in firmware, quale il sistema di controllo automatico dell alimentazione, in modo trasparente sia alle applicazioni che al sistema operativo Organizzazione della Memoria In un sistema Pentium la memoria fisica è indirizzata a byte con un indirizzo a 32 bit, con un totale quindi di 4 Gigabyte indirizzabili. Il codice fa però riferimento ad una gestione della memoria attraverso due meccanismi: la segmentazione (sempre abilitata) e la paginazione: ciò produce un modello di memoria, chiamato virtual memory, in cui lo spazio di indirizzamento da programma è uno spazio logico. L hardware di segmentazione provvede a tradurre un indirizzo logico in un indirizzo lineare (relativo ad uno spazio piano cioè non segmentato); a valle del primo, l hardware di paginazione, se abilitato, provvede a tradurre un indirizzo lineare in un indirizzo fisico, altrimenti l indirizzo lineare coincide con quello fisico. Il modello di memoria utilizzato nell architettura Pentium (come pure nei predecessori della famiglia Intel) è pertanto basato sul concetto di segmento. Lo spazio di indirizzamento viene suddiviso in un certo numero di segmenti; ad ogni segmento è associato un insieme di informazioni quali la dimensione, che è fissata dal programmatore, l indirizzo lineare di partenza (base address) ed il livello di protezione. All interno di ogni segmento l indirizzo di una locazione viene specificato da un offset a 32 bit: di conseguenza, l indirizzo lineare viene ottenuto sommando l offset al base address. Un segmento può contenere codice, dati o uno stack. La suddivisione in segmenti consente in generale una maggiore affidabilità dei programmi e del sistema (si pensi solo all automatica rilocabilità del codice): è comunque possibile imporre una visione piana (ovvero lineare, non segmentata) della memoria semplicemente associando il medesimo base address a tutti i segmenti. Possono essere definiti fino a segmenti, ognuno ampio fino a 4 Gbyte, ottenendo quindi uno spazio di indirizzamento virtuale di 64 Terabyte. Ogni segmento è identificato da un selettore (segment selector) a 16 bit che include un indice (13 bit) in una tabella, contenuta in memoria centrale, che a sua volta contiene un massimo di 8192 descrittori di segmento. In ogni istante sono attive due tabelle di descrittori, una globale (GDT, Global descriptor table), comune a tutti i programmi, e una locale (LDT, Local descriptor table) associata al singolo programma. È compito del sistema operativo fissare la coppia di tabelle attive impostando due registri macchina (GDTR e LDTR) che contengono i rispettivi indirizzi iniziali delle tabelle in uso, mentre il selettore include anche un bit che precisa quale delle due tabelle deve essere utilizzata per la traduzione e altri 2 bit che specificano il livello di privilegio nell accesso. Un descrittore di segmento è composto da 8 byte che includono, in un particolare formato, il base address a 32 bit, la dimensione del segmento misurata con granularità 1 byte oppure 4 Kbyte da una posizione limite da 20 bit (quindi la dimensione di un segmento varia rispettivamente nei range 1 byte 1 Mbyte, 4 Kbyte 4 Gbyte), il livello di privilegio d accesso e altre informazioni associate al segmento. Per motivi di efficienza del meccanismo di traduzione indirizzo logico - indirizzo lineare, durante l esecuzione del programma possono essere attivi (immediatamente accessibili) fino a 6 segmenti: i loro rispettivi selettori vengono caricati nella parte visibile di altrettanti registri macchina (segment register). Il caricamento di un selettore in uno di questi registri comporta l automatico caricamento, in una parte non visibile del registro, del corrispondente descrittore: in questo modo il base address e la dimensione del segmento saranno disponibili direttamente nel processore per tutti i successivi accessi a quel segmento. Il registro CS è relativo al Code Segment, utilizzato per memorizzare il codice; il registro SS è relativo allo Stack Segment, utilizzato per memorizzare lo stack; i registri DS, ES, FS, GS sono relativi a 4 segmenti dati, in particolare il registro DS è relativo al Data Segment, il registro ES è relativo allo String Segment, utilizzato per contenere informazioni quali le stringhe alfanumeriche. I registri di segmento e conseguentemente i segmenti utilizzati nell indirizzamento delle istruzioni possono essere impliciti (dipendere cioè dal tipo di istruzione: per esempio istruzioni di manipolazione dello stack utilizzano implicitamente SS) oppure essere esplicitamente indicati nell istruzione. A tal scopo l architettura Pentium consente una notevole flessibilità nell indirizzamento in memoria riservando a ciò un byte nel codice di istruzione. La forma più generale di indirizzamento coinvolge un segment register, un base register, un index register, uno scale factor (1,2,4,8) ed un displacement fornito nell istruzione. A parte il base address del segmento, il resto costituisce il calcolo dell indirizzo effettivo A partire da queste informazioni, l indirizzo lineare viene calcolato nell apposito stadio del ciclo di esecuzione come: segment base address + base register + (index register * scale factor) + displacement 1

2 Come si vede, l indirizzamento è estremamente flessibile e può essere utilizzato dai compilatori per un efficiente organizzazione del codice che accede ad array uni o multidimensionali e a strutture di dati complesse, evitando di inserire istruzioni per il calcolo esplicito degli indirizzi. Tipi di dati Il processore Pentium gestisce, come tipi base, parole a 8 (byte), 16 (word), 32 (doubleword) e 64 bit (quadword). L ordinamento dei byte in memoria è di tipo little endian (la parte meno significativa ad indirizzo più basso). Istruzioni specializzate danno di questi tipi ulteriori interpretazioni quali naturali, interi (con segno), interi BCD, puntatori near (indirizzo effettivo a 32 bit come offset), puntatori far (indirizzo logico a 48 bit, 16 per il selettore di segmento e 32 per l offset), sequenze di bit (bit field, fino a 32 bit, e bit string, fino a bit), stringhe (sequenze di byte, word o doubleword fino a 4 Gigabyte), floating point in precisione singola (32 bit), doppia (64 bit), estesa (80 bit). Organizzazione dei registri Oltre ai 6 registri di segmento, l architettura Pentium definisce i seguenti registri general-purpose a 32 bit: EAX, EBX, ECX, EDX, EBP, ESI, EDI, ESP, che possono essere anche utilizzati come base register e index register per l'indirizzamento. Pur essendo in generale interscambiabili, alcuni di questi registri assumono un ruolo particolare in alcune istruzioni. Per esempio, il registro ESP viene utilizzato come Stack Pointer (ovvero contiene l offset della testa dello stack nello Stack Segment), il registro EBP è utilizzato come frame pointer, i registri EDI ed ESI sono utilizzati come base register nel Data Segment e nello String Segment, rispettivamente. L indirizzo dell istruzione successiva durante l esecuzione del programma viene implicitamente definito dal registro EIP, che contiene l offset dell istruzione successiva nel Code segment. I registri a 32 bit EAX, EBX, ECX, EDX possono essere anche visti come 4 registri a 16 bit (la parte meno significativa di ciascuno), col nome di AX, BX, CX, DX, oppure come 8 registri ad 8 bit, col nome di: AL, AH, BL, BH, CL, CH, DL, DH ove, ad esempio, AL ed AH indicano rispettivamente il byte meno significativo ed il byte più significativo del registro a 16 bit AX. Il registro EFLAGS a 32 bit contiene infine informazioni sullo stato del processore, compresi gli usuali bit di condizione. Pipelining Similmente al processore Intel486, il ciclo di esecuzione delle istruzioni che non coinvolgono l unità floating point è suddiviso nei seguenti 5 stadi: PF D1 D2 EX WB prefetch instruction decode address generate execute - ALU ed accesso cache write back Il primo stadio di esecuzione è chiamato prefetch perché consiste nella lettura della codifica dell istruzione successiva alla corrente. Nel secondo stadio (Decode1) avviene la decodifica dell istruzione, mentre nel successivo stadio (Decode2) vengono calcolati gli indirizzi effettivi degli operandi. Nello stadio di Execute avviene sia l accesso agli operandi dalla cache di dati che l effettiva esecuzione dell istruzione. Conseguentemente, se l istruzione obbliga ad un accesso di memoria, l esecuzione di questo stadio richiederà più di un ciclo di clock. Nello stadio di Writeback le istruzioni sono infine abilitate a modificare lo stato del processore tramite la scrittura dei risultati nei registri o in memoria. L architettura superscalare è basata sulla multiplazione delle unità funzionali che soprassiedono al ciclo di esecuzione, ottenendo in questo modo la possibilità di eseguire in parallelo stadi omologhi di istruzioni successive. Pertanto, mentre nel processore Intel486 solo una istruzione poteva essere in corso ad ogni stadio, ottenendo quindi la seguente organizzazione nell esecuzione della sequenza di istruzioni I1 I2 I3 I4, PF I1 I2 I3 I4 D1 I1 I2 I3 I4 D2 I1 I2 I3 I4 EX I1 I2 I3 I4 WB I1 I2 I3 I4 l architettura superscalare del processore Pentium consente la contemporanea esecuzione di due istruzioni in parallelo per ogni stadio del pipeline. È possibile allora, per una sequenza di istruzioni I1 - I8, la seguente organizzazione di esecuzione: PF I1 I3 I5 I7 D1 I1 I3 I5 I7 D2 I1 I3 I5 I7 EX I1 I3 I5 I7 2

3 WB I1 I3 I5 I7 Poiché ogni stadio del pipeline richiede in genere un periodo di clock per la sua esecuzione, è possibile, in condizione ideale, arrivare ad una frequenza di esecuzione delle istruzioni pari al doppio della frequenza di clock. Tuttavia diversi fattori limitano questa frequenza teorica: solo un sottoinsieme del set di istruzioni compatibili può essere eseguito in parallelo, ed inoltre non devono esistere dipendenze tra la coppia di istruzioni eseguita concorrentemente, come avviene, per esempio, nel caso in cui i risultati della prima istruzione rappresentino l ingresso della seconda istruzione. In più, istruzioni di salto possono essere eseguite concorrentemente solo se rappresentano la seconda istruzione della coppia (di seguito verranno illustrate le conseguenze delle istruzioni di salto nell esecuzione del pipeline). La presenza di una coppia di istruzioni incompatibile viene rilevata durante lo stadio D1 dall hardware, che provvede a disattivare la seconda unità durante gli stadi di esecuzione della prima istruzione. Conseguentemente, la seconda istruzione non verrà eseguita in parallelo, ma seguirà la prima nel pipeline con uno stadio di ritardo. Floating point pipeline L unità floating point è integrata nello stesso chip del processore Pentium e consente l esecuzione di un istruzione floating point ad ogni ciclo di clock. È inoltre supportato un limitato parallelismo che consente l esecuzione concorrente di un istruzione floating point e un istruzione di scambio. La motivazione di ciò è data dal fatto che i registri floating point sono organizzati in una struttura a stack, e che le operazioni floating point normalmente coinvolgono la coppia di registri in testa allo stack. Ecco che di frequente avviene che i contenuti dei registri in testa allo stack debbano essere scambiati fra loro durante l esecuzione del programma. La scelta dei progettisti è quindi una conseguenza della legge di Amdahl che asserisce che l incremento della performance di un computer, ottenuto dal miglioramento di qualche suo componente, è limitato dalla frazione di tempo in cui l esecuzione del programma utilizza quel componente. L unità floating point è organizzata in un pipeline con 8 stadi, i cui primi 5 coincidono con gli stadi eseguiti dalle istruzioni intere. Istruzioni floating point non possono essere eseguite contemporaneamente (nello stesso stadio) ad istruzioni intere poiché utilizzano per quei 5 stadi le medesime unità funzionali. Risoluzione dei Pipeline Hazard Come è noto, la reale esecuzione di una sequenza di istruzioni comporta una serie di condizioni che prevengono l utilizzo ottimale del pipeline. Tali condizioni possono essere divise in due principali categorie: data hazard e branch hazard. Il tipo di data hazard più comune è denominato RAW (read-after-write) ed avviene quando l istruzione deve utilizzare i risultati dell istruzione precedente. Esso può avvenire anche nel pipeline del Pentium, poiché la lettura degli operandi viene eseguita nello stadio EX, che avviene contemporaneamente allo stadio WB (scrittura operandi) dell istruzione precedente. In tal caso l hazard è identificato dall hardware, che provvedere a sospendere (stall) lo stadio di EX fino a che lo stadio WB dell istruzione precedente non è terminato. Il RAW data hazard può anche avvenire nel pipeline dell unità floating point, ma in tal caso è adottata nel processore Pentium una tecnica, chiamata bypass, che consente di mettere a disposizione l informazione richiesta ad uno stadio appena possibile, anche se non ancora riportata in memoria o nei registri. In questa maniera l informazione può essere utilizzata nel periodo di clock successivo allo stesso stadio dall istruzione successiva, mentre contemporaneamente viene riportata nella memoria o nei registri. Il branch hazard avviene quando un istruzione di salto modifica il flusso di esecuzione di un programma, forzando di conseguenza lo scaricamento (flush) degli stadi del pipeline precedenti a quello in cui l indirizzo effettivo di salto viene calcolato, che sono relativi ad istruzioni che sono state iniziate ma che in realtà non dovevano essere eseguite e perciò non devono essere completate. L architettura del Pentium adotta inoltre una tecnica di predizione (branch prediction) che tira ad indovinare l indirizzo della successiva istruzione già nella prima fase di prefetch (PF): l hardware determina in questa fase se l istruzione è di salto, ed usa una tabella chiamata Branch Prediction Buffer (BTB), composta di un insieme di coppie di indirizzi. Utilizzando una tecnica molto simile al accesso nella memoria cache, viene determinato se è presente nella BTB una coppia di indirizzi il cui primo indirizzo corrisponde all indirizzo corrente dell istruzione di salto. Se tale coppia viene trovata (hit), il secondo indirizzo viene assunto come l indirizzo della successiva istruzione e caricato nel program counter per la successiva fase di prefetch. Se tale indirizzo viene previsto correttamente, l esecuzione di un istruzione di salto non comporta alcuna penalità nell esecuzione del pipeline. Nella fase EX, quando viene calcolato l indirizzo effettivo di salto, viene nuovamente fatto accesso alla BTB per determinare se la previsione fatta risulti corretta. In caso contrario, l indirizzo effettivo di salto viene memorizzato nella BTB assieme all indirizzo dell istruzione di salto, e viene eseguito il flush del pipeline, annullando quindi la parziale esecuzione delle tre istruzioni successive e incorrendo in un ritardo di tre periodi di clock. La motivazione alla base di tale tecnica è data dall osservazione che nella grande maggioranza dei casi le istruzioni di salto vengono prodotte dai compilatori in corrispondenza a loop nel programma. È pertanto assai probabile che la seconda volta che la stessa istruzione di salto viene eseguita, essa comporterà lo stesso effetto della volta precedente. Una differente tecnica, adottata in altri processori, ma non nel Pentium, è data dall utilizzo di delayed branch, ovvero di istruzioni di salto il cui effetto si ha solo un certo numero (uno, due o tre) di istruzioni successive. Ciò consente di evitare il flush del pipeline in caso di salto, ma richiede un accurata organizzazione delle istruzioni da parte del compilatore: operazione non sempre applicabile e che comporta conseguentemente il frequente inserimento di istruzioni NOP (dummy) dopo un istruzione di salto. Utilizzando invece la tecnica di branch prediction, tale inconveniente viene risolto, senza per altro richiedere alcuna manipolazione del codice. Va tuttavia osservato che, anche nel Pentium, la qualità di un programma dal punto di vista della velocità di esecuzione, dipende dalla capacità del compilatore di generare un codice che sfrutti al meglio l architettura del pipeline (evitando per esempio conflitti RAW) e l architettura superscalare (rendendo contigue istruzioni compatibili). Architettura della Cache Due memorie cache da 8Kbyte ciascuna sono integrate nel processore Pentium, una per le istruzioni (Code cache) e una per i dati (Data cache). L utilizzo di due cache diverse evita i conflitti di accesso che avverrebbero altrimenti quando, per esempio, lo stadio PF legge un istruzione dalla memoria e lo stadio WB scrive i risultati dell istruzione in memoria. Sempre per evitare conflitti di 3

4 accesso da parte dei vari stadi del pipeline, la cache ammette la ricerca contemporanea di due indirizzi tramite due porte indipendenti. Ciò consente, per esempio, che l accesso alla memoria da parte dello stadio EX non vada in conflitto con la scrittura da parte dello stadio WB. Organizzazione Code Cache e Data Cache sono organizzate come memorie set-associative a 2 vie. Ogni cache definisce 128 set ed ogni set contiene 2 blocchi (linee), ognuno con il proprio tag. Poiché ogni blocco della cache è composto di 32 byte, in un indirizzo fisico a 32 bit i 5 bit meno significativi sono utilizzati come offset all interno del blocco, un campo intermedio di 7 bit individua il set di appartenenza, e il tag è costituito dai 20 bit più significativi. Ad ogni set, composto da due blocchi, è associato un bit per la determinazione del blocco da rendere invalido quando un nuovo blocco per quel set (univocamente determinato dall indirizzo) debba essere caricato dalla memoria. La politica utilizzata per il rimpiazzo è del tipo Least Recently Used (LRU) che definisce il blocco da rimpiazzare quella utilizzato meno di recente. Per quanto riguarda le operazioni di scrittura, è possibile definire, tramite un bit in un control register, sia la politica di write back (il blocco viene scritto in memoria centrale solo quando è scaricato) che di write through (la memoria viene riscritta ad ogni accesso in scrittura della cache). Per supportare architetture multiprocessore, in cui ogni processore dispone della propria cache contenente una copia di parte della memoria (unica) centrale, la data cache supporta il protocollo write-back MESI (modified/exclusive/shared/invalid). Ad ogni blocco viene associato uno dei seguenti 4 stati: M - Modified: indica che il blocco è presente in una sola cache del sistema, ed il suo contenuto è diverso da quello della memoria centrale (a causa di un operazione di scrittura); E - Exclusive: indica che il blocco è presente in una sola cache del sistema, ed il suo contenuto è uguale a quello della memoria centrale; S - Shared: indica che il blocco è potenzialmente condivisa da altre cache del sistema. Una lettura di un blocco nello stato S non genera attività sul bus di comunicazione, ma un operazione di scrittura inizierà un ciclo di write through e invaliderà le altre copie dello stesso blocco nelle altre cache; I - Invalid: indica che il blocco non è valido e un suo accesso causerà un miss, con la conseguente rilettura del blocco dalla memoria centrale. L architettura della cache supporta pertanto anche la possibilità che un operazione di scrittura in un blocco Shared inizi un ciclo di snooping sul bus di comunicazione, in cui le copie eventualmente presenti nelle altre cache vengono invalidate. Tale operazione non interferisce con le normali operazioni di accesso locale poiché una terza porta indipendente della cache (oltre alle due citate prima) è riservata esclusivamente alle operazioni di snooping. Organizzazione della paginazione Tutti gli indirizzi gestiti dalla cache sono indirizzi fisici, ovvero corrispondono alle effettive locazioni di memoria dei byte indirizzati. Per supportare sistemi paginati, l architettura Pentium definisce un Memory Management Unit (MMU) per la traduzione di indirizzi lineari in indirizzi fisici che, se abilitata, precede l accesso alla cache. La memoria viene normalmente suddivisa in pagine di 4 Kbyte: le pagine fisiche sono allineate su frontiera 4 Kbyte. Di conseguenza, i 12 bit meno significativi dell indirizzo lineare contengono l offset all interno della pagina. Sono definiti due livelli di tabella per l organizzazione delle tabelle delle pagine. I 10 bit più significativi (bit 22 31) dell indirizzo identificano un entry nel Page directory, il cui indirizzo iniziale è caricato in un registro macchina (PDBR); il Page directory è rappresentato da una pagina contenente un massimo di 1024 entry a 32 bit. Ogni entry identifica a sua volta una Page table, contenendo, oltre ad altri bit di controllo, i 20 bit più significativi dell'indirizzo iniziale della Page table. All interno di questa i bit dell indirizzo lineare identificano un Page Table Entry contenente, oltre ad altri bit di controllo, i 20 bit più significativi dell indirizzo fisico iniziale della pagina di memoria corrispondente: a questi viene giustapposto l offset prelevato dall indirizzo lineare per ottenere l indirizzo fisico della locazione cui far accesso. Il sistema operativo può stabilire se associare un unico Page directory a tutti i task in esecuzione oppure riservarne uno per ciascun task o adottare una situazione intermedia tra le due. Una speciale eccezione viene sollevata nel caso che l entry nel Page table (o nel Page directory) indirizzato segnali, con l apposito bit di controllo, che la pagina non è presente in memoria: in questo caso gli altri bit dell entry possono essere utilizzati dal sistema operativo, attivato dall eccezione sollevata, per indicare dove prelevare, ad esempio in memoria secondaria. la pagina da caricare in memoria centrale. La gestione dell eccezione si completa con la riesecuzione dell istruzione che non si era potuta completare per mancanza della pagina. Poiché Page directory e Page table risiedono tutti in memoria, una traduzione da indirizzo lineare ad indirizzo fisico, necessaria ogni volta che si debba eseguire un accesso alla memoria, richiederebbe due accessi aggiuntivi alla memoria. Per ovviare la maggior parte delle volte a tale inconveniente, associato a ciascuna cache vi è un Table Lookaside Buffer (TLB) che consente la rapida trasformazione dell indirizzo lineare. Il TLB ha un organizzazione molto simile alla cache, e definisce un certo numero di coppie di tag (20 bit) ed indirizzo (32 bit). Tale struttura consente di ricavare l indirizzo fisico della pagina corrispondente ai 20 bit più significativi dell indirizzo lineare eseguendo una ricerca nel TLB. Se viene identificata una coppia il cui tag corrisponde ai 20 bit cercati, l indirizzo fisico associato indica l indirizzo iniziale della pagina corrispondente. Meccanismi del tutto analoghi a quelli utilizzati nella cache provvedono al rimpiazzo delle coppie tag-indirizzo quando il TLB risulti pieno ed una nuova traduzione venga richiesta. In base al principio di località, che asserisce che nella maggior parte dei casi l accesso in memoria tende ad essere localizzato, il meccanismo di traduzione rapido offerto dal TLB risulta molto efficiente, poiché nella stragrande maggioranza dei casi l accesso alla memoria causerà un hit nel TLB, e non richiederà cicli di clock aggiuntivi per l accesso in memoria delle tabelle delle pagine. Bus di Comunicazione Il bus di comunicazione del Pentium è caratterizzato da 64 linee di dati. È pertanto possibile trasferire fino ad 8 byte in un singolo ciclo di lettura/scrittura. L indirizzamento è a 32 bit, consentendo quindi, come già detto, uno spazio di indirizzamento fisico di 4 4

5 Gbyte. Una conseguenza della dimensione del data bus è che per l indirizzamento vengono utilizzate 29 linee, corrispondenti ai bit A31-A3 di indirizzo. L indirizzamento del singolo byte, concettualmente specificato anche dai bit A2-A0 di indirizzo, viene ottenuto tramite 8 linee (B0-B7) che specificano il sottoinsieme (contiguo) degli 8 byte trasferito nel ciclo di lettura/scrittura (similmente alle linee LDS e UDS nel per un data bus a 16 bit). Il bus di comunicazione supporta le seguenti operazioni: - Single transfer cycle: trasferimento di un singolo dato (byte, word, double word, quadword). Se la memoria, e più in generale la periferica indirizzata, è sufficientemente veloce, l intero ciclo di trasferimento richiede due periodi di clock: se consideriamo un ciclo di lettura ad esempio, al primo periodo di clock il processore attiva le linee di indirizzo A31-A3 e le linee di selezione byte B0-B7, e segnala la validità dell indirizzo tramite la linea di controllo ADS# (# significa in logica negata). La disponibilità del dato è segnalata dalla periferica tramite la linea di controllo BRDY#, che viene acquisita dal processore al successivo periodo di clock, assieme al dato. Se la periferica non è sufficientemente veloce, il processore inserisce dei cicli di attesa (wait cycle) fino a che la linea BRDY# indicherà la disponibilità del dato. - Burst Transfer: questo trasferimento è utilizzato quando si debba trasferire una sequenza di dati ad indirizzi consecutivi. Dopo il primo ciclo di trasferimento, in cui viene presentato l indirizzo iniziale del blocco di dati da trasferire, nei successivi cicli l indirizzo (consecutivo) dei dati viene calcolato dall hardware esterno che pertanto mette direttamente a disposizione il dato, segnalato dalla linea BRDY#. È quindi possibile ottenere una frequenza di trasferimento pari a 8 byte per ogni periodo di clock, nel caso il dispositivo esterno sia sufficientemente veloce, e quindi il processore non debba inserire cicli di attesa. - Locked Transfer: tramite la linea di controllo LOCK# è possibile definire una sequenza atomica di operazioni sul bus. Ciò consente, ad esempio, la modifica di locazioni di memoria tramite una lettura seguita da una scrittura con la garanzia che nel frattempo il bus non venga utilizzato da qualche altro processore, possibilmente modificando la locazione di memoria. - Bus Ownership Management: tramite le linee di controllo HOLD e HLDA è possibile la richiesta da parte di un processore di diventare il proprietario del bus (bus holder) e quindi di supervisionare l attività del bus. Questo tipo di protocollo è utilizzato sia in un sistema multiprocessore, che in un sistema a singolo processore quando, ad esempio, un DMA controller esterno richiede il bus per eseguire un trasferimento da/per la memoria centrale. - Interrupt Acknowledge: questo ciclo viene eseguito in risposta ad un interrupt, per ottenere dalla periferica l interrupt vector (compreso tra 0 e 255) richiesto per identificare la routine di interruzione associata. - Inquire Cycle: questo ciclo viene eseguito in conseguenza ad un accesso in scrittura ad una linea dalla cache il cui stato è S (Shared), per invalidare eventuali altre copie della stessa porzione di memoria contenute nelle cache degli altri processori del sistema. Il ciclo viene eseguito dopo aver ricopiato il contenuto della linea in memoria centrale, e coinvolge le linee del bus A31-A5, necessarie per l identificazione della linea (blocco di 32 byte) nelle cache. - I/O cycles: cicli di Ingresso/Uscita sono equivalenti ai normali cicli di trasferimento dati (sia burst che non) salvo che la linea di controllo M/IO# del bus indica all hardware esterno che è in corso un operazione di I/O. Lo spazio di indirizzamento a disposizione delle operazioni di I/O è di 64 Kbyte, ed il set di istruzioni del Pentium definisce esplicitamente istruzioni di Ingresso/Uscita che trasferiscono il contenuto di un registro interno da e per i registri esterni dei dispositivi di I/O (I/O port). È possibile definire anche un architettura di I/O memory mapped, non utilizzando quindi la linea M/IO#. In questo caso le periferiche vengono viste come normali locazioni di memoria, e per la programmazione vengono utilizzate le normali istruzioni di trasferimento dati. Evoluzioni recenti La linea Pentium, introdotta nel 1993, è andata costantemente evolvendosi (con i processori della famiglia P6: Pentium Pro, Pentium MMX, Pentium II,...), fino agli attuali processori Pentium III e agli imminenti Pentium 4, che consentono prestazioni estremamente elevate. Di seguito si elencheranno brevemente le nuove tecnologie adottate. P6 Microarchitecture Dynamic Execution Technology Definisce nuove tecniche di branch prediction per la predizione del nuovo indirizzo anche attraverso branch multipli, consentendo quindi la riduzione delle operazioni di flush del pipeline, e garantendo quindi una maggiore velocità di esecuzione. La sequenza delle istruzioni viene inoltre opportunamente riordinata (scheduled) al fine di utilizzare al meglio il parallelismo insito nell architettura superscalare e di ridurre i data hazard nel pipeline. Si osservi che questo riordino, a differenza del riordino delle istruzioni eseguito dallo stadio di ottimizzazione del compilatore, viene eseguito dall hardware run-time, garantendo tuttavia la correttezza del programma. Pentium PRO (1996) Si tratta di un processore con architettura interna di tipo RISC (istruzioni CISC x86 ricondotte a microistruzioni RISC86 (Micro- Ops)). Il pipeline è a 14 stadi e il fattore superscalare è 3 (3 pipeline). Vi sono inoltre 2 cache di primo livello (L1) da 8 Kbyte (una per le istruzioni, una per i dati) e una di secondo livello (L2) interna (integrata nel medesimo chip del processore) da 512/1024 Kbyte. Altre caratteristiche: include 5.5 milioni di transistor con tecnologia 0.35 µm, viene usato in sistemi con clock di processore nel range MHz e clock di bus di memoria da 66 MHz, con possibilità di multiprocessing (2 o 4 processori). Pentium MMX Introdotto nel 1997, utilizza la tecnologia MMX che comprende un nuovo set di 57 istruzioni per la rapida elaborazione di grosse quantità di dati. Questa tecnologia è principalmente orientata all aumento delle prestazioni di applicazioni grafiche, che normalmente richiedono la manipolazione di grandi flussi di dati. La linea MMX introduce anche la tecnologia SIMD (Single Instruction, Multiple Data) consentendo la manipolazione di interi vettori di dati nella singola istruzione. È inoltre definito un set esteso di registri che introduce 8 nuovi registri a 64 bit. Altre caratteristiche: include 4.5 milioni di transistor con tecnologia 0.35 µm, viene usato in sistemi con clock di processore nel range MHz e clock di bus di memoria da 66 MHz. Pentium II e nuovo Layout (1997) Il processore Pentium II non consiste di un singolo chip, ma è composto di una cartuccia (SEC cartridge packaging) contenente più chip collegati fra loro da bus dedicati. Ciò consente l utilizzo di cache L1 da 32 Kbyte (due da 16) e cache L2 di 512 Kbyte, 5

6 quest ultima collegata al processore tramite un bus indipendente dal bus di sistema (Dual Independent Bus architecture), consentendo quindi una più elevata banda di comunicazione. La cache di secondo livello supporta inoltre l utilizzo di codici ECC (Error Correction Code) per minimizzare la probabilità di errori di comunicazione. La frequenza di clock supportata dalla linea Pentium II è compresa tra 233 MHz e 450 MHz; quella del bus di memoria è di 66 o 100 MHz. Tali prestazioni sono ottenute riducendo a 0.25 micron lo spessore dei componenti integrati nel chip, cosa che ha consentito di ottenere chip con 7.5 milioni di transistor. Pentium III L organizzazione interna è simile al Pentium II, inizialmente (versione Katmai) con cache L2 esterna da 512 Kbyte, successivamente (versione Coppermine) con cache L2 interna, e quindi più veloce, da 256 Kbyte. Rispetto al Pentium II ha in più: - un set di 70 istruzioni (SSE Streaming SIMD Extensions) (SIMD = Single Instruction Multiple Data) in più pensate per rendere più veloci le elaborazioni multimediali; - frequenza di clock tra 500 MHz e 1 GHz, bus di memoria a 100 MHz 133 MHz; - tecnologia µm: chip con quasi 28 milioni di transistor. Pentium 4 Introdotto alla fine del 2000, presenta una organizzazione interna innovata rispetto alla P6 (indicata con il termine Netburst) caratterizzata da una pipeline di 20 stadi (hyper-pipelined), da 2 ALU che operano a una frequenza doppia rispetto al clock principale, da un bus interno da 256 bit con cui è collegata la cache L2 interna da 256 (512) Kbyte. La cache L1 per le istruzioni è in grado di contenere Micro-Ops, quella per i dati è da 8 Kbyte. Presenta inoltre: - un set di 144 nuove istruzioni (SSE 2) per rendere più veloci le elaborazioni multimediali; - una tecnica di parallelismo interno denominata hypertbreading attraverso la quale un processore fisico viene visto come una coppia (o più) di processori logici che hanno ciascuno una propria istanza dello stato dell architettura epperò condividono un unico set di risorse fisiche di elaborazione; - frequenza di clock a partire da 1.5 GHz, bus di memoria a 400 (533/800) MHz; - tecnologia 0.18 (0.13) µm: chip con 42 (55) milioni di transistor. 6

Architettura hardware

Architettura hardware Architettura dell elaboratore Architettura hardware la parte che si può prendere a calci Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione elaborazione

Dettagli

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14. Pietro Frasca.

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14. Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Lezione 11 Martedì 12-11-2013 1 Tecniche di allocazione mediante free list Generalmente,

Dettagli

Corso di Informatica

Corso di Informatica CdLS in Odontoiatria e Protesi Dentarie Corso di Informatica Prof. Crescenzio Gallo crescenzio.gallo@unifg.it La memoria principale 2 izzazione della memoria principale ria principale è organizzata come

Dettagli

Gestione della memoria. Paginazione Segmentazione Segmentazione con paginazione

Gestione della memoria. Paginazione Segmentazione Segmentazione con paginazione Gestione della memoria Paginazione Segmentazione Segmentazione con paginazione Modello di paginazione Il numero di pagina serve come indice per la tabella delle pagine. Questa contiene l indirizzo di base

Dettagli

CPU. Maurizio Palesi

CPU. Maurizio Palesi CPU Central Processing Unit 1 Organizzazione Tipica CPU Dispositivi di I/O Unità di controllo Unità aritmetico logica (ALU) Terminale Stampante Registri CPU Memoria centrale Unità disco Bus 2 L'Esecutore

Dettagli

Quinto Homework. Indicare il tempo necessario all'esecuzione del programma in caso di avvio e ritiro fuori ordine.

Quinto Homework. Indicare il tempo necessario all'esecuzione del programma in caso di avvio e ritiro fuori ordine. Quinto Homework 1) Si vuole progettare una cache a mappatura diretta per un sistema a 32 bit per una memoria da 2 GB (quindi sono solo 31 i bit utili per gli indirizzi) e blocchi di 64 byte. Rispondere

Dettagli

C. P. U. MEMORIA CENTRALE

C. P. U. MEMORIA CENTRALE C. P. U. INGRESSO MEMORIA CENTRALE USCITA UNITA DI MEMORIA DI MASSA La macchina di Von Neumann Negli anni 40 lo scienziato ungherese Von Neumann realizzò il primo calcolatore digitale con programma memorizzato

Dettagli

Il microprocessore 8086

Il microprocessore 8086 1 Il microprocessore 8086 LA CPU 8086 Il microprocessore 8086 fa parte della famiglia 80xxx della INTEL. Il capostipite di questa famiglia è stato l 8080, un microprocessore ad 8 bit che ha riscosso un

Dettagli

Laboratorio di Informatica

Laboratorio di Informatica per chimica industriale e chimica applicata e ambientale LEZIONE 4 La CPU e l esecuzione dei programmi 1 Nelle lezioni precedenti abbiamo detto che Un computer è costituito da 3 principali componenti:

Dettagli

La memoria centrale (RAM)

La memoria centrale (RAM) La memoria centrale (RAM) Mantiene al proprio interno i dati e le istruzioni dei programmi in esecuzione Memoria ad accesso casuale Tecnologia elettronica: Veloce ma volatile e costosa Due eccezioni R.O.M.

Dettagli

Memoria Virtuale. Anche la memoria principale ha una dimensione limitata. memoria principale (memoria fisica) memoria secondaria (memoria virtuale)

Memoria Virtuale. Anche la memoria principale ha una dimensione limitata. memoria principale (memoria fisica) memoria secondaria (memoria virtuale) Memoria Virtuale Anche la memoria principale ha una dimensione limitata. Possiamo pensare di superare questo limite utilizzando memorie secondarie (essenzialmente dischi) e vedendo la memoria principale

Dettagli

L unità di elaborazione pipeline L unità Pipelining

L unità di elaborazione pipeline L unità Pipelining Struttura del processore L unità di elaborazione pipeline Corso ACSO prof. Cristina SILVANO Politecnico di Milano Incremento delle Per migliorare ulteriormente le si può: ridurre il periodo di clock aumentare

Dettagli

Calcolatori Elettronici

Calcolatori Elettronici Calcolatori Elettronici La Pipeline Superpipeline Pipeline superscalare Schedulazione dinamica della pipeline Processori reali: l architettura Intel e la pipeline dell AMD Opteron X4 Ricapitolando Con

Dettagli

DMA Accesso Diretto alla Memoria

DMA Accesso Diretto alla Memoria Testo di rif.to: [Congiu] - 8.1-8.3 (pg. 241 250) 08.a DMA Accesso Diretto alla Memoria Motivazioni Organizzazione dei trasferimenti DMA Arbitraggio del bus di memoria Trasferimento di un blocco di dati

Dettagli

Esame di INFORMATICA

Esame di INFORMATICA Università di L Aquila Facoltà di Biotecnologie Esame di INFORMATICA Lezione 4 MACCHINA DI VON NEUMANN Anni 40 i dati e i programmi che descrivono come elaborare i dati possono essere codificati nello

Dettagli

Sistemi Operativi. 5 Gestione della memoria

Sistemi Operativi. 5 Gestione della memoria Gestione della memoria Compiti del gestore della memoria: Tenere traccia di quali parti della memoria sono libere e quali occupate. Allocare memoria ai processi che ne hanno bisogno. Deallocare la memoria

Dettagli

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino Il Sistema Operativo Il Sistema Operativo è uno strato software che: opera direttamente sull hardware; isola dai dettagli dell architettura hardware; fornisce un insieme di funzionalità di alto livello.

Dettagli

Struttura del calcolatore

Struttura del calcolatore Struttura del calcolatore Proprietà: Flessibilità: la stessa macchina può essere utilizzata per compiti differenti, nessuno dei quali è predefinito al momento della costruzione Velocità di elaborazione

Dettagli

Strutture di Memoria 1

Strutture di Memoria 1 Architettura degli Elaboratori e Laboratorio 17 Maggio 2013 Classificazione delle memorie Funzionalitá: Sola lettura ROM, Read Only Memory, generalmente usata per contenere le routine di configurazione

Dettagli

Sistema operativo: Gestione della memoria

Sistema operativo: Gestione della memoria Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Sistema operativo: Gestione della memoria La presente dispensa e

Dettagli

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo I Thread 1 Consideriamo due processi che devono lavorare sugli stessi dati. Come possono fare, se ogni processo ha la propria area dati (ossia, gli spazi di indirizzamento dei due processi sono separati)?

Dettagli

Hardware di un Computer

Hardware di un Computer Hardware di un Computer Monitor Mouse Tastiera Printer Disk CPU Graphics Adapter USB Controller Parallel Port Disk Controller BUS Memoria RAM Memoria ROM (BIOS) DMA CPU esegue istruzioni, effettua calcoli,

Dettagli

Calcolatori Elettronici A a.a. 2008/2009

Calcolatori Elettronici A a.a. 2008/2009 Calcolatori Elettronici A a.a. 2008/2009 PRESTAZIONI DEL CALCOLATORE Massimiliano Giacomin Due dimensioni Tempo di risposta (o tempo di esecuzione): il tempo totale impiegato per eseguire un task (include

Dettagli

Architettura del calcolatore

Architettura del calcolatore Architettura del calcolatore La prima decomposizione di un calcolatore è relativa a due macro-componenti: Hardware Software Architettura del calcolatore L architettura dell hardware di un calcolatore reale

Dettagli

Calcolatori Elettronici. La memoria gerarchica La memoria virtuale

Calcolatori Elettronici. La memoria gerarchica La memoria virtuale Calcolatori Elettronici La memoria gerarchica La memoria virtuale Come usare la memoria secondaria oltre che per conservare permanentemente dati e programmi Idea Tenere parte del codice in mem princ e

Dettagli

Calcolo numerico e programmazione Architettura dei calcolatori

Calcolo numerico e programmazione Architettura dei calcolatori Calcolo numerico e programmazione Architettura dei calcolatori Tullio Facchinetti 30 marzo 2012 08:57 http://robot.unipv.it/toolleeo Il calcolatore tre funzionalità essenziali:

Dettagli

Architettura dei calcolatori II parte Memorie

Architettura dei calcolatori II parte Memorie Università degli Studi di Palermo Dipartimento di Ingegneria Informatica Informatica ed Elementi di Statistica 3 c.f.u. Anno Accademico 2010/2011 Docente: ing. Salvatore Sorce Architettura dei calcolatori

Dettagli

Il processore. Il processore. Il processore. Il processore. Architettura dell elaboratore

Il processore. Il processore. Il processore. Il processore. Architettura dell elaboratore Il processore Architettura dell elaboratore Il processore La esegue istruzioni in linguaggio macchina In modo sequenziale e ciclico (ciclo macchina o ciclo ) Effettuando operazioni di lettura delle istruzioni

Dettagli

memoria virtuale protezione

memoria virtuale protezione Memoria Virtuale Le memorie cache forniscono un accesso veloce ai blocchi di memoria usati più di recente La memoria virtuale fornisce un accesso veloce ai dati sulle memorie di massa usati più di recente.

Dettagli

Corso di Sistemi di Elaborazione delle informazioni

Corso di Sistemi di Elaborazione delle informazioni Corso di Sistemi di Elaborazione delle informazioni Sistemi Operativi Francesco Fontanella Complessità del Software Software applicativo Software di sistema Sistema Operativo Hardware 2 La struttura del

Dettagli

Architettura di un calcolatore

Architettura di un calcolatore 2009-2010 Ingegneria Aerospaziale Prof. A. Palomba - Elementi di Informatica (E-Z) 7 Architettura di un calcolatore Lez. 7 1 Modello di Von Neumann Il termine modello di Von Neumann (o macchina di Von

Dettagli

Organizzazione della memoria principale Il bus

Organizzazione della memoria principale Il bus Corso di Alfabetizzazione Informatica 2001/2002 Organizzazione della memoria principale Il bus Organizzazione della memoria principale La memoria principale è organizzata come un insieme di registri di

Dettagli

Organizzazione della memoria

Organizzazione della memoria Memorizzazione dati La fase di codifica permette di esprimere qualsiasi informazione (numeri, testo, immagini, ecc) come stringhe di bit: Es: di immagine 00001001100110010010001100110010011001010010100010

Dettagli

STRUTTURE DEI SISTEMI DI CALCOLO

STRUTTURE DEI SISTEMI DI CALCOLO STRUTTURE DEI SISTEMI DI CALCOLO 2.1 Strutture dei sistemi di calcolo Funzionamento Struttura dell I/O Struttura della memoria Gerarchia delle memorie Protezione Hardware Architettura di un generico sistema

Dettagli

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Compito fondamentale di un S.O. è infatti la gestione dell

Dettagli

Architettura degli elaboratori (A)

Architettura degli elaboratori (A) Laurea in Informatica a.a. 2010-2011 Laboratorio del corso di Architettura degli elaboratori (A) Modulo 1: l Architettura dell 8086 Valeria Carofiglio Linguaggi a vari livelli e loro relazioni Programma

Dettagli

Architettura dei calcolatori I parte Introduzione, CPU

Architettura dei calcolatori I parte Introduzione, CPU Università degli Studi di Palermo Dipartimento di Ingegneria Informatica C.I. 1 Informatica ed Elementi di Statistica 2 c.f.u. Anno Accademico 2009/2010 Docente: ing. Salvatore Sorce Architettura dei calcolatori

Dettagli

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6 Appunti di Calcolatori Elettronici Esecuzione di istruzioni in parallelo Introduzione... 1 Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD...

Dettagli

Capitolo 11 La memoria cache

Capitolo 11 La memoria cache Capitolo 11 La memoria cache Gerarchie di Memoria Dati sperimentali mostrano che i riferimenti alla memoria godono della proprietà di località spaziale e temporale. Località spaziale: tendenza a generare

Dettagli

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2015-16. Pietro Frasca.

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2015-16. Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2015-16 Pietro Frasca Lezione 15 Martedì 24-11-2015 Struttura logica del sottosistema di I/O Processi

Dettagli

Valutazione delle Prestazioni. Valutazione delle Prestazioni. Architetture dei Calcolatori (Lettere. Tempo di risposta e throughput

Valutazione delle Prestazioni. Valutazione delle Prestazioni. Architetture dei Calcolatori (Lettere. Tempo di risposta e throughput Valutazione delle Prestazioni Architetture dei Calcolatori (Lettere A-I) Valutazione delle Prestazioni Prof. Francesco Lo Presti Misura/valutazione di un insieme di parametri quantitativi per caratterizzare

Dettagli

Hazard sul controllo. Sommario

Hazard sul controllo. Sommario Hazard sul controllo Prof. Alberto Borghese Dipartimento di Scienze dell Informazione alberto.borghese@unimi.it Università degli Studi di Milano Riferimento al Patterson: 4.7, 4.8 1/28 Sommario Riorganizzazione

Dettagli

Gestione della memoria centrale

Gestione della memoria centrale Gestione della memoria centrale Un programma per essere eseguito deve risiedere in memoria principale e lo stesso vale per i dati su cui esso opera In un sistema multitasking molti processi vengono eseguiti

Dettagli

Parte IV Architettura della CPU Central Processing Unit

Parte IV Architettura della CPU Central Processing Unit Parte IV Architettura della CPU Central Processing Unit IV.1 Struttura della CPU All interno di un processore si identificano in genere due parti principali: l unità di controllo e il data path (percorso

Dettagli

Architettura dei computer

Architettura dei computer Architettura dei computer In un computer possiamo distinguere quattro unità funzionali: il processore (CPU) la memoria principale (RAM) la memoria secondaria i dispositivi di input/output Il processore

Dettagli

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi Il Software Il software impiegato su un computer si distingue in: Software di sistema Sistema Operativo Compilatori per produrre programmi Software applicativo Elaborazione testi Fogli elettronici Basi

Dettagli

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. Implementazione del File System. Struttura del File System. Implementazione

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. Implementazione del File System. Struttura del File System. Implementazione IMPLEMENTAZIONE DEL FILE SYSTEM 9.1 Implementazione del File System Struttura del File System Implementazione Implementazione delle Directory Metodi di Allocazione Gestione dello spazio libero Efficienza

Dettagli

CLASSE III A I.T.I. (ABACUS) SISTEMI DI ELABORAZIONE E TRASMISSIONE DEI DATI VERIFICA DI RECUPERO

CLASSE III A I.T.I. (ABACUS) SISTEMI DI ELABORAZIONE E TRASMISSIONE DEI DATI VERIFICA DI RECUPERO CLASSE III A I.T.I. (ABACUS) SISTEMI DI ELABORAZIONE E TRASMISSIONE DEI DATI VERIFICA DI RECUPERO 1 Domanda [1 punto] Dato il formato in virgola mobile su 32 bit così definito (precisione singola): o 1

Dettagli

Il sistema di I/O. Hardware di I/O Interfacce di I/O Software di I/O. Introduzione

Il sistema di I/O. Hardware di I/O Interfacce di I/O Software di I/O. Introduzione Il sistema di I/O Hardware di I/O Interfacce di I/O Software di I/O Introduzione 1 Sotto-sistema di I/O Insieme di metodi per controllare i dispositivi di I/O Obiettivo: Fornire ai processi utente un interfaccia

Dettagli

ARCHITETTURE MICROPROGRAMMATE. 1. Necessità di un architettura microprogrammata 1. Cos è un architettura microprogrammata? 4

ARCHITETTURE MICROPROGRAMMATE. 1. Necessità di un architettura microprogrammata 1. Cos è un architettura microprogrammata? 4 ARCHITETTURE MICROPROGRAMMATE. 1 Necessità di un architettura microprogrammata 1 Cos è un architettura microprogrammata? 4 Struttura di una microistruzione. 5 Esempi di microprogrammi 9 Esempio 1 9 Esempio

Dettagli

FONDAMENTI di INFORMATICA L. Mezzalira

FONDAMENTI di INFORMATICA L. Mezzalira FONDAMENTI di INFORMATICA L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software

Dettagli

CALCOLATORI ELETTRONICI 29 giugno 2010

CALCOLATORI ELETTRONICI 29 giugno 2010 CALCOLATORI ELETTRONICI 29 giugno 2010 NOME: COGNOME: MATR: Scrivere chiaramente in caratteri maiuscoli a stampa 1. Si disegni lo schema di un flip-flop master-slave S-R sensibile ai fronti di salita e

Dettagli

1. Che cos è la multiprogrammazione? Si può realizzare su un sistema monoprocessore? 2. Quali sono i servizi offerti dai sistemi operativi?

1. Che cos è la multiprogrammazione? Si può realizzare su un sistema monoprocessore? 2. Quali sono i servizi offerti dai sistemi operativi? 1. Che cos è la multiprogrammazione? Si può realizzare su un sistema monoprocessore? 2. Quali sono i servizi offerti dai sistemi operativi? 1. La nozione di multiprogrammazione prevede la possibilità di

Dettagli

Gerarchie di memoria Divide et impera. Gerarchie di memoria La congettura 90/10. Gerarchie di memoria Schema concettuale

Gerarchie di memoria Divide et impera. Gerarchie di memoria La congettura 90/10. Gerarchie di memoria Schema concettuale Memorie Caratteristiche principali Tecnologie di memoria Locazione: processore, interna (principale), esterna (secondaria) Capacità: dimensione parola, numero di parole Unità di trasferimento: parola,

Dettagli

Corso di Sistemi di Elaborazione delle informazioni

Corso di Sistemi di Elaborazione delle informazioni Corso di Sistemi di Elaborazione delle informazioni LEZIONE 2 (HARDWARE) a.a. 2011/2012 Francesco Fontanella Tre concetti Fondamentali Algoritmo; Automa (o anche macchina); Calcolo; 2 Calcolatore MACCHINA

Dettagli

Sistemi Operativi GESTIONE DELLA MEMORIA CENTRALE. D. Talia - UNICAL. Sistemi Operativi 6.1

Sistemi Operativi GESTIONE DELLA MEMORIA CENTRALE. D. Talia - UNICAL. Sistemi Operativi 6.1 GESTIONE DELLA MEMORIA CENTRALE 6.1 Gestione della Memoria Background Spazio di indirizzi Swapping Allocazione Contigua Paginazione 6.2 Background Per essere eseguito un programma deve trovarsi (almeno

Dettagli

La memoria - generalità

La memoria - generalità Calcolatori Elettronici La memoria gerarchica Introduzione La memoria - generalità n Funzioni: Supporto alla CPU: deve fornire dati ed istruzioni il più rapidamente possibile Archiviazione: deve consentire

Dettagli

Laboratorio di Informatica

Laboratorio di Informatica per chimica industriale e chimica applicata e ambientale LEZIONE 4 - parte II La memoria 1 La memoriaparametri di caratterizzazione Un dato dispositivo di memoria è caratterizzato da : velocità di accesso,

Dettagli

CPU pipeline 4: le CPU moderne

CPU pipeline 4: le CPU moderne Architettura degli Elaboratori e delle Reti Lezione 25 CPU pipeline 4: le CPU moderne Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 25 1/16

Dettagli

Più processori uguale più velocità?

Più processori uguale più velocità? Più processori uguale più velocità? e un processore impiega per eseguire un programma un tempo T, un sistema formato da P processori dello stesso tipo esegue lo stesso programma in un tempo TP T / P? In

Dettagli

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1 IMPLEMENTAZIONE DEL FILE SYSTEM 9.1 Implementazione del File System Struttura del File System Implementazione Implementazione delle Directory Metodi di Allocazione Gestione dello spazio libero Efficienza

Dettagli

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. Algoritmi 1 Sommario Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi. 2 Informatica Nome Informatica=informazione+automatica. Definizione Scienza che si occupa dell

Dettagli

Gerarchie di Memoria Andrea Gasparetto andrea.gasparetto@unive.it

Gerarchie di Memoria Andrea Gasparetto andrea.gasparetto@unive.it Tutorato di architettura degli elaboratori Gerarchie di Memoria Andrea Gasparetto andrea.gasparetto@unive.it Esercizio 1 Considerare un sistema di memoria virtuale paginata, con dimensione dell indirizzo

Dettagli

Varie tipologie di memoria

Varie tipologie di memoria Varie tipologie di memoria velocita` capacita` registri CPU memoria cache memoria secondaria (Hard Disk) Gestione della memoria Una parte della viene riservata per il SO I programmi per poter essere eseguiti

Dettagli

Architettura di un calcolatore: introduzione

Architettura di un calcolatore: introduzione Corso di Calcolatori Elettronici I Architettura di un calcolatore: introduzione Prof. Roberto Canonico Università degli Studi di Napoli Federico II Dipartimento di Ingegneria Elettrica e delle Tecnologie

Dettagli

LABORATORIO DI SISTEMI

LABORATORIO DI SISTEMI ALUNNO: Fratto Claudio CLASSE: IV B Informatico ESERCITAZIONE N : 1 LABORATORIO DI SISTEMI OGGETTO: Progettare e collaudare un circuito digitale capace di copiare le informazioni di una memoria PROM in

Dettagli

= 0, 098 ms. Da cui si ricava t 2 medio

= 0, 098 ms. Da cui si ricava t 2 medio 1. Una macchina ha uno spazio degli indirizzi a 32 bit e una pagina di 8 KB. La tabella delle pagine è completamente nell hardware, con una parola a 32 bit per voce. Quando parte un processo, la tabella

Dettagli

INFORMATICA. Il Sistema Operativo. di Roberta Molinari

INFORMATICA. Il Sistema Operativo. di Roberta Molinari INFORMATICA Il Sistema Operativo di Roberta Molinari Il Sistema Operativo un po di definizioni Elaborazione: trattamento di di informazioni acquisite dall esterno per per restituire un un risultato Processore:

Dettagli

I componenti di un Sistema di elaborazione. CPU (central process unit)

I componenti di un Sistema di elaborazione. CPU (central process unit) I componenti di un Sistema di elaborazione. CPU (central process unit) I componenti di un Sistema di elaborazione. CPU (central process unit) La C.P.U. è il dispositivo che esegue materialmente gli ALGORITMI.

Dettagli

DIMENSIONI E PRESTAZIONI

DIMENSIONI E PRESTAZIONI DIMENSIONI E PRESTAZIONI Prof. Enrico Terrone A. S: 2008/09 Le unità di misura Le due unità di misura fondamentali dell hardware sono: i Byte per le dimensioni della memoria gli Hertz (Hz) per le prestazioni

Dettagli

Introduzione all'architettura dei Calcolatori

Introduzione all'architettura dei Calcolatori Introduzione all'architettura dei Calcolatori Introduzione Che cos è un calcolatore? Come funziona un calcolatore? è possibile rispondere a queste domande in molti modi, ciascuno relativo a un diverso

Dettagli

Architettura di un sistema di calcolo

Architettura di un sistema di calcolo Richiami sulla struttura dei sistemi di calcolo Gestione delle Interruzioni Gestione della comunicazione fra processore e dispositivi periferici Gerarchia di memoria Protezione. 2.1 Architettura di un

Dettagli

Informatica - A.A. 2010/11

Informatica - A.A. 2010/11 Ripasso lezione precedente Facoltà di Medicina Veterinaria Corso di laurea in Tutela e benessere animale Corso Integrato: Matematica, Statistica e Informatica Modulo: Informatica Esercizio: Convertire

Dettagli

La Gestione delle risorse Renato Agati

La Gestione delle risorse Renato Agati Renato Agati delle risorse La Gestione Schedulazione dei processi Gestione delle periferiche File system Schedulazione dei processi Mono programmazione Multi programmazione Gestione delle periferiche File

Dettagli

File system II. Sistemi Operativi Lez. 20

File system II. Sistemi Operativi Lez. 20 File system II Sistemi Operativi Lez. 20 Gestione spazi su disco Esiste un trade-off,tra spreco dello spazio e velocità di trasferimento in base alla dimensione del blocco fisico Gestione spazio su disco

Dettagli

Input/Output. Moduli di Input/ Output. gestiscono quantità di dati differenti a velocità diverse in formati diversi. n Grande varietà di periferiche

Input/Output. Moduli di Input/ Output. gestiscono quantità di dati differenti a velocità diverse in formati diversi. n Grande varietà di periferiche Input/Output n Grande varietà di periferiche gestiscono quantità di dati differenti a velocità diverse in formati diversi n Tutti più lenti della CPU e della RAM n Necessità di avere moduli di I/O Moduli

Dettagli

Il Sistema Operativo

Il Sistema Operativo Il Sistema Operativo Il Sistema Operativo Il Sistema Operativo (S.O.) è un insieme di programmi interagenti che consente agli utenti e ai programmi applicativi di utilizzare al meglio le risorse del Sistema

Dettagli

Sistemi Operativi Il Sistema Operativo Windows (parte 3)

Sistemi Operativi Il Sistema Operativo Windows (parte 3) Sistemi Operativi Il Sistema Operativo Windows (parte 3) Docente: Claudio E. Palazzi cpalazzi@math.unipd.it Crediti per queste slides al Prof. Tullio Vardanega Architettura di NTFS 1 NTFS file system adottato

Dettagli

clock DATA BUS ADDRESS BUS CONTROL BUS In realtà il bus del microprocessore si compone di 3 bus diversi: Bus indirizzi Bus di controllo

clock DATA BUS ADDRESS BUS CONTROL BUS In realtà il bus del microprocessore si compone di 3 bus diversi: Bus indirizzi Bus di controllo Schede a microprocessore Seconda parte Mondo esterno clock MEMORIA CPU PERIFERICA ADATTATORE DATA BUS ADDRESS BUS CONTROL BUS In realtà il bus del microprocessore si compone di 3 bus diversi: Bus dati

Dettagli

CPU pipeline 4: le CPU moderne

CPU pipeline 4: le CPU moderne Architettura degli Elaboratori e delle Reti Lezione 25 CPU pipeline 4: le CPU moderne Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano L 25 1/17

Dettagli

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1) La gestione di un calcolatore Sistemi Operativi primo modulo Introduzione Augusto Celentano Università Ca Foscari Venezia Corso di Laurea in Informatica Un calcolatore (sistema di elaborazione) è un sistema

Dettagli

1.4b: Hardware. (Memoria Centrale)

1.4b: Hardware. (Memoria Centrale) 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

Dettagli

INFORMATICA 1 L. Mezzalira

INFORMATICA 1 L. Mezzalira INFORMATICA 1 L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software del modello

Dettagli

Informatica B a.a 2005/06 (Meccanici 4 squadra) PhD. Ing. Michele Folgheraiter

Informatica B a.a 2005/06 (Meccanici 4 squadra) PhD. Ing. Michele Folgheraiter Informatica B a.a 2005/06 (Meccanici 4 squadra) Scaglione: da PO a ZZZZ PhD. Ing. Michele Folgheraiter Architettura del Calcolatore Macchina di von Neumann Il calcolatore moderno è basato su un architettura

Dettagli

Il Processore: i registri

Il Processore: i registri Il Processore: i registri Il processore contiene al suo interno un certo numero di registri (unità di memoria estremamente veloci) Le dimensioni di un registro sono di pochi byte (4, 8) I registri contengono

Dettagli

Dispensa di Informatica I.1

Dispensa di Informatica I.1 IL COMPUTER: CONCETTI GENERALI Il Computer (o elaboratore) è un insieme di dispositivi di diversa natura in grado di acquisire dall'esterno dati e algoritmi e produrre in uscita i risultati dell'elaborazione.

Dettagli

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1 MECCANISMI E POLITICHE DI PROTEZIONE 13.1 Protezione Obiettivi della Protezione Dominio di Protezione Matrice di Accesso Implementazione della Matrice di Accesso Revoca dei Diritti di Accesso Sistemi basati

Dettagli

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

MECCANISMI E POLITICHE DI PROTEZIONE 13.1 MECCANISMI E POLITICHE DI PROTEZIONE 13.1 Protezione Obiettivi della Protezione Dominio di Protezione Matrice di Accesso Implementazione della Matrice di Accesso Revoca dei Diritti di Accesso Sistemi basati

Dettagli

Lezione 2 Principi Fondamentali di SO Interrupt e Caching. Sommario

Lezione 2 Principi Fondamentali di SO Interrupt e Caching. Sommario Lezione 2 Principi Fondamentali di SO Interrupt e Caching Sommario Operazioni di un SO: principi fondamentali Una visione schematica di un calcolatore Interazione tra SO, Computer e Programmi Utente 1

Dettagli

9. Memoria Virtuale. 9. Memoria Virtuale. 9. Memoria Virtuale

9. Memoria Virtuale. 9. Memoria Virtuale. 9. Memoria Virtuale 1 (es. 1) Consideriamo un processo con m frame inizialmente vuoti. La stringa di riferimento è lunga p e contiene riferimenti a n pagine diverse. Per un qualsiasi algoritmo di rimpiazzamento: a) qual è

Dettagli

CALCOLATORI ELETTRONICI 31 marzo 2015

CALCOLATORI ELETTRONICI 31 marzo 2015 CALCOLATORI ELETTRONICI 31 marzo 2015 NOME: COGNOME: MATR: Scrivere nome, cognome e matricola chiaramente in caratteri maiuscoli a stampa 1. Tradurre in linguaggio assembly MIPS il seguente frammento di

Dettagli

SISTEMI OPERATIVI. Gestione della memoria Domande di verifica. Luca Orrù Centro Multimediale Montiferru 18/06/2007

SISTEMI OPERATIVI. Gestione della memoria Domande di verifica. Luca Orrù Centro Multimediale Montiferru 18/06/2007 2007 SISTEMI OPERATIVI Gestione della memoria Domande di verifica Luca Orrù Centro Multimediale Montiferru 18/06/2007 Gestione della memoria 1. Si descriva il concetto di memoria virtuale (esame del 19-06-2006)

Dettagli

Capitolo Quarto...2 Le direttive di assemblaggio di ASM 68000...2 Premessa...2 1. Program Location Counter e direttiva ORG...2 2.

Capitolo Quarto...2 Le direttive di assemblaggio di ASM 68000...2 Premessa...2 1. Program Location Counter e direttiva ORG...2 2. Capitolo Quarto...2 Le direttive di assemblaggio di ASM 68000...2 Premessa...2 1. Program Location Counter e direttiva ORG...2 2. Dichiarazione di dati: le direttive DS e DC...3 2.1 Direttiva DS...3 2.2

Dettagli

Corso di Sistemi Operativi Ingegneria Elettronica e Informatica prof. Rocco Aversa. Raccolta prove scritte. Prova scritta

Corso di Sistemi Operativi Ingegneria Elettronica e Informatica prof. Rocco Aversa. Raccolta prove scritte. Prova scritta Corso di Sistemi Operativi Ingegneria Elettronica e Informatica prof. Rocco Aversa Raccolta prove scritte Realizzare una classe thread Processo che deve effettuare un numero fissato di letture da una memoria

Dettagli

Corso di Informatica Applicata. Lezione 3. Università degli studi di Cassino

Corso di Informatica Applicata. Lezione 3. Università degli studi di Cassino Università degli studi di Cassino Corso di Laurea in Ingegneria della Produzione Industriale Corso di Informatica Applicata Lezione 3 Ing. Saverio De Vito e-mail: saverio.devito@portici.enea.it Tel.: +39

Dettagli

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo Sistema Operativo Fondamenti di Informatica 1 Il Sistema Operativo Il Sistema Operativo (S.O.) è un insieme di programmi interagenti che consente agli utenti e ai programmi applicativi di utilizzare al

Dettagli

ARCHITETTURA DI RETE FOLEGNANI ANDREA

ARCHITETTURA DI RETE FOLEGNANI ANDREA ARCHITETTURA DI RETE FOLEGNANI ANDREA INTRODUZIONE È denominata Architettura di rete un insieme di livelli e protocolli. Le reti sono organizzate gerarchicamente in livelli, ciascuno dei quali interagisce

Dettagli

Lezione 1: L architettura LC-3 Laboratorio di Elementi di Architettura e Sistemi Operativi 10 Marzo 2014

Lezione 1: L architettura LC-3 Laboratorio di Elementi di Architettura e Sistemi Operativi 10 Marzo 2014 Lezione 1: L architettura LC-3 Laboratorio di Elementi di Architettura e Sistemi Operativi 10 Marzo 2014 Ricorda... Il ciclo di esecuzione di un istruzione è composto da sei fasi: FETCH DECODE ADDRESS

Dettagli

La microarchitettura. Didattica della strumentazione digitale e sistemi a microprocessore anno accademico 2006 2007 pagina 1

La microarchitettura. Didattica della strumentazione digitale e sistemi a microprocessore anno accademico 2006 2007 pagina 1 La microarchitettura. anno accademico 2006 2007 pagina 1 Integer Java virtual machine Ogni microprocessore può avere una microarchitettura diversa, ma la modalità di funzionamento per certi aspetti è generale.

Dettagli

Architettura di un computer

Architettura di un computer Architettura di un computer Modulo di Informatica Dott.sa Sara Zuppiroli A.A. 2012-2013 Modulo di Informatica () Architettura A.A. 2012-2013 1 / 36 La tecnologia Cerchiamo di capire alcuni concetti su

Dettagli