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


Introduzione all'Informatica: Concetti Fondamentali e Architettura di Von Neumann - Prof. , Appunti di Fondamenti di informatica

Gli appunti riguardano tutto il corso svolto + le slide dal docente caricate

Tipologia: Appunti

2022/2023
In offerta
30 Punti
Discount

Offerta a tempo limitato


Caricato il 03/06/2024

mdf04
mdf04 🇮🇹

4

(2)

4 documenti

1 / 53

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
INFORMATICA
25/09/2023
CHE COSA È?
Informatica è la scienza che studia come automatizzare le informazioni.
Il termine informatica: etimologiaDal francese “informatique”: "information" e "automatique":
"informazione automatica". Fu coniato negli anni ’60 da Philippe Dreyfus. Viene utilizzato per indicare la
disciplina tecnico-scientifica che si occupa della progettazione e costruzione di macchine in grado di trattare
(o elaborare) in modo automatico l’informazione
In alternativa al termine “informatica” viene usato “tecnologia dell’informazione” (IT).
L'informatica è una scienza relativamente recente. I primi computer "non dialogavano tra di loro" perché
erano enti singoli mentre oggi il collegamento tra loro è fondamentale. Infatti, negli ultimi decenni le
capacità dei singoli calcolatori sono notevolmente aumentate grazie alla loro interconnessione in rete. Ora
sono strumenti di comunicazione.
La convergenza tra tecnologia dell’informazione e le telecomunicazioni danno vita al concetto di
“COMMUNICATION”, in ICT*, che ha cambiato l'idea di informatica *INFORMATION AND
COMMUNICATION TECHNOLOGY (sinonimo di informatica)
ELABORATORI ELETTRONICI
Svolgono un lavoro che per l’uomo è naturale ma lo fanno rapidamente, sono infaticabili, riescono a gestire
enormi quantità di dati, in alcuni casi permettono di superare vincoli temporali e spaziali. A differenza degli
elettrodomestici, sono programmabili e possono essere adattati a risolvere molti tipi di problemi. A patto
che la soluzione possa tradursi in un numero finito di operazioni. L’informazione che ha spinto l’uomo verso
la realizzazione di elaboratori è quella espressa in forma quantitativa (in particolare numerica). Per questo
motivo, si è diffuso il termine di “calcolatore” (inglese: computer) che viene spesso usato in alternativa al
termine “elaboratore”. Informatica in inglese è computer science.
COSA SONO E COSA FANNO I COMPUTER?
Il computer è una macchina su cui si basa la scienza dell'informatica, che prende l'informazione attraverso
un input, la elabora e restituisce il risultato richiesto (rappresentato attraverso una freccia bidirezionale).
IL COMPUTER
È un elaboratore/calcolatore elettronico digitale (domanda esame)
-elaboratore: macchina in grado di rappresentare ed elaborare dati in base ad una serie di istruzioni
-elettronico: indica che il computer utilizza componenti elettronici. Prima della nascita dei computer gli
strumenti tecnologici più utilizzati erano macchine, fatte da componenti meccanici. Questa è un'altra
caratteristica che distingue il computer da una macchina. I componenti elettronici funzionano sulla base del
passaggio di corrente.
-digitale: indica che il computer elabora e memorizza informazioni grazie al linguaggio binario ovvero due
simboli: 0 e 1 (con queste due cifre, usate in combinazioni diverse, si possono rappresentare tutti i
datiparole, numeri, immagini, filmati, etc…). Essendo il computer un’apparecchiatura elettronica
(passaggio di elettricità), il computer riconosce se c’è corrente (valore 1) e se non c’è corrente (valore 0).
Quindi elettronico e digitale sono collegati.
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
Discount

In offerta

Anteprima parziale del testo

Scarica Introduzione all'Informatica: Concetti Fondamentali e Architettura di Von Neumann - Prof. e più Appunti in PDF di Fondamenti di informatica solo su Docsity!

INFORMATICA

