L unità di controllo di CPU a singolo ciclo

Documenti analoghi
L unità di controllo di CPU multi-ciclo

Architettura di tipo registro-registro (load/store)

CALCOLATORI ELETTRONICI 15 aprile 2014

Hazard sul controllo. Sommario

Esercitazione sulle CPU pipeline

CALCOLATORI ELETTRONICI 29 giugno 2010

Calcolatori Elettronici

Tutorato Architettura degli elaboratori

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

CALCOLATORI ELETTRONICI 29 giugno 2011

CALCOLATORI ELETTRONICI 31 marzo 2015

Calcolatori Elettronici

Sommario Introduzione al linguaggio Assembly. Calcolatori Elettronici Prof. Gian Luca Marcialis. Le operazioni fondamentali

Ispirata al modello della Macchina di Von Neumann (Princeton, Institute for Advanced Study, anni 40).

ESERCIZIO 1 Riferimento: PROCESSORE PIPELINE e CAMPI REGISTRI INTER-STADIO

Controllo con macchina a stati finiti

L architettura di riferimento

ESERCIZIO 1 Riferimento: PROCESSORE PIPELINE e CAMPI REGISTRI INTER-STADIO

CPU. Maurizio Palesi

Informatica Teorica. Macchine a registri

Università degli Studi di Cassino e del Lazio Meridionale

Calcolatori Elettronici

(1) (2) (3) (4) 11 nessuno/a (1) (2) (3) (4) X è il minore tra A e B nessuno/a X è sempre uguale ad A X è il maggiore tra A e B

Fondamenti Teorici. Antonio Pescapè e Marcello Esposito Parte Seconda v2.0

Architettura. Indice:

Il Modello di von Neumann (2) Prevede 3 entità logiche:

Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova.

Interfacciamento di periferiche I/O al μp 8088

Linguaggio Assembler MIPS

Le costanti Le modalità di indirizzamento L assembly del MIPS

La macchina programmata Instruction Set Architecture (1)

Calcolatori Elettronici. La Pipeline Criticità sui dati Criticità sul controllo Cenni sull unità di controllo

