Microelettronica Corso introduttivo di progettazione di sistemi embedded

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

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

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 dei calcolatori e sistemi operativi. Architettura MIPS e set istruzioni Capitolo 2 P&H

L'architettura del processore MIPS

Richiami sull architettura del processore MIPS a 32 bit

Architettura del processore e esecuzione delle istruzioni

Richiami sull architettura del processore MIPS a 32 bit

Microelettronica Corso introduttivo di progettazione di sistemi embedded

Calcolatori Elettronici A a.a. 2008/2009

Sommario. Premessa Architettura ARM Programmer's model (ARM7) Sistemi di sviluppo. S. Salvatori - Microelettronica aprile 2016 (13 di 45)

Microelettronica Corso introduttivo di progettazione di sistemi embedded

Microelettronica Corso introduttivo di progettazione di sistemi embedded

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

Introduzione all'architettura dei Calcolatori. Maurizio Palesi

Il Linguaggio Assembly

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

Architettura di un calcolatore e linguaggio macchina. Primo modulo Tecniche della programmazione

Architettura e funzionamento del calcolatore

L insieme delle istruzioni (6)

La CPU a singolo ciclo

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

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

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

La CPU a singolo ciclo

Calcolatore: sottosistemi

Architettura dei calcolatori

Sistemi e reti CPU Concetti di base

Laboratorio di Architettura degli Elaboratori LabArch 2006 Secondo Quadimestre, a.a Docente: H. Muccini

Architettura degli Elaboratori

Architettura di un calcolatore: introduzione. Calcolatore: sottosistemi

Il set istruzioni di MIPS Modalità di indirizzamento. Proff. A. Borghese, F. Pedersini

Fondamenti di Informatica A. A / 1 9

L unità di controllo di CPU a singolo ciclo

L unità di controllo di CPU a singolo ciclo

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

Microelettronica Corso introduttivo di progettazione di sistemi embedded

Istruzioni macchina. Dove sono gli operandi? Ciclo della CPU. Elementi di un istruzione macchina. Rappresentazione delle istruzioni

Progetto CPU a singolo ciclo

Microelettronica Corso introduttivo di progettazione di sistemi embedded

Capitolo 2. Elaborazione dei dati. Mauro Giacomini Pearson Addison-Wesley. All rights reserved

LA CPU INTEL Vantaggi dei programmi Assembly

Architettura di un calcolatore: introduzione. Calcolatore: sottosistemi

Architettura di un calcolatore: introduzione. Calcolatore: sottosistemi

Istruzioni e linguaggio macchina

Architettura degli Elaboratori Lez. 8 CPU MIPS a 1 colpo di clock. Prof. Andrea Sterbini

Architetture dei sistemi elettronici 14. Il microcontrollore

Il set istruzioni di MIPS Modalità di indirizzamento. Proff. A. Borghese, F. Pedersini

Microelettronica Corso introduttivo di progettazione di sistemi embedded

Processore. Memoria I/O. Control (Parte di controllo) Datapath (Parte operativa)

Linguaggio assembler e linguaggio macchina (caso di studio: processore MIPS)

Il linguaggio macchina

Introduzione al linguaggio macchina

La pipeline. Sommario

Processore. Memoria I/O. Control (Parte di controllo) Datapath (Parte operativa)

Sia per la II prova intercorso che per le prove di esame è necessaria la PRENOTAZIONE

Architettura degli elaboratori CPU a ciclo singolo

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

Linguaggio Assembly e linguaggio macchina

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

Architettura degli Elaboratori

Architettura del Calcolatore

MIPS & SPIM. Modulo del Corso di Architettura degli Elaboratori. Nicola Paoletti. Università di Camerino Scuola di Scienze e Tecnologie

Architettura dei calcolatori e sistemi operativi. Il processore Capitolo 4 P&H

La pipeline. Sommario

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

Linguaggio Assembly e linguaggio macchina

Il processore Pentium

Macchina di Riferimento: argomenti

Architettura dei sistemi di elaborazione: La CPU: Architettura (parte 2)

CPU a ciclo multiplo

Valutazione delle prestazioni dei Calcolatori Elettronici

