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

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

Progetto CPU (ciclo singolo) Salvatore Orlando

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

Architettura degli Elaboratori B Introduzione al corso

Progetto del processore e supporto del processore al SO (interruzioni eccezioni) Salvatore Orlando

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

Richiami sull architettura del processore MIPS a 32 bit

L'architettura del processore MIPS

Richiami sull architettura del processore MIPS a 32 bit

Il processore: unità di elaborazione

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

L unità di controllo di CPU a singolo ciclo

Implementazione semplificata

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

Architettura degli Elaboratori

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

CPU a ciclo multiplo

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

CPU a ciclo multiplo

Esempio: aggiungere j

Elementi base per la realizzazione dell unità di calcolo

CPU pipeline hazards

Realizzazione a cicli di clock multipli

Il processore: unità di controllo

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

Problemi con progetto a singolo ciclo. Progetto CPU (multiciclo) Esempio di riduzione del ciclo di clock. Datapath multiciclo

Progetto CPU (multiciclo) Salvatore Orlando

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

Architettura di tipo registro-registro (load/store)

Progetto CPU (multiciclo)

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

Architettura degli Elaboratori

Calcolatori Elettronici B a.a. 2007/2008

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

Università degli Studi di Cassino

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

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

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

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

CALCOLATORI ELETTRONICI 15 aprile 2014

Istruzioni di trasferimento dati

Il linguaggio macchina

Sistemi e reti CPU Concetti di base

Capitolo 5 Elementi architetturali di base

Linguaggio macchina: utilizzo di costanti, metodi di indirizzamento

Struttura CPU. Struttura e Funzione del Processore. Capitolo 12. Compiti CPU:

Elementi di informatica

Problemi del ciclo singolo

ISA (Instruction Set Architecture) della CPU MIPS

ARCHITETTURA DI UN ELABORATORE

Calcolatori Elettronici

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

Il linguaggio macchina

Calcolatori Elettronici A a.a. 2008/2009

Macchine Astratte. Luca Abeni. February 22, 2017

Architettura degli Elaboratori B Introduzione al corso

Il pipelining: tecniche di base

Componenti principali

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

Esercitazione sulle CPU pipeline

ARCHITETTURA DI UN ELABORATORE

Fasi (MIPS) Dove NPC è un registro temporaneo PC (program counter) è il registro IP (instruction pointer)

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

La macchina programmata Instruction Set Architecture (1)

Capitolo 5 Struttura di base del processore

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

Architettura di una CPU

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

ARCHITETTURA DI UN ELABORATORE

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

ARCHITETTURA DI UN SISTEMA DI ELABORAZIONE

Linguaggio Assembly e linguaggio macchina

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

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

Sommario FONDAMENTI DI INFORMATICA. Architettura di Von Neumann. Algoritmi e programmi ESERCITAZIONE PYTHON ARCHITETTURA DEI CALCOLATORI

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

Calcolatori Elettronici

Linguaggio Assembly e linguaggio macchina

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

Componenti e connessioni. Capitolo 3

Linguaggio Assembly e linguaggio macchina

Il pipelining: tecniche di base

Architettura di un processore basato su registri generali.

Macchina di von Neumann/Turing

LA GESTIONE DELLA I/O

1. Si effettui la divisione di 7/5 utilizzando un efficiente algoritmo e illustrando la corrispondente architettura hardware.

ISA e linguaggio macchina

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

DEC PDP8, III Generazione, '65-'75

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

Calcolatori Elettronici

Tutorato Architettura degli elaboratori

CALCOLATORI ELETTRONICI 31 marzo 2015

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

Esempio: aggiungere j

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

Lezione 15. L elaboratore Elettronico

Corso di Laurea in Informatica Architetture degli Elaboratori

Il processore. Istituzionii di Informatica -- Rossano Gaeta

Il modello di von Neumann

Transcript:

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

Parte di Controllo La Parte Controllo (Control) della CPU è un circuito sequenziale istruzioni eseguite in più cicli di clock ad ogni ciclo, si esegue uno micropasso (microistruzione) dell istruzione Lo stato interno al circuito sequenziale determina lo specifico micropasso da eseguire Gli output della Parte Controllo sono inviati alla Parte Operativa, che li interpreta come comandi controlli dei multiplexer, controlli per le ALU, segnali per abilitare la scrittura in registri, ecc. Gli input della Parte Controllo giungono dalla Parte Operativa campi del registro che contiene l istruzione corrente (IR), risultati di operazioni di confronto, ecc.

