Anteprima
Vedrai una selezione di 20 pagine su 147
Appunti di elementi di informatica e programmazione, Programmazione C Pag. 1 Appunti di elementi di informatica e programmazione, Programmazione C Pag. 2
Anteprima di 20 pagg. su 147.
Scarica il documento per vederlo tutto.
Appunti di elementi di informatica e programmazione, Programmazione C Pag. 6
Anteprima di 20 pagg. su 147.
Scarica il documento per vederlo tutto.
Appunti di elementi di informatica e programmazione, Programmazione C Pag. 11
Anteprima di 20 pagg. su 147.
Scarica il documento per vederlo tutto.
Appunti di elementi di informatica e programmazione, Programmazione C Pag. 16
Anteprima di 20 pagg. su 147.
Scarica il documento per vederlo tutto.
Appunti di elementi di informatica e programmazione, Programmazione C Pag. 21
Anteprima di 20 pagg. su 147.
Scarica il documento per vederlo tutto.
Appunti di elementi di informatica e programmazione, Programmazione C Pag. 26
Anteprima di 20 pagg. su 147.
Scarica il documento per vederlo tutto.
Appunti di elementi di informatica e programmazione, Programmazione C Pag. 31
Anteprima di 20 pagg. su 147.
Scarica il documento per vederlo tutto.
Appunti di elementi di informatica e programmazione, Programmazione C Pag. 36
Anteprima di 20 pagg. su 147.
Scarica il documento per vederlo tutto.
Appunti di elementi di informatica e programmazione, Programmazione C Pag. 41
Anteprima di 20 pagg. su 147.
Scarica il documento per vederlo tutto.
Appunti di elementi di informatica e programmazione, Programmazione C Pag. 46
Anteprima di 20 pagg. su 147.
Scarica il documento per vederlo tutto.
Appunti di elementi di informatica e programmazione, Programmazione C Pag. 51
Anteprima di 20 pagg. su 147.
Scarica il documento per vederlo tutto.
Appunti di elementi di informatica e programmazione, Programmazione C Pag. 56
Anteprima di 20 pagg. su 147.
Scarica il documento per vederlo tutto.
Appunti di elementi di informatica e programmazione, Programmazione C Pag. 61
Anteprima di 20 pagg. su 147.
Scarica il documento per vederlo tutto.
Appunti di elementi di informatica e programmazione, Programmazione C Pag. 66
Anteprima di 20 pagg. su 147.
Scarica il documento per vederlo tutto.
Appunti di elementi di informatica e programmazione, Programmazione C Pag. 71
Anteprima di 20 pagg. su 147.
Scarica il documento per vederlo tutto.
Appunti di elementi di informatica e programmazione, Programmazione C Pag. 76
Anteprima di 20 pagg. su 147.
Scarica il documento per vederlo tutto.
Appunti di elementi di informatica e programmazione, Programmazione C Pag. 81
Anteprima di 20 pagg. su 147.
Scarica il documento per vederlo tutto.
Appunti di elementi di informatica e programmazione, Programmazione C Pag. 86
Anteprima di 20 pagg. su 147.
Scarica il documento per vederlo tutto.
Appunti di elementi di informatica e programmazione, Programmazione C Pag. 91
1 su 147
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

R R2 4, ,pone la somma in , con registri

R R R R0 2 4 0Utilizziamo indirizzamento indiretto rispetto a PC. Le istruzioni sisuppongono di 2 byte. Si suppone l'esistenza di un banco di 16 registri.

