Estratto del documento

Architetture dei calcolatori

In informatica una macchina è una entità in grado di eseguire istruzioni (fisiche o virtuali) appartenenti ad un linguaggio, e una architettura descrive le relazioni tra le parti di un elaboratore elettronico.

Il firmware consiste nel software direttamente connesso al componente e permette di interpretare il linguaggio macchina.

Architettura di Von Neumann

- Nella memoria di lavoro risiedono sia dati che programmi.

- Parte della memoria consiste nei registri contenuti nella CPU.

PUPU => processing unit (SCA)

CU => control unit (SCO)

Architettura Harvard

Evoluzione dell'architettura di Von Neumann, utilizza blocchi di memoria diversi per dati e programmi. OSS permette di limitare il problema di virus avendo che la memoria dei programmi non può auto sovrascriversi.

Architettura IBM

Architettura reale dei calcolatori moderni, tiene conto delle differenti velocità dei componenti.

Definizioni preliminari

  • Asincrono => dispositivo indipendente lavora senza sincronizzazione con altri
  • Sincrono => dispositivo che lavora seguendo una coordinazione temporale con altri dispositivi

Generazione dei programmi

Compilazione

I. => traduzione linguaggio di alto livello in codice Assembly

Assemblaggio

II. => generazione di uno o più file contenenti le rappresentazioni binarie delle istruzioni

Collegamento

III. => traduzione di indirizzi, collegamento funzioni, …

Algebra di Boole

Utilizzata per descrivere i comportamenti delle porte logiche che compongono il circuito:

  • Aggiunge un terzo stato chiamato “stato di alta impedenza elettrica” che permette di scollegare l'uscita dal resto del circuito.
  • ATTENZIONE non è una porta logica.
  • Porte logiche => circuiti digitali di base con 1 uscita ed 1 o più ingressi.

Reti combinatorie

Una rete combinatoria (o logica) è un circuito elettronico digitale capace di realizzare una o più funzioni di commutazione. Ogni funzione può essere espressa come somma canonica, ovvero è possibile realizzarla con 2 livelli di porte logiche AND - OR.

Mappe di Karnaugh

Tabelle che permettono rappresentazione e semplificazione delle funzioni di commutazione, ogni casella rappresenta l'uscita corrispondente nella tabella. La funzione sarà data da vari OR tra gli AND delle variabili aventi 1 come uscita. Con più di 4 variabili in ingresso bisogna creare una nuova tabella per ognuna di esse.

OSS nel caso in cui la combinazione tra alcune variabili non rientra tra quelle utili nelle specifiche di progetto, queste vengono segnate come "-" e possono essere usate per la riduzione come se fossero 1. ATTENZIONE utilizzano codice Gray, ovvero 11 e 00 sono invertiti.

Moduli di base

È possibile dotare entrambi di un ingresso Enable, la codifica avviene solo se E=1.

Codificatore Γ codifica binaria, realizzando funzione di associazione ad ogni elemento di un insieme composto da m simboli, una sequenza distinta di n bit (n ≥ m).

OSS nella realtà è molto costoso e difficilmente viene implementato in questo modo.

Decodificatore

Funzione inversa del codificatore, passa da codifica binaria a insieme di simboli, ad esempio ROM di indirizzamento. Circuito combinatorio con n ingressi (linee) e m uscite (linee). Mandata una sequenza in input (equivalente ad un indirizzo) è possibile leggere le informazioni contenute nella linea corrispondente.

Multiplexer (MUX)

Circuito combinatorio con 2n linee in ingresso (I0, I1, ...) e (S0, S1, ...) che convergono in 1 unica uscita (U). Permette di selezionare quale ingresso va in uscita tramite i segnali di selezione. ATTENZIONE il numero di segnali di selezione dipende dal numero di segnali in input.

Demultiplexer (DEMUX)

Circuito combinatorio con n+1 linee di ingresso, di cui 1 dato in input (Y) ed n segnali di selezione (S0, S1, ...) che selezionano una delle 2n uscite (O0, O1, ...). Funzione inversa al MUX, ricevuto un dato in ingresso seleziona su quale linea mandarlo. Tipicamente utilizzato come decodificatore.

Half adder (semisommatore)

Realizza somme senza considerare il riporto precedente.

S = (not A)B + A(notB) = A ⊕ B

C = AB

Full adder

Realizza somme considerando anche il carry in input.

S = A ⊕ B ⊕ Cin

Cout = AB + CB + CA

Ripple carry adder

