Estratto del documento

Fondamenti di informatica

Introduzione al corso

Architettura e principi di funzionamento degli elaboratori elettronici (Von Neumann)

  • Rappresentazione delle informazioni e nozione di algoritmo
  • Microprocessori
  • Unità centrale: CPU, RAM, ROM
  • Bus indirizzi, bus dati, bus controlli
  • Processori single chip e DSP (digital signal processor)
  • Architettura di una CPU: accumulatore, ALU, flags, PC, IR, decodificatore, controllore
  • Registri per scopi generali
  • Gestione delle chiamate di sottoprogrammi: registro stack pointer e area di stack
  • MAR, MBR
  • Fasi dell'esecuzione di istruzioni e coinvolgimento delle risorse della CPU
  • Codice binario, decimale, ottale, esadecimale
  • Rappresentazione di numeri razionali in basi diverse
  • Sistema di numerazione decimale, binario, ottale, esadecimale
  • Conversione tra numeri rappresentati in basi diverse
  • Conversioni tra basi di cui una è potenza dell'altra
  • Somma, moltiplicazione e divisione di numeri binari
  • Complementi della base
  • Complementi a 10, a 9, a 2 e ad 1
  • Circuito di somma e sottrazione
  • Intervalli di rappresentazione per numeri in complemento
  • Overflow e riporto
  • Rappresentazione in eccesso
  • Rappresentazione in virgola fissa
  • Motivazioni della rappresentazione in virgola mobile
  • Rappresentazione in virgola mobile
  • Operazione fra numeri in virgola mobile
  • IEEE 754
  • Distanza di Hamming
  • Definizione di: simbolo, stringa, alfabeto, linguaggio
  • Rilevazione e correzione di errore
  • Alfabeto del calcolatore e dell'uomo
  • Codici di ridondanza e non
  • Controllo di parità
  • Codici di: Hamming, ciclici, BCD, Gray

Codice ASCII

  • Codifica immagini: bitman e vettoriali
  • Formati per memorizzazione di immagini
  • Immagini in movimento
  • Algebra di Boole: NOT, OR, AND, NOR, NAND, EXOR

Linguaggio macchina

  • Tipi di istruzioni della CPU
  • Istruzioni di trasferimento dati, aritmetiche e logiche
  • Istruzioni di rotazione e traslazione
  • Istruzioni di salto con o senza ritorno, condizionati e non
  • Istruzioni di controllo macchina
  • Modalità di indirizzamento: immediato, assoluto, relativo, diretto, a registro
  • Indirizzamento con post-incremento, pre-decremento
  • Indirizzamento indiretto con auto-incremento
  • Indirizzamento con spiazzamento e indiretto con spiazzamento
  • Indirizzamento implicito, con registro indice, con lo stack pointer

Introduzione al software e hardware

Software: programmi
Hardware: apparecchiature
Firmware: apparecchiature pre-programmate

Una volta le funzioni dei calcolatori erano codificate nella stessa CPU, cioè il circuito della CPU era fatto in modo da svolgere quelle funzioni automaticamente questo permetteva di dare al calcolatore capacità piuttosto basilari e primarie, niente di troppo sofisticato. Per di più una CPU programmata permetteva di eseguire altre operazioni solo se veniva modificata (riprogrammata). Si pensò quindi (probabilmente fu Von Neumann) di costruire una CPU in grado di eseguire le istruzioni di un programma situato in memoria, si poteva perciò cambiare solamente il programma invece che l’intera CPU. Grazie alla creazione di CPU con commutatori, una CPU poteva eseguire istruzioni di più programmi e sempre più sofisticati. Da questo il distacco tra hardware e software divenne sempre più crescente.

Ora un software è definito maggiormente di alto livello quanto più le sue funzioni esulano o si estraniano dalle capacità di base della circuiteria. Un programma salvato in memoria (o programma memorizzato) per il funzionamento del computer è un esempio di quei programmi "messi" nel firmware (hardware pre-programmato).

Unità di misura e clock

BIT (b): descrive due possibili stati
BYTE (B): 8 bit, cioè 28 possibilità
KILOBYTE (KB): 210 byte, 213 bit, 210 possibilità
MEGABYTE (MB): 220 byte, 223 bit, 220 possibilità
GIGABYTE (GB): 230 byte, 233 bit, 230 possibilità

  • 1 pagina di testo (A4): circa 10 KB
  • Un libro intero da circa 500 pagine: circa 5 MB
  • 1 video (dipende dalla lunghezza): circa 10-50 MB
  • Un film: circa 1 GB

