Estratto del documento

ENDP

Esempio 1 – Procedura alfa

PROC alfa

ADD R1, R0, R0

azzera_alfa:

SB BUF_IN(R1), R0

ADDI R1, R1, 1

SEQI R2, R1, 1024

BEQZ R2, azzera_alfa

RET

ENDP

Esempio 2 – Procedura beta

PROC beta

ADDI R1, R0, 1024

azzera_beta:

SUBI R1, R1, 1

SB BUF_IN(R1), R0

BNEZ R1, azzera_beta

RET

ENDP

Salvataggio e ripristino del contesto

Per garantire la correttezza nell’annidamento delle procedure, è necessario salvare i registri

usati nello stack, e ripristinarli prima del RET.

Esempio con salvataggio/ripristino

PROC alfa

PUSH R1

PUSH R2

ADD R1, R0, R0

azzera_alfa:

SB BUF_IN(R1), R0

ADDI R1, R1, 1

SEQI R2, R1, 1024

BEQZ R2, azzera_alfa

POP R2

POP R1

RET

ENDP

Conclusione

Con l’introduzione delle istruzioni e il DLX è in grado di gestire

PUSH, POP, CALL, CALLR RET,

chiamate annidate a procedura e di salvare il contesto di esecuzione nel modo più classico e

sicuro, rendendo possibile l’implementazione di strutture di programma più complesse come

funzioni ricorsive, gestione di interrupt, e salti condizionati.

Dispositivi di Memoria

Contesto generale

Nel contesto dell’architettura dei calcolatori, i dispositivi di memoria rivestono un ruolo cruciale

accanto a CPU e interfacce di I/O. La memoria è lo spazio in cui risiedono i dati e le istruzioni del

programma in esecuzione. Essa viene vista dalla CPU come un vettore di celle numerate attraverso

un sistema di indirizzamento.

Il bus di sistema

La CPU comunica con memoria e periferiche tramite un bus di sistema, suddiviso in tre

componenti:

• Bus dati: trasporta dati e istruzioni. È bidirezionale e largo tipicamente 8, 16, 32 o 64 bit.

• Bus indirizzi: unidirezionale, trasporta gli indirizzi di memoria. Ogni linea rappresenta un

bit dell’indirizzo.

• Bus comandi: segnali di controllo che definiscono l’operazione (es. lettura o scrittura). I

principali comandi sono:

• Memory Read Command

MRDC#:

• Memory Write Command

MWRC#:

• I/O Read Command

IORDC#:

• I/O Write Command

IOWRC#:

Spazio di indirizzamento

La memoria principale è modellata come un vettore dove n è il numero di bit

M[0 .. 2ⁿ - 1]

del bus indirizzi. Ogni cella rappresenta un byte (8 bit). Alcuni esempi di architetture:

• 8085 → 64 KB (16 bit indirizzo)

• 8086 → 1 MB (20 bit indirizzo)

• DLX → 4 GB (32 bit indirizzo)

Gli indirizzi vengono spesso rappresentati in esadecimale, dove ogni cifra equivale a 4

bit.

I/O mapping

I dispositivi di I/O possono essere:

• Memory-mapped: condividono lo spazio con la memoria

• Isolated I/O: hanno uno spazio di indirizzamento separato (tipico di architetture Intel)

Lo spazio I/O è solitamente più piccolo. Ad esempio, nei sistemi Intel a 16/32 bit è di 64 KB.

Mappatura dei dispositivi

Per essere accessibile dal software, un dispositivo deve essere mappato in uno spazio di

indirizzamento, cioè gli viene assegnata una finestra di indirizzi.

Esempio:

• mappato da a (256 byte)

D1 0100H 01FFH

• mappato a (1 byte)

D2 0700H

I dispositivi più grandi (es. RAM, EPROM) hanno finestre molto più ampie.

Caratteristiche ai morsetti dei dispositivi

Ogni dispositivo dispone di:

• A[k-1..0]: indirizzi locali (offset nel chip)

• D[m-1..0]: bus dati

• CS# (Chip Select): attiva il dispositivo

• OE# (Output Enable): abilita l’uscita dei dati (lettura)

• WR# (Write Enable): abilita la scrittura

Questi segnali permettono di accedere correttamente alle celle interne del dispositivo.

Memorie EPROM

Le EPROM (Erasable Programmable Read-Only Memory) sono memorie non volatili:

• Capacità: multipli di 2 (es. 32K, 64K, 128K, …)

• Solo lettura in uso normale

• Richiedono temporizzazioni ben definite:

• Chip Enable Time

Tce:

• Access Time

Tacc:

• Output Enable Time

Toe:

Esempio di EPROM: 27C256 da 32K x 8

Le ROM

Una ROM 2K × 8 è composta da:

• Decoder di indirizzo

• Matrice di celle memorizzate (fuse o memorie permanenti)

• Interfaccia con CE#, OE#, BD[7..0]

