Progettazione dell unità di elaborazioni dati e prestazioni. Il processore: unità di elaborazione. I passi per progettare un processore

Documenti analoghi
Il processore: unità di elaborazione

Richiami sull architettura del processore MIPS a 32 bit

Richiami sull architettura del processore MIPS a 32 bit

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

L'architettura del processore MIPS

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

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

Le etichette nei programmi. Istruzioni di branch: beq. Istruzioni di branch: bne. Istruzioni di jump: j

Progetto CPU (ciclo singolo) Salvatore Orlando

Elementi base per la realizzazione dell unità di calcolo

L unità di controllo di CPU a singolo ciclo

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

Architettura degli Elaboratori

Architettura degli Elaboratori B Introduzione al corso

Processore: Datapath & Control. Progetto CPU (ciclo singolo) Rivediamo i formati delle istruzioni. ISA di un MIPS-lite

CPU a ciclo multiplo

CPU a ciclo multiplo

Implementazione semplificata

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

Architettura di tipo registro-registro (load/store)

Il processore: unità di controllo

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

Un altro tipo di indirizzamento. L insieme delle istruzioni (3) Istruz. di somma e scelta con operando (2) Istruzioni di somma e scelta con operando

Elementi di informatica

Riassunto. Riassunto. Ciclo fetch&execute. Concetto di programma memorizzato. Istruzioni aritmetiche add, sub, mult, div

CPU a singolo ciclo: l unità di controllo, istruzioni tipo J

CPU pipeline hazards

Astrazione dell implementazione. Il processore: unità di elaborazione e unità di controllo (2) Il controllo della ALU.

L unità di controllo. Il processore: unità di controllo. Le macchine a stati finiti. Struttura della macchina a stati finiti

ISA (Instruction Set Architecture) della CPU MIPS

Università degli Studi di Cassino

Calcolatori Elettronici B a.a. 2007/2008

Sistemi e reti CPU Concetti di base

Capitolo 5 Elementi architetturali di base

Il linguaggio macchina

Corso di Calcolatori Elettronici MIPS: Istruzioni di confronto Istruzioni di controllo Formato delle istruzioni in L.M.

Istruzioni di trasferimento dati

Il processore: unità di elaborazione e unità di controllo (3)

Linguaggio macchina. Architettura degli Elaboratori e delle Reti. Il linguaggio macchina. Lezione 16. Proff. A. Borghese, F.

Calcolatori Elettronici

Problemi del ciclo singolo

Linguaggio macchina: utilizzo di costanti, metodi di indirizzamento

Lezione 20. Assembly MIPS: Il set istruzioni, strutture di controllo in Assembly

Il linguaggio macchina

Linguaggio Assembly e linguaggio macchina

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

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

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

Tutorato Architettura degli elaboratori

Componenti principali

Linguaggio Assembly e linguaggio macchina

Calcolatori Elettronici

Lezione 20. Assembly MIPS: Il set istruzioni, strutture di controllo in Assembly

Elementi di informatica

ISA e linguaggio macchina

Linguaggio Assembly e linguaggio macchina

Il pipelining: tecniche di base

Architettura degli Elaboratori

HARDWARE 1.4a: (Processore)

Architettura dei Calcolatori. Macchina di von Neumann /2. Macchina di von Neumann /1. Architettura dei Calcolatori

Data-path. ad un solo bus interno. Struttura del processore. L unità di elaborazione

Architettura degli Elaboratori B Introduzione al corso

Realizzazione a cicli di clock multipli

Capitolo 5 Struttura di base del processore

Struttura del processore. Funzionamento del processore

Componenti principali. Programma cablato. Architettura di Von Neumann. Programma cablato. Cos e un programma? Componenti e connessioni

Il quadro di insieme. Tecnologie per la memoria e gerarchie di memoria. Un ripasso: latch D e flip-flop D. Un ripasso: clock

Controllo a ciclo singolo

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

CALCOLATORI ELETTRONICI 15 aprile 2014

Architetture Digitali

La macchina programmata Instruction Set Architecture (1)

Reti logiche (2) Circuiti sequenziali

ARCHITETTURA DI UN ELABORATORE! Ispirata al modello della Macchina di Von Neumann (Princeton, Institute for Advanced Study, anni 40).!

ARCHITETTURA DI UN SISTEMA DI ELABORAZIONE

Architettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Appello del 19 Febbraio Attenzione:

Architettura di una CPU

