Le infrastrutture HardWare

Pagina creata da Giuseppe Rosati
 
CONTINUA A LEGGERE
Le infrastrutture HardWare
Capitolo 6
    Le infrastrutture HardWare
             L’architettura di riferimento

     Architettura dei calcolatori
- Un calcolatore è un sistema composto da un numero
elevato di componenti.
- Il suo funzionamento può essere descritto se lo si
considera come un sistema strutturato in forma gerarchica,
come un insieme di elementi che interagiscono l'uno con
l'altro.
-Ogni livello di descrizione è caratterizzato dalla sua
struttura, ossia dall' organizzazione dei componenti propri
di quel livello.
- Ogni componente è contraddistinto da una funzione, cioè
dal compito da esso svolto nell' ambito della struttura
complessiva del sistema.

                                                              1
Le infrastrutture HardWare
Architettura dei calcolatori (II)

- In termini generali, le funzioni svolte da un calcolatore
sono classificabili in quattro tipologie:
1- elaborazione di dati;
2- memorizzazione di dati;
3- trasferimento di dati da o verso l'esterno;
4- controllo.

 Funzionalità di un calcolatore
                                  Trasferimento

    Ambiente
     esterno

                          Controllo
       Elaboraz ione                              Memorizzazione
   Elaborazione

                                                                   2
Le infrastrutture HardWare
Architettura di elaborazione
- Il mercato ha spinto i progettisti a definire un’architettura di
elaborazione il più possibile generale in grado di coniugare
i seguenti aspetti:
• Flessibilità nel calcolo
• modularità della struttura
• scalabilità dei componenti
• standardizzazione dei componenti
• abbattimento dei costi
• semplicità di installazione e di esercizio del sistema
• disponibilità di applicazioni a basso prezzo di vendita

- L'architettura degli attuali calcolatori è quindi il risultato di
un insieme di compromessi riguardanti versatilità, efficienza
computazionale e costi.

                 Memorizzazione
  - Una seconda funzione generale svolta dai calcolatori è
  la memorizzazione dei dati, sia per brevi periodi (ad es.
  risultati intermedi di una computazione) sia per tempi
  più lunghi.

  - Gli esempi di memorizzazione persistente dei dati in
  formato elettronico sono ormai innumerevoli: dalla
  gestione dei magazzini delle aziende agli archivi delle
  banche, degli uffici anagrafici e del catasto.

                                                                      3
Le infrastrutture HardWare
Trasferimento dei dati
- Un calcolatore deve essere in grado di comunicare con
l'ambiente esterno sia per acquisire dati da elaborare
memorizzare sia per trasferire i risultati dell' elaborazione.

- Questi compiti normalmente vengono svolti da
dispositivi ausiliari direttamente connessi al calcolatore,
detti periferiche, con funzioni di sorgenti o destinatari dei
dati.

      Trasferimento dei dati (II)
- Le operazioni di trasferimento dei dati tra ambiente e
calcolatore da parte delle periferiche sono chiamate
operazioni di ingresso/uscita (I/O).
- Tipiche unità di ingresso sono la tastiera e il mouse,
mentre lo schermo e la stampante sono esempi di
periferiche di uscita.
- Il trasferimento dei dati su lunghe distanze, per esempio
tramite linee telefoniche, è chiamato trasmissione dei dati.
- Un esempio al riguardo è il collegamento in rete di
calcolatori posti a distanze variabili da qualche metro a
migliaia di chilometri.

                                                                 4
Le infrastrutture HardWare
Controllo
- Le operazioni di elaborazione, memorizzazione e
trasferimento dei dati devono essere sottoposte a un
opportuno controllo.
- Tale funzione è spesso deputata all'utente del
calcolatore, che la realizza impartendo comandi al
calcolatore stesso.
- Internamente a ogni calcolatore è comunque presente
un'unità di controllo che coordina le risorse del calcolatore
al fine di svolgere le operazioni corrispondenti ai comandi
dell’utente.

     L’architettura di riferimento
- Consideremo come modello di architettura quello di Von
Neumann.
- Elementi fondamentali sono la CPU (singola), la memoria
e il bus di sistema.
-Il collegamento con il mondo esterno è assicurato da
periferiche di I/O quali il terminale, le stampanti, etc.,
ciascuna collegata al bus di sistema attraverso opportune
interfacce di I/O.

                                                                5
Le infrastrutture HardWare
Il calcolatore:
          modello architetturale

     1.                             2.
                                       Memoria
                             Memorizzazione