Serve per contenere firmware o codici di boot.

Temporizzazioni nelle memorie

Durante una lettura, la CPU genera:

• (indirizzo)

BA[31..0] = PC

• (comando)

MEMRDC#

• In risposta, il dato compare su entro un tempo sufficiente a rispettare il

BD[31..0] setup

prima del clock successivo.

time

A seconda della velocità della memoria, può essere necessario inserire stati di wait.

RAM statica (SRAM)

Caratteristiche principali:

• Organizzata in matrice di latch (flip-flop CD) → non serve refresh

• Capacità minore rispetto alle DRAM

• Utilizzata nelle cache

Interfaccia della SRAM:

• indirizzo

A[n-1..0]:

• dati

D[m-1..0]:

• segnali di controllo

CE#, OE#, WE#:

Lettura SRAM:

Se e il contenuto della riga viene portato su

CE#=0 OE#=0, D[m-1..0]

crittura SRAM:

Se e il contenuto su viene scritto nella riga selezionata

CE#=0 WE#=0, D[m-1..0]

Cella di RAM statica

Ogni cella contiene un latch che memorizza un singolo bit.

Una riga contiene m bit → ogni operazione legge/scrive l’intera riga contemporaneamente.

SRAM vs DRAM

Caratteristica SRAM DRAM

Transistor per bit 4–6 1

Refresh No Sì

Capacità Più piccola Più grande

Velocità Più veloce (es. 10ns) Più lenta (es. 75ns)

Uso tipico Cache Memoria principale

Costo per bit Alto Basso

Conclusione

La gestione della memoria nei calcolatori moderni prevede una mappatura precisa degli spazi di

indirizzamento, l’uso combinato di ROM, EPROM, SRAM, DRAM, e un’interfaccia corretta con

la CPU tramite i bus. Ogni tipo di memoria ha specifici tempi di accesso, segnali di controllo e

campi d’impiego ben distinti.

Mapping

Introduzione

Il mapping dei dispositivi è un concetto fondamentale per comprendere come i dispositivi fisici

(memorie, periferiche I/O, ecc.) vengano integrati all'interno dello spazio di indirizzamento del

processore. Questo processo prevede l'assegnazione di una porzione dello spazio di indirizzi a

ciascun dispositivo, rispettando alcune condizioni e logiche di decodifica.

Ipotesi di Lavoro

Per semplicità, si considera il caso in cui:

• ogni indirizzo rappresenta 1 byte;

• i dispositivi hanno porta dati da 8 bit;

• il bus dati è a 8 bit.

Con queste ipotesi, valgono tre condizioni importanti:

1. La dimensione della finestra di indirizzi per ogni dispositivo è una potenza di 2;

2. Gli indirizzi sono contigui;

3. L'indirizzo iniziale della finestra è un multiplo della sua dimensione (condizione di

allineamento).

Condizione di Allineamento

Un dispositivo di n = 2^k byte è allineato se il suo indirizzo iniziale A è un multiplo di n:

A mod 2k=0A \bmod 2^k = 0

Esempi:

• 2 byte: allineato se indirizzo pari;

• 8 byte: indirizzo termina con 000 (3 zeri binari);

• 64 KB: l'indirizzo esadecimale termina con quattro zeri (0000H).

Rappresentazione degli Indirizzi

Supponendo un bus di indirizzi da 20 bit (1MB), un dispositivo di 2^k byte sarà mappato da un

indirizzo:

A=α##(0)kA = \alpha \#\# (0)_k

Dove:

• α\alpha seleziona la finestra (20-k bit);

• ii è l'offset interno al dispositivo (k bit);

Quindi:

Ai=α##iA_i = \alpha \#\# i

Esempi di Mappatura

1. RAM da 128KB mappata a 40000H:

• Campo α\alpha: individua la finestra da 128KB;

• Campo ii: offset nel chip.

2. Dispositivo I/O da 16 byte a 1020H:

• Campo α\alpha: identifica la finestra di 16 byte;

• Campo ii: offset all'interno del dispositivo.

Decodifica Completa

In questo caso, tutti i bit dell'indirizzo sono usati per individuare in modo univoco il dispositivo e

l'offset:

• α\alpha: decodificato da decoder esterni;

• ii: decodificato da decoder interni al chip.

Regola Generale:

• I bit meno significativi (BA[k-1..0]) vanno al chip;

• I bit più significativi (BA[m-1..k]) formano un mintermine per il CS* (chip select).

Decodifica Semplificata (o Parziale)

Per ridurre la complessità della logica di decodifica, si possono trascurare alcuni bit dell'indirizzo

nel CS*.

Effetti:

• Il CS diventa più semplice da implementare;

• Il dispositivo viene replicato in più finestre dello spazio di indirizzamento.

Se si ignorano jj bit, il dispositivo viene mappato in 2j2^j finestre contigue o non, a seconda della

posizione dei bit ignorati.

Esempi di Decodifica

