Appunti di Calcolatori Elettronici Capitolo 1 Principi di progettazione dei calcolatori

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Appunti di Calcolatori Elettronici Capitolo 1 Principi di progettazione dei calcolatori"

Transcript

1 ppunti di Calcolatori Elettronici Capitolo Principi di progettazione dei calcolatori Introduzione... Definizione di prestazione... 2 Misure probabilistiche... 3 Confronto di prestazioni... 3 Esempio numerico... 4 Cenni al pipelining... 5 Principi quantitativi di progettazione dei calcolatori... 5 Rendere veloce il caso più comune... 5 Legge di mdahl... 6 Esempio numerico... 7 Legge della diminuzione dei guadagni... 8 Corollario della legge di mdahl... 8 Esempio... 8 Località del riferimento... 0 Il lavoro di un progettista di calcolatori... Requisiti funzionali... Bilancio software e hardware... 2 Ulteriori fattori che influiscono sul progetto... 2 pplicazione concreta: la gerarchia di memorie... 3 Esempi numerici... 5 Introduzione In questo capitolo ci occupiamo essenzialmente di introdurre la terminologia ed i concetti fondamentali con cui avremo a che fare più spesso. d esempio, vedremo che tipici concetti base sono il pipelining, le gerarchie di memorie, le prestazioni delle CPU e la misura dei costi.

2 ppunti di Calcolatori Elettronici Capitolo Definizione di prestazione Ci preoccupiamo, per prima cosa, di capire cosa si intende quando si afferma che un dato calcolatore è più veloce di un altro. Si potrebbe pensare a due significati diversi: ad esempio, un generico utente potrebbe dire che un calcolatore è più veloce di un altro quando esegue un programma in minor tempo rispetto all altro; al contrario, il gestore di un centro informatico potrebbe dire che il calcolatore più veloce è quello che, a parità di intervallo di tempo a disposizione (ad esempio un ora), completa il maggior numero di lavori. La differenza tra i due significati è dunque riscontrabile nel parametro usato per giudicare la velocità di un calcolatore: l utente generico è soprattutto interessato a minimizzare il response time (tempo di risposta), ossia il tempo che intercorre tra l inizio ed il completamente di un evento. Si parla anche di tempo di esecuzione (execution time) oppure di latenza (latency); al contrario, il gestore del centro informatico è interessato essenzialmente a massimizzare il throughput del calcolatore, ossia la quantità complessiva di lavoro svolto in un dato intervallo di tempo. Si parla anche di banda passante (bandwidth) del calcolatore ( ). Si può del resto intuire che, almeno in condizioni normali, un tempo di risposta più basso equivale ad un aumento del throughput: quanto più il sistema è rapido nell eseguire i singoli compiti, tanti più compiti potrà portare a compimento in un dato intervallo di tempo. Per comprendere a pieno i concetti appena citati, possiamo fare un semplice esempio. Esistono diversi modi per migliorare le prestazioni di un calcolatore; ad esempio, tre di questi sono i seguenti:. periodo di clock più breve (cioè clock più veloce); 2. processori multipli per compiti diversi; 3. elaborazione parallela per i problemi scientifici. Il primo ed il terzo metodo sicuramente garantiscono tempi di risposta più brevi: ad esempio, se l esecuzione di un dato programma richiede N cicli di clock e ogni ciclo dura τ secondi, il tempo totale di esecuzione è N τ, che sarà tanto più piccolo quanto più piccolo è τ. Quindi, il primo ed il terzo metodo contribuiscono anche ad aumentare il throughput complessivo. Il secondo metodo, invece, non comporta alcun miglioramento sulla velocità con cui viene eseguito il singolo compito, ma consente di svolgere più compiti contemporaneamente, per cui serve ad incrementare solo il throughput. Da non confondere con l ampiezza di banda dei mezzi trasmissivi, che è qualcosa di diverso. utore: Sandro Petrizzelli aggiornamento: 30 giugno 200 2

3 Principi di progettazione dei calcolatori Miisure probabiilliistiiche Talvolta, le misure delle prestazioni di un calcolatore sono descritte meglio da distribuzioni di probabilità che non da valori deterministici. d esempio, consideriamo il tempo di risposta necessario per completare una data operazione di I/O sul disco rigido del calcolatore ( 2 ): tale tempo di risposta dipende sia da fattori deterministici (ad esempio dalla quantità di dati da leggere o scrivere su disco) sia da fattori non deterministici (ad esempio da ciò che il disco sta eventualmente già facendo quando viene richiesto l I/O oppure dalla quantità di altri processi in attesa di accedere allo stesso disco). Data la presenza di tali fattori non deterministici, ha più senso parlare di tempo medio di risposta per un I/O da disco. In modo analogo, anche l effettivo throughput di disco (cioè il numero di dati che transitano realmente da o verso il disco nell unità di tempo) non risulta essere un valore costante. Nel seguito, noi tratteremo il tempo di risposta ed il throughput come valori deterministici, tranne quando ci occuperemo specificamente dell I/O ( 3 ). Conffronto dii prestaziionii Quando si deve scegliere tra diverse alternative di progetto di un calcolatore, è necessario confrontare le rispettive prestazioni in modo da individuare l alternativa più adeguata alle proprie esigenze. Indichiamo allora due macchine prese ad esempio con ed Y. Diremo sempre che è più veloce di Y per dire che il tempo di esecuzione, per uno stesso lavoro, è più basso in che in Y: tempo di esecuzione su tempo di esecuzione su Y istante iniziale tempo Da un punto di vista quantitativo, possiamo quantificare la differenza di velocità nel modo seguente: indicati con e Y i tempi di esecuzione, rispettivamente, di e di Y, possiamo scrivere che Y = = In questa espressione, rappresenta evidentemente l incremento del tempo di risposta di Y rispetto ad. Se vogliamo adottare invece una misura percentuale, allora ci basta scrivere che Y n = 00 2 Si veda, in proposito, il capitolo 9 3 Capitolo 9 aggiornamento: 30 giugno utore: Sandro Petrizzelli

4 ppunti di Calcolatori Elettronici Capitolo In base a questa espressione, potremo dire che è n% volte più veloce di Y. d esempio, se n=50, diremo che è il 50% più veloce di Y, il che significa che Y 50 = =.5, ossia che il tempo di esecuzione di è 2/3 rispetto a quello di Y, 00 con riferimento, ovviamente, ad un lavoro specificato. E evidente, del resto, che il tempo di esecuzione è il reciproco della prestazione, per cui possiamo anche scrivere che n 00 Y Y = = = dove PR sta appunto per prestazione. In base a questa espressione, la prestazione di è n% migliore di quella di Y. Esiste anche un ulteriore modo di vedere la cosa. Generalmente, confrontando due quantità diverse tra loro, si considera la differenza tra la quantità maggiore e la quantità minore e la si divide per la quantità minore (si può anche moltiplicare per 00 per ottenere una misura percentuale). Lo stesso discorso possiamo fare nel nostro caso, ossia possiamo affermare che l aumento percentuale n di prestazione di rispetto ad Y equivale alla differenza tra la prestazione di e la prestazione di Y, divisa per la prestazione di Y: PR PR Y n = 00 PR Riarrangiando questa espressione, è facile trovare esattamente la formula n PR precedente =, il che ci dice che i vari modi di esprimersi, sia in termini 00 PR Y qualitativi (cioè di definizioni) sia in termini quantitativi (cioè di formule), sono perfettamente equivalenti tra loro. Osserviamo inoltre che le definizioni e le formule qui riportate valgono non solo per il tempo di esecuzione (e per il suo reciproco, ossia per la prestazione) di un calcolatore, ma anche per il throughput: ad esempio, la frase il throughput di è il 30% maggiore di quello di Y equivale a dire che il numero di lavori completati, nell unità di tempo, sulla macchina è,3 volte maggiore rispetto al numero di lavori completati su Y. Y PR PR PR PR Y Esempio numerico l fine di chiarire ancora meglio quanto detto nell ultimo paragrafo, facciamo un esempio numerico. Supponiamo che una data macchina esegua un programma in 0 secondi, mentre lo stesso programma viene eseguito da una macchina B in 5 secondi. E evidente che la macchina è più veloce della macchina B, dato il tempo di esecuzione più basso. Per quantificare numericamente l incremento n di velocità, ci basta applicare le formule citate poco fa: n 00 Y 5 = = =.5 n = 50 0 utore: Sandro Petrizzelli aggiornamento: 30 giugno 200 4