Elaborazione                Memoria
                                         Magnetica
                           Elettronica
Unità Centrale di
 Elaborazione       Interconnessione
       Collegamenti
        (BUS/Cavi)                3.
                         Comunicazione
                          (interfaccia)
                        Periferiche

   Un moderno sistema di calcolo

                                                     6
Le infrastrutture HardWare
CPU
- Il componente principale all'interno del calcolatore è l'unità
di elaborazione centrale (Central Processing Unit: CPU).
- Alla CPU sono affidate le operazioni di controllo e di
elaborazione.
- Da tempo, le CPU vengono realizzate tipicamente con
tecnologie microelettroniche e sono chiamate anche
microprocessori (o anche, più brevemente, processori)

                Memoria centrale
 - Per la memorizzazione dell'informazione (dati e
 programmi) è presente un'unità chiamata memoria
 centrale.
 - La memoria centrale ospita sia i dati necessari per le
 elaborazioni svolte dalla CPU sia i dati trasferiti attraverso
 le unità di ingresso/uscita.
 - La memoria può essere vista come un insieme di celle
 adiacenti, ognuna caratterizzata da un proprio identificatore
 univoco, chiamato indirizzo (memory address), e in cui
 possono essere scritti o letti dati in formato binario.

                                                                   7
Bus
- Il bus è una linea alla quale sono contemporaneamente
connesse le unità del calcolatore e che consente il
trasferimento di dati tra tali unità.
- La CPU ha la gestione dell'intero sistema (un ruolo detto
master) e in particolare dell' accesso al bus, impedendo
alle unità periferiche (che assumono il ruolo di slave) la
possibilità di accedervi autonomamente.
- Ogni trasferimento di dati attraverso il bus avviene sotto la
supervisione della CPU, che identifica, mediante il loro
indirizzo la sorgente e la destinazione dei dati, e
sincronizza con segnali di controllo i dispositivi che devono
colloquiare.
- In questo modo nel bus si evita qualsiasi collisione fra dati
di competenza delle diverse periferiche.

            Bus e motherboard
Il bus viene integrato nella scheda madre (motherboard)
del calcolatore: una superficie di materiale plastico su cui
sono spesso montati, oltre al bus, la CPU, la memoria
centrale e alcune interfacce di ingresso/uscita, per
esempio quelle della tastiera e del mouse.

                                                                  8
Motherboard
Connettori per
schede di I/O
aggiuntive

                                                                                        Zoccolo per
                                                                                        la CPU

                                                                                             Connettori
                                                                                             per la
                                                                                             memoria

Connettori per
dischi fissi

                    Lo schema di riferimento
                                                                    RAM
                                                                                       CPU
    Scheda madre
    (motherboard)

        Bus dati
     Bus indirizzi
    Bus di controllo

                                                    Interfacce                 Interfacce
          Interfaccia di
                                                      di I/O                     di I/O
               I/O

                                 Tastiera e mouse                         Memoria di massa
                                                          Altoparlanti
                       Schermo

                                                                                                          9
Pregi di un collegamento a bus
☺ Semplicità
   – un’unica linea di connessione  costi ridotti di
     produzione
☺ Estendibilità
   – aggiunta di nuovi dispositivi molto semplice
☺ Standardizzabilità
   – regole per la comunicazione da parte di dispositivi
     diversi

Difetti di un collegamento a bus
 Lentezza
   – utilizzo in mutua esclusione del bus
 Limitatà capacità
   – al crescere del numero di dispositivi collegati
 Sovraccarico del processore (CPU)
   – perchè funge da master sul controllo del bus

                                                           10
Bus: suddivisione funzionale
- Il bus può essere suddiviso funzionalmente in tre
componenti:
• il bus dati, utilizzato per trasferire i dati, tipicamente fra
memoria e CPU ma anche fra CPU e interfacce di
ingresso/uscita;
• il bus indirizzi, che identifica la posizione delle celle di
memoria in cui la CPU va a scrivere o leggere;
• il bus di controllo, in cui transitano i segnali di controllo
che consentono di volta in volta di selezionare le unità
coinvolte in un trasferimento di dati (sorgente e
destinatario), di definire la direzione dello scambio (lettura
o scrittura) e in generale di coordinare il sistema.

                  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, indipendentemente dal tipo di dato o istruzione
    contenuto;

  – le istruzioni vengono eseguite in modo sequenziale.

                                                                   11
Linguaggio macchina
- Il linguaggio per cui la CPU si comporta da esecutore
è detto linguaggio macchina.

