La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Il processore PD32. Macchina di von Neumann Unità di Calcolo Unità di Controllo Memoria di lavoro Unità di Ingresso Unità di Uscita.

Presentazioni simili


Presentazione sul tema: "Il processore PD32. Macchina di von Neumann Unità di Calcolo Unità di Controllo Memoria di lavoro Unità di Ingresso Unità di Uscita."— Transcript della presentazione:

1 Il processore PD32

2 Macchina di von Neumann Unità di Calcolo Unità di Controllo Memoria di lavoro Unità di Ingresso Unità di Uscita

3 Unità di Calcolo Unità di Controllo Memoria di lavoro Unità di Ingresso Unità di Uscita SCO Suddivisione SCA-SCO SCA Segnali di controllo/condizione Flusso dati

4 Modifica macchina di Von Neumann con CPU Unità di Calcolo Unità di Controllo Memoria di lavoro Unità di Ingresso Unità di Uscita CPU

5 Dal linguaggio ad alto livello al linguaggio macchina Programma in Linguaggio alto Livello Compilatore Programma in Linguaggio Assembly Assemblatore Programma in Linguaggio Macchina a=b+c movw b,R1 movw c,R2 addw R2,R1 movw R1,a Non dipende dalla macchina HW Insieme istruzioni che dipendono dalla macchina hw (simboliche) Commenti Riferimenti simbolici Insieme Istruzioni della macchina hw Riferimenti indirizzi fisici Macchina HW

6 PD32 Processore virtuale dotato di registri da 32 bit Non esiste nella realtà, ma le sue funzionalità sono simulate tramite un programma Nel seguito sarà usato per approfondire alcuni aspetti legati alle architetture dei calcolatori Sistema multiciclo No pipeline, no memoria cache

7 R0,R1... registri ALU, shifter unità di calcolo Collega- menti con memoria e I/O

8 PD32- Sottosistema di Calcolo (SCA) Registri (basati su Flip-Flop D con segnale di Enable) –speciali –generali Dispositivi di calcolo –Shifter –ALU (somma e sottrazione) MUX Decodificatori Struttura di interconnessione: BUS

9 Esecuzione dellistruzione Lesecuzione dellistruzione prevede tre fasi fetch, decodifica e esecuzione -La decodifica è fatta dal sistema di controllo (SCO); le altre da SCA -SCA utilizza le risorse del processore -La fase di esecuzione di un ciclo istruzione consiste in un numero variabile (dipende dallistruzione) di operazioni elementari (cicli macchina) - Ciascun ciclo esegue unoperazione elementare (ad esempio trasferimento di un dato da un registro)

10 Un semplice esempio Consideriamo listruzione a=a+b, espressa in un linguaggio di alto livello Memorizza nella variabile di nome a, la somma dei valori contenuti nelle variabili di nome a e b Nota: Le variabili sono individuate da un nome simbolico deciso precedentemente nel programma.. 15 a 9 b 24 9 a b PrimaDopo a =a+b

11 Un semplice esempio (2) Per eseguire questa istruzione è necessario –Stabilire dove sono memorizzati i valori da sommare –Stabilire dove va scritto il risultato delloperazione –Quale operazione svolgere Nel PD32, gli operandi sono memorizzati nei registri interni alla CPU (registri visibili al programmatore) Il formato dellistruzione è (s può essere B,W,L) ADDs Il campo destinazione è un registro che contiene il valore iniziale di un operando e che sarà modificato ADDW R2,R1 #somma R1 con R2 (32 bit) e poni il risultato in R1

12 Esecuzione istruzione 100 PC adds R2,R Indirizzo MEMORIA PC=Program Counter contatore di programma (memorizza indirizzo dell istruzione in esecuzione)

13 Istruzione: fase di fetch 100 PC adds R2,R Indirizzo adds R2,R1 IR MEMORIA PC=Program Counter IR= Instruction Register (memorizza istruzione in esecuzione)

14 Istruzione: decodifica 100 PC adds R2,R Indirizzo adds R2,R1 IR Controllo MEMORIA Decodifica istruzione: predispone i comandi per la sua esecuzione