Come si definisce il concetto di performance? Tempo di esecuzione di un programma. numero di task/transazioni eseguiti per unità di tempo

Linguaggio Assembly e linguaggio macchina

Architettura hardware

CPU. ALU e Registri della CPU. Elementi della CPU. CPU e programmazione (Parte 1) Central Processing Unit, processore

Calcolatori Elettronici B a.a. 2004/2005

Architettura degli elaboratori CPU a ciclo singolo

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

INGEGNERIA E TECNOLOGIE DEI SISTEMI DI CONTROLLO Processori per sistemi di controllo

Linguaggio macchina. 3 tipi di istruzioni macchina. Istruzioni per trasferimento dati. Istruzioni logico/aritmetiche

Introduzione al linguaggio macchina. Istruzione l/m

INGEGNERIA E TECNOLOGIE DEI SISTEMI DI CONTROLLO Processori per sistemi di controllo. Classificazione. I microcontrollori

Calcolatori Elettronici Prof. Gian Luca Marcialis. Capitolo 4 Unità Centrale di Elaborazione Istruzioni Macchina

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

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

Principali Innovazioni nei Computer (1)

Valutazione delle prestazioni dei. Calcolatori Elettronici. Calcolatori Elettronici

Valutazione delle prestazioni

CPU pipeline 4: le CPU moderne

Un quadro della situazione. Cosa abbiamo fatto. Lezione 30 Valutazione delle Prestazioni. Dove stiamo andando.. Perché:

Il processore - CPU (CENTRAL PROCESSING UNIT)

Architettura degli elaboratori - II Introduzione

Architettura dei calcolatori e sistemi operativi. Il processore pipeline Capitolo 4 P&H

Lezione4: MIPS e Istruzioni (1 Parte)

Transcript:

Microelettronica Corso introduttivo di progettazione di sistemi embedded Elementi per il progetto di un microprocessore: note 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 aprile 2018 (1)

Sommario Formato delle istruzioni Tipi di istruzione Modi di indirizzamento CISC vs RISC Pipeline Note sui RISC S. Salvatori - Microelettronica aprile 2018 (2)

Formato delle istruzioni Tipi di istruzione Modi di indirizzamento CISC vs RISC Pipeline Note sui RISC S. Salvatori - Microelettronica aprile 2018 (3)

Formati per le istruzioni Esempio ADD r, op1, op2, next_inst r := op1 + op2 S. Salvatori - Microelettronica aprile 2018 (4)

Formati per le istruzioni Esempio ADD r, op1, op2, next_inst r := op1 + op2 istruzione a 4 indirizzi: 4xn + f S. Salvatori - Microelettronica aprile 2018 (5)

Formati per le istruzioni Esempio ADD r, op1, op2 r := op1 + op2 istruzione a 3 indirizzi: ARM mode S. Salvatori - Microelettronica aprile 2018 (6)

Formati per le istruzioni Esempio ADD r, op1 r := r + op1 istruzione a 2 indirizzi: THUMB mode S. Salvatori - Microelettronica aprile 2018 (7)

Formati per le istruzioni Esempio ADD op1 A := A + op1 istruzione a 1 indirizzo: 6502 S. Salvatori - Microelettronica aprile 2018 (8)

Formati per le istruzioni Esempio ADD ToS := ToS + NoS istruzione a 0 indirizzi: S. Salvatori - Microelettronica aprile 2018 (9)

Formato delle istruzioni Tipi di istruzione Modi di indirizzamento CISC vs RISC Pipeline Note sui RISC S. Salvatori - Microelettronica aprile 2018 (10)

Tipi di istruzione Data processing addizione, sottrazione, moltiplicazione, operazioni logiche, shift, rotazione, Data movement muovere dati tra locazioni di memoria o tra una locazione e un registro Control flow spostare l esecuzione verso altre parti del programma, dipendenti o meno da condizioni (anche eccezioni) Execution state spostare l esecuzione verso modi privilegiati (funzione di sistema operativo) S. Salvatori - Microelettronica aprile 2018 (11)