L unità di elaborazione PC: MAR/MDR IR: R0 Rn: TEMP, V, Z

Architettura di un calcolatore e ciclo macchina. Appunti per la classe 3 Dinf

Laboratorio di Architettura degli Elaboratori LabArch 2007 Terzo Quadimestre, a.a Docente: H. Muccini

Struttura di un elaboratore

Macchine Astratte. Luca Abeni. February 22, 2017

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

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

CPU. Maurizio Palesi

Componenti e connessioni. Capitolo 3

Componenti di un processore

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

Il pipelining: tecniche di base

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

ARCHITETTURA DI UN ELABORATORE

Calcolo durata ciclo. Prestazioni Singolo Ciclo. Prestazioni singolo ciclo. Durata Ciclo Variabile

ARCHITETTURA DI UN ELABORATORE

Corso di Informatica

Memorie Corso di Calcolatori Elettronici A 2007/2008 Sito Web: Prof. G. Quarella

Architettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Appello del 18 Febbraio Attenzione:

Cicli di clock e istruzioni

Il processore. Istituzionii di Informatica -- Rossano Gaeta

La programmazione dei calcolatori. L insieme delle istruzioni. Vantaggi e svantaggi dell assembler. Benefici dei linguaggi ad alto livello

Calcolatori Elettronici

Transcript:

Il processore: unità di elaborazione Architetture dei Calcolatori (lettere A-I) Progettazione dell unità di elaborazioni dati e prestazioni Le prestazioni di un calcolatore sono determinate da: Numero di istruzioni CPI Count (IC) Durata del ciclo di clock (T CLOCK ) Cicli di clock per istruzione Clock cycle Per (CPI) IC T CLOCK La progettazione del processore (unità di elaborazione e unità di controllo) determina Durata del ciclo di clock Cicli di clock per istruzione (CPI) Valeria Cardellini 1 L unità di elaborazione dati Implementazione di un sottoinsieme (detto ridotto ) delle istruzioni MIPS Istruzioni di accesso alla memoria: lw e sw Istruzioni logico-aritmetiche: add, sub, and, or e slt Istruzioni di branch: beq Istruzioni di jump: j Progettazione dell unità di elaborazione Quadro di insieme dell implementazione Cicli di clock e temporizzazione Unità funzionali I passi per progettare un processore 1 Analizzare il set di istruzioni requisiti dell unità di elaborazione Il significato di ciascuna istruzione è dato dai trasferimenti di registri L unità di elaborazione deve includere uno spazio di memorizzazione per i registri del livello ISA L unità di elaborazione deve supportare ogni trasferimento di registri 2 Selezionare l insieme di componenti dell unità di elaborazione e stabilire la metodologia di temporizzazione 3 Assemblare l unità di elaborazione rispettando i requisiti 4 Assemblare l unità di controllo Valeria Cardellini 2 Valeria Cardellini 3

Istruzioni del set ridotto I primi due passi da implementare sono comuni a tutte le istruzioni,indipendentemente dalla classe di istruzione: Inviare l uscita del Program Counter (PC) alla memoria che contiene il programma e caricare l istruzione (fetch) Lettura di un registro (lw/sw) o più registri (altre istruzioni) Gli altri passi dipendono dall istruzione Sono comunque raggruppabili per classi di istruzioni Vantaggio della semplicità nella progettazione Pochi formati di istruzione facilitano l implementazione dell unità di elaborazione Istruzioni del set ridotto (2) Dopo aver letto i registri, tutte le istruzioni usano l Le istruzioni di accesso alla memoria per calcolare l indirizzo Le istruzioni logico-aritmetiche per effettuare l operazione Poi il comportamento delle istruzioni si differenzia Istruzioni di accesso alla memoria Devono accedere alla memoria per leggere/scrivere il dato Istruzioni logico-aritmetiche Devono accedere ad un registro per scrivere il risultato Istruzioni di branch e jump Devono modificare il Program Counter Valeria Cardellini 4 Valeria Cardellini 5 I cinque passi delle istruzioni I cinque passi delle istruzioni da effettuare Fetch (caricamento) dell istruzione dalla memoria Decode dell istruzione e fetch dei registri Decodifica dell istruzione e lettura dei registri Execute Uso della (esecuzione dell operazione o calcolo dell indirizzo) Memory access Accesso ad un operando in memoria -back Scrittura del risultato in un registro Una visione astratta PC 5: write-back fecth Reg access Reg 1: fetch 2: decode e fetch 3: execute 4: mem/reg access Valeria Cardellini 6 Valeria Cardellini 7