15 Istruzione: fase di esecuzione 100 PC adds R2,R Indirizzo adds R2,R1 IR Controllo Risorse di calcolo MEMORIA Esecuzione dellistruzione (consiste di diversi passi)

16 CPU come interprete La CPU può essere specificato come la ripetizione continua del seguenti passi (Ciclo Istruzione) che interpretano le istruzioni di un programma contenuto in memoria. fetch:(PC) IR incrementa PC esegui istruzione in IR vai al passo fetch La CPU interpreta le istruzioni che man mano sono presenti nel suo Instruction Register (nota che lesecuzione istr. puo modificare PC) Tale schema è semplificato poiché per interagire con lesterno, o gestire situazioni anomale, tale ciclo deve poter essere interrotto. La notazione (PC) indica il contenuto della locazione di memoria con indirizzo PC

17 PD32- BUS interno Usato per il collegamento dei registri interni Operazioni che caratterizzano il bus –Ricezione dati i bit presenti sul bus sono memorizzati in un registro –Trasmissione dati Il contenuto di un registro è posto sul bus Al più un solo registro può scrivere sul bus –segnali di controllo opportunamente generati Il segnale di abilitazione alla scrittura di un registro corrisponde alla ricezione dei dati presenti sul bus in quel momento Il segnale di abilitazione sul buffer three-state permette di trasferire sul bus il contenuto del registro

18 PD32- BUS interno, segnali di controllo 32 bit R0R0 R1R1 R7R7 W R0 W R1 W R7 B R0 B R1 B R7 Una sola scrittura per volta (controllo mediante Bi) 2n segnali di controllo (n numero dei registri) W i =1, leggi dal bus B i =1 scrivi sul bus

19 PD32- BUS interno, esempio R1 -> R0 Per eseguire il trasferiemento da R1 ad R0 (simbolicamente (R1)->R0) devono essere affermati solamente i seguenti segnali: B R1 = 1, W R0 = 1 32 bit R0R0 R1R1 R7R7 W R0 W R1 W R7 B R0 B R1 B R7

20 PD32- Banco dei registri Insieme di 8 registri generali indicati da R0 ad R7 Sono controllati mediante –Segnali di abilitazione per scrittura del registro (W M ) lettura e conseguente invio sul bus interno del contenuto del registro (R M ) Indirizzo BUS interno WMWM RMRM

21 R0R0 R1R1 R7R7 w0w0 w1w1 w7w7 B0B0 B1B1 B7B7 BUS w i =1, scrivi valore sul bus in Ri B i = 1, invia sul bus valore di Ri Decoder WMWM RMRM Indirizzo registro PD32- Banco dei registri

22 PD32- esempio: R7 ->BUS R0R0 R1R1 R7R7 w0w0 w1w1 w7w7 B0B0 B1B1 B7B7 BUS Decoder Indirizzo registro WMWM RMRM Address=111, RM=1 Address nota: non si può leggere e scrivere contemporaneamente

23 PD32- ALU Esegue le operazioni aritmetiche e logiche dei valori memorizzati in due registri tampone (non visibili al programmatore) Temp1 e Temp2 Il risultato è posto in un registro generale Ri TEMP1TEMP2 OpCode (specifica operazione da eseguire) BABA W T1 W T2 ALU 32

24 PD32- ALU, esempio: esecuzione addw R2,R1 TEMP1TEMP2 OpCode BABA W T1 W T2 ALU REGISTRI WMWM RMRM 3 32 Address

25 PD32- ALU, esempio: esecuzione addw R2,R1 1.R1 -> Temp1R M =1, Address = 001, W T1 =1 TEMP1TEMP2 OpCode BABA W T1 W T2 ALU REGISTRI WMWM RMRM 3 32 Address

26 PD32- ALU, esempio: esecuzione addw R2,R1 1.R1 -> Temp1R M =1, Address = 001, W T1 = 1 2.R2 -> Temp2R M =1, Address = 010, W T2 = 1 TEMP1TEMP2 OpCode BABA W T1 W T2 ALU REGISTRI WMWM RMRM 3 32 Address