1. Se ignoriamo BA4 per un dispositivo da 16B a 1020H, viene mappato anche a 1030H;

2. Se ignoriamo BA11, si ottiene una replica non contigua (es. 1020H e 1820H).

Tabella di confronto per vari chip e relativi CS:

• RAM1: /BA17 /BA16

• RAM2: /BA17 BA16

• EPROM1: BA19 BA18 BA17 BA16

Esempi di Mapping e Interfacciamento

• Mappatura di chip da 64KB:

• RAM1: 00000H (indice 0)

• RAM2: 10000H (indice 1)

• EPROM1: F0000H (indice F)

• Espressioni dei CS con decodifica completa:

⋅ ⋅ ⋅

CS_RAM1=/BA19 /BA18 /BA17 /BA16CS\_RAM1 = /BA19 \cdot /BA18 \cdot /BA17 \cdot

/BA16

Errori con Decodifica Semplificata

Quando due dispositivi finiscono per condividere una finestra, la CPU attiva più dispositivi

contemporaneamente, causando conflitti:

• La EPROM2 si attiva quando la CPU accede alla RAM3;

• RAM1 si attiva anche quando si accede a RAM2.

Esempi con Dispositivi di I/O

Spesso mappati in finestre piccole (es. 16B), si utilizzano espressioni semplificate:

Dispositivo Indirizzo CS (semplificata)

IO1 1000H /BA15 /BA13 /BA4

IO2 1010H BA4

IO3 3000H /BA14 BA13

IO4 8000H /BA12

IO5 F000H BA14

Ogni configurazione è pensata per identificare univocamente ciascun dispositivo.

Conclusioni

Il mapping dei dispositivi e la logica di decodifica sono elementi essenziali per:

• garantire il corretto indirizzamento delle risorse hardware;

• ottimizzare lo spazio di indirizzamento;

• bilanciare costo e complessità tra decodifica completa e semplificata.

La decodifica completa garantisce un mapping preciso ma richiede più risorse hardware, mentre la

decodifica semplificata riduce la complessità a discapito della precisione e dell'efficienza dell'uso

dello spazio di indirizzamento.

Gestione dell

Anteprima
Vedrai una selezione di 17 pagine su 76
Appunti riassuntivi del corso di Calcolatori elettronici Pag. 1 Appunti riassuntivi del corso di Calcolatori elettronici Pag. 2
Anteprima di 17 pagg. su 76.
Scarica il documento per vederlo tutto.
Appunti riassuntivi del corso di Calcolatori elettronici Pag. 6
Anteprima di 17 pagg. su 76.
Scarica il documento per vederlo tutto.
Appunti riassuntivi del corso di Calcolatori elettronici Pag. 11
Anteprima di 17 pagg. su 76.
Scarica il documento per vederlo tutto.
Appunti riassuntivi del corso di Calcolatori elettronici Pag. 16
Anteprima di 17 pagg. su 76.
Scarica il documento per vederlo tutto.
Appunti riassuntivi del corso di Calcolatori elettronici Pag. 21
Anteprima di 17 pagg. su 76.
Scarica il documento per vederlo tutto.
Appunti riassuntivi del corso di Calcolatori elettronici Pag. 26
Anteprima di 17 pagg. su 76.
Scarica il documento per vederlo tutto.
Appunti riassuntivi del corso di Calcolatori elettronici Pag. 31
Anteprima di 17 pagg. su 76.
Scarica il documento per vederlo tutto.
Appunti riassuntivi del corso di Calcolatori elettronici Pag. 36
Anteprima di 17 pagg. su 76.
Scarica il documento per vederlo tutto.
Appunti riassuntivi del corso di Calcolatori elettronici Pag. 41
Anteprima di 17 pagg. su 76.
Scarica il documento per vederlo tutto.
Appunti riassuntivi del corso di Calcolatori elettronici Pag. 46
Anteprima di 17 pagg. su 76.
Scarica il documento per vederlo tutto.
Appunti riassuntivi del corso di Calcolatori elettronici Pag. 51
Anteprima di 17 pagg. su 76.
Scarica il documento per vederlo tutto.
Appunti riassuntivi del corso di Calcolatori elettronici Pag. 56
Anteprima di 17 pagg. su 76.
Scarica il documento per vederlo tutto.
Appunti riassuntivi del corso di Calcolatori elettronici Pag. 61
Anteprima di 17 pagg. su 76.
Scarica il documento per vederlo tutto.
Appunti riassuntivi del corso di Calcolatori elettronici Pag. 66
Anteprima di 17 pagg. su 76.
Scarica il documento per vederlo tutto.
Appunti riassuntivi del corso di Calcolatori elettronici Pag. 71
Anteprima di 17 pagg. su 76.
Scarica il documento per vederlo tutto.
Appunti riassuntivi del corso di Calcolatori elettronici Pag. 76
1 su 76
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 El_Patak 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 Bologna o del prof Roffia Luca.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community