Lamonica

annuncio pubblicitario
I Computer
Come si è giunti alle moderne scelte
architetturali.
Michelangelo Lamonica
Storia dell'informatica e del
calcolo automatico
Ambientazione
Il presente documento è progettato per
introdurre ad una visione complessiva
dello sviluppo della tecnologia
attualmente presente sul mercato .
Esso è di compendio alle attività didattiche
tradizionali ed è destinato a studenti che
stanno terminando il corso di studi di
scuola superiore.
Storia dell'informatica e del
calcolo automatico
Prerequisiti


Avere comprensione della terminologia
tecnica legata ai Personal Computer.
Avere interesse nel comprendere il
percorso storico che ha portato alla
attuale tecnologia.
Storia dell'informatica e del
calcolo automatico
Obiettivi
 Dare il quadro storico dello sviluppo della
tecnologia legata ai Processori.
 Permettere di comprendere le scelte
tecnologiche relativamente tali tecnologie.
Storia dell'informatica e del
calcolo automatico
Materiale
 Materiale Cartaceo disponibile
 Slides in PowerPoint®
 Bibliografia
Storia dell'informatica e del
calcolo automatico
Si parte ….
Mettetevi
comodi …..
Storia dell'informatica e del
calcolo automatico
L’osso di Lupo
Risale al 30000 a.c. un osso di lupo in cui sono
state incise 55 tacche a gruppi di 5.
Si pensa sia stato impiegato come base di
calcolo (in base 5 … come le dita).
Rappresenta il primo tentativo (conosciuto) dell’essere umano di
sistematizzare l’universo dei numeri, primo passo per il dominio dei dati e
delle informazioni.
Storia dell'informatica e del
calcolo automatico
L’abaco
La prima macchina calcolatrice risale a
5000 anni fa, e permetteva di eseguire
calcoli utilizzando le perline che scorrono
sulla tastiera.
Storia dell'informatica e del
calcolo automatico
La Pascalina
Molto dopo Blaise Pascal (1623-1662),
figlio diciottenne di un esattore delle
tasse francese, inventa la calcolatrice ad
ingranaggi.
Storia dell'informatica e del
calcolo automatico
Caratteristiche




usava otto ingranaggi mobili
somma numeri fino ad otto cifre
I numeri erano in base 10
Utilizza ruote dentate ( a 10 denti )
 Utile solo per le addizioni !!!!!!!
Storia dell'informatica e del
calcolo automatico
Difference Engine ed
Analitycal Machine
“I wish to God these calculations had been executed by steam”
Il matematico inglese Charles Babbage (17911871) presentò una macchina per le equazioni
differenziali, detta “Difference Machine”.
L'assistente di Babbage, Augusta Ada King, figlia
del poeta inglese Lord Byron, fu la prima
programmatrice della storia creando una
routine di istruzioni della Analitical Machine,
precursore del moderno Calcolatore.
Storia dell'informatica e del
calcolo automatico
Caratteristiche





Alimentate a vapore
grandi quanto una locomotiva
Dotate di oltre 50000 componenti
Input con schede perforate
Archivio di memoria per 1000 numeri
 La Analitical Machine conteneva anche
un'unità di elaborazione con un'unità di
controllo che consentiva di processare
istruzioni in ogni sequenza.
Storia dell'informatica e del
calcolo automatico
Nota Storica
Nel 1889, un inventore americano, Herman Hollerith
(1860-1929), applicò il concetto delle schede
perforate al censimento degli Stati Uniti (che fu
terminato in sei settimane invece dei 10 anni
previsti !!!!).
Hollerith nel 1886 fondò la Tabulating Machine
Company che divenne International Business
Machine (IBM) nel 1924.
Storia dell'informatica e del
calcolo automatico
Differencial Analyzer
Il prof Vannevar Bush ed altri docenti del MIT
progettano il “Differential Analyzer”, il primo
calcolatore di uso pratico alimentato
elettricamente.
Da questo momento in poi, i prototipi di
macchinari computazionali si susseguono
quasi annualmente fino ai giorni nostri.
Storia dell'informatica e del
calcolo automatico
Evoluzione
Da allora si susseguono una serie di scoperte e
innovazioni che portano all’affinamento delle tecniche
per la realizzazione dei computer.
Il problema principale dell’epoca era l’eccessivo ingombro
dei macchinari dovuto essenzialmente alla difficoltà di
rappresentazione dei numeri e delle relazioni tra
questi.
Il problema fu risolto realizzando Computer tramite la
semplice (e ripetitiva) algebra Binaria.
Storia dell'informatica e del
calcolo automatico
Nota Storica
 Il sistema Binario era noto già in Cina nel 1100 a.c.
 Il gesuita padre Bouvet descrive per corrispondenza tale
sistema a Leibnitz
 Leibnitz (fine 1600) realizza che qualsiasi informazione può
essere formalizzata in binario.
 Il matematico Boole (fine 1800) costruisce la sua logica sul
lavoro di Leibnitz.
 Nel 1931 il tedesco Zose costruisce il primo computer