27 PD32- ALU, esempio: esecuzione addw R2,R1 1.R1 -> Temp1R M =1, Address = 001, W T1 = 1 2.R2 -> Temp2R M =1, Address = 010, W T2 = 1 3.ALU-OUT(Temp1+Temp2)->R1W M =1, Address = 001, OpCode = addw, B A =1 TEMP1TEMP2 OpCode BABA W T1 W T2 ALU REGISTRI WMWM RMRM 3 32 Address

28 Osservazioni Per lesecuzione dellistruzione (senza considerare la fase di fetch) sono state necessarie 3 operazioni elementari Ogni operazione viene eseguita durante un ciclo di clock In generale il numero di cicli di clock richiesti per completare una istruzione è variabile e dipende dallistruzione. Tale paramentro viene indicato con CPI (Clock per Instruction) La velocità di esecuzione di un programma dipende anche dal numero medio di CPI

29 PD32- Shifter Usato per eseguire operazioni di scorrimento di posizioni, nonché per lo spostamento di dati tra registri interni (i registri tampone non possono scrivere sul bus mentre i segnali di controllo valgono per tutti i registri) TEMP1TEMP2 OpCode BABA W T1 W T2 ALU 32 bit SHIFTER OpCode BSBS

30 Shifter (background) Spostamento logico a destra di k posti. bn-i = 0 (per 0 i < k) bi = ai+k (per 1 i n - k) C = ak

31 Barrel shifter

32 Schema di una cella

33 PD32- Status Register Contiene informazioni sullesito dellultima operazione (ex. zero, overflow). Usato anche come ingresso per alcune operazioni (ex. Salti condizionati) TEMP1TEMP2 OpCodeALU BABA W T1 W T2 ALU 32 SHIFTER OpCodeSHIFTER BSBS SR B SR

34 singola linea linee multiple N.B. non sono evidenziate le variabili di condizione che da SR e IR vanno al SCO opcode BB BA BS S R PC R W M U X I R B SR... R W M M decoder AND R0 R1 R7 AND... shifter ALU TEMP1TEMP2 Wt1 Wt2 opcode W IR S MUX INC(N=1,2,4)

35 Incremento PC PC R INC 2 INC 1 W PC Il PC deve essere incrementato (se non si eseguono istruzione di salto) NOTA: le istruzioni PD-32 possono avere lunghezza diversa; quindi incremento PC è variabile

36 PD32- Interazione con la memoria La memoria contiene sia i dati che le istruzioni e può essere sia letta che scritta. E necessario quindi: –Prelevare istruzioni –Leggere dati –Scrivere dati Le operazioni di lettura/scrittura avvengono fra una locazione di memoria e un registro (registro dati, RI, PC) E necessario quindi instradare opportunamente i dati ricevuti dalla memoria verso i registri e viceversa.

37 Memoria: organizzazione logica Organizzazione logica a vettore di 16 celle di memoria Unorganizzazione a 4 moduli di 16 celle di memoria

38 Memoria RAM

39 Memoria comportamento esterno Funzionalmente è caratterizzata dai seguenti segnali –Indirizzo della parola da leggere/scrivere –MR, affermato se si vuole leggere –MW, affermato se si vuole scrivere –CS, Abilita lintero modulo (Chip Select) –Dati Indirizzo Dati MR MW CS m bit n bit Indirizzo valido Dato valido Tempo di accesso MR

40 Memoria organizzazione in moduli Address BUS (30 bit) Data BUS (32 bit) a 2 …a 31 d 23 …d 16 d 31 …d 24 a 2 …a 31 d 15 …d 8 a 2 …a 31 d 7 …d 0 Mb 3 Mb 2 Mb 1 Mb 0 MR MW CS MR MW CS MR MW CS MR MW CS

41 Lo spazio di indirizzamento del PD32 e monodimensionale e Composto da 2 32 locazioni (byte) Locazione Locazione FFFFFFFF Byte (8 bit) Word (16 bit) Longword (32 bit) Memoria: spazio di indirizzamento

42 Memoria: disallineamento Esempio di memorizzazione di una informazione di quattro byte allineati sullo stesso indirizzo di riga. Esempio di memorizzazione di una informazione di quattro byte disallineati Esempio di memorizzazione di una informazione di due byte disallineati