5 Principi di progettazione dei calcolatori Quindi, è più veloce di B del 50%. l fine di evitare confusione sulla terminologia, nel seguito eviteremo di usare la frase più lento di nel confrontare quantitativamente le prestazioni di varie macchine, ma useremo sempre la frase più veloce di. nalogamente, dato che una diminuzione del tempo di esecuzione equivale ad un aumento della prestazione, ci esprimeremo sempre in termini di miglioramento della prestazione o di miglioramento del tempo di esecuzione per indicare un incremento della prestazioni e cioè una diminuzione del tempo di esecuzione. Cennii all piipelliiniing Il throughput ed il tempo di esecuzione interagiscono in molti modi nella progettazione di un calcolatore. Una delle interazioni più importanti è rappresentata dalla cosiddetta operazione di pipelining ( 4 ): si tratta di una tecnica di realizzazione del calcolatore che riesce ad aumentare le prestazioni in termini sia di throughput sia di tempo di risposta sui singoli processi, sfruttando la sovrapposizione dell esecuzione di più istruzioni. Principi quantitativi di progettazione dei calcolatori In questa sezione vogliamo introdurre alcune regole ed alcune osservazioni importanti da tener presente nella progettazione dei calcolatori. Rendere velloce iill caso piiù comune Uno dei principi base della progettazione dei calcolatori è basato sulla seguente frase: rendere veloce il caso più comune. Questa frase indica semplicemente che, in fase di progetto, è opportuno favorire il caso più frequente anche a discapito di quello più raro. Questo principio si applica quando si deve decidere come impiegare determinate risorse: ad esempio, se si rende più veloce un dato componente, l effetto di questo aumento sarà tanto più evidente ed efficace quante più volte tale componente viene utilizzato. Di conseguenza, migliorare l evento più frequente invece del più raro comporta sicuramente un miglioramento delle prestazioni. Non solo, ma spesso il caso più comune è anche quello più semplice e può quindi essere facilmente reso più veloce rispetto al caso meno frequente. Un esempio semplicissimo è il seguente: quando si effettua la somma tra due numeri nella CPU (unità centrale di elaborazione), raramente ci si aspetta l overflow ed è quindi opportuno ottimizzare il caso più frequente, ossia appunto quello in cui l overflow non si verifica. Chiaramente, questo potrebbe penalizzare il caso (comunque non impossibile) in cui l overflow invece si verifica, ma si tratterebbe di un caso raro, per cui la prestazione complessiva risulterebbe comunque migliorata. l fine di quantificare il principio appena esposto, si può usare una importantissima legge, la legge di mdahl, descritta nel prossimo paragrafo. 4 Ne parleremo nel capitolo 6 aggiornamento: 30 giugno utore: Sandro Petrizzelli

6 ppunti di Calcolatori Elettronici Capitolo Legge dii mdahll Questa legge serve a calcolare l eventuale guadagno di prestazione ottenibile migliorando una o più sezioni di un calcolatore. Essa afferma quanto segue: il miglioramento di prestazione ottenibile mediante l uso di alcune modalità di esecuzione più veloci è limitato dalla frazione di tempo in cui tali modalità possono essere impiegate. Per comprendere a pieno questa affermazione e per esplicitarla in termini quantitativi, dobbiamo premettere la definizione dell accelerazione (speedup) ottenibile da un calcolatore quanto utilizza una particolare caratteristica. Supponiamo di poter apportare un miglioramento ad una macchina per aumentare le sue prestazioni; l accelerazione ottenuta tramite il miglioramento è definibile tramite il seguente rapporto: PR = = PR dove è il tempo di esecuzione, per l intero lavoro preso in considerazione, senza il miglioramento (mentre PR è il suo reciproco), mentre invece è il tempo di esecuzione dello stesso lavoro ma in presenta del miglioramento (mentre PR è il suo reciproco). L accelerazione dice dunque quanto sarà più veloce l esecuzione di un lavoro con la macchina migliorata rispetto all esecuzione con la macchina originaria. d esempio, se un dato lavoro viene svolto in 5 secondi dalla macchina originaria e in 0 secondi da quella migliorata, avremo una accelerazione di 5/0=.5 (ovviamente adimensionale, trattandosi di un rapporto tra quantità omogenee). Premesso questo, la legge di mdahl fornisce un metodo rapido sia per determinare l accelerazione sia per capire da cosa essa possa essere limitata. In particolare, essa fa risalire l accelerazione a due fattori: la frazione di tempo di lavoro della macchina originaria che può essere modificata per avvantaggiarsi dei miglioramenti: si tratta perciò del rapporto tra il tempo durante il quale la macchina può usufruire del miglioramento ed il tempo totale di lavoro. Questa frazione, che indicheremo con, è chiaramente sempre minore o uguale all unità; il miglioramento ottenuto con il modo di esecuzione migliorato, espresso come rapporto tra il tempo del modo originale ed il tempo del modo migliorato ( 5 ). Indicheremo questo rapporto con. Supponiamo allora di utilizzare la macchina con il miglioramento. Il tempo totale di esecuzione del lavoro è la somma di due tempi: il tempo speso utilizzando no migl la parte non migliorata della macchina (che quindi coincide con quello che si spenderebbe usando la macchina nella configurazione originaria) ed il tempo speso usando la parte migliorata (che risulta minore rispetto a quello che si spenderebbe usando la macchina nella configurazione originaria). Scriviamo dunque che = no migl migl migl 5 Bisogna stare attenti a non confondersi: il tempo totale di lavoro, con o senza il miglioramento, è il tempo necessario alla macchina per compiere l intero lavoro che è stato predisposto; il tempo del modo migliorato è il tempo nel quale la macchina si avvantaggia del miglioramento per svolgere quei compiti cui il miglioramento è destinato, mentre il tempo del modo originale è quello impiegato per svolgere quegli stessi compiti ma senza il miglioramento. utore: Sandro Petrizzelli aggiornamento: 30 giugno 200 6

7 Principi di progettazione dei calcolatori Del resto, in base alle definizioni date poco fa e ricordando che è il tempo di esecuzione totale della macchina originale, possiamo scrivere che no migl migl = = ( ) Effettuando dunque la somma di queste due quantità, otteniamo = ( ) = ( ) Da qui otteniamo immediatamente l accelerazione globale semplicemente esplicitando il rapporto / : = = ( ) Questa espressione mostra chiaramente che un miglioramento anche molto spinto (corrispondente cioè ad >>) di una particolare funzione potrebbe avere un effetto complessivo pressoché nullo sulle prestazioni (cioè ) se tale funzione viene usata molto raramente ( <<). Esempio numerico Facciamo subito un esempio di applicazione della legge di mdahl. Supponiamo di applicare un miglioramento che consenta un funzionamento 0 volte più veloce rispetto a quello della macchina originaria, ma che sia utilizzabile solo per il 40% del tempo. Per calcolare l accelerazione globale ottenuta incorporando questo miglioramento, ci basta applicare le formule di prima: in primo luogo, dobbiamo calcolare la frazione migliorata, che è pari al rapporto tra il tempo durante il quale la macchina può usufruire del miglioramento ed il tempo totale di lavoro: le specifiche ci dicono che questa frazione vale 40% in percentuale, per cui in unità naturali vale 0.4; in secondo luogo, dobbiamo calcolare l accelerazione migliorata, ossia il rapporto tra il tempo del modo originale ed il tempo del modo migliorato: le specifiche ci dicono che questo valore è 0. bbiamo dunque che = = ( ) ( 0.4) = aggiornamento: 30 giugno utore: Sandro Petrizzelli

8 ppunti di Calcolatori Elettronici Capitolo Legge della diminuzione dei guadagni La legge di mdahl esprime anche la cosiddetta legge della diminuzione dei guadagni: l incremento di miglioramento dell accelerazione, dovuto ad un miglioramento delle prestazioni di soltanto una porzione della computazione, diminuisce man mano che vengono aggiunte le migliorie. Infatti, man mano che aggiungiamo delle migliorie alla nostra macchina, i tempi sui quali esse vanno ad agire sono sempre in numero minore (cioè diminuisce) e quindi anche i guadagni in termini di accelerazione globale sono sempre più piccoli. Corollario della legge di mdahl Un importante corollario della legge di mdahl è il seguente: se un miglioramento è utilizzabile solo per una frazione del lavoro complessivo, non è possibile accelerare il lavoro più della quantità. Questa affermazione risulta abbastanza evidente se si confrontano l espressione dell accelerazione globale fornita dalla legge di mdahl ed il limite : = ( ) E evidente che non può superare, in quanto i denominatori delle due frazioni differiscono per il termine aggiuntivo / presente in. Notiamo inoltre che il segno di uguaglianza vale solo se =0, ossia in assenza di miglioramenti. Esempio La legge di mdahl può servire come una specie di guida sia per valutare in quale misura un dato miglioramento potrà aumentare le prestazioni della macchina sia anche per capire come distribuire le risorse al fine di migliorare il rapporto costo/prestazioni (che è uno dei parametri principali di progettazione). L obbiettivo è ovviamente quello di impiegare più risorse e di maggiore qualità laddove viene spesa la maggior parte del tempo. Conviene fare un esempio di quest ultimo concetto. Supponiamo di poter aumentare la velocità della CPU della nostra macchina di un fattore 5 (senza influenzare le prestazioni di I/O), con un costo cinque volte superiore. Prima di applicare questo miglioramento, è importante valutare la sua convenienza in termini di rapporto costo/prestazioni: in altri termini, bisogna valutare se l incremento di prestazioni vale il corrispondente incremento dei costi oppure no. Per compiere questa valutazione, supponiamo di avere a disposizione le seguenti informazioni: utore: Sandro Petrizzelli aggiornamento: 30 giugno 200 8

