1 / 75

ELETTRONICA DIGITALE (II Parte)

ELETTRONICA DIGITALE (II Parte). (10) 24/01/11 RIEPILOGO CORSO. PROGRAMMA. Presentazione del corso e concetti generali Dispositivi logici: PLA, PAL, FPGA, Gate Array, Standard cell Architetture dei microprocessori e (micro)calcolatori Unità del calcolatore:processore e memoria.

selina
Télécharger la présentation

ELETTRONICA DIGITALE (II Parte)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ELETTRONICA DIGITALE (II Parte) (10) 24/01/11 RIEPILOGO CORSO Elettronica Digitale (II Parte) 10-11_10

  2. PROGRAMMA • Presentazione del corso e concetti generali • Dispositivi logici: PLA, PAL, FPGA, Gate Array, Standard cell • Architetture dei microprocessori e (micro)calcolatori • Unità del calcolatore:processore e memoria. • Registri dedicati e di uso generale • Collegamenti tra unità: bus • Livelli di astrazione • Linguaggio macchina o assembly language • Funzionamento del processore:fetch,decode, execute • Tipi di istruzione mecchina • Formalismo RTL • Classi di istruzioni • Modi di indirizzamento • Salti condizionati • Architetture di I/O • Istruzioni e registri di I/O • Lo stack e il suo funzionamento • Sistema di I/O: bus dati, indirizzo e controllo, istruzioni di I/O • Polling, Interrupt e DMA • Cenni sui problemi di sincronizzazione • Porte seriali e parallele • Sistema operativo • Presentazione del processore commerciale • Progetto del microcontrollore basato sul microprocessore commerciale prescelto Elettronica Digitale (II Parte) 10-11_10

  3. Segnale Binario (segue) Elettronica Digitale (II Parte) 10-11_10

  4. 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 Programmate durante la produzione nella Fab Programmabili sul campo Re/Programmabili nel circuito Logic Devices Elettronica Digitale (II Parte) 10-11_10

  5. Strutture PLD Programmable Logic Array (PLA) Programmable Array Logic (PAL) Elettronica Digitale (II Parte) 10-11_10

  6. FPGA: Architettura Elettronica Digitale (II Parte) 10-11_10

  7. FPGA: Logic Element (Block) Elettronica Digitale (II Parte) 10-11_10

  8. FPGA : motivi delle scelte • Riprogrammabilità anche parziale • Funzionalità volatili e non volatili: SRAM, FLASH, FUSE e MPGA • Tool molto efficienti (HDL) • Prototipi di test • Ecc. Elettronica Digitale (II Parte) 10-11_10

  9. Unità del Calcolatore Unità funzionali fondamentali del calcolatore. Elettronica Digitale (II Parte) 10-11_10

  10. Microprocessore Elettronica Digitale (II Parte) 10-11_10

  11. Collegamento tra Unità - Bus Calcolatore strutturato intorno a un solo bus. Elettronica Digitale (II Parte) 10-11_10

  12. Memoria Cache e Centrale Struttura della memoria e relazione con il processore. Elettronica Digitale (II Parte) 10-11_10

  13. Memoria Cache e Centrale Località temporale  Frequenza temporale Località spaziale  indirizzi vicini (dati, vettori…) Probabilità di accesso frequente a generazione semplificata indirizzi Trasferimento di blocchi di memoria da memoria centrale a memoria veloce (cache) Elettronica Digitale (II Parte) 10-11_10

  14. ADD (n-1) ADD (n) CPU Decoder Flash nCS0 nOE nWE nOE nWE RAM nCS1 nOE nWE Data Il microcalcolatore Elettronica Digitale (II Parte) 10-11_10

  15. Schema Riassuntivo linguaggio applicativo livello 6 compilazione linguaggio macchina livello 5 assemblaggio sistema operativo livello 4 chiamata asupervisore einterruzione insieme di istruzioni livello 3 esecuzione(cablata o microprog.) microarchitettura livello 2 hardware logica digitale livello 1 Elettronica Digitale (II Parte) 10-11_10

  16. Istruzione e linguaggio macchina • L’istruzione macchina è il compito elementare eseguibile da parte del processore. • Essa si distingue in forma simbolica e numerica: • simbolica: come viene scritta da parte del programmatore, in modo leggibile e facilmente interpretabile • numerica (o binaria): come è rappresentata in memoria nel programma in esecuzione, in forma adatta al processore • Ogni processore ha uno specifico insieme(o repertorio) di istruzioni macchina che, insieme alle direttive, sono alla base dellinguaggio macchina Elettronica Digitale (II Parte) 10-11_10

  17. Assemblatore • Il linguaggio macchina in forma simbolica è chiamato anche linguaggio assemblatore o assembly language. • L’assemblatore (assembler) è uno strumento SW che esamina il programma in linguaggio macchina simbolico e, se non ha errori, lo traduce (o assembla) generandone la forma numerica corrispondente • L’assemblatore è legato alle caratteristiche del processore Elettronica Digitale (II Parte) 10-11_10

  18. Modello di Processore Modello generico di processore, vale per qualunque processore ragionevole. Elettronica Digitale (II Parte) 10-11_10

  19. Ciclo di Prelievo-Esecuzione • Il processore preleva (fetch) da memoria centrale l’istruzione macchina da eseguire • 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: • i dati, o si trovano già nei registri o vanno caricati da memoria • il risultato, o viene lasciato in un registro o viene memorizzato Elettronica Digitale (II Parte) 10-11_10

  20. Struttura della Memoria Elettronica Digitale (II Parte) 10-11_10

  21. Struttura della Memoria • Fondamentalmente la memoria del calcolatore è costituita da una sequenza (vettore) di parole(o celle, o locazioni) binarie. • Ogni parola è una stringa (successione) di un numero fissato di bit: • 8 bit: carattere o byte • 16 bit: parola (ordinaria) (word) • 32 bit: parola doppia (double or long word) • 64 bit: parola quadrupla (quad word) • Ogni parola ha un contenuto o valore, che è la sequenza di bit memorizzata, e un indirizzo (address), che serve per identificare la parola. Elettronica Digitale (II Parte) 10-11_10

  22. Dato in Memoria Elettronica Digitale (II Parte) 10-11_10

  23. Indirizzamento di Memoria • In genere l’elemento di memoria minimo che il processore può leggere (caricare) o scrivere (memorizzare) è il carattere, cioè un byte (8 bit). • Ne viene che quasi sempre l’indirizzo di memoria si riferisce al byte e ogni byte è numerato progressivamente, da 0 in poi. • Allineamento degli schemi: l’indirizzo è multiplo della lunghezza della parola, misurata in byte. • Esempio: la parola ordinaria (due byte) può avere solo indirizzo di valore pari: 0, 2, 4, ecc. Elettronica Digitale (II Parte) 10-11_10

  24. Istruzione in Memoria • L’istruzione macchina, in forma numerica cioè eseguibile da parte del processore, è anch’essa contenuta in una o più parole di memoria consecutive, come il dato. • Il numero di parole consecutive occupate da un’istruzione macchina dipende: • da come l’istruzione è codificata in bit • da quanto l’istruzione è complessa e lunga Spesso l’istruzione occupa una sola parola. Istruzioni di base • Trasferimento dati tra memoria e registri interni del processore • Operazioni logiche e aritmetiche su dati • Sequenziamento istruzioni/ funzioni di controllo • Trasferimento dati tra organi di I/O e registri interni Elettronica Digitale (II Parte) 10-11_10

  25. Forma Simbolica • Il programmatore denota l’istruzione macchina in forma simbolica, facilmente leggibile, come per esempio: NOME arg1, arg2, … commento • Il nome (o codice mnemonico) indica l’operazione: MOVE (carica, memorizza o copia dato), ADD (addiziona dato), SUB (sottrai), ecc • Gli elementi arg1, arg2, ecc, sono gli argomenti e indicano i dati da elaborare o dove scrivere il risultato, o anche, nelle istruzioni di salto, dove reperire la prossima istruzione da eseguire. • Argimenti di tipo sorgente (dato), destinazione (dato) e destinazione di salto (indirizzo) … Elettronica Digitale (II Parte) 10-11_10

  26. Argomenti: Sorgente-Destinazione e numero • Nel linguaggio macchina della maggior parte delle famiglie di processori, gli argomenti sorgente precedono quello destinazione. • Prototipi tipici:NOME arg_sorg1, arg_sorg_2, arg_destNOME arg_sorg, arg_destNOME arg_sorg, arg_sorg_e_dest • I linguaggi macchina si dividono in: • linguaggi a due argomenti: le istruzioni che fanno operazioni con due operandi lo sovrascrivono a uno degli operandi, il quale va dunque perso • linguaggi a tre argomenti: le istruzioni non modificano gli operandi e scrivono altrove il risultato Elettronica Digitale (II Parte) 10-11_10

  27. Tipi di istruzione • Tre argomenti: ADD R1, R2, R3 • sovrascrivendone addiziona i contenuti di R1 e R2 e scrivi la somma in R3, il contenuto precedente • R1 e R2 sono sorgente, R3 è destinazione • Due argomenti: ADD R1, R2 • addiziona i contenuti di R1 e R2 e scrivi la somma in R2, sovrascrivendone il contenuto precedente • R1 è sorgente, R2 è sia sorgente sia destinazione • Un argomento: DEC R1 • decrementa il contenuto di R1 • R1 è sia sorgente sia destinazione • Un argomento (salto): JMP 10 • sposta il flusso di esecuzione del programma all’istruzione collocata all’indirizzo 10 - 10 è destinazione di salto Elettronica Digitale (II Parte) 10-11_10

  28. Formalismo RTL • Register transfer language: è un formalismo notazionale di specifica per istruzioni, di tipo matematico, formale e preciso, per specificare che cosa faccia un’istruzione. • Somiglia al costrutto di assegnamento a variabile, come si trova in C, Pascal e simili. Elettronica Digitale (II Parte) 10-11_10

  29. Simbologia di Base • Il numero decimale indica: • una costante numerica, da usare come dato • un indirizzo di memoria, da usare come riferimento a una parola di memoria • Un identificatore simbolico, magari contenente un suffisso numerico, indica: • un nome di registro, come PC, SP o Ri (con suffisso i), il cui contenuto si usa come dato o come indirizzo • una costante numerica cui sia stato dato un nome simbolico, come per esempio si fa in C con #define, da usare come dato • 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. • : Elettronica Digitale (II Parte) 10-11_10

  30. Classi di istruzioni • Istruzioni di trasferimento: • caricamento, memorizzazione e copia • Istruzioni aritmetiche e logiche: • di base: addizione, sottrazione, cambio segno, AND, OR, NOT, XOR, e poco altro • ausiliarie: scorrimento, rotazione, varie • Istruzioni di ingresso e uscita: • lettura o scrittura di dato da o su periferica • Istruzioni di confronto: • confronto tra due dati o di un dato con zero • Istruzioni di controllo del flusso di esecuzione del programma (salto) • Istruzioni di controllo del processore: • gestione del meccanismo di interruzione Elettronica Digitale (II Parte) 10-11_10

  31. Modo di Indirizzamento • Il modo di indirizzamento è un insieme di regole secondo cui indicare 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 • In teoria, i modi di dato e di istruzione sono interscambiabili, ma ci sono alcuni usi prevalenti. • I modi di indirizzamento sono essenziali nel dare flessibilità e generalità al linguaggio macchina. • Se sono numerosi sono però anche complessi da gestire e complicano la descrizione del linguaggio stesso. Elettronica Digitale (II Parte) 10-11_10

  32. Modi di Indirizzamento (i.e. Indirizzo effettivo) Elettronica Digitale (II Parte) 10-11_10

  33. Bit di Esito • Ciascun esito è rappresentato da un bit: • se il bit vale uno, l’esito associato è affermativo • altrimenti, l’esito associato è negativo • Di norma i bit di esito sono collocati nel registro di stato, in posizioni prefissate. • Le istruzioni macchina che producono esito aggiornano in modo automatico i bit di esito di loro pertinenza. • Le istruzioni macchina di salto condizionato controllano il bit di esito di loro pertinenza per decidere se la condizione di salto sia vera o falsa, e se saltare o meno come conseguenza. Elettronica Digitale (II Parte) 10-11_10

  34. Tastiera + Video = Terminale Calcolatore dotato di bus singolo con unità processoree interfacce di I / O per tastiera e video. Elettronica Digitale (II Parte) 10-11_10

  35. STACK: Struttura e Terminologia Struttura della pila (STACK) di memoria. Elettronica Digitale (II Parte) 10-11_10

  36. L’assemblaggio • Il programma macchina in forma simbolica si presenta come una successione di: • istruzioni macchina simboliche • direttive (pure simboliche) • Il processo di assemblaggio deve in qualche modo definire dove (cioè in quali indirizzi) collocare programma e dati: • riconosce e trasforma le istruzioni in forma numerica, collocandole a indirizzi successivi • riconosce e interpreta le direttive • Ci sono anche altre questioni da affrontare: • come definire costanti simboliche ed etichette • come risolvere le etichette in indirizzi numerici • come designare porzioni di memoria per dati Elettronica Digitale (II Parte) 10-11_10

  37. Sistema di Assemblaggio • Il sistema GAS (GNU ASsembler) è un assemblatore generico, capace di riconoscere il linguaggio macchina di numerose famiglie di processori (Motorola, Intel, HP, ARM e altre). • Le direttive e il formato generale simbolico di GAS sono comuni a tutti i linguaggi. • GAS si specializza solo nel riconoscere i nomi delle istruzioni macchina, che variano secondo il processore commerciale specifico Formato di Linea Elettronica Digitale (II Parte) 10-11_10

  38. Elettronica Digitale (II Parte) 10-11_10

  39. Il processore scambia informazioni con le periferiche attraverso dei registri. Tipicamente: • Control REGister; • Status REGister; • Data REGister; Questi registri sono generalmente “MAPPATI IN MEMORIA” ossia sono visti come locazioni di memoria nello spazio di indirizzamento Periferiche Elettronica Digitale (II Parte) 10-11_10

  40. Schema di Interfaccia lato di calcolatore lato di periferica Componenti fondamentali dell’interfaccia di I/O (qui sola lettura) Elettronica Digitale (II Parte) 10-11_10

  41. Temporizzazione delle attività • Sincrona rispetto all’esecuzione del programma (Polling) • Asincrona rispetto all’esecuzione del programma (Interrupt) • Indipendente dall’esecuzione del programma (DMA) Elettronica Digitale (II Parte) 10-11_10

  42. Gestione delle periferichePolling Elettronica Digitale (II Parte) 10-11_10

  43. Gestione delle Periferiche Interrupt Nella gestione mediante Interrupt è la periferica stessa a richiedere servizio mediante un apposito segnale. Il processore non deve interrogare periodicamente le periferiche. La gestione delle periferiche è ASINCRONA al programma nel senso che il programmatore non può prevedere quando ci sarà una richiesta di servizio Elettronica Digitale (II Parte) 10-11_10

  44. Gestione delle Periferiche Direct Memory Access (DMA) L’accesso diretto alla memoria consente (solo) di scambiare dati tra una periferica e la RAM senza l’intervento della CPU (Rigidità) Non viene perso del tempo di CPU nello scambio dei dati (la CPU continua ad eseguire il programma principale fino al prossimo cache miss) Necessita di hardware (complesso) aggiuntivo Elettronica Digitale (II Parte) 10-11_10

  45. Gestione delle priorità (HW) • L’arbitro stabilisce qual’è l’interrupt a priorità più alta mettendo in uscita il codice corrispondente • Viene quindi eseguita la routine relativa all’interrupt selezionato Elettronica Digitale (II Parte) 10-11_10

  46. Salvataggio del Contesto Tutti i sistemi di interruzioni richiedono, come minimo, il salvataggio del Program Counter (PC). Molti processori salvano in modo automatico molti dei registri interni. In questo modo la Routine di servizio può alterare i registri che verranno ripristinati, in modo automatico e molto veloce, con il contenuto originario prima che il controllo torni al programma principale. In altri casi, deve essere il programmatore a mettere in salvo (e.s. nello Stack) il contenuto dei registri che verranno usati dalla routine di servizio e a ripristinarli al suo termine. Elettronica Digitale (II Parte) 10-11_10

  47. Porta Parallela di Ingresso Elettronica Digitale (II Parte) 10-11_10

  48. CLKRx CLKTx DataIn DataOut 11010011 11010011 CLK 1 2 3 n - 1 n … … … - 1 2 Comunicazione Seriale: Rx Rx ricostruisce la WORD andando a valutare il suo significato solo quando sono stati ricevuti tutti i bits di cui è composta Rx Elettronica Digitale (II Parte) 10-11_10

  49. Ruolo del Sistema Operativo • Normalmente il calcolatore è equipaggiato con un sistema operativo (SO). • Il SO è un complesso di programmi che danno al calcolatore funzionalità minimali: • caricare e attivare uno o più programmi • gestire le unità funzionali di memoria e I/O • permettere l’esecuzione simultanea di due o più programmi (processi): concorrenza • permettere la compresenza di più utenti • garantire affidabilità e sicurezza del calcolatore. Elettronica Digitale (II Parte) 10-11_10

  50. Memoria • Memoria interna o centrale o principale • ROM, PROM • RAM (SRAM, DRAM) • Memoria esterna o ausiliaria • Dischi rigidi (magnetici, ottici, magneto-ottici) • Floppy • Nastri • Cassette Elettronica Digitale (II Parte) 10-11_10

More Related