Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


appunti e slide informatica generale, Appunti di Fondamenti di informatica

appunti e slide informatica generale prof moriani anno 2023

Tipologia: Appunti

2022/2023

In vendita dal 17/10/2023

martaaunimib
martaaunimib 🇮🇹

4.7

(3)

13 documenti

1 / 66

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
SISTEMI DI ELABORAZIONE DELL'INFORMAZIONE: INTRODUZIONE
CHE COS’E L’INFORMATICA?
Informatica = informazione + automatica
Automatizzo l’esecuzione di qualcosa, senza l’utilizzo dell’utente.
Informazione è qualunque elemento che va ad accrescere la nostra conoscenza, o in generale di chi se ne serve.
• L’insieme dei processi e delle tecnologie che rende possibile la creazione, la raccolta (di dati prodotti volontariamente o meno),
l’elaborazione (cambiare lo stato di uscita rispetto a quello d’ingresso tramite processi), l’immagazzinamento (dare la capacità
all’informatica di rendere permanente l’informazione) e la diffusione (condivisione dati) dell’informazione
Elementi funzionali (oggetti veri e propri che rendono possibile la scienza informatica) dell’informatica sono i Sistemi di
Elaborazione dell’Informazione, o più semplicemente computer.
• Spesso tali sistemi sono detti “elaboratori elettronici”, o ancora più semplicisticamente “computer”
QUALCHE NOTA SUI TERMINI
L'etimologia italiana della parola "informatica" proviene dal francese, dalla compressione di inform (ation electronique ou
autom) atique.
• Diversi termini, un solo ente:
-elaboratore: in italiano, che sottintende un processo prossimo all'intelligenza umana
-ordinateur: in francese, a sottolineare le sue capacità di organizzare i dati (oggi le informazioni)
-computer: in inglese, letteralmente calcolatore, in diretta discendenza delle calcolatrici, prima meccaniche, poi
elettromeccaniche, poi elettroniche.
HARDWARE E SOFTWARE
L’Hardware (HW) ed il Software (SW) sono i due pilastri su cui si regge l’informatica:
L’hardware è la parte del computer che puoi prendere a calci... (monitor, tastiere, stampanti, etc..) --> Parte tangibile del
computer
• Il software è quella contro cui puoi solo imprecare! (windows, amule, internet explorer, videogiochi…) --> Parte intangibile del
computer. Esempio sistema operativo, è l’interfaccia tra l’umano e la macchina. Software applicativo serve per risolvere
problematiche specifiche es word excel. software di base fa funzionare la macchina, quello applicativo risponde a specifiche
esigenze dell’utente.
Es. analogia con l'essere umano: l'hardware e' il corpo, Il software sono opinioni, ricordi, carattere.
DATI
Dato = rappresentazione di un concetto non ancora definito. Se al dato vado ad aggiunger un significato allora ho creato
informazione. Senza dati non posso avere informazione.
I dati sono la materia prima del trattamento dell’informazione,
Tipi di dati:
Dati semplici: numeri, caratteri, date
Dati complessi: immagini, grafici, filmati, suoni, animazioni
I dati non si possono rappresentare in maniera casuale ma devono seguire delle regole ben definite e condivise.
Rappresentazione della realtà che ci circonda. La gestione di dati complessi è resa possibile dalla potenza raggiunta dagli
elaboratori nell’ultimo decennio.
Dalla 2 guerra mondiale iniziano a esserci i primi computer
IL CICLO DI ELABORAZIONE DELL’INFORMAZIONE
1 INPUT (punto di ingresso) = La fase di input consiste nell’immissione di dati nel computer. L’elaboratore si vede recapitare i
dati. I dispositivi di input più comuni sono la tastiera, lo scanner, il mouse, il microfono e la telecamera. I dati da inserire possono
essere testi, numeri, immagini o suoni.
2 ELABORAZIONE = Una volta inseriti nel computer i dati possono essere elaborati. Ad esempio, si può paragonare, classificare o
sommare numeri, formattare un testo o creare immagini e suoni medianti algoritmi di diversa potenza (capacità di raggiungere
un determinato obiettivo ad una certa velocità).
3 OUTPUT (risultato dell’elaborazione) = Per vedere (o ascoltare) il risultato dell’elaborazione sono necessari dei dispositivi di
output, come lo schermo, la stampante e gli altoparlanti. Le informazioni ottenute possono anche essere sottoposte a
un’ulteriore elaborazione, ad esempio per integrare i suoni e le immagini in una presentazione multimediale.
4 MEMORIZZAZIONE (o immagazzinamento) = I dati e i programmi al momento non utilizzati vengono memorizzati su appositi
nastri o dischi (più in uso in passato) in modo da poter essere recuperati in qualsiasi momento. Vengono cosi resi permanenti.
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42