25/09/ CHE COSA È? Informatica è la scienza che studia come automatizzare le informazioni. Il termine informatica: etimologia→Dal francese “informatique”: "information" e "automatique": "informazione automatica". Fu coniato negli anni ’60 da Philippe Dreyfus. Viene utilizzato per indicare la disciplina tecnico-scientifica che si occupa della progettazione e costruzione di macchine in grado di trattare (o elaborare) in modo automatico l’informazione In alternativa al termine “informatica” viene usato “tecnologia dell’informazione” (IT). L'informatica è una scienza relativamente recente. I primi computer "non dialogavano tra di loro" perché erano enti singoli mentre oggi il collegamento tra loro è fondamentale. Infatti, negli ultimi decenni le capacità dei singoli calcolatori sono notevolmente aumentate grazie alla loro interconnessione in rete. Ora sono strumenti di comunicazione. La convergenza tra tecnologia dell’informazione e le telecomunicazioni danno vita al concetto di “COMMUNICATION”, in ICT, che ha cambiato l'idea di informatica →INFORMATION AND COMMUNICATION TECHNOLOGY (sinonimo di informatica) ELABORATORI ELETTRONICI Svolgono un lavoro che per l’uomo è naturale ma lo fanno rapidamente, sono infaticabili, riescono a gestire enormi quantità di dati, in alcuni casi permettono di superare vincoli temporali e spaziali. A differenza degli elettrodomestici, sono programmabili e possono essere adattati a risolvere molti tipi di problemi. A patto che la soluzione possa tradursi in un numero finito di operazioni. L’informazione che ha spinto l’uomo verso la realizzazione di elaboratori è quella espressa in forma quantitativa (in particolare numerica). Per questo motivo, si è diffuso il termine di “calcolatore” (inglese: computer) che viene spesso usato in alternativa al termine “elaboratore”. Informatica in inglese è computer science. COSA SONO E COSA FANNO I COMPUTER? Il computer è una macchina su cui si basa la scienza dell'informatica, che prende l'informazione attraverso un input, la elabora e restituisce il risultato richiesto (rappresentato attraverso una freccia bidirezionale). IL COMPUTER È un elaboratore/calcolatore elettronico digitale ( domanda esame )

  • elaboratore: macchina in grado di rappresentare ed elaborare dati in base ad una serie di istruzioni
  • elettronico: indica che il computer utilizza componenti elettronici. Prima della nascita dei computer gli strumenti tecnologici più utilizzati erano macchine, fatte da componenti meccanici. Questa è un'altra caratteristica che distingue il computer da una macchina. I componenti elettronici funzionano sulla base del passaggio di corrente.
  • digitale: indica che il computer elabora e memorizza informazioni grazie al linguaggio binario ovvero due simboli: 0 e 1 (con queste due cifre, usate in combinazioni diverse, si possono rappresentare tutti i dati→parole, numeri, immagini, filmati, etc…). Essendo il computer un’apparecchiatura elettronica (passaggio di elettricità), il computer riconosce se c’è corrente (valore 1) e se non c’è corrente (valore 0). Quindi elettronico e digitale sono collegati.

