Struttura logica del processore (1)

Documenti analoghi
Capitolo 5 Elementi architetturali di base

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

Corso di Informatica

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

Il processore. Istituzionii di Informatica -- Rossano Gaeta

Architettura dei calcolatori

Lezione 15. L elaboratore Elettronico

Macchine Astratte. Luca Abeni. February 22, 2017

ARCHITETTURA DI UN ELABORATORE

Fondamenti di informatica II 1. Sintesi di reti logiche sequenziali

Architettura dei Calcolatori Elettronici

Componenti di un processore

Componenti principali

AXO - Architettura dei Calcolatori e Sistema Operativo. organizzazione strutturata dei calcolatori

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

Assembly. Modello x86

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

Introduzione all Architettura dei Calcolatori Elettronici

Sistemi di numerazione

Il Processore. Informatica di Base -- R.Gaeta 27

Introduzione all'architettura dei Calcolatori

HSA HSA HARDWARE SYSTEM ARCHITECTURE. Livelli. Livello assemblativo. Livello di. Sistema Operativo. Livello di. linguaggio macchina.

Componenti e connessioni. Capitolo 3

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

ARCHITETTURA DI UN ELABORATORE

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

Il Processore: l unità di controllo

Struttura di un elaboratore

ARCHITETTURA DI UN SISTEMA DI ELABORAZIONE

Architettura hardware

Richiami sull architettura del processore MIPS a 32 bit

ARCHITETTURA DI UN ELABORATORE

Elementi di informatica

Calcolatori Elettronici A a.a. 2008/2009

Architettura di un calcolatore: Introduzione parte 2

Architettura dei computer

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

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

Calcolatori Elettronici Lezione 4 Reti Sequenziali Asincrone

ARCHITETTURA DI UN ELABORATORE

LOGICA SEQUENZIALE. Un blocco di logica puramente combinatoria è un. blocco con N variabili di ingresso e M variabili di uscita

Esercizio 1.A Aritmetica binaria (nel presentare le soluzione mostrare, almeno nei passaggi piú significativi, i calcoli eseguiti) (3 punti)

Struttura del calcolatore

Organizzata secondo il modello della macchina di von Neumann definita nei tardi anni 40 all Institute for Advanced Study di Princeton.

Il modello di Von Neumann

Scopo della lezione. Analizzare i tipi di macchine Indirizzamento e memorie Tipi di dato

Richiami sull architettura del processore MIPS a 32 bit

Automa a Stati Finiti (ASF)

Reti combinatorie. Reti combinatorie (segue)

Elementi di informatica

La macchina di Von Neumann

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

Accesso a memoria. Accesso a memoria. Accesso a memoria. Modalità di indirizzamento. Lezione 5 e 6. Architettura degli Elaboratori A.

Sistemi e reti CPU Concetti di base

DEC PDP8, III Generazione, '65-'75

L ARCHITETTURA DEI CALCOLATORI. Il processore La memoria centrale La memoria di massa Le periferiche di I/O

Macchina di von Neumann/Turing

Lezione 1: L hardware

Il processore: unità di elaborazione

Lezione n.19 Processori RISC e CISC

CPU pipeline 4: le CPU moderne

Architettura dei Calcolatori elettronici

Architettura degli Elaboratori

Architettura degli Elaboratori

La memoria principale

Microelettronica Corso introduttivo di progettazione di sistemi embedded

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

Architettura di un elaboratore. Il modello di von Neumann

Architettura di un processore basato su registri generali.

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura

Reti Logiche T. Esercizi reti sequenziali sincrone

Architettura degli Elaboratori - 1

Progetto di Contatori sincroni. Mariagiovanna Sami Corso di reti Logiche 8 Anno

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

Indirettezza. Fetch/Execute. Fetch/Execute. Introduzione della Indirettezza (indirect)

ELEMENTI DI PROGRAMMAZIONE a.a. 2012/13 MACCHINE, ALGORITMI, PROGRAMMI

Il computer. Architettura

Macchine sequenziali. Automa a Stati Finiti (ASF)

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

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

Architettura degli Elaboratori

Microelettronica Corso introduttivo di progettazione di sistemi embedded

ELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE)

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

Politecnico di Torino Sede di Alessandria Corso di informatica

Macchina di Riferimento: argomenti

Reti Logiche 1. Prof. B. Buttarazzi A.A. 2009/2010. Reti Sequenziali

Esercitazioni di Reti Logiche. Lezione 5

SISTEMI DIGITALI COMPLESSI

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

Capitolo 6. Reti asincrone. Elaborazione asincrona Procedimenti di sintesi e analisi Memorie binarie

ELEMENTI DI PROGRAMMAZIONE a.a. 2013/14 UNA GERARCHIA DI MACCHINE

Circuiti sequenziali: macchine a stati finiti

