…da von Neumann al computer quantistico L’archittettura dell’elaboratore Come funziona un computer ? • Input: inserimento dei dati Come funziona un computer ? • Input: inserimento dei dati • Elaborazione (?) Come funziona un computer ? • Input: inserimento dei dati • Elaborazione (?) • Output: risultato La macchina analitica di Babbage (1837) Ideata (ma mai realizzata) dal matematico Charles Babbage per risolvere problemi generali di calcolo. Aveva una architettura molto simile ai moderni elaboratori. Era formata da: un “magazzino” (store/memoria); un mulino (mill/unità di elaborazione) e un lettore di schede perforate (dispositivo di input). Le schede perforate venivano utilizzate già dai primi dell’ottocento, nei telai Jacquard, dove i fori rappresentavano i punti in cui l’ago avrebbe attraversato la stoffa per la realizzazione del disegno. Boole e l’algebra di…(1847) ovvero come la logica filosofica diventa matematica “L’analisi matematica della logica” • p è vera = 1 • p è falsa = 0 • negazione non (p) = 1 – p • congiunzione p1 e p2 = p1 . p2 • disgiunzione p1 o p2 = p1 + p2 La logica proposizionale viene ridotta ad un semplice calcolo … ma quanto fa 1 + 1 = ? Il teorema di incompletezza di Godel (1931) In ogni formalizzazione coerente della matematica che sia sufficientemente potente da poter assiomatizzare la teoria elementare dei numeri naturali — vale a dire, sufficientemente potente da definire la struttura dei numeri naturali dotati delle operazioni di somma e prodotto — è possibile costruire una proposizione sintatticamente corretta che non può essere né dimostrata né confutata all'interno dello stesso sistema (1° teorema di Godel) Il problema della fermata Touring allo stesso modo si chiese se esisteva un algoritmo in grado di decidere se una funzione computabile si arrestasse oppure no La macchina di Turing (1936) • un sistema di memorizzazione • un dispositivo di lettura e di scrittura di tali dati • un meccanismo di controllo per stabilire le azioni da intraprendere. La macchina universale di Turing Arriva l’elettronica Shannon nel 1938 tradusse l’algebra di Boole in termini di circuiti elettrici: • 1 segnala il passaggio di corrente elettrica attraverso un filo, 0 ne segnala l’assenza La negazione e la congiunzione corrispondono ad interruttori che • accendono la luce se è spenta, la spengono se è accesa (negazione) • fanno passare la corrente solo se arriva da entrambi i fili (congiunzione) AND OR NOT …e finalmente von Neumann (1946) Input Cpu Memoria Bus Output Input/Output Questi dispositivi hanno il compito di gestire l’interazione fra l’utente e il computer. L’input converte un segnale che riceve dall’esterno in una successione di bit (cioè di zero o uno), permettendo così al computer di operare su quanto ricevuto. L’output esegue l’operazione inversa: trasforma cioè il codice binario in un segnale comprensibile all’utente. La memoria La memoria è dove si conservano i dati che sono necessari al computer. Essa è composta principalmente da due parti: ROM (Read Only Memory) E’ una memoria permanente sulla quale si può agire solamente leggendo i dati che vi sono conservati. In essa sono contenute le operazioni fondamentali necessarie per l’avvio e l’uso del computer. RAM (Random Access Memory) E’ una memoria temporanea, sulla quale possiamo scrivere e leggere dati, che però verranno persi allo spegnimento del computer. Viene usata per salvare dati utilizzati durante un elaborazione, ma che possono poi essere cancellati. Possiamo considerare la memoria come una serie di caselle ciascuna contente un dato (espresso come serie di bit) e individuata da un preciso indirizzo. La Cpu La Cpu è il “cervello” del computer, dove cioè vengono analizzate ed elaborate le informazioni. E’ composta da due elementi principali: il primo,detto Cu, decide quali siano le operazioni e i programmi da eseguire mentre il secondo, detto Alu, esegue le operazioni algebriche e logiche. La cpu opera usando le indicazioni e i dati salvati in memoria che richiama attraverso un indirizzo preciso. In generale il funzionamento può essere riassunto così: la cpu prende un'istruzione dalla memoria, in base a quanto richiesto dall'istruzione ricerca in memoria i dati necessari, esegue le operazioni e produce il risultato, salva il risultato in memoria o lo manda all'output. Il processore esegue le operazioni in modo sequenziale: inizia l'operazione successiva solo al compimento di quella attualmente in corso. Il ritmo con cui la cpu lavora dipende da un segnale periodico, detto clock, ad ogni "scatto" del clock (o gruppo si scatti) il processore esegue una nuova operazione. Il bus Il bus è lo strumento che permette il collegamento fra gli elementi precedenti, gestisce il passaggio di informazioni all’interno del computer. La velocità massima con la quale una macchina può operare dipende notevolmente dall’efficienza del Bus: la frequenza di clock con la quale lavora la cpu deve essere compatibile con il tempo necessario a trasmettere l’informazione. ROM Input Cu Output Alu RAM Bus Cosa ci riserva il futuro ? • Abbiamo assistito negli ultimi anni ad una crescita della velocità di calcolo, della quantità di memoria disponibile, alla riduzione dei componenti utilizzati, ma la logica che c’è dietro il funzionamento di un computer è sostanzialmente la stessa di sessant’anni fa, e cioè quella di essere in grado di calcolare le funzioni calcolabili… ma i limiti fisici dei circuiti integrati comincia a farsi sentire. Il computer quantistico • L’utilizzo di componenti sempre più piccoli porta a dover fare i conti non più sul comportamento della materia, ma su come si comportano aggregati di singoli atomi. Di conseguenza la descrizione del loro funzionamento deve essere formulata in termini quantistici. Partendo dal fatto che gli atomi possono trovarsi soltanto in stati di energia discreti: un atomo quando passa da uno stato di energia ad un altro, assorbe ed emette energia in quantità fisse (quanti). Quindi, un atomo potrebbe codificare uno 0 nello stato elettronico fondamentale e un 1 in uno stato eccitato (con un fascio laser). Vantaggi… … e problemi realizzativi conclusioni