Anteprima
Vedrai una selezione di 8 pagine su 31
Tesina Architettura dei Calcolatori Elettronici Pag. 1 Tesina Architettura dei Calcolatori Elettronici Pag. 2
Anteprima di 8 pagg. su 31.
Scarica il documento per vederlo tutto.
Tesina Architettura dei Calcolatori Elettronici Pag. 6
Anteprima di 8 pagg. su 31.
Scarica il documento per vederlo tutto.
Tesina Architettura dei Calcolatori Elettronici Pag. 11
Anteprima di 8 pagg. su 31.
Scarica il documento per vederlo tutto.
Tesina Architettura dei Calcolatori Elettronici Pag. 16
Anteprima di 8 pagg. su 31.
Scarica il documento per vederlo tutto.
Tesina Architettura dei Calcolatori Elettronici Pag. 21
Anteprima di 8 pagg. su 31.
Scarica il documento per vederlo tutto.
Tesina Architettura dei Calcolatori Elettronici Pag. 26
Anteprima di 8 pagg. su 31.
Scarica il documento per vederlo tutto.
Tesina Architettura dei Calcolatori Elettronici Pag. 31
1 su 31
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

CELLE ADDIZIONATRICI

Una cella addizionatrice è un modulo combinatorio formato da 3 ingressi e 2

uscite. Riceve in input 2 iesimi bit di due parole binarie da sommare e il bit di

riporto della iterazione precedente. Alla prima iterazione il riporto vale 0.

CIRCUITI ALU

I circuiti ALU sono i protagonisti nel calcolo delle divisioni e delle moltiplicazioni,

grazie ai circuiti divisori e moltiplicatori.

Iniziamo col considerare il prodotto di un operando “c” di N cifre binarie per un

operando “b” rappresentato da un bit. Quindi:

Se b = 0 ⇒ c*b = 0; Se b = 1 ⇒ c*b = c

Dal punto di vista circuitale, potremmo implementare questo risultato mediante

N porte AND a 2 ingressi, ciascuna delle quali riceverà una cifra diversa da c e

l’unica di b.

Ogni funzione produrrà in uscita una cifra del prodotto.

Prendendo in considerazione il caso precedente, con un operando B espresso

su M bit. B può essere espresso come la somma della sua prima cifra da destra

con le successive generiche b , ciascuna delle quali moltiplicata per 2 , dove i

i i

individua l’indice delle M cifre, a partire da 0 fino ad M - 1.

M-1 2 1 0

B = 2 *b , … + 2 *b + 2 *b + 2 *b

M-1 2 1 0

Nel caso di M = 2 bit, quindi, ad esempio, il prodotto a*B può essere

decomposto in A*b +

0

A*b *2. L’operazione di moltiplicazione per 2 viene realizzata mediante lo

1

scorrimento della

rappresentazione del numero di una cifra verso sinistra.

Possiamo pertanto immaginare un circuito moltiplicatore tra due numeri di N

bit ed M bit come un circuito che fa solo uso di circuiti sommatori e funzioni

AND.

Un circuito moltiplicatore mantiene questa logica: consiste in un registro

prodotto inizializzato nei suoi LSB (Least Significant Bit) ovvero bit con peso

pag. 18

minore, con il moltiplicatore, un registro moltiplicando ed un sommatore,

comandati dalla unità di controllo.

L’unità di controllo (CU) esegue ciclicamente le seguenti operazioni:

Controlla se il LSB del registro prodotto (RP) è uno, somma agli MSB

 (Most Significant

Bit) ovvero bit con peso maggiore, il contenuto del registro moltiplicando;

Scorre il contenuto del registro prodotto sulla destra.

Il circuito divisore consiste di un registro resto/quoziente inizializzato con il

dividendo, un

registro divisore ed un sommatore, il tutto comandato dalla unità di controllo.

La divisione viene eseguita testando se il divisore è contenuto 0 o 1 volte nei

resti parziali man mano che si procede nell'operazione. Il test di contenimento

può essere effettuato sottraendo dal resto parziale il divisore: se il risultato è 1

allora il bit di quoziente è 1, altrimenti 0.

Modello di Von Neumann

Con l'espressione architettura di von Neumann ci si riferisce a uno schema di