Anteprima parziale del testo

Scarica appunti e slide informatica generale e più Appunti in PDF di Fondamenti di informatica solo su Docsity!

SISTEMI DI ELABORAZIONE DELL'INFORMAZIONE: INTRODUZIONE

CHE COS’E L’INFORMATICA?

Informatica = informazione + automatica Automatizzo l’esecuzione di qualcosa, senza l’utilizzo dell’utente. Informazione è qualunque elemento che va ad accrescere la nostra conoscenza, o in generale di chi se ne serve.

  • L’insieme dei processi e delle tecnologie che rende possibile la creazione, la raccolta (di dati prodotti volontariamente o meno), l’elaborazione (cambiare lo stato di uscita rispetto a quello d’ingresso tramite processi), l’immagazzinamento (dare la capacità all’informatica di rendere permanente l’informazione) e la diffusione (condivisione dati) dell’informazione
  • Elementi funzionali (oggetti veri e propri che rendono possibile la scienza informatica) dell’informatica sono i Sistemi di Elaborazione dell’Informazione, o più semplicemente computer.
  • Spesso tali sistemi sono detti “elaboratori elettronici”, o ancora più semplicisticamente “computer” QUALCHE NOTA SUI TERMINI
  • L'etimologia italiana della parola "informatica" proviene dal francese, dalla compressione di inform (ation electronique ou autom) atique.
  • Diversi termini, un solo ente:
  • elaboratore : in italiano, che sottintende un processo prossimo all'intelligenza umana
  • ordinateur : in francese, a sottolineare le sue capacità di organizzare i dati (oggi le informazioni)
  • computer : in inglese, letteralmente calcolatore, in diretta discendenza delle calcolatrici, prima meccaniche, poi elettromeccaniche, poi elettroniche. HARDWARE E SOFTWARE L’Hardware (HW) ed il Software (SW) sono i due pilastri su cui si regge l’informatica:
  • L’hardware è la parte del computer che puoi prendere a calci... (monitor, tastiere, stampanti, etc..) --> Parte tangibile del computer
  • Il software è quella contro cui puoi solo imprecare! (windows, amule, internet explorer, videogiochi…) --> Parte intangibile del computer. Esempio sistema operativo , è l’interfaccia tra l’umano e la macchina. Software applicativo serve per risolvere problematiche specifiche es word excel. software di base fa funzionare la macchina, quello applicativo risponde a specifiche esigenze dell’utente. Es. analogia con l'essere umano: l'hardware e' il corpo, Il software sono opinioni, ricordi, carattere. DATI Dato = rappresentazione di un concetto non ancora definito. Se al dato vado ad aggiunger un significato allora ho creato informazione. Senza dati non posso avere informazione. I dati sono la materia prima del trattamento dell’informazione, Tipi di dati:
  • Dati semplici : numeri, caratteri, date
  • Dati complessi : immagini, grafici, filmati, suoni, animazioni I dati non si possono rappresentare in maniera casuale ma devono seguire delle regole ben definite e condivise. Rappresentazione della realtà che ci circonda. La gestione di dati complessi è resa possibile dalla potenza raggiunta dagli elaboratori nell’ultimo decennio. Dalla 2 guerra mondiale iniziano a esserci i primi computer

IL CICLO DI ELABORAZIONE DELL’INFORMAZIONE

1 INPUT (punto di ingresso) = La fase di input consiste nell’immissione di dati nel computer. L’elaboratore si vede recapitare i dati. I dispositivi di input più comuni sono la tastiera, lo scanner, il mouse, il microfono e la telecamera. I dati da inserire possono essere testi, numeri, immagini o suoni. 2 ELABORAZIONE = Una volta inseriti nel computer i dati possono essere elaborati. Ad esempio, si può paragonare, classificare o sommare numeri, formattare un testo o creare immagini e suoni medianti algoritmi di diversa potenza (capacità di raggiungere un determinato obiettivo ad una certa velocità). 3 OUTPUT (risultato dell’elaborazione) = Per vedere (o ascoltare) il risultato dell’elaborazione sono necessari dei dispositivi di output, come lo schermo, la stampante e gli altoparlanti. Le informazioni ottenute possono anche essere sottoposte a un’ulteriore elaborazione, ad esempio per integrare i suoni e le immagini in una presentazione multimediale. 4 MEMORIZZAZIONE (o immagazzinamento) = I dati e i programmi al momento non utilizzati vengono memorizzati su appositi nastri o dischi (più in uso in passato) in modo da poter essere recuperati in qualsiasi momento. Vengono cosi resi permanenti.

