Dispense del corso di
Architettura dei Calcolatori



 Elementi architetturali di base
a.a. 2007/2008
Architettura dei calcolatori



                               Semplici sistemi digitali
 •      Circuiti c...
a.a. 2007/2008
Architettura dei calcolatori


                                       Architettura di Von Neumann (1/2)

  ...
a.a. 2007/2008
Architettura dei calcolatori


                               Architettura di Von Neumann (2/2)

 •      L’...
a.a. 2007/2008
Architettura dei calcolatori


                                                Interfaccia della CPU

 •   ...
a.a. 2007/2008
Architettura dei calcolatori


                               Progetto di un calcolatore (1/2)

 Progetto d...
a.a. 2007/2008
Architettura dei calcolatori


                               Progetto di un calcolatore (2/2)

 Definizion...
a.a. 2007/2008
Architettura dei calcolatori


                                                  La CPU
 •      Dal punto d...
a.a. 2007/2008
Architettura dei calcolatori



                               Organizzazione di un sistema digitale
 •    ...
a.a. 2007/2008
Architettura dei calcolatori



                                       Trasferimenti tra registri
 •      U...
a.a. 2007/2008
Architettura dei calcolatori



                                   Altre operazioni
 •      Le operazioni s...
a.a. 2007/2008
Architettura dei calcolatori



                               Connessioni tra i registri
 •      In un sis...
a.a. 2007/2008
Architettura dei calcolatori



                                     Trasferimenti con la memoria
 •      C...
a.a. 2007/2008
Architettura dei calcolatori


                                       Microarchitettura della CPU (1/2)


 ...
a.a. 2007/2008
Architettura dei calcolatori


                                          Microarchitettura della CPU (2/2)
...
a.a. 2007/2008
Architettura dei calcolatori


                                              Ciclo di istruzione
          ...
a.a. 2007/2008
Architettura dei calcolatori


                                                         Esempio
 •      IR ...
a.a. 2007/2008
Architettura dei calcolatori


                                                   Instruction fetch


     ...
a.a. 2007/2008
Architettura dei calcolatori


                                              Instruction decode


         ...
a.a. 2007/2008
Architettura dei calcolatori


                                                    Execute (AluOP)


      ...
a.a. 2007/2008
Architettura dei calcolatori


                                               Execute (load)


 memoria    ...
a.a. 2007/2008
Architettura dei calcolatori


                                                Execute (store)


  memoria ...
a.a. 2007/2008
Architettura dei calcolatori


                                             Esempio
 Esempio:
 • deve esser...
Upcoming SlideShare
Loading in …5
×

Architettura dei Calcolatori 06 Elementi Architetturali Di Base

2,111
-1

Published on

