Microelettronica Corso introduttivo di progettazione di sistemi embedded

Documenti analoghi
Microelettronica Corso introduttivo di progettazione di sistemi embedded

Microelettronica Corso introduttivo di progettazione di sistemi embedded

Microelettronica Corso introduttivo di progettazione di sistemi embedded

Il processore minimo MU0. S. Salvatori - Microelettronica marzo 2019 (50)

Microelettronica. Introduzione al progetto di un microprocessore. Stefano Salvatori. Università degli Studi Roma Tre.

Instruzione Opcode Effetto

Microelettronica Corso introduttivo di progettazione di sistemi embedded

Microelettronica Corso introduttivo di progettazione di sistemi embedded

Microelettronica Corso introduttivo di progettazione di sistemi embedded

Microelettronica Corso introduttivo di progettazione di sistemi embedded

Microelettronica Corso introduttivo di progettazione di sistemi embedded

Architettura dell elaboratore

Architettura dell elaboratore

Calcolatore: sottosistemi

(a) INTRODUZIONE ALLE ARCHITETTURE E ALLA SIMULAZIONE VERILOG DI PROCESSORI

Microelettronica. Note su RISC. Stefano Salvatori. Università degli Studi Roma Tre. Università degli Studi Roma Tre

Il Ciclo Fetch-Decode-Execute. C Nyssen/Aberdeen College 2003

Microelettronica Corso introduttivo di progettazione di sistemi embedded

Fondamenti di Informatica e Programmazione. P ro f. G i a n n i D A n g e l o

Architettura di un calcolatore: introduzione. Calcolatore: sottosistemi

Architettura di un calcolatore: primi cenni introduttivi. Calcolatore: sottosistemi

Architettura di un calcolatore: introduzione. Calcolatore: sottosistemi

Struttura di un elaboratore

CPU a singolo ciclo. Lezione 18. Sommario. Architettura degli Elaboratori e delle Reti

Architettura di un calcolatore: introduzione. Calcolatore: sottosistemi

Architettura di un calcolatore: primi cenni introduttivi

Pag. 1. Informatica Facoltà di Medicina Veterinaria a.a. 2012/13 prof. Stefano Cagnoni. Architettura del calcolatore (parte II)

Architettura dei Calcolatori Elettronici

Architettura dei calcolatori

Cenni sull architettura del calcolatore

Formato delle istruzioni Tipi di istruzione Modi di indirizzamento CISC vs RISC Pipeline Note sui RISC

Un quadro della situazione. Lezione 14 Il Set di Istruzioni (2) Dove siamo nel corso. I principi di progetto visti finora. Cosa abbiamo fatto

Cosa è? Come lo si usa? Come iniziare? Author: Ing. Sebastiano Giannitto (ITIS M.BARTOLO PACHINO)

A.A. 2018/2019. CPU e Linguaggio Macchina FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE. Docente Prof. Raffaele Pizzolante

ESERCITAZIONE Unità centrale di elaborazione Ciclo base di un istruzione Meccanismo di interruzione

Architettura dell elaboratore

Capitolo 5 Elementi architetturali di base

Macchina di von Neumann/Turing

Architettura degli Elaboratori

Il processore. Istituzionii di Informatica -- Rossano Gaeta

Architettura di un calcolatore: introduzione

Le istruzioni del linguaggio gg macchina corrispondono ad operazioni elementari di elaborazione operazioni aritmetiche

Un quadro della situazione. Lezione 15 Il Set di Istruzioni (2) Le operazioni e gli operandi. Dove siamo nel corso. Cosa abbiamo fatto

Architettura di von Neumann

L unità di controllo di CPU a singolo ciclo

Architettura del Calcolatore

Programmazione A.A Architettura dei Calcolatori. ( Lezione V ) Componenti hardware e loro schema funzionale

LABORATORIO DI SISTEMI

La CPU e la Memoria. Sistemi e Tecnologie Informatiche 1. Struttura del computer. Sistemi e Tecnologie Informatiche 2

L ARCHITETTURA DEI CALCOLATORI. Il processore La memoria centrale La memoria di massa Le periferiche di I/O

Introduzione all'architettura dei Calcolatori. Maurizio Palesi

CPUSim. Laboratorio 30/11/2016

Architettura dei computer

architettura degli elaboratori Alberto Ferrari Alberto Ferrari Informatica e Laboratorio di Programmazione

Architettura degli Elaboratori

Microelettronica Corso introduttivo di progettazione di sistemi embedded

