Il processore Pentium (G. Manduchi - M. Moro )
|
|
- Simona Foti
- 8 anni fa
- Visualizzazioni
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 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
DettagliUniversità 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,
DettagliCorso 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
DettagliGestione 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
DettagliCPU. 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
DettagliQuinto 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
DettagliC. 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
DettagliIl 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
DettagliLaboratorio 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:
DettagliLa 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.
DettagliMemoria 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
DettagliL 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
DettagliCalcolatori 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
DettagliDMA 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
DettagliEsame 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
DettagliSistemi 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
DettagliIl 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.
DettagliStruttura 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
DettagliStrutture 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
DettagliSistema 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
DettagliI 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)?
DettagliHardware 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,
DettagliCalcolatori 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
DettagliArchitettura 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
DettagliCalcolatori 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
DettagliCalcolo 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:
DettagliArchitettura 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
DettagliIl 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
Dettaglimemoria 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.
DettagliCorso 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
DettagliArchitettura 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
DettagliOrganizzazione 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
DettagliOrganizzazione 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
DettagliSTRUTTURE 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
DettagliCon 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
DettagliArchitettura 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
DettagliArchitettura 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
DettagliIntroduzione. 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...
DettagliCapitolo 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
DettagliUniversità 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
DettagliValutazione 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
DettagliHazard 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
DettagliGestione 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
DettagliParte 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
DettagliArchitettura 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
DettagliIl 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
DettagliSistemi 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
DettagliCLASSE 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
DettagliIl 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
DettagliARCHITETTURE 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
DettagliFONDAMENTI 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
DettagliCALCOLATORI 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
Dettagli1. 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
DettagliGerarchie 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,
DettagliCorso 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
DettagliSistemi 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
DettagliLa 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
DettagliLaboratorio 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,
DettagliCPU 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
DettagliPiù 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
DettagliSistemi 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
DettagliSommario. 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
DettagliGerarchie 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
DettagliVarie 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
DettagliArchitettura 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
DettagliLABORATORIO 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
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
DettagliINFORMATICA. 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:
DettagliI 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.
DettagliDIMENSIONI 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
DettagliIntroduzione 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
DettagliArchitettura 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
DettagliInformatica - 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
DettagliLa 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
DettagliFile 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
DettagliInput/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
DettagliIl 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
DettagliSistemi 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
Dettagliclock 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
DettagliCPU 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
DettagliLa 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
Dettagli1.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
DettagliINFORMATICA 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
DettagliInformatica 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
DettagliIl 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
DettagliDispensa 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.
DettagliSistemi 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
DettagliMECCANISMI 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
DettagliLezione 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
Dettagli9. 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 è
DettagliCALCOLATORI 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
DettagliSISTEMI 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)
DettagliCapitolo 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
DettagliCorso 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
DettagliCorso 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
DettagliSistema 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
DettagliARCHITETTURA 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
DettagliLezione 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
DettagliLa 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.
DettagliArchitettura 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