Architettura MIPS (RISC) Architetture dei Calcolatori (Lettere. Principi di Progettazione ISA MIPS MIPS R3000 ISA. Il Set di Istruzioni MIPS

Note_Batch_Application 04/02/2011

Lezione n.19 Processori RISC e CISC

Caratteristiche di un PC

Calcolatori Elettronici

Architettura degli Elaboratori Modulo 2

Il processore N.12. Vediamo come è strutturato un microprocessore e con quale sequenza esegue le istruzioni dettate da un programma assembler.

PARTE III MACCHINE A REGISTRI

Architettura hw. La memoria e la cpu

ARCHITETTURA DELLE CPU come ARCHITETTURA DEL SET DI ISTRUZIONI

UD4 - MATLAB. M-file. Efficienza degli algoritmi. Formati d uscita

Corso di Calcolatori Elettronici I A.A Il processore Lezione 18

Calcolatori Elettronici B a.a. 2008/2009

Elementi di Informatica e Programmazione. # Memoria di massa. Problema: comprare un PC. Architettura del calcolatore. Architettura di Von Neumann

Architettura (10/9/2003) Pag. 1/6. Cognome e Nome (in stampatello):

Lezione 3: Architettura del calcolatore

Introduzione. Indice. Linguaggio macchina. Linguaggio assembler

Modulo 2 Data Base - Modello Relazionale

Modulo: Elementi di Informatica

Corso di Calcolatori Elettronici I

GUIDA RAPIDA RILEVAZIONE ESITO FINALE DEGLI SCRUTINI ANNO SCOLASTICO 2011/2012

Lezione n.9. Introduzione al linguaggio macchina

Architettura di un calcolatore

Architettura di un calcolatore: introduzione

UN PO DI STORIA, CONCETTI BASE e DEFINIZIONI GENERALI

Il Processore: i registri

Programmazione. Cognome... Nome... Matricola... Prova scritta del 22 settembre Negli esercizi proposti si utilizzano le seguenti classi:

Calcolatori Elettronici A a.a. 2008/2009

UN PO DI STORIA, CONCETTI BASE e DEFINIZIONI GENERALI

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole.

Laboratorio di Informatica Corso di Laurea in Matematica A.A. 2007/2008

Memoria cache, interrupt e DMA

Calcolatori Elettronici

Manuale antievasione (spesometro) su Gestionale 1 con immagini

Procedura operativa per la gestione della funzione di formazione classi prime

Il linguaggio del calcolatore: linguaggio macchina e linguaggio assembly

Struttura del calcolatore

Step I: equazioni logiche per ogni singola uscita

La codifica. dell informazione

Normalizzazione. Definizione

Architettura del calcolatore

Architettura della CPU e linguaggio assembly Corso di Abilità Informatiche Laurea in Fisica. prof. ing. Corrado Santoro

Accreditamento al portale di Roma Capitale

1 DESCRIZIONE DELLE FUNZIONI REGISTRAZIONE UTENZE INTERNET Caricamento utente internet (data entry)... 3

C. P. U. MEMORIA CENTRALE

Somma di numeri floating point. Algoritmi di moltiplicazione e divisione per numeri interi

Corso di Informatica

Supporto On Line Allegato FAQ

ISTRUZIONI OPERATIVE PROCEDURA CONCORSI ONLINE

ISCRIZIONE ASPIRANTI TIROCINANTI

CALCOLATORI ELETTRONICI

3.14 Modulo di memoria PCD3.R600 per flash-card (FC)

Elettronica dei Sistemi Programmabili A.A Microcontrollori. Introduzione allo sviluppo di progetti

Lezione 4. Sommario. L artimetica binaria: I numeri relativi e frazionari. I numeri relativi I numeri frazionari

POSTALIZZAZIONE Manuale d'uso del modulo di postalizzazione di RipartoIG

SVI Nuovo Sistema Revisioni

GESTIONE ACCESSI AI SERVIZI WEB DELLE CO

Linguaggio Assembler MIPS

Unità Didattica 3 Linguaggio C. Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore.

Funzioni condizionali

Le aree dell informatica

Progettazione di Algoritmi

L architettura del calcolatore (Prima parte)

Le sue caratteristiche:

MODELLO DLX IN UNISIM

COMPITINO #1 di CALCOLATORI ELETTRONICI 1 del COGNOME NOME

Gestione di files Motivazioni

Il file system. Le caratteristiche di file, direttorio e partizione sono del tutto indipendenti dalla natura e dal tipo di dispositivo utilizzato.

Transcript:

L unità di controllo di CPU a singolo ciclo Prof. Alberto Borghese Dipartimento di Informatica alberto.borghese@unimi.it Università degli Studi di Milano Riferimento sul Patterson: capitolo 4.2, 4.4, D1, D2. 1/34 Sommario Costruzione di una CPU per le istruzioni di tipo I (branch). UC della CPU Control and Data path 2/34 1

Ciclo di esecuzione di un istruzione MIPS Prelievo istruzione (fase di fetch) Decodifica Calcolo Lettura / scrittura Esecuzione Write back A.A. 2013-2014 3/34 Codifica delle istruzioni Tutte le istruzioni MIPS hanno la stessa dimensione (32 bit) Architettura RISC. I 32 bit hanno un significato diverso a seconda del formato (o tipo) di istruzione il tipo di istruzione è riconosciuto in base al valore di alcuni bit (6 bit) più significativi (codice operativo - OPCODE) Le istruzioni MIPS sono di 3 tipi (formati): Tipo R (register) Lavorano su 3 registri. Istruzioni aritmetico-logiche. Tipo I (immediate) Lavorano su 2 registri. L istruzione è suddivisa in un gruppo di 16 bit contenenti informazioni + 16 bit riservati ad una costante. Istruzioni di accesso alla memoria o operazioni contenenti delle costanti. Tipo J (jump) Lavora senza registri: codice operativo + indirizzo di salto. Istruzioni di salto incondizionato. 6-bit 5-bit 5-bit 5-bit 5-bit 6-bit R op rs rt rd shamt funct I op rs rt indirizzo J op indirizzo A.A. 2013-2014 4/34 2

CPU per l esecuzione di istruzioni di tipo R/lw/beq 8000 add $s1, $s2, $s3 8004 sub $s4, $s1, $t1... 8000 lw $s1, 20($s2) A.A. 2013-2014 8000 beq $s1, $s2, Label 5/34 Schema generale CPU + UC IR Istruzione [31-26] UC 0 1 Clk 0 0 1 R 1 1 ALUop 0 ALUs Controllore della ALU: ALUop =? (ALUs non utilizzato) Controllore della CPU: Segnali_Controllo = f(opcode) A.A. 2013-2014 W = Clock 6/34 3

Osservazioni Il ciclo di esecuzione di un istruzione si compie in un unico ciclo di clock. Ogni unità funzionale può essere utilizzata 1 sola volta. Duplicazione Memoria: Memoria dati e memoria istruzioni. Triplicazione ALU: 3 ALU: 2 sommatori + 1 general purpose. A.A. 2013-2014 7/34 Sommario Costruzione di una CPU per le istruzioni di tipo I (branch). UC della CPU Control and Data path A.A. 2013-2014 8/34 4

RegDst Nome del segnale Segnali di controllo su 1 bit Effetto quando è negato Il numero del registro destinazione proviene dal campo rt (R2, bit 20-16) Effetto quando è affermato Il numero del registro destinazione proviene dal campo rd (bit 15-11) RegWrite Nessuno Nel registro specificato all ingresso registro scritto del Register File, viene scritto il valore presente all ingresso Dato Scritto ALUSrc Branch Il secondo operando della ALU proviene dalla seconda uscita in lettura del Register File Il valore del PC viene sostituito dall uscita del sommatore che calcola PC+4 (condizionato all uscita di ALU) Il secondo operando della ALU è la versione estesa (con segno) del campo offset Il valore del PC viene sostituito dall uscita del sommatore che calcola la destinazione del salto (condizionato all uscita di ALU) MemRead Nessuno Il contenuto della cella di memoria dati indirizzata dal MAR è posto nel MDR MemWrite Nessuno Il contenuto in ingresso al MDR, viene memorizzato nella cella il cui indirizzo è caricato nel MAR MemtoReg Il valore inviato all ingresso Dato al Register File proviene dalla ALU Il valore inviato all ingresso Dato al Register File proviene dalla memoria 9/34 Controllo del data-path Istruzione Reg Mem Mem RegDst ALUSrc MemtoReg (OpCode) Write Read Write Branch ALUs R (000000) 1 0 0 1 0 0 0 10 lw (100011) 0 1 1 1 1 0 0 00 sw (101011) x 1 x 0 0 1 0 00 beq (000100) x 0 x 0 0 0 1 01 addi(001000 1 1 0 1 0 0 0 00 OpCode0 OpCode1 OpCode2 OpCode4 OpCode5 ALUSrc 10/34 OpCode0 OpCode1 OpCode2 OpCode3 OpCode4 OpCode5 OpCode0 OpCode1 OpCode2 OpCode3 OpCode4 OpCode5 RegWrite 5

Struttura a 2 livelli di una ALU ALUop Selettore dell operazione a k Parte di calcolo Parte di selezione s k b k Le operazioni consentite dalla ALU (selezionate tramite ALUop): and 000 or 001 add 010 sub 110 slt 111 11/34 UC e ALU Data l istruzione, l UC deve inviare il comando opportuno alla ALU. Campo Op Code Campo Funct OpCode Le operazioni consentite dalla ALU: and 000 or 001 add 010 sub 110 slt 111 Funct UC ALU ALUop Input: 6 bit Quali operazioni devono essere eseguite per le diverse istruzioni: R -> Dipende dal campo funct lw -> Somma sw -> Somma beq -> Differenza ALUop = f(opcode, Funct) 12/34 Output: 3 bit 6

Controllo gerarchico Le operazioni consentite dalla ALU: and 000 or 001 add 010 sub 110 slt 111 6 Op Code UC Principale ALUs = f(opcode) 6 2 Funct UC ALU ALUop = f(alus, Funct) 3 If (OpCode == R) then Funct ALUop Else OpCode ALUop 13/34 Controllo della ALU Istr OpCode ALUs lw 1 0 0 0 1 1 0 0 sw 1 0 1 0 1 1 0 0 beq 0 0 0 1 0 0 0 1 add 0 0 0 0 0 0 1 0 sub 0 0 0 0 0 0 1 0 and 0 0 0 0 0 0 1 0 or 0 0 0 0 0 0 1 0 slt 0 0 0 0 0 0 1 0 OpCode0 OpCode1 OpCode2 OpCode3 OpCode4 OpCode5 OpCode0 OpCode1 OpCode2 OpCode3 OpCode4 OpCode5 ALUs1 ALUs0 Sintetizzo i 2 bit come SOP ALUs = f(opcode) 14/34 7

Controllo della ALU Istr OpCode ALUs Funct ALUop lw 1 0 0 0 1 1 0 0 x x x x x x 0 1 0 sw 1 0 1 0 1 1 0 0 x x x x x x 0 1 0 beq 0 0 0 1 0 0 0 1 x x x x x x 1 1 0 add 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 sub 0 0 0 0 0 0 1 0 1 0 0 0 1 0 1 1 0 and 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 or 0 0 0 0 0 0 1 0 1 0 0 1 0 1 0 0 1 slt 0 0 0 0 0 0 1 0 1 0 1 0 1 0 1 1 1 ALUop = f(alus, Funct) 15/34 SOP Sommario Costruzione di una CPU per le istruzioni di tipo I (branch). UC della CPU Control and Data path 16/34 8

The control and data path 17/34 Rapporto UC - Dati La CPU è un architettura del tipo: Controllore - Data-path Dal mondo esterno Dati Controllore Eventuali segnali al mondo esterno Eventuali informazioni Segnali di controllo (apertura di porte) Data path Risultati Fase comune nel ciclo di esecuzione: Fase di fetch Decodifica (generazione dei segnali di controllo) Fase diversa: Esecuzione (Calcolo, Accesso memoria, WriteBack) 18/34 9

L unità di controllo Unità di controllo coordina i flussi di informazione (è il cervello della CPU): 1) abilitando le vie di comunicazione opportune a seconda dell istruzione in corso di esecuzione. 2) selezionando l operazione opportuna delle ALU. 1 2 3 6 1 2.. UC Istruzione M 19/34 L istruzione jump J Op Code = 2 Indirizzo 6 bit 26 bit j 80040 L indirizzo di salto sarà determinato in due passi: A) Calcolo di Indirizzo = Indirizzo * 4. B) Deteminazione dell indirizzo di salto come: Base (PC) 0100 1000 0011 0001 1011 1011 1011 10 11 + Nuovo indirizzo 1000 0110 0111 0000 0000 0001 00 00 = Indirizzo salto 0100 1000 0110 0111 0000 0000 0001 00 00 L indirizzo è un numero positivo (posizione in memoria assoluta). 20/34 10

CPU + UC completa (aggiunta di jump) RI ALUs ALUs W R ALUop W ALUs 21/34 Controllo del data-path Istruzione (OpCode) Reg Dst ALU Src Memto Reg Reg Write Mem Read Mem Write Branch ALUs Jump R (000000) 1 0 0 1 0 0 0 10 0 lw (100011) sw (101011) beq (000100) J (000010) 0 1 1 1 1 0 0 00 0 x 1 x 0 0 1 0 00 0 x 0 x 0 0 0 1 01 0 x x x 0 0 0 0 xx 1 La lettura della memoria non è indolore soprattutto quando sono presenti dei livelli (di cache). 22/34 11

Contenuto della CPU per l esecuzione di istruzioni diverse RI CodOp ALUs ALUs Rs W Rt R 0x00008000 add $t0, $t1, $t2 W 0x00008004 beq $s0, $s1, 4 0x00008008 lw $t1, 32($s0) 0x0000800C sw $t1, 32($s0) 0x00008010 addi $t1, $t1, $t2 Rd Costante Funct 23/34 Sommario Costruzione di una CPU per le istruzioni di tipo I (branch). UC della CPU Control and Data path 24/34 12