5 DISTRIBUZIONE = I dati possono essere stampati e distribuiti, oppure trasmessi direttamente da un computer all’altro. Un esempio è l’invio dei documenti come allegati della posta elettronica o attraverso un sito web. APPLICAZIONI DELL’INFORMATICA Essendo una scienza pervasiva trova applicazione in svariati settori. Applicazioni della tecnologia informatica (Information Tecnology) in innumerevoli campi (medicina, ingegneria, chimica, astronomia, arte, scuola e formazione professionale…) Aspetti applicativi più rilevanti della IT: Gestione aziendale, office automation (es excel, …), database (gestione permanente grosse aggregazioni di dati), educazione (e-lerning), commercio (e-commerce), giochi ed intrattenimento (videogame)  Gestione aziendale

  • Sistema informativo aziendale = insieme di tutti i dati e tutti i processi che riguardano la raccolta, l’archiviazione, l’elaborazione, la distribuzione dei dati nelle attività operative e di controllo
  • Sistema informatico = insieme delle risorse tecnologiche facenti parte il sistema informativo Applicazioni: Transazioni con fornitori, dipendenti e clienti, analisi finanziarie (analisi di spese, investimenti, vendite, ecc…), lavori di ufficio (office automation), DSS (Decision “aziendali” Support System) e Data Mining  Progettazione di prodotti complessi
  • Tecniche CAD (Computer Aided Design - Progettazione assistita dal pc) -Es: Modellizzazione 2D/3D di oggetti, ambienti etc..  Produzione di prodotti -Tecniche CAM (Computer Aided Manufactoring – Fabbricazione assistita dal computer) Utilizzate in fase di produzione per controllare i sistemi robotizzati che creano, rifiniscono, assemblano e testano i prodotti e i loro componenti  Home banking (le banche investono più di tutti nell’informatica)
  1. Gestione del conto corrente
  2. Rapporti, movimenti
  3. Gestione di portafogli di titoli
  4. Andamenti, investimenti  E-governement
  5. Gestione di grandi archivi
  6. Riduzione di supporti cartacei
  7. Erogazione di servizi on-line
  8. Efficienza, trasparenza, riconoscimento automatico, pluralità di canali, interoperabilità  Medicina e salute
  9. Gestione dati clinici
  10. Controllo ambulanze
  11. Automazione di apparecchiature mediche
  12. Supporto ad interventi medici (da remoto - telemedicina)
  13. Analisi comportamento pazienti
  14. Terapie personalizzate
  15. Controllo terapie  Telelavoro (e-job)
  16. Domiciliare
  17. Mobile  Istruzione e formazione
  18. Iscrizione e gestione studenti, gestione orari e aule, comunicazioni scuola-famiglia
  19. Adeguamento dell’insegnamento alle esigenze dello studente
  20. Supporto a studenti con esigenze speciali
  21. Apprendimento assistito
  22. Tecnologie CBT, Computer Based Training, utilizzate nel campo della didattica e della formazione professionale
  23. Formazione a distanza (e-learning)  Commercio elettronico (e-commerce) Vendita di beni e servizi tramite la rete internet

Nelle lettori MP3, nei telefoni cellulari ecc...  Convergenza con la telecomunicazione Per esempio, la TV/il cellulare con accesso a Internet.

LA RAPPRESENTAZIONE DELL’INFORMAZIONE

