Transcript
Page 1: Sistemi Elettronici Programmabili: Riepilogo 1 Sistemi digitali : Riepilogo Sistemi Elettronici Programmabili

Sistemi Elettronici Programmabili: Riepilogo

1

Sistemi digitali : Riepilogo

Sistemi Elettronici

Programmabili

Page 2: Sistemi Elettronici Programmabili: Riepilogo 1 Sistemi digitali : Riepilogo Sistemi Elettronici Programmabili

Sistemi Elettronici Programmabili: Riepilogo

2

Logic Devices

• ASIC (Application Specific Integrated Circuit)• Standard Cell• Gate Array• PLD (Programmable Logic Devices)• SPLD (Simple PLD)

– PLA (Programmable Logic Array) – PAL (Programmable Array Logic)– GAL (Generic Array Logic)

• CPLD (Complex PLD)• FPGA

Page 3: Sistemi Elettronici Programmabili: Riepilogo 1 Sistemi digitali : Riepilogo Sistemi Elettronici Programmabili

Sistemi Elettronici Programmabili: Riepilogo

3

FPGA: Architettura

LE LE LE LE

LE LE LE LE

LE LE LE LE

LE LE LE LE

VRC

VRC

VRC

HRC

HRC

HRC

IO

IO

IO IO

IM IM IM

IM IM IM

IM IM IM

Page 4: Sistemi Elettronici Programmabili: Riepilogo 1 Sistemi digitali : Riepilogo Sistemi Elettronici Programmabili

Sistemi Elettronici Programmabili: Riepilogo

4

FPGA: Logic Element (Block)

CLR

IN[3:0]

Q

QSET

CLR

D

CLK

S

LUT

OUT

Page 5: Sistemi Elettronici Programmabili: Riepilogo 1 Sistemi digitali : Riepilogo Sistemi Elettronici Programmabili

Sistemi Elettronici Programmabili: Riepilogo

5

FPGA: LUT – Look Up Table (2 Ingressi)IN[0] IN[1]

OUT

0 0

0 1

1 0

1 1

0

0

0

1

ADD[0] ADD[1] OUT

0

1

1

1

0

1

1

0

OUT

AND OR XOR

Memory Words1 Bit

Q

QSET

CLR

DCDI CDO

Q

QSET

CLR

D

Q

QSET

CLR

D

Q

QSET

CLR

D

IN[1:0]

CLK

OUT

Page 6: Sistemi Elettronici Programmabili: Riepilogo 1 Sistemi digitali : Riepilogo Sistemi Elettronici Programmabili

Sistemi Elettronici Programmabili: Riepilogo

6

Unità (Sottosistemi) del Calcolatore

• Processore, per eseguire il programma• Unità di ingresso-uscita (o di input-output, I/O), per introdurre dati ed

