Estratto del documento

Università di Modena e Reggio Emilia

Corso di laurea in ingegneria elettronica

Appunti di calcolatori elettronici

Autore: Filippo Viappiani

Docente: Roberto Vezzani

Anno Accademico: 2022/2023

Indice

  1. Introduzione
    • Contenuti del corso
    • Rappresentazione dei numeri
      • Rappresentazione decimale posizionale
      • Rappresentazione binaria posizionale
      • Rappresentazione esadecimale posizionale
  2. Reti logiche
    • Introduzione alle reti logiche
    • Logica combinatoria
      • Metodi di descrizione
      • Porte logiche
      • Circuiti notevoli non porte logiche
      • Carry e overflow
      • Arithmetic Logic Unit
    • Logica sequenziale
      • Dispositivi sequenziali di base
      • Automi a stati finiti
      • Registri
      • Memoria
      • Circuiti pre - ADE8
  3. ADE8
    • Data path
    • Basi del linguaggio Assembly ADE8
    • Modalità di indirizzamento
    • Input - Output
    • Stack
    • Control Unit
    • Parallelizzazione delle micro operazioni
  4. Programmazione IA32
    • Istruzioni IA32 di base
    • Modalità di indirizzamento
    • Stack
    • Comunicazione fra C e Assembly
  5. Architetture reali
    • Memorie
      • Caratteristiche delle memorie
      • Organizzazione e gerarchia delle memorie
      • Tipologie di memorie
      • Memorie cache
      • Dischi magnetici
      • RAID
    • Sistema di Input - Output
    • Prestazioni
      • Parallelismo a livello delle istruzioni
      • Architetture parallele e classificazione di Flynn

Introduzione

Contenuti del corso

Dal punto di vista generale, il corso verterà sull'analisi dei calcolatori elettronici e sui metodi che essi hanno per dialogare con il mondo esterno. Il corso di Calcolatori Elettronici verrà suddiviso in sei sezioni:

  • Introduzione, in cui verranno spiegati gli obiettivi del corso insieme a fornire una base per quanto riguarda la rappresentazione dell'informazione lato calcolatore.
  • Logica combinatoria, in cui si analizzeranno le reti logiche di base che permettono di manipolare l'informazione ricevuta dal calcolatore.
  • Reti logiche, dove si analizzeranno i circuiti di base e non che permettono al calcolatore di manipolare e memorizzare l'informazione.
  • Programmazione IA32, dove verranno fornite le basi per la programmazione dei processori Intel secondo la convenzione IA32.
  • Architetture reali, in cui i concetti espressi durante tutto il corso verranno approfonditi in maniera più dettagliata per meglio descrivere i calcolatori reali.

Rappresentazione dei numeri

Nel corso di Calcolatori Elettronici, l'attenzione verrà riposta verso i calcolatori digitali, ovvero quei calcolatori che riescono a gestire informazioni espresse sotto forma di Binary Digits, più in breve bits. L'informazione espressa in maniera analogica, ovvero quella che rappresenta grandezze che variano in maniera continua, è comprensibile solo agli uomini; un calcolatore non può gestire un ammontare di dati corrispondente a una funzione continua, perciò essa dev'essere digitalizzata.

Scopo del corso è la sola analisi del blocco calcolatore; si darà per scontato che, in qualche modo, il dato arrivi al calcolatore già digitalizzato. Affinché ci sia un dialogo corretto tra il calcolatore è necessaria la distinzione fra rappresentazione di un numero e suo valore. Infatti rappresentazioni diverse possono portare allo stesso dato e stessa rappresentazione può essere interpretata in maniera differente. Si pensi infatti a come diversi sistemi numerici forniscano rappresentazioni differenti del valore "cinque":

  • Decimale → "cinque" 5
  • Romano → "cinque" V
  • Binario → "cinque" 101

Ma anche la rappresentazione V può essere ambigua:

  • Alfabeto → V "lettera V"
  • Romano → V "cinque"

Quindi, si può affermare che esiste una corrispondenza biunivoca tra rappresentazione e valore solo quando si sa a priori la chiave di lettura. Esistono, però, chiavi di lettura più congeniali all'uomo e altre più congeniali ai calcolatori.

Rappresentazione decimale posizionale

La rappresentazione decimale posizionale è il primo sistema che permette di attribuire un valore a una rappresentazione a cui si possa pensare. Esso fornisce dieci simboli base con cui comporre i numeri, ovvero le cifre da zero a nove, e, una volta composto un numero, associa a ogni cifra un peso per assegnare a tale numero un valore, espresso, per comodità, anch'esso in decimale.