Si consideri un alfabeto di 2 simboli : “ 0 ” e “ 1 ” lampada spenta 0 circuito aperto, lampada accesa 1 circuito chiuso. La cavalcata di paul Revere: “Ascoltate figli miei, vi voglio raccontare di Paul Revere e della sua cavalcata di mezzanotte del 19 aprile 1775. Coloro che potrebbero ricordare quel memorabile giorno e l’anno sono ormai morti tutti. Egli disse al suo amico “Se gli inglesi giungeranno dalla terra o dal mare, questa notte appendi una lanterna sul campanile della Old North Church come segnale. Una lanterna se vengono da terra, due se vengono dal mare. Io sarò sulla riva opposta pronto a cavalcare e dare l’allarme generale. In ogni villaggio del Middlesex e in ogni fattoria, i contadini saranno pronti a battagliare.”

  • Entrambe spente (00): Situazione tranquilla
  • Solo una accesa (01 o 10): Gli inglesi attaccano da terra
  • Entrambe accese (11): Attacco dal mare DIGITALE O ANALOGICO? I segnali analogici sono molto sensibili alle interferenze (rumore). Si ha quindi una scala che va da +1 a -1 es voce I segnali digitali possono assumere solo due stati. Per un dispositivo è semplice distinguere questi due stati, per cui vie è una maggiore immunità alle interferenze. PERCHE DIGITALE? Una buona foto in bianco e nero presa da un giornale avrà circa 256 sfumature di grigio. - Rappresentazione analogica 256 gradi di luminosità con una lampada, Attenzione alle interferenze provocate dalla nebbia! - Rappresentazione digitale 8 lampade, o bit – 2^8 , (256 configurazioni diverse), Ciascuna configurazione sarebbe più sicura anche in caso di nebbia! RAPPRESENTAZIONE BINARIA INFORMAZIONI

CODIFICA BINARIA

Esiste una particolare aggregazione di bit che è costituita da 8 bit (2^8 = 256 informazioni) e prende il nome di byte Di solito si usano i multipli del byte.

SISTEMI NUMERICI

GENERALITÀ

Per determinare un sistema numerico serve

  • Un insieme limitato di simboli (le cifre ), che rappresentano quantità prestabilite (1, 2, V, X, M)
  • Le regole per costruire i numeri Sistemi numerici posizionali Sistemi numerici non posizionali
  • Sistemi numerici non posizionali Il valore delle cifre è indipendente dalla posizione Es. Numeri romani
  • Sistemi numerici posizionali Il valore delle cifre dipende dalla loro posizione all’interno del numero Ogni posizione ha un peso. SISTEMI NUMERICI POSIZIONALI

IL SISTEMA DECIMALE

È un sistema numerico posizionale a base fissa Il sistema decimale utilizza r = 10 d = 0,1,2,3,4,5,6,7,8, esempio

OVERFLOW

Esiste un limite al numero di bit impiegati per rappresentare un numero. Dato che la rappresentazione è formata da un numero finito di bit, se si supera tale limite si ha errore ( overflow ). overflow è l’errore che il dispositivo segnala quando si deve rappresentare un valore numerico che non è rappresentabile, un valore andato fuori dalla scala rappresentativa.

MEMORIZZAZIONE SU CALCOLATORE E CODICI

BIT, BYTE E WORD

  • L'unità atomica è il bit ( BI nary Digi T )
  • L'insieme di 8 bit è detto byte
  • Word Tipicamente sequenze di 16, 32 o 64bit Insieme di bit la cui dimensione è una importante caratteristica del calcolatore considerato. Essa influenza: La larghezza degli indirizzi (di memoria) La dimensione dei registri del processore Larghezza dei bus (word o multipli di essa) INTERVALLI DI VARIABILITA’ Bit Numero di configurazioni: 2 Intervallo di variabilità: {0,1} Byte Numero di configurazioni: 256 Intervallo di variabilità: dipende dal tipo di codifica. CODIFICA DEI TESTI Si utilizza una tabella (arbitraria) 1 Standard oggi (quasi) universalmente riconosciuto Codice ASCII ( A merican S tandard C ode for I nformation I nterchange) Ogni carattere (simbolo) è codificato con 7 bit 128 simboli diversi 2 Codice ascii esteso si utilizzano 8 bit  256 simboli diversi UNICODE
  • Abbiamo considerato il codice Extended ASCII: 8 bit per carattere È stato basato dal codice ASCII: 7 bit per carattere Il codice ASCII non include à, è, é, ì, ò, ù, per esempio
  • Un altro codice 3 UNICODE , 16 bit per carattere (Extended ASCII + caratteri etnici) 2^16 = 65.536 simboli

IL SOFTWARE

