Sei sulla pagina 1di 7

Calcolatori Elettronici L-A

Appunti PARTE 1
Slide 9: Alla base di tutto c sempre una sequenza ordinata di 2 fasi: 1)Una fase di istruzione Programma = sequenza di istruzioni 2)Una fase di esecuzione E ovviamente necessario un supporto dove memorizzare le nostre informazioni Memoria,per depositare: 1)sia il programma da mettere in esecuzione 2)sia i dati temporanei o finali Per cambiare il comportamento funzionamento sufficiente cambiare il programma: questo dif atto modifica la rete logica. Def. : Calcolatore di processo = calcolatore che alla fine usa i dati che ha prodotto attraverso trasduttori (dispositivi in grado di trasformare numeri binari in segnali di controllo per macchine) Def. : Calcolatore = insieme di unit funzionali Calcolatore moderno (pi complesso,non nel modello di Von Neumann): lhardware della macchina non guarda la singola istruzione che deve essere eseguita in questo momento,ma ne guarda un certo numero a seguire,va cio a vedere la sequenza di istruzioni, e se trova allinterno di questo blocco di istruzioni delle istruzioni che teoricamente vanno eseguite dopo ma che possono andare nelle unit funzionali gi libere, il nostro sistema, purch siano disponibili gli operandi su cui lunit funzionale deve operare, prende questa istruzione che segue e la fa eseguire dallunit funzionale corrispondente. Dopodich, queste istruzioni eseguite fuori ordine vengono nuovamente messe in un contenitore da cui poi sono estratte nello stesso ordine in cui erano previste allingresso della macchina. Sistema realizzato nel 1996 per la prima volta. Logica del calcolatore pi complessa possibile grazie allavanzamento delle tecnologie. Oggi esiste,come conseguenza diretta dellesecuzione funzionale (ad unit funzionali appunto),lesecuzione parallela,ci sono pi istruzioni contemporanee che vengono immesse nella CPU (unit centrale di esecuzione),che vengono restituite anchesse in parallelo Slide 10: Qualunque calcolatore, essendo per definizione una macchina sincrona, ha questa struttura (vedesi immagine sulla slide): 1)Ha degli ingressi che possono essere di qualsiasi natura 2)Il calcolatore elabora gli ingressi e produce allesterno delle uscite