Quale differenza c'è tra la parola macchina e la parola elaboratore/calcolatore? Per definizione un elaboratore o un calcolatore è una macchina particolare che esegue ed effettua dei calcoli. (Ricordiamo che i dati sono numeri che vengono elaborati per ottenere un'informazione e di conseguenza la conoscenza) ELABORATORI AUTOMATICI disporre di elaboratori automatici (macchine in grado di compiere autonomamente attività di elaborazione dell’informazione) garantisce dei benefici rispetto all’elaborazione condotta dall’uomo: 1) riduzione dei tempi, 2) maggiore affidabilità, 3) incombenze “noiose”, 4) esecuzione automatica di operazioni che richiedono competenze poco comuni. 29/09/ Informatica: di che si tratta? È una scienza che riguarda la rappresentazione e l’elaborazione dell’informazione. Studia le caratteristiche dell’informazione e i modi di usarla, immagazzinare, trasportarla e manipolarla in modo automatico. Due aree principali:

  1. i calcolatori elettronici e i sistemi che li utilizzano
  2. i metodi per la soluzione di problemi e la gestione delle informazioni MA COSA SIGNIFICA INFORMAZIONE?
  • Prendiamo ad esempio il numero 4 fuori dal contesto di una frase, in questo caso 4 è un dato, un semplice numero che non aggiunge nulla. Poi aggiungiamo contesto al dato: " la temperatura di questa stanza è di 4 gradi". Il 4, semplice dato, successivamente è diventato un'informazione e di conseguenza anche una conoscenza: sapere che la temperatura della stanza è bassa mi fa capire che c'è, ad esempio, un problema con il riscaldamento. Conoscenza: ci permette di comprendere i problemi e risolverli Questo esempio ci fa capire che c'è un passaggio logico da un semplice dato a un'informazione che ci trasmette conoscenza= dato→ informazione→ conoscenza
  • Un altro esempio è il semaforo: Il colore rosso, preso di per sé, è solo un colore (dato) ma se dico che il semaforo è rosso sto dando (un'informazione) che, contestualizzata nel nostro ambiente, ci indica che bisogna fermarsi (conoscenza).
    1. DATI: insieme di simboli tracciati su un supporto fisico, rappresentano una proprietà di un oggetto nel mondo reale, ma non contengono alcun riferimento alla proprietà a cui si riferiscono
    2. INFORMAZIONI: dati messi in relazione con la proprietà a cui essi si riferiscono
    3. CONOSCENZA: regole che permettono di trarre vantaggio dalle informazioni DATI Rappresentano la materia prima del trattamento dell’informazione. Possono essere classificati in:
  1. Dati semplici: come i numeri, caratteri, etc.
  2. dati complessi: come i film, sequenza di suoni e immagini. (la gestione di questo tipo di dati è resa possibile dall’incredibile potenza raggiunta degli elaboratori nell’ultimo decennio) *19 (dato) - è stato registrato un miglioramento del 19% dell’azienda X su base annua (informazione)
  • Architettura di Von Neumann in concreto

Come è fatto un computer? 4 blocchi:

  1. Memoria centrale (MC) : memorizza e fornisce l'accesso a dati e informazioni, ci sono tutti i dati che permettono al computer di funzionare, gli altri dati (ad esempio quelli nella Pen Drive) senza i quali il computer funziona lo stesso, sono secondari e non fanno parte della Memoria Centrale, e non fanno neanche parte del modello di Von Neumann (sottosistema di memorizzazione)
  2. Unità Centrale di Elaborazione (CPU: central process unit): esegue istruzioni per l'elaborazione dei dati e svolge funzioni di controllo, anche qui ci sono delle piccole memorie, che servono solo a far funzionare la macchina CPU (sottosistema di elaborazione)
  3. Interfacce di ingresso e uscita (o periferiche): sono componenti di collegamento con le periferiche del calcolatore (sottosistema di interfaccia). i/o= input/output
  4. Bus: trasporta dati e informazioni di controllo tra le componenti del calcolatore (sott. di comunicazione). Mouse, tastiera, schermo e memorie secondarie: esterni al rettangolo perché sono esterni alla macchina di Von Neumann e sono collegati al computer tramite interfaccia i/o

BUS

  • Il BUS serve a scambiare informazioni fra le varie componenti del calcolatore, il bus collega due elementi in MODO LOGICO, a seconda dell'operazione da eseguire.
  • Assicura l’interconnessione tra gli elementi della macchina di Von N.→ tutti i trasferimenti avvengono attraverso il bus. Trasmette dati che, arrivando negli altri sottosistemi, diventano informazioni.
  • Le operazioni si succedono in modo sincrono* (in contemporanea) rispetto alla cadenza imposta da un orologio di sistema (clock)→responsabile di apertura e chiusura interfacce per evitare scontro tra i segnali elettrici
    • Queste operazioni per quanto complesse richiedono milionesimi di secondo Trasferimento dati e informazioni:
  • Due possibili soluzioni: 1) collegare ciascuna componente con ogni altra componente
    1. collegare tutte le componenti a un unico canale (bus)
  • L’utilizzo di un bus favorisce la modularità e l’espandibilità del calcolatore. *Modulare significa che io, senza dover cambiare la mia architettura, posso aggiungere un altro pezzo, dunque è anche espandibile. Un sinonimo di modularità è scalarità. *Il termine espandibilità si riferisce alla possibilità di accrescere le performance del computer in maniera semplice. Avendo un Sottosistema, se voglio aumentare le capacità di comunicazione tra un sistema ed un altro, in una struttura in cui, contrariamente al modello di Von Neumann, ci fossero dei collegamenti tra tutti i sottosistemi, avrei bisogno di potenziarli tutti. Mentre, grazie al funzionamento di tale struttura, mi è sufficiente potenziare il sottosistema interessato, insieme al sottosistema di comunicazione. Esempio→dobbiamo vedere il bus come un’autostrada (mobile ed espandibile), i blocchi sono i caselli con sbarre chiuse e quando l’orologio dà il via decide quale sbarra si deve aprire. *asincrono al contrario di sincrono significa in qualsiasi momento. Esempio→non ci sono sbarre sull’autostrada, può succedere incidente) Il bus è fisicamente realizzato mediante un insieme di CONNETTORI ELETTRICI e presenta tre corsie separate le une dalle altre:
    1. Corsia riservata agli indirizzi
    2. Corsia riservata ai dati
    3. Corsia di controllo Trasferire dati fra le unità funzionali
  • l’unità che inizia il trasferimento (in generale la CPU) fornisce l’indirizzo che individua univocamente il dato sulle linee del bus indirizzi e configura le linee del bus di controllo, inviando un comando al dispositivo che contiene il dato (ad es. READ, alla memoria principale)
  • il dato da trasferire è reso disponibile sul bus dati e viene ricopiato nel dispositivo destinatario

