Architettura PDF

Title Architettura
Author Massimo del Prato
Course Architettura degli elaboratori Computer Architecture 
Institution Università degli Studi di Udine
Pages 81
File Size 3.2 MB
File Type PDF
Total Downloads 124
Total Views 374

Summary

ARCHITETTURA DEGLI ELABORATORI Un calcolatore: macchina capace di eseguire una sequenza di istruzioni semplici, istruzioni macchina. Queste sequenze di istruzioni sono chiamate programmi. Il calcolatore mediante molto veloce, di programmi di grosse dimensioni, avere dei comportamenti molto sofistica...


Description

ARCHITETTURA DEGLI ELABORATORI Un calcolatore: macchina capace di eseguire una sequenza di istruzioni semplici, istruzioni macchina. Queste sequenze di istruzioni sono chiamate programmi. Il calcolatore mediante l’esecuzione, molto veloce, di programmi di grosse dimensioni, può avere dei comportamenti molto sofisticati. Programmi, e i dati, su cui il programma lavora sono organizzati in file e contenuti nella memoria del calcolatore. MEMORIE La memoria del calcolatore è di due tipi: 1. permanente, memoria di massa, memoria secondaria, disco rigido contiene in maniera permanente i dati del calcolatore 2. operativa, memoria principale, memoria RAM contiene i dati al momento della loro elaborazione. PROCESSORE Il cuore del calcolatore è il processore (CPU) il circuito che materialmente esegue le istruzioni. Processore, e memoria principale, vengono realizzati mediante particolari circuiti chiamati circuiti integrati o chip, un chip ha la dimensione di pochi centimetri e può contenere miliardi di transistor, un solo chip è sufficiente per realizzare un processore. Il processore scambia dati attraverso varie periferiche→ processore, memoria e periferiche collegate da bus formano il calcolatore. SISTEMA OPERATIVO Il sistema operativo è un particolare programma che è sempre in esecuzione e che permette l’interazione tra utente e calcolatore. IL CALCOLATORE PUO’ ESSERE VISTO COME UNA MACCHINA A LIVELLI = UN INSIEME STRATIFICATO DI MACCHINE VIRTUALI Nei calcolatori il segnale elettrico rappresenta le informazioni i due metodi: digitale o analogico.