Controllo di flusso Istruzioni specifiche devono essere in grado di controllare il flusso del programma: LABEL B LABEL In generale, i salti possono essere condizionati registro di stato che contiene le FLAG Chiamate a subroutine meccanismi di call e return Chiamate speciali (stati privilegiati) Eccezioni S. Salvatori - Microelettronica aprile 2018 (12)

Formato delle istruzioni Tipi di istruzione Modi di indirizzamento CISC vs RISC Pipeline Note sui RISC S. Salvatori - Microelettronica aprile 2018 (13)

Modi di indirizzamento Immediato L istruzione contiene il dato Assoluto l indirizzo del dato Indiretto l indirizzo della locazione che contiene l indirizzo del dato a registro il numero del registro che contiene il dato a registro indiretto il numero del registro che contiene l indirizzo del dato S. Salvatori - Microelettronica aprile 2018 (14)

Modi di indirizzamento base + offset il n. del registro, base, e un offset (immediato) da aggiungere per calcolare l indirizzo del dato base + indice l indicazione del registro base e del registro per l offset base + indice scalato come sopra ma viene indicato anche un fattore moltiplicativo 2 n con stack è specificato un puntatore col quale conoscere l indirizzo della lista di dati... S. Salvatori - Microelettronica aprile 2018 (15)

Formato delle istruzioni Tipi di istruzione Modi di indirizzamento CISC vs RISC Pipeline Note sui RISC S. Salvatori - Microelettronica aprile 2018 (16)

Compilatore Il progettista del up definisce il set di istruzioni che ritiene più idoneo allo svolgimento di qualunque algoritmo Un programmatore lavora più agevolmente traducendo il proprio algoritmo in un linguaggio ad alto livello (un livello di astrazione più o meno elevato) Tuttavia, il up deve ricevere un listato composto da istruzioni che sono incluse nel suo set Il compilatore svolge proprio il lavoro di costruzione del listato idoneo al set di istruzioni del up Nel progetto si deve allora tenere conto di tale processo: il set di istruzioni viene ideato anche in base alle caratteristiche del compilatore S. Salvatori - Microelettronica aprile 2018 (17)

CISC vs RISC Nei primi up si tendeva a fissare un set di istruzioni complesse in modo che la singola istruzione potesse svolgere il lavoro nel modo più versatile Un CISC riduce così il lavoro del compilatore perché un set di istruzioni complesse si avvicina di più al livello di astrazione del programmatore stesso: procedure incluse in una singola istruzione modi di indirizzamento ricchi e sofisticati tipi di dati anche molto diversi S. Salvatori - Microelettronica aprile 2018 (18)

CISC vs RISC Il motivo di una tale filosofia era legato (1980) al fatto che le memorie presentavano un elevato tempo di accesso: non era quindi il up a limitare la velocità di elaborazione; la logica di controllo del up si basava su una ROM con cui svolgere un microcodice interno per ogni struzione: una istruzione complessa era eseguita più rapidamente di molte istruzioni semplici che richiedevano diversi accessi alla memoria esterna Nei processori CISC buona parte dell area di silicio era occupata proprio dalla ROM che conteneva il microcodice In quest ambito nacque l idea dei up con set di istruzione notevolmente semplificato: RISC Verso i RISC S. Salvatori - Microelettronica aprile 2018 (19)

Il lavoro tipico di un processore Per ottimizzare il progetto di un processore bisogna tenere conto del lavoro che esso effettivamente svolge nell'esecuzione di un qualunque programma; A prima vista si potrebbe pensare che un processore spenda la maggior parte del tempo di lavoro nell'elaborazione (logica o aritmetica da parte della ALU); In realtà si nota che molto più spesso dell'elaborazione il up è impegnato in istruzioni di movimento dati sia tra registri interni che tra registri e memoria. uso tipico delle istruzioni S. Salvatori - Microelettronica aprile 2018 (20)

Ottimizzazione del progetto di un processore Per aumentare la velocità di un up, bisognerebbe ottimizzare: le istruzioni di movimento dati sia tra registri interni che tra registri e memoria l'esecuzione di istruzioni di branch e di chiamata a routine Pipeline, cache, S. Salvatori - Microelettronica aprile 2018 (21)