progettazione di calcolatori elettronici che prende nome dal matematico John

von Neumann. Il modello di Von Neumann è quanto di più prossimo alla reale

struttura di un calcolatore; può essere considerato il modello base di tutti i

moderni calcolatori.

Lo schema di Von Neumann è costituito da 4 componenti fondamentali:

Memoria Centrale : Memorizza e fornisce l’accesso a dati e programmi.

 Unità Centrale di Elaborazione (CPU) : Esegue istruzioni per

 l’elaborazione dei dati e svolge anche funzioni di controllo.

Interfacce di Ingresso e Uscita (o periferiche).

 Bus: Trasferisce dati ed informazioni di controllo tra le componenti

 suddette. pag. 19

BUS

L’obbiettivo principale del bus è quello di permettere lo scambio di informazioni

tra le varie componenti funzionali del calcolatore. Esso dunque svolge alcune

funzioni:

Trasferimento dei dati e delle informazioni di controllo;

 -L’utilizzo di un BUS favorisce la modularità e l’espandibilità del

calcolatore;

Il bus di sistema assicura l’interconnessione tra gli elementi della

 macchina di Von Neumann;

Tutti i trasferimenti avvengono attraverso il BUS.

I programmi eseguiti dai calcolatori sono sequenze finite di istruzioni. Le

istruzioni da eseguire sono contenute in locazioni consecutive di RAM, a partire

da un indirizzo iniziale. Le istruzioni sono codificate da stringhe binarie di

lunghezza finita e costante.

E’ possibile distinguere le istruzioni in diverse categorie:

Accesso alla memoria, atte al trasferimento di informazioni tra RAM e

 CPU.

Aritmetico-logiche, che denotano operazioni di elaborazione combinatoria

 e logica sugli operandi.

Controllo di flusso, in grado di alterare l’ordine di esecuzione delle

 istruzioni stesse.

Input/output, idonee al trasferimento di informazioni sia in ingresso che in

 uscita.

La CU esegue ogni istruzione in una sequenza di microeventi, e dunque

microfasi successive che comportano fetch ed execute. pag. 20

Nella fase di Fetch si inserisce l'indirizzo della prima istruzione nel Program

Counter. Dopodichè la CU ricopia il contenuto del PC nel MAR e viene effettuato

un accesso in lettura a quell'indirizzo. Successuvamente il dato prelevato

dall'indirizzo, cui si è acceduto, viene conservato in MDR ed infine il contenuto

di MDR viene ricopiato in IR. Nel frattempo PC si è, in maniera automatica,

aggiornato alla locazione successiva.

Mentre nella fase di Execute i registri verranno caricati con le operazioni da

effettuare e la CU invia alla ALU il comando per l'esecuzione dell’operazione.

Infile l’ALU la esegue.

Architettura MIPS

microprocessor without interlocked pipeline stages).

MIPS (

L'architettura MIPS è di tipo Load-and-Store.

La maggioranza delle istruzioni MIPS operano tramite registri interni al

processore.

Esempio:

add $t0, $t1, $t2

Somma $t1+$t2 e mette il risultato in $t0

Per questo motivo:

LOAD: i dati da elaborare devono essere prelevati dalla memoria ;

STORE: i risultati devono essere salvati in memoria;

Esistono 3 formati base di istruzioni MIPS:

Formato R (istruzioni aritmetico-logiche);

 Formato I (istruzioni di salto condizionato e di trasferimento dati dalla/alla

 RAM e dai/ai registri CPU);

Formato J (salto incondizionato).

 FORMATO R pag. 21

op: codice operativo

rs: primo operando sorgente (registro)

rt: secondo operando sorgente (registro)

rd: registro destinazione

shamt: shift amount (per operazioni di scalamento)

funct: seleziona una variante specifica dell'operazione base definita nel campo

op. Per esempio: campo funct per le istruzioni add, sub, and, or, slt

FORMATO I

rs:

nel caso di istruzioni immediate: registro sorgente

nel caso di lw e sw: registro base al cui contenuto va sommato address

rt:

nel caso di istruzioni immediate: registro destinazione

nel caso di lw e sw: primo registro che compare nell'istruzione (registro

destinazione per lw e registro sorgente per sw)

FORMATO J