9 Principi di progettazione dei calcolatori supponiamo che la CPU venga utilizzata solo per il 50% del tempo, mentre il rimanente 50% di tempo essa resta in attesa delle operazioni di I/O (notoriamente lente); supponiamo inoltre che il costo della CPU sia pari ad /3 del costo totale del calcolatore. Sulla base di queste informazioni, possiamo usare la legge di mdahl per capire se l aumento del costo complessivo della macchina è adeguato all aumento di prestazioni complessive, quantificabile quest ultimo proprio in termini di accelerazione complessiva: = = = ( ) ( 0.5) 5 In questa formula, abbiamo tenuto conto che l incremento della velocità della CPU (corrispondente ad =5) agisce solo per il 50% del tempo di esecuzione ( =0.5), dato che solo in tale 50% la CPU è attiva: il risultato così ottenuto ci dice allora che l eventuale miglioria applicata alla CPU comporta una accelerazione complessiva pari ad.67. Vediamo se tale accelerazione è commisurata all aumento di prezzo: ipotizzando un costo unitario per la macchina priva di miglioria, scriviamo, per tale macchina, che 2 = Coriginale = CI / O CCPU = 3 3 (dove, per semplicità, si è ipotizzato che il costo totale sia la somma del costo della CPU e di quello del sistema di I/O, che in realtà include molte altre cose). il costo della macchina migliorata sarà invece dato da C 2 C I / O CCPU = C I / O 5 C CPU = 5 = = Il rapporto tra il costo della macchina migliorata e quello della macchina originaria è dunque pari a 2.33, il che significa evidentemente che l aumento di costo è decisamente maggiore dell aumento di prestazioni, per cui il rapporto costo/prestazioni non risulta migliorato ( 6 ). 6 I discorsi relativi all influenza delle prestazioni della CPU e del sistema di I/O sulla macchina complessiva saranno in parte ripresi nel capitolo 9. aggiornamento: 30 giugno utore: Sandro Petrizzelli

10 ppunti di Calcolatori Elettronici Capitolo Località del riferimento La legge di mdahl è molto importante anche perchè è un teorema applicabile ad ogni tipo di sistema. Del resto, se consideriamo specificamente i programmi eseguiti da un calcolatore, possiamo trarre ulteriori importanti osservazioni. La proprietà principale di un programma è la cosiddetta località del riferimento: essa corrisponde al fatto che i programmi tendono a riutilizzare i dati e le istruzioni che hanno usato di recente. d esempio, una regola pratica ormai ampiamente accettata è la cosiddetta regola 90/0: essa afferma che un programma spende il 90% del suo tempo di esecuzione solo per il 0% del suo codice. Una immediata implicazione di questo principio è che, basandosi sul passato recente del programma, è possibile predire, con ragionevole accuratezza, quali dati ed istruzioni il programma userà nel prossimo futuro. E possibile compiere degli studi dettagliati al fine di esaminare il comportamento dei programmi nei riguardi del principio di località del riferimento. d esempio, si è trovato che il noto programma Spice (per la simulazione dei circuiti elettrici ed elettronici) presenta le seguenti caratteristiche: meno del 4% delle istruzioni del programma rappresenta l 80% delle istruzioni eseguite dinamicamente durante le simulazioni; a questo 4% di istruzioni si dà il nome di istruzioni statiche; all interno di tali istruzioni statiche, la percentuale di istruzioni eseguite dinamicamente sale al 90%; sempre tra le istruzioni statiche, meno del 50% viene eseguito almeno una volta ad ogni esecuzione del programma; in generale, rispetto al totale delle istruzioni, solo il 30% di esse viene eseguito una o più volte. Dati come quelli appena esposti possono servire ad ottimizzare il codice sorgente di un programma, ottimizzando le istruzioni che hanno la maggiore probabilità di essere eseguite, a scapito di quelle invece meno ricorrenti. La località dei riferimenti può essere applicata anche all accesso ai dati, anche se in modo decisamente meno regolare rispetto all accesso alle istruzioni. Vanno distinti, in particolare, due differenti tipi di località: la località temporale afferma che gli elementi ai quali si è fatto riferimento di recente saranno usati ancora nel prossimo futuro; la località spaziale afferma invece che gli elementi i cui indirizzi sono vicini ad un dato indirizzo di riferimento tendono ad essere referenziati in tempi molto ravvicinati. Come vedremo tra poco (e più diffusamente nel capitolo sulla memoria), questi concetti sono alla base dell uso di particolari unità di memoria ad accesso rapido (memorie cache), che consentono di migliorare le prestazioni di una macchina rendendo più velocemente disponibili quei dati che essa vorrà utilizzare con maggiore probabilità. utore: Sandro Petrizzelli aggiornamento: 30 giugno 200 0

11 Principi di progettazione dei calcolatori Il lavoro di un progettista di calcolatori Il progettista di architetture di calcolatori è colui che progetta macchine per eseguire programmi. Esso sceglie perciò l insieme delle istruzioni eseguibili sul calcolatore, l organizzazione funzionale delle risorse disponibili, il progetto logico del calcolatore e la sua realizzazione; quest ultima, a sua volta, include il progetto dei circuiti integrati (IC), dei loro contenitori, dell alimentazione e del raffreddamento. l fine di ottenere un progetto complessivo ottimizzato della macchina, risulta dunque necessaria una familiarità con una ampia gamma di tecnologie, dai compilatori ai sistemi operativi, dal progetto logico alla realizzazione. Il termine architettura del calcolatore include dunque molto più del progetto dell insieme di istruzioni. l contrario, parlando di architettura dell insieme di istruzioni ci riferiamo specificamente all insieme di istruzioni realmente visibile al programmatore: tale insieme di istruzioni serve come legame tra il software e l hardware. La realizzazione di una macchina ha, in generale, due componenti: organizzazione: comprende gli aspetti di progetto di più alto livello, come il sistema di memoria, la struttura del bus ed il progetto interno della CPU; hardware: con questo termine ci si riferisce generalmente al progetto logico dettagliato della macchina ed alla tecnologia con cui è stato realmente realizzato. Nei nostri discorsi, ci concentreremo essenzialmente sull architettura dell insieme di istruzioni e sull organizzazione. Requiisiitii ffunziionallii Un progettista di architetture di calcolatori deve effettuare il suo progetto in modo da soddisfare gli obbiettivi prefissi su tre differenti aspetti: requisiti funzionali; prezzo; prestazioni. Per quanto riguarda i requisiti funzionali, può trattarsi semplicemente di caratteristiche specifiche imposte dal mercato: ad esempio, le applicazioni software determinano come la macchina sarà usata e quindi spesso guidano la scelta di determinati requisiti funzionali; se una gran parte del software viene concepita per una certa architettura dell insieme di istruzioni, sarà tale architettura ad essere considerata quasi come predefinita dal progettista. Una semplice considerazione, in quest ottica, è la seguente: il fatto che la maggior parte dei moderni sistemi operativi usino memoria virtuale e meccanismi di protezione costituisce un requisito funzionale che il progettista dovrà garantire, fornendo un supporto minimo a tali funzionalità, senza il quale la macchina non sarebbe nemmeno avviabile ( 7 ); successivamente, ogni hardware aggiuntivo a tale soglia può essere valutato da un punto di vista costo/prestazioni. 7 Si veda, in proposito, il capitolo 8 aggiornamento: 30 giugno 200 utore: Sandro Petrizzelli