CPU a singolo ciclo. Lezione 18. Sommario. Architettura degli Elaboratori e delle Reti. Proff. A. Borghese, F. Pedersini

Elementi di Architettura

Architettura del. Calcolatori (1) Calcolatori (2) L architettura di Von Neumann. CPU RAM Memoria I/O. secondaria. bus

La macchina di Von Neumann. UNIVERSITÀ DEGLI STUDI DEL SANNIO Benevento DING DIPARTIMENTO DI INGEGNERIA CORSO DI "PROGRAMMAZIONE I"

Architettura del processore e esecuzione delle istruzioni

Struttura del calcolatore

Calcolatori Elettronici

UNIVERSITÀ DEGLI STUDI DI TRIESTE

Architettura degli Elaboratori

Il calcolatore. È un sistema complesso costituito da un numero elevato di componenti. è strutturato in forma gerarchica

Architettura degli elaboratori CPU a ciclo singolo

Terza lezione 21 ottobre 2016

Architettura del calcolatore (Seconda parte)

Sistemi e reti CPU Concetti di base

Sistemi di numerazione

Corso di Calcolatori Elettronici I

L unità di controllo di CPU a singolo ciclo

Architettura di una CPU

Elementi di informatica

Architettura e funzionamento del calcolatore

Settimana n.2. Obiettivi Esecuzione di un programma. Tutorial su CodeBlocks e ambiente di sviluppo.

Architettura dei computer

Pinout PD32. Memoria di lavoro esterna. tramite l indirizzo ad esse associato. e possono essere lette o scritte: Le singole celle sono distinguibili

Componenti di un processore

Progetto CPU a singolo ciclo

Architettura di un elaboratore

Ogni CPU è in grado di eseguire un insieme limitato di istruzioni macchina codificate in binario secondo il seguente schema generale.

Architettura di von Neumann

Architettura di von Neumann

Architettura dei Calcolatori elettronici

Fondamenti di Informatica A. A / 1 9

Corso di Alfabetizzazione Informatica 2001/2002. La CPU. F. Tortorella Università degli Studi. di Cassino

Architettura di un calcolatore: Introduzione parte 2

CPUSim - 2. Laboratorio 14/12/2016

Un quadro della situazione. Lezione 28 Il Processore: unità di controllo (2) Dove siamo nel corso. Organizzazione della lezione. Cosa abbiamo fatto

La CPU a singolo ciclo

Esercitazione 11. Control-Unit. Data-Path

Ciclo del Processore. Memoria

Architettura degli elaboratori CPU a ciclo singolo

Transcript:

Microelettronica Corso introduttivo di progettazione di sistemi embedded Elementi per il progetto di un microprocessore prof. Stefano Salvatori A.A. 2017/2018 Eccetto dove diversamente specificato, i contenuti di questo documento sono rilasciati sotto Licenza Creative Commons Attribuzione 3.0 Italia. S. Salvatori - Microelettronica marzo 2018 (1)

Sommario Evoluzione della tecnologia L'esecuzione di una istruzione Programmazione strutturata Architettura e organizzazione di un microprocessore Progetto di un processore minimo livello datapath sintesi FSM Note sul progetto di un set di istruzioni formato tipi modi di indirizzamento S. Salvatori - Microelettronica marzo 2018 (2)

Intel 4004 2300 transistor F. Faggin S. Salvatori - Microelettronica marzo 2018 (3)

Intel 4004 http://www.4004.com/ S. Salvatori - Microelettronica marzo 2018 (4)

Intel 4004 http://www.4004.com/ S. Salvatori - Microelettronica marzo 2018 (5)

Intel 4004 http://www.4004.com/ S. Salvatori - Microelettronica marzo 2018 (6)

La tecnologia di ieri Max. CPU clock rate: 740 khz Min. feature size: 10 µm S. Salvatori - Microelettronica marzo 2018 (7)

La tecnologia di oggi S. Salvatori - Microelettronica marzo 2018 (8)

Livelli di interconnessione S. Salvatori - Microelettronica marzo 2018 (9)

Un processore di oggi > 109 transistor S. Salvatori - Microelettronica marzo 2018 (10)

Legge di Moore Il numero di transistor integrati in un chip raddoppia ogni 18 mesi circa S. Salvatori - Microelettronica marzo 2018 (11)

Legge di Moore Per le memorie la crescita è più rapida (regolarità della struttura) S. Salvatori - Microelettronica marzo 2018 (12)

Legge di Moore S. Salvatori - Microelettronica marzo 2018 (13)