E’ il software che implementa le funzionalità di un sistema di elaborazione. Due categorie fondamentali di Software (SW): 1 Il software di sistema

  • Linguaggi di programmazione
  • Sistemi operativi (SO) 2 I programmi applicativi. I SISTEMI OPERATIVI (SO) Sono i programmi che fanno “funzionare” i vari componenti del computer Gestisce le risorse del sistema in maniera trasparente all’utente Grazie al SO possiamo: -eseguire un programma -salvare un file -stampare un documento. I PROGRAMMI APPLICATIVI Elaboratore: Software = Attore: Copione l’attore recita ruoli diversi a seconda del copione che gli viene dato; l’elaboratore svolge funzioni diverse a seconda del programma utilizzato. Applicazioni : compiti eseguiti con l’ausilio del computer. Programmi Applicativi : programmi utilizzati per svolgere le applicazioni. IL PROGRESSO DELL’INFORMATICA I cambiamenti non avvengono da un giorno all’altro Le innovazioni richiedono un certo tempo per estendersi a tutto il sistema Innovazione dell’hardware  Innovazione del sistema operativo  Innovazione del programma applicativo ALTRI TIPI DI PROGRAMMI Software di intrattenimento Software di istruzione Software di consultazione Software di utilità (servono per migliorare il mio dispositivo) Antivirus Visualizzatori di formati proprietari Diagnostici

EVOLUZIONE DEI SO

Negli anni ‘50 i SO erano delle persone! I programmi erano scritti su schede perforate. Le schede erano inserite manualmente da un operatore ogni volta che il programma andava cambiato ❘ L’operatore era il SO! Oggi i SO non si limitano alla sola esecuzione dei programmi ma comprendono un vasto numero di applicazioni che garantiscono il corretto funzionamento del sistema e ne gestiscono le risorse. LE INTERFACCE UTENTE Rappresentano il mezzo di interazione tra l’utente e macchina. Interfaccia caratteri (prima era così)

L’INTERPRETE DEI COMANDI

E’ la porzione del SO che si occupa di acquisire l’input dell’utente e di interpretarlo Es. doppio click sull’icona di un’applicazione Il SO interpreta questi comandi caricando ed eseguendo l’applicazione. I SISTEMI MULTITASKING I vecchi SO potevano eseguire soltanto un programma per volta. I SO moderni consentono di utilizzare diversi programmi contemporaneamente. Ma come si fa con una sola CPU? Multitasking preempitive : l’accesso al processore è regolato dal SO. In base al tipo di esigenza la cpu viene dedicata un po’ad uno un po’ ad un altro. I SISTEMI MULTITHREADING I programmi, in genere, elaborano i dati e i comandi in ordine sequenziale Solo quando un’operazione è stata portata a termine possono iniziarne un’altra In un SO multithreading i programmi applicativi possono svolgere più operazioni parallelamente

ARCHITETTURA DEI CALCOLATORI

Che cos’è un calcolatore? Come funziona un calcolatore? ➔ un calcolatore è un sistema (di elaborazione dati) ➔ un sistema è un oggetto costituito da molte parti (componenti) che interagiscono, cooperando, al fine di ottenere un certo comportamento. Studiare l’architettura di un sistema vuol dire ➔ individuare ciascun componente del sistema ➔ comprendere i principi generali di funzionamento di ciascun componente ➔ comprendere come i vari componenti interagiscono tra di loro. HARDWARE E SOFTWARE La prima decomposizione di un calcolatore è relativa alle seguenti macro-componenti: hardware ➔ la struttura fisica del calcolatore, costituita da componenti elettronici ed elettromeccanici software ➔ l’insieme dei programmi che consentono all’hardware di svolgere dei compiti utili. Il software comprende il software di base (tra cui il sistema operativo) e il software applicativo. SOMMARIO HARDWARE L’unità centrale di elaborazione (CPU) , essa esegue istruzioni su dati che esistono in memoria

  • Componenti fondamentali
  • Data path
  • Il ciclo macchina La memoria
  • Generalità e caratterizzazione
  • Gerarchie di memorie e memoria cache VISTA FUNZIONALE DI UN CALCOLATORE

CARATTERISTICHE FONDAMENTALI

 Capacità di eseguire sequenze di istruzioni memorizzate;  Calcolatore = Unità di Elaborazione + Unità di Controllo

  1. Preleva le istruzioni dalla memoria (RAM)
  2. Interpreta i codici di istruzione
  3. Effettua le azioni che questi prevedono  Programma = Insieme organizzato di istruzioni ORGANIZZAZIONE A LIVELLI Hardware e software sono organizzati a livelli (o strati ) Ciascun livello corrisponde a una macchina (reale o virtuale) in grado di eseguire un proprio insieme di operazioni Ciascun livello fornisce un insieme di operazioni più semplici da utilizzare rispetto a quelle del livello sottostante Ciascun livello è realizzato in termini dell’insieme di operazioni fornite dal livello immediatamente sottostante. COMPONENTI DI UN CALCOLATORE BUS E SOLUZIONE MASTER-SLAVE Il bus è una linea a cui sono contemporaneamente connesse le unità del calcolatore e che consente il trasferimento di dati tra tali unità
  • Problema : contesa su un mezzo condiviso!
  • Soluzione : CPU = master, periferiche = slave. La CPU ha diritto di prelazione nell’utilizzo del bus.