3)Il calcolatore ha ovviamente un clock,normalmente ci sono pi reti sincrone magari anche con clock diversi allinterno di un calcolatore che per sono coordinate in modo tale che si possano parlare tra loro 4)E composto da una Rete Combinatoria (che una rete che una volta progettata quella e basta,ma noi vogliamo comportamenti diversi)e una serie di registri Slide11:Vogliamo cambiare la nostra rete combinatoria, cio fare in modo che la rete combinatoria non sia una rete staticamente realizzata ma che sia in grado mediante ulteriori ingressi di essere specializzata a fare cose diverse (esempio ALU,rete combinatoria che cambia comportamento attraverso relativa programmazione).I segnali che specializzano la nostra rete combinatoria sono esattamente i segnali che provengono dal programma,che sarebbe una serie di comandi che vengono dati (serie di istruzioni) Def. : Unit di floating Point = lunit che fa le operazioni in virgola mobile (con i numeri reali) Slide 12: In realt le cose sono un po pi complesse,vorremmo tutti ottenere dei risultati con un solo clock (nel nostro attuale caso specializzare la nostra rete combinatoria),ma questo non vero. Qualunque operazione aritmetica o logica unoperazione che pu essere fatta con un clock solo,per definizione, solo che la complessit di ottenere un risultato combinatorio in un solo clock richiede una rete di una complessit spaventosa,non gestibile. Quello che non si riesce a fare in parallelo si deve fare in serie,riducendo cos la complessit delle due parti necessarie alla realizzazione. Il compromesso tra le cose che si fanno in parallelo e quelle che si fanno in serie una importante virt ingegneristica. Le nostre istruzioni corrispondono quindi ad una sequenza di operazioni,ad un algoritmo. Molto spesso una singola istruzione che ci chiede di effettuare una trasformazione su dei dati invece che farla in ununica operazione la facciamo con n operazioni in sequenza, il che vuol dire che tra il programma e la nostra rete combinatoria in esecuzione ci deve essere una rete che interpreta listruzione che vogliamo fare e da una sequenza di comandi alla nostra rete combinatoria per ottenere alla fine il risultato voluto, e poich avremo dei risultati intermedi abbiamo i registri, che contengono per lappunto i nostri risultati parziali. Slide 13: Qualunque sistema sempre schematizzabile per blocchi, e ci aiuta a semplificare la vita in termini di comprensione. Un calcolatore composto da 3 blocchi principali: 1)La memoria, contiene sempre 2 tipi di dati: i programmi e i dati. Per memoria non si intende un singolo dispositivo, ma un insieme di dispositivi che globalmente costituiscono la memoria (per memoria si intende anche quel dispositivo che contiene il BIOS [basic input output system][memoria FLASH]) 2)Unita di elaborazione (CPU), quella che fa ad esempio le somme e le sottrazioni (ALU,trasforma i dati).Lunit di elaborazione contiene registri di transito, ovvero componenti che contengono dati temporanei necessari allesecuzione di un algoritmo, e la cache che uno degli strumenti principali per ottenere efficienza in un calcolatore: quanto pi lungo un segmento (nel nostro caso un circuito stampato) tanto pi ci impiega la luce a percorrerlo in tutti i processori c un collo di bottiglia che il BUS(FSB = Front Side

Bus), che linsieme dei fili che interconnettono le varie unit. Maggiore la frequenza del bus,maggiore risulta essere la velocit del computer perch di fatto il bus il collo di bottiglia. Per accedere ai dati in memoria io devo transitare sul bus, la memoria deve recuperare i dati (ed impiega un tempo non nullo,tempo di accesso di solito 50 nanosecondi, mentre i nostri processori hanno un tempo di 250 picosendi (4 GHZ) e quindi vuol dire che sta sempre ad aspettare la risposta delle memorie, quindi perdiamo in efficienza).Quindi bisogna evitare il pi possibile di andare nella memoria, e questo si fa con le cache: si cerca di prendere i dati in memoria la prima volta che ne abbiamo bisogno e poi cercare di portarli in una memoria piccola allinterno del processore (in cui le distanze sono molto corte) perch in un prossimo futuro utilizzeremo lo stesso dato. Maggiore la cache maggiore la probabilit di andare a reperire il dato nella cache e non nella memoria,la cache ci permette un accesso elettronico alla velocit del processore. La cache per sua natura non ha comandi per essere disabilitata,se non in un certo caso (motivi gravi) 3)Registri di transito e di stato, i registri con i quali riusciamo a sfruttare i risultati prodotti dal calcolatore, perch fin quando i risultati sono in memoria non hanno alcun significato perch non sono visualizzabili. Permette di restituire risultati al mondo esterno,che poi lo scopo del nostro calcolatore. (4)Vi poi anche la rete che ci permette di vedere dei dispositivi remoti come se fossero locali,ed un'altra maniera per restituire i risultati ottenuti al mondo esterno. Slide 14: Il calcolatore una macchina digitale,ovvero le memorie,il processore,i registri di stato e di transito,qualunque altro dispositivo digitale binario (ovvero le informazioni sono codificate in binario,segnale binario = segnale digitale).Si usa il binario e non ad esempio il ternario per via del rumore e i nostri segnali non sono mai proprio puliti. Problema grave perch il rumore si sovrappone a livello di tensione dei nostri dispositivi e li fa spostare rispetto al riferimento,per esempio da 1 a 0. Maggiore il numero di livelli di tensione tanto minore il margine del rumore (la capacit di resistenza del nostro dispositivo a non mal funzionare in presenza di rumore). Ma il problema ancora pi grave: i calcolatori moderni per due motivi principali (per i consumi e per la velocit) adottano tensioni estremamente basse, perch minore la tensione minore il consumo (per la legge di ohm W = V x I),mentre in termini dinamici minore la distanza tra lo 0 e luno maggiore la velocit di commutazione (un esempio di rumore linterferenza).Variabili binarie = variabili elettriche a 2 valori,sia i dati che le istruzioni. Il bus (significa fili e vengono raggruppati per significato: il bus composto da 3 sottobus: il bus dei dati,degli indirizzi,(i segnali su un bus o su un qualunque dispositivo non commutano mai esattamente allo stesso momento, teoricamente si ma realmente non accade)e il bus dei segnali di comando. I segnali digitali hanno livello di tensione diversi,nella cpu per esempio si hanno segnali diversi da quelli del bus. I blocchi interconnessi al bus si chiamano agenti del bus (bus agents). Slide15: Il funzionamento di un calcolatore come una macchina a stati in cui il calcolatore cicla sempre fra due stadi che si susseguono:

1)Instruction Fetch o IF (Fetch = estrazione) = ovvero il reperimento dellistruzione successiva. Se listruzione corrente unistruzione di salto,chiaramente passiamo da una fase di istruzione ad una fase di istruzione 2)Execute o EX = ovvero lesecuzione Qualunque macchina sincrona necessita di uno stato iniziale e quindi ha bisogno del segnale di reset (segnale che obbliga il processore ad eseguire una istruzione in una particolare locazione di memoria),segnale di tipo hardware (pulsante sul pc, hard-reset rispetto al soft-reset del ctrl+alt+canc). Se il reset non attivo il processore esegue perennemente,oppure non fa niente, il che significa che esegue una istruzione particolare che si chiama alt, che porta il processore in una situazione che accada qualche cosa Slide 16: Una cosa la memoria logica, ovvero quella che vista dal processore, che non ha nessuna cognizione di come sia fisicamente realizzata la memoria, il processore si aspetta che a fronte della presentazione di certi segnali gli tornino certe informazioni, stop. La memoria logica ha bisogno di essere realizzata con dei dispositivi fisici che possono essere di natura diversa, di tempi diversi o di tecnologia diversa. Vista dal processore, una memoria un insieme ordinato di celle,di 2^N celle,quindi un vettore M*02^N-1] che detto spazio di indirizzamento in memoria. Il processore esprime lindirizzo della cella, attraverso un insieme di bit (indirizzo) che un numero di bit potenza di 2 e che permette di discriminare 2^N celle diverse. La cella individuabile solo attraverso il suo indirizzo che va da 0 a 2^N-1 composto da N bit ed chiaro che ci deve essere un meccanismo di decodifica che permette di passare dallinsieme di N bit dell indirizzo ad un codice 1 su N. La memoria composta di flip-flop, elemento di memoria binario per eccellenza. In realt i banchi di memorie al posto del flip-flop vi un condensatore (transistore MOS), che una volta caricato mantiene linformazione (differenza di potenziale), sono memorie dinamiche a differenza delle memorie statiche che sono proprio quelle che adoperiamo con i flipflop. Una cella sempre composta da un byte (8 bit), che lunit di informazione minima trasferibile dalla memoria al computer ed anche la minima informazione su cui il processore in grado di operare. Non possibile trasferire dati inferiori ad 8 bit, mentre possibile trasferire multipli di 8 bit (16,24,32 bit e cos via). Slide 17: Parallelismo = la quantit di informazione che in un singola operazione il processore in grado di trattare. Maggiore il parallelismo, maggiore lefficienza del calcolatore. Aumenta la complessit del BUS. Gli attuali banchi di memoria hanno parallelismo 8 Byte, ovvero a 64 bit. Anche se io avessi un parallelismo a 128 bi, non sono obbligato a trasferire 16 Byte alla volta, posso anche trasferire in un singolo Byte. Controllo di memoria = gestisce il rinfresco dei condensatori, che dopo un po di tempo tendono a perdere la loro carica: ha priorit su tutto, pena la lettura di informazioni sbagliate. Indirizzi delle memorie espressi in codice esadecimale 1) 1 KByte = 2^10 Byte = 1024 Byte 2) 1 Mbyte = 1K KB = 2^20 Byte = 1.048.576 Byte 3) 1 GByte = 1K MB = 2^30 Byte = 1.000.000.000.000 circa di Byte

Spazio di indirizzamento = numero di celle direttamente indirizzabili dal processore che corrisponde al numero di bit di indirizzo che il processore in grado di ammettere: questo non ha nulla a che vedere con il parallelismo. Def. : nibble = unit che identifica 4 bit. Slide 18: Un dispositivo fisico va a realizzare una parte dello spazio di indirizzamento (memoria logica). La mappatura di un dispositivo fisico di memoria allinterno dello spazio logico quelloperazione che garantisce che quel dispositivo vada a realizzare proprio quella particolare area. Slide 19: Io posso accedere alla memoria un Byte alla volta, attraverso il parallelismo accedo con N Byte alla volta. Parallelismo sul bus diverso dal parallelismo del processore: sul bus di solito ho parallelismo a 64 bit (tra processore e memorie) mentre il processore a 32 bit (anche a 64..). Slide 20: Per poter eseguire le istruzioni in sequenza la CPU dispone al suo interno di un contatore detto Program Counter (PC).Il PC viene incrementato ad ogni Fetch e contiene lindirizzo in memoria della prossima istruzione da leggere nella prossima fase di Fetch; quindi il PC individua la prossima istruzione da eseguire Slide 21: Cos come i dispositivi in memoria, anche le interfacce di ingresso/uscita (dispositivi che consentono la comunicazione con il mondo esterno) sono mappate in uno spazio di indirizzamento. Le interfacce di I/O possono essere mappate in uno spazio distinto da quello della memoria oppure nello stesso. In questultimo caso si dice che lI/O mappato in memoria (memory mapped I/O). Lo spazio di indirizzamento in I/O solitamente pi piccolo dello spazio di indirizzamento in memoria (64K solitamente). Anche se i 2 spazi sono distinti, i segnali del bus che portano lindirizzo sono comuni e la distinzione tra i due spazi di indirizzamento viene affidata a appositi segnali del bus. Slide 22: Le operazioni che compie la CPU sono: 1)Lettura di istruzioni e dati (operandi delle istruzioni) dalla memoria 2)Scrittura di risultati in memoria 3)Lettura di dati da I/O 4)Scrittura di risultati su I/O Slide 23: Il BUS diviso in 3 categorie: 1)BUS dei dati: costituito da segnali che portano istruzioni e operandi. Il suo parallelismo multiplo di un Byte secondo una potenza di 2 (1,2,4,8,16 Byte). Il bus dei dati identificato dal vettore di m bit D[m-10+ 2)BUS degli indirizzi: costituito dai segnali che identificano la posizione delle informazioni trasferite nello spazio di indirizzamento a cui si intende accedere ed identificato dal

