Estratto del documento

Il parallelismo, ossia fare più operazioni contemporaneamente , permette di migliorare le prestazioni senza

modificare la frequenza di clock. Il parallelismo può essere

 parallelismo a livello delle istruzioni attraverso:

architetture pipeline e superscalari

o

 parallelismo a livello di processori attraverso

Multiprocessori

o Multicomputer

o

2.1 A RCHITETTURA PIPELINE

Organizza la CPU come una “catena di montaggio”

¤ la CPU viene suddivisa in stadi, ognuno dedicat all’esecuzione di un compito specifico

¤ l’esecuzione di una istruzione richiede il passaggio attraverso tutti o alcuni degli stadi della pipeline

¤ in un certo istante, ogni stadio esegue la parte di istruzione di sua “competenza”

¤ in un certo istante esistono diverse istruzioni contemporaneamente in esecuzione, una per stadio.

Esempio a 5 stadi

¨ S1. lettura istruzioni dalla memoria e loro caricamento in un apposito buffer

¨ S2. decodifica dell’istruzione per determinarne il tipo e gli operandi richiesti

¨ S3. individuazione e recupero degli operandi dai registri o dalla memoria

¨ S4. esecuzione dell’istruzione

¨ S5. invio dei risultati all’apposito registro. 2

Internal

2.2 M ULTIPROCESSORE

 diverse CPU condividono una memoria comune

 le CPU devono coordinarsi per accedere alla memoria

 esistono diversi schemi di collegamento tra CPU e memoria

2.3 M ULTICOMPUTER

 si utilizzano più calcolatori, ognuno dotato di unamemoria privata

 comunicazione tra CPU basata su scambio di messaggi in una rete che può essere

Specializzata (Massive Parallel Processing)

o Di uso comune (cluster)

o Internet (grid/cloud)

o

3. MEMORIA

 La memoria serve a immagazzinare dati e programmi all’interno del computer. Il

processore può Scrivere un numero in una cella di memoria Leggere un numero da una

cella di memoria

 La memoria è suddivisa in celle o locazioni di memoria, ognuna delle quali ha un

indirizzo attraverso il quale avviene l’accesso da parte del processore . Ogni cella

contiene un numero predefinito di bit. l’indirizzo deve avere una lunghezza prefissata,

limitando tale lunghezza, limito anche il numero di indirizzi che posso esprimere

Ad esempio Le architetture a 32 bit hanno un limite massimo di memoria RAM

indirizzabile

indirizzo 32 bit => 2^32 celle = 4 GB

Per poter indirizzare (e quindi avere disponibile) più memoria si usano le architetture a 64bit

Quindi Il numero di celle indirizzabili è detto spazio di indirizzamento

 Esistono due tipi di memoria

3.1 MEMORIA PRIMARIA

veloce ma costosa. È costituita da chip di memoria realizzati con la stessa tecnologia (al silicio) utilizzata per la CPU

ed è suddivisa in due parti, con funzionalità distinte cioè : 3

la memoria di sola lettura (ROM, Read-Only Memory) che Conserva i dati e i programmi in

 essa memorizzati anche quando il computer viene spento .è una memoria non volatile

contiene i programmi necessari all’avvio del computer,

programmi che devono essere sempre disponibili

la memoria ad accesso casuale (significa che il tempo per accedere ad un dato non dipende

 dalla sua posizione nella memoria) (RAM, Random Access Memory) una memoria che

consente la lettura e la scrittura dei dati e dei programmi in essa contenuti e contiene dati in

fase di modifica o programmi che non devono essere sempre disponibili. La differenziamo dal

fatto che perde i dati quando si spegne il computer (viene definita come supporto di tipo

volatile)

Il principio di localita’: la memoria cache ¨ Località spaziale: quando si accede all’indirizzo A, è molto probabile che gli

accessi successivi richiedano celle vicine ad A. ¨ Località temporale: quando si accede all’indirizzo A, è molto probabile

che gli accessi richiedano di nuovo la cella A. ¨ cache: memoria che consenta accessi estremamente veloci su blocchi

utilizzati di recente ¤ veloce ma molto costosa, quindi piccola

3.2 M EMORIA SECONDARIA

è un supporto di memoria non volatile e rispetto alla memoria primaria è circa 100 volte meno costosa ma è molto più

lenta (per ciò che concerne tempi di accesso in lettura/scrittura). I programmi e dati risiedono nella memoria

secondaria e vengono caricati nella RAM quando necessario e possono tornare in memoria secondaria aggiornati

quando richiesto.

Per quanto riguarda la gerarchia di memoria

4. DISPOSITIVI PERIFERICI DI ITERAZIONE