12 ppunti di Calcolatori Elettronici Capitolo Biillanciio sofftware e hardware Una volta stabilito un insieme di requisiti funzionali, il progettista deve cercare di ottimizzare il progetto complessivo della macchina, sulla base di opportuni parametri. I parametri più comuni sono senz altro il costo e le prestazioni. ltri parametri, più specifici dei vari ambienti di lavoro, sono ad esempio l affidabilità e la tolleranza ai guasti (che sono fondamentali negli ambienti transazionali). L obbiettivo dell ottimizzazione del rapporto costo/prestazioni sarà quello maggiormente inseguito nei nostri discorsi. Sostanzialmente, si tratterà sempre di individuare il punto migliore in cui realizzare determinati requisiti funzionali. Subentra a questo punto la questione generale della scelta se realizzare una data caratteristica tramite l hardware e tramite il software: la realizzazione via software è facile da progettare, semplice da aggiornare e con minore costo degli errori; la realizzazione via hardware ha invece il grosso vantaggio di garantire migliori prestazioni, anche se non sempre (infatti, un algoritmo realizzato via software può essere migliore di un algoritmo mediocre realizzato in hardware), mentre invece il costo degli errori è decisamente più alto (una cosa è modificare la riga di un programma e ben altra cosa è riparare o sostituire integralmente un intero circuito). Possiamo perciò affermare che un giusto bilancio tra hardware e software conduce sicuramente ad ottenere la macchina migliore per l applicazione di interesse. questo possiamo aggiungere che, talvolta, un requisito specifico può rendere necessaria l introduzione di un supporto hardware. d esempio, una macchina concepita per applicazioni scientifiche, in cui si faccia uso intensivo di calcoli in virgola mobile, richiederà quasi sicuramente hardware dedicato per le operazioni in virgola mobile: in questo caso, il problema non è tanto di funzionalità, quanto di prestazioni. Si tenga anche presente che il trattamento software della virgola mobile è comunque possibile, ma sicuramente più lento di quello via hardware. Dovendo scegliere tra due progetti, un fattore di giudizio è importante è anche la complessità di progetto. Infatti, i progetti complessi richiedono tempo per essere completati e immessi sul mercato, il che implica che essi, per poter essere competitivi ed attrarre gli utenti, debbano avere alte prestazioni. In generale, risulta più semplice controllare la complessità del software che non dell hardware, dato che il software è più facilmente leggibile e quindi modificabile, per cui un progettista potrebbe esplicitamente trasferire talune funzionalità dall hardware al software. fronte di questo, d altra parte, la scelta dell architettura dell insieme di istruzioni e la scelta dell organizzazione influenzano la complessità non solo dei sistemi operativi e dei compilatori, ma anche della realizzazione della macchina. Ullteriiorii ffattorii che iinfflluiiscono sull progetto ffinché una data architettura abbia successo, deve essere progettata per sopravvivere ai mutamenti della tecnologia hardware, della tecnologia software e delle caratteristiche delle applicazioni. Di conseguenza, il progettista deve essere sempre informato sulle tendenze prevalenti nella tecnologia dei calcolatori e sul loro impiego, nonché sulle tecnologie realizzative. utore: Sandro Petrizzelli aggiornamento: 30 giugno 200 2

13 Principi di progettazione dei calcolatori Il progettista deve anche essere informato sulle tendenze di mercato nel software e sul modo in cui i programmi utilizzeranno la macchina. d esempio, una delle principali tendenze del software è il costante aumento della quantità di memoria e di dati usati dai programmi: di conseguenza, il progettista dovrà stare sempre attento a non sottostimare la crescita dello spazio di indirizzamento richiesto dai programmi. Un altra tendenza del software, negli ultimi vent anni, è la sempre crescente prevalenza dei linguaggi ad alto livello sul linguaggio assembler. Questo ha determinato una importanza sempre maggiore dei compilatori, che quindi dovranno essere ben supportati dalle macchine. Fortunatamente per i progettisti, mentre i compilatori progrediscono abbastanza rapidamente, i linguaggi di programmazione subiscono i cambiamenti significativi in modo molto più lento, per cui le architetture scelte dai progettisti possono comunque sopravvivere per un numero sufficiente di anni. L ultima importante questione che un progettista deve affrontare, una volta compresa l influenza che le tendenze hardware e software hanno sul progetto della macchina, riguarda il modo con cui bilanciare la macchina. d esempio, bisogna decidere quanta memoria è necessario prevedere per la velocità di CPU stabilita oppure quando I/O verrà richiesto e simili. Per rispondere a questo tipo di domande, i progettisti Case e mdahl hanno creato due regole approssimative, che sono state poi riunite nella seguente regola unificata: un macchina da MIPS (milione di istruzioni al secondo) è bilanciata quando ha megabyte di memoria ed megabyte al secondo come prestazione di I/O. Questa regola è solo un punto di partenza per la progettazione di sistemi bilanciati, da perfezionare poi tramite misure delle prestazioni della macchina quando vengono eseguite le applicazioni previste. pplicazione concreta: la gerarchia di memorie In questo paragrafo vogliamo semplicemente mostrare un esempio reale di applicazione dei concetti esposti nei paragrafi precedenti. Cominciamo allora con un semplice ma fondamentale assioma del progetto hardware: piccolo è veloce. Piccoli segmenti di hardware sono, in generale, più veloci rispetto a segmenti di maggiori dimensioni. Questo semplice principio si applica in particolare alle memorie dei calcolatori, per due motivi diversi: nelle macchine ad alta velocità, la propagazione dei segnali rappresenta la principale causa di ritardo; le memorie di grandi dimensioni hanno un ritardo maggiore nella propagazione del segnale e richiedono più livelli di decodifica degli indirizzi; per la maggior parte delle tecnologie, è possibile ottenere memorie piccole più veloci di quelle grosse. Questo è dovuto essenzialmente alla possibilità, in un progetto di dimensioni contenute, di avere maggiore potenza per cella. Le memorie più veloci sono generalmente disponibili con numero ridotto di bit per integrato, ma il costo per byte è notevolmente più elevato. i fini delle prestazioni globali di una macchina, risultano determinanti l aumento del throughput della memoria e la riduzione del tempo di esecuzione delle procedure di accesso alla memoria stessa. Per migliorare questi fattori, è aggiornamento: 30 giugno utore: Sandro Petrizzelli

14 ppunti di Calcolatori Elettronici Capitolo sufficiente combinare i principi discussi in questo capitolo con la regola piccolo è veloce. bbiamo visto che, in base al principio della località dei riferimenti, i dati usati più di recente saranno ancora usati nel prossimo futuro; di conseguenza, se si favorisce l accesso a tali dati, si miglioreranno sicuramente le prestazioni. In termini concreti, questo significa cercare di mantenere, nella memoria più veloce, gli elementi utilizzati di recente. Dato che le memorie più piccole saranno le più veloci, esse devono essere usate in modo che i dati usati più di recente si trovino quanto più vicino possibile alla CPU, mentre invece le memorie più grandi (e più lente) andranno poste a maggiore distanza dalla CPU. Questo tipo di organizzazione prende il nome di gerarchia di memorie. La figura seguente mostra una tipica gerarchia di memorie multilivello: velocità di accesso Riferimento a registro CPU Registri Riferimento a cache C C H E Bus memoria Riferimento a memoria MEMORI Bus di I/O Riferimento alla memoria su disco Dispositivi di I/O dimensione Le varie unità di memoria sono qui riportate relativamente alla velocità di accesso (in ordinate) e alla dimensione (in ascisse): come detto prima, la relazione tra questi due parametri è di proporzionalità inversa (piccolo è veloce). Ci sono due importanti livelli nelle gerarchie di memoria usate al giorno d oggi: la cosiddetta memoria cache è una memoria molto piccola e molto veloce, posta in prossimità della CPU, che contiene i dati oppure il codice (o entrambi) usati più di recente. La CPU cerca dunque quello che le serve nella memoria cache: qualora non trovasse risultati per la propria richiesta, si avrebbe un fallimento di accesso alla cache ed il dato verrebbe recuperato dalla memoria principale e posto nella cache. Questo procedimento normalmente (ma non sempre) provoca un blocco della CPU fino a quando il dato non è disponibile; non tutti gli oggetti usati da un programma hanno la necessità di risiedere nella memoria principale; se il calcolatore dispone della cosiddetta memoria virtuale, alcuni oggetti possono risiedere su disco (o comunque su una memoria secondaria). tal proposito, ricordiamo che lo spazio di indirizzamento di un calcolatore è solitamente suddiviso in blocchi di lunghezza fissa, chiamati pagine; ogni pagina risiede (per intero) o nella memoria principale oppure su disco; quando la CPU vuole accedere ad un elemento di una pagina che non si trova nella cache o nella memoria utore: Sandro Petrizzelli aggiornamento: 30 giugno 200 4

15 Principi di progettazione dei calcolatori principale, si parla di mancanza di pagina (page fault) e la pagina viene copiata dal disco nella memoria principale. Quindi, tra la memoria cache e memoria principale esiste la stessa relazione che intercorre tra memoria principale e disco. Nella seguente tabella sono riportati alcuni valori quantitativi di esempio che caratterizzano i diversi livelli di memoria di una gerarchia del tipo prima illustrato: Livello Nome Registri Cache Memoria Memoria su principale disco Dimensioni tipiche < KB < 52 KB < 52 kb > GB Tempo di accesso (in ns) Throughput (in MB/s) Controllato da Compilatore Hardware Sistema operativo Supportato da Cache Memoria principale Disco Sistema operativo / utente Nastro Grazie al principio di località dei riferimenti ed alla elevata velocità delle memorie di dimensioni ridotte, una organizzazione gerarchica della memoria può sicuramente migliorare molto le prestazioni. Esempii numeriicii Supponiamo di avere un calcolatore con una memoria piccola e ad alta velocità, con una capacità di 2000 istruzioni. Supponiamo inoltre che il 0% di queste istruzioni sia responsabile per il 90% degli accessi a istruzione e che gli accessi per questo 0% siano uniformi (il che significa che tutte le istruzioni appartenenti a tale 0% vengono mediamente eseguite lo stesso numero di volte). Supponiamo ancora di avere un programma di istruzioni e di sapere qual è il 0% del programma che viene usato maggiormente. Ci chiediamo quale frazione degli accessi a istruzione può essere trasferito nella memoria ad alta velocità. La risposta è semplice: il 0% di istruzioni corrisponde a 5000 istruzioni; di queste, solo 2000 (cioè i 2/5) possono essere sistemate nella memoria ad alta velocità, per cui possiamo sistemare in tale memoria solo i 2/5 del 90% degli accessi ad istruzione, ossia il 36% delle istruzioni processate (36% = 90% 2/5). desso possiamo anche fare un altro esempio per accorgerci di quanto sia significativo l impatto della gerarchia di memorie sulle prestazioni di un calcolatore. Supponiamo che la memoria cache del nostro calcolatore sia 5 volte più veloce della memoria principale e che sia possibile usare tale cache per il 90% del tempo. Possiamo usare la legge di mdahl per calcolare il guadagno in velocità dovuto all uso della cache: la formula da applicare è dunque la solita, ossia aggiornamento: 30 giugno utore: Sandro Petrizzelli

