Introduzione all Architettura dei Calcolatori Elettronici

Documenti analoghi
L Architettura di un Calcolatore

CPU. Maurizio Palesi

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

Architettura del calcolatore

La macchina programmata Instruction Set Architecture (1)

Struttura del calcolatore

Introduzione. Un calcolatore digitale è costituito da un sistema interconnesso dei seguenti dispositivi:

Lezione 3: Architettura del calcolatore

Introduzione all'architettura dei Calcolatori

Il processore. Il processore. Il processore. Il processore. Architettura dell elaboratore

(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 di informatica: un po di storia

La macchina di Von Neumann. Archite(ura di un calcolatore. L unità di elaborazione (CPU) Sequenza di le(ura. Il bus di sistema

Calcolo numerico e programmazione Architettura dei calcolatori

Il Processore: i registri

C. P. U. MEMORIA CENTRALE

Calcolatori Elettronici

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

Le infrastrutture Hardware: architettura

Caratteristiche di un PC

CALCOLATORI ELETTRONICI

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

UNITÀ DI ELABORAZIONE (CPU) UNITÀ DI ELABORAZIONE (CPU) Opcode OpCode Operazione

L architettura di riferimento

Architettura dei Calcolatori Introduzione al corso

Architettura hardware

Parte II.2 Elaboratore

Interpreti e compilatori La macchina di Von Neumann

Il calcolatore elettronico. Parte dei lucidi sono stati gentilmente forniti dal Prof. Beraldi

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

L architettura del calcolatore (Prima parte)

Lezione n.19 Processori RISC e CISC

- Algoritmi ed esecutori di algoritmi - ALGORITMI MACCHINA DI VON NEUMANN

Richiami di informatica e programmazione

ARCHITETTURA DI UN PERSONAL COMPUTER

Laboratorio di Informatica

CALCOLATORI ELETTRONICI 15 aprile 2014

ARCHITETTURA elementi di base

I Bistabili. Maurizio Palesi. Maurizio Palesi 1

Il calcolatore. Architettura di un calcolatore (Hardware)

interoperabilità fra dispositivi forniti da diversi produttori; superare i problemi legati alla limitazione del numero di risorse.

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

La Macchina Virtuale

Informatica Teorica. Macchine a registri

Architettura dei computer

Architettura dei calcolatori

CALCOLATORI ELETTRONICI 29 giugno 2011

Architettura di un computer

1.4a: Hardware (Processore)

Vari tipi di computer

introduzione I MICROCONTROLLORI

Architettura di un calcolatore

Programmazione. Dipartimento di Matematica. Ing. Cristiano Gregnanin. 25 febbraio Corso di laurea in Matematica

Dispensa di Fondamenti di Informatica. Architettura di un calcolatore

PROGRAMMA DI SCIENZE E TECNOLOGIE APPLICATE 2015/2016 Classe 2ª Sez. C Tecnologico

Il processore - CPU (CENTRAL PROCESSING UNIT)

CONCETTI BASE dell'informatica Cose che non si possono non sapere!

ARCHITETTURE MICROPROGRAMMATE. 1. Necessità di un architettura microprogrammata 1. Cos è un architettura microprogrammata? 4

Architettura di un calcolatore: introduzione

PARTE III MACCHINE A REGISTRI

Calcolatori Elettronici

Programma ARCHITETTURA DI UN ELABORATORE MACCHINA DI VON NEUMANN CPU & MEMORIA UNITÀ DI ELABORAZIONE (CPU) Questa settimana:

LABORATORIO di INFORMATICA

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.7. Il moltiplicatore binario e il ciclo di base di una CPU

Funzionalità di un calcolatore

PROVA INTRACORSO TRACCIA A Pagina 1 di 6

Von Neumann. John Von Neumann ( )

Ing. Paolo Domenici PREFAZIONE

Il processore - CPU. PDF created with pdffactory trial version

Appunti del corso di Informatica 1 (IN110 Fondamenti) 3 Modelli di calcolo

Ciclo di Istruzione. Ciclo di Istruzione. Controllo. Ciclo di Istruzione (diagramma di flusso) Lezione 5 e 6

Corso di Informatica Applicata. Lezione 3. Università degli studi di Cassino

L Unità Centrale di Elaborazione

Calcolatori Elettronici

In un modello a strati il SO si pone come un guscio (shell) tra la macchina reale (HW) e le applicazioni 1 :

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

La gestione dell I/O (Cap. 5, Tanenbaum)

Anatomia e fisiologia del computer: l architettura del calcolatore

Architettura di un Elaboratore

Livello logico digitale. bus e memorie

Architettura del computer (C.Busso)

Lezione 3 Prof. Angela Bonifati

ARCHITETTURA DI UN CALCOLATORE ELETTRONICO

che vengano generati nell ordine corretto i sistema (es., la memoria, l unità aritmetico-

Informatica per la Storia dell Arte. Anno Accademico 2014/2015

Calcolatori Elettronici L-A

Università degli Studi G. d'annunzio C.L. Economia e Informatica per l'impresa. Sistemi Operativi e Reti A.A. 2014/2015 prof.

Esame di INFORMATICA

Lezione 5 Architettura degli elaboratori. Mauro Piccolo piccolo@di.unito.it

INFORMATICA CORSO DI INFORMATICA DI BASE ANNO ACCADEMICO 2015/2016 DOCENTE: SARRANTONIO ARTURO

Piccoli Ingegneri Informatici

TECNOLOGIE INFORMATICHE DELLA COMUNICAZIONE ORE SETTIMANALI 2 TIPO DI PROVA PER GIUDIZIO SOSPESO PROVA DI LABORATORIO

Elaborazione dei dati

Unità Periferiche. Rete Di Controllo

Tipi di Bus. Bus sincrono. Comunicazioni nell elaboratore (e oltre) Bus sincroni e asincroni Standard commerciali (PCI,SCSI,USB)

INFORMATICA E COMPUTER : INTRODUZIONE

Programmazione dello Z80

Macchina di von Neumann

CALCOLATORI ELETTRONICI 29 giugno 2010

Contenuti. Visione macroscopica Hardware Software. 1 Introduzione. 2 Rappresentazione dell informazione. 3 Architettura del calcolatore

Transcript:

Introduzione all rchitettura dei Calcolatori Elettronici aurizio Palesi aurizio Palesi 1 Sistema di Elaborazione Un Sistema di Elaborazione (SE) è una acchina () capace di eseguire Programmi (P) scritti in un opportuno Linguaggio (L) ondo Esterno Dati P(L) L aurizio Palesi 2 1

Sistema di Elaborazione Sistema di di Elaborazione acchina Programma Linguaggio entità attiva entità passiva aurizio Palesi 3 odello Funzionale vs. ealizzativo odello Funzionale La macchina è un puro esecutore delle istruzioni del proprio linguaggio Due macchine dotate dello stesso linguaggio sono funzionalmente identiche odello ealizzativo Descrive come la macchina è realizzata Due macchine dotate dello stesso linguaggio non è detto che siano identiche da un punto di vista realizzativo aurizio Palesi 4 2

Gerarchie di acchine ondo Esterno Dati P(L2) Traduzione Interpretazione L2 P12(L1) L1 1 2 aurizio Palesi 5 Sistema di Elaborazione Un SE è costituito da una gerarchia di macchine Costruite a partire da una macchina estremamente elementare Il modello realizzativo di un SE è definito da odello funzionale della macchina più elementare che si vuole trattare Dalla descrizione degli interpreti e dei traduttori aurizio Palesi 6 3

Generalizzazione Ln P(n-1)n L2 P(n-1)n L1 1 2 n Prestazioni Prestazioni Trade-off strazione strazione (Semplicità (Semplicità di di programmazione) programmazione) aurizio Palesi 7 Processo acchina che esegue il linguaggio prodotto dai compilatori dei linguaggi di 3G Linguaggio binario ondo Esterno Dati P(C) C Compilatore C L.ggio Binario.na Processo acchina C aurizio Palesi 8 4

Linguaggio Binario Le istruzioni sono codificate in bit Dipende dal SE differenza dei linguaggi di 3G Tuttavia tutti i processi condividono la stessa impostazione generale aurizio Palesi 9 acchina Processo Gli elementi fondamentali che caratterizzano qualsiasi processo sono emoria del processo Programma in esecuzione in memoria Presenza di un registro Program Counter eccanismo di esecuzione Stato del processo Contenuto di memoria + contenuto dei registri Istruzione Codice operativo Operandi aurizio Palesi 10 5

acchina ssembler Si realizza per eliminare la difficoltà di lavorare con il linguaggio binario Linguaggio ssembly Programma assemblatore Linguaggio binario del proc. Processo acchina ssembler aurizio Palesi 11 Esempi di Istruzioni ssembly Categoria 1 somma X, Y ; Y := X + Y neg X ; X := -X copia X, Y ; Y := X Categoria 2 Salta I ; Passa ad eseguire l istruzione I Test X, I ; Se X=0, vai a eseguire l istruzione I Termina ; Termina l esecuzione del programma Categoria 3 Leggi X ; cquisisci un dato dall esterno in X Scrivi X ; Trasmetti il contenuto di X all esterno aurizio Palesi 12 6

Esempio di Programma ssembly oltiplicazione per somme ripetute X: ISEV Y: ISEV Z: ISEV ZEO: ISEV 0 NUNO: ISEV -1 leggi leggyi copia Ciclo: test somma somma salta Fine: scrivi termina X Y ZEO, Z X, Fine Y, Z NUNO, X Ciclo aurizio Palesi 13 Z Codifica del Programma in Linguaggio Binario X: ISEV 0 **** ****** ****** Y: ISEV 1 **** ****** ****** Z: ISEV 2 **** ****** ****** ZEO: ISEV 0 3 0000 000000 000000 NUNO: ISEV -1 4 1000 000000 000001 leggi X 5 1111 000000 ****** leggyi Y 6 1111 000001 ****** copia ZEO, Z 7 1000 000011 000010 Ciclo:test X, Fine 8 1010 000000 001100 somma Y, Z 9 0110 000001 000010 somma NUNO, X 10 0110 000100 000000 salta Ciclo 11 1001 001000 ****** Fine: scrivi Z 12 0111 000010 ****** termina 13 1011 ****** ****** aurizio Palesi 14 7

acchina ssembler lcune differenze tra Linguaggio Binario e Linguaggio ssembly I codici operativi binari sono sostituiti da codici simbolici Presenza di direttive non rispondendi a istruzioni in linguaggio binario Si possono usare simboli (labels) al posto di indirizzi binari aurizio Palesi 15 acchina Hardware La macchina sopra la quale viene realizzato il processo è la acchina Hardware Il Linguaggio della macchina HW è il linguaggio binario Il programma che realizza la macchina processo sopra la macchina HW si chiama Sistema Operativo Il SO è in grado di realizzare molte macchine processo sulla macchina HW aurizio Palesi 16 8

Il Sistema Operativo Prog.1 Prog.2 Prog.N Proc. 1 Proc. 2 Pproc. N Sistema Operativo Linguaggio acchina acchina Hardware aurizio Palesi 17 Caratteristiche Fondamentali Capacità di eseguire sequenze di istruzioni memorizzate Calcolatore = Unità di Elaborazione + Unità di Controllo 1. Preleva le istruzioni dalla memoria 2. Interpreta i codici di istruzione 3. Effettua le azioni che questi prevedono Programma = Insieme organizzato di istruzioni aurizio Palesi 18 9

Vista Funzionale di un Calcolatore mbiente Traserimento Controllo Elaborazione emorizzazione aurizio Palesi 19 Componenti di un Calcolatore Calcolatore Processore Dispositivi Unità di controllo emoria Ingresso Tastiera ouse Unità operativa Uscita onitor Stampante Unità di elaborazione e controllo o Central Processing Unit (CPU) Contiene le istruzioni da eseguire e i dati su cui operare Insieme di dispositivi che consentono la comunicazione con e da il mondo esterno aurizio Palesi 20 10

Organizzazione Generale CPU emoria Bus di sistema Ingresso Uscita aurizio Palesi 21 Bus e aster-slave Il bus è una linea a cui sono contemporaneamente connesse le unità del calcolatore e che consente il trasferimento di dati tra tali unità Problema: contesa su un mezzo condiviso! Soluzione: CPU = master, periferiche = slave aurizio Palesi 22 11

Bus e aster-slave - Pregi Semplicità: 1 sola linea di connessione # di dispositivi Estendibilità: nuovi dispositivi possono essere aggiunti tramite un interfaccia al bus senza influenzare l HW preesistente Standardizzabilità: definizione di normative che consentono a periferiche di costruttori diversi di interagire correttamente aurizio Palesi 23 Bus e aster-slave - Difetti Lentezza: l uso in mutua esclusione del bus inibisce almeno parzialmente la parallelizzazione delle operazioni di trasferimento di dati tra dispositivi Limitata capacità: al crescere del numero di dispositivi la presenza di una sola linea comporta un limite alla capacità di trasferire dati Sovraccarico della CPU: l unità centrale viene coinvolta in tutte le operazioni di trasferimento di dati aurizio Palesi 24 12

Lo Schema di iferimento Interfaccia I/O I/O Interfaccia I/O I/O Interfaccia I/O I/O emoria centrale centrale CPU CPU Bus dati Bus indirizzi Bus di controllo aurizio Palesi 25 Tipi di Bus Bus dati: utilizzato per trasferire dati (es. fra memoria e CPU, fra CPU e interfacce di I/O) Bus indirizzi: che identifica la posizione delle celle di memoria un cui la CPU va a scrivere o leggere Bus di controllo: in cui transitano i segnali di controllo che consentono di selezionare le unità coinvolte in un trasferimento dati (sorgente e destinazione), di definire la direzione dello scambio (scrittura o lettura) aurizio Palesi 26 13

rchitettura di Von Neumann Burks, Goldstein e Von Neumann sono stati i primi a proporre che il codice del programma potesse essere memorizzato nella stessa memoria dei dati Indirizzi CPU Dati Controllo emoria emoria indifferenziata per dati o istruzioni Solo l'interpretazione da parte di CPU stabilisce se una data configurazione di bit è da riguardarsi come un dato o come un'istruzione aurizio Palesi 27 Collo di Bottiglia Von Neumann L organizzazione di Von Neumann è quella più popolare Consente al processore di manipolare i programmi in modo più semplice Svantaggi La limitata larghezza di banda della memoria ha un impatto negativo sulla velocità di esecuzione dell applicazione Questo fenomeno è noto come Von Neumann bottleneck aurizio Palesi 28 14

rchitettura Harward ltre organizzazioni memorizzano dati e programmi in memorie diverse Indirizzi Indirizzi emoria Istruzioni Dati Controllo CPU Dati Controllo emoria Dati E principalmente utilizzata nei processori ad alte prestazioni e nelle architetture dedicate per applicazioni di elaborazione digitale dei segnali (DSP) aurizio Palesi 29 Organizzazione Tipica (bus oriented) CPU Unità di di Controllo Unità ritmetica Logica Dispositivi di I/O egistri emoria Centrale Terminale Unità a disco Stampante BUS aurizio Palesi 30 15

Tre Tipologie di Istruzioni Istruzioni ritmetico Logiche (Elaborazione dati) Somma, sottrazione, divisione, nd, Or, Xor, aggiore, minore, uguale, maggiore uguale, Controllo del flusso delle istruzioni Sequenza Selezione Ciclo a condizione iniziale, a condizione finale, Trasferimento di informazione Trasferimento dati e istruzioni tra CPU e memoria Trasferimento dati e istruzioni tra CPU e dispositivi di I/O aurizio Palesi 31 Elementi di una CPU Unità di controllo Legge le istruzioni dalla memoria e ne determina il tipo Unità aritmetico-logica Esegue le operazioni necessarie per eseguire le istruzioni egistri emoria ad alta velocità usata per risultati temporanei Determina il parallelismo della CPU Esistono registri generici e registri specifici Program Counter (PC) Instruction egister (I) aurizio Palesi 32 16

Struttura del data path + B egistri B B egistri di ingresso all LU BB LU Bus di ingresso all LU di uscita dell LU + B aurizio Palesi 33 aurizio Palesi 34 17

L Esecutore Un calcolatore basato sull architettura di Von Neumann esegue un programma sulla base dei seguenti principi Dati e istruzioni sono memorizzati in una memoria unica che permette sia la scrittura che la lettura I contenuti della memoria sono indirizzati in base alla loro posizione Le istruzioni vengono eseguite in modo sequenziale aurizio Palesi 35 Linguaggio acchina e ssembly Linguaggio macchina udimentale Il concetto di tipo di dato è quasi assente Il numero di operandi è limitato Il numero di operazioni previste è ridotto Struttura di una istruzione della CPU codice operativo op1 op2 Specifica analoga alla codifica in assembly SO eg1 eg2 Codifica in un ipotetico linguaggio macchina 10000011 001 010 aurizio Palesi 36 18

aurizio Palesi 37 Esecuzione delle Istruzioni Ciclo Fetch-Decode-Execute 1. Prendi l istruzione corrente dalla memoria e mettila nel registro istruzioni (I) [Fetch] 2. Incrementa il program counter (PC) in modo che contenga l indirizzo dell istruzione successiva 3. Determina il tipo dell istruzione corrente [Decodifica] 4. Se l istruzione usa una parola in memoria determina dove si trova 5. Carica la parola, se necessario, in un registro della CPU 6. Esegui l istruzione [Execute] 7. Torna al punto 1. aurizio Palesi 38 19

Struttura Semplificata di una CPU Bus Controllo Leggi Scrivi PC Unità di controllo emoria centrale centrale o periferiche Indirizzo Bus Indirizzi Dato Bus Dati D I... PSW LU stato Esegui Operazione Unità centrale aurizio Palesi 39 Esempio: Lettura dalla emoria Fase di Fetch (1 di 2) Bus Controllo Leggi Scrivi PC Unità di controllo emoria centrale centrale o periferiche Indirizzo Bus Indirizzi Dato Bus Dati D I... PSW LU stato Esegui Operazione Unità centrale aurizio Palesi 40 20

Esempio: Lettura dalla emoria Fase di Fetch (2 di 2) Bus Controllo Leggi Scrivi PC Unità di controllo emoria centrale centrale o periferiche Indirizzo Bus Indirizzi Dato Bus Dati D I... PSW LU stato Esegui Operazione Unità centrale aurizio Palesi 41 Esempio: Lettura dalla emoria Decodifica Bus Controllo Leggi Scrivi PC Unità di controllo emoria centrale centrale o periferiche Indirizzo Bus Indirizzi Dato Bus Dati D I... PSW LU stato Esegui Operazione Unità centrale aurizio Palesi 42 21

Esempio: Lettura dalla emoria Esecuzione (1 di 2) Bus Controllo Leggi Scrivi PC Unità di controllo emoria centrale centrale o periferiche Indirizzo Bus Indirizzi Dato Bus Dati D I... PSW LU stato Esegui Operazione Unità centrale aurizio Palesi 43 Esempio: Lettura dalla emoria Esecuzione (2 di 2) Bus Controllo Leggi Scrivi PC Unità di controllo emoria centrale centrale o periferiche Indirizzo Bus Indirizzi Dato Bus Dati D I... PSW LU stato Esegui Operazione Unità centrale aurizio Palesi 44 22

Esempio: Somma tra due registri Fetch (come prima) Bus Controllo Leggi Scrivi PC Unità di controllo emoria centrale centrale o periferiche Indirizzo Bus Indirizzi Dato Bus Dati D I... PSW LU stato Esegui Operazione Unità centrale aurizio Palesi 45 Esempio: Somma tra due registri Decodifica Bus Controllo Leggi Scrivi PC Unità di controllo emoria centrale centrale o periferiche Indirizzo Bus Indirizzi Dato Bus Dati D I... PSW LU stato Esegui Operazione Unità centrale aurizio Palesi 46 23

Esempio: Somma tra due registri Esecuzione Bus Controllo Leggi Scrivi PC Unità di controllo emoria centrale centrale o periferiche Indirizzo Bus Indirizzi Dato Bus Dati D I... PSW LU stato Esegui Operazione Unità centrale aurizio Palesi 47 Struttura di una CPU Dati in ingresso Unità Operativa (datapath) CPU Dati in uscita clock comandi condizioni Istruzione Unità di di Controllo Comandi aurizio Palesi 48 24

Fetch-Esecuzione Fetch Prelievo e decodifica dell istruzione Comune a tutte le istruzioni Esecuzione Esecuzione delle azioni previste dal codice di operazione Diversa da istruzione a istruzione Inizio esecuzione La prossima istruzione viene letta dalla memoria e decodificata Fetch Execute Viene svolta l operazione prevista dal codice operativo dell istruzione stessa Fine esecuzione aurizio Palesi 49 Il Programma Programma = Sequenza di istruzioni Le istruzioni sono in memoria a indirizzi contigui Occorre un registro per memorizzare l indirizzo della prossima istruzione da eseguire Usualmente denominato Program Counter (PC) termine dell esecuzione di un istruzione, PC deve puntare alla prossima istruzione Le istruzioni sono a lunghezza fissa (stesso # di bytes) PC è incrementato di una quantità pari a tale numero Le istruzioni hanno lunghezza variabile PC deve essere incrementato di volta in volta della dimensione in byte dell istruzione appena eseguita Le istruzioni di salto hanno l effetto di aggiornare il PC con l indirizzo di destinazione del salto aurizio Palesi 50 25

Elementi Fondamentali di una CPU CPU UC DTPTH 1 Logica di controllo Comandi Condizioni n L U Indirizzi EOI I PC D Dati I/O Controllo aurizio Palesi 51 egistri di CPU I: Usato per contenere l'istruzione in corso di esecuzione Caricato in fase di fetch appresenta l'ingresso che determina le azioni svolte durante la fase di esecuzione PC: Tiene traccia dell'esecuzione del programma Contiene l indirizzo di memoria in cui è memorizzata la prossima istruzione da eseguire : contiene l'indirizzo della locazione di memoria da leggere o scrivere La dimensione di determina l'ampiezza dello spazio di memoria fisica Dalla fine degli anni '80 vengono prodotti microprocessori con bus indirizzi a 32 bit D: attraverso il quale viene scambiata l'informazione tra la memoria e la CPU Tradizionalmente la dimensione di D dà la misura del grado di parallelismo della macchina (8, 16, 32, 64 bit) 0, 1,...n: egistri di uso generale aurizio Palesi 52 26

Diagramma a Stati della Fase di Fetch Fetch PC PC D D [] I I D D Ogni stato ha durata di un periodo di clock, eccetto il secondo il quale può richiedere più cicli a causa della latenza della memoria Decodifica del del codice operativo ed ed incremento del del PC PC Fase di Execute aurizio Palesi 53 Fase di Execute (1 bus) DD DD 3, 3, 1, 1, 2 2 1 2 3 BUS BUS 1; Temp1 BUS BUS 2; Temp2 Temp1+BUS BUS Temp2; 3 BUS Temp1 L U Temp2 1 bilitazione dell uscita 1 e caricamento di Temp1 2 bilitazione dell uscita di 2, asserzione del comando DD all LU e abilitazione dell ingresso Temp2 3 bilitazione dell uscita Temp2 e dell Ingresso di 3 aurizio Palesi 54 27

Fase di Execute (3 bus) BUS BBUS CBUS DD DD 3, 3, 1, 1, 2 2 1 2 3 BUS 1; BBUS 2; 3 BUS+BBUS L U aurizio Palesi 55 Fase di Execute (2 bus) BUS BBUS DD DD 3, 3, 1, 1, 2 2 1 SCL 1 SCL 2 2 BUS 2; BUS; BBUS 1; B BBUS 3 is +B SCS 2 SCS L SCS is BBUS is; 3 BBUS B SCS B U SC OP Nota: E l Unità di Controllo che ha il compito di pilotare i segnali di abilitazione SCL e SCS SCL 2 aurizio Palesi 56 28

Controllo + Datapath PCWriteCond PCWrite IorD emead emwrite IWrite em2eg Unità di Controllo PCSource TargetWrite LUop LUSel LUSelB egwrite egdest P C U X Ind Lettura Lettura Dati E Ind Lettura Scrittura Dati E G I S T U X U X eg. Let. 1 eg. Let. 2 eg. F Scrittura I ScritturaL Dati E Let. E Dati1 G Est. Segno Let. Dati2 U X U X Shift S.2 bit L U Zero is. Shift S.2 bit T G E T U X aurizio Palesi 57 L Unità di Controllo ealizzazione Cablata ealizzazione icroprogrammata aurizio Palesi 58 29

Unità di Controllo ealizzazione Cablata Unità di Controllo ete Combinatoria Ingressi U s c i t e Unità Operativa di Stato Stato Prossimo Condizioni Cod.Op. eg.istruzione aurizio Palesi 59 Unità di Controllo ealizzazione Cablata Progettazione Seguendo il classico flusso di sintesi di una rete sequenziale Ingressi: I, Stato Uscite: comandi, stato prossimo Uso di O Ingressi (indirizzi alla O): I, stato di UO, stato di UC Uscite: comandi, ingressi di eccitazione dei FF di stato isura della complessità di UC #stati #ingressi #uscite aurizio Palesi 60 30

Unità di Controllo ealizzazione icroprogrammata Unità di Controllo emoria di icroprogramma Unità Operativa + µpc Selezione Indirizzo Condizioni Cod.Op. eg.istruzione aurizio Palesi 61 Unità di Controllo ealizzazione icroprogrammata Tecnica affermatasi negli anni 70 UC è una sorta di calcolatore nel calcolatore La memoria di controllo contiene le microistruzioni µpc: contatore di microprogramma Contiene l indirizzo della prossima microistruzione ll inizio della fase di fetch µpc contiene l indirizzo (I0) del tratto di microprogramma corrispondente al fetch lla fine della fase di fetch µpc viene aggiornato con il contenuto (o ad una opportuna decodifica) di I in modo da puntare alla microroutine che effettua le azioni richieste dalla particolare istruzione l termine, µpc viene di nuovo caricato con (I0) aurizio Palesi 62 31

Unità di Controllo Cablata vs. icroprogrammata Fino a fine anni 60: logica cablata (PDP8, HP 2116) nni 70: microprogrammazione (VX, Z80, 8086, 68000) epertorio di istruzioni molto esteso e variato: CISC Il VX 11/789 (Digital) e il 370/168 (IB) avevano oltre 400.000 bit di memoria di controllo Dagli anni 80 si è tornati alla logica cablata ffermazione delle macchine ISC Istruttivo è esaminare l evoluzione dell architettura Intel: da CISC a (praticamente) ISC aurizio Palesi 63 CISC CISC: Complex Instruction Set Computing Un repertorio di istruzioni esteso è preferibile perché: Istruzioni potenti semplificano la programmazione iduce il gap tra linguaggio di macchina e linguaggio di alto livello L uso efficiente della memoria (all epoca era costosa) era la preoccupazione principale: eglio avere codici compatti Essendo (allora) la memoria di controllo molto più veloce della memoria centrale, portare funzionalità nella prima avrebbe migliorato le prestazioni della macchina aurizio Palesi 64 32

ISC emorie olto più veloci delle precedenti a nuclei Cache iducono ulteriormente i tempi di esecuzione Comportamento dei programmi L'80% delle istruzioni eseguite corrispondeva al solo 20% del repertorio Conviene investire nella riduzione dei tempi di esecuzione di quel 20%, anziché aggiungere raffinate istruzioni, quasi mai usate, ma responsabili dell'allungamento del tempo di ciclo di macchina Conviene costruire processori molto veloci, necessariamente con repertori semplici, e contare sull ottimizzazione del compilatore ISC: educed Instruction Set Computing aurizio Palesi 65 ISC - Criteri di Progettazione Le istruzioni devono essere semplici Se l'introduzione di una operazione di macchina fa crescere del 10% il periodo di clock, allora essa deve produrre una riduzione di almeno un 10% del numero totale di cicli eseguiti Con memorie attuali Non c'è vantaggio a spostare le funzionalità a livello di microcodice Ciò ha solo l'effetto di rendere più difficoltose modifiche e cambiamenti olto meglio modificare una libreria di sistema che modificare una memoria di controllo aurizio Palesi 66 33

ISC - Criteri di Progettazione Tutte le istruzioni occupano lo stesso spazio di memoria (una parola) istretto numero di formati L'interpretazione del codice avviene attraverso un semplice decodificatore (una rete ND-O) La codifica ordinata consente accorgimenti per velocizzare l'esecuzione (pipeline), difficilmente applicabili a repertori di istruzioni complesse La semplificazione del repertorio tende a far aumentare la dimensione del codice Non è un problema, vista la tendenza alla riduzione dei costi e all'aumento della densità delle memorie Dal punto di vista della velocità i guadagni che si ottengono nel semplificare le istruzioni sono superiori all'effetto negativo del maggior numero di istruzioni per programma aurizio Palesi 67 Capacità di emoria (D singolo chip) size 1000000000 100000000 10000000 1000000 100000 10000 1000 1970 1975 1980 1985 1990 1995 2000 Year Single Chip D Year Size Cyc. Time 1980 64 Kb 250 ns 1983 256 Kb 220 ns 1986 1 b 190 ns 1989 4 b 165 ns 1992 16 b 145 ns 1996 64 b 120 ns 1999 256 b 100 ns 2002 1 Gb 80 ns Incremento 1,4 per anno 4000X dal 1980 aurizio Palesi 68 34

ISC - Criteri di Progettazione Conclusioni Progetto di un architettura che preveda solo operazioni tra registri (non registro/memoria o memoria/memoria) e operazioni di lettura/scrittura in memoria molto semplici con poche modalità di indirizzamento rchitetture Load/Store Il compilatore deve fare il miglior uso possibile dei registri e tenere il più possibile le variabili nei registri CPU con elevato numero di registri aurizio Palesi 69 35