15
EL2-1_4AIT - IL MICROPROCESSORE SS2018 Autore: __________________________________________ Data: _________Classe: ____ ATTENZIONE Il significato dei simboli usati in questa e nelle prossime esercitazioni è spiegato dettagliatamente nella guida http://www.classiperlo.altervista.org/Materiale/Generale/Simboli.d oc (scaricala e consultala in caso di dubbi). Il simbolo della manina in colore blu indica una domanda alla quale bisogna OBBLIGATORIAMENTE rispondere scrivendo in colore blu. Il simbolo della manina in colore blu con la scritta Cou New indica un codice che va incollato usando Courier New in colore blu. Il simbolo della manina in nero indica una o più immagini o schermate da incollare (protette col tuo watermark, le tue iniziali di Nome e Cognome) Il simbolo della manina con colori attenuati indica un'operazione che bisogna svolgere, senza rispondere a nessuna domanda (non vuol dire che non devi fare nulla – significa solo che non devi scrivere niente!). Il simbolo della manina col ciak video indica un video da registrare con Gif Recorder (http://gifrecorder.com/ )e da salvare in formato gif nella cartella dell'esercitazione. recupero. Questo simbolo indica un video di esempio o di spiegazioni da guardare su YouTube

SIMULAZIONE MEMORIE ROMclassiperlo.altervista.org/Materiale/4it/EL2-1_4AIT - Il... · Web viewuna ALU (Unità Aritmetico-Logica), il cui compito è svolgere operazioni (potremmo paragonarla

Embed Size (px)

Citation preview

EL2-1_4AIT - IL MICROPROCESSORE ẞ2018Autore: __________________________________________ Data: _________Classe: ____

ATTENZIONE

Il significato dei simboli usati in questa e nelle prossime esercitazioni è spiegato dettagliatamente nella guida http://www.classiperlo.altervista.org/Materiale/Generale/Simboli.doc (scaricala e consultala in caso di dubbi).

Il simbolo della manina in colore blu indica una domanda alla quale bisogna OBBLIGATORIAMENTE rispondere scrivendo in colore blu.

Il simbolo della manina in colore blu con la scritta Cou New indica un codice che va incollato usando Courier New in colore blu.

Il simbolo della manina in nero indica una o più immagini o schermate da incollare (protette col tuo watermark, le tue iniziali di Nome e Cognome)

Il simbolo della manina con colori attenuati indica un'operazione che bisogna svolgere, senza rispondere a nessuna domanda (non vuol dire che non devi fare nulla – significa solo che non devi scrivere niente!).

Il simbolo della manina col ciak video indica un video da registrare con Gif Recorder (http://gifrecorder.com/)e da salvare in formato gif nella cartella dell'esercitazione.recupero.

Questo simbolo indica un video di esempio o di spiegazioni da guardare su YouTube

A) OPERAZIONI PRELIMINARI

A1) Compila l'intestazione del documento scrivendo Nome, Cognome e Classe

A2) Nel tuo disco Z (di rete), nella sottocartella Telecomunicazioni/Esercitazioni, crea una nuova cartella di nome ES2

A3) Crea una sottocartella di ES2 con nome uguale a quello di questa esercitazione (EL2-1_4AIT – Il microprocessore ß2018)

A4) All'interno della sottocartella EL2-1_4AIT – Il microprocessore ß2018 salva questo file Word

A5) Avvia Logisim e salva subito il nuovo file nella cartella di questa esercitazione con nome uguale a quello dell'esercitazione ed estensione .circ (EL2-1_4AIT – Il microprocessore ß2018).

A6) Nel file Logisim appena creato, rinomina il main chiamandolo circuito1.

AIUTACI A MIGLIORARE LOGISIM!

Se hai da segnalare problemi, malfunzionamenti, bug, utilizza la voce Segnala Bug che trovi nel menu Aiuto di Logisim.

Se vuoi chiedere chiarimenti o proporre modifiche o miglioramenti al programma, iscriviti al forum e scrivi un post (in inglese - trovi il forum sempre nel menu Aiuto di Logisim). Ogni post pubblicato e approvato dall'insegnante, dà diritto a un guadagno di +3 PC.