43 Memoria : byte allineati Address BUS (30 bit) Data BUS (32 bit) a 2 …a 31 d 23 …d 16 d 31 …d 24 a 2 …a 31 d 15 …d 8 a 2 …a 31 d 7 …d 0 Mb 3 Mb 2 Mb 1 Mb 0 MR MW CS MR MW CS MR MW CS MR MW CS

44 Memoria : byte non allineati (1) Address BUS (30 bit) Data BUS (32 bit) a 2 …a 31 d 23 …d 16 d 31 …d 24 a 2 …a 31 d 15 …d 8 a 2 …a 31 d 7 …d 0 Mb 3 Mb 2 Mb 1 Mb 0 MR MW CS MR MW CS MR MW CS MR MW CS

45 Memoria : byte non allineati (2) Address BUS (30 bit) Data BUS (32 bit) a 2 …a 31 d 23 …d 16 d 31 …d 24 a 2 …a 31 d 15 …d 8 a 2 …a 31 d 7 …d 0 Mb 3 Mb 2 Mb 1 Mb 0 MR MW CS MR MW CS MR MW CS MR MW CS

46 Memoria: interfaccia del PD32 Registro Memoria Dati (MDR) Registro Indirizzo (MAR) Segnali di Controllo (MR,MW, Mb 3, Mb 2, Mb 1, Mb 0 ) MDR MAR Memoria Di Lavoro W MAR W MDR Bus interno dati indirizzi SCO Segnali di Controllo B MDR

47 Memoria: interfaccia SCA del PD32

48 PD32- Interazione con lesterno Ogni fase che comporta linterazione con le unità esterne viene detta ciclo macchina. Ogni ciclo macchina può essere costituito da uno o due cicli di bus; per esempio la lettura di una parola memorizzata su due byte non allineati sullo stesso indirizzo di riga necessita di due accessi in memoria (cioè di due cicli di bus).

49 Interfaccia dispositivi di I/O Device Control Dipendente dal dispositivo Indipendente dal dispositivo INTERFACCIA BUS Decoder Registro indirizzi dati segnali di controllo dati segnali di controllo

50 Dispositivi di I/O: interfaccia del PD32 Registro Dati (I/ODR) Registro Indirizzo (I/OAR) Segnali di Controllo (I/OR,I/OW, Start, ………. ) I/ODR I/0AR Dispositivo di I/O W MAR W MDR Bus interno dati indirizzi SCO Segnali di Controllo B I/ODR

51 I/O: interfaccia SCA del PD32

52 Interconnesione del PD32 PD32 Memory address bus Memory control bus Memory data bus Modulo di memoria Modulo di memoria I/O address bus I/O control bus I/O data bus 8 Interfaccia I/O Interfaccia I/O 32 dispositivo di I/O dispositivo di I/O

53 Sottosistema di controllo (SCO) SCA (SLAVE) SCO (MASTER) TASK Data In Data Out Stato o variabili di condizionamento Variabili Condizionamento esterne Uscite esterne

54 Sottosistema di controllo (SCO) Decodifica

55 SCO: schema di Mealy spostamento base load reset codice classe micro ordini reg. SEL circuito di selezione ROM variabili di condizione CK

56 SCO: schema di Moore Cod. Classe: codice istruzione Load: segnale di caricamento nuova istruzione (a fine fetch) Reset: azzera cod. classe (inizia fetch) variab. di cond.: influenzano esecuzione istr. (ad es. var. in SR) Micrordini: comandi per SCA CK: clock

57 Interazione con la memoria: ciclo di scrittura T1T2T3 CLOCK MWR BUS INDIRIZZI indirizzo dato BUS DATI

58 Interazione con la memoria: ciclo di lettura T1T2T3 CLOCK BUS INDIRIZZI MRD BUS DATI indirizzo dato

59 Passi elementari per eseguire il Fetch (ipotesi: 4 byte allineati in memoria) 1.PC -> MAR; /* trasferimento del contenuto del PC nel MAR */ MDR MAR Memoria Di Lavoro W MAR W MDR PC R PC IR W IR W PC Address Bus Data Bus B DIR DB B AB INC 4 B MDR

