Date post: | 03-May-2015 |
Category: |
Documents |
Upload: | crescenzo-bellucci |
View: | 273 times |
Download: | 3 times |
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
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
Sistemi Elettronici Programmabili: Riepilogo
4
FPGA: Logic Element (Block)
CLR
IN[3:0]
Q
QSET
CLR
D
CLK
S
LUT
OUT
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
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
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).
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)
Sistemi Elettronici Programmabili: Riepilogo
9
Architetture Interne dei Microprocessori
Sistemi Elettronici Programmabili: Riepilogo
10
Il microcalcolatore
CPU
DecoderFlash
RAM
ADD (n) ADD (n-1)
nCS0
nCS1
nOE
nWE
Data
nOE
nWE
nOE
nWE
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
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.
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.
.
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
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)
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
Sistemi Elettronici Programmabili: Riepilogo
17
Elenco dei Modi
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
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)
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
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
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
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
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