Formato delle istruzioni Tipi di istruzione Modi di indirizzamento CISC vs RISC Pipeline Note sui RISC S. Salvatori - Microelettronica aprile 2018 (22)

Cicli di esecuzione di una istruzione Il up esegue un istruzione percorrendo i seguenti passi principali: prelievo dell istruzione (fetch) decodifica accesso ai diversi operandi (reg) calcolo da parte della ALU (anche dell indirizzo di un operando) accesso alla memoria (operando) scrittura del risultato (event. in registro) l hardware è sotto-utilizzato (p. es. la ALU è usata solo nella fase 4) Pipeline con questo schema la velocità di esecuzione, in teoria, potrebbe aumentare di 6 volte S. Salvatori - Microelettronica aprile 2018 (23)

Pipeline l istruzione successiva può cominciare prima che la precedente sia terminata in questo modo l hardware è continuamente utilizzato aumenta il throughput S. Salvatori - Microelettronica aprile 2018 (24)

Condizione di rottura per read-after-write Esiste però il problema qualora l istruzione successiva debba utilizzare quanto calcolato dalla precedente regola ovvia : leggere dopo aver scritto 1 fetch dec reg ALU mem res 2 instruction fetch dec stall reg ALU mem res time S. Salvatori - Microelettronica aprile 2018 (25)

Condizione di rottura per salto L altra causa di rottura del pipeline è l esecuzione di un istruzione di salto S. Salvatori - Microelettronica aprile 2018 (26)

Formato delle istruzioni Tipi di istruzione Modi di indirizzamento CISC vs RISC Pipeline Note sui RISC S. Salvatori - Microelettronica aprile 2018 (27)

Premessa 1980: Patterson e Ditzel, The case for the reduced instruction set computer Berkley: RISC I (progetto molto semplice rispetto ai CISC allora in commercio e sviluppato in un anno per un lavoro di dottorato) Quali sono le caratteristiche principali di un processore RISC S. Salvatori - Microelettronica aprile 2018 (28)

Architettura e organizzazione per un RISC Set di di istruzioni ridotto lunghezza fissa fissa un un solo solo ciclo ciclo per per l esecuzione (pipeline) complicazione spostata sul sul compilatore, mentre l hardware esegue esegue istruzioni semplici ad ad alta alta velocità Ampio banco di di registri per per dati dati esecuzione veloce veloce dell'elaborazione accessi limitati verso verso la la memoria principale Logica di di decodifica hard-wired non non c è c è bisogno di di microcodice ampio ampio su su ROM ROM aumento della della velocità area di silicio minore tempo di sviluppo minore prestazioni più elevate Reduced Reduced Instruction Instruction Set Set Computer Computer Funzionalità load/store il il up up lavora lavora sui sui dati dati nei nei registri accessi alla alla memoria (collo (collo di di bottiglia per per la la velocità) limitati alle alle sole sole operazioni di di load load e store store Esecuzione in in pipeline ogni ogni istruzione è divisa divisa in in più più fasi fasi che che interessano parti parti hardware diverse miglioramento del del throughput Patterson, Patterson, Ditzel, Ditzel, The The Case Case for for the the Reduced Reduced Instruction Instruction Set Set Computer Computer S. Salvatori - Microelettronica aprile 2018 (29)

I vantaggi che si hanno con i RISC Semplicità dell'hardware: più più semplice la la definizione e il il progetto della della pipeline Minor numero di di MOS: il il chip chip può può lavorare a una una frequenza di di clock clock più più elevata (mantenendo la la stessa stessa dissipazione di di potenza) Se la la CPU CPU è più più semplice: è più più facile facile la la realizzazione di di sistemi sistemi in in cui cui la la CPU CPU è solo solo uno uno dei dei blocchi blocchi (sistemi embedded) Una CPU CPU semplice: richiede un un tempo tempo di di sviluppo minore minore l'evoluzione sarà sarà più più rapida rapida Prestazioni più più elevate deriva deriva da da tutte tutte le le caratteristiche precedenti: velocità, semplicità, tempi tempi di di sviluppo, evoluzione S. Salvatori - Microelettronica aprile 2018 (30)