Published in: Technology, Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
2,111
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
47
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Architettura dei Calcolatori 06 Elementi Architetturali Di Base

  1. 1. Dispense del corso di Architettura dei Calcolatori Elementi architetturali di base
  2. 2. a.a. 2007/2008 Architettura dei calcolatori Semplici sistemi digitali • Circuiti combinatori e sequenziali possono essere utilizzati per creare semplici sistemi digitali. • Questi sono i componenti f d Q ti ti fondamentali per l creazione di un calcolatore t li la i l lt digitale. • I sistemi digitali di base sono frequentemente caratterizzati in termini g q – di registri contenuti – operazioni che si possono eseguire • Le operazioni sui dati contenuti nei registri sono dette microoperazioni. Queste vengono tipicamente eseguite in un solo ciclo di clock. 2
  3. 3. a.a. 2007/2008 Architettura dei calcolatori Architettura di Von Neumann (1/2) L’architettura di Von Neumann si compone di 3 parti fondamentali: 1 MEMORIA: unità che mantiene le istruzioni che compongono il programma da eseguire e i dati che fungono da operandi per tali operazioni 2 CPU (central processing unit) o processore: è composto da una unità di controllo per gestire le comunicazioni con tutte le unità del sistema e per gestire il prelievo delle istruzioni (fetch) e la loro esecuzione e da una esecuzione, unità aritmetico logica (ALU) che esegue le istruzioni stesse e che gestisce l’accesso agli operandi. 3. 3 INPUT/OUTPUT le porte di interfaccia con l’esterno (e con i corrispondenti dispositivi periferici) . Input Output Memoria CPU 3
  4. 4. a.a. 2007/2008 Architettura dei calcolatori Architettura di Von Neumann (2/2) • L’architettura di Von Neumann prevede una unità di elaborazione centrale (CPU Central Processing Unit) che esegue sequenze di istruzioni che sono riposte in una struttura di memorizzazione (memoria).La memoria contiene anche i dati che sono le informazioni che vengono elaborate dalla CPU in base alle istruzioni. • Col termine di “memoria” ci si riferisce alla Memoria centrale, direttamente interfacciata alla CPU, mentre la memoria di massa è logicamente un sistema di memoria ma fisicamente un dispositivo di I/O g p • Dati ed Istruzioni sono fisicamente codificate come stringhe di bit, che però vengono i t ò interpretate differentemente dalla CPU t t diff t t d ll • Architettura di Von Neuman: in cui esiste una sola memoria che contiene sia dati che istruzioni • Architettura di Harvard: in cui dati e istruzioni sono memorizzati su due memorie separate a cui la CPU accede contemporaneamente 4
  5. 5. a.a. 2007/2008 Architettura dei calcolatori Interfaccia della CPU • I segnali di interfaccia dei processori si dividono in: – segnali di indirizzo per lo spazio di indirizzamento in memoria (n 2n locazioni di memoria indirizzabili) segnali – segnali di dato (indica il massimo parallelismo di parola nel trasferimento) – segnali di controllo Arbitraggio Indirizzi Coprocessore Dati CPU o multiprocessore Controllo C t ll Stato interno del trasferimento Interruzioni Reset Clk Ready Vcc/ gnd 5
  6. 6. a.a. 2007/2008 Architettura dei calcolatori Progetto di un calcolatore (1/2) Progetto della CPU 1) definizione dell ISA. Più CPU sono compatibili a livello di ISA ma non di dell’ISA ISA, architettura interna (ad es: Intel Pentium , Intel Celeron, AMD, …) 2) definizione dei blocchi logici della CPU a livello di microarchitettura (come realizzare la pipeline, la superscalarità) 3) definizione di blocchi aggiuntivi per migliorare le prestazioni (ad es branch es. prediction table) 4) come progettare i singoli blocchi (come realizzare le ALU i registri e ALU, soprattutto l’unità di controllo) 5) come interfacciare la CPU con l’esterno (interfaccia con la memoria e struttura l esterno dei bus) Se poi il sistema è multiprocessor le scelte progettuali sono ancora più numerose numerose. 6
  7. 7. a.a. 2007/2008 Architettura dei calcolatori Progetto di un calcolatore (2/2) Definizione dell’architettura del calcolatore • Definizione dell’architettura delle memorie (gerarchia di memorie, memorie cache di primo e secondo livello, parallelismo delle memorie, interallacciamento, ) interallacciamento …) • Scelte tecnologiche ( g (RAM,DRAM..) , ) • Interfaccia di bus con le memorie • Definizione dei bus di I/O (bus PCI, ISA, EIDE, SCSI,…) • Scelta della gestione delle periferiche • Scelta delle periferiche 7
  8. 8. a.a. 2007/2008 Architettura dei calcolatori La CPU • Dal punto di vista strutturale la CPU è composta da alcune parti combinatorie: – ALU, decodifica degli indirizzi per i registri interni – decodifica delle istruzioni,… • e d alcune parti sequenziali da l i i li Data path – REGISTRI di dato e controllo – Unità di Controllo (Control Unit) Istruz. s.contr. Segnali di • Dal punto di vista funzionale si divide in Unità di controllo nel controllo – Data path (o execution unit): calcolatore il percorso dei dati – Control unit (l’unità di controllo) Memorie I/O • l’unità di elaborazione acquisisce istruzioni e dati, passa le istruzioni alla unità di controllo, esegue le operazioni di ALU, genera i risultati, calcola il prossimo indirizzo… • la unità di controllo è una FSM che controlla l’unita’ di elaborazione ed i segnali con l’esterno • L’implementazione a livello di reti logiche e la progettazione a livello RTL (corrispondente alla microarchitett ra) è dipendente dalla famiglia delle CPU e microarchitettura) dalla casa costruttrice 8
  9. 9. a.a. 2007/2008 Architettura dei calcolatori Organizzazione di un sistema digitale • Definizione dell’organizzazione interna del calcolatore – Insieme dei registri e delle loro funzioni – Insieme delle microoperazioni consentite – Segnali di controllo che controllano la sequenza di microoperazioni necessaria a realizzare una certa funzione • Questo livello della descrizione di un sistema digitale viene detto Register Transfer Level (RTL) ovvero livello dei trasferimenti tra registri. • Per evitare di specificare i dettagli a parole si utilizza un formalismo apposito detto anche Register Transfer Language. Language • In questo linguaggio le lettere maiuscole (seguite eventualmente da numeri) indicano i registri: R0, A, MDR, IP. Alcuni di questi sono acronimi per le funzioni svolte. svolte • A volte si indicano porzioni di registri, quali singoli bit o gruppi di bit: Rappresentazione dei singoli bit Registro R1 7 6 5 4 3 2 1 0 15 15 87 0 0 R2 PC(H) PC(L) Numerazione d i bit N i dei Sotto S tt campi i 9
  10. 10. a.a. 2007/2008 Architettura dei calcolatori Trasferimenti tra registri • Un trasferimento è la copia del contenuto di un registro in un altro. Un trasferimento si indica con: R2 ← R1 e indica di caricare il contenuto di R1 in • R2 in un solo ciclo di clock clock. • Per realizzare la microoperazione è necessario prevedere un collegamento tra l’uscita di R1 e l’ingresso di R2 e di avere delle linee di controllo che consentano di comandare la contemporanea abilitazione dell’uscita di R1 e la scrittura su R2 dell uscita R2. • E’ possibile poi indicare una condizione in base alla quale eseguire la microoperazione, dove la condizione è un segnale di controllo binario: P: R2 ← R1 • Questo indica che se P=1 viene eseguito il trasferimento da R1 a R2. • Con uno schema a blocchi: Circuito Load P R2 Clock di n controllo R1 10
  11. 11. a.a. 2007/2008 Architettura dei calcolatori Altre operazioni • Le operazioni simultanee vengono separate con una virgola: P: R3 ← R5, MAR ← IR • In questo caso se la condizione P è vera R5 viene copiato in R3 e il vera, registro IR nel registro MAR. • Con le parentesi tonde si indicano le parti di un registro: R4(0-7) ← R6(8-15) • In questo esempio si trasferiscono i bit da 8 a 15 di R6 in quelli da 0 a 7 di R4. Come sempre si dovranno p p prevedere le opportune linee p il pp per trasferimento a livello di architettura hardware. 11
  12. 12. a.a. 2007/2008 Architettura dei calcolatori Connessioni tra i registri • In un sistema digitale con molti registri non è possibile avere linee di trasferimento da ogni registro ad ogni altro registro. Questo per la semplice considerazione che per n registri servirebbero n(n 1) linee di n(n-1) connessione ognuna della dimensione del numero di bit dei registri. In un processore con 32 registri a 32 bit, si avrebbero 31744 piste! • La soluzione adottata è quella di connettere tutti i registri ad un unico sistema di comunicazione controllato da alcuni segnali di controllo che decidono quale registro è connesso come sorgente, e q q g g quale come destinazione. • Questo canale di comunicazione è noto con il nome di bus. • Con C questa architettura non è possibile trasferire dati t hit tt ibil t f i d ti contemporaneamente tra più coppie di registri. • Un bus si può realizzare sia con buffer tri-state sia con una struttura a p multiplexer. 12
  13. 13. a.a. 2007/2008 Architettura dei calcolatori Trasferimenti con la memoria • Collettivamente la memoria viene vista come un dispositivo denotato con M. • Dato che esistono numerose celle, è necessario specificare l’indirizzo della cella da leggere o scrivere scrivere. • Tipicamente questo indirizzo viene posto in un registro apposito denominato Memory Address Register (MAR) che viene inviato alla memoria. M Read Memory MAR unit Write Data out Data in • Esiste poi il registro Memory Data Register (MDR) che è il filtro tra la memoria e la CPU. Tutti i trasferimenti avvengono con questo registro: MDR ← M[MAR] M[MAR] ← MDR • La prima è una operazione di lettura, mentre la seconda è una operazione di scrittura. 13
  14. 14. a.a. 2007/2008 Architettura dei calcolatori Microarchitettura della CPU (1/2) CPU Control unit clock Ctrl. sgn. Instr. Execution unit Data out Instr. Instr (data path) (d h) Data in Data bus Address bus (external) control bus memory y 14
  15. 15. a.a. 2007/2008 Architettura dei calcolatori Microarchitettura della CPU (2/2) MEM na ctrl bus addr bus data bus nd MDR IR ALU REG CTRL ctrl signals PC UNIT MAR Registri interni ed unità di elaborazione IR: instruction register (ultima istruzione prelevata dalla memoria) REG: register file PC: program counter (indirizzo della prossima istruzione da eseguire) MAR: memory address register MDR: memory data register ALU: Arithmetic logic unit 15
  16. 16. a.a. 2007/2008 Architettura dei calcolatori Ciclo di istruzione • Il processore esegue ciclicamente le istruzioni che compongono il programma: DECODE FETCH EXECUTE 1. MAR PC MDR M[MAR] [ ] INSTRUCTION FETCH IR MDR 2. PC PC+n; DECODE DECODE 3. Execute operation EXECUTE (operand fetch) • n è il numero di byte della istruzione • le fasi 1 e 2 sono comuni a tutte le istruzioni; la fase 3 dipende dal tipo di istruzione da eseguire. • La unità di controllo è una macchina a stati che gestisce la temporizzazione e la sequenzializzazione dei 3 macro-stati q 16
  17. 17. a.a. 2007/2008 Architettura dei calcolatori Esempio • IR contenuto dell’IR • A,B,ALUout porte logiche della ALU • Esecuzione dell’istruzione var1=100+var2 che si trova all’indirizzo a0 ( nel PC) supponendo che esista una istruzione macchina unica per tutte queste operazioni MAR PC; fetch MDR M[MAR]; IR MDR; decode DECODE, PC PC+LUNGH ISTR; MAR IR[VAR2]; IL CAMPO DELL’ISTRUZIONE CHE mem_rd CONTIENE L’INDIRIZZO VAR2 MDR M[MAR]; execute A MDR B IR[100] MDR, IR[100]; somma ALUout A+B; MAR IR[VAR1], MDR ALUout; scrittura risultato in memoria M[MAR] MDR 17
  18. 18. a.a. 2007/2008 Architettura dei calcolatori Instruction fetch General Purpose ALU Register set g MDR Status Reg (C) (B) Data (B) Addr Add Contr. MAR IR memoria (A) (D) Control FSM PC Address Generator 1. Instruction Fetch MAR PC (A) MDR M[MAR] (B) IR MDR (C) … PC PC+n (D) 18
  19. 19. a.a. 2007/2008 Architettura dei calcolatori Instruction decode General Purpose ALU Register set MDR Status Reg Status Reg Data Addr Add Contr. MAR IR IR Control FSM PC Address Address Generator Generator La Control Unit decodifica l’istruzione corrente prelevandola dall’IR Se S possibile contemporaneamente viene eseguito il R i t F t h ossia il ibil t ti it Register Fetch i prelevamento dei dati dai registri per eventuali operazioni di ALU (o per la generazione di indirizzi) 19
  20. 20. a.a. 2007/2008 Architettura dei calcolatori Execute (AluOP) General Purpose ALU ALU Register set MDR Status Reg Status Reg Data Addr Contr. IR MAR Control FSM PC Address Generator Execute (AluOP) es es: add r1,r2,r3 (sintassi so g, des r3 r1+r2) , , 3 (s ass sorg, dest: 3 ) add AX, BX sintassi dest sorg AX AX+BX 20
  21. 21. a.a. 2007/2008 Architettura dei calcolatori Execute (load) memoria General Purpose ALU Register set (C) MDR Status Reg (B) Data (B) Addr Add Contr. MAR IR (A) Control FSM PC Address Address Generator Generator Execute (load) es ld R1, ALFA R1 M[ALFA] MAR IR[ALFA] [ ] () (A) MDR M[MAR] (B) R1 MDR (C) caricamento dei dati dalla memoria al registro interno 21
  22. 22. a.a. 2007/2008 Architettura dei calcolatori Execute (store) memoria General Purpose ALU Register set g (B) Status Reg MDR (C) Data (C) Addr Add Contr. MAR IR (A) Control FSM PC Address Address Generator Generator Execute (store) es st ALFA, R1 M[ALFA] R1 MAR IR[ALFA] (A) MDR R1 (B) M[MAR] MDR (C) scrittura dei dati in memoria da un registro interno 22
  23. 23. a.a. 2007/2008 Architettura dei calcolatori Esempio Esempio: • deve essere eseguita l’istruzione add r1, alfa che si trova all’indirizzo A0 di memoria (contenuto nel PC) • r1=r1+alfa dove alfa è locazione di memoria (secondo la sintassi Intel-like, destinazione sorgente) • siano A e B le porte di ingresso della ALU e ALUout il registro di uscita Per eseguire questa istruzione devono essere eseguite tutte le microperazioni seguenti: MAR <-PC MDR <-M[MAR] fetch IR<- MDR PC<-PC+N ; DECODE (IR) decode MAR<-IR(opadr) MDR<-M[MAR] A<-MDR; B<-r1 execute ALUOUT <-A+B < A+B r1<-ALUOUT 23
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×