La rappresentazione 2347 è così interpretata nel sistema decimale posizionale:

Esempio 2. 2347 = 2 × 103 + 3 × 102 + 4 × 101 + 7 × 100

Tale ragionamento vale anche per numeri non interi:

Esempio 3. 23.47 = 2 × 101 + 3 × 100 + 4 × 10-1 + 7 × 10-2

Se si hanno a disposizione cifre, si possono comporre 10k rappresentazioni, poiché per ognuno dei slot si hanno dieci possibili scelte. Il fatto che il sistema sia posizionale permette di poter fare semplici operazioni come la somma in colonna, ovvero riducendo la somma di due numeri alla somma delle cifre con la stessa posizione.

Si prenda in esame la seguente operazione:

Esempio 4. 1234 + 234 = 1468

Nell'eseguire la somma delle cifre in posizione uno, si è ecceduto l'insieme delle cifre base e si è quindi generato un riporto che si è andato ad aggiungere alle cifre successive.

Rappresentazione binaria posizionale

La rappresentazione binaria posizionale è il sistema tramite il quale vengono codificati i numeri usati dai calcolatori elettronici. Esso, in analogia con il sistema decimale, mette a disposizione un insieme di due simboli base con cui comporre i numeri, ovvero i bits zero e uno, e, una volta composto un numero, associa a ogni cifra un peso per assegnare a tale numero un valore, espresso, per comodità, anch'esso in decimale.

La rappresentazione 1001 è così interpretata nel sistema binario posizionale:

Esempio 5. (1001) = 1 × 23 + 0 × 22 + 0 × 21 + 1 × 20 = (9)10

Dove si è usata la convenzione delle parentesi per indicare qual è la base del sistema numerico con il quale va interpretata la rappresentazione. Come per il sistema numerico presentato in precedenza, anche per il sistema binario posizionale permette di eseguire l'addizione in colonna.

Si prenda in esame la seguente operazione:

Esempio 6. 1011 + 101 = 10000

Nell'esempio presente non solo ci sono state operazioni che hanno generato un riporto ma dalla somma di un numero a quattro bits con una a tre se ne è generato uno a cinque; questa situazione prende il nome di overflow e richiederà ai calcolatori particolare attenzione.

Se si ha un numero espresso in decimale e lo si vuole convertire in binario, un algoritmo possibile è quello delle approssimazioni successive, che consente di scrivere il numero dato come somma di potenze del due e poi derivare il numero binario.

Si trovi la codifica binaria del seguente numero:

Esempio 7. (754)10 = 512 + 128 + 64 + 32 + 16 + 2 = (1011110010)2

Numeri interi senza segno

I calcolatori elettronici hanno a disposizione solo i bits zero e uno per comporre dei numeri: è chiaro che il sistema binario da solo non è sufficiente per rappresentare tutti i numeri possibili ma, verosimilmente, è adeguato solo per i numeri interi non negativi. Inoltre, tutti i calcolatori lavorano con un numero fissato di bits quindi nell'ampliare la rappresentazione binaria è bene tenere in considerazione questo fattore.

Si vedrà ora una carrellata di insiemi numerici e le loro possibili rappresentazioni. Come detto in precedenza, questo insieme numerico non necessita di altro se non del puro sistema binario. Quindi, una volta fissato k, si usa la rappresentazione binaria posizionale a k cifre.

Esempio 8. k = 8 → (00000000)2 (11111111)2 = (0)10 (255)10

Per fare un parallelismo verso i linguaggi di programmazione, scegliere con quale rappresentazione interpretare un numero equivale a scegliere il tipo della variabile a cui è destinato tale dato; per l'esempio corrente è l'unsigned char.

Numeri interi con segno

Questo insieme numerico porta con sé il problema della rappresentazione del segno. Una prima risposta è la rappresentazione modulo-segno, ovvero in una rappresentazione a k bits, destinare il bit più pesante a indicare il segno, zero per i positivi e uno per i negativi, e gli altri k-1 a indicarne il modulo.

Esempio 9. k = 8 → (10001111)2 = (−15)10

Questa convenzione presenta due problemi, il primo dei quali è la doppia rappresentazione dello zero.

Esempio 10.

  • (00000000)2 = (+0)10 = (0)10
  • (10000000)2 = (−0)10 = (0)10