A. FETCH:

  1. IR ← [ PC ] ([ PC ] sta ad indicare l'indirizzo della parola di memoria sucui è presente il dato.);
  2. PC ← PC + 2;

B. DECODE:

Lezione 4: L'architettura del calcolatore 101. sequenza di bit dell'istruzione: 0000 0000 0010 0100 .I primi 4 bit equivalgono al codice operativo e supponiamo che in questocaso indichino l'operazione di somma.La seconda sequenza di 4 bit invece viene interpretata come unriferimento a registro, in particolare il registro indicato è .R0La terza sequenza di bit è sempre un riferimento a registro, in particolareal registro ed infine la quarta sequenza di bit, sempre con riferimentoR2a registro, indica il registro . Come si legge? Il contenuto dei registriR4e deve andare nel registro .R R R2 4 0

C. EXECUTE:

Porre il segnale "somma" sulla linea operazione che collega l'Unità di controllo con la ALU;

← ;R R2A

← ;R R4B

Porre il comando "esegui" sulla linea esegui cosicché la ALU esegua l'operazione ponendo poi il risultato di tale somma in , quindi ←R RC C+ .R RA B

←R R0 C

In totale 7 passaggi.

Esempio di ciclo macchina con un'istruzione di input-output

Spostare in la parola di memoria il cui indirizzo sta in : ← [ ]R R R R4 2 4 2A.

FETCH

IR ← [ PC ], PC ← PC + 2

DECODE

16 bit: 0001 0100 0010 0000.

La prima sequenza rappresenta il codice operativo, che in questo caso è l'operazione "carica".

La seconda sequenza è un riferimento a registro, in particolare al registro .

La terza sequenza è un indirizzamentoR4indiretto alla memoria, in particolare è un riferimento ad un indirizzo di una parola di memoria contenente il dato da caricare e tale indirizzo si trova nel

registro . InfineR2l'ultima sequenza di bit è insignificante.

Lezione 4: L'architettura del calcolatore 11C.

  1. MAR ← ;R2
  2. L'Unità di controllo pone il segnale "leggi" sul BUS Controlli;
  3. La memoria rende disponibile la parola presente sul BUS Indirizzi (MAR) sul BUS Dati;
  4. ← MDR;R4

In totale 6 passaggi.

Esempio di ciclo macchina con un'istruzione di salto

Se il contenuto del registro è uguale al contenuto del registro , si saltaR R1 2 di 2 byte avanti.

A. FETCH

  1. IR ← [ PC ] , PC ← PC + 2;

B. DECODE

  1. es. 16 bit: 0100 0001 0010 0010. La prima sequenza di bit rappresenta il codice operativo e in questo caso potrebbe indicare l'operazione di salto condizionato. La seconda sequenza di bit è un riferimento a registro, in particolare al registro . La seconda sequenza è un altro riferimento a R1 registro, in particolare al registro . L'ultima sequenza invece è un R2 indirizzamento a memoria

relativo rispetto a PC ed è da interpretare come un numero in complemento a 2 che indica di quanti byte è necessario incrementare PC se si verifica la condizione = eR R1 2- = 0 quindi se vale che .R R1 2C. EXECUTE

L'Unità di controllo pone l'operazione "sottrai" sulla linea operazione della ALU;

←R R1A

←R R2B

L'Unità di controllo pone il segnale esegui sulla linea esegui della ALU cosicché la ALU esegua l'operazione di sottrazione e sposti il risultato-della sottrazione sul registro : ← ;R R R R1 2C C

L'Unità di controllo reagisce in base al bit zero del registro PSW. Se il risultato dell'operazione è 0, il bit zero della PSW risulterà 1;

Lezione 4: L'architettura del calcolatore 126. Pongo l'operazione di "addizione" sulla linea di operazione della ALU;

← PC;RA

← 3° campo del registro IR;RB

Pongo il segnale esegui sulla

linea esegui della ALU cosicché possa eseguire l'operazione di sommare 2 byte nel registro PC: PC ← PC + 2;

10. PC ← .RC − = 0

Se la condizione è verificata allora il ciclo macchina consta R R1 2 di 12 passaggi; se invece la condizione non è verificata allora si ferma al passaggio numero 7.

Cos'è il periodo di clock?

È il segnale di onda quadra che cadenza le operazioni del calcolatore alternando la tensione ad un livello alto o basso. Si chiama fronte di salita il tratto dal livello basso a quello alto della tensione, e fronte di discesa quello che va dal livello più alto a quello più basso di tensione.

Cos'è la frequenza di clock?

La frequenza di clock è invece l'inverso del periodo, cioè è il numero di cicli al secondo eseguiti dal calcolatore. L'unità di misura è l'Hz e i calcolatori moderni hanno una frequenza che si aggira attorno ai 2 GHz, 910 cioè 2*

cicli al secondo. L'ordine di grandezza del periodo o ciclo di clock è solitamente, con gli strumenti attuali, dell'ordine dei nanosecondi. In particolare poiché i calcolatori moderni si aggirano attorno ai 2 GHz, ogni ciclo di clock dura ns. Inoltre, ad ogni ciclo di clock corrisponde un passo del ciclo macchina. Dunque se un ciclo macchina è composto da 6 passaggi, il ciclo di clock corrisponderà a 3 ns.

Come capire quale CPU è la più efficiente? Supponendo di avere due CPU differenti ed un programma che può essere tradotto nel linguaggio macchina della CPU_1 o della CPU_2, come fare a capire quale delle due CPU esegue il programma più efficientemente? Ipotizziamo che il programma tradotto per la CPU_1 che ha una frequenza di 1 GHz sia formato da 1000 istruzioni e che invece la CPU_2 con frequenza 2 GHz abbia 1200 istruzioni da eseguire.

Lezione 4: L'architettura del calcolatore 13

utilizza istruzioni più semplici. Infine, il tempo di esecuzione è un parametro molto importante per valutare l'efficienza della CPU. Questo indica quanto tempo impiega la CPU per completare un determinato compito. Se la CPU_1 impiega meno tempo rispetto alla CPU_2 per eseguire lo stesso compito, allora possiamo affermare che la CPU_1 è più efficiente. In conclusione, per determinare quale CPU è più efficiente, dobbiamo considerare sia il numero di istruzioni da eseguire che il tempo impiegato per completare un compito. La frequenza da sola non è un indicatore sufficiente di efficienza.

magari meno complesse;

L'elapsed time, cioè il tempo trascorso, può aiutarmi a capire quale delle due CPU è la più efficiente, tuttavia in questa quantità di tempo si tiene anche conto del tempo necessario a caricare i dati dalle periferiche e quello per eseguire eventuali altri programmi in background;

CPU time, è il tempo effettivamente impiegato dalla CPU per eseguire le istruzioni del programma ed è proprio questo che può aiutarmi a capire quale CPU sia più efficiente.

Come si esprime il CPU time?

  1. Si esprime come il prodotto tra i cicli di clock per eseguire il programma e il periodo di clock;
  2. Si esprime come il rapporto tra i cicli di clock per eseguire il programma e la frequenza della CPU.

Il numero di cicli di clock necessari per eseguire un programma può essere ricavato dal prodotto tra il numero di istruzioni da eseguire per la quantità di clock richiesto per ogni istruzione, il cosiddetto CPI (clock per instruction).

per instruction). Il CPI a sua volta si ricava da un'indagine statistica, cioè si utilizzano dei programmi comuni su più CPU per verificare quale sia effettivamente il CPI di ciascuna.