16 ppunti di Calcolatori Elettronici Capitolo = ( ) dove è la frazione di tempo di utilizzo della cache, mentre è l accelerazione dovuta alla cache: in base ai dati a nostra disposizione, abbiamo che = ( 0.9) Quindi, usando la cache otteniamo una accelerazione pari a 3,6. utore: Sandro Petrizzelli sandry@iol.it sito personale: utore: Sandro Petrizzelli aggiornamento: 30 giugno 200 6

Valutazione delle prestazioni. Valutazione delle prestazioni. Tempo di risposta e throughput. Prestazioni e tempo di esecuzione

Valutazione delle prestazioni. Valutazione delle prestazioni. Tempo di risposta e throughput. Prestazioni e tempo di esecuzione Valutazione delle prestazioni Valutazione delle prestazioni Architetture dei Calcolatori (lettere A-I) Misura/valutazione di un insieme di parametri quantitativi per Quantificare le caratteristiche di

Dettagli

Valutazione delle prestazioni

Valutazione delle prestazioni Valutazione delle prestazioni Architetture dei Calcolatori (lettere A-I) Valutazione delle prestazioni Misura/valutazione di un insieme di parametri quantitativi per Quantificare le caratteristiche di

Dettagli

Calcolatori Elettronici

Calcolatori Elettronici Calcolatori Elettronici Valutazione delle Prestazioni Francesco Lo Presti Rielaborate da Salvatore Tucci Valutazione delle Prestazioni q Misura/valutazione di un insieme di parametri quantitativi per caratterizzare

Dettagli

Prestazioni 1. Prestazioni 2. Prestazioni 3

Prestazioni 1. Prestazioni 2. Prestazioni 3 Valutazione delle Prestazioni Architetture dei Calcolatori Valutazione delle Prestazioni Prof. Francesco Lo Presti Misura/valutazione di un insieme di parametri quantitativi per caratterizzare le prestazioni

Dettagli

I formati delle istruzioni

I formati delle istruzioni Appunti di Calcolatori Elettronici Le istruzioni I formati delle istruzioni... 1 Criteri generali di progettazione dei formati delle istruzioni... 2 Cenni all indirizzamento... 4 Indirizzamento immediato...

Dettagli

Valutazione delle prestazioni

Valutazione delle prestazioni Valutazione delle prestazioni Cristina Silvano Università degli Studi di Milano Dipartimento di Scienze dell Informazione email: silvano@dsi.unimi.it Cristina Silvano pag 1 Valutazione delle prestazioni

Dettagli

Valutazione delle prestazioni

Valutazione delle prestazioni Valutazione delle prestazioni Cristina Silvano Università degli Studi di Milano Dipartimento di Scienze dell Informazione email: silvano@dsi.unimi.it Cristina Silvano pag 1 Valutazione delle prestazioni

Dettagli

Architettura hardware

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

Dettagli

Introduzione alle gerarchie di memoria

Introduzione alle gerarchie di memoria Introduzione alle gerarchie di memoria 1 Un ripasso Circuito sequenziale Segnale di clock Circuito sincrono Temporizzazione sensibile ai fronti Latch tipo S-R Latch tipo D Flip-flop tipo D Register file

Dettagli

Valutazione delle prestazioni

Valutazione delle prestazioni Valutazione delle prestazioni Trend tecnologico: Capacità della Memoria Capacità chip DRAM DRAM Year Size 1980 64 Kb 1983 256 Kb 1986 1 Mb 1989 4 Mb 1992 16 Mb 1996 64 Mb 1999 256 Mb 2002 1 Gb Incremento

Dettagli

Cache associativa. Possibili alternative per il trasferimento di un blocco dalla memoria inferiore alla memoria superiore:

Cache associativa. Possibili alternative per il trasferimento di un blocco dalla memoria inferiore alla memoria superiore: Cache associativa Possibili alternative per il trasferimento di un blocco dalla memoria inferiore alla memoria superiore: 1. Indirizzamento diretto (già visto). Ogni blocco della memoria inferiore può

Dettagli

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione dei numeri relativi

Corso di Informatica Generale (C. L. Economia e Commercio) Ing. Valerio Lacagnina Rappresentazione dei numeri relativi Codice BCD Prima di passare alla rappresentazione dei numeri relativi in binario vediamo un tipo di codifica che ha una certa rilevanza in alcune applicazioni: il codice BCD (Binary Coded Decimal). È un

Dettagli

percorso 4 Estensione on line lezione 2 I fattori della produzione e le forme di mercato La produttività La produzione

percorso 4 Estensione on line lezione 2 I fattori della produzione e le forme di mercato La produttività La produzione Estensione on line percorso 4 I fattori della produzione e le forme di mercato lezione 2 a produzione a produttività Una volta reperiti i fattori produttivi necessari l imprenditore dovrà decidere come

Dettagli

La memoria-gerarchia. Laboratorio di Informatica - Lezione 3 - parte I La memoria - La rappresentazione delle informazioni

La memoria-gerarchia. Laboratorio di Informatica - Lezione 3 - parte I La memoria - La rappresentazione delle informazioni La memoriaparametri di caratterizzazione Un dato dispositivo di memoria è caratterizzato da : velocità di accesso, misurata in base al tempo impiegato dal processore per accedere ad uno specificato indirizzo

Dettagli

Criteri di caratterizzazione di una memoria

Criteri di caratterizzazione di una memoria La memoria Supporto alla CPU: deve fornire alla CPU dati e istruzioni il più rapidamente possibile; Archivio: deve consentire di archiviare dati e programmi garantendone la conservazione e la reperibilità

Dettagli

static dynamic random access memory

static dynamic random access memory LA MEMORIA SRAM e D R A M static dynamic random access memory SRAM: unità che memorizza un gran numero di parole in un insieme di flip-flop, opportunamente connessi, mediante un sistema di indirizzamento

Dettagli

La Memoria Cache. Informatica B. Daniele Loiacono

La Memoria Cache. Informatica B. Daniele Loiacono La Memoria Cache Informatica B Il problema della memoria q Obiettivo: fornire agli utenti una memoria grande e veloce fornire al processore i dati alla velocità con cui è in grado di elaborarli q Problema:

Dettagli

La struttura gerarchica delle memorie

La struttura gerarchica delle memorie Architettura degli Elaboratori e delle Reti Lezione 27 La struttura gerarchica delle memorie Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano

Dettagli

CONSEGUENZA PROPORZIONI

CONSEGUENZA PROPORZIONI Corso di laurea: BIOLOGIA Tutor: Floris Marta PRECORSI DI MATEMATICA CONSEGUENZA PROPORZIONI PROBLEMI DEL TRE SEMPLICE Le conoscenze acquisite sui rapporti e sulle proporzioni possono essere applicate

Dettagli

Architettura degli Elaboratori

Architettura degli Elaboratori Architettura degli Elaboratori Università degli Studi di Padova Facoltà di Scienze MM.FF.NN. Corso di Laurea in Informatica docente: Alessandro Sperduti Informazioni Generali Lucidi ed esercizi disponibili

Dettagli

Architettura degli Elaboratori

Architettura degli Elaboratori Architettura degli Elaboratori Università degli Studi di Padova Scuola di Scienze Corso di Laurea in Informatica docente: Alessandro Sperduti Informazioni Generali Lucidi ed esercizi disponibili in formato

Dettagli

Architettura degli Elaboratori

Architettura degli Elaboratori Architettura degli Elaboratori Università degli Studi di Padova Scuola di Scienze Corso di Laurea in Informatica docenti: Silvia Crafa, Nicolò Navarin (lab), Alessandro Sperduti Docenti Silvia Crafa Nicolò

Dettagli

Von Neumann Bottleneck

Von Neumann Bottleneck Von Neumann Bottleneck Gerarchia di memoria Struttura della Gerarchia Al livello 1 poniamo la memoria più veloce (piccola e costosa) Al livello n poniamo la memoria più lenta (grande ed economica) Scopo

Dettagli

Lezione 15 Il Set di Istruzioni (1)