Parte di Controllo Esistono diverse ISA (MIPS, x86, ARM) Abbiamo visto vari componenti di base comuni alla realizzazione dei processori Un progettista deve implementare una ISA usando blocchi funzionali e logiche di controllo Vedremo come implementare una versione molto semplice dell ISA MIPS. Collegamenti della parte operativa (datapath) Identificazione dei segnali della parte di controllo (control)

Istruzioni di memory-reference: lw, sw Istruzioni Istruzioni arithmetic-logic: add, sub, and, or, slt Istruzioni di control-flow: beq, j Tutte le istruzioni sono lunghe 32 bit R-Type 31 26 21 16 11 6 0 op rs rt rd shamt funct 6 bit 5 bit 5 bit 5 bit 5 bit 6 bit I-Type 31 26 21 16 0 op rs rt immediate 6 bit 5 bit 5 bit 16 bit J-Type 31 26 0 op op: codice operativo dell istruzione target address 6 bit 26 bit rs, rt, rd: dei registri sorgente (rs, rt) e destinazione (rd) shamt: shift amount (è diverso da 0 solo per istruz. di shift) funct: seleziona le varianti dell operazione specificata in op immediate: offset dell indirizzo (load/store) o valore immediato (op. aritmetiche) target address: indirizzo target di un istruzione di jump

Progetto 1. Analizzare il set di istruzioni verificare i requisiti del datapath il datapath deve includere gli elementi di memoria corrispondenti ai registri dell ISA tipicamente sono necessari altri registri, usati internamente o non referenziabili direttamente attraverso l ISA es.: PC (Program counter) analizzare la semantica di ogni istruzione, data in termini di trasferimenti tra registri, ed eventuali operazioni tra i registri ll datapath deve fornire i cammini per permettere tutti i register transfer necessari, e gli accessi alla memoria 2. Selezionare i vari componenti del datapath (es. ALU) e stabilisci la metodologia di clocking 3. Assemblare il datapath in accordo ai requisiti, aggiungendo i segnali di controllo 4. Analizzare l implementazione di ogni istruzione per determinare il setting dei segnali di controllo che provocano i vari register transfer 5. Assemblare la logica di controllo in accordo al punto 4 Proviamo a progettare una CPU in cui ogni istruzione viene eseguita all interno di un singolo ciclo di clock

Analisi dell ISA L implementazione delle istruzioni è abbastanza simile: 1. Prelevare l istruzione dalla memoria usando il contenuto del registro PC 2. Leggere l istruzione da eseguire dalla memoria (fetch) 3. Interpretare i campi dell istruzione per decidere esattamente cosa fare (decode) 4. Eseguire l istruzione (execute) a. Leggere uno o due registri b. Usare l ALU c. Scrivere in memoria o in un registro 5. Aggiornare il contenuto del registro PC e ricominciare Quindi ALU, Register File e PC devono essere inclusi nella Parte Operativa Per comodità rappresenteremo la memoria assieme agli altri elementi della Parte Operativa, ma essa non fa logicamente parte della CPU

Analisi dell ISA Per tutte le istruzioni, dobbiamo come prima cosa effettuare il fetch op rs rt rd shamt funct = M[ PC ] op rs rt imm16 = M[ PC ] op 26bit address = M[ PC ] istruzioni trasferimenti tra registri ADD SUB R[rd] R[rs] + R[rt]; PC PC + 4; R[rd] R[rs] R[rt]; PC PC + 4; LOAD R[rt] M[ R[rs] + sign_ext(imm16) ]; STORE BEQ PC PC + 4; M[ R[rs] + sign_ext(imm16) ] R[rt]; PC PC + 4; if ( R[rs] == R[rt] ) then else PC PC + 4 + (sign_ext(imm16) << 2); PC PC + 4; BEQ adotta un indirizzamento di tipo PC-relative Al momento dell aggiornamento il PC contiene già l indirizzo dell istruzione successiva a quella corrente

Possibile implementazione Gestione PC Dati da scrivere in un registro Dati letti (LOAD) Fetch Campi rs, rt, rd dell istruzione Campo immediate dell istruzione Dati da memorizzare (STORE)

Gestione Program Counter Necessario realizzare, all interno dello stesso ciclo di clock, il fetch dell istruzione e l incremento del PC Non possiamo usare l ALU principale, perché questa è già utilizzata per eseguire le istruzioni Stiamo implementando una CPU a singolo ciclo risorse replicate Nota che dalla memoria istruzioni viene letta una nuova istruzione ad ogni ciclo di clock