L’informazione di tipo analogico è legata al tempo continuo mentre l’informazione di tipo digitale si riferisce a un istante di tempo determinato. Il calcolatore digitale è caratterizzato da elevata tolleranza ai disturbi e affidabilità, semplicità di programmazione e da una rappresentazione astratta dell’informazione. La codifica del segnale segue la logica positiva: tensione presente = segnale presente; tensione assente = segnale assente CIRCUITI LOGICI I circuiti sono dispositivi con una serie di segnali di ingresso detti input e di segnali di uscita detti output. I circuiti logici sono di 2 tipi: 1. Combinatori→ i valori di uscita dipendono solo dai valori di ingresso in quell’istante = sono privi di memoria 2. Sequenziali→ sono provvisti di memoria perciò i valori di uscita dipendono anche dai valori di ingresso di istanti precedenti. Le PORTE LOGICHE sono semplici circuiti combinatori ed elementi base della costruzione → La porta logica AND ha uscita 1 se tutti gli ingressi sono a 1 (e zero altrimenti) → La porta logica OR ha uscita 1 se almeno uno degli ingressi `e a 1 (e zero altrimenti) → La porta logica NOT ha uscita 1 se l’ingresso ha valore 0 (e zero altrimenti) Per la realizzazione fisica delle porte logiche si è trovato il modo di gestire il trasporto di elettricità regolando la resistenza del conduttore con un altro segnale elettrico; per fare ciò si utilizzano i transistor i quali regolano il segnale attraverso un segnale di controllo (pag151-161) ALGEBRA BOOLEANA Serve per descrivere un circuito con un’espressione algebrica. È un’algebra usata nella logica: la valutazione di un’espressione viene ridotta a un calcolo con soli due possibili valori come risultato 1 o 0 (vero o falso). Il comportamento delle operazioni coincide con quello delle porte logiche. Ai circuiti formati da porte logiche si possono associare diverse espressioni e viceversa; ci sono anche circuiti che non hanno una corrispondente espressione algebrica, ad esempi circuiti in cui un’uscita comanda più ingressi e circuiti con retroazione. Semplificazioni di espressioni:  Le proprietà Identità, Elemento nullo permettono di eliminare le costanti 0 e 1, dalle espressioni.  Le leggi di De Morgan e Negazione permettono di portare la negazione a livello di variabili.  Le proprietà Commutativa, Associativa, Inverso, Idempotenza e Assorbimento permettono di riordinare i termini ed eliminare doppioni.

 La proprietà distributiva permette di riscrivere ogni espressione come somma di prodotti (forma normale) (polinomio).  Assorbimento: si può derivare dalle proprietà Identità, Distributiva, Elemento nullo. Le proprietà booleane restano valide se si cambiano la costante 0 con la costante 1 e l’operazione + con * e viceversa. CIRCUITI LOGICI DI BASE Costituiscono il primo asso nella costruzione dei circuiti combinatori e sequenziali.  MULTIPLEXER→ circuito dotato di 2 tipi di ingressi: - n ingressi di controllo; - 2^n ingressi segnale. E un’unica uscita. Il controllo seleziona quale segnale d’ingresso mandare in uscita. È utilizzato per la trasformazione parallelo→ seriale e per realizzare un generatore di tabelle di verità  DECODER→ - n ingressi; - 2 n uscite. L’ingresso seleziona una delle uscite; l’uscita selezionata avrà valore 1 tutte le altre 0. È usato per Selezionare uno tra molti dispositivi, in cui ogni dispositivo contiene un segnale di attivazione e per realizzare un Demultiplexer: un ingresso, n linee di controllo, 2n uscite.  COMPARATORE→ 2 ingressi di n bit e un’uscita; controlla se gli ingressi sono uguali bit a bit. Utilizzato per il confronto di valori. CIRCUITI ARITMETICI Nei calcolatori la rappresentazione dei numeri interi e l’esecuzione delle operazioni aritmetiche fanno riferimento alla notazione posizionale ovvero il peso di una cifra dipende dalla sua posizione. Il calcolatore utilizza la base 2 perché un segnale rappresenta una cifra ( 2 segali) e per motivi di semplificazione dell’hardware. Gli algoritmi che realizzano l’operazione non dipendono dalla base scelta. Somma:  si sommano le cifre di pari peso,  a partire dalle meno significative,  eventualmente si generano riporti I NUMERI IN HARDWARE  Nel calcolatore i numeri rappresentati con un numero fisso di cifre binarie (bit).  Nel caso dei naturali: 8 o 16 o 32 oppure 64 cifre.  Non tutti i numeri naturali sono rappresentabili

La somma:  L’algoritmo di somma ripete la stessa operazione su cifre diverse.  In hardware: tanti circuiti, ciascuno somma una diversa coppia di cifre. Vedi mezzo sommatore, sommatore completo e shifter RITARDO I circuiti logici rispondono con un piccolissimo ritardo attorno a 10 -10 secondi, tale ritardo si somma nei circuiti a cascata. I dispositivi con stato (ovvero quelli provvisti di memoria) ricordano gli ingressi passati. LATCH S-R È il più semplice circuito con memoria e usa la retroazione. Se l’ingresso di set è a 1 l’uscita sarà a 1; se invece è l’ingresso reset a essere a 1 l’uscita è 0. la retroazione non permette la traduzione in tavole di verità ma consente di conservare il momento di uscita anche in assenza di segali di ingresso = anche se si smette di dare un ingresso definito al latch le uscite rimangono settate LATCH SINCRONIZZATO Rispetto al latch S-R riporta l’aggiunta di due porte AND e un clock che abilita le porte ad accettare segali di set e reset. Se il segnale di clock è 0 la scrittura viene disabilitata. LATCH DI TIPO D Presenta u unico interruttore che può o settare o resettare. Quando il segnale di clock è abilitato (a 1) il latch memorizza il segnale; se quest’ultimo è uguale a 0 equivale a un reset. FLIP-FLOP Diversi dai latch per il comportamento rispetto al clock: possono cambiare stato solo nell’istante in cui il clock cambia valore.

CLOCK A IMPULSI→ i ritardi delle porte logiche vengono sfruttati per generare un segnale 1 brevissimo (impulso) FLIP-FLOP COMPLETO Possibile solo in caso di situazioni temporali brevissime dove le porte AND ricevono contemporaneamente due segnali 1. Il flip-flop garantisce la persistenza dell’uscita secondo la sincronizzazione data dal clock. FLIP-FLOP MASTER-SLAVE È un’architettura a 2 latch in cui il secondo deve seguire le indicazioni del primo. C’è una porta NOT che abilita lo slave quando disabilita il master. Latch e flip-flop seguono una classificazione:  latch→ level triggered = azionati dal livello  flip-flop → edge triggered = azionato dal fronte (?)

CIRCUITI SEQUENZIALI il comportamento di questi circuiti dipende dalla storia passata: con input costante il registro può cambiare ad ogni ciclo di clock, può cambiare il valore di uscita o lo stato successivo = il circuito evolve in ogni caso, tuttavia una variazione dell’input modifica questa evoluzione. Perciò è richiesto un input sincrono con segnale di clock. FUNZIONAMENTO:  una serie di passaggi da uno stato a quello successivo,  passaggi sincronizzati dall’impulso di clock, i quali abilitano la scrittura nel registro,  il segnale di clock `e periodico,  il passaggio di stato può avvenire solo quando il circuito si `e stabilizzato (ritardi). SEGNALE DI CLOCK È il segnale che cadenza il funzionamento dei circuiti sequenziali.

È periodico in quanto cambia stato a intervalli temporali a due a due costanti. Per ottenere migliori prestazioni il ciclo di clock deve essere più breve possibile; tuttavia, poiché ogni circuito ha un tempo di commutazione il periodo di clock deve essere a esso superiore. CIRCUITI INTEGRATI Sono circuiti contenenti porte logiche, transistor e resistori ottenuti mediante la lavorazione del silicio: i transistor sono ottenuti drogando il silicio inserendo atomi estranei (boro, arsenico, fosforo) nella sua struttura cristallina. si espone il silicio, in forno, ai vapori di altre sostanze; i collegamenti tra le componenti del chip depositando uno strato di materiale conduttore (rame o alluminio); e gli isolamenti elettrici ossidando il silicio esponendolo in forno a ossigeno. {Tecniche di fotoligrafia ● si copre il silicio con uno strato di materiale fotosensibile che viene illuminato in maniera differenziata: ● la parte illuminata solidifica ● la parte in ombra viene rimossa} PACKAGE Sono i supporti di plastica che inglobano il chip che utilizzano un sistema di connessione mediante piedini: 2 file di piedini per i chip di memoria e invece centinaia di connessioni per i chip con processori CHIP DI MEMORIA I circuiti integrati contengono una grande quantità di registri, per accedere ai dati in essi contenuti è necessario selezionare il registro su cui si vuole operare specificando il suo indirizzo e poi definire che tipo di operazione si vuole eseguire: se lettura o scrittura. I SEGNALI I/O dei chip di memoria: ● indirizzo (specifica il registro su cui operare), ● dati in ingresso (da scrivere nel registro), ● segnali di controllo: - CS chip select (per attivare il chip di memoria), - CS chip select (per attivare il chip di memoria), RD read (specifica se vogliamo leggere o scrivere in memoria - OE output enable

● dati in uscita (nella pratica le linee coincidono con gli ingressi) Un REGISTRO è una collezione di bit (da 4 a 64) di cui ognuno deve poter essere indirizzabile BUFFER Sono interruttori che creano il collegamento chiudendosi --- i buffer non invertenti sono più convenienti delle porte AND per collegare diverse uscite perché possono lasciare l’uscita indeterminata = non forzano un valore di tensione in uscita perché il sistema non “scrive” in ogni momento. MEMORIE RAM (random access memory) Circuiti di memoria riscrivibile che si dividono in due tipi: 1. RAM STATICHE (SRAM): i singoli bit vengono memorizzati attraverso latch. Sono utilizzate nella memoria cache [+ veloci e costose] 2. RAM DINAMICHE (DRAM): usano un meccanismo diverso di memorizzazione. Costituiscono la memoria principale del calcolatore [lente e capienti] RAM DINAMICHE Dotate di un solo transistor e di un solo condensatore. Il condensatore può caricarsi con la tensione elettrica oppure rimanere scarico oppure rimanere scarico a livelli di bassa tensione. L’ accesso alla carica è regolato dai transistor; l’accumulo di carica rappresenta lo stato. L’indirizzamento delle memorie è un fatto bidimensionale e avviene in due fasi 1) RAS = row access strobe 2) CAS = column access srtobe Nella prima fase il contenuto di un intero riga viene copiato in un registro (latch), nella seconda vengono letti i bit selezionati della riga. C’è la possibilità di effettuare un accesso veloce a locazioni consecutive usando il registro di bit in sostituzione della fase 1). Nuove tecnologie per le DRAM: sfruttano la possibilità di accedere a byte consecutivi più velocemente rispetto a byte causali DRAM double data rate synchronous ● Synchronous: trasmissione sincrona, regolata da un segnale di clock; vengono trasmessi pacchetti di dati (locazioni consecutive); ogni ciclo di clock, un nuovo pacchetto; ma molti cicli di clock, per il primo pacchetto. ● Double Data Rate: ad ogni ciclo di clock vengono spediti due pacchetti di dati.

Le nuove DRAM migliorano più la banda passante rispetto al tempo d’accesso (-banda passante: quantità di dati consecutivi leggibili nell’unità di tempo -tempo d’accesso: tempo necessario per una singola operazione in memoria). SCHEDE DI MEMORIA È un circuito contenente la RAM dinamica distribuito su più chip; si innesta in appositi slot sulla scheda madre. MEMORIE PERMANENTI ● ROM (Read Only Memory) di sola lettura ● PROM (Programmable ROM) scrivibili un’unica volta. — Bit: fusibile. Scrittura distruttiva ● EPROM (Erasable PROM) cancellabili mediante esposizione a raggi ultravioletti. Bit: carica elettrica ● EEPROM (Electrically EPROM) cancellabili elettricamente (singolo bit). Bit: carica elettrica ● Memoria flash: particolari EEPROM cancellabili a banchi. SSD dischi a stato solido. Meccanismo di base memoria EPROM (agg. Da libro) Operano un meccanismo semiconduttore che permette la riscrittura della memoria e un meccanismo di “sequestro” della memoria RAPPRESENTAZIONE DELL’INFORMAZIONE I calcolatori gestiscono dati di varia natura tutti rappresentati con sequenza di bit mediante un’opportuna codifica: ● numeri naturali, interi, reali ● operazioni aritmetiche nell’hardware ● caratteri e loro codici di rappresentazione ● codici di correzione degli errori organizzazione della memoria

In una codifica di lunghezza costante con n bit si rappresentano fino a 2 n; una codifica ideale deve essere compatta, pratica e accurata. Per compattezza si intende la riduzione al minimo dei bit necessari. Per praticità si intende la semplificazione delle operazioni di calcolo. Per accuratezza si intende la capacità di non perdere dati o di perdere dati in quantità trascurabile. La notazione posizionale già citata sopra è indipendente dalla base scelta; tuttavia il calcolatore utilizza comunque la base 2 in cui un valore basso/alto di tensione (0 1) rappresenta una cifra. In alternativa può essere usata la notazione nota come BCD Binary Coded Decimal che utilizza la base 10, in cui ogni cifra viene rappresentata con 4 bit; in questo modo si compone un’interfaccia con l’utente più diretta a discapito però di complicare i circuiti per le operazioni visto che vengono usati più bit del necessario. CONVERSIONE DA BASE 10 A BASE 2 Dividendo un numero decimale per 2 ottengo l’ultima cifra binaria come resto (sempre per definizione di notazione posizionale) a quel punto posso ripetere lo stesso procedimento sul risultato procedo fino a quando il numero da convertire non è nullo. Il metodo visto converte la base 10 in una qualsiasi base. La notazione esagesimale (base 16) richiede delle cifre extra (le prime 6 lettere dell’alfabeto per indicare i 6 numeri dopo il 9). CONVERSIONE DA BASE 2 A BASE 16 (8) Dividere la sequenza binaria in gruppi di 4 (3), partendo dal bit meno significativo trasformare ciascun gruppo in una cifra nella nuova base ripetere il procedimento per la parte decimale, partendo dal bit più a sinistra. L’ARITMETICA DEL CALCOLATORE I numeri utilizzabili dal calcolatore si dividono in tre classi: 1) naturali, 2) interi, 3) razionali (o floating-point); e sono rappresentati con in numero fisso di cifre, 16-32-64 bit per naturali e interi, 32-64-128 per i razionali. I valori rappresentabili sono in numero limitato, di conseguenza esiste un valore massimo e uno minimo, i valori sono approssimati e memorizzati in più formati. Per tale motivo può verificarsi un Overflow ovvero che il risultato di un’operazione sia più grande del massimo valore rappresentabile. OPERZAIONI ARITMETICHE L’hardware implementa le operazioni aritmetiche di somma, sottrazione, moltiplicazione e divisione. ● Per quanto riguarda l’addizione vengono usati somme e riporti gestendo il problema della propagazione del riporto. ● Per la sottrazione si calcola l’opposto e si esegue un’addizione con il problema di scegliere una codifica efficiente per i numeri negativi. ● La moltiplicazione rimane una serie di somme ma l’hardware può eseguire più somme in parallelo ● La divisione rimane una serie di sottrazioni oppure è possibile calcolare inverso e prodotto.

Per la codifica degli interi in hardware esistono 4 alternative: 1. SEGNO E VALORE ASSOLUTO= si utilizza un bit per indicare il segno e i restanti per il valore assoluto. 2. COMPLEMENTO A 1= si somma per ottenere 1 3. COMPLEMENTO A 2= il numero negativi -i si ottiene complementando i e poi aggiungendo 1 (oppure con n cifre binarie -i viene rappresentato dal numero 2 n-i) ciò per semplificare la ALU [vedi slide 10 26-27 per operazioni] 4. ECCESSO 128 (?) Nei numeri frazionari I pesi delle cifre dopo la virgola sono potenze negative della base b, dunque sempre minori di uno. Es. (b = 2): 1; 011 = 1×20+0×2-1+1×2-2+1×2-3 = 1+1/4+1/8 Non tutti i valori sono rappresentabili nella nuova base con un numero finito di cifre. Esempio: 0; 4 scritto in base due è periodico. Per la conversione di base della parte frazionaria si convertono separatamente parte intera e parte frazionaria;1) da base due (o base b) a base dieci: sommo le cifre decimali ciascuna moltiplicata per il peso;2) da base dieci a base due (o base b): a ogni iterazione moltiplico la parte frazionaria per 2 (o b), e la parte intera del risultato è la nuova cifra; la parte frazionaria `e il resto da usare alla prossima iterazione. NOTAZIONE FLOATING-POINT Usata per i numeri frazionari. Il numero X è rappresentato da una coppia (m, e) in questo modo: X = m × be dove m è la mantissa (la mantissa di un numero positivo è la sua parte decimale; per un numero negativo si ottiene sottraendo a 1 la parte decimale in valore assoluto) e l’esponente e il numero intero. Il vantaggio è quello di poter rappresentare numeri molto grandi o molto piccoli in modo efficiente. L’esponente indica di quante posizioni deve essere spostata la virgola nella mantissa. (?) La lunghezza in bit è fissa per mantissa ed esponente. Nel calcolatore la notazione floating-point comporta alcuni difetti: ● precisione: ogni rappresentazione e ogni operazione può essere affetta da errore ● overflow: risultati non rappresentabili perché troppo grandi ● underflow: risultati non rappresentabili perché troppo vicini a 0 sono approssimati con 0. NOTAZIONE IEEE Fino agli anni 80’ processori diversi usavano notazioni diverse comportando problemi nello scambio di dati. Poi fu introdotta la notazione IEEE 754 standard usata anche oggi su tutti calcolatori. Il segno è dato da un singolo bit: 0 = +, 1 = - ; l’esponente è riportato con l’eccesso 127 e la mantissa in notazione normalizzata: inizia con 1 implicito.

