vuoi
o PayPal
tutte le volte che vuoi
Elementi fisici alla base dell'elaborazione
9esercizio: in occasione della visita del presidente di Atlantide, il servizio di sicurezza di Computerlandia costruisce un sistema automatico di verifica delle identità per determinare quali persone possono prendere parte alla cerimonia di benvenuto. Un agente inserisce i dati della persona che gli si presenta davanti e in risposta ottiene dal circuito automatico un segnale corrispondente alla possibilità per tale persona di entrare (segnale 1) oppure no (segnale 0).
Costruire il circuito sulla base delle regole seguenti:
- Le persone devono essere residenti a Computerlandia e non avere meno di 18 anni.
- Inoltre, devono indossare o una giacca o un cappotto.
- In alternativa, devono avere un abito completo o un tailleur.
- Non è consentito l'ingresso a chi indossa un cappello.
CIRCUITI INTEGRATI (CHIP)
Un circuito integrato, detto anche chip, è un circuito elettronico di materiale semiconduttore (come il silicio o il germanio).
costruito su una base di materiale plastico o ceramico. I circuiti AND, OR, NOT si trovano nei circuiti integrati. I circuiti in questo grafico qui accanto sono dei NAND (not-and), cioè degli AND a cui in fondo aggiungo un NOT, con due ingressi e una uscita: per fare ad esempio una somma ho bisogno di più sommatori quindi possono esserci anche più di un NAND all'interno del chip. Di solito si aggiungono due fili: power e ground (terra). Se ho 4 circuiti NAND servono 12 fili (3x4) per parlare con l'esterno. Il primo prototipo di circuito integrato è stato fatto da Jack Kilby (Texas Instruments) nel 1958. L'evoluzione storica degli elementi fisici alla base dell'elaborazione dei circuiti integrati: per ogni singolo circuito mi servono almeno 3 fili (due di ingresso e uno di uscita): nel caso del VLSI che sono 100.000 dovrò avere 3 x 100.000. Il problema è: quanti pin (piedini) dovrebbe avere un chip che contiene 100.000 circuiti logici (cioè un chip di 100.000 circuiti)?tipo VLSI)? Teoricamente, se ogni circuito logico ha bisogno nel caso più semplice di almeno due ingressi e di un'uscita, sarebbero necessari (3 x 100.000) pin. In realtà i circuiti logici in un chip VLSI non sono indipendenti, come invece accade nel caso dei circuiti SSI (small-scale integration "a piccola integrazione di scala"). Nei chip VLSI i circuiti elementari sono combinati fra loro a formare circuiti che richiedono solo poche porte in ingresso e poche porte in uscita. Nella foto del chip quello ha 28 piedini (14 x lato) e contiene più di 100.000 circuiti logici integrati: si chiamano appunto integrati, ossia integrano sempre di più. memoria temporanea: i registri per effettuare un calcolo, come ad esempio una somma, c'è la necessità di avere a disposizione dei luoghi in cui memorizzare i dati temporaneamente. La memoria è la parte fondamentale di un computer e i registri sono delle memorie particolari attaccate alprocessore: la memoria del computer è costruita come sequenza di 0 e 1. con questa singola unità di memoria voglio poter scrivere o leggere: inserisco i dati e leggo i dati: la singola celletta di memoria è quella che mantiene il bit. celle di memoria per memorizzare temporaneamente i risultati di un'operazione: registri celle di memoria molto veloci basate sui flip-flop un registro che ha 8 bit, è un registro che ha 8 magazzini da 1 bit ciascuno (oggi i magazzini sono da 64 bit) circuito flip-flop: è un circuito costruito con due circuiti NOT collegati come in figura Nel circuito → io entro nel not come 0 e vengono cambiati i connotati, esco come 1. Questo 1 può andare sia dentro che girare, trovarsi un altro not e ritrasformarsi in 0: finché c'è corrente l'informazione viene mantenuta. memoria volatile: memoria che una volta spento il computer viene cancellata completamente. La memoria continua a consumare corrente per
mantenere il magazzino attivo.
ELEMENTI FISICI ALLA BASE DELL'ELABORAZIONE 11
I due NOT che costruiscono il circuito si comandano reciprocamente e una volta che giunge un segnale, 0 o 1, alla porta A, in uscita alla porta B si avrà il segnale opposto. Questo stato viene mantenuto indefinitivamente fino a quando non arriva un segnale opposto in ingresso alla porta A.
Per avere le informazioni che inserisco = alle informazione che estraggo devo inserire un altro not in modo tale che venga invertito il segnale d'uscita per farlo corrispondere al segnale d'ingresso.
comunicazione tra circuiti di calcolo e registri
questo, combinato con altri circuiti da origine alla configurazione che prende nome di REGISTRI (registro sarebbe il singolo, però spesso si dice registro ad 8 bit, per intendere che è fatto da tanti registri ciascuno da 1 bit. Fatto uno ne posso mettere quanti ne voglio, sulla base di quello che mi serve, perché i computer che abbiamo noi sono a 64
Ogni banco ha 64 o 32 circuiti flip-flop, a seconda che sia a 64 bit o a 32 bit. Questi circuiti flip-flop consentono di scrivere e leggere informazioni. Le informazioni di ingresso e di uscita vengono separate in gruppi di 8 bit, chiamati registri (ad esempio R1, R2, ecc.), e ce ne sono diverse migliaia. I registri sono costituiti da celle di tipo flip-flop e sono considerate memorie temporanee veloci, appartenenti alla categoria delle memorie RAM. Questi registri sono collegati all'unità logico-aritmetica, che è l'unità che elabora effettivamente le informazioni. Consideriamo quindi:
- 4 registri a 8 bit (R1, R2, R3, R4)
- Un componente chiamato ALU a 8 bit, in grado di effettuare operazioni di base come addizioni e sottrazioni
Poiché l'ALU, come qualsiasi circuito che esegue operazioni aritmetiche, ha due ingressi e un'uscita,
viene solitamente rappresentato con la lettera V maiuscola. Come faccio a passare dall'uscita R1 all'ingresso A? Basta attaccare i fili, ossia se io prendo il primo filo e lo attacco al primo filo, il secondo al secondo e così via (perché bisogna mantenere sequenza regolare), io faccio fluire l'informazione da R1 all'ingresso A dell'unità logico aritmetica: ho ottenuto di inserire all'interno del cervello di un computer la sequenza di 8 bit in A e la sequenza di 8 bit in B. Quando ho inserito le due sequenze di 8 bit, devo dire all'unità logico aritmetica di eseguire un'operazione (esempio somma) e il risultato sarà a 8 bit. Nel momento in cui la somma c'è, in uscita io ho il risultato che devo inserire nell'ingresso di R4. Esempio: voglio prendere i numeri contenuti in due registri qualunque, sommarli e mettere il risultato in un altro registro, R4 = R1 + R2. Possiamo immaginare di collegare i
fili in uscita del registro R1 con l'ingresso A dell'ALU, poi di collegare i fili in uscita del registro R2 con l'ingresso B dell'ALU, e infine di collegare i fili in uscita dell'ALU con l'ingresso del registro R4. Di R ce ne sono circa qualche migliaio collegati al processore e tutti possono avere la possibilità di inserire informazioni o in A o in B:
ELEMENTI FISICI ALLA BASE DELL'ELABORAZIONE 12
Poiché ad un computer richiediamo flessibilità, ovvero la libertà di poter utilizzare i registri a nostro piacere, potremmo voler effettuare anche l'operazione R4=R2+R3. Questo richiederebbe che i fili in uscita dal registro R2 siano collegati all'ingresso di A dell'ALU e che i fili in uscita del registro R3 siano collegati all'ingresso B dell'ALU. In altre parole, i fili in uscita di tutti i registri dovrebbero essere collegati in ingresso agli ingressi di tutti i registri... il circuito risultante
Potrebbe funzionare ma avremmo fili da tutte le parti. Il problema dei cavi è diventato fondamentale da risolvere, con l'introduzione del: BUS. Cioè di una serie di fili a cui sono collegati tutti i registri e tutti i circuiti di calcolo. Possiamo pensare ad un bus come ad una strada lungo la quale si affacciano le porte di tutte le case. Per consentire ad una persona di passare da una casa a un'altra è necessario aprire la porta in uscita della casa in cui la persona si trova e naturalmente anche la porta di ingresso della casa in cui la persona vuole andare. Definiamo:
LATCH cioè chiavistello, il dispositivo elettronico che costituisce la porta di accesso al bus, è una serratura che può essere aperta o chiusa.
Ogni ingresso e ogni uscita di un componente di un computer è dotato di un latch.
Il latch è semplicemente un interruttore (un transistor) che permette il passaggio di un segnale 0 o 1 solo quando è comandato per
Per consentire il trasferimento di dati da un componente ad un altro attraverso il bus, è necessario che solo due latch vengano aperti contemporaneamente: il latch in uscita e quello di ingresso.
Per eseguire l'operazione R4 = R1 + R2 sono necessarie le seguenti operazioni:
- Aprire il latch in uscita del registro R1 e quello A dell'ALU
- Aprire il latch in uscita del registro R2 e quello B dell'ALU
- Aprire il latch in uscita U dell'ALU e quello in ingresso del registro R4
Tutte le altre serrature sono chiuse, è come se io creassi un microcircuito e questo microcircuito da informazioni. Questo presuppone però un piccolo problema: se è vero che tutte le altre porte sono chiuse, vuol dire che io devo aspettare che l'informazione vada da R1 uscita ad A ingresso, prima di poter fare un'altra operazione. Questo problema qui crea il problema del CLOCK: i latch devono rimanere aperti per
ELEMENTI FISICI ALLA BASE DELL'ELABORAZIONE 13
Tutto il tempo necessario affinché i segnali possano: uscire da un componente, percorrere il bus, essere letti dal componente che li deve ricevere. Proprio questo tempo viene definito tempo di ciclo interno o di clock del computer (= tempo che il processore richiede per eseguire un'operazione elementare ed è quello che governa il computer: se ho tempo di clock basso il computer è velocissimo, e viceversa).
Velocità di un computer: numero di volte al secondo per cui si ripete il ciclo interno. 1 ciclo al secondo corrisponde ad 1 Hz. Un computer con un processore che funziona ad esempio a 2Ghz è un computer il cui ciclo interno viene ripetuto 2 miliardi di volte al secondo. 1 MHz = 1 MegaHertz = 1 milione di Hertz = 1 milione di volte al secondo. 1 GHz = 1 GigaHertz = 1 miliardo di Hertz = 1 miliardo di volte al secondo. Un computer da 3 gigahertz è un computer che esegue