- Le istruzioni scritte in linguaggio macchina sono
piuttosto rudimentali:
  – il concetto di tipo di dato è quasi assente,
  – il numero di operandi è limitato (in genere non più di due),
  – il numero di operazioni previste è ridotto.

       Istruzione che effettua la
        somma di due operandi
Struttura istruzione     codice operativo        dest     src1     src2

   Linguaggio                  add               R01      R02      R03
  assemblatore

    Linguaggio         000000 00000 100000      00001    00010 00011
     macchina

                                                                          12
Linguaggio macchina
- Ogni istruzione è identificata da un codice operativo
- Gli operandi indicano gli indirizzi dove recuperare i
  dati su cui operare e dove copiare i risultati.
- Ogni CPU e’ caratterizzata funzionalmente da suo
  linguaggio macchina
   - cioé l’insieme delle istruzioni che è in grado di eseguire e le
     modalità di rappresentazione degli operandi.

       Fetch, decode, execute
La CPU può essere intesa come un dispositivo che
opera in modo ciclico, ripetendo per ogni istruzione le
seguenti tre fasi:
    - lettura (fetch): acquisizione dalla memoria di una istruzione
    - decodifica (decode): identificazione dell’istruzione e delle
      operazioni che devono essere svolte.
    - esecuzione (execute): effettuazione delle operazioni
      corrispondenti all’istruzione.

                                                                       13
Le parti di una CPU (I)
All’interno di un processore si identificano due parti
principali: data path ed unità di controllo.

- Data path (o percorso dei dati)
   – è la parte che si occupa dell’effettiva elaborazione dei dati;
   – comprende dispositivi diversi
       • una o più unità aritmetico-logiche, dette ALU (Arithmetic
         Logic Unit);
       • alcune unità di memorizzazione temporanea, i registri,
         memoria ad alta velocità usata per risultati temporanei e
         informazioni di controllo (il valore massimo memorizzabile
         in un registro è determinato dalle dimensioni del registro).

          Le parti di una CPU (II)
- Unità di controllo
    – coordina le operazioni di tutto il processore (anche quelle del
      data path!);
    – regola il flusso dei dati e indica quali registri debbano essere
      collegati agli ingressi e all’uscita dell’ALU;
    – invia all’ALU il codice dell’operazione da eseguire;
    – riceve indicazioni sull’esito dell’operazione appena eseguita
      dall’ALU e gestisce opportunamente queste informazioni;
    – comprende alcuni registri di uso specifico
        • Program Counter (PC) – qual è l’istruzione successiva;
        • Instruction Register (IR) – istruzione in corso
          d’esecuzione;
        • …

                                                                         14
Program Counter
- Uno dei compiti dell’unità di controllo è di provvedere
  al prelievo in memoria (fetch) delle istruzioni da
  eseguire.
- L’indirizzo dell’istruzione corrente viene conservato
  all’interno di un registro detto Program Counter.

                 Fase di fetch
- All’inizio della fase di fetch il contenuto del PC viene
  trasferito sul bus indirizzi e trasmesso alla memoria
  indicando sul bus di controllo che si tratta di una
  operazione di lettura.
- La memoria legge il contenuto della locazione
  indicata e lo trasferisce sul bus dati.
- All’interno della CPU il contenuto del bus dati viene
  copiato nell’IR (Intruction Register).
- Il contenuto del PC viene aggiornato

                                                             15
Ciclo Fetch – Decode - Execute
1.    Prendi l’istruzione corrente dalla memoria (individuata dal
      contenuto del PC) e mettila nell’IR (Instruction Register),
      contemporaneamente incrementa il Program Counter (PC)
      in modo che contenga l’indirizzo dell’istruzione successiva
      (fetch)
2.    Determina il tipo di istruzione da eseguire (decode)
3.    Se l’istruzione usa dei dati presenti in memoria,
      determinane la posizione;
4.    Carica la parola, se necessario, in un registro della CPU;
5.    Esegui l’istruzione (execute)
6.    Torna al punto 1 e inizia a eseguire l’istruzione successiva.

           Tipologie di istruzioni (I)
     - Architettura di riferimento: load/store

        – le operazioni aritmetico-logiche possono essere eseguite
          solo su dati che siano già stati caricati nei registri;

        – le operazioni di caricamento dei dati dalla memoria nei
          registri (load) e di archiviazione dei risultati dai registri nella
          memoria (store) debbono essere previste esplicitamente.

                                                                                16