Herz (HZ): indica il numero di cicli al secondo (oscillazioni) In un computer tutte le funzioni-operazioni si riferiscono ad un orologio interno: il clock. Il clock è un oscillatore, di solito al quarzo, che oscilla al passaggio della corrente. Attualmente la frequenza di oscillazione di un clock è dell’ordine dei gigaherz (GHz, miliardi di cicli al secondo). MHz = milioni di cicli al secondo, è la frequenza dell’oscillazione del clock su cui si basano tutte le altre funzioni. MIPS = milioni di operazioni al secondo, è il numero di istruzioni del programma che il processore è in grado di eseguire in un secondo. Non è un’unità di misura affidabile perché esistono istruzioni differenti per complessità, lunghezza e tempi di esecuzione.

MELOPS = milioni di operazioni in floating-point al secondo FLOPS = operazioni in virgola mobile al secondo, i processori moderni hanno addirittura una FPU addetta a questa operazione. Non è affidabile come unità di misura. BAUD (bit/s): velocità di trasmissione dati, simboli trasmessi al secondo.

Per farsi un’idea sulla relazione tra MHz e MIPS: Una CPU Intel 80386 a 25 MHz esegue 2,5 MIPS, quindi esegue circa 1 istruzione ogni 10 cicli. Tutte queste unità di misura devono essere usate in confronto ad un benchmark (modello standard) per poter fare paragoni tra diversi processori.

Problema e algoritmo

Problema ➔ capire come risolverlo, capire gli IN e OUT ➔ Algoritmo ➔ tradurre le mie operazioni concettuali per il calcolatore ➔ Programma ➔ Esecuzione del computer.

Algoritmo: insieme di operazioni di più passi condotti per risolvere il problema.

Architettura di von Neumann

(Visione schematica di un calcolatore)

Microprocessore

Il microprocessore è un dispositivo elettronico in grado di implementare le funzioni di un’intera CPU all’interno di un unico circuito integrato. Ora i computer non hanno un solo microprocessore a capo di tutto, ovviamente la CPU principale rimane unica, ma vi sono anche coprocessori specializzati per alleggerire il carico di informazioni della CPU. Attualmente tra i più diffusi è il chip Pentium Intel che possiede 2 CPU. Il Pentium è il primo Intel che possiede due ALU.

Transistor: collegamenti conduttori comandati tra chip e circuiti, composizioni di transistor costituiscono le porte logiche.

La CPU, come già detto, è l’unità che coordina gli altri componenti, ma è anch’essa un circuito ed esegue gli ordini di segnali esterni e dei programmi. Quando noi, ad esempio, apriamo un programma per fare i calcoli, prendiamo la calcolatrice dagli accessori, la pressione sul mouse genera un segnale che (passando attraverso una porta seriale del computer) raggiunge il controller degli interrupt (il segnale è di fatto un interrupt) che avverte la CPU, la quale si ferma e controlla la tabella degli interrupt in memoria all’indirizzo fornito proprio dall’interrupt del mouse (cioè capisce di dover aprire la calcolatrice), allora “porta” il programma calcolatrice in RAM e noi vediamo aprirsi la calcolatrice con programma e CPU “dietro” pronti ad eseguire le operazioni.

Il programma calcolatrice presenta codificazioni di particolari tipi di operazioni: operazioni aritmetiche. Queste operazioni saranno tradotte in istruzioni formate da zeri ed uni per la CPU che di volta in volta ordinerà all’ALU di effettuare un’operazione tra due fattori presi in memoria o in altri modi. Un processore può lavorare su un certo numero di cifre alla volta, se gli viene proposto un numero composto da più cifre di quanti esso può gestire in una volta dovrà quindi agire diversamente, per esempio potrà spezzare il numero e operare separatamente. Più è grande la capacità del processore da questo punto di vista e più esso può operare velocemente, per esempio il Pentium ha una capacità di 32 bit, quindi può elaborare direttamente numeri di 32 cifre binarie.

Memoria cache

Un’area di memoria nascosta presente nella CPU dove essa tiene una copia della parte di memoria principale utile al momento o i dati che possono servire nell’immediato, questo permette trasferimenti e modifiche di dati totalmente all’interno della CPU, evitando trasferimenti tra la memoria principale e il processore che richiedono molto più tempo. Se vengono eseguite operazioni o modifiche sui dati in cache queste possono essere poi salvate nella memoria principale in un momento più opportuno.