emettere risultati• Unità di memoria, per contenere e conservare informazioni (dati e

programmi• Sistema di collegamento: bus

Page 7: Sistemi Elettronici Programmabili: Riepilogo 1 Sistemi digitali : Riepilogo Sistemi Elettronici Programmabili

Sistemi Elettronici Programmabili: Riepilogo

7

Istruzione e Dato

• L’elemento di informazione minimo trattato dal calcolatore è la parola:– parola: sequenza di bit 0 o 1 (p. es. 8, 16, 32 o 64 bit)

• Sia il dato (intero, carattere, ecc) sia l’istruzione macchina sono codificati in parole, secondo varie rappresentazioni.

• Dati e istruzioni complessi sono codificati mediante sequenze di più parole.

• Il processore elabora parole e la memoria contiene parole (e anche il sistema di I/O scambia parole).

Page 8: Sistemi Elettronici Programmabili: Riepilogo 1 Sistemi digitali : Riepilogo Sistemi Elettronici Programmabili

Sistemi Elettronici Programmabili: Riepilogo

8

Processore e Memoria

• Processore e memoria sono i due sistemi fondamentali del calcolatore (e sempre necessariamente presenti).

• Il processore contiene svariati registri interni, per comunicare con la memoria:

Contatore di programma (program counter, PC)

Registro di istruzione (instruction register, IR)•Registri di uso generale o banco di registri (register file, R0 – Rn1)•Registro di indirizzo di memoria (memory address register, MAR) e registro dei dati di memoria (memory data register, MDR)

Page 9: Sistemi Elettronici Programmabili: Riepilogo 1 Sistemi digitali : Riepilogo Sistemi Elettronici Programmabili

Sistemi Elettronici Programmabili: Riepilogo

9

Architetture Interne dei Microprocessori

Page 10: Sistemi Elettronici Programmabili: Riepilogo 1 Sistemi digitali : Riepilogo Sistemi Elettronici Programmabili

Sistemi Elettronici Programmabili: Riepilogo

10

Il microcalcolatore

CPU

DecoderFlash

RAM

ADD (n) ADD (n-1)

nCS0

nCS1

nOE

nWE

Data

nOE

nWE

nOE

nWE

Page 11: Sistemi Elettronici Programmabili: Riepilogo 1 Sistemi digitali : Riepilogo Sistemi Elettronici Programmabili

Sistemi Elettronici Programmabili: Riepilogo

11

Microprocessore

Data Register

DATA[DW:0]

Instruction Register

Control Unit

Instruction Decoder

Sequencer

Accumulator

ALU

Status

General Register 0

General Register 1

General Register 2

General Register n

Address Register H

Index Register 0

Index Register 1

Index Register n

Stack Pointer

Program Caunter

Address Logic

Address Register L

ADD[AW:0]

CTRL

Inte

rnal

C

ontr

ols

Interrupt

DMA Controls

Mode Register

Page 12: Sistemi Elettronici Programmabili: Riepilogo 1 Sistemi digitali : Riepilogo Sistemi Elettronici Programmabili

Sistemi Elettronici Programmabili: Riepilogo

12

Linguaggio macchina

Il linguaggio macchina in forma simbolica è chiamato anche linguaggio assemblatore o assembly language.

L’istruzione macchina è il compito elementare eseguibile da parte del processore.

Il processore preleva (fetch) da memoria centrale l’istruzione macchina da eseguire correntemente.

Il processore decodifica (decode) l’istruzione, cioè la analizza e ne determina il significato.

Il processore esegue (execute) l’istruzione, elaborando i dati opportuni e producendo il risultato.

Page 13: Sistemi Elettronici Programmabili: Riepilogo 1 Sistemi digitali : Riepilogo Sistemi Elettronici Programmabili

Sistemi Elettronici Programmabili: Riepilogo

13

Dati e istruzioni in memoria

La memoria contiene istruzioni macchina (programma) e dati (da elaborare).L’istruzione macchina, in forma numerica cioè eseguibile da parte del

processore, è contenuta in una o più parole di memoria consecutive, come il dato.

L’istruzione macchina in forma simbolica, facilmente leggibile, come per esempio

NOME arg1, arg2, … commentoindica con “NOME” (o codice mnemonico) l’operazione: MOVE (carica, memorizza o copia dato), ADD (addiziona dato), SUB (sottrai), ecc. e con“arg1, arg2, ecc. i dati su cui l’istruzione deve operare (sorgente) o dove scrivere il risultato (destinazione), o anche, nelle istruzioni di salto, dove reperire la prossima istruzione da eseguire (salto).

Istruzioni a due, tre o un argomento.Normalmente gli argomenti sorgente precedono quelli destinazione.

.

Page 14: Sistemi Elettronici Programmabili: Riepilogo 1 Sistemi digitali : Riepilogo Sistemi Elettronici Programmabili

Sistemi Elettronici Programmabili: Riepilogo

14

Formalismo RTL

• L’operatore freccia verso sinistra “” funziona in sostanza come operatore di assegnamento:destinazione valore origine valore

• Tipicamente l’origine del valore è una costante, un numero contenuto in un registro, una parola di memoria o un’espressione aritmetica tra oggetti di tale genere.

• L’indirizzo è un numero (positivo o al minimo nullo) e anche il dato lo è, o lo si può facilmente ridurre a numero (carattere – codice ASCII).

• Indirizzo in parentesi quadra

Page 15: Sistemi Elettronici Programmabili: Riepilogo 1 Sistemi digitali : Riepilogo Sistemi Elettronici Programmabili

Sistemi Elettronici Programmabili: Riepilogo

15

Classi di Istruzione

• Istruzioni di trasferimento (caricamento, memorizzazione e copia)• Istruzioni aritmetiche e logiche• Istruzioni di ingresso e uscita (lettura o scrittura di dato da o su

periferica)• Istruzioni di confronto (confronto tra due dati (uguale, diverso,

minore, maggiore, minore o uguale, maggiore o uguale) o di un dato con zero, esame di bit o di gruppo di bit

• Istruzioni di manipolazione dati complessi (gestione della pila)• Istruzioni di controllo del flusso di esecuzione del programma (salto

condizionato e incondizionato, salto a conteggio (per ciclo) salto a sottoprogramma (routine))

• Istruzioni di controllo del processore (p. e. gestione del meccanismo di interruzione)

Page 16: Sistemi Elettronici Programmabili: Riepilogo 1 Sistemi digitali : Riepilogo Sistemi Elettronici Programmabili

Sistemi Elettronici Programmabili: Riepilogo

16

Modi di indirizzamento

• Il modo di indirizzamento è un insieme di regole secondo cui denotare nell’istruzione macchina come:– reperire il dato da elaborare o la posizione dove andare a

scrivere il risultato dell’elaborazione – modo di dato– individuare la prossima istruzione da eseguire, quando non si

deve andare di seguito (caso dell’istruzione di salto) – modo di istruzione

Page 17: Sistemi Elettronici Programmabili: Riepilogo 1 Sistemi digitali : Riepilogo Sistemi Elettronici Programmabili

Sistemi Elettronici Programmabili: Riepilogo

17

Elenco dei Modi

Page 18: Sistemi Elettronici Programmabili: Riepilogo 1 Sistemi digitali : Riepilogo Sistemi Elettronici Programmabili

Sistemi Elettronici Programmabili: Riepilogo

18

PollingCollegamento delle

periferiche con Polling

• No Hardware aggiuntivo• No controllo aggiuntivo• Controllo I/O sincrono con

programma• Ottimizzazione del codice• Grande flessibilità

• Spreco di tempo di CPU per

interrogazione periferiche

Page 19: Sistemi Elettronici Programmabili: Riepilogo 1 Sistemi digitali : Riepilogo Sistemi Elettronici Programmabili

Sistemi Elettronici Programmabili: Riepilogo

19

Collegamento con Interrupt

• La CPU controlla lo stato di IINTR• Il registro IE abilita gli Interrupt (può

essere controllato via software)

• Tutti gli interrupt possono essere mascherati tramite il registro IE (interrupt enable) tranne i NMI (interrupt non mascherabili)

Page 20: Sistemi Elettronici Programmabili: Riepilogo 1 Sistemi digitali : Riepilogo Sistemi Elettronici Programmabili

Sistemi Elettronici Programmabili: Riepilogo

20

Controllore di DMA• L’accesso diretto alla memoria consente (solo) di scambiare dati tra una periferica e la

RAM senza l’intervento della CPU• Quando c’è una richiesta di DMA il controllore genera una richiesta alla CPU (DMAREQ)• La CPU risponde con DMAACK e lascia il controllo del BUS al controllore di DMA

(address BUS e data BUS = Z)• Il controllore genera gli indirizzi per la memoria• La CPU continua l’esecuzione del programma principale

Occorre fornire:

1. Indirizzo di partenza

2. Lunghezza del blocco

3. Direzione del trasferimento

Page 21: Sistemi Elettronici Programmabili: Riepilogo 1 Sistemi digitali : Riepilogo Sistemi Elettronici Programmabili

Sistemi Elettronici Programmabili: Riepilogo

21

Tipologie di Memorie allo stato solido

Volatili Non VolatiliRAM (Random Access Memory)

SRAM (Static RAM)Flip-FlopStaticheVelocissimeCella GrandeCosto per BitTaglio ~ 100 Kbit

DRAM (Dynamic RAM)CapacitàDinamiche (Refresh)VelociCella piccolaCosto per BitTaglio ~ 100 Mbit

ROM (Read Only Memory)

Programmate in fonderiaCosto per Bit

EEPROM (Electrically Erasable Programmable ROM)MOS Floating GateE-P Random Access R Lenta, E-P molto lentiCosto per Bit

Masked ROM

MOS Floating GateCancellabili mediante UV

Fuse - AntifuseOTP (One Time Programmable)

EPROM (Electrically Programmable ROM)

FlashMOS Floating GateP Random Access E a banchi R Lenta, P molto lenti, E lentissimoCosto per BitTaglio ~ 100 Mbit

SDRAM (Synchronous DRAM)CapacitàAccesso a burstSelf Refresh

Page 22: Sistemi Elettronici Programmabili: Riepilogo 1 Sistemi digitali : Riepilogo Sistemi Elettronici Programmabili

Sistemi Elettronici Programmabili: Riepilogo

22

RX

Gen clock Rx

Gen clock

data

clk

Comunicazione seriale

TXdata

• Modalità Asincrona

TX RX

• Modalità Sincrona

Gen clock Tx

I bit vengono inviati singolarmente (serialmente, uno dopo l’altro) ma fanno parte di una unità informativa più grande: la WORD

Page 23: Sistemi Elettronici Programmabili: Riepilogo 1 Sistemi digitali : Riepilogo Sistemi Elettronici Programmabili

Sistemi Elettronici Programmabili: Riepilogo

23

Comunicazione Seriale: Tx

Q

QSET

CLR

D

Q

QSET

CLR

D

Q

QSET

CLR

D

Q

QSET

CLR

D

CLK

Load

Data

TX

Tx

11010011 11010011

CLKTx CLKRx

DataIn DataOut

Tx serializza la WORD inviando i bits che la compongono uno alla volta

Page 24: Sistemi Elettronici Programmabili: Riepilogo 1 Sistemi digitali : Riepilogo Sistemi Elettronici Programmabili

Sistemi Elettronici Programmabili: Riepilogo

24

Comunicazione Seriale: Rx

Q

QSET

CLR

D

Q

QSET

CLR

D

Q

QSET

CLR

D

Q

QSET

CLR

D

CLK

RX

Data

Q

QSET

CLR

D

/n

11010011 11010011

CLKTx CLKRx

DataIn DataOut

Rx

1 2 3 … … … n - 1 n - 1 2

CLK

Rx ricostruisce la WORD andando a valutare il suo significato solo quando sono stati ricevuti tutti i bits di cui è composta


Recommended