B) SCARICARE IL MICROPROCESSORE ẞ2018

In questa esercitazione impareremo a usare un semplice microprocessore simulato con Logisim. Si chiama ß2018 (Beta 2018) e non è un microprocessore realmente esistente. Si tratta di un componente inventato a scopi didattici, per fare pratica sul funzionamento di un mP semplice prima di affrontare esempi più complessi (e realistici).

B1) Puoi scaricare ß2018 da http://logisim.altervista.org/microprocessor/

COME SCARICARE IL FILE

È possibile che alcuni browser (es. Chrome) cliccando sul link DOWNLOAD MP ti mostrino il codice del file, invece di scaricarlo direttamente (vedi figura qui sotto):

In questo caso salva il file usando il tasto destro del mouse (Salva con nome) e cancella la doppia estensione .txt dal nome del file:

B2) Il microprocessore è contenuto in un file Logisim con estensione .circ. Ti consiglio di salvarlo in una cartella separata (per esempio in una sottocartella di Telecomunicazioni di nome ß2018), dedicata solo a questo microprocessore, in modo che sia disponibile per tutte le esercitazioni di questo gruppo. In ogni caso NON devi salvare il microprocessore nella cartella di questa esercitazione.

B3) Avvia Logisim e apri il file EL2-1_4AIT - Il microprocessore ß2018 che hai creato all'inizio dell'esercitazione (ATTENZIONE: non aprire il file ß2018.circ che hai appena scaricato. Avvia Logisim con un file vuoto)

B4) Usando il comando mostrato in figura, carica il file ß2018.circ come Libreria Logisim:

B5) In questo modo il circuito del microprocessore verrà aggiunto all'elenco dei componenti disponibili in Logisim

QUALI SONO I VANTAGGI?

Se carichi un circuito come Libreria Logisim, potrai usare il sottocircuito ma non potrai modificarlo (se provi a cambiare qualcosa nel circuito caricato, vedrai che ti viene visualizzato un messaggio di errore). Questo è un vantaggio, poiché ti impedisce di modificare per errore il circuito.

Inoltre se scarichi una nuova versione di ß2018 nella cartella dove lo hai installato (sovrascrivendo la versione precedente), il tuo circuito Logisim all'avvio caricherà automaticamente la nuova versione.

C) ẞ2018: PIEDINATURA

C1) Trascina il componente ß2018 sul circuito1

C2) Collega tutti i segnali di ingresso e di uscita del componente con gli opportuni pin di input e di output (vedi figura qui sopra per un esempio di un collegamento). Usa per le etichette gli stessi nomi usati nel microprocessore. Incolla una schermata del circuito completo:

C3) Completa e riempi la tabella qui sotto con tutti i segnali di input e di output del mP:

Nome del segnale Numero di bit Tipologia (input/output)DATAIN 8 input

Come puoi vedere, il ß2018 è un mP interamente a 8 bit, nel senso che il suo bus dati esterno (sarò più chiaro in seguito), il suo bus indirizzi esterno e tutti i suoi registri interni (anche su questo torneremo fra poco) sono tutti a 8 bit.

C4) Si tratta, come detto, di un mP semplificato. Per fare un confronto con un mP reale, ecco la pagina di riferimento con i dati dello Z80 http://elemania.altervista.org/micro/Z80/z802.html (un mP reale, che studieremo più avanti. Compila una tabella simile alla precedente con le informazioni riguardanti i pin di input e di output dello Z80:

Nome del segnale Numero di bit Tipologia (input/output)D 8 Input/output

WAIT 1 Input

D) INDIRIZZI, DATI E MEMORIE

Come vedremo fra breve, il numero di bit di indirizzo e di dato di un mP è importante perché definisce la massima memoria esterna che il mP è in grado di utilizzare.

In particolare:

1. i bit di indirizzo definiscono il massimo numero di parole indirizzabili2. i bit di dato definiscono le dimensioni in bit di ogni parola