elettromeccanico sulla logica binaria (Relè)
 Nel 1939 l’americano Atanasoff realizza il primo computer
elettronico sulla logica binaria (Valvole)
 Negli anni ’50 von Neumann formalizza l’architettura ancora
oggi utilizzata.
Storia dell'informatica e del
calcolo automatico
La architettura
Negli anni ’50 von Neumann definisce la architettura dei
Computer; tale architettura è tutt’ora alla base dei moderni
Calcolatori.
In particolare, viene definita la la distinzione tra memoria
primaria (ROM) e secondaria (RAM), e lo stile di
programmazione mediante diagrammi di flusso.
Storia dell'informatica e del
calcolo automatico
Considerazioni
Da quanto fino ad ora visto:
 Dall’inizio dei tempi si comprende che operazioni
complesse possono essere scomposte in operazioni
semplici ripetute un numero elevato di volte.
 Lo sforzo degli scienziati è quello di utilizzare le scoperte
tecnologiche per potenziare i calcolatori (dalle ruote dentate
alle valvole fino ai circuiti integrati) utilizzando una
architettura definita a grandi linee già del 1600
 Ai calcolatori viene tutt’ora chiesto di realizzare cose
semplici, ma in quantità tale da poter poi effettuare
operazioni molto complesse.
Storia dell'informatica e del
calcolo automatico
Le generazioni
Prima Generazione (1945-1956)
 Valvole Termoioniche
Seconda Generazione (1956-1963)
 Transistor
Terza Generazione (1964-1971)
 Circuiti Integrati
Quarta Generazione (1971-Oggi)
 Integrazione su larga scala
Storia dell'informatica e del
calcolo automatico
I moderni Processori
Tralasciando le realizzazioni effettuate nelle precedenti
generazioni, viene di seguito riproposto un “excursus” sulle
scelte legate alla realizzazione dei processori della “quarta
generazione”.
In particolare risulta interessante comprendere come non
sempre il prodotto migliore è risultato vincente subito e
come, architetture diverse, sono state valutate e scelte in
base a motivazioni “storiche” che hanno condizionato
l’attuale stato di fatto.
Storia dell'informatica e del
calcolo automatico
Problemi di Spazio
Studi effettuati da informatici come Andrew Tanenbaum
dimostrarono che le CPU prodotte allora erano molto
sovradimensionate rispetto alle reali esigenze dei
programmi.
Tanenbaum dimostrò che il 98% delle costanti in un
programma poteva essere memorizzato con parole di 13 bit
sebbene la maggior parte delle CPU utilizzasse parole a
multipli di 8 bit (quindi 8/16/24 etc.) e quindi sprecasse
spazio.
Storia dell'informatica e del
calcolo automatico
Anni ’80 – Il Panico
All'inizio degli anni 80 si era diffusa l'idea che l'architettura dei
processori avesse raggiunto il suo limite teorico di velocità.
Da qui lo sforzo di trovare nuove tecnologie e tecniche in
grado di realizzare processori che potessero superare tale
limite.
Le direzioni prese furono:
 La realizzazione di un processore con un set ridotto di
operazioni base (RISC)
 La realizzazione di architetture parallele (TRANSPUTER)