Un adder singolo può sommare solo su 2 bit ed eventuale carry, è possibile lavorare su più cifre mettendo più adder in parallelo. Il risultato ha n+1 bit, dove n indica il numero degli adder contenuti. ATTENZIONE questo sistema soffre di ritardo nella propagazione del riporto.

OSS la sottrazione si effettua con gli stessi circuiti combinatori tramite il complemento a 2, posizionando buffer ed inverter three state in ingresso.

ALU (unità logico-aritmetica)

Permette di implementare nello stesso blocco più tipi di operazioni aritmetiche e logiche, il numero di operazioni dipende dal tipo di componenti inclusi in fase di progettazione. La scelta dell'operazione viene effettuata tramite un multiplexer. ATTENZIONE permette solo operazioni su interi, operazioni in virgola mobile con FPU.

Una ALU permette operazioni su un solo bit, quindi per numeri con più cifre si usano più ALU in parallelo. Anche in questo caso la sottrazione si effettua tramite complemento a 2 invertendo uno degli operandi, moltiplicazioni e divisioni si implementano con addizioni e sottrazioni successive.

Il zero si usa per le operazioni di confronto. Overflow detection confronta il carry in con il carry out del MSB, se sono diversi è overflow.

Macchine sequenziali

Dal circuito combinatorio alla macchina sequenziale

Le macchine sequenziali sono composte da reti combinatorie alle quali vieni aggiunta una memoria per gli stati precedenti (generalmente un flip/flop).

  • Rete combinatoria => valore in uscita dato dai valori in ingresso in quel momento.
  • Rete sequenziale => valore in uscita dipende da valori in ingresso in quel momento e valori precedentemente memorizzati.
  • Si possono essere:
    • Sincrone (non realizzabili)
    • Asincrone
    • Sincrone impulsive (reti LLC)
    • Asincrone impulsive

Definizione (I, S, O, δ, ω)

Una macchina sequenziale è una quintupla MS = (I, S, O, δ, ω)

  • I - alfabeto in ingresso I = {i1, ..., im}
  • S - insieme degli stati S = {s1, ..., sn}
  • O - alfabeto in uscita O = {o1, ..., oq}
  • δ - funzione di stato successivo δ: SxI → S
  • ω - funzione di uscita ω: SxI → O (Mealy) o ω: S → O (Moore)

Impulsive => scandite da clock.

Rappresentazioni

  • Diagramma degli stati => grafo orientato etichettato G(V,A,L)
    • Vertici V => insieme dei nodi (stati)
    • Archi A => insieme delle transazioni di stato
    • Etichette L => insieme delle etichette
  • OSS Mealy segna lo stato su ogni arco, Moore dentro lo stato.
  • Tabelle degli stati/uscite => matrici contenenti stati e uscite
    • Mealy => |S| righe x |I| colonne, l'elemento in posizione h,k contiene prossimo stato ed uscita
    • Moore => |S| righe x (|I| + 1) colonne, l'elemento in posizione h contiene il prossimo stato, l'uscita è contenuta in h,(|I| + 1)
  • Algorithm state machine => diagramma degli stati

Esempi

1. Interruttore flip/flop S-R

2. Riconoscitore sequenza “ciao” (tabella omessa per semplicità)

Alfabeto in ingresso => I = {a, b, …, z}, Uscite => O = {si, no}

OSS Nel caso in cui la stringa debba essere riconosciuta alla prima immissione di ogni lettera, invece di avere più archi che tornano indietro, l'immissione di una lettera diversa porta in uno stato separato dal quale non è possibile uscire.

OSS Per realizzare una macchina sequenziale e determinare le funzioni di eccitazione dei F/F è necessario il passaggio alla codifica in binario, effettuabile associando ad ogni simbolo una sequenza di bit.

Flip/Flop (bistabile)

Il F/F è una macchina (di base asincrona) utilizzata per la memorizzazione dei dati, detto bistabile poiché ha 2 stati stabili, ovvero sempre Q̄ ≠ Q. Configurazione non consentita poiché creerebbe situazione di instabilità nel circuito.

I F/F sincronizzati

Ottenuti aggiungendo un segnale di sincronizzazione (clock) ai bistabili asincroni, l'abilitazione alla commutazione del F/F può essere fatta in vari modi:

  • Level-triggered o Latch (abilitazione sul livello) => uscita cambia quando il segnale è a livello, ovvero Clock fermo ad 1 oppure 0 (usato per reti LLC)
  • Positive edge triggered (abilitazione sul fronte di salita) => uscita varia solo su fronte di salita, ovvero durante passaggio del clock da 0 a 1
  • Negative edge triggered (abilitazione sul fronte di discesa) => uscita varia solo su fronte di discesa, ovvero durante passaggio del clock da 1 a 0
  • Master slave => ingresso si considera solo su fronte di salita, uscita cambia su fronte di discesa