Quindi, con la rappresentazione modulo-segno a k cifre, si hanno a disposizione 2k combinazioni a cui corrispondono 2k-1 valori differenti. Il secondo problema riguarda la difficoltà nella gestione della somma.

Si prenda in considerazione la seguente somma eseguita tra due numeri a quattro bits:

Esempio 11. 1000 + 1010 = 10010

Se il calcolatore può gestire solo operazioni con numeri a quattro bits, il quinto bit generato dall'operazione non è incluso nel risultato, arrivando all'erronea conclusione che −0 = 2. Il risultato sbagliato è dovuto al fatto che nella somma in colonna non si sommano i segni tra di loro.

Complemento a due

La convenzione più usata per rappresentare i numeri interi con segno è il complemento a due. In questa convenzione i numeri la cui cifra più a sinistra vale zero sono positivi e i numeri con un uno in quella posizione sono negativi ma cambia la relazione tra rappresentazione e valore. Infatti la cifra più pesante non darà un contributo positivo ma un contributo cambiato di segno.

Esempio 12.

  • (10001111)2 = (−113)10
  • (00001111)2 = (15)10

In particolare esiste una relazione tra le rappresentazioni di due numeri in complemento a due il cui valore è opposto: infatti, il complemento a due di un numero è un modo per cambiargli il segno. Il complemento a due prevede di scrivere il numero di partenza utilizzando tutti i bits forniti dal calcolatore, invertire gli zeri con uni e viceversa e poi sommare uno.

Si trovi il complemento a due di (23)10:

Esempio 13. (23)10 = (00010111)2 → (11101000)2 → (11101001)2 = (−23)10

La rappresentazione in complemento a due a k bits permette di sfruttare tutte la 2k rappresentazioni, in un range tra −2k-1 e 2k-1 − 1.

Rappresentazione esadecimale posizionale

La rappresentazione esadecimale posizionale nasce con il solo scopo di compattare la rappresentazione binaria la quale può portare a rappresentazioni lunghe. Mette a disposizione un insieme di sedici simboli, le cifre da zero a dieci e le lettere da A a F, ed equivale alle altre due rappresentazioni secondo la seguente tabella:

Esadecimale Decimale Binario
0 0 0000
1 1 0001
2 2 0010
9 9 1001
A 10 1010
B 11 1011
F 15 1111

Grazie a questa tabella si possono compattare le rappresentazioni binarie a gruppi di quattro bits usando le cifre esadecimali.

Scrivere in esadecimale il seguente numero in binario:

Esempio 14. 1000 0010 1111 1011 = 92FB

Reti logiche

Introduzione alle reti logiche

Una rete logica è un dispositivo a ingressi ed uscite in grado di gestire un'informazione di tipo digitale. Per le reti logiche vale il principio secondo cui la composizione di due porte logiche equivale a una porta logica. Inoltre, vale il principio di decomposizione in parallelo secondo cui una rete logica con n ingressi ed m uscite può essere analizzata come reti logiche con gli stessi ingressi ma solo un'uscita.

Le reti logiche si dividono in due categorie:

  • Combinatorie, in cui il valore delle uscite a un tempo dipende solo dal valore delle entrate al tempo t.
  • Sequenziali, dove le uscite al tempo t dipendono dalle entrate al tempo t e dalla sequenza di uscite negli istanti precedenti; sono dette anche reti con memoria.

Per esempio, una descrizione di una rete combinatoria potrebbe essere un dispositivo che realizza la somma di due numeri, poiché il valore della somma di due numeri al tempo dipende solo dagli addendi al tempo e non dallo storico delle somme precedenti. Dall'altra parte, una descrizione di una rete sequenziale potrebbe essere un dispositivo in grado di riconoscere una sequenza di numeri in ingresso, poiché ogni volta che arriva un numero in ingresso al tempo t il dispositivo deve ricordarsi a quale punto della sequenza è arrivato all'istante t per poter reagire correttamente al nuovo ingresso.

Logica combinatoria

Metodi di descrizione

Per poter descrivere il comportamento di una rete combinatoria già esistente o per la creazione di una nuova volta a risolvere uno specifico problema è necessario avere dei metodi di descrizione corretti ed esaustivi. Le reti combinatorie possono essere descritte nelle seguenti modalità:

  • A parole: La descrizione a parole, come nell'Esempio 14, presenta due problemi: quello di essere non sempre pienamente esaustiva, in quanto è probabile dimenticarsi di casi particolari quando si descrive un dispositivo a parole, ed è difficilmente comprensibile per un calcolatore.
  • Tabella di verità: Una tabella di verità di una rete logica combinatoria è una tabella dove per ogni combinazione possibile degli ingressi si trova lo stato delle uscite corrispondenti. Questo è un metodo sicuramente esaustivo ma visto che se la rete combinatoria ha k ingressi, le combinazioni sono 2k, è uno strumento che può diventare pesante da gestire.