Storia dell'informatica e del
calcolo automatico
Il problema l’integrazione
Dunque con la realizzazione di processori su Circuiti Integrati
viene evidenziata agli inizi degli anni ’80 la necessità di non
poter aumentare ulteriormente la scala di integrazione e di
conseguenza non poter garantire il trend di crescita
prefissato.
Per tal motivo i tecnici in quel periodo si realizzano i primi
processori RISC (Berkeley 1980) che, tramite la
combinazione di un numero finito di funzioni, riescono a
gestire tutte le operazioni richieste.
Storia dell'informatica e del
calcolo automatico
CISC e RISC
CISC (Complex Instruction Set Computers) è la architettura
che prevede all’interno del processore la realizzazione di
una grande quantità di funzioni.
RISC (Reduced Instruction Set Computers) è la architettura
che prevede all’interno del processore la realizzazione di
solo una minima quantità di funzioni, le quali, combinate,
permettono la realizzazione di operazioni complesse.
(le uniche operazioni in grado di accedere alla memoria sono le operazioni di load e di store)
Storia dell'informatica e del
calcolo automatico
La evoluzione sul mercato.
Dopo un decennio ( 1980-1989 ) di studio si colma il divario e
all'inizio degli anni 90 i processori RISC superano i
processori CISC praticamente in ogni campo.
Tuttavia scelte commerciali portano la INTEL ( e la AMD ) a
continuare a mantenere una architettura CISC, prefendo
demandare ai compilatori la scomposizione delle istruzioni
complesse in istruzioni più semplici (RISC)
Attualmente – tranne il mondo x86 - la restante componente di
processori è RISC. (i-pod, decoder tv, x-box, etc )
Storia dell'informatica e del
calcolo automatico
Parallelizzazione
Contemporaneamente alla realizzazione di processori RISC,
un’altra direzione - per ovviare al problema della
saturazione della velocità raggiungibile - fu quella della
parallelizzazione delle operazioni.
Una CPU a basso costo, pensata in quest'ottica, avrebbe
permesso di aumentare la velocità di calcolo di una
macchina aggiungendo altri processori simili, scelta
potenzialmente molto più economica di una basata su un
singolo e più potente processore.
Storia dell'informatica e del
calcolo automatico
I Trasputer
Il INMOS Transputer era un pionieristico design di un
microprocessore per il calcolo parallelo prodotto
dalla INMOS, una piccola azienda inglese, negli
anni '80.
L'obiettivo era di produrre una famiglia di chip,
limitati in costo e potenza, che avrebbero potuto
poi essere connessi tra loro per formare un
computer completo.
Il nome era stato scelto per indicare il ruolo che il
singolo Transputer avrebbe avuto: molti di loro
sarebbero stati usati come "mattoni di base",
proprio come i transistor lo erano stati
precedentemente.
Storia dell'informatica e del
calcolo automatico
Set di Istruzioni Interne
Il set di istruzioni macchina del Trasputer conteneva
la codifica dell'istruzione, rendendolo un vero
RISC.
Inoltre le istruzioni meno frequentemente utilizzate
erano supportate tramite la codifica di istruzioni
chiamata Operate (Opr), la quale decodificava la
costante di dati come un codice di operazione
esteso, fornendo un'espansione del set di
istruzione facile e quasi infinita.
Storia dell'informatica e del
calcolo automatico
OCCAM
Per la programmazione dei transputer, la
INMOS ha progettato un linguaggio
apposito, chiamato Occam.
In effetti è più corretto dire che il Transputer
fu progettato specificatamente per eseguire
codice Occam, come molti processori CISC
dell'epoca erano pensati per eseguire Pascal
o C.
Storia dell'informatica e del
calcolo automatico
La evoluzione sul mercato.
Nel 1983 esce in commercio il primo trasputer
la cui architettura e performances erano
nettamente superiori a “cugini” x86.
Nel 1987 esce il T9000, dotato di virgola
mobile e supporto alla “superscalarità”.
Nel 1989 il progetto fallisce e la INMOS viene
acquisita dalla SGS-Thomson.
Storia dell'informatica e del
calcolo automatico
Considerazioni.
Nei primi anni '80 sembrava che le CPU
convenzionali avessero raggiunto il loro
limite riguardo alle performance.
Le soluzioni proposte (RISC e TRASPUTER)
benchè realizzassero forti miglioramenti non
avevano fatto i conti con:
 Diffusione della architettura x86 (CISC)
 Costo del processore prodotto (TRASPUTER)
Storia dell'informatica e del
calcolo automatico
Considerazioni.
I problemi ipotizzati nel 1980 (integrazione) si
sono riproposti 15 anni dopo.
Gli studi effettuati in quegli anni sono stati
dunque elaborati ed applicati ai moderni
processori.
A tendere, le innovazioni introdotte negli anni
’80 sono riuscite ad imporsi.
Storia dell'informatica e del
calcolo automatico
RISC in maniera Software
I moderni processori x86 - pur mantenendo (per
compatibilità con le versioni precedenti) una architettura
CISC – lasciano ai compilatori la
scomposizione delle istruzioni complesse in
istruzioni più semplici (RISC).
I nuovi x86 a 64 bit prevedono una ISA
ottimizzata in questa direzione.
Storia dell'informatica e del
calcolo automatico
Parallelizzazione nei x86
La parallelizzazione dei processi è stata anche
essa rielaborata ed utilizzata nei moderni
processori.
Il compito di “parallelizzare” non viene però
demandato al programmatore ma al S.O. che
gestisce più core in parallelo.
Di nuovo viene preferita la compatibilità con
quanto presente attualmente sul mercato.
Storia dell'informatica e del
calcolo automatico
Cosa abbiamo tralasciato.
La analisi ivi proposta è ad alto livello e non
tiene conto delle innovazioni avvenute nello
stesso periodo a livello di integrazione.
Il numero di transistor presenti sui chip varia
in maniera incrementale secondo la nota
“legge di Moore”
Finchè il trend di integrazione non varia
(diminuendo) le architetture non avranno
sensibili variazioni.
Storia dell'informatica e del
calcolo automatico
Bibliografia
Von Neumann
Sist. Binario
C.P.U.
Integrazione
http://it.wikipedia.org/wiki/John_von_Neumann
http://it.wikipedia.org/wiki/Sistema_numerico_binario
http://it.wikipedia.org/wiki/CPU
http://en.wikipedia.org/wiki/Very-large-scale_integration
http://it.wikipedia.org/wiki/INMOS_Transputer
X86
http://it.wikipedia.org/wiki/Architettura_x86
ISA
http://it.wikipedia.org/wiki/Instruction_set
Legge di Moore http://it.wikipedia.org/wiki/Legge_di_Moore
Trasputer
Storia dell'informatica e del
calcolo automatico
Scarica