CPU pipeline hazards

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

Microelettronica Corso introduttivo di progettazione di sistemi embedded

Struttura hw del computer

Calcolatori Elettronici A a.a. 2008/2009

Lez. 4 L hardware. Prof. Pasquale De Michele Gruppo 2

Note sull architettura del calcolatore

Transcript:

Struttura logica del processore (1) 0 1 0 1 Che tipo di reti sono le altre parti della CPU? Registri.. 2 65534-2 65534 65535 2 32-1 65535 Spazio di Memoria Spazio di I/O AX IP AH AL BX F BH BL CX ALU Registri di Stato CH CL DX CLOCK SP DH DL Puntatore di Pila Registri Generali Processore Algoritmo di funzionamento Leggi una istruzione in memoria Esegui l istruzione Facciamo un primo esempio di come si può descrivere un comportamento di questo tipo 1 2

Esempio 2 Descrivere una rete che produce in uscita il complemento a 2 di n cifre binarie in ingresso. Se devo progettare una rete combinatoria devo conoscere n, quindi il problema risolubile con una rete combinatoria deve essere riformulato come: Reti sequenziali e Sistemi di Reti Descrivere una rete che produce in uscita il complemento a 2 di un numero di n (n noto e finito, ad es. n=8) cifre binarie in ingresso. Le n cifre vengono presentate contemporaneamente in ingresso. Posso altrimenti progettare una implementazione modulare della rete con un semisommatore di n elementi e n negatori, realizzando il complemento a 2 come il complemento a 1 di r +1. Questa costruzione può essere iterata per un n qualsiasi, anche se sempre devo conoscere n. 3 4

Reti sequenziali Altrimenti posso presentare la sequenza un bit alla volta ed usare il seguente algoritmo: 1. fino al primo 1 da sinistra lascio i bit inalterati 2. dopo il primo 1 inverto le cifre Rappresentazione delle funzioni di stato e di uscita Per descrivere il comportamento di queste reti si può usare il diagramma di stato. Diagramma di stato: grafo orientato in cui i nodi rappresentano gli stati della rete e gli archi le transizioni Questo è un comportamento dipendente dal tempo, cioè da quale è stata la sequenza di ingresso fino a quel momento, ma è indipendente dalla lunghezza della sequenza Come descrivo astrattamente la rete? 5 6

Reti Sequenziali 0 a/0 c/0 1 0 1 b/1 0 Una rete sequenziale è una rete logica con n variabili di ingresso x i, m variabili di uscita z j, e uno stato interno t che può assumere k possibili valori. La presenza dello stato interno differenzia concettualmente le reti combinatorie dalle reti sequenziali: le uscite delle prime dipendono solamente dal valore degli ingressi, per calcolare l uscita delle seconde occorre conoscere anche il valore dello stato interno, ovvero un informazione che dipende dalla storia (sequenza) degli ingressi precedenti. 1 7 8

Reti Sequenziali Modello Generale y rappresenta lo stato presente, Y rappresenta lo stato futuro Y y corrisponde a una condizione di stato instabile Vettori delle variabili di ingresso X = (x 1, x 2,, x n ) di uscita Z = (z 1, z 2,, z m ) di stato presente y = (y 1, y 2,, y l ) di stato futuro Y= (Y 1, Y 2,, Y l ) 9 10

Modello Generale Modello Generale Si definisce macchina sequenziale la quintupla: M = (I, O, S, f, g) con le due funzioni f : S x I O g : S x I S Se il numero degli stati è finito, la macchina ha una memoria finita: per questo si parla anche di automi a stati finiti. Quando l uscita è solo funzione di S, cioè la relazione è del tipo f : S O, si parla di modello di Moore. La rete viene detta asincrona, perché reagisce in seguito alle variazioni di ingresso, portandosi nello stato (futuro) previsto dalla funzione di transizione di stato. E necessario che l ingresso si mantenga stabile fino a che la macchina non raggiunga uno stato stabile (y=y). Non è permessa la variazione contemporanea di più ingressi, per evitare la creazione di ingressi spuri a causa di ritardi diversi nelle variazioni. 11 12

Rappresentazione delle funzioni di stato e di uscita Il diagramma di stato permette di definire il comportamento Nella sintesi, si codificano gli stati e si ottiene la tabella delle transizioni e quella delle uscite che rappresentano il valore delle variabili di stato futuro e di uscita in funzione dello stato della rete e dell ingresso La realizzazione delle espressioni corrispondenti realizza la rete Ad esempio la rete seguente è un elemento di memoria Reti Sequenziali Un elemento binario di memoria detto flip-flop (asincrono) può essere definito come segue 00 01 a/0 10 01 b/1 00 10 Y = S + R y con vincolo SR = 0 SR y 00 01 11 10 0 0 0-1 1 1 0-1 13 14