Tipologie di istruzioni (II)
    Un processore in architettura load/store dovrà quindi essere
    in grado di eseguire le seguenti categorie di istruzioni:
        – Istruzioni aritmetico-logiche (Elaborazione dati)
            • Somma, Sottrazione, Divisione, …
            • And, Or, Xor, …
            • Maggiore, Minore, Uguale, Minore o uguale, …
        – Controllo del flusso delle istruzioni
            • Sequenza
            • Salto condizionato o non condizionato (per realizzare
              selezioni e cicli)
        – Trasferimento di informazione
            • Trasferimento dati e istruzioni tra CPU e memoria
            • Trasferimento dati e istruzioni tra CPU e dispositivi di
              ingresso/uscita (attraverso le relative interfacce)

                    Esempi di istruzioni
       Istruzione                  Significato                   Categoria
add    R01,R02,R03      R01 ← R02 + R03                       aritmetico-logica
addi R01,R02,421        R01 ← R02 + 421                       aritmetico-logica
lw     R01,R02,421      R01 ← M[R02 + 421]                      trasferimento
sw     R01,R02,421      M[R02 + 421] ← R01                      trasferimento
beq    R01,R02,–421 se (R01 == R02) vai a PC–                salto (condizionato)
                    421
j      84210            vai a 84210                              salto (non
                                                                condizionato)

                                                                                    17
Istruzioni aritmetico-logiche
• Un’istruzione aritmetico-logica, come add RZ,RX,RY,
  viene eseguita in quattro passi:
   1. l’istruzione viene prelevata dalla memoria e scritta nell’IR mentre il
      PC viene incrementato (fasefase di fetch);
                                           fetch
   2. viene letto il contenuto dei due registri RX e RY (l’unità di
      controllo attiva i collegamenti tra i registri RX e RY, individuati dal
      contenuto dell’IR, e i registri di ingresso all’ALU e provvede a
      effettuare il trasferimento dei dati);
   3. la ALU opera sui dati letti dal banco dei registri, eseguendo
      l’operazione indicata dal codice compreso nell’istruzione (l’unità di
      controllo attiva il collegamento di un pezzo dell’IR con l’ingresso di
      controllo dell’ALU);
   4. il risultato calcolato dall’ALU viene scritto nel registro RZ (anche
      il registro destinazione viene individuato a partire dal contenuto
      dell’IR).

        Istruzioni di trasferimento
  - Un’istruzione di trasferimento, come lw RY,RX,base,
  viene eseguita in cinque passi:
      1. l’istruzione viene prelevata dalla memoria e scritta nell’IR
         mentre il PC viene incrementato;
      2. viene letto il contenuto del registro RX;
      3. la ALU opera sui dati letti dal banco dei registri e sulla base
         scritta nell’IR;
      4. il risultato calcolato dall’ALU viene utilizzato come
         indirizzo per la memoria dati;
      5. il dato proveniente dalla memoria viene scritto nel registro
         RY.

                                                                                18
Istruzioni di controllo
 - Un’istruzione di controllo, come beq RX,RY,salto, viene
 eseguita in quattro passi:
      1. l’istruzione viene prelevata dalla memoria e scritta nell’IR
         mentre il PC viene incrementato;
      2. viene letto il contenuto dei due registri RX e RY;
      3. la ALU opera sui dati letti dal banco dei registri, eseguendo
         l’operazione indicata dal codice compreso nell’istruzione (nel
         caso dell’esempio si tratta di una sottrazione, per verificare poi
         se il risultato è uguale o diverso da zero);
         contemporaneamente il contenuto del PC viene sommato al
         valore del salto per calcolare l’eventuale destinazione del
         salto;
      4. l’esito dell’operazione viene utilizzato per decidere quale
         valore debba essere memorizzato nel PC.

         Unità funzionali richieste
         dai diversi tipi di istruzioni
  Tipo di istruzione                 Unità funzionali utilizzate

 Aritmetico-logico         Memoria    Banco ALU          Banco
                         (istruzioni) registri           registri

   Trasferimento           Memoria    Banco ALU Memoria Banco
(registri  memoria)    (istruzioni) registri   (dati)

       Salto               Memoria    Banco ALU
   (condizionato)        (istruzioni) registri

      Salto                Memoria
(non condizionato)       (istruzioni)

                                                                              19