L’interazione fra l’utente umano ed il computer avviene mediante i cosiddetti dispositivi periferici di Input/Output

(dispositivi di I/O). Le operazioni di I/O si possono effettuare in 3 modalita’:

 Controllo da programma= Si utilizzano cicli di codice (polling) che esaminano periodicamente lo stato

dell’interfaccia hardware su cui leggere/scrivere fino a completamento dell’operazione.

 Interrupt= il dispositivo periferico è in grado di notificare alla CPU il completamento di una operazione

“richiamando la sua attenzione” attraverso una interruzione del flusso di esecuzione.

Direct Memory Access (DMA) uno specifico componente hardware (DMA controller), si occupa del trasferimento di

ogni dato in I/O. La CPU imposta il DMA con l’indirizzo e la quantità di dati da trasferire e il trasferimento avviene senza

l’intervento della CPU. 4

DAL 4 ottobre PROGRAMMARE

1. ALGORITMO

Come abiamo gia visto prima di programmare è necessario avere ben ciaro e realizzare l’algoritmo.

La descrizione dell’algoritmo può avvenire in molteplici modi:

 In un linguaggio naturale

 In linguaggio matematico

 In un linguaggio di programmazione (vedremo!)

 In un linguaggio specifico del contesto applicativo

 In “pseudocodice”, un linguaggio artificiale simile a molti linguaggi di programmazione

 In una forma mista di tutte le precedenti

2. DIAGRAMMI DI FLUSSO

Un modo di realizzare l’algoritmo è per via grafica grazie l’utilizzo dei diagrammi di flusso. I simboli che vengono usati

sono i seguenti

 Esempio: roblema: Avendo depositato ventimila euro in un conto bancario che produce il 5% di interessi

all’anno, capitalizzati annualmente, quanti anni occorrono affinché il saldo del conto arrivi al doppio della cifra

iniziale?

Per prima cosa scrivo l’algoritmo in linguaggio naturale

o Dopodichè lo scrivo come diagramma di flusso (aggiungi foto)

o

Il metodo di soluzione proposto

è non ambiguo infatti fornisce precise istruzioni su cosa bisogna fare ad ogni passaggio e su quale

o deve essere il passaggio successivo 1

è eseguibile infatti ciascun passaggio può essere eseguito concretamente (se, ad esempio, il metodo

o di soluzione dicesse che il tasso di interesse da usare al punto 4 è variabile in dipendenza da fattori

economici futuri, il metodo non sarebbe eseguibile…)

arriva a conclusione in un tempo finito infatti ad ogni passo il saldo aumenta di almeno mille euro,

o quindi al massimo in 20 passi arriva al termine

3. PROGRAMMAZIONE

Partendo dal presupposto che Un computer è una macchina che

¤ memorizza dati (numeri, parole, immagini, suoni...)

¤ interagisce con dispositivi (schermo, tastiera, mouse...)

¤ esegue programmi

La programmazione è la disciplina che ha per oggetto la definizione, progettazione e codifica diprogrammi per

calcolatore.

 COSA SONO I PROGRAMMI? : I programmi sono implementazioni di algoritmi in un qualche linguaggio di

programmazione inteso come sequenza di istruzioni che il computer esegue e di decisioni che il computer

prende per svolgere una certa attività tutto in modo totalmente non ambiguo. ¨ Un programma è corretto se

presenta

¤ Correttezza sintattica

¤ Correttezza semantica

¤ Correttezza della soluzione

 COME E FATTO UN PROGRAMMA? Le istruzioni di cui sono composti i programmi sono molto elementari e