Altri tipi di memorie Il calcolatore è dotato di dispositivi di memorizzazione dette persistenti (memorie di massa o secondarie) e mantengono i dati anche senza l’alimentazione elettrica. Il tempo per accedere ad una memoria secondaria è maggiore anche perché le dimensioni sono maggiori quindi ha una capacità di immagazzinamento più grande.

  • in ogni elaboratore vi sono generalmente tre tipi di memorie: ( esame )
    1. registri: piccolissime celle di memoria che contengono informazioni necessarie all’elaborazione della singola istruzione (nella CPU)
    2. memoria centrale: contiene dati e istruzioni attualmente elaborati dal processore
    3. memorie di massa: contengono dati e programmi che non sono oggetto di elaborazione immediata
  • la loro funzione principale è quella di garantire la persistenza dei dati (sono persistenti)
  • possono essere: 1) fisse (ad es. Hard Disk interni)
    1. rimovibili (ad es. pendrive USB)
  • nel modello di Von Neumann, le memorie di massa sono incluse tra le periferiche di ingresso e uscita, poiché funzionalmente analoghe a quest’ultime dal punto di vista dell’interazione con l’elaboratore. *L'hard disk è una MEMORIA SECONDARIA di limitata capacità che possiede programmi più complessi. La memoria centrale possiede programmi più semplici che permettono di far funzionare il computer. ( esame ) Elaborazione (CPU)
  • l’elaborazione nella macchina di Von Neumann è svolta dalla Central Processing Unit (CPU) detta anche processore (elemento più importante di un computer)
  • le istruzioni di un programma corrispondono ad operazioni elementari di elaborazione ad es.: operazioni aritmetiche, operazioni relazionali (confronto tra dati), operazioni su caratteri e valori di verità, altre operazioni numeriche
  • La CPU è l’unità centrale di elaborazione che esegue le istruzioni dei programmi e ne regola il flusso: esegue i calcoli
  • le periferiche sono i dispositivi che consentono all’elaboratore di scambiare informazioni con il mondo esterno
  • vengono considerate appartenenti alla macchina di Von Neumann solo le interfacce di collegamento verso le periferiche, mentre le periferiche sono considerate componenti separate (non macchina Von Neumann) Memorizzazione
  • un’unità di memoria fornisce due sole operazioni: 1) memorizzazione di un valore (operazione di scrittura)
    1. accesso al valore memorizzato (operazione di lettura) Ovvero nelle celle di memoria o ci scrivo (in un’unica cella scrivo 0 o 1) o leggo il contenuto di quella cella.
  • le memorie sono dispositivi per “lo stoccaggio” delle informazioni

Caratteristiche di una memoria

  • I 4 parametri fondamentali che caratterizzano una memoria sono: modalità di accesso, permanenza o volatilità dei dati, capacità (quantità di dati che possono essere memorizzati), velocità (indica la velocità necessaria per accedere ad una locazione di memoria, cella, durante un’operazione di lettura o scrittura, la velocità è espressa in nanosecondi, millisecondi, secondi) *volatilità→ quando il computer viene spento, i dati ed i programmi presenti in memoria centrale vengono cancellati, ecco perché i dati non sono conservati nella memoria centrale ma in quella secondaria ( esame ). Le memorie centrali quindi funzionano solo quando il computer è acceso. *Modalità di accesso alle memorie (come faccio ad accedere alle informazioni)
  • accesso sequenziale: prima di leggere una cella è necessario leggere tutte quelle che la precedono
  • accesso diretto: dato l’indirizzo di una cella, essa può essere acceduta in modo immediato
  • accesso misto: 1) le celle sono organizzate in blocchi (ogni blocco è costituito da un certo numero di celle)
    1. si ha accesso diretto ai blocchi e accesso sequenziale alle celle all’interno di un blocco Gerarchie di memoria: in base ai parametri di capacità e velocità d’accesso, le memorie possono essere collocate in una gerarchia Hard disk interno ha una velocità d’accesso maggiore rispetto ad hard disk esterno.

CPU

