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

Documenti analoghi
Lezione 29 Il processore: unità di controllo (2)

Il processore: unità di controllo

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

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

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

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

Progetto CPU a singolo ciclo

Lezione 28 Il processore: unità di controllo (1)

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

L unità di controllo di CPU a singolo ciclo

Il processore: unità di elaborazione

Un quadro della situazione. Lezione 15 Il Set di Istruzioni (3) Dove siamo nel corso. Organizzazione della lezione. Cosa abbiamo fatto

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

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

Richiami sull architettura del processore MIPS a 32 bit

Richiami sull architettura del processore MIPS a 32 bit

L'architettura del processore MIPS

CALCOLATORI ELETTRONICI A 25 gennaio 2011

Informazioni varie. Lezione 18 Il Set di Istruzioni (5) Dove siamo nel corso. Un quadro della situazione

CALCOLATORI ELETTRONICI 30 agosto 2010

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

CALCOLATORI ELETTRONICI 27 giugno 2017

Lezione 17 Il Set di Istruzioni (3)

Calcolatori Elettronici

CALCOLATORI ELETTRONICI 14 giugno 2010

Lezione 18 Il Set di Istruzioni (4)

CALCOLATORI ELETTRONICI 9 settembre 2011

Progetto CPU a singolo ciclo

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

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

CPU a ciclo multiplo

CALCOLATORI ELETTRONICI 9 gennaio 2013

Architettura degli elaboratori - CPU multiciclo A.A. 2016/17. Architettura degli elaboratori

Architettura degli Elaboratori

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

L unità di controllo di CPU multi-ciclo. Sommario

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

CALCOLATORI ELETTRONICI 15 giugno 2015

CPU pipeline hazards

CPU a ciclo multiplo: l unità di controllo

CALCOLATORI ELETTRONICI 20 gennaio 2012

CALCOLATORI ELETTRONICI 29 giugno 2015

CALCOLATORI ELETTRONICI 27 marzo 2018

Unità di controllo della pipeline

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

L unità di controllo di CPU multi-ciclo

Architettura degli elaboratori CPU a ciclo singolo

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

CPU a ciclo multiplo

Architettura degli Elaboratori

CALCOLATORI ELETTRONICI 15 aprile 2014

Università degli Studi di Cassino

Elementi base per la realizzazione dell unità di calcolo

Calcolatori Elettronici

Il controllo specificato come microprogramma

Università degli Studi di Cassino

Università degli Studi di Cassino

slt $t1,$t2,$t3 if ($t2<$t3) $t1=1; Confronto tra registri slti $t1,$t2,100 if ($t2<100)$t1=1; Cfr. registro-costante

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

Modifiche di orario. Lezione 19 Il Set di Istruzioni (6) Dove siamo nel corso. Un quadro della situazione

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

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

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

Università degli Studi di Cassino

Fetch Decode Execute Program Counter controllare esegue prossima

Architettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Pre-appello del 12 Gennaio Attenzione:

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

Architettura degli elaboratori CPU a ciclo singolo

Capitolo 5 Elementi architetturali di base

Architettura dell elaboratore

Architettura dell elaboratore

Il Processore: l Unità di Controllo Principale Barbara Masucci

Calcolatori Elettronici A a.a. 2008/2009

Progetto CPU (ciclo singolo)

Progetto CPU (ciclo singolo) Salvatore Orlando

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

Esercitazione 06 Progettazione di una CPU RISC-V

Linguaggio macchina e register file

La pipeline. Sommario

Introduzione all'architettura dei Calcolatori. Maurizio Palesi

Rappresentazione dell informazione

Calcolatori Elettronici B a.a. 2004/2005

Cosa abbiamo fatto. Dove stiamo andando.. Perché: per poter capire cosa deve offrire al programmatore il processore come istruzioni

La pipeline. Sommario

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

Una CPU multi-ciclo. Sommario

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