OSS l'abilitazione sul fronte permette stabilizzazione degli ingressi che altrimenti potrebbero essere ancora in stato di transizione quando Clock è a livello.

OSS dual channel delle memorie RAM permette di trasferire dati sia su fronte di risalita che su fronte di discesa.

Latch

EXTRA il F/F Delay latch permette di avere un unico ingresso per i dati D mettendo un inverter a monte dell'ingresso R.

Registri

Elementi di memoria realizzati da un insieme di F/F collegati in parallelo, collegati in serie possono essere usati per creare shift register. Una combinazione di entrambi è utilizzata per convertire i segnali da seriale a parallelo e viceversa.

  • Seriale-parallelo => dati vengono ricevuti un bit alla volta e poi shiftati fino al completamento, infine salvati in parallelo su altro registro.
  • Parallelo-seriale => dati inseriti in shift register ed inviati un bit alla volta shiftando ad ogni invio.

SCA = PU (processing unit)

Sistemi digitali complessi

SCO = CU (control unit)

Quando si parla di sistemi complessi bisogna far attenzione a separare le unità di controllo (SCO) dalle unità di elaborazione (SCA).

SCA

Comprende tutti gli elementi utili per l'elaborazione dei dati:

  • Registri
  • Operatori
  • Strutture di interconnessione
  • Moduli vari (MUX, DEMUX, …)

SCO

Struttura di controllo che permette di effettuare la microprogrammazione dei componenti. Basate su macchine di Moore e Mealy ed inizialmente implementate tramite ROM. Permette implementazione della semantica del microcodice di ogni istruzione, i circuiti di selezione servono per ottimizzare il costo del microcodice.

Protocollo di handshaking

Permette di simulare una connessione sincrona tra due dispositivi indipendenti che lavorano in maniera asincrona uno rispetto all'altro. Questo è possibile grazie ad un F/F di handshaking, detto comune, che funge da semaforo.

Ex. Al termine di ogni operazione il dispositivo UTx invia i dati a URx ed un segnale, detto Ack. URx ricevuto il segnale legge il dato ed una volta finite le sue operazioni invia un nuovo ack a UTx che riprenderà le sue funzioni ed invierà un nuovo dato.

Processore Z64

Processore didattico a 64 bit basato su architettura x86 (usata da processori Intel / Amd).

Le 4 connessioni per registro del primo decoder permettono di selezionare 8/16/32/64 bit. Il secondo decoder invece seleziona il registro tramite il codice di 4 bit in IR. La selezione viene quindi effettuata tramite un AND tra questi 2 segnali e quello di write / read.

I Registri

  • TEMP1 / TEMP2 => registri nascosti che permettono di mantenere le variabili stabili durante il processamento nella ALU o shifter (sempre in funzione).
  • OSS si dicono nascosti poiché utilizzati per operazioni interne.
Anteprima
Vedrai una selezione di 10 pagine su 44
Architetture dei calcolatori Pag. 1 Architetture dei calcolatori Pag. 2
Anteprima di 10 pagg. su 44.
Scarica il documento per vederlo tutto.
Architetture dei calcolatori Pag. 6
Anteprima di 10 pagg. su 44.
Scarica il documento per vederlo tutto.
Architetture dei calcolatori Pag. 11
Anteprima di 10 pagg. su 44.
Scarica il documento per vederlo tutto.
Architetture dei calcolatori Pag. 16
Anteprima di 10 pagg. su 44.
Scarica il documento per vederlo tutto.
Architetture dei calcolatori Pag. 21
Anteprima di 10 pagg. su 44.
Scarica il documento per vederlo tutto.
Architetture dei calcolatori Pag. 26
Anteprima di 10 pagg. su 44.
Scarica il documento per vederlo tutto.
Architetture dei calcolatori Pag. 31
Anteprima di 10 pagg. su 44.
Scarica il documento per vederlo tutto.
Architetture dei calcolatori Pag. 36
Anteprima di 10 pagg. su 44.
Scarica il documento per vederlo tutto.
Architetture dei calcolatori Pag. 41
1 su 44
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Ingegneria industriale e dell'informazione ING-INF/05 Sistemi di elaborazione delle informazioni

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher duke0000 di informazioni apprese con la frequenza delle lezioni di Architettura dei calcolatori 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 di Roma La Sapienza o del prof Ciciani Bruno.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community