CPU: è l’equivalente del cervello per il computer (cuore: hardware), comanda e decide cosa si deve fare. Contiene gli elementi cicuitali che regolano il funzionamento dell’elaboratore. La sua funzione è quella di eseguire i programmi contenuti nella memoria centrale prelevando, decodificando ed eseguendo una dopo l’altra le istruzioni che li costituiscono. Più è evoluta la CPU più costa il computer. Come è fatta la CPU? Il suo funzionamento può essere individuato attraverso 4 elementi principali ( domanda esame )

  1. clock: orologio di sistema
  2. ALU: unità aritmetico-logica (essendo il computer un calcolatore, qui si fanno i calcoli)
  3. R: registri (è la memoria più piccola)
  4. CU: unità di controllo 1) CLOCK: CPU: dispositivo sincrono regolato da un “orologio” (come tutto il computer). Sincrono: sistema svolge le sue funzioni quando l’orologio dice che si possono svolgere. Cosa fa?
  • sincronizza le operazioni (data sequenza di istruzioni) rispetto ad una data frequenza: le varie attività della CPU hanno inizio in corrispondenza di tempi ben precisi stabiliti del clock (impulsi di clock)
  • stabilisce quante istruzioni al secondo possono essere eseguite dalla CPU
  • la CPU attuale lavora a N GHz (segue un ritmo di N miliardi di impulsi al secondo). Ad esempio una CPU che lavora 3 GHz riceve 3 miliardi di impulsi al secondo
  • la frequenza di clock determina la velocità di elaborazione del computer, più alta è la frequenza di clock, maggiore è la velocità di elaborazione. La velocità e la potenza di un computer dipendono anche dalla larghezza del bus (non solo dal clock)→quantità di dati che il processore è in grado di ricevere ed elaborare simultaneamente (dimensione dei registri: tipicamente 32 o 64 bit> “architetture a 32 o 64 bit”) Schema logico della CPU il clock non è rappresentato

2 ) ALU: unità aritmetico-logica

  • esegue operazioni aritmetiche e logiche su due operandi ( domanda esame )
  • dà il risultato dell’operazione stessa (result) ma anche ulteriori informazioni (status: segnali di stato→ indica se siamo usciti fuori scala)
  • 2 operandi (A, B), 3 ingressi (A, B, ALU Operation), result, status. Es. AxB→ 9 x3=27→ 27 è l’ALU operation
  • ALU operation: tipo di operazione che si deve svolgere sugli operandi (possono essere anche operazioni logiche) A=B operazione logica 3 ) REGISTRI:
  • sono dispositivi di memorizzazione (memorie) che consentono un accesso molto veloce ai dati contenuti
  • hanno dimensioni prefissate, molto piccole (dobbiamo immaginare un piccolissimo scaffale fatto da tanti libri, dove ogni libro è un registro)→la capacità di accesso è inversamente proporzionale alla capacità.
    • lo stato della CPU è rappresentato dalle informazioni memorizzate negli opportuni registri. Alcuni registri hanno funzioni specifiche:
    1. Il registro PC (Program Counter/contatore di programma)→individua la prossima istruzione da eseguire (tramite l’indirizzo, PC contiene indirizzo dove prendiamo informazione).
    2. Il registro IR (Instruction Register/registro istruzioni)→ contiene l’istruzione da eseguire (in IR trovo il valore di Alu Operation, ma anche il valore di A e di B) Registri dati (DR)
  • contengono solo i dati da elaborare: es.→ 5, 3, x Registro status (di stato/flag) Coincide con l’uscita dell’ALU. Contengono eventuali anomalie o eventi verificatisi durante l’elaborazione. Ci dice quando andiamo fuori scala (operazione tra tantissimi numeri, si allerta il flag status) Esempi : IR ci dà l’informazione, abbiamo 5, 3 e l’operazione di moltiplicazione (x). Alu Operation effettua la moltiplicazione, il risultato 15 lo vado a rimettere nei registri dati (contengono i numeri)
  • A: 5, B: 3, ALU operation: moltiplicazione. Abbiamo due uscite: result e status Registro indirizzi Contengono l'indirizzo che ci indica dove andare a prendere la cella di memoria. Ogni singola cella possiede il valore di 0 o 1 Registro indirizzi vs registro dati Ciascuna cella di memoria può essere indirizzata: capacità di un elaboratore di selezionare una particolare cella di memoria; l’indirizzo di una cella di memoria è semplicemente la sua posizione relativa (o numero d’ordine) rispetto alla prima cella di memoria, cui viene normalmente attribuita la posizione zero L’indirizzamento della memoria avviene tramite registri di indirizzi che si trovano nell’unità di elaborazione. Il progetto Counter è il registro che contiene l’indirizzo della prossima istruzione da eseguire