Istruzioni e linguaggio macchina

Arch. Elab. - S. Orlando 2. unità funzionali possono essere usate più volte per eseguire la stessa

Esercitazione del 05/05/ Soluzioni

Memoria centrale (RAM) Registri della CPU. Definizioni. Architettura considerata in CPUSim. Programma in linguaggio macchina

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

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

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

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

Calcolatori Elettronici

Transcript:

Un quadro della situazione Lezione 28 Il Processore: unità di lo (2) Vittorio Scarano rchitettura Corso di Laurea in Informatica Università degli Studi di Salerno Input/Output Sistema di Interconnessione Registri Central Processing Unit Memoria Principale Interconnessione interna alla CPU Unità di lo Unità ritmetico Logica Cosa abbiamo fatto progettazione del processore Dove stiamo andando.. progettazione della unità di lo Perché: per comprendere come viene pilotato la unità di elaborazione 2 Dove siamo nel corso Organizzazione della lezione Progettazione: unità di elaborazione Codifica della informazione Logica Digitale Unità ritmetico Logica () Memoria Il set delle istruzioni Processore: unità di elaborazione Processore: unità di lo Processore: pipeline Valutazione delle prestazioni Un riepilogo: ruolo della unità di lo progettazione mediante macchina a stati finiti Semplificazione del progetto della unità di lo mediante la microprogrammazione 3