I 26 bit all'interno dell'istruzione jump contengono un indirizzo in parole, questi

26 bit vengono concatenati con i 4 bit più significativi del PC. L'indirizzo in byte

si ottiene moltiplicando per 4 (ovvero, concatenando altri due bit 00) per

ottenere un indirizzo a 32 bit. pag. 22

Le architetture MIPS supportano l’indirizzamento immediato, con riferimento a

registro, spiazzato rispetto ad una base, relativo al Program Counter,

pseudodiretto.

Le fasi di esecuzione di una singola istruzione possono arrivare a cinque:

Caricamento dell’istruzione (Fetch) ed incremento del PC;

 Decodifica dell’istruzione, lettura dal/dai registri sorgente e calcolo

 dell’indirizzo di salto;

Calcolo del risultato;

 Scrittura del risultato nel registro destinazione ed accesso alla memoria;

 Scrittura del risultato in memoria.

 PIPELINING MIPS

Il Pipelining è una tecnica per migliorare le prestazioni del processore basata

sulla sovrapposizione dell’esecuzione di più istruzioni appartenenti ad un flusso

di esecuzione sequenziale.

Il lavoro svolto da un processore con pipelining per eseguire un’istruzione è

diviso in passi:

Entrano da un’estremità della pipeline;

 Vengono elaborate dai vari stadi secondo l’ordine previsto;

 Escono dall’altra estremità della pipeline.

Le istruzioni eseguite nella pipeline sono dipendenti tra loro possono nascere

problemi dovuti a conflitti di dati.

Ci sono due tipi di tecniche per la soluzione di questo conflitto:

Tecniche di compilazione del codice:

Inserimento di istruzioni nop (no operation).

 Scheduling o riordino delle istruzioni in modo da impedire che istruzioni

 correlate siano troppo vicine.

- Il compilatore cerca di inserire tra le istruzioni correlate (che

presentano dei conflitti) delle istruzioni indipendenti dal risultato delle

precedenti operazioni, facendo così scomparire tutti i conflitti;

- Quando il compilatore non riesce a trovare istruzioni indipendenti deve

inserire istruzioni nop.

Tecniche di tipo hardware:

- Inserimento di “bolle” o stalli nella pipeline. pag. 23

Input/Output

Con il termine Input/Output (I/O) intendiamo tutte le interfacce messe a

disposizione dal sistema operativo, o più in generale da qualunque sistema di

basso livello, ai programmi per effettuare uno scambio di dati o segnali con altri

programmi.

Oltre ai componenti processore e memoria, il terzo elemento chiave di un

computer è un insieme di moduli di I/O. Ogni modulo è interconnesso con il

processore e la memoria e controlla uno o più componenti esterni. Il modulo I/O

interagisce con il resto del computer per mezzo delle tecniche di:

I/O programmato;

I/O ad interruzione;

I/O con accesso diretto alla memoria.

I/O PROGRAMMATO

Durante l’intero svolgimento dell’opererazione di I/O, il processore è

direttamente impegnato ad eseguirne le operazioni operazioni.

I/O ad INTERRUZIONE (INTERRUPT)

Basato sul meccanismo delle interruzioni interruzioni. Il processore comanda

l’operazione.

I/O con accesso diretto alla memoria

Le unità di I/O hanno capacità di procedere autonomamente al trasferimento

dati da e verso la e verso la memoria 9. Il processore non interviene nel

trasferimento ed a fine operazione viene informato.

La CPU, dopo aver predisposto il controller all’esecuzione dell’I/O, si ferma e si

mette ad interrogare il registro di stato della periferica in attesa che il ready

but assuma un determinato valore.

Ci sono sia vantaggi che svantaggi nelle tecniche di Input/Output:

VANTAGGIO: Risposta veloce al ready bit.

SVANTAGGIO: CPU bloccata in stato di: busy waiting o spin lock.

CENNI DI MULTIPROGRAMMAZIONE

Le tecniche di gestione di I/

Dettagli
Publisher
A.A. 2016-2017
31 pagine
2 download
SSD Ingegneria industriale e dell'informazione ING-INF/01 Elettronica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher Koeda_s di informazioni apprese con la frequenza delle lezioni di Architettura dei calcolatori elettronici e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli studi della Basilicata o del prof Carpentieri Marco.