4) Unità di Controllo (CU) È l’unità che scandisce i tempi→direttore d’orchestra di un computer Decide quando prendere i registri, quando il PC o IR, quando fare l’operazione…ma anche, nel contesto della macchina di Von Neumann, quando prendere informazioni da memoria centrale, quando aprire e chiudere barriera di accesso al bus…

  • È il sottosistema della CPU che effettua il coordinamento tra le varie parti del calcolatore: è una componente dell’unità centrale di elaborazione ogni componente del calcolatore esegue solo le azioni che gli sono richieste dall'Unità di Controllo
  • il controllo consiste nel coordinamento dell’esecuzione temporale delle operazioni: decide le operazioni sia all'interno sia all'esterno (altri elementi funzionali) della CPU Istruzioni di base della CPU eseguite dall'ALU
  • Somma (da cui sottrazione)
  • Scorrimento (shift)→spostamento degli operandi (virgola che si sposta quando dividiamo)
  • Operazioni logiche
  • Operazioni di confronto *tramite le operazioni di somma e shift è possibile ricavare le operazioni di moltiplicazione e divisione Seconde istruzioni di base eseguite da CPU (non ALU)= operazioni di accesso all memoria
  • Trasferimento di un dato da una locazione di memoria a un'altra. (Memoria→Registro della CPU; Registro della CPU→Memoria). Non eseguite dall’ALU perché effettua solo operazioni aritmetiche e logice e non di accesso alla memoria

DATI E ISTRUZIONI IN MEMORIA CENTRALE

  • All'interno di una Memoria Centrale, i primi registri contengono le Istruzioni e gli altri i Dati. Dati e istruzioni di un programma sono codificati in forma binaria, cioè mediante sequenze finite di bit.
  • Un’istruzione codificata si compone di due parti:
    • codice operativo (CO)→ specifica l’istruzione da eseguire. In ogni architettura è definito un certo insieme di istruzioni (set di istruzioni) con gli associati CO.
    • uno o più operandi (Op. i)→contengono le informazioni necessarie a reperire i dati sui quali l’istruzione deve operare. Istruzione-> : è strettamente legata all’architettura della macchina!!! Regole di un computer: così come nella CPU troviamo registri dati e registri indirizzi anche nella memoria una parte dei registri contengono solo istruzioni da eseguire mentre altri contengono solo dati. LINGUAGGIO (O CODICE) MACCHINA Linguaggio utilizzato da un processore per poter codificare un'informazione (cambia da macchina a macchina). Non per tutti i computer la sequenza di 0 e 1 per tradurre un’informazione è la stessa, potremmo avere un altro codice. Ogni azienda ha un proprio codice→ogni azienda ha un suo linguaggio.
  • Insieme di istruzioni* eseguite direttamente dalla CPU (*operazioni aritmetico-logiche) Ps: l’operazione della moltiplicazione nella CPU viene tradotta in 4 operazioni elementari sequenziali (somme, sottrazioni, shift e confronto logico)→miliardi di operazioni al secondo. Per sapere quale operazione si sta svolgendo devo andare nei registri informazioni.
  • Ogni istruzione svolge un compito specifico; le istruzioni sono codificate in binario:
    • numero di operandi limitato (non più di due)
    • numero di operazioni previste ridotto
    • il processore è in grado di eseguire un numero limitato di istruzioni Combinando in modo diverso sequenze anche molto lunghe di istruzioni (i programmi) si può istruire l’elaboratore a fare tantissime cose, anche completamente diverse tra loro. Un programma in esecuzione risiede nella memoria centrale: è rappresentato da una serie di numeri binari che codificano le istruzioni eseguibili dalla CPU. Osservando solo il contenuto della memoria, il programma non è distinguibile dai dati: le istruzioni sono individuate dai valori assunti dal registro PC, durante l’esecuzione del programma

