1 / 67

Il processore PD32

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

tracey
Download Presentation

Il processore PD32

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Il processore PD32

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

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

  4. Modifica macchina di Von Neumanncon CPU Unità di Ingresso Memoria di lavoro Unità di Uscita Unità di Calcolo Unità di Controllo CPU

  5. Dal linguaggio ad alto livello al linguaggio macchina Programma in Linguaggio alto Livello Non dipende dalla macchina HW a=b+c Compilatore • Insieme istruzioni che • dipendono dalla • macchina hw (simboliche) • Commenti • Riferimenti simbolici movw b,R1 movw c,R2 addw R2,R1 movw R1,a Programma in Linguaggio Assembly Assemblatore 000101..010100 1011101..010100 01011..11101010 010..1110101010 • Insieme Istruzioni della • macchina hw • Riferimenti indirizzi fisici Programma in Linguaggio Macchina 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 Collega-menti con memoria e I/O ALU, shifter unità di calcolo

  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 dell’istruzione • L’esecuzione dell’istruzione 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 dall’istruzione) di operazioni elementari (cicli macchina) • Ciascun ciclo esegue un’operazione elementare (ad esempio trasferimento di un dato da un registro)

  10. Un semplice esempio Consideriamo l’istruzione 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.. a a 15 24 a =a+b b b 9 9 Prima Dopo

  11. Un semplice esempio (2) Per eseguire questa istruzione è necessario • Stabilire dove sono memorizzati i valori da sommare • Stabilire dove va scritto il risultato dell’operazione • Quale operazione svolgere • Nel PD32, gli operandi sono memorizzati nei registri interni alla CPU (registri visibili al programmatore) • Il formato dell’istruzione è (s può essere B,W,L) ADDs <sorgente><destinazione> 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 Indirizzo 100 adds R2,R1 PC 100 . . PC=Program Counter contatore di programma (memorizza indirizzo dell’ istruzione in esecuzione) MEMORIA

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

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

  15. Istruzione: fase di esecuzione Indirizzo 100 adds R2,R1 PC 100 IR adds R2,R1 . . MEMORIA Controllo Risorse di calcolo Esecuzione dell’istruzione (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 l’esecuzione istr. puo’ modificare PC) • Tale schema è semplificato poiché per interagire con l’esterno, 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 Una sola scrittura per volta (controllo mediante Bi) 2n segnali di controllo (n numero dei registri) WR0 WR1 WR7 R0 R1 R7 BR0 BR1 BR7 32 bit Wi=1, leggi dal bus Bi =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: BR1 = 1, WR0 = 1 WR0 WR1 WR7 R0 R1 R7 BR0 BR7 BR1 32 bit

  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 (WM) • lettura e conseguente invio sul bus interno del contenuto del registro (RM) WM Indirizzo RM BUS interno

  21. PD32- Banco dei registri Indirizzo registro Decoder WM RM R0 R1 R7 w7 w1 w0 B0 B1 B7 wi =1, scrivi valore sul bus in Ri Bi = 1, invia sul bus valore di Ri BUS

  22. PD32- esempio: R7 ->BUS Indirizzo registro Address=111, RM=1 Decoder 1 1 1 Address WM RM R0 R1 R7 w7 w1 w0 B0 B1 B7 BUS 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 TEMP1 TEMP2 WT2 WT1 32 OpCode (specifica operazione da eseguire) ALU BA

  24. PD32- ALU, esempio: esecuzione addw R2,R1 WM RM REGISTRI TEMP1 TEMP2 WT2 WT1 3 Address OpCode ALU BA 32

  25. PD32- ALU, esempio: esecuzione addw R2,R1 • R1 -> Temp1 RM=1, Address = 001, WT1=1 WM RM REGISTRI TEMP1 TEMP2 WT2 WT1 3 Address OpCode ALU BA 32

  26. PD32- ALU, esempio: esecuzione addw R2,R1 • R1 -> Temp1 RM=1, Address = 001, WT1 = 1 • R2 -> Temp2 RM=1, Address = 010, WT2 = 1 WM RM REGISTRI TEMP1 TEMP2 WT2 WT1 3 Address OpCode ALU BA 32

  27. PD32- ALU, esempio: esecuzione addw R2,R1 • R1 -> Temp1 RM=1, Address = 001, WT1 = 1 • R2 -> Temp2 RM=1, Address = 010, WT2 = 1 • ALU-OUT(Temp1+Temp2)->R1 WM=1, Address = 001, OpCode = addw, BA=1 WM RM REGISTRI TEMP1 TEMP2 WT2 WT1 3 Address OpCode ALU BA 32

  28. Osservazioni • Per l’esecuzione dell’istruzione (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 dall’istruzione. 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) TEMP1 TEMP2 WT2 WT1 32 bit OpCode OpCode SHIFTER ALU BA BS

  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 sull’esito dell’ultima operazione (ex. zero, overflow). Usato anche come ingresso per alcune operazioni (ex. Salti condizionati) TEMP1 TEMP2 WT2 WT1 32 OpCodeALU OpCodeSHIFTER SHIFTER ALU BA BS SR BSR

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

  35. Incremento 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 INC2 PC INC1 WPC R PC

  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 Un’organizzazione 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 l’intero modulo (Chip Select) • Dati Tempo di accesso n bit Indirizzo valido Dati MR MR MW CS Dato valido Indirizzo m bit

  40. Memoriaorganizzazione in moduli Data BUS (32 bit) d31…d24 d23…d16 d15…d8 d7…d0 MR MW CS MR MW CS MR MW CS MR MW CS a2…a31 a2…a31 a2…a31 a2…a31 Mb3 Mb2 Mb1 Mb0 Address BUS (30 bit)

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

  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 Data BUS (32 bit) d31…d24 d23…d16 d15…d8 d7…d0 MR MW CS MR MW CS MR MW CS MR MW CS a2…a31 a2…a31 a2…a31 a2…a31 Mb3 Mb2 Mb1 Mb0 Address BUS (30 bit)

  44. Memoria: byte non allineati (1) Data BUS (32 bit) d31…d24 d23…d16 d15…d8 d7…d0 MR MW CS MR MW CS MR MW CS MR MW CS a2…a31 a2…a31 a2…a31 a2…a31 Mb3 Mb2 Mb1 Mb0 Address BUS (30 bit)

  45. Memoria: byte non allineati (2) Data BUS (32 bit) d31…d24 d23…d16 d15…d8 d7…d0 MR MW CS MR MW CS MR MW CS MR MW CS a2…a31 a2…a31 a2…a31 a2…a31 Mb3 Mb2 Mb1 Mb0 Address BUS (30 bit)

  46. Memoria: interfaccia del PD32 • Registro Memoria Dati (MDR) • Registro Indirizzo (MAR) • Segnali di Controllo (MR,MW, Mb3, Mb2, Mb1, Mb0) WMDR Memoria Di Lavoro SCO dati BMDR MDR Segnali di Controllo MAR indirizzi Bus interno WMAR

  47. Memoria: interfaccia SCA del PD32

  48. PD32- Interazione con l’esterno • Ogni fase che comporta l’interazione 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. Registro Interfaccia dispositivi di I/O INTERFACCIA Indipendente dal dispositivo Dipendente dal dispositivo indirizzi Decoder segnali di controllo segnali di controllo Device Control dati dati BUS

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

More Related