I formati MIPS: riassunto Lunghezza formato: bit; i tre formati delle istruzioni: Tipo R Tipo I Tipo J 31 26 op rs rt rd shamt funct 6 bits 5 bits 5 bits 5 bits 5 bits 6 bits 31 26 21 16 op rs rt immediate 6 bits 5 bits 5 bits 16 bits 31 26 op target address 6 bits 26 bits I campi op: operazione dell istruzione rs, rt, rd: registri sorgente (due) e destinazione shamt: shift amount funct: seleziona la variante dell operazione nel campo op address/immediate: offset dell indirizzo o valore immediato target address: indirizzo dell istruzione di jump 21 Valeria Cardellini 8 16 11 6 add, sub add rd, rs, rt sub rd, rs, rt lw, sw lw rt, rs, imm16 lw rt, rs, imm16 beq beq rs, rt, imm16 Le istruzioni del set ridotto 31 26 21 16 11 6 op rs rt rd shamt funct 6 bits 5 bits 5 bits 5 bits 5 bits 6 bits 31 26 21 16 op rs rt immediate 6 bits 5 bits 5 bits 16 bits 31 26 21 16 op rs rt immediate 6 bits 5 bits 5 bits 16 bits Valeria Cardellini 9 Unità funzionali Due tipologie di unità funzionali Circuiti combinatori Circuiti sequenziali Con uno stato memorizzato in uno o più elementi di stato Memoria (istruzioni e dati), registri, program counter Gli elementi di stato hanno almeno due ingressi ed una uscita Dato in ingresso da scrivere Clock per determinare l istante in cui il dato viene scritto Dato in uscita da leggere Metodologia di temporizzazione Definisce quando i segnali possono essere scritti/letti Si usa una metodologia di temporizzazione sensibile al fronte del clock (edge-triggered) I valori memorizzati vengono modificati solo in corrispondenza fronte del clock Clk Setup Hold Don t Care Setup Hold Valeria Cardellini 1 Cycle Time = CLK-to-Q + Longest Delay Path + Setup + Clock Skew (CLK-to-Q + Shortest Delay Path - Clock Skew) > Hold Time Valeria Cardellini 11

Progetto dell unità di elaborazione Primo approccio: un unità di elaborazione che elabora un operazione in un singolo ciclo di clock (single cycle) Questo comporta Un rallentamento del ciclo di clock (prestazioni basse) Necessità di duplicare unità che potrebbero essere riutilizzate Ad esempio, sommatore ed (necessarie due unità distinte) PC Valeria Cardellini 12 Sommatore Multiplexer (MUX) Componenti base Valeria Cardellini 13 A B A B Select OP Adder A Y B MUX Sum Carry Result Componenti base (2) Registri N bit di input e di output Enable negato (): Out non cambia asserito (1): Out diviene In Banco dei registri registri di bit Due bus di output a bit Un bus di input a bit 3 indirizzi di registri (a 5 bit) 1 segnale di busw Clk Enable In N Clk Out N RWRA RB Enable 5 5 5 -bit busa busb I blocchi della progettazione Blocchi da progettare (usando i componenti di base) NB: sono solo passi progettuali, non c è nessuna relazione con i passi di esecuzione di una istruzione! 1 Fase di fetch Accedere all istruzione ed incrementare PC 2 Decode, fetch e execute per formato R Istruzioni logico-aritmetiche 3 Decode, fetch e execute per accesso alla memoria Istruzioni di accesso alla memoria lw e sw Istruzioni di branch Valeria Cardellini 14 Valeria Cardellini 15

Blocco di fetch Memoria istruzioni: elementi di stato con indirizzo Program Counter: registro per indirizzo istruzione Sommatore: per calcolare l indirizzo successivo PC = PC + 4 Unità di elaborazione per fetch Un istruzione viene letta e l indirizzo della prossima istruzione viene calcolato e rimesso nel PC address Add PC Add Sum PC address 4 a b Program counter c Adder Valeria Cardellini 16 Valeria Cardellini 17 Decode, fetch e execute per formato R Banco dei registri Arithmetic Logic Unit () Unità di elaborazione per decode, fetch e execute per formato R I campi dell istruzione vanno nel banco dei registri I valori letti vanno nella, si effettua il calcolo e si scrive il risultato 2 1 2 Reg Valeria Cardellini 18 Valeria Cardellini 19