D1) Quante parole di memoria è in grado di indirizzare (al massimo) il ß2018? Scrivi qui sotto calcolo e risultato:

D2) Qual è la dimensione di ogni parola della memoria del ß2018?

D3) Qual è l'organizzazione della (massima) memoria del ß2018?

D4) Quante parole di memoria è in grado di indirizzare (al massimo) lo Z80? Scrivi qui sotto calcolo e risultato:

D5) Qual è la dimensione di ogni parola della memoria dello Z80?

D6) Qual è l'organizzazione della (massima) memoria dello Z80?

Torneremo ancora sull'importanza della memoria per il funzionamento dei mP.

E) LA STRUTTURA INTERNA DI ß2018

E1) Diamo ora un'occhiata a come è fatto internamente ß2018. A tale scopo apri il circuito del mP facendoci doppio click sopra in Logisim.

All'interno del mP possiamo individuare i seguenti componenti principali:

1. una Control Unit (CU), il cui scopo è decodificare le istruzioni ed eseguirle (si tratta del vero e proprio "cervello" di controllo del mP)

2. un Instruction Register (IR): registro che contiene il codice operativo dell'istruzione da eseguire

3. un Program Counter (PC): contatore che contiene l'indirizzo della prossima istruzione in memoria da eseguire

4. una ALU (Unità Aritmetico-Logica), il cui compito è svolgere operazioni (potremmo paragonarla alla "calcolatrice" interna del mP)

5. un registro principale A (detto anche Accumulatore): come vedremo, questo è il registro più importante ed è usato in quasi tutte le istruzioni del mP

6. un registro secondario B7. un registro secondario C8. un Flag Register: registro che memorizza il segno e altre informazioni sul risultato

dell'ultima operazione eseguita dalla ALU9. un bus interno che connette fra loro i diversi componenti

E2) Incolla qui sotto un'immagine dell'interno del mP con i numeri da 1 a 9 messi a indicare i vari componenti, in base alla lista sopra (vedi il mio esempio qui sotto, dove ho messo 1 per indicare la posizione della CU):

LA TUA SCHERMATA È DIVERSA DALLA MIA?

È probabile che la versione del microprocessore che hai scaricato tu sia diversa da quella della mia schermata e che dunque il tuo schema circuitale non sia esattamente lo stesso. ß2018 è un microprocessore ancora in fase di sviluppo, che viene aggiornato e modificato continuamente.

F) I REGISTRI GENERAL PURPOSE E L'ACCUMULATOR

Il cuore delle operazioni del mP è rappresentato dalla ALU (Unità Aritmetico Logica) e dai registri A, B e C. Questi tre registri sono detti general purpose (cioè di scopo generale) e costituiscono una sorta di piccolissima memoria interna al ß2018.

Tutte le operazioni dovranno essere fatte per mezzo di questi registri.

In particolare (come vedremo meglio in seguito) l'accumulatore A ha un ruolo speciale, in quanto:

tutte le istruzioni del mP usano A come uno dei due operandi e hanno A come destinazione del risultato.

La precedente può essere considerata come la GRANDE REGOLA del funzionamento di molti mP, non solo del nostro ß2018, ma anche del più famoso Z80.

Per esempio ci sarà un'istruzione per fareA = A + C

cioè per sommare A con C e rimettere il risultato in A.

Non ci sarà invece un'istruzione del tipo:B = A + C

F1) Perché non può esserci l'istruzione precedente?

Ugualmente impossibile da eseguire è l'istruzione:A = B +C

F2) Perché l'istruzione precedente non esiste nel ß2018 (e neppure nello Z80)?

PERCHE' NON ESISTONO QUESTE ISTRUZIONI?

Quando si è abituati a scrivere in un linguaggio di programmazione ad alto livello (es. il C o il Java), si è naturalmente portati a pensare di avere a disposizione tutte le variabili che si desiderano.

Quando invece si programmano i microprocessori, ci si scontra con i limiti tecnologici di questi dispositivi. Per esempio in C o in Java posso certamente scrivere qualcosa come:

D = B – 2*C + F/2

dove D, B, C e F sono generiche variabili.

Nel caso dei mP non è possibile fare la stessa cosa perché A, B e C (e D, E, H, L nel caso dello Z80) non sono variabili, ma registri fisicamente presenti nel mP. Se un registro non c'è nel mP, non è possibile ovviamente usarlo in un'istruzione (non è una variabile).

Inoltre l'accumulatore A, nel ß2018 come nello Z80, è strettamente collegato con la ALU. In particolare è collegato con uno dei due ingressi di dato della ALU (vedi figura):

Per questa ragione uno dei due operandi in tutte le operazioni è sempre A. Non è un motivo "teorico" o "astratto". È una ragione pratica e concreta, legata a come è fatto internamente il mP.

G) COMPLEMENTO A 2

Abbiamo già detto che ß2018 è un mP a 8 bit. In particolare tutti i suoi registri interni general purpose (A,B e C) sono a 8 bit. Questo pone dei limiti sull'aritmetica del mP.

G1) Qual è il numero più grande che ß2018 può usare (usando tutti i 8 bit)? Scrivilo in binario e in decimale:

In realtà il limite precedente vale solo se si usano numeri senza segno (unsigned). Se si vogliono usare numeri negativi e positivi, occorre riservare un bit per il segno e dunque il massimo valore rappresentabile si riduce ulteriormente.

G2) ß2018 (come lo Z80 e come tutti gli altri mP) rappresenta i numeri negativi con una notazione detta in complemento a 2. Leggi qui per capire come funziona http://elemania.altervista.org/digitale/boole/boole2b.html e poi rispondi alle domande seguenti.

G3) Facciamo un esempio con solo 5 bit per capire come funziona il metodo. Prendi il numero corrispondente al tuo mese di nascita (1-12) e scrivilo qui sotto in binario usando 5 bit (es. 00101)

G4) Trasforma il valore precedente nel suo opposto (es. 5 diventa -5) usando la notazione in complemento a 2. Scrivi qui sotto calcoli e risultati:Numero iniziale (positivo)Complemento a 1 (scambio 1 con 0)Complemento a 2 (sommo 1 al precedente)

G5) Tenendo conto che il primo bit serve per il segno, qual è il numero positivo più grande che si può scrivere con 5 bit (in binario)?

G6) Per trovare il numero negativo più piccolo che si può rappresentare con 5 bit, compila la tabella qui sotto, partendo dal numero positivo più grande (quello che hai scritto al punto G5 qui sopra) e sottraendo ogni volta 1 dal precedente. Continua a sottrarre (aggiungi righe alla tabella) finché non ripeti un valore già scritto:

N (max numero positivo a 5 bit) 01111 15N - 1 01110 14N- 2 01101 13

G7) Qual è il numero negativo più piccolo che si può usare con ß2018 (scritto in binario)? A quanto corrisponde in decimale?

G8) Per quale motivo il numero più piccolo e quello più grande non sono lo stesso numero (a parte il segno)? Ci sono dunque più numeri negativi che positivi? Spiegami:

H) OPERAZIONI FINALI

H1) Controlla di aver risposto a tutte le domande e incollato tutte le schermate. Tutte le

caselline dovrebbero avere un segno X, per indicare che hai risposto

H2) Comprimi le immagini contenute in questo file Word (seleziona un'immagine, scheda Formato e poi Comprimi immagini e infine Applica a tutte le immagini del documento) in modo da ridurne le dimensioni.

H3) Controlla che la cartella di questa esercitazione contenga i seguenti file con i nomi qui indicati:

Nome del file Tipo DescrizioneEL2-1_4AIT - Il microprocessore ß2018

Word Il file di questa esercitazione

EL2-1_4AIT - Il microprocessore ß2018

Logisim Contiene i circuiti:- circuito1

H4) Chiudi tutti i file, zippa la cartella di questa esercitazione e inviala all'insegnante su Classiperlo.