60 Fetch 1.PC -> MAR; /* trasferimento del contenuto del PC nel MAR */ 2.(MAR)->MDR /* trasferimento istruzione da eseguire in MDR*/ MDR MAR Memoria Di Lavoro W MAR W MDR PC R PC IR W IR W PC Address Bus Data Bus B DIR DB B AB INC 4 B MDR

61 Fetch 1.PC -> MAR; /* trasferimento del contenuto del PC nel MAR */ 2.(MAR) -> MDR /* trasferimento istruzione da eseguire in MDR*/ 3.MDR -> IR /* trasferimento istruzione da eseguire nellIR*/ PC+4->PC /* e predisposizione PC per prelievo prossima istruzione*/ MDR MAR Memoria Di Lavoro W MAR W MDR PC R PC IR W IR W PC Address Bus Data Bus B DIR DB B AB INC 4 B MDR

62 Fetch: micro-ordini 1.PC -> MAR; /* trasferimento del contenuto del PC sul MAR */ 1.R PC = 1, W MAR = 1 2.(MAR) -> MDR /* trasferimento istruzione da eseguire in MDR*/ 1.B AB = 1 /* T1 */ 2.B AB = 1, MRD = 1 /* T2 */ 3.B AB = 1, MRD = 1, W MDR = 1 /* T3*/ 3.MDR -> IR /* trasferimento istruzione da eseguire in IR e predisposizione PC per prelievo prossima istruzione*/ 1.B MDR = 1, W IR = 1, INC 4 = 1

63 Ciclo Istruzione - Decode IR SCO reset RESET fetch2 I = ADD I = MOV fetch3 add1 fetch4 add2 addx fetch1fetch5 fetch5: decodifica istr. utilizzando IR e dopo esecuzione delle diverse istruzioni, add, mov, sub, jump...

64 Ciclo Istruzione

65 PC Il registro Program Counter contiene lindirizzo da cui prelevare listruzione da eseguire. Il SCO lo incrementa di 4 ad ogni fetch IR = Instruction Register Segnali di comando per la SCA e per lo SCO Fetch 1)PC -> MAR 2)(MAR) -> MDR 3)MDR -> IR, PC + 4 -> PC Bus memoria MEMORIA Istruzione 1 Istruzione 2 Istruzione 3 Ciclo Istruzione - Fetch Si assume che ogni istruzione sia di 4 byte

66 Esecuzione dellistruzione Nel PD32 la fase di esecuzione di un ciclo istruzione consiste in un numero variabile di cicli macchina dipendente dal numero di accessi in memoria necessari (oltre al fetch) 1.PC -> MAR; 2.(MAR) -> MDR 3.MDR -> IR, PC+4->PC 4.R2 -> Temp1 5.PC -> MAR 6.(MAR) ->MDR 7.MDR -> Temp2, PC+2->PC 8.OUT_ALU -> R2 Entrambi gli operandi sono contenuti in registri interni del PD32 (indirizzamento a registro) Uno degli operandi (0x20) è memorizzato nei due byte successivi a quelli contenente listruzione (indirizzamento immediato) ADDW #20h, R2 ADDW R1, R2 1.PC -> MAR; 2.(MAR) -> MDR 3.MDR -> IR, PC+4->PC 4.R1 -> Temp1 5.R2 -> Temp2 6.OUT_ALU -> R2

67 Esercizi Con riferimento alla parte SCA della CPU, rispondere Cosa succede se elimino il buffer temp2? discutere lefficienza del sistema (vantaggi e svantaggi) Modificare la struttura SCA inserendo due bus dati Se ci sono due bus dati come migliora lefficienza del sistema? su quali operazioni? Nel PD32 ci sono 8 registri dati; discutere vantaggi e svantaggi di avere molti registri dati (ad es. cento) Nel fetch si incrementa il PC per tutte le istruzioni. Perché è corretto anche per i salti; migliora lefficienza? Dare il microdice per le istruzioni di salto del PD32


Scaricare ppt "Il processore PD32. Macchina di von Neumann Unità di Calcolo Unità di Controllo Memoria di lavoro Unità di Ingresso Unità di Uscita."

Presentazioni simili


Annunci Google