ELEMENTI DI UNA CPU

Unità di controllo

  • legge le istruzioni dalla memoria e ne determina il tipo Unità aritmetico-logica
  • esegue le operazioni necessarie per eseguire le istruzioni Registri (sono all’interno della CPU, + la memoria è vicina alla cpu + è veloce, registri sono ad altissima velocità,+ le dimensioni sono piccole,+ il costo è elevato)
  • Memoria ad alta velocità usata per risultati temporanei
  • Determina il parallelismo della CPU
  • Esistono registri generici e registri specifici
    • Program Counter (PC)
    • Instruction Register (IR) mi dice l’indirizzo di quella che è appena stata letta
    • … TRE TIPOLOGIE DI ISTRUZIONI Istruzioni Aritmetico Logiche (Elaborazione dati)
    • Somma, sottrazione, divisione, …
    • And, Or, Xor, …
    • Maggiore, minore, uguale, maggiore uguale, … Controllo del flusso delle istruzioni
    • Sequenza
    • Selezione
    • Ciclo a condizione iniziale, a condizione finale, … Trasferimento di informazione
    • Trasferimento dati e istruzioni tra CPU e memoria
    • Trasferimento dati e istruzioni tra CPU e dispositivi di I/O STRUTTURA DEL DATA PATH Registri A e B recuperati dall’alu che deve svolgere la somma ESECUZIONE DELLE ISTRUZIONI Ciclo Fetch-Decode-Execute
  • Prendi l’istruzione corrente dalla memoria e mettila nel registro istruzioni ( IR ) [ Fetch ] (caricare l’istr nel registro)
  • Incrementa il program counter ( PC ) in modo che contenga l’indirizzo dell’istruzione successiva
  • Determina il tipo dell’istruzione corrente [ Decodifica ]
  • Se l’istruzione usa una parola in memoria determina dove si trova
  • Carica la parola, se necessario, in un registro della CPU
  • Esegui l’istruzione [ Execute ]
  • Torna al punto 1. STRUTTURA SEMPLIFICATA DI UNA CPU A Sinistra RAM, a destra c’è CPU, in mezzo i diversi legami con i bus. Psw è il registro di stato. MAR registro degli indirizzi di memoria, MDR registro dati memoria (memory data/address register). Solo bus dati ha doppia freccia mdr legame con ram si prende dall’mdr e si mette nella ram o viceversa. ESEMPIO: LETTURA DELLA MEMORIA Fase di Fetch (1 di 2) Fase di Fetch (2 di 2) Decodifica Esecuzione (1 di 2)
  • determina le azioni svolte durante la fase di esecuzione PC : Tiene traccia dell'esecuzione del programma
  • Contiene l’indirizzo di memoria in cui è memorizzata la prossima istruzione da eseguire. MAR : contiene l'indirizzo della locazione di memoria da leggere o scrivere
  • La dimensione di MAR determina l'ampiezza dello spazio di memoria fisica
  • Dalla fine degli anni '80 vengono prodotti microprocessori con bus indirizzi a 32 bit MDR : Registro attraverso il quale viene scambiata l'informazione tra la memoria e la CPU
  • Tradizionalmente la dimensione di MDR dà la misura del grado di parallelismo della macchina (8, 16, 32, 64 bit) PSW : (Program Status Word) contiene info riguardo lo stato del programma R0, R1,...Rn : Registri di uso generale.

Dilemma...

Distanza linguaggio umano/macchina: Quanto complesse devono essere le istruzioni che una CPU è in grado di eseguire? 2 tipi di approccio

1 CISC