vettore di n bit A[n-10+ (C un bit che discrimina lindirizzo tra memoria e I/O,un qualificatore) 3)BUS dei segnali di comando: composto dai segnali che comandano i trasferimenti di dati sul bus. Def. : Segnali veri negati = ovvero attivi quando il potenziale zero. Questo perch i segnali volanti sono associati al valore di 1 Slide 25: Sul bus si possono affacciare pi processori. Gli agenti del bus si dividono in: 1)Agenti Master, cio quelli che possono prendere il controllo del bus, ovvero emettono indirizzi e segnali di comando (CPU = agente master) 2)Agenti Slave, cio quelli che sono indirizzati da un agente master. 3)Agenti Master/Slave, quello che assume entrambi i comportamenti. Slide 26: Un ciclo di bus un trasferimento da o verso il processore. In ogni ciclo di bus, un agente master indirizza un agente slave. E unoperazione che corrisponde: 1)Allemissione di un indirizzo i da parte del processore o da parte di un altro agente master 2)Generazione di un segnale di controllo (lettura o scrittura) 3)Infine trasferimento vero e proprio del dato coinvolto Slide 28: Il master che in quel momento ha il controllo del bus si chiama bus owner. Con un master attivo,gli altri master possono (sistema multi-master): osservare lattivit sul bus (snooping) oppure rimanere temporaneamente isolati. Con pi master ovviamente necessario un meccanismo di arbitraggio che assegna il bus di volta in volta ai master che ne fanno richiesta. I cicli di bus sono indivisibili: quando un master comincia un ciclo,fino a quando quel dato non arrivato tutto sta fermo Slide 30: DMA = dispositivi che servono a trasferire molto rapidamente dati fra memoria e I/O,molto pi in fretta di quanto riesca a fare il processore, agente Master/Slave Slide 31: Registro = insieme di flip flop, che una memoria (memoria = insieme di registri). Nei registri delle interfacce sono allocati o linsieme dei comandi che stabilisce come linterfaccia deve funzionare oppure (interfaccia quasi sinonimo di I/O) nei registri di transito vengono piazzati risultati temporanei, per esempio nellinterazione con la rete per parallelizzare o serializzare i dati. Slide 33: Ogni processore caratterizzato: 1)da un set di istruzioni (parliamo del linguaggio nativo del processore stesso, fornite direttamente allhardware),che linsieme dei tipi di istruzioni che il calcolatore in grado di eseguire (dal punto di vista funzionale come aver detto il 90% di un processore)

2)Dalla sua struttura interna. La stessa rete logica ha infinite realizzazioni e il processore una rete logica, infatti 2 processori possono realizzare le stesse istruzioni ed essere realizzati in modi completamente diversi fra loro (esempio Intel vs Amd, competizione sulla velocit che dipende dalla struttura interna, ma realizzano le stesse istruzioni). 3)Realizzazione circuitale,ovvero con quale tecnologia sono realizzati i processori (adesso tecnologia cmos, perch una tecnologia che non consuma, che il problema pi drammatico) Slide 34: Per vedere quanto veloce un processore, noi dobbiamo vedere quanto tempo ci impiega ( ad eseguire un programma. Quindi il

Dove uguale al numero di istruzioni necessarie per eseguire il programma (detto anche benchmark), (clock per instruction medio),cio quanti clock mediamente impiega per eseguire ire unistruzione (numero anche non intero) e che il tempo del clock del processore Slide 35: = Uguagliando con la precedente si ottiene Risk = Reduced instruction set computer Slide 36: Speed up(accelerazione): lo speed up o incremento di velocit il rapporto fra il pi lento e il pi veloce fra 2 processori ed esprime quanto un processore vada pi veloce rispetto ad un altro