Realizziamo la rete che effettua il complemento a 2 di una sequenza di bit in ingresso. Reti sequenziali sincrone Un altro tipo di elemento di memoria: Flip-flop D Funzionamento: realizza un blocco di ritardo pari al periodo del clock. Y= Dp+py 15 16

Modello generale di rete sequenziale sincrona Modello generale di rete sequenziale sincrona Sostituiamo ai ritardi del modello generale di una rete sequenziale flip-flop di tipo D. Basta solo che i tempi di commutazione di RC e la frequenza del clock siano nella giusta relazione Schema generale, indipendente dal tipo di flip-flop utilizzato 17 18

Progetto di Reti sequenziali Progetto di Reti sequenziali Approfondimento sul modo di funzionamento dei flip-flop impiegati Consideriamo la funzione di stato seguente Uso del flip-flop D 19 20

Differenze con le reti asincrone Con le reti sincrone La rete si porta in uno stato stabile prima dell arrivo del prossimo clock Gli ingressi possono variare contemporaneamente visto che c è il vincolo che all arrivo del clock siano stabili Sistemi di Reti Sequenziali Sincrone Sistema digitale: tipicamente più sottoreti in cascata Necessità di disaccoppiare le sottoreti Garantito quando le uscite sono funzione del solo stato (modello di Moore) Soluzione: interposizione di un numero adeguato di flip-flop 21 22

Schema di una rete di elaborazione Reti Sequenziali Sincrone Tempo complessivo: sia T il periodo di clock richiesto da una rete non a stadi e T quello richiesto da uno stadio. T < T perché la parte combinatoria negli stadi è più piccola ma T<nT dove n è il numero di stadi Registri Registro: insieme di n elementi di memoria (flip-flop) sincronizzati tramite un unico clock. Registri a scorrimento Prevedono i segnali per comandare lo scorrimento verso destra o sinistra di uno o più bit Osserva Lo scorrimento a sinistra equivale a moltiplicare per due Nel bit meno significativo deve essere inserito uno 0 Lo scorrimento verso destra equivale a dividere per due Nel bit più significativo deve essere replicato un 1 23 24

Registri Architettura di Von Neuman Registri ad anello Il bit più significativo è portato nel bit meno significativo e viceversa a seconda del verso di scorrimento 25 26

Possibile formato istruzioni Possibile formato istruzioni Ipotesi: una istruzione occupa sempre 32 bit (valida per i Reduced Instruction Set Computer RISC, ma non per i Complex Instruction Set Computer - CISC) Esempi di istruzioni per i due formati precedenti LD R1, Var ; R1 M[Var] Caricamento di un registro con il contenuto di una cella di memoria Supponendo che LD sia codificato con 1100011 Il campo che identifica il registro sia su 5 bit Al simbolo Var corrisponda l indirizzo 1023 L istruzione risulta codificata come 1100011 00001 0000000000111111111 ADD R1, R2, R3 ; R1 R2 + R3 27 28

Esempio CPU Lo statement a = b + c si traduce come: LD R2, B ;B indirizzo a cui è allocata la parola b LD R3, C ;C indirizzo a cui è allocata la parola c ADD R1, R2, R3 ST A, R1 ;A indirizzo a cui è allocata la parola a 29 30

CPU Unità di Controllo (UC) Responsabile della esecuzione delle istruzioni Interpreta il codice operativo contenuto nelle istruzioni e lo traduce in sequenze temporizzate di segnali di comandi per UO Ad UC vengono comunicate le condizioni di stato di UO in modo tale che possa tener conto dei risultati intermedi Agisce come una macchina sequenziale sincrona che procede secondo il proprio diagramma di stato CPU UC passa attraverso due macrostati Fetch Legge dalla memoria l istruzione successiva e la decodifica Execute Esegue l operazione prevista dal codice operativo Unità Operativa (UO) Manipola e trasforma l informazione Contiene la ALU ed un certo numero di registri 31 32

Parti Componenti la CPU Parti Componenti la CPU PC (Program Counter) registro che contiene l indirizzo dell istruzione successiva ALU (Arithmetic and Logic Unit) IR (Instruction Register) usato per contenere l istruzione in corso di esecuzione Caricato nella fase di Fetch General Purpose Registers R1, R2,.., Rn impiegati per contenere i dati su cui l ALU esegue le proprie operazioni MAR (Memory Address Register) deputato a contenere l indirizzo della locazione di memoria da leggere o scrivere Flusso dei dati unidirezionale (dal processore verso la memoria) DTR (Data Transfer Register) registro attraverso il quale viene scambiata l informazione fra la memoria e la CPU Il flusso dei dati è bidirezionale 33 34