Lezione 15 Il Set di Istruzioni (1) Lezione 15 Il Set di Istruzioni (1) Vittorio Scarano Architettura Corso di Laurea in Informatica Università degli Studi di Salerno Un quadro della situazione Input/Output Sistema di Interconnessione Registri

Dettagli

Derivazione numerica. Introduzione al calcolo numerico. Derivazione numerica (II) Derivazione numerica (III)

Derivazione numerica. Introduzione al calcolo numerico. Derivazione numerica (II) Derivazione numerica (III) Derivazione numerica Introduzione al calcolo numerico Il calcolo della derivata di una funzione in un punto implica un processo al limite che può solo essere approssimato da un calcolatore. Supponiamo

Dettagli

Blocchi di più parole

Blocchi di più parole Blocchi di più parole Per trarre vantaggio dalla località spaziale non conviene avere blocchi di una sola parola ma blocchi di più parole che occupano nella memoria principale posizioni vicine. Esempio:

Dettagli

Cap. 2 - Rappresentazione in base 2 dei numeri interi

Cap. 2 - Rappresentazione in base 2 dei numeri interi Cap. 2 - Rappresentazione in base 2 dei numeri interi 2.1 I NUMERI INTERI RELATIVI I numeri relativi sono numeri con il segno: essi possono essere quindi positivi e negativi. Si dividono in due categorie:

Dettagli

Lezione 4 1. Introduzione

Lezione 4 1. Introduzione Lezione 4 1 Introduzione Le curve di domanda ed offerta servono per determinare possibili scenari futuri in seguito a cambiamenti delle condizioni. Ad esempio, la diminuzione della offerta di petrolio

Dettagli

Il Processore. Informatica di Base -- R.Gaeta 27

Il Processore. Informatica di Base -- R.Gaeta 27 Il Processore Il processore (detto anche CPU, ovvero, Central Processing Unit) è la componente dell unità centrale che fornisce la capacità di elaborazione delle informazioni contenute nella memoria principale

Dettagli

Dischi e CPU. Alcuni esercizi sulle prestazioni (seconda parte)

Dischi e CPU. Alcuni esercizi sulle prestazioni (seconda parte) Dischi e CPU Alcuni esercizi sulle prestazioni (seconda parte) Calcolo della «domanda» di servizio alla CPU D C,CPU = U C / X C tempo medio di CPU consumato per transazione U C = utilizzo della classe

Dettagli

Prodotto scalare e prodotto vettoriale. Elisabetta Colombo

Prodotto scalare e prodotto vettoriale. Elisabetta Colombo Corso di Approfondimenti di Matematica Biotecnologie, Anno Accademico 2010-2011, http://users.mat.unimi.it/users/colombo/programmabio.html Vettori Vettori 1 2 3 4 di di Ricordiamo il in R n Dati a = (a

Dettagli

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

Ancora sui criteri di divisibilità di Marco Bono

Ancora sui criteri di divisibilità di Marco Bono Ancora sui criteri di divisibilità di Talvolta può essere utile conoscere i divisori di un numero senza effettuare le divisioni, anche se la diffusione delle calcolatrici elettroniche, sotto varie forme,

Dettagli

Architettura dei computer

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

Dettagli

Corso di Architettura (Prof. Scarano) 09/04/2002

Corso di Architettura (Prof. Scarano) 09/04/2002 Corso di Architettura (Prof. Scarano) 09/0/2002 Un quadro della situazione Lezione 15 Il Set di Istruzioni (1) Vittorio Scarano Architettura Corso di Laurea in Informatica Università degli Studi di Salerno

Dettagli

La simulazione è l'imitazione di un processo o di un sistema reale per un

La simulazione è l'imitazione di un processo o di un sistema reale per un 1 2 La simulazione è l'imitazione di un processo o di un sistema reale per un determinato periodo di tempo. La simulazione è l'imitazione di un processo o di un sistema reale per un determinato periodo

Dettagli

Valutazione delle Prestazioni

Valutazione delle Prestazioni Valutazione delle Prestazioni Misure per le Prestazioni T durata del ciclo di clock [secondi] F numero cicli di clock al secondo [hertz] F 1 / T T 1 / F Exe_Time X tempo di esecuzione (CPU) di un programma

Dettagli

Capitolo 7: Input/Output. Es.1 - Bus sincrono. Es.1 - Risposta (a)

Capitolo 7: Input/Output. Es.1 - Bus sincrono. Es.1 - Risposta (a) Esercitazione di Calcolatori Elettronici Ing. Gian Luca Marcialis Corso di Laurea in Ingegneria Elettronica Capitolo 7: Input/Output Capitolo 7 Input/Output Esercizi sul BUS: 1. Bus sincrono 2. Arbitraggio

Dettagli

La codifica digitale

La codifica digitale La codifica digitale Codifica digitale Il computer e il sistema binario Il computer elabora esclusivamente numeri. Ogni immagine, ogni suono, ogni informazione per essere compresa e rielaborata dal calcolatore

Dettagli

Il processore. Istituzionii di Informatica -- Rossano Gaeta

Il processore. Istituzionii di Informatica -- Rossano Gaeta Il processore Il processore (detto anche CPU, ovvero, Central Processing Unit) è la componente dell unità centrale che fornisce la capacità di elaborazione delle informazioni contenute nella memoria principale

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T2 3-La memoria 1 Prerequisiti Concetto di memoria Dati e istruzioni Bit e byte 2 1 Introduzione In questa Unità studiamo più in dettaglio la memoria del computer e le sue funzioni.

Dettagli

Esame di INFORMATICA Lezione 4

Esame di INFORMATICA Lezione 4 Università di L Aquila Facoltà di Biotecnologie Esame di INFORMATICA Lezione 4 MACCHINA DI VON NEUMANN Il sottosistema di memorizzazione (memoria) contiene dati + istruzioni, inseriti inizialmente tramite

Dettagli

Gli attori principali di un architettura

Gli attori principali di un architettura Memoria Architettura degli Elaboratori e delle Reti, Turno I Alberto Borghese Università degli Studi di Milano Dipartimento di Scienze dell Informazione email: borghese@dsi.unimi.it Gli attori principali

Dettagli

Architettura degli elaboratori - 2 -

Architettura degli elaboratori - 2 - Università degli Studi dell Insubria Dipartimento di Scienze Teoriche e Applicate Architettura degli elaboratori e gerarchie di memoria Marco Tarini Dipartimento di Scienze Teoriche e Applicate marco.tarini@uninsubria.it

Dettagli

I.4 Rappresentazione dell informazione

I.4 Rappresentazione dell informazione I.4 Rappresentazione dell informazione Università di Ferrara Dipartimento di Economia e Management Insegnamento di Informatica Ottobre 13, 2015 Argomenti Introduzione 1 Introduzione 2 3 L elaboratore Introduzione

Dettagli

Componenti principali. Programma cablato. Architettura di Von Neumann. Programma cablato. Cos e un programma? Componenti e connessioni

Componenti principali. Programma cablato. Architettura di Von Neumann. Programma cablato. Cos e un programma? Componenti e connessioni Componenti principali Componenti e connessioni Capitolo 3 CPU (Unita Centrale di Elaborazione) Memoria Sistemi di I/O Connessioni tra loro 1 2 Architettura di Von Neumann Dati e instruzioni in memoria

Dettagli

Insiemi di numeri reali

Insiemi di numeri reali Capitolo 1 1.1 Elementi di teoria degli insiemi Se S è una totalità di oggetti x, si dice che S è uno spazio avente gli elementi x. Se si considerano alcuni elementi di S si dice che essi costituiscono

Dettagli

STRUTTURE DI CONTROLLO DEL C++