Una tabella di verità di una rete a tre ingressi e due uscite è della forma:

Esempio 15.

x1 x2 x3 y1 y2
0 0 0 1 0
0 0 1 1 1
0 1 0 0 0
0 1 1 0 1
1 0 0 0 1
1 0 1 0 0
1 1 0 1 1
1 1 1 0 1

Se una o più combinazioni sono impossibili da verificarsi, risulta inutile sapere lo stato delle uscite in tali combinazioni: la tabella di verità ammette questa situazione e la risolve con i punti di non specificazione, ovvero delle righe in cui non comparirà zero o uno in uscita.

Anteprima
Vedrai una selezione di 21 pagine su 102
Appunti completi del corso di Calcolatori elettronici Pag. 1 Appunti completi del corso di Calcolatori elettronici Pag. 2
Anteprima di 21 pagg. su 102.
Scarica il documento per vederlo tutto.
Appunti completi del corso di Calcolatori elettronici Pag. 6
Anteprima di 21 pagg. su 102.
Scarica il documento per vederlo tutto.
Appunti completi del corso di Calcolatori elettronici Pag. 11
Anteprima di 21 pagg. su 102.
Scarica il documento per vederlo tutto.
Appunti completi del corso di Calcolatori elettronici Pag. 16
Anteprima di 21 pagg. su 102.
Scarica il documento per vederlo tutto.
Appunti completi del corso di Calcolatori elettronici Pag. 21
Anteprima di 21 pagg. su 102.
Scarica il documento per vederlo tutto.
Appunti completi del corso di Calcolatori elettronici Pag. 26
Anteprima di 21 pagg. su 102.
Scarica il documento per vederlo tutto.
Appunti completi del corso di Calcolatori elettronici Pag. 31
Anteprima di 21 pagg. su 102.
Scarica il documento per vederlo tutto.
Appunti completi del corso di Calcolatori elettronici Pag. 36
Anteprima di 21 pagg. su 102.
Scarica il documento per vederlo tutto.
Appunti completi del corso di Calcolatori elettronici Pag. 41
Anteprima di 21 pagg. su 102.
Scarica il documento per vederlo tutto.
Appunti completi del corso di Calcolatori elettronici Pag. 46
Anteprima di 21 pagg. su 102.
Scarica il documento per vederlo tutto.
Appunti completi del corso di Calcolatori elettronici Pag. 51
Anteprima di 21 pagg. su 102.
Scarica il documento per vederlo tutto.
Appunti completi del corso di Calcolatori elettronici Pag. 56
Anteprima di 21 pagg. su 102.
Scarica il documento per vederlo tutto.
Appunti completi del corso di Calcolatori elettronici Pag. 61
Anteprima di 21 pagg. su 102.
Scarica il documento per vederlo tutto.
Appunti completi del corso di Calcolatori elettronici Pag. 66
Anteprima di 21 pagg. su 102.
Scarica il documento per vederlo tutto.
Appunti completi del corso di Calcolatori elettronici Pag. 71
Anteprima di 21 pagg. su 102.
Scarica il documento per vederlo tutto.
Appunti completi del corso di Calcolatori elettronici Pag. 76
Anteprima di 21 pagg. su 102.
Scarica il documento per vederlo tutto.
Appunti completi del corso di Calcolatori elettronici Pag. 81
Anteprima di 21 pagg. su 102.
Scarica il documento per vederlo tutto.
Appunti completi del corso di Calcolatori elettronici Pag. 86
Anteprima di 21 pagg. su 102.
Scarica il documento per vederlo tutto.
Appunti completi del corso di Calcolatori elettronici Pag. 91
Anteprima di 21 pagg. su 102.
Scarica il documento per vederlo tutto.
Appunti completi del corso di Calcolatori elettronici Pag. 96
1 su 102
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/01 Elettronica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher Filippo_Viappiani di informazioni apprese con la frequenza delle lezioni di Calcolatori elettronici 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 Modena e Reggio Emilia o del prof Vezzani Roberto.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community