di tre tipi ( Istruzioni imperative ad esempio

 leggere un numero da una posizione della memoria

sommare due numeri

accendere un punto rosso in una data posizione dello schermo

Istruzioni condizionali (che prendono decisioni) ad esempio

 se un dato è negativo, proseguire il programma con l’istruzione presente a un

determinato indirizzo anziché con la successiva

Cicli (iterazioni): ripeti un blocco di istruzioni finche’ una data condizione diventa falsa

Tali istruzioni vengono svolte ad altissime velocità dalla CPU

 PERCHE IMPARARE A PROGRAMMARE? Essendo il computer una macchina estremamente versatile la

programmazione mi permette di far fare al computer tutto ciò che voglio.

4. LINGUAGGIO DI PROGRAMMAZIONE

4.1 LINGUAGGIO A BASSO LIVELLO

Il linguaggio del computer è ad istruzioni macchina costituto da una serie di istruzioni elementari eseguite da un

computer (cioè dalla sua CPU). L’insieme di istruzioni macchina (instruction set) è specifico di una particolare CPU

Esempio di descrizione di alcune istruzioni macchina: se devo dire al pc carica in un registro il valore contenuto nella

posizione di memoria 40. carica in un altro registro il valore 100. se il primo valore è maggiore del secondo, prosegui

con l’istruzione contenuta nella posizione di memoria 240, altrimenti con l’istruzione che segue quella attuale.

2

Internal

La codifica delle istruzioni macchina avviene sotto forma di configurazioni di bit conservate in memoria (che possono

essere interpretate come numeri interi). Le precedenti istruzioni diventano 21 40 16 100 163 240

Le istruzioni macchina possono essere

 trasferimento dati, tra i registri e la memoria principale

LOAD (verso un registro), STORE (verso la memoria

o

 operazioni aritmetiche e logiche, eseguite dalla ALU

ritmetiche: ADD, SUB , MUL, DIV

o logiche: AND, OR, NOT

o

 salti, per alterare il flusso di esecuzione sequenziale (viene modificato il Program Counter)

Incondizionato (JUMP) : salta in ogni caso

o condizionato: salta solo se un certo valore è zero (JZ) o se è maggiore di zero (JGZ)

o

Per eseguire un programma in un computer è necessario scrivere all’interno della memoria primaria le configurazioni

di bit corrispondenti alle istruzioni macchina del programma. Essendo questo impossibie si utilizzano gli

Assemblatori cioè programmi che permettono di scrivere il programma mediante dei nomi abbreviati (codici

mnemonici) per le istruzioni macchina che sono più facili da ricordare per il programmatore rispetto i vari codici

binari poi traduce il programma in configurazioni di bit. linguaggi espressi con codici mnemonici si dicono linguaggi

assembly (uno diverso per ogni CPU) ed esiste corrispondenza biunivoca fra insieme

Anteprima
Vedrai una selezione di 20 pagine su 150
Metà appunti di Fondamenti di informatica Pag. 1 Metà appunti di Fondamenti di informatica Pag. 2
Anteprima di 20 pagg. su 150.
Scarica il documento per vederlo tutto.
Metà appunti di Fondamenti di informatica Pag. 6
Anteprima di 20 pagg. su 150.
Scarica il documento per vederlo tutto.
Metà appunti di Fondamenti di informatica Pag. 11
Anteprima di 20 pagg. su 150.
Scarica il documento per vederlo tutto.
Metà appunti di Fondamenti di informatica Pag. 16
Anteprima di 20 pagg. su 150.
Scarica il documento per vederlo tutto.
Metà appunti di Fondamenti di informatica Pag. 21
Anteprima di 20 pagg. su 150.
Scarica il documento per vederlo tutto.
Metà appunti di Fondamenti di informatica Pag. 26
Anteprima di 20 pagg. su 150.
Scarica il documento per vederlo tutto.
Metà appunti di Fondamenti di informatica Pag. 31
Anteprima di 20 pagg. su 150.
Scarica il documento per vederlo tutto.
Metà appunti di Fondamenti di informatica Pag. 36
Anteprima di 20 pagg. su 150.
Scarica il documento per vederlo tutto.
Metà appunti di Fondamenti di informatica Pag. 41
Anteprima di 20 pagg. su 150.
Scarica il documento per vederlo tutto.
Metà appunti di Fondamenti di informatica Pag. 46
Anteprima di 20 pagg. su 150.
Scarica il documento per vederlo tutto.
Metà appunti di Fondamenti di informatica Pag. 51
Anteprima di 20 pagg. su 150.
Scarica il documento per vederlo tutto.
Metà appunti di Fondamenti di informatica Pag. 56
Anteprima di 20 pagg. su 150.
Scarica il documento per vederlo tutto.
Metà appunti di Fondamenti di informatica Pag. 61
Anteprima di 20 pagg. su 150.
Scarica il documento per vederlo tutto.
Metà appunti di Fondamenti di informatica Pag. 66
Anteprima di 20 pagg. su 150.
Scarica il documento per vederlo tutto.
Metà appunti di Fondamenti di informatica Pag. 71
Anteprima di 20 pagg. su 150.
Scarica il documento per vederlo tutto.
Metà appunti di Fondamenti di informatica Pag. 76
Anteprima di 20 pagg. su 150.
Scarica il documento per vederlo tutto.
Metà appunti di Fondamenti di informatica Pag. 81
Anteprima di 20 pagg. su 150.
Scarica il documento per vederlo tutto.
Metà appunti di Fondamenti di informatica Pag. 86
Anteprima di 20 pagg. su 150.
Scarica il documento per vederlo tutto.
Metà appunti di Fondamenti di informatica Pag. 91
1 su 150
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher bergo30175 di informazioni apprese con la frequenza delle lezioni di Fondamenti di informatica 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 Padova o del prof Pizzi Cinzia.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community