Memoria ROM

Un gruppo di chip di sola lettura (Reading Only Memory), contengono funzioni base per il funzionamento del computer che vanno lette ma mai sovrascritte o perse, ad esempio può contenere il BIOS.

BIOS

(Basic Input Output System) è un insieme di istruzioni, costanti o una serie di programmi pre-installati dal costruttore utile nell’accensione del computer e il più delle volte anche nella comunicazione tra la CPU e gli altri componenti (esempio con la RAM, monitor, tastiera ecc.).

Memoria RAM

Detta anche memoria dinamica (Random Access Memory), ossia non di massa, basata sulla conservazione di segnali elettrici nel sistema di circuiti e condensatori che la compone. È lo spazio di memoria dove la CPU mette il programma che noi apriamo e usiamo, o le informazioni che servono alla CPU stessa per svolgere delle operazioni (compito di solito riservato alla ALU). È organizzata in cellette accumulabili, cioè un’informazione può occupare più di una celletta, e tutte con un proprio indirizzo, quindi per leggere nella RAM la CPU manda un indirizzo e l’informazione può essere presa direttamente dalla cella corrispondente senza bisogno di far scorrere o slittare le altre celle verso un ingresso o un estremo. Da qui random access memory.

I bus

  • Bus indirizzi: partono dalla CPU e portano l’informazione (indirizzi) a tutte le componenti, tra cui solo l’interessato risponderà.
  • Bus dati: alternativamente la CPU invia e riceve dati da questa linea. Attraverso questo bus può ricevere dati leggere dati in memoria ad un certo indirizzo o mandare dati in memoria per la scrittura.
  • Bus controllo: ne esistono di diversi tipi, uno comune a tutti è il bus di reset. Ci sono read, write e wait.

Il ritardo del read: è dovuto al fatto che già la lettura di milioni di indirizzi porta via tempo, in più rispetto al write il computer deve essere sicuro che “l’interruttore”, il sensore o la periferica sia effettivamente pronta ad inviare info o leggerà informazioni che potrebbero essere sbagliate. In scrittura questo problema non c’è perché i dati da scrivere sono già contenuti nel comando.

MAR e MBR

MAR (memory address register): registro di ingresso di una memoria che conserva momentaneamente l’indirizzo da consultare prima che la trasmissione dell’indirizzo vada perduto.

MBR (memory buffer register): registro di uscita di una memoria dove vengono raccolti i dati letti in un certo indirizzo o da scrivere in un indirizzo.

Single chip

Unità che contiene CPU, RAM, ROM, BUS (tutti). È un’unità centrale in un solo chip. Il problema del single chip è che non sono espandibili essendo fatti da microscopici collegamenti in silicio e sigillati. Un vantaggio è che sono economici dal punto di vista energetico e dello spazio occupato. Avendo pochi e piccoli bus consumano meno energia poiché l’utilizzo di bus più grandi e numerosi comporta in una macchina reale un certo assorbimento di energia da parte dei dispositivi. Avendone solo di interni però un single chip non può essere affiancato da altre memorie per un’espansione.

DSP (Digital Signal Processor)

È un elaboratore di segnali digitali, è un processore che manipola e comprime i segnali digitali generalmente ottenuti da un ADC e li invia in memoria. ADC (Analogic Digital Converter): converte un segnale analogico variabile in un segnale digitale. Esso converte la tensione in livelli (precisione approssimata) ad ogni livello associa un segnale digitale, quindi avrà una gamma come limite e un limite alla precisione. Poiché il valore fornito dal trasduttore può cambiare velocemente nel tempo non permettendo al convertitore di operare correttamente si introduce il sample and hold, un dispositivo in grado di “trattenere a intervalli le tensioni in arrivo per l’ADC trasduttore sample ADC DSP memoria re and hold.

Trasduttore

Converte una grandezza fisica in un segnale analogico.

ALU (Arithmetic Logic Unit)

È l’unità che svolge le operazioni aritmetiche e logiche, deve sapere il tipo di operazione e avere gli operandi.

Accumulatore

Un dispositivo a cellette nelle quali passa corrente per mantenere temporaneamente gli zeri e gli uni utili alle operazioni. È a doppia direzione, cioè può ricevere dati dalla memoria per l’ALU o dati dall’ALU per la memoria. Ha un numero finito di celle, quindi l’ALU potrà operare direttamente su numeri con un massimo numero di cifre definito.