Un utile confronto All'inizio era la CPU a essere più lenta. Dopo gli anni '90, gli accessi alla memoria esterna costituirono il collo di bottiglia sulla velocità del sistema di calcolo S. Salvatori - Microelettronica marzo 2018 (14)

Come lavora un processore: cenni sulla programmazione strutturata S. Salvatori - Microelettronica marzo 2018 (15)

Il processore come macchina programmabile Un processore è un sistema elettronico in grado di eseguire un programma FF..FF16 instructions registers address data processor instructions and data memory 00..0016 S. Salvatori - Microelettronica marzo 2018 (16)

Descrizione di un algoritmo input/output istruzione blocco di istruzioni condizione inizio/fine connessione S. Salvatori - Microelettronica marzo 2018 (17)

Programmazione strutturata cond T F F cond T condizione sequenza ciclo while S. Salvatori - Microelettronica marzo 2018 (18)

Esempio somma Addizione tra due numeri In A input In B C A+ B Out C assegnazione output end S. Salvatori - Microelettronica marzo 2018 (19)

Esempio max Massimo tra due numeri In A, B T F A>B max A confronto max B Out max end S. Salvatori - Microelettronica marzo 2018 (20)

max Esempio max 0 A 0 Ricerca massimo (-1 per uscire) A!= -1 F T In A T A > max F max A Out max end - Microelettronica marzo 2018 (21) S. Salvatori

Esercizi 1. Disegnare la struttura del ciclo for; 2. Disegnare la struttura del diagramma di flusso che descrive il lavoro svolto da un microcontrollore; 3. Disegnare il diagramma di flusso del lavoro svolto da un sistema a uc che risponda alle seguenti specifiche: Acquisisca lo stato di un ingresso; Ogni volta che l'ingresso passa dallo stato logico basso a quello alto si genera un evento; Una uscita deve diventare alta ogni 4 eventi. S. Salvatori - Microelettronica marzo 2018 (22)

Esercizi 1. Disegnare la struttura del ciclo for; 2. Disegnare la struttura del diagramma di flusso che descrive il lavoro svolto da un microcontrollore; 3. Disegnare il diagramma di flusso del lavoro svolto da un sistema a uc che risponda alle seguenti specifiche: Acquisisca lo stato di un ingresso; Ogni volta che l'ingresso passa dallo stato logico basso a quello alto si genera un evento; Una uscita deve diventare alta ogni 4 eventi. S. Salvatori - Microelettronica marzo 2018 (23)

Ciclo for i iniz F cond. i T modif. i S. Salvatori - Microelettronica marzo 2018 (24)

Ciclo for i iniz cond T F cond. i F T modif. i ciclo while S. Salvatori - Microelettronica marzo 2018 (25)

Ciclo for: esempio for(i = 3600000 ; i>0; i ) {... } I 3600000 i>0 F T i = 3600000; while(i>0) Ciclo while { equivalente... i ; } i i-1 S. Salvatori - Microelettronica marzo 2018 (26)

Ciclo for: esempio blocco di istruzione eseguite ad ogni ciclo for(i = 3600000 ; i>0; i ) {... } I 3600000 i>0 F T Assegnazione iniziale i i-1 Condizione per rimanere nel ciclo Operazione di aggiornamento alla fine di un ciclo S. Salvatori - Microelettronica marzo 2018 (27)

Esercizi 1. Disegnare la struttura del ciclo for; 2. Disegnare la struttura del diagramma di flusso che descrive il lavoro svolto da un microcontrollore; 3. Disegnare il diagramma di flusso del lavoro svolto da un sistema a uc che risponda alle seguenti specifiche: Acquisisca lo stato di un ingresso; Ogni volta che l'ingresso passa dallo stato logico basso a quello alto si genera un evento; Una uscita deve diventare alta ogni 4 eventi. S. Salvatori - Microelettronica marzo 2018 (28)

Ciclo per un uc start iniziallizz. Ciclo infinito true F T funzione end S. Salvatori - Microelettronica marzo 2018 (29)

Ciclo per un uc... //istruzioni di inizializzazione while(1) {... //istruzioni eseguite dal // uc durante il suo lavoro } start iniziallizz. true F T funzione end S. Salvatori - Microelettronica marzo 2018 (30)

Ciclo per un uc: soluzione alternativa... //istruzioni di inizializzazione for(;;) {... //istruzioni eseguite dal // uc durante il suo lavoro } start iniziallizz. true F T funzione end S. Salvatori - Microelettronica marzo 2018 (31)