La unità di lo Le macchine a stati finiti Responsabile dei segnali di lo che vengono inviati alla unità di elaborazione lcune difficoltà gestione dei diversi passi di esecuzione della istruzione Due tecniche per la progettazione della unità di lo tecniche per la rappresentazione della UC Queste rappresentazioni della UC permettono la sintesi automatica della implementazione sotto forma di ROM o di PL 5 Rappresentazione simbolica del comportamento Costituite da: un insieme di stati (rappresentati con un cerchio) insieme di transizioni di stato attraverso una funzione di prossimo stato che mette in relazione lo stato corrente e lo stato successivo Nella rappresentazione della UC ogni stato rappresenta i valori dei segnali di lo che sono messi a 1 quelli non esplicitati vanno messi a 0 per il lo dei multiplexer è invece necessario specificare ad ogni passo il valore 6 =+ =Reg{IR{20-16]] Esecuzione, Out= op Out = + Sign-extend(IR{15- if (==) then =[31-28] Una visione completa della macchina a SF address computation 2 Src= 1 Src= 10 Op = 00 3 (Op = 'LW') Mem IorD =1 access (Op = 'SW') 5 Start Mem IorD= 1 access 0 Mem Src= 0 IorD= 0 IR Src = 01 Op =00 Source= 00 6 (Op='LW') or (Op= 'SW') Execution Src =1 Src = 00 Op= 10 Instruction fetch (Op = R-type) R-type completion 7 RegDst = 1 Reg MemtoReg =0 ranch completion 8 Src = 1 Src= 00 Op = 01 Cond Source= 01 (Op = 'EQ') Instruction decode/ register fetch 1 9 Src= 0 Src = 11 Op= 00 (Op ='J') Jump completion Source= 10 -back step 7 RegDst =0 Reg MemtoReg=1 8

Implementazione della UC dalla MSF Uso di un registro temporaneo che memorizza lo stato corrente di un blocco di logica combinatoria che determina i segnali e lo stato futuro Combinational logic Inputs Outputs Datapath outputs Organizzazione della lezione Un riepilogo: ruolo della unità di lo progettazione mediante macchina a stati finiti Semplificazione del progetto della unità di lo mediante la microprogrammazione Inputs from instruction register opcode field State register Next state 9 10 Necessità di strumenti progettuali più efficaci Per la progettazione della Unità di lo per il set di istruzioni del MIPS ridotto (da noi studiato) la macchina a stati finiti ha 10 stati e quindi risulta facilmente gestibile Per unità di lo per implementazioni complete da 1 a 20 cicli di clock centinaia di stati con molti più archi la rappresentazione grafica diventa complicata da mantenere possibili errori di progettazione Necessario uno strumento più efficace.. 11 L idea: la microprogrammazione Trattare l insieme dei segnali di lo come una istruzione da eseguire una istruzione di lo detta microistruzione per differenziarla dalle istruzioni MIPS Ogni microistruzione definisce quali segnali vanno messi a 1 in un certo stato definisce anche quale è la successiva microistruzione da eseguire Il microprogramma rappresentazione simbolica della unità di lo 12

Il microprogramma Il formato delle microistruzioni Rappresentazione simbolica della unità di lo che verrà tradotta in porte logiche da strumenti automatici come per le macchine a stati finiti Formato delle microistruzioni valgono gli stessi principi progettuali della progettazione della unità di elaborazione (semplicità etc.) Formato campi che specificano il valore dei segnali di lo 13 Ogni microistruzione contiene 7 campi Campo Funzione operazione compiuta da ; risultato in Out provenienza primo operando provenienza secondo operando lettura o scrittura del banco dei registri e provenienza dei valori in caso di scrittura lettura o scrittura della memoria e provenienza dei dati; in caso di lettura specifica il registro destinazione modalità di aggiornamento del modalità di scelta della istruzione successiva 1 La scelta della microistruzione successiva Diverse possibilità: passare alla microistruzione seguente: il campo viene messo al valore passare alla microistruzione che inizia l esecuzione della prossima istruzione MIPS la prima microistruzione ha una etichetta il campo viene messo al valore passare alla microistruzione a seconda di valori indicati in input alla unità di lo si usa una tabella di Dispatch (solitamente una ROM) il campo viene messo al valore Dispatch i dove i è il valore che viene passato alla tabella di Dispatch che restituisce la prossima istruzione 15 I valori dei campi (1) stringa Subt Func code Extend Extshift indica la label della istruzione deve sommare deve sottrarre deve usare funct per la operazione è il primo operando della registro è il primo operando della registro è il secondo operando della il valore è il secondo operando della uscita esten. segno è il secondo operando della uscita dello shift è il secondo operando della 16

I valori dei campi (2) Le label e la tabella di Dispatch MDR outcond Jump addr. Dispatch i legge i due registri, usando IR, output in e scrive usando rt come registro, e Out come dato scrive usando rt come registro, e MDR come dato legge la memoria usando (indir.), risultato in IR e MDR legge la memoria usando Out (indir.), risultato in MDR scrive la memoria usando Out (indir.), e (dato) scrive uscita della nel se Zero vale 1, scrive in il valore di Out scrive in l indirizzo di salto preso dalla istruzione vai alla microistruzione successiva vai alla prima microistruzione (che inizia la esecuzione) usa la tabella di dispatch (ROM) per indicare la prossima istr. 17 Le label nel campo sequencing sono di due tipi: riferimento esplicito ad una etichetta definita per una mimcroistruzione uso della tabella di dispatch con il valore Dispatch i Le etichette che terminano con 1 oppure 2 sono usate dalla tabella di Dispatch che ne restituisce l indirizzo (della microistruzione) a seconda del valore dei 6 bit del campo Op che vengono passati alla unità di lo 18 I primi due passi =+ =Reg[IR[20-16]] Esecuzione, Out= op Out = + Sign-extend(IR[15- if (==) then =[31-28] 19 Incremento Program Counter e scrittura dell incremento lettura istruzione da (in IR) salto alla microistruzione indicata dalla tabella di dispatch Extshift WRite Dispatch 1 20

Le etichette del Dispatch Servono a differenziare i tipi di istruzioni una specie di switch Esistono etichette Mem1 Rformat1 EQ1 JUMP1 Notare il carattere 1 finale delle etichette =+ =Reg{IR[20-16]] Esecuzione, Out= op Out = + Sign-extend(IR[15- if (==) then =[31-28] 21 22 Istruzioni di accesso alla memoria calcolo indirizzo due passi per la LW (uso di Dispatch 2) un passo per la SW Mem1 LW2 SW2 Extend MDR WRite Dispatch 2 =+ =Reg[IR{20-16]] Esecuzione, Out= op Out = + Sign-extend(IR[15- if (==) then =[31-28] 23 2

Istruzioni di tipo R Operazione indicata dal campo funct Scrittura nel registro del risultato della operazione Torna alla microistruzione con label fetch Rformat1 Func WRite =+ =Reg{IR[20-16]] Esecuzione, Out= op Out = + Sign-extend(IR[15- if (==) then =[31-28] 25 26 Istruzione di branch Effettua una sottrazione tra e il risultato non interessa, serve solamente la linea Zero Scrivi il program counter calcolato nel passo precedente solamente se la linea Zero della è a 1 Torna alla microistruzione con label fetch EQ1 Subt WRite Outc ond =+ =Reg{IR[20-16]] Esecuzione, Out= op Out = + Sign-extend(IR[15- if (==) then =[31-28] 27 28

Istruzione di jump Scrivi nel il nuovo indirizzo Torna alla microistruzione con label fetch JUMP1 WRite Jump address 29 L intero microprogramma Mem1 LW2 SW2 Rformat1 EQ1 JUMP1 Func Subt Extshift Extend MDR WRite Outco nd Jump address Dispatch 1 Dispatch 2 30 Implementazione del microprogramma La implementazione alternativa Il microprogramma può essere visto come una rappresentazione di una macchina a stati finiti e quindi può essere usato per lo stesso tipo di generazione automatica della ROM (o PL) per la implementazione Una implementazione alternativa implementare separatamente la funzione di lo (generazione dei segnali) e la selezione della prossima istruzione uso di un contatore che viene incrementato e di una parte di logica che compie la selezione dell indirizzo 1 1 er er Microcode Microcode storage storage Outputs Outputs Input Input Microprogram Microprogram counter counter ress ress select select logic logic Inputs Inputs from from instruction instruction register register opcode opcode field field Datapath Datapath outputs outputs 31 32

lcuni esercizi/domande.. (1) lcuni esercizi/domande.. (2) (dove non specificato si intende sempre per la unità di elaborazione a ciclo multiplo ) cosa serve il segnale di lo Cond? Quale è la differenza tra una istruzione ed una microistruzione? Per eseguire una istruzione add, quale è il segnale di lo Op? Quanti passi sono necessari per eseguire la istruzione sw? e per la lw? Cosa si trova in Op alla fine del secondo passo di esecuzione di una istruzione? 33 Quale è la differenza tra una unità di elaborazione a ciclo singolo ed una a ciclo multiplo? e quale è preferibile e perché? Quali sono le istruzioni che vengono eseguite nel minor numero di passi? Tutte le istruzioni di tipo R vengono eseguite nello stesso numero di passi? Tutte le istruzioni di tipo I vengono eseguite nello stesso numero di passi? Modificare la unità di elaborazione per eseguire anche la istruzione NE 3 può essere introdotto qualche altro segnale di lo Esercizi di programmazione (1) Esercizi di programmazione (2) Scrivere un programma in ssembler MIPS che ordini in senso crescente un array di 100 interi memorizzati a partire da STRT Scrivere un programma in ssembler MIPS che calcoli il reverse R di un array di 100 interi (memorizzato a partire da STRT) l elemento in posizione 99 si troverà in posizione 0 l elemento in posizione 98 si troverà in posizione 1 etc. etc. Scrivere un programma in ssembler MIPS che li se un array (memorizzato a partire da STRT) è palindromo e scriva il risultato (1=true) nella locazione 1000 un array (stringa) è palindromo se l array = R 35 36