Attualmente un accumulatore ha in genere 32/64 caselle (anche se i processori attuali hanno più di una ALU). Ad ogni modo, se vengono ordinate operazioni tra numeri più lunghi, gli operandi vengono spezzati e l’operazione viene fatta a parti.

Flags

Dispositivo associato all’ALU, contiene diversi indicatori finalizzato soprattutto alla segnalazione di particolari eventi legati alle operazioni dell’ALU. Esempio riporto: se un ACC ha 4 celle e la somma di due numeri da 4 cifre dà un riporto, questo non viene visualizzato perché l’ACC è troppo piccolo e si rischia un risultato sbagliato. In questo caso nel flag si attiva il segnale di riporto, di cui si terrà conto sia che il risultato venga salvato in memoria perché definitivo, sia che fosse un risultato parziale. La CPU sommerà quindi il riporto alla somma delle cifre rimanenti del numero (altri: riporto, prestito, overflow).

Controllore

Decide chi deve ricevere un’informazione e, dopo il tempo necessario perché l’informazione sia ricevuta, decide chi deve operare. Lo “sa” perché ha ricevuto il codice operativo dopo che è stata raccolta dall’IR e decodificata dal decodificatore.

IR (Instruction Register)

Riceve il codice operativo, l’istruzione da eseguire dal programma. Ha una funzione di contenimento e conservazione temporanea del codice perché non vada perduto con il segnale (è comunque un registro).

Decodificatore

Legge i bit del codice operativo e capta quale istruzione vada eseguita, il tipo di istruzione, gli operandi, ecc.

Registri

La memoria RAM è molto grande ma è esterna e richiede un certo tempo per essere consultata, perciò ci sono dei registri all’interno della CPU dove, tra pochi dispositivi posizionati vicini le consultazioni risultano più rapide. Questi dispositivi sono i registri, piccole memorie che “vanno alla stessa velocità” della CPU. I registri possono essere generici, e allora sono semplici circuiti che mantengono temporaneamente diversi tipi di informazioni in zeri e uni derivate dalla memoria o dalla CPU (conservano l’informazione dalla dispersione del segnale), oppure possono essere specializzati, cioè registri con specifiche funzioni.

PC (Program Counter)

È il registro che contiene sempre in cima l’indirizzo che porta alla successiva istruzione del programma eseguente. Tiene segno del punto in cui la CPU si trova nel programma.

Stack pointer

È un registro di una sola cella associato allo stack pila, è un dispositivo di memoria che punta sempre all’indirizzo dove si trova la cima della pila, cioè contiene sempre l’indirizzo della cima della pila.

Stack pila

Una pila in RAM composta da una serie di cellette in colonna. Segue l’andamento di un programma ogni volta che esso passa ad un sottoprogramma o un sottoprogramma passa ad un ulteriore sottoprogramma. Esso salva nella sua prima cella l’indirizzo a cui l’esecuzione del main program o del sottoprogramma di partenza si è interrotto. Segue il principio del LIFO (Last In First Out) il che è molto utile per tornare al main program e concludere l’esecuzione. Lo stack pointer contiene sempre l’indirizzo utile al momento perché viene aggiornato. Alla stack pila viene riservata un certo numero di celle contigue che va ben ragionato perché non sia né troppo piccolo, né uno spreco.

Anteprima
Vedrai una selezione di 7 pagine su 27
Appunti a computer - Fondamenti di informatica, prof. Danese Pag. 1 Appunti a computer - Fondamenti di informatica, prof. Danese Pag. 2
Anteprima di 7 pagg. su 27.
Scarica il documento per vederlo tutto.
Appunti a computer - Fondamenti di informatica, prof. Danese Pag. 6
Anteprima di 7 pagg. su 27.
Scarica il documento per vederlo tutto.
Appunti a computer - Fondamenti di informatica, prof. Danese Pag. 11
Anteprima di 7 pagg. su 27.
Scarica il documento per vederlo tutto.
Appunti a computer - Fondamenti di informatica, prof. Danese Pag. 16
Anteprima di 7 pagg. su 27.
Scarica il documento per vederlo tutto.
Appunti a computer - Fondamenti di informatica, prof. Danese Pag. 21
Anteprima di 7 pagg. su 27.
Scarica il documento per vederlo tutto.
Appunti a computer - Fondamenti di informatica, prof. Danese Pag. 26
1 su 27
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Ingegneria industriale e dell'informazione ING-INF/05 Sistemi di elaborazione delle informazioni

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher M1000 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 Pavia o del prof Danese Giovanni.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community