Decode, fetch e execute per formato I (lw/sw) Memoria Unità per l estensione del segno Necessaria perché l indirizzo nel campo è di 16 bit, mentre il valore di base nel registro è a bit Mem 16 Unità di elaborazione per decode, fetch e execute per formato I (lw/sw) I campi dell istruzione vanno nel banco dei registri I valori letti vanno nella, si effettua il calcolo e si scrive il risultato nel registro 2 Reg 1 2 Mem Mem 16 Mem a unit b -extension unit Valeria Cardellini 2 Valeria Cardellini 21 Unità di elaborazione per decode, fetch e execute per formato I (beq) Due registri da confrontare Offset da sommare a PC Occorre traslare l offset di 2 posizioni a sinistra perché esprime l offset in word Register numbers control 5 4 3 5 1 2 5 2 Shift left 2 Unità di elaborazione per decode, fetch e execute per formato I (beq) Legge i due registri, confronta con zero e calcola la destinazione (sommando al PC) se i registri sono uguali Reg PC Add Sum 16 Valeria Cardellini 22 Valeria Cardellini 23

Singolo ciclo di clock Obiettivo Progettare un unità di elaborazione che elabora tutte le istruzioni in un singolo ciclo di clock (single cycle) Conseguenze della scelta progettuale Nessuna risorsa/unità può essere utilizzata più di una volta per istruzione Occorre duplicare le risorse/unità che devono essere utilizzate più volte Ad esempio, memoria dati separata da memoria istruzioni, /sommatore Per condividere la stessa unità tra diverse classi di istruzioni si utilizza un multiplexer Permette di selezionare uno tra più input tramite segnali di controllo Esecuzione di add Esempio: add $t, $s1, $s2 Assumiamo che $s1=15 e $s2=21 I campi dell istruzione vanno nel banco dei registri I valori letti vanno nella, si effettua il calcolo e si scrive il risultato 17 18 8 2 1 1 2 Reg 15 21 36 Valeria Cardellini 24 Valeria Cardellini 25 Esecuzione di lw Esempio: lw $t, 12($s1) Assumiamo che $s1=16 e che la cella di indirizzo 1216 contenga il valore 26 I campi dell istruzione vanno nel banco dei registri I valori letti vanno nella, si effettua il calcolo e si scrive il risultato nel registro 17 8 26 2 Reg 12 1 1 2 16 16 12 43 1216 1 Mem Mem 26 Esecuzione di sw Esempio: sw $t, 12($s1) Assumiamo che $s1=16 e $t=25 I campi dell istruzione vanno nel banco dei registri I valori letti vanno nella, si effettua il calcolo e si scrive il risultato in memoria 17 8 2 Reg 12 1 2 16 16 12 43 1216 25 1 Mem Mem Valeria Cardellini 26 Valeria Cardellini 27

Esecuzione di beq Esempio: beq $t, $t1, 1 Assumiamo che $t=15 e $t1=21, (PC+4)=22 Legge i due registri, confronta con zero e calcola la destinazione (sommando al PC) se i registri sono uguali 22 62 PC Blocco 1: fetch address I blocchi fondamentali 4 Add Blocco 2: istruzioni formato R 2 1 2 9 8 1 4 15 21 1 Blocco 3: istruzioni lw/sw 43 Mem 1 2 2 Reg 16 Mem Reg Blocco 4: istruzioni branch 4 Valeria Cardellini 28 Valeria Cardellini 29 Composizione dei blocchi Uniamo il blocco relativo alle istruzioni di accesso alla memoria con quello per le istruzioni di tipo R Composizione dei blocchi (2) Aggiungiamo anche il blocco relativo al fetch delle istruzioni Blocco per il caricamento (fecth) delle istruzioni Add 4 Multiplexer per scegliere se il secondo operando è un indirizzo (tipo I) oppure il dato in un registro (tipo R) Multiplexer per scegliere se ai registri va il dato dalla memoria (tipo I) oppure il risultato dell operazione (tipo R) Valeria Cardellini 3 Mem PC address MemtoReg 2 1 Src 2 M ux M ux Reg 16 Mem Valeria Cardellini 31

Composizione dei blocchi (3) Aggiungiamo ora anche il blocco per l istruzione beq Multiplexer per scegliere tra il caricamento della prossima istruzione oppure dell istruzione calcolata nella beq Valeria Cardellini