20/10/ COME SI ESEGUONO I PROGRAMMI? Programma: sequenza di istruzioni da eseguire per ottenere la soluzione ad una data classe di problemi Utilizzando il programma calcolatrice voglio fare 9x9: il 9 lo metto sulla tastiera del computer→passa poi attraverso interfaccia i/o→ passa per il bus e arriva alla→memoria centrale che memorizza il calcolo che noi abbiamo scritto: 9x9. Ci sono tre registri: 9; x; 9 La moltiplicazione avviene nei registri della CPU→ dove è arrivata attraverso il bus→ il calcolo lo fa l’ALU→ il risultato rimane nei registri poi passa alla→memoria centrale→poi attraverso il bus→passa all’interfaccia uscit→arriva allo schermo

  • Il processore esegue ciascuna istruzione mediante la seguente sequenza di operazioni, detta ciclo di istruzione o ciclo macchina
    1. Estrazione di un’istruzione dalla memoria centrale (fase di fetch)
    2. Interpretazione di un’informazione (fase di decode)→per svolgere un’operazione dopo che l’ho prelevata la devo decodificare
    3. Esecuzione dell’istruzione (fase di execute) Dopo l’esecuzione il computer riprende la sequenza successiva, si riavvia il ciclo, si fermerà quando siamo arrivati all’ultima istruzione. CICLO FETCH-DECODE-EXECUTE COSA ACCADE ALL’INTERNO DELLA CPU PER EFFETTUARE UN’ISTRUZIONE?
  1. nella memoria abbiamo da un lato le istruzioni e da un lato i dati
  2. nella CPU abbiamo la CU, i registri PC, i registri IR
  • La CPU esegue solo istruzioni codificate in linguaggio macchina mediante il ciclo Fetch.Decode-Execute FASE 1 (fetch)
    • prendi l’istruzione corrente dalla memoria (individuata dal contenuto del PC). Salvala nell’IR e contemporaneamente incrementa il PC in modo che contenga l’indirizzo dell’istruzione successiva
  1. Quindi il registro PC (nella CPU) mi dà l’indirizzo e mi dice quale è la prossima istruzione da eseguire. Il PC individua l’istruzione 1 (contiene l’indirizzo dell’istruzione 1)
  2. La CU conosce l’indirizzo e dice al sistema di prendere l’istruzione presente in quell’indirizzo e fammela conoscere→Usiamo il bus per accedere alla memoria, copiamo l’informazione e usiamo di nuovo il bus, poi la portiamo nella CPU e la salviamo nel registro IR (che contiene l’istruzione 1 e non l’indirizzo)
  3. L’istruzione la esegue la CPU che però deve conoscere l’operazione da fare (informazione), avviene prendendo informazioni nella memoria centrale e portandola nei registri della CPU. *Registro PC ha come indirizzo sempre istruzione 1. IR ha contenuto istruzione 1
  4. contemporaneamente CU incrementa il valore del registro PC in modo tale che non dia più la posizione corrispondente all’indirizzo 1 ma al 2 (fase successiva)
  5. il PC adesso individua la prossima istruzione da eseguire: l’indirizzo dell’istruzione 2; mentre l’IR contiene l’istruzione da eseguire (l’istruzione 1)