STRUTTURE DI CONTROLLO DEL C++ STRUTTURE DI CONTROLLO DEL C++ Le istruzioni if e else Le istruzioni condizionali ci consentono di far eseguire in modo selettivo una singola riga di codice o una serie di righe di codice (che viene detto

Dettagli

2. I numeri reali e le funzioni di variabile reale

2. I numeri reali e le funzioni di variabile reale . I numeri reali e le funzioni di variabile reale Introduzione Il metodo comunemente usato in Matematica consiste nel precisare senza ambiguità i presupposti, da non cambiare durante l elaborazione dei

Dettagli

EQUAZIONI CARTESIANE DELLA CIRCONFERENZA

EQUAZIONI CARTESIANE DELLA CIRCONFERENZA EQUAZIONI CARTESIANE DELLA CIRCONFERENZA G. MEZZETTI Definizione. Siano dati un punto C e un numero r R, r 0; si dice circonferenza di centro C e raggio r l insieme di quei punti del piano la cui distanza

Dettagli

FILE E INDICI Architettura DBMS

FILE E INDICI Architettura DBMS FILE E INDICI Architettura DBMS Giorgio Giacinto 2010 Database 2 Dati su dispositivi di memorizzazione esterni! Dischi! si può leggere qualunque pagina a costo medio fisso! Nastri! si possono leggere le

Dettagli

Mari, Buonanno, Sciuto Informatica e cultura dell informazione McGraw-Hill

Mari, Buonanno, Sciuto Informatica e cultura dell informazione McGraw-Hill Mari, Buonanno, Sciuto Informatica e cultura dell informazione McGraw-Hill // Copyright 7 The McGraw-Hill Companies srl Copyright 7 The McGraw-Hill Companies srl Supporto alla CPU: deve fornire alla CPU

Dettagli

Informatica! appunti dalle lezioni dal 18/09/2012 al 28/09/2012!!

Informatica! appunti dalle lezioni dal 18/09/2012 al 28/09/2012!! Informatica! appunti dalle lezioni dal 18/09/2012 al 28/09/2012!! Definizioni! Informatica: scienza per l elaborazione automatica dell informazione! Informatica = Informazione + Automatica! Informazione:

Dettagli

CORSO ZERO DI MATEMATICA

CORSO ZERO DI MATEMATICA UNIVERSITÀ DEGLI STUDI DI PALERMO FACOLTÀ DI ARCHITETTURA CORSO ZERO DI MATEMATICA RADICALI Dr. Erasmo Modica erasmo@galois.it LE RADICI Abbiamo visto che l insieme dei numeri reali è costituito da tutti

Dettagli

Componenti e connessioni. Capitolo 3

Componenti e connessioni. Capitolo 3 Componenti e connessioni Capitolo 3 Componenti principali CPU (Unità Centrale di Elaborazione) Memoria Sistemi di I/O Connessioni tra loro Architettura di Von Neumann Dati e instruzioni in memoria (lettura

Dettagli

1 Introduzione alle matrici quadrate 2 2 a coefficienti in R.

1 Introduzione alle matrici quadrate 2 2 a coefficienti in R. 1 Introduzione alle matrici quadrate 2 2 a coefficienti in R Per introdurre il concetto di matrice, a 2 righe e 2 colonne, iniziamo col considerare griglie o tabelle di numeri Gli elementi della griglia,

Dettagli

Limiti di successioni

Limiti di successioni Capitolo 5 Limiti di successioni 5.1 Successioni Quando l insieme di definizione di una funzione coincide con l insieme N costituito dagli infiniti numeri naturali 1, 2, 3,... talvolta si considera anche

Dettagli

Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 25/02/2016/ Foglio delle domande / VERSIONE 1

Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 25/02/2016/ Foglio delle domande / VERSIONE 1 Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 25/02/2016/ Foglio delle domande/ VERSIONE 1 1) In Python, se scrivo v = [ ] in un programma, vuol dire che a) v è un quadrato b) v è una list c) v

Dettagli

Architettura degli elaboratori - 2 -

Architettura degli elaboratori - 2 - Università degli Studi dell Insubria Dipartimento di Scienze Teoriche e Applicate Architettura degli elaboratori e gerarchie di memoria Marco Tarini Dipartimento di Scienze Teoriche e Applicate marco.tarini@uninsubria.it

Dettagli

La memoria principale

La memoria principale La memoria principale DRAM (Dynamic RAM) il contenuto viene memorizzato per pochissimo tempo per cui deve essere aggiornato centinaia di volte al secondo (FPM, EDO, SDRAM, RDRAM) SRAM (Static RAM) veloce

Dettagli

LEZIONE DI MATEMATICA SISTEMI DI NUMERAZIONE. (Prof. Daniele Baldissin)

LEZIONE DI MATEMATICA SISTEMI DI NUMERAZIONE. (Prof. Daniele Baldissin) LEZIONE DI MATEMATICA SISTEMI DI NUMERAZIONE (Prof. Daniele Baldissin) L'uomo usa normalmente il sistema di numerazione decimale, probabilmente perché ha dieci dita. Il sistema decimale è collegato direttamente

Dettagli

Fallimenti nella TLB

Fallimenti nella TLB Fallimenti nella TLB Un fallimento nella TLB può essere dovuto a due motivi: 1. la pagina fisica non è presente in memoria (page fault); 2. la traduzione non è nella TLB, anche se la pagina fisica è presente

Dettagli

Componenti principali

Componenti principali Componenti e connessioni Capitolo 3 Componenti principali n CPU (Unità Centrale di Elaborazione) n Memoria n Sistemi di I/O n Connessioni tra loro Architettura di Von Neumann n Dati e instruzioni in memoria

Dettagli

UNITÀ DIDATTICA 5 LA RETTA

UNITÀ DIDATTICA 5 LA RETTA UNITÀ DIDATTICA 5 LA RETTA 5.1 - La retta Equazione generica della retta Dalle considerazioni emerse nel precedente capitolo abbiamo compreso come una funzione possa essere rappresentata da un insieme

Dettagli

FRAZIONI e NUMERI RAZIONALI

FRAZIONI e NUMERI RAZIONALI FRAZIONI e NUMERI RAZIONALI Frazioni Come per i numeri naturali, anche per gli interi relativi si definisce l'operazione di divisione come operazione inversa della moltiplicazione: Divisione di numeri

Dettagli

2. ALGORITMO DEL SIMPLESSO

2. ALGORITMO DEL SIMPLESSO . ALGORITMO DEL SIMPLESSO R. Tadei Una piccola introduzione R. Tadei SIMPLESSO L obiettivo del capitolo è quello di fornire un algoritmo, l algoritmo del simplesso, che risolve qualsiasi problema di programmazione

Dettagli

ELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE)

ELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE) 1 LEZIONE 9 ELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE) Laboratorio di Informatica per l Educazione A. A. 2014/2015 IN SINTESI (ELABORAZIONE) Con i COMPUTER, le macchine diventano

Dettagli

Modelli e Metodi per la Simulazione (MMS)