CISC : C omplex I nstruction S et C omputing Un repertorio di istruzioni esteso è preferibile perché:

  • Istruzioni potenti semplificano la programmazione
  • Riduce il gap tra linguaggio di macchina e linguaggio di alto livello
  • L’uso efficiente della memoria (all’epoca era costosa) era la preoccupazione principale: meglio avere codici compatti. 2 APPROCCIO RISC Memorie più veloci ed economiche:
  • posso anche mettere un numero maggiore di istruzioni, però più semplici. Comportamento dei programmi
  • L'80% delle istruzioni eseguite corrispondeva al solo 20% del repertorio (quelle disponibili)
  • Conviene investire nella riduzione dei tempi di esecuzione di quel 20%, anziché aggiungere raffinate istruzioni, quasi mai usate, ma responsabili dell'allungamento del tempo di ciclo di macchina Conviene costruire processori molto veloci, necessariamente con repertori RISC : R educed I nstruction S et C omputing RISC - CRITERI DI PROGETTAZIONE (NO Frequenza di clock
  • Velocità con cui gli istanti di tempo si succedono all'interno della CPU. Si misura in Hz, che significa “volte al secondo”. 2Hz = 2 volte al secondo.
  • Periodo di Clock: intervallo di tempo tra un istante ed il successivo. E' l'inverso della frequenza di clock.
  • Il periodo di clock deve essere sufficientemente “lungo” da consentire a tutti I segnali elettrici di arrivare Le istruzioni devono essere semplici
  • Se l'introduzione di una operazione di macchina fa crescere del 10% il periodo di clock, allora essa deve produrre una riduzione di almeno un 10% del numero totale di cicli eseguiti ) Tutte le istruzioni occupano lo stesso spazio di memoria (una parola) Ristretto numero di formati
  • La codifica “ordinata” consente accorgimenti per velocizzare l'esecuzione (pipeline), difficilmente applicabili a repertori di istruzioni complesse La semplificazione del repertorio tende a far aumentare la dimensione del codice
  • Non è un problema, vista la tendenza alla riduzione dei costi e all'aumento della densità delle memorie
  • Dal punto di vista della velocità i guadagni che si ottengono nel semplificare le istruzioni sono superiori all'effetto negativo del maggior numero di istruzioni per programma.

CPU

PROCESSORE: I REGISTRI SPECIALI

  • Program Counter: i bit del registro PC indicano l’indirizzo di una parola in RAM il cui contenuto rappresenta la prossima istruzione da eseguire.
  • Registro Istruzione: i bit del registro IR indicano l’istruzione appena letta dalla RAM e da decodificare
  • Registro Indirizzi Memoria (MAR): i bit del registro MAR indicano l’indirizzo di una parola in RAM il cui contenuto deve essere letto o scritto dal processore
  • Registro Dati Memoria (MDR): i bit del registro MDR indicano una copia del contenuto di una parola in RAM letto dal processore o il valore di bit che devono essere scritti in RAM dal processore
  • Registro di Stato (SR): i bit del registro SR indicano che una particolare condizione si è verificata a seguito dell’esecuzione di un’istruzione, ad esempio, se un’istruzione di somma genera un overflow allora la ALU scrive un certo valore nel registro SR. PROCESSORE: I REGISTRI DI USO GENERALE I registri generali sono usati per l’esecuzione di istruzioni memorizzando, ad esempio:
  • il contenuto di una parola di memoria letto dal processore
  • il risultato di un’elaborazione sul contenuto di uno o più registri
  • gli operandi di un’istruzione artimetica –…. L’UNITÀ ARITMETICO-LOGICA
  • L'Unità Aritmetico-Logica ( ALU ) è costituita da un insieme di circuiti in grado di svolgere le operazioni di tipo aritmetico e logico
  • La ALU legge i dati contenuti all'interno dei registri generali, esegue le operazioni e memorizza il risultato in uno dei registri generali
  • Vi sono circuiti in grado di eseguire la somma di due numeri binari contenuti in due registri e di depositare il risultato in un registro, circuiti in grado di eseguire il confronto tra due numeri COME SONO FATTE LE ISTRUZIONI
  • Che tipo di istruzioni può eseguire un processore
  • leggi la parola in RAM all’indirizzo 5 e mettila nel registro R
  • scrivi il contenuto del registro R1 nella parola di memoria all’indirizzo y
  • somma il contenuto dei registri R0 e R8 mettendo il risultato nel registro R
  • inverti i bit del registro R6 mettendo il risultato in R
  • trasla verso sinistra di una posizione i bit del registro R9 e scrivi il risultato nella parola di memoria il cui indirizzo è contenuto nel registro R
  • cambia il contenuto del registro PC (istruzioni di salto)
  • ............... COME SONO CODIFICATE LE ISTRUZIONI
  • Le istruzioni che un processore può eseguire sono anch’esse rappresentate in formato digitale.
  • Si sceglie di usare un certo numero di bit e si fa corrispondere ad un’operazione una configurazione.
  • Si sceglie di usare un certo numero di bit e si fa corrispondere ad un registro una configurazione.
  • A seconda dello spazio di indirizzamento, si sceglie di usare un certo numero di bit e si fa corrispondere ad un indirizzo una configurazione
  • In questo modo, le istruzioni sono rappresentate in formato digitale e mantenute all’interno della RAM per essere prelevate (lette) ed eseguite dal processore.
  • Istruzione che somma il contenuto del registro R3 con il contenuto del registro R8 e mette il risultato nel registro R13. In linguaggio macchina scriveremmo ADD R3,R8,R
  • Ipotizziamo di avere 16 registri in tutto e di avere una dimensione della parola di memoria di 16 bit (per cui un’istruzione è codificata con 16 bit)
  • associo all’operazione ADD 4 bit fatti così: 1011
  • associo 4 bit ad ogni indice di registro per cui ottengo per R3 (0011), per R8 (1000), per R13 (1101) per cui si ha che • ADD R3,R8,R13 si codifica con 1011 0011 1000 1101 IL BUS
  • Problema: collegare le varie componenti (fisicamente separate) di un calcolatore, ad esempio, processore e memoria centrale