FASE 2 (decode)

  • Determina il tipo di istruzione da eseguire (si trova nel registro IR)
  1. se l’istruzione usa dati presenti in memoria, determinane la posizione
  2. carica tali dati nei registri della CPU FASE 3 (execute)
  • Esegui l’istruzione (perché la CPU possiede tutte le informazioni che servono) FASE 4 → torna al punto 1 e inizia ad elaborare l’istruzione successiva: il ciclo riprende (grazie all’incremento del valore del registro PC, in modo che l’istruzione successiva non sarà più 1 ma 2) Si ripete fino a quando il programma non finisce (mediante il passo 4 i passi precedenti vengono eseguiti ciclicamente (ciclo F-D-E) Domande:
  1. L’informatica può essere definita come?
  2. Abbina i concetti di dato, informazione e conoscenza
  3. Quale componente non fa parte della macchina di Von Neumann
  4. Ordina le memorie dalla più veloce alla più lenta
  5. La memoria di massa è? Permanente
  6. Operazione di scrittura (mem. centrale)
  7. Il bus è costituito da un insieme di connessioni elementari
  8. Quali sono le memorie più piccole? I registri

Codice Morse Il codice Morse serviva a mettere in comunicazione due punti, distanti l’uno dall’altro anche a centinaia di chilometri. Ci troviamo agli albori delle telecomunicazioni. La comunicazione avveniva a distanza attraverso dei filtri di dati. C’era un trasmettitore e un ricevitore. Il trasmettitore poteva solo trasmettere un impulso singolo o un impulso continuo attraverso una sequenza di linee e punti. Dall’altra parte a chilometri di distanza c’era un ricevitore che era solo in grado di capire se noi stavamo trasmettendo un impulso singolo o continuo. Perciò per trasmettere un messaggio ho bisogno di codificarlo attraverso delle regole arbitrariamente decise. Posso associare per esempio alla lettera A la sequenza (.-) ed alla lettera B (-…). Codifica Braille Per i non vedenti. Anche la normativa sugli ascensori prevede che il numero del piano sia codificato in Braille. Anche in questo caso ogni sequenza diversa di punti è associata ai numeri ed alle lettere Esempi di codifica

  1. Linguaggio di partenza: i numeri
  2. Codifica 1: numerazione decimale (es. 5, 45, 670)→ la codifica è decimale→valori vanno da 0 a 9
  3. Codifica 2: numerazione binaria→(101…)→ la codifica è binaria →cifre da 0 a 1
  4. Codifica 3: ogni cifra può essere 0, 1, 2 Altri esempi di codifica L’informazione è rappresentata dai dati, che a loro volta sono espressi in forma di simboli La stessa informazione può essere codificata con simboli e modalità diverse:
  1. 1963: codifica decimale (simboli 0, 1 ,2…)
  2. MCMLXIII: simboli della codifica romana
  3. Millenovecentosessantatre: rappresentazione testuale Linguaggi naturali: Ambiguità
  1. per comunicare tra loro gli uomini hanno sviluppato i linguaggi naturalei (inglese, italiano…)
  2. una caratteristica negativa di tali linguaggi è la loro inerente ambiguità Una qualsiasi frase formulata è potenzialmente polisemantica= Mario ha visto Francesco con il cannocchiale→ frase corretta grammaticalmente e semanticamente però ambigua→ il significato che viene dato alla frase da chi riceve il messaggio può essere diverso da quello datogli dal mittente.
  • Se tra due persone le ambiguità linguistiche sono superabili, con la macchina questo non deve accadere. Nella comunicazione con l’ordinatore non vanno commesse ambiguità. L'ambiguità dei linguaggi naturali può essere un grande problema per i computer dunque per parlare con un computer, è necessario utilizzare un linguaggio formale , con un suo alfabeto (elenco finito di simboli utilizzato dal computer), un suo vocabolario (lessico), una sua grammatica (regole sintattiche che combinano simboli alfabeto per creare frasi) e una sua semantica (linguaggio non ambiguo delle frasi).

IL LINGUAGGIO DEI CALCOLATORI

Rappresentazione dell’informazione dei calcolatori

  1. Alfabeto: fatto solo di due simboli→0 e 1 corrispondenti a un bit (binary digit)→ovvero alfabeto binario di soli due valori
  2. Vocabolario: che significato hanno nella realtà delle sequenze di simboli (esempio semaforo): ASCII*
  3. Nei calcolatori ogni elemento (testo, audio, video, istruzioni) viene rappresentato/codificato esclusivamente con sequenze di bit→ dunque, dati e istruzioni sono codificati con sequenze di bit univoche a tutti gli oggetti in un insieme predefinito. Quindi mentre nel nostro linguaggio le frasi sono un insieme di numeri e lettere, nel linguaggio del computer tutto è ridotto ad una sequenza di 0 e 1 che coincide con la parola o il numero che scrivo. Come nel caso del linguaggio Morse ci sono due valori, impulso secco o impulso continuo. La loro combinazione mi da la lettera A, B, C... il computer funziona allo stesso modo. Se definisco che la lettera sia fatta dalla sequenza 01, bisogna individuare una codifica unica e standard in tutto il mondo per capire che 01 corrisponde a quella determinata lettera. Codifica binaria Essendo il computer un calcolatore elettronico, l’elettronica prevede un passaggio di corrente. Quandi c’è corrente (valore 1), quando non c’è (valore 0). È per questo che il computer utilizza il linguaggio binario, proprio perché fisicamente il computer è fatto di apparecchi elettronici. Problema codifica binaria: assegnare una sequenza di bit univoca a tutti gli oggetti in un insieme predefinito Un interruttore ha due sole possibilità:
  1. Acceso (ON) → 1
  2. Spento (OFF) → 0 Un altro esempio: il semaforo Ha 3 possibilità: Può assumere tre valori. Per poter rappresentare i colori di un semaforo su computer, potremmo stabilire un codice di tre bit per ogni colore, ad esempio:
  3. verde: 001
  4. giallo: 010
  5. rosso: 100 Esiste anche un altro modo per codificare un semaforo ovvero con due bit:
  6. verde: 01
  7. giallo: 10
  8. rosso: 00 Anche qui la rappresentazione è univoca, non ci sono ambiguità