Lezione 4: L'architettura del calcolatore 14

In conclusione dunque il CPU time si ottiene dalla seguente formula: (N° di istruzioni del programma * CPI) / frequenza della CPU.

Come si realizza la CPU più performante?

Volendo costruire la CPU più performante allora su quali fattori è necessario giocare?

La frequenza è quella meno influente perché attualmente oltre l'ordine dei 2 GHz non ci si riesce a spingere.

Quello su cui si può influire maggiormente sono il numero di istruzioni del programma e il CPI, tuttavia questi fattori sono inversamente proporzionali dunque all'aumentare dell'uno si determina l'abbassamento dell'altro valore. Questo è intuibile perché quanto più un programma sarà corto,

tanto più saranno complicate le sue istruzioni, dato che in pochi passaggi riusciranno a svolgere più operazioni; tuttavia questo graverà sul tempo che la CPU impiegherà per svolgere ciascuna di tale istruzione. Vale ovviamente anche il viceversa.

Esempio

Ipotizziamo di avere due CPU che supportano l'una un linguaggio macchina per calcolare le potenze quadratiche, e l'altra un linguaggio per le potenze cubiche. Se l'operazione che devo eseguire è quella di trovare x, come si comportano le due CPU?

Allora la CPU_1 eseguirà la seguente operazione: calcolerà la potenza quadratica di x e poi moltiplicherà tale potenza per tre volte: x^2 * x^2 * x

La CPU_2 invece calcolerà al potenza cubica di x e moltiplicherà tale potenza per due volte: x^3 * x^3

Dal momento che la CPU_2 deve eseguire 1/3 delle istruzioni della CPU_1 potrebbe impiegare meno tempo, tuttavia l'istruzione "calcola

La potenza cubica è più complessa rispetto a quella che mi permette di calcolare la potenza quadratica e dato che la ALU è la stessa, alla CPU.
Dettagli
Publisher
A.A. 2020-2021
147 pagine
1 download
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher ES_01 di informazioni apprese con la frequenza delle lezioni di Elementi di informatica e programmazione C e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Brescia o del prof Saetti Alessandro.