Fase di Fetch Fase di Esecuzione Presentazione alla ALU del contenuto dei due registri sorgente e la selezione dell opportuno comando per la ALU Trasferimento del risultato in uscita dalla ALU al registro di destinazione 35 36

Prestazioni Le prestazioni della CPU dipendono sia dalla frequenza che dal numero di cicli clock per istruzione Aumentare il grado di parallelismo in modo da accorpare più operazioni elementari in un unico stato Unità di controllo a logica cablata Richiede la progettazione della rete sequenziale sincrona il cui comportamento è dato dal diagramma di stato in forma aggregata o dal diagramma presentato per la fase di fetch La rete sequenziale può essere costruita secondo lo schema classico che prevede una rete combinatoria ed un vettore di variabili di stato 37 38

Unità di controllo a logica cablata Unità di controllo microprogrammata La sintesi della rete è alquanto complessa a causa del numero elevato di stati e di ingressi La rete combinatoria può essere realizzata con una ROM con Numero di parole pari a tutte le possibili combinazioni degli ingressi Larghezza delle parole pari al numero di linee in uscita dalla rete stessa Grande spreco di memoria Si può ricorrere alla logica programmabile (PLA) oppure a tecniche CAD per sistemi di progettazione VLSI Affermatasi negli anni sessanta come approccio ordinato alla progettazione di unità di controllo UC come una sorta di elementare calcolatore nel calcolatore, capace di eseguire passi di microprogramma Forma semplice di UC Memoria contenente le parole di controllo (microistruzioni) Rete capace di indirizzarle Alla unità operativa arrivano microistruzioni 39 40

Unità di controllo microprogrammata Unità di controllo microprogrammata Schematicamente il funzionamento è il seguente: Inizio fase fetch: il contatore di microprogramma punta alla locazione della ROM da cui inizia la sequenza di parole di controllo che determinano l esecuzione dei passi del fetch Fine fase fetch: il codice di operazione IR viene impiegato per determinare l indirizzo della posizione da cui parte la sequenza di parole di controllo (microroutine) corrispondenti alla specifica operazione Durante l esecuzione della microroutine è possibile che il contatore di microprogramma possa essere modificato in modo non incrementale a causa di condizioni rilevate nell unità operativa o in dipendenza della specifica microistruzione Al termine dell esecuzione il contatore viene riportato a puntare alla posizione di ROM da cui inizia la sequenza corrispondente alla fase di fetch 41 42

Unità di controllo cablata o microprogrammata? Primi sistemi di calcolo Logica cablata Anni settanta Logica microprogrammata Dagli anni ottanta Logica cablata con le cosiddette architetture RISC (Reduced Instruction Set Computers) Perché questa inversione di tendenza? Negli anni settanta costo delle memorie elevato Con un repertorio di istruzioni esteso, i programmi avrebbero occupato meno memoria Inoltre, compilatori più semplici Memoria di controllo molto più veloce delle memorie disponibili Unità di controllo cablata o microprogrammata? Quando le memorie a semiconduttore cominciarono a soppiantare le memorie a nuclei magnetici (fine anni settanta) Velocità delle memoria non troppo differente da quella della memoria di controllo Uso delle cache Studi sui programmi compilati evidenziarono che solo il 20% del repertorio delle istruzioni veniva effettivamente utilizzato Conveniva investire nel velocizzare l esecuzione di questo insieme ridotto di istruzioni Nuovo criterio progettuale: costruire microprocessori veloci, capaci di eseguire un insieme ridotto di istruzioni e ricorrere all ottimizzazione dei compilatori 43 44

Unità di controllo cablata o microprogrammata? Unità di controllo cablata o microprogrammata? In particolare, si considerarono gli aspetti seguenti Istruzioni semplici. Se un istruzione di macchina fa crescere del 10% il periodo di clock, allora deve produrre almeno una riduzione del 10% del numero totale di cicli eseguiti Con la cache, le istruzioni di macchina possono essere eseguite alla stessa velocità delle microistruzioni. Quindi, meglio modificare una libreria di sistema che modificare una memoria di controllo Tutte le istruzioni dovrebbero occupare lo stesso spazio di memoria e dovrebbero avere un ristretto numero di formati (in modo che l interpretazione del codice possa avvenire tramite un semplice decodificatore) Possibile velocizzare l esecuzione con pipeline Compilatori in grado di produrre sequenze ottimizzate di semplici operazioni Macchine RISC Operazioni solo tra registri (solo operazioni di scrittura in memoria e lettura dalla memoria) Numero consistente di registri di uso generale Il compilatore deve essere realizzato in modo da fare il miglior uso possibile dei registri e per quanto possibile tenere le variabili nei registri stessi Processori INTEL Internamente RISC Il programmatore vede solo un numero limitato di registri, ma in realtà esistono 40 registri interni che sono utilizzati durante l elaborazione (tecnica del register renaming). 45 46