Esercizi 1. Disegnare la struttura del ciclo for; 2. Disegnare la struttura del diagramma di flusso che descrive il lavoro svolto da un microcontrollore; 3. Disegnare il diagramma di flusso del lavoro svolto da un sistema a uc che risponda alle seguenti specifiche: Acquisisca lo stato di un ingresso; Ogni volta che l'ingresso passa dallo stato logico basso a quello alto si genera un evento; Una uscita deve diventare alta ogni 4 eventi. S. Salvatori - Microelettronica marzo 2018 (32)

4 eventi Specifiche: evento Acquisire lo stato di un ingresso; Ogni volta che l'ingresso passa dallo stato logico basso a quello alto si genera un evento; IN = 0 F Aspetta che l'input esca dallo stato basso T Una uscita deve diventare alta ogni 4 eventi. return Qui c'è stato il fronte positivo Att.ne: che succede se rientro troppo presto? S. Salvatori - Microelettronica marzo 2018 (33)

4 eventi evento IN = 0 fine test F T return Inizio test Inizio nuovo test IN: Così uscirei subito ma in realtà non c'è stato il nuovo fronte positivo S. Salvatori - Microelettronica marzo 2018 (34)

4 eventi Specifiche: evento Acquisire lo stato di un ingresso; Ogni volta che l'ingresso passa dallo stato logico basso a quello alto si genera un evento; IN = 0 F Aspetta che l'input esca dallo stato basso T Qui c'è stato il fronte positivo Una uscita deve diventare alta ogni 4 eventi. IN = 1 T F Aspetta che l'input torni nello stato basso return S. Salvatori - Microelettronica marzo 2018 (35)

4 eventi start Specifiche: true Acquisire lo stato di un ingresso; Ogni volta che l'ingresso passa dallo stato logico basso a quello alto si genera un evento; Una uscita deve diventare alta ogni 4 eventi. end T out 0 e 0 e<4 evento F IN = 0 F T T evento IN = 1 e e+1 out 1 F T return S. Salvatori - Microelettronica marzo 2018 (36)

Architettura e organizzazione di un microprocessore S. Salvatori - Microelettronica marzo 2018 (37)

Architettura e organizzazione di un up Un computer general purpose consiste in un sistema denominato: computer digitale con programma memorizzato La tecnologia microelettronica ha consentito di integrare milioni di MOS su un solo chip dando luogo alla nascita di sistemi ultraveloci e di complessità sempre più alta Il progresso nel campo dei up non si è avuto solo grazie al progresso tecnologico Allo sviluppo hanno certamente contribuito le capacità degli ingegneri in grado di definire sia l'architettura che l'organizzazione di un microcomputer S. Salvatori - Microelettronica marzo 2018 (38)

Architettura e organizzazione di un up Architettura: descrive il computer dal punto di vista dell'utente Set delle istruzioni Registri disponibili Gestione della memoria Gestione delle eccezioni Organizzazione: descrive come è implementata l'architettura Struttura della pipeline Chache Soluzioni hardware... S. Salvatori - Microelettronica marzo 2018 (39)

Programma memorizzato Un processore è un automa che esegue istruzioni scritte nella memoria programma FF..FF16 instructions registers address data processor instructions and data memory dati e programma sono immagazzinati nella stessa memoria le istruzioni sono trattate come i dati (questo può anche portare a un codice che si auto-modifica) 00..0016 Lo stato del sistema è determinato dai valori memorizzati in locazioni di memoria e in registri interni al up ogni istruzione definisce le modalità di cambiamento dei dati e quindi dello stato essendo programmabili, i up risultano dispositivi universali, potendo eseguire qualunque algoritmo S. Salvatori - Microelettronica marzo 2018 (40)

Astrazione nella progettazione I up sono dispositivi che integrano milioni di MOS che operano a velocità elevatissima. I dispositivi commutano milioni di volte al secondo. Il sistema deve operare in modo ripetibile e controllato per non cadere in uno stato imprevisto (collasso). Come può essere progettato un sistema tanto complesso? livelli di astrazione che abbiamo visto S. Salvatori - Microelettronica marzo 2018 (41)

Elementi fondamentali di una CPU incrementer PC... DECODER MAR AI BUS ESTERNI IR MDR R0 REG FUNZ SR R1 ALU BANCO DI REGISTRI Rn REG S. Salvatori - Microelettronica marzo 2018 (42)

Il processore minimo MU0 S. Salvatori - Microelettronica marzo 2018 (43)