Modelli e Metodi per la Simulazione (MMS) Modelli e Metodi per la Simulazione (MMS) adacher@dia.uniroma3.it Programma La simulazione ad eventi discreti, è una metodologia fondamentale per la valutazione delle prestazioni di sistemi complessi (di

Dettagli

Il Software programmabili programma algoritmo

Il Software programmabili programma algoritmo Il Software La proprietà fondamentale dei calcolatori e` quella di essere programmabili cioè in grado di svolgere compiti diversi a seconda delle istruzioni fornite dall utente mediante un programma, ossia

Dettagli

La struttura gerarchica delle memorie

La struttura gerarchica delle memorie Architettura degli Elaboratori e delle Reti Lezione 27 La struttura gerarchica delle memorie Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano

Dettagli

Corso di Informatica Modulo T2 1 - Linguaggi e macchine

Corso di Informatica Modulo T2 1 - Linguaggi e macchine Corso di Informatica Modulo T2 1 - Linguaggi e macchine 1 Prerequisiti Principi della comunicazione Rappresentazione simbolica Calcolo delle combinazioni di n oggetti a gruppi di k Dati e istruzioni Utilizzo

Dettagli

G L O S S A R I O. Fondamenti di Informatica I - Università degli Studi di Trento Dott. Roberti Pierluigi

G L O S S A R I O. Fondamenti di Informatica I - Università degli Studi di Trento Dott. Roberti Pierluigi G L O S S A R I O BIT: acronimo di Binary Digit. E l unità elementare di informazione. Può assumere solo il valore 0 o 1. CALCOLATORE: macchina che opera la trasformazione dei dati (informazioni) HARDWARE:

Dettagli

Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 30/06/2016/ Foglio delle domande / VERSIONE 1

Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 30/06/2016/ Foglio delle domande / VERSIONE 1 Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 30/06/2016/ Foglio delle domande/ VERSIONE 1 1) In Python, se scrivo v = [ ] in un programma, vuol dire che a) v è un quadrato b) v è un insieme vuoto

Dettagli

Programmi e Oggetti Software

Programmi e Oggetti Software Corso di Laurea Ingegneria Civile Fondamenti di Informatica Dispensa 06 Programmi e Oggetti Software Marzo 2010 Programmi e Oggetti Software 1 Contenuti Cosa è un programma Cosa significa programmare Il

Dettagli

Insiemistica. Capitolo 1. Prerequisiti. Obiettivi. Gli insiemi numerici di base Divisibilità e fattorizzazione nei numeri interi

Insiemistica. Capitolo 1. Prerequisiti. Obiettivi. Gli insiemi numerici di base Divisibilità e fattorizzazione nei numeri interi Capitolo 1 Insiemistica Prerequisiti Gli insiemi numerici di base Divisibilità e fattorizzazione nei numeri interi Obiettivi Sapere utilizzare opportunamente le diverse rappresentazioni insiemistiche Sapere

Dettagli

Le disequazioni di primo grado. Prof. Walter Pugliese

Le disequazioni di primo grado. Prof. Walter Pugliese Le disequazioni di primo grado Prof. Walter Pugliese Concetto di disequazione Consideriamo la seguente disuguaglianza: 2x 3 < 5 + x Procedendo per tentativi, attribuiamo alla lettera x alcuni valori e

Dettagli

Calcolatori Elettronici: introduzione

Calcolatori Elettronici: introduzione Calcolatori Elettronici: introduzione G. Lettieri 3 Marzo 2017 1 Introduzione e richiami La Figura 1 mostra l architettura generale di un calcolatore. Nel corso approfondiremo ogni componente. I principali

Dettagli

SOLUZIONI DELLA PROVA SCRITTA DEL CORSO DI. NUOVO E VECCHIO ORDINAMENTO DIDATTICO 13 Luglio 2004

SOLUZIONI DELLA PROVA SCRITTA DEL CORSO DI. NUOVO E VECCHIO ORDINAMENTO DIDATTICO 13 Luglio 2004 SOLUZIONI DELLA PROVA SCRITTA DEL CORSO DI NUOVO E VECCHIO ORDINAMENTO DIDATTICO 13 Luglio 2004 MOTIVARE IN MANIERA CHIARA LE SOLUZIONI PROPOSTE A CIASCUNO DEGLI ESERCIZI SVOLTI ESERCIZIO 1 (9 punti) Si

Dettagli

Capitolo 14: Struttura delle memorie di massa

Capitolo 14: Struttura delle memorie di massa Capitolo 14: Struttura delle memorie di massa Struttura dei dischi. Schedulazione degli accessi al disco. Amministrazione del disco. Gestione dello spazio di swap. 14.1 Struttura dei dischi I dischi rigidi

Dettagli

Informatica 10. appunti dalla lezione del 16/11/2010

Informatica 10. appunti dalla lezione del 16/11/2010 Informatica 10 appunti dalla lezione del 16/11/2010 Memorie Dispositivi in grado di conservare al loro interno informazione per un intervallo di tempo significativo RAM chiavetta USB Hard disk CD/DVD SD

Dettagli

Teoria dei giochi. migliorare il proprio obiettivo il sistema ha raggiunto l equilibrio.

Teoria dei giochi. migliorare il proprio obiettivo il sistema ha raggiunto l equilibrio. iii migliorare il proprio obiettivo il sistema ha raggiunto l equilibrio. Per introdurre la nozione di equilibrio di Nash consideriamo due giocatori. Siano f A (x, y) :AxB = R e f B (x, y) :AxB = R entrambe

Dettagli

8 bit per la parola nel blocco 10 bit per l insieme (gruppo) nella cache 12 bit di etichetta. Esercizio 3 Memoria Cache

8 bit per la parola nel blocco 10 bit per l insieme (gruppo) nella cache 12 bit di etichetta. Esercizio 3 Memoria Cache Esercizio 3 Memoria Cache Prima parte - memoria di 1 Giga parole da 16 bit (indirizzata a livello di parola) - cache di 1 Mega parole da 16 bit (indirizzata a livello di parola) - ogni della cache contiene

Dettagli

1 Ampliamento del piano e coordinate omogenee

1 Ampliamento del piano e coordinate omogenee 1 Ampliamento del piano e coordinate omogenee Vogliamo dare una idea, senza molte pretese, dei concetti che stanno alla base di alcuni calcoli svolti nella classificazione delle coniche. Supponiamo di

Dettagli

Architetture degli Elaboratori I I Compito di Esonero (A) - 14/11/1996

Architetture degli Elaboratori I I Compito di Esonero (A) - 14/11/1996 1 Architetture degli Elaboratori I I Compito di Esonero (A) - 14/11/1996 Riportare le soluzioni su questi fogli utilizzando eventualmente il retro come brutta. Non è ammessa la consultazione di nessun

Dettagli

Architettura dei sistemi di elaborazione: La memoria (parte 1)

Architettura dei sistemi di elaborazione: La memoria (parte 1) Architettura dei sistemi di elaborazione: La memoria (parte 1) CPU e Memoria La tecnologia consente di realizzare CPU sempre più veloci. A partire dal 2006 sono stati messi sul mercato processori con frequenza

Dettagli

METODO DEI SEGMENTINI (Prof. Daniele Baldissin)

METODO DEI SEGMENTINI (Prof. Daniele Baldissin) METODO DEI SEGMENTINI (Prof. Daniele Baldissin) Il metodo dei segmentini costituisce una procedura di soluzione di particolari problemi che si incontrano spesso in geometria e nella vita di tutti i giorni.

Dettagli

Calcolatori Elettronici A a.a. 2008/2009

Calcolatori Elettronici A a.a. 2008/2009 Calcolatori Elettronici A a.a. 2008/2009 Instruction Set Architecture: nozioni generali Massimiliano Giacomin 1 DOVE CI TROVIAMO Livello del linguaggio specializzato Traduzione (compilatore) o interpretazione

Dettagli

Informatica Generale 07 - Sistemi Operativi:Gestione dei processi

Informatica Generale 07 - Sistemi Operativi:Gestione dei processi Informatica Generale 07 - Sistemi Operativi:Gestione dei processi Cosa vedremo: Esecuzione di un programma Concetto di processo Interruzioni Sistemi monotasking e multitasking Time-sharing Tabella dei

Dettagli

2.6 Calcolo degli equilibri di Nash

2.6 Calcolo degli equilibri di Nash 92 2 Giochi non Cooperativi Per queste estensioni di giochi non finiti si possono provare risultati analoghi a quelli visti per i giochi finiti. Rimandiamo alla bibliografia per uno studio più approfondito

Dettagli

TEORIA DEI SISTEMI OPERATIVI. Sistemi monoprogrammatie multiprogrammati

TEORIA DEI SISTEMI OPERATIVI. Sistemi monoprogrammatie multiprogrammati TEORIA DEI SISTEMI OPERATIVI Sistemi monoprogrammatie multiprogrammati 1 STRUTTURA DEL SISTEMA OPERATIVO UTENTE La struttura di un sistema operativo è di tipo gerarchico: i programmi che lo compongono

Dettagli

Informatica giuridica

Informatica giuridica Informatica giuridica Corso di laurea in Scienze dei Servizi giuridici Corso di laurea magistrale in Giurisprudenza A.A. 2015/16 L architettura hardware degli elaboratori La scheda madre Memoria principale

Dettagli

GESTIONE DELLA MEMORIA CENTRALE 6.1 D. - UNICAL

GESTIONE DELLA MEMORIA CENTRALE 6.1 D. - UNICAL 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

1.5 Control bus Sistemi: architettura dei microprocessori

1.5 Control bus Sistemi: architettura dei microprocessori Control bus 1.5 Control bus Le azioni di lettura, scrittura, acquisizione ed emissione sono governate dalla CPU che sincronizza gli altri dispositivi attraverso il controlo bus. Il control bus è costitituito

Dettagli

Il protocollo RS Introduzione. 1.2 Lo Standard RS-232

Il protocollo RS Introduzione. 1.2 Lo Standard RS-232 1 Il protocollo RS232 1.1 Introduzione Come noto un dispositivo di interfaccia permette la comunicazione tra la struttura hardware di un calcolatore e uno o più dispositivi esterni. Uno degli obiettivi

Dettagli

Influenza dell' I/O sulle prestazioni (globali) di un sistema

Influenza dell' I/O sulle prestazioni (globali) di un sistema Influenza dell' I/O sulle prestazioni (globali) di un sistema Tempo totale per l'esecuzione di un programma = tempo di CPU + tempo di I/O Supponiamo di avere un programma che viene eseguito in 100 secondi

Dettagli

Piano cartesiano e retta

Piano cartesiano e retta Piano cartesiano e retta Il punto, la retta e il piano sono concetti primitivi di cui non si da una definizione rigorosa, essi sono i tre enti geometrici fondamentali della geometria euclidea. Osservazione

Dettagli

Algoritmo. La programmazione. Algoritmo. Programmare. Procedimento di risoluzione di un problema

Algoritmo. La programmazione. Algoritmo. Programmare. Procedimento di risoluzione di un problema Algoritmo 2 Procedimento di risoluzione di un problema La programmazione Ver. 2.4 Permette di ottenere un risultato eseguendo una sequenza finita di operazioni elementari Esempi: Una ricetta di cucina

Dettagli

Il linguaggio macchina

Il linguaggio macchina Università degli Studi di Palermo Facoltà di Ingegneria Il linguaggio macchina Edoardo Ardizzone & Ignazio Infantino Appunti per il corso di Fondamenti di Informatica Corso di Laurea in Ingegneria Informatica

Dettagli

Introduzione all'architettura dei Calcolatori

Introduzione all'architettura dei Calcolatori Introduzione all'architettura dei Calcolatori Architettura dei calcolatori Che cos è un calcolatore? Come funziona un calcolatore? un calcolatore è un sistema un sistema è un oggetto costituito da molte

Dettagli

La CPU e la Memoria. Sistemi e Tecnologie Informatiche 1. Struttura del computer. Sistemi e Tecnologie Informatiche 2

La CPU e la Memoria. Sistemi e Tecnologie Informatiche 1. Struttura del computer. Sistemi e Tecnologie Informatiche 2 La CPU e la Memoria Sistemi e Tecnologie Informatiche 1 Struttura del computer Sistemi e Tecnologie Informatiche 2 1 I registri La memoria contiene sia i dati che le istruzioni Il contenuto dei registri

Dettagli