L’operatore OR Il risultato è vero se e solo se è vera almeno una delle variabili L’operatore XOR (OR EXCLUSIVE) Il risultato è vero se e solo se è vera solo una delle due variabili OPERATORI – NOMENCLATURA E SIMBOLOGIA NOT: inversione ( ¯ ) AND: prodotto logico ( · ) OR: somma logica ( + ) XOR: or esclusivo ( ⊕ ) OPERATORI UNIVERSALI Con gli operatori NOT, OR, AND, XOR si possono costruire tutte le funzioni booleane Esistono due operatori (NAND, NOR) che permettono la sintesi di qualsiasi funzione , utilizzando un unico tipo di operatori L’operatore NAND (not and) Il risultato è vero solo se è falso l’AND tra le due variabili L’operatore NOR (not or) Il risultato è vero solo se è falso l’OR tra le due variabili ESPRESSIONI LOGICHE Un insieme di variabili e/o costanti booleane a cui siano applicati gli operatori logici si dice espressione booleana o logica Una espressione logica rappresenta una funzione logica: ad esempio: PRECEDENZE TRA OPERATORI Le precedenze sono simili al + e al x dell’algebra consueta: ➔ priorità alta x ➔ priorità bassa + PROPRIETÀ DELL’ALGEBRA BOOLEANA

ALGORITMI

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Il procedimento (chiamato algoritmo) è composto da passi elementari, per risolvere un problema specifico. esempi PROPRIETÀ DEGLI ALGORITMI L'algoritmo è caratterizzato da: ➔ finitezza : composto da un numero finito di passi elementari; le operazioni sono eseguite un numero finito di volte ➔ non ambiguità : i risultati non variano in funzione della macchina/persona che esegue l'algoritmo (deterministico) ➔ realizzabilità : deve essere eseguibile con le risorse a disposizione ma gli esempi precedenti possiedono queste proprietà? Problemi presenti:

  • Ambiguità
  • Ipotesi implicite sulle capacità dell’esecutore
  • Uso del linguaggio naturale RAPPRESENTAZIONE DEGLI ALGORITMI E’ necessario far riferimento a dei formalismi che: ➔ non introducano ambiguità e siano universalmente riconosciuti ed interpretati allo stesso modo da un generico esecutore ➔ permettano di rappresentare in modo efficace un algoritmo ➔ Costituiscano un utile strumento per poi poter passare alla fase di codifica in un linguaggio di programmazione Rappresentazione grafica Diagrammi di Flusso / Flow Chart Rappresentazione testuale Notazione Lineare Strutturata / PseudoCodice ALGORITMI: OPERAZIONI BASE Le operazioni primarie sono: ➔ Istruzioni di I/O (Trasferimento di informazioni: lettura dati, scrittura risultati) ➔ Istruzioni di assegnamentoValutazione espressioni (esecuzione di calcoli) ➔ Strutture di controllo (che modificano il flusso sequenziale di esecuzione delle operazioni) Flow chart: simboli fondamentali