Estensione di segno I 16 bit del campo immediato dell istruzione (es. istruzioni di LOAD/STORE) sono estesi di segno (16 bit 32 bit) prima di essere sommati con il registro R[rs] L indirizzo così calcolato (R[rs] + sign_ext(imm16)) viene usato per accedere alla Memoria Dati in lettura/scrittura M[R[rs] + sign_ext(imm16)]

Calcolo del branch Necessario per realizzare il calcolo dell indirizzo di salto dei branch PC PC + 4 + (sign_ext(imm16) << 2) Non possiamo usare l ALU, perché viene già utilizzata per eseguire l operazione di confronto (sottrazione)

Linee di controllo e multiplexer Registro da scrivere in istruzioni R-Type o I-Type Brach o incremento Scrittura registro da ALU o LOAD Secondo ingresso ALU R-Type o I-Type

Parte di controllo

Controllo ALU Dobbiamo definire il circuito di controllo per calcolare i 4 bit di controllo dell ALU (ALU Operation) da assegnare in base al tipo di istruzione Il circuito sarà a 2 livelli: Il primo livello calcolerà ALUOp in base all op code Il secondo livello calcolerà effettivamente ALU Operation in base al campo funct e a ALUOp

Altri segnali di controllo Nome del segnale Effetto quando deasserted Effetto quando asserted RegDst RegWrite ALUSrc PCSrc MemRead MemWrite MemtoReg Il numero del registro di destinazione per l ingresso Write register proviene dal campo rt dell istruzione (bit 20:16) Nessuno Il secondo operando della ALU proviene dalla seconda uscita del Register File (Read data 2) Il registro PC è aggiornato con l uscita dell addizionatore che calcola il valore PC + 4 Nessuno Nessuno Il valore riportato in ingresso al registro Write data proviene dalla ALU Il numero del registro di destinazione per l ingresso Write register proviene dal campo rd dell istruzione (bit 15:11) Il registro sull ingresso Write register è scritto con il valore sull ingresso Write data Il secondo operando della ALU proviene dell estensione di segno dei 16 bit meno significativi dell istruzione Il registro PC è aggiornato con l uscita dell addizionare che calcola il risultato del salto I contenuti della memoria dati identificati dall indirizzo sono inviati sull uscita Read data I contenuti della memoria dati identificati dall indirizzo sono sostituiti con il value sull ingresso Write data Il valore riportato in ingresso al registro Write data proviene dalla memoria dati

Parte di controllo

Esempio: add

Esempio: load

Esempio: beq

Esempio: aggiungere j

Eccezioni e interruzioni Il progetto del controllo del processore si complica a causa della necessità di considerare, durante l esecuzione delle istruzioni, il verificarsi di eventi inattesi, quali interruzioni ed eccezioni Eccezione evento sincrono, generato all interno del processore, e provocato da problemi nell esecuzione di un istruzione es.: overflow, istruzione non valida Interruzione evento asincrono, che giunge dall esterno del processore segnale che giunge da un unità di I/O, utilizzato per comunicare alla CPU il verificarsi di certi eventi es.: la terminazione di un operazione di I/O la cui esecuzione era stata richiesta in precedenza dalla CPU

Gestione delle Eccezioni e interruzioni Il controllo di ogni processore deve essere predisposto per gestire il verificarsi di eventi inattesi Tutti i processori, quando si verifica un evento di eccezione/interruzione, lo gestiscono secondo lo schema seguente: 1. interruzione dell esecuzione del programma corrente 2. salvataggio di parte dello stato di esecuzione corrente (almeno PC) 3. salto ad una routine del codice (handler) che costituisce il Sistema Operativo (SO) Il SO è stato caricato in memoria al momento del boot del sistema Il salvataggio dello stato del programma interrotto serve al SO per poter riprenderne eventualmente l esecuzione, successivamente e se necessario

Gestione delle Eccezioni e interruzioni Il controllo (ma anche il datapath corrispondente) deve essere progettato per individuare l evento inatteso interrompere l istruzione corrente salvare il PC corrente (nel registro interno EPC = Exception PC) salvare la causa dell interruzione nel registro Cause saltare ad una routine del SO (exception/interrupt handler) ad un indirizzo fisso Il MIPS non salva nessun altro registro oltre PC è compito dell handler salvare altre porzioni dello stato corrente del programma (es. tutti i registri generali), se necessario esistono CPU dove il salvataggio esteso dello stato viene sempre effettuato prima di saltare all interrupt handler salvataggio garantito dal microcodice complesso