CODIFICA DEI CARATTERI I caratteri vengono rappresentati mediante codici: si associa ad ogni carattere una sequenza di bit (numero binario). L’associazione è arbitraria ma con alcune regole di base. I principali codici sono: ● ASCII (standard 8 bit ed esteso), ● MS DOS, ● MAC OS Roman, ● UNICODE, ● UTF-8, UTF-7, UTF-16, ● EBCDIC, ● Morse. IL CODICE ASCII (american standard code for information interchange) Fu il primo standard per la codifica dei testi: poiché i sistemi a 8 bit imponevano delle dimensioni standard si pensò di “impaccare” i caratteri in 7 bit (max 128 caratteri codificabili) → i codici dallo 0 a 32 sono dedicati al controllo del testo e del flusso mentre quelli da 32 a 127 a 95 caratteri stampabili. I problemi relativi al codice ASCII sono che l’insieme di caratteri di controllo era pensato per le “telescriventi”, postazioni remote nei mainframe degli anni ’60. Ancora supportate in UNIX e Linux; il Ritorno a capo (= carriage return + line-feed) →sistemi operativi diversi gestiscono in diverso modo il ritorno a capo. Inoltre vi sono pochi caratteri rappresentabili: non ci sono i caratteri non appartenenti all’alfabeto occidentale internazionale: lettere acc...


Similar Free PDFs