Durata indicativa di ogni categoria di
           istruzione (tempi in ns).
 Tipo di istruzione    Memoria Lettura ALU Memori Scrittura Totale
                       istruzioni registro      a   registro
                          (MI)      (LR) (AL)  dati   (SR)
                                              (MD)
 Aritmetico-
 Aritmetico-logico       10       5    10     –        5      30

   Trasferimento         10       5    10     10       5      40
(registri ← memoria)
   Trasferimento         10       5    10     10       –      35
(registri → memoria)
       Salto             10       5    10     –        –      25
   (condizionato)
      Salto              10       –     –     –        –      10
(non condizionato)

                       Un esempio (I)
    - Esecuzione di una successione di quattro istruzioni
    per il caricamento di due dati dalla memoria nei registri
    R01 e R02, la loro somma e la registrazione in memoria
    del risultato.

                                                                     20
Un esempio (II)
 l w R01,R11,421 MI LR AL              MD SR                                                   Tempo

                               40 ns
 lw R02,R11,842                                MI LR AL     MD SR
                                                                        30 ns

                                                    40 ns
 add R03,R01,R02                                                     MI LR AL SR
                                                                                       35 ns

 sw R03,R11,421                                                                    MI LR AL      MD

                                                            145 ns
        Ordine di esecuzione
           delle istruzioni

    Primi due passi dell’esecuzione
- Molte delle operazioni che devono essere effettuate per
completare l'esecuzione di un'istruzione non dipendono
dall'istruzione stessa ma sono uguali per tutte le istruzioni.
- In particolare, i primi due passi dell' esecuzione sono sempre:
     1- l'invio del contenuto del PC alla memoria che contiene le istruzioni
     per prelevare quella corrente e trasferirla nell'IR (fase di fetch);
     2- la lettura del contenuto di uno o due registri utilizzando pezzi
     dell'istruzione registrata nell'IR per selezionare i registri ai quali
     accedere.
- Dopo questi due passi, le istruzioni comprese nella stessa
categoria (aritmetico-logica, di trasferimento o di salto)
richiedono il completamento delle stesse azioni,
indipendentemente dall' esatto codice operativo.

                                                                                                       21
Categorie di istruzioni (I)
- Anche tra le diverse categorie di istruzioni ci sono delle
similitudini.
- Tutte le istruzioni, dopo aver letto i registri, usano l’ ALU:
   - le istruzioni aritmetico-logiche la usano per l'esecuzione del
     codice operativo;
   - le istruzioni di trasferimento per calcolare l'indirizzo effettivo;
   - i salti condizionati per valutare l'esito dei confronti.

         Categorie di istruzioni (II)
 - Dopo aver utilizzato l'ALU, le azioni richieste per
 completare le varie istruzioni si differenziano:
     -  un'istruzione aritmetico-logica deve accedere ai registri per
       scrivere il risultato proveniente dall'ALU;
     - un'istruzione di trasferimento richiede l'accesso alla
       memoria dati;
     - infine, per un'istruzione di salto potrebbe essere necessario
       cambiare l'indirizzo dell'istruzione successiva sulla base dell'
       esito del confronto.

                                                                           22
Architettura del processore:
              fase di fetch
- Per definire l'architettura complessiva del processore,
partiamo dai componenti che servono per completare
l'esecuzione delle diverse fasi di ciascuna istruzione.
- Innanzitutto si consideri la fase di fetch, comune a tutte le
istruzioni, che consiste nel prelievo dell’ istruzione corrente (il
cui indirizzo si trova nel PC) e nel suo caricamento nell'IR.
- Oltre ai due registri coinvolti (PC e IR) è necessario disporre
di una memoria per le istruzioni e di un sommatore capace di
incrementare il PC senza richiedere l'intervento dell'ALD.
- Per semplicità, dividiamo logicamente la memoria in due
parti, una per le istruzioni e una per i dati:

Elementi dell'unità di centrale elaborazione necessari per
prelevare le istruzioni dalla memoria e incrementare il PC.

                                                                      23
Architettura del processore:
istruzioni aritmetico-logiche (I)
- Le istruzioni aritmetico-logiche leggono in genere 2
registri ed effettuano un' operazione che coinvolge
l'ALU. Quindi scrivono il risultato in 1 registro.
- Se si considerano i registri come un unico blocco
funzionale, si può prevedere che ogni lettura richieda 1
ingresso (il numero del registro da leggere) e 1 uscita (il
valore letto),
- mentre una scrittura richiede 2 ingressi (il numero del
registro destinazione e il valore da scrivervi).

  Architettura del processore:
istruzioni aritmetico-logiche (II)
- Per eseguire le istruzioni aritmetico-logiche servono
quindi in totale 4 ingressi (2 per i due registri sorgente,
per la lettura, e 2 per il registro destinazione, per la
scrittura) e 2 uscite (per i due registri sorgente).
- Il banco di registri fornisce sempre in uscita il
contenuto dei registri i cui numeri sono specificati sugli
ingressi del registro di lettura.
- Le scritture, invece, sono controllate da un apposito
segnale che proviene dall'unità di controllo,
   - la quale provvede anche a indicare all'ALU quale operazione
     eseguire.

                                                                   24
Elementi dell'unità di centrale elaborazione necessari
    per eseguire le istruzioni aritmetico-logiche.

    Architettura del processore:
   istruzioni di trasferimento dati
  - Si considerino ora le istruzioni di trasferimento dei dati
  da e verso la memoria.
  - In entrambi i casi si deve calcolare l'indirizzo della
  cella di memoria cui si vuole accedere,
  - quindi si deve leggere dalla memoria dati il valore da
  scrivere nei registri (load) oppure si deve leggere dal
  banco dei registri il valore da scrivere nella memoria
  (store)

                                                                 25
Elementi dell'unità dì centrale elaborazione per
  eseguire le istruzioni di trasferimento sia dalla
  memoria ai registri sia dai registri alla memoria

       Salto condizionato e non
            condizionato (I)
- Rimangono infine da considerare le istruzioni di salto,
condizionato e non condizionato.
- Nel caso dei salti condizionati, l'esecuzione dell'istruzione
deve prevedere due azioni:
    1- il calcolo dell'indirizzo di destinazione del salto e
    2- il confronto del contenuto dei registri indicati dall'istruzione per
       capire se effettivamente il salto deve essere effettuato.
- Per calcolare l'indirizzo di destinazione è necessario un
sommatore aggiuntivo cui inviare il risultato ottenuto
dall'incremento del PC durante la fase di fetch.

                                                                              26
Salto condizionato e non
             condizionato (II)
- Per quanto riguarda invece il confronto degli operandi,
basta seguire il procedimento già adottato in precedenza
per le istruzioni aritmetico-logiche.
- In questo caso, però, il risultato non deve essere salvato
in un registro ma solo esaminato per valutare l'esito dell'
operazione.
- L'istruzione di salto non condizionato è molto più
semplice e viene effettuata sostituendo una parte del PC
con alcuni dei bit contenuti nell'IR.

Elementi dell'unità di centrale elaborazione necessari
   per eseguire le istruzioni di salto condizionato
- l'ALU confronta gli operandi mentre un sommatore ad hoc calcola
l'indirizzo di destinazione sommando al PC (già incrementato) il valore
contenuto nell'istruzione. L'unità di controllo decide, in base all'esito del
confronto, il nuovo valore del Pc.

                                                                                27
Unità centrale di elaborazione (I)
 - A questo punto, combinando i diversi elementi che
 sono stati presentati finora, è possibile realizzare
 un'unità centrale di elaborazione completa.
 - Per semplificare la struttura finale, ci si basa sull’
 ipotesi che nessuna risorsa dell'unità di calcolo possa
 essere utilizzata più di una volta dalla stessa istruzione.
 - Quindi qualsiasi elemento di cui si ha bisogno più di
 una volta dovrà essere replicato:
        - questa è un'ulteriore ipotesi che impone la separazione tra la
        memoria in cui sono contenute le istruzioni e la memoria che
        contiene i dati

Unità centrale di elaborazione (II)
 - Se lo stesso elemento dell'unità di calcolo deve essere
 utilizzato in modo diverso da due diverse categorie di
 istruzioni, è necessario prevedere connessioni multiple
 all'ingresso di questo elemento e avere segnali di
 selezione tra gli ingressi governati dall'unità di controllo.
 - Questo viene generalmente realizzato mediante un
 elemento chiamato multiplexer (selezionatore di dati) e
 indicato in figura con un piccolo cerchio:
    -     il multiplexer seleziona uno tra i vari ingressi in base alla
         configurazione delle linee di controllo (non riportate nelle
         figure).

                                                                           28
Combinazione di tutti gli elementi dell'unità di
     elaborazione richiesti dalle diverse istruzioni.
- Questa unità di calcolo può eseguire le istruzioni elementari
(caricamento/memorizzazione dati, operazioni aritmetico-logiche
 e salti condizionati) in un unico ciclo di clock.

                                                                  29
Puoi anche leggere