Università di Pisa
Dipartimento di ingegneria dell’informazione Corso di laurea in ingegneria elettronica
Relatore: Prof. Ing. Luca Fanucci Candidato: Marco Franceschini
Matr. 142461 Anno accademico 2016-2017
Legge di Moore nell’evoluzione dei processori Intel® e
retrospettiva nel calcolo automatico
28 Settembre 2017
"Tutto quel che vediamo, quel che sembriamo non è che un sogno dentro un sogno ?"
Edgar Allan Poe.
Indice
1 Capitolo 1
Introduzione 27
2 Capitolo 2
Il concetto di numero e la storia del calcolo automatico 29
2.1 La storia dei numeri . . . . 29
Le origini del concetto di numero . . . . 29
Il concetto di base di numerazione ed i primi strumenti di calcolo . . . . 30
La scrittura dei numeri . . . . 31
Il sistema posizionale . . . . 35
Numeri negativi e frazioni . . . . 36
La storia dei numeri reali . . . . 37
2.2 Classificazione delle macchine da calcolo . . . . 37
2.3 I Regoli calcolatori . . . . 38
2.4 L’abaco . . . . 44
2.5 Il compasso di Galileo . . . . 46
Il compasso di proporzione . . . . 47
2.6 Ruota dentata e calcolo automatico . . . . 47
Il problema del riporto . . . . 48
2.7 L’orologio calcolante di Schickard . . . . 48
2.8 La macchina da calcolo aritmetico di Giovanni Poleni (1683-1761) . . . . 53
2.9 La pascalina di Blaise Pascal . . . . 57
La pascalina in colonna singola . . . . 59
2.10 La macchina aritmetica di Leibniz . . . . 59
La Stepped Reckoner . . . . 61
Funzionamento della macchina calcolatrice di Leibniz . . . . 61
2.11 La macchina analitica di Charles Babbage . . . . 64
Biografia ed educazione . . . . 64
Babbage e il calcolatore programmabile . . . . 64
Il metodo delle differenze finite . . . . 65
La macchina analitica
. . . . 66
2.12 Le calcolatrici meccaniche . . . . 68
L’aritmometro di Colmar . . . . 68
Le calcolatrici meccaniche di Curt Herzstark . . . . 70
Perrault e gli aritmografi . . . . 72
Il contributo di Willgodt Odhner . . . . 73
2.13 Le calcolatrici meccaniche a tastiera . . . . 74
Comptometer . . . . 75
2.14 La macchina tabulatrice di Herman Hollerith . . . . 76
Il funzionamento della macchina tabulatrice . . . . 77
2.15 Le calcolatrici a moltiplicazione diretta . . . . 77
Le calcolatrici Friden . . . . 78
L’introduzione della tastiera moderna . . . . 79
2.16 La macchina di Turing e la teoria della computabilità: nozione informale di algoritmo. . . . 80
La tesi di Church-Turing . . . . 83
La definizione di Turing completezza . . . . 84
Biografia di Alan Turing . . . . 84
2.17 I calcolatori elettromeccanici di Konrad Zuse ed il padre del calcolatore analogico Helmut Hölzer . . . . 88
La Z1 e la Z2 . . . . 88
Schema a blocchi della Z1 . . . . 90
Il primo calcolatore programmabile, lo Zuse Z3 . . . . 95
I calcolatori S1 ed S2 . . . . 99
Il calcolatore Zuse Z4 . . . . 99
L’epoca del transistor e una applicazione al calcolo parallelo . . . 102
Helmut Hölzer, inventore del calcolatore elettronico analogico . . . 106
I calcolatori G di Heinz Billing . . . 107
2.18 Il calcolo automatico inglese degli anni ’40-’60 . . . 109
La macchina Enigma . . . 110
Il calcolatore Colossus a Bletchley Park . . . 115
La serie di calcolatori Mark I . . . 124
Il calcolatore Atlas . . . 131
EDSAC dell’Università di Cambridge . . . 134
2.19 I calcolatori elettronici costruiti negli anni ’30-’50 negli USA . . . 138
Il calcolatore Atanasoff-Berry . . . 138
Diagramma a blocchi del calcolatore ABC . . . 140
Il sottosistema di memoria di massa di ABC . . . 140
Biografia del Dr. John Vincent Atanasoff . . . 141
L’Harvard Mark I . . . 142
I successori del Mark I . . . 146
L’ENIAC . . . 146
BINAC . . . 154
Indice
IAS . . . 155
JOHNNIAC . . . 156
ILLIAC I . . . 157
UNIVAC I . . . 158
UNIVAC 1101 . . . 159
ENIAC on a chip . . . 160
EDVAC . . . 161
SEAC . . . 164
La famiglia di calcolatori MANIAC . . . 164
Whirlwind I e II . . . 165
Calcolatore AN/FSQ-7 per il sistema SAGE . . . 167
TX-0, calcolatore sperimentale a transistor . . . 168
IBM 650 . . . 168
IBM 701 . . . 170
IBM SSEC . . . 171
2.20 I calcolatori costruiti in Giappone negli anni ’50 . . . 173
Introduzione . . . 173
ETL-Mark-2 . . . 174
FUJIC . . . 174
MUSASINO-1 . . . 175
ETL-Mark-4 . . . 176
PC-1 . . . 177
ETL-Mark-4a . . . 178
TAC . . . 178
Handai-Computer . . . 179
K-1 . . . 179
2.21 Olivetti e la Divisumma di Natale Capellaro . . . 180
La Olivetti Programma 101 dell’Ing. Perotto . . . 181
La fine di un’epoca . . . 185
2.22 La calcolatrice elettronica pisana CEP e la macchina ridotta . . . 186
La Macchina Ridotta . . . 187
La nascita della CEP . . . 192
2.23 La famiglia di calcolatori Olivetti ELEA: il prototipo ELEA 9001 . . . . 194
Il secondo calcolatore prototipo ELEA 9002 . . . 195
L’ELEA 9003 . . . 196
Il calcolatore ELEA 9004 . . . 197
ELEA serie 4000 e 6000 . . . 198
La figura di Adriano Olivetti . . . 198
Mario Tchou: l’ingegnere che diede vita al sogno della serie di mainframe ELEA della Olivetti . . . 199
2.24 I calcolatori tascabili a circuiti integrati . . . 201
La giapponese Busicom . . . 201
La statunitense Hewlett Packard . . . 202
2.25 Eventi fondamentali nella storia del calcolo automatico . . . 207
3 Capitolo 3 La storia dei semiconduttori 221 3.1 Definizione di materiale semiconduttore . . . 221
Semiconduttori elementari . . . 221
Semiconduttori composti . . . 222
Ossidi semiconduttori . . . 222
Semiconduttori organici . . . 222
Semiconduttori magnetici . . . 222
3.2 Le tappe fondamentali dello sviluppo dei dispositivi a semiconduttore . . 223
3.3 Il transistor nel 1947 . . . 233
3.4 Silicon valley . . . 233
3.5 La nascita e la storia di Intel ® . . . 235
3.6 Biografie . . . 237
Robert Noyce . . . 237
Gordon Moore . . . 238
Andrew Grove . . . 239
Federico Faggin . . . 240
4 Capitolo 4 La legge di Gordon Moore 245 4.1 La prima legge di Moore . . . 245
4.2 La seconda legge di Moore . . . 248
Evidenza empirica della prima legge di Moore . . . 249
4.3 Prestazioni dei processori . . . 251
Regola di Pollack . . . 252
4.4 Storia della litografia . . . 253
Introduzione . . . 253
Litografia ottica o fotolitografia . . . 254
Litografia nel profondo ultravioletto . . . 255
Litografia ai raggi X . . . 257
Litografia a fascio di elettroni . . . 258
La litografia ad immersione . . . 258
Lo scaling dei transistor MOSFET e dei dispositivi CMOS . . . 261
Scaling dello spessore di ossido di silicio . . . 265
Materiali alternativi ad elevata costante dielettrica . . . 265
4.5 L’aumento della complessità dei livelli di interconnessione sui chip . . . 266
Le interconnessioni in rame . . . 267
Il processo damascene . . . 269
Strained silicon . . . 270
Indice
4.6 Il mantenimento della validità della legge di Moore
. . . 271
Problemi connessi ai costi dei sistemi utilizzati per produrre i semiconduttori272 Il problema della dissipazione termica . . . 273
La legge di Koomey sull’efficienza energetica dei processori Intel ® . . . . 275
Un limite dalla fisica quantistica . . . 277
4.7 Tappe fondamentali nello sviluppo dell’industria dei semiconduttori e trend futuri. . . . 277
4.8 Prospettive e ricerche per il mantenimento della validità della legge di Moore in futuro. . . . 282
Materiali a bassa ed elevata costante dielettrica relativa . . . 286
Il grafene . . . 288
MOSFET a doppio gate in Antimonene ed Arsenene . . . 298
4.9 Una tassonomia per nuovi dispositivi oltre i tradizionali CMOS . . . 299
Introduzione . . . 299
FET con nanotubi di carbonio . . . 300
FET in grafene . . . 301
FET nanowire . . . 302
Semiconduttori composti del III-V come sostituti dei materiali per canali di tipo P . . . 303
Dispositivi per la sostituzione dei canali in germanio di tipo n . . . 304
Tunnel FET . . . 304
Spin FET and Spin MOSFET Transistors . . . 305
Negative Gate Capacitance FET . . . 307
NEMS Switch . . . 307
Mott FET . . . 309
Dispositivi logici a trasduzione piezoelettronica . . . 309
Trend per il periodo 2023-2030 . . . 310
5 Capitolo 5 L’Intel
®i4004 e l’i4040 315 5.1 La tecnologia silicon gate di Fairchild Semiconductors ed il circuito inte- grato 3708. . . . 315
5.2 La Busicom . . . 321
5.3 Il Fairchild 3708 primo circuito integrato utilizzante la SGT
. . . 322
5.4 L’Intel ® i4004
. . . 324
Il progetto della giapponese Busicom per una calcolatrice con stampante 324 La cpu a 4 bit i4004. . . . 333
5.5 L’evoluzione Intel® i4040 . . . 339
Descrizione hardware . . . 340
Circuiti integrati di supporto all’i4040 . . . 348
6 Capitolo 6 La generazione di cpu ad 8 bit: 8008, 8080, 8085 351 6.1 Intel ® 8008 . . . 351
Le caratteristiche hardware ed elettriche della cpu 8008. . . 353
Temporizzazione e diagramma della transizione tra gli stati interni i8008. 355 Blocchi funzionali della cpu. . . . 355
Insieme di istruzioni Intel ® 8008. . . . 358
Segnali di controllo e fase di avvio della cpu 8008. . . 358
6.2 Intel ® 8080/8080A . . . 361
Insieme di registri interno . . . 364
Insieme di istruzioni e loro codifica . . . 365
Operazioni con quantità a 16 bit . . . 366
Spazio dedicato alle porte di ingresso ed uscita . . . 366
L’utilizzo della cpu i8080 . . . 366
6.3 Intel ® 8085 . . . 367
Generatore di segnali di clock Intel ® 8224 e controller Intel ® 8228. . . . 371
Circuiti integrati di supporto ai processori Intel ® ad 8 e 16 bit. . . . 371
APU Intel ® 8231A . . . 372
Controller per accesso diretto alla memoria Intel ® 8237 . . . 373
Modalità di funzionamento . . . 376
Registri interni . . . 376
Interfaccia periferica programmabile Intel® 8255A/82C55A . . . 376
7 Capitolo 7
Il processore Intel
®8086 a 16 bit 381
Descrizione interna . . . 384
Indice
Capacità di indirizzamento . . . 387
Registri ed istruzioni . . . 390
Registro di flag . . . 391
Cloni hardware dell’Intel® 8086 . . . 392
Calcolatori che utilizzavano la cpu i8086 . . . 392
7.1 Il processore di controllo di input/ouput Intel® IOP 8089 . . . 393
Funzionamento dell’IOP 8089 . . . 395
Comunicazione tra processore host ed IOP . . . 395
Insieme di registri dell’IOP 8089 . . . 397
Indirizzamento dell’8089 . . . 398
7.2 Controllore di interruzioni programmabile 8259A . . . 399
Descrizione funzionale . . . 399
Sequenza gestione interruzioni in congiunzione con cpu 8080/8085 . . . . 402
Sequenza gestione interruzioni in congiunzione con cpu 8086 . . . 403
Processo di gestione delle interruzioni da parte delle cpu 8086/8088 . . . 403
Connessione di più controllori di interruzione 8259A in cascata . . . 405
7.3 Insieme di istruzioni 8086 . . . 406
7.4 L’Intel® 8088 con bus dati ad 8 bit . . . 410
8 Capitolo 8 Le cpu 80186/80188 per sistemi embedded 415 Descrizione interna . . . 416
8.1 L’Intel ® 80188 . . . 417
Differenze rispetto all’80186 . . . 419
Descrizione dello spazio di memoria indirizzabile . . . 420
Gestione delle interruzioni . . . 420
Porte di ingresso-uscita (I/O) . . . 422
Insieme di registri architetturali . . . 422
Modalità di indirizzamento della memoria . . . 424
Il coprocessore matematico 80C187 . . . 424
9 Capitolo 9 Lo iAPX 432 429 9.1 Il micromainframe iAPX 432 . . . 429
Insieme di istruzioni . . . 430
9.2 Segmenti ed oggetti. . . . 431
9.3 Indirizzamento degli oggetti. . . 432
I descrittori di oggetto . . . 432
Insieme di istruzioni . . . 433
Formati e modi di indirizzamento . . . 434
9.4 Struttura hardware di un sistema basato su processore iAPX 432 . . . . 434
Prelievo ed esecuzione delle istruzioni . . . 435
Sistema di memoria centrale . . . 435
Rete di comunicazione interprocessore . . . 436
Sistema di ingresso/uscita . . . 436
9.5 Datasheet dello iAPX 432 . . . 436
9.6 Il linguaggio ADA e lo iAPX 432 . . . 443
10 Capitolo 10 Le cpu i860 ed i960 447 10.1 L’Intel ® i860: il Cray on a chip . . . 447
Il paradigma di progetto di un processore RISC . . . 447
Microprocessori e supercomputer . . . 449
La prima cpu RISC di Intel ® . . . 450
Il pipelining nell’esecuzione delle istruzioni . . . 453
Unità di paginazione della memoria . . . 456
Calcolatori e sistemi che hanno utilizzato la cpu Intel ® i860 . . . 459
10.2 L’Intel ® i960 per impieghi embedded . . . 461
Introduzione . . . 462
Origini del progetto per una nuova cpu RISC a 32 bit . . . 462
Architettura dell’i960 . . . 463
11 Capitolo 11 La prima cpu x86 Intel
®con memoria protetta: lo iAPX
®80286 467 11.1 Introduzione . . . 467
11.2 Gli errori su silicio delle prime versioni di 80286 . . . 469
11.3 Inizializzazione di un calcolatore basato su cpu 80286 . . . 470
Lo spazio di indirizzamento iniziale . . . 472
11.4 Struttura dei registri . . . 473
Istruzioni addizionali rispetto all’8086/8088 . . . 474
11.5 Architettura dell’80286 dal punto di vista del sistema operativo . . . 474
11.6 Multitasking . . . 483
11.7 Gestione delle interruzioni ed eccezioni nell’80286 . . . 486
12 Capitolo 12 L’80386: la prima cpu di Intel
®a 32 bit 493 12.1 I bug dei primi stepping di cpu 80386 . . . 493
Revisioni circuitali . . . 494
12.2 Introduzione . . . 495
Indice
12.3 La fase di progettazione dell’80386 . . . 498
12.4 Lo spazio di input/output (I/O) nelle cpu Intel ® a 32 bit . . . 500
12.5 Descrizione interna . . . 500
Unità di interfaccia verso il bus . . . 502
Unità di prelievo anticipato del codice . . . 502
Unità di decodifica delle istruzioni . . . 502
Unità di esecuzione . . . 503
Unità di segmentazione . . . 503
Unità di paginazione . . . 503
Auto diagnostica della cpu . . . 504
12.6 Sistema completo basato su cpu 80386 . . . 504
Generatore di clock 82384 . . . 505
Temporizzatore/contatore 8254 . . . 506
Programmazione dell’8254 . . . 508
Controllore di memoria cache 82385 . . . 508
12.7 Pinout della cpu . . . 513
Dimensionamento dinamico del bus dati . . . 514
Controllo del coprocessore matematico 80287/80387 . . . 514
12.8 Insieme dei registri architetturali . . . 515
Registri di impiego generale . . . 515
Registro dei flag . . . 515
Registri di debug . . . 516
Registri di controllo . . . 517
12.9 La segmentazione e la compatibilità con le precedenti cpu x86 . . . 518
L’emulazione dell’8086 . . . 519
L’emulazione dell’80286 . . . 520
12.10Il System Management Mode dell’80386SL . . . 520
13 Capitolo 13 Coprocessori matematici e standard in virgola mobile 525 13.1 Intel ® 8087 . . . 525
Insieme di registri numerici . . . 529
Parola di stato . . . 530
Formato dati supportati dall’8087 . . . 532
Insieme di istruzioni . . . 533
Calcolo delle funzioni trascendenti e trigonometriche nell’8087: algoritmo
CORDIC
. . . 536
13.2 Lo standard IEEE 754-1985 (IEC 60559:1989) per i numeri reali
. . . 538
Introduzione . . . 538
Formati . . . 539
Rappresentazioni normalizzate, numeri normali e subnormali . . . 540
Definizione di underflow . . . 541
Struttura di un numero in virgola mobile . . . 541
Formati base e codifiche . . . 543
Regole di arrotondamento . . . 543
Errore relativo dovuto ad arrotondamento . . . 544
Eccezioni . . . 544
Operazioni specificate dallo standard IEEE 754-1985 . . . 545
Lo standard IEEE 854-1987 . . . 546
La revisione dello standard, IEEE 754-2008 . . . 546
13.3 I coprocessori matematici 80287 ed 80387 . . . 549
Intel ® 80287 . . . 549
Descrizione dell’NPX 80287 . . . 551
Implementazione dello standard PIEEE-754 . . . 557
Intel ® 80387 . . . 557
13.4 I coprocessori Weitek Abacus per 80386 ed 80486 . . . 563
Weitek Abacus 4167 . . . 565
Weitek Abacus 3167 . . . 566
Weitek Abacus 1167 . . . 569
14 Capitolo 14 L’80486 cpu con controllore di memoria cache, fpu integrati 573 14.1 L’ambiente di sviluppo per il progetto della cpu 80486 . . . 573
Introduzione . . . 574
Architettura dell’80486 . . . 575
14.2 Advanced Programmable Interrupt Controller 82489DX . . . 583
14.3 Modelli e varianti . . . 585
Intel ® i486DX . . . 586
Intel ® i486SX . . . 586
Intel ® i486SX2 . . . 586
Intel ® i486GX . . . 587
Indice
Intel ® i486DX2 . . . 587
Intel ® i486SL . . . 587
Intel ® i486SL-NM . . . 587
Intel ® i486DX4 . . . 587
Intel ® RapidCAD . . . 587
Intel ® OverDrive . . . 587
15 Capitolo 15 Il processore Pentium
®593 Introduzione . . . 593
15.1 Descrizione dell’architettura . . . 594
System Management Mode . . . 598
Esecuzione superscalare . . . 598
Predizione delle diramazioni . . . 598
Unità in virgola mobile . . . 601
Divisione a cifre ricorrenti . . . 601
Memorie cache per dati ed istruzioni . . . 604
Sottosistema di memoria centrale . . . 604
Piedinatura e specifiche elettriche D.C Pentium 60 e 66 MHz . . . 604
Procedura di selftest . . . 605
15.2 Varianti della microarchitettura P5 . . . 606
P5 . . . 606
P54C . . . 607
P54CQS . . . 607
P54CS . . . 607
P24T . . . 607
Tillamook . . . 608
15.3 Il bug dell’istruzione assembly FDIV . . . 608
Analisi delle cause hardware interne alla fpu del processore Pentium . . . 610
15.4 La variante Pentium MMX con insieme di istruzioni SIMD . . . 611
Tipi dato . . . 612
Insieme di istruzioni . . . 612
16 Capitolo 16 Architettura Intel
®P6 con esecuzione fuori ordine 617 Introduzione . . . 617
16.1 Il Pentium Pro . . . 620
Il bug nella floating point unit . . . 620
La perdita di prestazioni con codice a 16 bit . . . 620
Architettura interna ed esecuzione fuori ordine . . . 621
Bus esterno di tipo transazionale e multiprocessing simmetrico . . . 623
Memorie cache di primo e secondo livello . . . 625
Sistema di memoria centrale nel Pentium Pro . . . 630
Il sistema di aggiornamento del microcodice nel Pentium Pro . . . 633
Contatori di prestazioni . . . 634
Piedinatura Pentium Pro . . . 634
Chipset di supporto al processore Pentium Pro . . . 635
Il Pentium II Overdrive . . . 638
16.2 Il Pentium II . . . 639
Introduzione . . . 639
Varianti . . . 640
Ottimizzazione per il codice a 16 bit . . . 644
Multiprocessing con Pentium II . . . 645
Logica di selezione delle tensioni di alimentazione . . . 645
Lo slot 1 . . . 646
Chipset di supporto Intel ® 440BX . . . 647
Il processo tecnologico P856 . . . 648
16.3 Il Pentium III . . . 649
Introduzione . . . 649
Nuclei di processore Pentium III . . . 649
Unità di esecuzione nel Pentium III . . . 653
Insieme di istruzioni SSE . . . 655
Mobile Pentium III . . . 659
Pentium III-M, l’antesignano del Pentium M . . . 660
17 Capitolo 17 L’architettura NetBurst
®alla base del Pentium 4 665 Introduzione . . . 665
17.1 La microarchitettura del Pentium 4 . . . 666
Validazione formale del processore Pentium 4 . . . 666
Descrizione schema a blocchi nucleo Willamette . . . 668
Pipeline nell’architettura NetBurst . . . 672
17.2 Nuclei di cpu Pentium 4 . . . 674
Willamette . . . 674
Northwood . . . 676
Gallatin (Pentium 4 Extreme Edition) . . . 677
Prescott . . . 678
Il nodo tecnologico dei 90 nm . . . 682
Prescott 2M (Extreme Edition) . . . 684
Cedar Mill . . . 685
17.3 Il Pentium 4-M . . . 686
Il processore Mobile Pentium 4 . . . 687
17.4 Cpu Celeron basate su NetBurst . . . 687
17.5 Il Pentium D primo processore a doppio nucleo di Intel ® . . . 688
Pentium D con nucleo Presler . . . 689
Pentium D extreme edition con nucleo Smithfield XE . . . 690
Pentium D extreme edition con nucleo Presler XE . . . 690
Indice 18 Capitolo 18
Pentium M e Celeron M processori mobile 693
La genesi della cpu Banias . . . 693
Caratteristiche tecniche . . . 694
18.1 Il nucleo Dothan . . . 699
18.2 Chipset di supporto i855PM/GM/GME . . . 699
18.3 Piattaforma Centrino ® basata su cpu Pentium M . . . 701
18.4 Pentium M enhanced . . . 701
Core Duo . . . 702
Core Solo . . . 703
Caratteristiche del nucleo Yonah . . . 703
19 Capitolo 19 Microarchitettura Core
®707 Introduzione . . . 707
Il nodo tecnologico dei 65 nm . . . 707
19.1 Innovazioni microarchitetturali . . . 709
Predizione dei salti . . . 713
Il loop buffer . . . 714
19.2 Pentium Dual Core . . . 714
Nucleo Allendale . . . 714
Nucleo Wolfdale 3M . . . 714
19.3 Merom processore mobile Core 2 Duo . . . 715
La piattaforma Centrino Pro . . . 716
19.4 Insieme di istruzioni SIMD SSSE3 . . . 716
19.5 Cpu Celeron con microarchitettura Core . . . 717
19.6 L’evoluzione microarchitetturale Penryn a 45 nm . . . 718
Miglioramento nell’efficienza energetica . . . 720
Il nodo tecnologico dei 45 nm . . . 721
Piattaforma Montevina alla base di Centrino 2 . . . 723
19.7 La variante Core ® 2 Extreme . . . 723
20 Capitolo 20 Nehalem, il capostipite di una nuova famiglia di microarchitetture 727 20.1 Il marchio Core i7 . . . 727
Filosofia progettuale della nuova microarchitettura . . . 727
Socket 1366 . . . 728
Socket LGA-1156 . . . 729
20.2 Microarchitettura Nehalem . . . 729
La fase di sviluppo tramite SystemVerilog . . . 729
Innovazioni microarchitetturali . . . 732
Chipset X58 . . . 745
Il nucleo Lynnfield . . . 747
Il nucleo Arrandale . . . 750
Cpu Nehalem con nucleo Clarksfield per impieghi mobile . . . 752
20.3 Westmere, il die-shrink a 32 nm . . . 753
La Direct Media Interface . . . 754
Il nodo tecnologico del processo a 32 nm . . . 756
Platform controller hub Ibex Peak . . . 757
20.4 La variante Core ® i7 Extreme . . . 758
20.5 Sandy Bridge . . . 762
Introduzione . . . 762
Modelli di cpu . . . 764
Innovazioni microarchitetturali . . . 765
Gestione del risparmio energetico in Sandy Bridge . . . 770
Il chipset Cougar Point . . . 772
20.6 La fase tick, Ivy Bridge . . . 778
Introduzione . . . 778
Il chipset Panther Point . . . 781
Thermal design power configurabile . . . 782
Impiego di transistor Tri-gate da 22 nm . . . 782
Gpu HD 2500 ed HD 4000 . . . 785
Il generatore di numeri casuali . . . 785
20.7 Haswell . . . 789
Introduzione . . . 789
Haswell un SoC modulare . . . 791
La microarchitettura Haswell . . . 794
Processo tecnologico a 22 nm Tri-gate low ed ultra low power . . . 806
Il chipset Lynx Point . . . 808
20.8 Broadwell . . . 814
Introduzione . . . 814
Il processo tecnologico a 14 nm . . . 818
Il processore Core ® M . . . 820
Processori Broadwell per desktop . . . 823
Processori Broadwell U per impieghi mobile . . . 823
Il PCH-LP nei processori Broadwell . . . 825
Platform controller hub di nona generazione . . . 826
20.9 Skylake . . . 827
Introduzione . . . 827
Caratteristiche base . . . 828
Migliorie apportate al motore di esecuzione fuori-ordine . . . 830
Gpu di nona generazione . . . 831
Processori Skylake desktop . . . 833
Processori Skylake mobile . . . 834
Il processore Core ® M di seconda generazione, Skylake Y . . . 836
Chipset Sunrise Point serie 100 . . . 836
20.10Kaby Lake . . . 836
Introduzione . . . 836
Indice
Chipset Union Point serie 200 . . . 840
20.11Coffe Lake, processori Core i7 di ottava generazione . . . 841
Introduzione . . . 841
Processori Coffe Lake per impieghi mobile . . . 842
Platform Controller Hub serie 300 . . . 843
20.12Cannon Lake . . . 843
Introduzione . . . 843
Processo P1274 da 10 nm . . . 844
21 Appendici. 849 21.1 La strategia Tick-Tock . . . 849
La fase Tick . . . 849
La fase Tock di sviluppo di una nuova architettura . . . 850
La nuova fase Process-Architecture-Optimization . . . 850
21.2 Il barrel shifter . . . 851
21.3 Classificazione tipologie memorie RAM . . . 852
Fast Page Mode DRAM . . . 852
EDO . . . 853
SDRAM . . . 853
DDR SDRAM . . . 854
DDR2 SDRAM . . . 854
DDR3 SDRAM . . . 855
DDR4 SDRAM . . . 855
RDRAM . . . 858
Error-correcting Code (ECC) . . . 859
21.4 Memorie statiche SRAM . . . 862
Celle a 4 transistor . . . 863
Cella con transistor a film sottile, TFT . . . 864
21.5 Memorie di massa a nastro perforato . . . 864
La telescrivente di Murray e la modifica al codice Baudot . . . 866
L’evoluzione del nastro delle telescriventi . . . 867
Il nastro perforato per i calcolatori . . . 867
21.6 Le memorie a nucleo magnetico . . . 868
21.7 Struttura a bande delle giunzioni a semiconduttore pn. . . . 873
21.8 Moltiplicatori binari . . . 875
Moltiplicatore Ripple-Carry ad array . . . 875
Moltiplicatore Carry-Save . . . 876
Moltiplicatore di Wallace . . . 876
Il moltiplicatore binario, parallelo Dadda . . . 879 21.9 Crossbar switch
. . . 882 21.10 Intel ® 64 . . . 884 Storia del set di istruzioni a 64 bit . . . 884 Intel ® 64 l’implementazione x86-64 . . . 884 21.11 La tassonomia di Flynn . . . 885 Limiti della architettura di Von Neumann . . . 888 21.12 La legge di Amdahl per la valutazione delle prestazioni di un calcolatore
. . . 889 Scalabilità
. . . 890 Formulazione della legge di Amdahl
. . . 890 21.13 Le scale di integrazione . . . 890 21.14 Le memorie a tamburo magnetico . . . 891 21.15 Il transistor MOSFET
. . . 894 Funzionamento
. . . 895 MOSFET a canale p ad arricchimento
. . . 898 Transistore MOSFET a svuotamento
. . . 899 21.16 Il bus Intel ® Multibus I
. . . 900 Bus Master
. . . 901 Bus Slave
. . . 901 Moduli ibridi
. . . 902 Architettura di computer a scheda singola SBC . . . 902 Il bus Multibus® II (IEEE 1296) . . . 903 21.17 Il sistema operativo CP/M . . . 904 21.18 Memorie programmabili e cancellabili EPROM (Erasable Programmable
Read Only Memory)
. . . 906
21.19 Socket per cpu . . . 910
Lista dei socket utilizzati dai processori Intel ® . . . 910
21.20 La decodifica degli indirizzi di memoria in un sistema a microprocessore 914
Esempio di decodificatore indirizzi 8088 con porta NAND . . . 914
21.21 Programmi di benchmarking Whetstone e Dhrystone . . . 914
Indice
21.22 Bus ISA, Vesa Local Bus, PCI/PCI-X e PCI Express . . . 915
Introduzione . . . 915
L’Industry Standard Architecture . . . 917
Il Vesa Local Bus . . . 918
Il bus PCI . . . 918
L’evoluzione PCI-X . . . 920
Architettura PCI Express . . . 921
La gestione degli errori . . . 925
Gestione delle interruzioni . . . 925
Gestione energetica . . . 926
Meccanismo di rimozione ed inserzione a caldo . . . 927
21.23Glossario . . . 927
21.24Prefissi per i multipli binari . . . 929
Indice analitico
80C187, 424 432, 434 8008, 351
8080/8080A, 361 8085, 367
8086, 381 8088, 410 8089, 393 8231A, 372 8237, 373
80186/80188, 415 80286, 467
80386, 493 80387, 557 80387DX, 558 80486, 573 80860, 450
82385 cache controller, 509 A
abaco, 44
Ada Augusta Byron, 67 AGP, 647
Alan Turing, 84 albero di Wallace, 656 algoritmo CORDIC, 536
Algoritmo di divisione SRT, 602 algoritmo SRT, 610
Amdahl, 211, 889 AN/FSQ-7, 167 Andrew Grove, 239 A.P.E, 564
Atanasoff-Berry, 138
B
BiiN, 462 BINAC, 154 Blaise Pascal, 57 Bomba, 86
bootstratp load, 319 bus watching, 890 Busicom, 321 C
Calcolatore di Antikythera., 38 cartuccia SEC, 644
Charles Babbage, 64 Colmar, 68
contatto sepolto, 319 Curt Herzstark, 70 D
damascene, 269 E
EDVAC, 161 EMC, 566 ENIAC, 146 Enigma, 110 EOS, 721, 756 F
Faggin, 315
Fairchild 3708, 322 Federico Faggin, 240 Fermi, 874
FIVR, 821 G
Galileo, 46
Gene Amdahl, 210 Giovanni Poleni, 53 Gordon Moore, 238 H
Harvard, 351
Harvard Mark I, 142 I
i860, 447 i960, 461 i4004, 324 i4040, 339 iAPX, 495 iAPX 432, 429 IAS, 155 ILLIAC I, 157
Industry Standard Architecture, 917 Integrated electronics, 235
Ishango, 29 J
Jaquard, 864 Jean Hoerni, 316 JEDEC, 624, 771
John Von Neumann, 887 JOHNNIAC, 156
K
Konrad Zuse, 88 L
Lebombo, 29 Leibniz, 59
Lexicon Branding, 593 M
MainSail, 467 MANIAC, 164
Maurice V. Wilkes, 136 MIPS VAX, 582
Moltiplicatore binario Dadda, 879 Moltiplicatore di Wallace, 876 Moore, 245, 271
MOSFET, 316 Multibus I, 900
Museo storico delle macchine per il cal- colo, 215
N
Nehalem, 729 Nepero, 49 NetBurst, 665 O
Optane, 841 ORDVAC, 157 P
P6, 617 P856, 648 PCI, 918 Pentium 4, 665 Pentium II, 639 Pentium II M, 643
Pentium II Overdrive, 638 Pentium III, 649
Pentium III-M, 660 Pentium Pro, 620 personal computer, 212 planetario di Archimede, 41 Plankalkül, 100
PLL nell’80486DX-50, 576 predittore bimodale, 698 protocollo Illinois, 604 Q
QPI, 734 R
RISC, 447
Robert Noyce, 237 root complex, 924 Rubylith, 333 S
SEAC, 164 Selectron, 156 Socket 4, 605 Socket 8, 618 SSEC, 171
Struttura a bande delle giunzioni, 873
Indice analitico
SystemVerilog, 731 T
Tejas, 679 thyratron, 120 TLB, 458 Tomasulo, 830 Trojan Horse, 482 tubi Williams, 124 TX-0, 168
U
UniDIMM, 857 UNIVAC I, 158 V
Verilog 2005, 731 Vesa Local Bus, 918 Von Neumann, 351 W
Weitek Abacus, 563 Whetstone, 582 Whirlwind, 165
Wilhelm Schickard, 48 William Gunning, 624 Y
Yonah, 702
1 Capitolo 1 Introduzione
Il presente lavoro di tesi di laurea ha come nucleo principale, l’analisi della prima "legge" di Moore riferita alla evoluzione dei processori Intel®, inizialmente in calcolatrici come la Busicom 141-PF (i4004) e poi a sistemi di calcolo automatico di tipo desktop o con alimentazione elet- trica, tramite batterie. L’analisi retrospettiva viene applicata alla storia del calcolo automatico dagli albori del concetto umano di calcolo, per giungere alle soglie dell’anno emblematico, il 1965 nel quale venne formulata da Gordon E. Moore la sua più famosa previsione empirica, basata sulla embrionale tecnologia del circuito integrato che nel 1959 ebbe una data cardine.
L’evoluzione delle capacità di calcolo e di elaborazione dati dalle prime macchine da calcolo
meccaniche, passando per i primi calcolatori elettromeccanici a relè di Konrad Zuse, proseguen-
do con i primi calcolatori elettronici a transistor costruiti oltre che in Inghilterra e Stati Uniti
d’America anche in Italia, con la famiglia ELEA Olivetti, ha subito un aumento esponenzia-
le. Tale andamento di tipo esponenziale viene messo in evidenza anche da emeriti informatici
come lo statunitense Raymond Kurzweil anche nel suo noto saggio del 2005 "La Singolarità è
vicina". Proprio il 2005 costituisce la data che segna la fine della corsa all’aumento puro delle
frequenze di funzionamento per i processori Intel®, con l’inizio dell’integrazione di un numero
sempre maggiore di nuclei di elaborazione. Aumento sostenuto proprio dalla capacità dell’in-
dustria dei semiconduttori di integrare un numero sempre maggiore di transistor nel rispetto di
quanto predetto cinquanta anni prima dall’allora direttore delle ricerche in Fairchild, Gordon
E. Moore. Nel corso dell’elaborato vengono messi in evidenza i limiti tecnologici (dissipazione
di potenza termica) e dovuti ai sistemi di litografia che porranno problemi per il mantenimento
della validità della legge di Moore. Intel® a questo proposito nel corso degli anni ha introdotto
importanti innovazioni tecnologiche come, l’utilizzo di materiali dielettrici ad elevata costante
dielettrica, la tecnologia dei transistor MOSFET tridimensionali denominata Tri-Gate utiliz-
zata nel 2011 per la famiglia di processori Ivy Bridge. Vengono approfondite le prospettive
relative a tecnologie e ricerche per dispositivi che possano servire da ponte tra i dispositivi
CMOS e la nanoelettronica, incluse possibili applicazioni del grafene alla costruzione di FET
caratterizzati da elevatissima mobilità dei portatori di carica elettrica. Nelle appendici in coda
all’elaborato vengono meglio connotati e specificati, anche nel dettaglio, concetti o riferimenti
riportati altrove nel testo principale. Per la parte dedicata alle cpu Intel® laddove possibile
sono stati riportati i dati riguardanti il numero di transistor integrati (spesso citati dalle stes-
se fonti originarie come dato stimato) e pagine estratte dai data sheet Intel®. La previsione
effettuata da Gordon E. Moore nel 1965 sul numero di componenti integrabili per costo mini-
mo, singolo chip di silicio materiale semiconduttore ancora largamente utilizzato dall’industria,
rimane tutt’ora valida anche se con alcuni cenni di rallentamento e con limite di estensione
temporale, situato dalla fisica quantistica attorno al 2036. Si inserisce come evento emblema-
tico nella storia del calcolo automatico che ha conosciuto la realizzazione di macchine all’inizio
totalmente meccaniche, poi utilizzando come componenti circuitali di commutazione relè, val-
vole termoioniche, transistor. Il suo significato è oltre che prettamente di ordine tecnologico,
anche riguardante l’economia moderna basata sull’elettronica come motore principale.
2 Capitolo 2
Il concetto di numero e la storia del calcolo automatico
2.1 La storia dei numeri
Le origini del concetto di numero
Le origini del concetto, umano, di numero non sono ben documentate. Le prime tracce di qualcosa che si suppone sia un conteggio risalgono a più di 35000 anni fa, e sono co- stituite da ossa intagliate con tacche che si pensa indichino un qualche tipo di conteggio.
Il reperto più antico è forse l’osso di Lebombo , circa del 35000 a.C. , un osso che riporta
Figura 2.1: Osso di Lebombo.
29 tacche distinte L’oggetto è stato rinvenuto nel 1970 nei lavori di scavo nella "Border Cave", una grotta con reperti del periodo paleolitico che si trova sui monti Lebombo,
Figura 2.2: Monti Lebombo, sud Africa.
nel nord della provincia del KwaZulu-Natal nel Sudafrica al confine con lo Swaziland.
Uno dei reperti più famosi è l’osso di Ishango esso viene oggi conservato a Bruxelles,
al 19° piano dell’Istituto Reale delle Scienze Naturali del Belgio. L’osso, che risale al
paleolitico superiore (20000 a.C. – 18000 a.C.), è un perone di babbuino di colore scuro,
con una scaglia di quarzo innestata ad un’estremità. Presenta una serie di tacche incise e
Figura 2.3: Osso d’Ishango.
suddivise in tre righe. Tali tacche, non sono state incise a scopo decorativo, ma si pensa siano dovute alla necessità di sviluppare un sistema numerico. La somma dei numeri sul- le righe dà 60 e 48, entrambi numeri divisibili per 12. Ciò che si può supporre, anche se non sappiamo datare con precisione quando siano apparsi i primi esempi di "conteggio"
nella storia dell’umanità, è che in effetti ben prima del concetto di numero, l’umanità abbia elaborato la "capacità di conteggio". La necessità di effettuare un qualche tipo di conteggio si è affermata con l’evolversi delle attività umane più complesse, come l’alle- vamento di animali (ad esempio con la necessità di verificare che un gregge portato al pascolo rientrasse al completo), o l’agricoltura (necessità di una forma di "calendario", conteggio delle "lune" ad esempio, per sapere quando era tempo di seminare o di eseguire altre operazioni agricole), oppure con l’inizio di una pur semplice economia di scambio, basata ad esempio sul baratto. La cosa fondamentale è quindi quella di istituire una cor- rispondenza biunivoca, alla base del contare ad esempio tra quantità di tacche realizzate su un supporto e quantità di pecore. Nel considerare questa corrispondenza biunivoca fra (ad esempio) pecore e tacche su un bastone, non si costituisce solo una relazione fra insiemi; le tacche vengono infatti usate come rappresentazioni simboliche. Ci sono quin- di degli oggetti concreti (tacche, sassi, conchiglie) che assumono un significato astratto, considerati non per se stessi in quanto tali, ma come simbolo per "altro"; è questo un passo decisivo nell’evoluzione culturale umana, il passo che porterà sia alla nascita del sistema dei numeri che anche alla scrittura, con l’invenzione di simboli. In relazione al concetto di numero due sono le sue peculiarità caratteristiche che lo definiscono ovvero il concetto di "cardinalità" e di "ordinalità". Con il primo si intende rappresentare quanti elementi vi siano in un dato insieme mentre con "ordinalità" si intende una relazione di posizione all’interno di una precisa sequenza numerica. Nel linguaggio naturale nasce quindi il concetto di aggettivo numerale proprio per connotare il numero di elementi di un dato insieme.
Il concetto di base di numerazione ed i primi strumenti di calcolo
L’uso di una base per contare si è sviluppato in modi diversi in diverse parti del mondo;
si rintracciano in varie popolazioni il contare con base 5, oppure 20 (Maya, ad esempio)
o 12. I resti di queste numerazioni rimangono nelle varie lingue; resti di un conteggio in
base venti sono le parole francesi come Quatrevingts = 80 oppure Quatrevingts-dix =
90, o score = 20 in inglese. Resti di un conteggio per dozzine sono la parola Grosse (in
2.1 La storia dei numeri
francese, anche in italiano commerciale "grossa") per indicare 144. Presso i Sumeri era in uso la base 60, della quale ci rimane l’uso nel misurare gli angoli ed il tempo (minuti, secondi), dovuto al fatto che i popoli della Mesopotamia sono stati i più grandi cultori dell’Astronomia nell’antichità. I metodi di calcolo si sono sviluppati parallelamente ai metodi di rappresentazione numerica, anche se la capacità di eseguire operazioni è cer- tamente più recente. Uno dei primi strumenti di calcolo è stato il corpo umano stesso ed in particolare le mani con le quali, è possibile contare fino a 28 utilizzando la suddivi- sione in falangi delle dieci dita. Tra i più antichi strumenti di calcolo vi furono i gettoni (analoghi alle fiches in uso negli odierni casinò). L’uso dei gettoni da parte di Sumeri e Elamiti
1(che abitavano gli odierni Iraq ed Iran) risale circa al 3000 a.C. Erano fatti di argilla essiccata e la loro forma stabiliva il loro valore.
Per quanto riguarda le operazioni:
le somme e sottrazioni venivano eseguite in modo ovvio e cioè aggiungendo o togliendo gettoni; nel caso della sottrazione poteva essere necessario prima parcellizzare un gettone di valore maggiore in gettoni di valore minore. La moltiplicazione veniva eseguita trami- te somme ripetute mentre nel caso della divisione essa poteva essere portata a termine tramite parcellizzazione di gettoni e divisione in mucchietti: nel caso della divisione di 60 per 3 ad esempio si doveva parcellizzare un grosso cono (valore 60) in sei bilie da 10 che si potevano dividere in tre mucchietti uguali ognuno contenente 2 bilie.
La scrittura dei numeri
Una delle più antiche forme di scrittura dei numeri fu costituita da tavolette di argilla sulle quali venivano disegnate le forme dei gettoni da parte dei sumeri
. Gli esempi a fianco mostrano degli "archivi", in cui era segnata la quantità di diversi oggetti in varie caselle, (secondo millennio a.C.). Le cifre venivano tracciate tramite appositi "calami": la punta del calamo
2serviva per inci-
1Elam è il nome convenzionale con cui si fa riferimento ad una civiltà sviluppatasi dal III al I millennio a.C. nell’area corrispondente all’attuale Iran occidentale, nelle regioni del Khuzistan e del Fars.
2Il calamo, dal greco kàlamos, è un pezzo di canna o giunco con un’estremità appuntita per potersene servire per la scrittura. Venne sostituito dalla penna d’oca progressivamente, tra il VI e il IX secolo.
dere disegni sull’argilla, mentre le cifre si ottenevano appoggiando il fondo del calamo;
facendolo verticalmente si otteneva un cerchio (grande o piccolo) che rappresentava le sfere di valore 10 o 3600; facendolo con il calamo obliquo si otteneva una tacca che ricor- dava i coni (piccoli o grandi) di valore 1 o 60; infine se sui simboli di cono o sfera grande si tracciava un cerchio piccolo, si ottenevano disegni che ricordavano i coni o le sfere tra- forati, di valore 600 o 36000. L’utilizzo del calamo per l’incisione sulle tavolette d’argilla:
Altra forma di scrittura numerica più antica sono i geroglifici egizi, anch’essi risalenti a prima del 3000 a.C., nei reperti più antichi. I simboli hanno valori fissi e la scrittura è di tipo puramente additivo su base 10.
In seguito la scrittura geroglifica venne progressivamente sostituita dallo ieratico, sempre additivo su base 10, che utilizzava meno simboli per la rappresentazione dei numeri.
Il più esteso papiro egizio di natura matematica giunto fino a noi è il papiro di Rhind, si tratta di un papiro largo circa 30 cm e lungo circa 5,46 m conservato al British Museum.
Era stato acquistato nel 1858 in una città balneare sul Nilo da un antiquario scozzese,
Henry Rhind, e perciò è conosciuto spesso con il no me di papiro di Rhind o, meno
frequentemente, di papiro di Ahmes in onore dello scriba che lo aveva trascritto intorno
2.1 La storia dei numeri
al 1650 a.C. Lo scriba ci informa che il contenuto è tratto da un esemplare risalente al Regno Medio e composto fra il 2000 e il 1800 a.C. E’ un papiro molto particolare ed interamente matematico che contiene al suo interno vari problemi geometrici di volume, una rappresentazione del teorema di Pitagora, vari tipi di frazioni (di cui gli egiziani erano specialisti) e vari indovinelli. Le formule contenute nel papiro Rhind sono anche il primo caso documentato di un tentativo di "quadrare il cerchio", ossia di costruire un quadrato con la stessa area del cerchio.
Altre forme e notazioni di scrittura numeriche, importanti per la cultura delle popo- lazioni nel Mediterraneo furono quella greca e quella romana.
Le notazioni greche hanno avuto tre stadi essenziali: per prima fu adottata una no- tazione additiva in base dieci pura (come quella egizia), poi quella detta acrofoni- ca ( il simbolo del numero usava la prima lettera del nome), con base ausiliare 5
. Nella figura a fianco i simboli richiamano i nomi dei numeri: 5 = Penta, 10 = Deka , 50 = ,100 = Hekaton, 500 = Pentehekaton, 1000
= Khilioi, 5000 = Pentekhilioi , 10000 = Myrioi, 50000 = Pentemyrioi.
Con la scrittura ionica, sempre additiva ed in base dieci, vengono utilizzate invece tutte
le lettere dell’alfabeto greco, assegnando ad ognuna di esse un valore numerico giungendo
così ad una più elevata efficacia rappresentativa, aumentando nel contempo il numero dei
simboli usati. Da notare che sono presenti tre lettere arcaiche scomparse dall’uso comune
e che rappresentano i numeri 6 (stigma, variante grafica del digamma), 90 (koppa), 900
(sampì o san) e che dopo un primo periodo in cui si usavano lettere maiuscole, si passò
a quelle minuscole: .
Combinando questi simboli si arrivava a scrivere fino al numero 999; per proseguire con le migliaia sino a 9000 si usava il segno delle unità con un apice a sinistra (1000 ad esem- pio veniva scritto come ’α; 2000 come ’β ecc.). Per le decine di migliaia veniva impiegata la lettera M (iniziale di myrioi = miriade) alla quale si sovrapponeva il numero delle de- cine di migliaia. Le scritture dei numeri che si affermarono nell’area mediterranea sono tutte puramente additive ed in base dieci; lo erano infatti anche le scritture numeriche di Fenici, Ebrei e quelle di altre popolazioni.
I romani
Il sistema di numerazione romano è un sistema di numerazione additivo, ovvero ad ogni simbolo è associato un valore e il numero rappresentato è dato dalla somma dei valori dei simboli (che assomigliano a delle lettere e che pertanto possono essere definiti "simboli letterari"). Il sistema comunemente conosciuto non è tuttavia quello utilizzato nell’antica Roma, ma la sua modifica effettuata nel Medioevo quando ci si accorse che l’originale risultava troppo lungo per descrivere alcuni numeri. Il sistema originale era additivo, cioè i valori dei simboli venivano solo addizionati e mai sottratti. Di conseguenza i simboli I, X, C ed M potevano essere ripetuti in uno stesso numero fino a quattro volte. Questo viene evitato con la riforma medioevale, con la quale viene introdotta la possibilità di sottrarre il valore di una cifra a quella successiva. I simboli utilizzati ed i valori ad essi associati erano i seguenti: I = 1 ; V = 5 ; X = 10 ; L = 50 ; C = 100 ; D = 500 ; M = 1000.
Sopralineando o sottolineando una lettera il suo valore originale viene moltiplicato per
1000; i numeri rappresentano nell’ordine il numero 5000, 10000, 50000 e
100000, mentre se si borda una lettera con due linee verticali ai fianchi ed una linea
orizzontale soprastante, il suo valore originale viene moltiplicato per 100.000; i simbo-
li: rappresentano rispettivamente i numeri 500000, 1000000, 5000000,
10000000, 50000000 e 100000000. I numeri romani ebbero origine dall’intaglio di tacche
successive su legno od altri materiali per incisione. L’I è chiaramente una tacca, mentre
V rappresenta probabilmente una mano aperta e X due mani aperte speculari. In realtà
non erano segni per fare operazioni ma semplici abbreviazioni per esprimere e ricorda-
2.1 La storia dei numeri
re numeri. L’intaglio doveva affrontare il problema della percepibilità diretta a colpo d’occhio dei numeri fino a 4, per cui il 5 necessitava di un altro simbolo. Nel sistema di numerazione romano fu introdotta la notazione sottrattiva con la quale il numero 4 veniva indicato come IV e non come ripetizione per quattro volte del simbolo I.
Il sistema posizionale
Nel sistema posizionale di rappresentazione numerica ogni numero si esprime come la somma dei prodotti di ciascuna cifra per la base elevata all’esponente che rappresenta la posizione della cifra, ad esempio il numero 221 in base 10 viene così rappresentato:
221 = 2 ∗ 10
2+ 2 ∗ 10
1+ 2 ∗ 10
0.
I primi esempi noti di una scrittura numerica che sia basata sui seguenti elementi:
- notazione posizionale - base dieci
- presenza dello zero
- nove simboli (cifre) oltre lo zero
risalgono al quinto secolo d.C. (nel trattato indiano di cosmologia Lokavibhaga, 485 d.C.); questo metodo si diffuse piuttosto rapidamente in India e in Indocina, e già dal secolo successivo si trovano documenti sull’uso di tale cifre per eseguire i conti.
Si deve al matematico, geografo, astronomo persiano Ab¯ u Jafar Muhammad ibn M¯ us¯ a al-Khw¯ arizm¯ı
con la sua opera dal titolo tradotto in latino "Algoritmi de numero In- dorum", l’introduzione della notazione posizionale nel vicino e medio oriente oltre che in Europa
3.
Le tracce di uso della numerazione indo-araba in Europa sono comunque scarse fino
al XIII secolo, quando il matematico pisano Leonardo Fibonacci (che
3Nel decimo secolo, il monaco francese Gerbert d’Aurillac apprende il nuovo metodo dai mori di Spagna ed inizia a introdurlo in occidente, specialmente dopo esser divenuto Papa nel 999, col nome di Silvestro II
aveva viaggiato molto fra gli arabi) scrisse il "Liber Abaci", che illustra il sistema posi- zionale ed il suo uso, e che fu il testo che più contribuì alla sua introduzione sistematica in Europa.
L’utilizzo delle cifre di origine indiana richiede di avere una cifra per rappresentare il numero zero. In una notazione additiva, non c’è alcuna necessità di avere un simbolo per lo zero, ma in una posizionale ogni cifra rappresenta il numero delle decine o centinaia o altre potenze del dieci (se la base è dieci). Inizialmente e nella scrittura babilonese ed in quella indiana, lo "zero" indicava solo l’assenza di cifre in una data posizione; in seguito con la teoria degli insiemi allo "zero" venne associato il concetto di cardinalità dell’insieme vuoto ovvero un insieme con nessun elemento.
Anche i cinesi usavano una numerazione posizionale in base dieci, ed arrivarono ad usare lo zero (di derivazione indiana) verso l’ottavo secolo d.C. Qualche secolo dopo se ne trovano le tracce anche nella numerazione Maya. L’uso fattone però da babilonesi, cinesi e Maya fu limitato alla rappresentazione dei numeri, ed è invece nella sua introduzione da parte degli indiani, con un’efficiente notazione posizionale, che lo zero diventa parte di una scrittura che è anche strumento di calcolo.
Numeri negativi e frazioni
Uno dei primi testi che trattava diffusamente i numeri negativi fu l’ "Algebra" di Rafael Bombelli (1627), che indicava con "p." e "m." il più ed il meno; questa notazione diven- ne sempre più accettata, fino ad essere usuale fra i matematici del diciottesimo secolo.
Per quanto riguarda i numeri razionali
4, Uno dei primi documenti nel quale viene fatta menzione a problemi di calcolo inerenti le divisioni tra numeri è proprio il papiro egi- zio di Rhind. Gli egizi utilizzavano frazioni del tipo
1ned esprimevano le altre quantità frazionarie come combinazioni di questa forma: ad esempio
35=
12+
101. I babilonesi erano esperti nell’uso delle frazioni e l’uso della base 60 permetteva di esprimere facilmente molte frazioni del tipo
1nove n sia un divisore della base come multipli di
601del tipo cioè:
12=
3060,
301=
602.
Il computo con i numeri razionali rimase una cosa piuttosto complicata anche dopo la diffusione della notazione posizionale indiana a base 10, in quanto l’uso dei numeri decimali al posto delle frazioni non viene introdotto che molto più tardi. Infatti, seb- bene nel mondo arabo se ne trovi già traccia attorno al 900 d.C., in Europa è solo nel 1585 che il matematico belga Simon Stevin scrive un libretto: De Thiesme (in francese:
La Disme, e cioè il metodo di rappresentazione decimale), in cui spiega come scrivere e fare le operazioni sui numeri non interi usandone la rappresentazione decimale. Egli considerava questa "una meravigliosa invenzione", semplice ed efficace per evitare penosi conti con i "numeri rotti" (le frazioni). Un grande impulso all’uso della rappresentazione decimale venne con l’adozione del sistema metrico decimale per i pesi e le misure (metri, litri, chili, che sostituiscono le vecchie misure locali in piedi, tese, braccia, galloni, once, ecc...). Il sistema fu adottato in Francia dopo la Rivoluzione, ed "esportato" nel resto
4In matematica, un numero razionale è un numero ottenibile come rapporto tra due numeri interi, il secondo dei quali diverso da 0. Ogni numero razionale quindi può essere espresso mediante una frazione ab, di cui a è detto il numeratore e b il denominatore.
2.2 Classificazione delle macchine da calcolo
d’Europa con le conquiste napoleoniche (ad esclusione forse di alcuni paesi anglosassoni come l’Inghilterra).
La storia dei numeri reali
Fino alla metà dell’Ottocento il concetto di numero reale coincideva con il concetto di misura di grandezze ed era fondato sull’intuizione geometrica della continuità della retta.
Si fa risalire a Pitagora (500 a.C.) la scoperta che esistono grandezze, come ad esempio la diagonale e il lato del quadrato, che sono incommensurabili, cioè che non possono essere contemporaneamente multipli interi di una terza grandezza che venga usata come unità di misura. Non ci furono progressi significativi nella conoscenza dei numeri reali fino al Cinquecento, quando, con l’introduzione del formalismo algebrico per opera di R. Bombelli (Algebra, 1572), fu possibile definire i rapporti di grandezza e le operazioni algebriche mediante simboli. La costruzione dei numeri reali fu uno dei progressi più importanti del pensiero matematico del diciannovesimo secolo. Prima del tardo secolo diciannovesimo infatti non erano state logicamente definite nemmeno le semplici pro- prietà dei numeri razionali positivi e negativi e dei numeri irrazionali.
Il 1872 fu un anno molto importante per l’analisi infatti in quell’anno furono dati contri- buti decisivi all’aritmetizzazione dell’analisi da parte di cinque matematici: il francese H.C.R. (Charles) M´eray (1835-1911), originario della Borgogna, i tedeschi Karl Weier- strass (1815-1897) dell’Università di Berlino, il suo allievo H.E. Heine (1821-1881) di Halle, George Cantor (1845-1918) anch’egli di Halle, e J.W.R. Dedekind (1831-1916) di Braunschweig. L’obbiettivo di definire in modo preciso la costruzione dei reali fu rag- giunto con la pubblicazione tra il 1872 e il 1886 di alcuni lavori in cui venivano esposte tre diverse teorie: la costruzione di Dedekind che fa appello alla continuità della retta;
la costruzione di Cantor, in cui i reali sono classi di equivalenza di successioni di Cauchy a valori razionali e la teoria di Weierstrass in cui i numeri reali sono definiti attraverso successioni monotone di intervalli.
2.2 Classificazione delle macchine da calcolo
La parola "computer
5" ha avuto diversi significati negli ultimi secoli, provenendo dal la- tino nella metà del 1600 ha assunto il significato di «qualcuno che computa». Il termine computer è il nome d’agente del verbo inglese "to compute".
Il computer rappresenta la forma più evoluta di sistema di calcolo che in passato ha avuto progenitori quali l’abaco, la macchina di Anticitera, i bastoncini di Nepero, il regolo calcolatore ed infine il calcolatore elettronico tascabile. Possiamo attuare una classificazione delle macchine da calcolo in base alla tecnologia sulla quale si basano:
• Utilizzo dei sistemi biologici che la Natura ha messo a disposizione agli esseri umani come le dita delle mani ed il cervello con il calcolo mentale di cui molti matematici
5L’etimo latino è composto da com = cum (insieme) e putare (tagliare, rendere netto - da cui l’odierno potare) e significa propriamente: "confrontare per trarre la somma netta"
famosi del passato erano specialisti
6• Strumenti di calcolo in legno come l’abaco ed alcuni strumenti progettati da Schickard
7nel 1623 e Poleni nel 1709.
• Macchine in metallo come le prime macchine di Pascal, Thomas e le versioni di pro- duzione di Brunsviga, Monroe.
• Dispositivi elettromeccanici come gli analizzatori differenziali, le macchine di Konrad Zuse, Aiken, Stibitz e molti altri.
• Calcolatori elettronici a programma memorizzato (architettura di Von Neumann contrapponibile ai calcolatori a programma cablato, hardwired) Colossus, ABC, ENIAC.
2.3 I Regoli calcolatori
Risale al primo secolo a.C. lo strumento astronomico rinvenuto in frammenti fra i relitti di una nave sommersa
8. È chiamato calcolatore di Antikythera (o Anticitera, Andiki- thira, Antykithera, ANTIKYΘHPA, Αντικύθηρα). Anche se le attuali conoscenze sono ancora incomplete, il calcolatore di Antikythera è da considerare il primo regolo cal- colatore della storia. L’isola di Antikythera (o Anticitera, Andikithira, Antykithera, Antikythira, ΑΝΤΙΚΥΘΗΡΑ, ΄Αντικύθηρα), che si trova nel tratto del mar Egeo com- preso tra il Peloponneso e Creta, è famosa per il ritrovamento archeologico avvenuto nel 1902 nelle acque che la circondano. In quell’anno, infatti, vennero rinvenuti casualmen- te, assieme a statue di marmo e di bronzo presso il relitto di una nave lì naufragata, i resti di un congegno meccanico che sarebbe passato alla storia come "Calcolatore di Antikythera".
6Stenaritmia, s.f. tecnica di calcolo mentale che usa metodi particolari per trattare i numeri allo scopo di raggiungere una capacità di calcolo maggiore di quella insegnata a scuola.
7In una lettera del settembre 1623 Wilhelm Schickard, astronomo tedesco (1592-1635) scrive: "Ciò che è possibile calcolare manualmente io ho tentato di fare in modo meccanico".
8 "Istoria tou Ellenikou Ethnous", Athenon 1974.
2.3 I Regoli calcolatori
Figura 2.4: Resti del Calcolatore di Antikythera conservati al Museo Archeologico Nazionale di Atene.
Attualmente si ritiene che il calcolatore di Antikythera fosse un preciso strumento di calcolo astronomico, costruito per "monitorare" i rapporti ciclici tra il Sole, le stelle ed i pianeti. Poteva servire sia come strumento per la navigazione, sia come strumento per indagini astronomiche.
Figura 2.5: Modello del Calcolatore di Antikythera realizzato da John Gleave (fronte e retro).
Le caratteristiche meccaniche del calcolatore di Antikythera sono molto avanzate an- che considerando l’epoca alla quale risale. I primi esempi di rotismi epicicloidali, mec- canismi sui quali si basa il funzionamento del calcolatore di Antikythera, risalgono al diciannovesimo secolo; l’invenzione del rotismo differenziale è stata ufficialmente attri- buita all’orologiaio francese Onésiphore Pecqueur (1792-1852), che lo brevettò nel 1828.
Per il calcolo analitico, invece, ci si avvale della formula di Robert Willis, enunciata
nel 1841 nel suo libro Principles of Mechanism. Dopo il “Calcolatore di Antikythera”,
i rotismi epicicloidali o differenziali sono stati applicati in epoca moderna per la pri-
ma volta, circa un secolo fa, nel differenziale delle automobili. Il differenziale, ora quasi
universalmente adottato su tutti gli autoveicoli, consente di variare la velocità angolare delle ruote motrici in curva, evitando che si verifichi strisciamento tra le ruote stesse e il terreno. I rotismi epicicloidali sono utilizzati attualmente anche nei cambi automa- tici automobilistici e ferroviari e nei riduttori delle eliche degli elicotteri. Oltre quanto appena detto, per secoli non c’è stata traccia di meccanismi epicicloidali. Le iscrizioni riportate datavano il meccanismo alla prima metà del I° secolo a.C. La forma dei denti era piuttosto semplice in quanto erano a forma triangolare mentre il profilo dei denti degli attuali ingranaggi è ad evolvente di cerchio per evitare interferenze o giochi fra le ruote ingranate.
Figura 2.6:
Una serie di ingranaggi epicicloidali è usata in questa illustrazione per aumentare la ve- locità. Il planetario porta-satelliti (verde) è messo in rotazione da un momento entrante, il pignone solare (giallo) costituisce l’uscita, mentre la corona internamente dentata (in rosso) è fissa. Si notino i segni rossi prima e dopo che l’ingresso ha subito una rotazione di 45° in senso orario.Descrizione del meccanismo
Secondo Derek De Solla Price
9, l’intero congegno era racchiuso in una scatola di circa 30 cm di altezza, 15 di larghezza e 7,5 di profondità. Più piccolo di una scatola di scarpe.
All’interno di questa scatola erano alloggiati almeno 30 ingranaggi di bronzo. Forse è stato realizzato a Rodi dall’astronomo Gemino o dal suo maestro Posidonio (135-51 a.C.). Si trattava di un complesso planetario, mosso da vari ingranaggi, che serviva per calcolare il sorgere del Sole, le fasi lunari, i movimenti dei 5 pianeti allora conosciuti e visibili ad occhio nudo, gli equinozi, i mesi e i giorni della settimana. La funzione di alcuni quadranti non è stata ancora ben chiarita. Per farlo funzionare bastava girare una piccola manovella posta lateralmente alla scatola. Il rotismo principale è costituito da oltre una ventina di ruote dentate che, secondo altri studiosi, hanno la funzione di riprodurre il rapporto fisso 254:19 necessario per ricostruire il moto siderale
10della Luna in rapporto al Sole (la Luna compie 254 rivoluzioni siderali ogni 19 anni solari). Tale rotismo, chiamato differenziale, permette di produrre una rotazione di velocità pari alla
9Derek John De Solla Price (1922-1983), professore di Storia della scienza presso la Yale University (Connecticut - USA), che nel 1951 cominciò a studiare il meccanismo
10Il periodo siderale è il tempo che impiega l’oggetto per compiere un’intera orbita intorno al Sole, ovvero il tempo impiegato per ritornare allo stesso punto rispetto alle stelle fisse (per la Terra ad esempio è di 365,256366 giorni).