Gli svantaggi che si hanno con i RISC Bassa densità di di codice rispetto ai ai CISC Semplicità del set di di istruzioni Istruzioni a formato fisso Una bassa densità di di codice porta a una maggiore frequenza di di accessi (fetch) e quindi un un maggiore consumo di di potenza S. Salvatori - Microelettronica aprile 2018 (31)

L'architettura scelta per ARM Elevato numero di di registi 31 31 registri interni interni registri dedicati al al modo modo di di funzionamento Berkeley RISC design Architettura LOAD/STORE operazioni sui sui dati dati accedono solo solo al al contenuto di di registri Modi di di indirizzamento semplificati gli gli indirizzi di di load load e store store sono Istruzioni sono a lunghezza fissa determinati dal dal contenuto di di registri e (3-address) di di campi campi nell istruzione stessa stessa la la decodifica è semplificata uniformità dei dei campi campi Register window 32 32 registri visibili visibili di di un un Delayed branches banco banco molto molto più più esteso esteso per per non non interrompere la la pipeline, consumo di di silicio silicio salto salto dopo dopo l istruz. successiva (solo (solo Sun Sun SPARC SPARC continuò si si perde perde l atomicità delle delle istruzioni tale tale adozione) Esecuzione a ciclo singolo per per tutte le le istruzioni servono memoria dati dati e memoria istruzioni sistema più più costoso e complesso S. Salvatori - Microelettronica aprile 2018 (32)

Novità di ARM Rispetto al progetto RISC I, le novità introdotte per ARM furono: Controllo sia di ALU che sia di ALU che shifter ogni ogni istruzione può può utilizzare ALU ALU e shifter Auto-decrement e auto-increment modi modi di di indirizzamento automaticamente aggiornati loop loop ottimizzati LOAD/STORE multipli massimizzato il il throughput Esecuzione condizionata ogni ogni istruzione è eseguita in in base base a una una condizione massimizzato il il throughput S. Salvatori - Microelettronica aprile 2018 (33)

CPU08 (Freescale) opcode map (CISC) S. Salvatori - Microelettronica aprile 2018 (34)

Sommario del set di istruzioni per ARM S. Salvatori - Microelettronica aprile 2018 (35)

Sommario del set di istruzioni per ARM S. Salvatori - Microelettronica aprile 2018 (36)

Modo ARM (32 bit) e modo Thumb (16 bit) ARM non presenta la bassa densità di codice tipica dei RISC la densità non è comunque paragonabile a quella di un CISC Per soddisfare le esigenze in cui la densità di codice è di primaria importanza è stata creata l architettura Thumb: set di istruzioni compresse a 16 bit (dal set ARM a 32 bit) L operazione di decompressione è di tipo hardware (durante il pipeline) Densità di codice anche superiore a quella che si ha in processori CISC S. Salvatori - Microelettronica aprile 2018 (37)

Modo ARM (32 bit) e modo Thumb (16 bit) Il Il codice codice Thumb Thumb utilizza utilizza circa circa il il 40% 40% di di istruzioni in in più più rispetto al al codice codice ARM ARM Il Il codice codice Thumb Thumb utilizza il il 30% 30% in in meno meno di di potenza della della memoria esterna Il Il codice codice Thumb Thumb occupa occupa circa circa il il 70% 70% dell equivalente codice codice ARM ARM Con Con una una memoria esterna a 16 16 bit bit il il codice codice Thumb Thumb è circa circa il il 45% 45% più più veloce veloce di di quello quello ARM ARM Con Con una una memoria esterna a 32 32 bit bit il il codice codice ARM ARM è circa circa il il 40% 40% più più veloce veloce di di quello quello Thumb Thumb ARM memoria 32-bit Thumb 16-bit Thumb 16-bit ARM ARM 32-bit Thumb S. Salvatori - Microelettronica aprile 2018 (38)

Riferimenti S. Furber, ARM, System-onchip Architecture, cap. 1. S. Salvatori - Microelettronica aprile 2018 (39)