Il processore minimo Il tipo più semplice di processore prevederà: un PC, Program Counter, per puntare all istruzione da eseguire un IR, Instruction Register, che mantiene il codice dell istruzione da eseguire un registro, Accumulatore, in grado di immagazzinare il dato su cui lavorare in un certo istante una ALU, Arithmetic Logic Unit, in grado di eseguire operazioni elementari una unità di decodifica e controllo che imposterà le azioni in funzione dell istruzione MU0..6 S. Salvatori - Microelettronica marzo 2018 (44)

Esempio di processore minimo MU0 Per il più semplice processore prevediamo per l'istruzione un formato a 16 bit; Nei 16 bit sono inclusi l'opcode a 4 bit e un campo d'indirizzo a 12 bit: 4 bits opcode 12 bits S istruzioni a 16 bit I dati sono a 16 bit (ALU) 12 bit d indirizzo -> 4096x16 = 8 kbyte di spazio di memoria S. Salvatori - Microelettronica marzo 2018 (45)

MU0 Il set di istruzioni è anch'esso minimo: Istruzione Opcode Effetto LDA S 0000 ACC := mem16[s] STO S 0001 mem16[s] := ACC ADD S 0010 ACC := ACC + mem16[s] SUB S 0011 ACC := ACC - mem16[s] JMP S 0100 PC := S JGE S 0101 if ACC >= 0 PC := S JNE S 0110 if ACC!=0 PC := S STP 0111 stop S. Salvatori - Microelettronica marzo 2018 (46)

MU0 Il progetto della logica è divisibile in due passi fondamentali: datapath tutti gli elementi che lavorano su parole (acc., PC, ALU, IR) fanno parte del datapath per questi elementi si usa uno stile di progetto di tipo Register Transfer level (RTL), basato su registri, MUX, logica di controllo tutto ciò che non è incluso nel datapath, farà parte della logica di decodifica/controllo il progetto si basa su FSM (Finite State Machine) S. Salvatori - Microelettronica marzo 2018 (47)

Progetto a livello di datapath S. Salvatori - Microelettronica marzo 2018 (48)

MU0 datapath MU0 12 16 S. Salvatori - Microelettronica marzo 2018 (49)

MU0 datapath MU0 12 16 S. Salvatori - Microelettronica marzo 2018 (50)

MU0 datapath MU0 12 16 S. Salvatori - Microelettronica marzo 2018 (51)

MU0 datapath MU0 12 16 S. Salvatori - Microelettronica marzo 2018 (52)

MU0 datapath MU0 12 16 S. Salvatori - Microelettronica marzo 2018 (53)

MU0 datapath MU0 12 16 S. Salvatori - Microelettronica marzo 2018 (54)

MU0 datapath MU0 12 16 S. Salvatori - Microelettronica marzo 2018 (55)

MU0 datapath MU0? 12 16 S. Salvatori - Microelettronica marzo 2018 (56)

MU0 datapath l esecuzione l esecuzionedell istruzione dell istruzioneprevede prevede un unnumero numerodi dicicli ciclidi diclock clockpari pariagli agli accessi accessiin inmemoria memorianecessari necessari 2 accessi 1 accesso Instruzione Opcode Effetto LDA S 0000 ACC := mem16[s] STO S 0001 mem16[s] := ACC ADD S 0010 ACC := ACC + mem16[s] SUB S 0011 ACC := ACC - mem16[s] JMP S 0100 PC := S JGE S 0101 if ACC >= 0 PC := S JNE S 0110 if ACC!=0 PC := S STP 0111 stop S. Salvatori - Microelettronica marzo 2018 (57)

MU0 datapath MU0 12 16 S. Salvatori - Microelettronica marzo 2018 (58)

MU0 datapath MU0 12 L'incremento del PC può essere svolto dalla stessa ALU (più avanti i dettagli) 16 S. Salvatori - Microelettronica marzo 2018 (59)

MU0 datapath MU0 12 16 S. Salvatori - Microelettronica marzo 2018 (60)

MU0 datapath design assunto che l istruzione sia stata caricata, il progetto a livello di datapath prevede due passi fondamentali: 1. 2. accesso all operando in memoria esce l indirizzo da IR l operando e l'accumulatore giungono alla ALU il risultato fornito dalla ALU è caricato nell accumulatore stesso oppure il contenuto dell accumulatore è scritto in memoria fetch della nuova istruzione (PC o IR12 hanno l indirizzo della locazione per la nuova istruzione) il contenuto è incrementato dalla ALU il nuovo valore è salvato in PC Comunque: inizializzazione (il processore deve iniziare da uno stato noto) input di RESET per esempio: azzerata l uscita della ALU, caricarne poi il valore in PC S. Salvatori - Microelettronica marzo 2018 (61)